@incodetech/prizma-core-screens 0.1.0

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 (497) hide show
  1. package/README.md +74 -0
  2. package/dist/CaptureOverlay.css +55 -0
  3. package/dist/CaptureOverlay.d.ts +34 -0
  4. package/dist/CaptureOverlay.js +32 -0
  5. package/dist/CaptureScreen.d.ts +51 -0
  6. package/dist/CaptureScreen.js +30 -0
  7. package/dist/CurpConfirmScreen.d.ts +33 -0
  8. package/dist/CurpConfirmScreen.js +29 -0
  9. package/dist/CurpEnterScreen.d.ts +51 -0
  10. package/dist/CurpEnterScreen.js +77 -0
  11. package/dist/CurpGenerateScreen.d.ts +47 -0
  12. package/dist/CurpGenerateScreen.js +57 -0
  13. package/dist/CurpLayout.css +92 -0
  14. package/dist/CurpProcessingScreen.d.ts +32 -0
  15. package/dist/CurpProcessingScreen.js +29 -0
  16. package/dist/CurpResultScreen.d.ts +37 -0
  17. package/dist/CurpResultScreen.js +36 -0
  18. package/dist/CurpStrings.d.ts +170 -0
  19. package/dist/CurpStrings.js +16 -0
  20. package/dist/DataSharingConsentConsentScreen.d.ts +73 -0
  21. package/dist/DataSharingConsentConsentScreen.js +120 -0
  22. package/dist/DataSharingConsentLayout.css +78 -0
  23. package/dist/DataSharingConsentStrings.d.ts +96 -0
  24. package/dist/DataSharingConsentStrings.js +38 -0
  25. package/dist/DemoScreensEndScreen.d.ts +33 -0
  26. package/dist/DemoScreensEndScreen.js +27 -0
  27. package/dist/DemoScreensStrings.d.ts +11 -0
  28. package/dist/DemoScreensStrings.js +19 -0
  29. package/dist/DocumentCaptureCaptureScreen.d.ts +53 -0
  30. package/dist/DocumentCaptureCaptureScreen.js +51 -0
  31. package/dist/DocumentCaptureCommonIssuesScreen.d.ts +32 -0
  32. package/dist/DocumentCaptureCommonIssuesScreen.js +45 -0
  33. package/dist/DocumentCaptureConfirmImageScreen.d.ts +38 -0
  34. package/dist/DocumentCaptureConfirmImageScreen.js +34 -0
  35. package/dist/DocumentCaptureConfirmUploadScreen.d.ts +43 -0
  36. package/dist/DocumentCaptureConfirmUploadScreen.js +29 -0
  37. package/dist/DocumentCaptureGenericErrorScreen.d.ts +36 -0
  38. package/dist/DocumentCaptureGenericErrorScreen.js +30 -0
  39. package/dist/DocumentCaptureIllustration.d.ts +45 -0
  40. package/dist/DocumentCaptureIllustration.js +7 -0
  41. package/dist/DocumentCaptureLayout.css +226 -0
  42. package/dist/DocumentCaptureMethodSelectionScreen.d.ts +45 -0
  43. package/dist/DocumentCaptureMethodSelectionScreen.js +70 -0
  44. package/dist/DocumentCaptureNextPageScreen.d.ts +33 -0
  45. package/dist/DocumentCaptureNextPageScreen.js +28 -0
  46. package/dist/DocumentCaptureNoConnectionScreen.d.ts +28 -0
  47. package/dist/DocumentCaptureNoConnectionScreen.js +29 -0
  48. package/dist/DocumentCaptureStrings.d.ts +158 -0
  49. package/dist/DocumentCaptureStrings.js +21 -0
  50. package/dist/DocumentCaptureTutorialScreen.d.ts +36 -0
  51. package/dist/DocumentCaptureTutorialScreen.js +27 -0
  52. package/dist/EkybAddressDetailsScreen.d.ts +61 -0
  53. package/dist/EkybAddressDetailsScreen.js +63 -0
  54. package/dist/EkybBusinessDetailsScreen.d.ts +55 -0
  55. package/dist/EkybBusinessDetailsScreen.js +57 -0
  56. package/dist/EkybCountryScreen.d.ts +52 -0
  57. package/dist/EkybCountryScreen.js +58 -0
  58. package/dist/EkybErrorScreen.d.ts +30 -0
  59. package/dist/EkybErrorScreen.js +24 -0
  60. package/dist/EkybOwnersScreen.d.ts +73 -0
  61. package/dist/EkybOwnersScreen.js +87 -0
  62. package/dist/EkybProcessingScreen.d.ts +28 -0
  63. package/dist/EkybProcessingScreen.js +22 -0
  64. package/dist/EkybStrings.d.ts +200 -0
  65. package/dist/EkybStrings.js +27 -0
  66. package/dist/EkybSuccessScreen.d.ts +28 -0
  67. package/dist/EkybSuccessScreen.js +22 -0
  68. package/dist/EkycDetailsScreen.d.ts +65 -0
  69. package/dist/EkycDetailsScreen.js +81 -0
  70. package/dist/EkycErrorScreen.d.ts +32 -0
  71. package/dist/EkycErrorScreen.js +26 -0
  72. package/dist/EkycLayout.css +39 -0
  73. package/dist/EkycLicenseScreen.d.ts +21 -0
  74. package/dist/EkycLicenseScreen.js +68 -0
  75. package/dist/EkycProcessingScreen.d.ts +26 -0
  76. package/dist/EkycProcessingScreen.js +20 -0
  77. package/dist/EkycStrings.d.ts +112 -0
  78. package/dist/EkycStrings.js +34 -0
  79. package/dist/EkycSuccessScreen.d.ts +29 -0
  80. package/dist/EkycSuccessScreen.js +23 -0
  81. package/dist/ElectronicSignatureDrawScreen.d.ts +57 -0
  82. package/dist/ElectronicSignatureDrawScreen.js +53 -0
  83. package/dist/ElectronicSignatureErrorScreen.d.ts +31 -0
  84. package/dist/ElectronicSignatureErrorScreen.js +25 -0
  85. package/dist/ElectronicSignatureLayout.css +80 -0
  86. package/dist/ElectronicSignatureReviewScreen.d.ts +51 -0
  87. package/dist/ElectronicSignatureReviewScreen.js +36 -0
  88. package/dist/ElectronicSignatureStrings.d.ts +50 -0
  89. package/dist/ElectronicSignatureStrings.js +12 -0
  90. package/dist/ElectronicSignatureSuccessScreen.d.ts +30 -0
  91. package/dist/ElectronicSignatureSuccessScreen.js +24 -0
  92. package/dist/EmailInputErrorScreen.d.ts +34 -0
  93. package/dist/EmailInputErrorScreen.js +28 -0
  94. package/dist/EmailInputOtpScreen.d.ts +56 -0
  95. package/dist/EmailInputOtpScreen.js +82 -0
  96. package/dist/EmailInputProcessingScreen.d.ts +29 -0
  97. package/dist/EmailInputProcessingScreen.js +23 -0
  98. package/dist/EmailInputStrings.d.ts +130 -0
  99. package/dist/EmailInputStrings.js +19 -0
  100. package/dist/EmailInputSuccessScreen.d.ts +37 -0
  101. package/dist/EmailInputSuccessScreen.js +31 -0
  102. package/dist/EmailInputVerifyScreen.d.ts +46 -0
  103. package/dist/EmailInputVerifyScreen.js +55 -0
  104. package/dist/ErrorScreensScreen.d.ts +62 -0
  105. package/dist/ErrorScreensScreen.js +71 -0
  106. package/dist/ErrorScreensStrings.d.ts +31 -0
  107. package/dist/ErrorScreensStrings.js +28 -0
  108. package/dist/FaceCaptureCapturingScreen.d.ts +32 -0
  109. package/dist/FaceCaptureCapturingScreen.js +53 -0
  110. package/dist/FaceCaptureLayout.css +18 -0
  111. package/dist/FaceCaptureLoadingScreen.d.ts +32 -0
  112. package/dist/FaceCaptureLoadingScreen.js +30 -0
  113. package/dist/FaceCaptureManualCaptureScreen.d.ts +32 -0
  114. package/dist/FaceCaptureManualCaptureScreen.js +27 -0
  115. package/dist/FaceCaptureNoConnectionScreen.d.ts +30 -0
  116. package/dist/FaceCaptureNoConnectionScreen.js +31 -0
  117. package/dist/FaceCaptureResultErrorScreen.d.ts +40 -0
  118. package/dist/FaceCaptureResultErrorScreen.js +32 -0
  119. package/dist/FaceCaptureResultSuccessScreen.d.ts +25 -0
  120. package/dist/FaceCaptureResultSuccessScreen.js +27 -0
  121. package/dist/FaceCaptureStrings.d.ts +62 -0
  122. package/dist/FaceCaptureStrings.js +14 -0
  123. package/dist/FaceCaptureTutorialScreen.d.ts +29 -0
  124. package/dist/FaceCaptureTutorialScreen.js +20 -0
  125. package/dist/FaceMatchComparisonCompactScreen.d.ts +26 -0
  126. package/dist/FaceMatchComparisonCompactScreen.js +24 -0
  127. package/dist/FaceMatchComparisonScreen.d.ts +80 -0
  128. package/dist/FaceMatchComparisonScreen.js +81 -0
  129. package/dist/FaceMatchLayout.css +264 -0
  130. package/dist/FaceMatchResultScreen.d.ts +50 -0
  131. package/dist/FaceMatchResultScreen.js +52 -0
  132. package/dist/FaceMatchStrings.d.ts +66 -0
  133. package/dist/FaceMatchStrings.js +21 -0
  134. package/dist/FormScreen.css +78 -0
  135. package/dist/FormScreen.d.ts +101 -0
  136. package/dist/FormScreen.js +36 -0
  137. package/dist/FormsChoiceScreen.d.ts +66 -0
  138. package/dist/FormsChoiceScreen.js +63 -0
  139. package/dist/FormsErrorScreen.d.ts +28 -0
  140. package/dist/FormsErrorScreen.js +22 -0
  141. package/dist/FormsFieldScreen.d.ts +66 -0
  142. package/dist/FormsFieldScreen.js +85 -0
  143. package/dist/FormsLayout.css +45 -0
  144. package/dist/FormsLongFormScreen.d.ts +70 -0
  145. package/dist/FormsLongFormScreen.js +149 -0
  146. package/dist/FormsStrings.d.ts +181 -0
  147. package/dist/FormsStrings.js +36 -0
  148. package/dist/FormsSuccessScreen.d.ts +32 -0
  149. package/dist/FormsSuccessScreen.js +26 -0
  150. package/dist/GeolocationBrowserStepsScreen.d.ts +56 -0
  151. package/dist/GeolocationBrowserStepsScreen.js +95 -0
  152. package/dist/GeolocationErrorScreen.d.ts +43 -0
  153. package/dist/GeolocationErrorScreen.js +56 -0
  154. package/dist/GeolocationIntroScreen.d.ts +49 -0
  155. package/dist/GeolocationIntroScreen.js +38 -0
  156. package/dist/GeolocationPermissionScreen.d.ts +38 -0
  157. package/dist/GeolocationPermissionScreen.js +30 -0
  158. package/dist/GeolocationStrings.d.ts +157 -0
  159. package/dist/GeolocationStrings.js +28 -0
  160. package/dist/IdCaptureAgeVerificationScreen.d.ts +25 -0
  161. package/dist/IdCaptureAgeVerificationScreen.js +38 -0
  162. package/dist/IdCaptureAnalyzingScreen.d.ts +41 -0
  163. package/dist/IdCaptureAnalyzingScreen.js +30 -0
  164. package/dist/IdCaptureCommonIssuesScreen.d.ts +31 -0
  165. package/dist/IdCaptureCommonIssuesScreen.js +49 -0
  166. package/dist/IdCaptureDocumentErrorScreen.d.ts +37 -0
  167. package/dist/IdCaptureDocumentErrorScreen.js +30 -0
  168. package/dist/IdCaptureDocumentSelectionScreen.d.ts +41 -0
  169. package/dist/IdCaptureDocumentSelectionScreen.js +49 -0
  170. package/dist/IdCaptureFlipScreen.d.ts +31 -0
  171. package/dist/IdCaptureFlipScreen.js +26 -0
  172. package/dist/IdCaptureHoldOnScreen.d.ts +28 -0
  173. package/dist/IdCaptureHoldOnScreen.js +22 -0
  174. package/dist/IdCaptureLayout.css +111 -0
  175. package/dist/IdCaptureNoConnectionScreen.d.ts +28 -0
  176. package/dist/IdCaptureNoConnectionScreen.js +29 -0
  177. package/dist/IdCapturePermissionScreen.d.ts +34 -0
  178. package/dist/IdCapturePermissionScreen.js +45 -0
  179. package/dist/IdCaptureResultScreen.d.ts +59 -0
  180. package/dist/IdCaptureResultScreen.js +89 -0
  181. package/dist/IdCaptureStageScreen.d.ts +69 -0
  182. package/dist/IdCaptureStageScreen.js +88 -0
  183. package/dist/IdCaptureStrings.d.ts +199 -0
  184. package/dist/IdCaptureStrings.js +15 -0
  185. package/dist/IdCaptureTutorialScreen.d.ts +36 -0
  186. package/dist/IdCaptureTutorialScreen.js +30 -0
  187. package/dist/ListScreen.d.ts +95 -0
  188. package/dist/ListScreen.js +46 -0
  189. package/dist/LoaderScreen.d.ts +32 -0
  190. package/dist/LoaderScreen.js +27 -0
  191. package/dist/LoadersStrings.d.ts +20 -0
  192. package/dist/LoadersStrings.js +16 -0
  193. package/dist/NfcCommonIssuesScreen.d.ts +35 -0
  194. package/dist/NfcCommonIssuesScreen.js +48 -0
  195. package/dist/NfcErrorScreen.d.ts +41 -0
  196. package/dist/NfcErrorScreen.js +27 -0
  197. package/dist/NfcLayout.css +36 -0
  198. package/dist/NfcProcessingScreen.d.ts +28 -0
  199. package/dist/NfcProcessingScreen.js +22 -0
  200. package/dist/NfcScanningScreen.d.ts +66 -0
  201. package/dist/NfcScanningScreen.js +61 -0
  202. package/dist/NfcSettingsScreen.d.ts +53 -0
  203. package/dist/NfcSettingsScreen.js +57 -0
  204. package/dist/NfcStrings.d.ts +112 -0
  205. package/dist/NfcStrings.js +7 -0
  206. package/dist/NfcSuccessScreen.d.ts +28 -0
  207. package/dist/NfcSuccessScreen.js +22 -0
  208. package/dist/NfcSymbolScreen.d.ts +39 -0
  209. package/dist/NfcSymbolScreen.js +32 -0
  210. package/dist/NfcTryAgainScreen.d.ts +53 -0
  211. package/dist/NfcTryAgainScreen.js +45 -0
  212. package/dist/NfcTutorialScreen.d.ts +33 -0
  213. package/dist/NfcTutorialScreen.js +24 -0
  214. package/dist/PermissionsAllowScreen.d.ts +44 -0
  215. package/dist/PermissionsAllowScreen.js +38 -0
  216. package/dist/PermissionsBrowserStepsScreen.d.ts +42 -0
  217. package/dist/PermissionsBrowserStepsScreen.js +86 -0
  218. package/dist/PermissionsRequiredScreen.d.ts +37 -0
  219. package/dist/PermissionsRequiredScreen.js +51 -0
  220. package/dist/PermissionsStrings.d.ts +70 -0
  221. package/dist/PermissionsStrings.js +36 -0
  222. package/dist/PhoneInputErrorScreen.d.ts +37 -0
  223. package/dist/PhoneInputErrorScreen.js +47 -0
  224. package/dist/PhoneInputLayout.css +61 -0
  225. package/dist/PhoneInputOtpScreen.d.ts +37 -0
  226. package/dist/PhoneInputOtpScreen.js +44 -0
  227. package/dist/PhoneInputSnaLoadingScreen.d.ts +23 -0
  228. package/dist/PhoneInputSnaLoadingScreen.js +17 -0
  229. package/dist/PhoneInputStrings.d.ts +121 -0
  230. package/dist/PhoneInputStrings.js +13 -0
  231. package/dist/PhoneInputSuccessScreen.d.ts +23 -0
  232. package/dist/PhoneInputSuccessScreen.js +17 -0
  233. package/dist/PhoneInputVerifyScreen.d.ts +41 -0
  234. package/dist/PhoneInputVerifyScreen.js +71 -0
  235. package/dist/ProcessingScreen.d.ts +42 -0
  236. package/dist/ProcessingScreen.js +21 -0
  237. package/dist/QualifiedSignatureAcceptScreen.d.ts +71 -0
  238. package/dist/QualifiedSignatureAcceptScreen.js +86 -0
  239. package/dist/QualifiedSignatureDocumentScreen.d.ts +62 -0
  240. package/dist/QualifiedSignatureDocumentScreen.js +56 -0
  241. package/dist/QualifiedSignatureLayout.css +206 -0
  242. package/dist/QualifiedSignatureProcessingScreen.d.ts +46 -0
  243. package/dist/QualifiedSignatureProcessingScreen.js +48 -0
  244. package/dist/QualifiedSignatureResultScreen.d.ts +65 -0
  245. package/dist/QualifiedSignatureResultScreen.js +76 -0
  246. package/dist/QualifiedSignatureReviewScreen.d.ts +49 -0
  247. package/dist/QualifiedSignatureReviewScreen.js +40 -0
  248. package/dist/QualifiedSignatureStrings.d.ts +222 -0
  249. package/dist/QualifiedSignatureStrings.js +25 -0
  250. package/dist/QualifiedSignatureUploadScreen.d.ts +42 -0
  251. package/dist/QualifiedSignatureUploadScreen.js +35 -0
  252. package/dist/ResultScreen.d.ts +93 -0
  253. package/dist/ResultScreen.js +37 -0
  254. package/dist/ReviewScreen.d.ts +81 -0
  255. package/dist/ReviewScreen.js +56 -0
  256. package/dist/ScreenLayout.css +469 -0
  257. package/dist/ScreenNav.css +43 -0
  258. package/dist/ScreenNav.d.ts +26 -0
  259. package/dist/ScreenNav.js +13 -0
  260. package/dist/ScreenShell.css +130 -0
  261. package/dist/ScreenShell.d.ts +45 -0
  262. package/dist/ScreenShell.js +22 -0
  263. package/dist/TutorialScreen.d.ts +70 -0
  264. package/dist/TutorialScreen.js +24 -0
  265. package/dist/VideoSelfieCameraStepsScreen.d.ts +47 -0
  266. package/dist/VideoSelfieCameraStepsScreen.js +56 -0
  267. package/dist/VideoSelfieErrorScreen.d.ts +63 -0
  268. package/dist/VideoSelfieErrorScreen.js +94 -0
  269. package/dist/VideoSelfieFlipCameraScreen.d.ts +34 -0
  270. package/dist/VideoSelfieFlipCameraScreen.js +38 -0
  271. package/dist/VideoSelfieFlipIdScreen.d.ts +34 -0
  272. package/dist/VideoSelfieFlipIdScreen.js +29 -0
  273. package/dist/VideoSelfieIdCaptureScreen.d.ts +75 -0
  274. package/dist/VideoSelfieIdCaptureScreen.js +86 -0
  275. package/dist/VideoSelfieLayout.css +259 -0
  276. package/dist/VideoSelfiePermissionRequiredScreen.d.ts +35 -0
  277. package/dist/VideoSelfiePermissionRequiredScreen.js +45 -0
  278. package/dist/VideoSelfiePermissionScreen.d.ts +51 -0
  279. package/dist/VideoSelfiePermissionScreen.js +44 -0
  280. package/dist/VideoSelfieProcessingScreen.d.ts +28 -0
  281. package/dist/VideoSelfieProcessingScreen.js +22 -0
  282. package/dist/VideoSelfieRetryScreen.d.ts +31 -0
  283. package/dist/VideoSelfieRetryScreen.js +32 -0
  284. package/dist/VideoSelfieSelfieCaptureScreen.d.ts +52 -0
  285. package/dist/VideoSelfieSelfieCaptureScreen.js +58 -0
  286. package/dist/VideoSelfieSpeakScreen.d.ts +64 -0
  287. package/dist/VideoSelfieSpeakScreen.js +95 -0
  288. package/dist/VideoSelfieStrings.d.ts +196 -0
  289. package/dist/VideoSelfieStrings.js +14 -0
  290. package/dist/VideoSelfieSuccessScreen.d.ts +25 -0
  291. package/dist/VideoSelfieSuccessScreen.js +19 -0
  292. package/dist/VideoSelfieTutorialScreen.d.ts +33 -0
  293. package/dist/VideoSelfieTutorialScreen.js +41 -0
  294. package/dist/ViewfinderScreen.css +107 -0
  295. package/dist/ViewfinderScreen.d.ts +40 -0
  296. package/dist/ViewfinderScreen.js +26 -0
  297. package/dist/WatchlistBusinessFormScreen.d.ts +61 -0
  298. package/dist/WatchlistBusinessFormScreen.js +85 -0
  299. package/dist/WatchlistBusinessProcessingScreen.d.ts +25 -0
  300. package/dist/WatchlistBusinessProcessingScreen.js +19 -0
  301. package/dist/WatchlistBusinessStrings.d.ts +95 -0
  302. package/dist/WatchlistBusinessStrings.js +19 -0
  303. package/dist/WatchlistBusinessSuccessScreen.d.ts +29 -0
  304. package/dist/WatchlistBusinessSuccessScreen.js +23 -0
  305. package/dist/flows.d.ts +216 -0
  306. package/dist/flows.js +516 -0
  307. package/dist/index.d.ts +145 -0
  308. package/dist/index.js +130 -0
  309. package/dist/styles.css +33 -0
  310. package/dist/types.d.ts +56 -0
  311. package/dist/types.js +8 -0
  312. package/package.json +689 -0
  313. package/samples/camera-surface.png +0 -0
  314. package/samples/document-still.png +0 -0
  315. package/samples/document-thumbnail.png +0 -0
  316. package/samples/face-match-bottom.png +0 -0
  317. package/samples/face-match-left.png +0 -0
  318. package/samples/face-match-right.png +0 -0
  319. package/samples/id-back-blur.png +0 -0
  320. package/samples/id-back-dark.png +0 -0
  321. package/samples/id-back-glare.png +0 -0
  322. package/samples/id-back.png +0 -0
  323. package/samples/id-front-blur.png +0 -0
  324. package/samples/id-front-dark.png +0 -0
  325. package/samples/id-front-glare.png +0 -0
  326. package/samples/id-front.png +0 -0
  327. package/samples/id-passport.png +0 -0
  328. package/samples/selfie-glasses.png +0 -0
  329. package/samples/selfie-hat.png +0 -0
  330. package/samples/selfie-mask.png +0 -0
  331. package/samples/selfie.png +0 -0
  332. package/samples/video-selfie-camera.png +0 -0
  333. package/src/CaptureOverlay.css +55 -0
  334. package/src/CaptureOverlay.tsx +56 -0
  335. package/src/CaptureScreen.tsx +121 -0
  336. package/src/CurpConfirmScreen.tsx +75 -0
  337. package/src/CurpEnterScreen.tsx +149 -0
  338. package/src/CurpGenerateScreen.tsx +172 -0
  339. package/src/CurpLayout.css +92 -0
  340. package/src/CurpProcessingScreen.tsx +75 -0
  341. package/src/CurpResultScreen.tsx +80 -0
  342. package/src/CurpStrings.ts +178 -0
  343. package/src/DataSharingConsentConsentScreen.tsx +223 -0
  344. package/src/DataSharingConsentLayout.css +78 -0
  345. package/src/DataSharingConsentStrings.ts +144 -0
  346. package/src/DemoScreensEndScreen.tsx +56 -0
  347. package/src/DemoScreensStrings.ts +31 -0
  348. package/src/DocumentCaptureCaptureScreen.tsx +135 -0
  349. package/src/DocumentCaptureCommonIssuesScreen.tsx +97 -0
  350. package/src/DocumentCaptureConfirmImageScreen.tsx +112 -0
  351. package/src/DocumentCaptureConfirmUploadScreen.tsx +113 -0
  352. package/src/DocumentCaptureGenericErrorScreen.tsx +82 -0
  353. package/src/DocumentCaptureIllustration.tsx +153 -0
  354. package/src/DocumentCaptureLayout.css +226 -0
  355. package/src/DocumentCaptureMethodSelectionScreen.tsx +151 -0
  356. package/src/DocumentCaptureNextPageScreen.tsx +82 -0
  357. package/src/DocumentCaptureNoConnectionScreen.tsx +77 -0
  358. package/src/DocumentCaptureStrings.ts +192 -0
  359. package/src/DocumentCaptureTutorialScreen.tsx +79 -0
  360. package/src/EkybAddressDetailsScreen.tsx +200 -0
  361. package/src/EkybBusinessDetailsScreen.tsx +147 -0
  362. package/src/EkybCountryScreen.tsx +124 -0
  363. package/src/EkybErrorScreen.tsx +61 -0
  364. package/src/EkybOwnersScreen.tsx +230 -0
  365. package/src/EkybProcessingScreen.tsx +57 -0
  366. package/src/EkybStrings.ts +239 -0
  367. package/src/EkybSuccessScreen.tsx +54 -0
  368. package/src/EkycDetailsScreen.tsx +178 -0
  369. package/src/EkycErrorScreen.tsx +64 -0
  370. package/src/EkycLayout.css +39 -0
  371. package/src/EkycLicenseScreen.tsx +164 -0
  372. package/src/EkycProcessingScreen.tsx +60 -0
  373. package/src/EkycStrings.ts +157 -0
  374. package/src/EkycSuccessScreen.tsx +63 -0
  375. package/src/ElectronicSignatureDrawScreen.tsx +127 -0
  376. package/src/ElectronicSignatureErrorScreen.tsx +74 -0
  377. package/src/ElectronicSignatureLayout.css +80 -0
  378. package/src/ElectronicSignatureReviewScreen.tsx +106 -0
  379. package/src/ElectronicSignatureStrings.ts +67 -0
  380. package/src/ElectronicSignatureSuccessScreen.tsx +67 -0
  381. package/src/EmailInputErrorScreen.tsx +67 -0
  382. package/src/EmailInputOtpScreen.tsx +169 -0
  383. package/src/EmailInputProcessingScreen.tsx +67 -0
  384. package/src/EmailInputStrings.ts +166 -0
  385. package/src/EmailInputSuccessScreen.tsx +72 -0
  386. package/src/EmailInputVerifyScreen.tsx +117 -0
  387. package/src/ErrorScreensScreen.tsx +149 -0
  388. package/src/ErrorScreensStrings.ts +66 -0
  389. package/src/FaceCaptureCapturingScreen.tsx +99 -0
  390. package/src/FaceCaptureLayout.css +18 -0
  391. package/src/FaceCaptureLoadingScreen.tsx +65 -0
  392. package/src/FaceCaptureManualCaptureScreen.tsx +94 -0
  393. package/src/FaceCaptureNoConnectionScreen.tsx +73 -0
  394. package/src/FaceCaptureResultErrorScreen.tsx +86 -0
  395. package/src/FaceCaptureResultSuccessScreen.tsx +49 -0
  396. package/src/FaceCaptureStrings.ts +92 -0
  397. package/src/FaceCaptureTutorialScreen.tsx +77 -0
  398. package/src/FaceMatchComparisonCompactScreen.tsx +51 -0
  399. package/src/FaceMatchComparisonScreen.tsx +201 -0
  400. package/src/FaceMatchLayout.css +264 -0
  401. package/src/FaceMatchResultScreen.tsx +117 -0
  402. package/src/FaceMatchStrings.ts +95 -0
  403. package/src/FormScreen.css +78 -0
  404. package/src/FormScreen.tsx +213 -0
  405. package/src/FormsChoiceScreen.tsx +150 -0
  406. package/src/FormsErrorScreen.tsx +61 -0
  407. package/src/FormsFieldScreen.tsx +198 -0
  408. package/src/FormsLayout.css +45 -0
  409. package/src/FormsLongFormScreen.tsx +295 -0
  410. package/src/FormsStrings.ts +243 -0
  411. package/src/FormsSuccessScreen.tsx +67 -0
  412. package/src/GeolocationBrowserStepsScreen.tsx +173 -0
  413. package/src/GeolocationErrorScreen.tsx +113 -0
  414. package/src/GeolocationIntroScreen.tsx +100 -0
  415. package/src/GeolocationPermissionScreen.tsx +88 -0
  416. package/src/GeolocationStrings.ts +193 -0
  417. package/src/IdCaptureAgeVerificationScreen.tsx +84 -0
  418. package/src/IdCaptureAnalyzingScreen.tsx +94 -0
  419. package/src/IdCaptureCommonIssuesScreen.tsx +109 -0
  420. package/src/IdCaptureDocumentErrorScreen.tsx +92 -0
  421. package/src/IdCaptureDocumentSelectionScreen.tsx +100 -0
  422. package/src/IdCaptureFlipScreen.tsx +66 -0
  423. package/src/IdCaptureHoldOnScreen.tsx +51 -0
  424. package/src/IdCaptureLayout.css +111 -0
  425. package/src/IdCaptureNoConnectionScreen.tsx +68 -0
  426. package/src/IdCapturePermissionScreen.tsx +102 -0
  427. package/src/IdCaptureResultScreen.tsx +197 -0
  428. package/src/IdCaptureStageScreen.tsx +241 -0
  429. package/src/IdCaptureStrings.ts +228 -0
  430. package/src/IdCaptureTutorialScreen.tsx +99 -0
  431. package/src/ListScreen.tsx +213 -0
  432. package/src/LoaderScreen.tsx +69 -0
  433. package/src/LoadersStrings.ts +38 -0
  434. package/src/NfcCommonIssuesScreen.tsx +104 -0
  435. package/src/NfcErrorScreen.tsx +83 -0
  436. package/src/NfcLayout.css +36 -0
  437. package/src/NfcProcessingScreen.tsx +57 -0
  438. package/src/NfcScanningScreen.tsx +127 -0
  439. package/src/NfcSettingsScreen.tsx +124 -0
  440. package/src/NfcStrings.ts +127 -0
  441. package/src/NfcSuccessScreen.tsx +56 -0
  442. package/src/NfcSymbolScreen.tsx +85 -0
  443. package/src/NfcTryAgainScreen.tsx +114 -0
  444. package/src/NfcTutorialScreen.tsx +76 -0
  445. package/src/PermissionsAllowScreen.tsx +90 -0
  446. package/src/PermissionsBrowserStepsScreen.tsx +158 -0
  447. package/src/PermissionsRequiredScreen.tsx +118 -0
  448. package/src/PermissionsStrings.ts +129 -0
  449. package/src/PhoneInputErrorScreen.tsx +104 -0
  450. package/src/PhoneInputLayout.css +61 -0
  451. package/src/PhoneInputOtpScreen.tsx +126 -0
  452. package/src/PhoneInputSnaLoadingScreen.tsx +61 -0
  453. package/src/PhoneInputStrings.ts +136 -0
  454. package/src/PhoneInputSuccessScreen.tsx +56 -0
  455. package/src/PhoneInputVerifyScreen.tsx +153 -0
  456. package/src/ProcessingScreen.tsx +97 -0
  457. package/src/QualifiedSignatureAcceptScreen.tsx +198 -0
  458. package/src/QualifiedSignatureDocumentScreen.tsx +124 -0
  459. package/src/QualifiedSignatureLayout.css +206 -0
  460. package/src/QualifiedSignatureProcessingScreen.tsx +112 -0
  461. package/src/QualifiedSignatureResultScreen.tsx +146 -0
  462. package/src/QualifiedSignatureReviewScreen.tsx +113 -0
  463. package/src/QualifiedSignatureStrings.ts +256 -0
  464. package/src/QualifiedSignatureUploadScreen.tsx +81 -0
  465. package/src/ResultScreen.tsx +211 -0
  466. package/src/ReviewScreen.tsx +196 -0
  467. package/src/ScreenLayout.css +469 -0
  468. package/src/ScreenNav.css +43 -0
  469. package/src/ScreenNav.tsx +46 -0
  470. package/src/ScreenShell.css +130 -0
  471. package/src/ScreenShell.tsx +66 -0
  472. package/src/TutorialScreen.tsx +166 -0
  473. package/src/VideoSelfieCameraStepsScreen.tsx +145 -0
  474. package/src/VideoSelfieErrorScreen.tsx +168 -0
  475. package/src/VideoSelfieFlipCameraScreen.tsx +88 -0
  476. package/src/VideoSelfieFlipIdScreen.tsx +74 -0
  477. package/src/VideoSelfieIdCaptureScreen.tsx +213 -0
  478. package/src/VideoSelfieLayout.css +259 -0
  479. package/src/VideoSelfiePermissionRequiredScreen.tsx +104 -0
  480. package/src/VideoSelfiePermissionScreen.tsx +102 -0
  481. package/src/VideoSelfieProcessingScreen.tsx +68 -0
  482. package/src/VideoSelfieRetryScreen.tsx +92 -0
  483. package/src/VideoSelfieSelfieCaptureScreen.tsx +122 -0
  484. package/src/VideoSelfieSpeakScreen.tsx +237 -0
  485. package/src/VideoSelfieStrings.ts +222 -0
  486. package/src/VideoSelfieSuccessScreen.tsx +64 -0
  487. package/src/VideoSelfieTutorialScreen.tsx +129 -0
  488. package/src/ViewfinderScreen.css +107 -0
  489. package/src/ViewfinderScreen.tsx +113 -0
  490. package/src/WatchlistBusinessFormScreen.tsx +176 -0
  491. package/src/WatchlistBusinessProcessingScreen.tsx +63 -0
  492. package/src/WatchlistBusinessStrings.ts +121 -0
  493. package/src/WatchlistBusinessSuccessScreen.tsx +67 -0
  494. package/src/flows.ts +711 -0
  495. package/src/index.ts +591 -0
  496. package/src/styles.css +33 -0
  497. package/src/types.ts +69 -0
@@ -0,0 +1,63 @@
1
+ import React, { forwardRef } from 'react';
2
+ import {
3
+ PrizmaProcessingScreen,
4
+ type PrizmaProcessingScreenProps,
5
+ } from './ProcessingScreen';
6
+ import type { PrizmaScreenActionHandler, PrizmaScreenOverrides } from './types';
7
+ import type { EkycStrings } from './EkycStrings';
8
+ import './ScreenLayout.css';
9
+
10
+ export interface EkycSuccessScreenProps
11
+ extends Omit<
12
+ PrizmaProcessingScreenProps,
13
+ 'status' | 'title' | 'subtitle' | 'verifiedLabel' | 'navLabel'
14
+ > {
15
+ /** Module copy — this screen reads the `success` slice. */
16
+ strings: EkycStrings;
17
+ screenId?: string;
18
+ overrides?: PrizmaScreenOverrides;
19
+ onAction?: PrizmaScreenActionHandler;
20
+ }
21
+
22
+ /**
23
+ * eKYC — the submitted verdict, built on the Processing archetype
24
+ * (GUIDELINES.md §6-C, `PrizmaProcessingScreen`).
25
+ *
26
+ * Figma: the purple `eKYC.success` section (2101:7969). A centred positive mark
27
+ * over a bare H2 ("Information submitted!") with **no subtitle and no CTA** —
28
+ * the module hands control straight back to the flow, so it sits on C while its
29
+ * sibling error verdict sits on F. That split follows the archetype rule rather
30
+ * than the module's own symmetry, the same call `EmailInputSuccessScreen`
31
+ * settled (DEVIATIONS #EI-4).
32
+ *
33
+ * The mark is Core's outline status icon via `PrizmaTitle`'s icon slot — the
34
+ * module Figma still draws the two-tone filled disc, one icon sweep behind
35
+ * (DEVIATIONS #15, unchanged here).
36
+ */
37
+ export const EkycSuccessScreen = forwardRef<HTMLDivElement, EkycSuccessScreenProps>(
38
+ (
39
+ {
40
+ strings,
41
+ screenId = 'ekyc-success',
42
+ overrides,
43
+ onAction,
44
+ ...shell
45
+ },
46
+ ref,
47
+ ) => (
48
+ <PrizmaProcessingScreen
49
+ ref={ref}
50
+ status="success"
51
+ title={strings.success.title}
52
+ verifiedLabel={strings.verifiedLabel}
53
+ navLabel={strings.navLabel}
54
+ screenId={screenId}
55
+ overrides={overrides}
56
+ onAction={onAction}
57
+ {...shell}
58
+ />
59
+ ),
60
+ );
61
+ EkycSuccessScreen.displayName = 'EkycSuccessScreen';
62
+
63
+ export default EkycSuccessScreen;
@@ -0,0 +1,127 @@
1
+ import React, { forwardRef } from 'react';
2
+ import { PrizmaSignaturePad } from '@incodetech/prizma-core-web/signature-pad';
3
+ import { PrizmaFormScreen, type PrizmaFormScreenProps } from './FormScreen';
4
+ import type { PrizmaScreenActionHandler, PrizmaScreenOverrides } from './types';
5
+ import type {
6
+ ElectronicSignatureDrawState,
7
+ ElectronicSignatureStrings,
8
+ } from './ElectronicSignatureStrings';
9
+ import './ScreenLayout.css';
10
+
11
+ export interface ElectronicSignatureDrawScreenProps
12
+ extends Omit<
13
+ PrizmaFormScreenProps,
14
+ | 'title'
15
+ | 'subtitle'
16
+ | 'ctaLabel'
17
+ | 'ctaDisabled'
18
+ | 'verifiedLabel'
19
+ | 'children'
20
+ | 'navLabel'
21
+ | 'linkLabel'
22
+ | 'linkContent'
23
+ > {
24
+ /** Module copy — this screen reads the `draw` slice. */
25
+ strings: ElectronicSignatureStrings;
26
+ /** Which purple section to render: `draw` (empty) or `signed`. Default `draw`. */
27
+ state?: ElectronicSignatureDrawState;
28
+ /**
29
+ * Core's own extension point for the drawing engine
30
+ * (`PrizmaSignaturePad.onCanvasReady`: "consumers wire their drawing engine
31
+ * to the canvas inside this callback"). Forwarded untouched so a host — or
32
+ * the hub gallery, which paints a specimen stroke for the `signed` cell — can
33
+ * put real ink on the pad. The screen itself stays presentational: it holds
34
+ * no state and touches no browser API.
35
+ */
36
+ onCanvasReady?: (canvas: HTMLCanvasElement) => void;
37
+ screenId?: string;
38
+ overrides?: PrizmaScreenOverrides;
39
+ onAction?: PrizmaScreenActionHandler;
40
+ }
41
+
42
+ /**
43
+ * Electronic Signature — the signature-pad screen, built on the Form archetype
44
+ * (GUIDELINES.md §6-E, `PrizmaFormScreen`).
45
+ *
46
+ * ONE screen for both purple pad sections — `eSign.draw` (4116:10325) and
47
+ * `eSign.signed` (4116:10336). Measured against the 390 frames they share an
48
+ * identical skeleton — nav → Title (H2 + H5) → Spacing/32 → the pad → primary
49
+ * CTA → tag — and differ ONLY in what the pad and the CTA are doing. The pad is
50
+ * Core's `PrizmaSignaturePad` (the Figma `Signature pad` component, 6291:56383)
51
+ * verbatim: it owns the 256-tall field, the placeholder, the Spacing/8 to the
52
+ * Clear row and the Clear control itself, so nothing here re-creates any of it.
53
+ *
54
+ * The state axis is a single boolean into Core, and every one of its three
55
+ * visible consequences is Core's own (checked against `SignaturePad.tsx`, not
56
+ * assumed — the #CURP-3 lesson about props that silently do nothing):
57
+ *
58
+ * - `draw` → `isFilled={false}`: the "Sign here" placeholder shows, Core
59
+ * forces the Clear link Disabled (`disabled={disabled || !filled}`),
60
+ * and the primary CTA is disabled — Figma's grey `Done`.
61
+ * - `signed` → `isFilled={true}`: the placeholder is gone, Clear renders as the
62
+ * live blue `tertiary-link`, and the primary CTA is enabled.
63
+ *
64
+ * The ink itself is host-drawn through `onCanvasReady`, because the canvas is a
65
+ * real `<canvas>` whose bitmap only exists once a drawing engine paints it.
66
+ * That is Core's documented division of labour, not a workaround — see the
67
+ * module's DEVIATIONS row and the Core request recorded there.
68
+ *
69
+ * Standing rulings applied: the sections draw a close ✕ at the nav's right,
70
+ * which §3 does not offer and no module hand-rolls (DEVIATIONS #PI-9); the
71
+ * in-flight treatment, if this module ever gains one, rides the CTA rather than
72
+ * the field (#PI-5) — Core explicitly ships no Loading state for the pad.
73
+ */
74
+ export const ElectronicSignatureDrawScreen = forwardRef<
75
+ HTMLDivElement,
76
+ ElectronicSignatureDrawScreenProps
77
+ >(
78
+ (
79
+ {
80
+ strings,
81
+ state = 'draw',
82
+ onCanvasReady,
83
+ screenId = `electronic-signature-${state}`,
84
+ overrides,
85
+ onAction,
86
+ ...shell
87
+ },
88
+ ref,
89
+ ) => {
90
+ const signed = state === 'signed';
91
+
92
+ return (
93
+ <PrizmaFormScreen
94
+ ref={ref}
95
+ title={strings.draw.title}
96
+ subtitle={strings.draw.subtitle}
97
+ ctaLabel={strings.draw.ctaLabel}
98
+ /* `eSign.draw` draws `Done` on Button/Primary/Surface/Disabled — there
99
+ is nothing to submit until the canvas has ink. */
100
+ ctaDisabled={!signed}
101
+ verifiedLabel={strings.verifiedLabel}
102
+ navLabel={strings.navLabel}
103
+ screenId={screenId}
104
+ overrides={overrides}
105
+ onAction={onAction}
106
+ {...shell}
107
+ >
108
+ <PrizmaSignaturePad
109
+ isFilled={signed}
110
+ /* Full-signature sub-type, not the initials one. */
111
+ isInitials={false}
112
+ placeholder={strings.draw.placeholder}
113
+ canvasLabel={strings.draw.canvasLabel}
114
+ clearLabel={strings.draw.clearLabel}
115
+ /* Clearing the canvas is a different flow from submitting it, so it
116
+ emits its own event rather than collapsing into the CTA
117
+ (DEVIATIONS #PI-10). */
118
+ onClear={() => onAction?.({ type: 'secondary', screenId })}
119
+ onCanvasReady={onCanvasReady}
120
+ />
121
+ </PrizmaFormScreen>
122
+ );
123
+ },
124
+ );
125
+ ElectronicSignatureDrawScreen.displayName = 'ElectronicSignatureDrawScreen';
126
+
127
+ export default ElectronicSignatureDrawScreen;
@@ -0,0 +1,74 @@
1
+ import React, { forwardRef } from 'react';
2
+ import { PrizmaResultScreen, type PrizmaResultScreenProps } from './ResultScreen';
3
+ import type { PrizmaScreenActionHandler, PrizmaScreenOverrides } from './types';
4
+ import type { ElectronicSignatureStrings } from './ElectronicSignatureStrings';
5
+ import './ScreenLayout.css';
6
+
7
+ export interface ElectronicSignatureErrorScreenProps
8
+ extends Omit<
9
+ PrizmaResultScreenProps,
10
+ | 'status'
11
+ | 'title'
12
+ | 'subtitle'
13
+ | 'ctaLabel'
14
+ | 'secondaryCtaLabel'
15
+ | 'verifiedLabel'
16
+ | 'navLabel'
17
+ | 'children'
18
+ > {
19
+ /** Module copy — this screen reads the `error` slice. */
20
+ strings: ElectronicSignatureStrings;
21
+ screenId?: string;
22
+ overrides?: PrizmaScreenOverrides;
23
+ onAction?: PrizmaScreenActionHandler;
24
+ }
25
+
26
+ /**
27
+ * Electronic Signature — the failure verdict (`eSign.error`, 6291:67151), built
28
+ * on the Result archetype (GUIDELINES.md §6-F, `PrizmaResultScreen`).
29
+ *
30
+ * Archetype F, not C: the section centres the status block AND draws a primary
31
+ * "Try again" under it, which is the line §6-F draws between the two.
32
+ *
33
+ * The mark is the WARNING status, not the negative one: the section draws the
34
+ * amber `!` disc, and the copy ("we couldn't process it — try again") reports a
35
+ * recoverable failure rather than a rejection. Core renders it as the outline
36
+ * `IconStatusWarning` (DEVIATIONS #15).
37
+ *
38
+ * The module has ONE error section and no `noConnection` family, so this screen
39
+ * ships no `variant` axis and no Wi-Fi glyph — the asymmetry with Phone Input's
40
+ * three-way error is real, not an omission (the #EI-5 precedent). Logo header
41
+ * and tag both stay, as they do on every non-capture screen (#PI-8 / #F-30).
42
+ */
43
+ export const ElectronicSignatureErrorScreen = forwardRef<
44
+ HTMLDivElement,
45
+ ElectronicSignatureErrorScreenProps
46
+ >(
47
+ (
48
+ {
49
+ strings,
50
+ screenId = 'electronic-signature-error',
51
+ overrides,
52
+ onAction,
53
+ ...shell
54
+ },
55
+ ref,
56
+ ) => (
57
+ <PrizmaResultScreen
58
+ ref={ref}
59
+ status="warning"
60
+ title={strings.error.title}
61
+ subtitle={strings.error.subtitle}
62
+ ctaLabel={strings.error.ctaLabel}
63
+ verifiedLabel={strings.verifiedLabel}
64
+ navLabel={strings.navLabel}
65
+ screenId={screenId}
66
+ overrides={overrides}
67
+ onAction={onAction}
68
+ {...shell}
69
+ />
70
+ ),
71
+ );
72
+ ElectronicSignatureErrorScreen.displayName = 'ElectronicSignatureErrorScreen';
73
+
74
+ export default ElectronicSignatureErrorScreen;
@@ -0,0 +1,80 @@
1
+ /* Electronic Signature — module layout additions.
2
+ *
3
+ * TWO blocks, and neither declares an archetype value. The content column, the
4
+ * 24px gutters, the title → middle Spacing/24, the middle → CTA band, the
5
+ * CTA column and the anchored footer all stay the foundation's
6
+ * (`ScreenLayout.css`). Everything below shapes CONTENT the design system does
7
+ * not own — the same class of exception as Document Capture's uploaded-file
8
+ * card and standalone encrypted notice (DEVIATIONS #DC-26 / #DC-27), and built
9
+ * the same way: from Core's own tokens, with no primitive re-implemented and no
10
+ * `!important`.
11
+ */
12
+
13
+ /* ── The agreement frame (`eSign.default`) ───────────────────────────────────
14
+ * The purple section draws the document as a rendered page inside a 342-wide
15
+ * box: `Border/Neutral/100` hairline, `Border/Radius/small`, clipped, with a
16
+ * 4px scroll indicator riding its right edge. Core ships no document viewer and
17
+ * no scrollbar primitive — `PrizmaCardDocumentContainer` is a filename + action
18
+ * ROW, not a page frame (DEVIATIONS #DC-27 settled the same point for the
19
+ * uploaded-file card) — so the frame is composed here from the identical Card
20
+ * tokens and the page itself arrives through the screen's `document` slot, the
21
+ * same host-supplied-content contract the capture screens use for `camera`
22
+ * (DEVIATIONS #FM-22).
23
+ *
24
+ * Figma's page is an artboard image that bleeds to the frame edge; a TEXT
25
+ * agreement needs a gutter, so the frame carries Spacing/16 and the paragraph
26
+ * rhythm below it — content padding, never screen spacing.
27
+ *
28
+ * The scroll is the browser's own: the designed 4px track + thumb would be an
29
+ * invented primitive, and releasing overflow is the same idiom CURP used to fit
30
+ * a taller-than-844 Figma page into the 390×844 reference (DEVIATIONS #CURP-1).
31
+ * CORE REQUEST: a `PrizmaDocumentViewer` / page-frame primitive — Electronic
32
+ * Signature is the first module to need one and consent flows will need it next.
33
+ *
34
+ * The screen itself is archetype G (`PrizmaListScreen`), whose `__list` middle
35
+ * already fills the space between the title block and the CTA band — so there is
36
+ * no centring to cancel and no stage rule here. The single LAYOUT line below is
37
+ * the overflow release, identical to `.qualified-signature-document`; everything
38
+ * else on this class shapes CONTENT the design system does not own.
39
+ */
40
+ .electronic-signature-document {
41
+ flex: 1 1 auto;
42
+ min-height: 0;
43
+ overflow-y: auto;
44
+ box-sizing: border-box;
45
+ padding: var(--prizma-spacing-16);
46
+ background-color: var(--prizma-surface-neutral-0);
47
+ border: var(--prizma-border-width-regular) solid var(--prizma-border-neutral-100);
48
+ border-radius: var(--prizma-border-radius-small);
49
+ text-align: start;
50
+ }
51
+
52
+ /* The agreement's own typography — Body/M Regular on Text/Body/500, the pair
53
+ Core uses for every secondary block of prose (`CardList.css`, `Card.css`).
54
+ Applied to the host's markup by descendant selector so the document slot
55
+ takes plain `<h4>` / `<p>` and needs no inline styles. */
56
+ .electronic-signature-document > * {
57
+ margin: 0;
58
+ }
59
+
60
+ .electronic-signature-document > * + * {
61
+ margin-top: var(--prizma-spacing-12);
62
+ }
63
+
64
+ .electronic-signature-document p {
65
+ font-family: var(--prizma-body-family);
66
+ font-weight: var(--prizma-body-m-regular-font-weight);
67
+ font-size: var(--prizma-body-m-regular-font-size);
68
+ line-height: var(--prizma-body-m-regular-line-height);
69
+ letter-spacing: var(--prizma-body-m-regular-letter-spacing);
70
+ color: var(--prizma-text-body-500-secondary);
71
+ }
72
+
73
+ .electronic-signature-document h4 {
74
+ font-family: var(--prizma-headline-family);
75
+ font-weight: var(--prizma-headline-h5-font-weight);
76
+ font-size: var(--prizma-headline-h5-font-size);
77
+ line-height: var(--prizma-headline-h5-line-height);
78
+ letter-spacing: var(--prizma-headline-h5-letter-spacing);
79
+ color: var(--prizma-text-body-800-primary);
80
+ }
@@ -0,0 +1,106 @@
1
+ import React, { forwardRef, type ReactNode } from 'react';
2
+ import { PrizmaListScreen, type PrizmaListScreenProps } from './ListScreen';
3
+ import type { PrizmaScreenActionHandler, PrizmaScreenOverrides } from './types';
4
+ import type { ElectronicSignatureStrings } from './ElectronicSignatureStrings';
5
+ import './ScreenLayout.css';
6
+ import './ElectronicSignatureLayout.css';
7
+
8
+ export interface ElectronicSignatureReviewScreenProps
9
+ extends Omit<
10
+ PrizmaListScreenProps,
11
+ | 'status'
12
+ | 'title'
13
+ | 'subtitle'
14
+ | 'glyph'
15
+ | 'children'
16
+ | 'listAlign'
17
+ | 'disclaimer'
18
+ | 'ctaLabel'
19
+ | 'secondaryCtaLabel'
20
+ | 'linkLabel'
21
+ | 'verifiedLabel'
22
+ | 'navLabel'
23
+ > {
24
+ /** Module copy — this screen reads the `review` slice. */
25
+ strings: ElectronicSignatureStrings;
26
+ /**
27
+ * The agreement itself: a rendered page (`<img>` of the PDF, host markup,
28
+ * plain `<h4>` / `<p>` prose). Runtime DATA supplied by the host, never copy
29
+ * the design system owns — the same slot contract the capture screens use for
30
+ * `camera` (GUIDELINES §10) and Qualified Signature uses for its contract page.
31
+ * Core ships no document viewer; the frame around this node is the module's,
32
+ * built from Core's Card tokens (see `ElectronicSignatureLayout.css`).
33
+ */
34
+ document: ReactNode;
35
+ screenId?: string;
36
+ overrides?: PrizmaScreenOverrides;
37
+ onAction?: PrizmaScreenActionHandler;
38
+ }
39
+
40
+ /**
41
+ * Electronic Signature — the document-review screen (`eSign.default`,
42
+ * 6291:27012), built on the List archetype (GUIDELINES.md §6-G,
43
+ * `PrizmaListScreen`).
44
+ *
45
+ * Archetype G, not H: the frame draws the logo header, a centred H2, a
46
+ * host-supplied agreement page filling the whole middle, one primary CTA and
47
+ * the verified tag — which is G's definition line for line ("content filling
48
+ * the space between the title block and the CTA band"). It is also the shape
49
+ * the sibling `QualifiedSignatureDocumentScreen` already uses for exactly this
50
+ * content, a scrolling contract page.
51
+ *
52
+ * H was the earlier reading and was wrong: H is captured-MEDIA confirmation, it
53
+ * carries no logo by default and it centres its stage, so the module had to
54
+ * override the archetype twice (a `showHeader` opt-in and a local
55
+ * `align-items: stretch` rule) just to hold a document. G needs neither —
56
+ * `showHeader` already defaults to true and `__list` already fills the middle —
57
+ * so the screen now renders ONE archetype call and declares no layout of its
58
+ * own. The only module CSS left is the overflow release on the document frame,
59
+ * the same single-constraint release Qualified Signature and CURP use
60
+ * (DEVIATIONS #CURP-1).
61
+ *
62
+ * One owner rule still overrides the purple section:
63
+ * **No close ✕.** The sibling `eSign.signed` / `eSign.success` sections draw one
64
+ * at the nav's right; GUIDELINES §3 stands and there is no slot for it
65
+ * (DEVIATIONS #PI-9).
66
+ */
67
+ export const ElectronicSignatureReviewScreen = forwardRef<
68
+ HTMLDivElement,
69
+ ElectronicSignatureReviewScreenProps
70
+ >(
71
+ (
72
+ {
73
+ strings,
74
+ document,
75
+ screenId = 'electronic-signature-review',
76
+ overrides,
77
+ onAction,
78
+ ...shell
79
+ },
80
+ ref,
81
+ ) => (
82
+ <PrizmaListScreen
83
+ ref={ref}
84
+ title={strings.review.title}
85
+ ctaLabel={strings.review.ctaLabel}
86
+ verifiedLabel={strings.verifiedLabel}
87
+ navLabel={strings.navLabel}
88
+ screenId={screenId}
89
+ overrides={overrides}
90
+ onAction={onAction}
91
+ {...shell}
92
+ >
93
+ <div
94
+ className="electronic-signature-document"
95
+ role="region"
96
+ aria-label={strings.review.documentLabel}
97
+ tabIndex={0}
98
+ >
99
+ {document}
100
+ </div>
101
+ </PrizmaListScreen>
102
+ ),
103
+ );
104
+ ElectronicSignatureReviewScreen.displayName = 'ElectronicSignatureReviewScreen';
105
+
106
+ export default ElectronicSignatureReviewScreen;
@@ -0,0 +1,67 @@
1
+ // Electronic Signature — the module's whole copy surface.
2
+ //
3
+ // Every string the four screen families render lives here, so a screen carries
4
+ // no hardcoded English and a host can translate the module by supplying one
5
+ // object (README rule 3, the same contract as `PhoneInputStrings` /
6
+ // `CurpStrings`).
7
+ //
8
+ // Figma: `✍️ Signature (Electronic) - Screens specs + Localization`
9
+ // (`kUsDigsC8Mq1WobTewF0R6`, page `5:13191`, section `4116:10249`). Five purple
10
+ // parent sections — `eSign.default` · `eSign.draw` · `eSign.signed` ·
11
+ // `eSign.success` · `eSign.error` — with ES / PT columns beside the EN one.
12
+
13
+ /**
14
+ * The two states the signature-pad screen draws — `eSign.draw` (empty canvas,
15
+ * placeholder visible, both actions inert) and `eSign.signed` (ink on the
16
+ * canvas, Clear live, Done live). One screen, one Figma-drawn axis.
17
+ */
18
+ export type ElectronicSignatureDrawState = 'draw' | 'signed';
19
+
20
+ export interface ElectronicSignatureStrings {
21
+ /** "verified by" attribution copy for the footer tag. */
22
+ verifiedLabel: string;
23
+ /** Accessible name for the logo row. */
24
+ navLabel: string;
25
+
26
+ /** `eSign.default` — read the agreement before signing it. */
27
+ review: {
28
+ /** H2 — "Review your document". */
29
+ title: string;
30
+ /** Accessible name for the scrolling document frame. */
31
+ documentLabel: string;
32
+ /** Primary CTA — "Continue". */
33
+ ctaLabel: string;
34
+ };
35
+
36
+ /** `eSign.draw` + `eSign.signed` — the signature pad. */
37
+ draw: {
38
+ /** H2 — "Draw your signature". */
39
+ title: string;
40
+ /** H5 — "Use your finger or mouse". */
41
+ subtitle: string;
42
+ /** Canvas placeholder, shown while the pad is empty — "Sign here". */
43
+ placeholder: string;
44
+ /** Accessible name for the drawing canvas (Core has no default). */
45
+ canvasLabel: string;
46
+ /** Core's Clear-canvas tertiary link — "Clear canvas". */
47
+ clearLabel: string;
48
+ /** Primary CTA — "Done". */
49
+ ctaLabel: string;
50
+ };
51
+
52
+ /** `eSign.success` — the verdict, reported with no action. */
53
+ success: {
54
+ /** H2 — "Signed successfully!". */
55
+ title: string;
56
+ };
57
+
58
+ /** `eSign.error` — the single failure verdict the module draws. */
59
+ error: {
60
+ /** H2 — "We couldn't process your signature". */
61
+ title: string;
62
+ /** H5 — "Please try again.". */
63
+ subtitle: string;
64
+ /** Primary CTA — "Try again". */
65
+ ctaLabel: string;
66
+ };
67
+ }
@@ -0,0 +1,67 @@
1
+ import React, { forwardRef } from 'react';
2
+ import {
3
+ PrizmaProcessingScreen,
4
+ type PrizmaProcessingScreenProps,
5
+ } from './ProcessingScreen';
6
+ import type { PrizmaScreenActionHandler, PrizmaScreenOverrides } from './types';
7
+ import type { ElectronicSignatureStrings } from './ElectronicSignatureStrings';
8
+ import './ScreenLayout.css';
9
+
10
+ export interface ElectronicSignatureSuccessScreenProps
11
+ extends Omit<
12
+ PrizmaProcessingScreenProps,
13
+ 'status' | 'title' | 'subtitle' | 'verifiedLabel' | 'navLabel'
14
+ > {
15
+ /** Module copy — this screen reads the `success` slice. */
16
+ strings: ElectronicSignatureStrings;
17
+ screenId?: string;
18
+ overrides?: PrizmaScreenOverrides;
19
+ onAction?: PrizmaScreenActionHandler;
20
+ }
21
+
22
+ /**
23
+ * Electronic Signature — the signed verdict (`eSign.success`, 4116:10347),
24
+ * built on the Processing archetype (GUIDELINES.md §6-C,
25
+ * `PrizmaProcessingScreen`).
26
+ *
27
+ * Archetype C, not F: the section draws a centred status mark and one line and
28
+ * offers **no button at all** — §6-F reserves C for exactly that pure case, and
29
+ * the same split was already ruled on between two sibling modules (Email
30
+ * Input's success is C, Phone Input's is F — DEVIATIONS #EI-4). Reaching for F
31
+ * here would render an empty CTA band.
32
+ *
33
+ * The mark is Core's outline `IconStatusPositive` at Title/Icon/Size 40, where
34
+ * the section draws a filled green disc at a smaller size — the icon-outline
35
+ * sweep settled that for every module (DEVIATIONS #15). The section's close ✕
36
+ * is not composed (DEVIATIONS #PI-9).
37
+ */
38
+ export const ElectronicSignatureSuccessScreen = forwardRef<
39
+ HTMLDivElement,
40
+ ElectronicSignatureSuccessScreenProps
41
+ >(
42
+ (
43
+ {
44
+ strings,
45
+ screenId = 'electronic-signature-success',
46
+ overrides,
47
+ onAction,
48
+ ...shell
49
+ },
50
+ ref,
51
+ ) => (
52
+ <PrizmaProcessingScreen
53
+ ref={ref}
54
+ status="success"
55
+ title={strings.success.title}
56
+ verifiedLabel={strings.verifiedLabel}
57
+ navLabel={strings.navLabel}
58
+ screenId={screenId}
59
+ overrides={overrides}
60
+ onAction={onAction}
61
+ {...shell}
62
+ />
63
+ ),
64
+ );
65
+ ElectronicSignatureSuccessScreen.displayName = 'ElectronicSignatureSuccessScreen';
66
+
67
+ export default ElectronicSignatureSuccessScreen;
@@ -0,0 +1,67 @@
1
+ import React, { forwardRef } from 'react';
2
+ import { PrizmaResultScreen, type PrizmaResultScreenProps } from './ResultScreen';
3
+ import type { PrizmaScreenActionHandler, PrizmaScreenOverrides } from './types';
4
+ import type { EmailInputStrings } from './EmailInputStrings';
5
+ import './ScreenLayout.css';
6
+
7
+ export interface EmailInputErrorScreenProps
8
+ extends Omit<
9
+ PrizmaResultScreenProps,
10
+ 'status' | 'title' | 'subtitle' | 'ctaLabel' | 'verifiedLabel' | 'navLabel'
11
+ > {
12
+ /** Module copy — this screen reads the `error` slice. */
13
+ strings: EmailInputStrings;
14
+ screenId?: string;
15
+ overrides?: PrizmaScreenOverrides;
16
+ onAction?: PrizmaScreenActionHandler;
17
+ }
18
+
19
+ /**
20
+ * Email Input — the failure verdict, built on the Result archetype
21
+ * (GUIDELINES.md §6-F, `PrizmaResultScreen`).
22
+ *
23
+ * Figma: the purple `email.error` section, which holds exactly ONE screen —
24
+ * `email.error.somethingWentWrong`. A centred status mark + H2 over the
25
+ * "Try again" CTA band (40:33375).
26
+ *
27
+ * DEVIATIONS #EI-5 — unlike its Phone Input sibling this module draws no
28
+ * `tryAgain` split and, notably, **no connectivity section anywhere in the
29
+ * file**: `email.error` (3058:103116) has a single child section, and the four
30
+ * purple parents are verifyEmail / OTP / error / success with no no-connection
31
+ * screen among them. So this screen ships NO `variant` prop and no Wi-Fi
32
+ * glyph — there is nothing to switch between, and adding the axis would be
33
+ * inventing a state the spec does not have. The #PI-8 ruling still applies to
34
+ * the one screen that exists: the header and the verified tag stay.
35
+ *
36
+ * The mark is Core's outline status icon; the module Figma still draws the
37
+ * two-tone filled disc, one icon sweep behind (DEVIATIONS #15).
38
+ */
39
+ export const EmailInputErrorScreen = forwardRef<HTMLDivElement, EmailInputErrorScreenProps>(
40
+ (
41
+ {
42
+ strings,
43
+ screenId = 'email-input-error',
44
+ overrides,
45
+ onAction,
46
+ ...shell
47
+ },
48
+ ref,
49
+ ) => (
50
+ <PrizmaResultScreen
51
+ ref={ref}
52
+ status="error"
53
+ title={strings.error.title}
54
+ subtitle={strings.error.subtitle}
55
+ ctaLabel={strings.error.ctaLabel}
56
+ verifiedLabel={strings.verifiedLabel}
57
+ navLabel={strings.navLabel}
58
+ screenId={screenId}
59
+ overrides={overrides}
60
+ onAction={onAction}
61
+ {...shell}
62
+ />
63
+ ),
64
+ );
65
+ EmailInputErrorScreen.displayName = 'EmailInputErrorScreen';
66
+
67
+ export default EmailInputErrorScreen;