@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.
Files changed (130) hide show
  1. package/README.md +78 -0
  2. package/catalog/captures-plan.ts +5 -1
  3. package/catalog/catalog-entries.ts +21 -1
  4. package/catalog/cloud-picker-fixture.tsx +97 -0
  5. package/catalog/pages/AccountMenu.tsx +62 -0
  6. package/catalog/pages/Avatar.tsx +94 -0
  7. package/catalog/pages/Callout.tsx +67 -0
  8. package/catalog/pages/CloudImport.tsx +35 -0
  9. package/catalog/pages/ContextSelector.tsx +103 -0
  10. package/catalog/pages/CopyField.tsx +29 -0
  11. package/catalog/pages/DropZone.tsx +37 -0
  12. package/catalog/pages/FormField.tsx +54 -0
  13. package/catalog/pages/ImportButton.tsx +45 -0
  14. package/catalog/pages/ImportFromCloudModal.tsx +33 -0
  15. package/catalog/pages/Menu.tsx +99 -98
  16. package/catalog/pages/NotificationsMenu.tsx +116 -0
  17. package/catalog/pages/NumberField.tsx +46 -0
  18. package/catalog/pages/QRCodeModal.tsx +26 -0
  19. package/catalog/pages/SettingsRow.tsx +67 -0
  20. package/catalog/pages/Tabs.tsx +72 -0
  21. package/catalog/pages/UsageMeter.tsx +58 -0
  22. package/catalog/pages/index.ts +34 -2
  23. package/catalog/specs/captures.spec.ts +7 -0
  24. package/catalog/specs/write-capture-index.ts +1 -0
  25. package/dist/{AbyssCookieConsentProvider-BhSzVu8P.js → AbyssCookieConsentProvider-B-PlGbFf.js} +815 -625
  26. package/dist/{CookieConsentSettings.component-DMEAuCVS.js → CookieConsentSettings.component-DEGCDEJW.js} +1 -1
  27. package/dist/components/business/CloudImport/CloudImport.d.ts +24 -0
  28. package/dist/components/business/CloudImport/cloud-import-tree.d.ts +22 -0
  29. package/dist/components/business/ImportFromCloudModal/ImportFromCloudModal.d.ts +21 -0
  30. package/dist/components/business/QRCodeModal/QRCodeModal.d.ts +18 -0
  31. package/dist/components/business/QRCodeModal/QRCodeModal.spec.d.ts +1 -0
  32. package/dist/components/business/index.d.ts +3 -0
  33. package/dist/components/data/DataTable/data-table.types.d.ts +10 -0
  34. package/dist/components/data/UsageMeter/UsageMeter.d.ts +31 -0
  35. package/dist/components/data/UsageMeter/UsageMeter.spec.d.ts +1 -0
  36. package/dist/components/data/index.d.ts +1 -0
  37. package/dist/components/inputs/ContextSelector/ContextSelector.d.ts +60 -0
  38. package/dist/components/inputs/ContextSelector/ContextSelector.spec.d.ts +1 -0
  39. package/dist/components/inputs/CopyField/CopyField.d.ts +19 -0
  40. package/dist/components/inputs/CopyField/CopyField.spec.d.ts +1 -0
  41. package/dist/components/inputs/DropZone/DropZone.d.ts +30 -0
  42. package/dist/components/inputs/DropZone/DropZone.spec.d.ts +1 -0
  43. package/dist/components/inputs/FormField/FormField.d.ts +29 -0
  44. package/dist/components/inputs/FormField/FormField.spec.d.ts +1 -0
  45. package/dist/components/inputs/ImportButton/ImportButton.d.ts +33 -0
  46. package/dist/components/inputs/ImportButton/ImportButton.spec.d.ts +1 -0
  47. package/dist/components/inputs/NumberField/NumberField.d.ts +21 -0
  48. package/dist/components/inputs/NumberField/NumberField.spec.d.ts +1 -0
  49. package/dist/components/inputs/NumberField/number-input.d.ts +13 -0
  50. package/dist/components/inputs/SettingsRow/SettingsRow.d.ts +16 -0
  51. package/dist/components/inputs/SettingsRow/SettingsRow.spec.d.ts +1 -0
  52. package/dist/components/inputs/index.d.ts +7 -0
  53. package/dist/components/layers/CommandPalette/CommandPalette.d.ts +27 -6
  54. package/dist/components/layers/CommandPalette/command-registry.d.ts +39 -9
  55. package/dist/components/layers/Menu/Menu.d.ts +2 -0
  56. package/dist/components/layers/Modal/Modal.d.ts +2 -1
  57. package/dist/components/meaning/Avatar/Avatar.d.ts +41 -0
  58. package/dist/components/meaning/Avatar/Avatar.spec.d.ts +1 -0
  59. package/dist/components/meaning/index.d.ts +1 -0
  60. package/dist/components/states/Callout/Callout.d.ts +25 -0
  61. package/dist/components/states/Callout/Callout.spec.d.ts +1 -0
  62. package/dist/components/states/PageState/PageState.d.ts +6 -1
  63. package/dist/components/states/index.d.ts +1 -0
  64. package/dist/components/structure/AccountMenu/AccountMenu.d.ts +27 -0
  65. package/dist/components/structure/AccountMenu/AccountMenu.spec.d.ts +1 -0
  66. package/dist/components/structure/AppShell/AppShell.d.ts +9 -3
  67. package/dist/components/structure/AppShell/ShellNavigation.d.ts +4 -2
  68. package/dist/components/structure/AppShell/app-shell.types.d.ts +38 -2
  69. package/dist/components/structure/NotificationsMenu/NotificationsMenu.d.ts +36 -0
  70. package/dist/components/structure/NotificationsMenu/NotificationsMenu.spec.d.ts +1 -0
  71. package/dist/components/structure/PageHeader/PageHeader.d.ts +2 -2
  72. package/dist/components/structure/Tabs/Tabs.d.ts +34 -0
  73. package/dist/components/structure/Tabs/Tabs.spec.d.ts +1 -0
  74. package/dist/components/structure/index.d.ts +3 -0
  75. package/dist/components/structure/test-support/structure-test-harness.d.ts +6 -0
  76. package/dist/cookie-consent.js +2 -2
  77. package/dist/design-theme-CKTz_cOa.js +15490 -0
  78. package/dist/hooks/index.d.ts +1 -0
  79. package/dist/hooks/use-rich-intl.hook.d.ts +190 -0
  80. package/dist/hooks/use-scroll-overflow-cue.hook.d.ts +9 -0
  81. package/dist/hooks/use-scroll-overflow-cue.hook.spec.d.ts +1 -0
  82. package/dist/{index-D5e4uD4k.js → index-7N3J68EI.js} +2 -2
  83. package/dist/{index-BqIg55B3.js → index-B3rK_-T4.js} +4 -4
  84. package/dist/{index-6KdfKdSJ.js → index-B6qHo25Z.js} +2 -2
  85. package/dist/{index-BTjzj7mm.js → index-BMaAO_4e.js} +2 -2
  86. package/dist/{index-CHGRiRCe.js → index-B_jSh70G.js} +3 -3
  87. package/dist/{index-BkfBpYKR.js → index-B_yywet5.js} +3 -3
  88. package/dist/{index-DixNft1u.js → index-Bdtvzv-J.js} +2 -2
  89. package/dist/{index-ClLoBnCN.js → index-Bh2_8FCK.js} +2 -2
  90. package/dist/{index-D_GWBYM2.js → index-Bpg9TBMX.js} +1 -1
  91. package/dist/{index-GoHiFeaw.js → index-Bpnf8xKI.js} +2 -2
  92. package/dist/{index-bR-mnNUA.js → index-Bw2swxVq.js} +2 -2
  93. package/dist/{index-LdiTmDFg.js → index-BxxZgBFn.js} +2 -2
  94. package/dist/{index-ASLTmD1Y.js → index-Ca9tzEsn.js} +2 -2
  95. package/dist/{index-21vSFz6u.js → index-Csvh-AG6.js} +2 -2
  96. package/dist/{index-l7FAjaVB.js → index-CwuklsUK.js} +3 -3
  97. package/dist/{index-Ni4BmFs4.js → index-DFC9xBY9.js} +2 -2
  98. package/dist/{index-Btnmn1iK.js → index-DfUcsAJv.js} +4 -4
  99. package/dist/{index-D4Qh2Iww.js → index-DqedXp41.js} +3 -3
  100. package/dist/{index-BVS73U9E.js → index-DwXNHQIp.js} +4 -4
  101. package/dist/{index-BtsnuEJC.js → index-_UY_fqvv.js} +28415 -34554
  102. package/dist/{index-7HAvRXgu.js → index-dVVflNge.js} +2 -2
  103. package/dist/{index-C92C_oG5.js → index-sEWp0xIC.js} +2 -2
  104. package/dist/index.js +8273 -5009
  105. package/dist/legacy/components/QuotaOffer/AbyssQuotaOffer.component.d.ts +1 -1
  106. package/dist/legacy/components/QuotaOffer/index.d.ts +2 -2
  107. package/dist/legacy/theme/core-breakpoints-under-legacy-theme.spec.d.ts +1 -0
  108. package/dist/legacy.js +144 -144
  109. package/dist/theme/DesignCssVariables.d.ts +11 -0
  110. package/dist/theme/DesignCssVariables.spec.d.ts +1 -0
  111. package/dist/theme/components/shared.d.ts +4 -1
  112. package/dist/theme/css-variables.d.ts +7 -0
  113. package/dist/theme/design-media.d.ts +26 -0
  114. package/dist/theme/design-media.spec.d.ts +1 -0
  115. package/dist/theme/focus-ring.spec.d.ts +1 -0
  116. package/dist/theme/index.d.ts +4 -0
  117. package/dist/theme/tokens/semantic.d.ts +1 -1
  118. package/dist/theme/use-design-breakpoint.d.ts +7 -0
  119. package/dist/translations/en.d.ts +95 -0
  120. package/dist/translations/fr.d.ts +95 -0
  121. package/dist/utils/cloud-accept.utils.spec.d.ts +1 -0
  122. package/dist/utils/index.d.ts +1 -0
  123. package/dist/utils/quota-offer-state.utils.spec.d.ts +1 -0
  124. package/package.json +1 -1
  125. package/test-results/catalog/.last-run.json +4 -0
  126. package/dist/design-theme-CvLzOz3p.js +0 -9305
  127. /package/dist/{legacy/components/Inputs/CloudImport/cloud-accept.spec.d.ts → components/business/CloudImport/CloudImport.spec.d.ts} +0 -0
  128. /package/dist/{legacy/components/QuotaOffer/quota-offer-state.spec.d.ts → components/business/ImportFromCloudModal/ImportFromCloudModal.spec.d.ts} +0 -0
  129. /package/dist/{legacy/components/Inputs/CloudImport/cloud-accept.d.ts → utils/cloud-accept.utils.d.ts} +0 -0
  130. /package/dist/{legacy/components/QuotaOffer/quota-offer-state.d.ts → utils/quota-offer-state.utils.d.ts} +0 -0
@@ -4,3 +4,4 @@ export * from './SeverityBadge/SeverityBadge';
4
4
  export * from './ScanBadge/ScanBadge';
5
5
  export * from './RoleBadge/RoleBadge';
6
6
  export * from './ToolIcon/ToolIcon';
7
+ export * from './Avatar/Avatar';
@@ -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;
@@ -1 +1,2 @@
1
1
  export * from './PageState/PageState';
2
+ export * from './Callout/Callout';
@@ -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;
@@ -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 `lg` up the sidebar is 256 px wide; from `md` to `lg` it becomes an icon rail with
9
- * tooltips; below `md` a top bar opens it in a drawer.
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 out of the app: plain links.
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
- /** Route inside the app, followed by the host router. */
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
- /** Absolute URL: the footer entries lead to the main front, so they are plain links. */
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;
@@ -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. Below `md` the actions go
18
- * under the title.
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;
@@ -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-BhSzVu8P.js";
2
- import { C as E } from "./CookieConsentSettings.component-DMEAuCVS.js";
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,