@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,24 @@
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
+ * eKYB — the negative verdict (`eKYB.error`, 2116:34743), built on the Result
8
+ * archetype (GUIDELINES.md §6-F, `PrizmaResultScreen`).
9
+ *
10
+ * Nav → centred negative mark + H2 ("Something went wrong") → CTA band with the
11
+ * single "Try again" primary → anchored tag. It sits on F rather than C for one
12
+ * reason: it has a button, and §6-F reserves C for the pure no-button case —
13
+ * which is why its `success` sibling is on C and this one is not.
14
+ *
15
+ * This is a generic-error screen, and per the standing owner rule it KEEPS the
16
+ * logo header and the verified tag even where a module's Figma draws them bare
17
+ * (#PI-8, #F-34) — here Figma draws both anyway, so nothing is overridden.
18
+ *
19
+ * Core's outline status mark is used, not Figma's two-tone filled disc
20
+ * (icon-outline sweep, #15 / #DC-34).
21
+ */
22
+ export const EkybErrorScreen = forwardRef(({ strings, screenId = 'ekyb-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 })));
23
+ EkybErrorScreen.displayName = 'EkybErrorScreen';
24
+ export default EkybErrorScreen;
@@ -0,0 +1,73 @@
1
+ import React from 'react';
2
+ import { type PrizmaFormScreenProps } from './FormScreen';
3
+ import type { PrizmaScreenActionHandler, PrizmaScreenOverrides } from './types';
4
+ import type { EkybOwnersState, EkybOwnersValues, EkybStrings } from './EkybStrings';
5
+ import './ScreenLayout.css';
6
+ export interface EkybOwnersScreenProps extends Omit<PrizmaFormScreenProps, 'title' | 'subtitle' | 'ctaLabel' | 'ctaLoading' | 'ctaLoadingLabel' | 'verifiedLabel' | 'children' | 'navLabel' | 'linkLabel' | 'linkContent' | 'progress' | 'scrollFields'> {
7
+ /** Module copy — this screen reads the `owners` slice. */
8
+ strings: EkybStrings;
9
+ /** Which purple `eKYB.UBO.*` / `eKYB.director.*` section to render.
10
+ * Default `uboEmpty`. */
11
+ state?: EkybOwnersState;
12
+ /** The four field values. Empty renders the resting empty field. */
13
+ values?: EkybOwnersValues;
14
+ screenId?: string;
15
+ overrides?: PrizmaScreenOverrides;
16
+ onAction?: PrizmaScreenActionHandler;
17
+ }
18
+ /**
19
+ * eKYB — step 3 of the wizard, the people behind the company, built on the Form
20
+ * archetype (GUIDELINES.md §6-E, `PrizmaFormScreen`).
21
+ *
22
+ * ONE screen for BOTH purple parents — `eKYB.UBO` (5707:90967) and
23
+ * `eKYB.director` (5707:99490) — because measured against the 390 frames the
24
+ * director frames ARE the UBO frames with a second block revealed: same stepper
25
+ * position, same H2 "Beneficial Owner", same H5, same first two fields, same
26
+ * "Add another UBO (Optional)" link, same CTA band. Building them as two files
27
+ * would have duplicated the UBO block and given it two places to drift.
28
+ *
29
+ * Five sections, five distinct renderings:
30
+ * - `uboEmpty` 2115:20619 — UBO block only, both fields blank
31
+ * - `uboFilled` 5707:49608 — UBO block only, both fields carrying a value
32
+ * - `directorEmpty` 5655:56032 — UBO block + Director block, all four blank
33
+ * - `directorFilled` 5707:49782 — UBO block + Director block, all four filled
34
+ * - `loading` 5663:94390 — `directorFilled` with the submission in
35
+ * flight: every field, both "Add another" links and "Back" go inert, and the
36
+ * spinner rides the CTA, never a field (the Phone Input lesson, #PI-5)
37
+ *
38
+ * Four things are deliberate:
39
+ *
40
+ * 1. The stack SCROLLS inside the content column — now through the archetype's
41
+ * own `scrollFields` prop, not a module stylesheet. The director frames are
42
+ * 1201–1245 tall against a 844 screen that never reflows (#17); without the
43
+ * release the surplus paints over the CTA, and the second "Add another…"
44
+ * link — the element `directorEmpty` exists to draw — never reaches the
45
+ * screen at all. The module used to hand-roll `overflow-y: auto` in
46
+ * `EkybLayout.css`; the archetype absorbed it (DEVIATIONS #DSC-2) and that
47
+ * file is now deleted.
48
+ * 2. The Director block's heading is Core's OWN `PrizmaTitle` (H2 + H5, left
49
+ * variant) composed into the archetype's `children` slot — the same
50
+ * component the archetype uses for the screen title, so the typography is
51
+ * the design system's and nothing is hand-rolled. It does mean the screen
52
+ * carries TWO H2s, which GUIDELINES §4 does not anticipate; reported as a
53
+ * deviation rather than resolved silently.
54
+ * 3. Both "Add another…" links are Core's `PrizmaButton variant="tertiary-link"`
55
+ * and sit INSIDE the field stack, which is where Figma draws them — attached
56
+ * to the block they extend, above the CTA band — not in the CTA column.
57
+ * They are two SEPARATELY actionable flows (#PI-10), but
58
+ * `PrizmaScreenAction` offers only one non-primary/non-secondary type, so
59
+ * they are told apart by an action-qualified `screenId` until the contract
60
+ * gains a discriminator — reported in `archetypeGaps`.
61
+ * 4. Only `loading` passes `disabled`. Core's `readOnly` would grey the other
62
+ * four sections too, which Figma draws white (#PI-6).
63
+ *
64
+ * The three-segment journey bar sits above the title on every one of the five
65
+ * sections, in the archetype's `progress` slot. This is step 3 of 3, so the bar
66
+ * runs at `currentState={3}` (5919:71500 / 6340:63438 — segments 1–2 pale,
67
+ * segment 3 solid) and `loading` flips it to `'Completed'`, which is what turns
68
+ * all three segments GREEN in 5919:73354. That green beat is the treatment that
69
+ * distinguishes `loading` from `directorFilled` above the fold, so it is not
70
+ * optional chrome.
71
+ */
72
+ export declare const EkybOwnersScreen: React.ForwardRefExoticComponent<EkybOwnersScreenProps & React.RefAttributes<HTMLDivElement>>;
73
+ export default EkybOwnersScreen;
@@ -0,0 +1,87 @@
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 { PrizmaTextField } from '@incodetech/prizma-core-web/text-field';
5
+ import { PrizmaTitle } from '@incodetech/prizma-core-web/title';
6
+ import { PrizmaButton } from '@incodetech/prizma-core-web/button';
7
+ import { PrizmaStepper } from '@incodetech/prizma-core-web/stepper';
8
+ import { PrizmaFormScreen } from './FormScreen';
9
+ import './ScreenLayout.css';
10
+ /**
11
+ * eKYB — step 3 of the wizard, the people behind the company, built on the Form
12
+ * archetype (GUIDELINES.md §6-E, `PrizmaFormScreen`).
13
+ *
14
+ * ONE screen for BOTH purple parents — `eKYB.UBO` (5707:90967) and
15
+ * `eKYB.director` (5707:99490) — because measured against the 390 frames the
16
+ * director frames ARE the UBO frames with a second block revealed: same stepper
17
+ * position, same H2 "Beneficial Owner", same H5, same first two fields, same
18
+ * "Add another UBO (Optional)" link, same CTA band. Building them as two files
19
+ * would have duplicated the UBO block and given it two places to drift.
20
+ *
21
+ * Five sections, five distinct renderings:
22
+ * - `uboEmpty` 2115:20619 — UBO block only, both fields blank
23
+ * - `uboFilled` 5707:49608 — UBO block only, both fields carrying a value
24
+ * - `directorEmpty` 5655:56032 — UBO block + Director block, all four blank
25
+ * - `directorFilled` 5707:49782 — UBO block + Director block, all four filled
26
+ * - `loading` 5663:94390 — `directorFilled` with the submission in
27
+ * flight: every field, both "Add another" links and "Back" go inert, and the
28
+ * spinner rides the CTA, never a field (the Phone Input lesson, #PI-5)
29
+ *
30
+ * Four things are deliberate:
31
+ *
32
+ * 1. The stack SCROLLS inside the content column — now through the archetype's
33
+ * own `scrollFields` prop, not a module stylesheet. The director frames are
34
+ * 1201–1245 tall against a 844 screen that never reflows (#17); without the
35
+ * release the surplus paints over the CTA, and the second "Add another…"
36
+ * link — the element `directorEmpty` exists to draw — never reaches the
37
+ * screen at all. The module used to hand-roll `overflow-y: auto` in
38
+ * `EkybLayout.css`; the archetype absorbed it (DEVIATIONS #DSC-2) and that
39
+ * file is now deleted.
40
+ * 2. The Director block's heading is Core's OWN `PrizmaTitle` (H2 + H5, left
41
+ * variant) composed into the archetype's `children` slot — the same
42
+ * component the archetype uses for the screen title, so the typography is
43
+ * the design system's and nothing is hand-rolled. It does mean the screen
44
+ * carries TWO H2s, which GUIDELINES §4 does not anticipate; reported as a
45
+ * deviation rather than resolved silently.
46
+ * 3. Both "Add another…" links are Core's `PrizmaButton variant="tertiary-link"`
47
+ * and sit INSIDE the field stack, which is where Figma draws them — attached
48
+ * to the block they extend, above the CTA band — not in the CTA column.
49
+ * They are two SEPARATELY actionable flows (#PI-10), but
50
+ * `PrizmaScreenAction` offers only one non-primary/non-secondary type, so
51
+ * they are told apart by an action-qualified `screenId` until the contract
52
+ * gains a discriminator — reported in `archetypeGaps`.
53
+ * 4. Only `loading` passes `disabled`. Core's `readOnly` would grey the other
54
+ * four sections too, which Figma draws white (#PI-6).
55
+ *
56
+ * The three-segment journey bar sits above the title on every one of the five
57
+ * sections, in the archetype's `progress` slot. This is step 3 of 3, so the bar
58
+ * runs at `currentState={3}` (5919:71500 / 6340:63438 — segments 1–2 pale,
59
+ * segment 3 solid) and `loading` flips it to `'Completed'`, which is what turns
60
+ * all three segments GREEN in 5919:73354. That green beat is the treatment that
61
+ * distinguishes `loading` from `directorFilled` above the fold, so it is not
62
+ * optional chrome.
63
+ */
64
+ export const EkybOwnersScreen = forwardRef(({ strings, state = 'uboEmpty', values, screenId = `ekyb-owners-${state}`, className, overrides, onAction, ...shell }, ref) => {
65
+ const copy = strings.owners;
66
+ const busy = state === 'loading';
67
+ const showDirector = state === 'directorEmpty' || state === 'directorFilled' || busy;
68
+ return (_jsxs(PrizmaFormScreen, { ref: ref, className: ['ekyb-owners', className].filter(Boolean).join(' '),
69
+ /* The archetype's own scrolling field stack — two titled blocks, four
70
+ fields and two links do not fit a 844 frame. No module CSS. */
71
+ scrollFields: true,
72
+ /* Step 3 of 3, and GREEN across all three once the submission runs. */
73
+ progress: _jsx(PrizmaStepper, { steps: 3, currentState: busy ? 'Completed' : 3, showIcons: false, "aria-label": strings.stepperLabel, completedValueText: strings.stepperCompletedLabel }), title: copy.title, subtitle: copy.subtitle, ctaLabel: copy.ctaLabel,
74
+ /* `loading` swaps the CTA label for Core's designed spinner. */
75
+ ctaLoading: busy, ctaLoadingLabel: copy.ctaLoadingLabel, linkContent: _jsx(PrizmaButton, { variant: "secondary", size: "L",
76
+ /* 5663:94390 greys "Back" while the submission runs. */
77
+ disabled: busy, onClick: () => onAction?.({ type: 'secondary', screenId }), children: strings.backLabel }), verifiedLabel: strings.verifiedLabel, navLabel: strings.navLabel, screenId: screenId, overrides: { align: overrides?.align ?? 'left', logo: overrides?.logo }, onAction: onAction, ...shell, children: [_jsx(PrizmaTextField, { label: copy.uboName.label, placeholder: copy.uboName.placeholder, required: true, requiredHint: strings.requiredHint, autoComplete: "off", defaultValue: values?.uboName ?? '', disabled: busy }), _jsx(PrizmaTextField, { label: copy.uboSurname.label, placeholder: copy.uboSurname.placeholder, autoComplete: "off", defaultValue: values?.uboSurname ?? '', disabled: busy }), _jsx(PrizmaButton, { variant: "tertiary-link", size: "L", disabled: busy,
78
+ /* Action-qualified id: the two "Add another…" links are different
79
+ flows and must stay distinguishable (#PI-10), but the action
80
+ contract has no per-action discriminator yet. */
81
+ onClick: () => onAction?.({ type: 'tertiary', screenId: `${screenId}-add-ubo` }), children: copy.addUboLabel }), showDirector ? (_jsxs(_Fragment, { children: [_jsx(PrizmaTitle, { variant: "left", title: copy.directorTitle, showSubtitle: Boolean(copy.directorSubtitle), subtitle: copy.directorSubtitle }), _jsx(PrizmaTextField, { label: copy.directorName.label, placeholder: copy.directorName.placeholder, autoComplete: "off", defaultValue: values?.directorName ?? '', disabled: busy }), _jsx(PrizmaTextField, { label: copy.directorSurname.label, placeholder: copy.directorSurname.placeholder, autoComplete: "off", defaultValue: values?.directorSurname ?? '', disabled: busy }), _jsx(PrizmaButton, { variant: "tertiary-link", size: "L", disabled: busy, onClick: () => onAction?.({
82
+ type: 'tertiary',
83
+ screenId: `${screenId}-add-director`,
84
+ }), children: copy.addDirectorLabel })] })) : null] }));
85
+ });
86
+ EkybOwnersScreen.displayName = 'EkybOwnersScreen';
87
+ export default EkybOwnersScreen;
@@ -0,0 +1,28 @@
1
+ import React from 'react';
2
+ import { type PrizmaProcessingScreenProps } from './ProcessingScreen';
3
+ import type { PrizmaScreenActionHandler, PrizmaScreenOverrides } from './types';
4
+ import type { EkybStrings } from './EkybStrings';
5
+ import './ScreenLayout.css';
6
+ export interface EkybProcessingScreenProps extends Omit<PrizmaProcessingScreenProps, 'status' | 'title' | 'subtitle' | 'verifiedLabel' | 'navLabel'> {
7
+ /** Module copy — this screen reads the `processing` slice. */
8
+ strings: EkybStrings;
9
+ screenId?: string;
10
+ overrides?: PrizmaScreenOverrides;
11
+ onAction?: PrizmaScreenActionHandler;
12
+ }
13
+ /**
14
+ * eKYB — the in-flight screen (`eKYB.processing`, 2116:34749), built on the
15
+ * Processing archetype (GUIDELINES.md §6-C, `PrizmaProcessingScreen`).
16
+ *
17
+ * The pure spinner + H2 case with no button, which is exactly what §6-F reserves
18
+ * for C rather than the Result archetype: the frame centres Core's spinner over
19
+ * the status line in the middle of the column, keeps the logo header and the
20
+ * verified tag, and offers the operator nothing to press while the submission is
21
+ * checked.
22
+ *
23
+ * The title block is CENTRED here — unlike every eKYB form page, which
24
+ * left-aligns — because the archetype centres the whole column and Figma draws
25
+ * it that way; no alignment override is passed.
26
+ */
27
+ export declare const EkybProcessingScreen: React.ForwardRefExoticComponent<EkybProcessingScreenProps & React.RefAttributes<HTMLDivElement>>;
28
+ export default EkybProcessingScreen;
@@ -0,0 +1,22 @@
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
+ * eKYB — the in-flight screen (`eKYB.processing`, 2116:34749), built on the
8
+ * Processing archetype (GUIDELINES.md §6-C, `PrizmaProcessingScreen`).
9
+ *
10
+ * The pure spinner + H2 case with no button, which is exactly what §6-F reserves
11
+ * for C rather than the Result archetype: the frame centres Core's spinner over
12
+ * the status line in the middle of the column, keeps the logo header and the
13
+ * verified tag, and offers the operator nothing to press while the submission is
14
+ * checked.
15
+ *
16
+ * The title block is CENTRED here — unlike every eKYB form page, which
17
+ * left-aligns — because the archetype centres the whole column and Figma draws
18
+ * it that way; no alignment override is passed.
19
+ */
20
+ export const EkybProcessingScreen = forwardRef(({ strings, screenId = 'ekyb-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 })));
21
+ EkybProcessingScreen.displayName = 'EkybProcessingScreen';
22
+ export default EkybProcessingScreen;
@@ -0,0 +1,200 @@
1
+ /**
2
+ * The `eKYB.country.*` sections. All three share the archetype-E skeleton —
3
+ * nav → Title (H2 + H5) → Spacing/32 → one labelled dropdown → "Continue" →
4
+ * tag — and differ ONLY in what the dropdown carries:
5
+ * - `empty` — the placeholder ("Select country"), nothing chosen
6
+ * - `filled` — a country selected, drawn as flag + name in the closed field
7
+ * - `dropdown` — the same selection with the MENU OPEN over the form: search
8
+ * bar plus the country rows (Core's documentation-only `forceOpen`, since a
9
+ * screen is one static spec state and never a live interaction)
10
+ */
11
+ export type EkybCountryState = 'empty' | 'filled' | 'dropdown';
12
+ /** The two `eKYB.Bdetails` (business identity) sections: every field on its
13
+ * resting empty surface, or every field carrying a value. */
14
+ export type EkybBusinessState = 'empty' | 'filled';
15
+ /** The two address sections (the SECOND `eKYB.Bdetails` parent). Same axis. */
16
+ export type EkybAddressState = 'empty' | 'filled';
17
+ /**
18
+ * The `eKYB.UBO.*` and `eKYB.director.*` sections — one screen family, because
19
+ * measured against the 390 frames the director frames ARE the UBO frames with
20
+ * the Director block revealed below the "Add another UBO" link: same stepper
21
+ * position, same H2, same subtitle, same first two fields, same CTA band.
22
+ *
23
+ * - `uboEmpty` — `eKYB.UBO.empty` (2115:20619): the two UBO fields blank
24
+ * - `uboFilled` — `eKYB.UBO.filled` (5707:49608): both carrying a value
25
+ * - `directorEmpty` — `eKYB.director.empty` (5655:56032): UBO block plus the
26
+ * Director block, every field blank
27
+ * - `directorFilled`— `eKYB.directorFilled` (5707:49782): all four filled
28
+ * - `loading` — `eKYB.directorloading` (5663:94390): the submission is in
29
+ * flight, so EVERY field, both "Add another" links and "Back" go inert and
30
+ * the spinner rides the CTA, never a field (the Phone Input lesson,
31
+ * DEVIATIONS #PI-5)
32
+ */
33
+ export type EkybOwnersState = 'uboEmpty' | 'uboFilled' | 'directorEmpty' | 'directorFilled' | 'loading';
34
+ /**
35
+ * One selectable row in the country / state menus. Runtime data, not copy — the
36
+ * host owns the catalogue (an ISO country list is ~250 entries and a state list
37
+ * is jurisdiction-specific), exactly as Phone Input takes its dial codes as data
38
+ * rather than strings.
39
+ */
40
+ export interface EkybOption {
41
+ /** Stable value, e.g. `US` / `TX`. */
42
+ value: string;
43
+ /** The row label as drawn in the open menu. */
44
+ label: string;
45
+ /** Compact face for the CLOSED field when it differs from the menu row —
46
+ * Core's own `PrizmaDropdownOption.fieldLabel`. `eKYB.country.dropdown`
47
+ * draws "🇺🇸 +1 United States" in the row and "🇺🇸 United States" in the
48
+ * field. */
49
+ fieldLabel?: string;
50
+ }
51
+ /** The values the business-identity page carries. Runtime data, never copy. */
52
+ export interface EkybBusinessValues {
53
+ businessName?: string;
54
+ taxId?: string;
55
+ }
56
+ /** The values the address page carries. Runtime data, never copy. */
57
+ export interface EkybAddressValues {
58
+ street?: string;
59
+ houseNumber?: string;
60
+ addressLine2?: string;
61
+ city?: string;
62
+ /** An `EkybOption.value` from the `states` catalogue. */
63
+ state?: string;
64
+ postalCode?: string;
65
+ }
66
+ /** The values the owners page carries. Runtime data, never copy. */
67
+ export interface EkybOwnersValues {
68
+ uboName?: string;
69
+ uboSurname?: string;
70
+ directorName?: string;
71
+ directorSurname?: string;
72
+ }
73
+ /** Copy for one labelled field. The required `*` is appended by Core from
74
+ * `EkybStrings.requiredHint`, never baked into `label`. */
75
+ export interface EkybFieldStrings {
76
+ /** Visible label ("Business name"). */
77
+ label: string;
78
+ /** Placeholder inside the field. The eKYB frames draw none on the text
79
+ * fields — only the two dropdowns carry one — so this is optional. */
80
+ placeholder?: string;
81
+ }
82
+ export interface EkybStrings {
83
+ /** "verified by" attribution in the footer tag. */
84
+ verifiedLabel: string;
85
+ /** Accessible name for the logo nav row. */
86
+ navLabel?: string;
87
+ /**
88
+ * Suffix Core appends to a required field's label — the `*` every eKYB form
89
+ * label carries. Passed to Core's own `requiredHint` prop so the marker is
90
+ * localizable and never hardcoded in a screen.
91
+ */
92
+ requiredHint?: string;
93
+ /** Shared "Back" secondary action drawn under "Continue" on every page except
94
+ * `country`. Emits `secondary`. */
95
+ backLabel: string;
96
+ /**
97
+ * Accessible name for the three-segment journey bar every WIZARD frame draws
98
+ * between the logo nav and the title block (Core's `PrizmaStepper`,
99
+ * `role="progressbar"`). Nine of the module's fifteen sections carry it —
100
+ * business ×2 (segment 1), address ×2 (segment 2), owners ×5 (segment 3, or
101
+ * all three green while the submission runs) — and it is the only chrome that
102
+ * tells the three wizard pages apart, so it carries a real name rather than
103
+ * none. Copy, therefore it lives here.
104
+ *
105
+ * The `eKYB.country.*` sections draw NO bar (2115:20444 has no Stepper
106
+ * instance): the country choice sits before the wizard.
107
+ */
108
+ stepperLabel: string;
109
+ /**
110
+ * `aria-valuetext` the same bar announces once all three segments are green —
111
+ * the `eKYB.directorloading` section (5663:94390). Same contract as eKYC's
112
+ * and Video Selfie's `stepperCompletedLabel`.
113
+ */
114
+ stepperCompletedLabel: string;
115
+ /** eKYB.country.{empty,filled,dropdown} */
116
+ country: {
117
+ /** H2 ("Select your country"). */
118
+ title: string;
119
+ /** H5 ("Select the country where your business is registered"). */
120
+ subtitle?: string;
121
+ /** The one labelled dropdown ("Country" / "Select country"). */
122
+ field: EkybFieldStrings;
123
+ /** Search-bar placeholder inside the open menu ("Search for country"). */
124
+ searchPlaceholder?: string;
125
+ /** Accessible name for the menu's search-clear button. */
126
+ clearSearchLabel?: string;
127
+ /** Primary CTA ("Continue"). */
128
+ ctaLabel: string;
129
+ };
130
+ /** eKYB.Bdetails.{empty,filled} — the business-identity page. */
131
+ business: {
132
+ /** H2 ("Business Information"). */
133
+ title: string;
134
+ /** H5 ("All fields marked with * are required."). */
135
+ subtitle?: string;
136
+ businessName: EkybFieldStrings;
137
+ taxId: EkybFieldStrings;
138
+ /** Primary CTA ("Continue"). */
139
+ ctaLabel: string;
140
+ };
141
+ /** The second eKYB.Bdetails parent — the address page. */
142
+ address: {
143
+ /** H2 ("Address Details"). */
144
+ title: string;
145
+ /** H5 ("All fields marked with * are required."). */
146
+ subtitle?: string;
147
+ street: EkybFieldStrings;
148
+ houseNumber: EkybFieldStrings;
149
+ /** The one OPTIONAL field of the page — Figma draws no `*`. */
150
+ addressLine2: EkybFieldStrings;
151
+ city: EkybFieldStrings;
152
+ /** The State dropdown ("State" / "Select state"). No search copy: neither
153
+ * address section draws this menu open, so the screen ships no
154
+ * `searchable` and a search placeholder would be dead copy. */
155
+ state: EkybFieldStrings;
156
+ postalCode: EkybFieldStrings;
157
+ /** Primary CTA ("Continue"). */
158
+ ctaLabel: string;
159
+ };
160
+ /** eKYB.UBO.* and eKYB.director.* — one screen, two blocks. */
161
+ owners: {
162
+ /** The screen's single H2 ("Beneficial Owner") and its H5. */
163
+ title: string;
164
+ subtitle?: string;
165
+ uboName: EkybFieldStrings;
166
+ /** Figma draws NO `*` on the surname — it is optional. */
167
+ uboSurname: EkybFieldStrings;
168
+ /** The tertiary link under the UBO block ("Add another UBO (Optional)"). */
169
+ addUboLabel: string;
170
+ /** The Director block's own heading + description. Rendered by Core's
171
+ * `PrizmaTitle` inside the field stack; see the screen's docstring and the
172
+ * module's reported deviation about the second heading. */
173
+ directorTitle: string;
174
+ directorSubtitle?: string;
175
+ directorName: EkybFieldStrings;
176
+ directorSurname: EkybFieldStrings;
177
+ /** The tertiary link under the Director block. */
178
+ addDirectorLabel: string;
179
+ /** Primary CTA ("Continue"). */
180
+ ctaLabel: string;
181
+ /** Accessible busy label while the submission runs (`loading`). */
182
+ ctaLoadingLabel?: string;
183
+ };
184
+ /** eKYB.processing (2116:34749) — the pure spinner screen, no button. */
185
+ processing: {
186
+ title: string;
187
+ subtitle?: string;
188
+ };
189
+ /** eKYB.success (2116:34709) — positive mark, no button. */
190
+ success: {
191
+ title: string;
192
+ subtitle?: string;
193
+ };
194
+ /** eKYB.error (2116:34743) — negative mark + "Try again". */
195
+ error: {
196
+ title: string;
197
+ subtitle?: string;
198
+ ctaLabel: string;
199
+ };
200
+ }
@@ -0,0 +1,27 @@
1
+ // eKYB — copy contract.
2
+ //
3
+ // Figma: `💼 eKYB - Screens specs + Localization` (TWgYZVhurQCizfC4tfLEut,
4
+ // page 2003:12082, purple parent section 2116:23785). The file is SHARED with
5
+ // eKYC (sections 2098:20865 and 2101:7869) — none of those frames belong to this
6
+ // module and none is rebuilt here.
7
+ //
8
+ // SIX purple parent sections, fifteen master frames:
9
+ // eKYB.country (5707:78603) — empty 2115:20444 · filled 5655:42140 ·
10
+ // dropdown 5707:54174
11
+ // eKYB.Bdetails (5707:87449) — empty 2115:21864 · filled 5663:83132
12
+ // eKYB.Bdetails (6340:32594) — the SECOND section of that name, the address
13
+ // page: empty 6340:50731 · filled 6340:38197
14
+ // eKYB.UBO (5707:90967) — empty 2115:20619 · filled 5707:49608
15
+ // eKYB.director (5707:99490) — empty 5655:56032 · filled 5707:49782 ·
16
+ // loading 5663:94390
17
+ // (unnamed) (5707:99491) — processing 2116:34749 · error 2116:34743 ·
18
+ // success 2116:34709
19
+ //
20
+ // The module is business onboarding: the operator picks the country of
21
+ // registration, files the company's identity and address, names the beneficial
22
+ // owner(s) and director(s), and the submission is checked.
23
+ //
24
+ // No hardcoded English anywhere in a screen: every visible string arrives here,
25
+ // so the host's locale pack drives the module (the Figma file ships ES + PT
26
+ // columns beside the EN one).
27
+ export {};
@@ -0,0 +1,28 @@
1
+ import React from 'react';
2
+ import { type PrizmaProcessingScreenProps } from './ProcessingScreen';
3
+ import type { PrizmaScreenActionHandler, PrizmaScreenOverrides } from './types';
4
+ import type { EkybStrings } from './EkybStrings';
5
+ import './ScreenLayout.css';
6
+ export interface EkybSuccessScreenProps extends Omit<PrizmaProcessingScreenProps, 'status' | 'title' | 'subtitle' | 'verifiedLabel' | 'navLabel'> {
7
+ /** Module copy — this screen reads the `success` slice. */
8
+ strings: EkybStrings;
9
+ screenId?: string;
10
+ overrides?: PrizmaScreenOverrides;
11
+ onAction?: PrizmaScreenActionHandler;
12
+ }
13
+ /**
14
+ * eKYB — the positive verdict (`eKYB.success`, 2116:34709), built on the
15
+ * Processing archetype (GUIDELINES.md §6-C, `PrizmaProcessingScreen`).
16
+ *
17
+ * Figma draws NO button here: the flow advances on its own once the submission
18
+ * is accepted, so this is the pure status-mark case §6-F reserves for C rather
19
+ * than for the Result archetype — the same deliberate split Email Input records
20
+ * against its Phone Input sibling (DEVIATIONS #EI-4). Its sibling
21
+ * `EkybErrorScreen` needs a button and therefore sits on F.
22
+ *
23
+ * Core's outline status mark is used, not Figma's two-tone filled disc — the
24
+ * icon-outline sweep of 2026-07-28 settled that for every module (#15, #DC-34)
25
+ * and this file's frames are one sweep behind.
26
+ */
27
+ export declare const EkybSuccessScreen: React.ForwardRefExoticComponent<EkybSuccessScreenProps & React.RefAttributes<HTMLDivElement>>;
28
+ export default EkybSuccessScreen;
@@ -0,0 +1,22 @@
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
+ * eKYB — the positive verdict (`eKYB.success`, 2116:34709), built on the
8
+ * Processing archetype (GUIDELINES.md §6-C, `PrizmaProcessingScreen`).
9
+ *
10
+ * Figma draws NO button here: the flow advances on its own once the submission
11
+ * is accepted, so this is the pure status-mark case §6-F reserves for C rather
12
+ * than for the Result archetype — the same deliberate split Email Input records
13
+ * against its Phone Input sibling (DEVIATIONS #EI-4). Its sibling
14
+ * `EkybErrorScreen` needs a button and therefore sits on F.
15
+ *
16
+ * Core's outline status mark is used, not Figma's two-tone filled disc — the
17
+ * icon-outline sweep of 2026-07-28 settled that for every module (#15, #DC-34)
18
+ * and this file's frames are one sweep behind.
19
+ */
20
+ export const EkybSuccessScreen = forwardRef(({ strings, screenId = 'ekyb-success', overrides, onAction, ...shell }, ref) => (_jsx(PrizmaProcessingScreen, { ref: ref, status: "success", title: strings.success.title, subtitle: strings.success.subtitle, verifiedLabel: strings.verifiedLabel, navLabel: strings.navLabel, screenId: screenId, overrides: overrides, onAction: onAction, ...shell })));
21
+ EkybSuccessScreen.displayName = 'EkybSuccessScreen';
22
+ export default EkybSuccessScreen;
@@ -0,0 +1,65 @@
1
+ import React from 'react';
2
+ import { type PrizmaFormScreenProps } from './FormScreen';
3
+ import type { PrizmaScreenActionHandler, PrizmaScreenOverrides } from './types';
4
+ import type { EkycDetailsState, EkycDetailsValues, EkycStrings } from './EkycStrings';
5
+ import './ScreenLayout.css';
6
+ import './EkycLayout.css';
7
+ export interface EkycDetailsScreenProps extends Omit<PrizmaFormScreenProps, 'title' | 'subtitle' | 'ctaLabel' | 'ctaLoading' | 'ctaLoadingLabel' | 'verifiedLabel' | 'children' | 'navLabel' | 'linkLabel' | 'linkContent' | 'progress'> {
8
+ /** Module copy — this screen reads the `details` slice. */
9
+ strings: EkycStrings;
10
+ /** Which page-1 purple section to render. Default `default`. */
11
+ state?: EkycDetailsState;
12
+ /** The values the fields start with. Empty renders the resting empty field. */
13
+ values?: EkycDetailsValues;
14
+ screenId?: string;
15
+ overrides?: PrizmaScreenOverrides;
16
+ onAction?: PrizmaScreenActionHandler;
17
+ }
18
+ /**
19
+ * eKYC — page 1, the applicant's identity data, built on the Form archetype
20
+ * (GUIDELINES.md §6-E, `PrizmaFormScreen`).
21
+ *
22
+ * ONE screen for all three page-1 purple sections (`default` 2101:7877,
23
+ * `focused` 2101:8159, `filled` 5849:60225): measured against the 390 frames
24
+ * they share an identical skeleton — nav → Title → Spacing/32 → four labelled
25
+ * fields at Spacing/16 → "Continue" → tag (the archetype's own offsets, and the
26
+ * exact ones Figma draws: `middle container` puts Title at 8, `container 1` at
27
+ * 99, and stacks the fields at 0 / 94 / 188 / 282, i.e. 78-tall fields with a
28
+ * flat 16 between) — and differ ONLY in field content and field treatment.
29
+ *
30
+ * Four things are deliberate, each one a lesson an earlier module paid for:
31
+ *
32
+ * 1. The fields are UNCONTROLLED (`defaultValue`). A screen is one static spec
33
+ * state, so no `onChange` is needed — and Core's `readOnly`, the other way
34
+ * to freeze a field, paints the DISABLED grey surface on sections Figma
35
+ * draws white (#PI-6). Page 1 greys nothing, so nothing here is `disabled`.
36
+ * 2. `focused` gets Core's OWN `--focused` modifier through `className` — the
37
+ * class its CSS already implements beside `:focus-within`. `PrizmaTextField`
38
+ * still has no `forceState` prop, unlike `PrizmaDropdown` (#PI-7); nothing
39
+ * is re-styled here.
40
+ * 3. The clear ✕ is asked for ONLY on the focused field, the one field
41
+ * 2101:8159 draws it in. `clearable` alone would be a prop that silently
42
+ * does nothing — Core reveals the button under `:focus-within`, a guard a
43
+ * static spec state can never satisfy — so `EkycLayout.css` releases that
44
+ * one guard, the same idiom (and the same Core request) as
45
+ * `CurpLayout.css`'s error rule. No ✕ glyph is declared here.
46
+ * 4. Date of Birth is Core's `PrizmaDateField`, not a text field with a bolted-on
47
+ * icon: the frame's trailing glyph is the date kind's own calendar
48
+ * affordance, and the DD/MM/YYYY value Figma fills in ("14/03/1989") is the
49
+ * mask that kind applies.
50
+ *
51
+ * The required asterisk is Core's `requiredHint` suffix on a `required` field —
52
+ * the label row Figma draws as "First name *" — so Middle name, the one
53
+ * optional field, correctly renders none.
54
+ *
55
+ * Figma draws a two-segment journey bar between the nav and the title on every
56
+ * page-1 frame, and it is the only chrome that separates page 1 from page 2.
57
+ * Archetype E had no slot above the title; the gap is now CLOSED in the
58
+ * archetype (`PrizmaFormScreen.progress`, offsets in `ScreenLayout.css`) rather
59
+ * than worked around here, and the bar itself is Core's shipped `PrizmaStepper`
60
+ * — no two-div bar is hand-rolled. All three page-1 sections draw segment 1
61
+ * solid brand blue and segment 2 grey, i.e. `steps={2} currentState="Start"`,
62
+ * with the icons row off (the frames draw the bar alone). DEVIATIONS #EK-1.
63
+ */
64
+ export declare const EkycDetailsScreen: React.ForwardRefExoticComponent<EkycDetailsScreenProps & React.RefAttributes<HTMLDivElement>>;
65
+ export default EkycDetailsScreen;