@incodetech/web 0.0.0-dev-20260302-ad37d43 → 0.0.0-dev-20260302-e38ab90

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 (41) hide show
  1. package/dist/{Trans-Bdg0o_Cr.js → Trans-BHurUlNG.js} +3 -3
  2. package/dist/authentication/authentication.es.js +5 -5
  3. package/dist/base.css +41 -1
  4. package/dist/{baseTutorial-BgA1dpRi.js → baseTutorial-Bbadb04i.js} +5 -5
  5. package/dist/{chevronDown-C5Kn1woB.js → chevronDown-CIyU9-x9.js} +1 -1
  6. package/dist/countries-DDCxQhGs.js +3206 -0
  7. package/dist/curp-validation/curp-validation.es.js +182 -797
  8. package/dist/curp-validation/styles.css +4 -1
  9. package/dist/dateInputComposed-BwjWmZFc.js +172 -0
  10. package/dist/{documentUpload-h5GfSa2m.js → documentUpload-BnXvLmkL.js} +4 -4
  11. package/dist/dropdownComposed-vWK3dHjS.js +461 -0
  12. package/dist/ekyb/styles.css +107 -0
  13. package/dist/ekybModule-Dm04An2k.js +243 -0
  14. package/dist/ekyc/styles.css +274 -0
  15. package/dist/ekycModule-DQO4I6h1.js +451 -0
  16. package/dist/email/email.es.js +4 -4
  17. package/dist/{errorIcon-BT7Rf4z7.js → errorIcon-hyIEsKoP.js} +1 -1
  18. package/dist/{faceMatch-DL5ICOMJ.js → faceMatch-CTYWaJ2M.js} +4 -4
  19. package/dist/flow/flow.es.js +191 -161
  20. package/dist/flow/styles.css +536 -1
  21. package/dist/geolocation/geolocation.es.js +5 -5
  22. package/dist/governmentValidation/governmentValidation.es.js +8 -8
  23. package/dist/id/id.es.js +7 -7
  24. package/dist/{incodeComponent-BUltqUSz.js → incodeComponent-DSqGVqSo.js} +3 -3
  25. package/dist/{incodeModule-BwGymwZT.js → incodeModule-_kfNnq5z.js} +1 -1
  26. package/dist/index.es.js +2 -2
  27. package/dist/{otpInput-B7TR21xE.js → otpInput-Bx16y6dR.js} +2 -2
  28. package/dist/phone/phone.es.js +133 -3332
  29. package/dist/{processing-B7fzlPZl.js → processing-BuaxyhmY.js} +3 -3
  30. package/dist/selfie/selfie.es.js +6 -6
  31. package/dist/{setup-CFo1IZlN.js → setup-B6jZts5S.js} +2 -2
  32. package/dist/{spinner-BiENeSCl.js → spinner-Ogo-u91P.js} +2 -2
  33. package/dist/{successIcon-CTA9p_2h.js → successIcon-Ci24t3I5.js} +1 -1
  34. package/dist/{tutorial-DGo0fw3f.js → tutorial-637lvO4s.js} +7 -7
  35. package/dist/types/ekyb/styles.d.ts +1 -0
  36. package/dist/types/ekyc/styles.d.ts +1 -0
  37. package/dist/{uiConfig-BG6lJ_HG.js → uiConfig-CbMyDWix.js} +1 -1
  38. package/dist/{useTranslation-Cm51-Wm-.js → useTranslation-B1jrtqlW.js} +1 -1
  39. package/dist/{vendor-preact-CM6KQyKc.js → vendor-preact-BDue3y7V.js} +1 -0
  40. package/dist/verificationResult-BMHBsZ8s.js +106 -0
  41. package/package.json +17 -3
@@ -0,0 +1,107 @@
1
+ /*! tailwindcss v4.1.17 | MIT License | https://tailwindcss.com */
2
+ .IncodeEkybPage {
3
+ max-width: 480px;
4
+ margin: 0 auto;
5
+ }
6
+
7
+ .IncodeEkyb__form {
8
+ flex-direction: column;
9
+ gap: 16px;
10
+ width: 100%;
11
+ margin-top: 32px;
12
+ display: flex;
13
+ }
14
+
15
+ @media (min-width: 768px) {
16
+ .IncodePageContainer.IncodeEkybPage {
17
+ height: 95dvh;
18
+ max-height: none;
19
+ margin-top: 0;
20
+ }
21
+
22
+ .IncodeEkybPage .IncodePageInner {
23
+ height: 95%;
24
+ }
25
+
26
+ .IncodePageContainer.IncodeEkybPage--scrollable {
27
+ max-width: 500px;
28
+ }
29
+
30
+ .IncodeEkybPage .IncodePageContent {
31
+ min-height: 0;
32
+ }
33
+
34
+ .IncodeEkybPage .IncodeEkyb__form {
35
+ flex: 1;
36
+ min-height: 0;
37
+ padding-bottom: 8px;
38
+ overflow-y: auto;
39
+ }
40
+
41
+ .IncodeEkybPage--scrollable .IncodeEkyb__form {
42
+ margin-left: 8px;
43
+ }
44
+
45
+ .IncodeEkyb__footer {
46
+ flex-shrink: 0;
47
+ }
48
+ }
49
+
50
+ .IncodeEkyb__form .IncodeInputComposed, .IncodeEkyb__form .IncodeDropdownComposed, .IncodeEkyb__form .IncodeFormField {
51
+ margin-left: auto;
52
+ margin-right: auto;
53
+ }
54
+
55
+ .IncodeEkyb__form .IncodeFormField {
56
+ margin-bottom: 0;
57
+ }
58
+
59
+ .IncodeEkybPage .IncodeEkyb__sectionHeader {
60
+ font-family: var(--primitive-typography-family-dm-sans);
61
+ font-size: var(--typography-headline-h3-size);
62
+ font-weight: var(--typography-headline-h3-weight);
63
+ line-height: var(--typography-headline-h3-line-height);
64
+ letter-spacing: var(--typography-headline-h3-letter-spacing);
65
+ color: var(--color-text-body-primary, var(--text-body-primary));
66
+ width: 100%;
67
+ max-width: 420px;
68
+ margin: 16px auto 0;
69
+ padding: 12px 0;
70
+ font-weight: 700;
71
+ }
72
+
73
+ .IncodeEkyb__ubos, .IncodeEkyb__uboEntry {
74
+ flex-direction: column;
75
+ gap: 16px;
76
+ display: flex;
77
+ }
78
+
79
+ .IncodeEkyb__removeUbo {
80
+ color: var(--text-error, #dc2626);
81
+ cursor: pointer;
82
+ background: none;
83
+ border: none;
84
+ padding: 0;
85
+ font-size: .75rem;
86
+ }
87
+
88
+ .IncodeEkyb__addUbo {
89
+ color: var(--button-primary-surface-default, #006aff);
90
+ cursor: pointer;
91
+ text-align: center;
92
+ background: none;
93
+ border: none;
94
+ padding: 8px 0;
95
+ font-size: 18px;
96
+ font-weight: 500;
97
+ line-height: 18px;
98
+ text-decoration: underline;
99
+ }
100
+
101
+ .IncodeEkyb__addUbo:hover {
102
+ opacity: .8;
103
+ }
104
+
105
+ .IncodeEkyb__countrySelector {
106
+ width: 100%;
107
+ }
@@ -0,0 +1,243 @@
1
+ import { u as t, a as g, S as $, B as U, r as F } from "./incodeModule-_kfNnq5z.js";
2
+ import { SUPPORTED_COUNTRIES as I, DEV_ONLY_COUNTRIES as M, createEkybManager as R } from "@incodetech/core/ekyb";
3
+ import { T as D, y as v, A as w, k as L } from "./vendor-preact-BDue3y7V.js";
4
+ import "./instance-B-q0ZREN.js";
5
+ import { u as k } from "./useTranslation-B1jrtqlW.js";
6
+ import "@incodetech/core";
7
+ import { F as A, V as E, u as P } from "./verificationResult-BMHBsZ8s.js";
8
+ import { I as O, P as T } from "./incodeComponent-DSqGVqSo.js";
9
+ import { D as S, I as N } from "./dropdownComposed-vWK3dHjS.js";
10
+ function B(e) {
11
+ return [...e.toUpperCase()].map((o) => String.fromCodePoint(127462 + o.charCodeAt(0) - 65)).join("");
12
+ }
13
+ const V = {
14
+ BR: "Brazil",
15
+ CM: "Cameroon",
16
+ CN: "China",
17
+ FR: "France",
18
+ DE: "Germany",
19
+ IL: "Israel",
20
+ IT: "Italy",
21
+ KE: "Kenya",
22
+ MX: "Mexico",
23
+ NG: "Nigeria",
24
+ ES: "Spain",
25
+ GB: "United Kingdom",
26
+ US: "United States"
27
+ };
28
+ function q(e) {
29
+ const o = V[e] ?? e;
30
+ return { value: e, label: `${B(e)} ${o}` };
31
+ }
32
+ function G() {
33
+ if (typeof window > "u") return !1;
34
+ const { hostname: e } = window.location;
35
+ return e === "localhost" || e.includes("stage") || e.includes("demo");
36
+ }
37
+ const K = ({
38
+ value: e,
39
+ onChange: o
40
+ }) => {
41
+ const { t: r } = k(), a = D(() => (G() ? [...I, ...M] : [...I]).map(q).sort((u, l) => u.label.localeCompare(l.label)), []);
42
+ return /* @__PURE__ */ t("div", { className: "IncodeEkyb__countrySelector", children: /* @__PURE__ */ t(
43
+ S,
44
+ {
45
+ id: "ekyb-country",
46
+ label: r("ekyb.country"),
47
+ value: e,
48
+ options: a,
49
+ onChange: o,
50
+ "data-testid": "ekyb-country-selector"
51
+ }
52
+ ) });
53
+ }, _ = ({
54
+ field: e,
55
+ value: o,
56
+ error: r,
57
+ country: a,
58
+ onChange: c
59
+ }) => {
60
+ const { t: u } = k(), l = !e.required, m = u(e.label);
61
+ if (e.type === "dropdown") {
62
+ const n = l ? `${m} (${u("common.optional")})` : m, b = e.name === "state" ? u("ekyb.selectState") : void 0;
63
+ return /* @__PURE__ */ t(
64
+ S,
65
+ {
66
+ id: `ekyb-${e.name}`,
67
+ label: n,
68
+ placeholder: b,
69
+ value: o,
70
+ options: (e.options ?? []).map((i) => ({
71
+ ...i,
72
+ label: u(i.label)
73
+ })),
74
+ error: r ? u(r) : void 0,
75
+ searchable: !0,
76
+ onChange: (i) => c(e.name, i),
77
+ "data-testid": `ekyb-field-${e.name}`
78
+ }
79
+ );
80
+ }
81
+ return /* @__PURE__ */ t(
82
+ A,
83
+ {
84
+ name: e.name,
85
+ label: e.label,
86
+ value: o,
87
+ error: r,
88
+ required: e.required,
89
+ optional: l,
90
+ onChange: c
91
+ }
92
+ );
93
+ }, z = ({
94
+ ubos: e,
95
+ errors: o,
96
+ canAddUbo: r,
97
+ onSetField: a,
98
+ onAdd: c,
99
+ onRemove: u
100
+ }) => {
101
+ const { t: l } = k();
102
+ return e.length === 0 ? null : /* @__PURE__ */ t("div", { className: "IncodeEkyb__ubos", children: [
103
+ e.map((m, n) => {
104
+ const b = n === 0 ? l("ekyb.uboName") : l("ekyb.uboNameWithNumber", { number: n + 1 }), i = n === 0 ? l("ekyb.uboSurname") : l("ekyb.uboSurnameWithNumber", { number: n + 1 }), h = n === 0;
105
+ return /* @__PURE__ */ t("div", { className: "IncodeEkyb__uboEntry", children: [
106
+ /* @__PURE__ */ t(
107
+ N,
108
+ {
109
+ id: `ubo-${n}-name`,
110
+ label: b,
111
+ name: `ubo-${n}-name`,
112
+ value: m.name,
113
+ error: o[`ubo-${n}-name`] ? l(o[`ubo-${n}-name`]) : void 0,
114
+ onInput: (d) => a(n, "name", d.target.value),
115
+ "data-testid": `ekyb-ubo-${n}-name`
116
+ }
117
+ ),
118
+ /* @__PURE__ */ t(
119
+ N,
120
+ {
121
+ id: `ubo-${n}-surname`,
122
+ label: i,
123
+ name: `ubo-${n}-surname`,
124
+ value: m.surname,
125
+ error: o[`ubo-${n}-surname`] ? l(o[`ubo-${n}-surname`]) : void 0,
126
+ onInput: (d) => a(
127
+ n,
128
+ "surname",
129
+ d.target.value
130
+ ),
131
+ "data-testid": `ekyb-ubo-${n}-surname`
132
+ }
133
+ ),
134
+ !h && /* @__PURE__ */ t(
135
+ "button",
136
+ {
137
+ className: "IncodeEkyb__removeUbo",
138
+ onClick: () => u(n),
139
+ type: "button",
140
+ children: l("common.remove")
141
+ }
142
+ )
143
+ ] }, m.id);
144
+ }),
145
+ r && /* @__PURE__ */ t(
146
+ "button",
147
+ {
148
+ className: "IncodeEkyb__addUbo",
149
+ onClick: c,
150
+ type: "button",
151
+ "data-testid": "ekyb-add-ubo",
152
+ children: l("ekyb.addAnotherUbo")
153
+ }
154
+ )
155
+ ] });
156
+ }, W = ({ config: e, onFinish: o, onError: r }) => {
157
+ const [a, c] = g(() => R({ config: e }), {
158
+ autoLoad: !1
159
+ });
160
+ v(() => {
161
+ (a.status === "finished" || a.status === "closed") && o?.();
162
+ }, [a.status, o]);
163
+ const u = a.status === "error" ? a.errorMessage : void 0;
164
+ return v(() => {
165
+ a.status === "error" && r?.(u);
166
+ }, [a.status, r, u]), a.status === "finished" || a.status === "closed" ? null : a.status === "submitting" ? /* @__PURE__ */ t(E, { status: "submitting" }) : a.status === "success" ? /* @__PURE__ */ t(E, { status: "success" }) : a.status === "error" ? /* @__PURE__ */ t(E, { status: "failure", onRetry: () => c.retry() }) : a.status === "form" ? /* @__PURE__ */ t(Y, { state: a, manager: c }) : null;
167
+ }, f = /* @__PURE__ */ new Set([
168
+ "street",
169
+ "houseNo",
170
+ "addressLine2",
171
+ "city",
172
+ "state",
173
+ "postalCode"
174
+ ]), Y = ({ state: e, manager: o }) => {
175
+ const { country: r, fields: a, values: c, displayErrors: u, isValid: l, ubos: m, canAddUbo: n } = e, { t: b } = k(), i = w(null), h = P(i, a.length), d = a.filter((s) => !f.has(s.name)), C = a.filter((s) => f.has(s.name));
176
+ return /* @__PURE__ */ t(T, { className: `IncodeEkybPage${h ? " IncodeEkybPage--scrollable" : ""}`, title: b("ekyb.title"), children: [
177
+ /* @__PURE__ */ t("div", { ref: i, className: "IncodeEkyb__form", children: [
178
+ /* @__PURE__ */ t(
179
+ K,
180
+ {
181
+ value: r,
182
+ onChange: (s) => o.setCountry(s)
183
+ }
184
+ ),
185
+ d.map((s) => /* @__PURE__ */ t(
186
+ _,
187
+ {
188
+ field: s,
189
+ value: c[s.name] ?? "",
190
+ error: u[s.name],
191
+ country: r,
192
+ onChange: (y, p) => o.setField(y, p)
193
+ },
194
+ s.name
195
+ )),
196
+ /* @__PURE__ */ t(
197
+ z,
198
+ {
199
+ ubos: m,
200
+ errors: u,
201
+ canAddUbo: n,
202
+ onSetField: (s, y, p) => o.setUboField(s, y, p),
203
+ onAdd: () => o.addUbo(),
204
+ onRemove: (s) => o.removeUbo(s)
205
+ }
206
+ ),
207
+ C.length > 0 && /* @__PURE__ */ t(L, { children: [
208
+ /* @__PURE__ */ t("h3", { className: "IncodeEkyb__sectionHeader", children: b("ekyb.addressDetails") }),
209
+ C.map((s) => /* @__PURE__ */ t(
210
+ _,
211
+ {
212
+ field: s,
213
+ value: c[s.name] ?? "",
214
+ error: u[s.name],
215
+ country: r,
216
+ onChange: (y, p) => o.setField(y, p)
217
+ },
218
+ s.name
219
+ ))
220
+ ] })
221
+ ] }),
222
+ /* @__PURE__ */ t("div", { className: "IncodeEkyb__footer", children: [
223
+ /* @__PURE__ */ t($, { size: 32 }),
224
+ /* @__PURE__ */ t(
225
+ U,
226
+ {
227
+ onClick: () => o.submit(),
228
+ disabled: !l,
229
+ "data-testid": "ekyb-submit",
230
+ children: b("ekyb.continue")
231
+ }
232
+ )
233
+ ] })
234
+ ] });
235
+ }, j = ({
236
+ config: e,
237
+ onFinish: o,
238
+ onError: r
239
+ }) => /* @__PURE__ */ t(O, { children: e ? /* @__PURE__ */ t(W, { config: e, onFinish: o, onError: r }) : null });
240
+ F(j, "incode-ekyb");
241
+ export {
242
+ j as EkybModule
243
+ };
@@ -0,0 +1,274 @@
1
+ /*! tailwindcss v4.1.17 | MIT License | https://tailwindcss.com */
2
+ .IncodeEkycPage {
3
+ max-width: 480px;
4
+ margin: 0 auto;
5
+ }
6
+
7
+ .IncodeEkyc__form {
8
+ flex-direction: column;
9
+ gap: 16px;
10
+ width: 100%;
11
+ margin-top: 32px;
12
+ display: flex;
13
+ }
14
+
15
+ @media (min-width: 768px) {
16
+ .IncodePageContainer.IncodeEkycPage {
17
+ height: 100dvh;
18
+ max-height: none;
19
+ margin-top: 0;
20
+ }
21
+
22
+ .IncodeEkycPage .IncodePageInner {
23
+ height: 100%;
24
+ }
25
+
26
+ .IncodePageContainer.IncodeEkycPage--scrollable {
27
+ max-width: 500px;
28
+ }
29
+
30
+ .IncodeEkycPage .IncodePageContent {
31
+ min-height: 0;
32
+ }
33
+
34
+ .IncodeEkycPage .IncodeEkyc__form {
35
+ flex: 1;
36
+ min-height: 0;
37
+ padding-bottom: 8px;
38
+ overflow-y: auto;
39
+ }
40
+
41
+ .IncodeEkycPage--scrollable .IncodeEkyc__form {
42
+ margin-left: 8px;
43
+ }
44
+
45
+ .IncodeEkyc__footer {
46
+ flex-shrink: 0;
47
+ }
48
+ }
49
+
50
+ .IncodeEkyc__form .IncodeInputComposed, .IncodeEkyc__form .IncodeDropdownComposed, .IncodeEkyc__form .IncodeDateInputComposed, .IncodeEkyc__form .IncodeAddressAutocomplete {
51
+ margin-left: auto;
52
+ margin-right: auto;
53
+ }
54
+
55
+ .IncodeEkyc__form .IncodeFormField {
56
+ margin-bottom: 0;
57
+ }
58
+
59
+ .IncodeEkycPage .IncodeEkyc__sectionHeader {
60
+ font-family: var(--primitive-typography-family-dm-sans);
61
+ font-size: var(--typography-headline-h3-size);
62
+ font-weight: var(--typography-headline-h3-weight);
63
+ line-height: var(--typography-headline-h3-line-height);
64
+ letter-spacing: var(--typography-headline-h3-letter-spacing);
65
+ color: var(--color-text-body-primary, var(--text-body-primary));
66
+ width: 100%;
67
+ max-width: 420px;
68
+ margin: 16px auto 0;
69
+ padding: 12px 0;
70
+ font-weight: 700;
71
+ }
72
+
73
+ .IncodeEkyc__radioGroup {
74
+ width: 100%;
75
+ max-width: 420px;
76
+ margin-left: auto;
77
+ margin-right: auto;
78
+ }
79
+
80
+ .IncodeEkyc__radioLabel {
81
+ color: var(--input-text-label-default, #262831);
82
+ margin-bottom: 8px;
83
+ font-size: 14px;
84
+ font-weight: 700;
85
+ line-height: 14px;
86
+ display: block;
87
+ }
88
+
89
+ .IncodeEkyc__radioOptions {
90
+ gap: 24px;
91
+ display: flex;
92
+ }
93
+
94
+ .IncodeEkyc__radioOption {
95
+ color: var(--radio-button-text-default, var(--text-body-primary, #262831));
96
+ cursor: pointer;
97
+ align-items: center;
98
+ gap: 12px;
99
+ font-size: 16px;
100
+ font-weight: 500;
101
+ line-height: 16px;
102
+ display: flex;
103
+ }
104
+
105
+ .IncodeEkyc__radioOption input[type="radio"] {
106
+ appearance: none;
107
+ border: 2px solid var(--radio-button-border-default, #82879a);
108
+ background: var(--radio-button-surface-default, #fcfcfd);
109
+ cursor: pointer;
110
+ border-radius: 9999px;
111
+ width: 28px;
112
+ min-width: 28px;
113
+ height: 28px;
114
+ min-height: 28px;
115
+ margin: 0;
116
+ position: relative;
117
+ }
118
+
119
+ .IncodeEkyc__radioOption input[type="radio"]:after {
120
+ content: "";
121
+ opacity: 0;
122
+ background: #fff;
123
+ border-radius: 9999px;
124
+ width: 10px;
125
+ height: 10px;
126
+ margin: auto;
127
+ display: block;
128
+ position: absolute;
129
+ inset: 0;
130
+ }
131
+
132
+ .IncodeEkyc__radioOption input[type="radio"]:checked {
133
+ border-color: var(--radio-button-surface-selected, #006aff);
134
+ background: var(--radio-button-surface-selected, #006aff);
135
+ }
136
+
137
+ .IncodeEkyc__radioOption input[type="radio"]:checked:after {
138
+ opacity: 1;
139
+ }
140
+
141
+ .IncodeEkyc__fieldError {
142
+ color: var(--input-text-helper-negative, #dc2626);
143
+ margin-top: 8px;
144
+ font-size: 14px;
145
+ display: block;
146
+ }
147
+
148
+ .IncodeAddressAutocomplete {
149
+ width: 100%;
150
+ position: relative;
151
+ }
152
+
153
+ .IncodeAddressAutocomplete__suggestions {
154
+ z-index: 10;
155
+ background: var(--surface-neutral-0, #fff);
156
+ border: 1px solid var(--input-border-default, #82879a);
157
+ border-radius: 8px;
158
+ max-height: 200px;
159
+ margin: 8px 0 0;
160
+ padding: 0;
161
+ list-style: none;
162
+ position: absolute;
163
+ top: 100%;
164
+ left: 0;
165
+ right: 0;
166
+ overflow-y: auto;
167
+ box-shadow: 0 2px 8px #00000026;
168
+ }
169
+
170
+ .IncodeAddressAutocomplete__suggestion {
171
+ cursor: pointer;
172
+ color: var(--text-body-primary, #262831);
173
+ border-bottom: 1px solid var(--input-border-default, #82879a);
174
+ padding: 12px 16px;
175
+ font-size: 16px;
176
+ font-weight: 500;
177
+ }
178
+
179
+ .IncodeAddressAutocomplete__suggestion:last-child {
180
+ border-bottom: none;
181
+ }
182
+
183
+ .IncodeAddressAutocomplete__suggestion:hover {
184
+ background: var(--surface-neutral-100, #f5f5f7);
185
+ }
186
+
187
+ .IncodeAddressAutocomplete__modalOverlay {
188
+ z-index: 50;
189
+ background: #00000080;
190
+ align-items: flex-end;
191
+ display: flex;
192
+ position: fixed;
193
+ inset: 0;
194
+ }
195
+
196
+ .IncodeAddressAutocomplete__modal {
197
+ background: var(--surface-primary, #fff);
198
+ border-radius: 1rem 1rem 0 0;
199
+ flex-direction: column;
200
+ width: 100%;
201
+ max-height: 90vh;
202
+ display: flex;
203
+ }
204
+
205
+ .IncodeAddressAutocomplete__modalHeader {
206
+ border-bottom: 1px solid var(--input-border-default, #e5e7eb);
207
+ justify-content: space-between;
208
+ align-items: center;
209
+ padding: 1rem 1.5rem;
210
+ display: flex;
211
+ }
212
+
213
+ .IncodeAddressAutocomplete__modalHeader h3 {
214
+ margin: 0;
215
+ font-size: 1.125rem;
216
+ font-weight: 600;
217
+ }
218
+
219
+ .IncodeAddressAutocomplete__modalClose {
220
+ cursor: pointer;
221
+ color: var(--text-secondary, #6b7280);
222
+ background: none;
223
+ border: none;
224
+ padding: 0;
225
+ font-size: 1.5rem;
226
+ line-height: 1;
227
+ }
228
+
229
+ .IncodeAddressAutocomplete__modalBody {
230
+ flex: 1;
231
+ padding: 1rem 1.5rem;
232
+ overflow-y: auto;
233
+ }
234
+
235
+ .IncodeAddressAutocomplete__modalInput {
236
+ border: 1px solid var(--input-border-default, #d1d5db);
237
+ border-radius: .375rem;
238
+ outline: none;
239
+ width: 100%;
240
+ margin-bottom: .75rem;
241
+ padding: .75rem 1rem;
242
+ font-size: 1rem;
243
+ }
244
+
245
+ .IncodeAddressAutocomplete__modalInput:focus {
246
+ border-color: var(--button-primary-surface-default, #3b82f6);
247
+ }
248
+
249
+ .IncodeAddressAutocomplete__modalSuggestions {
250
+ margin: 0;
251
+ padding: 0;
252
+ list-style: none;
253
+ }
254
+
255
+ .IncodeAddressAutocomplete__modalSuggestion {
256
+ cursor: pointer;
257
+ color: var(--text-primary, #111827);
258
+ border-bottom: 1px solid var(--input-border-default, #f3f4f6);
259
+ padding: .75rem 0;
260
+ font-size: .875rem;
261
+ }
262
+
263
+ .IncodeAddressAutocomplete__enterManually {
264
+ border: 1px solid var(--input-border-default, #d1d5db);
265
+ width: 100%;
266
+ color: var(--text-secondary, #6b7280);
267
+ cursor: pointer;
268
+ text-align: center;
269
+ background: none;
270
+ border-radius: .375rem;
271
+ margin-top: .75rem;
272
+ padding: .75rem;
273
+ font-size: .875rem;
274
+ }