@neofaceid/web-sdk 1.28.2 → 1.30.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/index.d.ts +91 -8
- package/dist/neoface-id-sdk.es.js +453 -216
- package/dist/neoface-id-sdk.umd.js +1 -1
- package/package.json +2 -1
|
@@ -4342,21 +4342,209 @@ object({
|
|
|
4342
4342
|
task_id: string().optional(),
|
|
4343
4343
|
status: string().optional()
|
|
4344
4344
|
});
|
|
4345
|
+
const BLUE = {
|
|
4346
|
+
400: "#00B0F8",
|
|
4347
|
+
500: "#0091F6",
|
|
4348
|
+
700: "#0059C4"
|
|
4349
|
+
};
|
|
4350
|
+
const GOLD = {
|
|
4351
|
+
500: "#F1BE00"
|
|
4352
|
+
};
|
|
4353
|
+
const INK = {
|
|
4354
|
+
25: "#F7F9FC",
|
|
4355
|
+
50: "#F1F5FA",
|
|
4356
|
+
100: "#E6ECF4",
|
|
4357
|
+
300: "#AFBDCE",
|
|
4358
|
+
400: "#8496AD",
|
|
4359
|
+
500: "#617489",
|
|
4360
|
+
600: "#48586B",
|
|
4361
|
+
800: "#1E2B3C",
|
|
4362
|
+
900: "#111C2B",
|
|
4363
|
+
950: "#0A1320"
|
|
4364
|
+
};
|
|
4365
|
+
const LIGHT_TOKENS = {
|
|
4366
|
+
ground: INK[25],
|
|
4367
|
+
surface: "#FFFFFF",
|
|
4368
|
+
surfaceMuted: INK[50],
|
|
4369
|
+
line: INK[100],
|
|
4370
|
+
text: INK[950],
|
|
4371
|
+
textMuted: INK[600],
|
|
4372
|
+
textSubtle: INK[500],
|
|
4373
|
+
action: BLUE[700],
|
|
4374
|
+
actionText: "#FFFFFF",
|
|
4375
|
+
accent: GOLD[500],
|
|
4376
|
+
overlay: "rgba(10,19,32,.55)",
|
|
4377
|
+
focusRing: BLUE[700]
|
|
4378
|
+
};
|
|
4379
|
+
const DARK_TOKENS = {
|
|
4380
|
+
ground: INK[950],
|
|
4381
|
+
surface: INK[900],
|
|
4382
|
+
surfaceMuted: INK[800],
|
|
4383
|
+
line: "#22334D",
|
|
4384
|
+
text: "#EEF3F9",
|
|
4385
|
+
textMuted: INK[300],
|
|
4386
|
+
textSubtle: INK[400],
|
|
4387
|
+
action: BLUE[500],
|
|
4388
|
+
actionText: "#FFFFFF",
|
|
4389
|
+
accent: GOLD[500],
|
|
4390
|
+
overlay: "rgba(10,19,32,.72)",
|
|
4391
|
+
focusRing: BLUE[400]
|
|
4392
|
+
};
|
|
4393
|
+
function contrastRatio(hexA, hexB) {
|
|
4394
|
+
const lumA = luminance(hexA);
|
|
4395
|
+
const lumB = luminance(hexB);
|
|
4396
|
+
const [hi, lo] = lumA > lumB ? [lumA, lumB] : [lumB, lumA];
|
|
4397
|
+
return (hi + 0.05) / (lo + 0.05);
|
|
4398
|
+
}
|
|
4399
|
+
function luminance(hex) {
|
|
4400
|
+
const [r, g, b] = parseHex(hex).map((v) => {
|
|
4401
|
+
const s = v / 255;
|
|
4402
|
+
return s <= 0.03928 ? s / 12.92 : ((s + 0.055) / 1.055) ** 2.4;
|
|
4403
|
+
});
|
|
4404
|
+
return 0.2126 * r + 0.7152 * g + 0.0722 * b;
|
|
4405
|
+
}
|
|
4406
|
+
function parseHex(hex) {
|
|
4407
|
+
let h = hex.trim().replace("#", "");
|
|
4408
|
+
if (h.length === 3) h = h.split("").map((c) => c + c).join("");
|
|
4409
|
+
if (!/^[0-9a-fA-F]{6}$/.test(h)) return [0, 0, 0];
|
|
4410
|
+
return [
|
|
4411
|
+
parseInt(h.slice(0, 2), 16),
|
|
4412
|
+
parseInt(h.slice(2, 4), 16),
|
|
4413
|
+
parseInt(h.slice(4, 6), 16)
|
|
4414
|
+
];
|
|
4415
|
+
}
|
|
4416
|
+
const ALLOWED_RADIUS = [8, 16, 24];
|
|
4417
|
+
function resolveTheme(options = {}) {
|
|
4418
|
+
const mode = resolveMode(options.theme);
|
|
4419
|
+
const tokens = mode === "dark" ? { ...DARK_TOKENS } : { ...LIGHT_TOKENS };
|
|
4420
|
+
let radius = 16;
|
|
4421
|
+
if (options.radius !== void 0) {
|
|
4422
|
+
if (ALLOWED_RADIUS.includes(options.radius)) {
|
|
4423
|
+
radius = options.radius;
|
|
4424
|
+
} else {
|
|
4425
|
+
console.warn(
|
|
4426
|
+
`[NeoFaceID SDK] radius ${options.radius} inválido — permitidos: 8, 16, 24. Usando 16.`
|
|
4427
|
+
);
|
|
4428
|
+
}
|
|
4429
|
+
}
|
|
4430
|
+
let accent = tokens.action;
|
|
4431
|
+
let accentFellBack = false;
|
|
4432
|
+
if (options.accent) {
|
|
4433
|
+
const ratio = contrastRatio(options.accent, "#FFFFFF");
|
|
4434
|
+
if (ratio >= 4.5) {
|
|
4435
|
+
accent = options.accent;
|
|
4436
|
+
} else {
|
|
4437
|
+
accentFellBack = true;
|
|
4438
|
+
console.warn(
|
|
4439
|
+
`[NeoFaceID SDK] accent ${options.accent} reprova AA vs branco (${ratio.toFixed(2)}:1). Usando ${BLUE[700]}.`
|
|
4440
|
+
);
|
|
4441
|
+
accent = BLUE[700];
|
|
4442
|
+
}
|
|
4443
|
+
}
|
|
4444
|
+
return { mode, tokens: { ...tokens, action: accent }, radius, accent, accentFellBack };
|
|
4445
|
+
}
|
|
4446
|
+
function resolveMode(theme) {
|
|
4447
|
+
if (theme === "dark") return "dark";
|
|
4448
|
+
if (theme === "light") return "light";
|
|
4449
|
+
if (typeof window !== "undefined" && typeof window.matchMedia === "function") {
|
|
4450
|
+
if (window.matchMedia("(prefers-color-scheme: dark)").matches) return "dark";
|
|
4451
|
+
}
|
|
4452
|
+
return "light";
|
|
4453
|
+
}
|
|
4454
|
+
const CSS_VAR = {
|
|
4455
|
+
ground: "--nfid-ground",
|
|
4456
|
+
surface: "--nfid-surface",
|
|
4457
|
+
surfaceMuted: "--nfid-surface-muted",
|
|
4458
|
+
line: "--nfid-line",
|
|
4459
|
+
text: "--nfid-text",
|
|
4460
|
+
textMuted: "--nfid-text-muted",
|
|
4461
|
+
textSubtle: "--nfid-text-subtle",
|
|
4462
|
+
action: "--nfid-action",
|
|
4463
|
+
actionText: "--nfid-action-text",
|
|
4464
|
+
accent: "--nfid-accent",
|
|
4465
|
+
overlay: "--nfid-overlay",
|
|
4466
|
+
focusRing: "--nfid-focus-ring",
|
|
4467
|
+
radius: "--nfid-radius"
|
|
4468
|
+
};
|
|
4469
|
+
const INJECTED_STYLE_ID = "neofaceid-focus-frame-tokens";
|
|
4470
|
+
function injectThemeStyles$1(options = {}) {
|
|
4471
|
+
const resolved = resolveTheme(options);
|
|
4472
|
+
if (typeof document === "undefined") return resolved;
|
|
4473
|
+
const css = buildRootCss(resolved);
|
|
4474
|
+
const existing = document.getElementById(INJECTED_STYLE_ID);
|
|
4475
|
+
if (existing) {
|
|
4476
|
+
if (existing.textContent !== css) existing.textContent = css;
|
|
4477
|
+
return resolved;
|
|
4478
|
+
}
|
|
4479
|
+
const style = document.createElement("style");
|
|
4480
|
+
style.id = INJECTED_STYLE_ID;
|
|
4481
|
+
style.textContent = css;
|
|
4482
|
+
document.head.appendChild(style);
|
|
4483
|
+
return resolved;
|
|
4484
|
+
}
|
|
4485
|
+
function buildRootCss(theme) {
|
|
4486
|
+
const t = theme.tokens;
|
|
4487
|
+
return `.neofaceid-root {
|
|
4488
|
+
${CSS_VAR.ground}: ${t.ground};
|
|
4489
|
+
${CSS_VAR.surface}: ${t.surface};
|
|
4490
|
+
${CSS_VAR.surfaceMuted}: ${t.surfaceMuted};
|
|
4491
|
+
${CSS_VAR.line}: ${t.line};
|
|
4492
|
+
${CSS_VAR.text}: ${t.text};
|
|
4493
|
+
${CSS_VAR.textMuted}: ${t.textMuted};
|
|
4494
|
+
${CSS_VAR.textSubtle}: ${t.textSubtle};
|
|
4495
|
+
${CSS_VAR.action}: ${t.action};
|
|
4496
|
+
${CSS_VAR.actionText}: ${t.actionText};
|
|
4497
|
+
${CSS_VAR.accent}: ${t.accent};
|
|
4498
|
+
${CSS_VAR.overlay}: ${t.overlay};
|
|
4499
|
+
${CSS_VAR.focusRing}: ${t.focusRing};
|
|
4500
|
+
${CSS_VAR.radius}: ${theme.radius}px;
|
|
4501
|
+
color: var(${CSS_VAR.text});
|
|
4502
|
+
font-family: inherit;
|
|
4503
|
+
}
|
|
4504
|
+
.neofaceid-root :focus-visible {
|
|
4505
|
+
outline: 2px solid var(${CSS_VAR.focusRing});
|
|
4506
|
+
outline-offset: 2px;
|
|
4507
|
+
}`;
|
|
4508
|
+
}
|
|
4509
|
+
function injectScopedStyles$1(id, css) {
|
|
4510
|
+
if (typeof document === "undefined") return;
|
|
4511
|
+
const existing = document.getElementById(id);
|
|
4512
|
+
if (existing) {
|
|
4513
|
+
if (existing.textContent !== css) existing.textContent = css;
|
|
4514
|
+
return;
|
|
4515
|
+
}
|
|
4516
|
+
const style = document.createElement("style");
|
|
4517
|
+
style.id = id;
|
|
4518
|
+
style.textContent = css;
|
|
4519
|
+
document.head.appendChild(style);
|
|
4520
|
+
}
|
|
4345
4521
|
const __vite_import_meta_env__ = {};
|
|
4346
4522
|
const ENVIRONMENT_URLS = {
|
|
4347
4523
|
development: "http://localhost:8000",
|
|
4348
4524
|
sandbox: "https://sandbox-core.neofaceid.com",
|
|
4349
4525
|
production: "https://core.neofaceid.com.br"
|
|
4350
4526
|
};
|
|
4351
|
-
|
|
4352
|
-
|
|
4353
|
-
|
|
4354
|
-
|
|
4355
|
-
|
|
4356
|
-
|
|
4357
|
-
|
|
4527
|
+
const DEFAULT_LOCALE = "pt-BR";
|
|
4528
|
+
const DEFAULT_RADIUS = 16;
|
|
4529
|
+
const DEFAULT_THEME = "light";
|
|
4530
|
+
const ALLOWED_RADII = [8, 16, 24];
|
|
4531
|
+
function makeDefaultConfig() {
|
|
4532
|
+
return {
|
|
4533
|
+
baseUrl: ENVIRONMENT_URLS.sandbox,
|
|
4534
|
+
applicationToken: null,
|
|
4535
|
+
environment: "sandbox",
|
|
4536
|
+
initialized: false,
|
|
4537
|
+
appName: null,
|
|
4538
|
+
accent: null,
|
|
4539
|
+
radius: DEFAULT_RADIUS,
|
|
4540
|
+
theme: DEFAULT_THEME,
|
|
4541
|
+
locale: DEFAULT_LOCALE,
|
|
4542
|
+
resolvedTheme: null
|
|
4543
|
+
};
|
|
4544
|
+
}
|
|
4545
|
+
let globalConfig = makeDefaultConfig();
|
|
4358
4546
|
function init(options = {}) {
|
|
4359
|
-
const { environment, baseUrl, applicationToken } = options;
|
|
4547
|
+
const { environment, baseUrl, applicationToken, appName, accent, radius, theme, locale } = options;
|
|
4360
4548
|
if (baseUrl) {
|
|
4361
4549
|
globalConfig.baseUrl = baseUrl;
|
|
4362
4550
|
globalConfig.environment = "custom";
|
|
@@ -4383,9 +4571,40 @@ function init(options = {}) {
|
|
|
4383
4571
|
"[NeoFaceID SDK] applicationToken vazio em init() — 401 esperado em chamadas autenticadas."
|
|
4384
4572
|
);
|
|
4385
4573
|
}
|
|
4574
|
+
if (appName && appName.trim()) {
|
|
4575
|
+
globalConfig.appName = appName.trim();
|
|
4576
|
+
} else if (appName !== void 0) {
|
|
4577
|
+
console.warn(
|
|
4578
|
+
'[NeoFaceID SDK] init({ appName }) vazio — modais cairão para o fallback "sua aplicação".'
|
|
4579
|
+
);
|
|
4580
|
+
}
|
|
4581
|
+
if (radius !== void 0) {
|
|
4582
|
+
if (ALLOWED_RADII.includes(radius)) {
|
|
4583
|
+
globalConfig.radius = radius;
|
|
4584
|
+
} else {
|
|
4585
|
+
console.warn(
|
|
4586
|
+
`[NeoFaceID SDK] radius ${radius} inválido em init() — permitidos: 8, 16, 24. Usando 16.`
|
|
4587
|
+
);
|
|
4588
|
+
globalConfig.radius = DEFAULT_RADIUS;
|
|
4589
|
+
}
|
|
4590
|
+
}
|
|
4591
|
+
if (theme) globalConfig.theme = theme;
|
|
4592
|
+
if (locale) globalConfig.locale = locale;
|
|
4593
|
+
if (accent !== void 0) globalConfig.accent = accent;
|
|
4594
|
+
const resolved = resolveTheme({
|
|
4595
|
+
accent: globalConfig.accent ?? void 0,
|
|
4596
|
+
radius: globalConfig.radius,
|
|
4597
|
+
theme: globalConfig.theme
|
|
4598
|
+
});
|
|
4599
|
+
globalConfig.resolvedTheme = resolved;
|
|
4600
|
+
injectThemeStyles$1({
|
|
4601
|
+
accent: globalConfig.accent ?? void 0,
|
|
4602
|
+
radius: globalConfig.radius,
|
|
4603
|
+
theme: globalConfig.theme
|
|
4604
|
+
});
|
|
4386
4605
|
globalConfig.initialized = true;
|
|
4387
4606
|
console.log(
|
|
4388
|
-
`[NeoFaceID SDK] Inicializado
|
|
4607
|
+
`[NeoFaceID SDK] Inicializado — Ambiente: ${globalConfig.environment}, URL: ${globalConfig.baseUrl}, appName: ${globalConfig.appName ?? "(vazio)"}, theme: ${resolved.mode}, radius: ${globalConfig.radius}`
|
|
4389
4608
|
);
|
|
4390
4609
|
}
|
|
4391
4610
|
function getBaseUrl() {
|
|
@@ -4406,6 +4625,25 @@ function isInitialized() {
|
|
|
4406
4625
|
function getConfig() {
|
|
4407
4626
|
return { ...globalConfig };
|
|
4408
4627
|
}
|
|
4628
|
+
function getAppName() {
|
|
4629
|
+
return globalConfig.appName;
|
|
4630
|
+
}
|
|
4631
|
+
function getAccent() {
|
|
4632
|
+
return globalConfig.accent;
|
|
4633
|
+
}
|
|
4634
|
+
function getRadius() {
|
|
4635
|
+
return globalConfig.radius;
|
|
4636
|
+
}
|
|
4637
|
+
function getTheme() {
|
|
4638
|
+
return globalConfig.theme;
|
|
4639
|
+
}
|
|
4640
|
+
function getResolvedThemeMode() {
|
|
4641
|
+
var _a2;
|
|
4642
|
+
return ((_a2 = globalConfig.resolvedTheme) == null ? void 0 : _a2.mode) ?? (globalConfig.theme === "dark" ? "dark" : "light");
|
|
4643
|
+
}
|
|
4644
|
+
function getLocale() {
|
|
4645
|
+
return globalConfig.locale;
|
|
4646
|
+
}
|
|
4409
4647
|
const getApiBaseUrl = () => getBaseUrl();
|
|
4410
4648
|
const REQUEST_TIMEOUT = 1e4;
|
|
4411
4649
|
const ensureSecureContext = () => {
|
|
@@ -6042,7 +6280,7 @@ const styles = {
|
|
|
6042
6280
|
padding: "12px 24px",
|
|
6043
6281
|
borderRadius: "24px",
|
|
6044
6282
|
border: "none",
|
|
6045
|
-
backgroundColor: "#
|
|
6283
|
+
backgroundColor: "#0059C4",
|
|
6046
6284
|
color: "white",
|
|
6047
6285
|
fontSize: "16px",
|
|
6048
6286
|
fontWeight: "bold",
|
|
@@ -6156,6 +6394,9 @@ function FaceCaptureModal({
|
|
|
6156
6394
|
};
|
|
6157
6395
|
detectFaces();
|
|
6158
6396
|
};
|
|
6397
|
+
useEffect(() => {
|
|
6398
|
+
injectThemeStyles$1();
|
|
6399
|
+
}, []);
|
|
6159
6400
|
useEffect(() => {
|
|
6160
6401
|
const loadModels = async () => {
|
|
6161
6402
|
try {
|
|
@@ -6243,7 +6484,7 @@ function FaceCaptureModal({
|
|
|
6243
6484
|
dispatch({ type: "RESET" });
|
|
6244
6485
|
setLivenessAttempts(0);
|
|
6245
6486
|
};
|
|
6246
|
-
return /* @__PURE__ */ jsxs("div", { style: styles.overlay, children: [
|
|
6487
|
+
return /* @__PURE__ */ jsxs("div", { className: "neofaceid-root", style: styles.overlay, children: [
|
|
6247
6488
|
/* @__PURE__ */ jsx("style", { children: keyframes }),
|
|
6248
6489
|
/* @__PURE__ */ jsx("style", { children: mediaStyles }),
|
|
6249
6490
|
/* @__PURE__ */ jsxs("div", { style: styles.modal, className: "modal", children: [
|
|
@@ -6308,9 +6549,10 @@ class ForgotPasswordModal {
|
|
|
6308
6549
|
}
|
|
6309
6550
|
open() {
|
|
6310
6551
|
if (this.modalElement) return;
|
|
6552
|
+
injectThemeStyles$1();
|
|
6311
6553
|
this.addStyles();
|
|
6312
6554
|
this.modalElement = document.createElement("div");
|
|
6313
|
-
this.modalElement.className = "neoface-forgot-modal";
|
|
6555
|
+
this.modalElement.className = "neofaceid-root neoface-forgot-modal";
|
|
6314
6556
|
this.renderEmailForm();
|
|
6315
6557
|
document.body.appendChild(this.modalElement);
|
|
6316
6558
|
}
|
|
@@ -6327,10 +6569,10 @@ class ForgotPasswordModal {
|
|
|
6327
6569
|
<div class="neoface-forgot-content">
|
|
6328
6570
|
<div class="neoface-forgot-icon">
|
|
6329
6571
|
<svg viewBox="0 0 64 64" fill="none" xmlns="http://www.w3.org/2000/svg">
|
|
6330
|
-
<circle cx="32" cy="32" r="28" stroke="#
|
|
6331
|
-
<rect x="22" y="28" width="20" height="16" rx="3" stroke="#
|
|
6332
|
-
<path d="M26 28v-4a6 6 0 0 1 12 0v4" stroke="#
|
|
6333
|
-
<circle cx="32" cy="36" r="2" fill="#
|
|
6572
|
+
<circle cx="32" cy="32" r="28" stroke="#0059C4" stroke-width="3" fill="none"/>
|
|
6573
|
+
<rect x="22" y="28" width="20" height="16" rx="3" stroke="#0059C4" stroke-width="2.5" fill="none"/>
|
|
6574
|
+
<path d="M26 28v-4a6 6 0 0 1 12 0v4" stroke="#0059C4" stroke-width="2.5" stroke-linecap="round"/>
|
|
6575
|
+
<circle cx="32" cy="36" r="2" fill="#0059C4"/>
|
|
6334
6576
|
</svg>
|
|
6335
6577
|
</div>
|
|
6336
6578
|
|
|
@@ -6376,8 +6618,8 @@ class ForgotPasswordModal {
|
|
|
6376
6618
|
content.innerHTML = `
|
|
6377
6619
|
<div class="neoface-forgot-success-icon">
|
|
6378
6620
|
<svg viewBox="0 0 64 64" fill="none" xmlns="http://www.w3.org/2000/svg">
|
|
6379
|
-
<circle cx="32" cy="32" r="28" stroke="#
|
|
6380
|
-
<path d="M20 32 L28 40 L44 24" stroke="#
|
|
6621
|
+
<circle cx="32" cy="32" r="28" stroke="#0E9F6E" stroke-width="3" fill="none"/>
|
|
6622
|
+
<path d="M20 32 L28 40 L44 24" stroke="#0E9F6E" stroke-width="3" stroke-linecap="round" stroke-linejoin="round"/>
|
|
6381
6623
|
</svg>
|
|
6382
6624
|
</div>
|
|
6383
6625
|
|
|
@@ -6429,9 +6671,7 @@ class ForgotPasswordModal {
|
|
|
6429
6671
|
addStyles() {
|
|
6430
6672
|
const styleId = "neoface-forgot-password-modal-styles";
|
|
6431
6673
|
if (document.getElementById(styleId)) return;
|
|
6432
|
-
|
|
6433
|
-
style.id = styleId;
|
|
6434
|
-
style.textContent = `
|
|
6674
|
+
injectScopedStyles$1(styleId, `
|
|
6435
6675
|
.neoface-forgot-modal {
|
|
6436
6676
|
position: fixed;
|
|
6437
6677
|
top: 0;
|
|
@@ -6439,7 +6679,7 @@ class ForgotPasswordModal {
|
|
|
6439
6679
|
width: 100%;
|
|
6440
6680
|
height: 100%;
|
|
6441
6681
|
z-index: 10003;
|
|
6442
|
-
font-family:
|
|
6682
|
+
font-family: inherit;
|
|
6443
6683
|
}
|
|
6444
6684
|
|
|
6445
6685
|
.neoface-forgot-overlay {
|
|
@@ -6465,7 +6705,7 @@ class ForgotPasswordModal {
|
|
|
6465
6705
|
}
|
|
6466
6706
|
|
|
6467
6707
|
.neoface-forgot-content {
|
|
6468
|
-
background: linear-gradient(135deg, #
|
|
6708
|
+
background: linear-gradient(135deg, #0A1320 0%, #111C2B 100%);
|
|
6469
6709
|
border-radius: 20px;
|
|
6470
6710
|
padding: 32px;
|
|
6471
6711
|
max-width: 400px;
|
|
@@ -6545,8 +6785,8 @@ class ForgotPasswordModal {
|
|
|
6545
6785
|
|
|
6546
6786
|
.neoface-forgot-input:focus {
|
|
6547
6787
|
outline: none;
|
|
6548
|
-
border-color: #
|
|
6549
|
-
box-shadow: 0 0 0 3px rgba(
|
|
6788
|
+
border-color: #0059C4;
|
|
6789
|
+
box-shadow: 0 0 0 3px rgba(0, 89, 196, 0.2);
|
|
6550
6790
|
background: rgba(255, 255, 255, 0.12);
|
|
6551
6791
|
}
|
|
6552
6792
|
|
|
@@ -6555,19 +6795,19 @@ class ForgotPasswordModal {
|
|
|
6555
6795
|
padding: 14px 24px;
|
|
6556
6796
|
border-radius: 12px;
|
|
6557
6797
|
border: none;
|
|
6558
|
-
background: linear-gradient(135deg, #
|
|
6798
|
+
background: linear-gradient(135deg, #0059C4 0%, #00449A 100%);
|
|
6559
6799
|
color: white;
|
|
6560
6800
|
font-size: 16px;
|
|
6561
6801
|
font-weight: 600;
|
|
6562
6802
|
cursor: pointer;
|
|
6563
6803
|
transition: all 0.2s;
|
|
6564
|
-
box-shadow: 0 4px 16px rgba(
|
|
6804
|
+
box-shadow: 0 4px 16px rgba(0, 89, 196, 0.3);
|
|
6565
6805
|
font-family: inherit;
|
|
6566
6806
|
}
|
|
6567
6807
|
|
|
6568
6808
|
.neoface-forgot-btn-primary:hover:not(:disabled) {
|
|
6569
6809
|
transform: translateY(-2px);
|
|
6570
|
-
box-shadow: 0 8px 24px rgba(
|
|
6810
|
+
box-shadow: 0 8px 24px rgba(0, 89, 196, 0.4);
|
|
6571
6811
|
}
|
|
6572
6812
|
|
|
6573
6813
|
.neoface-forgot-btn-primary:disabled {
|
|
@@ -6626,8 +6866,7 @@ class ForgotPasswordModal {
|
|
|
6626
6866
|
font-size: 20px;
|
|
6627
6867
|
}
|
|
6628
6868
|
}
|
|
6629
|
-
|
|
6630
|
-
document.head.appendChild(style);
|
|
6869
|
+
`);
|
|
6631
6870
|
}
|
|
6632
6871
|
}
|
|
6633
6872
|
const modalReducer = (state, action) => {
|
|
@@ -6750,6 +6989,9 @@ function BiometricRegistrationModal({
|
|
|
6750
6989
|
"ok"
|
|
6751
6990
|
);
|
|
6752
6991
|
const [cameraReady, setCameraReady] = useState(false);
|
|
6992
|
+
useEffect(() => {
|
|
6993
|
+
injectThemeStyles$1();
|
|
6994
|
+
}, []);
|
|
6753
6995
|
useEffect(() => {
|
|
6754
6996
|
if (state.status === "liveness") {
|
|
6755
6997
|
const newStep = state.step;
|
|
@@ -7546,7 +7788,7 @@ function BiometricRegistrationModal({
|
|
|
7546
7788
|
}
|
|
7547
7789
|
|
|
7548
7790
|
.modal-content {
|
|
7549
|
-
background: linear-gradient(135deg, #
|
|
7791
|
+
background: linear-gradient(135deg, #0A1320 0%, #111C2B 100%);
|
|
7550
7792
|
border-radius: 24px;
|
|
7551
7793
|
width: 100%;
|
|
7552
7794
|
max-width: 420px;
|
|
@@ -7596,7 +7838,7 @@ function BiometricRegistrationModal({
|
|
|
7596
7838
|
|
|
7597
7839
|
.icon-wrapper {
|
|
7598
7840
|
display: inline-block;
|
|
7599
|
-
color: #
|
|
7841
|
+
color: #0059C4;
|
|
7600
7842
|
margin-bottom: 24px;
|
|
7601
7843
|
}
|
|
7602
7844
|
|
|
@@ -7617,7 +7859,7 @@ function BiometricRegistrationModal({
|
|
|
7617
7859
|
font-size: 28px;
|
|
7618
7860
|
font-weight: 700;
|
|
7619
7861
|
margin: 0 0 12px 0;
|
|
7620
|
-
background: linear-gradient(135deg, #
|
|
7862
|
+
background: linear-gradient(135deg, #0059C4 0%, #a78bfa 100%);
|
|
7621
7863
|
-webkit-background-clip: text;
|
|
7622
7864
|
-webkit-text-fill-color: transparent;
|
|
7623
7865
|
background-clip: text;
|
|
@@ -7662,7 +7904,7 @@ function BiometricRegistrationModal({
|
|
|
7662
7904
|
|
|
7663
7905
|
.req-icon.success {
|
|
7664
7906
|
background: rgba(16, 185, 129, 0.15);
|
|
7665
|
-
color: #
|
|
7907
|
+
color: #0E9F6E;
|
|
7666
7908
|
border: 1.5px solid rgba(16, 185, 129, 0.3);
|
|
7667
7909
|
}
|
|
7668
7910
|
|
|
@@ -7671,18 +7913,18 @@ function BiometricRegistrationModal({
|
|
|
7671
7913
|
padding: 16px 32px;
|
|
7672
7914
|
border-radius: 12px;
|
|
7673
7915
|
border: none;
|
|
7674
|
-
background: linear-gradient(135deg, #
|
|
7916
|
+
background: linear-gradient(135deg, #0059C4 0%, #00449A 100%);
|
|
7675
7917
|
color: white;
|
|
7676
7918
|
font-size: 16px;
|
|
7677
7919
|
font-weight: 600;
|
|
7678
7920
|
cursor: pointer;
|
|
7679
7921
|
transition: all 0.3s;
|
|
7680
|
-
box-shadow: 0 4px 16px rgba(
|
|
7922
|
+
box-shadow: 0 4px 16px rgba(0, 89, 196, 0.3);
|
|
7681
7923
|
}
|
|
7682
7924
|
|
|
7683
7925
|
.primary-button:hover {
|
|
7684
7926
|
transform: translateY(-2px);
|
|
7685
|
-
box-shadow: 0 8px 24px rgba(
|
|
7927
|
+
box-shadow: 0 8px 24px rgba(0, 89, 196, 0.4);
|
|
7686
7928
|
}
|
|
7687
7929
|
|
|
7688
7930
|
.primary-button:active {
|
|
@@ -7708,7 +7950,7 @@ function BiometricRegistrationModal({
|
|
|
7708
7950
|
|
|
7709
7951
|
.brand-name {
|
|
7710
7952
|
font-weight: 600;
|
|
7711
|
-
font-family:
|
|
7953
|
+
font-family: inherit;
|
|
7712
7954
|
color: #ffffff;
|
|
7713
7955
|
letter-spacing: 0.3px;
|
|
7714
7956
|
}
|
|
@@ -7757,7 +7999,7 @@ function BiometricRegistrationModal({
|
|
|
7757
7999
|
overflow: hidden;
|
|
7758
8000
|
position: relative;
|
|
7759
8001
|
/* Removida transição 'all' para evitar salto de zoom no início */
|
|
7760
|
-
box-shadow: 0 0 0 4px rgba(
|
|
8002
|
+
box-shadow: 0 0 0 4px rgba(0, 89, 196, 0.3);
|
|
7761
8003
|
background: #000;
|
|
7762
8004
|
}
|
|
7763
8005
|
|
|
@@ -7856,7 +8098,7 @@ function BiometricRegistrationModal({
|
|
|
7856
8098
|
|
|
7857
8099
|
.progress-fill {
|
|
7858
8100
|
height: 100%;
|
|
7859
|
-
background: linear-gradient(90deg, #
|
|
8101
|
+
background: linear-gradient(90deg, #0059C4 0%, #0E9F6E 100%);
|
|
7860
8102
|
border-radius: 2px;
|
|
7861
8103
|
transition: width 0.05s linear;
|
|
7862
8104
|
}
|
|
@@ -7922,8 +8164,8 @@ function BiometricRegistrationModal({
|
|
|
7922
8164
|
.spinner {
|
|
7923
8165
|
position: absolute;
|
|
7924
8166
|
inset: 0;
|
|
7925
|
-
border: 4px solid rgba(
|
|
7926
|
-
border-top-color: #
|
|
8167
|
+
border: 4px solid rgba(0, 89, 196, 0.2);
|
|
8168
|
+
border-top-color: #0059C4;
|
|
7927
8169
|
border-radius: 50%;
|
|
7928
8170
|
animation: spin 1s linear infinite;
|
|
7929
8171
|
}
|
|
@@ -7931,7 +8173,7 @@ function BiometricRegistrationModal({
|
|
|
7931
8173
|
.spinner-ring {
|
|
7932
8174
|
position: absolute;
|
|
7933
8175
|
inset: -10px;
|
|
7934
|
-
border: 2px solid rgba(
|
|
8176
|
+
border: 2px solid rgba(0, 89, 196, 0.1);
|
|
7935
8177
|
border-radius: 50%;
|
|
7936
8178
|
animation: pulseSpinner 2s ease-in-out infinite;
|
|
7937
8179
|
}
|
|
@@ -7967,7 +8209,7 @@ function BiometricRegistrationModal({
|
|
|
7967
8209
|
}
|
|
7968
8210
|
|
|
7969
8211
|
.success-icon {
|
|
7970
|
-
color: #
|
|
8212
|
+
color: #0E9F6E;
|
|
7971
8213
|
animation: scaleIn 0.6s ease-out;
|
|
7972
8214
|
}
|
|
7973
8215
|
|
|
@@ -8049,12 +8291,12 @@ function BiometricRegistrationModal({
|
|
|
8049
8291
|
}
|
|
8050
8292
|
|
|
8051
8293
|
.profile-main-icon {
|
|
8052
|
-
background: rgba(
|
|
8053
|
-
color: #
|
|
8294
|
+
background: rgba(0, 89, 196, 0.1);
|
|
8295
|
+
color: #0059C4;
|
|
8054
8296
|
padding: 20px;
|
|
8055
8297
|
border-radius: 50%;
|
|
8056
|
-
border: 2px solid rgba(
|
|
8057
|
-
box-shadow: 0 0 30px rgba(
|
|
8298
|
+
border: 2px solid rgba(0, 89, 196, 0.2);
|
|
8299
|
+
box-shadow: 0 0 30px rgba(0, 89, 196, 0.2);
|
|
8058
8300
|
}
|
|
8059
8301
|
|
|
8060
8302
|
.profile-main-icon svg {
|
|
@@ -8066,10 +8308,10 @@ function BiometricRegistrationModal({
|
|
|
8066
8308
|
position: absolute;
|
|
8067
8309
|
bottom: -4px;
|
|
8068
8310
|
right: -4px;
|
|
8069
|
-
background: #
|
|
8311
|
+
background: #0E9F6E;
|
|
8070
8312
|
border-radius: 50%;
|
|
8071
8313
|
padding: 4px;
|
|
8072
|
-
border: 3px solid #
|
|
8314
|
+
border: 3px solid #111C2B;
|
|
8073
8315
|
width: 24px;
|
|
8074
8316
|
height: 24px;
|
|
8075
8317
|
display: flex;
|
|
@@ -8127,7 +8369,7 @@ function BiometricRegistrationModal({
|
|
|
8127
8369
|
}
|
|
8128
8370
|
}
|
|
8129
8371
|
` }),
|
|
8130
|
-
/* @__PURE__ */ jsx("div", { className: "modal-overlay", children: /* @__PURE__ */ jsxs("div", { className: "modal-content", children: [
|
|
8372
|
+
/* @__PURE__ */ jsx("div", { className: "neofaceid-root modal-overlay", children: /* @__PURE__ */ jsxs("div", { className: "modal-content", children: [
|
|
8131
8373
|
/* @__PURE__ */ jsx("button", { type: "button", className: "close-button", onClick: onClose, children: "×" }),
|
|
8132
8374
|
state.status === "liveness" && renderLivenessDetection(),
|
|
8133
8375
|
state.status === "camera-loading" && renderCameraLoading(),
|
|
@@ -8238,18 +8480,18 @@ function ConsentModalComponent({
|
|
|
8238
8480
|
}
|
|
8239
8481
|
.neofaceid-consent-overlay {
|
|
8240
8482
|
position: fixed; inset: 0;
|
|
8241
|
-
background:
|
|
8483
|
+
background: var(--nfid-overlay);
|
|
8242
8484
|
backdrop-filter: blur(3px);
|
|
8243
8485
|
-webkit-backdrop-filter: blur(3px);
|
|
8244
8486
|
display: flex; align-items: center; justify-content: center;
|
|
8245
8487
|
z-index: 10001; padding: 20px;
|
|
8246
8488
|
animation: neofaceidConsentFadeIn 200ms ease-out;
|
|
8247
8489
|
font-family: inherit;
|
|
8248
|
-
color:
|
|
8490
|
+
color: var(--nfid-text);
|
|
8249
8491
|
}
|
|
8250
8492
|
.neofaceid-consent-modal {
|
|
8251
|
-
background:
|
|
8252
|
-
border-radius: 16px;
|
|
8493
|
+
background: var(--nfid-surface);
|
|
8494
|
+
border-radius: var(--nfid-radius, 16px);
|
|
8253
8495
|
padding: 28px;
|
|
8254
8496
|
max-width: 440px;
|
|
8255
8497
|
width: 100%;
|
|
@@ -8266,7 +8508,7 @@ function ConsentModalComponent({
|
|
|
8266
8508
|
.neofaceid-consent-appname {
|
|
8267
8509
|
font-size: 17px;
|
|
8268
8510
|
font-weight: 700;
|
|
8269
|
-
color:
|
|
8511
|
+
color: var(--nfid-text);
|
|
8270
8512
|
line-height: 1.2;
|
|
8271
8513
|
}
|
|
8272
8514
|
.neofaceid-consent-brand-caption {
|
|
@@ -8274,19 +8516,19 @@ function ConsentModalComponent({
|
|
|
8274
8516
|
font-weight: 700;
|
|
8275
8517
|
letter-spacing: 0.09em;
|
|
8276
8518
|
text-transform: uppercase;
|
|
8277
|
-
color:
|
|
8519
|
+
color: var(--nfid-text-subtle);
|
|
8278
8520
|
}
|
|
8279
8521
|
.neofaceid-consent-title {
|
|
8280
8522
|
font-size: 22px;
|
|
8281
8523
|
font-weight: 700;
|
|
8282
|
-
color:
|
|
8524
|
+
color: var(--nfid-text);
|
|
8283
8525
|
margin: 0 0 8px;
|
|
8284
8526
|
line-height: 1.25;
|
|
8285
8527
|
letter-spacing: -0.015em;
|
|
8286
8528
|
}
|
|
8287
8529
|
.neofaceid-consent-duration {
|
|
8288
8530
|
font-size: 14px;
|
|
8289
|
-
color:
|
|
8531
|
+
color: var(--nfid-text-muted);
|
|
8290
8532
|
margin: 0 0 20px;
|
|
8291
8533
|
line-height: 1.5;
|
|
8292
8534
|
}
|
|
@@ -8303,30 +8545,30 @@ function ConsentModalComponent({
|
|
|
8303
8545
|
}
|
|
8304
8546
|
.neofaceid-consent-bullet-icon {
|
|
8305
8547
|
flex-shrink: 0;
|
|
8306
|
-
color:
|
|
8548
|
+
color: var(--nfid-action);
|
|
8307
8549
|
margin-top: 2px;
|
|
8308
8550
|
}
|
|
8309
8551
|
.neofaceid-consent-bullet-title {
|
|
8310
8552
|
font-size: 14px;
|
|
8311
8553
|
font-weight: 600;
|
|
8312
|
-
color:
|
|
8554
|
+
color: var(--nfid-text);
|
|
8313
8555
|
margin: 0 0 2px;
|
|
8314
8556
|
line-height: 1.35;
|
|
8315
8557
|
}
|
|
8316
8558
|
.neofaceid-consent-bullet-body {
|
|
8317
8559
|
font-size: 13px;
|
|
8318
|
-
color:
|
|
8560
|
+
color: var(--nfid-text-muted);
|
|
8319
8561
|
margin: 0;
|
|
8320
8562
|
line-height: 1.45;
|
|
8321
8563
|
}
|
|
8322
8564
|
.neofaceid-consent-link {
|
|
8323
8565
|
display: inline-block;
|
|
8324
8566
|
font-size: 13px;
|
|
8325
|
-
color:
|
|
8567
|
+
color: var(--nfid-action);
|
|
8326
8568
|
text-decoration: underline;
|
|
8327
8569
|
margin-bottom: 20px;
|
|
8328
8570
|
}
|
|
8329
|
-
.neofaceid-consent-link:hover {
|
|
8571
|
+
.neofaceid-consent-link:hover { opacity: 0.85; }
|
|
8330
8572
|
.neofaceid-consent-actions {
|
|
8331
8573
|
display: flex;
|
|
8332
8574
|
flex-direction: column;
|
|
@@ -8335,7 +8577,7 @@ function ConsentModalComponent({
|
|
|
8335
8577
|
.neofaceid-consent-button {
|
|
8336
8578
|
min-height: 44px;
|
|
8337
8579
|
padding: 12px 20px;
|
|
8338
|
-
border-radius: 16px;
|
|
8580
|
+
border-radius: var(--nfid-radius, 16px);
|
|
8339
8581
|
border: none;
|
|
8340
8582
|
font-size: 15px;
|
|
8341
8583
|
font-weight: 600;
|
|
@@ -8344,32 +8586,32 @@ function ConsentModalComponent({
|
|
|
8344
8586
|
font-family: inherit;
|
|
8345
8587
|
}
|
|
8346
8588
|
.neofaceid-consent-button-primary {
|
|
8347
|
-
background:
|
|
8348
|
-
color:
|
|
8589
|
+
background: var(--nfid-action);
|
|
8590
|
+
color: var(--nfid-action-text);
|
|
8349
8591
|
}
|
|
8350
|
-
.neofaceid-consent-button-primary:hover {
|
|
8592
|
+
.neofaceid-consent-button-primary:hover { opacity: 0.92; }
|
|
8351
8593
|
.neofaceid-consent-button-primary:focus-visible {
|
|
8352
|
-
outline: 2px solid
|
|
8594
|
+
outline: 2px solid var(--nfid-focus-ring);
|
|
8353
8595
|
outline-offset: 2px;
|
|
8354
8596
|
}
|
|
8355
8597
|
.neofaceid-consent-button-ghost {
|
|
8356
8598
|
background: transparent;
|
|
8357
|
-
color:
|
|
8599
|
+
color: var(--nfid-text-muted);
|
|
8358
8600
|
}
|
|
8359
|
-
.neofaceid-consent-button-ghost:hover { background:
|
|
8601
|
+
.neofaceid-consent-button-ghost:hover { background: var(--nfid-surface-muted); }
|
|
8360
8602
|
.neofaceid-consent-footer {
|
|
8361
8603
|
display: flex;
|
|
8362
8604
|
justify-content: center;
|
|
8363
8605
|
margin-top: 20px;
|
|
8364
8606
|
padding-top: 16px;
|
|
8365
|
-
border-top: 1px solid
|
|
8607
|
+
border-top: 1px solid var(--nfid-line);
|
|
8366
8608
|
}
|
|
8367
8609
|
.neofaceid-consent-seal {
|
|
8368
8610
|
font-size: 11px;
|
|
8369
8611
|
font-weight: 700;
|
|
8370
8612
|
letter-spacing: 0.09em;
|
|
8371
8613
|
text-transform: uppercase;
|
|
8372
|
-
color:
|
|
8614
|
+
color: var(--nfid-text-subtle);
|
|
8373
8615
|
}
|
|
8374
8616
|
@media (max-width: 640px) {
|
|
8375
8617
|
.neofaceid-consent-modal { padding: 22px; border-radius: 16px; }
|
|
@@ -8380,7 +8622,7 @@ function ConsentModalComponent({
|
|
|
8380
8622
|
.neofaceid-consent-modal { animation: none; }
|
|
8381
8623
|
}
|
|
8382
8624
|
` }),
|
|
8383
|
-
/* @__PURE__ */ jsx("div", { className: "neofaceid-consent-overlay", role: "dialog", "aria-modal": "true", "aria-labelledby": "neofaceid-consent-title", children: /* @__PURE__ */ jsxs("div", { className: "neofaceid-consent-modal", children: [
|
|
8625
|
+
/* @__PURE__ */ jsx("div", { className: "neofaceid-root neofaceid-consent-overlay", role: "dialog", "aria-modal": "true", "aria-labelledby": "neofaceid-consent-title", children: /* @__PURE__ */ jsxs("div", { className: "neofaceid-consent-modal", children: [
|
|
8384
8626
|
/* @__PURE__ */ jsxs("div", { className: "neofaceid-consent-header", children: [
|
|
8385
8627
|
/* @__PURE__ */ jsx("span", { className: "neofaceid-consent-appname", children: appName }),
|
|
8386
8628
|
/* @__PURE__ */ jsx("span", { className: "neofaceid-consent-brand-caption", children: "NeoFaceID" })
|
|
@@ -8455,6 +8697,7 @@ class ConsentModal {
|
|
|
8455
8697
|
}
|
|
8456
8698
|
show(props) {
|
|
8457
8699
|
if (this.container) return;
|
|
8700
|
+
injectThemeStyles$1();
|
|
8458
8701
|
this.container = document.createElement("div");
|
|
8459
8702
|
this.container.id = "neofaceid-consent-modal-container";
|
|
8460
8703
|
document.body.appendChild(this.container);
|
|
@@ -8487,10 +8730,11 @@ class ConsentModal {
|
|
|
8487
8730
|
}
|
|
8488
8731
|
const DEFAULT_APP_NAME = "sua aplicação";
|
|
8489
8732
|
function requestConsent(info = {}) {
|
|
8490
|
-
const
|
|
8491
|
-
|
|
8733
|
+
const globalAppName = getAppName();
|
|
8734
|
+
const appName = info.appName ?? globalAppName ?? DEFAULT_APP_NAME;
|
|
8735
|
+
if (!info.appName && !globalAppName) {
|
|
8492
8736
|
console.warn(
|
|
8493
|
-
'[NeoFaceID SDK] requestConsent
|
|
8737
|
+
'[NeoFaceID SDK] requestConsent sem appName — usando fallback "sua aplicação". Passe via NeoFaceSDK.init({ appName }) ou opts do caller.'
|
|
8494
8738
|
);
|
|
8495
8739
|
}
|
|
8496
8740
|
const flow = info.flow ?? "verification";
|
|
@@ -8554,7 +8798,7 @@ class BiometricCaptureModal {
|
|
|
8554
8798
|
*/
|
|
8555
8799
|
async createModal() {
|
|
8556
8800
|
this.modal = document.createElement("div");
|
|
8557
|
-
this.modal.className = "neofaceid-biometric-modal";
|
|
8801
|
+
this.modal.className = "neofaceid-root neofaceid-biometric-modal";
|
|
8558
8802
|
const title = this.options.title || this.getDefaultTitle();
|
|
8559
8803
|
const subtitle = this.options.subtitle || this.getDefaultSubtitle();
|
|
8560
8804
|
this.modal.innerHTML = `
|
|
@@ -8587,6 +8831,7 @@ class BiometricCaptureModal {
|
|
|
8587
8831
|
</div>
|
|
8588
8832
|
</div>
|
|
8589
8833
|
`;
|
|
8834
|
+
injectThemeStyles$1();
|
|
8590
8835
|
this.addStyles();
|
|
8591
8836
|
this.addEventListeners();
|
|
8592
8837
|
document.body.appendChild(this.modal);
|
|
@@ -8783,9 +9028,7 @@ class BiometricCaptureModal {
|
|
|
8783
9028
|
if (existingStyles) {
|
|
8784
9029
|
existingStyles.remove();
|
|
8785
9030
|
}
|
|
8786
|
-
|
|
8787
|
-
style.id = styleId;
|
|
8788
|
-
style.textContent = `
|
|
9031
|
+
injectScopedStyles$1(styleId, `
|
|
8789
9032
|
.neofaceid-biometric-modal {
|
|
8790
9033
|
position: fixed;
|
|
8791
9034
|
top: 0;
|
|
@@ -8793,7 +9036,7 @@ class BiometricCaptureModal {
|
|
|
8793
9036
|
width: 100%;
|
|
8794
9037
|
height: 100%;
|
|
8795
9038
|
z-index: 10000;
|
|
8796
|
-
font-family:
|
|
9039
|
+
font-family: inherit;
|
|
8797
9040
|
}
|
|
8798
9041
|
|
|
8799
9042
|
.neofaceid-modal-overlay {
|
|
@@ -8901,7 +9144,7 @@ class BiometricCaptureModal {
|
|
|
8901
9144
|
.neofaceid-frame {
|
|
8902
9145
|
width: 200px;
|
|
8903
9146
|
height: 200px;
|
|
8904
|
-
border: 3px solid #
|
|
9147
|
+
border: 3px solid #0E9F6E;
|
|
8905
9148
|
border-radius: 50%;
|
|
8906
9149
|
box-shadow: 0 0 0 2px rgba(76, 175, 80, 0.3);
|
|
8907
9150
|
animation: pulse 2s infinite;
|
|
@@ -8967,7 +9210,7 @@ class BiometricCaptureModal {
|
|
|
8967
9210
|
}
|
|
8968
9211
|
|
|
8969
9212
|
.neofaceid-capture-btn {
|
|
8970
|
-
background: #
|
|
9213
|
+
background: #0E9F6E;
|
|
8971
9214
|
color: white;
|
|
8972
9215
|
}
|
|
8973
9216
|
|
|
@@ -9002,8 +9245,7 @@ class BiometricCaptureModal {
|
|
|
9002
9245
|
height: 150px;
|
|
9003
9246
|
}
|
|
9004
9247
|
}
|
|
9005
|
-
|
|
9006
|
-
document.head.appendChild(style);
|
|
9248
|
+
`);
|
|
9007
9249
|
}
|
|
9008
9250
|
}
|
|
9009
9251
|
class BiometricStatusOverlay {
|
|
@@ -9058,7 +9300,7 @@ class BiometricStatusOverlay {
|
|
|
9058
9300
|
z-index: 10000;
|
|
9059
9301
|
pointer-events: none;
|
|
9060
9302
|
animation: neofaceid-fadeIn 0.3s ease-out;
|
|
9061
|
-
font-family:
|
|
9303
|
+
font-family: inherit;
|
|
9062
9304
|
}
|
|
9063
9305
|
|
|
9064
9306
|
.neofaceid-overlay-container.fade-out {
|
|
@@ -9088,11 +9330,11 @@ class BiometricStatusOverlay {
|
|
|
9088
9330
|
height: 80px;
|
|
9089
9331
|
object-fit: contain;
|
|
9090
9332
|
transition: all 0.5s ease;
|
|
9091
|
-
filter: drop-shadow(0 4px 12px rgba(
|
|
9333
|
+
filter: drop-shadow(0 4px 12px rgba(0, 89, 196, 0.3));
|
|
9092
9334
|
}
|
|
9093
9335
|
|
|
9094
9336
|
/* Cores por estado */
|
|
9095
|
-
.neofaceid-state-preparing .neofaceid-logo { filter: drop-shadow(0 0 15px rgba(
|
|
9337
|
+
.neofaceid-state-preparing .neofaceid-logo { filter: drop-shadow(0 0 15px rgba(0, 89, 196, 0.4)); }
|
|
9096
9338
|
.neofaceid-state-detecting .neofaceid-logo { filter: hue-rotate(180deg) drop-shadow(0 0 15px rgba(59, 130, 246, 0.6)); }
|
|
9097
9339
|
.neofaceid-state-waiting-for-face .neofaceid-logo { filter: hue-rotate(30deg) drop-shadow(0 0 15px rgba(251, 146, 60, 0.6)); }
|
|
9098
9340
|
.neofaceid-state-capturing .neofaceid-logo { filter: hue-rotate(45deg) drop-shadow(0 0 15px rgba(245, 158, 11, 0.6)); }
|
|
@@ -9150,7 +9392,7 @@ class BiometricStatusOverlay {
|
|
|
9150
9392
|
.neofaceid-success-icon {
|
|
9151
9393
|
width: 80px;
|
|
9152
9394
|
height: 80px;
|
|
9153
|
-
color: #
|
|
9395
|
+
color: #0E9F6E;
|
|
9154
9396
|
animation: neofaceid-scaleIn 0.5s cubic-bezier(0.34, 1.56, 0.64, 1);
|
|
9155
9397
|
}
|
|
9156
9398
|
|
|
@@ -9300,142 +9542,132 @@ function FallbackPromptComponent({
|
|
|
9300
9542
|
.neofaceid-fallback-overlay {
|
|
9301
9543
|
position: fixed;
|
|
9302
9544
|
inset: 0;
|
|
9303
|
-
background:
|
|
9304
|
-
backdrop-filter: blur(
|
|
9545
|
+
background: var(--nfid-overlay);
|
|
9546
|
+
backdrop-filter: blur(3px);
|
|
9547
|
+
-webkit-backdrop-filter: blur(3px);
|
|
9305
9548
|
display: flex;
|
|
9306
9549
|
align-items: center;
|
|
9307
9550
|
justify-content: center;
|
|
9308
9551
|
z-index: 10001;
|
|
9309
9552
|
padding: 20px;
|
|
9310
9553
|
animation: fadeIn 0.3s ease-out;
|
|
9554
|
+
font-family: inherit;
|
|
9311
9555
|
}
|
|
9312
9556
|
|
|
9313
9557
|
.neofaceid-fallback-prompt {
|
|
9314
|
-
background:
|
|
9315
|
-
border-radius:
|
|
9316
|
-
padding:
|
|
9558
|
+
background: var(--nfid-surface);
|
|
9559
|
+
border-radius: var(--nfid-radius, 16px);
|
|
9560
|
+
padding: 28px;
|
|
9317
9561
|
max-width: 400px;
|
|
9318
9562
|
width: 100%;
|
|
9319
|
-
box-shadow: 0
|
|
9320
|
-
animation: slideUp 0.
|
|
9563
|
+
box-shadow: 0 1px 3px rgba(10, 19, 32, 0.08);
|
|
9564
|
+
animation: slideUp 0.32s cubic-bezier(.2,0,0,1);
|
|
9321
9565
|
text-align: center;
|
|
9566
|
+
box-sizing: border-box;
|
|
9322
9567
|
}
|
|
9323
9568
|
|
|
9569
|
+
/* Falha de captura é atenção (dourado), nunca crítico (vermelho). */
|
|
9324
9570
|
.neofaceid-fallback-icon {
|
|
9325
|
-
width:
|
|
9326
|
-
height:
|
|
9571
|
+
width: 56px;
|
|
9572
|
+
height: 56px;
|
|
9327
9573
|
margin: 0 auto 20px;
|
|
9328
|
-
color: #
|
|
9329
|
-
animation: scaleIn 0.4s ease-out;
|
|
9330
|
-
}
|
|
9331
|
-
|
|
9332
|
-
@keyframes scaleIn {
|
|
9333
|
-
0% {
|
|
9334
|
-
transform: scale(0);
|
|
9335
|
-
opacity: 0;
|
|
9336
|
-
}
|
|
9337
|
-
50% {
|
|
9338
|
-
transform: scale(1.1);
|
|
9339
|
-
}
|
|
9340
|
-
100% {
|
|
9341
|
-
transform: scale(1);
|
|
9342
|
-
opacity: 1;
|
|
9343
|
-
}
|
|
9574
|
+
color: #F1BE00;
|
|
9344
9575
|
}
|
|
9345
9576
|
|
|
9346
9577
|
.neofaceid-fallback-title {
|
|
9347
|
-
font-size:
|
|
9578
|
+
font-size: 20px;
|
|
9348
9579
|
font-weight: 700;
|
|
9349
|
-
color:
|
|
9350
|
-
margin: 0 0
|
|
9580
|
+
color: var(--nfid-text);
|
|
9581
|
+
margin: 0 0 8px 0;
|
|
9582
|
+
line-height: 1.25;
|
|
9351
9583
|
}
|
|
9352
9584
|
|
|
9353
9585
|
.neofaceid-fallback-message {
|
|
9354
|
-
font-size:
|
|
9355
|
-
color:
|
|
9356
|
-
margin: 0 0
|
|
9586
|
+
font-size: 14px;
|
|
9587
|
+
color: var(--nfid-text-muted);
|
|
9588
|
+
margin: 0 0 24px 0;
|
|
9357
9589
|
line-height: 1.5;
|
|
9358
9590
|
}
|
|
9359
9591
|
|
|
9360
9592
|
.neofaceid-fallback-actions {
|
|
9361
9593
|
display: flex;
|
|
9362
9594
|
flex-direction: column;
|
|
9363
|
-
gap:
|
|
9595
|
+
gap: 10px;
|
|
9364
9596
|
}
|
|
9365
9597
|
|
|
9366
9598
|
.neofaceid-fallback-button {
|
|
9367
|
-
|
|
9368
|
-
|
|
9599
|
+
min-height: 44px;
|
|
9600
|
+
padding: 12px 20px;
|
|
9601
|
+
border-radius: var(--nfid-radius, 16px);
|
|
9369
9602
|
border: none;
|
|
9370
|
-
font-size:
|
|
9603
|
+
font-size: 15px;
|
|
9371
9604
|
font-weight: 600;
|
|
9372
9605
|
cursor: pointer;
|
|
9373
|
-
transition:
|
|
9374
|
-
font-family:
|
|
9606
|
+
transition: background 120ms ease-out;
|
|
9607
|
+
font-family: inherit;
|
|
9375
9608
|
}
|
|
9376
9609
|
|
|
9377
9610
|
.neofaceid-fallback-button-primary {
|
|
9378
|
-
background:
|
|
9379
|
-
color:
|
|
9380
|
-
box-shadow: 0 4px 16px rgba(124, 58, 237, 0.3);
|
|
9381
|
-
}
|
|
9382
|
-
|
|
9383
|
-
.neofaceid-fallback-button-primary:hover {
|
|
9384
|
-
transform: translateY(-2px);
|
|
9385
|
-
box-shadow: 0 8px 24px rgba(124, 58, 237, 0.4);
|
|
9611
|
+
background: var(--nfid-action);
|
|
9612
|
+
color: var(--nfid-action-text);
|
|
9386
9613
|
}
|
|
9387
|
-
|
|
9388
|
-
.neofaceid-fallback-button-primary:
|
|
9389
|
-
|
|
9614
|
+
.neofaceid-fallback-button-primary:hover { opacity: 0.92; }
|
|
9615
|
+
.neofaceid-fallback-button-primary:focus-visible {
|
|
9616
|
+
outline: 2px solid var(--nfid-focus-ring);
|
|
9617
|
+
outline-offset: 2px;
|
|
9390
9618
|
}
|
|
9391
9619
|
|
|
9392
9620
|
.neofaceid-fallback-button-secondary {
|
|
9393
|
-
background:
|
|
9394
|
-
color:
|
|
9395
|
-
border: 1px solid
|
|
9396
|
-
}
|
|
9397
|
-
|
|
9398
|
-
.neofaceid-fallback-button-secondary:hover {
|
|
9399
|
-
background: rgba(255, 255, 255, 0.15);
|
|
9400
|
-
border-color: rgba(255, 255, 255, 0.3);
|
|
9621
|
+
background: var(--nfid-surface-muted);
|
|
9622
|
+
color: var(--nfid-text);
|
|
9623
|
+
border: 1px solid var(--nfid-line);
|
|
9401
9624
|
}
|
|
9625
|
+
.neofaceid-fallback-button-secondary:hover { opacity: 0.9; }
|
|
9402
9626
|
|
|
9403
9627
|
.neofaceid-fallback-button-ghost {
|
|
9404
9628
|
background: transparent;
|
|
9405
|
-
color:
|
|
9629
|
+
color: var(--nfid-text-muted);
|
|
9630
|
+
min-height: 44px;
|
|
9406
9631
|
padding: 10px;
|
|
9407
9632
|
}
|
|
9408
|
-
|
|
9409
9633
|
.neofaceid-fallback-button-ghost:hover {
|
|
9410
|
-
|
|
9411
|
-
background: rgba(255, 255, 255, 0.05);
|
|
9634
|
+
background: var(--nfid-surface-muted);
|
|
9412
9635
|
}
|
|
9413
9636
|
|
|
9414
9637
|
@media (max-width: 640px) {
|
|
9415
9638
|
.neofaceid-fallback-prompt {
|
|
9416
|
-
padding:
|
|
9417
|
-
border-radius: 16px;
|
|
9639
|
+
padding: 22px;
|
|
9418
9640
|
}
|
|
9419
|
-
|
|
9420
9641
|
.neofaceid-fallback-title {
|
|
9421
|
-
font-size:
|
|
9642
|
+
font-size: 18px;
|
|
9422
9643
|
}
|
|
9423
9644
|
}
|
|
9424
9645
|
` }),
|
|
9425
|
-
/* @__PURE__ */ jsx("div", { className: "neofaceid-fallback-overlay", children: /* @__PURE__ */ jsxs("div", { className: "neofaceid-fallback-prompt", children: [
|
|
9426
|
-
/* @__PURE__ */ jsx("div", { className: "neofaceid-fallback-icon", children: /* @__PURE__ */ jsxs("svg", { viewBox: "0 0 64 64", fill: "none", xmlns: "http://www.w3.org/2000/svg", children: [
|
|
9427
|
-
/* @__PURE__ */ jsx("circle", { cx: "32", cy: "32", r: "30", stroke: "currentColor", strokeWidth: "3", fill: "none" }),
|
|
9646
|
+
/* @__PURE__ */ jsx("div", { className: "neofaceid-root neofaceid-fallback-overlay", role: "dialog", "aria-modal": "true", children: /* @__PURE__ */ jsxs("div", { className: "neofaceid-fallback-prompt", children: [
|
|
9647
|
+
/* @__PURE__ */ jsx("div", { className: "neofaceid-fallback-icon", "aria-hidden": "true", children: /* @__PURE__ */ jsxs("svg", { viewBox: "0 0 64 64", fill: "none", xmlns: "http://www.w3.org/2000/svg", children: [
|
|
9428
9648
|
/* @__PURE__ */ jsx(
|
|
9429
9649
|
"path",
|
|
9430
9650
|
{
|
|
9431
|
-
d: "
|
|
9651
|
+
d: "M32 8 L58 54 H6 Z",
|
|
9652
|
+
stroke: "currentColor",
|
|
9653
|
+
strokeWidth: "3",
|
|
9654
|
+
strokeLinecap: "round",
|
|
9655
|
+
strokeLinejoin: "round",
|
|
9656
|
+
fill: "none"
|
|
9657
|
+
}
|
|
9658
|
+
),
|
|
9659
|
+
/* @__PURE__ */ jsx(
|
|
9660
|
+
"path",
|
|
9661
|
+
{
|
|
9662
|
+
d: "M32 26 V38",
|
|
9432
9663
|
stroke: "currentColor",
|
|
9433
9664
|
strokeWidth: "3",
|
|
9434
9665
|
strokeLinecap: "round"
|
|
9435
9666
|
}
|
|
9436
|
-
)
|
|
9667
|
+
),
|
|
9668
|
+
/* @__PURE__ */ jsx("circle", { cx: "32", cy: "45", r: "2", fill: "currentColor" })
|
|
9437
9669
|
] }) }),
|
|
9438
|
-
/* @__PURE__ */ jsx("h3", { className: "neofaceid-fallback-title", children: "
|
|
9670
|
+
/* @__PURE__ */ jsx("h3", { className: "neofaceid-fallback-title", children: "Vamos tentar de outro jeito" }),
|
|
9439
9671
|
/* @__PURE__ */ jsx("p", { className: "neofaceid-fallback-message", children: (error == null ? void 0 : error.getFriendlyMessage()) || "Não conseguimos reconhecer sua face. Tente novamente ou use email e senha." }),
|
|
9440
9672
|
/* @__PURE__ */ jsxs("div", { className: "neofaceid-fallback-actions", children: [
|
|
9441
9673
|
/* @__PURE__ */ jsx(
|
|
@@ -9490,6 +9722,7 @@ class FallbackPrompt {
|
|
|
9490
9722
|
if (this.container) {
|
|
9491
9723
|
return;
|
|
9492
9724
|
}
|
|
9725
|
+
injectThemeStyles$1();
|
|
9493
9726
|
this.container = document.createElement("div");
|
|
9494
9727
|
this.container.id = "neofaceid-fallback-prompt";
|
|
9495
9728
|
document.body.appendChild(this.container);
|
|
@@ -9563,9 +9796,10 @@ class EmailPasswordModal {
|
|
|
9563
9796
|
}
|
|
9564
9797
|
}
|
|
9565
9798
|
createModal() {
|
|
9799
|
+
injectThemeStyles$1();
|
|
9566
9800
|
this.addStyles();
|
|
9567
9801
|
this.modalElement = document.createElement("div");
|
|
9568
|
-
this.modalElement.className = "neoface-email-password-modal";
|
|
9802
|
+
this.modalElement.className = "neofaceid-root neoface-email-password-modal";
|
|
9569
9803
|
this.modalElement.innerHTML = `
|
|
9570
9804
|
<div class="neoface-email-modal-overlay">
|
|
9571
9805
|
<div class="neoface-email-modal-content">
|
|
@@ -9601,9 +9835,7 @@ class EmailPasswordModal {
|
|
|
9601
9835
|
if (existingStyles) {
|
|
9602
9836
|
return;
|
|
9603
9837
|
}
|
|
9604
|
-
|
|
9605
|
-
style.id = styleId;
|
|
9606
|
-
style.textContent = `
|
|
9838
|
+
injectScopedStyles$1(styleId, `
|
|
9607
9839
|
.neoface-email-password-modal {
|
|
9608
9840
|
position: fixed;
|
|
9609
9841
|
top: 0;
|
|
@@ -9611,7 +9843,7 @@ class EmailPasswordModal {
|
|
|
9611
9843
|
width: 100%;
|
|
9612
9844
|
height: 100%;
|
|
9613
9845
|
z-index: 10002;
|
|
9614
|
-
font-family:
|
|
9846
|
+
font-family: inherit;
|
|
9615
9847
|
}
|
|
9616
9848
|
|
|
9617
9849
|
.neoface-email-modal-overlay {
|
|
@@ -9643,7 +9875,7 @@ class EmailPasswordModal {
|
|
|
9643
9875
|
}
|
|
9644
9876
|
|
|
9645
9877
|
.neoface-email-modal-content {
|
|
9646
|
-
background: linear-gradient(135deg, #
|
|
9878
|
+
background: linear-gradient(135deg, #0A1320 0%, #111C2B 100%);
|
|
9647
9879
|
border-radius: 20px;
|
|
9648
9880
|
padding: 32px;
|
|
9649
9881
|
max-width: 400px;
|
|
@@ -9694,8 +9926,8 @@ class EmailPasswordModal {
|
|
|
9694
9926
|
|
|
9695
9927
|
.neoface-email-modal-content input:focus {
|
|
9696
9928
|
outline: none;
|
|
9697
|
-
border-color: #
|
|
9698
|
-
box-shadow: 0 0 0 3px rgba(
|
|
9929
|
+
border-color: #0059C4;
|
|
9930
|
+
box-shadow: 0 0 0 3px rgba(0, 89, 196, 0.2);
|
|
9699
9931
|
background: rgba(255, 255, 255, 0.15);
|
|
9700
9932
|
}
|
|
9701
9933
|
|
|
@@ -9704,19 +9936,19 @@ class EmailPasswordModal {
|
|
|
9704
9936
|
padding: 14px 24px;
|
|
9705
9937
|
border-radius: 12px;
|
|
9706
9938
|
border: none;
|
|
9707
|
-
background: linear-gradient(135deg, #
|
|
9939
|
+
background: linear-gradient(135deg, #0059C4 0%, #00449A 100%);
|
|
9708
9940
|
color: white;
|
|
9709
9941
|
font-size: 16px;
|
|
9710
9942
|
font-weight: 600;
|
|
9711
9943
|
cursor: pointer;
|
|
9712
9944
|
transition: all 0.2s;
|
|
9713
|
-
box-shadow: 0 4px 16px rgba(
|
|
9945
|
+
box-shadow: 0 4px 16px rgba(0, 89, 196, 0.3);
|
|
9714
9946
|
font-family: inherit;
|
|
9715
9947
|
}
|
|
9716
9948
|
|
|
9717
9949
|
.neoface-email-submit-btn:hover {
|
|
9718
9950
|
transform: translateY(-2px);
|
|
9719
|
-
box-shadow: 0 8px 24px rgba(
|
|
9951
|
+
box-shadow: 0 8px 24px rgba(0, 89, 196, 0.4);
|
|
9720
9952
|
}
|
|
9721
9953
|
|
|
9722
9954
|
.neoface-email-submit-btn:active {
|
|
@@ -9768,7 +10000,7 @@ class EmailPasswordModal {
|
|
|
9768
10000
|
|
|
9769
10001
|
.neoface-email-brand-name {
|
|
9770
10002
|
font-weight: 600;
|
|
9771
|
-
font-family:
|
|
10003
|
+
font-family: inherit;
|
|
9772
10004
|
color: #ffffff;
|
|
9773
10005
|
letter-spacing: 0.3px;
|
|
9774
10006
|
}
|
|
@@ -9795,8 +10027,7 @@ class EmailPasswordModal {
|
|
|
9795
10027
|
font-size: 20px;
|
|
9796
10028
|
}
|
|
9797
10029
|
}
|
|
9798
|
-
|
|
9799
|
-
document.head.appendChild(style);
|
|
10030
|
+
`);
|
|
9800
10031
|
}
|
|
9801
10032
|
async handleSubmit(event) {
|
|
9802
10033
|
event.preventDefault();
|
|
@@ -10640,8 +10871,8 @@ const biometricDetection = /* @__PURE__ */ Object.freeze(/* @__PURE__ */ Object.
|
|
|
10640
10871
|
initializeBiometricDetection,
|
|
10641
10872
|
isAdvancedDetectionAvailable
|
|
10642
10873
|
}, Symbol.toStringTag, { value: "Module" }));
|
|
10643
|
-
const VERSION = "1.
|
|
10644
|
-
const RELEASE_DATE = "2026-09-
|
|
10874
|
+
const VERSION = "1.30.0";
|
|
10875
|
+
const RELEASE_DATE = "2026-09-02";
|
|
10645
10876
|
let cachedSession = null;
|
|
10646
10877
|
function getCachedCaptureSession() {
|
|
10647
10878
|
return cachedSession;
|
|
@@ -10956,27 +11187,30 @@ class OnboardingCaptureModal {
|
|
|
10956
11187
|
</div>
|
|
10957
11188
|
</div>
|
|
10958
11189
|
`;
|
|
10959
|
-
|
|
10960
|
-
|
|
10961
|
-
|
|
10962
|
-
|
|
10963
|
-
.neofaceid-modal-
|
|
10964
|
-
.neofaceid-
|
|
10965
|
-
.neofaceid-
|
|
10966
|
-
.neofaceid-
|
|
10967
|
-
.neofaceid-
|
|
10968
|
-
.neofaceid-
|
|
10969
|
-
.neofaceid-
|
|
10970
|
-
.neofaceid-
|
|
10971
|
-
.neofaceid-
|
|
10972
|
-
.neofaceid-
|
|
10973
|
-
.neofaceid-
|
|
10974
|
-
.neofaceid-
|
|
10975
|
-
.neofaceid-
|
|
10976
|
-
.neofaceid-
|
|
10977
|
-
.neofaceid-
|
|
10978
|
-
|
|
10979
|
-
|
|
11190
|
+
injectThemeStyles();
|
|
11191
|
+
injectScopedStyles(
|
|
11192
|
+
"neofaceid-onboarding-capture-styles",
|
|
11193
|
+
`
|
|
11194
|
+
.neofaceid-root .neofaceid-modal-overlay { position: fixed; inset: 0; background: var(--nfid-overlay); display:flex; align-items:center; justify-content:center; z-index: 9999; }
|
|
11195
|
+
.neofaceid-root .neofaceid-modal { background: var(--nfid-surface); border-radius: var(--nfid-radius, 16px); width: 92%; max-width: 640px; box-shadow: 0 1px 3px rgba(10,19,32,.08); overflow:hidden; }
|
|
11196
|
+
.neofaceid-root .neofaceid-modal-header { padding: 16px 20px; border-bottom: 1px solid var(--nfid-line); display:flex; align-items:center; justify-content:space-between; }
|
|
11197
|
+
.neofaceid-root .neofaceid-title { margin:0; font-size: 20px; color: var(--nfid-text); }
|
|
11198
|
+
.neofaceid-root .neofaceid-close-btn { background:none; border:none; font-size:24px; cursor:pointer; color: var(--nfid-text-muted); min-width: 44px; min-height: 44px; }
|
|
11199
|
+
.neofaceid-root .neofaceid-modal-body { padding: 16px 20px; }
|
|
11200
|
+
.neofaceid-root .neofaceid-subtitle { margin: 0 0 12px 0; color: var(--nfid-text-muted); }
|
|
11201
|
+
.neofaceid-root .neofaceid-camera-container { position: relative; background:#000; border-radius:8px; overflow:hidden; aspect-ratio: 4/3; margin-bottom: 12px; }
|
|
11202
|
+
.neofaceid-root .neofaceid-video { width:100%; height:100%; object-fit: cover; }
|
|
11203
|
+
.neofaceid-root .neofaceid-canvas { position:absolute; top:0; left:0; }
|
|
11204
|
+
.neofaceid-root .neofaceid-overlay { position:absolute; inset:0; display:flex; align-items:center; justify-content:center; }
|
|
11205
|
+
.neofaceid-root .neofaceid-frame { width: 200px; height: 200px; border: 3px solid #0E9F6E; border-radius: 50%; box-shadow: 0 0 0 2px rgba(14,159,110,0.3); }
|
|
11206
|
+
.neofaceid-root .neofaceid-countdown { position:absolute; top:16px; right:16px; background: rgba(0,0,0,0.7); color:#fff; width: 48px; height:48px; display:flex; align-items:center; justify-content:center; border-radius:50%; }
|
|
11207
|
+
.neofaceid-root .neofaceid-modal-footer { padding: 16px 20px; border-top: 1px solid var(--nfid-line); display:flex; gap: 8px; justify-content:flex-end; }
|
|
11208
|
+
.neofaceid-root .neofaceid-cancel-btn { background: var(--nfid-surface-muted); color: var(--nfid-text-muted); border:none; border-radius:8px; padding:10px 18px; cursor:pointer; min-height: 44px; }
|
|
11209
|
+
.neofaceid-root .neofaceid-capture-btn { background: var(--nfid-action); color: var(--nfid-action-text); border:none; border-radius:8px; padding:10px 18px; cursor:pointer; min-height: 44px; }
|
|
11210
|
+
.neofaceid-root .neofaceid-capture-btn:disabled { background: var(--nfid-line); cursor:not-allowed; }
|
|
11211
|
+
`
|
|
11212
|
+
);
|
|
11213
|
+
overlay.classList.add("neofaceid-root");
|
|
10980
11214
|
document.body.appendChild(overlay);
|
|
10981
11215
|
this.overlay = overlay;
|
|
10982
11216
|
this.video = this.overlay.querySelector(".neofaceid-video");
|
|
@@ -11691,12 +11925,9 @@ class DocumentCaptureModal {
|
|
|
11691
11925
|
<div class="neoface-doc-content"></div>
|
|
11692
11926
|
</div>
|
|
11693
11927
|
`;
|
|
11694
|
-
|
|
11695
|
-
|
|
11696
|
-
|
|
11697
|
-
style.textContent = this.getStyles();
|
|
11698
|
-
document.head.appendChild(style);
|
|
11699
|
-
}
|
|
11928
|
+
injectThemeStyles$1();
|
|
11929
|
+
injectScopedStyles$1("neoface-doc-styles-v2", this.getStyles());
|
|
11930
|
+
overlay.classList.add("neofaceid-root");
|
|
11700
11931
|
document.body.appendChild(overlay);
|
|
11701
11932
|
this.overlay = overlay;
|
|
11702
11933
|
}
|
|
@@ -12181,12 +12412,12 @@ class DocumentCaptureModal {
|
|
|
12181
12412
|
align-items: center;
|
|
12182
12413
|
justify-content: center;
|
|
12183
12414
|
z-index: 10000;
|
|
12184
|
-
font-family:
|
|
12415
|
+
font-family: inherit;
|
|
12185
12416
|
padding: 16px;
|
|
12186
12417
|
}
|
|
12187
12418
|
|
|
12188
12419
|
.neoface-doc-modal {
|
|
12189
|
-
background: linear-gradient(145deg, #
|
|
12420
|
+
background: linear-gradient(145deg, #0A1320 0%, #111C2B 100%);
|
|
12190
12421
|
border-radius: 24px;
|
|
12191
12422
|
width: 100%;
|
|
12192
12423
|
max-width: 520px;
|
|
@@ -12228,7 +12459,7 @@ class DocumentCaptureModal {
|
|
|
12228
12459
|
}
|
|
12229
12460
|
|
|
12230
12461
|
.neoface-doc-step-badge {
|
|
12231
|
-
background: linear-gradient(135deg, #
|
|
12462
|
+
background: linear-gradient(135deg, #0091F6, #0099cc);
|
|
12232
12463
|
color: #fff;
|
|
12233
12464
|
font-size: 12px;
|
|
12234
12465
|
font-weight: 600;
|
|
@@ -12293,7 +12524,7 @@ class DocumentCaptureModal {
|
|
|
12293
12524
|
height: 44px;
|
|
12294
12525
|
background: rgba(0, 200, 255, 0.15);
|
|
12295
12526
|
border-radius: 12px;
|
|
12296
|
-
color: #
|
|
12527
|
+
color: #0091F6;
|
|
12297
12528
|
}
|
|
12298
12529
|
|
|
12299
12530
|
.neoface-doc-select-icon svg {
|
|
@@ -12314,7 +12545,7 @@ class DocumentCaptureModal {
|
|
|
12314
12545
|
}
|
|
12315
12546
|
|
|
12316
12547
|
.neoface-doc-select-option:hover .neoface-doc-select-arrow {
|
|
12317
|
-
color: #
|
|
12548
|
+
color: #0091F6;
|
|
12318
12549
|
transform: translateX(4px);
|
|
12319
12550
|
}
|
|
12320
12551
|
|
|
@@ -12341,7 +12572,7 @@ class DocumentCaptureModal {
|
|
|
12341
12572
|
}
|
|
12342
12573
|
|
|
12343
12574
|
.neoface-doc-tip-icon {
|
|
12344
|
-
color: #
|
|
12575
|
+
color: #0091F6;
|
|
12345
12576
|
flex-shrink: 0;
|
|
12346
12577
|
}
|
|
12347
12578
|
|
|
@@ -12386,7 +12617,7 @@ class DocumentCaptureModal {
|
|
|
12386
12617
|
position: absolute;
|
|
12387
12618
|
width: 28px;
|
|
12388
12619
|
height: 28px;
|
|
12389
|
-
border-color: #
|
|
12620
|
+
border-color: #0091F6;
|
|
12390
12621
|
border-style: solid;
|
|
12391
12622
|
}
|
|
12392
12623
|
|
|
@@ -12401,7 +12632,7 @@ class DocumentCaptureModal {
|
|
|
12401
12632
|
left: 50%;
|
|
12402
12633
|
transform: translateX(-50%);
|
|
12403
12634
|
background: rgba(0, 0, 0, 0.7);
|
|
12404
|
-
color: #
|
|
12635
|
+
color: #0091F6;
|
|
12405
12636
|
font-size: 12px;
|
|
12406
12637
|
font-weight: 500;
|
|
12407
12638
|
padding: 6px 14px;
|
|
@@ -12422,7 +12653,7 @@ class DocumentCaptureModal {
|
|
|
12422
12653
|
width: 48px;
|
|
12423
12654
|
height: 48px;
|
|
12424
12655
|
border: 4px solid rgba(255, 255, 255, 0.2);
|
|
12425
|
-
border-top-color: #
|
|
12656
|
+
border-top-color: #0091F6;
|
|
12426
12657
|
border-radius: 50%;
|
|
12427
12658
|
animation: neoface-doc-spin 0.8s linear infinite;
|
|
12428
12659
|
}
|
|
@@ -12493,7 +12724,7 @@ class DocumentCaptureModal {
|
|
|
12493
12724
|
}
|
|
12494
12725
|
|
|
12495
12726
|
.neoface-doc-preview-hint svg {
|
|
12496
|
-
color: #
|
|
12727
|
+
color: #0091F6;
|
|
12497
12728
|
flex-shrink: 0;
|
|
12498
12729
|
}
|
|
12499
12730
|
|
|
@@ -12520,7 +12751,7 @@ class DocumentCaptureModal {
|
|
|
12520
12751
|
}
|
|
12521
12752
|
|
|
12522
12753
|
.neoface-doc-btn-primary {
|
|
12523
|
-
background: linear-gradient(135deg, #
|
|
12754
|
+
background: linear-gradient(135deg, #0091F6 0%, #0099cc 100%);
|
|
12524
12755
|
color: #fff;
|
|
12525
12756
|
}
|
|
12526
12757
|
|
|
@@ -12530,7 +12761,7 @@ class DocumentCaptureModal {
|
|
|
12530
12761
|
}
|
|
12531
12762
|
|
|
12532
12763
|
.neoface-doc-btn-success {
|
|
12533
|
-
background: linear-gradient(135deg, #
|
|
12764
|
+
background: linear-gradient(135deg, #0E9F6E 0%, #059669 100%);
|
|
12534
12765
|
color: #fff;
|
|
12535
12766
|
}
|
|
12536
12767
|
|
|
@@ -12578,7 +12809,7 @@ class DocumentCaptureModal {
|
|
|
12578
12809
|
.neoface-doc-brand-name {
|
|
12579
12810
|
font-size: 13px;
|
|
12580
12811
|
font-weight: 700;
|
|
12581
|
-
color: #
|
|
12812
|
+
color: #0091F6;
|
|
12582
12813
|
letter-spacing: 1px;
|
|
12583
12814
|
}
|
|
12584
12815
|
|
|
@@ -12763,11 +12994,17 @@ export {
|
|
|
12763
12994
|
completeOnboardingWithData,
|
|
12764
12995
|
confirmPasswordReset,
|
|
12765
12996
|
detectBiometricType,
|
|
12997
|
+
getAccent,
|
|
12998
|
+
getAppName,
|
|
12766
12999
|
getApplicationToken,
|
|
12767
13000
|
getBaseUrl,
|
|
12768
13001
|
getCachedCaptureSession,
|
|
12769
13002
|
getConfig,
|
|
12770
13003
|
getEnvironment,
|
|
13004
|
+
getLocale,
|
|
13005
|
+
getRadius,
|
|
13006
|
+
getResolvedThemeMode,
|
|
13007
|
+
getTheme,
|
|
12771
13008
|
identifyPerson,
|
|
12772
13009
|
identifyPersonAsync,
|
|
12773
13010
|
init,
|