@incodetech/web 2.1.1 → 2.2.0-rc.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.
Files changed (205) hide show
  1. package/dist/ae-signature/ae-signature.es.js +7 -4
  2. package/dist/antifraud/antifraud.es.js +6 -6
  3. package/dist/authentication/authentication.es.js +7 -7
  4. package/dist/{autoFocusTitle-CuRu2lPg.js → autoFocusTitle-D7VzaZ2P.js} +6 -3
  5. package/dist/{back-horizontal-hint-xTnSQbzn.js → back-horizontal-hint-BBGuJ75y.js} +1 -1
  6. package/dist/{back-vertical-hint-BWWlHfX2.js → back-vertical-hint-B9usJ5lY.js} +1 -1
  7. package/dist/base.css +425 -3290
  8. package/dist/{bottomSheet-CnWbbUAM.js → bottomSheet-Cp8DLulN.js} +7 -8
  9. package/dist/certificate-issuance/certificate-issuance.es.js +34 -87
  10. package/dist/certificate-issuance/styles.css +0 -41
  11. package/dist/{checkbox-1wUHSoaK.js → checkbox-Jgwh943i.js} +5 -5
  12. package/dist/connectionError-Bl5E35Qm.js +45 -0
  13. package/dist/consent/consent.es.js +10 -12
  14. package/dist/consent/styles.css +5 -4
  15. package/dist/{countrySelector-SvUOyPo0.js → countrySelector-Sd-u1WGf.js} +3 -3
  16. package/dist/cross-document-data-match/cross-document-data-match.es.js +13 -10
  17. package/dist/curp-validation/curp-validation.es.js +28 -29
  18. package/dist/curp-validation/styles.css +47 -0
  19. package/dist/{customFields-BDsXR7A-.js → customFields-CiEguXX9.js} +13 -14
  20. package/dist/{customWatchlist-CYoRNCim.js → customWatchlist-BSAW87qq.js} +9 -9
  21. package/dist/dashboardTheme-FtPiizV0.js +223 -0
  22. package/dist/{dateInputComposed-DuaofcBl.js → dateInputComposed-D0WEYWkS.js} +5 -5
  23. package/dist/dateInputComposed-DKQJz0kJ.js +1 -0
  24. package/dist/document-capture/document-capture.es.js +1 -1
  25. package/dist/document-capture/styles.css +85 -70
  26. package/dist/{documentCapture-DhbO-A-V.js → documentCapture-GFNkI1ly.js} +218 -136
  27. package/dist/documentCapture-sB2_X-we.js +2 -0
  28. package/dist/{dropdownComposed-CoU0enG6.js → dropdownComposed-BXleSN7n.js} +18 -11
  29. package/dist/dropdownComposed-DE-VJgcR.js +1 -0
  30. package/dist/dynamic-forms/styles.css +58 -6
  31. package/dist/{dynamicForms-BifGbC9F.js → dynamicForms-DU5fT72-.js} +53 -45
  32. package/dist/ekyb/ekyb.es.js +1 -1
  33. package/dist/ekyb/styles.css +1 -28
  34. package/dist/{ekybModule-DGnTw5UV.js → ekybModule-CMcpoTgh.js} +51 -27
  35. package/dist/ekybModule-CR9A6Fqb.js +2 -0
  36. package/dist/ekyc/ekyc.es.js +1 -1
  37. package/dist/ekyc/styles.css +2 -2
  38. package/dist/{ekycModule-Dxpdd0ns.js → ekycModule-BTO8iIwh.js} +45 -19
  39. package/dist/ekycModule-CewwzYvk.js +2 -0
  40. package/dist/electronic-signature/electronic-signature.es.js +1 -1
  41. package/dist/{ae-signature → electronic-signature}/styles.css +2 -2
  42. package/dist/{electronic-signature-Ueoffasr.js → electronic-signature-COBKJBjU.js} +31 -23
  43. package/dist/email/email.es.js +10 -11
  44. package/dist/{emailInput-DsLkDtER.js → emailInput-mPPvterQ.js} +4 -4
  45. package/dist/{expiredId-BZXLrLk-.js → expiredId-CD5ETLV9.js} +6 -6
  46. package/dist/{extensibility-7sRIN0JC.js → extensibility-DBilbbhC.js} +440 -374
  47. package/dist/extensibility.es.js +24 -28
  48. package/dist/face-match/face-match.es.js +1 -1
  49. package/dist/face-match/styles.css +9 -609
  50. package/dist/faceMatch-2pfSeXeA.js +2 -0
  51. package/dist/{faceMatch-DyTBoMDm.js → faceMatch-CwDBO9Is.js} +71 -79
  52. package/dist/field-comparison/field-comparison.es.js +1 -1
  53. package/dist/fieldComparison-DUYp39WI.js +2 -0
  54. package/dist/{fieldComparison-L_knHqgw.js → fieldComparison-dDvSYYQP.js} +11 -12
  55. package/dist/finalSuccessScreen-B9kb72WR.js +500 -0
  56. package/dist/fiscal-qr/fiscal-qr.es.js +12 -12
  57. package/dist/flip-animation-CvN8FLNc.js +6996 -0
  58. package/dist/flow/flow.es.js +84 -48
  59. package/dist/flow/styles.css +908 -5423
  60. package/dist/{front-horizontal-hint-B84GgTO1.js → front-horizontal-hint-D3CrWViZ.js} +1 -1
  61. package/dist/{front-vertical-hint-Bs_avngq.js → front-vertical-hint-BoLZvyx5.js} +1 -1
  62. package/dist/geolocation/geolocation.es.js +36 -13
  63. package/dist/geolocation/styles.css +1 -1
  64. package/dist/government-validation/government-validation.es.js +11 -12
  65. package/dist/{homeScreen-B6T0JVh8.js → homeScreen-Dycy1yhN.js} +7 -9
  66. package/dist/{icons-CJJbIpBq.js → icons-D0cfSCBM.js} +92 -7
  67. package/dist/id/id.es.js +222 -52
  68. package/dist/id/styles.css +290 -10
  69. package/dist/id-back-of-card-DO593HH8.js +83 -0
  70. package/dist/id-back-of-card-vertical-DArEQ0hE.js +88 -0
  71. package/dist/id-front-of-card-Bcit7Pnq.js +308 -0
  72. package/dist/id-front-of-card-vertical-Bcr-KXcl.js +278 -0
  73. package/dist/id-laser-h-BaUHzX-d.js +480 -0
  74. package/dist/{id-laser-v-BiUXkM4x.js → id-laser-v-Dv9yEYJE.js} +7 -17
  75. package/dist/id-selfie-flow/id-selfie-flow.es.js +239 -0
  76. package/dist/id-selfie-flow/styles.css +749 -0
  77. package/dist/id-verification/id-verification.es.js +13 -9
  78. package/dist/{idOcr-WFBvqy3b.js → idOcr-riTHUOlr.js} +14 -15
  79. package/dist/identity-reuse/identity-reuse.es.js +6 -8
  80. package/dist/identity-reuse/styles.css +1 -1
  81. package/dist/{incode-logo-57XFniXU.js → incode-logo-cGsd55rc.js} +64 -1
  82. package/dist/incodeComponent-B-daxouV.js +713 -0
  83. package/dist/incodeModule-uyUrSSUM.js +25 -0
  84. package/dist/index.es.js +16 -5
  85. package/dist/inputComposed-CABc288U.js +1 -0
  86. package/dist/{inputComposed-C1R2LAa3.js → inputComposed-Pp_XN1-h.js} +9 -9
  87. package/dist/{mandatoryConsent-D0GTKu-H.js → mandatoryConsent-DSAjFc0h.js} +9 -11
  88. package/dist/manualCaptureButton-BY8dRhGA.js +300 -0
  89. package/dist/{capture-CkGvdDNH.js → manualCaptureButton-BldgUGso.js} +68 -198
  90. package/dist/{modal-OxkFuuiR.js → modal-BlczH_pL.js} +4 -4
  91. package/dist/{modal.hooks-ZrzmHAUa.js → modal.hooks-BvXzNWvY.js} +1 -1
  92. package/dist/{numberedStep-CEb-lFJm.js → numberedStep-DUs77Gy3.js} +1 -1
  93. package/dist/{optionAccessibleLabel-gfF-58Mv.js → optionAccessibleLabel-Dmz3eRsO.js} +6 -6
  94. package/dist/{otpInput-CnDc6pQm.js → otpInput-B3vUjmBF.js} +72 -36
  95. package/dist/{passport-horizontal-hint-Bj0ZJY0g.js → passport-horizontal-hint-DgnU-8bl.js} +1 -1
  96. package/dist/{passport-vertical-hint-Dfk77xUJ.js → passport-vertical-hint-Dd2Wknw7.js} +1 -1
  97. package/dist/{pdf-BqtJTlor.js → pdf-BUoY_2gv.js} +1 -1
  98. package/dist/pdfViewer-4xNYiBI1.js +2 -0
  99. package/dist/{pdfViewer-B97DmT9m.js → pdfViewer-BGFFFvmi.js} +5 -7
  100. package/dist/phone/phone.es.js +13 -12
  101. package/dist/{phoneInputComposed-DMiXfF-1.js → phoneInputComposed-D1ZBsd4S.js} +7 -6
  102. package/dist/{processing-BeUMfdJJ.js → processing-vGhs5Gvb.js} +2 -2
  103. package/dist/qe-signature/qe-signature.es.js +7 -4
  104. package/dist/{radioGroupComposed-DuQxslB2.js → radioGroupComposed-CYPHpI6a.js} +16 -15
  105. package/dist/redirect-to-mobile/redirect-to-mobile.es.js +132 -45
  106. package/dist/redirect-to-mobile/styles.css +20 -10
  107. package/dist/{registerIncodeElement-DaNjbAwZ.js → registerIncodeElement-BduCekz5.js} +1 -1
  108. package/dist/{richText-CB1fmegc.js → richText-2OnIN9ff.js} +3 -1607
  109. package/dist/selfie/selfie.es.js +10 -10
  110. package/dist/selfie/styles.css +16 -949
  111. package/dist/signature/signature.es.js +27 -19
  112. package/dist/{ae-signature/styles2.css → signature/styles.css} +4 -4
  113. package/dist/{snackbar-DS7Mv62v.js → snackbar-BzyWgQ7J.js} +2 -2
  114. package/dist/spacer-Bnmh-DfR.js +2344 -0
  115. package/dist/{spinner-BMeIEK1d.js → spinner-HP_c74K-.js} +45 -4
  116. package/dist/statusPage-C0vTVW0Q.js +36 -0
  117. package/dist/{successIcon-B5mGvdx1.js → successIcon-Bj8Y9CuI.js} +1 -1
  118. package/dist/{tabs-C__chW-u.js → tabs-B_TxQ9ZQ.js} +4 -3
  119. package/dist/themes/dark.css +35 -0
  120. package/dist/themes/light.css +35 -0
  121. package/dist/{tutorial-CCfPuVKX.js → tutorial-Cuy2ZEG9.js} +222 -180
  122. package/dist/types/ae-signature.d.ts +91 -5
  123. package/dist/types/antifraud.d.ts +86 -3
  124. package/dist/types/authentication.d.ts +86 -3
  125. package/dist/types/certificate-issuance.d.ts +86 -3
  126. package/dist/types/consent.d.ts +86 -3
  127. package/dist/types/cross-document-data-match.d.ts +88 -4
  128. package/dist/types/curp-validation.d.ts +86 -3
  129. package/dist/types/document-capture.d.ts +88 -4
  130. package/dist/types/ekyb.d.ts +88 -4
  131. package/dist/types/ekyc.d.ts +88 -4
  132. package/dist/types/electronic-signature.d.ts +87 -4
  133. package/dist/types/email.d.ts +82 -22
  134. package/dist/types/extensibility.d.ts +160 -5
  135. package/dist/types/face-match.d.ts +84 -22
  136. package/dist/types/field-comparison.d.ts +86 -3
  137. package/dist/types/fiscal-qr.d.ts +89 -5
  138. package/dist/types/flow.d.ts +92 -2
  139. package/dist/types/geolocation.d.ts +86 -3
  140. package/dist/types/government-validation.d.ts +86 -3
  141. package/dist/types/id-selfie-flow.d.ts +161 -0
  142. package/dist/types/id-verification.d.ts +87 -4
  143. package/dist/types/id.d.ts +88 -5
  144. package/dist/types/identity-reuse.d.ts +82 -2
  145. package/dist/types/index.d.ts +109 -1
  146. package/dist/types/phone.d.ts +83 -24
  147. package/dist/types/qe-signature.d.ts +91 -5
  148. package/dist/types/redirect-to-mobile.d.ts +4 -1
  149. package/dist/types/selfie.d.ts +86 -3
  150. package/dist/types/signature.d.ts +91 -5
  151. package/dist/types/video-selfie.d.ts +83 -6
  152. package/dist/types/watchlist.d.ts +91 -5
  153. package/dist/types/workflow.d.ts +85 -2
  154. package/dist/{i18n-CU4xq8qC.js → uiConfig-D7ezQeZ7.js} +63 -3
  155. package/dist/{useModuleLoader-Bi26kJbg.js → useModuleLoader-BImpfi_R.js} +37 -248
  156. package/dist/{vendor-preact-DThS2ZQ_.js → vendor-preact-mvwZ8mJj.js} +1 -1
  157. package/dist/{verificationResult-BWWkmeiA.js → verificationResult-IUf0w1aR.js} +26 -15
  158. package/dist/video-selfie/styles.css +349 -1202
  159. package/dist/video-selfie/video-selfie.es.js +120 -381
  160. package/dist/watchlist/watchlist.es.js +16 -13
  161. package/dist/{watchlistForBusiness-D2Uo_TwF.js → watchlistForBusiness-zT9gCfTc.js} +12 -13
  162. package/dist/workflow/styles.css +501 -3977
  163. package/dist/workflow/workflow.es.js +26 -19
  164. package/package.json +22 -20
  165. package/dist/button-Dz6AsbmF.js +0 -40
  166. package/dist/cameraView-DIEzM5ru.js +0 -47
  167. package/dist/cpf-ocr/cpf-ocr.es.js +0 -2
  168. package/dist/cpf-ocr/styles.css +0 -45
  169. package/dist/cpfOcr-B79245-3.js +0 -2
  170. package/dist/cpfOcr-BhxT-lRN.js +0 -92
  171. package/dist/dateInputComposed-DRzZi6uy.js +0 -1
  172. package/dist/documentCapture-DXYYyxZl.js +0 -2
  173. package/dist/dropdownComposed-BAoxIIsE.js +0 -1
  174. package/dist/ekybModule-C6Nttked.js +0 -2
  175. package/dist/ekycModule-CDIEjI6V.js +0 -2
  176. package/dist/errorIcon-BA4T6iy-.js +0 -26
  177. package/dist/faceMatch-B_HvxLm_.js +0 -2
  178. package/dist/fieldComparison-DfNEuEE5.js +0 -2
  179. package/dist/flip-animation-CZYSUtMm.js +0 -6983
  180. package/dist/hooks-CNu7o-v8.js +0 -186
  181. package/dist/id-laser-h-CzPegPMn.js +0 -467
  182. package/dist/incodeComponent-CfzJGETt.js +0 -64
  183. package/dist/incodeModule-B-4_3JrK.js +0 -13
  184. package/dist/inputComposed-BaY5q9WM.js +0 -1
  185. package/dist/loadingIcon-B0ysgiNq.js +0 -148
  186. package/dist/page-DidH_RkX.js +0 -171
  187. package/dist/spinner-BCDCoi9C.js +0 -1
  188. package/dist/statusPage-Bk8nJwXV.js +0 -28
  189. package/dist/transitionSpinner-CuNCqHNi.js +0 -30
  190. package/dist/types/cpf-ocr.d.ts +0 -12
  191. package/dist/typography-BZIpjo97.js +0 -45
  192. package/dist/uiConfig-D2_wawvr.js +0 -25
  193. /package/dist/{aligndevicelottie-DFscByAI.js → aligndevicelottie-CfoZ5Uus.js} +0 -0
  194. /package/dist/{back-tutorial-cI_4VHmE.js → back-tutorial-BHyRHyET.js} +0 -0
  195. /package/dist/{backdevicelottie-COyhTrxM.js → backdevicelottie-yKkczgFy.js} +0 -0
  196. /package/dist/{blurdevicelottie-BLVeJHEG.js → blurdevicelottie-8BbophdM.js} +0 -0
  197. /package/dist/{browser-ponyfill-Df13Th-G.js → browser-ponyfill-CBjGwwPW.js} +0 -0
  198. /package/dist/{defineProperty-Qjefk7Uf.js → defineProperty-BbpBna-2.js} +0 -0
  199. /package/dist/{frontdevicelottie-B4tE2PYQ.js → frontdevicelottie-CFcahVLk.js} +0 -0
  200. /package/dist/{glaredevicelottie-D1pR73sx.js → glaredevicelottie-Cnvah0kz.js} +0 -0
  201. /package/dist/{id-tutorial-DwO90SAm.js → id-tutorial-BOOsXlAJ.js} +0 -0
  202. /package/dist/{lottie_light-C6B2ec41.js → lottie_light-Bv56F2Ae.js} +0 -0
  203. /package/dist/{passport-tutorial-D9JNsMsM.js → passport-tutorial-CeSup6m9.js} +0 -0
  204. /package/dist/{requiredLabelHint-D0RhuMed.js → requiredLabelHint-Dx0WS2cR.js} +0 -0
  205. /package/dist/{selfieTutorial-pB-N-fj5.js → selfieTutorial-CYa8bq6B.js} +0 -0
@@ -1,6 +1,59 @@
1
+ import { DeepPartial } from '@incodetech/core/flow';
1
2
  import { FC } from 'preact/compat';
3
+ import { FunctionComponent } from 'preact';
2
4
  import { PhoneConfig } from '@incodetech/core/phone';
3
5
  import { PhoneManager } from '@incodetech/core/phone';
6
+ import { SVGProps } from 'preact/compat';
7
+
8
+ /**
9
+ * Allowlisted keys for overridable Lottie animations
10
+ */
11
+ declare type AnimationKey = 'id.tutorial.front' | 'id.tutorial.back' | 'id.tutorial.passport' | 'id.flip' | 'id.processing' | 'selfie.tutorial' | 'loader.spinner';
12
+
13
+ /**
14
+ * A customer-supplied replacement for a built-in Lottie animation.
15
+ *
16
+ * - `LottieAnimationData` — a parsed Lottie JSON object.
17
+ * - `{ url }` — fetched and cached at runtime.
18
+ * - `{ animationData }` — explicit object form.
19
+ */
20
+ declare type AnimationOverride = LottieAnimationData | {
21
+ url: string;
22
+ } | {
23
+ animationData: LottieAnimationData;
24
+ };
25
+
26
+ declare type AnimationOverrides = Partial<Record<AnimationKey, AnimationOverride>>;
27
+
28
+ /**
29
+ * Allowlisted keys for overridable branded SVG illustrations
30
+ */
31
+ declare type AssetKey = 'faceMatch.success' | 'faceMatch.fail' | 'documentCapture.tutorial' | 'id.uploadScreen' | 'id.ageVerification.dob' | 'id.ageVerification.scan' | 'id.ageVerification.privacy' | 'videoSelfie.success' | 'videoSelfie.fail' | 'videoSelfie.tutorial.permission' | 'videoSelfie.tutorial.selfie' | 'videoSelfie.tutorial.frontId' | 'videoSelfie.tutorial.backId' | 'videoSelfie.tutorial.poa' | 'videoSelfie.tutorial.questions' | 'videoSelfie.tutorial.speech' | 'loader.spinner';
32
+
33
+ /**
34
+ * A customer-supplied replacement for a built-in SVG illustration.
35
+ *
36
+ * - `string` — a URL, or raw `<svg …>` markup (detected by a leading `<`).
37
+ * - `{ url }` — fetched and rendered via `<img>`; no script execution.
38
+ * - `{ raw }` — inline markup; sanitized before injection.
39
+ * - `{ svg }` — a precompiled component, for build-time integrations.
40
+ */
41
+ declare type AssetOverride = string | {
42
+ url: string;
43
+ } | {
44
+ raw: string;
45
+ } | {
46
+ svg: SvgComponent;
47
+ };
48
+
49
+ declare type AssetOverrides = Partial<Record<AssetKey, AssetOverride>>;
50
+
51
+ /**
52
+ * A module `config` intersected with the per-instance override maps. Typed at
53
+ * the UI boundary so core config types (e.g. `IdCaptureConfig`) stay untouched;
54
+ * `FlowConfig` also declares the maps directly.
55
+ */
56
+ declare type ConfigWithOverrides<TConfig> = TConfig & InstanceOverrides;
4
57
 
5
58
  /**
6
59
  * Extra context passed to `onFinish` alongside the result. Lets a host decide
@@ -22,12 +75,16 @@ declare type IncodeFinishMeta = {
22
75
  sdkOwnsTerminalScreen?: boolean;
23
76
  };
24
77
 
25
- declare type IncodeModuleProps<TConfig, TResult = void, TManager = unknown> = {
78
+ declare type IncodeModuleProps<TConfig, TResult = void, TManager = unknown, TConfigInput = ConfigWithOverrides<TConfig>> = {
26
79
  /**
27
80
  * Module configuration required to render the flow.
28
81
  * For Web Components, this is typically assigned via `element.config = ...`.
82
+ *
83
+ * Also carries optional per-instance `assets`/`animations` override maps;
84
+ * they override the global `setup({ uiConfig })` values for this
85
+ * element only and are ignored by the core manager.
29
86
  */
30
- config?: TConfig;
87
+ config?: TConfigInput;
31
88
  /**
32
89
  * Optional pre-built manager. When provided, the module does not create or manage the manager lifecycle.
33
90
  */
@@ -54,36 +111,38 @@ declare type IncodeModuleProps<TConfig, TResult = void, TManager = unknown> = {
54
111
  };
55
112
 
56
113
  /**
57
- * Phone verification UI component.
114
+ * Per-instance asset/animation overrides for a single mounted SDK module.
58
115
  *
59
- * Provides a complete phone verification experience including:
60
- * - Country code selector with flag emojis
61
- * - Phone number input with validation
62
- * - OTP code entry with resend functionality
63
- * - Loading states and error handling
64
- *
65
- * @example Basic usage
66
- * ```tsx
67
- * <Phone
68
- * config={{
69
- * otpVerification: true,
70
- * otpExpirationInMinutes: 5,
71
- * prefill: false,
72
- * }}
73
- * onFinish={() => router.push('/next-step')}
74
- * onError={(err) => toast.error(err)}
75
- * />
76
- * ```
77
- *
78
- * @see {@link createPhoneManager} for headless usage
116
+ * These ride on the module's `config` prop and are published once at the
117
+ * module root by `registerIncodeModuleElement`, so a deep `<Asset>`/`<AnimatedAsset>`
118
+ * reads them via {@link useInstanceOverrides} without any prop drilling.
79
119
  */
80
- export declare const Phone: FC<PhoneProps>;
120
+ declare type InstanceOverrides = {
121
+ assets?: AssetOverrides;
122
+ animations?: AnimationOverrides;
123
+ };
124
+
125
+ declare type LottieAnimationData = {
126
+ fr: number;
127
+ v: string;
128
+ ip: number;
129
+ op: number;
130
+ w: number;
131
+ h: number;
132
+ };
133
+
134
+ export declare const Phone: FC<Omit<PhoneProps, "config"> & {
135
+ config?: (Omit<unknown, never> & DeepPartial<Pick<unknown, never>>) | undefined;
136
+ }>;
81
137
 
82
138
  /**
83
139
  * Props for the Phone component
84
140
  */
85
141
  declare type PhoneProps = IncodeModuleProps<PhoneConfig, void, PhoneManager>;
86
142
 
143
+ /** An SVG imported as a Preact component (the `?react` import shape). */
144
+ declare type SvgComponent = FunctionComponent<SVGProps<SVGSVGElement>>;
145
+
87
146
  export { }
88
147
 
89
148
  declare global {
@@ -1,5 +1,59 @@
1
+ import { DeepPartial } from '@incodetech/core/flow';
1
2
  import { FC } from 'preact/compat';
3
+ import { FunctionComponent } from 'preact';
2
4
  import { QeSignatureConfig } from '@incodetech/core/qe-signature';
5
+ import { QeSignatureManager } from '@incodetech/core/qe-signature';
6
+ import { SVGProps } from 'preact/compat';
7
+
8
+ /**
9
+ * Allowlisted keys for overridable Lottie animations
10
+ */
11
+ declare type AnimationKey = 'id.tutorial.front' | 'id.tutorial.back' | 'id.tutorial.passport' | 'id.flip' | 'id.processing' | 'selfie.tutorial' | 'loader.spinner';
12
+
13
+ /**
14
+ * A customer-supplied replacement for a built-in Lottie animation.
15
+ *
16
+ * - `LottieAnimationData` — a parsed Lottie JSON object.
17
+ * - `{ url }` — fetched and cached at runtime.
18
+ * - `{ animationData }` — explicit object form.
19
+ */
20
+ declare type AnimationOverride = LottieAnimationData | {
21
+ url: string;
22
+ } | {
23
+ animationData: LottieAnimationData;
24
+ };
25
+
26
+ declare type AnimationOverrides = Partial<Record<AnimationKey, AnimationOverride>>;
27
+
28
+ /**
29
+ * Allowlisted keys for overridable branded SVG illustrations
30
+ */
31
+ declare type AssetKey = 'faceMatch.success' | 'faceMatch.fail' | 'documentCapture.tutorial' | 'id.uploadScreen' | 'id.ageVerification.dob' | 'id.ageVerification.scan' | 'id.ageVerification.privacy' | 'videoSelfie.success' | 'videoSelfie.fail' | 'videoSelfie.tutorial.permission' | 'videoSelfie.tutorial.selfie' | 'videoSelfie.tutorial.frontId' | 'videoSelfie.tutorial.backId' | 'videoSelfie.tutorial.poa' | 'videoSelfie.tutorial.questions' | 'videoSelfie.tutorial.speech' | 'loader.spinner';
32
+
33
+ /**
34
+ * A customer-supplied replacement for a built-in SVG illustration.
35
+ *
36
+ * - `string` — a URL, or raw `<svg …>` markup (detected by a leading `<`).
37
+ * - `{ url }` — fetched and rendered via `<img>`; no script execution.
38
+ * - `{ raw }` — inline markup; sanitized before injection.
39
+ * - `{ svg }` — a precompiled component, for build-time integrations.
40
+ */
41
+ declare type AssetOverride = string | {
42
+ url: string;
43
+ } | {
44
+ raw: string;
45
+ } | {
46
+ svg: SvgComponent;
47
+ };
48
+
49
+ declare type AssetOverrides = Partial<Record<AssetKey, AssetOverride>>;
50
+
51
+ /**
52
+ * A module `config` intersected with the per-instance override maps. Typed at
53
+ * the UI boundary so core config types (e.g. `IdCaptureConfig`) stay untouched;
54
+ * `FlowConfig` also declares the maps directly.
55
+ */
56
+ declare type ConfigWithOverrides<TConfig> = TConfig & InstanceOverrides;
3
57
 
4
58
  /**
5
59
  * Extra context passed to `onFinish` alongside the result. Lets a host decide
@@ -21,12 +75,16 @@ declare type IncodeFinishMeta = {
21
75
  sdkOwnsTerminalScreen?: boolean;
22
76
  };
23
77
 
24
- declare type IncodeModuleProps<TConfig, TResult = void, TManager = unknown> = {
78
+ declare type IncodeModuleProps<TConfig, TResult = void, TManager = unknown, TConfigInput = ConfigWithOverrides<TConfig>> = {
25
79
  /**
26
80
  * Module configuration required to render the flow.
27
81
  * For Web Components, this is typically assigned via `element.config = ...`.
82
+ *
83
+ * Also carries optional per-instance `assets`/`animations` override maps;
84
+ * they override the global `setup({ uiConfig })` values for this
85
+ * element only and are ignored by the core manager.
28
86
  */
29
- config?: TConfig;
87
+ config?: TConfigInput;
30
88
  /**
31
89
  * Optional pre-built manager. When provided, the module does not create or manage the manager lifecycle.
32
90
  */
@@ -52,14 +110,42 @@ declare type IncodeModuleProps<TConfig, TResult = void, TManager = unknown> = {
52
110
  onError?: (error: string | undefined, errorCode?: number, moduleErrorCode?: string) => void;
53
111
  };
54
112
 
55
- export declare const QeSignature: FC<QeSignatureModuleProps>;
113
+ /**
114
+ * Per-instance asset/animation overrides for a single mounted SDK module.
115
+ *
116
+ * These ride on the module's `config` prop and are published once at the
117
+ * module root by `registerIncodeModuleElement`, so a deep `<Asset>`/`<AnimatedAsset>`
118
+ * reads them via {@link useInstanceOverrides} without any prop drilling.
119
+ */
120
+ declare type InstanceOverrides = {
121
+ assets?: AssetOverrides;
122
+ animations?: AnimationOverrides;
123
+ };
124
+
125
+ declare type LottieAnimationData = {
126
+ fr: number;
127
+ v: string;
128
+ ip: number;
129
+ op: number;
130
+ w: number;
131
+ h: number;
132
+ };
133
+
134
+ export declare const QeSignature: FC<Omit<QeSignatureModuleProps, "config"> & {
135
+ config?: (Omit<unknown, never> & DeepPartial<Pick<unknown, never>>) | undefined;
136
+ }>;
137
+
138
+ declare type QeSignatureModuleProps = IncodeModuleProps<QeSignatureConfig, void, QeSignatureManager>;
56
139
 
57
- declare type QeSignatureModuleProps = IncodeModuleProps<QeSignatureConfig>;
140
+ /** An SVG imported as a Preact component (the `?react` import shape). */
141
+ declare type SvgComponent = FunctionComponent<SVGProps<SVGSVGElement>>;
58
142
 
59
143
  export { }
60
144
 
61
145
  declare global {
62
146
  interface HTMLElementTagNameMap {
63
- 'incode-qe-signature': HTMLElement & IncodeModuleProps<QeSignatureConfig>;
147
+ 'incode-qe-signature': HTMLElement & IncodeModuleProps<QeSignatureConfig,
148
+ void,
149
+ QeSignatureManager>;
64
150
  }
65
151
  }
@@ -1,9 +1,12 @@
1
+ import { DeepPartial } from '@incodetech/core/flow';
1
2
  import { FC } from 'preact/compat';
2
3
  import { RedirectToMobileConfig } from '@incodetech/core/redirect-to-mobile';
3
4
  import { RedirectToMobileManager } from '@incodetech/core/redirect-to-mobile';
4
5
  import { RedirectToMobileServices } from '@incodetech/core/redirect-to-mobile';
5
6
 
6
- export declare const RedirectToMobile: FC<RedirectToMobileProps>;
7
+ export declare const RedirectToMobile: FC<Omit<RedirectToMobileProps, "config"> & {
8
+ config?: (Omit<unknown, never> & DeepPartial<Pick<unknown, never>>) | undefined;
9
+ }>;
7
10
 
8
11
  export declare type RedirectToMobileProps = {
9
12
  config?: RedirectToMobileConfig;
@@ -1,6 +1,59 @@
1
+ import { DeepPartial } from '@incodetech/core/flow';
1
2
  import { FC } from 'preact/compat';
3
+ import { FunctionComponent } from 'preact';
2
4
  import { SelfieConfig } from '@incodetech/core/selfie';
3
5
  import { SelfieManager } from '@incodetech/core/selfie';
6
+ import { SVGProps } from 'preact/compat';
7
+
8
+ /**
9
+ * Allowlisted keys for overridable Lottie animations
10
+ */
11
+ declare type AnimationKey = 'id.tutorial.front' | 'id.tutorial.back' | 'id.tutorial.passport' | 'id.flip' | 'id.processing' | 'selfie.tutorial' | 'loader.spinner';
12
+
13
+ /**
14
+ * A customer-supplied replacement for a built-in Lottie animation.
15
+ *
16
+ * - `LottieAnimationData` — a parsed Lottie JSON object.
17
+ * - `{ url }` — fetched and cached at runtime.
18
+ * - `{ animationData }` — explicit object form.
19
+ */
20
+ declare type AnimationOverride = LottieAnimationData | {
21
+ url: string;
22
+ } | {
23
+ animationData: LottieAnimationData;
24
+ };
25
+
26
+ declare type AnimationOverrides = Partial<Record<AnimationKey, AnimationOverride>>;
27
+
28
+ /**
29
+ * Allowlisted keys for overridable branded SVG illustrations
30
+ */
31
+ declare type AssetKey = 'faceMatch.success' | 'faceMatch.fail' | 'documentCapture.tutorial' | 'id.uploadScreen' | 'id.ageVerification.dob' | 'id.ageVerification.scan' | 'id.ageVerification.privacy' | 'videoSelfie.success' | 'videoSelfie.fail' | 'videoSelfie.tutorial.permission' | 'videoSelfie.tutorial.selfie' | 'videoSelfie.tutorial.frontId' | 'videoSelfie.tutorial.backId' | 'videoSelfie.tutorial.poa' | 'videoSelfie.tutorial.questions' | 'videoSelfie.tutorial.speech' | 'loader.spinner';
32
+
33
+ /**
34
+ * A customer-supplied replacement for a built-in SVG illustration.
35
+ *
36
+ * - `string` — a URL, or raw `<svg …>` markup (detected by a leading `<`).
37
+ * - `{ url }` — fetched and rendered via `<img>`; no script execution.
38
+ * - `{ raw }` — inline markup; sanitized before injection.
39
+ * - `{ svg }` — a precompiled component, for build-time integrations.
40
+ */
41
+ declare type AssetOverride = string | {
42
+ url: string;
43
+ } | {
44
+ raw: string;
45
+ } | {
46
+ svg: SvgComponent;
47
+ };
48
+
49
+ declare type AssetOverrides = Partial<Record<AssetKey, AssetOverride>>;
50
+
51
+ /**
52
+ * A module `config` intersected with the per-instance override maps. Typed at
53
+ * the UI boundary so core config types (e.g. `IdCaptureConfig`) stay untouched;
54
+ * `FlowConfig` also declares the maps directly.
55
+ */
56
+ declare type ConfigWithOverrides<TConfig> = TConfig & InstanceOverrides;
4
57
 
5
58
  /**
6
59
  * Extra context passed to `onFinish` alongside the result. Lets a host decide
@@ -22,12 +75,16 @@ declare type IncodeFinishMeta = {
22
75
  sdkOwnsTerminalScreen?: boolean;
23
76
  };
24
77
 
25
- declare type IncodeModuleProps<TConfig, TResult = void, TManager = unknown> = {
78
+ declare type IncodeModuleProps<TConfig, TResult = void, TManager = unknown, TConfigInput = ConfigWithOverrides<TConfig>> = {
26
79
  /**
27
80
  * Module configuration required to render the flow.
28
81
  * For Web Components, this is typically assigned via `element.config = ...`.
82
+ *
83
+ * Also carries optional per-instance `assets`/`animations` override maps;
84
+ * they override the global `setup({ uiConfig })` values for this
85
+ * element only and are ignored by the core manager.
29
86
  */
30
- config?: TConfig;
87
+ config?: TConfigInput;
31
88
  /**
32
89
  * Optional pre-built manager. When provided, the module does not create or manage the manager lifecycle.
33
90
  */
@@ -53,10 +110,36 @@ declare type IncodeModuleProps<TConfig, TResult = void, TManager = unknown> = {
53
110
  onError?: (error: string | undefined, errorCode?: number, moduleErrorCode?: string) => void;
54
111
  };
55
112
 
56
- export declare const Selfie: FC<SelfieProps>;
113
+ /**
114
+ * Per-instance asset/animation overrides for a single mounted SDK module.
115
+ *
116
+ * These ride on the module's `config` prop and are published once at the
117
+ * module root by `registerIncodeModuleElement`, so a deep `<Asset>`/`<AnimatedAsset>`
118
+ * reads them via {@link useInstanceOverrides} without any prop drilling.
119
+ */
120
+ declare type InstanceOverrides = {
121
+ assets?: AssetOverrides;
122
+ animations?: AnimationOverrides;
123
+ };
124
+
125
+ declare type LottieAnimationData = {
126
+ fr: number;
127
+ v: string;
128
+ ip: number;
129
+ op: number;
130
+ w: number;
131
+ h: number;
132
+ };
133
+
134
+ export declare const Selfie: FC<Omit<SelfieProps, "config"> & {
135
+ config?: (Omit<unknown, never> & DeepPartial<Pick<unknown, never>>) | undefined;
136
+ }>;
57
137
 
58
138
  declare type SelfieProps = IncodeModuleProps<SelfieConfig, void, SelfieManager>;
59
139
 
140
+ /** An SVG imported as a Preact component (the `?react` import shape). */
141
+ declare type SvgComponent = FunctionComponent<SVGProps<SVGSVGElement>>;
142
+
60
143
  export { }
61
144
 
62
145
  declare global {
@@ -1,5 +1,59 @@
1
+ import { DeepPartial } from '@incodetech/core/flow';
1
2
  import { FC } from 'preact/compat';
3
+ import { FunctionComponent } from 'preact';
2
4
  import { SignatureConfig } from '@incodetech/core/signature';
5
+ import { SignatureManager } from '@incodetech/core/signature';
6
+ import { SVGProps } from 'preact/compat';
7
+
8
+ /**
9
+ * Allowlisted keys for overridable Lottie animations
10
+ */
11
+ declare type AnimationKey = 'id.tutorial.front' | 'id.tutorial.back' | 'id.tutorial.passport' | 'id.flip' | 'id.processing' | 'selfie.tutorial' | 'loader.spinner';
12
+
13
+ /**
14
+ * A customer-supplied replacement for a built-in Lottie animation.
15
+ *
16
+ * - `LottieAnimationData` — a parsed Lottie JSON object.
17
+ * - `{ url }` — fetched and cached at runtime.
18
+ * - `{ animationData }` — explicit object form.
19
+ */
20
+ declare type AnimationOverride = LottieAnimationData | {
21
+ url: string;
22
+ } | {
23
+ animationData: LottieAnimationData;
24
+ };
25
+
26
+ declare type AnimationOverrides = Partial<Record<AnimationKey, AnimationOverride>>;
27
+
28
+ /**
29
+ * Allowlisted keys for overridable branded SVG illustrations
30
+ */
31
+ declare type AssetKey = 'faceMatch.success' | 'faceMatch.fail' | 'documentCapture.tutorial' | 'id.uploadScreen' | 'id.ageVerification.dob' | 'id.ageVerification.scan' | 'id.ageVerification.privacy' | 'videoSelfie.success' | 'videoSelfie.fail' | 'videoSelfie.tutorial.permission' | 'videoSelfie.tutorial.selfie' | 'videoSelfie.tutorial.frontId' | 'videoSelfie.tutorial.backId' | 'videoSelfie.tutorial.poa' | 'videoSelfie.tutorial.questions' | 'videoSelfie.tutorial.speech' | 'loader.spinner';
32
+
33
+ /**
34
+ * A customer-supplied replacement for a built-in SVG illustration.
35
+ *
36
+ * - `string` — a URL, or raw `<svg …>` markup (detected by a leading `<`).
37
+ * - `{ url }` — fetched and rendered via `<img>`; no script execution.
38
+ * - `{ raw }` — inline markup; sanitized before injection.
39
+ * - `{ svg }` — a precompiled component, for build-time integrations.
40
+ */
41
+ declare type AssetOverride = string | {
42
+ url: string;
43
+ } | {
44
+ raw: string;
45
+ } | {
46
+ svg: SvgComponent;
47
+ };
48
+
49
+ declare type AssetOverrides = Partial<Record<AssetKey, AssetOverride>>;
50
+
51
+ /**
52
+ * A module `config` intersected with the per-instance override maps. Typed at
53
+ * the UI boundary so core config types (e.g. `IdCaptureConfig`) stay untouched;
54
+ * `FlowConfig` also declares the maps directly.
55
+ */
56
+ declare type ConfigWithOverrides<TConfig> = TConfig & InstanceOverrides;
3
57
 
4
58
  /**
5
59
  * Extra context passed to `onFinish` alongside the result. Lets a host decide
@@ -21,12 +75,16 @@ declare type IncodeFinishMeta = {
21
75
  sdkOwnsTerminalScreen?: boolean;
22
76
  };
23
77
 
24
- declare type IncodeModuleProps<TConfig, TResult = void, TManager = unknown> = {
78
+ declare type IncodeModuleProps<TConfig, TResult = void, TManager = unknown, TConfigInput = ConfigWithOverrides<TConfig>> = {
25
79
  /**
26
80
  * Module configuration required to render the flow.
27
81
  * For Web Components, this is typically assigned via `element.config = ...`.
82
+ *
83
+ * Also carries optional per-instance `assets`/`animations` override maps;
84
+ * they override the global `setup({ uiConfig })` values for this
85
+ * element only and are ignored by the core manager.
28
86
  */
29
- config?: TConfig;
87
+ config?: TConfigInput;
30
88
  /**
31
89
  * Optional pre-built manager. When provided, the module does not create or manage the manager lifecycle.
32
90
  */
@@ -52,14 +110,42 @@ declare type IncodeModuleProps<TConfig, TResult = void, TManager = unknown> = {
52
110
  onError?: (error: string | undefined, errorCode?: number, moduleErrorCode?: string) => void;
53
111
  };
54
112
 
55
- export declare const Signature: FC<SignatureProps>;
113
+ /**
114
+ * Per-instance asset/animation overrides for a single mounted SDK module.
115
+ *
116
+ * These ride on the module's `config` prop and are published once at the
117
+ * module root by `registerIncodeModuleElement`, so a deep `<Asset>`/`<AnimatedAsset>`
118
+ * reads them via {@link useInstanceOverrides} without any prop drilling.
119
+ */
120
+ declare type InstanceOverrides = {
121
+ assets?: AssetOverrides;
122
+ animations?: AnimationOverrides;
123
+ };
124
+
125
+ declare type LottieAnimationData = {
126
+ fr: number;
127
+ v: string;
128
+ ip: number;
129
+ op: number;
130
+ w: number;
131
+ h: number;
132
+ };
133
+
134
+ export declare const Signature: FC<Omit<SignatureProps, "config"> & {
135
+ config?: (Omit<unknown, never> & DeepPartial<Pick<unknown, never>>) | undefined;
136
+ }>;
137
+
138
+ declare type SignatureProps = IncodeModuleProps<SignatureConfig, void, SignatureManager>;
56
139
 
57
- declare type SignatureProps = IncodeModuleProps<SignatureConfig>;
140
+ /** An SVG imported as a Preact component (the `?react` import shape). */
141
+ declare type SvgComponent = FunctionComponent<SVGProps<SVGSVGElement>>;
58
142
 
59
143
  export { }
60
144
 
61
145
  declare global {
62
146
  interface HTMLElementTagNameMap {
63
- 'incode-signature': HTMLElement & IncodeModuleProps<SignatureConfig>;
147
+ 'incode-signature': HTMLElement & IncodeModuleProps<SignatureConfig,
148
+ void,
149
+ SignatureManager>;
64
150
  }
65
151
  }
@@ -1,6 +1,59 @@
1
+ import { DeepPartial } from '@incodetech/core/flow';
1
2
  import { FC } from 'preact/compat';
3
+ import { FunctionComponent } from 'preact';
4
+ import { SVGProps } from 'preact/compat';
2
5
  import { VideoSelfieConfig } from '@incodetech/core/video-selfie';
3
6
 
7
+ /**
8
+ * Allowlisted keys for overridable Lottie animations
9
+ */
10
+ declare type AnimationKey = 'id.tutorial.front' | 'id.tutorial.back' | 'id.tutorial.passport' | 'id.flip' | 'id.processing' | 'selfie.tutorial' | 'loader.spinner';
11
+
12
+ /**
13
+ * A customer-supplied replacement for a built-in Lottie animation.
14
+ *
15
+ * - `LottieAnimationData` — a parsed Lottie JSON object.
16
+ * - `{ url }` — fetched and cached at runtime.
17
+ * - `{ animationData }` — explicit object form.
18
+ */
19
+ declare type AnimationOverride = LottieAnimationData | {
20
+ url: string;
21
+ } | {
22
+ animationData: LottieAnimationData;
23
+ };
24
+
25
+ declare type AnimationOverrides = Partial<Record<AnimationKey, AnimationOverride>>;
26
+
27
+ /**
28
+ * Allowlisted keys for overridable branded SVG illustrations
29
+ */
30
+ declare type AssetKey = 'faceMatch.success' | 'faceMatch.fail' | 'documentCapture.tutorial' | 'id.uploadScreen' | 'id.ageVerification.dob' | 'id.ageVerification.scan' | 'id.ageVerification.privacy' | 'videoSelfie.success' | 'videoSelfie.fail' | 'videoSelfie.tutorial.permission' | 'videoSelfie.tutorial.selfie' | 'videoSelfie.tutorial.frontId' | 'videoSelfie.tutorial.backId' | 'videoSelfie.tutorial.poa' | 'videoSelfie.tutorial.questions' | 'videoSelfie.tutorial.speech' | 'loader.spinner';
31
+
32
+ /**
33
+ * A customer-supplied replacement for a built-in SVG illustration.
34
+ *
35
+ * - `string` — a URL, or raw `<svg …>` markup (detected by a leading `<`).
36
+ * - `{ url }` — fetched and rendered via `<img>`; no script execution.
37
+ * - `{ raw }` — inline markup; sanitized before injection.
38
+ * - `{ svg }` — a precompiled component, for build-time integrations.
39
+ */
40
+ declare type AssetOverride = string | {
41
+ url: string;
42
+ } | {
43
+ raw: string;
44
+ } | {
45
+ svg: SvgComponent;
46
+ };
47
+
48
+ declare type AssetOverrides = Partial<Record<AssetKey, AssetOverride>>;
49
+
50
+ /**
51
+ * A module `config` intersected with the per-instance override maps. Typed at
52
+ * the UI boundary so core config types (e.g. `IdCaptureConfig`) stay untouched;
53
+ * `FlowConfig` also declares the maps directly.
54
+ */
55
+ declare type ConfigWithOverrides<TConfig> = TConfig & InstanceOverrides;
56
+
4
57
  /**
5
58
  * Extra context passed to `onFinish` alongside the result. Lets a host decide
6
59
  * how to react to the terminal state without inspecting the DOM. Only the
@@ -21,12 +74,16 @@ declare type IncodeFinishMeta = {
21
74
  sdkOwnsTerminalScreen?: boolean;
22
75
  };
23
76
 
24
- declare type IncodeModuleProps<TConfig, TResult = void, TManager = unknown> = {
77
+ declare type IncodeModuleProps<TConfig, TResult = void, TManager = unknown, TConfigInput = ConfigWithOverrides<TConfig>> = {
25
78
  /**
26
79
  * Module configuration required to render the flow.
27
80
  * For Web Components, this is typically assigned via `element.config = ...`.
81
+ *
82
+ * Also carries optional per-instance `assets`/`animations` override maps;
83
+ * they override the global `setup({ uiConfig })` values for this
84
+ * element only and are ignored by the core manager.
28
85
  */
29
- config?: TConfig;
86
+ config?: TConfigInput;
30
87
  /**
31
88
  * Optional pre-built manager. When provided, the module does not create or manage the manager lifecycle.
32
89
  */
@@ -53,12 +110,32 @@ declare type IncodeModuleProps<TConfig, TResult = void, TManager = unknown> = {
53
110
  };
54
111
 
55
112
  /**
56
- * Video Selfie UI component. Records + streams a multi-step, camera-switching
57
- * session and renders a live preview with per-step auto-capture guidance.
113
+ * Per-instance asset/animation overrides for a single mounted SDK module.
58
114
  *
59
- * @see {@link createVideoSelfieRecordingManager} for headless usage.
115
+ * These ride on the module's `config` prop and are published once at the
116
+ * module root by `registerIncodeModuleElement`, so a deep `<Asset>`/`<AnimatedAsset>`
117
+ * reads them via {@link useInstanceOverrides} without any prop drilling.
60
118
  */
61
- export declare const VideoSelfie: FC<VideoSelfieProps>;
119
+ declare type InstanceOverrides = {
120
+ assets?: AssetOverrides;
121
+ animations?: AnimationOverrides;
122
+ };
123
+
124
+ declare type LottieAnimationData = {
125
+ fr: number;
126
+ v: string;
127
+ ip: number;
128
+ op: number;
129
+ w: number;
130
+ h: number;
131
+ };
132
+
133
+ /** An SVG imported as a Preact component (the `?react` import shape). */
134
+ declare type SvgComponent = FunctionComponent<SVGProps<SVGSVGElement>>;
135
+
136
+ export declare const VideoSelfie: FC<Omit<VideoSelfieProps, "config"> & {
137
+ config?: (Omit<unknown, never> & DeepPartial<Pick<unknown, never>>) | undefined;
138
+ }>;
62
139
 
63
140
  /** Props for the {@link VideoSelfie} component. */
64
141
  declare type VideoSelfieProps = IncodeModuleProps<VideoSelfieConfig>;