@luminaryworks/auth-react 0.6.0 → 0.7.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.css +61 -7
- package/dist/index.css.map +1 -1
- package/dist/index.d.ts +79 -4
- package/dist/index.js +478 -25
- package/dist/index.js.map +1 -1
- package/dist/style.css +61 -7
- package/dist/style.css.map +1 -1
- package/package.json +1 -1
package/dist/index.css
CHANGED
|
@@ -2,7 +2,9 @@
|
|
|
2
2
|
.HeadlessLoginPanel_module_panel {
|
|
3
3
|
--lw-auth-theme: #1677ff;
|
|
4
4
|
--lw-auth-theme-deep: color-mix(in srgb, var(--lw-auth-theme) 72%, #000);
|
|
5
|
+
box-sizing: border-box;
|
|
5
6
|
width: min(100%, 400px);
|
|
7
|
+
max-width: 400px;
|
|
6
8
|
padding: 28px 28px 22px;
|
|
7
9
|
border-radius: 16px;
|
|
8
10
|
background: rgba(255, 255, 255, 0.96);
|
|
@@ -282,6 +284,32 @@
|
|
|
282
284
|
color: #b42318;
|
|
283
285
|
line-height: 1.4;
|
|
284
286
|
}
|
|
287
|
+
.HeadlessLoginPanel_module_consent {
|
|
288
|
+
margin: 12px 0 0;
|
|
289
|
+
font-size: 13px;
|
|
290
|
+
line-height: 1.45;
|
|
291
|
+
color: #14212b;
|
|
292
|
+
}
|
|
293
|
+
.HeadlessLoginPanel_module_consentInvalid {
|
|
294
|
+
margin: 12px -8px 0;
|
|
295
|
+
padding: 8px;
|
|
296
|
+
border: 1px solid #b42318;
|
|
297
|
+
border-radius: 10px;
|
|
298
|
+
background: rgba(180, 35, 24, 0.06);
|
|
299
|
+
}
|
|
300
|
+
.HeadlessLoginPanel_module_consentError {
|
|
301
|
+
margin: 8px 0 0;
|
|
302
|
+
font-size: 13px;
|
|
303
|
+
font-weight: 650;
|
|
304
|
+
line-height: 1.4;
|
|
305
|
+
color: #b42318;
|
|
306
|
+
}
|
|
307
|
+
.HeadlessLoginPanel_module_consentLinks {
|
|
308
|
+
margin: 0;
|
|
309
|
+
}
|
|
310
|
+
.HeadlessLoginPanel_module_consentLinks a {
|
|
311
|
+
color: var(--lw-auth-theme);
|
|
312
|
+
}
|
|
285
313
|
.HeadlessLoginPanel_module_footer {
|
|
286
314
|
margin-top: 18px;
|
|
287
315
|
padding-top: 12px;
|
|
@@ -292,6 +320,11 @@
|
|
|
292
320
|
gap: 8px;
|
|
293
321
|
justify-content: center;
|
|
294
322
|
}
|
|
323
|
+
@media (max-width: 420px) {
|
|
324
|
+
.HeadlessLoginPanel_module_panel {
|
|
325
|
+
padding: 22px 16px 18px;
|
|
326
|
+
}
|
|
327
|
+
}
|
|
295
328
|
|
|
296
329
|
/* src/LoginLanguageSwitcher.module.scss */
|
|
297
330
|
.LoginLanguageSwitcher_module_switch {
|
|
@@ -412,17 +445,18 @@
|
|
|
412
445
|
--lw-login-grid: rgba(11, 18, 32, 0.045);
|
|
413
446
|
}
|
|
414
447
|
.LoginCanvas_module_canvas[data-tone=data] {
|
|
415
|
-
--lw-login-accent: #
|
|
416
|
-
--lw-login-bg-a: #
|
|
417
|
-
--lw-login-bg-b: #
|
|
448
|
+
--lw-login-accent: #7c3aed;
|
|
449
|
+
--lw-login-bg-a: #0a0f1e;
|
|
450
|
+
--lw-login-bg-b: #0a0f1e;
|
|
418
451
|
--lw-login-ink: #e8eefc;
|
|
419
452
|
--lw-login-grid: rgba(255, 255, 255, 0.045);
|
|
420
453
|
}
|
|
421
454
|
.LoginCanvas_module_canvas[data-tone=edu] {
|
|
422
|
-
--lw-login-accent: #
|
|
423
|
-
--lw-login-bg-a: #
|
|
424
|
-
--lw-login-bg-b: #
|
|
425
|
-
--lw-login-
|
|
455
|
+
--lw-login-accent: #7ec8ff;
|
|
456
|
+
--lw-login-bg-a: #0a348c;
|
|
457
|
+
--lw-login-bg-b: #1d7aef;
|
|
458
|
+
--lw-login-ink: #f4f8ff;
|
|
459
|
+
--lw-login-grid: rgba(255, 255, 255, 0.07);
|
|
426
460
|
}
|
|
427
461
|
.LoginCanvas_module_grid {
|
|
428
462
|
position: absolute;
|
|
@@ -461,4 +495,24 @@
|
|
|
461
495
|
.LoginCanvas_module_slotFill {
|
|
462
496
|
width: min(1120px, 100%);
|
|
463
497
|
}
|
|
498
|
+
@media (max-width: 720px) {
|
|
499
|
+
.LoginCanvas_module_canvas {
|
|
500
|
+
display: flex;
|
|
501
|
+
flex-direction: column;
|
|
502
|
+
align-items: center;
|
|
503
|
+
justify-content: flex-start;
|
|
504
|
+
overflow-x: hidden;
|
|
505
|
+
overflow-y: auto;
|
|
506
|
+
padding: 72px 16px 28px;
|
|
507
|
+
}
|
|
508
|
+
.LoginCanvas_module_lang {
|
|
509
|
+
top: 12px;
|
|
510
|
+
right: 12px;
|
|
511
|
+
}
|
|
512
|
+
}
|
|
513
|
+
@media (max-width: 420px) {
|
|
514
|
+
.LoginCanvas_module_canvas {
|
|
515
|
+
padding: 64px 12px 20px;
|
|
516
|
+
}
|
|
517
|
+
}
|
|
464
518
|
/*# sourceMappingURL=index.css.map */
|
package/dist/index.css.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/HeadlessLoginPanel.module.scss","../src/LoginLanguageSwitcher.module.scss","../src/LoginCanvas.module.scss"],"sourcesContent":["$ink: #14212b;\n$muted: #4b5c68;\n$hint: #6b7c87;\n$brand: #3d6f8f;\n$brand-deep: #15485c;\n$brand-mid: #1f6f8b;\n$border: #c9d5de;\n$border-soft: #b7c9d4;\n$line: #d5e0e7;\n$divider: #90a0ab;\n$surface: #f7fafc;\n$fallback-bg: #e8eef2;\n$danger: #b42318;\n$footer-line: #e4ebf0;\n$radius-lg: 16px;\n$radius-md: 10px;\n$radius-sm: 4px;\n\n.panel {\n --lw-auth-theme: #1677ff;\n --lw-auth-theme-deep: color-mix(in srgb, var(--lw-auth-theme) 72%, #000);\n width: min(100%, 400px);\n padding: 28px 28px 22px;\n border-radius: $radius-lg;\n background: rgba(255, 255, 255, 0.96);\n color: $ink;\n box-shadow: 0 24px 64px rgba(15, 23, 42, 0.28);\n font-family: \"Segoe UI\", \"PingFang SC\", \"Noto Sans SC\", sans-serif;\n}\n\n.brand {\n display: flex;\n gap: 14px;\n align-items: center;\n margin-bottom: 12px;\n}\n\n.logo {\n border-radius: 12px;\n display: block;\n}\n\n.product {\n margin: 0;\n font-size: 13px;\n font-weight: 650;\n letter-spacing: 0.04em;\n text-transform: uppercase;\n color: var(--lw-auth-theme);\n}\n\n.title {\n margin: 2px 0 0;\n font-size: 22px;\n font-weight: 700;\n line-height: 1.25;\n}\n\n.subtitle {\n margin: 0 0 18px;\n font-size: 14px;\n line-height: 1.5;\n color: $muted;\n}\n\n.form {\n display: grid;\n gap: 10px;\n}\n\n.channelTabs {\n display: grid;\n grid-template-columns: 1fr 1fr;\n gap: 6px;\n margin-bottom: 2px;\n}\n\n.channelTab {\n border: 1px solid $border;\n border-radius: $radius-md;\n padding: 8px 10px;\n font-size: 13px;\n font-weight: 650;\n cursor: pointer;\n color: $muted;\n background: $surface;\n\n &:disabled {\n opacity: 0.65;\n cursor: not-allowed;\n }\n}\n\n.channelTabActive {\n color: var(--lw-auth-theme-deep);\n border-color: var(--lw-auth-theme);\n background: color-mix(in srgb, var(--lw-auth-theme) 10%, #fff);\n}\n\n.codeRow {\n display: grid;\n grid-template-columns: 1fr auto;\n gap: 8px;\n align-items: stretch;\n}\n\n.codeInput {\n min-width: 0;\n}\n\n.secondaryBtn {\n border: 1px solid $border-soft;\n border-radius: $radius-md;\n padding: 0 12px;\n font-size: 13px;\n font-weight: 650;\n cursor: pointer;\n color: $ink;\n background: #fff;\n white-space: nowrap;\n\n &:disabled {\n opacity: 0.65;\n cursor: not-allowed;\n }\n}\n\n.socialStack {\n display: grid;\n grid-template-columns: repeat(2, minmax(0, 1fr));\n gap: 10px;\n font-size: 12px;\n}\n\n.input {\n width: 100%;\n box-sizing: border-box;\n border: 1px solid $border;\n border-radius: $radius-md;\n padding: 10px 12px;\n font-size: 14px;\n outline: none;\n background: $surface;\n\n &:focus {\n border-color: var(--lw-auth-theme);\n }\n\n &:disabled {\n opacity: 0.65;\n cursor: not-allowed;\n }\n}\n\n.passwordField {\n position: relative;\n display: flex;\n align-items: center;\n}\n\n.passwordInput {\n padding-right: 42px;\n}\n\n.passwordToggle {\n position: absolute;\n right: 4px;\n top: 50%;\n transform: translateY(-50%);\n z-index: 1;\n display: inline-flex;\n align-items: center;\n justify-content: center;\n width: 36px;\n height: 36px;\n border: none;\n border-radius: $radius-sm;\n padding: 0;\n color: #5a6b76;\n background: transparent;\n cursor: pointer;\n\n &:hover:not(:disabled) {\n color: var(--lw-auth-theme);\n background: color-mix(in srgb, var(--lw-auth-theme) 12%, transparent);\n }\n\n &:focus-visible {\n outline: 2px solid var(--lw-auth-theme);\n outline-offset: 1px;\n }\n\n &:disabled {\n opacity: 0.65;\n cursor: not-allowed;\n }\n}\n\n.primaryBtn {\n border: none;\n border-radius: $radius-md;\n padding: 11px 14px;\n font-size: 14px;\n font-weight: 650;\n cursor: pointer;\n color: #fff;\n background: linear-gradient(135deg, var(--lw-auth-theme) 0%, var(--lw-auth-theme-deep) 100%);\n\n &:disabled {\n opacity: 0.65;\n cursor: not-allowed;\n }\n}\n\n.socialBtn {\n width: 100%;\n min-width: 0;\n display: flex;\n align-items: center;\n justify-content: center;\n gap: 8px;\n border: 1px solid $border-soft;\n border-radius: $radius-md;\n padding: 11px 10px;\n font-size: 14px;\n font-weight: 650;\n cursor: pointer;\n color: $ink;\n background: #fff;\n\n &:disabled {\n opacity: 0.65;\n cursor: not-allowed;\n }\n}\n\n.socialLogo {\n flex-shrink: 0;\n display: block;\n}\n\n.logoFallback {\n width: 18px;\n height: 18px;\n border-radius: $radius-sm;\n background: color-mix(in srgb, var(--lw-auth-theme) 14%, #fff);\n color: var(--lw-auth-theme-deep);\n font-size: 11px;\n font-weight: 700;\n display: inline-flex;\n align-items: center;\n justify-content: center;\n flex-shrink: 0;\n}\n\n.cancelBtn {\n margin-top: 10px;\n width: 100%;\n border: none;\n background: transparent;\n color: #5a6b76;\n font-size: 13px;\n cursor: pointer;\n padding: 8px;\n\n &:disabled {\n opacity: 0.65;\n cursor: not-allowed;\n }\n}\n\n.divider {\n display: flex;\n align-items: center;\n gap: 10px;\n margin: 14px 0;\n color: $divider;\n}\n\n.dividerLine {\n flex: 1;\n height: 1px;\n background: $line;\n}\n\n.dividerText {\n font-size: 12px;\n text-transform: uppercase;\n letter-spacing: 0.08em;\n}\n\n.hint {\n margin: 10px 0 0;\n font-size: 12px;\n color: $hint;\n line-height: 1.45;\n}\n\n.domainsHint {\n margin: -2px 0 0;\n font-size: 12px;\n line-height: 1.45;\n color: $muted;\n word-break: break-word;\n}\n\n.switchMode {\n margin: 12px 0 0;\n text-align: center;\n}\n\n.switchModeBtn {\n border: none;\n background: transparent;\n color: var(--lw-auth-theme);\n font-size: 13px;\n font-weight: 650;\n cursor: pointer;\n padding: 4px 8px;\n text-decoration: underline;\n text-underline-offset: 3px;\n\n &:disabled {\n opacity: 0.65;\n cursor: not-allowed;\n }\n}\n\n.error {\n margin: 12px 0 0;\n font-size: 13px;\n color: $danger;\n line-height: 1.4;\n}\n\n.footer {\n margin-top: 18px;\n padding-top: 12px;\n border-top: 1px solid $footer-line;\n font-size: 12px;\n color: $hint;\n display: flex;\n gap: 8px;\n justify-content: center;\n}\n",".switch {\n position: relative;\n display: inline-flex;\n}\n\n.trigger {\n display: inline-flex;\n align-items: center;\n gap: 6px;\n height: 32px;\n padding: 0 10px 0 8px;\n border: 1px solid rgba(15, 23, 42, 0.12);\n border-radius: 999px;\n background: rgba(255, 255, 255, 0.86);\n color: #243044;\n font: inherit;\n font-size: 13px;\n line-height: 1;\n cursor: pointer;\n backdrop-filter: blur(8px);\n\n &:hover,\n &[aria-expanded=\"true\"] {\n border-color: var(--lw-login-accent, #1677ff);\n color: #0f172a;\n }\n}\n\n.icon {\n width: 14px;\n height: 14px;\n display: block;\n}\n\n.caret {\n width: 10px;\n height: 10px;\n opacity: 0.65;\n}\n\n.menu {\n position: absolute;\n top: calc(100% + 6px);\n right: 0;\n z-index: 20;\n min-width: 168px;\n margin: 0;\n padding: 6px;\n list-style: none;\n border-radius: 12px;\n background: #fff;\n box-shadow: 0 12px 40px rgba(15, 23, 42, 0.16);\n}\n\n.item {\n display: block;\n width: 100%;\n border: 0;\n border-radius: 8px;\n padding: 8px 10px;\n background: transparent;\n color: #1f2937;\n font: inherit;\n font-size: 14px;\n text-align: left;\n cursor: pointer;\n\n &:hover {\n background: #f3f6fb;\n }\n}\n\n.itemActive {\n background: color-mix(in srgb, var(--lw-login-accent, #1677ff) 14%, #fff);\n color: var(--lw-login-accent, #1677ff);\n font-weight: 650;\n}\n\n.onDark {\n border-color: rgba(255, 255, 255, 0.22);\n background: rgba(15, 23, 42, 0.28);\n color: rgba(255, 255, 255, 0.92);\n\n &:hover,\n &[aria-expanded=\"true\"] {\n border-color: rgba(255, 255, 255, 0.55);\n color: #fff;\n }\n}\n",".canvas {\n --lw-login-accent: #1677ff;\n position: relative;\n min-height: 100dvh;\n display: grid;\n place-items: center;\n padding: 56px 20px 24px;\n overflow: hidden;\n background:\n radial-gradient(900px 480px at 8% -8%, color-mix(in srgb, var(--lw-login-accent) 28%, transparent), transparent 58%),\n radial-gradient(720px 420px at 100% 12%, color-mix(in srgb, var(--lw-login-accent) 16%, transparent), transparent 52%),\n linear-gradient(165deg, var(--lw-login-bg-a, #f4f7fb) 0%, var(--lw-login-bg-b, #e7eef6) 100%);\n color: var(--lw-login-ink, #122033);\n}\n\n.canvas[data-tone=\"console\"] {\n --lw-login-accent: #7eb6ff;\n --lw-login-bg-a: #0e1726;\n --lw-login-bg-b: #1a2740;\n --lw-login-ink: #e8eef8;\n --lw-login-grid: rgba(255, 255, 255, 0.05);\n}\n\n.canvas[data-tone=\"vista\"] {\n --lw-login-accent: #1677ff;\n --lw-login-bg-a: #f4f7fb;\n --lw-login-bg-b: #dde7f0;\n --lw-login-grid: rgba(11, 18, 32, 0.045);\n}\n\n.canvas[data-tone=\"data\"] {\n --lw-login-accent: #5aa2ff;\n --lw-login-bg-a: #070b14;\n --lw-login-bg-b: #12203a;\n --lw-login-ink: #e8eefc;\n --lw-login-grid: rgba(255, 255, 255, 0.045);\n}\n\n.canvas[data-tone=\"edu\"] {\n --lw-login-accent: #f59e0b;\n --lw-login-bg-a: #fff7ed;\n --lw-login-bg-b: #e0e7ff;\n --lw-login-grid: rgba(67, 56, 202, 0.06);\n}\n\n.grid {\n position: absolute;\n inset: 0;\n pointer-events: none;\n background-image:\n linear-gradient(var(--lw-login-grid, rgba(15, 23, 42, 0.04)) 1px, transparent 1px),\n linear-gradient(90deg, var(--lw-login-grid, rgba(15, 23, 42, 0.04)) 1px, transparent 1px);\n background-size: 48px 48px;\n mask-image: radial-gradient(ellipse at center, #000 18%, transparent 74%);\n}\n\n.lang {\n position: fixed;\n top: 14px;\n right: 16px;\n z-index: 5;\n}\n\n.decor {\n position: absolute;\n inset: 0;\n pointer-events: none;\n z-index: 0;\n}\n\n.slot {\n position: relative;\n z-index: 1;\n width: min(440px, 100%);\n}\n\n.slotFill {\n width: min(1120px, 100%);\n}\n"],"mappings":";AAkBA,CAAAA;AACE,mBAAA;AACA,wBAAA,UAAA,GAAA,IAAA,EAAA,IAAA,iBAAA,GAAA,EAAA;AACA,SAAA,IAAA,IAAA,EAAA;AACA,WAAA,KAAA,KAAA;AACA,iBATU;AAUV,cAAA,KAAA,GAAA,EAAA,GAAA,EAAA,GAAA,EAAA;AACA,SAzBI;AA0BJ,cAAA,EAAA,KAAA,KAAA,KAAA,EAAA,EAAA,EAAA,EAAA,EAAA,EAAA;AACA;IAAA,UAAA;IAAA,aAAA;IAAA,cAAA;IAAA;;AAGF,CAAAC;AACE,WAAA;AACA,OAAA;AACA,eAAA;AACA,iBAAA;;AAGF,CAAAC;AACE,iBAAA;AACA,WAAA;;AAGF,CAAAC;AACE,UAAA;AACA,aAAA;AACA,eAAA;AACA,kBAAA;AACA,kBAAA;AACA,SAAA,IAAA;;AAGF,CAAAC;AACE,UAAA,IAAA,EAAA;AACA,aAAA;AACA,eAAA;AACA,eAAA;;AAGF,CAAAC;AACE,UAAA,EAAA,EAAA;AACA,aAAA;AACA,eAAA;AACA,SA7DM;;AAgER,CAAAC;AACE,WAAA;AACA,OAAA;;AAGF,CAAAC;AACE,WAAA;AACA,yBAAA,IAAA;AACA,OAAA;AACA,iBAAA;;AAGF,CAAAC;AACE,UAAA,IAAA,MAAA;AACA,iBAhEU;AAiEV,WAAA,IAAA;AACA,aAAA;AACA,eAAA;AACA,UAAA;AACA,SAnFM;AAoFN,cA3EQ;;AA6ER,CAVFA,oCAUE;AACE,WAAA;AACA,UAAA;;AAIJ,CAAAC;AACE,SAAA,IAAA;AACA,gBAAA,IAAA;AACA,cAAA,UAAA,GAAA,IAAA,EAAA,IAAA,iBAAA,GAAA,EAAA;;AAGF,CAAAC;AACE,WAAA;AACA,yBAAA,IAAA;AACA,OAAA;AACA,eAAA;;AAGF,CAAAC;AACE,aAAA;;AAGF,CAAAC;AACE,UAAA,IAAA,MAAA;AACA,iBAjGU;AAkGV,WAAA,EAAA;AACA,aAAA;AACA,eAAA;AACA,UAAA;AACA,SArHI;AAsHJ,cAAA;AACA,eAAA;;AAEA,CAXFA,sCAWE;AACE,WAAA;AACA,UAAA;;AAIJ,CAAAC;AACE,WAAA;AACA,yBAAA,OAAA,CAAA,EAAA,OAAA,CAAA,EAAA;AACA,OAAA;AACA,aAAA;;AAGF,CAAAC;AACE,SAAA;AACA,cAAA;AACA,UAAA,IAAA,MAAA;AACA,iBA3HU;AA4HV,WAAA,KAAA;AACA,aAAA;AACA,WAAA;AACA,cApIQ;;AAsIR,CAVFA,+BAUE;AACE,gBAAA,IAAA;;AAGF,CAdFA,+BAcE;AACE,WAAA;AACA,UAAA;;AAIJ,CAAAC;AACE,YAAA;AACA,WAAA;AACA,eAAA;;AAGF,CAAAC;AACE,iBAAA;;AAGF,CAAAC;AACE,YAAA;AACA,SAAA;AACA,OAAA;AACA,aAAA,WAAA;AACA,WAAA;AACA,WAAA;AACA,eAAA;AACA,mBAAA;AACA,SAAA;AACA,UAAA;AACA,UAAA;AACA,iBAhKU;AAiKV,WAAA;AACA,SAAA;AACA,cAAA;AACA,UAAA;;AAEA,CAlBFA,wCAkBE,MAAA,KAAA;AACE,SAAA,IAAA;AACA,cAAA,UAAA,GAAA,IAAA,EAAA,IAAA,iBAAA,GAAA,EAAA;;AAGF,CAvBFA,wCAuBE;AACE,WAAA,IAAA,MAAA,IAAA;AACA,kBAAA;;AAGF,CA5BFA,wCA4BE;AACE,WAAA;AACA,UAAA;;AAIJ,CAAAC;AACE,UAAA;AACA,iBAzLU;AA0LV,WAAA,KAAA;AACA,aAAA;AACA,eAAA;AACA,UAAA;AACA,SAAA;AACA;IAAA;MAAA,MAAA;MAAA,IAAA,iBAAA,EAAA;MAAA,IAAA,sBAAA;;AAEA,CAVFA,oCAUE;AACE,WAAA;AACA,UAAA;;AAIJ,CAAAC;AACE,SAAA;AACA,aAAA;AACA,WAAA;AACA,eAAA;AACA,mBAAA;AACA,OAAA;AACA,UAAA,IAAA,MAAA;AACA,iBA/MU;AAgNV,WAAA,KAAA;AACA,aAAA;AACA,eAAA;AACA,UAAA;AACA,SAnOI;AAoOJ,cAAA;;AAEA,CAhBFA,mCAgBE;AACE,WAAA;AACA,UAAA;;AAIJ,CAAAC;AACE,eAAA;AACA,WAAA;;AAGF,CAAAC;AACE,SAAA;AACA,UAAA;AACA,iBApOU;AAqOV,cAAA,UAAA,GAAA,IAAA,EAAA,IAAA,iBAAA,GAAA,EAAA;AACA,SAAA,IAAA;AACA,aAAA;AACA,eAAA;AACA,WAAA;AACA,eAAA;AACA,mBAAA;AACA,eAAA;;AAGF,CAAAC;AACE,cAAA;AACA,SAAA;AACA,UAAA;AACA,cAAA;AACA,SAAA;AACA,aAAA;AACA,UAAA;AACA,WAAA;;AAEA,CAVFA,mCAUE;AACE,WAAA;AACA,UAAA;;AAIJ,CAAAC;AACE,WAAA;AACA,eAAA;AACA,OAAA;AACA,UAAA,KAAA;AACA,SA3QQ;;AA8QV,CAAAC;AACE,QAAA;AACA,UAAA;AACA,cAlRK;;AAqRP,CAAAC;AACE,aAAA;AACA,kBAAA;AACA,kBAAA;;AAGF,CAAAC;AACE,UAAA,KAAA,EAAA;AACA,aAAA;AACA,SApSK;AAqSL,eAAA;;AAGF,CAAAC;AACE,UAAA,KAAA,EAAA;AACA,aAAA;AACA,eAAA;AACA,SA7SM;AA8SN,cAAA;;AAGF,CAAAC;AACE,UAAA,KAAA,EAAA;AACA,cAAA;;AAGF,CAAAC;AACE,UAAA;AACA,cAAA;AACA,SAAA,IAAA;AACA,aAAA;AACA,eAAA;AACA,UAAA;AACA,WAAA,IAAA;AACA,mBAAA;AACA,yBAAA;;AAEA,CAXFA,uCAWE;AACE,WAAA;AACA,UAAA;;AAIJ,CAAAC;AACE,UAAA,KAAA,EAAA;AACA,aAAA;AACA,SA/TO;AAgUP,eAAA;;AAGF,CAAAC;AACE,cAAA;AACA,eAAA;AACA,cAAA,IAAA,MAAA;AACA,aAAA;AACA,SAlVK;AAmVL,WAAA;AACA,OAAA;AACA,mBAAA;;;;ACvVF,CAAAC;AACE,YAAA;AACA,WAAA;;AAGF,CAAAC;AACE,WAAA;AACA,eAAA;AACA,OAAA;AACA,UAAA;AACA,WAAA,EAAA,KAAA,EAAA;AACA,UAAA,IAAA,MAAA,KAAA,EAAA,EAAA,EAAA,EAAA,EAAA,EAAA;AACA,iBAAA;AACA,cAAA,KAAA,GAAA,EAAA,GAAA,EAAA,GAAA,EAAA;AACA,SAAA;AACA,QAAA;AACA,aAAA;AACA,eAAA;AACA,UAAA;AACA,mBAAA,KAAA;;AAEA,CAhBFA,oCAgBE;AAAA,CAhBFA,oCAgBE,CAAA;AAEE,gBAAA,IAAA,iBAAA,EAAA;AACA,SAAA;;AAIJ,CAAAC;AACE,SAAA;AACA,UAAA;AACA,WAAA;;AAGF,CAAAC;AACE,SAAA;AACA,UAAA;AACA,WAAA;;AAGF,CAAAC;AACE,YAAA;AACA,OAAA,KAAA,KAAA,EAAA;AACA,SAAA;AACA,WAAA;AACA,aAAA;AACA,UAAA;AACA,WAAA;AACA,cAAA;AACA,iBAAA;AACA,cAAA;AACA,cAAA,EAAA,KAAA,KAAA,KAAA,EAAA,EAAA,EAAA,EAAA,EAAA,EAAA;;AAGF,CAAAC;AACE,WAAA;AACA,SAAA;AACA,UAAA;AACA,iBAAA;AACA,WAAA,IAAA;AACA,cAAA;AACA,SAAA;AACA,QAAA;AACA,aAAA;AACA,cAAA;AACA,UAAA;;AAEA,CAbFA,iCAaE;AACE,cAAA;;AAIJ,CAAAC;AACE,cAAA,UAAA,GAAA,IAAA,EAAA,IAAA,iBAAA,EAAA,SAAA,GAAA,EAAA;AACA,SAAA,IAAA,iBAAA,EAAA;AACA,eAAA;;AAGF,CAAAC;AACE,gBAAA,KAAA,GAAA,EAAA,GAAA,EAAA,GAAA,EAAA;AACA,cAAA,KAAA,EAAA,EAAA,EAAA,EAAA,EAAA,EAAA;AACA,SAAA,KAAA,GAAA,EAAA,GAAA,EAAA,GAAA,EAAA;;AAEA,CALFA,mCAKE;AAAA,CALFA,mCAKE,CAAA;AAEE,gBAAA,KAAA,GAAA,EAAA,GAAA,EAAA,GAAA,EAAA;AACA,SAAA;;;;ACtFJ,CAAAC;AACE,qBAAA;AACA,YAAA;AACA,cAAA;AACA,WAAA;AACA,eAAA;AACA,WAAA,KAAA,KAAA;AACA,YAAA;AACA;IACE;MAAA,MAAA,MAAA,GAAA,GAAA,GAAA;MAAA,UAAA,GAAA,IAAA,EAAA,IAAA,mBAAA,GAAA,EAAA,YAAA;MAAA,YAAA,IAAA;IAAA;MAAA,MAAA,MAAA,GAAA,KAAA,GAAA;MAAA,UAAA,GAAA,IAAA,EAAA,IAAA,mBAAA,GAAA,EAAA,YAAA;MAAA,YAAA,IAAA;IAAA;MAAA,MAAA;MAAA,IAAA,eAAA,EAAA,SAAA,EAAA;MAAA,IAAA,eAAA,EAAA,SAAA;AAGF,SAAA,IAAA,cAAA,EAAA;;AAGF,CAfAA,yBAeA,CAAA;AACE,qBAAA;AACA,mBAAA;AACA,mBAAA;AACA,kBAAA;AACA,mBAAA,KAAA,GAAA,EAAA,GAAA,EAAA,GAAA,EAAA;;AAGF,CAvBAA,yBAuBA,CAAA;AACE,qBAAA;AACA,mBAAA;AACA,mBAAA;AACA,mBAAA,KAAA,EAAA,EAAA,EAAA,EAAA,EAAA,EAAA;;AAGF,CA9BAA,yBA8BA,CAAA;AACE,qBAAA;AACA,mBAAA;AACA,mBAAA;AACA,kBAAA;AACA,mBAAA,KAAA,GAAA,EAAA,GAAA,EAAA,GAAA,EAAA;;AAGF,CAtCAA,yBAsCA,CAAA;AACE,qBAAA;AACA,mBAAA;AACA,mBAAA;AACA,mBAAA,KAAA,EAAA,EAAA,EAAA,EAAA,GAAA,EAAA;;AAGF,CAAAC;AACE,YAAA;AACA,SAAA;AACA,kBAAA;AACA;IACE,gBAAA,IAAA,eAAA,EAAA,KAAA,EAAA,EAAA,EAAA,EAAA,EAAA,EAAA,OAAA,GAAA,EAAA,YAAA,IAAA;IAAA;MAAA,KAAA;MAAA,IAAA,eAAA,EAAA,KAAA,EAAA,EAAA,EAAA,EAAA,EAAA,EAAA,OAAA,GAAA;MAAA,YAAA;AAEF,mBAAA,KAAA;AACA;IAAA;MAAA,QAAA,GAAA,MAAA;MAAA,KAAA,GAAA;MAAA,YAAA;;AAGF,CAAAC;AACE,YAAA;AACA,OAAA;AACA,SAAA;AACA,WAAA;;AAGF,CAAAC;AACE,YAAA;AACA,SAAA;AACA,kBAAA;AACA,WAAA;;AAGF,CAAAC;AACE,YAAA;AACA,WAAA;AACA,SAAA,IAAA,KAAA,EAAA;;AAGF,CAAAC;AACE,SAAA,IAAA,MAAA,EAAA;;","names":["panel","brand","logo","product","title","subtitle","form","channelTabs","channelTab","channelTabActive","codeRow","codeInput","secondaryBtn","socialStack","input","passwordField","passwordInput","passwordToggle","primaryBtn","socialBtn","socialLogo","logoFallback","cancelBtn","divider","dividerLine","dividerText","hint","domainsHint","switchMode","switchModeBtn","error","footer","switch","trigger","icon","caret","menu","item","itemActive","onDark","canvas","grid","lang","decor","slot","slotFill"]}
|
|
1
|
+
{"version":3,"sources":["../src/HeadlessLoginPanel.module.scss","../src/LoginLanguageSwitcher.module.scss","../src/LoginCanvas.module.scss"],"sourcesContent":["$ink: #14212b;\n$muted: #4b5c68;\n$hint: #6b7c87;\n$brand: #3d6f8f;\n$brand-deep: #15485c;\n$brand-mid: #1f6f8b;\n$border: #c9d5de;\n$border-soft: #b7c9d4;\n$line: #d5e0e7;\n$divider: #90a0ab;\n$surface: #f7fafc;\n$fallback-bg: #e8eef2;\n$danger: #b42318;\n$footer-line: #e4ebf0;\n$radius-lg: 16px;\n$radius-md: 10px;\n$radius-sm: 4px;\n\n.panel {\n --lw-auth-theme: #1677ff;\n --lw-auth-theme-deep: color-mix(in srgb, var(--lw-auth-theme) 72%, #000);\n box-sizing: border-box;\n width: min(100%, 400px);\n max-width: 400px;\n padding: 28px 28px 22px;\n border-radius: $radius-lg;\n background: rgba(255, 255, 255, 0.96);\n color: $ink;\n box-shadow: 0 24px 64px rgba(15, 23, 42, 0.28);\n font-family: \"Segoe UI\", \"PingFang SC\", \"Noto Sans SC\", sans-serif;\n}\n\n.brand {\n display: flex;\n gap: 14px;\n align-items: center;\n margin-bottom: 12px;\n}\n\n.logo {\n border-radius: 12px;\n display: block;\n}\n\n.product {\n margin: 0;\n font-size: 13px;\n font-weight: 650;\n letter-spacing: 0.04em;\n text-transform: uppercase;\n color: var(--lw-auth-theme);\n}\n\n.title {\n margin: 2px 0 0;\n font-size: 22px;\n font-weight: 700;\n line-height: 1.25;\n}\n\n.subtitle {\n margin: 0 0 18px;\n font-size: 14px;\n line-height: 1.5;\n color: $muted;\n}\n\n.form {\n display: grid;\n gap: 10px;\n}\n\n.channelTabs {\n display: grid;\n grid-template-columns: 1fr 1fr;\n gap: 6px;\n margin-bottom: 2px;\n}\n\n.channelTab {\n border: 1px solid $border;\n border-radius: $radius-md;\n padding: 8px 10px;\n font-size: 13px;\n font-weight: 650;\n cursor: pointer;\n color: $muted;\n background: $surface;\n\n &:disabled {\n opacity: 0.65;\n cursor: not-allowed;\n }\n}\n\n.channelTabActive {\n color: var(--lw-auth-theme-deep);\n border-color: var(--lw-auth-theme);\n background: color-mix(in srgb, var(--lw-auth-theme) 10%, #fff);\n}\n\n.codeRow {\n display: grid;\n grid-template-columns: 1fr auto;\n gap: 8px;\n align-items: stretch;\n}\n\n.codeInput {\n min-width: 0;\n}\n\n.secondaryBtn {\n border: 1px solid $border-soft;\n border-radius: $radius-md;\n padding: 0 12px;\n font-size: 13px;\n font-weight: 650;\n cursor: pointer;\n color: $ink;\n background: #fff;\n white-space: nowrap;\n\n &:disabled {\n opacity: 0.65;\n cursor: not-allowed;\n }\n}\n\n.socialStack {\n display: grid;\n grid-template-columns: repeat(2, minmax(0, 1fr));\n gap: 10px;\n font-size: 12px;\n}\n\n.input {\n width: 100%;\n box-sizing: border-box;\n border: 1px solid $border;\n border-radius: $radius-md;\n padding: 10px 12px;\n font-size: 14px;\n outline: none;\n background: $surface;\n\n &:focus {\n border-color: var(--lw-auth-theme);\n }\n\n &:disabled {\n opacity: 0.65;\n cursor: not-allowed;\n }\n}\n\n.passwordField {\n position: relative;\n display: flex;\n align-items: center;\n}\n\n.passwordInput {\n padding-right: 42px;\n}\n\n.passwordToggle {\n position: absolute;\n right: 4px;\n top: 50%;\n transform: translateY(-50%);\n z-index: 1;\n display: inline-flex;\n align-items: center;\n justify-content: center;\n width: 36px;\n height: 36px;\n border: none;\n border-radius: $radius-sm;\n padding: 0;\n color: #5a6b76;\n background: transparent;\n cursor: pointer;\n\n &:hover:not(:disabled) {\n color: var(--lw-auth-theme);\n background: color-mix(in srgb, var(--lw-auth-theme) 12%, transparent);\n }\n\n &:focus-visible {\n outline: 2px solid var(--lw-auth-theme);\n outline-offset: 1px;\n }\n\n &:disabled {\n opacity: 0.65;\n cursor: not-allowed;\n }\n}\n\n.primaryBtn {\n border: none;\n border-radius: $radius-md;\n padding: 11px 14px;\n font-size: 14px;\n font-weight: 650;\n cursor: pointer;\n color: #fff;\n background: linear-gradient(135deg, var(--lw-auth-theme) 0%, var(--lw-auth-theme-deep) 100%);\n\n &:disabled {\n opacity: 0.65;\n cursor: not-allowed;\n }\n}\n\n.socialBtn {\n width: 100%;\n min-width: 0;\n display: flex;\n align-items: center;\n justify-content: center;\n gap: 8px;\n border: 1px solid $border-soft;\n border-radius: $radius-md;\n padding: 11px 10px;\n font-size: 14px;\n font-weight: 650;\n cursor: pointer;\n color: $ink;\n background: #fff;\n\n &:disabled {\n opacity: 0.65;\n cursor: not-allowed;\n }\n}\n\n.socialLogo {\n flex-shrink: 0;\n display: block;\n}\n\n.logoFallback {\n width: 18px;\n height: 18px;\n border-radius: $radius-sm;\n background: color-mix(in srgb, var(--lw-auth-theme) 14%, #fff);\n color: var(--lw-auth-theme-deep);\n font-size: 11px;\n font-weight: 700;\n display: inline-flex;\n align-items: center;\n justify-content: center;\n flex-shrink: 0;\n}\n\n.cancelBtn {\n margin-top: 10px;\n width: 100%;\n border: none;\n background: transparent;\n color: #5a6b76;\n font-size: 13px;\n cursor: pointer;\n padding: 8px;\n\n &:disabled {\n opacity: 0.65;\n cursor: not-allowed;\n }\n}\n\n.divider {\n display: flex;\n align-items: center;\n gap: 10px;\n margin: 14px 0;\n color: $divider;\n}\n\n.dividerLine {\n flex: 1;\n height: 1px;\n background: $line;\n}\n\n.dividerText {\n font-size: 12px;\n text-transform: uppercase;\n letter-spacing: 0.08em;\n}\n\n.hint {\n margin: 10px 0 0;\n font-size: 12px;\n color: $hint;\n line-height: 1.45;\n}\n\n.domainsHint {\n margin: -2px 0 0;\n font-size: 12px;\n line-height: 1.45;\n color: $muted;\n word-break: break-word;\n}\n\n.switchMode {\n margin: 12px 0 0;\n text-align: center;\n}\n\n.switchModeBtn {\n border: none;\n background: transparent;\n color: var(--lw-auth-theme);\n font-size: 13px;\n font-weight: 650;\n cursor: pointer;\n padding: 4px 8px;\n text-decoration: underline;\n text-underline-offset: 3px;\n\n &:disabled {\n opacity: 0.65;\n cursor: not-allowed;\n }\n}\n\n.error {\n margin: 12px 0 0;\n font-size: 13px;\n color: $danger;\n line-height: 1.4;\n}\n\n.consent {\n margin: 12px 0 0;\n font-size: 13px;\n line-height: 1.45;\n color: $ink;\n}\n\n.consentInvalid {\n margin: 12px -8px 0;\n padding: 8px;\n border: 1px solid $danger;\n border-radius: $radius-md;\n background: rgba(180, 35, 24, 0.06);\n}\n\n.consentError {\n margin: 8px 0 0;\n font-size: 13px;\n font-weight: 650;\n line-height: 1.4;\n color: $danger;\n}\n\n.consentLinks {\n margin: 0;\n a {\n color: var(--lw-auth-theme);\n }\n}\n\n.footer {\n margin-top: 18px;\n padding-top: 12px;\n border-top: 1px solid $footer-line;\n font-size: 12px;\n color: $hint;\n display: flex;\n gap: 8px;\n justify-content: center;\n}\n\n@media (max-width: 420px) {\n .panel {\n padding: 22px 16px 18px;\n }\n}\n",".switch {\n position: relative;\n display: inline-flex;\n}\n\n.trigger {\n display: inline-flex;\n align-items: center;\n gap: 6px;\n height: 32px;\n padding: 0 10px 0 8px;\n border: 1px solid rgba(15, 23, 42, 0.12);\n border-radius: 999px;\n background: rgba(255, 255, 255, 0.86);\n color: #243044;\n font: inherit;\n font-size: 13px;\n line-height: 1;\n cursor: pointer;\n backdrop-filter: blur(8px);\n\n &:hover,\n &[aria-expanded=\"true\"] {\n border-color: var(--lw-login-accent, #1677ff);\n color: #0f172a;\n }\n}\n\n.icon {\n width: 14px;\n height: 14px;\n display: block;\n}\n\n.caret {\n width: 10px;\n height: 10px;\n opacity: 0.65;\n}\n\n.menu {\n position: absolute;\n top: calc(100% + 6px);\n right: 0;\n z-index: 20;\n min-width: 168px;\n margin: 0;\n padding: 6px;\n list-style: none;\n border-radius: 12px;\n background: #fff;\n box-shadow: 0 12px 40px rgba(15, 23, 42, 0.16);\n}\n\n.item {\n display: block;\n width: 100%;\n border: 0;\n border-radius: 8px;\n padding: 8px 10px;\n background: transparent;\n color: #1f2937;\n font: inherit;\n font-size: 14px;\n text-align: left;\n cursor: pointer;\n\n &:hover {\n background: #f3f6fb;\n }\n}\n\n.itemActive {\n background: color-mix(in srgb, var(--lw-login-accent, #1677ff) 14%, #fff);\n color: var(--lw-login-accent, #1677ff);\n font-weight: 650;\n}\n\n.onDark {\n border-color: rgba(255, 255, 255, 0.22);\n background: rgba(15, 23, 42, 0.28);\n color: rgba(255, 255, 255, 0.92);\n\n &:hover,\n &[aria-expanded=\"true\"] {\n border-color: rgba(255, 255, 255, 0.55);\n color: #fff;\n }\n}\n",".canvas {\n --lw-login-accent: #1677ff;\n position: relative;\n min-height: 100dvh;\n display: grid;\n place-items: center;\n padding: 56px 20px 24px;\n overflow: hidden;\n background:\n radial-gradient(900px 480px at 8% -8%, color-mix(in srgb, var(--lw-login-accent) 28%, transparent), transparent 58%),\n radial-gradient(720px 420px at 100% 12%, color-mix(in srgb, var(--lw-login-accent) 16%, transparent), transparent 52%),\n linear-gradient(165deg, var(--lw-login-bg-a, #f4f7fb) 0%, var(--lw-login-bg-b, #e7eef6) 100%);\n color: var(--lw-login-ink, #122033);\n}\n\n.canvas[data-tone=\"console\"] {\n --lw-login-accent: #7eb6ff;\n --lw-login-bg-a: #0e1726;\n --lw-login-bg-b: #1a2740;\n --lw-login-ink: #e8eef8;\n --lw-login-grid: rgba(255, 255, 255, 0.05);\n}\n\n.canvas[data-tone=\"vista\"] {\n --lw-login-accent: #1677ff;\n --lw-login-bg-a: #f4f7fb;\n --lw-login-bg-b: #dde7f0;\n --lw-login-grid: rgba(11, 18, 32, 0.045);\n}\n\n.canvas[data-tone=\"data\"] {\n --lw-login-accent: #7c3aed;\n --lw-login-bg-a: #0a0f1e;\n --lw-login-bg-b: #0a0f1e;\n --lw-login-ink: #e8eefc;\n --lw-login-grid: rgba(255, 255, 255, 0.045);\n}\n\n.canvas[data-tone=\"edu\"] {\n --lw-login-accent: #7ec8ff;\n --lw-login-bg-a: #0a348c;\n --lw-login-bg-b: #1d7aef;\n --lw-login-ink: #f4f8ff;\n --lw-login-grid: rgba(255, 255, 255, 0.07);\n}\n\n.grid {\n position: absolute;\n inset: 0;\n pointer-events: none;\n background-image:\n linear-gradient(var(--lw-login-grid, rgba(15, 23, 42, 0.04)) 1px, transparent 1px),\n linear-gradient(90deg, var(--lw-login-grid, rgba(15, 23, 42, 0.04)) 1px, transparent 1px);\n background-size: 48px 48px;\n mask-image: radial-gradient(ellipse at center, #000 18%, transparent 74%);\n}\n\n.lang {\n position: fixed;\n top: 14px;\n right: 16px;\n z-index: 5;\n}\n\n.decor {\n position: absolute;\n inset: 0;\n pointer-events: none;\n z-index: 0;\n}\n\n.slot {\n position: relative;\n z-index: 1;\n width: min(440px, 100%);\n}\n\n.slotFill {\n width: min(1120px, 100%);\n}\n\n@media (max-width: 720px) {\n .canvas {\n display: flex;\n flex-direction: column;\n align-items: center;\n justify-content: flex-start;\n overflow-x: hidden;\n overflow-y: auto;\n padding: 72px 16px 28px;\n }\n\n .lang {\n top: 12px;\n right: 12px;\n }\n}\n\n@media (max-width: 420px) {\n .canvas {\n padding: 64px 12px 20px;\n }\n}\n"],"mappings":"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","names":["panel","brand","logo","product","title","subtitle","form","channelTabs","channelTab","channelTabActive","codeRow","codeInput","secondaryBtn","socialStack","input","passwordField","passwordInput","passwordToggle","primaryBtn","socialBtn","socialLogo","logoFallback","cancelBtn","divider","dividerLine","dividerText","hint","domainsHint","switchMode","switchModeBtn","error","consent","consentInvalid","consentError","consentLinks","footer","switch","trigger","icon","caret","menu","item","itemActive","onDark","canvas","grid","lang","decor","slot","slotFill"]}
|
package/dist/index.d.ts
CHANGED
|
@@ -125,8 +125,14 @@ interface ExperiencePasswordSignInInput {
|
|
|
125
125
|
interface ExperiencePasswordSignInResult {
|
|
126
126
|
/** Continue URL from Experience submit (complete OIDC interaction). */
|
|
127
127
|
redirectTo?: string;
|
|
128
|
+
/** Password succeeded, but Logto still requires an authenticator code. */
|
|
129
|
+
mfaRequired?: boolean;
|
|
128
130
|
raw?: unknown;
|
|
129
131
|
}
|
|
132
|
+
interface ExperienceMfaTotpInput {
|
|
133
|
+
apiBase: string;
|
|
134
|
+
code: string;
|
|
135
|
+
}
|
|
130
136
|
/** Same OIDC bootstrap fields as sign-in; username must match Logto username rules. */
|
|
131
137
|
type ExperiencePasswordSignUpInput = ExperiencePasswordSignInInput & {
|
|
132
138
|
/** Optional CAPTCHA token for Logto bot protection (Turnstile / reCAPTCHA). */
|
|
@@ -189,6 +195,8 @@ interface LoginExperienceAdapter {
|
|
|
189
195
|
readonly provider: string;
|
|
190
196
|
readonly capabilities: readonly LoginExperienceCapability[];
|
|
191
197
|
experiencePasswordSignIn?(input: ExperiencePasswordSignInInput): Promise<ExperiencePasswordSignInResult>;
|
|
198
|
+
/** Finish a pending TOTP challenge on the current Experience session, then submit. */
|
|
199
|
+
experienceVerifyTotp?(input: ExperienceMfaTotpInput): Promise<ExperiencePasswordSignInResult>;
|
|
192
200
|
/**
|
|
193
201
|
* Self-register with username + password (Logto Register + NewPasswordIdentity).
|
|
194
202
|
* Email/phone sign-up needs verification codes — not covered by this method.
|
|
@@ -295,6 +303,12 @@ declare function fetchRegisterEmailPolicy(apiBase: string, init?: RequestInit):
|
|
|
295
303
|
*/
|
|
296
304
|
|
|
297
305
|
declare function isLogtoRegisterUsername(value: string): boolean;
|
|
306
|
+
declare class ExperienceApiError extends Error {
|
|
307
|
+
readonly status: number;
|
|
308
|
+
readonly code: string;
|
|
309
|
+
constructor(status: number, code: string, message: string);
|
|
310
|
+
}
|
|
311
|
+
declare function isMfaVerificationRequired(error: unknown): boolean;
|
|
298
312
|
/**
|
|
299
313
|
* Force authorize onto the Experience/SPA origin so Set-Cookie lands on the
|
|
300
314
|
* same host as subsequent `/api/experience` calls (dev proxy strips Domain).
|
|
@@ -308,6 +322,8 @@ declare class LogtoExperienceAdapter implements LoginExperienceAdapter {
|
|
|
308
322
|
readonly capabilities: readonly LoginExperienceCapability[];
|
|
309
323
|
emailPolicy: RegisterEmailPolicy;
|
|
310
324
|
experiencePasswordSignIn(input: ExperiencePasswordSignInInput): Promise<ExperiencePasswordSignInResult>;
|
|
325
|
+
/** Verify the user's existing authenticator code, then submit the interaction. */
|
|
326
|
+
experienceVerifyTotp(input: ExperienceMfaTotpInput): Promise<ExperiencePasswordSignInResult>;
|
|
311
327
|
/**
|
|
312
328
|
* Register with username + password via NewPasswordIdentity.
|
|
313
329
|
* Email/phone self-register requires verification codes — use social or invite instead.
|
|
@@ -421,6 +437,32 @@ interface LuminaryAuthProviderProps {
|
|
|
421
437
|
declare function LuminaryAuthProvider({ config: configProp, children }: LuminaryAuthProviderProps): react.JSX.Element;
|
|
422
438
|
declare function useLuminaryAuth(): LuminaryAuthContextValue;
|
|
423
439
|
|
|
440
|
+
declare const DEFAULT_PLATFORM_TERMS_URL = "https://luminaryworks.dev/legal/terms";
|
|
441
|
+
declare const DEFAULT_PLATFORM_PRIVACY_URL = "https://luminaryworks.dev/legal/privacy";
|
|
442
|
+
type LoginLegalUrls = {
|
|
443
|
+
platformTermsUrl: string;
|
|
444
|
+
platformPrivacyUrl: string;
|
|
445
|
+
productTermsUrl: string;
|
|
446
|
+
productPrivacyUrl: string;
|
|
447
|
+
};
|
|
448
|
+
type LoginLegalDocument = {
|
|
449
|
+
id: string;
|
|
450
|
+
href: string;
|
|
451
|
+
label: string;
|
|
452
|
+
};
|
|
453
|
+
/**
|
|
454
|
+
* Login clickwrap URLs. The checkbox links the product terms and the privacy
|
|
455
|
+
* notice. Product terms must incorporate the LuminaryWorks platform terms by
|
|
456
|
+
* reference; those platform URLs stay configurable for the legal pages.
|
|
457
|
+
*/
|
|
458
|
+
declare function readLoginLegalConfigFromEnv(env: Record<string, string | undefined>, defaults?: Partial<LoginLegalUrls>): LoginLegalUrls;
|
|
459
|
+
declare function buildLoginLegalDocuments(urls: LoginLegalUrls, labels: {
|
|
460
|
+
/** Kept so existing callers compile. Not shown; product terms incorporate it. */
|
|
461
|
+
platformTerms?: string;
|
|
462
|
+
productTerms: string;
|
|
463
|
+
privacy: string;
|
|
464
|
+
}): LoginLegalDocument[];
|
|
465
|
+
|
|
424
466
|
/** @deprecated Prefer dynamic connectors from IdP; kept for prop typing. */
|
|
425
467
|
type SocialProviderTarget = string;
|
|
426
468
|
interface HeadlessLoginLabels {
|
|
@@ -468,6 +510,13 @@ interface HeadlessLoginLabels {
|
|
|
468
510
|
* and return to the app (loopback / deep link callback).
|
|
469
511
|
*/
|
|
470
512
|
waitingExternalBrowser?: string;
|
|
513
|
+
/** Shown when password/social/SSO is blocked because product terms are not accepted. */
|
|
514
|
+
consentRequired?: string;
|
|
515
|
+
mfaTitle?: string;
|
|
516
|
+
mfaSubtitle?: string;
|
|
517
|
+
mfaCodePlaceholder?: string;
|
|
518
|
+
mfaSubmit?: string;
|
|
519
|
+
mfaBack?: string;
|
|
471
520
|
}
|
|
472
521
|
interface HeadlessLoginPanelProps {
|
|
473
522
|
config: Partial<LuminaryIdpConfig>;
|
|
@@ -478,7 +527,7 @@ interface HeadlessLoginPanelProps {
|
|
|
478
527
|
logoSrc?: string;
|
|
479
528
|
labels?: HeadlessLoginLabels;
|
|
480
529
|
/**
|
|
481
|
-
* Card copy locale
|
|
530
|
+
* Card copy locale. Unknown tags fall back to English.
|
|
482
531
|
* Explicit `labels` still override individual keys.
|
|
483
532
|
*/
|
|
484
533
|
locale?: string;
|
|
@@ -535,6 +584,29 @@ interface HeadlessLoginPanelProps {
|
|
|
535
584
|
onOidcSession?: (session: LuminaryAuthSession, returnUrl?: string) => Promise<void> | void;
|
|
536
585
|
/** When Experience returns redirectTo, open it (default: same-tab assign). */
|
|
537
586
|
onExperienceRedirect?: (redirectTo: string) => void;
|
|
587
|
+
/**
|
|
588
|
+
* Product terms / remember-account controls. Rendered after the password form
|
|
589
|
+
* and before Google/GitHub so clickwrap sits next to every sign-in action.
|
|
590
|
+
* Prefer this when the product needs extra checkboxes (remember identifier).
|
|
591
|
+
*/
|
|
592
|
+
consent?: ReactNode;
|
|
593
|
+
/**
|
|
594
|
+
* Configurable legal links (LuminaryWorks platform ToS + product ToS + privacy).
|
|
595
|
+
* Shown only when `consent` is omitted. Use `readLoginLegalConfigFromEnv` +
|
|
596
|
+
* `buildLoginLegalDocuments` so URLs stay env-driven.
|
|
597
|
+
*/
|
|
598
|
+
consentDocuments?: LoginLegalDocument[];
|
|
599
|
+
/**
|
|
600
|
+
* When `false`, password, register, hosted SSO, and social buttons do not start
|
|
601
|
+
* IdP — products must collect an unchecked terms checkbox first.
|
|
602
|
+
* Default `true` (no gate) for consoles that do not show product ToS yet.
|
|
603
|
+
*/
|
|
604
|
+
consentOk?: boolean;
|
|
605
|
+
/** Called when an action is blocked because `consentOk` is false. */
|
|
606
|
+
onConsentBlocked?: () => void;
|
|
607
|
+
/** Prefill identifier (remember-account). Never pass a stored password. */
|
|
608
|
+
initialIdentifier?: string;
|
|
609
|
+
onIdentifierChange?: (identifier: string) => void;
|
|
538
610
|
footer?: ReactNode;
|
|
539
611
|
className?: string;
|
|
540
612
|
style?: CSSProperties;
|
|
@@ -546,7 +618,9 @@ interface HeadlessLoginPanelProps {
|
|
|
546
618
|
}
|
|
547
619
|
/** Shared default accent for product login panels (shared/brand --lw-primary). */
|
|
548
620
|
declare const DEFAULT_LOGIN_THEME_COLOR = "#1677ff";
|
|
549
|
-
|
|
621
|
+
/** Unified login card width. Product pages must not invent a second width. */
|
|
622
|
+
declare const LOGIN_CARD_MAX_WIDTH = 400;
|
|
623
|
+
declare function HeadlessLoginPanel({ config, experienceAdapter: experienceAdapterProp, productName, logoSrc, labels: labelsProp, locale, returnUrl, mode, openExternalUrl, showSocialConnectors, showRegister, registerEmailPolicy: registerEmailPolicyProp, fetchRegisterPolicy, getCaptchaToken, socialProviders, showCancel, onCancel, onOidcSession, onExperienceRedirect, consent, consentDocuments, consentOk, onConsentBlocked, initialIdentifier, onIdentifierChange, footer, className, style, themeColor, }: HeadlessLoginPanelProps): react.JSX.Element;
|
|
550
624
|
|
|
551
625
|
interface ReauthOverlayProps {
|
|
552
626
|
config: Partial<LuminaryIdpConfig>;
|
|
@@ -590,12 +664,13 @@ declare function useAuthGate(): AuthGateContextValue;
|
|
|
590
664
|
declare function useAuthGateOptional(): AuthGateContextValue | null;
|
|
591
665
|
|
|
592
666
|
/** Locales shipped with the shared login card. Products may pass a wider menu. */
|
|
593
|
-
type LoginLocale = "
|
|
667
|
+
type LoginLocale = "zh-CN" | "zh-TW" | "ja" | "ko" | "en" | "pt" | "nl" | "it" | "es" | "fr";
|
|
594
668
|
interface LoginLocaleOption {
|
|
595
669
|
code: string;
|
|
596
670
|
label: string;
|
|
597
671
|
short: string;
|
|
598
672
|
}
|
|
673
|
+
/** Menu order: CJK and English first; long European names, then Spanish and French. */
|
|
599
674
|
declare const DEFAULT_LOGIN_LOCALES: readonly LoginLocaleOption[];
|
|
600
675
|
/** Normalize product locale tags (`zh`, `zh-Hans`) onto the card dictionary. */
|
|
601
676
|
declare function normalizeLoginLocale(locale: string | undefined): LoginLocale;
|
|
@@ -646,4 +721,4 @@ declare function createPostLoginPathHelpers(options: PostLoginPathOptions): {
|
|
|
646
721
|
isUnsafeReturnPath: (path: string) => boolean;
|
|
647
722
|
};
|
|
648
723
|
|
|
649
|
-
export { type AuthGateConfig, type AuthGatePhase, AuthGateProvider, type AuthGateProviderProps, type AuthGateSnapshot, DEFAULT_DISPOSABLE_EMAIL_BLOCKLIST, DEFAULT_LOGIN_LOCALES, DEFAULT_LOGIN_THEME_COLOR, DEFAULT_REGISTER_EMAIL_ALLOWLIST, type ExperienceEmailSignUpCompleteInput, type ExperienceEmailSignUpSendCodeInput, type ExperienceEmailSignUpSendCodeResult, type ExperienceIdentifierType, type ExperiencePasswordSignInInput, type ExperiencePasswordSignInResult, type ExperiencePasswordSignUpInput, type ExperiencePasswordSignUpResult, type ExperienceSocialConnector, type FetchSocialConnectorsInput, type HeadlessLoginLabels, HeadlessLoginPanel, type HeadlessLoginPanelProps, HostedOidcExperienceAdapter, LOGIN_EXPERIENCE_CAPABILITIES, LoginCanvas, type LoginCanvasProps, type LoginCanvasTone, type LoginExperienceAdapter, type LoginExperienceCapability, type LoginExperienceProvider, LoginLanguageSwitcher, type LoginLanguageSwitcherProps, type LoginLocale, type LoginLocaleOption, LogtoExperienceAdapter, LuminaryAuthProvider, type LuminaryAuthProviderProps, type LuminaryAuthSession, type LuminaryIdpConfig, type PostLoginPathOptions, type PublicRegisterPolicyResponse, ReauthOverlay, type ReauthOverlayProps, type RegisterEmailDecision, type RegisterEmailMode, type RegisterEmailPolicy, type RegisterEmailPolicyInput, type SignInOptions, type SocialProviderTarget, type SocialSignInRequest, type UnauthorizedDisposition, authGate, clearStoredSession, createLoginExperienceAdapter, createLogtoDirectSignInRequest, createPostLoginPathHelpers, createUserManager, emailDomain, evaluateRegisterEmail, experiencePasswordSignIn, fetchRegisterEmailPolicy, fetchSocialConnectors, formatAllowedEmailDomains, getCurrentUser, getStoredAccessToken, handleSignInCallback, handleSignInPopupCallback, isIdpConfigured, isLogtoRegisterUsername, isOidcPopupWindow, isValidEmailShape, loginLabels, normalizeLoginLocale, normalizeRegisterEmailMode, prepareSignInRequestUrl, readIdpConfigFromEnv, readRegisterEmailPolicyFromEnv, registerEmailDomainsHint, registerEmailRejectionMessage, resetUserManager, resolveExperienceApiBase, resolveIssuer, resolveLoginExperienceAdapter, resolveLoginExperienceProviderFromEnv, resolveRegisterEmailPolicy, sameOriginAuthorizeUrl, signInPopup, signInRedirect, signOutRedirect, useAuthGate, useAuthGateOptional, useLuminaryAuth, withAuthGateRetry };
|
|
724
|
+
export { type AuthGateConfig, type AuthGatePhase, AuthGateProvider, type AuthGateProviderProps, type AuthGateSnapshot, DEFAULT_DISPOSABLE_EMAIL_BLOCKLIST, DEFAULT_LOGIN_LOCALES, DEFAULT_LOGIN_THEME_COLOR, DEFAULT_PLATFORM_PRIVACY_URL, DEFAULT_PLATFORM_TERMS_URL, DEFAULT_REGISTER_EMAIL_ALLOWLIST, ExperienceApiError, type ExperienceEmailSignUpCompleteInput, type ExperienceEmailSignUpSendCodeInput, type ExperienceEmailSignUpSendCodeResult, type ExperienceIdentifierType, type ExperienceMfaTotpInput, type ExperiencePasswordSignInInput, type ExperiencePasswordSignInResult, type ExperiencePasswordSignUpInput, type ExperiencePasswordSignUpResult, type ExperienceSocialConnector, type FetchSocialConnectorsInput, type HeadlessLoginLabels, HeadlessLoginPanel, type HeadlessLoginPanelProps, HostedOidcExperienceAdapter, LOGIN_CARD_MAX_WIDTH, LOGIN_EXPERIENCE_CAPABILITIES, LoginCanvas, type LoginCanvasProps, type LoginCanvasTone, type LoginExperienceAdapter, type LoginExperienceCapability, type LoginExperienceProvider, LoginLanguageSwitcher, type LoginLanguageSwitcherProps, type LoginLegalDocument, type LoginLegalUrls, type LoginLocale, type LoginLocaleOption, LogtoExperienceAdapter, LuminaryAuthProvider, type LuminaryAuthProviderProps, type LuminaryAuthSession, type LuminaryIdpConfig, type PostLoginPathOptions, type PublicRegisterPolicyResponse, ReauthOverlay, type ReauthOverlayProps, type RegisterEmailDecision, type RegisterEmailMode, type RegisterEmailPolicy, type RegisterEmailPolicyInput, type SignInOptions, type SocialProviderTarget, type SocialSignInRequest, type UnauthorizedDisposition, authGate, buildLoginLegalDocuments, clearStoredSession, createLoginExperienceAdapter, createLogtoDirectSignInRequest, createPostLoginPathHelpers, createUserManager, emailDomain, evaluateRegisterEmail, experiencePasswordSignIn, fetchRegisterEmailPolicy, fetchSocialConnectors, formatAllowedEmailDomains, getCurrentUser, getStoredAccessToken, handleSignInCallback, handleSignInPopupCallback, isIdpConfigured, isLogtoRegisterUsername, isMfaVerificationRequired, isOidcPopupWindow, isValidEmailShape, loginLabels, normalizeLoginLocale, normalizeRegisterEmailMode, prepareSignInRequestUrl, readIdpConfigFromEnv, readLoginLegalConfigFromEnv, readRegisterEmailPolicyFromEnv, registerEmailDomainsHint, registerEmailRejectionMessage, resetUserManager, resolveExperienceApiBase, resolveIssuer, resolveLoginExperienceAdapter, resolveLoginExperienceProviderFromEnv, resolveRegisterEmailPolicy, sameOriginAuthorizeUrl, signInPopup, signInRedirect, signOutRedirect, useAuthGate, useAuthGateOptional, useLuminaryAuth, withAuthGateRetry };
|