@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,206 @@
1
+ /* Qualified Signature — module layout additions.
2
+ *
3
+ * ONLY what the foundation archetypes and Prizma Core do not already own.
4
+ * NOTHING here re-declares an archetype spacing rule: the content column, the
5
+ * 24px gutters, the title → fields Spacing/32 (`FormScreen.css`), the title →
6
+ * list Spacing/24 (`__list`), the review header → stage Spacing/32 and stage →
7
+ * CTA Spacing/24 (`__review-*`), the CTA-band recipe (`__band`, DEVIATIONS #8)
8
+ * and the anchored footer (#F-29) all stay the foundation's.
9
+ *
10
+ * Every rule below is one of exactly three kinds:
11
+ * (a) CONTENT rhythm inside a slot the archetype hands over — the same
12
+ * licence §6-G gives a Core card list ("the list keeps its own row
13
+ * rhythm; the archetype supplies only the offset above it");
14
+ * (b) a RELEASE of a Core/foundation constraint a purple section contradicts
15
+ * — the idiom Phone Input's `width: auto` (#PI-1) and CURP's scrolling
16
+ * field stack (#CURP-1) established;
17
+ * (c) media CONTENT Core has no primitive for, rebuilt from Core's own
18
+ * tokens, with the Core request recorded.
19
+ */
20
+
21
+ /* ── (b) The consent stack is taller than the screen ─────────────────────────
22
+ * `QSign.AcceptSign.default` is a 1156-tall frame (the `selectedCheckox` one is
23
+ * 1160): five consent containers at ~120 each plus the document row push CONTENT
24
+ * far past the 654 a 390×844 reference gives it. Figma lets the page grow and
25
+ * the browser scroll; screens are authored at 390×844 and never reflow
26
+ * (DEVIATIONS #17), and archetype E's `.prizma-form-screen__fields` is
27
+ * `flex: 1; min-height: 0` with NO overflow behaviour — so the surplus is
28
+ * clipped by `ScreenShell`'s `overflow: hidden` and first paints over the CTA.
29
+ *
30
+ * The stack therefore scrolls INSIDE the column: the title, the CTA, the link
31
+ * and the anchored tag hold still while the clauses pan. It adds no padding, no
32
+ * gap and no size of its own. Identical to CURP's `.curp-generate--scroll`
33
+ * (DEVIATIONS #CURP-1) — this is the SECOND module to need it.
34
+ *
35
+ * FOUNDATION REQUEST (restated, now with two consumers): promote this to
36
+ * `FormScreen.css` as a `.prizma-form-screen__fields--scroll` variant driven by
37
+ * a `scrollFields` prop on `PrizmaFormScreen`. Every long-form module left in
38
+ * Wave 3 — eKYC, eKYB, address entry — hits the same wall.
39
+ */
40
+ /* CLOSED: the scroll is now the archetype's `scrollFields` prop
41
+ * (`.prizma-form-screen__fields--scroll` in FormScreen.css), which also gives
42
+ * every row `flex-shrink: 0`. Keeping the rule here re-declared layout in a
43
+ * module file AND missed that fix, which collapsed the document row to 18px and
44
+ * clipped its View button (owner-reported 2026-08-19). DEVIATIONS #QS-1. */
45
+
46
+ /* ── (a) Consent-clause rhythm ───────────────────────────────────────────────
47
+ * Figma stacks the `Checkbox` (size L / Container) instances at Spacing/4
48
+ * inside the accept screen's `bottom container`. Core ships the clause card
49
+ * itself (`PrizmaCheckbox size="L"` — tinted surface, 28px box, inline links)
50
+ * but no group wrapper, so the row rhythm is supplied here, exactly as a
51
+ * `PrizmaCardList` supplies its own. One token, no padding, no size.
52
+ *
53
+ * CORE REQUEST: a consent-group primitive (`PrizmaCheckboxGroup`) would own
54
+ * this gap and the group's `role="group"` naming.
55
+ */
56
+ .qualified-signature-terms {
57
+ display: flex;
58
+ flex-direction: column;
59
+ gap: var(--prizma-spacing-4);
60
+ }
61
+
62
+ /* ── (c) Uploaded-file preview card ──────────────────────────────────────────
63
+ * `QSign.reviewDoc.default`'s `Document Container` — a VERTICAL card holding a
64
+ * page thumbnail over the filename. Core's `PrizmaCardDocumentContainer` shares
65
+ * the Figma name but is the HORIZONTAL filename + action row (used on the accept
66
+ * screen, where it IS the right component). Rebuilt here from the same Card
67
+ * tokens: Surface/Neutral/50 on Border/Neutral/100 at Border/Radius/large,
68
+ * Spacing/32 block + Spacing/24 inline padding, Spacing/24 thumbnail → name.
69
+ *
70
+ * CORE REQUEST (third module to need it — Document Capture's `confirmUpload`
71
+ * has a byte-equivalent copy, DEVIATIONS #DC-27): promote a
72
+ * `PrizmaCardFilePreview`. Two identical hand-builds were already one too many;
73
+ * three is the #DC-29 threshold that got the glyph slot promoted.
74
+ */
75
+ .qualified-signature-file-card {
76
+ display: flex;
77
+ flex-direction: column;
78
+ align-items: center;
79
+ gap: var(--prizma-spacing-24);
80
+ box-sizing: border-box;
81
+ width: 100%;
82
+ padding: var(--prizma-spacing-32) var(--prizma-spacing-24);
83
+ background: var(--prizma-surface-neutral-50);
84
+ border: var(--prizma-border-width-regular) solid var(--prizma-border-neutral-100);
85
+ border-radius: var(--prizma-border-radius-large);
86
+ overflow: hidden;
87
+ }
88
+
89
+ /* Thumbnail — Figma draws `Artboard 1` at 113.25 × 150, a 3:4 page crop. Sized
90
+ * by ratio so it scales with the host and capped at the design width. */
91
+ .qualified-signature-file-card__thumb {
92
+ position: relative;
93
+ flex: none;
94
+ width: 113px; /* hardcoded — Figma page-thumbnail width; absent from the token SOT (same class as DEVIATIONS #DC-27) */
95
+ aspect-ratio: 3 / 4;
96
+ max-width: 100%;
97
+ border: var(--prizma-border-width-regular) solid var(--prizma-border-neutral-100);
98
+ border-radius: var(--prizma-border-radius-small);
99
+ overflow: hidden;
100
+ background: var(--prizma-surface-neutral-0);
101
+ }
102
+
103
+ .qualified-signature-file-card__thumb > img,
104
+ .qualified-signature-file-card__thumb > svg {
105
+ position: absolute;
106
+ inset: 0;
107
+ width: 100%;
108
+ height: 100%;
109
+ object-fit: cover;
110
+ }
111
+
112
+ .qualified-signature-file-card__name {
113
+ margin: 0;
114
+ width: 100%;
115
+ overflow-wrap: break-word;
116
+ text-align: center;
117
+ color: var(--prizma-text-body-800-primary);
118
+ font-family: var(--prizma-headline-family);
119
+ font-size: var(--prizma-headline-h5-font-size);
120
+ font-weight: var(--prizma-headline-h5-font-weight);
121
+ line-height: var(--prizma-headline-h5-line-height);
122
+ letter-spacing: var(--prizma-headline-h5-letter-spacing);
123
+ }
124
+
125
+ /* The card is inset inside the media stage — Figma centres the 246-wide
126
+ * container in the 342 column (48 each side). The spacing scale stops at 40, so
127
+ * the value is DERIVED from Spacing/24 rather than hardcoded. */
128
+ .qualified-signature-review-file {
129
+ padding-inline: calc(var(--prizma-spacing-24) * 2);
130
+ }
131
+
132
+ /* ── (c) Standalone encrypted notice ─────────────────────────────────────────
133
+ * "All data is encrypted" sits beside the file card, not under a capture frame.
134
+ * Core owns that building block ONLY as a private part of `PrizmaIdCapture`, so
135
+ * it is rebuilt from the identical tokens (Spacing/8 block padding, Spacing/4
136
+ * gap, Body/M Regular, Text/Body/800). One literal: the 16px lock clamp —
137
+ * `IconLock` is designed at 24 only and the icon-size axis has no 16, the same
138
+ * clamp Core itself writes in `IdCapture.css`.
139
+ *
140
+ * CORE REQUEST (third consumer, DEVIATIONS #DC-26): extract
141
+ * `PrizmaEncryptedNotice`.
142
+ */
143
+ .qualified-signature-encrypted {
144
+ margin: 0;
145
+ flex-shrink: 0;
146
+ display: flex;
147
+ align-items: center;
148
+ justify-content: center;
149
+ gap: var(--prizma-spacing-4);
150
+ padding-block: var(--prizma-spacing-8);
151
+ color: var(--prizma-text-body-800-primary);
152
+ font-family: var(--prizma-body-family);
153
+ font-size: var(--prizma-body-m-regular-font-size);
154
+ font-weight: var(--prizma-body-m-regular-font-weight);
155
+ line-height: var(--prizma-body-m-regular-line-height);
156
+ letter-spacing: var(--prizma-body-m-regular-letter-spacing);
157
+ }
158
+
159
+ .qualified-signature-encrypted > svg {
160
+ flex: none;
161
+ width: 16px; /* hardcoded — Icon/Lock is designed at 24 only and Figma draws 16; same clamp as Core's .prizma-id-capture__encrypted-icon (DEVIATIONS #DC-26) */
162
+ height: 16px;
163
+ }
164
+
165
+ /* ── (b) The document body scrolls inside the middle ─────────────────────────
166
+ * `QSign.AcceptSign.viewdoc` hands the middle a 592-tall contract page and
167
+ * `QSign.T&C` a 13575-tall block of legal text WITH ITS OWN SCROLL INDICATOR —
168
+ * Figma is explicit that this surface scrolls. Archetype G's `__list` middle
169
+ * flexes but does not scroll, so the body would be clipped by the shell.
170
+ *
171
+ * This releases that one constraint. It declares no padding, no gap and no size:
172
+ * the Spacing/24 above it is still the archetype's, the gutters are still the
173
+ * content column's, and the tag stays anchored. `overscroll-behavior` keeps a
174
+ * flick inside the document instead of panning the host page.
175
+ */
176
+ .qualified-signature-document {
177
+ flex: 1 1 auto;
178
+ min-height: 0;
179
+ width: 100%;
180
+ overflow-y: auto;
181
+ overscroll-behavior: contain;
182
+ }
183
+
184
+ /* The contract page is host-supplied media (an <img> / <canvas> of the rendered
185
+ * PDF, GUIDELINES §10's `cameraSurface` idiom) — it fills the column width and
186
+ * keeps its own aspect. */
187
+ .qualified-signature-document > img,
188
+ .qualified-signature-document > svg {
189
+ display: block;
190
+ width: 100%;
191
+ height: auto;
192
+ }
193
+
194
+ /* Legal body copy inside the `terms` variant. Core has no long-form prose
195
+ * component (Body tokens exist, the block does not), so the paragraph binds the
196
+ * Body/M Regular scale directly — no new size, no new colour. */
197
+ .qualified-signature-document__prose {
198
+ margin: 0;
199
+ color: var(--prizma-text-body-800-primary);
200
+ font-family: var(--prizma-body-family);
201
+ font-size: var(--prizma-body-m-regular-font-size);
202
+ font-weight: var(--prizma-body-m-regular-font-weight);
203
+ line-height: var(--prizma-body-m-regular-line-height);
204
+ letter-spacing: var(--prizma-body-m-regular-letter-spacing);
205
+ text-align: left;
206
+ }
@@ -0,0 +1,46 @@
1
+ import React from 'react';
2
+ import { type PrizmaProcessingScreenProps } from './ProcessingScreen';
3
+ import type { PrizmaScreenActionHandler, PrizmaScreenOverrides } from './types';
4
+ import type { QualifiedSignatureProcessingVariant, QualifiedSignatureStrings } from './QualifiedSignatureStrings';
5
+ import './ScreenLayout.css';
6
+ export interface QualifiedSignatureProcessingScreenProps extends Omit<PrizmaProcessingScreenProps, 'status' | 'title' | 'subtitle' | 'verifiedLabel' | 'navLabel'> {
7
+ /** Module copy — this screen reads the `processing` slice its `variant` names. */
8
+ strings: QualifiedSignatureStrings;
9
+ /** Which reading of the in-flight frame to render. Default `processing`. */
10
+ variant?: QualifiedSignatureProcessingVariant;
11
+ screenId?: string;
12
+ overrides?: PrizmaScreenOverrides;
13
+ onAction?: PrizmaScreenActionHandler;
14
+ }
15
+ /**
16
+ * Qualified Signature — the in-flight screens.
17
+ *
18
+ * The two purple parents do NOT draw the same wait, so this is two frames, not
19
+ * one:
20
+ *
21
+ * - `processing` — `QSign.AcceptSign.processing` (10196:67395). The pure
22
+ * spinner + H2 case with nothing else on the frame, which is exactly what
23
+ * GUIDELINES §6-C reserves for the Processing archetype: the spinner block is
24
+ * centred in the middle container, so the archetype's fully-centred column is
25
+ * the right template.
26
+ * - `signing` — the partner's own 6086:39544. "Creating your signature…"
27
+ * under the spinner PLUS a second attribution row, "Signing as …", anchored
28
+ * at the BOTTOM of the frame immediately above the verified tag — NOT under
29
+ * the title, where a `subtitle` would land it.
30
+ *
31
+ * WHY `signing` MOVES TO ARCHETYPE F. Archetype C has no slot between its
32
+ * centred column and the footer tag, so there is no way to place a
33
+ * bottom-anchored row without declaring spacing locally — forbidden by §6.
34
+ * Archetype F is "C with a CTA band", and its `disclaimer` slot is precisely
35
+ * that row: Core's own `PrizmaDisclaimer`, centred secondary text, sitting in
36
+ * the band directly above the tag. With no CTA label the band carries only that
37
+ * row, so the frame keeps C's silhouette and gains the anchored line. The
38
+ * archetype gap (C has no footer/disclaimer slot) is reported, not patched
39
+ * here — this screen still declares no layout of its own.
40
+ *
41
+ * Both are distinct from the accept screen's `loading` state, which keeps the
42
+ * signer on the form with the spinner in the CTA — these are the flow's own
43
+ * waits.
44
+ */
45
+ export declare const QualifiedSignatureProcessingScreen: React.ForwardRefExoticComponent<QualifiedSignatureProcessingScreenProps & React.RefAttributes<HTMLDivElement>>;
46
+ export default QualifiedSignatureProcessingScreen;
@@ -0,0 +1,48 @@
1
+ 'use client';
2
+ import { jsx as _jsx } from "react/jsx-runtime";
3
+ import { forwardRef } from 'react';
4
+ import { PrizmaProcessingScreen, } from './ProcessingScreen';
5
+ import { PrizmaResultScreen } from './ResultScreen';
6
+ import './ScreenLayout.css';
7
+ /**
8
+ * Qualified Signature — the in-flight screens.
9
+ *
10
+ * The two purple parents do NOT draw the same wait, so this is two frames, not
11
+ * one:
12
+ *
13
+ * - `processing` — `QSign.AcceptSign.processing` (10196:67395). The pure
14
+ * spinner + H2 case with nothing else on the frame, which is exactly what
15
+ * GUIDELINES §6-C reserves for the Processing archetype: the spinner block is
16
+ * centred in the middle container, so the archetype's fully-centred column is
17
+ * the right template.
18
+ * - `signing` — the partner's own 6086:39544. "Creating your signature…"
19
+ * under the spinner PLUS a second attribution row, "Signing as …", anchored
20
+ * at the BOTTOM of the frame immediately above the verified tag — NOT under
21
+ * the title, where a `subtitle` would land it.
22
+ *
23
+ * WHY `signing` MOVES TO ARCHETYPE F. Archetype C has no slot between its
24
+ * centred column and the footer tag, so there is no way to place a
25
+ * bottom-anchored row without declaring spacing locally — forbidden by §6.
26
+ * Archetype F is "C with a CTA band", and its `disclaimer` slot is precisely
27
+ * that row: Core's own `PrizmaDisclaimer`, centred secondary text, sitting in
28
+ * the band directly above the tag. With no CTA label the band carries only that
29
+ * row, so the frame keeps C's silhouette and gains the anchored line. The
30
+ * archetype gap (C has no footer/disclaimer slot) is reported, not patched
31
+ * here — this screen still declares no layout of its own.
32
+ *
33
+ * Both are distinct from the accept screen's `loading` state, which keeps the
34
+ * signer on the form with the spinner in the CTA — these are the flow's own
35
+ * waits.
36
+ */
37
+ export const QualifiedSignatureProcessingScreen = forwardRef(({ strings, variant = 'processing', screenId = `qualified-signature-processing-${variant}`, overrides, onAction, ...shell }, ref) => {
38
+ if (variant === 'signing') {
39
+ const copy = strings.processing.signing;
40
+ return (_jsx(PrizmaResultScreen, { ref: ref, status: "loading", title: copy.title, subtitle: copy.subtitle,
41
+ /* The bottom-anchored "Signing as …" row. */
42
+ disclaimer: copy.signingAsLabel, verifiedLabel: strings.verifiedLabel, navLabel: strings.navLabel, screenId: screenId, overrides: overrides, onAction: onAction, ...shell }));
43
+ }
44
+ const copy = strings.processing.processing;
45
+ return (_jsx(PrizmaProcessingScreen, { ref: ref, status: "loading", title: copy.title, subtitle: copy.subtitle, verifiedLabel: strings.verifiedLabel, navLabel: strings.navLabel, screenId: screenId, overrides: overrides, onAction: onAction, ...shell }));
46
+ });
47
+ QualifiedSignatureProcessingScreen.displayName = 'QualifiedSignatureProcessingScreen';
48
+ export default QualifiedSignatureProcessingScreen;
@@ -0,0 +1,65 @@
1
+ import React from 'react';
2
+ import { type PrizmaResultScreenProps } from './ResultScreen';
3
+ import type { PrizmaScreenActionHandler, PrizmaScreenOverrides } from './types';
4
+ import type { QualifiedSignatureResultVariant, QualifiedSignatureStrings } from './QualifiedSignatureStrings';
5
+ import './ScreenLayout.css';
6
+ export interface QualifiedSignatureResultScreenProps extends Omit<PrizmaResultScreenProps, 'status' | 'title' | 'subtitle' | 'glyph' | 'bandContent' | 'disclaimer' | 'ctaLabel' | 'secondaryCtaLabel' | 'verifiedLabel' | 'navLabel'> {
7
+ /** Module copy — this screen reads the `result` slice its `variant` names. */
8
+ strings: QualifiedSignatureStrings;
9
+ /** Which verdict section to render. Default `signed`. */
10
+ variant?: QualifiedSignatureResultVariant;
11
+ screenId?: string;
12
+ overrides?: PrizmaScreenOverrides;
13
+ onAction?: PrizmaScreenActionHandler;
14
+ }
15
+ /**
16
+ * Qualified Signature — the five verdicts, built on the Result archetype
17
+ * (GUIDELINES.md §6-F, `PrizmaResultScreen`).
18
+ *
19
+ * ONE screen for five purple frames that share the archetype's skeleton —
20
+ * nav → centred status mark + title block → CTA band → anchored tag — and differ
21
+ * in status, copy and which actions exist:
22
+ * - `signed` — `QSign.success` (10196:67485): the positive mark over a
23
+ * `Button group` 124 tall = the "Continue" primary plus the "Download PDF"
24
+ * underlined link.
25
+ * - `signedPlain` — `QSign.success` (10196:67494): the SAME mark and line
26
+ * with no actions at all, so the band never renders and the screen reads as
27
+ * the pure §6-C verdict.
28
+ * - `signedPartner` — the `x Namirial` parent's own success frame (6086:40135).
29
+ * NOT a copy of either generic one: it adds the "Signed by …" attribution row
30
+ * and a STACKED pair — "Done" primary above a "Download document" OUTLINED
31
+ * secondary. Both ride the archetype's `ctaLabel` + `secondaryCtaLabel`, which
32
+ * already fix primary-above-secondary (#GEO-1); the attribution row rides
33
+ * `disclaimer`, the band's own centred text row above the buttons.
34
+ * - `error` — `QSign.AcceptSign.error` (10196:67436 / 6089:37399): the
35
+ * warning mark and "Something went wrong". This frame really does draw no
36
+ * button.
37
+ * - `errorRetry` — the SECOND error frame both parents draw (10196:67445 and
38
+ * the partner's 8363:21429): the same warning mark over "Signature failed"
39
+ * plus a full-width "Try again" primary. It is the flow's only recovery
40
+ * affordance, so it is a state in its own right rather than an upstream
41
+ * concern (QA finding, 2026-08-19).
42
+ *
43
+ * Core's outline status marks are used, not Figma's two-tone filled discs — the
44
+ * icon-outline sweep of 2026-07-28 settled that for every module (DEVIATIONS
45
+ * #15, #DC-34) and these frames are one sweep behind. Both error frames get the
46
+ * WARNING mark, not the negative one: Figma draws the amber "!" disc, and the
47
+ * signature attempt is recoverable rather than refused.
48
+ *
49
+ * The generic error frames drop the verified tag; the partner's keeps it.
50
+ * The owner rule settles the split in favour of keeping it (#PI-8, #F-30) so
51
+ * nothing shifts between states.
52
+ *
53
+ * ONE reported delta: on `signed`, Figma puts "Download PDF" BELOW the primary,
54
+ * at Core's `PrizmaButtonGroup` Spacing/12. Archetype F has no tertiary-link
55
+ * slot — its only band opening above the buttons is `bandContent` — so Core's
56
+ * own `tertiary-link` Button is composed there and lands ABOVE the primary at
57
+ * the band's Spacing/32 (16 + 16). Ink, semantics and the distinct `secondary`
58
+ * action are all correct (#PI-10); only the position moves. #GEO-1 fixes the
59
+ * tertiary link's position PER ARCHETYPE and F has never declared one — the
60
+ * archetype request is logged instead of a local override. `signedPartner` is
61
+ * unaffected: its download control is a real outlined secondary Button, which
62
+ * the archetype already places correctly.
63
+ */
64
+ export declare const QualifiedSignatureResultScreen: React.ForwardRefExoticComponent<QualifiedSignatureResultScreenProps & React.RefAttributes<HTMLDivElement>>;
65
+ export default QualifiedSignatureResultScreen;
@@ -0,0 +1,76 @@
1
+ 'use client';
2
+ import { jsx as _jsx } from "react/jsx-runtime";
3
+ import { forwardRef } from 'react';
4
+ import { PrizmaButton } from '@incodetech/prizma-core-web/button';
5
+ import { PrizmaResultScreen } from './ResultScreen';
6
+ import './ScreenLayout.css';
7
+ /**
8
+ * Qualified Signature — the five verdicts, built on the Result archetype
9
+ * (GUIDELINES.md §6-F, `PrizmaResultScreen`).
10
+ *
11
+ * ONE screen for five purple frames that share the archetype's skeleton —
12
+ * nav → centred status mark + title block → CTA band → anchored tag — and differ
13
+ * in status, copy and which actions exist:
14
+ * - `signed` — `QSign.success` (10196:67485): the positive mark over a
15
+ * `Button group` 124 tall = the "Continue" primary plus the "Download PDF"
16
+ * underlined link.
17
+ * - `signedPlain` — `QSign.success` (10196:67494): the SAME mark and line
18
+ * with no actions at all, so the band never renders and the screen reads as
19
+ * the pure §6-C verdict.
20
+ * - `signedPartner` — the `x Namirial` parent's own success frame (6086:40135).
21
+ * NOT a copy of either generic one: it adds the "Signed by …" attribution row
22
+ * and a STACKED pair — "Done" primary above a "Download document" OUTLINED
23
+ * secondary. Both ride the archetype's `ctaLabel` + `secondaryCtaLabel`, which
24
+ * already fix primary-above-secondary (#GEO-1); the attribution row rides
25
+ * `disclaimer`, the band's own centred text row above the buttons.
26
+ * - `error` — `QSign.AcceptSign.error` (10196:67436 / 6089:37399): the
27
+ * warning mark and "Something went wrong". This frame really does draw no
28
+ * button.
29
+ * - `errorRetry` — the SECOND error frame both parents draw (10196:67445 and
30
+ * the partner's 8363:21429): the same warning mark over "Signature failed"
31
+ * plus a full-width "Try again" primary. It is the flow's only recovery
32
+ * affordance, so it is a state in its own right rather than an upstream
33
+ * concern (QA finding, 2026-08-19).
34
+ *
35
+ * Core's outline status marks are used, not Figma's two-tone filled discs — the
36
+ * icon-outline sweep of 2026-07-28 settled that for every module (DEVIATIONS
37
+ * #15, #DC-34) and these frames are one sweep behind. Both error frames get the
38
+ * WARNING mark, not the negative one: Figma draws the amber "!" disc, and the
39
+ * signature attempt is recoverable rather than refused.
40
+ *
41
+ * The generic error frames drop the verified tag; the partner's keeps it.
42
+ * The owner rule settles the split in favour of keeping it (#PI-8, #F-30) so
43
+ * nothing shifts between states.
44
+ *
45
+ * ONE reported delta: on `signed`, Figma puts "Download PDF" BELOW the primary,
46
+ * at Core's `PrizmaButtonGroup` Spacing/12. Archetype F has no tertiary-link
47
+ * slot — its only band opening above the buttons is `bandContent` — so Core's
48
+ * own `tertiary-link` Button is composed there and lands ABOVE the primary at
49
+ * the band's Spacing/32 (16 + 16). Ink, semantics and the distinct `secondary`
50
+ * action are all correct (#PI-10); only the position moves. #GEO-1 fixes the
51
+ * tertiary link's position PER ARCHETYPE and F has never declared one — the
52
+ * archetype request is logged instead of a local override. `signedPartner` is
53
+ * unaffected: its download control is a real outlined secondary Button, which
54
+ * the archetype already places correctly.
55
+ */
56
+ export const QualifiedSignatureResultScreen = forwardRef(({ strings, variant = 'signed', screenId = `qualified-signature-result-${variant}`, overrides, onAction, ...shell }, ref) => {
57
+ // One slice per frame — nothing is shared between variants, so the frames
58
+ // can never collapse into each other visually.
59
+ const signedCopy = variant === 'signed' ? strings.result.signed : undefined;
60
+ const partnerCopy = variant === 'signedPartner' ? strings.result.signedPartner : undefined;
61
+ const retryCopy = variant === 'errorRetry' ? strings.result.errorRetry : undefined;
62
+ const copy = signedCopy ??
63
+ partnerCopy ??
64
+ retryCopy ??
65
+ (variant === 'error' ? strings.result.error : strings.result.signedPlain);
66
+ return (_jsx(PrizmaResultScreen, { ref: ref, status: variant === 'error' || variant === 'errorRetry' ? 'warning' : 'success', title: copy.title, subtitle: copy.subtitle,
67
+ /* "Continue" · "Done" · "Try again" — the archetype's own primary. */
68
+ ctaLabel: signedCopy?.ctaLabel ?? partnerCopy?.ctaLabel ?? retryCopy?.ctaLabel,
69
+ /* The partner's outlined "Download document", below the primary. */
70
+ secondaryCtaLabel: partnerCopy?.secondaryCtaLabel,
71
+ /* The partner's "Signed by …" row — the band's centred text slot, which
72
+ puts it above the button pair exactly as Figma draws it. */
73
+ disclaimer: partnerCopy?.signedByLabel, bandContent: signedCopy?.downloadLabel ? (_jsx(PrizmaButton, { variant: "tertiary-link", size: "L", onClick: () => onAction?.({ type: 'secondary', screenId }), children: signedCopy.downloadLabel })) : undefined, verifiedLabel: strings.verifiedLabel, navLabel: strings.navLabel, screenId: screenId, overrides: overrides, onAction: onAction, ...shell }));
74
+ });
75
+ QualifiedSignatureResultScreen.displayName = 'QualifiedSignatureResultScreen';
76
+ export default QualifiedSignatureResultScreen;
@@ -0,0 +1,49 @@
1
+ import React, { type ReactNode } from 'react';
2
+ import { type PrizmaReviewScreenProps } from './ReviewScreen';
3
+ import type { PrizmaScreenActionHandler, PrizmaScreenOverrides } from './types';
4
+ import type { QualifiedSignatureStrings } from './QualifiedSignatureStrings';
5
+ import './ScreenLayout.css';
6
+ import './QualifiedSignatureLayout.css';
7
+ export interface QualifiedSignatureReviewScreenProps extends Omit<PrizmaReviewScreenProps, 'stage' | 'title' | 'subtitle' | 'successTitle' | 'analyzingLabel' | 'analyzingState' | 'primaryLabel' | 'secondaryLabel' | 'verifiedLabel' | 'children' | 'stageClassName'> {
8
+ /** Module copy — this screen reads the `review` slice. */
9
+ strings: QualifiedSignatureStrings;
10
+ /** The uploaded file's name. Not copy — runtime data from the picker. */
11
+ filename?: string;
12
+ /** Page-preview thumbnail (an `<img>`) rendered inside the card. */
13
+ thumbnail?: ReactNode;
14
+ screenId?: string;
15
+ overrides?: PrizmaScreenOverrides;
16
+ onAction?: PrizmaScreenActionHandler;
17
+ }
18
+ /**
19
+ * Qualified Signature — the uploaded document confirmed before signing, built on
20
+ * the Review archetype (GUIDELINES.md §6-H, `PrizmaReviewScreen`).
21
+ *
22
+ * Figma: purple section `QSign.reviewDoc.default` (10196:67138). It is archetype
23
+ * H and not F for exactly the reason §6-H draws the line: the header is
24
+ * TOP-aligned (`top container` starts at CONTENT y=24 with the Title, no logo
25
+ * row) over a media `Container` that fills the middle (109→450 of a 654 frame),
26
+ * with the actions anchored at the bottom — F would centre the title and the
27
+ * card together as one block. Measured against the archetype: Title → stage 32
28
+ * (Figma 109 − 77 = 32), stage → actions 24 (482 − 450 − 8 rounding). Every one
29
+ * of those offsets is the archetype's; this file declares none.
30
+ *
31
+ * TWO deltas from the frame, both reported rather than worked around:
32
+ * 1. Figma stacks `Continue` over `Replace` (a `Button group` 124 tall = 56 + 12
33
+ * + 56). Archetype H hardcodes Core's `PrizmaButtonGroup
34
+ * orientation="horizontal-v1"`, so they pair side by side. A screen never
35
+ * picks its own button order (#GEO-1), and H has no orientation slot — the
36
+ * archetype request is logged instead of overridden here.
37
+ * 2. The frame draws no verified tag. The owner rule wins over Figma for
38
+ * attribution chrome — every non-capture screen keeps header and footer
39
+ * (#PI-8, #F-30, #F-34) — so `showFooter` keeps its default.
40
+ *
41
+ * What stays module-side is the MEDIA, which Core has no primitive for: the
42
+ * vertical file-preview card (`PrizmaCardDocumentContainer` is the horizontal
43
+ * filename + action row this module uses on the accept screen instead) and the
44
+ * standalone encrypted notice (Core owns it only inside `PrizmaIdCapture`).
45
+ * Both are rebuilt from Core's own tokens in `QualifiedSignatureLayout.css`,
46
+ * with the Core requests recorded there — DEVIATIONS #DC-26, #DC-27.
47
+ */
48
+ export declare const QualifiedSignatureReviewScreen: React.ForwardRefExoticComponent<QualifiedSignatureReviewScreenProps & React.RefAttributes<HTMLDivElement>>;
49
+ export default QualifiedSignatureReviewScreen;
@@ -0,0 +1,40 @@
1
+ 'use client';
2
+ import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
3
+ import { forwardRef } from 'react';
4
+ import { IconLock } from '@incodetech/prizma-core-icons';
5
+ import { PrizmaReviewScreen } from './ReviewScreen';
6
+ import './ScreenLayout.css';
7
+ import './QualifiedSignatureLayout.css';
8
+ /**
9
+ * Qualified Signature — the uploaded document confirmed before signing, built on
10
+ * the Review archetype (GUIDELINES.md §6-H, `PrizmaReviewScreen`).
11
+ *
12
+ * Figma: purple section `QSign.reviewDoc.default` (10196:67138). It is archetype
13
+ * H and not F for exactly the reason §6-H draws the line: the header is
14
+ * TOP-aligned (`top container` starts at CONTENT y=24 with the Title, no logo
15
+ * row) over a media `Container` that fills the middle (109→450 of a 654 frame),
16
+ * with the actions anchored at the bottom — F would centre the title and the
17
+ * card together as one block. Measured against the archetype: Title → stage 32
18
+ * (Figma 109 − 77 = 32), stage → actions 24 (482 − 450 − 8 rounding). Every one
19
+ * of those offsets is the archetype's; this file declares none.
20
+ *
21
+ * TWO deltas from the frame, both reported rather than worked around:
22
+ * 1. Figma stacks `Continue` over `Replace` (a `Button group` 124 tall = 56 + 12
23
+ * + 56). Archetype H hardcodes Core's `PrizmaButtonGroup
24
+ * orientation="horizontal-v1"`, so they pair side by side. A screen never
25
+ * picks its own button order (#GEO-1), and H has no orientation slot — the
26
+ * archetype request is logged instead of overridden here.
27
+ * 2. The frame draws no verified tag. The owner rule wins over Figma for
28
+ * attribution chrome — every non-capture screen keeps header and footer
29
+ * (#PI-8, #F-30, #F-34) — so `showFooter` keeps its default.
30
+ *
31
+ * What stays module-side is the MEDIA, which Core has no primitive for: the
32
+ * vertical file-preview card (`PrizmaCardDocumentContainer` is the horizontal
33
+ * filename + action row this module uses on the accept screen instead) and the
34
+ * standalone encrypted notice (Core owns it only inside `PrizmaIdCapture`).
35
+ * Both are rebuilt from Core's own tokens in `QualifiedSignatureLayout.css`,
36
+ * with the Core requests recorded there — DEVIATIONS #DC-26, #DC-27.
37
+ */
38
+ export const QualifiedSignatureReviewScreen = forwardRef(({ strings, filename, thumbnail, screenId = 'qualified-signature-review', overrides, onAction, ...shell }, ref) => (_jsxs(PrizmaReviewScreen, { ref: ref, stage: "review", title: strings.review.title, subtitle: strings.review.subtitle, stageClassName: "qualified-signature-review-file", primaryLabel: strings.review.ctaLabel, secondaryLabel: strings.review.replaceLabel, verifiedLabel: strings.verifiedLabel, navLabel: strings.navLabel, screenId: screenId, overrides: overrides, onAction: onAction, ...shell, children: [_jsxs("div", { className: "qualified-signature-file-card", children: [_jsx("span", { className: "qualified-signature-file-card__thumb", children: thumbnail }), filename ? (_jsx("p", { className: "qualified-signature-file-card__name", children: filename })) : null] }), strings.review.encryptedLabel ? (_jsxs("p", { className: "qualified-signature-encrypted", children: [_jsx(IconLock, { size: "m" }), _jsx("span", { children: strings.review.encryptedLabel })] })) : null] })));
39
+ QualifiedSignatureReviewScreen.displayName = 'QualifiedSignatureReviewScreen';
40
+ export default QualifiedSignatureReviewScreen;