@abyss-project/commons-front-core 9.6.0 → 10.0.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/README.md +5 -1
- package/dist/{AbyssCookieConsentProvider-D-HRRYCd.js → AbyssCookieConsentProvider-BypueFP-.js} +26 -4
- package/dist/{CookieConsentSettings.component-iG_abYsq.js → CookieConsentSettings.component-CYmew9vg.js} +1 -1
- package/dist/auth/client/web-bridge.d.ts +6 -0
- package/dist/auth/components/AuthFlow/AuthFlow.component.d.ts +9 -2
- package/dist/auth/components/AuthFlow/auth-flow.types.d.ts +5 -0
- package/dist/auth/components/AuthFlow/steps/EmailStep.component.d.ts +4 -1
- package/dist/auth/components/index.d.ts +1 -0
- package/dist/auth/components/shared/auth-errors.d.ts +1 -0
- package/dist/auth/components/shared/auth-errors.spec.d.ts +1 -0
- package/dist/auth-client.js +1 -1
- package/dist/components/inputs/DropZone/DropZone.d.ts +6 -1
- package/dist/components/layers/ProductTour/product-tour-geometry.d.ts +2 -0
- package/dist/components/structure/AccountMenu/AccountMenu.d.ts +2 -1
- package/dist/components/structure/AppShell/app-shell.types.d.ts +5 -0
- package/dist/cookie-consent.js +2 -2
- package/dist/{design-theme-Cz9YXXYF.js → design-theme-uRG0VfEo.js} +1546 -1544
- package/dist/hooks/use-rich-intl.hook.d.ts +70 -0
- package/dist/{index-Bx3HHL-R.js → index-1XaO6yqN.js} +2 -2
- package/dist/{index-CfMACXTF.js → index-B-gziyiQ.js} +2 -2
- package/dist/{index-122nruW2.js → index-B-o5nMSp.js} +2 -2
- package/dist/{index-hmLJVQI5.js → index-B2hC6MII.js} +2 -2
- package/dist/{index-ClFFE5ao.js → index-BGFuwS_Q.js} +2 -2
- package/dist/{index-D4RSXnjv.js → index-BWlJEtPU.js} +2 -2
- package/dist/{index-C4zd0qai.js → index-BXr7rmpX.js} +3 -3
- package/dist/{index-DIW1zdfO.js → index-BlOn2KR_.js} +2 -2
- package/dist/{index-BGjmUj-Y.js → index-BqwZB633.js} +4 -4
- package/dist/{index-71ZKDT76.js → index-Bzvs4paS.js} +4 -4
- package/dist/{index-y2047KCu.js → index-C7vs9FFj.js} +2 -2
- package/dist/{index-D-Sa8nQo.js → index-Cn4VznqA.js} +3 -3
- package/dist/{index-D5lR_Znk.js → index-CxRoV826.js} +2 -2
- package/dist/{index-Dodsh0PI.js → index-D6SwHpGJ.js} +3 -3
- package/dist/{index-BmNsW-7e.js → index-DMm4DUwE.js} +4 -4
- package/dist/{index-uctTt51v.js → index-DSxaBHTZ.js} +2 -2
- package/dist/{index-DNe1tEo2.js → index-DXsaB2jy.js} +6496 -6481
- package/dist/{index-B1LNfIcu.js → index-D_FaSb6y.js} +2 -2
- package/dist/{index-ri1JKKHf.js → index-QOUuevuY.js} +2 -2
- package/dist/{index-DP-wuPBm.js → index-cCCQwSgM.js} +2 -2
- package/dist/{index-CtIh_DWT.js → index-eDLp-yzn.js} +3 -3
- package/dist/{index-XQsb7DVh.js → index-oTUDJjQw.js} +1 -1
- package/dist/index.js +5218 -5092
- package/dist/legacy/components/Layouts/AbyssThemeToggle/AbyssThemeToggle.component.d.ts +2 -1
- package/dist/legacy/components/Layouts/AbyssThemeToggle/AbyssThemeToggle.component.spec.d.ts +1 -0
- package/dist/legacy.js +12 -12
- package/dist/rum/AbyssRumProvider.d.ts +5 -2
- package/dist/rum/abyss-rum-report.context.d.ts +14 -0
- package/dist/rum/index.d.ts +1 -0
- package/dist/rum/report-locale.d.ts +3 -0
- package/dist/rum/report-locale.spec.d.ts +1 -0
- package/dist/rum/track-key-action.d.ts +7 -0
- package/dist/rum/track-key-action.spec.d.ts +1 -0
- package/dist/translations/en.d.ts +11 -0
- package/dist/translations/fr.d.ts +11 -0
- package/dist/{use-auth.hook-oRxzI95f.js → use-auth.hook-D8vfSYRv.js} +101 -101
- package/package.json +9 -9
- package/test-results/catalog/.last-run.json +0 -4
package/README.md
CHANGED
|
@@ -27,7 +27,7 @@ Voir la [documentation produit](https://docs.abyss-project.fr/abyss-project) pou
|
|
|
27
27
|
|
|
28
28
|
## RUM
|
|
29
29
|
|
|
30
|
-
Le RUM navigateur d'un front (SDK `@abyss-project/monitor-browser`, peer `^1.2
|
|
30
|
+
Le RUM navigateur d'un front (SDK `@abyss-project/monitor-browser`, peer `^1.3.2` ; `setContact` et `setTheme` demandent la version publiée par #285 F) se démarre par `AbyssRumProvider`, monté **sous** `AbyssCookieConsentProvider`, sous le `ThemeProvider` MUI et, quand le front en a un, sous `AuthProvider` :
|
|
31
31
|
|
|
32
32
|
```tsx
|
|
33
33
|
<AbyssErrorBoundary appName="abyss-cloud">
|
|
@@ -47,6 +47,10 @@ Le RUM navigateur d'un front (SDK `@abyss-project/monitor-browser`, peer `^1.2.0
|
|
|
47
47
|
- **Acteur.** Sous `AuthProvider`, l'acteur de la session est l'id de l'utilisateur connecté, `null` à la déconnexion, inchangé pendant le chargement de la session. Sans `AuthProvider`, aucun acteur.
|
|
48
48
|
- **`feedbackTicket`** (`intakeSlug`, `internalTicketSectionId`, `appName`, `sessionUrl(sessionId, offsetMs)`, `locale?()`) : chaque retour utilisateur enregistré par Monitor devient un ticket Internal Tickets, par l'intake public d'abyss-console (`fileInternalTicketIntake`, peer `@abyss-project/console` `^12.4.0`, configuré par `AbyssConsoleCore.setConfig` du front). Titre `[<appName>] Retour utilisateur` ; description : le message, l'e-mail, la route et le lien vers la session. Le déclarant est l'e-mail saisi, sinon celui de l'utilisateur connecté ; un retour anonyme sans e-mail ne crée aucun ticket et reste dans Monitor. Un échec de création est journalisé (`console.warn`) et avalé. `locale()` est relue à chaque retour : sa sous-étiquette primaire (`en-GB` → `en`) part comme `locale` de l'intake, la langue des courriels de suivi ; une langue que l'intake ne parle pas (hors `UserLanguage`) n'est pas envoyée.
|
|
49
49
|
- **`onFeedbackSent`** : rappel du front, appelé pour chaque retour enregistré, après le ticket (créé, sauté ou en échec).
|
|
50
|
+
- **Contact (#285 F §7).** Sous `AuthProvider`, `AbyssRum.setContact({ email, name })` reçoit l'e-mail et l'alias de l'utilisateur connecté, `null` à la déconnexion, rien pendant le chargement de la session. Le SDK le garde en mémoire, jamais dans la télémétrie : il pré-remplit « Réponse à … » du signalement et ne part qu'avec un retour. Avec `config={null}`, aucun contact n'est donné.
|
|
51
|
+
- **Thème (#285 F §6.4).** Monté sous le `ThemeProvider` MUI du front, le provider passe à `AbyssRum.setTheme` l'accent (`palette.primary.main`), le rayon (`shape.borderRadius`, borné à 0–48 px) et le mode (`palette.mode`) ; un changement de mode est suivi. Les variables CSS `--abyss-monitor-accent` et `--abyss-monitor-radius` de la page, et l'apparence enregistrée sur une demande de retour, priment.
|
|
52
|
+
- **« Signaler un problème » (#285 F §7).** Avec une `config` non nulle, le provider offre le signalement du SDK aux menus de compte du core placés dessous : `AccountMenu` (après les entrées de l'hôte) et le `AbyssLayoutMenu` legacy (après Facturation) montrent l'entrée « Signaler un problème » / « Report a problem », qui ferme le menu et appelle `AbyssRum.showReportDialog({ locale })` dans la langue du front (`en*` → `RumReportLocale.EN`, sinon `RumReportLocale.FR`). Sans provider ou avec `config={null}`, l'entrée n'existe pas. Elle n'apparaît que tant que `AbyssRum.isReportAvailable()` est vrai — SDK démarré, configuration de l'environnement reçue avec les retours activés (réglage « Retours utilisateurs » dans Monitor) — et le provider la réévalue à chaque `AbyssRum.onConfigChange` : absente avant la réponse de configuration et quand les retours sont coupés.
|
|
53
|
+
- **Actions clés (#285 F).** `trackKeyAction(AbyssKeyActionEvent.X)` enregistre, au point de succès d'une action du front, une action RUM nommée d'après l'événement du catalogue (`board.card.completed`) : une demande de retour déclenchée par une action s'y règle. Sans RUM démarré, l'appel ne fait rien et ne lève jamais.
|
|
50
54
|
- **Erreurs de rendu.** `AbyssErrorBoundary` envoie l'erreur qu'il attrape à `AbyssRum.captureError(error, { source: 'error-boundary' })` ; sans RUM démarré, l'appel ne fait rien.
|
|
51
55
|
|
|
52
56
|
### Construire les options : `buildAbyssRumProviderConfig`
|
package/dist/{AbyssCookieConsentProvider-D-HRRYCd.js → AbyssCookieConsentProvider-BypueFP-.js}
RENAMED
|
@@ -35,6 +35,7 @@ const Ms = (p) => p, Ks = {
|
|
|
35
35
|
TOOLS_SHORT_LINK_COUNT: "Liens courts",
|
|
36
36
|
TOOLS_SHORTLINK_RESOLUTIONS_MONTH: "Clics liens courts",
|
|
37
37
|
MONITOR_WEBHOOK_INVOCATIONS_MONTH: "Webhooks Monitor / mois",
|
|
38
|
+
CONSOLE_WORKFLOW_CREDITS_MONTH: "Crédits d'automatisation Console",
|
|
38
39
|
RUM_SESSIONS_MONTH: "Sessions navigateur Monitor / mois",
|
|
39
40
|
REHYDRATION_CONCURRENT_JOBS: "Réhydratations simultanées",
|
|
40
41
|
REHYDRATION_ACTIVE_GB: "Logs réhydratés (Go)",
|
|
@@ -92,6 +93,7 @@ const Ms = (p) => p, Ks = {
|
|
|
92
93
|
TOOLS_SHORT_LINK_COUNT: "Short links",
|
|
93
94
|
TOOLS_SHORTLINK_RESOLUTIONS_MONTH: "Short link clicks",
|
|
94
95
|
MONITOR_WEBHOOK_INVOCATIONS_MONTH: "Monitor webhooks / month",
|
|
96
|
+
CONSOLE_WORKFLOW_CREDITS_MONTH: "Console automation credits",
|
|
95
97
|
RUM_SESSIONS_MONTH: "Monitor browser sessions / month",
|
|
96
98
|
REHYDRATION_CONCURRENT_JOBS: "Concurrent rehydrations",
|
|
97
99
|
REHYDRATION_ACTIVE_GB: "Rehydrated logs (GB)",
|
|
@@ -443,6 +445,7 @@ const fm = {
|
|
|
443
445
|
ABYSS_PLATFORM: "Plateforme",
|
|
444
446
|
ABYSS_STORAGE: "Stockage",
|
|
445
447
|
ABYSS_MONITOR: "Monitoring",
|
|
448
|
+
ABYSS_CONSOLE: "Automatisation",
|
|
446
449
|
ABYSS_CLOUD: "Cloud",
|
|
447
450
|
ABYSS_CRYPT: "Chiffrement",
|
|
448
451
|
ABYSS_FORM: "Formulaires",
|
|
@@ -511,7 +514,8 @@ const fm = {
|
|
|
511
514
|
settings: "Paramètres",
|
|
512
515
|
billing: "Facturation",
|
|
513
516
|
logout: "Déconnexion",
|
|
514
|
-
family: "Famille"
|
|
517
|
+
family: "Famille",
|
|
518
|
+
"report-problem": "Signaler un problème"
|
|
515
519
|
},
|
|
516
520
|
scope: {
|
|
517
521
|
personal: "Personnel",
|
|
@@ -1017,6 +1021,7 @@ const fm = {
|
|
|
1017
1021
|
service: {
|
|
1018
1022
|
ABYSS_PLATFORM: "Plateforme",
|
|
1019
1023
|
ABYSS_MONITOR: "Abyss Monitor",
|
|
1024
|
+
ABYSS_CONSOLE: "Abyss Console",
|
|
1020
1025
|
ABYSS_STORAGE: "Abyss Storage",
|
|
1021
1026
|
ABYSS_CLOUD: "Abyss Cloud",
|
|
1022
1027
|
ABYSS_CRYPT: "Abyss Crypt",
|
|
@@ -1424,6 +1429,10 @@ const fm = {
|
|
|
1424
1429
|
email: {
|
|
1425
1430
|
title: "Connexion à Abyss",
|
|
1426
1431
|
lede: "Saisissez votre adresse e-mail : nous vous connectons, ou nous créons votre compte.",
|
|
1432
|
+
"back-office": {
|
|
1433
|
+
title: "Connexion au back-office",
|
|
1434
|
+
lede: "Réservé aux comptes administrateurs. Saisissez votre adresse e-mail."
|
|
1435
|
+
},
|
|
1427
1436
|
label: "Adresse e-mail",
|
|
1428
1437
|
submit: "Continuer",
|
|
1429
1438
|
passkey: "Se connecter avec une passkey",
|
|
@@ -1531,6 +1540,7 @@ const fm = {
|
|
|
1531
1540
|
"email-change-unavailable": "Cette adresse ne peut pas être utilisée.",
|
|
1532
1541
|
"reauth-cancelled": "Action annulée : elle demande de confirmer votre identité.",
|
|
1533
1542
|
"session-revoked": "Votre session a pris fin. Reconnectez-vous.",
|
|
1543
|
+
"admin-required": "Cet accès est réservé aux administrateurs.",
|
|
1534
1544
|
"ceremony-cancelled": "Opération annulée.",
|
|
1535
1545
|
"ceremony-unsupported": "Cette méthode n’est pas disponible sur cet appareil.",
|
|
1536
1546
|
"ceremony-no-credential": "Aucune passkey de ce compte sur cet appareil.",
|
|
@@ -1584,6 +1594,7 @@ const fm = {
|
|
|
1584
1594
|
current: "Cet appareil",
|
|
1585
1595
|
platforms: {
|
|
1586
1596
|
web: "Navigateur",
|
|
1597
|
+
admin: "Back-office",
|
|
1587
1598
|
ios: "iPhone / iPad",
|
|
1588
1599
|
android: "Android"
|
|
1589
1600
|
},
|
|
@@ -1839,7 +1850,8 @@ const fm = {
|
|
|
1839
1850
|
"account-menu": {
|
|
1840
1851
|
trigger: "Compte de {name}",
|
|
1841
1852
|
"dark-mode": "Thème sombre",
|
|
1842
|
-
logout: "Se déconnecter"
|
|
1853
|
+
logout: "Se déconnecter",
|
|
1854
|
+
"report-problem": "Signaler un problème"
|
|
1843
1855
|
},
|
|
1844
1856
|
"page-header": {
|
|
1845
1857
|
breadcrumbs: "Fil d’Ariane"
|
|
@@ -2373,6 +2385,7 @@ const fm = {
|
|
|
2373
2385
|
ABYSS_PLATFORM: "Platform",
|
|
2374
2386
|
ABYSS_STORAGE: "Storage",
|
|
2375
2387
|
ABYSS_MONITOR: "Monitoring",
|
|
2388
|
+
ABYSS_CONSOLE: "Automation",
|
|
2376
2389
|
ABYSS_CLOUD: "Cloud",
|
|
2377
2390
|
ABYSS_CRYPT: "Encryption",
|
|
2378
2391
|
ABYSS_FORM: "Forms",
|
|
@@ -2441,7 +2454,8 @@ const fm = {
|
|
|
2441
2454
|
settings: "Settings",
|
|
2442
2455
|
billing: "Billing",
|
|
2443
2456
|
logout: "Log out",
|
|
2444
|
-
family: "Family"
|
|
2457
|
+
family: "Family",
|
|
2458
|
+
"report-problem": "Report a problem"
|
|
2445
2459
|
},
|
|
2446
2460
|
scope: {
|
|
2447
2461
|
personal: "Personal",
|
|
@@ -2947,6 +2961,7 @@ const fm = {
|
|
|
2947
2961
|
service: {
|
|
2948
2962
|
ABYSS_PLATFORM: "Platform",
|
|
2949
2963
|
ABYSS_MONITOR: "Abyss Monitor",
|
|
2964
|
+
ABYSS_CONSOLE: "Abyss Console",
|
|
2950
2965
|
ABYSS_STORAGE: "Abyss Storage",
|
|
2951
2966
|
ABYSS_CLOUD: "Abyss Cloud",
|
|
2952
2967
|
ABYSS_CRYPT: "Abyss Crypt",
|
|
@@ -3354,6 +3369,10 @@ const fm = {
|
|
|
3354
3369
|
email: {
|
|
3355
3370
|
title: "Sign in to Abyss",
|
|
3356
3371
|
lede: "Enter your email address: we sign you in, or create your account.",
|
|
3372
|
+
"back-office": {
|
|
3373
|
+
title: "Back office sign-in",
|
|
3374
|
+
lede: "For administrator accounts only. Enter your email address."
|
|
3375
|
+
},
|
|
3357
3376
|
label: "Email address",
|
|
3358
3377
|
submit: "Continue",
|
|
3359
3378
|
passkey: "Sign in with a passkey",
|
|
@@ -3461,6 +3480,7 @@ const fm = {
|
|
|
3461
3480
|
"email-change-unavailable": "This address cannot be used.",
|
|
3462
3481
|
"reauth-cancelled": "Action cancelled: it requires confirming it is you.",
|
|
3463
3482
|
"session-revoked": "Your session has ended. Sign in again.",
|
|
3483
|
+
"admin-required": "This access is reserved for administrators.",
|
|
3464
3484
|
"ceremony-cancelled": "Cancelled.",
|
|
3465
3485
|
"ceremony-unsupported": "This method is not available on this device.",
|
|
3466
3486
|
"ceremony-no-credential": "No passkey of this account on this device.",
|
|
@@ -3514,6 +3534,7 @@ const fm = {
|
|
|
3514
3534
|
current: "This device",
|
|
3515
3535
|
platforms: {
|
|
3516
3536
|
web: "Browser",
|
|
3537
|
+
admin: "Back office",
|
|
3517
3538
|
ios: "iPhone / iPad",
|
|
3518
3539
|
android: "Android"
|
|
3519
3540
|
},
|
|
@@ -3769,7 +3790,8 @@ const fm = {
|
|
|
3769
3790
|
"account-menu": {
|
|
3770
3791
|
trigger: "Account: {name}",
|
|
3771
3792
|
"dark-mode": "Dark theme",
|
|
3772
|
-
logout: "Log out"
|
|
3793
|
+
logout: "Log out",
|
|
3794
|
+
"report-problem": "Report a problem"
|
|
3773
3795
|
},
|
|
3774
3796
|
"page-header": {
|
|
3775
3797
|
breadcrumbs: "Breadcrumb"
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { jsx as e, jsxs as a } from "react/jsx-runtime";
|
|
2
2
|
import { useState as m, useEffect as C } from "react";
|
|
3
3
|
import { Card as v, CardContent as b, Stack as u, Typography as o, FormControlLabel as l, Box as r, Checkbox as d, Button as M } from "@mui/material";
|
|
4
|
-
import { g as R, u as x } from "./AbyssCookieConsentProvider-
|
|
4
|
+
import { g as R, u as x } from "./AbyssCookieConsentProvider-BypueFP-.js";
|
|
5
5
|
const B = () => {
|
|
6
6
|
const t = R(), { consent: i, save: y } = x(), [h, g] = m((i == null ? void 0 : i.analytics) ?? !1), [k, f] = m((i == null ? void 0 : i.marketing) ?? !1), c = i == null ? void 0 : i.analytics, n = i == null ? void 0 : i.marketing;
|
|
7
7
|
return C(() => {
|
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
import { SessionPlatform } from '@abyss-project/main';
|
|
1
2
|
import { AuthBridge } from './auth-bridge';
|
|
2
3
|
export declare const GOOGLE_IDENTITY_SCRIPT_URL = "https://accounts.google.com/gsi/client";
|
|
3
4
|
export declare const APPLE_ID_SCRIPT_URL = "https://appleid.cdn-apple.com/appleauth/static/jsapi/appleid/1.0/en_US/appleid.auth.js";
|
|
@@ -13,6 +14,11 @@ export interface WebBridgeConfig {
|
|
|
13
14
|
appleServiceId?: string;
|
|
14
15
|
/** Return URL declared on the Services ID; required by Apple JS even in popup mode. */
|
|
15
16
|
appleRedirectUri?: string;
|
|
17
|
+
/**
|
|
18
|
+
* The browser platform of the sessions this bridge opens: `WEB` (default), or `ADMIN` for the
|
|
19
|
+
* back-office, whose sessions the server tells apart from the web ones.
|
|
20
|
+
*/
|
|
21
|
+
platform?: SessionPlatform.WEB | SessionPlatform.ADMIN;
|
|
16
22
|
}
|
|
17
23
|
/** The bridge of every web front: WebAuthn, Google Identity Services, Sign in with Apple JS. */
|
|
18
24
|
export declare const createWebBridge: (config: WebBridgeConfig) => AuthBridge;
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { IAuthResult } from '@abyss-project/main';
|
|
2
2
|
import { AuthFlowProviders } from '../AuthProviderButtons/AuthProviderButtons.component';
|
|
3
|
-
import { AuthFlowContext, AuthFlowLegal, AuthFlowResult } from './auth-flow.types';
|
|
3
|
+
import { AuthFlowContext, AuthFlowLegal, AuthFlowResult, AuthFlowVariant } from './auth-flow.types';
|
|
4
4
|
export type AuthFlowProps = {
|
|
5
5
|
initialEmail?: string;
|
|
6
6
|
/**
|
|
@@ -12,6 +12,13 @@ export type AuthFlowProps = {
|
|
|
12
12
|
* that token (the e-mail shown is never an editable field, there or here).
|
|
13
13
|
*/
|
|
14
14
|
initialResult?: IAuthResult;
|
|
15
|
+
/**
|
|
16
|
+
* `false` for a front that has no sign-up (the back-office): a `SIGNUP_REQUIRED` result never
|
|
17
|
+
* opens the sign-up step, the current step shows the `admin-required` error instead.
|
|
18
|
+
*/
|
|
19
|
+
allowSignup?: boolean;
|
|
20
|
+
/** `BACK_OFFICE` only changes the title and the lede of the e-mail step. */
|
|
21
|
+
variant?: AuthFlowVariant;
|
|
15
22
|
context: AuthFlowContext;
|
|
16
23
|
providers: AuthFlowProviders;
|
|
17
24
|
/**
|
|
@@ -27,4 +34,4 @@ export type AuthFlowProps = {
|
|
|
27
34
|
* mandatory MFA set-up for an administrator; passkey proposal. Must be rendered inside
|
|
28
35
|
* `<AuthProvider>`: every session goes through its client.
|
|
29
36
|
*/
|
|
30
|
-
export declare const AuthFlow: ({ initialEmail, initialResult, context, providers, onAuthenticated, legal, }: AuthFlowProps) => import("react/jsx-runtime").JSX.Element;
|
|
37
|
+
export declare const AuthFlow: ({ initialEmail, initialResult, allowSignup, variant, context, providers, onAuthenticated, legal, }: AuthFlowProps) => import("react/jsx-runtime").JSX.Element;
|
|
@@ -22,6 +22,11 @@ export interface AuthFlowResult {
|
|
|
22
22
|
/** Always `false` once the flow ends: an enrolment it required was completed inside it. */
|
|
23
23
|
mfaEnrollmentRequired: boolean;
|
|
24
24
|
}
|
|
25
|
+
/** The wording of the e-mail step: the usual sign-in, or the back-office's. */
|
|
26
|
+
export declare enum AuthFlowVariant {
|
|
27
|
+
APP = "app",
|
|
28
|
+
BACK_OFFICE = "back-office"
|
|
29
|
+
}
|
|
25
30
|
export declare enum AuthFlowStepKind {
|
|
26
31
|
EMAIL = "email",
|
|
27
32
|
CODE = "code",
|
|
@@ -1,7 +1,10 @@
|
|
|
1
1
|
import { ReactNode } from 'react';
|
|
2
2
|
import { AuthErrorKind } from '../../shared/auth-errors';
|
|
3
|
+
import { AuthFlowVariant } from '../auth-flow.types';
|
|
3
4
|
export declare const isEmailLike: (value: string) => boolean;
|
|
4
5
|
export type EmailStepProps = {
|
|
6
|
+
/** `BACK_OFFICE` swaps the title and the lede; the form is the same. */
|
|
7
|
+
variant: AuthFlowVariant;
|
|
5
8
|
email: string;
|
|
6
9
|
onEmailChange: (email: string) => void;
|
|
7
10
|
onSubmit: () => void;
|
|
@@ -19,4 +22,4 @@ export type EmailStepProps = {
|
|
|
19
22
|
/** Google / Apple (and Discord / Slack on the web) above the form. */
|
|
20
23
|
providers?: ReactNode;
|
|
21
24
|
};
|
|
22
|
-
export declare const EmailStep: ({ email, onEmailChange, onSubmit, busy, error, passkeySupported, onStartConditionalPasskey, onPasskey, providers, }: EmailStepProps) => import("react/jsx-runtime").JSX.Element;
|
|
25
|
+
export declare const EmailStep: ({ variant, email, onEmailChange, onSubmit, busy, error, passkeySupported, onStartConditionalPasskey, onPasskey, providers, }: EmailStepProps) => import("react/jsx-runtime").JSX.Element;
|
|
@@ -3,6 +3,7 @@ export type { AuthFlowProps } from './AuthFlow/AuthFlow.component';
|
|
|
3
3
|
export { AuthHeroLayout, AuthHeroLayoutVariant, } from './AuthHeroLayout/AuthHeroLayout.component';
|
|
4
4
|
export type { AuthHeroLayoutProps } from './AuthHeroLayout/AuthHeroLayout.component';
|
|
5
5
|
export { useAuthHero } from './AuthHeroLayout/auth-hero.context';
|
|
6
|
+
export { AuthFlowVariant } from './AuthFlow/auth-flow.types';
|
|
6
7
|
export type { AuthFlowContext, AuthFlowLegal, AuthFlowResult, } from './AuthFlow/auth-flow.types';
|
|
7
8
|
export { AuthProviderButtons, AuthProviderKind, } from './AuthProviderButtons/AuthProviderButtons.component';
|
|
8
9
|
export type { AuthFlowProviders, AuthProviderButtonsProps, } from './AuthProviderButtons/AuthProviderButtons.component';
|
|
@@ -22,6 +22,7 @@ export declare enum AuthErrorKind {
|
|
|
22
22
|
EMAIL_CHANGE_UNAVAILABLE = "email-change-unavailable",
|
|
23
23
|
REAUTH_CANCELLED = "reauth-cancelled",
|
|
24
24
|
SESSION_REVOKED = "session-revoked",
|
|
25
|
+
ADMIN_REQUIRED = "admin-required",
|
|
25
26
|
CEREMONY_CANCELLED = "ceremony-cancelled",
|
|
26
27
|
CEREMONY_UNSUPPORTED = "ceremony-unsupported",
|
|
27
28
|
CEREMONY_NO_CREDENTIAL = "ceremony-no-credential",
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export {};
|
package/dist/auth-client.js
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { q as e, t as R, u as r, A as E, G as t, L as _, a as o, k as A, j as S, m as T, n as L, g as u, h as i, R as c, U as d, p as h, f as n, b as g, d as I, o as G, s as M, c as O, i as b, l as C, r as P, e as N, v as U } from "./use-auth.hook-
|
|
1
|
+
import { q as e, t as R, u as r, A as E, G as t, L as _, a as o, k as A, j as S, m as T, n as L, g as u, h as i, R as c, U as d, p as h, f as n, b as g, d as I, o as G, s as M, c as O, i as b, l as C, r as P, e as N, v as U } from "./use-auth.hook-D8vfSYRv.js";
|
|
2
2
|
import { a as H, A as Y, R as l, b as F, c as y, s as f } from "./token-storage-CbWrBeIP.js";
|
|
3
3
|
export {
|
|
4
4
|
e as APPLE_ID_SCRIPT_URL,
|
|
@@ -10,6 +10,11 @@ export interface DropZoneProps {
|
|
|
10
10
|
accept?: Accept;
|
|
11
11
|
/** Largest accepted file, in bytes; shown under the zone. */
|
|
12
12
|
maxSize?: number;
|
|
13
|
+
/**
|
|
14
|
+
* The line under the zone, in place of the default « Taille maximale par fichier : … » that
|
|
15
|
+
* `maxSize` writes: the host's own wording of the limit. Without `maxSize`, shown all the same.
|
|
16
|
+
*/
|
|
17
|
+
caption?: string;
|
|
13
18
|
/** Title above the zone, which names it. */
|
|
14
19
|
title?: string;
|
|
15
20
|
/**
|
|
@@ -20,4 +25,4 @@ export interface DropZoneProps {
|
|
|
20
25
|
/** Replaces the icon and the prompt inside the zone (a preview of the current file, say). */
|
|
21
26
|
children?: ReactNode;
|
|
22
27
|
}
|
|
23
|
-
export declare function DropZone({ onDrop, multiple, accept, maxSize, title, cloudImport, children, }: DropZoneProps): import("react/jsx-runtime").JSX.Element;
|
|
28
|
+
export declare function DropZone({ onDrop, multiple, accept, maxSize, caption, title, cloudImport, children, }: DropZoneProps): import("react/jsx-runtime").JSX.Element;
|
|
@@ -39,6 +39,8 @@ export declare const placeBubble: (target: TourRect, bubble: TourSize, viewport:
|
|
|
39
39
|
export declare const centerBubble: (bubble: TourSize, viewport: TourSize, margin: number) => Pick<BubblePlacement, "top" | "left">;
|
|
40
40
|
/** The rectangle `rect` grown by `by` px on every side. */
|
|
41
41
|
export declare const inflateRect: (rect: TourRect, by: number) => TourRect;
|
|
42
|
+
/** The part of `rect` that lies `inset` px or more inside the viewport. */
|
|
43
|
+
export declare const clampRect: (rect: TourRect, viewport: TourSize, inset: number) => TourRect;
|
|
42
44
|
export declare const toTourRect: (rect: DOMRectReadOnly) => TourRect;
|
|
43
45
|
export declare const sameRect: (a: TourRect | null, b: TourRect | null) => boolean;
|
|
44
46
|
export declare const sameSize: (a: TourSize, b: TourSize) => boolean;
|
|
@@ -22,6 +22,7 @@ export interface AccountMenuProps {
|
|
|
22
22
|
}
|
|
23
23
|
/**
|
|
24
24
|
* The account entry of the top bar: the viewer's avatar opens a menu with their name and email,
|
|
25
|
-
* the host's entries (account, settings, billing…),
|
|
25
|
+
* the host's entries (account, settings, billing…), « Report a problem » under an installed
|
|
26
|
+
* `AbyssRumProvider`, the dark theme switch and the logout.
|
|
26
27
|
*/
|
|
27
28
|
export declare function AccountMenu({ user, themeMode, onThemeModeChange, items, onLogout, }: AccountMenuProps): import("react/jsx-runtime").JSX.Element;
|
|
@@ -39,6 +39,11 @@ export interface NavItem {
|
|
|
39
39
|
* drawer, absent from the rail.
|
|
40
40
|
*/
|
|
41
41
|
action?: NavItemAction;
|
|
42
|
+
/**
|
|
43
|
+
* A sub-entry of the product entry above it: drawn without its icon, indented under it, in the
|
|
44
|
+
* sidebar and the drawer, and absent from the rail. `icon` stays required but is not rendered.
|
|
45
|
+
*/
|
|
46
|
+
nested?: boolean;
|
|
42
47
|
}
|
|
43
48
|
export interface NavSection {
|
|
44
49
|
id: string;
|
package/dist/cookie-consent.js
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
import { A as e, c as a, C as n, D as C, R as i, V as t, d as r, f as A, r as k, e as c, u as l, b, a as f, w as u } from "./AbyssCookieConsentProvider-
|
|
2
|
-
import { C as E } from "./CookieConsentSettings.component-
|
|
1
|
+
import { A as e, c as a, C as n, D as C, R as i, V as t, d as r, f as A, r as k, e as c, u as l, b, a as f, w as u } from "./AbyssCookieConsentProvider-BypueFP-.js";
|
|
2
|
+
import { C as E } from "./CookieConsentSettings.component-CYmew9vg.js";
|
|
3
3
|
export {
|
|
4
4
|
e as AbyssCookieConsentProvider,
|
|
5
5
|
a as COOKIE_NAME,
|