@incodetech/web 2.0.0-alpha.1 → 2.0.0-alpha.3

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 (212) hide show
  1. package/dist/asset-manifest.json +18 -0
  2. package/dist/browser-ponyfill-B6W6hHVY.js +344 -0
  3. package/dist/button-DeMZ_34N.js +266 -0
  4. package/dist/button.css +335 -0
  5. package/dist/email/email.es.js +145 -0
  6. package/dist/email/styles.css +123 -0
  7. package/dist/flow/flow.es.js +9 -0
  8. package/dist/flow/styles.css +204 -0
  9. package/dist/flow-ZK6OBsa3.js +568 -0
  10. package/dist/incodeModule-BF5MX9GT.js +243 -0
  11. package/dist/incodeModule.css +119 -0
  12. package/dist/index.es.js +101 -0
  13. package/dist/otpInput-BUrV4IAF.js +151 -0
  14. package/dist/otpInput.css +167 -0
  15. package/dist/phone/phone.es.js +3442 -0
  16. package/dist/phone/styles.css +305 -0
  17. package/dist/selfie/selfie.es.js +893 -0
  18. package/dist/selfie/styles.css +1163 -0
  19. package/dist/selfieTutorial-C-u5GufD.js +29 -0
  20. package/dist/styles/core.css +1013 -0
  21. package/dist/styles/tokens.css +543 -0
  22. package/dist/successIcon.css +4 -0
  23. package/dist/title-ng7q7YDh.js +2161 -0
  24. package/dist/title.css +38 -0
  25. package/dist/types/core.d.ts +1 -0
  26. package/dist/types/email/email.d.ts +2 -0
  27. package/dist/types/email.d.ts +50 -0
  28. package/dist/types/flow/flow.d.ts +2 -0
  29. package/dist/types/flow.d.ts +46 -0
  30. package/dist/types/index.d.ts +223 -0
  31. package/dist/types/phone/phone.d.ts +2 -0
  32. package/dist/types/phone.d.ts +51 -0
  33. package/dist/types/selfie/selfie.d.ts +2 -0
  34. package/dist/types/selfie.d.ts +24 -0
  35. package/dist/types/styles/core.d.ts +1 -0
  36. package/dist/vendor-preact-CK0WeTOR.js +584 -0
  37. package/package.json +20 -17
  38. package/dev/README.md +0 -163
  39. package/dev/getToken.ts +0 -36
  40. package/dev/headless.html +0 -875
  41. package/dev/index.html +0 -366
  42. package/dev/main-headless.tsx +0 -1332
  43. package/dev/main-orchestrated-flow.tsx +0 -1158
  44. package/dev/main-preact.tsx +0 -323
  45. package/dev/main-simplified.tsx +0 -123
  46. package/dev/main-web-component.tsx +0 -256
  47. package/dev/main.tsx +0 -332
  48. package/dev/manual.html +0 -27
  49. package/dev/orchestrated-flow.html +0 -64
  50. package/dev/simplified.html +0 -64
  51. package/dev/tiktok-logo.svg +0 -7
  52. package/src/defineCustomElement.tsx +0 -30
  53. package/src/email/email.test.tsx +0 -368
  54. package/src/email/email.tsx +0 -255
  55. package/src/email/emailInput.test.tsx +0 -264
  56. package/src/email/emailInput.tsx +0 -85
  57. package/src/email/styles.css +0 -59
  58. package/src/flow/flow.test.tsx +0 -796
  59. package/src/flow/flow.tsx +0 -292
  60. package/src/flow/flowCompleted.css +0 -30
  61. package/src/flow/flowCompleted.test.tsx +0 -331
  62. package/src/flow/flowCompleted.tsx +0 -121
  63. package/src/flow/flowInit.test.ts +0 -264
  64. package/src/flow/flowInit.ts +0 -94
  65. package/src/flow/flowStart.css +0 -58
  66. package/src/flow/flowStart.test.tsx +0 -49
  67. package/src/flow/flowStart.tsx +0 -41
  68. package/src/flow/incode-logo.svg +0 -8
  69. package/src/flow/index.ts +0 -7
  70. package/src/flow/preloadFlow.test.ts +0 -421
  71. package/src/flow/preloadFlow.ts +0 -171
  72. package/src/flow/styles.css +0 -9
  73. package/src/flow/unsupportedModule.css +0 -21
  74. package/src/flow/unsupportedModule.tsx +0 -39
  75. package/src/flow/useFlowInitialization.test.tsx +0 -292
  76. package/src/flow/useFlowInitialization.ts +0 -128
  77. package/src/flow/useModuleLoader.test.tsx +0 -212
  78. package/src/flow/useModuleLoader.ts +0 -92
  79. package/src/hooks/index.ts +0 -1
  80. package/src/hooks/useManager.test.ts +0 -91
  81. package/src/hooks/useManager.ts +0 -40
  82. package/src/i18n/index.ts +0 -3
  83. package/src/i18n/instance.ts +0 -16
  84. package/src/i18n/setup.ts +0 -184
  85. package/src/i18n/useTranslation.ts +0 -42
  86. package/src/index.ts +0 -27
  87. package/src/permissions/assets/android-dots-icon.svg +0 -7
  88. package/src/permissions/assets/android-settings-icon.svg +0 -16
  89. package/src/permissions/assets/android-toggle-icon.svg +0 -20
  90. package/src/permissions/assets/bank-card-icon.svg +0 -14
  91. package/src/permissions/assets/camera-icon.svg +0 -12
  92. package/src/permissions/assets/camera-ios.svg +0 -53
  93. package/src/permissions/assets/check-icon.svg +0 -8
  94. package/src/permissions/assets/chrome-icon.svg +0 -43
  95. package/src/permissions/assets/password-icon.svg +0 -11
  96. package/src/permissions/assets/permissions-img.svg +0 -51
  97. package/src/permissions/assets/safari-icon.svg +0 -37
  98. package/src/permissions/assets/settings-icon.svg +0 -33
  99. package/src/permissions/assets/toggle-icon.svg +0 -19
  100. package/src/permissions/assets/warning-icon.svg +0 -6
  101. package/src/permissions/boldWithArrow.css +0 -9
  102. package/src/permissions/boldWithArrow.tsx +0 -41
  103. package/src/permissions/denied.css +0 -37
  104. package/src/permissions/denied.tsx +0 -29
  105. package/src/permissions/deniedAndroid.tsx +0 -56
  106. package/src/permissions/deniedDesktop.css +0 -9
  107. package/src/permissions/deniedDesktop.tsx +0 -64
  108. package/src/permissions/deniedIOS.tsx +0 -73
  109. package/src/permissions/deniedInstructions.tsx +0 -19
  110. package/src/permissions/iconWrapper.css +0 -9
  111. package/src/permissions/iconWrapper.tsx +0 -15
  112. package/src/permissions/learnMore.css +0 -37
  113. package/src/permissions/learnMore.tsx +0 -85
  114. package/src/permissions/numberedStep.css +0 -13
  115. package/src/permissions/numberedStep.tsx +0 -14
  116. package/src/permissions/permissions.css +0 -13
  117. package/src/permissions/permissions.tsx +0 -68
  118. package/src/phone/phone.tsx +0 -246
  119. package/src/phone/phoneInput.test.tsx +0 -275
  120. package/src/phone/phoneInput.tsx +0 -249
  121. package/src/phone/styles.css +0 -158
  122. package/src/selfie/cameraButton.css +0 -13
  123. package/src/selfie/cameraButton.tsx +0 -35
  124. package/src/selfie/capture.css +0 -57
  125. package/src/selfie/capture.tsx +0 -232
  126. package/src/selfie/errorModal.tsx +0 -218
  127. package/src/selfie/errorModalContent.css +0 -33
  128. package/src/selfie/errorModalContent.tsx +0 -44
  129. package/src/selfie/faceOutline.css +0 -5
  130. package/src/selfie/faceOutline.tsx +0 -22
  131. package/src/selfie/loadingBorder.css +0 -12
  132. package/src/selfie/loadingBorder.tsx +0 -77
  133. package/src/selfie/manualCaptureButton.css +0 -13
  134. package/src/selfie/manualCaptureButton.tsx +0 -35
  135. package/src/selfie/noMoreAttemptsModal.tsx +0 -44
  136. package/src/selfie/notification.css +0 -9
  137. package/src/selfie/notification.tsx +0 -36
  138. package/src/selfie/retryErrorModal.tsx +0 -56
  139. package/src/selfie/selfie.test.tsx +0 -458
  140. package/src/selfie/selfie.tsx +0 -83
  141. package/src/selfie/selfieTutorial.json +0 -2626
  142. package/src/selfie/styles.css +0 -1
  143. package/src/selfie/tutorial.test.tsx +0 -200
  144. package/src/selfie/tutorial.tsx +0 -43
  145. package/src/setup.ts +0 -33
  146. package/src/shared/baseTutorial/baseTutorial.css +0 -21
  147. package/src/shared/baseTutorial/baseTutorial.test.tsx +0 -184
  148. package/src/shared/baseTutorial/baseTutorial.tsx +0 -55
  149. package/src/shared/baseTutorial/replaceBaseTutorial.test.ts +0 -267
  150. package/src/shared/baseTutorial/replaceBaseTutorial.ts +0 -68
  151. package/src/shared/button/button.css +0 -55
  152. package/src/shared/button/button.test.tsx +0 -101
  153. package/src/shared/button/button.tsx +0 -47
  154. package/src/shared/componentRoot/incodeComponent.tsx +0 -12
  155. package/src/shared/countries/countries.test.ts +0 -75
  156. package/src/shared/countries/countries.ts +0 -139
  157. package/src/shared/countries/index.ts +0 -6
  158. package/src/shared/icons/chevronDown.tsx +0 -22
  159. package/src/shared/icons/index.ts +0 -2
  160. package/src/shared/icons/successIcon.css +0 -5
  161. package/src/shared/icons/successIcon.test.tsx +0 -40
  162. package/src/shared/icons/successIcon.tsx +0 -26
  163. package/src/shared/loader/loadingIcon.css +0 -28
  164. package/src/shared/loader/loadingIcon.tsx +0 -67
  165. package/src/shared/lottie/lottie.tsx +0 -108
  166. package/src/shared/otpInput/otpInput.css +0 -85
  167. package/src/shared/otpInput/otpInput.test.tsx +0 -356
  168. package/src/shared/otpInput/otpInput.tsx +0 -241
  169. package/src/shared/page/incode-logo.svg +0 -3
  170. package/src/shared/page/page.css +0 -47
  171. package/src/shared/page/page.test.tsx +0 -97
  172. package/src/shared/page/page.tsx +0 -91
  173. package/src/shared/page/pageUiConfig.test.ts +0 -112
  174. package/src/shared/page/pageUiConfig.ts +0 -64
  175. package/src/shared/page/verifiedByIncode.css +0 -5
  176. package/src/shared/page/verifiedByIncode.tsx +0 -75
  177. package/src/shared/spacer/spacer.css +0 -149
  178. package/src/shared/spacer/spacer.test.tsx +0 -143
  179. package/src/shared/spacer/spacer.tsx +0 -88
  180. package/src/shared/spinner/index.ts +0 -2
  181. package/src/shared/spinner/spinner.css +0 -28
  182. package/src/shared/spinner/spinner.test.tsx +0 -82
  183. package/src/shared/spinner/spinner.tsx +0 -65
  184. package/src/shared/title/title.css +0 -7
  185. package/src/shared/title/title.tsx +0 -12
  186. package/src/shared/uiConfig/uiConfig.ts +0 -36
  187. package/src/shared/webComponent/incodeModule.ts +0 -29
  188. package/src/shared/webComponent/registerIncodeElement.ts +0 -15
  189. package/src/styles/__mocks__/fetchTheme.ts +0 -19
  190. package/src/styles/applyTheme.ts +0 -37
  191. package/src/styles/cn.test.tsx +0 -57
  192. package/src/styles/cn.tsx +0 -21
  193. package/src/styles/core.css +0 -12
  194. package/src/styles/fetchTheme.test.ts +0 -390
  195. package/src/styles/fetchTheme.ts +0 -88
  196. package/src/styles/generatePalette.ts +0 -111
  197. package/src/styles/reset.css +0 -65
  198. package/src/styles/resolveCssVariableToHex.ts +0 -28
  199. package/src/styles/tailwind.css +0 -291
  200. package/src/styles/themeTypes.ts +0 -18
  201. package/src/styles/tokens/colors.css +0 -190
  202. package/src/styles/tokens/components.css +0 -174
  203. package/src/styles/tokens/index.css +0 -4
  204. package/src/styles/tokens/primitives.css +0 -129
  205. package/src/styles/tokens/semantic.css +0 -51
  206. package/src/svg.d.ts +0 -4
  207. package/src/types/assets.d.ts +0 -1
  208. package/src/types/custom-elements.d.ts +0 -104
  209. package/tsconfig.json +0 -22
  210. package/vite.config.ts +0 -260
  211. package/vitest.config.ts +0 -40
  212. package/vitest.setup.ts +0 -16
package/dev/README.md DELETED
@@ -1,163 +0,0 @@
1
- # UI Dev Demos
2
-
3
- This folder contains various demo files to test and demonstrate different integration patterns for the Incode Web SDK.
4
-
5
- ## Running the Demos
6
-
7
- ```bash
8
- cd packages/ui
9
- pnpm dev
10
- ```
11
-
12
- Then open the landing page at `/dev/index.html` to see all available demos.
13
-
14
- ### Landing Page
15
-
16
- The landing page (`/dev/index.html`) provides:
17
- - Overview of all integration patterns
18
- - Config ID input field (persisted to localStorage)
19
- - Quick links to each demo with configId passed as query parameter
20
-
21
- ---
22
-
23
- ## Demo Scenarios
24
-
25
- ### 1. Simplified Flow (`/dev/simplified.html`)
26
-
27
- **Files:** `simplified.html`, `main-simplified.tsx`
28
-
29
- **Pattern:** Drop-in `<incode-flow>` web component
30
-
31
- **Best for:** Customers who want the simplest integration with minimal code.
32
-
33
- ```html
34
- <incode-flow id="flow"></incode-flow>
35
-
36
- <script type="module">
37
- import '@incodetech/ui/flow';
38
-
39
- const flow = document.getElementById('flow');
40
- flow.token = 'your-session-token';
41
- flow.onComplete = (result) => {
42
- console.log('Done!', result);
43
- };
44
- </script>
45
- ```
46
-
47
- **What it demonstrates:**
48
- - Single web component handles everything
49
- - No manual flow management needed
50
- - Automatic module orchestration
51
-
52
- ---
53
-
54
- ### 2. Orchestrated Flow with Custom UI (`/dev/orchestrated-flow.html`)
55
-
56
- **Files:** `orchestrated-flow.html`, `main-orchestrated-flow.tsx`
57
-
58
- **Pattern:** `createOrchestratedFlowManager` with custom UI components
59
-
60
- **Best for:** Customers who want orchestration benefits but need custom UI.
61
-
62
- ```tsx
63
- const [state, flowManager] = useManager(() =>
64
- createOrchestratedFlowManager({
65
- modules: { PHONE: phoneMachine },
66
- })
67
- );
68
-
69
- // Render your own UI, signal completion when done
70
- <Phone
71
- config={config}
72
- onFinish={() => flowManager.completeModule()}
73
- />
74
- ```
75
-
76
- **What it demonstrates:**
77
- - Using the orchestrator directly
78
- - Custom UI rendering based on flow state
79
- - Signaling module completion with `completeModule()`
80
- - Access to `finishStatus` when flow completes
81
-
82
- ---
83
-
84
- ### 3. Manual Flow Control (`/dev/manual.html`)
85
-
86
- **Files:** `manual.html`, `main-web-component.tsx`
87
-
88
- **Pattern:** `createFlowManager` with manual `nextStep()` calls
89
-
90
- **Best for:** Legacy pattern or customers needing full manual control.
91
-
92
- ```tsx
93
- const [state, flowManager] = useManager(() => createFlowManager());
94
-
95
- // Manually advance the flow
96
- <Phone
97
- config={config}
98
- onFinish={() => flowManager.nextStep()}
99
- />
100
- ```
101
-
102
- **What it demonstrates:**
103
- - Original flow manager (non-orchestrated)
104
- - Manual step advancement
105
- - Full control over flow progression
106
-
107
- ---
108
-
109
- ### 4. Headless Demo (`/dev/headless.html`)
110
-
111
- **Files:** `headless.html`, `main-headless.tsx`
112
-
113
- **Pattern:** Core SDK only, custom vanilla UI
114
-
115
- **Best for:** Customers building completely custom UIs (React, Vue, vanilla JS, etc.)
116
-
117
- ```ts
118
- import { createPhoneManager } from '@incodetech/core/phone';
119
-
120
- const manager = createPhoneManager({ config });
121
-
122
- // Subscribe to state changes
123
- manager.subscribe((state) => {
124
- // Render your own UI based on state
125
- renderCustomUI(state);
126
- });
127
-
128
- // Call manager methods
129
- manager.setPhoneNumber('+1234567890', true);
130
- manager.submit();
131
- ```
132
-
133
- **What it demonstrates:**
134
- - Using Core SDK without any Incode UI components
135
- - Building custom UI with vanilla JavaScript (or any framework)
136
- - Full state machine visibility and control
137
- - Manager pattern API
138
-
139
- ---
140
-
141
- ## Comparison Chart
142
-
143
- | Demo | Flow Manager | UI Components | Complexity | Use Case |
144
- |------|--------------|---------------|------------|----------|
145
- | Simplified | Orchestrated (internal) | `<incode-flow>` | ⭐ Lowest | Drop-in integration |
146
- | Orchestrated | `createOrchestratedFlowManager` | Incode UI | ⭐⭐ Medium | Custom flow, Incode UI |
147
- | Manual | `createFlowManager` | Incode UI | ⭐⭐⭐ Higher | Full manual control |
148
- | Headless | None | Custom | ⭐⭐⭐⭐ Highest | Fully custom UI |
149
-
150
- ---
151
-
152
- ## Architecture Layers
153
-
154
- All demos follow the three-layer architecture:
155
-
156
- ```
157
- Layer 2 (UI) → Preact components, CSS, web components
158
- Layer 1 (Core) → State machines, managers, business logic
159
- Layer 0 (Infra) → Browser APIs, WASM, utilities
160
- ```
161
-
162
- See `/docs/ARCHITECTURE_GOALS.md` for full details.
163
-
package/dev/getToken.ts DELETED
@@ -1,36 +0,0 @@
1
- // this never will be export or use in production, this is for development purposes only
2
-
3
- const DEFAULT_CONFIG_ID = '67ddc65d36b9814a930c4dff';
4
-
5
- export function getConfigIdFromUrl(): string {
6
- const params = new URLSearchParams(window.location.search);
7
- return params.get('configId') ?? DEFAULT_CONFIG_ID;
8
- }
9
-
10
- type GetTokenOptions = {
11
- configId?: string;
12
- };
13
-
14
- export const getToken = async (options: GetTokenOptions = {}) => {
15
- const configId = options.configId ?? getConfigIdFromUrl();
16
-
17
- const response = await fetch(
18
- 'https://user-service-k8s.stage.incodetest.com/omni/start',
19
- {
20
- headers: {
21
- 'x-api-key': '5fbc0ab5a652b7808fbec42fffd8b4c9ec248413',
22
- 'api-version': '1.0',
23
- 'Content-Type': 'application/json',
24
- Accept: 'application/json',
25
- },
26
- body: JSON.stringify({
27
- configurationId: configId,
28
- uuid: null,
29
- interviewId: null,
30
- language: 'en-US',
31
- }),
32
- method: 'POST',
33
- },
34
- );
35
- return response.json();
36
- };