@abyss-project/commons-front-core 8.1.0 → 8.3.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 +78 -0
- package/catalog/captures-plan.ts +5 -1
- package/catalog/catalog-entries.ts +21 -1
- package/catalog/cloud-picker-fixture.tsx +97 -0
- package/catalog/pages/AccountMenu.tsx +62 -0
- package/catalog/pages/Avatar.tsx +94 -0
- package/catalog/pages/Callout.tsx +67 -0
- package/catalog/pages/CloudImport.tsx +35 -0
- package/catalog/pages/ContextSelector.tsx +103 -0
- package/catalog/pages/CopyField.tsx +29 -0
- package/catalog/pages/DropZone.tsx +37 -0
- package/catalog/pages/FormField.tsx +54 -0
- package/catalog/pages/ImportButton.tsx +45 -0
- package/catalog/pages/ImportFromCloudModal.tsx +33 -0
- package/catalog/pages/Menu.tsx +99 -98
- package/catalog/pages/NotificationsMenu.tsx +116 -0
- package/catalog/pages/NumberField.tsx +46 -0
- package/catalog/pages/QRCodeModal.tsx +26 -0
- package/catalog/pages/SettingsRow.tsx +67 -0
- package/catalog/pages/Tabs.tsx +72 -0
- package/catalog/pages/UsageMeter.tsx +58 -0
- package/catalog/pages/index.ts +34 -2
- package/catalog/specs/captures.spec.ts +7 -0
- package/catalog/specs/write-capture-index.ts +1 -0
- package/dist/{AbyssCookieConsentProvider-BhSzVu8P.js → AbyssCookieConsentProvider-B-PlGbFf.js} +815 -625
- package/dist/{CookieConsentSettings.component-DMEAuCVS.js → CookieConsentSettings.component-DEGCDEJW.js} +1 -1
- package/dist/components/business/CloudImport/CloudImport.d.ts +24 -0
- package/dist/components/business/CloudImport/cloud-import-tree.d.ts +22 -0
- package/dist/components/business/ImportFromCloudModal/ImportFromCloudModal.d.ts +21 -0
- package/dist/components/business/QRCodeModal/QRCodeModal.d.ts +18 -0
- package/dist/components/business/QRCodeModal/QRCodeModal.spec.d.ts +1 -0
- package/dist/components/business/index.d.ts +3 -0
- package/dist/components/data/DataTable/data-table.types.d.ts +10 -0
- package/dist/components/data/UsageMeter/UsageMeter.d.ts +31 -0
- package/dist/components/data/UsageMeter/UsageMeter.spec.d.ts +1 -0
- package/dist/components/data/index.d.ts +1 -0
- package/dist/components/inputs/ContextSelector/ContextSelector.d.ts +60 -0
- package/dist/components/inputs/ContextSelector/ContextSelector.spec.d.ts +1 -0
- package/dist/components/inputs/CopyField/CopyField.d.ts +19 -0
- package/dist/components/inputs/CopyField/CopyField.spec.d.ts +1 -0
- package/dist/components/inputs/DropZone/DropZone.d.ts +30 -0
- package/dist/components/inputs/DropZone/DropZone.spec.d.ts +1 -0
- package/dist/components/inputs/FormField/FormField.d.ts +29 -0
- package/dist/components/inputs/FormField/FormField.spec.d.ts +1 -0
- package/dist/components/inputs/ImportButton/ImportButton.d.ts +33 -0
- package/dist/components/inputs/ImportButton/ImportButton.spec.d.ts +1 -0
- package/dist/components/inputs/NumberField/NumberField.d.ts +21 -0
- package/dist/components/inputs/NumberField/NumberField.spec.d.ts +1 -0
- package/dist/components/inputs/NumberField/number-input.d.ts +13 -0
- package/dist/components/inputs/SettingsRow/SettingsRow.d.ts +16 -0
- package/dist/components/inputs/SettingsRow/SettingsRow.spec.d.ts +1 -0
- package/dist/components/inputs/index.d.ts +7 -0
- package/dist/components/layers/CommandPalette/CommandPalette.d.ts +27 -6
- package/dist/components/layers/CommandPalette/command-registry.d.ts +39 -9
- package/dist/components/layers/Menu/Menu.d.ts +2 -0
- package/dist/components/layers/Modal/Modal.d.ts +2 -1
- package/dist/components/meaning/Avatar/Avatar.d.ts +41 -0
- package/dist/components/meaning/Avatar/Avatar.spec.d.ts +1 -0
- package/dist/components/meaning/index.d.ts +1 -0
- package/dist/components/states/Callout/Callout.d.ts +25 -0
- package/dist/components/states/Callout/Callout.spec.d.ts +1 -0
- package/dist/components/states/PageState/PageState.d.ts +6 -1
- package/dist/components/states/index.d.ts +1 -0
- package/dist/components/structure/AccountMenu/AccountMenu.d.ts +27 -0
- package/dist/components/structure/AccountMenu/AccountMenu.spec.d.ts +1 -0
- package/dist/components/structure/AppShell/AppShell.d.ts +9 -3
- package/dist/components/structure/AppShell/ShellNavigation.d.ts +4 -2
- package/dist/components/structure/AppShell/app-shell.types.d.ts +38 -2
- package/dist/components/structure/NotificationsMenu/NotificationsMenu.d.ts +36 -0
- package/dist/components/structure/NotificationsMenu/NotificationsMenu.spec.d.ts +1 -0
- package/dist/components/structure/PageHeader/PageHeader.d.ts +2 -2
- package/dist/components/structure/Tabs/Tabs.d.ts +34 -0
- package/dist/components/structure/Tabs/Tabs.spec.d.ts +1 -0
- package/dist/components/structure/index.d.ts +3 -0
- package/dist/components/structure/test-support/structure-test-harness.d.ts +6 -0
- package/dist/cookie-consent.js +2 -2
- package/dist/design-theme-CKTz_cOa.js +15490 -0
- package/dist/hooks/index.d.ts +1 -0
- package/dist/hooks/use-rich-intl.hook.d.ts +190 -0
- package/dist/hooks/use-scroll-overflow-cue.hook.d.ts +9 -0
- package/dist/hooks/use-scroll-overflow-cue.hook.spec.d.ts +1 -0
- package/dist/{index-D5e4uD4k.js → index-7N3J68EI.js} +2 -2
- package/dist/{index-BqIg55B3.js → index-B3rK_-T4.js} +4 -4
- package/dist/{index-6KdfKdSJ.js → index-B6qHo25Z.js} +2 -2
- package/dist/{index-BTjzj7mm.js → index-BMaAO_4e.js} +2 -2
- package/dist/{index-CHGRiRCe.js → index-B_jSh70G.js} +3 -3
- package/dist/{index-BkfBpYKR.js → index-B_yywet5.js} +3 -3
- package/dist/{index-DixNft1u.js → index-Bdtvzv-J.js} +2 -2
- package/dist/{index-ClLoBnCN.js → index-Bh2_8FCK.js} +2 -2
- package/dist/{index-D_GWBYM2.js → index-Bpg9TBMX.js} +1 -1
- package/dist/{index-GoHiFeaw.js → index-Bpnf8xKI.js} +2 -2
- package/dist/{index-bR-mnNUA.js → index-Bw2swxVq.js} +2 -2
- package/dist/{index-LdiTmDFg.js → index-BxxZgBFn.js} +2 -2
- package/dist/{index-ASLTmD1Y.js → index-Ca9tzEsn.js} +2 -2
- package/dist/{index-21vSFz6u.js → index-Csvh-AG6.js} +2 -2
- package/dist/{index-l7FAjaVB.js → index-CwuklsUK.js} +3 -3
- package/dist/{index-Ni4BmFs4.js → index-DFC9xBY9.js} +2 -2
- package/dist/{index-Btnmn1iK.js → index-DfUcsAJv.js} +4 -4
- package/dist/{index-D4Qh2Iww.js → index-DqedXp41.js} +3 -3
- package/dist/{index-BVS73U9E.js → index-DwXNHQIp.js} +4 -4
- package/dist/{index-BtsnuEJC.js → index-_UY_fqvv.js} +28415 -34554
- package/dist/{index-7HAvRXgu.js → index-dVVflNge.js} +2 -2
- package/dist/{index-C92C_oG5.js → index-sEWp0xIC.js} +2 -2
- package/dist/index.js +8273 -5009
- package/dist/legacy/components/QuotaOffer/AbyssQuotaOffer.component.d.ts +1 -1
- package/dist/legacy/components/QuotaOffer/index.d.ts +2 -2
- package/dist/legacy/theme/core-breakpoints-under-legacy-theme.spec.d.ts +1 -0
- package/dist/legacy.js +144 -144
- package/dist/theme/DesignCssVariables.d.ts +11 -0
- package/dist/theme/DesignCssVariables.spec.d.ts +1 -0
- package/dist/theme/components/shared.d.ts +4 -1
- package/dist/theme/css-variables.d.ts +7 -0
- package/dist/theme/design-media.d.ts +26 -0
- package/dist/theme/design-media.spec.d.ts +1 -0
- package/dist/theme/focus-ring.spec.d.ts +1 -0
- package/dist/theme/index.d.ts +4 -0
- package/dist/theme/tokens/semantic.d.ts +1 -1
- package/dist/theme/use-design-breakpoint.d.ts +7 -0
- package/dist/translations/en.d.ts +95 -0
- package/dist/translations/fr.d.ts +95 -0
- package/dist/utils/cloud-accept.utils.spec.d.ts +1 -0
- package/dist/utils/index.d.ts +1 -0
- package/dist/utils/quota-offer-state.utils.spec.d.ts +1 -0
- package/package.json +1 -1
- package/test-results/catalog/.last-run.json +4 -0
- package/dist/design-theme-CvLzOz3p.js +0 -9305
- /package/dist/{legacy/components/Inputs/CloudImport/cloud-accept.spec.d.ts → components/business/CloudImport/CloudImport.spec.d.ts} +0 -0
- /package/dist/{legacy/components/QuotaOffer/quota-offer-state.spec.d.ts → components/business/ImportFromCloudModal/ImportFromCloudModal.spec.d.ts} +0 -0
- /package/dist/{legacy/components/Inputs/CloudImport/cloud-accept.d.ts → utils/cloud-accept.utils.d.ts} +0 -0
- /package/dist/{legacy/components/QuotaOffer/quota-offer-state.d.ts → utils/quota-offer-state.utils.d.ts} +0 -0
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
import { ReactNode } from 'react';
|
|
2
|
+
export declare enum CalloutSeverity {
|
|
3
|
+
Info = "info",
|
|
4
|
+
Success = "success",
|
|
5
|
+
Warning = "warning",
|
|
6
|
+
Danger = "danger"
|
|
7
|
+
}
|
|
8
|
+
export interface CalloutProps {
|
|
9
|
+
severity: CalloutSeverity;
|
|
10
|
+
title?: string;
|
|
11
|
+
children: ReactNode;
|
|
12
|
+
/** A button or a link, placed after the text (under it below 768 px). */
|
|
13
|
+
action?: ReactNode;
|
|
14
|
+
/** Shows a close button; the host removes the callout. */
|
|
15
|
+
onClose?(): void;
|
|
16
|
+
/** Replaces the icon of the severity. */
|
|
17
|
+
icon?: ReactNode;
|
|
18
|
+
}
|
|
19
|
+
/**
|
|
20
|
+
* A banner inside a page (overdue invoice, trial, quota reached): the soft fill and 1 px border of
|
|
21
|
+
* its severity, the severity icon, an optional title, the text, an optional action and an
|
|
22
|
+
* optional close button. A danger callout is an `alert` (announced as soon as it appears), the
|
|
23
|
+
* others a `status`; a titled callout is named by its title.
|
|
24
|
+
*/
|
|
25
|
+
export declare function Callout({ severity, title, children, action, onClose, icon, }: CalloutProps): import("react/jsx-runtime").JSX.Element;
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export {};
|
|
@@ -17,12 +17,17 @@ export interface PageStateError {
|
|
|
17
17
|
message?: string;
|
|
18
18
|
onRetry(): void;
|
|
19
19
|
}
|
|
20
|
+
export interface PageStateForbidden {
|
|
21
|
+
/** Replaces the generic description (who to ask); the title stays « Accès refusé ». */
|
|
22
|
+
message: string;
|
|
23
|
+
}
|
|
20
24
|
export interface PageStateProps {
|
|
21
25
|
status: PageStatus;
|
|
22
26
|
/** Placeholder built by the page from the same layout as the ready content. */
|
|
23
27
|
skeleton: ReactNode;
|
|
24
28
|
empty?: PageStateEmpty;
|
|
25
29
|
error?: PageStateError;
|
|
30
|
+
forbidden?: PageStateForbidden;
|
|
26
31
|
/** The ready content. */
|
|
27
32
|
children: ReactNode;
|
|
28
33
|
}
|
|
@@ -30,4 +35,4 @@ export interface PageStateProps {
|
|
|
30
35
|
* The content slot of a page in each of its states. The page frame (header, toolbar) stays around
|
|
31
36
|
* it: only the slot changes, so an empty or failed page keeps its header and actions.
|
|
32
37
|
*/
|
|
33
|
-
export declare function PageState({ status, skeleton, empty, error, children, }: PageStateProps): import("react/jsx-runtime").JSX.Element | undefined;
|
|
38
|
+
export declare function PageState({ status, skeleton, empty, error, forbidden, children, }: PageStateProps): import("react/jsx-runtime").JSX.Element | undefined;
|
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
import { ReactNode } from 'react';
|
|
2
|
+
import { ThemeMode } from '../../../theme/tokens/primitives';
|
|
3
|
+
export interface AccountMenuUser {
|
|
4
|
+
name: string;
|
|
5
|
+
email?: string;
|
|
6
|
+
avatarUrl?: string;
|
|
7
|
+
}
|
|
8
|
+
export interface AccountMenuItem {
|
|
9
|
+
id: string;
|
|
10
|
+
label: string;
|
|
11
|
+
icon?: ReactNode;
|
|
12
|
+
/** A route followed by the host router, or an absolute URL. */
|
|
13
|
+
href?: string;
|
|
14
|
+
onClick?(): void;
|
|
15
|
+
}
|
|
16
|
+
export interface AccountMenuProps {
|
|
17
|
+
user: AccountMenuUser;
|
|
18
|
+
themeMode: ThemeMode;
|
|
19
|
+
onThemeModeChange(mode: ThemeMode): void;
|
|
20
|
+
items: AccountMenuItem[];
|
|
21
|
+
onLogout(): void;
|
|
22
|
+
}
|
|
23
|
+
/**
|
|
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…), the dark theme switch and the logout.
|
|
26
|
+
*/
|
|
27
|
+
export declare function AccountMenu({ user, themeMode, onThemeModeChange, items, onLogout, }: AccountMenuProps): import("react/jsx-runtime").JSX.Element;
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export {};
|
|
@@ -5,7 +5,13 @@ import { AppShellProps } from './app-shell.types';
|
|
|
5
5
|
* navigation sections with their counts, an optional footer, a top bar and the page. There is no
|
|
6
6
|
* application switcher: each service keeps its own front.
|
|
7
7
|
*
|
|
8
|
-
* From
|
|
9
|
-
* tooltips; below
|
|
8
|
+
* From 1200 px up the sidebar is 256 px wide; from 768 to 1199 px it becomes an icon rail with
|
|
9
|
+
* tooltips; below 768 px a top bar opens it in a drawer. The widths are the design system's tiers,
|
|
10
|
+
* never the theme's MUI breakpoints: the legacy theme's `md` is 900 px.
|
|
11
|
+
*
|
|
12
|
+
* With `chromeless` there is no sidebar, rail, drawer or top bar: the page fills the window.
|
|
13
|
+
*
|
|
14
|
+
* Every form renders `children` at the same place of one tree (root, column, `main`): switching
|
|
15
|
+
* form or `chromeless` never remounts the page.
|
|
10
16
|
*/
|
|
11
|
-
export declare function AppShell({ product, space, nav, activeItemId, mainSpaceLink, topbar, footer, children, }: AppShellProps): import("react/jsx-runtime").JSX.Element;
|
|
17
|
+
export declare function AppShell({ product, space, nav, activeItemId, mainSpaceLink, topbar, footer, chromeless, children, }: AppShellProps): import("react/jsx-runtime").JSX.Element;
|
|
@@ -19,9 +19,11 @@ export declare function ShellNavigation({ nav, activeItemId, form, onNavigate, }
|
|
|
19
19
|
}): import("react/jsx-runtime").JSX.Element;
|
|
20
20
|
/**
|
|
21
21
|
* The footer entries of the navigation (plan, family, account): labelled rows, or an icon with a
|
|
22
|
-
* tooltip in the rail, like the navigation entries. They lead
|
|
22
|
+
* tooltip in the rail, like the navigation entries. They lead to the main front as plain links,
|
|
23
|
+
* unless `internal`: a route of this app, followed by the host router.
|
|
23
24
|
*/
|
|
24
|
-
export declare function ShellFooterLinks({ items, form, }: {
|
|
25
|
+
export declare function ShellFooterLinks({ items, form, onNavigate, }: {
|
|
25
26
|
items: AppShellFooterItem[];
|
|
26
27
|
form: NavigationForm;
|
|
28
|
+
onNavigate?(): void;
|
|
27
29
|
}): import("react/jsx-runtime").JSX.Element;
|
|
@@ -10,20 +10,46 @@ export interface Space {
|
|
|
10
10
|
kind: SpaceKind;
|
|
11
11
|
avatarUrl?: string;
|
|
12
12
|
}
|
|
13
|
+
/**
|
|
14
|
+
* A secondary action on a navigation row, such as "new board" next to "Boards", or on a section,
|
|
15
|
+
* such as "manage pins" next to "Épinglés".
|
|
16
|
+
*/
|
|
17
|
+
export interface NavItemAction {
|
|
18
|
+
/** Accessible name of the icon button. */
|
|
19
|
+
label: string;
|
|
20
|
+
icon: ReactNode;
|
|
21
|
+
onClick(): void;
|
|
22
|
+
}
|
|
13
23
|
export interface NavItem {
|
|
14
24
|
id: string;
|
|
15
25
|
label: string;
|
|
16
26
|
icon: ReactNode;
|
|
17
|
-
/**
|
|
27
|
+
/**
|
|
28
|
+
* Route inside the app, followed by the host router; with `external`, an absolute URL opened in
|
|
29
|
+
* a new tab.
|
|
30
|
+
*/
|
|
18
31
|
href: string;
|
|
19
32
|
count?: number;
|
|
20
33
|
/** The count needs action: shown as a red pill (a red dot in the rail). */
|
|
21
34
|
urgent?: boolean;
|
|
35
|
+
/** A plain link opened in a new tab, its accessible name saying so. */
|
|
36
|
+
external?: boolean;
|
|
37
|
+
/**
|
|
38
|
+
* An icon button at the end of the row: shown on hover or focus in the sidebar, always in the
|
|
39
|
+
* drawer, absent from the rail.
|
|
40
|
+
*/
|
|
41
|
+
action?: NavItemAction;
|
|
22
42
|
}
|
|
23
43
|
export interface NavSection {
|
|
24
44
|
id: string;
|
|
25
45
|
title?: string;
|
|
46
|
+
/** May be empty when the section carries an `action`: the section then shows only its action. */
|
|
26
47
|
items: NavItem[];
|
|
48
|
+
/**
|
|
49
|
+
* An icon button at the right of the section title in the sidebar and the drawer; in the rail,
|
|
50
|
+
* where titles are hidden, a single icon button with a tooltip at the head of the section.
|
|
51
|
+
*/
|
|
52
|
+
action?: NavItemAction;
|
|
27
53
|
}
|
|
28
54
|
export interface AppShellProduct {
|
|
29
55
|
kind: ToolKind;
|
|
@@ -47,8 +73,13 @@ export interface AppShellFooterItem {
|
|
|
47
73
|
label: string;
|
|
48
74
|
/** Icon or avatar, sized by the shell; alone in the rail, with `label` as its tooltip. */
|
|
49
75
|
icon: ReactNode;
|
|
50
|
-
/**
|
|
76
|
+
/**
|
|
77
|
+
* Absolute URL of the main front, followed as a plain link; with `internal`, a route inside the
|
|
78
|
+
* app, followed by the host router like `NavItem.href`.
|
|
79
|
+
*/
|
|
51
80
|
href: string;
|
|
81
|
+
/** The entry is a route of this app (the main front's own account pages). */
|
|
82
|
+
internal?: boolean;
|
|
52
83
|
}
|
|
53
84
|
export interface AppShellProps {
|
|
54
85
|
product: AppShellProduct;
|
|
@@ -60,6 +91,11 @@ export interface AppShellProps {
|
|
|
60
91
|
topbar?: ReactNode;
|
|
61
92
|
/** Bottom of the navigation (plan, family, account), under a hairline. */
|
|
62
93
|
footer?: AppShellFooterItem[];
|
|
94
|
+
/**
|
|
95
|
+
* Full-screen mode (editors): no sidebar, rail, drawer or top bar, the page fills the window.
|
|
96
|
+
* An open mobile drawer closes.
|
|
97
|
+
*/
|
|
98
|
+
chromeless?: boolean;
|
|
63
99
|
children: ReactNode;
|
|
64
100
|
}
|
|
65
101
|
/** The three forms of the shell: full sidebar (≥ `lg`), icon rail (`md`–`lg`), drawer (< `md`). */
|
|
@@ -0,0 +1,36 @@
|
|
|
1
|
+
import { ReactNode } from 'react';
|
|
2
|
+
export interface NotificationItem {
|
|
3
|
+
id: string;
|
|
4
|
+
title: string;
|
|
5
|
+
body?: string;
|
|
6
|
+
createdAt: string | Date;
|
|
7
|
+
read: boolean;
|
|
8
|
+
/** Icon or avatar, sized by the menu (24 px). */
|
|
9
|
+
icon?: ReactNode;
|
|
10
|
+
/** Where the notification leads: a route followed by the host router, or an absolute URL. */
|
|
11
|
+
href?: string;
|
|
12
|
+
}
|
|
13
|
+
export interface NotificationsMenuProps {
|
|
14
|
+
items: NotificationItem[];
|
|
15
|
+
unreadCount: number;
|
|
16
|
+
loading: boolean;
|
|
17
|
+
/** Called each time the panel opens, for the host to refresh the list. */
|
|
18
|
+
onOpen?(): void;
|
|
19
|
+
/** Called when a notification is chosen; the host marks it read. */
|
|
20
|
+
onItemClick(id: string): void;
|
|
21
|
+
onMarkAllRead(): void;
|
|
22
|
+
/** State of the sound toggle, shown when `onToggleSound` is given. */
|
|
23
|
+
soundEnabled?: boolean;
|
|
24
|
+
onToggleSound?(): void;
|
|
25
|
+
/** Route of the notification preferences page: a settings link in the panel header. */
|
|
26
|
+
preferencesHref?: string;
|
|
27
|
+
/** Buttons at the end of a notification row (accept an invitation, dismiss…). */
|
|
28
|
+
renderItemActions?(item: NotificationItem): ReactNode;
|
|
29
|
+
}
|
|
30
|
+
/**
|
|
31
|
+
* The notifications of the top bar: a bell with the unread count, which opens a panel (a popover
|
|
32
|
+
* from `md` up, a bottom sheet below) listing the notifications, with "mark all read", the sound
|
|
33
|
+
* toggle and the preferences link. The host owns the data: it loads the list in `onOpen`, marks a
|
|
34
|
+
* notification read in `onItemClick` and all of them in `onMarkAllRead`.
|
|
35
|
+
*/
|
|
36
|
+
export declare function NotificationsMenu({ items, unreadCount, loading, onOpen, onItemClick, onMarkAllRead, soundEnabled, onToggleSound, preferencesHref, renderItemActions, }: NotificationsMenuProps): import("react/jsx-runtime").JSX.Element;
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export {};
|
|
@@ -14,7 +14,7 @@ export interface PageHeaderProps {
|
|
|
14
14
|
}
|
|
15
15
|
/**
|
|
16
16
|
* The header of a page (mock-up `.ph`): breadcrumbs, optional icon, the page title (`h1`, the one
|
|
17
|
-
* title size of the ecosystem), a subtitle line and the page actions.
|
|
18
|
-
*
|
|
17
|
+
* title size of the ecosystem), a subtitle line and the page actions. The actions go under the
|
|
18
|
+
* title below `md`, and from `md` up whenever they do not fit beside it.
|
|
19
19
|
*/
|
|
20
20
|
export declare function PageHeader({ title, subtitle, breadcrumbs, icon, actions, }: PageHeaderProps): import("react/jsx-runtime").JSX.Element;
|
|
@@ -0,0 +1,34 @@
|
|
|
1
|
+
/** The two rows of tabs: the page navigation, and a quieter sub-navigation under it. */
|
|
2
|
+
export declare enum TabsVariant {
|
|
3
|
+
Primary = "primary",
|
|
4
|
+
Secondary = "secondary"
|
|
5
|
+
}
|
|
6
|
+
export interface TabItem<V extends string = string> {
|
|
7
|
+
value: V;
|
|
8
|
+
label: string;
|
|
9
|
+
/** Route inside the app: the tab becomes a router link. */
|
|
10
|
+
to?: string;
|
|
11
|
+
/** A count (formatted with the viewer's locale) or a short text after the label. */
|
|
12
|
+
badge?: number | string;
|
|
13
|
+
/** Left out of the row, as if absent (an entry the viewer has no right to). */
|
|
14
|
+
hidden?: boolean;
|
|
15
|
+
}
|
|
16
|
+
export interface TabsProps<V extends string = string> {
|
|
17
|
+
items: TabItem<V>[];
|
|
18
|
+
/** Value of the selected tab. */
|
|
19
|
+
value: V;
|
|
20
|
+
/** Called with the value of the tab the user activates (click, Enter, Space). */
|
|
21
|
+
onChange?(value: V): void;
|
|
22
|
+
variant: TabsVariant;
|
|
23
|
+
'aria-label': string;
|
|
24
|
+
}
|
|
25
|
+
/**
|
|
26
|
+
* A row of tabs (mock-up `.tabs`): the primary variant underlines the selected tab with the
|
|
27
|
+
* accent over a 1 px rule, the secondary one fills it with `bg.raised`. A tab with `to` is a
|
|
28
|
+
* router link (the page navigation of the account), any other a button. A `tablist` with one tab
|
|
29
|
+
* stop, on the selected tab: the arrow keys move the focus between tabs (wrapping), Home and End
|
|
30
|
+
* jump to the ends, Enter or Space activates. The row scrolls sideways when the tabs do not fit,
|
|
31
|
+
* with a fade at its end while tabs are left beyond it, and keeps the selected or focused tab in
|
|
32
|
+
* view, including when the row is first laid out or resized. Below 768 px every tab is 44 px tall.
|
|
33
|
+
*/
|
|
34
|
+
export declare function Tabs<V extends string>({ items, value, onChange, variant, 'aria-label': ariaLabel, }: TabsProps<V>): import("react/jsx-runtime").JSX.Element;
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export {};
|
|
@@ -1,8 +1,11 @@
|
|
|
1
1
|
export * from './AppShell/AppShell';
|
|
2
2
|
export * from './AppShell/app-shell.types';
|
|
3
|
+
export * from './NotificationsMenu/NotificationsMenu';
|
|
4
|
+
export * from './AccountMenu/AccountMenu';
|
|
3
5
|
export * from './PageHeader/PageHeader';
|
|
4
6
|
export * from './Section/Section';
|
|
5
7
|
export * from './Surface/Surface';
|
|
6
8
|
export * from './Toolbar/Toolbar';
|
|
7
9
|
export * from './FilterBar/FilterBar';
|
|
8
10
|
export * from './SplitView/SplitView';
|
|
11
|
+
export * from './Tabs/Tabs';
|
|
@@ -51,3 +51,9 @@ export declare const stateRules: (element: HTMLElement, state: "focus" | "hover"
|
|
|
51
51
|
export declare const focusRingColor: (element: HTMLElement) => string | undefined;
|
|
52
52
|
/** The outline color `element` draws now (a state class such as `Mui-focused` already set). */
|
|
53
53
|
export declare const currentOutlineColor: (element: HTMLElement) => string;
|
|
54
|
+
/**
|
|
55
|
+
* The value of `property` on `element` at a viewport of `width` pixels: the last declaration of
|
|
56
|
+
* the style rules that match the element, media rules included when their width query matches
|
|
57
|
+
* `width` (jsdom evaluates no media query, so `getComputedStyle` sees none of them).
|
|
58
|
+
*/
|
|
59
|
+
export declare const styleAt: (element: HTMLElement, width: number, property: string) => 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-B-PlGbFf.js";
|
|
2
|
+
import { C as E } from "./CookieConsentSettings.component-DEGCDEJW.js";
|
|
3
3
|
export {
|
|
4
4
|
e as AbyssCookieConsentProvider,
|
|
5
5
|
a as COOKIE_NAME,
|