@incodetech/web 0.0.0-dev-20260526-ff50bd63 → 0.0.0-dev-20260527-2b0f512a

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.
@@ -6,194 +6,284 @@ import { t as o } from "../page-C1yT4DLb.js";
6
6
  import { t as s } from "../spinner-CKnjVHxw.js";
7
7
  import { t as c } from "../button-DcCUEn2n.js";
8
8
  import { t as l } from "../incodeModule-CHzKl22Y.js";
9
- import { createIdentityReuseManager as u } from "@incodetech/core/identity-reuse";
9
+ import { SCAN_NEW_DOCUMENT as u, createIdentityReuseManager as d } from "@incodetech/core/identity-reuse";
10
10
  //#region src/modules/identity-reuse/identity-reuse.tsx
11
- var d = ({ name: e }) => /* @__PURE__ */ n("div", {
12
- class: "IncodeIdentityReuseCircle",
13
- children: /* @__PURE__ */ n("span", {
14
- class: "IncodeIdentityReuseCircleText",
15
- children: e
16
- })
17
- }), f = () => /* @__PURE__ */ n("svg", {
18
- class: "IncodeIdentityReuseArrow",
19
- viewBox: "0 0 24 24",
20
- fill: "none",
11
+ var f = {
12
+ USA: "US",
13
+ MEX: "MX",
14
+ CAN: "CA",
15
+ GBR: "GB",
16
+ DEU: "DE",
17
+ FRA: "FR",
18
+ ESP: "ES",
19
+ ITA: "IT",
20
+ BRA: "BR",
21
+ ARG: "AR",
22
+ COL: "CO",
23
+ CHL: "CL",
24
+ PER: "PE",
25
+ AUS: "AU",
26
+ NZL: "NZ",
27
+ JPN: "JP",
28
+ KOR: "KR",
29
+ CHN: "CN",
30
+ IND: "IN",
31
+ RUS: "RU",
32
+ ZAF: "ZA",
33
+ NGA: "NG",
34
+ EGY: "EG",
35
+ ARE: "AE",
36
+ SAU: "SA",
37
+ ISR: "IL",
38
+ TUR: "TR",
39
+ NLD: "NL",
40
+ BEL: "BE",
41
+ CHE: "CH",
42
+ AUT: "AT",
43
+ SWE: "SE",
44
+ NOR: "NO",
45
+ DNK: "DK",
46
+ FIN: "FI",
47
+ POL: "PL",
48
+ PRT: "PT",
49
+ IRL: "IE",
50
+ GRC: "GR",
51
+ CZE: "CZ",
52
+ HUN: "HU",
53
+ ROU: "RO",
54
+ UKR: "UA",
55
+ PHL: "PH",
56
+ IDN: "ID",
57
+ MYS: "MY",
58
+ SGP: "SG",
59
+ THA: "TH",
60
+ VNM: "VN",
61
+ PAK: "PK",
62
+ BGD: "BD",
63
+ HKG: "HK",
64
+ TWN: "TW",
65
+ VEN: "VE",
66
+ ECU: "EC",
67
+ GTM: "GT",
68
+ CRI: "CR",
69
+ PAN: "PA",
70
+ DOM: "DO",
71
+ PRI: "PR",
72
+ CUB: "CU",
73
+ JAM: "JM",
74
+ HND: "HN",
75
+ SLV: "SV",
76
+ NIC: "NI",
77
+ BOL: "BO",
78
+ PRY: "PY",
79
+ URY: "UY",
80
+ KEN: "KE",
81
+ GHA: "GH",
82
+ MAR: "MA",
83
+ TUN: "TN",
84
+ KWT: "KW",
85
+ QAT: "QA",
86
+ BHR: "BH",
87
+ OMN: "OM",
88
+ JOR: "JO",
89
+ LBN: "LB",
90
+ SRB: "RS",
91
+ HRV: "HR",
92
+ SVK: "SK",
93
+ SVN: "SI",
94
+ BGR: "BG",
95
+ LTU: "LT",
96
+ LVA: "LV",
97
+ EST: "EE",
98
+ ISL: "IS",
99
+ LUX: "LU",
100
+ MLT: "MT",
101
+ CYP: "CY"
102
+ };
103
+ function p(e) {
104
+ if (!e) return "";
105
+ let t = e.toUpperCase(), n = t.length === 3 ? f[t] ?? "" : t;
106
+ if (n.length !== 2) return "";
107
+ let r = 127397;
108
+ return String.fromCodePoint(n.charCodeAt(0) + r, n.charCodeAt(1) + r);
109
+ }
110
+ function m(e, t) {
111
+ if (!Number.isFinite(e) || e <= 0) return null;
112
+ let n = e >= 0xe8d4a51000 ? e : e * 1e3, r = new Date(n);
113
+ return Number.isNaN(r.getTime()) ? null : new Intl.DateTimeFormat(t, {
114
+ day: "2-digit",
115
+ month: "short",
116
+ year: "numeric"
117
+ }).format(r);
118
+ }
119
+ var h = ({ checked: e }) => /* @__PURE__ */ n("span", {
120
+ class: `IncodeIdentityReuseRadio ${e ? "IncodeIdentityReuseRadioChecked" : ""}`,
21
121
  "aria-hidden": "true",
22
- children: /* @__PURE__ */ n("path", {
23
- d: "M5 12h14M13 6l6 6-6 6",
24
- stroke: "currentColor",
25
- "stroke-width": "2",
26
- "stroke-linecap": "round",
27
- "stroke-linejoin": "round"
28
- })
29
- }), p = ({ providingOrganization: e, receivingOrganization: t }) => /* @__PURE__ */ n("div", {
30
- class: "IncodeIdentityReuseVisualization",
31
- children: [
32
- /* @__PURE__ */ n("div", {
33
- class: "IncodeIdentityReuseCircleWrapper",
34
- children: /* @__PURE__ */ n(d, { name: e })
35
- }),
36
- /* @__PURE__ */ n("div", {
37
- class: "IncodeIdentityReuseArrowWrapper",
38
- children: /* @__PURE__ */ n(f, {})
39
- }),
40
- /* @__PURE__ */ n("div", {
41
- class: "IncodeIdentityReuseCircleWrapper",
42
- children: /* @__PURE__ */ n(d, { name: t })
122
+ children: e ? /* @__PURE__ */ n("span", { class: "IncodeIdentityReuseRadioInner" }) : null
123
+ }), g = ({ document: t, selected: r, recommended: i, tabIndex: a, onSelect: o, locale: s }) => {
124
+ let { t: c } = e(), l = c(`identityReuse.documentType.${t.documentType}`), u = p(t.countryCode), d = m(t.verifiedAt, s), f = c("identityReuse.verified", { defaultValue: "Verified" }), g = d ? `${f} ${d}` : null;
125
+ return /* @__PURE__ */ n("button", {
126
+ type: "button",
127
+ class: `IncodeIdentityReuseCard ${r ? "IncodeIdentityReuseCardSelected" : ""}`,
128
+ role: "radio",
129
+ "aria-checked": r,
130
+ tabIndex: a,
131
+ onClick: o,
132
+ "data-testid": `identity-reuse-document-${t.id}`,
133
+ children: /* @__PURE__ */ n("div", {
134
+ class: "IncodeIdentityReuseCardBody",
135
+ children: [
136
+ /* @__PURE__ */ n("div", {
137
+ class: "IncodeIdentityReuseCardHeader",
138
+ children: [/* @__PURE__ */ n("div", {
139
+ class: "IncodeIdentityReuseCardHeaderLeft",
140
+ children: [/* @__PURE__ */ n("span", {
141
+ class: "IncodeIdentityReuseCardTypeLabel",
142
+ children: l
143
+ }), i ? /* @__PURE__ */ n("span", {
144
+ class: "IncodeIdentityReuseBadgeRecommended",
145
+ children: c("identityReuse.badge.recommended")
146
+ }) : null]
147
+ }), /* @__PURE__ */ n(h, { checked: r })]
148
+ }),
149
+ /* @__PURE__ */ n("p", {
150
+ class: "IncodeIdentityReuseCardIdentifier",
151
+ children: [u ? /* @__PURE__ */ n("span", {
152
+ "aria-hidden": "true",
153
+ children: u
154
+ }) : null, /* @__PURE__ */ n("span", { children: t.maskedNumber })]
155
+ }),
156
+ g ? /* @__PURE__ */ n("p", {
157
+ class: "IncodeIdentityReuseCardVerified",
158
+ children: g
159
+ }) : null
160
+ ]
43
161
  })
44
- ]
45
- }), m = ({ config: a, manager: l, onFinish: d, onError: f }) => {
46
- let { t: m } = e(), [h, g] = r(() => {
162
+ });
163
+ }, _ = ({ selected: t, tabIndex: r, onSelect: i }) => {
164
+ let { t: a } = e();
165
+ return /* @__PURE__ */ n("button", {
166
+ type: "button",
167
+ class: `IncodeIdentityReuseCard IncodeIdentityReuseScanNewCard ${t ? "IncodeIdentityReuseCardSelected" : ""}`,
168
+ role: "radio",
169
+ "aria-checked": t,
170
+ tabIndex: r,
171
+ onClick: i,
172
+ "data-testid": "identity-reuse-scan-new",
173
+ children: [/* @__PURE__ */ n("div", {
174
+ class: "IncodeIdentityReuseScanNewBody",
175
+ children: [/* @__PURE__ */ n("span", {
176
+ class: "IncodeIdentityReuseCardTypeLabel",
177
+ children: a("identityReuse.scanANewDocument")
178
+ }), /* @__PURE__ */ n("span", {
179
+ class: "IncodeIdentityReuseBadgeSlowest",
180
+ children: a("identityReuse.badge.slowest")
181
+ })]
182
+ }), /* @__PURE__ */ n(h, { checked: t })]
183
+ });
184
+ }, v = ({ config: a, manager: l, onFinish: f, onError: p }) => {
185
+ let { t: m, i18n: h } = e(), v = h.language || "en", [y, b] = r(() => {
47
186
  if (l) return l;
48
187
  if (!a) throw Error("IdentityReuse config is required when no manager is provided");
49
- return u({ config: a });
188
+ return d({ config: a });
50
189
  }, { manageLifecycle: !l });
51
190
  i({
52
- status: h.status === "finished" ? "finished" : "loading",
53
- onFinish: d
191
+ status: y.status === "finished" ? "finished" : "loading",
192
+ onFinish: f
54
193
  });
55
- let _ = h.status === "error" ? h.error : void 0;
56
- return t(() => {
57
- _ && f?.(_);
58
- }, [_, f]), h.status === "idle" || h.status === "loading" || h.status === "submitContinue" || h.status === "submitSkip" ? /* @__PURE__ */ n(s, { title: m("identityReuse.loading") }) : h.status === "oneCandidateFound" ? /* @__PURE__ */ n(o, {
59
- className: "IncodeIdentityReusePage",
60
- title: m("identityReuse.title"),
61
- subtitle: m("identityReuse.subtitle"),
62
- children: [/* @__PURE__ */ n("div", {
63
- class: "IncodeIdentityReuseContent",
64
- children: [/* @__PURE__ */ n(p, {
65
- providingOrganization: h.selectedOrganizationName,
66
- receivingOrganization: h.currentOrganizationName
67
- }), /* @__PURE__ */ n("p", {
68
- class: "IncodeIdentityReuseDescription",
69
- children: m("identityReuse.description", { companyName: h.currentOrganizationName })
70
- })]
71
- }), /* @__PURE__ */ n("div", {
72
- class: "IncodeIdentityReuseActions",
73
- children: [/* @__PURE__ */ n(c, {
74
- onClick: () => g.submitCandidate(),
75
- "data-testid": "identity-reuse-continue-button",
76
- children: m("identityReuse.cta.continue")
77
- }), /* @__PURE__ */ n(c, {
78
- onClick: () => g.skip(),
79
- variant: "link",
80
- "data-testid": "identity-reuse-verify-button",
81
- children: m("identityReuse.cta.verify")
82
- })]
83
- })]
84
- }) : h.status === "multiCandidatesFound" ? h.selectionPhase === "candidateSelected" ? /* @__PURE__ */ n(o, {
85
- className: "IncodeIdentityReusePage",
86
- title: m("identityReuse.title"),
87
- subtitle: m("identityReuse.subtitle"),
88
- children: [/* @__PURE__ */ n("div", {
89
- class: "IncodeIdentityReuseContent",
90
- children: [/* @__PURE__ */ n(p, {
91
- providingOrganization: h.selectedOrganizationName,
92
- receivingOrganization: h.currentOrganizationName
93
- }), /* @__PURE__ */ n("p", {
94
- class: "IncodeIdentityReuseDescription",
95
- children: m("identityReuse.description", { companyName: h.currentOrganizationName })
96
- })]
97
- }), /* @__PURE__ */ n("div", {
98
- class: "IncodeIdentityReuseActions",
99
- children: [
100
- /* @__PURE__ */ n(c, {
101
- onClick: () => g.submitCandidate(),
102
- "data-testid": "identity-reuse-continue-button",
103
- children: m("identityReuse.cta.continue")
104
- }),
105
- /* @__PURE__ */ n(c, {
106
- onClick: () => g.changeCandidate(),
107
- variant: "link",
108
- "data-testid": "identity-reuse-change-button",
109
- children: m("identityReuse.cta.change")
110
- }),
111
- /* @__PURE__ */ n(c, {
112
- onClick: () => g.skip(),
113
- variant: "link",
114
- "data-testid": "identity-reuse-verify-button",
115
- children: m("identityReuse.cta.verify")
116
- })
117
- ]
118
- })]
119
- }) : /* @__PURE__ */ n(o, {
120
- className: "IncodeIdentityReusePage",
121
- title: m("identityReuse.selectTitle"),
122
- subtitle: m("identityReuse.selectSubtitle"),
123
- children: [/* @__PURE__ */ n("div", {
124
- class: "IncodeIdentityReuseContent",
194
+ let x = y.status === "error" ? y.error : void 0;
195
+ if (t(() => {
196
+ x && p?.(x);
197
+ }, [x, p]), y.status === "idle" || y.status === "loading" || y.status === "submitting") return /* @__PURE__ */ n(s, { title: m("identityReuse.loading") });
198
+ if (y.status === "documentsFound") {
199
+ let e = y.selectedDocumentId, t = [...y.documents.map((e) => e.id), u], r = e === void 0 ? 0 : Math.max(0, t.findIndex((t) => t === e)), i = m(e === u ? "identityReuse.cta.scanNew" : "identityReuse.cta.confirm"), a = (e) => {
200
+ let t = e.currentTarget;
201
+ if (!t) return;
202
+ let n = t.querySelectorAll("[role=\"radio\"]");
203
+ if (n.length === 0) return;
204
+ let r = Array.from(n).findIndex((e) => e === document.activeElement);
205
+ if (r === -1) return;
206
+ let i = r;
207
+ switch (e.key) {
208
+ case "ArrowDown":
209
+ case "ArrowRight":
210
+ i = (r + 1) % n.length;
211
+ break;
212
+ case "ArrowUp":
213
+ case "ArrowLeft":
214
+ i = (r - 1 + n.length) % n.length;
215
+ break;
216
+ case "Home":
217
+ i = 0;
218
+ break;
219
+ case "End":
220
+ i = n.length - 1;
221
+ break;
222
+ default: return;
223
+ }
224
+ e.preventDefault();
225
+ let a = n[i];
226
+ a && (a.focus(), a.click());
227
+ };
228
+ return /* @__PURE__ */ n(o, {
229
+ className: "IncodeIdentityReusePage",
230
+ title: m("identityReuse.title"),
231
+ subtitle: m("identityReuse.subtitle"),
125
232
  children: /* @__PURE__ */ n("div", {
126
- class: "IncodeIdentityReuseCandidateList",
127
- children: h.candidateOrganizationNames.map((e) => /* @__PURE__ */ n("button", {
128
- type: "button",
129
- class: "IncodeIdentityReuseCandidateItem",
130
- onClick: () => {
131
- g.startSelection(), g.chooseCandidate(e);
132
- },
133
- "data-testid": `identity-reuse-candidate-${e}`,
134
- children: [/* @__PURE__ */ n("span", {
135
- class: "IncodeIdentityReuseCandidateItemName",
136
- children: e
137
- }), /* @__PURE__ */ n("svg", {
138
- class: "IncodeIdentityReuseCandidateItemChevron",
139
- viewBox: "0 0 24 24",
140
- fill: "none",
141
- "aria-hidden": "true",
142
- children: /* @__PURE__ */ n("path", {
143
- d: "M9 6l6 6-6 6",
144
- stroke: "currentColor",
145
- "stroke-width": "2",
146
- "stroke-linecap": "round",
147
- "stroke-linejoin": "round"
148
- })
233
+ class: "IncodeIdentityReuseBody",
234
+ children: [/* @__PURE__ */ n("div", {
235
+ class: "IncodeIdentityReuseList",
236
+ role: "radiogroup",
237
+ "aria-label": m("identityReuse.title"),
238
+ onKeyDown: a,
239
+ children: [y.documents.map((t, i) => /* @__PURE__ */ n(g, {
240
+ document: t,
241
+ selected: e === t.id,
242
+ recommended: i === 0,
243
+ tabIndex: i === r ? 0 : -1,
244
+ onSelect: () => b.chooseDocument(t.id),
245
+ locale: v
246
+ }, t.id)), /* @__PURE__ */ n(_, {
247
+ selected: e === u,
248
+ tabIndex: r === y.documents.length ? 0 : -1,
249
+ onSelect: () => b.chooseDocument(u)
149
250
  })]
150
- }, e))
251
+ }), /* @__PURE__ */ n("div", {
252
+ class: "IncodeIdentityReuseActions",
253
+ children: /* @__PURE__ */ n(c, {
254
+ onClick: () => b.submit(),
255
+ disabled: e === void 0,
256
+ "data-testid": "identity-reuse-confirm-button",
257
+ children: i
258
+ })
259
+ })]
151
260
  })
152
- }), /* @__PURE__ */ n("div", {
153
- class: "IncodeIdentityReuseActions",
154
- children: /* @__PURE__ */ n(c, {
155
- onClick: () => g.skip(),
156
- variant: "link",
157
- "data-testid": "identity-reuse-verify-button",
158
- children: m("identityReuse.cta.verify")
159
- })
160
- })]
161
- }) : h.status === "noCandidatesFound" ? /* @__PURE__ */ n(o, {
162
- className: "IncodeIdentityReusePage",
163
- title: m("identityReuse.noCandidatesTitle"),
164
- subtitle: m("identityReuse.noCandidatesSubtitle"),
165
- children: [/* @__PURE__ */ n("div", { class: "IncodeIdentityReuseContent" }), /* @__PURE__ */ n("div", {
166
- class: "IncodeIdentityReuseActions",
167
- children: /* @__PURE__ */ n(c, {
168
- onClick: () => g.skip(),
169
- "data-testid": "identity-reuse-continue-button",
170
- children: m("identityReuse.cta.continueVerification")
171
- })
172
- })]
173
- }) : h.status === "error" ? /* @__PURE__ */ n(o, {
261
+ });
262
+ }
263
+ return y.status === "error" ? /* @__PURE__ */ n(o, {
174
264
  className: "IncodeIdentityReusePage",
175
265
  title: m("identityReuse.errorTitle"),
176
- subtitle: h.error,
266
+ subtitle: y.error,
177
267
  children: [/* @__PURE__ */ n("div", { class: "IncodeIdentityReuseContent" }), /* @__PURE__ */ n("div", {
178
268
  class: "IncodeIdentityReuseActions",
179
269
  children: [/* @__PURE__ */ n(c, {
180
- onClick: () => g.retry(),
270
+ onClick: () => b.retry(),
181
271
  "data-testid": "identity-reuse-retry-button",
182
272
  children: m("identityReuse.cta.retry")
183
273
  }), /* @__PURE__ */ n(c, {
184
- onClick: () => g.skip(),
274
+ onClick: () => b.skip(),
185
275
  variant: "link",
186
- "data-testid": "identity-reuse-verify-button",
187
- children: m("identityReuse.cta.verify")
276
+ "data-testid": "identity-reuse-skip-button",
277
+ children: m("identityReuse.cta.skip")
188
278
  })]
189
279
  })]
190
- }) : (h.status, null);
191
- }, h = ({ config: e, manager: t, onFinish: r, onError: i }) => /* @__PURE__ */ n(a, { children: e || t ? /* @__PURE__ */ n(m, {
280
+ }) : (y.status, null);
281
+ }, y = ({ config: e, manager: t, onFinish: r, onError: i }) => /* @__PURE__ */ n(a, { children: e || t ? /* @__PURE__ */ n(v, {
192
282
  config: e,
193
283
  manager: t,
194
284
  onFinish: r,
195
285
  onError: i
196
286
  }) : null });
197
- l(h, "incode-identity-reuse");
287
+ l(y, "incode-identity-reuse");
198
288
  //#endregion
199
- export { h as IdentityReuse };
289
+ export { y as IdentityReuse };
@@ -2,7 +2,6 @@
2
2
  @layer properties {
3
3
  @supports (((-webkit-hyphens: none)) and (not (margin-trim: inline))) or ((-moz-orient: inline) and (not (color: rgb(from red r g b)))) {
4
4
  *, :before, :after, ::backdrop {
5
- --tw-font-weight: initial;
6
5
  --tw-border-style: solid;
7
6
  --tw-duration: initial;
8
7
  }
@@ -25,130 +24,185 @@
25
24
  animation: .4s ease-out fadeIn;
26
25
  }
27
26
 
28
- .IncodeIdentityReuseContent {
27
+ .IncodeIdentityReusePage .IncodeIdentityReuseBody {
28
+ padding-top: var(--spacing-32);
29
29
  flex-direction: column;
30
30
  flex: 1;
31
- justify-content: center;
32
- align-items: center;
33
31
  display: flex;
34
32
  }
35
33
 
36
- .IncodeIdentityReuseVisualization {
37
- justify-content: center;
38
- align-items: center;
34
+ .IncodeIdentityReusePage .IncodeIdentityReuseList {
39
35
  gap: var(--spacing-8, var(--spacing-8, 8px));
36
+ flex-direction: column;
40
37
  width: 100%;
41
38
  display: flex;
42
39
  }
43
40
 
44
- .IncodeIdentityReuseCircleWrapper {
45
- flex: 1;
46
- justify-content: center;
47
- align-items: center;
41
+ .IncodeIdentityReusePage .IncodeIdentityReuseCard {
42
+ cursor: pointer;
43
+ border-radius: var(--radius-medium, var(--border-radius-medium));
44
+ border-style: var(--tw-border-style);
45
+ width: 100%;
46
+ padding: var(--spacing-16, var(--spacing-16, 16px));
47
+ text-align: left;
48
+ transition-property: color, background-color, border-color, outline-color, text-decoration-color, fill, stroke, --tw-gradient-from, --tw-gradient-via, --tw-gradient-to;
49
+ transition-timing-function: var(--tw-ease, var(--default-transition-timing-function, cubic-bezier(.4, 0, .2, 1)));
50
+ transition-duration: var(--tw-duration, var(--default-transition-duration, .15s));
51
+ --tw-duration: .2s;
52
+ background-color: var(--surface-neutral-0);
53
+ border-width: 1px;
54
+ border-color: var(--border-neutral-100);
55
+ flex-direction: column;
56
+ align-items: stretch;
57
+ transition-duration: .2s;
48
58
  display: flex;
49
59
  }
50
60
 
51
- .IncodeIdentityReuseCircle {
52
- aspect-ratio: 1;
53
- border-radius: var(--radius-full, var(--border-radius-full));
61
+ .IncodeIdentityReusePage .IncodeIdentityReuseCard:hover {
62
+ border-color: var(--border-neutral-200);
63
+ }
64
+
65
+ .IncodeIdentityReusePage .IncodeIdentityReuseCard:focus-visible {
66
+ outline: var(--focus-outline-width) solid var(--border-status-focus);
67
+ outline-offset: var(--focus-outline-width);
68
+ }
69
+
70
+ .IncodeIdentityReusePage .IncodeIdentityReuseCardSelected, .IncodeIdentityReusePage .IncodeIdentityReuseCardSelected:hover {
54
71
  background-color: var(--surface-brand-50);
55
- justify-content: center;
56
- align-items: center;
57
- width: 100%;
58
- max-width: 180px;
59
- display: flex;
72
+ border-color: var(--border-brand-500);
60
73
  }
61
74
 
62
- .IncodeIdentityReuseCircleText {
63
- padding-inline: var(--spacing-16, var(--spacing-16, 16px));
64
- text-align: center;
65
- font-size: var(--text-18, var(--primitive-typography-size-18));
66
- --tw-font-weight: var(--font-weight-bold, var(--primitive-typography-weight-bold));
67
- font-weight: var(--font-weight-bold, var(--primitive-typography-weight-bold));
68
- color: var(--surface-brand-500);
75
+ .IncodeIdentityReusePage .IncodeIdentityReuseCardBody {
76
+ gap: var(--spacing-8, var(--spacing-8, 8px));
77
+ flex-direction: column;
78
+ flex: 1;
79
+ display: flex;
69
80
  }
70
81
 
71
- .IncodeIdentityReuseArrowWrapper {
72
- justify-content: center;
82
+ .IncodeIdentityReusePage .IncodeIdentityReuseCardHeader {
83
+ justify-content: space-between;
73
84
  align-items: center;
74
- width: 10%;
85
+ width: 100%;
75
86
  display: flex;
76
87
  }
77
88
 
78
- .IncodeIdentityReuseArrow {
79
- width: 100%;
80
- color: var(--text-body-800-secondary);
89
+ .IncodeIdentityReusePage .IncodeIdentityReuseCardHeaderLeft {
90
+ align-items: center;
91
+ gap: var(--spacing-12, var(--spacing-12, 12px));
92
+ display: flex;
81
93
  }
82
94
 
83
- .IncodeIdentityReuseDescription {
84
- margin: var(--spacing-0, var(--spacing-none, 0px));
85
- margin-top: var(--spacing-24, var(--spacing-24, 24px));
86
- text-align: center;
87
- font-size: var(--text-16, var(--primitive-typography-size-16));
88
- color: var(--text-body-800-secondary);
95
+ .IncodeIdentityReusePage .IncodeIdentityReuseCardTypeLabel {
96
+ font-family: var(--typography-body-family);
97
+ font-size: var(--typography-body-m-regular-size);
98
+ font-weight: var(--typography-body-m-regular-weight);
99
+ line-height: var(--typography-body-m-regular-line-height);
100
+ letter-spacing: var(--typography-body-m-regular-letter-spacing);
101
+ color: var(--text-body-800-primary);
89
102
  }
90
103
 
91
- .IncodeIdentityReuseActions {
104
+ .IncodeIdentityReusePage .IncodeIdentityReuseCardIdentifier {
105
+ margin: var(--spacing-0, var(--spacing-none, 0px));
106
+ align-items: center;
92
107
  gap: var(--spacing-8, var(--spacing-8, 8px));
93
- flex-direction: column;
108
+ font-family: var(--typography-headline-family);
109
+ font-size: var(--typography-headline-h5-size);
110
+ font-weight: var(--typography-headline-h5-weight);
111
+ line-height: var(--typography-headline-h5-line-height);
112
+ letter-spacing: var(--typography-headline-h5-letter-spacing);
113
+ color: var(--text-body-800-primary);
94
114
  display: flex;
95
115
  }
96
116
 
97
- .IncodeIdentityReuseCandidateList {
98
- gap: var(--spacing-8, var(--spacing-8, 8px));
99
- flex-direction: column;
100
- width: 100%;
101
- display: flex;
117
+ .IncodeIdentityReusePage .IncodeIdentityReuseCardVerified {
118
+ margin: var(--spacing-0, var(--spacing-none, 0px));
119
+ font-family: var(--typography-body-family);
120
+ font-size: var(--typography-body-m-regular-size);
121
+ font-weight: var(--typography-body-m-regular-weight);
122
+ line-height: var(--typography-body-m-regular-line-height);
123
+ letter-spacing: var(--typography-body-m-regular-letter-spacing);
124
+ color: var(--text-body-500-secondary);
125
+ }
126
+
127
+ .IncodeIdentityReusePage .IncodeIdentityReuseBadgeRecommended {
128
+ border-radius: var(--radius-x-small, var(--border-radius-x-small));
129
+ padding-inline: var(--spacing-4, var(--spacing-4, 4px));
130
+ padding-block: var(--spacing-2, var(--spacing-2, 2px));
131
+ font-family: var(--typography-body-family);
132
+ font-size: var(--typography-body-s-regular-size);
133
+ font-weight: var(--typography-body-s-regular-weight);
134
+ line-height: var(--typography-body-s-regular-line-height);
135
+ letter-spacing: var(--typography-body-s-regular-letter-spacing);
136
+ background-color: var(--surface-brand-500-static);
137
+ color: var(--text-body-0-static);
138
+ align-items: center;
139
+ display: inline-flex;
102
140
  }
103
141
 
104
- .IncodeIdentityReuseCandidateItem {
105
- cursor: pointer;
106
- border-radius: var(--radius-medium, var(--border-radius-medium));
142
+ .IncodeIdentityReusePage .IncodeIdentityReuseBadgeSlowest {
143
+ border-radius: var(--radius-x-small, var(--border-radius-x-small));
107
144
  border-style: var(--tw-border-style);
108
- width: 100%;
109
- padding-inline: var(--spacing-16, var(--spacing-16, 16px));
110
- padding-block: var(--spacing-16, var(--spacing-16, 16px));
111
- transition-property: color, background-color, border-color, outline-color, text-decoration-color, fill, stroke, --tw-gradient-from, --tw-gradient-via, --tw-gradient-to;
112
- transition-timing-function: var(--tw-ease, var(--default-transition-timing-function, cubic-bezier(.4, 0, .2, 1)));
113
- transition-duration: var(--tw-duration, var(--default-transition-duration, .15s));
114
- --tw-duration: .2s;
115
- background-color: var(--surface-brand-50);
145
+ padding-inline: var(--spacing-4, var(--spacing-4, 4px));
146
+ padding-block: var(--spacing-2, var(--spacing-2, 2px));
147
+ font-family: var(--typography-body-family);
148
+ font-size: var(--typography-body-s-regular-size);
149
+ font-weight: var(--typography-body-s-regular-weight);
150
+ line-height: var(--typography-body-s-regular-line-height);
151
+ letter-spacing: var(--typography-body-s-regular-letter-spacing);
152
+ background-color: var(--surface-neutral-50);
116
153
  border-width: 1px;
117
- border-color: var(--surface-brand-50);
118
- justify-content: space-between;
154
+ border-color: var(--border-neutral-200);
155
+ color: var(--text-body-800-primary);
119
156
  align-items: center;
120
- transition-duration: .2s;
121
- display: flex;
157
+ display: inline-flex;
122
158
  }
123
159
 
124
- .IncodeIdentityReuseCandidateItem:hover {
125
- border-color: var(--surface-brand-500);
160
+ .IncodeIdentityReusePage .IncodeIdentityReuseScanNewCard {
161
+ align-items: center;
162
+ gap: var(--spacing-20);
163
+ flex-direction: row;
126
164
  }
127
165
 
128
- .IncodeIdentityReuseCandidateItem:focus-visible {
129
- --tw-outline-style: none;
130
- border-color: var(--border-status-focus);
131
- box-shadow: 0 0 0 2px var(--border-status-focus);
132
- outline-style: none;
166
+ .IncodeIdentityReusePage .IncodeIdentityReuseScanNewBody {
167
+ align-items: center;
168
+ gap: var(--spacing-12, var(--spacing-12, 12px));
169
+ flex: 1;
170
+ display: flex;
133
171
  }
134
172
 
135
- .IncodeIdentityReuseCandidateItemName {
136
- font-size: var(--text-16, var(--primitive-typography-size-16));
137
- --tw-font-weight: var(--font-weight-medium, var(--primitive-typography-weight-medium));
138
- font-weight: var(--font-weight-medium, var(--primitive-typography-weight-medium));
139
- color: var(--text-body-800-primary);
173
+ .IncodeIdentityReusePage .IncodeIdentityReuseRadio {
174
+ border-radius: var(--radius-full, var(--border-radius-full));
175
+ border-style: var(--tw-border-style);
176
+ width: var(--spacing-24);
177
+ height: var(--spacing-24);
178
+ background-color: var(--surface-neutral-50);
179
+ border-width: 1px;
180
+ border-color: var(--border-neutral-200);
181
+ flex-shrink: 0;
182
+ justify-content: center;
183
+ align-items: center;
184
+ display: inline-flex;
140
185
  }
141
186
 
142
- .IncodeIdentityReuseCandidateItemChevron {
143
- width: var(--spacing-24, var(--spacing-24, 24px));
144
- height: var(--spacing-24, var(--spacing-24, 24px));
145
- color: var(--text-body-800-secondary);
146
- flex-shrink: 0;
187
+ .IncodeIdentityReusePage .IncodeIdentityReuseRadioChecked {
188
+ background-color: var(--surface-brand-500-static);
189
+ border-color: var(--surface-brand-500-static);
147
190
  }
148
191
 
149
- @property --tw-font-weight {
150
- syntax: "*";
151
- inherits: false
192
+ .IncodeIdentityReusePage .IncodeIdentityReuseRadioInner {
193
+ border-radius: var(--radius-full, var(--border-radius-full));
194
+ width: var(--spacing-8);
195
+ height: var(--spacing-8);
196
+ background-color: var(--surface-neutral-0-static);
197
+ display: block;
198
+ }
199
+
200
+ .IncodeIdentityReusePage .IncodeIdentityReuseActions {
201
+ gap: var(--spacing-12, var(--spacing-12, 12px));
202
+ padding-top: var(--spacing-16);
203
+ flex-direction: column;
204
+ margin-top: auto;
205
+ display: flex;
152
206
  }
153
207
 
154
208
  @property --tw-border-style {
@@ -2880,6 +2880,51 @@
2880
2880
  }
2881
2881
  }
2882
2882
 
2883
+ @media (min-width: 40rem) {
2884
+ .incode-container {
2885
+ max-width: 40rem;
2886
+ }
2887
+ }
2888
+
2889
+ @media (min-width: 48rem) {
2890
+ .incode-container {
2891
+ max-width: 48rem;
2892
+ }
2893
+ }
2894
+
2895
+ @media (min-width: 64rem) {
2896
+ .incode-container {
2897
+ max-width: 64rem;
2898
+ }
2899
+ }
2900
+
2901
+ @media (min-width: 80rem) {
2902
+ .incode-container {
2903
+ max-width: 80rem;
2904
+ }
2905
+ }
2906
+
2907
+ @media (min-width: 96rem) {
2908
+ .incode-container {
2909
+ max-width: 96rem;
2910
+ }
2911
+ }
2912
+
2913
+ @media (min-width: 48rem) {
2914
+ .incode-container {
2915
+ max-height: var(--incode-page-max-h);
2916
+ max-width: var(--incode-page-max-w);
2917
+ }
2918
+
2919
+ @media not all and (min-width: 80rem) {
2920
+ @media (orientation: landscape) {
2921
+ .incode-container {
2922
+ max-height: var(--incode-page-max-h-landscape);
2923
+ }
2924
+ }
2925
+ }
2926
+ }
2927
+
2883
2928
  .incode-container {
2884
2929
  width: 100%;
2885
2930
  }
@@ -3371,6 +3416,11 @@
3371
3416
  font-weight: var(--typography-button-m-underlined-weight);
3372
3417
  line-height: var(--typography-button-m-underlined-line-height);
3373
3418
  letter-spacing: var(--typography-button-m-underlined-letter-spacing);
3419
+ font-family: var(--typography-button-family);
3420
+ font-size: var(--typography-button-m-underlined-size);
3421
+ font-weight: var(--typography-button-m-underlined-weight);
3422
+ line-height: var(--typography-button-m-underlined-line-height);
3423
+ letter-spacing: var(--typography-button-m-underlined-letter-spacing);
3374
3424
  text-decoration-line: underline;
3375
3425
  text-decoration-style: solid;
3376
3426
  text-decoration-thickness: auto;
@@ -6770,6 +6820,191 @@
6770
6820
  display: flex;
6771
6821
  }
6772
6822
 
6823
+ .IncodeIdentityReusePage {
6824
+ animation: .4s ease-out fadeIn;
6825
+ }
6826
+
6827
+ .IncodeIdentityReusePage .IncodeIdentityReuseBody {
6828
+ padding-top: var(--spacing-32);
6829
+ flex-direction: column;
6830
+ flex: 1;
6831
+ display: flex;
6832
+ }
6833
+
6834
+ .IncodeIdentityReusePage .IncodeIdentityReuseList {
6835
+ gap: var(--spacing-8, var(--spacing-8, 8px));
6836
+ flex-direction: column;
6837
+ width: 100%;
6838
+ display: flex;
6839
+ }
6840
+
6841
+ .IncodeIdentityReusePage .IncodeIdentityReuseCard {
6842
+ cursor: pointer;
6843
+ border-radius: var(--radius-medium, var(--border-radius-medium));
6844
+ border-style: var(--tw-border-style);
6845
+ width: 100%;
6846
+ padding: var(--spacing-16, var(--spacing-16, 16px));
6847
+ text-align: left;
6848
+ transition-property: color, background-color, border-color, outline-color, text-decoration-color, fill, stroke, --tw-gradient-from, --tw-gradient-via, --tw-gradient-to;
6849
+ transition-timing-function: var(--tw-ease, var(--default-transition-timing-function, cubic-bezier(.4, 0, .2, 1)));
6850
+ transition-duration: var(--tw-duration, var(--default-transition-duration, .15s));
6851
+ --tw-duration: .2s;
6852
+ background-color: var(--surface-neutral-0);
6853
+ border-width: 1px;
6854
+ border-color: var(--border-neutral-100);
6855
+ flex-direction: column;
6856
+ align-items: stretch;
6857
+ transition-duration: .2s;
6858
+ display: flex;
6859
+ }
6860
+
6861
+ .IncodeIdentityReusePage .IncodeIdentityReuseCard:hover {
6862
+ border-color: var(--border-neutral-200);
6863
+ }
6864
+
6865
+ .IncodeIdentityReusePage .IncodeIdentityReuseCard:focus-visible {
6866
+ outline: var(--focus-outline-width) solid var(--border-status-focus);
6867
+ outline-offset: var(--focus-outline-width);
6868
+ }
6869
+
6870
+ .IncodeIdentityReusePage .IncodeIdentityReuseCardSelected, .IncodeIdentityReusePage .IncodeIdentityReuseCardSelected:hover {
6871
+ background-color: var(--surface-brand-50);
6872
+ border-color: var(--border-brand-500);
6873
+ }
6874
+
6875
+ .IncodeIdentityReusePage .IncodeIdentityReuseCardBody {
6876
+ gap: var(--spacing-8, var(--spacing-8, 8px));
6877
+ flex-direction: column;
6878
+ flex: 1;
6879
+ display: flex;
6880
+ }
6881
+
6882
+ .IncodeIdentityReusePage .IncodeIdentityReuseCardHeader {
6883
+ justify-content: space-between;
6884
+ align-items: center;
6885
+ width: 100%;
6886
+ display: flex;
6887
+ }
6888
+
6889
+ .IncodeIdentityReusePage .IncodeIdentityReuseCardHeaderLeft {
6890
+ align-items: center;
6891
+ gap: var(--spacing-12, var(--spacing-12, 12px));
6892
+ display: flex;
6893
+ }
6894
+
6895
+ .IncodeIdentityReusePage .IncodeIdentityReuseCardTypeLabel {
6896
+ font-family: var(--typography-body-family);
6897
+ font-size: var(--typography-body-m-regular-size);
6898
+ font-weight: var(--typography-body-m-regular-weight);
6899
+ line-height: var(--typography-body-m-regular-line-height);
6900
+ letter-spacing: var(--typography-body-m-regular-letter-spacing);
6901
+ color: var(--text-body-800-primary);
6902
+ }
6903
+
6904
+ .IncodeIdentityReusePage .IncodeIdentityReuseCardIdentifier {
6905
+ margin: var(--spacing-0, var(--spacing-none, 0px));
6906
+ align-items: center;
6907
+ gap: var(--spacing-8, var(--spacing-8, 8px));
6908
+ font-family: var(--typography-headline-family);
6909
+ font-size: var(--typography-headline-h5-size);
6910
+ font-weight: var(--typography-headline-h5-weight);
6911
+ line-height: var(--typography-headline-h5-line-height);
6912
+ letter-spacing: var(--typography-headline-h5-letter-spacing);
6913
+ color: var(--text-body-800-primary);
6914
+ display: flex;
6915
+ }
6916
+
6917
+ .IncodeIdentityReusePage .IncodeIdentityReuseCardVerified {
6918
+ margin: var(--spacing-0, var(--spacing-none, 0px));
6919
+ font-family: var(--typography-body-family);
6920
+ font-size: var(--typography-body-m-regular-size);
6921
+ font-weight: var(--typography-body-m-regular-weight);
6922
+ line-height: var(--typography-body-m-regular-line-height);
6923
+ letter-spacing: var(--typography-body-m-regular-letter-spacing);
6924
+ color: var(--text-body-500-secondary);
6925
+ }
6926
+
6927
+ .IncodeIdentityReusePage .IncodeIdentityReuseBadgeRecommended {
6928
+ border-radius: var(--radius-x-small, var(--border-radius-x-small));
6929
+ padding-inline: var(--spacing-4, var(--spacing-4, 4px));
6930
+ padding-block: var(--spacing-2, var(--spacing-2, 2px));
6931
+ font-family: var(--typography-body-family);
6932
+ font-size: var(--typography-body-s-regular-size);
6933
+ font-weight: var(--typography-body-s-regular-weight);
6934
+ line-height: var(--typography-body-s-regular-line-height);
6935
+ letter-spacing: var(--typography-body-s-regular-letter-spacing);
6936
+ background-color: var(--surface-brand-500-static);
6937
+ color: var(--text-body-0-static);
6938
+ align-items: center;
6939
+ display: inline-flex;
6940
+ }
6941
+
6942
+ .IncodeIdentityReusePage .IncodeIdentityReuseBadgeSlowest {
6943
+ border-radius: var(--radius-x-small, var(--border-radius-x-small));
6944
+ border-style: var(--tw-border-style);
6945
+ padding-inline: var(--spacing-4, var(--spacing-4, 4px));
6946
+ padding-block: var(--spacing-2, var(--spacing-2, 2px));
6947
+ font-family: var(--typography-body-family);
6948
+ font-size: var(--typography-body-s-regular-size);
6949
+ font-weight: var(--typography-body-s-regular-weight);
6950
+ line-height: var(--typography-body-s-regular-line-height);
6951
+ letter-spacing: var(--typography-body-s-regular-letter-spacing);
6952
+ background-color: var(--surface-neutral-50);
6953
+ border-width: 1px;
6954
+ border-color: var(--border-neutral-200);
6955
+ color: var(--text-body-800-primary);
6956
+ align-items: center;
6957
+ display: inline-flex;
6958
+ }
6959
+
6960
+ .IncodeIdentityReusePage .IncodeIdentityReuseScanNewCard {
6961
+ align-items: center;
6962
+ gap: var(--spacing-20);
6963
+ flex-direction: row;
6964
+ }
6965
+
6966
+ .IncodeIdentityReusePage .IncodeIdentityReuseScanNewBody {
6967
+ align-items: center;
6968
+ gap: var(--spacing-12, var(--spacing-12, 12px));
6969
+ flex: 1;
6970
+ display: flex;
6971
+ }
6972
+
6973
+ .IncodeIdentityReusePage .IncodeIdentityReuseRadio {
6974
+ border-radius: var(--radius-full, var(--border-radius-full));
6975
+ border-style: var(--tw-border-style);
6976
+ width: var(--spacing-24);
6977
+ height: var(--spacing-24);
6978
+ background-color: var(--surface-neutral-50);
6979
+ border-width: 1px;
6980
+ border-color: var(--border-neutral-200);
6981
+ flex-shrink: 0;
6982
+ justify-content: center;
6983
+ align-items: center;
6984
+ display: inline-flex;
6985
+ }
6986
+
6987
+ .IncodeIdentityReusePage .IncodeIdentityReuseRadioChecked {
6988
+ background-color: var(--surface-brand-500-static);
6989
+ border-color: var(--surface-brand-500-static);
6990
+ }
6991
+
6992
+ .IncodeIdentityReusePage .IncodeIdentityReuseRadioInner {
6993
+ border-radius: var(--radius-full, var(--border-radius-full));
6994
+ width: var(--spacing-8);
6995
+ height: var(--spacing-8);
6996
+ background-color: var(--surface-neutral-0-static);
6997
+ display: block;
6998
+ }
6999
+
7000
+ .IncodeIdentityReusePage .IncodeIdentityReuseActions {
7001
+ gap: var(--spacing-12, var(--spacing-12, 12px));
7002
+ padding-top: var(--spacing-16);
7003
+ flex-direction: column;
7004
+ margin-top: auto;
7005
+ display: flex;
7006
+ }
7007
+
6773
7008
  .IncodeHome {
6774
7009
  background-color: var(--color-surface-neutral-0, var(--surface-neutral-0));
6775
7010
  width: 100%;
@@ -15,7 +15,8 @@ import { createWorkflowManager as E } from "@incodetech/core/workflow";
15
15
  var D = {
16
16
  ...h,
17
17
  REDIRECT_TO_MOBILE: () => import("../redirectToMobile-DQHIQWzY.js").then((e) => e.RedirectToMobile),
18
- ID: () => import("../id-verification/id-verification.es.js").then((e) => e.IdVerification)
18
+ ID: () => import("../id-verification/id-verification.es.js").then((e) => e.IdVerification),
19
+ IDENTITY_REUSE: () => import("../identity-reuse/identity-reuse.es.js").then((e) => e.IdentityReuse)
19
20
  };
20
21
  async function O() {
21
22
  try {
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@incodetech/web",
3
- "version": "0.0.0-dev-20260526-ff50bd63",
3
+ "version": "0.0.0-dev-20260527-2b0f512a",
4
4
  "repository": {
5
5
  "type": "git",
6
6
  "url": "git+https://github.com/IncodeTechnologies/incode-web-sdk.git"
@@ -246,7 +246,7 @@
246
246
  "qrcode": "^1.5.4",
247
247
  "signature_pad": "^5.1.3",
248
248
  "tailwindcss": "^4.1.17",
249
- "@incodetech/core": "0.0.0-dev-20260526-ff50bd63"
249
+ "@incodetech/core": "0.0.0-dev-20260527-2b0f512a"
250
250
  },
251
251
  "devDependencies": {
252
252
  "@microsoft/api-extractor": "^7.53.3",