@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,41 @@
1
+ import React from 'react';
2
+ import { type PrizmaFormScreenProps } from './FormScreen';
3
+ import type { PrizmaScreenActionHandler, PrizmaScreenOverrides } from './types';
4
+ import type { PhoneInputCountry, PhoneInputStrings, PhoneInputVerifyState } from './PhoneInputStrings';
5
+ import './ScreenLayout.css';
6
+ import './PhoneInputLayout.css';
7
+ export interface PhoneInputVerifyScreenProps extends Omit<PrizmaFormScreenProps, 'title' | 'subtitle' | 'ctaLabel' | 'verifiedLabel' | 'children' | 'navLabel'> {
8
+ /** Module copy — this screen reads the `verify` slice. */
9
+ strings: PhoneInputStrings;
10
+ /** Which purple `phoneNumber.verify.*` section to render. Default `default`. */
11
+ state?: PhoneInputVerifyState;
12
+ /** The selectable dial codes. Runtime data, not copy. */
13
+ countries?: PhoneInputCountry[];
14
+ /** Selected country `value`. Defaults to the first entry. */
15
+ country?: string;
16
+ /** The phone number as typed. Empty renders the placeholder (`default`). */
17
+ value?: string;
18
+ screenId?: string;
19
+ overrides?: PrizmaScreenOverrides;
20
+ onAction?: PrizmaScreenActionHandler;
21
+ }
22
+ /**
23
+ * Phone Input — the phone-entry screen, built on the Form archetype
24
+ * (GUIDELINES.md §6-E, `PrizmaFormScreen`).
25
+ *
26
+ * ONE screen for all five purple `phoneNumber.verify.*` sections
27
+ * (`default` / `countryCode` / `phonetyping` / `phoneFilled` / `loading`):
28
+ * measured against the 390 frames, they share an identical layout — nav → Title
29
+ * (H2 + H5) → Spacing/32 → the combined country-dropdown + phone-field row →
30
+ * CTA → tag — and differ ONLY in field content and CTA state, which is exactly
31
+ * what GUIDELINES §6-E means by "states are separate screens sharing the
32
+ * identical layout".
33
+ *
34
+ * Figma's `Input / Combined` is a dropdown + text field pair at Spacing/8, the
35
+ * dropdown hugging its content and the field filling the rest. Core ships both
36
+ * primitives (`PrizmaDropdown`, `PrizmaTextField`) at the designed 56px min
37
+ * height and `Border/Radius/small`, so the module layer contributes only the
38
+ * row that pairs them (`PhoneInputLayout.css`) — no primitive is re-implemented.
39
+ */
40
+ export declare const PhoneInputVerifyScreen: React.ForwardRefExoticComponent<PhoneInputVerifyScreenProps & React.RefAttributes<HTMLDivElement>>;
41
+ export default PhoneInputVerifyScreen;
@@ -0,0 +1,71 @@
1
+ 'use client';
2
+ import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
3
+ import { forwardRef } from 'react';
4
+ import { PrizmaTextField } from '@incodetech/prizma-core-web/text-field';
5
+ import { PrizmaDropdown } from '@incodetech/prizma-core-web/dropdown';
6
+ import { PrizmaFormScreen } from './FormScreen';
7
+ import './ScreenLayout.css';
8
+ import './PhoneInputLayout.css';
9
+ /** Figma's `countryCode` section draws the dropdown menu open over the form;
10
+ * Core exposes that as the documentation-only `forceOpen` (a screen is one
11
+ * static spec state, never a live interaction). */
12
+ const DEFAULT_COUNTRIES = [
13
+ { value: 'RS', dialCode: '+381', label: 'Serbia', flag: '🇷🇸' },
14
+ ];
15
+ /**
16
+ * Phone Input — the phone-entry screen, built on the Form archetype
17
+ * (GUIDELINES.md §6-E, `PrizmaFormScreen`).
18
+ *
19
+ * ONE screen for all five purple `phoneNumber.verify.*` sections
20
+ * (`default` / `countryCode` / `phonetyping` / `phoneFilled` / `loading`):
21
+ * measured against the 390 frames, they share an identical layout — nav → Title
22
+ * (H2 + H5) → Spacing/32 → the combined country-dropdown + phone-field row →
23
+ * CTA → tag — and differ ONLY in field content and CTA state, which is exactly
24
+ * what GUIDELINES §6-E means by "states are separate screens sharing the
25
+ * identical layout".
26
+ *
27
+ * Figma's `Input / Combined` is a dropdown + text field pair at Spacing/8, the
28
+ * dropdown hugging its content and the field filling the rest. Core ships both
29
+ * primitives (`PrizmaDropdown`, `PrizmaTextField`) at the designed 56px min
30
+ * height and `Border/Radius/small`, so the module layer contributes only the
31
+ * row that pairs them (`PhoneInputLayout.css`) — no primitive is re-implemented.
32
+ */
33
+ export const PhoneInputVerifyScreen = forwardRef(({ strings, state = 'default', countries = DEFAULT_COUNTRIES, country, value, screenId = `phone-input-verify-${state}`, overrides, onAction, ...shell }, ref) => {
34
+ const selected = country ?? countries[0]?.value;
35
+ const options = countries.map((c) => ({
36
+ value: c.value,
37
+ // The closed field shows flag + dial code exactly as Figma draws it
38
+ // ("🇷🇸 +381"); the open menu row adds the country name.
39
+ label: [c.flag, c.dialCode].filter(Boolean).join(' '),
40
+ }));
41
+ // Figma treats the states as three distinct field treatments, not one:
42
+ // `loading` greys BOTH fields (the request is in flight and the form is
43
+ // inert) and puts the spinner in the CTA; `typing` draws the focused blue
44
+ // border with the caret and the clear affordance; everything else is a
45
+ // plain editable field on the default white surface. Core's read-only
46
+ // paints the DISABLED surface (owner definition 2026-07-12), so it is used
47
+ // for none of them — it would grey the resting states too (DEVIATIONS #PI-6).
48
+ const busy = state === 'loading';
49
+ const focused = state === 'typing';
50
+ return (_jsx(PrizmaFormScreen, { ref: ref, title: strings.verify.title, subtitle: strings.verify.subtitle, ctaLabel: strings.verify.ctaLabel,
51
+ /* Figma's `loading` section swaps the CTA label for Core's spinner. */
52
+ ctaLoading: busy, ctaLoadingLabel: strings.verify.ctaLoadingLabel, verifiedLabel: strings.verifiedLabel, navLabel: strings.navLabel, screenId: screenId, overrides: overrides, onAction: onAction, ...shell, children: _jsxs("div", { className: "phone-input-combined", children: [_jsx(PrizmaDropdown, { className: "phone-input-combined__country", "aria-label": strings.verify.countryLabel, options: options, value: selected, searchable: true, searchPlaceholder: strings.verify.countrySearchPlaceholder,
53
+ /* The `countryCode` section IS the open-menu spec state. */
54
+ forceOpen: state === 'countryCode', disabled: busy }), _jsx(PrizmaTextField, { className: [
55
+ 'phone-input-combined__number',
56
+ /* Core's own static-focus modifier — the same mechanism the
57
+ Dropdown exposes as `forceState`, which `PrizmaTextField` has
58
+ no prop for yet (DEVIATIONS #PI-7). No styling is redeclared. */
59
+ focused ? 'prizma-input-textfield--focused' : '',
60
+ ]
61
+ .filter(Boolean)
62
+ .join(' '), type: "tel", inputMode: "tel", "aria-label": strings.verify.fieldLabel, placeholder: strings.verify.placeholder,
63
+ /* Uncontrolled: a screen is one static spec state, and `value`
64
+ without `onChange` would either warn or force `readOnly`, whose
65
+ disabled surface is exactly the grey Figma does NOT draw here. */
66
+ defaultValue: value ?? '', disabled: busy,
67
+ /* Figma draws the clear ✕ only while the field is focused. */
68
+ clearable: focused })] }) }));
69
+ });
70
+ PhoneInputVerifyScreen.displayName = 'PhoneInputVerifyScreen';
71
+ export default PhoneInputVerifyScreen;
@@ -0,0 +1,42 @@
1
+ import React, { type ReactNode } from 'react';
2
+ import { type PrizmaScreenShellProps } from './ScreenShell';
3
+ import type { PrizmaScreenActionHandler, PrizmaScreenChromeProps, PrizmaScreenOverrides } from './types';
4
+ import './ScreenLayout.css';
5
+ export type PrizmaProcessingStatus = 'loading' | 'success' | 'error' | 'warning';
6
+ export interface PrizmaProcessingScreenProps extends Omit<PrizmaScreenShellProps, 'dark' | 'title'>, PrizmaScreenChromeProps {
7
+ /** `loading` renders the spinner slot; the rest render the status icon. */
8
+ status: PrizmaProcessingStatus;
9
+ /**
10
+ * An optional block between the logo nav and the content — a journey stepper.
11
+ * Video Selfie draws Core's `PrizmaStepper` on EVERY screen of the flow, not
12
+ * just its camera stages, and it is the only chrome that tells the steps
13
+ * apart; the archetypes had a slot on E alone, so the rest of the module shed
14
+ * it (owner-reported 2026-08-19). Takes a `ReactNode` so the module supplies
15
+ * Core's own component — no primitive invented, and both offsets live once in
16
+ * `ScreenLayout.css` (`.prizma-screen-layout__progress`). Omit it and nothing
17
+ * renders, so every existing consumer is byte-identical. DEVIATIONS #VS-4.
18
+ */
19
+ progress?: ReactNode;
20
+ /** H2 status line ("Processing…", "Verification complete"). */
21
+ title: string;
22
+ /** Optional supporting copy below the title. */
23
+ subtitle?: string;
24
+ /** "verified by" attribution copy for the footer tag. */
25
+ verifiedLabel: string;
26
+ navLabel?: string;
27
+ screenId?: string;
28
+ overrides?: PrizmaScreenOverrides;
29
+ onAction?: PrizmaScreenActionHandler;
30
+ }
31
+ /**
32
+ * Archetype C — Processing (GUIDELINES.md §6-C).
33
+ *
34
+ * This is the PURE case: a centered spinner or status mark with no CTA. As soon
35
+ * as a result screen needs a button, use `PrizmaResultScreen` — the missing CTA
36
+ * band here is what made three modules hand-build the same skeleton.
37
+ * Nav → fully centered column (icon/spinner + title via Core's PrizmaTitle
38
+ * slot) → tag pinned to the bottom. Used by every `*-uploading`,
39
+ * `*-processing`, `*-success` and `*-verified` screen.
40
+ */
41
+ export declare const PrizmaProcessingScreen: React.ForwardRefExoticComponent<PrizmaProcessingScreenProps & React.RefAttributes<HTMLDivElement>>;
42
+ export default PrizmaProcessingScreen;
@@ -0,0 +1,21 @@
1
+ 'use client';
2
+ import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
3
+ import { forwardRef } from 'react';
4
+ import { PrizmaTitle } from '@incodetech/prizma-core-web/title';
5
+ import { PrizmaTag } from '@incodetech/prizma-core-web/tag';
6
+ import { PrizmaScreenShell } from './ScreenShell';
7
+ import { PrizmaScreenNav } from './ScreenNav';
8
+ import './ScreenLayout.css';
9
+ /**
10
+ * Archetype C — Processing (GUIDELINES.md §6-C).
11
+ *
12
+ * This is the PURE case: a centered spinner or status mark with no CTA. As soon
13
+ * as a result screen needs a button, use `PrizmaResultScreen` — the missing CTA
14
+ * band here is what made three modules hand-build the same skeleton.
15
+ * Nav → fully centered column (icon/spinner + title via Core's PrizmaTitle
16
+ * slot) → tag pinned to the bottom. Used by every `*-uploading`,
17
+ * `*-processing`, `*-success` and `*-verified` screen.
18
+ */
19
+ export const PrizmaProcessingScreen = forwardRef(({ progress, status, title, subtitle, verifiedLabel, navLabel, screenId, showHeader = true, showFooter = true, overrides, onAction, ...shell }, ref) => (_jsxs(PrizmaScreenShell, { ref: ref, ...shell, children: [_jsx(PrizmaScreenNav, { reserved: !showHeader, logo: overrides?.logo, navLabel: navLabel }), progress ? (_jsx("div", { className: "prizma-screen-layout__progress", children: progress })) : null, _jsx("div", { className: "prizma-screen-layout__content prizma-screen-layout__content--centered", children: _jsx(PrizmaTitle, { variant: "centered", title: title, showSubtitle: Boolean(subtitle), subtitle: subtitle, icon: status === 'loading' ? { type: 'spinner' } : { type: 'status', status } }) }), showFooter ? (_jsx("div", { className: "prizma-screen-layout__footer", children: _jsx(PrizmaTag, { label: verifiedLabel }) })) : null] })));
20
+ PrizmaProcessingScreen.displayName = 'PrizmaProcessingScreen';
21
+ export default PrizmaProcessingScreen;
@@ -0,0 +1,71 @@
1
+ import React from 'react';
2
+ import { type PrizmaFormScreenProps } from './FormScreen';
3
+ import type { PrizmaScreenActionHandler, PrizmaScreenOverrides } from './types';
4
+ import type { QualifiedSignatureAcceptState, QualifiedSignatureAcceptVariant, QualifiedSignatureStrings, QualifiedSignatureTerm } from './QualifiedSignatureStrings';
5
+ import './ScreenLayout.css';
6
+ import './QualifiedSignatureLayout.css';
7
+ export interface QualifiedSignatureAcceptScreenProps extends Omit<PrizmaFormScreenProps, 'title' | 'subtitle' | 'ctaLabel' | 'ctaDisabled' | 'ctaLoading' | 'ctaLoadingLabel' | 'linkLabel' | 'linkContent' | 'verifiedLabel' | 'children' | 'navLabel'> {
8
+ /** Module copy — this screen reads the `accept` slice its `variant` names. */
9
+ strings: QualifiedSignatureStrings;
10
+ /** Which reading of the section to render. Default `accept`. */
11
+ variant?: QualifiedSignatureAcceptVariant;
12
+ /** Which purple state to render. Default `default`. */
13
+ state?: QualifiedSignatureAcceptState;
14
+ /** The consent clauses. Runtime data — the QTSP writes them, not the module. */
15
+ terms: QualifiedSignatureTerm[];
16
+ /** The document being signed, shown in the row above the clauses. Runtime
17
+ * data from the upload step, so it stays out of `strings`. */
18
+ filename?: string;
19
+ screenId?: string;
20
+ overrides?: PrizmaScreenOverrides;
21
+ onAction?: PrizmaScreenActionHandler;
22
+ }
23
+ /**
24
+ * Qualified Signature — accept the terms and sign, built on the Form archetype
25
+ * (GUIDELINES.md §6-E, `PrizmaFormScreen`).
26
+ *
27
+ * Figma: the purple `QSign.AcceptSign.{default,selectedCheckox,loadingsign}`
28
+ * sections in BOTH parent groups — the generic five-clause reading ("Accept and
29
+ * sign" / "Finish signing") and the partner two-clause one ("Review and sign" /
30
+ * "Sign" + the certificate-application link). Six purple states, one screen:
31
+ * they share an identical skeleton and differ only in clause set, copy, tick
32
+ * state and CTA treatment, which is exactly what §6-E means by "states are
33
+ * separate screens sharing the identical layout".
34
+ *
35
+ * WHY ARCHETYPE E AND NOT G. The middle is a stack of Core `PrizmaCheckbox`
36
+ * CONTROLS — real form inputs the signer must operate before the CTA unlocks —
37
+ * not a card/option list, and the screen's whole point is the three CTA
38
+ * treatments (disabled → enabled → in-flight) that archetype G has no slots for
39
+ * (`PrizmaListScreen` offers neither `ctaDisabled` nor `ctaLoading`; that gap is
40
+ * reported, not worked around). E owns both, plus the `linkContent` slot the
41
+ * partner variant's link needs. Measured, the two archetypes want the same
42
+ * rhythm here anyway: Figma's `middle container` is Title → Spacing/32 → the
43
+ * document row, which is `FormScreen.css`'s title → fields offset to the pixel
44
+ * (DEVIATIONS #PI-2), and the row → clause-stack gap is the field stack's own
45
+ * Spacing/16.
46
+ *
47
+ * Four things are deliberate:
48
+ *
49
+ * 1. The document row is Core's `PrizmaCardDocumentContainer` — the Figma layer
50
+ * is literally an instance of `Card / Document Container`, filename plus a
51
+ * tertiary-link action. Nothing is hand-rolled.
52
+ * 2. Each clause is Core's `PrizmaCheckbox size="L"` (the consent container),
53
+ * fed `segments` so the fourth Incode clause carries BOTH its inline links —
54
+ * "Terms of Use" and "Privacy Policy" — as Core's own `<a>`s. That is the
55
+ * #PI-10 rule (a sentence carrying links is not one button) satisfied by a
56
+ * Core API rather than by the foundation's inline recipe.
57
+ * 3. `loading` greys the clauses through Core's own `disabled` treatment
58
+ * (`Surface/Neutral/50` container + disabled ink + inert links) and swaps the
59
+ * CTA label for Core's spinner via `ctaLoading` — the spinner belongs to the
60
+ * BUTTON, never to a control (DEVIATIONS #PI-5).
61
+ * 4. The partner link rides `linkContent`, not `linkLabel`, so it can grey with
62
+ * the rest of the form on `loading` (archetype E's `linkLabel` has no
63
+ * disabled path) while staying a distinct `secondary` action — the CURP
64
+ * #CURP-2 idiom.
65
+ *
66
+ * The nav draws no close ✕: every purple section in this file puts one at the
67
+ * nav's right, and GUIDELINES §3 stands — the Figma files are the side that is
68
+ * wrong (standing ruling, DEVIATIONS #PI-9).
69
+ */
70
+ export declare const QualifiedSignatureAcceptScreen: React.ForwardRefExoticComponent<QualifiedSignatureAcceptScreenProps & React.RefAttributes<HTMLDivElement>>;
71
+ export default QualifiedSignatureAcceptScreen;
@@ -0,0 +1,86 @@
1
+ 'use client';
2
+ import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
3
+ import { forwardRef } from 'react';
4
+ import { PrizmaCardDocumentContainer } from '@incodetech/prizma-core-web/card';
5
+ import { PrizmaCheckbox } from '@incodetech/prizma-core-web/checkbox';
6
+ import { PrizmaButton } from '@incodetech/prizma-core-web/button';
7
+ import { PrizmaFormScreen } from './FormScreen';
8
+ import './ScreenLayout.css';
9
+ import './QualifiedSignatureLayout.css';
10
+ /**
11
+ * Qualified Signature — accept the terms and sign, built on the Form archetype
12
+ * (GUIDELINES.md §6-E, `PrizmaFormScreen`).
13
+ *
14
+ * Figma: the purple `QSign.AcceptSign.{default,selectedCheckox,loadingsign}`
15
+ * sections in BOTH parent groups — the generic five-clause reading ("Accept and
16
+ * sign" / "Finish signing") and the partner two-clause one ("Review and sign" /
17
+ * "Sign" + the certificate-application link). Six purple states, one screen:
18
+ * they share an identical skeleton and differ only in clause set, copy, tick
19
+ * state and CTA treatment, which is exactly what §6-E means by "states are
20
+ * separate screens sharing the identical layout".
21
+ *
22
+ * WHY ARCHETYPE E AND NOT G. The middle is a stack of Core `PrizmaCheckbox`
23
+ * CONTROLS — real form inputs the signer must operate before the CTA unlocks —
24
+ * not a card/option list, and the screen's whole point is the three CTA
25
+ * treatments (disabled → enabled → in-flight) that archetype G has no slots for
26
+ * (`PrizmaListScreen` offers neither `ctaDisabled` nor `ctaLoading`; that gap is
27
+ * reported, not worked around). E owns both, plus the `linkContent` slot the
28
+ * partner variant's link needs. Measured, the two archetypes want the same
29
+ * rhythm here anyway: Figma's `middle container` is Title → Spacing/32 → the
30
+ * document row, which is `FormScreen.css`'s title → fields offset to the pixel
31
+ * (DEVIATIONS #PI-2), and the row → clause-stack gap is the field stack's own
32
+ * Spacing/16.
33
+ *
34
+ * Four things are deliberate:
35
+ *
36
+ * 1. The document row is Core's `PrizmaCardDocumentContainer` — the Figma layer
37
+ * is literally an instance of `Card / Document Container`, filename plus a
38
+ * tertiary-link action. Nothing is hand-rolled.
39
+ * 2. Each clause is Core's `PrizmaCheckbox size="L"` (the consent container),
40
+ * fed `segments` so the fourth Incode clause carries BOTH its inline links —
41
+ * "Terms of Use" and "Privacy Policy" — as Core's own `<a>`s. That is the
42
+ * #PI-10 rule (a sentence carrying links is not one button) satisfied by a
43
+ * Core API rather than by the foundation's inline recipe.
44
+ * 3. `loading` greys the clauses through Core's own `disabled` treatment
45
+ * (`Surface/Neutral/50` container + disabled ink + inert links) and swaps the
46
+ * CTA label for Core's spinner via `ctaLoading` — the spinner belongs to the
47
+ * BUTTON, never to a control (DEVIATIONS #PI-5).
48
+ * 4. The partner link rides `linkContent`, not `linkLabel`, so it can grey with
49
+ * the rest of the form on `loading` (archetype E's `linkLabel` has no
50
+ * disabled path) while staying a distinct `secondary` action — the CURP
51
+ * #CURP-2 idiom.
52
+ *
53
+ * The nav draws no close ✕: every purple section in this file puts one at the
54
+ * nav's right, and GUIDELINES §3 stands — the Figma files are the side that is
55
+ * wrong (standing ruling, DEVIATIONS #PI-9).
56
+ */
57
+ export const QualifiedSignatureAcceptScreen = forwardRef(({ strings, variant = 'accept', state = 'default', terms, filename, screenId = `qualified-signature-accept-${variant}-${state}`, className, overrides, onAction, ...shell }, ref) => {
58
+ const copy = variant === 'certificate' ? strings.accept.certificate : strings.accept.accept;
59
+ // Figma's three states as two axes: whether the clauses are ticked, and
60
+ // whether the signature is being created. `default` leaves the CTA in Core's
61
+ // disabled surface because nothing is accepted yet; `selected` releases it;
62
+ // `loading` makes the whole form inert.
63
+ const busy = state === 'loading';
64
+ const ticked = state !== 'default';
65
+ return (_jsxs(PrizmaFormScreen, { ref: ref, className: ['qualified-signature-accept', className].filter(Boolean).join(' '), title: copy.title, subtitle: copy.subtitle, ctaLabel: copy.ctaLabel, ctaDisabled: !ticked, ctaLoading: busy, ctaLoadingLabel: copy.ctaLoadingLabel,
66
+ /* The clause stack pans inside the column — the archetype owns this now
67
+ (`--scroll`), so the module declares no overflow of its own. #QS-1 */
68
+ scrollFields: true, linkContent: copy.linkLabel ? (_jsx(PrizmaButton, { variant: "tertiary-link", size: "L",
69
+ /* Figma greys the link while the signature is created. */
70
+ disabled: busy, onClick: () => onAction?.({ type: 'secondary', screenId }), children: copy.linkLabel })) : undefined, verifiedLabel: strings.verifiedLabel, navLabel: strings.navLabel, screenId: screenId, overrides: overrides, onAction: onAction, ...shell, children: [filename ? (
71
+ /* `Card / Document Container` — Core's own horizontal filename +
72
+ tertiary-action row. `actionDisabled` follows the clauses and the
73
+ link into Core's disabled treatment on `loading`, so nothing on the
74
+ frame stays tappable while the signature is created (Core gained the
75
+ prop 2026-08-19 for exactly this; the composed Button already had
76
+ the `--prizma-button-tertiary-text-disabled` path, the row just had
77
+ no way to reach it).
78
+
79
+ REPORTED DELTA: the generic `loadingsign` frame REMOVES the "View"
80
+ action outright while the partner's `loading` frame greys it. Two
81
+ Figma readings of one inert state; Core models inert as disabled,
82
+ so both take the greyed treatment and the removal is logged. */
83
+ _jsx(PrizmaCardDocumentContainer, { filename: filename, actionLabel: strings.accept.viewLabel, actionDisabled: busy, onAction: () => onAction?.({ type: 'tertiary', screenId }) })) : null, _jsx("div", { className: "qualified-signature-terms", role: "group", "aria-label": strings.accept.termsLabel, children: terms.map((term) => (_jsx(PrizmaCheckbox, { size: "L", name: term.id, value: term.id, checked: ticked, disabled: busy, segments: term.segments }, term.id))) })] }));
84
+ });
85
+ QualifiedSignatureAcceptScreen.displayName = 'QualifiedSignatureAcceptScreen';
86
+ export default QualifiedSignatureAcceptScreen;
@@ -0,0 +1,62 @@
1
+ import React, { type ReactNode } from 'react';
2
+ import { type PrizmaListScreenProps } from './ListScreen';
3
+ import type { PrizmaScreenActionHandler, PrizmaScreenOverrides } from './types';
4
+ import type { QualifiedSignatureDocumentVariant, QualifiedSignatureStrings } from './QualifiedSignatureStrings';
5
+ import './ScreenLayout.css';
6
+ import './QualifiedSignatureLayout.css';
7
+ export interface QualifiedSignatureDocumentScreenProps extends Omit<PrizmaListScreenProps, 'status' | 'title' | 'subtitle' | 'glyph' | 'children' | 'listAlign' | 'disclaimer' | 'ctaLabel' | 'secondaryCtaLabel' | 'linkLabel' | 'verifiedLabel' | 'navLabel'> {
8
+ /** Module copy — this screen reads the `document` slice its `variant` names. */
9
+ strings: QualifiedSignatureStrings;
10
+ /** Which full-surface document section to render. Default `document`. */
11
+ variant?: QualifiedSignatureDocumentVariant;
12
+ /**
13
+ * The document itself. HOST-supplied content, never module copy — the rendered
14
+ * contract page on `document` (an `<img>` / `<canvas>` of the PDF) and the
15
+ * certificate-application text on `terms`. Same slot contract the capture
16
+ * screens use for `camera` (GUIDELINES §10).
17
+ */
18
+ body?: ReactNode;
19
+ screenId?: string;
20
+ overrides?: PrizmaScreenOverrides;
21
+ onAction?: PrizmaScreenActionHandler;
22
+ }
23
+ /**
24
+ * Qualified Signature — the two full-surface document screens, built on the List
25
+ * archetype (GUIDELINES.md §6-G, `PrizmaListScreen`).
26
+ *
27
+ * Figma:
28
+ * - `document` — `QSign.AcceptSign.viewdoc` (10196:67381 / the partner's
29
+ * 6120:34074): the contract behind the accept screen's "View" action. CONTENT
30
+ * = nav 8→52 · a 342-wide page filling 68→660 · the Tag at 676.
31
+ * - `terms` — `QSign.T&C` (11130:43690): the certificate application form
32
+ * behind the partner variant's link. A left-aligned heading over a 13 575-tall
33
+ * block of legal text WITH ITS OWN SCROLL INDICATOR — Figma is explicit that
34
+ * this surface scrolls.
35
+ *
36
+ * Archetype G is the fit: its `__list` middle is "content filling the space
37
+ * between the title block and the CTA band", which is exactly what a document
38
+ * page is, and both sections carry no CTA at all so the band never renders. The
39
+ * body is allowed to scroll inside that middle — one module rule RELEASING an
40
+ * overflow constraint, declaring no spacing or size, the same idiom as CURP's
41
+ * taller-than-844 form (DEVIATIONS #CURP-1).
42
+ *
43
+ * THREE deltas from the frames, all reported rather than worked around:
44
+ * 1. Both sections draw a back chevron at the nav's left (and `terms` replaces
45
+ * the logo row with a chevron + heading bar). GUIDELINES §3 stands: SDK
46
+ * screens carry no dismiss or back affordance — the standing ruling of
47
+ * DEVIATIONS #PI-9, which is not re-litigated per module.
48
+ * 2. `viewdoc` draws NO heading. GUIDELINES §4 is explicit that every screen has
49
+ * exactly one H2, and archetype G has no title-less path, so the screen
50
+ * carries one and the Figma frame is the side to change. (An archetype
51
+ * request for an optional title — a pure content viewer — is logged.)
52
+ * 3. `terms` draws neither the logo nor the tag. The owner rule wins over Figma
53
+ * for attribution chrome (#PI-8, #F-30, #F-34), so both variants keep the
54
+ * header and the footer and nothing shifts between states.
55
+ *
56
+ * `terms` is LEFT-aligned, as Figma draws it: a centred heading over a
57
+ * left-aligned wall of legal text reads as a mistake. The alignment rides the
58
+ * sanctioned `overrides.align` path (types.ts) — nothing is re-styled here — and
59
+ * an explicit host override still wins. The #GEO-2 precedent.
60
+ */
61
+ export declare const QualifiedSignatureDocumentScreen: React.ForwardRefExoticComponent<QualifiedSignatureDocumentScreenProps & React.RefAttributes<HTMLDivElement>>;
62
+ export default QualifiedSignatureDocumentScreen;
@@ -0,0 +1,56 @@
1
+ 'use client';
2
+ import { jsx as _jsx } from "react/jsx-runtime";
3
+ import { forwardRef } from 'react';
4
+ import { PrizmaListScreen } from './ListScreen';
5
+ import './ScreenLayout.css';
6
+ import './QualifiedSignatureLayout.css';
7
+ /**
8
+ * Qualified Signature — the two full-surface document screens, built on the List
9
+ * archetype (GUIDELINES.md §6-G, `PrizmaListScreen`).
10
+ *
11
+ * Figma:
12
+ * - `document` — `QSign.AcceptSign.viewdoc` (10196:67381 / the partner's
13
+ * 6120:34074): the contract behind the accept screen's "View" action. CONTENT
14
+ * = nav 8→52 · a 342-wide page filling 68→660 · the Tag at 676.
15
+ * - `terms` — `QSign.T&C` (11130:43690): the certificate application form
16
+ * behind the partner variant's link. A left-aligned heading over a 13 575-tall
17
+ * block of legal text WITH ITS OWN SCROLL INDICATOR — Figma is explicit that
18
+ * this surface scrolls.
19
+ *
20
+ * Archetype G is the fit: its `__list` middle is "content filling the space
21
+ * between the title block and the CTA band", which is exactly what a document
22
+ * page is, and both sections carry no CTA at all so the band never renders. The
23
+ * body is allowed to scroll inside that middle — one module rule RELEASING an
24
+ * overflow constraint, declaring no spacing or size, the same idiom as CURP's
25
+ * taller-than-844 form (DEVIATIONS #CURP-1).
26
+ *
27
+ * THREE deltas from the frames, all reported rather than worked around:
28
+ * 1. Both sections draw a back chevron at the nav's left (and `terms` replaces
29
+ * the logo row with a chevron + heading bar). GUIDELINES §3 stands: SDK
30
+ * screens carry no dismiss or back affordance — the standing ruling of
31
+ * DEVIATIONS #PI-9, which is not re-litigated per module.
32
+ * 2. `viewdoc` draws NO heading. GUIDELINES §4 is explicit that every screen has
33
+ * exactly one H2, and archetype G has no title-less path, so the screen
34
+ * carries one and the Figma frame is the side to change. (An archetype
35
+ * request for an optional title — a pure content viewer — is logged.)
36
+ * 3. `terms` draws neither the logo nor the tag. The owner rule wins over Figma
37
+ * for attribution chrome (#PI-8, #F-30, #F-34), so both variants keep the
38
+ * header and the footer and nothing shifts between states.
39
+ *
40
+ * `terms` is LEFT-aligned, as Figma draws it: a centred heading over a
41
+ * left-aligned wall of legal text reads as a mistake. The alignment rides the
42
+ * sanctioned `overrides.align` path (types.ts) — nothing is re-styled here — and
43
+ * an explicit host override still wins. The #GEO-2 precedent.
44
+ */
45
+ export const QualifiedSignatureDocumentScreen = forwardRef(({ strings, variant = 'document', body, screenId = `qualified-signature-document-${variant}`, overrides, onAction, ...shell }, ref) => {
46
+ const copy = variant === 'terms' ? strings.document.terms : strings.document.document;
47
+ // The legal wall is left-aligned in Figma; the contract page keeps the
48
+ // archetype's centred default. An explicit `overrides.align` still wins.
49
+ const alignedOverrides = {
50
+ ...overrides,
51
+ align: overrides?.align ?? (variant === 'terms' ? 'left' : 'centered'),
52
+ };
53
+ return (_jsx(PrizmaListScreen, { ref: ref, title: copy.title, verifiedLabel: strings.verifiedLabel, navLabel: strings.navLabel, screenId: screenId, overrides: alignedOverrides, onAction: onAction, ...shell, children: _jsx("div", { className: "qualified-signature-document", children: body }) }));
54
+ });
55
+ QualifiedSignatureDocumentScreen.displayName = 'QualifiedSignatureDocumentScreen';
56
+ export default QualifiedSignatureDocumentScreen;