@smileid/usesmileid 12.0.0-beta01 → 12.0.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.
- package/CHANGELOG.md +11 -0
- package/README.md +701 -89
- package/dist/camera/camera_defaults.d.ts +14 -9
- package/dist/camera/camera_defaults.d.ts.map +1 -1
- package/dist/camera/camera_defaults.js +11 -9
- package/dist/camera/camera_defaults.js.map +1 -1
- package/dist/camera/orientation_degrees.d.ts +5 -6
- package/dist/camera/orientation_degrees.d.ts.map +1 -1
- package/dist/camera/orientation_degrees.js +5 -6
- package/dist/camera/orientation_degrees.js.map +1 -1
- package/dist/core/models/document_capture_mode.d.ts +8 -0
- package/dist/core/models/document_capture_mode.d.ts.map +1 -1
- package/dist/core/models/document_capture_mode.js +24 -0
- package/dist/core/models/document_capture_mode.js.map +1 -1
- package/dist/core/models/document_type.d.ts +2 -2
- package/dist/core/models/document_type.d.ts.map +1 -1
- package/dist/core/models/document_type.js +6 -4
- package/dist/core/models/document_type.js.map +1 -1
- package/dist/core/models/result.d.ts +9 -8
- package/dist/core/models/result.d.ts.map +1 -1
- package/dist/core/models/result.js +5 -6
- package/dist/core/models/result.js.map +1 -1
- package/dist/data/api/interceptors/smile_auth_interceptor.js +1 -1
- package/dist/data/api/interceptors/smile_auth_interceptor.js.map +1 -1
- package/dist/data/api/interceptors/smile_integrity_interceptor.d.ts +11 -0
- package/dist/data/api/interceptors/smile_integrity_interceptor.d.ts.map +1 -1
- package/dist/data/api/interceptors/smile_integrity_interceptor.js +13 -0
- package/dist/data/api/interceptors/smile_integrity_interceptor.js.map +1 -1
- package/dist/data/api/interceptors/smile_request_mac_interceptor.d.ts +8 -0
- package/dist/data/api/interceptors/smile_request_mac_interceptor.d.ts.map +1 -1
- package/dist/data/api/interceptors/smile_request_mac_interceptor.js +11 -0
- package/dist/data/api/interceptors/smile_request_mac_interceptor.js.map +1 -1
- package/dist/data/compression/compressible_asset.d.ts +41 -0
- package/dist/data/compression/compressible_asset.d.ts.map +1 -0
- package/dist/data/compression/compressible_asset.js +34 -0
- package/dist/data/compression/compressible_asset.js.map +1 -0
- package/dist/data/compression/payload_compression_config.d.ts +36 -0
- package/dist/data/compression/payload_compression_config.d.ts.map +1 -0
- package/dist/data/compression/payload_compression_config.js +52 -0
- package/dist/data/compression/payload_compression_config.js.map +1 -0
- package/dist/data/compression/payload_compression_runner.d.ts +29 -0
- package/dist/data/compression/payload_compression_runner.d.ts.map +1 -0
- package/dist/data/compression/payload_compression_runner.js +55 -0
- package/dist/data/compression/payload_compression_runner.js.map +1 -0
- package/dist/data/compression/payload_compressor.d.ts +40 -0
- package/dist/data/compression/payload_compressor.d.ts.map +1 -0
- package/dist/data/compression/payload_compressor.js +126 -0
- package/dist/data/compression/payload_compressor.js.map +1 -0
- package/dist/data/compression/uri_compressible_asset.d.ts +23 -0
- package/dist/data/compression/uri_compressible_asset.d.ts.map +1 -0
- package/dist/data/compression/uri_compressible_asset.js +77 -0
- package/dist/data/compression/uri_compressible_asset.js.map +1 -0
- package/dist/data/dsl/builder/cache_config_builder.d.ts +2 -1
- package/dist/data/dsl/builder/cache_config_builder.d.ts.map +1 -1
- package/dist/data/dsl/builder/cache_config_builder.js +2 -1
- package/dist/data/dsl/builder/cache_config_builder.js.map +1 -1
- package/dist/data/dsl/builder/config_builder.d.ts +40 -14
- package/dist/data/dsl/builder/config_builder.d.ts.map +1 -1
- package/dist/data/dsl/builder/config_builder.js +40 -14
- package/dist/data/dsl/builder/config_builder.js.map +1 -1
- package/dist/data/dsl/builder/interceptor_config_builder.d.ts +9 -7
- package/dist/data/dsl/builder/interceptor_config_builder.d.ts.map +1 -1
- package/dist/data/dsl/builder/interceptor_config_builder.js +9 -7
- package/dist/data/dsl/builder/interceptor_config_builder.js.map +1 -1
- package/dist/data/dsl/builder/retry_config_builder.d.ts +16 -1
- package/dist/data/dsl/builder/retry_config_builder.d.ts.map +1 -1
- package/dist/data/dsl/builder/retry_config_builder.js +16 -1
- package/dist/data/dsl/builder/retry_config_builder.js.map +1 -1
- package/dist/data/dsl/builder/timeout_config_builder.d.ts +4 -0
- package/dist/data/dsl/builder/timeout_config_builder.d.ts.map +1 -1
- package/dist/data/dsl/builder/timeout_config_builder.js +4 -0
- package/dist/data/dsl/builder/timeout_config_builder.js.map +1 -1
- package/dist/data/dsl/use_smile_id_network_builder.d.ts +17 -0
- package/dist/data/dsl/use_smile_id_network_builder.d.ts.map +1 -1
- package/dist/data/dsl/use_smile_id_network_builder.js +17 -0
- package/dist/data/dsl/use_smile_id_network_builder.js.map +1 -1
- package/dist/data/factory/networking_factory.d.ts.map +1 -1
- package/dist/data/factory/networking_factory.js +11 -1
- package/dist/data/factory/networking_factory.js.map +1 -1
- package/dist/data/repository/use_smile_id_repository_impl.d.ts +6 -0
- package/dist/data/repository/use_smile_id_repository_impl.d.ts.map +1 -1
- package/dist/data/repository/use_smile_id_repository_impl.js +82 -8
- package/dist/data/repository/use_smile_id_repository_impl.js.map +1 -1
- package/dist/data/security/request_canonicalizer.d.ts.map +1 -1
- package/dist/data/security/request_canonicalizer.js +14 -2
- package/dist/data/security/request_canonicalizer.js.map +1 -1
- package/dist/data/security/security_policy.d.ts +43 -0
- package/dist/data/security/security_policy.d.ts.map +1 -0
- package/dist/data/security/security_policy.js +61 -0
- package/dist/data/security/security_policy.js.map +1 -0
- package/dist/data/util/retry_util.d.ts +1 -1
- package/dist/data/util/retry_util.d.ts.map +1 -1
- package/dist/data/util/retry_util.js +2 -1
- package/dist/data/util/retry_util.js.map +1 -1
- package/dist/data/util/use_smile_id_token_decoder.d.ts +22 -0
- package/dist/data/util/use_smile_id_token_decoder.d.ts.map +1 -1
- package/dist/data/util/use_smile_id_token_decoder.js +58 -24
- package/dist/data/util/use_smile_id_token_decoder.js.map +1 -1
- package/dist/l10n/strings_en.d.ts +2 -1
- package/dist/l10n/strings_en.d.ts.map +1 -1
- package/dist/l10n/strings_en.js +2 -1
- package/dist/l10n/strings_en.js.map +1 -1
- package/dist/l10n/use_smile_id_localizations.d.ts +1 -0
- package/dist/l10n/use_smile_id_localizations.d.ts.map +1 -1
- package/dist/l10n/use_smile_id_localizations.js +3 -0
- package/dist/l10n/use_smile_id_localizations.js.map +1 -1
- package/dist/metadata/builder_configuration.d.ts +39 -0
- package/dist/metadata/builder_configuration.d.ts.map +1 -0
- package/dist/metadata/builder_configuration.js +34 -0
- package/dist/metadata/builder_configuration.js.map +1 -0
- package/dist/metadata/captured_image_properties.d.ts +11 -0
- package/dist/metadata/captured_image_properties.d.ts.map +1 -0
- package/dist/metadata/captured_image_properties.js +11 -0
- package/dist/metadata/captured_image_properties.js.map +1 -0
- package/dist/metadata/device_orientation_collector.d.ts +17 -0
- package/dist/metadata/device_orientation_collector.d.ts.map +1 -0
- package/dist/metadata/device_orientation_collector.js +66 -0
- package/dist/metadata/device_orientation_collector.js.map +1 -0
- package/dist/metadata/geolocation.d.ts +20 -0
- package/dist/metadata/geolocation.d.ts.map +1 -0
- package/dist/metadata/geolocation.js +40 -0
- package/dist/metadata/geolocation.js.map +1 -0
- package/dist/metadata/metadata_configuration_mappers.d.ts +48 -0
- package/dist/metadata/metadata_configuration_mappers.d.ts.map +1 -0
- package/dist/metadata/metadata_configuration_mappers.js +171 -0
- package/dist/metadata/metadata_configuration_mappers.js.map +1 -0
- package/dist/metadata/model_configuration.d.ts +41 -0
- package/dist/metadata/model_configuration.d.ts.map +1 -0
- package/dist/metadata/model_configuration.js +44 -0
- package/dist/metadata/model_configuration.js.map +1 -0
- package/dist/metadata/optional_native_modules.d.ts +79 -3
- package/dist/metadata/optional_native_modules.d.ts.map +1 -1
- package/dist/metadata/optional_native_modules.js +108 -3
- package/dist/metadata/optional_native_modules.js.map +1 -1
- package/dist/metadata/use_smile_id_metadata.d.ts +45 -7
- package/dist/metadata/use_smile_id_metadata.d.ts.map +1 -1
- package/dist/metadata/use_smile_id_metadata.js +85 -13
- package/dist/metadata/use_smile_id_metadata.js.map +1 -1
- package/dist/metadata/use_smile_id_metadata_factory.d.ts +37 -0
- package/dist/metadata/use_smile_id_metadata_factory.d.ts.map +1 -1
- package/dist/metadata/use_smile_id_metadata_factory.js +184 -12
- package/dist/metadata/use_smile_id_metadata_factory.js.map +1 -1
- package/dist/presentation/assets/svg/document_shimmer_strings.d.ts +14 -0
- package/dist/presentation/assets/svg/document_shimmer_strings.d.ts.map +1 -0
- package/dist/presentation/assets/svg/document_shimmer_strings.js +14 -0
- package/dist/presentation/assets/svg/document_shimmer_strings.js.map +1 -0
- package/dist/presentation/assets/svg/instruction_svg_strings.d.ts +12 -4
- package/dist/presentation/assets/svg/instruction_svg_strings.d.ts.map +1 -1
- package/dist/presentation/assets/svg/instruction_svg_strings.js +19 -8
- package/dist/presentation/assets/svg/instruction_svg_strings.js.map +1 -1
- package/dist/presentation/components/helpers/enhanced_smart_selfie_animation_frames.d.ts +0 -5
- package/dist/presentation/components/helpers/enhanced_smart_selfie_animation_frames.d.ts.map +1 -1
- package/dist/presentation/components/helpers/enhanced_smart_selfie_animation_frames.js +0 -5
- package/dist/presentation/components/helpers/enhanced_smart_selfie_animation_frames.js.map +1 -1
- package/dist/presentation/components/icons/index.d.ts +24 -8
- package/dist/presentation/components/icons/index.d.ts.map +1 -1
- package/dist/presentation/components/icons/index.js +31 -11
- package/dist/presentation/components/icons/index.js.map +1 -1
- package/dist/presentation/components/use_smile_id_attribution.d.ts +1 -1
- package/dist/presentation/components/use_smile_id_button.d.ts +2 -2
- package/dist/presentation/components/use_smile_id_button.js +4 -4
- package/dist/presentation/components/use_smile_id_button.js.map +1 -1
- package/dist/presentation/components/use_smile_id_capture_content.d.ts +13 -0
- package/dist/presentation/components/use_smile_id_capture_content.d.ts.map +1 -1
- package/dist/presentation/components/use_smile_id_capture_content.js +15 -9
- package/dist/presentation/components/use_smile_id_capture_content.js.map +1 -1
- package/dist/presentation/components/use_smile_id_captured_document_image.d.ts +2 -3
- package/dist/presentation/components/use_smile_id_captured_document_image.d.ts.map +1 -1
- package/dist/presentation/components/use_smile_id_captured_document_image.js +1 -3
- package/dist/presentation/components/use_smile_id_captured_document_image.js.map +1 -1
- package/dist/presentation/components/use_smile_id_document_capture_controls.d.ts +12 -6
- package/dist/presentation/components/use_smile_id_document_capture_controls.d.ts.map +1 -1
- package/dist/presentation/components/use_smile_id_document_capture_controls.js +59 -16
- package/dist/presentation/components/use_smile_id_document_capture_controls.js.map +1 -1
- package/dist/presentation/components/use_smile_id_document_overlay.d.ts +22 -5
- package/dist/presentation/components/use_smile_id_document_overlay.d.ts.map +1 -1
- package/dist/presentation/components/use_smile_id_document_overlay.js +80 -40
- package/dist/presentation/components/use_smile_id_document_overlay.js.map +1 -1
- package/dist/presentation/components/use_smile_id_document_shimmer.d.ts +15 -0
- package/dist/presentation/components/use_smile_id_document_shimmer.d.ts.map +1 -0
- package/dist/presentation/components/use_smile_id_document_shimmer.js +23 -0
- package/dist/presentation/components/use_smile_id_document_shimmer.js.map +1 -0
- package/dist/presentation/components/use_smile_id_enhanced_smart_selfie_clip.d.ts.map +1 -1
- package/dist/presentation/components/use_smile_id_enhanced_smart_selfie_clip.js +1 -3
- package/dist/presentation/components/use_smile_id_enhanced_smart_selfie_clip.js.map +1 -1
- package/dist/presentation/components/use_smile_id_guideline_thumbnail.d.ts.map +1 -1
- package/dist/presentation/components/use_smile_id_guideline_thumbnail.js +84 -1
- package/dist/presentation/components/use_smile_id_guideline_thumbnail.js.map +1 -1
- package/dist/presentation/components/use_smile_id_instructions_hero.d.ts +3 -1
- package/dist/presentation/components/use_smile_id_instructions_hero.d.ts.map +1 -1
- package/dist/presentation/components/use_smile_id_instructions_hero.js +18 -3
- package/dist/presentation/components/use_smile_id_instructions_hero.js.map +1 -1
- package/dist/presentation/components/use_smile_id_oval_border_palette.d.ts.map +1 -1
- package/dist/presentation/components/use_smile_id_oval_border_palette.js +7 -3
- package/dist/presentation/components/use_smile_id_oval_border_palette.js.map +1 -1
- package/dist/presentation/flow/dsl/builder/config_builder.d.ts +12 -0
- package/dist/presentation/flow/dsl/builder/config_builder.d.ts.map +1 -1
- package/dist/presentation/flow/dsl/builder/config_builder.js +12 -0
- package/dist/presentation/flow/dsl/builder/config_builder.js.map +1 -1
- package/dist/presentation/flow/dsl/builder/ml_builder.d.ts +13 -4
- package/dist/presentation/flow/dsl/builder/ml_builder.d.ts.map +1 -1
- package/dist/presentation/flow/dsl/builder/ml_builder.js +3 -2
- package/dist/presentation/flow/dsl/builder/ml_builder.js.map +1 -1
- package/dist/presentation/flow/dsl/builder/screens_builder.d.ts +111 -10
- package/dist/presentation/flow/dsl/builder/screens_builder.d.ts.map +1 -1
- package/dist/presentation/flow/dsl/builder/screens_builder.js +111 -10
- package/dist/presentation/flow/dsl/builder/screens_builder.js.map +1 -1
- package/dist/presentation/flow/dsl/builder/theme_builder.d.ts +15 -2
- package/dist/presentation/flow/dsl/builder/theme_builder.d.ts.map +1 -1
- package/dist/presentation/flow/dsl/builder/theme_builder.js +15 -2
- package/dist/presentation/flow/dsl/builder/theme_builder.js.map +1 -1
- package/dist/presentation/flow/dsl/use_smile_id_builder.d.ts +6 -4
- package/dist/presentation/flow/dsl/use_smile_id_builder.d.ts.map +1 -1
- package/dist/presentation/flow/dsl/use_smile_id_builder.js.map +1 -1
- package/dist/presentation/flow/dsl/use_smile_id_flow_builder.d.ts +62 -36
- package/dist/presentation/flow/dsl/use_smile_id_flow_builder.d.ts.map +1 -1
- package/dist/presentation/flow/dsl/use_smile_id_flow_builder.js +62 -36
- package/dist/presentation/flow/dsl/use_smile_id_flow_builder.js.map +1 -1
- package/dist/presentation/flow/flow_navigation_manager.d.ts +39 -4
- package/dist/presentation/flow/flow_navigation_manager.d.ts.map +1 -1
- package/dist/presentation/flow/flow_navigation_manager.js +141 -10
- package/dist/presentation/flow/flow_navigation_manager.js.map +1 -1
- package/dist/presentation/flow/model/instruction_guideline.d.ts +9 -0
- package/dist/presentation/flow/model/instruction_guideline.d.ts.map +1 -1
- package/dist/presentation/flow/model/instructions_defaults.d.ts +11 -2
- package/dist/presentation/flow/model/instructions_defaults.d.ts.map +1 -1
- package/dist/presentation/flow/model/instructions_defaults.js +73 -25
- package/dist/presentation/flow/model/instructions_defaults.js.map +1 -1
- package/dist/presentation/flow/screen/orchestrated_capture_screen.d.ts.map +1 -1
- package/dist/presentation/flow/screen/orchestrated_capture_screen.js +36 -12
- package/dist/presentation/flow/screen/orchestrated_capture_screen.js.map +1 -1
- package/dist/presentation/flow/screen/orchestrated_instructions_screen.js +1 -1
- package/dist/presentation/flow/screen/orchestrated_instructions_screen.js.map +1 -1
- package/dist/presentation/flow/screen/orchestrated_preview_screen.d.ts.map +1 -1
- package/dist/presentation/flow/screen/orchestrated_preview_screen.js +3 -1
- package/dist/presentation/flow/screen/orchestrated_preview_screen.js.map +1 -1
- package/dist/presentation/flow/screen/orchestrated_processing_screen.js +3 -3
- package/dist/presentation/flow/screen/orchestrated_processing_screen.js.map +1 -1
- package/dist/presentation/flow/validation/job_type_validator.d.ts.map +1 -1
- package/dist/presentation/flow/validation/job_type_validator.js +14 -0
- package/dist/presentation/flow/validation/job_type_validator.js.map +1 -1
- package/dist/presentation/screen/helpers/capture_screen_helpers.d.ts.map +1 -1
- package/dist/presentation/screen/helpers/capture_screen_helpers.js +1 -0
- package/dist/presentation/screen/helpers/capture_screen_helpers.js.map +1 -1
- package/dist/presentation/screen/helpers/instructions_screen_helpers.d.ts +1 -0
- package/dist/presentation/screen/helpers/instructions_screen_helpers.d.ts.map +1 -1
- package/dist/presentation/screen/helpers/instructions_screen_helpers.js +6 -2
- package/dist/presentation/screen/helpers/instructions_screen_helpers.js.map +1 -1
- package/dist/presentation/screen/helpers/scan_state_to_overlay_state.js +3 -0
- package/dist/presentation/screen/helpers/scan_state_to_overlay_state.js.map +1 -1
- package/dist/presentation/screen/use_smile_id_capture_screen.d.ts +17 -1
- package/dist/presentation/screen/use_smile_id_capture_screen.d.ts.map +1 -1
- package/dist/presentation/screen/use_smile_id_capture_screen.js +153 -18
- package/dist/presentation/screen/use_smile_id_capture_screen.js.map +1 -1
- package/dist/presentation/screen/use_smile_id_document_preview_screen.d.ts +2 -3
- package/dist/presentation/screen/use_smile_id_document_preview_screen.d.ts.map +1 -1
- package/dist/presentation/screen/use_smile_id_document_preview_screen.js +16 -11
- package/dist/presentation/screen/use_smile_id_document_preview_screen.js.map +1 -1
- package/dist/presentation/screen/use_smile_id_instructions_screen.d.ts +2 -0
- package/dist/presentation/screen/use_smile_id_instructions_screen.d.ts.map +1 -1
- package/dist/presentation/screen/use_smile_id_instructions_screen.js +2 -1
- package/dist/presentation/screen/use_smile_id_instructions_screen.js.map +1 -1
- package/dist/presentation/screen/use_smile_id_preview_screen.d.ts +7 -6
- package/dist/presentation/screen/use_smile_id_preview_screen.d.ts.map +1 -1
- package/dist/presentation/screen/use_smile_id_preview_screen.js +9 -8
- package/dist/presentation/screen/use_smile_id_preview_screen.js.map +1 -1
- package/dist/presentation/screen/use_smile_id_processing_screen.d.ts +2 -3
- package/dist/presentation/screen/use_smile_id_processing_screen.d.ts.map +1 -1
- package/dist/presentation/screen/use_smile_id_processing_screen.js +3 -2
- package/dist/presentation/screen/use_smile_id_processing_screen.js.map +1 -1
- package/dist/presentation/theme/theme.d.ts +1 -1
- package/dist/presentation/theme/theme.d.ts.map +1 -1
- package/dist/presentation/theme/theme.js +20 -18
- package/dist/presentation/theme/theme.js.map +1 -1
- package/dist/presentation/utils/force_max_brightness.d.ts +4 -4
- package/package.json +26 -6
- package/src/__tests__/react_native_mock.tsx +8 -0
- package/src/camera/camera_defaults.ts +11 -9
- package/src/camera/orientation_degrees.ts +5 -6
- package/src/core/models/__tests__/document_type.test.ts +6 -4
- package/src/core/models/document_capture_mode.ts +27 -0
- package/src/core/models/document_type.ts +6 -4
- package/src/core/models/result.ts +9 -8
- package/src/data/api/interceptors/__tests__/smile_integrity_interceptor.test.ts +37 -1
- package/src/data/api/interceptors/__tests__/smile_request_mac_interceptor.test.ts +59 -1
- package/src/data/api/interceptors/smile_auth_interceptor.ts +1 -1
- package/src/data/api/interceptors/smile_integrity_interceptor.ts +20 -0
- package/src/data/api/interceptors/smile_request_mac_interceptor.ts +13 -0
- package/src/data/compression/__tests__/payload_compressor.test.ts +200 -0
- package/src/data/compression/__tests__/payload_compressor_real_jpeg.test.ts +222 -0
- package/src/data/compression/compressible_asset.ts +62 -0
- package/src/data/compression/payload_compression_config.ts +53 -0
- package/src/data/compression/payload_compression_runner.ts +102 -0
- package/src/data/compression/payload_compressor.ts +164 -0
- package/src/data/compression/uri_compressible_asset.ts +85 -0
- package/src/data/dsl/builder/cache_config_builder.ts +3 -1
- package/src/data/dsl/builder/config_builder.ts +45 -14
- package/src/data/dsl/builder/interceptor_config_builder.ts +9 -7
- package/src/data/dsl/builder/retry_config_builder.ts +22 -1
- package/src/data/dsl/builder/timeout_config_builder.ts +7 -0
- package/src/data/dsl/use_smile_id_network_builder.ts +17 -0
- package/src/data/factory/networking_factory.ts +14 -1
- package/src/data/repository/__tests__/network_retries.test.ts +117 -0
- package/src/data/repository/use_smile_id_repository_impl.ts +96 -9
- package/src/data/security/__tests__/security_policy.test.ts +96 -0
- package/src/data/security/__tests__/smile_id_crypto_manager.test.ts +18 -0
- package/src/data/security/request_canonicalizer.ts +15 -2
- package/src/data/security/security_policy.ts +70 -0
- package/src/data/util/__tests__/use_smile_id_token_decoder.test.ts +57 -1
- package/src/data/util/retry_util.ts +3 -2
- package/src/data/util/use_smile_id_token_decoder.ts +76 -28
- package/src/l10n/strings_en.ts +2 -1
- package/src/l10n/use_smile_id_localizations.ts +3 -0
- package/src/metadata/__tests__/device_orientation_collector.test.ts +15 -0
- package/src/metadata/__tests__/metadata_configuration_mappers.test.ts +215 -0
- package/src/metadata/__tests__/metadata_configuration_objects.test.ts +85 -0
- package/src/metadata/__tests__/metadata_device_context.test.ts +147 -0
- package/src/metadata/__tests__/metadata_golden_fixture.json +13 -0
- package/src/metadata/__tests__/metadata_payload_golden.test.ts +193 -0
- package/src/metadata/__tests__/use_smile_id_metadata.test.ts +18 -24
- package/src/metadata/builder_configuration.ts +63 -0
- package/src/metadata/captured_image_properties.ts +10 -0
- package/src/metadata/device_orientation_collector.ts +75 -0
- package/src/metadata/geolocation.ts +46 -0
- package/src/metadata/metadata_configuration_mappers.ts +234 -0
- package/src/metadata/model_configuration.ts +68 -0
- package/src/metadata/optional_native_modules.ts +157 -3
- package/src/metadata/use_smile_id_metadata.ts +140 -17
- package/src/metadata/use_smile_id_metadata_factory.ts +195 -11
- package/src/presentation/assets/si_ess_animation_all_directions.json +1300 -286
- package/src/presentation/assets/svg/document_shimmer_strings.ts +17 -0
- package/src/presentation/assets/svg/instruction_svg_strings.ts +34 -12
- package/src/presentation/components/__tests__/enhanced_smart_selfie_animation_frames.test.ts +1 -3
- package/src/presentation/components/__tests__/use_smile_id_enhanced_smart_selfie_clip.test.tsx +3 -4
- package/src/presentation/components/__tests__/use_smile_id_guideline_thumbnail.test.tsx +34 -1
- package/src/presentation/components/__tests__/use_smile_id_instructions_hero.test.tsx +27 -0
- package/src/presentation/components/__tests__/use_smile_id_oval_border_palette.test.ts +7 -5
- package/src/presentation/components/helpers/enhanced_smart_selfie_animation_frames.ts +0 -6
- package/src/presentation/components/icons/index.tsx +65 -18
- package/src/presentation/components/use_smile_id_attribution.tsx +1 -1
- package/src/presentation/components/use_smile_id_button.tsx +4 -4
- package/src/presentation/components/use_smile_id_capture_content.tsx +36 -12
- package/src/presentation/components/use_smile_id_captured_document_image.tsx +3 -8
- package/src/presentation/components/use_smile_id_document_capture_controls.tsx +103 -39
- package/src/presentation/components/use_smile_id_document_overlay.tsx +134 -44
- package/src/presentation/components/use_smile_id_document_shimmer.tsx +51 -0
- package/src/presentation/components/use_smile_id_enhanced_smart_selfie_clip.tsx +0 -3
- package/src/presentation/components/use_smile_id_guideline_thumbnail.tsx +131 -2
- package/src/presentation/components/use_smile_id_instructions_hero.tsx +100 -59
- package/src/presentation/components/use_smile_id_oval_border_palette.ts +7 -3
- package/src/presentation/flow/__tests__/document_flow_navigation.test.ts +200 -1
- package/src/presentation/flow/dsl/builder/config_builder.ts +14 -0
- package/src/presentation/flow/dsl/builder/ml_builder.ts +13 -4
- package/src/presentation/flow/dsl/builder/screens_builder.ts +111 -10
- package/src/presentation/flow/dsl/builder/theme_builder.ts +19 -2
- package/src/presentation/flow/dsl/use_smile_id_builder.tsx +6 -4
- package/src/presentation/flow/dsl/use_smile_id_flow_builder.ts +62 -36
- package/src/presentation/flow/flow_navigation_manager.ts +179 -13
- package/src/presentation/flow/model/instruction_guideline.ts +6 -0
- package/src/presentation/flow/model/instructions_defaults.ts +103 -25
- package/src/presentation/flow/screen/orchestrated_capture_screen.tsx +43 -10
- package/src/presentation/flow/screen/orchestrated_instructions_screen.tsx +1 -0
- package/src/presentation/flow/screen/orchestrated_preview_screen.tsx +4 -2
- package/src/presentation/flow/screen/orchestrated_processing_screen.tsx +3 -3
- package/src/presentation/flow/validation/__tests__/job_type_validator.test.ts +64 -0
- package/src/presentation/flow/validation/job_type_validator.ts +24 -0
- package/src/presentation/screen/__tests__/instructions_screen_helpers.test.ts +15 -3
- package/src/presentation/screen/__tests__/use_smile_id_capture_screen.test.tsx +6 -4
- package/src/presentation/screen/helpers/capture_screen_helpers.ts +1 -0
- package/src/presentation/screen/helpers/instructions_screen_helpers.ts +7 -2
- package/src/presentation/screen/helpers/scan_state_to_overlay_state.ts +3 -0
- package/src/presentation/screen/use_smile_id_capture_screen.tsx +234 -36
- package/src/presentation/screen/use_smile_id_document_preview_screen.tsx +32 -22
- package/src/presentation/screen/use_smile_id_instructions_screen.tsx +4 -0
- package/src/presentation/screen/use_smile_id_preview_screen.tsx +9 -9
- package/src/presentation/screen/use_smile_id_processing_screen.tsx +7 -7
- package/src/presentation/theme/theme.ts +21 -19
- package/src/presentation/utils/force_max_brightness.tsx +4 -4
- package/dist/camera/frame_processor_plugin.d.ts +0 -28
- package/dist/camera/frame_processor_plugin.d.ts.map +0 -1
- package/dist/camera/frame_processor_plugin.js +0 -21
- package/dist/camera/frame_processor_plugin.js.map +0 -1
- package/dist/camera/use_smile_id_frame_processor.d.ts +0 -38
- package/dist/camera/use_smile_id_frame_processor.d.ts.map +0 -1
- package/dist/camera/use_smile_id_frame_processor.js +0 -2
- package/dist/camera/use_smile_id_frame_processor.js.map +0 -1
- package/dist/presentation/components/use_smile_id_document_frame_glyph.d.ts +0 -17
- package/dist/presentation/components/use_smile_id_document_frame_glyph.d.ts.map +0 -1
- package/dist/presentation/components/use_smile_id_document_frame_glyph.js +0 -17
- package/dist/presentation/components/use_smile_id_document_frame_glyph.js.map +0 -1
- package/dist/presentation/components/use_smile_id_enhanced_smart_selfie_animation.d.ts +0 -24
- package/dist/presentation/components/use_smile_id_enhanced_smart_selfie_animation.d.ts.map +0 -1
- package/dist/presentation/components/use_smile_id_enhanced_smart_selfie_animation.js +0 -91
- package/dist/presentation/components/use_smile_id_enhanced_smart_selfie_animation.js.map +0 -1
- package/dist/presentation/components/use_smile_id_instruction_card.d.ts +0 -31
- package/dist/presentation/components/use_smile_id_instruction_card.d.ts.map +0 -1
- package/dist/presentation/components/use_smile_id_instruction_card.js +0 -43
- package/dist/presentation/components/use_smile_id_instruction_card.js.map +0 -1
- package/dist/presentation/screen/helpers/use_document_orientation_lock.d.ts +0 -24
- package/dist/presentation/screen/helpers/use_document_orientation_lock.d.ts.map +0 -1
- package/dist/presentation/screen/helpers/use_document_orientation_lock.js +0 -47
- package/dist/presentation/screen/helpers/use_document_orientation_lock.js.map +0 -1
- package/src/presentation/components/use_smile_id_document_frame_glyph.tsx +0 -162
|
@@ -1,31 +0,0 @@
|
|
|
1
|
-
import { type AnimationObject } from "lottie-react-native";
|
|
2
|
-
import type { UseSmileIDTheme } from "../theme/theme";
|
|
3
|
-
export type UseSmileIDInstructionCardProps = {
|
|
4
|
-
/**
|
|
5
|
-
* Lottie animation source — typically a `require(...)` of a JSON
|
|
6
|
-
* file under `presentation/assets/`, which Metro inlines as an
|
|
7
|
-
* `AnimationObject`. Loops forever at default speed (1.0x).
|
|
8
|
-
*/
|
|
9
|
-
readonly source: AnimationObject | string | {
|
|
10
|
-
readonly uri: string;
|
|
11
|
-
};
|
|
12
|
-
/**
|
|
13
|
-
* Hide the warm card background (used for the bottom row in the
|
|
14
|
-
* instructions screen's 2x2 grid, where the animations carry their
|
|
15
|
-
* own backgrounds baked into the Lottie file).
|
|
16
|
-
*/
|
|
17
|
-
readonly showBackground?: boolean;
|
|
18
|
-
readonly testID?: string;
|
|
19
|
-
readonly theme?: UseSmileIDTheme;
|
|
20
|
-
};
|
|
21
|
-
/**
|
|
22
|
-
* Square instruction card hosting a looping Lottie animation. Used
|
|
23
|
-
* in the instructions screen's 2x2 grid.
|
|
24
|
-
*
|
|
25
|
-
* Background: defaults to the warm `instructionCardBackground` tint
|
|
26
|
-
* (light beige in light mode, dark grey in dark mode). The bottom
|
|
27
|
-
* row of the grid passes `showBackground={false}` to render plain
|
|
28
|
-
* animations whose own backgrounds carry through.
|
|
29
|
-
*/
|
|
30
|
-
export declare function UseSmileIDInstructionCard(props: UseSmileIDInstructionCardProps): import("react").JSX.Element;
|
|
31
|
-
//# sourceMappingURL=use_smile_id_instruction_card.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"use_smile_id_instruction_card.d.ts","sourceRoot":"","sources":["../../../src/presentation/components/use_smile_id_instruction_card.tsx"],"names":[],"mappings":"AACA,OAAmB,EAAE,KAAK,eAAe,EAAE,MAAM,qBAAqB,CAAC;AACvE,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,gBAAgB,CAAC;AAGtD,MAAM,MAAM,8BAA8B,GAAG;IAC3C;;;;OAIG;IACH,QAAQ,CAAC,MAAM,EAAE,eAAe,GAAG,MAAM,GAAG;QAAE,QAAQ,CAAC,GAAG,EAAE,MAAM,CAAA;KAAE,CAAC;IACrE;;;;OAIG;IACH,QAAQ,CAAC,cAAc,CAAC,EAAE,OAAO,CAAC;IAClC,QAAQ,CAAC,MAAM,CAAC,EAAE,MAAM,CAAC;IACzB,QAAQ,CAAC,KAAK,CAAC,EAAE,eAAe,CAAC;CAClC,CAAC;AAKF;;;;;;;;GAQG;AACH,wBAAgB,yBAAyB,CACvC,KAAK,EAAE,8BAA8B,+BA2BtC"}
|
|
@@ -1,43 +0,0 @@
|
|
|
1
|
-
import { jsx as _jsx } from "react/jsx-runtime";
|
|
2
|
-
import { StyleSheet, View } from "react-native";
|
|
3
|
-
import LottieView from "lottie-react-native";
|
|
4
|
-
import { useUseSmileIDTheme } from "../theme/theme_context";
|
|
5
|
-
const CARD_SIZE = 150;
|
|
6
|
-
const CARD_RADIUS = 8;
|
|
7
|
-
/**
|
|
8
|
-
* Square instruction card hosting a looping Lottie animation. Used
|
|
9
|
-
* in the instructions screen's 2x2 grid.
|
|
10
|
-
*
|
|
11
|
-
* Background: defaults to the warm `instructionCardBackground` tint
|
|
12
|
-
* (light beige in light mode, dark grey in dark mode). The bottom
|
|
13
|
-
* row of the grid passes `showBackground={false}` to render plain
|
|
14
|
-
* animations whose own backgrounds carry through.
|
|
15
|
-
*/
|
|
16
|
-
export function UseSmileIDInstructionCard(props) {
|
|
17
|
-
const themeFromContext = useUseSmileIDTheme();
|
|
18
|
-
const theme = props.theme ?? themeFromContext;
|
|
19
|
-
const showBackground = props.showBackground ?? true;
|
|
20
|
-
return (_jsx(View, { testID: props.testID, style: [
|
|
21
|
-
styles.card,
|
|
22
|
-
{
|
|
23
|
-
borderRadius: CARD_RADIUS,
|
|
24
|
-
backgroundColor: showBackground
|
|
25
|
-
? theme.colors.instructionCardBackground
|
|
26
|
-
: "transparent",
|
|
27
|
-
},
|
|
28
|
-
], children: _jsx(LottieView, { source: props.source, autoPlay: true, loop: true, style: styles.animation }) }));
|
|
29
|
-
}
|
|
30
|
-
const styles = StyleSheet.create({
|
|
31
|
-
card: {
|
|
32
|
-
width: CARD_SIZE,
|
|
33
|
-
height: CARD_SIZE,
|
|
34
|
-
overflow: "hidden",
|
|
35
|
-
alignItems: "center",
|
|
36
|
-
justifyContent: "center",
|
|
37
|
-
},
|
|
38
|
-
animation: {
|
|
39
|
-
width: "100%",
|
|
40
|
-
height: "100%",
|
|
41
|
-
},
|
|
42
|
-
});
|
|
43
|
-
//# sourceMappingURL=use_smile_id_instruction_card.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"use_smile_id_instruction_card.js","sourceRoot":"","sources":["../../../src/presentation/components/use_smile_id_instruction_card.tsx"],"names":[],"mappings":";AAAA,OAAO,EAAE,UAAU,EAAE,IAAI,EAAE,MAAM,cAAc,CAAC;AAChD,OAAO,UAAoC,MAAM,qBAAqB,CAAC;AAEvE,OAAO,EAAE,kBAAkB,EAAE,MAAM,wBAAwB,CAAC;AAmB5D,MAAM,SAAS,GAAG,GAAG,CAAC;AACtB,MAAM,WAAW,GAAG,CAAC,CAAC;AAEtB;;;;;;;;GAQG;AACH,MAAM,UAAU,yBAAyB,CACvC,KAAqC;IAErC,MAAM,gBAAgB,GAAG,kBAAkB,EAAE,CAAC;IAC9C,MAAM,KAAK,GAAG,KAAK,CAAC,KAAK,IAAI,gBAAgB,CAAC;IAC9C,MAAM,cAAc,GAAG,KAAK,CAAC,cAAc,IAAI,IAAI,CAAC;IACpD,OAAO,CACL,KAAC,IAAI,IACH,MAAM,EAAE,KAAK,CAAC,MAAM,EACpB,KAAK,EAAE;YACL,MAAM,CAAC,IAAI;YACX;gBACE,YAAY,EAAE,WAAW;gBACzB,eAAe,EAAE,cAAc;oBAC7B,CAAC,CAAC,KAAK,CAAC,MAAM,CAAC,yBAAyB;oBACxC,CAAC,CAAC,aAAa;aAClB;SACF,YAED,KAAC,UAAU,IACT,MAAM,EAAE,KAAK,CAAC,MAAM,EACpB,QAAQ,QACR,IAAI,QACJ,KAAK,EAAE,MAAM,CAAC,SAAS,GAEvB,GACG,CACR,CAAC;AACJ,CAAC;AAED,MAAM,MAAM,GAAG,UAAU,CAAC,MAAM,CAAC;IAC/B,IAAI,EAAE;QACJ,KAAK,EAAE,SAAS;QAChB,MAAM,EAAE,SAAS;QACjB,QAAQ,EAAE,QAAQ;QAClB,UAAU,EAAE,QAAQ;QACpB,cAAc,EAAE,QAAQ;KACzB;IACD,SAAS,EAAE;QACT,KAAK,EAAE,MAAM;QACb,MAAM,EAAE,MAAM;KACf;CACF,CAAC,CAAC"}
|
|
@@ -1,24 +0,0 @@
|
|
|
1
|
-
import type { DocumentOrientation } from "../../../core/models/document_type";
|
|
2
|
-
/**
|
|
3
|
-
* Lock the device orientation for a document capture step, scoped to the
|
|
4
|
-
* lifetime of the calling screen.
|
|
5
|
-
*
|
|
6
|
-
* - Landscape documents (ID cards) lock landscape.
|
|
7
|
-
* - Portrait documents (booklets / passports) lock portrait-up.
|
|
8
|
-
* - `undefined` (selfie, or no document type) is a no-op — the screen keeps
|
|
9
|
-
* whatever orientation the host app set.
|
|
10
|
-
*
|
|
11
|
-
* On unmount the orientation is restored to portrait-up so the following selfie
|
|
12
|
-
* capture and preview render upright. The SDK flow renderer keys each step by
|
|
13
|
-
* depth + kind and UNMOUNTS the previous screen on navigation, so this cleanup
|
|
14
|
-
* fires the moment the document step is left — the lock never leaks forward.
|
|
15
|
-
* (React Navigation's "screen stays mounted on the back stack" does not apply
|
|
16
|
-
* here, so a mount/unmount effect — not `useFocusEffect` — is the correct
|
|
17
|
-
* scoping primitive for this flow.)
|
|
18
|
-
*
|
|
19
|
-
* Orientation locks are global; the host app must permit the locked
|
|
20
|
-
* orientations at the OS level (iOS `UISupportedInterfaceOrientations`, Android
|
|
21
|
-
* activity `screenOrientation`) for the lock to take effect.
|
|
22
|
-
*/
|
|
23
|
-
export declare function useDocumentOrientationLock(orientation: DocumentOrientation | undefined): void;
|
|
24
|
-
//# sourceMappingURL=use_document_orientation_lock.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"use_document_orientation_lock.d.ts","sourceRoot":"","sources":["../../../../src/presentation/screen/helpers/use_document_orientation_lock.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,oCAAoC,CAAC;AAE9E;;;;;;;;;;;;;;;;;;;;GAoBG;AACH,wBAAgB,0BAA0B,CACxC,WAAW,EAAE,mBAAmB,GAAG,SAAS,GAC3C,IAAI,CAcN"}
|
|
@@ -1,47 +0,0 @@
|
|
|
1
|
-
import { useEffect } from "react";
|
|
2
|
-
import * as ScreenOrientation from "expo-screen-orientation";
|
|
3
|
-
import { UseSmileIDCrashReporting } from "usesmileid_bridge";
|
|
4
|
-
/**
|
|
5
|
-
* Lock the device orientation for a document capture step, scoped to the
|
|
6
|
-
* lifetime of the calling screen.
|
|
7
|
-
*
|
|
8
|
-
* - Landscape documents (ID cards) lock landscape.
|
|
9
|
-
* - Portrait documents (booklets / passports) lock portrait-up.
|
|
10
|
-
* - `undefined` (selfie, or no document type) is a no-op — the screen keeps
|
|
11
|
-
* whatever orientation the host app set.
|
|
12
|
-
*
|
|
13
|
-
* On unmount the orientation is restored to portrait-up so the following selfie
|
|
14
|
-
* capture and preview render upright. The SDK flow renderer keys each step by
|
|
15
|
-
* depth + kind and UNMOUNTS the previous screen on navigation, so this cleanup
|
|
16
|
-
* fires the moment the document step is left — the lock never leaks forward.
|
|
17
|
-
* (React Navigation's "screen stays mounted on the back stack" does not apply
|
|
18
|
-
* here, so a mount/unmount effect — not `useFocusEffect` — is the correct
|
|
19
|
-
* scoping primitive for this flow.)
|
|
20
|
-
*
|
|
21
|
-
* Orientation locks are global; the host app must permit the locked
|
|
22
|
-
* orientations at the OS level (iOS `UISupportedInterfaceOrientations`, Android
|
|
23
|
-
* activity `screenOrientation`) for the lock to take effect.
|
|
24
|
-
*/
|
|
25
|
-
export function useDocumentOrientationLock(orientation) {
|
|
26
|
-
useEffect(() => {
|
|
27
|
-
if (orientation === undefined)
|
|
28
|
-
return;
|
|
29
|
-
const target = orientation === "Landscape"
|
|
30
|
-
? ScreenOrientation.OrientationLock.LANDSCAPE
|
|
31
|
-
: ScreenOrientation.OrientationLock.PORTRAIT_UP;
|
|
32
|
-
void lockOrientation(target);
|
|
33
|
-
return () => {
|
|
34
|
-
void lockOrientation(ScreenOrientation.OrientationLock.PORTRAIT_UP);
|
|
35
|
-
};
|
|
36
|
-
}, [orientation]);
|
|
37
|
-
}
|
|
38
|
-
/** Lock to `target`, routing a native failure through crash reporting. */
|
|
39
|
-
async function lockOrientation(target) {
|
|
40
|
-
try {
|
|
41
|
-
await ScreenOrientation.lockAsync(target);
|
|
42
|
-
}
|
|
43
|
-
catch (error) {
|
|
44
|
-
UseSmileIDCrashReporting.captureException(error instanceof Error ? error : new Error(String(error)));
|
|
45
|
-
}
|
|
46
|
-
}
|
|
47
|
-
//# sourceMappingURL=use_document_orientation_lock.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"use_document_orientation_lock.js","sourceRoot":"","sources":["../../../../src/presentation/screen/helpers/use_document_orientation_lock.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,OAAO,CAAC;AAClC,OAAO,KAAK,iBAAiB,MAAM,yBAAyB,CAAC;AAC7D,OAAO,EAAE,wBAAwB,EAAE,MAAM,mBAAmB,CAAC;AAG7D;;;;;;;;;;;;;;;;;;;;GAoBG;AACH,MAAM,UAAU,0BAA0B,CACxC,WAA4C;IAE5C,SAAS,CAAC,GAAG,EAAE;QACb,IAAI,WAAW,KAAK,SAAS;YAAE,OAAO;QAEtC,MAAM,MAAM,GACV,WAAW,KAAK,WAAW;YACzB,CAAC,CAAC,iBAAiB,CAAC,eAAe,CAAC,SAAS;YAC7C,CAAC,CAAC,iBAAiB,CAAC,eAAe,CAAC,WAAW,CAAC;QACpD,KAAK,eAAe,CAAC,MAAM,CAAC,CAAC;QAE7B,OAAO,GAAG,EAAE;YACV,KAAK,eAAe,CAAC,iBAAiB,CAAC,eAAe,CAAC,WAAW,CAAC,CAAC;QACtE,CAAC,CAAC;IACJ,CAAC,EAAE,CAAC,WAAW,CAAC,CAAC,CAAC;AACpB,CAAC;AAED,0EAA0E;AAC1E,KAAK,UAAU,eAAe,CAC5B,MAAyC;IAEzC,IAAI,CAAC;QACH,MAAM,iBAAiB,CAAC,SAAS,CAAC,MAAM,CAAC,CAAC;IAC5C,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,wBAAwB,CAAC,gBAAgB,CACvC,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,KAAK,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,CAC1D,CAAC;IACJ,CAAC;AACH,CAAC"}
|
|
@@ -1,162 +0,0 @@
|
|
|
1
|
-
import { memo } from "react";
|
|
2
|
-
import Svg, { Rect } from "react-native-svg";
|
|
3
|
-
|
|
4
|
-
/**
|
|
5
|
-
* Translucent in-frame document glyph — the "what to align here" hint shown
|
|
6
|
-
* while idle/positioning, hidden once capture begins.
|
|
7
|
-
*
|
|
8
|
-
* PLACEHOLDER: static card illustration standing in for the per-document-type
|
|
9
|
-
* capture Lottie (not finalised). Swap point: replace the body with the resolved
|
|
10
|
-
* Lottie for `documentType` + `isLandscape`; the call site and props stay the same.
|
|
11
|
-
*/
|
|
12
|
-
export type UseSmileIDDocumentFrameGlyphProps = {
|
|
13
|
-
readonly width: number;
|
|
14
|
-
readonly height: number;
|
|
15
|
-
/** Landscape (ID card): photo left + lines right. Portrait: header + lines, photo bottom-left. */
|
|
16
|
-
readonly isLandscape: boolean;
|
|
17
|
-
readonly testID?: string;
|
|
18
|
-
};
|
|
19
|
-
|
|
20
|
-
/** Translucent white — readable over the dimmed feed without hiding it. */
|
|
21
|
-
const GLYPH_COLOR = "#FFFFFF8C"; // white @ ~55%
|
|
22
|
-
/** Faint card fill so the skeleton reads as one document card, not loose bars. */
|
|
23
|
-
const CARD_FILL = "#FFFFFF26"; // white @ ~15%
|
|
24
|
-
const CORNER = 6;
|
|
25
|
-
/** Card-fill corner radius — matches the overlay frame's 8px radius. */
|
|
26
|
-
const FRAME_FILL_CORNER = 8;
|
|
27
|
-
|
|
28
|
-
export const UseSmileIDDocumentFrameGlyph = memo(
|
|
29
|
-
function UseSmileIDDocumentFrameGlyph(
|
|
30
|
-
props: UseSmileIDDocumentFrameGlyphProps,
|
|
31
|
-
) {
|
|
32
|
-
const { width: w, height: h, isLandscape } = props;
|
|
33
|
-
if (w <= 0 || h <= 0) return null;
|
|
34
|
-
|
|
35
|
-
return (
|
|
36
|
-
<Svg
|
|
37
|
-
width={w}
|
|
38
|
-
height={h}
|
|
39
|
-
viewBox={`0 0 ${w} ${h}`}
|
|
40
|
-
preserveAspectRatio="none"
|
|
41
|
-
{...(props.testID !== undefined ? { testID: props.testID } : {})}
|
|
42
|
-
>
|
|
43
|
-
{/* Card fill — binds the photo + line skeleton into one document card. */}
|
|
44
|
-
<Rect
|
|
45
|
-
x={0}
|
|
46
|
-
y={0}
|
|
47
|
-
width={w}
|
|
48
|
-
height={h}
|
|
49
|
-
rx={FRAME_FILL_CORNER}
|
|
50
|
-
fill={CARD_FILL}
|
|
51
|
-
/>
|
|
52
|
-
{isLandscape ? (
|
|
53
|
-
<>
|
|
54
|
-
{/* Portrait photo block (left) */}
|
|
55
|
-
<Rect
|
|
56
|
-
x={w * 0.08}
|
|
57
|
-
y={h * 0.2}
|
|
58
|
-
width={w * 0.3}
|
|
59
|
-
height={h * 0.6}
|
|
60
|
-
rx={CORNER}
|
|
61
|
-
fill={GLYPH_COLOR}
|
|
62
|
-
/>
|
|
63
|
-
{/* Text lines (right) */}
|
|
64
|
-
<Rect
|
|
65
|
-
x={w * 0.46}
|
|
66
|
-
y={h * 0.26}
|
|
67
|
-
width={w * 0.4}
|
|
68
|
-
height={h * 0.07}
|
|
69
|
-
rx={CORNER}
|
|
70
|
-
fill={GLYPH_COLOR}
|
|
71
|
-
/>
|
|
72
|
-
<Rect
|
|
73
|
-
x={w * 0.46}
|
|
74
|
-
y={h * 0.4}
|
|
75
|
-
width={w * 0.44}
|
|
76
|
-
height={h * 0.07}
|
|
77
|
-
rx={CORNER}
|
|
78
|
-
fill={GLYPH_COLOR}
|
|
79
|
-
/>
|
|
80
|
-
<Rect
|
|
81
|
-
x={w * 0.46}
|
|
82
|
-
y={h * 0.54}
|
|
83
|
-
width={w * 0.36}
|
|
84
|
-
height={h * 0.07}
|
|
85
|
-
rx={CORNER}
|
|
86
|
-
fill={GLYPH_COLOR}
|
|
87
|
-
/>
|
|
88
|
-
<Rect
|
|
89
|
-
x={w * 0.46}
|
|
90
|
-
y={h * 0.68}
|
|
91
|
-
width={w * 0.28}
|
|
92
|
-
height={h * 0.07}
|
|
93
|
-
rx={CORNER}
|
|
94
|
-
fill={GLYPH_COLOR}
|
|
95
|
-
/>
|
|
96
|
-
</>
|
|
97
|
-
) : (
|
|
98
|
-
<>
|
|
99
|
-
{/* Header band (top) */}
|
|
100
|
-
<Rect
|
|
101
|
-
x={w * 0.1}
|
|
102
|
-
y={h * 0.12}
|
|
103
|
-
width={w * 0.8}
|
|
104
|
-
height={h * 0.08}
|
|
105
|
-
rx={CORNER}
|
|
106
|
-
fill={GLYPH_COLOR}
|
|
107
|
-
/>
|
|
108
|
-
<Rect
|
|
109
|
-
x={w * 0.1}
|
|
110
|
-
y={h * 0.26}
|
|
111
|
-
width={w * 0.6}
|
|
112
|
-
height={h * 0.05}
|
|
113
|
-
rx={CORNER}
|
|
114
|
-
fill={GLYPH_COLOR}
|
|
115
|
-
/>
|
|
116
|
-
<Rect
|
|
117
|
-
x={w * 0.1}
|
|
118
|
-
y={h * 0.36}
|
|
119
|
-
width={w * 0.65}
|
|
120
|
-
height={h * 0.05}
|
|
121
|
-
rx={CORNER}
|
|
122
|
-
fill={GLYPH_COLOR}
|
|
123
|
-
/>
|
|
124
|
-
{/* Photo block (bottom-left) + lines beside it */}
|
|
125
|
-
<Rect
|
|
126
|
-
x={w * 0.1}
|
|
127
|
-
y={h * 0.56}
|
|
128
|
-
width={w * 0.3}
|
|
129
|
-
height={h * 0.28}
|
|
130
|
-
rx={CORNER}
|
|
131
|
-
fill={GLYPH_COLOR}
|
|
132
|
-
/>
|
|
133
|
-
<Rect
|
|
134
|
-
x={w * 0.46}
|
|
135
|
-
y={h * 0.6}
|
|
136
|
-
width={w * 0.44}
|
|
137
|
-
height={h * 0.05}
|
|
138
|
-
rx={CORNER}
|
|
139
|
-
fill={GLYPH_COLOR}
|
|
140
|
-
/>
|
|
141
|
-
<Rect
|
|
142
|
-
x={w * 0.46}
|
|
143
|
-
y={h * 0.7}
|
|
144
|
-
width={w * 0.4}
|
|
145
|
-
height={h * 0.05}
|
|
146
|
-
rx={CORNER}
|
|
147
|
-
fill={GLYPH_COLOR}
|
|
148
|
-
/>
|
|
149
|
-
<Rect
|
|
150
|
-
x={w * 0.46}
|
|
151
|
-
y={h * 0.8}
|
|
152
|
-
width={w * 0.3}
|
|
153
|
-
height={h * 0.05}
|
|
154
|
-
rx={CORNER}
|
|
155
|
-
fill={GLYPH_COLOR}
|
|
156
|
-
/>
|
|
157
|
-
</>
|
|
158
|
-
)}
|
|
159
|
-
</Svg>
|
|
160
|
-
);
|
|
161
|
-
},
|
|
162
|
-
);
|