@smileid/web-components 10.0.6 → 11.0.1

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 (142) hide show
  1. package/README.md +15 -15
  2. package/dist/README.md +15 -0
  3. package/dist/components/README.md +14 -0
  4. package/dist/components/document/src/README.md +111 -0
  5. package/dist/components/document/src/document-capture/README.md +90 -0
  6. package/dist/components/document/src/document-capture-instructions/README.md +56 -0
  7. package/dist/components/document/src/document-capture-review/README.md +79 -0
  8. package/dist/components/selfie/README.md +225 -0
  9. package/dist/components/smart-camera-web/src/README.md +207 -0
  10. package/dist/domain/camera/src/README.md +38 -0
  11. package/dist/domain/file-upload/README.md +35 -0
  12. package/dist/esm/{DocumentCaptureScreens-BjATTDqu.js → DocumentCaptureScreens-DmH2JZDA.js} +3 -3
  13. package/dist/esm/DocumentCaptureScreens-DmH2JZDA.js.map +1 -0
  14. package/dist/esm/EndUserConsent-D4fd1ovG.js.map +1 -1
  15. package/dist/esm/Navigation-CTjK6tLU.js.map +1 -1
  16. package/dist/esm/PoweredBySmileId-CxbaihMu.js.map +1 -1
  17. package/dist/esm/SelfieCaptureScreens-DbdN2zNk.js +7901 -0
  18. package/dist/esm/SelfieCaptureScreens-DbdN2zNk.js.map +1 -0
  19. package/dist/esm/SignaturePad-C7MtmT8m.js.map +1 -1
  20. package/dist/esm/TotpConsent-CQU5jQi4.js.map +1 -1
  21. package/dist/esm/combobox.js.map +1 -1
  22. package/dist/esm/document.js +1 -1
  23. package/dist/esm/main.js +2 -2
  24. package/dist/esm/{package-CZlW6BZn.js → package-bgeQiff6.js} +2 -2
  25. package/dist/esm/package-bgeQiff6.js.map +1 -0
  26. package/dist/esm/selfie.js +1 -1
  27. package/dist/esm/smart-camera-web.js +3 -3
  28. package/dist/esm/smart-camera-web.js.map +1 -1
  29. package/dist/esm/styles-BOEZtbuc.js.map +1 -1
  30. package/dist/package-lock.json +4948 -0
  31. package/dist/package.json +59 -0
  32. package/dist/smart-camera-web.js +72 -98
  33. package/dist/smart-camera-web.js.gz +0 -0
  34. package/dist/smart-camera-web.js.map +1 -1
  35. package/dist/src/components/combobox/src/index.js +2 -0
  36. package/dist/src/components/combobox/src/index.js.map +7 -0
  37. package/dist/src/components/document/src/index.js +2 -0
  38. package/dist/src/components/document/src/index.js.map +7 -0
  39. package/dist/src/components/end-user-consent/src/index.js +14 -0
  40. package/dist/src/components/end-user-consent/src/index.js.map +7 -0
  41. package/dist/src/components/selfie/src/index.js +2 -0
  42. package/dist/src/components/selfie/src/index.js.map +7 -0
  43. package/dist/src/components/signature-pad/src/index.js +10 -0
  44. package/dist/src/components/signature-pad/src/index.js.map +7 -0
  45. package/dist/src/components/smart-camera-web/src/SmartCameraWeb.js +2 -0
  46. package/dist/src/components/smart-camera-web/src/SmartCameraWeb.js.map +7 -0
  47. package/dist/src/components/totp-consent/src/index.js +14 -0
  48. package/dist/src/components/totp-consent/src/index.js.map +7 -0
  49. package/dist/src/index.js.map +7 -0
  50. package/dist/styles/README.md +3 -0
  51. package/dist/types/combobox.d.ts +19 -19
  52. package/dist/types/document.d.ts +19 -19
  53. package/dist/types/end-user-consent.d.ts +19 -19
  54. package/dist/types/main.d.ts +24 -20
  55. package/dist/types/navigation.d.ts +19 -19
  56. package/dist/types/selfie.d.ts +19 -19
  57. package/dist/types/signature-pad.d.ts +19 -19
  58. package/dist/types/smart-camera-web.d.ts +19 -19
  59. package/dist/types/totp-consent.d.ts +19 -19
  60. package/lib/components/README.md +14 -14
  61. package/lib/components/attribution/PoweredBySmileId.js +42 -42
  62. package/lib/components/camera-permission/CameraPermission.js +139 -139
  63. package/lib/components/camera-permission/CameraPermission.stories.js +27 -27
  64. package/lib/components/combobox/src/Combobox.js +589 -589
  65. package/lib/components/combobox/src/index.js +1 -1
  66. package/lib/components/document/src/DocumentCaptureScreens.js +410 -409
  67. package/lib/components/document/src/DocumentCaptureScreens.stories.js +57 -57
  68. package/lib/components/document/src/README.md +111 -111
  69. package/lib/components/document/src/document-capture/DocumentCapture.js +760 -760
  70. package/lib/components/document/src/document-capture/DocumentCapture.stories.js +78 -78
  71. package/lib/components/document/src/document-capture/README.md +90 -90
  72. package/lib/components/document/src/document-capture/index.js +3 -3
  73. package/lib/components/document/src/document-capture-instructions/DocumentCaptureInstructions.js +545 -545
  74. package/lib/components/document/src/document-capture-instructions/DocumentCaptureInstructions.stories.js +24 -24
  75. package/lib/components/document/src/document-capture-instructions/README.md +56 -56
  76. package/lib/components/document/src/document-capture-instructions/index.js +3 -3
  77. package/lib/components/document/src/document-capture-review/DocumentCaptureReview.js +360 -360
  78. package/lib/components/document/src/document-capture-review/DocumentCaptureReview.stories.js +24 -24
  79. package/lib/components/document/src/document-capture-review/README.md +79 -79
  80. package/lib/components/document/src/document-capture-review/index.js +3 -3
  81. package/lib/components/document/src/index.js +3 -3
  82. package/lib/components/end-user-consent/src/EndUserConsent.js +795 -795
  83. package/lib/components/end-user-consent/src/EndUserConsent.stories.js +29 -29
  84. package/lib/components/end-user-consent/src/index.js +4 -4
  85. package/lib/components/navigation/src/Navigation.js +171 -171
  86. package/lib/components/navigation/src/Navigation.stories.js +24 -24
  87. package/lib/components/navigation/src/index.js +3 -3
  88. package/lib/components/selfie/README.md +225 -225
  89. package/lib/components/selfie/src/SelfieCaptureScreens.js +420 -431
  90. package/lib/components/selfie/src/SelfieCaptureScreens.stories.js +29 -29
  91. package/lib/components/selfie/src/index.js +3 -3
  92. package/lib/components/selfie/src/selfie-capture/SelfieCapture.js +1099 -1084
  93. package/lib/components/selfie/src/selfie-capture/SelfieCapture.stories.js +36 -36
  94. package/lib/components/selfie/src/selfie-capture/index.js +3 -3
  95. package/lib/components/selfie/src/selfie-capture-instructions/SelfieCaptureInstructions.js +689 -689
  96. package/lib/components/selfie/src/selfie-capture-instructions/SelfieCaptureInstructions.stories.js +23 -23
  97. package/lib/components/selfie/src/selfie-capture-instructions/index.js +3 -3
  98. package/lib/components/selfie/src/selfie-capture-review/SelfieCaptureReview.js +209 -209
  99. package/lib/components/selfie/src/selfie-capture-review/SelfieCaptureReview.stories.js +24 -24
  100. package/lib/components/selfie/src/selfie-capture-review/index.js +3 -3
  101. package/lib/components/selfie/src/selfie-capture-wrapper/SelfieCaptureWrapper.tsx +256 -239
  102. package/lib/components/selfie/src/selfie-capture-wrapper/index.ts +1 -1
  103. package/lib/components/selfie/src/smartselfie-capture/OvalProgress.tsx +81 -81
  104. package/lib/components/selfie/src/smartselfie-capture/SmartSelfieCapture.tsx +265 -283
  105. package/lib/components/selfie/src/smartselfie-capture/components/AlertDisplay.tsx +34 -34
  106. package/lib/components/selfie/src/smartselfie-capture/components/CameraPreview.tsx +97 -97
  107. package/lib/components/selfie/src/smartselfie-capture/components/CaptureControls.tsx +78 -76
  108. package/lib/components/selfie/src/smartselfie-capture/components/index.ts +3 -3
  109. package/lib/components/selfie/src/smartselfie-capture/constants.ts +23 -23
  110. package/lib/components/selfie/src/smartselfie-capture/hooks/index.ts +2 -2
  111. package/lib/components/selfie/src/smartselfie-capture/hooks/useCamera.ts +238 -238
  112. package/lib/components/selfie/src/smartselfie-capture/hooks/useFaceCapture.ts +618 -617
  113. package/lib/components/selfie/src/smartselfie-capture/index.ts +1 -1
  114. package/lib/components/selfie/src/smartselfie-capture/utils/alertMessages.ts +13 -13
  115. package/lib/components/selfie/src/smartselfie-capture/utils/canvas.ts +105 -105
  116. package/lib/components/selfie/src/smartselfie-capture/utils/faceDetection.ts +129 -129
  117. package/lib/components/selfie/src/smartselfie-capture/utils/imageCapture.ts +64 -64
  118. package/lib/components/selfie/src/smartselfie-capture/utils/index.ts +4 -4
  119. package/lib/components/selfie/src/smartselfie-capture/utils/mediapipeManager.ts +77 -77
  120. package/lib/components/signature-pad/package-lock.json +3009 -3009
  121. package/lib/components/signature-pad/package.json +30 -30
  122. package/lib/components/signature-pad/src/SignaturePad.js +484 -484
  123. package/lib/components/signature-pad/src/SignaturePad.stories.js +32 -32
  124. package/lib/components/signature-pad/src/index.js +3 -3
  125. package/lib/components/smart-camera-web/src/README.md +206 -206
  126. package/lib/components/smart-camera-web/src/SmartCameraWeb.js +305 -305
  127. package/lib/components/smart-camera-web/src/SmartCameraWeb.stories.js +57 -57
  128. package/lib/components/totp-consent/src/TotpConsent.js +949 -949
  129. package/lib/components/totp-consent/src/index.js +4 -4
  130. package/lib/domain/camera/src/README.md +38 -38
  131. package/lib/domain/camera/src/SmartCamera.js +109 -109
  132. package/lib/domain/constants/src/Constants.js +27 -27
  133. package/lib/domain/file-upload/README.md +35 -35
  134. package/lib/domain/file-upload/src/SmartFileUpload.js +65 -65
  135. package/lib/styles/README.md +3 -3
  136. package/lib/styles/src/styles.js +372 -372
  137. package/lib/styles/src/typography.js +52 -52
  138. package/package.json +111 -112
  139. package/dist/esm/DocumentCaptureScreens-BjATTDqu.js.map +0 -1
  140. package/dist/esm/SelfieCaptureScreens-UUzZzl1A.js +0 -11361
  141. package/dist/esm/SelfieCaptureScreens-UUzZzl1A.js.map +0 -1
  142. package/dist/esm/package-CZlW6BZn.js.map +0 -1
@@ -1,97 +1,97 @@
1
- import type { FunctionComponent, Ref } from 'preact';
2
- import OvalProgress from '../OvalProgress';
3
-
4
- interface CameraPreviewProps {
5
- videoRef: Ref<HTMLVideoElement>;
6
- canvasRef: Ref<HTMLCanvasElement>;
7
- facingMode: 'user' | 'environment';
8
- multipleFaces: boolean;
9
- progress: number;
10
- interval: number;
11
- themeColor: string;
12
- }
13
-
14
- export const CameraPreview: FunctionComponent<CameraPreviewProps> = ({
15
- videoRef,
16
- canvasRef,
17
- facingMode,
18
- multipleFaces,
19
- progress,
20
- interval,
21
- themeColor,
22
- }) => (
23
- <>
24
- <div className="camera-preview-container">
25
- <div
26
- className="video-wrapper"
27
- style={{
28
- clipPath: multipleFaces ? 'none' : 'url(#selfie-clip-path)',
29
- }}
30
- >
31
- <div className="video-container">
32
- <video
33
- ref={videoRef}
34
- autoPlay
35
- playsInline
36
- muted
37
- className={`camera-video ${facingMode === 'user' ? 'mirror' : ''}`}
38
- />
39
- <canvas
40
- ref={canvasRef}
41
- className={`camera-canvas ${facingMode === 'user' ? 'mirror' : ''}`}
42
- />
43
- </div>
44
- </div>
45
- {!multipleFaces && (
46
- <OvalProgress
47
- progress={progress}
48
- duration={interval}
49
- themeColor={themeColor}
50
- />
51
- )}
52
- </div>
53
-
54
- <style>{`
55
- .camera-preview-container {
56
- position: relative;
57
- width: 100%;
58
- max-width: 300px;
59
- margin: 0 auto;
60
- }
61
-
62
- .video-wrapper {
63
- width: 100%;
64
- max-width: 300px;
65
- margin: 0 auto;
66
- position: relative;
67
- aspect-ratio: 3 / 4;
68
- overflow: hidden;
69
- }
70
-
71
- .video-container {
72
- position: absolute;
73
- top: 0;
74
- left: 0;
75
- width: 100%;
76
- height: 100%;
77
- }
78
-
79
- .camera-video,
80
- .camera-canvas {
81
- position: absolute;
82
- top: 50%;
83
- left: 50%;
84
- transform: translate(-50%, -50%);
85
- }
86
-
87
- .camera-video.mirror,
88
- .camera-canvas.mirror {
89
- transform: translate(-50%, -50%) scaleX(-1);
90
- }
91
-
92
- .camera-canvas {
93
- pointer-events: none;
94
- }
95
- `}</style>
96
- </>
97
- );
1
+ import type { FunctionComponent, Ref } from 'preact';
2
+ import OvalProgress from '../OvalProgress';
3
+
4
+ interface CameraPreviewProps {
5
+ videoRef: Ref<HTMLVideoElement>;
6
+ canvasRef: Ref<HTMLCanvasElement>;
7
+ facingMode: 'user' | 'environment';
8
+ multipleFaces: boolean;
9
+ progress: number;
10
+ interval: number;
11
+ themeColor: string;
12
+ }
13
+
14
+ export const CameraPreview: FunctionComponent<CameraPreviewProps> = ({
15
+ videoRef,
16
+ canvasRef,
17
+ facingMode,
18
+ multipleFaces,
19
+ progress,
20
+ interval,
21
+ themeColor,
22
+ }) => (
23
+ <>
24
+ <div className="camera-preview-container">
25
+ <div
26
+ className="video-wrapper"
27
+ style={{
28
+ clipPath: multipleFaces ? 'none' : 'url(#selfie-clip-path)',
29
+ }}
30
+ >
31
+ <div className="video-container">
32
+ <video
33
+ ref={videoRef}
34
+ autoPlay
35
+ playsInline
36
+ muted
37
+ className={`camera-video ${facingMode === 'user' ? 'mirror' : ''}`}
38
+ />
39
+ <canvas
40
+ ref={canvasRef}
41
+ className={`camera-canvas ${facingMode === 'user' ? 'mirror' : ''}`}
42
+ />
43
+ </div>
44
+ </div>
45
+ {!multipleFaces && (
46
+ <OvalProgress
47
+ progress={progress}
48
+ duration={interval}
49
+ themeColor={themeColor}
50
+ />
51
+ )}
52
+ </div>
53
+
54
+ <style>{`
55
+ .camera-preview-container {
56
+ position: relative;
57
+ width: 100%;
58
+ max-width: 300px;
59
+ margin: 0 auto;
60
+ }
61
+
62
+ .video-wrapper {
63
+ width: 100%;
64
+ max-width: 300px;
65
+ margin: 0 auto;
66
+ position: relative;
67
+ aspect-ratio: 3 / 4;
68
+ overflow: hidden;
69
+ }
70
+
71
+ .video-container {
72
+ position: absolute;
73
+ top: 0;
74
+ left: 0;
75
+ width: 100%;
76
+ height: 100%;
77
+ }
78
+
79
+ .camera-video,
80
+ .camera-canvas {
81
+ position: absolute;
82
+ top: 50%;
83
+ left: 50%;
84
+ transform: translate(-50%, -50%);
85
+ }
86
+
87
+ .camera-video.mirror,
88
+ .camera-canvas.mirror {
89
+ transform: translate(-50%, -50%) scaleX(-1);
90
+ }
91
+
92
+ .camera-canvas {
93
+ pointer-events: none;
94
+ }
95
+ `}</style>
96
+ </>
97
+ );
@@ -1,76 +1,78 @@
1
- import type { FunctionComponent } from 'preact';
2
-
3
- interface CaptureControlsProps {
4
- isCapturing: boolean;
5
- hasFinishedCapture: boolean;
6
- isReadyToCapture: boolean;
7
- allowAgentMode: boolean;
8
- agentSupported: boolean;
9
- showAgentModeForTests: boolean;
10
- facingMode: 'user' | 'environment';
11
- themeColor?: string;
12
- onStartCapture: () => void;
13
- onSwitchCamera: () => void;
14
- }
15
-
16
- export const CaptureControls: FunctionComponent<CaptureControlsProps> = ({
17
- isCapturing,
18
- hasFinishedCapture,
19
- isReadyToCapture,
20
- allowAgentMode,
21
- agentSupported,
22
- showAgentModeForTests,
23
- facingMode,
24
- themeColor = '#001096',
25
- onStartCapture,
26
- onSwitchCamera,
27
- }) => (
28
- <>
29
- <div className="controls">
30
- <button
31
- class="btn-primary"
32
- onClick={onStartCapture}
33
- disabled={isCapturing || hasFinishedCapture || !isReadyToCapture}
34
- >
35
- Start Capture
36
- </button>
37
-
38
- {allowAgentMode && (agentSupported || showAgentModeForTests) && (
39
- <button
40
- onClick={onSwitchCamera}
41
- className="agent-mode-btn"
42
- disabled={isCapturing || hasFinishedCapture}
43
- >
44
- {facingMode === 'user' ? 'Agent Mode Off' : 'Agent Mode On'}
45
- </button>
46
- )}
47
- </div>
48
-
49
- <style>{`
50
- .controls {
51
- margin: 1.5rem 0;
52
- display: flex;
53
- flex-direction: column;
54
- gap: 1rem;
55
- justify-content: center;
56
- max-width: 356px;
57
- margin: 0 auto;
58
- }
59
-
60
- .agent-mode-btn {
61
- padding: 8px 16px;
62
- font-size: 14px;
63
- background: ${themeColor};
64
- color: white;
65
- border: none;
66
- border-radius: 4px;
67
- cursor: pointer;
68
- }
69
-
70
- .agent-mode-btn:disabled {
71
- background: #ccc;
72
- cursor: not-allowed;
73
- }
74
- `}</style>
75
- </>
76
- );
1
+ import type { FunctionComponent } from 'preact';
2
+
3
+ interface CaptureControlsProps {
4
+ isCapturing: boolean;
5
+ hasFinishedCapture: boolean;
6
+ isReadyToCapture: boolean;
7
+ allowAgentMode: boolean;
8
+ agentSupported: boolean;
9
+ showAgentModeForTests: boolean;
10
+ facingMode: 'user' | 'environment';
11
+ themeColor?: string;
12
+ onStartCapture: () => void;
13
+ onSwitchCamera: () => void;
14
+ }
15
+
16
+ export const CaptureControls: FunctionComponent<CaptureControlsProps> = ({
17
+ isCapturing,
18
+ hasFinishedCapture,
19
+ isReadyToCapture,
20
+ allowAgentMode,
21
+ agentSupported,
22
+ showAgentModeForTests,
23
+ facingMode,
24
+ themeColor = '#001096',
25
+ onStartCapture,
26
+ onSwitchCamera,
27
+ }) => (
28
+ <>
29
+ <div className="controls">
30
+ <button
31
+ id="start-image-capture"
32
+ class="btn-primary"
33
+ onClick={onStartCapture}
34
+ disabled={isCapturing || hasFinishedCapture || !isReadyToCapture}
35
+ >
36
+ Start Capture
37
+ </button>
38
+
39
+ {allowAgentMode && (agentSupported || showAgentModeForTests) && (
40
+ <button
41
+ id="switch-camera"
42
+ onClick={onSwitchCamera}
43
+ className="agent-mode-btn"
44
+ disabled={isCapturing || hasFinishedCapture}
45
+ >
46
+ {facingMode === 'user' ? 'Agent Mode Off' : 'Agent Mode On'}
47
+ </button>
48
+ )}
49
+ </div>
50
+
51
+ <style>{`
52
+ .controls {
53
+ margin: 1.5rem 0;
54
+ display: flex;
55
+ flex-direction: column;
56
+ gap: 1rem;
57
+ justify-content: center;
58
+ max-width: 356px;
59
+ margin: 0 auto;
60
+ }
61
+
62
+ .agent-mode-btn {
63
+ padding: 8px 16px;
64
+ font-size: 14px;
65
+ background: ${themeColor};
66
+ color: white;
67
+ border: none;
68
+ border-radius: 4px;
69
+ cursor: pointer;
70
+ }
71
+
72
+ .agent-mode-btn:disabled {
73
+ background: #ccc;
74
+ cursor: not-allowed;
75
+ }
76
+ `}</style>
77
+ </>
78
+ );
@@ -1,3 +1,3 @@
1
- export * from './CameraPreview';
2
- export * from './AlertDisplay';
3
- export * from './CaptureControls';
1
+ export * from './CameraPreview';
2
+ export * from './AlertDisplay';
3
+ export * from './CaptureControls';
@@ -1,23 +1,23 @@
1
- /**
2
- * The type of image submitted in the job request
3
- * @readonly
4
- * @enum {number}
5
- */
6
- export const ImageType = {
7
- /** ID_CARD_BACK_IMAGE_BASE64 Base64 encoded back of ID card image (.jpg or .png) */
8
- ID_CARD_BACK_IMAGE_BASE64: 7,
9
- /** ID_CARD_BACK_IMAGE_FILE Back of ID card image in .png or .jpg file format */
10
- ID_CARD_BACK_IMAGE_FILE: 5,
11
- /** ID_CARD_IMAGE_BASE64 Base64 encoded ID card image (.png or .jpg) */
12
- ID_CARD_IMAGE_BASE64: 3,
13
- /** ID_CARD_IMAGE_FILE ID card image in .png or .jpg file format */
14
- ID_CARD_IMAGE_FILE: 1,
15
- /** LIVENESS_IMAGE_BASE64 Base64 encoded liveness image (.jpg or .png) */
16
- LIVENESS_IMAGE_BASE64: 6,
17
- /** LIVENESS_IMAGE_FILE Liveness image in .png or .jpg file format */
18
- LIVENESS_IMAGE_FILE: 4,
19
- /** SELFIE_IMAGE_BASE64 Base64 encoded selfie image (.png or .jpg) */
20
- SELFIE_IMAGE_BASE64: 2,
21
- /** SELFIE_IMAGE_FILE Selfie image in .png or .jpg file format */
22
- SELFIE_IMAGE_FILE: 0,
23
- };
1
+ /**
2
+ * The type of image submitted in the job request
3
+ * @readonly
4
+ * @enum {number}
5
+ */
6
+ export const ImageType = {
7
+ /** ID_CARD_BACK_IMAGE_BASE64 Base64 encoded back of ID card image (.jpg or .png) */
8
+ ID_CARD_BACK_IMAGE_BASE64: 7,
9
+ /** ID_CARD_BACK_IMAGE_FILE Back of ID card image in .png or .jpg file format */
10
+ ID_CARD_BACK_IMAGE_FILE: 5,
11
+ /** ID_CARD_IMAGE_BASE64 Base64 encoded ID card image (.png or .jpg) */
12
+ ID_CARD_IMAGE_BASE64: 3,
13
+ /** ID_CARD_IMAGE_FILE ID card image in .png or .jpg file format */
14
+ ID_CARD_IMAGE_FILE: 1,
15
+ /** LIVENESS_IMAGE_BASE64 Base64 encoded liveness image (.jpg or .png) */
16
+ LIVENESS_IMAGE_BASE64: 6,
17
+ /** LIVENESS_IMAGE_FILE Liveness image in .png or .jpg file format */
18
+ LIVENESS_IMAGE_FILE: 4,
19
+ /** SELFIE_IMAGE_BASE64 Base64 encoded selfie image (.png or .jpg) */
20
+ SELFIE_IMAGE_BASE64: 2,
21
+ /** SELFIE_IMAGE_FILE Selfie image in .png or .jpg file format */
22
+ SELFIE_IMAGE_FILE: 0,
23
+ };
@@ -1,2 +1,2 @@
1
- export * from './useCamera';
2
- export * from './useFaceCapture';
1
+ export * from './useCamera';
2
+ export * from './useFaceCapture';