@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,31 @@
1
+ import React from 'react';
2
+ import { type PrizmaResultScreenProps } from './ResultScreen';
3
+ import type { PrizmaScreenActionHandler, PrizmaScreenOverrides } from './types';
4
+ import type { ElectronicSignatureStrings } from './ElectronicSignatureStrings';
5
+ import './ScreenLayout.css';
6
+ export interface ElectronicSignatureErrorScreenProps extends Omit<PrizmaResultScreenProps, 'status' | 'title' | 'subtitle' | 'ctaLabel' | 'secondaryCtaLabel' | 'verifiedLabel' | 'navLabel' | 'children'> {
7
+ /** Module copy — this screen reads the `error` slice. */
8
+ strings: ElectronicSignatureStrings;
9
+ screenId?: string;
10
+ overrides?: PrizmaScreenOverrides;
11
+ onAction?: PrizmaScreenActionHandler;
12
+ }
13
+ /**
14
+ * Electronic Signature — the failure verdict (`eSign.error`, 6291:67151), built
15
+ * on the Result archetype (GUIDELINES.md §6-F, `PrizmaResultScreen`).
16
+ *
17
+ * Archetype F, not C: the section centres the status block AND draws a primary
18
+ * "Try again" under it, which is the line §6-F draws between the two.
19
+ *
20
+ * The mark is the WARNING status, not the negative one: the section draws the
21
+ * amber `!` disc, and the copy ("we couldn't process it — try again") reports a
22
+ * recoverable failure rather than a rejection. Core renders it as the outline
23
+ * `IconStatusWarning` (DEVIATIONS #15).
24
+ *
25
+ * The module has ONE error section and no `noConnection` family, so this screen
26
+ * ships no `variant` axis and no Wi-Fi glyph — the asymmetry with Phone Input's
27
+ * three-way error is real, not an omission (the #EI-5 precedent). Logo header
28
+ * and tag both stay, as they do on every non-capture screen (#PI-8 / #F-30).
29
+ */
30
+ export declare const ElectronicSignatureErrorScreen: React.ForwardRefExoticComponent<ElectronicSignatureErrorScreenProps & React.RefAttributes<HTMLDivElement>>;
31
+ export default ElectronicSignatureErrorScreen;
@@ -0,0 +1,25 @@
1
+ 'use client';
2
+ import { jsx as _jsx } from "react/jsx-runtime";
3
+ import { forwardRef } from 'react';
4
+ import { PrizmaResultScreen } from './ResultScreen';
5
+ import './ScreenLayout.css';
6
+ /**
7
+ * Electronic Signature — the failure verdict (`eSign.error`, 6291:67151), built
8
+ * on the Result archetype (GUIDELINES.md §6-F, `PrizmaResultScreen`).
9
+ *
10
+ * Archetype F, not C: the section centres the status block AND draws a primary
11
+ * "Try again" under it, which is the line §6-F draws between the two.
12
+ *
13
+ * The mark is the WARNING status, not the negative one: the section draws the
14
+ * amber `!` disc, and the copy ("we couldn't process it — try again") reports a
15
+ * recoverable failure rather than a rejection. Core renders it as the outline
16
+ * `IconStatusWarning` (DEVIATIONS #15).
17
+ *
18
+ * The module has ONE error section and no `noConnection` family, so this screen
19
+ * ships no `variant` axis and no Wi-Fi glyph — the asymmetry with Phone Input's
20
+ * three-way error is real, not an omission (the #EI-5 precedent). Logo header
21
+ * and tag both stay, as they do on every non-capture screen (#PI-8 / #F-30).
22
+ */
23
+ export const ElectronicSignatureErrorScreen = forwardRef(({ strings, screenId = 'electronic-signature-error', overrides, onAction, ...shell }, ref) => (_jsx(PrizmaResultScreen, { ref: ref, status: "warning", title: strings.error.title, subtitle: strings.error.subtitle, ctaLabel: strings.error.ctaLabel, verifiedLabel: strings.verifiedLabel, navLabel: strings.navLabel, screenId: screenId, overrides: overrides, onAction: onAction, ...shell })));
24
+ ElectronicSignatureErrorScreen.displayName = 'ElectronicSignatureErrorScreen';
25
+ 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,51 @@
1
+ import React, { type ReactNode } from 'react';
2
+ import { 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
+ export interface ElectronicSignatureReviewScreenProps extends Omit<PrizmaListScreenProps, 'status' | 'title' | 'subtitle' | 'glyph' | 'children' | 'listAlign' | 'disclaimer' | 'ctaLabel' | 'secondaryCtaLabel' | 'linkLabel' | 'verifiedLabel' | 'navLabel'> {
8
+ /** Module copy — this screen reads the `review` slice. */
9
+ strings: ElectronicSignatureStrings;
10
+ /**
11
+ * The agreement itself: a rendered page (`<img>` of the PDF, host markup,
12
+ * plain `<h4>` / `<p>` prose). Runtime DATA supplied by the host, never copy
13
+ * the design system owns — the same slot contract the capture screens use for
14
+ * `camera` (GUIDELINES §10) and Qualified Signature uses for its contract page.
15
+ * Core ships no document viewer; the frame around this node is the module's,
16
+ * built from Core's Card tokens (see `ElectronicSignatureLayout.css`).
17
+ */
18
+ document: ReactNode;
19
+ screenId?: string;
20
+ overrides?: PrizmaScreenOverrides;
21
+ onAction?: PrizmaScreenActionHandler;
22
+ }
23
+ /**
24
+ * Electronic Signature — the document-review screen (`eSign.default`,
25
+ * 6291:27012), built on the List archetype (GUIDELINES.md §6-G,
26
+ * `PrizmaListScreen`).
27
+ *
28
+ * Archetype G, not H: the frame draws the logo header, a centred H2, a
29
+ * host-supplied agreement page filling the whole middle, one primary CTA and
30
+ * the verified tag — which is G's definition line for line ("content filling
31
+ * the space between the title block and the CTA band"). It is also the shape
32
+ * the sibling `QualifiedSignatureDocumentScreen` already uses for exactly this
33
+ * content, a scrolling contract page.
34
+ *
35
+ * H was the earlier reading and was wrong: H is captured-MEDIA confirmation, it
36
+ * carries no logo by default and it centres its stage, so the module had to
37
+ * override the archetype twice (a `showHeader` opt-in and a local
38
+ * `align-items: stretch` rule) just to hold a document. G needs neither —
39
+ * `showHeader` already defaults to true and `__list` already fills the middle —
40
+ * so the screen now renders ONE archetype call and declares no layout of its
41
+ * own. The only module CSS left is the overflow release on the document frame,
42
+ * the same single-constraint release Qualified Signature and CURP use
43
+ * (DEVIATIONS #CURP-1).
44
+ *
45
+ * One owner rule still overrides the purple section:
46
+ * **No close ✕.** The sibling `eSign.signed` / `eSign.success` sections draw one
47
+ * at the nav's right; GUIDELINES §3 stands and there is no slot for it
48
+ * (DEVIATIONS #PI-9).
49
+ */
50
+ export declare const ElectronicSignatureReviewScreen: React.ForwardRefExoticComponent<ElectronicSignatureReviewScreenProps & React.RefAttributes<HTMLDivElement>>;
51
+ export default ElectronicSignatureReviewScreen;
@@ -0,0 +1,36 @@
1
+ 'use client';
2
+ import { jsx as _jsx } from "react/jsx-runtime";
3
+ import { forwardRef } from 'react';
4
+ import { PrizmaListScreen } from './ListScreen';
5
+ import './ScreenLayout.css';
6
+ import './ElectronicSignatureLayout.css';
7
+ /**
8
+ * Electronic Signature — the document-review screen (`eSign.default`,
9
+ * 6291:27012), built on the List archetype (GUIDELINES.md §6-G,
10
+ * `PrizmaListScreen`).
11
+ *
12
+ * Archetype G, not H: the frame draws the logo header, a centred H2, a
13
+ * host-supplied agreement page filling the whole middle, one primary CTA and
14
+ * the verified tag — which is G's definition line for line ("content filling
15
+ * the space between the title block and the CTA band"). It is also the shape
16
+ * the sibling `QualifiedSignatureDocumentScreen` already uses for exactly this
17
+ * content, a scrolling contract page.
18
+ *
19
+ * H was the earlier reading and was wrong: H is captured-MEDIA confirmation, it
20
+ * carries no logo by default and it centres its stage, so the module had to
21
+ * override the archetype twice (a `showHeader` opt-in and a local
22
+ * `align-items: stretch` rule) just to hold a document. G needs neither —
23
+ * `showHeader` already defaults to true and `__list` already fills the middle —
24
+ * so the screen now renders ONE archetype call and declares no layout of its
25
+ * own. The only module CSS left is the overflow release on the document frame,
26
+ * the same single-constraint release Qualified Signature and CURP use
27
+ * (DEVIATIONS #CURP-1).
28
+ *
29
+ * One owner rule still overrides the purple section:
30
+ * **No close ✕.** The sibling `eSign.signed` / `eSign.success` sections draw one
31
+ * at the nav's right; GUIDELINES §3 stands and there is no slot for it
32
+ * (DEVIATIONS #PI-9).
33
+ */
34
+ export const ElectronicSignatureReviewScreen = forwardRef(({ strings, document, screenId = 'electronic-signature-review', overrides, onAction, ...shell }, ref) => (_jsx(PrizmaListScreen, { ref: ref, title: strings.review.title, ctaLabel: strings.review.ctaLabel, verifiedLabel: strings.verifiedLabel, navLabel: strings.navLabel, screenId: screenId, overrides: overrides, onAction: onAction, ...shell, children: _jsx("div", { className: "electronic-signature-document", role: "region", "aria-label": strings.review.documentLabel, tabIndex: 0, children: document }) })));
35
+ ElectronicSignatureReviewScreen.displayName = 'ElectronicSignatureReviewScreen';
36
+ export default ElectronicSignatureReviewScreen;
@@ -0,0 +1,50 @@
1
+ /**
2
+ * The two states the signature-pad screen draws — `eSign.draw` (empty canvas,
3
+ * placeholder visible, both actions inert) and `eSign.signed` (ink on the
4
+ * canvas, Clear live, Done live). One screen, one Figma-drawn axis.
5
+ */
6
+ export type ElectronicSignatureDrawState = 'draw' | 'signed';
7
+ export interface ElectronicSignatureStrings {
8
+ /** "verified by" attribution copy for the footer tag. */
9
+ verifiedLabel: string;
10
+ /** Accessible name for the logo row. */
11
+ navLabel: string;
12
+ /** `eSign.default` — read the agreement before signing it. */
13
+ review: {
14
+ /** H2 — "Review your document". */
15
+ title: string;
16
+ /** Accessible name for the scrolling document frame. */
17
+ documentLabel: string;
18
+ /** Primary CTA — "Continue". */
19
+ ctaLabel: string;
20
+ };
21
+ /** `eSign.draw` + `eSign.signed` — the signature pad. */
22
+ draw: {
23
+ /** H2 — "Draw your signature". */
24
+ title: string;
25
+ /** H5 — "Use your finger or mouse". */
26
+ subtitle: string;
27
+ /** Canvas placeholder, shown while the pad is empty — "Sign here". */
28
+ placeholder: string;
29
+ /** Accessible name for the drawing canvas (Core has no default). */
30
+ canvasLabel: string;
31
+ /** Core's Clear-canvas tertiary link — "Clear canvas". */
32
+ clearLabel: string;
33
+ /** Primary CTA — "Done". */
34
+ ctaLabel: string;
35
+ };
36
+ /** `eSign.success` — the verdict, reported with no action. */
37
+ success: {
38
+ /** H2 — "Signed successfully!". */
39
+ title: string;
40
+ };
41
+ /** `eSign.error` — the single failure verdict the module draws. */
42
+ error: {
43
+ /** H2 — "We couldn't process your signature". */
44
+ title: string;
45
+ /** H5 — "Please try again.". */
46
+ subtitle: string;
47
+ /** Primary CTA — "Try again". */
48
+ ctaLabel: string;
49
+ };
50
+ }
@@ -0,0 +1,12 @@
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
+ export {};
@@ -0,0 +1,30 @@
1
+ import React from 'react';
2
+ import { type PrizmaProcessingScreenProps } from './ProcessingScreen';
3
+ import type { PrizmaScreenActionHandler, PrizmaScreenOverrides } from './types';
4
+ import type { ElectronicSignatureStrings } from './ElectronicSignatureStrings';
5
+ import './ScreenLayout.css';
6
+ export interface ElectronicSignatureSuccessScreenProps extends Omit<PrizmaProcessingScreenProps, 'status' | 'title' | 'subtitle' | 'verifiedLabel' | 'navLabel'> {
7
+ /** Module copy — this screen reads the `success` slice. */
8
+ strings: ElectronicSignatureStrings;
9
+ screenId?: string;
10
+ overrides?: PrizmaScreenOverrides;
11
+ onAction?: PrizmaScreenActionHandler;
12
+ }
13
+ /**
14
+ * Electronic Signature — the signed verdict (`eSign.success`, 4116:10347),
15
+ * built on the Processing archetype (GUIDELINES.md §6-C,
16
+ * `PrizmaProcessingScreen`).
17
+ *
18
+ * Archetype C, not F: the section draws a centred status mark and one line and
19
+ * offers **no button at all** — §6-F reserves C for exactly that pure case, and
20
+ * the same split was already ruled on between two sibling modules (Email
21
+ * Input's success is C, Phone Input's is F — DEVIATIONS #EI-4). Reaching for F
22
+ * here would render an empty CTA band.
23
+ *
24
+ * The mark is Core's outline `IconStatusPositive` at Title/Icon/Size 40, where
25
+ * the section draws a filled green disc at a smaller size — the icon-outline
26
+ * sweep settled that for every module (DEVIATIONS #15). The section's close ✕
27
+ * is not composed (DEVIATIONS #PI-9).
28
+ */
29
+ export declare const ElectronicSignatureSuccessScreen: React.ForwardRefExoticComponent<ElectronicSignatureSuccessScreenProps & React.RefAttributes<HTMLDivElement>>;
30
+ export default ElectronicSignatureSuccessScreen;
@@ -0,0 +1,24 @@
1
+ 'use client';
2
+ import { jsx as _jsx } from "react/jsx-runtime";
3
+ import { forwardRef } from 'react';
4
+ import { PrizmaProcessingScreen, } from './ProcessingScreen';
5
+ import './ScreenLayout.css';
6
+ /**
7
+ * Electronic Signature — the signed verdict (`eSign.success`, 4116:10347),
8
+ * built on the Processing archetype (GUIDELINES.md §6-C,
9
+ * `PrizmaProcessingScreen`).
10
+ *
11
+ * Archetype C, not F: the section draws a centred status mark and one line and
12
+ * offers **no button at all** — §6-F reserves C for exactly that pure case, and
13
+ * the same split was already ruled on between two sibling modules (Email
14
+ * Input's success is C, Phone Input's is F — DEVIATIONS #EI-4). Reaching for F
15
+ * here would render an empty CTA band.
16
+ *
17
+ * The mark is Core's outline `IconStatusPositive` at Title/Icon/Size 40, where
18
+ * the section draws a filled green disc at a smaller size — the icon-outline
19
+ * sweep settled that for every module (DEVIATIONS #15). The section's close ✕
20
+ * is not composed (DEVIATIONS #PI-9).
21
+ */
22
+ export const ElectronicSignatureSuccessScreen = forwardRef(({ strings, screenId = 'electronic-signature-success', overrides, onAction, ...shell }, ref) => (_jsx(PrizmaProcessingScreen, { ref: ref, status: "success", title: strings.success.title, verifiedLabel: strings.verifiedLabel, navLabel: strings.navLabel, screenId: screenId, overrides: overrides, onAction: onAction, ...shell })));
23
+ ElectronicSignatureSuccessScreen.displayName = 'ElectronicSignatureSuccessScreen';
24
+ export default ElectronicSignatureSuccessScreen;
@@ -0,0 +1,34 @@
1
+ import React from 'react';
2
+ import { type PrizmaResultScreenProps } from './ResultScreen';
3
+ import type { PrizmaScreenActionHandler, PrizmaScreenOverrides } from './types';
4
+ import type { EmailInputStrings } from './EmailInputStrings';
5
+ import './ScreenLayout.css';
6
+ export interface EmailInputErrorScreenProps extends Omit<PrizmaResultScreenProps, 'status' | 'title' | 'subtitle' | 'ctaLabel' | 'verifiedLabel' | 'navLabel'> {
7
+ /** Module copy — this screen reads the `error` slice. */
8
+ strings: EmailInputStrings;
9
+ screenId?: string;
10
+ overrides?: PrizmaScreenOverrides;
11
+ onAction?: PrizmaScreenActionHandler;
12
+ }
13
+ /**
14
+ * Email Input — the failure verdict, built on the Result archetype
15
+ * (GUIDELINES.md §6-F, `PrizmaResultScreen`).
16
+ *
17
+ * Figma: the purple `email.error` section, which holds exactly ONE screen —
18
+ * `email.error.somethingWentWrong`. A centred status mark + H2 over the
19
+ * "Try again" CTA band (40:33375).
20
+ *
21
+ * DEVIATIONS #EI-5 — unlike its Phone Input sibling this module draws no
22
+ * `tryAgain` split and, notably, **no connectivity section anywhere in the
23
+ * file**: `email.error` (3058:103116) has a single child section, and the four
24
+ * purple parents are verifyEmail / OTP / error / success with no no-connection
25
+ * screen among them. So this screen ships NO `variant` prop and no Wi-Fi
26
+ * glyph — there is nothing to switch between, and adding the axis would be
27
+ * inventing a state the spec does not have. The #PI-8 ruling still applies to
28
+ * the one screen that exists: the header and the verified tag stay.
29
+ *
30
+ * The mark is Core's outline status icon; the module Figma still draws the
31
+ * two-tone filled disc, one icon sweep behind (DEVIATIONS #15).
32
+ */
33
+ export declare const EmailInputErrorScreen: React.ForwardRefExoticComponent<EmailInputErrorScreenProps & React.RefAttributes<HTMLDivElement>>;
34
+ export default EmailInputErrorScreen;
@@ -0,0 +1,28 @@
1
+ 'use client';
2
+ import { jsx as _jsx } from "react/jsx-runtime";
3
+ import { forwardRef } from 'react';
4
+ import { PrizmaResultScreen } from './ResultScreen';
5
+ import './ScreenLayout.css';
6
+ /**
7
+ * Email Input — the failure verdict, built on the Result archetype
8
+ * (GUIDELINES.md §6-F, `PrizmaResultScreen`).
9
+ *
10
+ * Figma: the purple `email.error` section, which holds exactly ONE screen —
11
+ * `email.error.somethingWentWrong`. A centred status mark + H2 over the
12
+ * "Try again" CTA band (40:33375).
13
+ *
14
+ * DEVIATIONS #EI-5 — unlike its Phone Input sibling this module draws no
15
+ * `tryAgain` split and, notably, **no connectivity section anywhere in the
16
+ * file**: `email.error` (3058:103116) has a single child section, and the four
17
+ * purple parents are verifyEmail / OTP / error / success with no no-connection
18
+ * screen among them. So this screen ships NO `variant` prop and no Wi-Fi
19
+ * glyph — there is nothing to switch between, and adding the axis would be
20
+ * inventing a state the spec does not have. The #PI-8 ruling still applies to
21
+ * the one screen that exists: the header and the verified tag stay.
22
+ *
23
+ * The mark is Core's outline status icon; the module Figma still draws the
24
+ * two-tone filled disc, one icon sweep behind (DEVIATIONS #15).
25
+ */
26
+ export const EmailInputErrorScreen = forwardRef(({ strings, screenId = 'email-input-error', overrides, onAction, ...shell }, ref) => (_jsx(PrizmaResultScreen, { ref: ref, status: "error", title: strings.error.title, subtitle: strings.error.subtitle, ctaLabel: strings.error.ctaLabel, verifiedLabel: strings.verifiedLabel, navLabel: strings.navLabel, screenId: screenId, overrides: overrides, onAction: onAction, ...shell })));
27
+ EmailInputErrorScreen.displayName = 'EmailInputErrorScreen';
28
+ export default EmailInputErrorScreen;
@@ -0,0 +1,56 @@
1
+ import React from 'react';
2
+ import { type PrizmaFormScreenProps } from './FormScreen';
3
+ import type { PrizmaScreenActionHandler, PrizmaScreenOverrides } from './types';
4
+ import type { EmailInputOtpState, EmailInputStrings } from './EmailInputStrings';
5
+ import './ScreenLayout.css';
6
+ export interface EmailInputOtpScreenProps extends Omit<PrizmaFormScreenProps, 'title' | 'subtitle' | 'ctaLabel' | 'verifiedLabel' | 'children' | 'navLabel'> {
7
+ /** Module copy — this screen reads the `otp` slice. */
8
+ strings: EmailInputStrings;
9
+ /** Which purple `email.OTP.*` section to render. Default `typing`. */
10
+ state?: EmailInputOtpState;
11
+ /** The code as typed. Figma's sample is the alphanumeric `A1B2C3`. */
12
+ value?: string;
13
+ /** How many characters the code carries. Default 6. */
14
+ length?: number;
15
+ screenId?: string;
16
+ overrides?: PrizmaScreenOverrides;
17
+ onAction?: PrizmaScreenActionHandler;
18
+ }
19
+ /**
20
+ * Email Input — the one-time-code screen, built on the Form archetype
21
+ * (GUIDELINES.md §6-E, `PrizmaFormScreen`).
22
+ *
23
+ * ONE screen for all five purple `email.OTP.*` sections (`typing` / `filled` /
24
+ * `processing` and the module's TWO error sections) — identical layout,
25
+ * differing in the state of the code field, the CTA, and the line under it.
26
+ *
27
+ * The code field is Core's `PrizmaOtp`, which is a single centred, letter-spaced
28
+ * field rather than a segmented box row — exactly what the Figma sections draw
29
+ * ("A1B2C3" as one line of type inside one 56px field).
30
+ *
31
+ * `processing` deliberately does NOT use Core's `PrizmaOtp.loading`. That prop
32
+ * centres the spinner INSIDE the code field (owner definition 2026-07-12), but
33
+ * the purple section draws the field simply DISABLED with the code still
34
+ * legible and puts the spinner in the CTA — the same treatment as
35
+ * `verify.loading`, which is what makes the module read consistently.
36
+ * DEVIATIONS #PI-5.
37
+ *
38
+ * DEVIATIONS #EI-3 — the band under the CTA is NOT one treatment for all five
39
+ * sections, which is this module's own finding rather than anything inherited
40
+ * from Phone Input. Measured on the 390 frames, three different treatments:
41
+ * - `typing` (146:37111) draws a re-send COUNTDOWN ("Resend code in 30s") —
42
+ * plain secondary copy, NO links, because the code has only just been sent
43
+ * and re-sending it immediately is meaningless
44
+ * - `filled` (150:38395) and both error sections (150:63411 generic,
45
+ * 150:70717 invalid-code) draw the two-link sentence
46
+ * - `processing` (150:63409) draws that same sentence INERT — every word in
47
+ * the secondary ink, no underline, nothing clickable, because the request is
48
+ * in flight. Rendering the labels as plain text is what produces that, so
49
+ * `processing` reads differently from `filled` in the band as well as in the
50
+ * field.
51
+ * The consequence for a host: `resendCountdown` and `resendPrompt` are not
52
+ * alternatives it may choose between — which one is drawn is decided by
53
+ * `state`, so both must be supplied for the five sections to render as drawn.
54
+ */
55
+ export declare const EmailInputOtpScreen: React.ForwardRefExoticComponent<EmailInputOtpScreenProps & React.RefAttributes<HTMLDivElement>>;
56
+ export default EmailInputOtpScreen;
@@ -0,0 +1,82 @@
1
+ 'use client';
2
+ import { jsx as _jsx, Fragment as _Fragment, jsxs as _jsxs } from "react/jsx-runtime";
3
+ import { forwardRef } from 'react';
4
+ import { PrizmaOtp } from '@incodetech/prizma-core-web/otp';
5
+ import { PrizmaFormScreen } from './FormScreen';
6
+ import './ScreenLayout.css';
7
+ /**
8
+ * Email Input — the one-time-code screen, built on the Form archetype
9
+ * (GUIDELINES.md §6-E, `PrizmaFormScreen`).
10
+ *
11
+ * ONE screen for all five purple `email.OTP.*` sections (`typing` / `filled` /
12
+ * `processing` and the module's TWO error sections) — identical layout,
13
+ * differing in the state of the code field, the CTA, and the line under it.
14
+ *
15
+ * The code field is Core's `PrizmaOtp`, which is a single centred, letter-spaced
16
+ * field rather than a segmented box row — exactly what the Figma sections draw
17
+ * ("A1B2C3" as one line of type inside one 56px field).
18
+ *
19
+ * `processing` deliberately does NOT use Core's `PrizmaOtp.loading`. That prop
20
+ * centres the spinner INSIDE the code field (owner definition 2026-07-12), but
21
+ * the purple section draws the field simply DISABLED with the code still
22
+ * legible and puts the spinner in the CTA — the same treatment as
23
+ * `verify.loading`, which is what makes the module read consistently.
24
+ * DEVIATIONS #PI-5.
25
+ *
26
+ * DEVIATIONS #EI-3 — the band under the CTA is NOT one treatment for all five
27
+ * sections, which is this module's own finding rather than anything inherited
28
+ * from Phone Input. Measured on the 390 frames, three different treatments:
29
+ * - `typing` (146:37111) draws a re-send COUNTDOWN ("Resend code in 30s") —
30
+ * plain secondary copy, NO links, because the code has only just been sent
31
+ * and re-sending it immediately is meaningless
32
+ * - `filled` (150:38395) and both error sections (150:63411 generic,
33
+ * 150:70717 invalid-code) draw the two-link sentence
34
+ * - `processing` (150:63409) draws that same sentence INERT — every word in
35
+ * the secondary ink, no underline, nothing clickable, because the request is
36
+ * in flight. Rendering the labels as plain text is what produces that, so
37
+ * `processing` reads differently from `filled` in the band as well as in the
38
+ * field.
39
+ * The consequence for a host: `resendCountdown` and `resendPrompt` are not
40
+ * alternatives it may choose between — which one is drawn is decided by
41
+ * `state`, so both must be supplied for the five sections to render as drawn.
42
+ */
43
+ export const EmailInputOtpScreen = forwardRef(({ strings, state = 'typing', value, length = 6, screenId = `email-input-otp-${state}`, overrides, onAction, ...shell }, ref) => {
44
+ const busy = state === 'processing';
45
+ const invalid = state === 'error' || state === 'errorGeneric';
46
+ const focused = state === 'typing';
47
+ const errorText = state === 'error'
48
+ ? strings.otp.errorText
49
+ : state === 'errorGeneric'
50
+ ? strings.otp.genericErrorText
51
+ : undefined;
52
+ /* `typing` shows the countdown; every other section shows the sentence. */
53
+ const countdown = focused ? strings.otp.resendCountdown : undefined;
54
+ /* Both links are wrapped by the same helper so the inert (`processing`)
55
+ rendering cannot drift from the actionable one — only the element type
56
+ changes. Each link emits a DISTINCT action: re-sending the code and
57
+ returning to email entry are different flows a host must tell apart
58
+ (DEVIATIONS #PI-10). */
59
+ const link = (label, type) => busy ? (label) : (_jsx("button", { type: "button", className: "prizma-screen-layout__inline-link", onClick: () => onAction?.({ type, screenId }), children: label }));
60
+ const resendLine = countdown ? (_jsx("p", { className: "prizma-screen-layout__inline-prompt", children: countdown })) : strings.otp.resendPrompt ? (_jsxs("p", { className: "prizma-screen-layout__inline-prompt", children: [strings.otp.resendPrompt, ' ', strings.otp.resendLabel ? link(strings.otp.resendLabel, 'secondary') : null, strings.otp.changeEmailLabel ? (_jsxs(_Fragment, { children: [' ', strings.otp.resendSeparator, ' ', link(strings.otp.changeEmailLabel, 'tertiary')] })) : null] })) : undefined;
61
+ return (_jsx(PrizmaFormScreen, { ref: ref, title: strings.otp.title, subtitle: strings.otp.subtitle, ctaLabel: strings.otp.ctaLabel,
62
+ /* Figma greys the CTA on both error sections; `typing` keeps it live. */
63
+ ctaDisabled: invalid,
64
+ /* The spinner rides the CTA, not the field (see the note above). */
65
+ ctaLoading: busy, ctaLoadingLabel: strings.otp.ctaLoadingLabel, linkContent: resendLine, verifiedLabel: strings.verifiedLabel, navLabel: strings.navLabel, screenId: screenId, overrides: overrides, onAction: onAction, ...shell, children: _jsx(PrizmaOtp, { length: length,
66
+ /* Core's own static-focus modifier, the same mechanism the verify
67
+ field uses: `typing` is the one section Figma draws focused, and
68
+ `filled` sits on the resting border. DEVIATIONS #PI-7. */
69
+ className: focused ? 'prizma-input-otp--focused' : undefined, "aria-label": strings.otp.fieldLabel,
70
+ /* Uncontrolled, for the same reason as the email field: `readOnly`
71
+ would paint Core's DISABLED surface on the resting states, which is
72
+ grey Figma does not draw there (DEVIATIONS #PI-6). */
73
+ defaultValue: value ?? '',
74
+ /* Figma's code is alphanumeric ("A1B2C3"), so the field must not
75
+ advertise a numeric keypad the way Core's OTP default does. */
76
+ inputMode: "text",
77
+ /* `processing` is the one section Figma greys — the code stays
78
+ legible while the check runs. */
79
+ disabled: busy, error: invalid, errorText: errorText }) }));
80
+ });
81
+ EmailInputOtpScreen.displayName = 'EmailInputOtpScreen';
82
+ export default EmailInputOtpScreen;
@@ -0,0 +1,29 @@
1
+ import React from 'react';
2
+ import { type PrizmaProcessingScreenProps } from './ProcessingScreen';
3
+ import type { PrizmaScreenActionHandler, PrizmaScreenOverrides } from './types';
4
+ import type { EmailInputStrings } from './EmailInputStrings';
5
+ import './ScreenLayout.css';
6
+ export interface EmailInputProcessingScreenProps extends Omit<PrizmaProcessingScreenProps, 'status' | 'title' | 'subtitle' | 'verifiedLabel' | 'navLabel'> {
7
+ /** Module copy — this screen reads the `processing` slice. */
8
+ strings: EmailInputStrings;
9
+ screenId?: string;
10
+ overrides?: PrizmaScreenOverrides;
11
+ onAction?: PrizmaScreenActionHandler;
12
+ }
13
+ /**
14
+ * Email Input — the code is being checked, built on the Processing archetype
15
+ * (GUIDELINES.md §6-C, `PrizmaProcessingScreen`).
16
+ *
17
+ * Figma: the purple `email.OTP.processing` section holding `email.processing`
18
+ * — a separate SCREEN from the in-form `email.OTP.processing` state, which
19
+ * keeps the code field and only swaps the CTA. This one is a pure spinner + H2
20
+ * with no button, which is exactly the case §6-F reserves for C rather than the
21
+ * Result archetype.
22
+ *
23
+ * Figma draws this section with a close ✕ in the nav and no verified tag; both
24
+ * are owner-settled and neither is reproduced — GUIDELINES §3 forbids the ✕
25
+ * (DEVIATIONS #PI-9, a standing Wave-3 ruling) and the chrome stays constant
26
+ * across the module's screens (#F-30, #F-34, #PI-8).
27
+ */
28
+ export declare const EmailInputProcessingScreen: React.ForwardRefExoticComponent<EmailInputProcessingScreenProps & React.RefAttributes<HTMLDivElement>>;
29
+ export default EmailInputProcessingScreen;
@@ -0,0 +1,23 @@
1
+ 'use client';
2
+ import { jsx as _jsx } from "react/jsx-runtime";
3
+ import { forwardRef } from 'react';
4
+ import { PrizmaProcessingScreen, } from './ProcessingScreen';
5
+ import './ScreenLayout.css';
6
+ /**
7
+ * Email Input — the code is being checked, built on the Processing archetype
8
+ * (GUIDELINES.md §6-C, `PrizmaProcessingScreen`).
9
+ *
10
+ * Figma: the purple `email.OTP.processing` section holding `email.processing`
11
+ * — a separate SCREEN from the in-form `email.OTP.processing` state, which
12
+ * keeps the code field and only swaps the CTA. This one is a pure spinner + H2
13
+ * with no button, which is exactly the case §6-F reserves for C rather than the
14
+ * Result archetype.
15
+ *
16
+ * Figma draws this section with a close ✕ in the nav and no verified tag; both
17
+ * are owner-settled and neither is reproduced — GUIDELINES §3 forbids the ✕
18
+ * (DEVIATIONS #PI-9, a standing Wave-3 ruling) and the chrome stays constant
19
+ * across the module's screens (#F-30, #F-34, #PI-8).
20
+ */
21
+ export const EmailInputProcessingScreen = forwardRef(({ strings, screenId = 'email-input-processing', overrides, onAction, ...shell }, ref) => (_jsx(PrizmaProcessingScreen, { ref: ref, status: "loading", title: strings.processing.title, subtitle: strings.processing.subtitle, verifiedLabel: strings.verifiedLabel, navLabel: strings.navLabel, screenId: screenId, overrides: overrides, onAction: onAction, ...shell })));
22
+ EmailInputProcessingScreen.displayName = 'EmailInputProcessingScreen';
23
+ export default EmailInputProcessingScreen;