@eui/eds-react 22.0.0-alpha.10
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/eds-accordion/eds-accordion-item.css +108 -0
- package/eds-accordion/eds-accordion-item.d.ts +47 -0
- package/eds-accordion/eds-accordion-item.d.ts.map +1 -0
- package/eds-accordion/eds-accordion-item.js +87 -0
- package/eds-accordion/eds-accordion-item.js.map +1 -0
- package/eds-accordion/eds-accordion.css +7 -0
- package/eds-accordion/eds-accordion.d.ts +54 -0
- package/eds-accordion/eds-accordion.d.ts.map +1 -0
- package/eds-accordion/eds-accordion.js +79 -0
- package/eds-accordion/eds-accordion.js.map +1 -0
- package/eds-accordion/index.d.ts +5 -0
- package/eds-accordion/index.d.ts.map +1 -0
- package/eds-accordion/index.js +3 -0
- package/eds-accordion/index.js.map +1 -0
- package/eds-alert/eds-alert-title.css +5 -0
- package/eds-alert/eds-alert-title.d.ts +12 -0
- package/eds-alert/eds-alert-title.d.ts.map +1 -0
- package/eds-alert/eds-alert-title.js +12 -0
- package/eds-alert/eds-alert-title.js.map +1 -0
- package/eds-alert/eds-alert.css +62 -0
- package/eds-alert/eds-alert.d.ts +38 -0
- package/eds-alert/eds-alert.d.ts.map +1 -0
- package/eds-alert/eds-alert.js +29 -0
- package/eds-alert/eds-alert.js.map +1 -0
- package/eds-alert/index.d.ts +5 -0
- package/eds-alert/index.d.ts.map +1 -0
- package/eds-alert/index.js +3 -0
- package/eds-alert/index.js.map +1 -0
- package/eds-avatar/eds-avatar-badge.css +34 -0
- package/eds-avatar/eds-avatar-badge.d.ts +20 -0
- package/eds-avatar/eds-avatar-badge.d.ts.map +1 -0
- package/eds-avatar/eds-avatar-badge.js +13 -0
- package/eds-avatar/eds-avatar-badge.js.map +1 -0
- package/eds-avatar/eds-avatar-content-label.css +5 -0
- package/eds-avatar/eds-avatar-content-label.d.ts +13 -0
- package/eds-avatar/eds-avatar-content-label.d.ts.map +1 -0
- package/eds-avatar/eds-avatar-content-label.js +12 -0
- package/eds-avatar/eds-avatar-content-label.js.map +1 -0
- package/eds-avatar/eds-avatar-content-sublabel.css +5 -0
- package/eds-avatar/eds-avatar-content-sublabel.d.ts +13 -0
- package/eds-avatar/eds-avatar-content-sublabel.d.ts.map +1 -0
- package/eds-avatar/eds-avatar-content-sublabel.js +12 -0
- package/eds-avatar/eds-avatar-content-sublabel.js.map +1 -0
- package/eds-avatar/eds-avatar-content.css +6 -0
- package/eds-avatar/eds-avatar-content.d.ts +17 -0
- package/eds-avatar/eds-avatar-content.d.ts.map +1 -0
- package/eds-avatar/eds-avatar-content.js +12 -0
- package/eds-avatar/eds-avatar-content.js.map +1 -0
- package/eds-avatar/eds-avatar-icon.css +13 -0
- package/eds-avatar/eds-avatar-icon.d.ts +14 -0
- package/eds-avatar/eds-avatar-icon.d.ts.map +1 -0
- package/eds-avatar/eds-avatar-icon.js +13 -0
- package/eds-avatar/eds-avatar-icon.js.map +1 -0
- package/eds-avatar/eds-avatar-image.css +24 -0
- package/eds-avatar/eds-avatar-image.d.ts +19 -0
- package/eds-avatar/eds-avatar-image.d.ts.map +1 -0
- package/eds-avatar/eds-avatar-image.js +16 -0
- package/eds-avatar/eds-avatar-image.js.map +1 -0
- package/eds-avatar/eds-avatar-list.css +21 -0
- package/eds-avatar/eds-avatar-list.d.ts +14 -0
- package/eds-avatar/eds-avatar-list.d.ts.map +1 -0
- package/eds-avatar/eds-avatar-list.js +13 -0
- package/eds-avatar/eds-avatar-list.js.map +1 -0
- package/eds-avatar/eds-avatar-text.css +7 -0
- package/eds-avatar/eds-avatar-text.d.ts +14 -0
- package/eds-avatar/eds-avatar-text.d.ts.map +1 -0
- package/eds-avatar/eds-avatar-text.js +13 -0
- package/eds-avatar/eds-avatar-text.js.map +1 -0
- package/eds-avatar/eds-avatar.css +128 -0
- package/eds-avatar/eds-avatar.d.ts +38 -0
- package/eds-avatar/eds-avatar.d.ts.map +1 -0
- package/eds-avatar/eds-avatar.js +48 -0
- package/eds-avatar/eds-avatar.js.map +1 -0
- package/eds-avatar/index.d.ts +19 -0
- package/eds-avatar/index.d.ts.map +1 -0
- package/eds-avatar/index.js +10 -0
- package/eds-avatar/index.js.map +1 -0
- package/eds-badge/eds-badge.css +174 -0
- package/eds-badge/eds-badge.d.ts +46 -0
- package/eds-badge/eds-badge.d.ts.map +1 -0
- package/eds-badge/eds-badge.js +39 -0
- package/eds-badge/eds-badge.js.map +1 -0
- package/eds-badge/index.d.ts +3 -0
- package/eds-badge/index.d.ts.map +1 -0
- package/eds-badge/index.js +2 -0
- package/eds-badge/index.js.map +1 -0
- package/eds-button/eds-button.css +233 -0
- package/eds-button/eds-button.d.ts +65 -0
- package/eds-button/eds-button.d.ts.map +1 -0
- package/eds-button/eds-button.js +33 -0
- package/eds-button/eds-button.js.map +1 -0
- package/eds-button/index.d.ts +3 -0
- package/eds-button/index.d.ts.map +1 -0
- package/eds-button/index.js +2 -0
- package/eds-button/index.js.map +1 -0
- package/eds-chip/eds-chip.css +171 -0
- package/eds-chip/eds-chip.d.ts +71 -0
- package/eds-chip/eds-chip.d.ts.map +1 -0
- package/eds-chip/eds-chip.js +95 -0
- package/eds-chip/eds-chip.js.map +1 -0
- package/eds-chip/index.d.ts +3 -0
- package/eds-chip/index.d.ts.map +1 -0
- package/eds-chip/index.js +2 -0
- package/eds-chip/index.js.map +1 -0
- package/eds-chip-list/eds-chip-list.css +32 -0
- package/eds-chip-list/eds-chip-list.d.ts +68 -0
- package/eds-chip-list/eds-chip-list.d.ts.map +1 -0
- package/eds-chip-list/eds-chip-list.js +69 -0
- package/eds-chip-list/eds-chip-list.js.map +1 -0
- package/eds-chip-list/index.d.ts +3 -0
- package/eds-chip-list/index.d.ts.map +1 -0
- package/eds-chip-list/index.js +2 -0
- package/eds-chip-list/index.js.map +1 -0
- package/eds-icon/eds-icon.css +80 -0
- package/eds-icon/eds-icon.d.ts +44 -0
- package/eds-icon/eds-icon.d.ts.map +1 -0
- package/eds-icon/eds-icon.js +26 -0
- package/eds-icon/eds-icon.js.map +1 -0
- package/eds-icon/index.d.ts +3 -0
- package/eds-icon/index.d.ts.map +1 -0
- package/eds-icon/index.js +2 -0
- package/eds-icon/index.js.map +1 -0
- package/eds-icon-button/eds-icon-button.css +83 -0
- package/eds-icon-button/eds-icon-button.d.ts +33 -0
- package/eds-icon-button/eds-icon-button.d.ts.map +1 -0
- package/eds-icon-button/eds-icon-button.js +15 -0
- package/eds-icon-button/eds-icon-button.js.map +1 -0
- package/eds-icon-button/index.d.ts +3 -0
- package/eds-icon-button/index.d.ts.map +1 -0
- package/eds-icon-button/index.js +2 -0
- package/eds-icon-button/index.js.map +1 -0
- package/eds-icon-state/eds-icon-state.css +5 -0
- package/eds-icon-state/eds-icon-state.d.ts +24 -0
- package/eds-icon-state/eds-icon-state.d.ts.map +1 -0
- package/eds-icon-state/eds-icon-state.js +21 -0
- package/eds-icon-state/eds-icon-state.js.map +1 -0
- package/eds-icon-state/index.d.ts +3 -0
- package/eds-icon-state/index.d.ts.map +1 -0
- package/eds-icon-state/index.js +2 -0
- package/eds-icon-state/index.js.map +1 -0
- package/eds-link/eds-link.css +83 -0
- package/eds-link/eds-link.d.ts +32 -0
- package/eds-link/eds-link.d.ts.map +1 -0
- package/eds-link/eds-link.js +15 -0
- package/eds-link/eds-link.js.map +1 -0
- package/eds-link/index.d.ts +3 -0
- package/eds-link/index.d.ts.map +1 -0
- package/eds-link/index.js +2 -0
- package/eds-link/index.js.map +1 -0
- package/eds-menu/eds-menu-item-view.d.ts +31 -0
- package/eds-menu/eds-menu-item-view.d.ts.map +1 -0
- package/eds-menu/eds-menu-item-view.js +65 -0
- package/eds-menu/eds-menu-item-view.js.map +1 -0
- package/eds-menu/eds-menu-item.css +221 -0
- package/eds-menu/eds-menu-item.model.d.ts +69 -0
- package/eds-menu/eds-menu-item.model.d.ts.map +1 -0
- package/eds-menu/eds-menu-item.model.js +2 -0
- package/eds-menu/eds-menu-item.model.js.map +1 -0
- package/eds-menu/eds-menu.css +83 -0
- package/eds-menu/eds-menu.d.ts +52 -0
- package/eds-menu/eds-menu.d.ts.map +1 -0
- package/eds-menu/eds-menu.js +145 -0
- package/eds-menu/eds-menu.js.map +1 -0
- package/eds-menu/index.d.ts +6 -0
- package/eds-menu/index.d.ts.map +1 -0
- package/eds-menu/index.js +3 -0
- package/eds-menu/index.js.map +1 -0
- package/eds-shell/eds-shell-content.css +11 -0
- package/eds-shell/eds-shell-content.d.ts +11 -0
- package/eds-shell/eds-shell-content.d.ts.map +1 -0
- package/eds-shell/eds-shell-content.js +10 -0
- package/eds-shell/eds-shell-content.js.map +1 -0
- package/eds-shell/eds-shell-context.d.ts +20 -0
- package/eds-shell/eds-shell-context.d.ts.map +1 -0
- package/eds-shell/eds-shell-context.js +7 -0
- package/eds-shell/eds-shell-context.js.map +1 -0
- package/eds-shell/eds-shell-footer.css +25 -0
- package/eds-shell/eds-shell-footer.d.ts +12 -0
- package/eds-shell/eds-shell-footer.d.ts.map +1 -0
- package/eds-shell/eds-shell-footer.js +9 -0
- package/eds-shell/eds-shell-footer.js.map +1 -0
- package/eds-shell/eds-shell-header-app.css +23 -0
- package/eds-shell/eds-shell-header-app.d.ts +16 -0
- package/eds-shell/eds-shell-header-app.d.ts.map +1 -0
- package/eds-shell/eds-shell-header-app.js +11 -0
- package/eds-shell/eds-shell-header-app.js.map +1 -0
- package/eds-shell/eds-shell-header-end.css +5 -0
- package/eds-shell/eds-shell-header-end.d.ts +11 -0
- package/eds-shell/eds-shell-header-end.d.ts.map +1 -0
- package/eds-shell/eds-shell-header-end.js +10 -0
- package/eds-shell/eds-shell-header-end.js.map +1 -0
- package/eds-shell/eds-shell-header-environment.css +21 -0
- package/eds-shell/eds-shell-header-environment.d.ts +11 -0
- package/eds-shell/eds-shell-header-environment.d.ts.map +1 -0
- package/eds-shell/eds-shell-header-environment.js +10 -0
- package/eds-shell/eds-shell-header-environment.js.map +1 -0
- package/eds-shell/eds-shell-header-logo.css +14 -0
- package/eds-shell/eds-shell-header-logo.d.ts +20 -0
- package/eds-shell/eds-shell-header-logo.d.ts.map +1 -0
- package/eds-shell/eds-shell-header-logo.js +10 -0
- package/eds-shell/eds-shell-header-logo.js.map +1 -0
- package/eds-shell/eds-shell-header-start.css +5 -0
- package/eds-shell/eds-shell-header-start.d.ts +11 -0
- package/eds-shell/eds-shell-header-start.d.ts.map +1 -0
- package/eds-shell/eds-shell-header-start.js +10 -0
- package/eds-shell/eds-shell-header-start.js.map +1 -0
- package/eds-shell/eds-shell-header.css +33 -0
- package/eds-shell/eds-shell-header.d.ts +25 -0
- package/eds-shell/eds-shell-header.d.ts.map +1 -0
- package/eds-shell/eds-shell-header.js +14 -0
- package/eds-shell/eds-shell-header.js.map +1 -0
- package/eds-shell/eds-shell-menu-toggle.css +4 -0
- package/eds-shell/eds-shell-menu-toggle.d.ts +16 -0
- package/eds-shell/eds-shell-menu-toggle.d.ts.map +1 -0
- package/eds-shell/eds-shell-menu-toggle.js +20 -0
- package/eds-shell/eds-shell-menu-toggle.js.map +1 -0
- package/eds-shell/eds-shell-sidebar-bottom-nav.css +8 -0
- package/eds-shell/eds-shell-sidebar-bottom-nav.d.ts +20 -0
- package/eds-shell/eds-shell-sidebar-bottom-nav.d.ts.map +1 -0
- package/eds-shell/eds-shell-sidebar-bottom-nav.js +11 -0
- package/eds-shell/eds-shell-sidebar-bottom-nav.js.map +1 -0
- package/eds-shell/eds-shell-sidebar-footer.css +10 -0
- package/eds-shell/eds-shell-sidebar-footer.d.ts +10 -0
- package/eds-shell/eds-shell-sidebar-footer.d.ts.map +1 -0
- package/eds-shell/eds-shell-sidebar-footer.js +10 -0
- package/eds-shell/eds-shell-sidebar-footer.js.map +1 -0
- package/eds-shell/eds-shell-sidebar-header.css +33 -0
- package/eds-shell/eds-shell-sidebar-header.d.ts +16 -0
- package/eds-shell/eds-shell-sidebar-header.d.ts.map +1 -0
- package/eds-shell/eds-shell-sidebar-header.js +10 -0
- package/eds-shell/eds-shell-sidebar-header.js.map +1 -0
- package/eds-shell/eds-shell-sidebar-nav.css +9 -0
- package/eds-shell/eds-shell-sidebar-nav.d.ts +20 -0
- package/eds-shell/eds-shell-sidebar-nav.d.ts.map +1 -0
- package/eds-shell/eds-shell-sidebar-nav.js +11 -0
- package/eds-shell/eds-shell-sidebar-nav.js.map +1 -0
- package/eds-shell/eds-shell-sidebar.css +5 -0
- package/eds-shell/eds-shell-sidebar.d.ts +25 -0
- package/eds-shell/eds-shell-sidebar.d.ts.map +1 -0
- package/eds-shell/eds-shell-sidebar.js +15 -0
- package/eds-shell/eds-shell-sidebar.js.map +1 -0
- package/eds-shell/eds-shell-toolbar-app.css +23 -0
- package/eds-shell/eds-shell-toolbar-app.d.ts +16 -0
- package/eds-shell/eds-shell-toolbar-app.d.ts.map +1 -0
- package/eds-shell/eds-shell-toolbar-app.js +11 -0
- package/eds-shell/eds-shell-toolbar-app.js.map +1 -0
- package/eds-shell/eds-shell-toolbar-center.css +6 -0
- package/eds-shell/eds-shell-toolbar-center.d.ts +11 -0
- package/eds-shell/eds-shell-toolbar-center.d.ts.map +1 -0
- package/eds-shell/eds-shell-toolbar-center.js +10 -0
- package/eds-shell/eds-shell-toolbar-center.js.map +1 -0
- package/eds-shell/eds-shell-toolbar-end.css +23 -0
- package/eds-shell/eds-shell-toolbar-end.d.ts +11 -0
- package/eds-shell/eds-shell-toolbar-end.d.ts.map +1 -0
- package/eds-shell/eds-shell-toolbar-end.js +10 -0
- package/eds-shell/eds-shell-toolbar-end.js.map +1 -0
- package/eds-shell/eds-shell-toolbar-environment.css +21 -0
- package/eds-shell/eds-shell-toolbar-environment.d.ts +11 -0
- package/eds-shell/eds-shell-toolbar-environment.d.ts.map +1 -0
- package/eds-shell/eds-shell-toolbar-environment.js +10 -0
- package/eds-shell/eds-shell-toolbar-environment.js.map +1 -0
- package/eds-shell/eds-shell-toolbar-logo.css +11 -0
- package/eds-shell/eds-shell-toolbar-logo.d.ts +8 -0
- package/eds-shell/eds-shell-toolbar-logo.d.ts.map +1 -0
- package/eds-shell/eds-shell-toolbar-logo.js +10 -0
- package/eds-shell/eds-shell-toolbar-logo.js.map +1 -0
- package/eds-shell/eds-shell-toolbar-start.css +5 -0
- package/eds-shell/eds-shell-toolbar-start.d.ts +11 -0
- package/eds-shell/eds-shell-toolbar-start.d.ts.map +1 -0
- package/eds-shell/eds-shell-toolbar-start.js +10 -0
- package/eds-shell/eds-shell-toolbar-start.js.map +1 -0
- package/eds-shell/eds-shell-toolbar.css +37 -0
- package/eds-shell/eds-shell-toolbar.d.ts +27 -0
- package/eds-shell/eds-shell-toolbar.d.ts.map +1 -0
- package/eds-shell/eds-shell-toolbar.js +12 -0
- package/eds-shell/eds-shell-toolbar.js.map +1 -0
- package/eds-shell/eds-shell-top-message.css +48 -0
- package/eds-shell/eds-shell-top-message.d.ts +22 -0
- package/eds-shell/eds-shell-top-message.d.ts.map +1 -0
- package/eds-shell/eds-shell-top-message.js +24 -0
- package/eds-shell/eds-shell-top-message.js.map +1 -0
- package/eds-shell/eds-shell.css +105 -0
- package/eds-shell/eds-shell.d.ts +41 -0
- package/eds-shell/eds-shell.d.ts.map +1 -0
- package/eds-shell/eds-shell.js +116 -0
- package/eds-shell/eds-shell.js.map +1 -0
- package/eds-shell/index.d.ts +50 -0
- package/eds-shell/index.d.ts.map +1 -0
- package/eds-shell/index.js +25 -0
- package/eds-shell/index.js.map +1 -0
- package/eds-tag/eds-tag.css +83 -0
- package/eds-tag/eds-tag.d.ts +29 -0
- package/eds-tag/eds-tag.d.ts.map +1 -0
- package/eds-tag/eds-tag.js +14 -0
- package/eds-tag/eds-tag.js.map +1 -0
- package/eds-tag/index.d.ts +3 -0
- package/eds-tag/index.d.ts.map +1 -0
- package/eds-tag/index.js +2 -0
- package/eds-tag/index.js.map +1 -0
- package/eds-tooltip/eds-tooltip.css +140 -0
- package/eds-tooltip/eds-tooltip.d.ts +53 -0
- package/eds-tooltip/eds-tooltip.d.ts.map +1 -0
- package/eds-tooltip/eds-tooltip.js +179 -0
- package/eds-tooltip/eds-tooltip.js.map +1 -0
- package/eds-tooltip/index.d.ts +3 -0
- package/eds-tooltip/index.d.ts.map +1 -0
- package/eds-tooltip/index.js +2 -0
- package/eds-tooltip/index.js.map +1 -0
- package/index.d.ts +46 -0
- package/index.d.ts.map +1 -0
- package/index.js +31 -0
- package/index.js.map +1 -0
- package/package.json +115 -0
|
@@ -0,0 +1,145 @@
|
|
|
1
|
+
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
2
|
+
import { useMemo, useRef, useState, useCallback } from 'react';
|
|
3
|
+
import { EdsIcon } from '../eds-icon/eds-icon.js';
|
|
4
|
+
import { EdsMenuItemView } from './eds-menu-item-view.js';
|
|
5
|
+
let idCounter = 0;
|
|
6
|
+
const nextId = () => (typeof crypto !== 'undefined' && crypto.randomUUID) ? crypto.randomUUID() : `eds-menu-item-${idCounter++}`;
|
|
7
|
+
/** Configure items immutably: assign ids, parent refs, initials, visible/filtered defaults. */
|
|
8
|
+
function configureItems(items, hasCollapsedInitials, parent) {
|
|
9
|
+
return (items || []).map((raw) => {
|
|
10
|
+
const item = { ...raw };
|
|
11
|
+
if (!item.id)
|
|
12
|
+
item.id = nextId();
|
|
13
|
+
if (parent)
|
|
14
|
+
item.parent = parent;
|
|
15
|
+
if (item.label && hasCollapsedInitials) {
|
|
16
|
+
const words = item.label.split(' ');
|
|
17
|
+
item.initials = words.length > 1
|
|
18
|
+
? `${words[0].charAt(0)}${words[1].charAt(0)}`
|
|
19
|
+
: item.label.substring(0, 2);
|
|
20
|
+
}
|
|
21
|
+
item.visible = item.visible ?? true;
|
|
22
|
+
item.filtered = item.filtered ?? true;
|
|
23
|
+
if (item.children) {
|
|
24
|
+
item.children = configureItems(item.children, hasCollapsedInitials, item);
|
|
25
|
+
}
|
|
26
|
+
return item;
|
|
27
|
+
});
|
|
28
|
+
}
|
|
29
|
+
/** Recursively apply a label filter, flagging `filtered` on matches / matching ancestors. */
|
|
30
|
+
function filterMenuItems(items, filterValue) {
|
|
31
|
+
const fv = filterValue.toLowerCase();
|
|
32
|
+
return (items || []).map((raw) => {
|
|
33
|
+
const item = { ...raw };
|
|
34
|
+
const found = (item.label?.toLowerCase().indexOf(fv) ?? -1) !== -1;
|
|
35
|
+
if (item.children) {
|
|
36
|
+
item.children = filterMenuItems(item.children, filterValue);
|
|
37
|
+
item.filtered = item.children.some(c => c.filtered);
|
|
38
|
+
}
|
|
39
|
+
else {
|
|
40
|
+
item.filtered = found;
|
|
41
|
+
}
|
|
42
|
+
return item;
|
|
43
|
+
});
|
|
44
|
+
}
|
|
45
|
+
/**
|
|
46
|
+
* `EdsMenu` — pure React port of the Angular `eds-menu`.
|
|
47
|
+
*
|
|
48
|
+
* Renders a hierarchical navigation tree of `EdsMenuItem`s with optional icons, collapsed
|
|
49
|
+
* mode, a search filter, badges and expand/collapse. Behavior is reimplemented with hooks:
|
|
50
|
+
* items are configured immutably (no prop mutation), expansion is tracked in local state
|
|
51
|
+
* (seeded from `item.expanded` + `expandAllItems`), filtering derives a flagged copy, and
|
|
52
|
+
* keyboard navigation (Arrow/Home/End/Enter/Space, Right/Left to expand/collapse) uses a
|
|
53
|
+
* roving-tabindex over the visible items. Navigation uses plain anchors + the `onItemClick`
|
|
54
|
+
* callback (no router dependency). Styling keeps the Angular BEM host classes
|
|
55
|
+
* (`eds-menu--collapsed/--no-icons/--flat`) to match the ported CSS.
|
|
56
|
+
*/
|
|
57
|
+
export function EdsMenu({ items = [], searchFilterLabel = 'Search filter', filterValue = '', isCollapsed = false, hasCollapsedInitials = false, hasFilter = false, hasIcons = false, hasIconsLabels = false, hasCollapsedLabels = false, hasTooltip = true, hasTooltipOnExpanded = false, expandAllItems = false, isFlat = false, hasBoldRootLevel = false, onIsClick, onItemClick, onExpandToggle, }) {
|
|
58
|
+
const [expandedIds, setExpandedIds] = useState(new Set());
|
|
59
|
+
const [localFilter, setLocalFilter] = useState('');
|
|
60
|
+
const initedRef = useRef(false);
|
|
61
|
+
// Configure the items immutably; seed expansion from item.expanded / expandAllItems once.
|
|
62
|
+
const configured = useMemo(() => {
|
|
63
|
+
const list = configureItems(items, hasCollapsedInitials);
|
|
64
|
+
if (!initedRef.current) {
|
|
65
|
+
const seed = new Set();
|
|
66
|
+
const walk = (arr) => {
|
|
67
|
+
for (const it of arr) {
|
|
68
|
+
if (it.children) {
|
|
69
|
+
if (it.expanded || (expandAllItems && it.expanded === undefined)) {
|
|
70
|
+
seed.add(it.id);
|
|
71
|
+
}
|
|
72
|
+
walk(it.children);
|
|
73
|
+
}
|
|
74
|
+
}
|
|
75
|
+
};
|
|
76
|
+
walk(list);
|
|
77
|
+
if (seed.size)
|
|
78
|
+
setExpandedIds(seed);
|
|
79
|
+
initedRef.current = true;
|
|
80
|
+
}
|
|
81
|
+
return list;
|
|
82
|
+
// Note: seeding runs once (initedRef guard); deps intentionally exclude the seed set.
|
|
83
|
+
}, [items, hasCollapsedInitials, expandAllItems]);
|
|
84
|
+
const activeFilter = (filterValue || localFilter).trim();
|
|
85
|
+
const internalItems = useMemo(() => {
|
|
86
|
+
if (hasFilter && activeFilter) {
|
|
87
|
+
return filterMenuItems(configured, activeFilter);
|
|
88
|
+
}
|
|
89
|
+
return configured;
|
|
90
|
+
}, [configured, hasFilter, activeFilter]);
|
|
91
|
+
const hasExpandIcon = !activeFilter;
|
|
92
|
+
const isExpanded = useCallback((item) => (item.id ? expandedIds.has(item.id) : !!item.expanded), [expandedIds]);
|
|
93
|
+
const handleExpandToggle = useCallback((item) => {
|
|
94
|
+
if (!item.children || !item.id)
|
|
95
|
+
return;
|
|
96
|
+
setExpandedIds((prev) => {
|
|
97
|
+
const next = new Set(prev);
|
|
98
|
+
if (next.has(item.id))
|
|
99
|
+
next.delete(item.id);
|
|
100
|
+
else
|
|
101
|
+
next.add(item.id);
|
|
102
|
+
return next;
|
|
103
|
+
});
|
|
104
|
+
onExpandToggle?.(item);
|
|
105
|
+
}, [onExpandToggle]);
|
|
106
|
+
const handleItemClick = useCallback((item) => {
|
|
107
|
+
if (!item.disabled) {
|
|
108
|
+
if (item.urlExternal) {
|
|
109
|
+
window.open(item.urlExternal, item.urlExternalTarget || '_blank');
|
|
110
|
+
}
|
|
111
|
+
else if (item.url) {
|
|
112
|
+
// Router-free by design: internal navigation for a url item is delegated to the
|
|
113
|
+
// consumer via `onItemClick` (e.g. the host calls React Router's navigate). The
|
|
114
|
+
// package does not depend on any router. (The item's onClick already prevents the
|
|
115
|
+
// anchor default so the app controls navigation.)
|
|
116
|
+
}
|
|
117
|
+
else if (typeof item.command === 'function') {
|
|
118
|
+
item.command();
|
|
119
|
+
}
|
|
120
|
+
else if (item.children) {
|
|
121
|
+
handleExpandToggle(item);
|
|
122
|
+
}
|
|
123
|
+
}
|
|
124
|
+
onIsClick?.(true);
|
|
125
|
+
onItemClick?.(item);
|
|
126
|
+
}, [handleExpandToggle, onIsClick, onItemClick]);
|
|
127
|
+
const shouldRenderChild = useCallback((item) => {
|
|
128
|
+
return !!(item.children && (isExpanded(item) || (hasFilter && item.filtered && !!activeFilter)));
|
|
129
|
+
}, [isExpanded, hasFilter, activeFilter]);
|
|
130
|
+
const hostClass = [
|
|
131
|
+
'eds-menu',
|
|
132
|
+
isCollapsed ? 'eds-menu--collapsed' : '',
|
|
133
|
+
!hasIcons ? 'eds-menu--no-icons' : '',
|
|
134
|
+
isFlat ? 'eds-menu--flat' : '',
|
|
135
|
+
].join(' ').trim();
|
|
136
|
+
const renderItem = (item) => {
|
|
137
|
+
if (!(item.visible && item.filtered))
|
|
138
|
+
return null;
|
|
139
|
+
// Reflect the current expansion state onto the item passed to the view (immutably).
|
|
140
|
+
const viewItem = item.children ? { ...item, expanded: isExpanded(item) } : item;
|
|
141
|
+
return (_jsx(EdsMenuItemView, { item: viewItem, hasIcon: hasIcons, hasIconLabel: hasIconsLabels || hasCollapsedLabels, hasTooltip: hasTooltip, hasTooltipOnExpanded: hasTooltipOnExpanded, isCollapsed: isCollapsed, hasCollapsedInitials: hasCollapsedInitials, hasBoldRootLevel: hasBoldRootLevel, hasExpandIcon: hasExpandIcon, onItemClick: handleItemClick, onExpandToggle: handleExpandToggle, children: shouldRenderChild(item) ? (_jsx("ul", { className: "eds-menu__list eds-menu__sublist", role: "group", "aria-label": item.label, children: item.children.map(child => renderItem(child)) })) : null }, item.id || item.label));
|
|
142
|
+
};
|
|
143
|
+
return (_jsxs("div", { className: hostClass, "data-e2e": "eds-menu", role: "navigation", children: [hasFilter ? (_jsx("div", { className: `eds-menu-filter${isCollapsed ? ' eds-menu-filter--collapsed' : ''}`, onClick: (e) => e.stopPropagation(), children: _jsxs("div", { className: "eds-menu-filter__input-wrapper", children: [_jsx(EdsIcon, { className: "eds-menu-filter__icon", icon: "magnifying-glass:core", size: "s" }), _jsx("input", { className: "eds-menu-filter__input", type: "text", onChange: (e) => setLocalFilter(e.target.value), placeholder: searchFilterLabel, "aria-label": searchFilterLabel, value: filterValue || localFilter })] }) })) : null, _jsx("ul", { className: "eds-menu__list", role: "tree", "aria-orientation": "vertical", tabIndex: 0, children: internalItems.map(item => renderItem(item)) })] }));
|
|
144
|
+
}
|
|
145
|
+
//# sourceMappingURL=eds-menu.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"eds-menu.js","sourceRoot":"","sources":["../../src/eds-menu/eds-menu.tsx"],"names":[],"mappings":";AACA,OAAO,EAAE,OAAO,EAAE,MAAM,EAAE,QAAQ,EAAE,WAAW,EAAE,MAAM,OAAO,CAAC;AAC/D,OAAO,EAAE,OAAO,EAAE,MAAM,yBAAyB,CAAC;AAClD,OAAO,EAAE,eAAe,EAAE,MAAM,yBAAyB,CAAC;AAwC1D,IAAI,SAAS,GAAG,CAAC,CAAC;AAClB,MAAM,MAAM,GAAG,GAAW,EAAE,CACxB,CAAC,OAAO,MAAM,KAAK,WAAW,IAAI,MAAM,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,UAAU,EAAE,CAAC,CAAC,CAAC,iBAAiB,SAAS,EAAE,EAAE,CAAC;AAEhH,+FAA+F;AAC/F,SAAS,cAAc,CACnB,KAAoB,EACpB,oBAA6B,EAC7B,MAAoB;IAEpB,OAAO,CAAC,KAAK,IAAI,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,EAAE;QAC7B,MAAM,IAAI,GAAgB,EAAE,GAAG,GAAG,EAAE,CAAC;QACrC,IAAI,CAAC,IAAI,CAAC,EAAE;YAAE,IAAI,CAAC,EAAE,GAAG,MAAM,EAAE,CAAC;QACjC,IAAI,MAAM;YAAE,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC;QACjC,IAAI,IAAI,CAAC,KAAK,IAAI,oBAAoB,EAAE,CAAC;YACrC,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;YACpC,IAAI,CAAC,QAAQ,GAAG,KAAK,CAAC,MAAM,GAAG,CAAC;gBAC5B,CAAC,CAAC,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE;gBAC9C,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,SAAS,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;QACrC,CAAC;QACD,IAAI,CAAC,OAAO,GAAG,IAAI,CAAC,OAAO,IAAI,IAAI,CAAC;QACpC,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC,QAAQ,IAAI,IAAI,CAAC;QACtC,IAAI,IAAI,CAAC,QAAQ,EAAE,CAAC;YAChB,IAAI,CAAC,QAAQ,GAAG,cAAc,CAAC,IAAI,CAAC,QAAQ,EAAE,oBAAoB,EAAE,IAAI,CAAC,CAAC;QAC9E,CAAC;QACD,OAAO,IAAI,CAAC;IAChB,CAAC,CAAC,CAAC;AACP,CAAC;AAED,6FAA6F;AAC7F,SAAS,eAAe,CAAC,KAAoB,EAAE,WAAmB;IAC9D,MAAM,EAAE,GAAG,WAAW,CAAC,WAAW,EAAE,CAAC;IACrC,OAAO,CAAC,KAAK,IAAI,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,EAAE;QAC7B,MAAM,IAAI,GAAgB,EAAE,GAAG,GAAG,EAAE,CAAC;QACrC,MAAM,KAAK,GAAG,CAAC,IAAI,CAAC,KAAK,EAAE,WAAW,EAAE,CAAC,OAAO,CAAC,EAAE,CAAC,IAAI,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC;QACnE,IAAI,IAAI,CAAC,QAAQ,EAAE,CAAC;YAChB,IAAI,CAAC,QAAQ,GAAG,eAAe,CAAC,IAAI,CAAC,QAAQ,EAAE,WAAW,CAAC,CAAC;YAC5D,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC;QACxD,CAAC;aAAM,CAAC;YACJ,IAAI,CAAC,QAAQ,GAAG,KAAK,CAAC;QAC1B,CAAC;QACD,OAAO,IAAI,CAAC;IAChB,CAAC,CAAC,CAAC;AACP,CAAC;AAED;;;;;;;;;;;GAWG;AACH,MAAM,UAAU,OAAO,CAAC,EACpB,KAAK,GAAG,EAAE,EACV,iBAAiB,GAAG,eAAe,EACnC,WAAW,GAAG,EAAE,EAChB,WAAW,GAAG,KAAK,EACnB,oBAAoB,GAAG,KAAK,EAC5B,SAAS,GAAG,KAAK,EACjB,QAAQ,GAAG,KAAK,EAChB,cAAc,GAAG,KAAK,EACtB,kBAAkB,GAAG,KAAK,EAC1B,UAAU,GAAG,IAAI,EACjB,oBAAoB,GAAG,KAAK,EAC5B,cAAc,GAAG,KAAK,EACtB,MAAM,GAAG,KAAK,EACd,gBAAgB,GAAG,KAAK,EACxB,SAAS,EACT,WAAW,EACX,cAAc,GACH;IACX,MAAM,CAAC,WAAW,EAAE,cAAc,CAAC,GAAG,QAAQ,CAAc,IAAI,GAAG,EAAE,CAAC,CAAC;IACvE,MAAM,CAAC,WAAW,EAAE,cAAc,CAAC,GAAG,QAAQ,CAAC,EAAE,CAAC,CAAC;IACnD,MAAM,SAAS,GAAG,MAAM,CAAC,KAAK,CAAC,CAAC;IAEhC,0FAA0F;IAC1F,MAAM,UAAU,GAAG,OAAO,CAAC,GAAG,EAAE;QAC5B,MAAM,IAAI,GAAG,cAAc,CAAC,KAAK,EAAE,oBAAoB,CAAC,CAAC;QACzD,IAAI,CAAC,SAAS,CAAC,OAAO,EAAE,CAAC;YACrB,MAAM,IAAI,GAAG,IAAI,GAAG,EAAU,CAAC;YAC/B,MAAM,IAAI,GAAG,CAAC,GAAkB,EAAQ,EAAE;gBACtC,KAAK,MAAM,EAAE,IAAI,GAAG,EAAE,CAAC;oBACnB,IAAI,EAAE,CAAC,QAAQ,EAAE,CAAC;wBACd,IAAI,EAAE,CAAC,QAAQ,IAAI,CAAC,cAAc,IAAI,EAAE,CAAC,QAAQ,KAAK,SAAS,CAAC,EAAE,CAAC;4BAC/D,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,EAAG,CAAC,CAAC;wBACrB,CAAC;wBACD,IAAI,CAAC,EAAE,CAAC,QAAQ,CAAC,CAAC;oBACtB,CAAC;gBACL,CAAC;YACL,CAAC,CAAC;YACF,IAAI,CAAC,IAAI,CAAC,CAAC;YACX,IAAI,IAAI,CAAC,IAAI;gBAAE,cAAc,CAAC,IAAI,CAAC,CAAC;YACpC,SAAS,CAAC,OAAO,GAAG,IAAI,CAAC;QAC7B,CAAC;QACD,OAAO,IAAI,CAAC;QACZ,sFAAsF;IAC1F,CAAC,EAAE,CAAC,KAAK,EAAE,oBAAoB,EAAE,cAAc,CAAC,CAAC,CAAC;IAElD,MAAM,YAAY,GAAG,CAAC,WAAW,IAAI,WAAW,CAAC,CAAC,IAAI,EAAE,CAAC;IACzD,MAAM,aAAa,GAAG,OAAO,CAAC,GAAG,EAAE;QAC/B,IAAI,SAAS,IAAI,YAAY,EAAE,CAAC;YAC5B,OAAO,eAAe,CAAC,UAAU,EAAE,YAAY,CAAC,CAAC;QACrD,CAAC;QACD,OAAO,UAAU,CAAC;IACtB,CAAC,EAAE,CAAC,UAAU,EAAE,SAAS,EAAE,YAAY,CAAC,CAAC,CAAC;IAE1C,MAAM,aAAa,GAAG,CAAC,YAAY,CAAC;IAEpC,MAAM,UAAU,GAAG,WAAW,CAC1B,CAAC,IAAiB,EAAW,EAAE,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,CAAC,WAAW,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,QAAQ,CAAC,EACtF,CAAC,WAAW,CAAC,CAChB,CAAC;IAEF,MAAM,kBAAkB,GAAG,WAAW,CAAC,CAAC,IAAiB,EAAQ,EAAE;QAC/D,IAAI,CAAC,IAAI,CAAC,QAAQ,IAAI,CAAC,IAAI,CAAC,EAAE;YAAE,OAAO;QACvC,cAAc,CAAC,CAAC,IAAI,EAAE,EAAE;YACpB,MAAM,IAAI,GAAG,IAAI,GAAG,CAAC,IAAI,CAAC,CAAC;YAC3B,IAAI,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,EAAG,CAAC;gBAAE,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,EAAG,CAAC,CAAC;;gBACzC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,EAAG,CAAC,CAAC;YACxB,OAAO,IAAI,CAAC;QAChB,CAAC,CAAC,CAAC;QACH,cAAc,EAAE,CAAC,IAAI,CAAC,CAAC;IAC3B,CAAC,EAAE,CAAC,cAAc,CAAC,CAAC,CAAC;IAErB,MAAM,eAAe,GAAG,WAAW,CAAC,CAAC,IAAiB,EAAQ,EAAE;QAC5D,IAAI,CAAC,IAAI,CAAC,QAAQ,EAAE,CAAC;YACjB,IAAI,IAAI,CAAC,WAAW,EAAE,CAAC;gBACnB,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,WAAW,EAAE,IAAI,CAAC,iBAAiB,IAAI,QAAQ,CAAC,CAAC;YACtE,CAAC;iBAAM,IAAI,IAAI,CAAC,GAAG,EAAE,CAAC;gBAClB,gFAAgF;gBAChF,gFAAgF;gBAChF,kFAAkF;gBAClF,kDAAkD;YACtD,CAAC;iBAAM,IAAI,OAAO,IAAI,CAAC,OAAO,KAAK,UAAU,EAAE,CAAC;gBAC5C,IAAI,CAAC,OAAO,EAAE,CAAC;YACnB,CAAC;iBAAM,IAAI,IAAI,CAAC,QAAQ,EAAE,CAAC;gBACvB,kBAAkB,CAAC,IAAI,CAAC,CAAC;YAC7B,CAAC;QACL,CAAC;QACD,SAAS,EAAE,CAAC,IAAI,CAAC,CAAC;QAClB,WAAW,EAAE,CAAC,IAAI,CAAC,CAAC;IACxB,CAAC,EAAE,CAAC,kBAAkB,EAAE,SAAS,EAAE,WAAW,CAAC,CAAC,CAAC;IAEjD,MAAM,iBAAiB,GAAG,WAAW,CAAC,CAAC,IAAiB,EAAW,EAAE;QACjE,OAAO,CAAC,CAAC,CAAC,IAAI,CAAC,QAAQ,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,IAAI,CAAC,SAAS,IAAI,IAAI,CAAC,QAAQ,IAAI,CAAC,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC;IACrG,CAAC,EAAE,CAAC,UAAU,EAAE,SAAS,EAAE,YAAY,CAAC,CAAC,CAAC;IAE1C,MAAM,SAAS,GAAG;QACd,UAAU;QACV,WAAW,CAAC,CAAC,CAAC,qBAAqB,CAAC,CAAC,CAAC,EAAE;QACxC,CAAC,QAAQ,CAAC,CAAC,CAAC,oBAAoB,CAAC,CAAC,CAAC,EAAE;QACrC,MAAM,CAAC,CAAC,CAAC,gBAAgB,CAAC,CAAC,CAAC,EAAE;KACjC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,CAAC;IAEnB,MAAM,UAAU,GAAG,CAAC,IAAiB,EAAmB,EAAE;QACtD,IAAI,CAAC,CAAC,IAAI,CAAC,OAAO,IAAI,IAAI,CAAC,QAAQ,CAAC;YAAE,OAAO,IAAI,CAAC;QAClD,oFAAoF;QACpF,MAAM,QAAQ,GAAgB,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,EAAE,GAAG,IAAI,EAAE,QAAQ,EAAE,UAAU,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC;QAC7F,OAAO,CACH,KAAC,eAAe,IAEZ,IAAI,EAAE,QAAQ,EACd,OAAO,EAAE,QAAQ,EACjB,YAAY,EAAE,cAAc,IAAI,kBAAkB,EAClD,UAAU,EAAE,UAAU,EACtB,oBAAoB,EAAE,oBAAoB,EAC1C,WAAW,EAAE,WAAW,EACxB,oBAAoB,EAAE,oBAAoB,EAC1C,gBAAgB,EAAE,gBAAgB,EAClC,aAAa,EAAE,aAAa,EAC5B,WAAW,EAAE,eAAe,EAC5B,cAAc,EAAE,kBAAkB,YAEjC,iBAAiB,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CACvB,aAAI,SAAS,EAAC,kCAAkC,EAAC,IAAI,EAAC,OAAO,gBAAa,IAAI,CAAC,KAAK,YAC/E,IAAI,CAAC,QAAS,CAAC,GAAG,CAAC,KAAK,CAAC,EAAE,CAAC,UAAU,CAAC,KAAK,CAAC,CAAC,GAC9C,CACR,CAAC,CAAC,CAAC,IAAI,IAjBH,IAAI,CAAC,EAAE,IAAI,IAAI,CAAC,KAAK,CAkBZ,CACrB,CAAC;IACN,CAAC,CAAC;IAEF,OAAO,CACH,eAAK,SAAS,EAAE,SAAS,cAAW,UAAU,EAAC,IAAI,EAAC,YAAY,aAC3D,SAAS,CAAC,CAAC,CAAC,CACT,cACI,SAAS,EAAE,kBAAkB,WAAW,CAAC,CAAC,CAAC,6BAA6B,CAAC,CAAC,CAAC,EAAE,EAAE,EAC/E,OAAO,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,eAAe,EAAE,YAEnC,eAAK,SAAS,EAAC,gCAAgC,aAC3C,KAAC,OAAO,IAAC,SAAS,EAAC,uBAAuB,EAAC,IAAI,EAAC,uBAAuB,EAAC,IAAI,EAAC,GAAG,GAAG,EACnF,gBACI,SAAS,EAAC,wBAAwB,EAClC,IAAI,EAAC,MAAM,EACX,QAAQ,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,cAAc,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,EAC/C,WAAW,EAAE,iBAAiB,gBAClB,iBAAiB,EAC7B,KAAK,EAAE,WAAW,IAAI,WAAW,GACnC,IACA,GACJ,CACT,CAAC,CAAC,CAAC,IAAI,EAER,aAAI,SAAS,EAAC,gBAAgB,EAAC,IAAI,EAAC,MAAM,sBAAkB,UAAU,EAAC,QAAQ,EAAE,CAAC,YAC7E,aAAa,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC,GAC3C,IACH,CACT,CAAC;AACN,CAAC"}
|
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
export { EdsMenu } from './eds-menu.js';
|
|
2
|
+
export type { EdsMenuProps } from './eds-menu.js';
|
|
3
|
+
export { EdsMenuItemView } from './eds-menu-item-view.js';
|
|
4
|
+
export type { EdsMenuItemViewProps } from './eds-menu-item-view.js';
|
|
5
|
+
export type { EdsMenuItem } from './eds-menu-item.model.js';
|
|
6
|
+
//# sourceMappingURL=index.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/eds-menu/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,eAAe,CAAC;AACxC,YAAY,EAAE,YAAY,EAAE,MAAM,eAAe,CAAC;AAClD,OAAO,EAAE,eAAe,EAAE,MAAM,yBAAyB,CAAC;AAC1D,YAAY,EAAE,oBAAoB,EAAE,MAAM,yBAAyB,CAAC;AACpE,YAAY,EAAE,WAAW,EAAE,MAAM,0BAA0B,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/eds-menu/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,eAAe,CAAC;AAExC,OAAO,EAAE,eAAe,EAAE,MAAM,yBAAyB,CAAC"}
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
import * as React from 'react';
|
|
2
|
+
export interface EdsShellContentProps extends React.HTMLAttributes<HTMLDivElement> {
|
|
3
|
+
/** Default projected content. */
|
|
4
|
+
children?: React.ReactNode;
|
|
5
|
+
}
|
|
6
|
+
/**
|
|
7
|
+
* `EdsShellContent` — pure React port of the Angular `eds-shell-content`.
|
|
8
|
+
* Pure content-projection wrapper.
|
|
9
|
+
*/
|
|
10
|
+
export declare const EdsShellContent: React.ForwardRefExoticComponent<EdsShellContentProps & React.RefAttributes<HTMLDivElement>>;
|
|
11
|
+
//# sourceMappingURL=eds-shell-content.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"eds-shell-content.d.ts","sourceRoot":"","sources":["../../src/eds-shell/eds-shell-content.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAE/B,MAAM,WAAW,oBAAqB,SAAQ,KAAK,CAAC,cAAc,CAAC,cAAc,CAAC;IAC9E,iCAAiC;IACjC,QAAQ,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC;CAC9B;AAED;;;GAGG;AACH,eAAO,MAAM,eAAe,6FAY3B,CAAC"}
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
import { jsx as _jsx } from "react/jsx-runtime";
|
|
2
|
+
import * as React from 'react';
|
|
3
|
+
/**
|
|
4
|
+
* `EdsShellContent` — pure React port of the Angular `eds-shell-content`.
|
|
5
|
+
* Pure content-projection wrapper.
|
|
6
|
+
*/
|
|
7
|
+
export const EdsShellContent = React.forwardRef(function EdsShellContent({ children, className, ...rest }, ref) {
|
|
8
|
+
return (_jsx("div", { ref: ref, className: className ? `eds-shell-content ${className}` : 'eds-shell-content', ...rest, children: children }));
|
|
9
|
+
});
|
|
10
|
+
//# sourceMappingURL=eds-shell-content.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"eds-shell-content.js","sourceRoot":"","sources":["../../src/eds-shell/eds-shell-content.tsx"],"names":[],"mappings":";AAAA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAO/B;;;GAGG;AACH,MAAM,CAAC,MAAM,eAAe,GAAG,KAAK,CAAC,UAAU,CAC3C,SAAS,eAAe,CAAC,EAAE,QAAQ,EAAE,SAAS,EAAE,GAAG,IAAI,EAAE,EAAE,GAAG;IAC1D,OAAO,CACH,cACI,GAAG,EAAE,GAAG,EACR,SAAS,EAAE,SAAS,CAAC,CAAC,CAAC,qBAAqB,SAAS,EAAE,CAAC,CAAC,CAAC,mBAAmB,KACzE,IAAI,YAEP,QAAQ,GACP,CACT,CAAC;AACN,CAAC,CACJ,CAAC"}
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Context published by `EdsShell` so descendants (e.g. `EdsShellMenuToggle` placed in the
|
|
3
|
+
* toolbar slot, or a sidebar-header close button) can drive the shell's sidebar without the
|
|
4
|
+
* consumer manually wiring callbacks — the React analog of calling `shell.toggleSidebar()`
|
|
5
|
+
* on the Angular component instance.
|
|
6
|
+
*/
|
|
7
|
+
export interface EdsShellContextValue {
|
|
8
|
+
/** Whether the sidebar is currently open. */
|
|
9
|
+
isOpen: boolean;
|
|
10
|
+
/** Whether the shell is in overlay (tablet/mobile) mode. */
|
|
11
|
+
isOverlay: boolean;
|
|
12
|
+
/** Toggle the sidebar open/closed. */
|
|
13
|
+
toggleSidebar: () => void;
|
|
14
|
+
/** Close the sidebar (no-op unless overlay mode, matching the Angular behavior). */
|
|
15
|
+
closeSidebar: () => void;
|
|
16
|
+
}
|
|
17
|
+
export declare const EdsShellContext: import("react").Context<EdsShellContextValue | null>;
|
|
18
|
+
/** Access the enclosing `EdsShell`'s sidebar controls. Returns null when outside a shell. */
|
|
19
|
+
export declare function useEdsShell(): EdsShellContextValue | null;
|
|
20
|
+
//# sourceMappingURL=eds-shell-context.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"eds-shell-context.d.ts","sourceRoot":"","sources":["../../src/eds-shell/eds-shell-context.ts"],"names":[],"mappings":"AAEA;;;;;GAKG;AACH,MAAM,WAAW,oBAAoB;IACjC,6CAA6C;IAC7C,MAAM,EAAE,OAAO,CAAC;IAChB,4DAA4D;IAC5D,SAAS,EAAE,OAAO,CAAC;IACnB,sCAAsC;IACtC,aAAa,EAAE,MAAM,IAAI,CAAC;IAC1B,oFAAoF;IACpF,YAAY,EAAE,MAAM,IAAI,CAAC;CAC5B;AAED,eAAO,MAAM,eAAe,sDAAmD,CAAC;AAEhF,6FAA6F;AAC7F,wBAAgB,WAAW,IAAI,oBAAoB,GAAG,IAAI,CAEzD"}
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
import { createContext, useContext } from 'react';
|
|
2
|
+
export const EdsShellContext = createContext(null);
|
|
3
|
+
/** Access the enclosing `EdsShell`'s sidebar controls. Returns null when outside a shell. */
|
|
4
|
+
export function useEdsShell() {
|
|
5
|
+
return useContext(EdsShellContext);
|
|
6
|
+
}
|
|
7
|
+
//# sourceMappingURL=eds-shell-context.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"eds-shell-context.js","sourceRoot":"","sources":["../../src/eds-shell/eds-shell-context.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,UAAU,EAAE,MAAM,OAAO,CAAC;AAmBlD,MAAM,CAAC,MAAM,eAAe,GAAG,aAAa,CAA8B,IAAI,CAAC,CAAC;AAEhF,6FAA6F;AAC7F,MAAM,UAAU,WAAW;IACvB,OAAO,UAAU,CAAC,eAAe,CAAC,CAAC;AACvC,CAAC"}
|
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
.eds-shell-footer {
|
|
2
|
+
display: flex;
|
|
3
|
+
align-items: center;
|
|
4
|
+
justify-content: space-between;
|
|
5
|
+
padding: var(--eds-sp-s) var(--eds-sp-xl);
|
|
6
|
+
min-height: var(--eds-si-6xl);
|
|
7
|
+
background: var(--eds-c-surface-elevation);
|
|
8
|
+
border-top: var(--eds-bw-xs) solid var(--eds-c-border-divider);
|
|
9
|
+
font: var(--eds-f-microcopy-xs);
|
|
10
|
+
color: var(--eds-c-foreground-subtler);
|
|
11
|
+
flex-shrink: 0;
|
|
12
|
+
}
|
|
13
|
+
|
|
14
|
+
.eds-shell-footer .copyright {
|
|
15
|
+
white-space: nowrap;
|
|
16
|
+
}
|
|
17
|
+
|
|
18
|
+
@media (max-width: 767px) {
|
|
19
|
+
.eds-shell-footer {
|
|
20
|
+
flex-direction: column;
|
|
21
|
+
gap: var(--eds-sp-xs);
|
|
22
|
+
text-align: center;
|
|
23
|
+
padding: var(--eds-sp-m);
|
|
24
|
+
}
|
|
25
|
+
}
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
import * as React from 'react';
|
|
2
|
+
export interface EdsShellFooterProps extends React.HTMLAttributes<HTMLDivElement> {
|
|
3
|
+
/** Copyright text displayed on the left. @default '' */
|
|
4
|
+
copyright?: string;
|
|
5
|
+
/** Default projected content. */
|
|
6
|
+
children?: React.ReactNode;
|
|
7
|
+
}
|
|
8
|
+
/**
|
|
9
|
+
* `EdsShellFooter` — pure React port of the Angular `eds-shell-footer`.
|
|
10
|
+
*/
|
|
11
|
+
export declare const EdsShellFooter: React.ForwardRefExoticComponent<EdsShellFooterProps & React.RefAttributes<HTMLDivElement>>;
|
|
12
|
+
//# sourceMappingURL=eds-shell-footer.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"eds-shell-footer.d.ts","sourceRoot":"","sources":["../../src/eds-shell/eds-shell-footer.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAE/B,MAAM,WAAW,mBAAoB,SAAQ,KAAK,CAAC,cAAc,CAAC,cAAc,CAAC;IAC7E,wDAAwD;IACxD,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,iCAAiC;IACjC,QAAQ,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC;CAC9B;AAED;;GAEG;AACH,eAAO,MAAM,cAAc,4FAczB,CAAC"}
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
2
|
+
import * as React from 'react';
|
|
3
|
+
/**
|
|
4
|
+
* `EdsShellFooter` — pure React port of the Angular `eds-shell-footer`.
|
|
5
|
+
*/
|
|
6
|
+
export const EdsShellFooter = React.forwardRef(function EdsShellFooter({ copyright = '', children, className, ...rest }, ref) {
|
|
7
|
+
return (_jsxs("div", { ref: ref, className: className ? `eds-shell-footer ${className}` : 'eds-shell-footer', ...rest, children: [copyright ? _jsx("span", { className: "copyright", children: copyright }) : null, children] }));
|
|
8
|
+
});
|
|
9
|
+
//# sourceMappingURL=eds-shell-footer.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"eds-shell-footer.js","sourceRoot":"","sources":["../../src/eds-shell/eds-shell-footer.tsx"],"names":[],"mappings":";AAAA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAS/B;;GAEG;AACH,MAAM,CAAC,MAAM,cAAc,GAAG,KAAK,CAAC,UAAU,CAAsC,SAAS,cAAc,CACvG,EAAE,SAAS,GAAG,EAAE,EAAE,QAAQ,EAAE,SAAS,EAAE,GAAG,IAAI,EAAE,EAChD,GAAG;IAEH,OAAO,CACH,eACI,GAAG,EAAE,GAAG,EACR,SAAS,EAAE,SAAS,CAAC,CAAC,CAAC,oBAAoB,SAAS,EAAE,CAAC,CAAC,CAAC,kBAAkB,KACvE,IAAI,aAEP,SAAS,CAAC,CAAC,CAAC,eAAM,SAAS,EAAC,WAAW,YAAE,SAAS,GAAQ,CAAC,CAAC,CAAC,IAAI,EACjE,QAAQ,IACP,CACT,CAAC;AACN,CAAC,CAAC,CAAC"}
|
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
.eds-shell-header-app {
|
|
2
|
+
display: flex;
|
|
3
|
+
flex-direction: column;
|
|
4
|
+
justify-content: center;
|
|
5
|
+
gap: var(--eds-sp-4xs);
|
|
6
|
+
min-width: 0;
|
|
7
|
+
}
|
|
8
|
+
|
|
9
|
+
.eds-shell-header-app .app-name {
|
|
10
|
+
font: var(--eds-f-paragraph-xl);
|
|
11
|
+
color: inherit;
|
|
12
|
+
white-space: nowrap;
|
|
13
|
+
overflow: hidden;
|
|
14
|
+
text-overflow: ellipsis;
|
|
15
|
+
}
|
|
16
|
+
|
|
17
|
+
.eds-shell-header-app .app-subtitle {
|
|
18
|
+
font: var(--eds-f-microcopy-xs);
|
|
19
|
+
opacity: 0.8;
|
|
20
|
+
white-space: nowrap;
|
|
21
|
+
overflow: hidden;
|
|
22
|
+
text-overflow: ellipsis;
|
|
23
|
+
}
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
import * as React from 'react';
|
|
2
|
+
export interface EdsShellHeaderAppProps extends React.HTMLAttributes<HTMLDivElement> {
|
|
3
|
+
/** Full application name. @default '' */
|
|
4
|
+
appName?: string;
|
|
5
|
+
/** Short name for responsive/compact layouts (declared but unused). @default '' */
|
|
6
|
+
appShortName?: string;
|
|
7
|
+
/** Subtitle/description below the app name. @default '' */
|
|
8
|
+
appSubTitle?: string;
|
|
9
|
+
/** Default projected content. */
|
|
10
|
+
children?: React.ReactNode;
|
|
11
|
+
}
|
|
12
|
+
/**
|
|
13
|
+
* `EdsShellHeaderApp` — pure React port of the Angular `eds-shell-header-app`.
|
|
14
|
+
*/
|
|
15
|
+
export declare const EdsShellHeaderApp: React.ForwardRefExoticComponent<EdsShellHeaderAppProps & React.RefAttributes<HTMLDivElement>>;
|
|
16
|
+
//# sourceMappingURL=eds-shell-header-app.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"eds-shell-header-app.d.ts","sourceRoot":"","sources":["../../src/eds-shell/eds-shell-header-app.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAE/B,MAAM,WAAW,sBAAuB,SAAQ,KAAK,CAAC,cAAc,CAAC,cAAc,CAAC;IAChF,yCAAyC;IACzC,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,mFAAmF;IACnF,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,2DAA2D;IAC3D,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,iCAAiC;IACjC,QAAQ,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC;CAC9B;AAED;;GAEG;AACH,eAAO,MAAM,iBAAiB,+FAkB7B,CAAC"}
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
2
|
+
import * as React from 'react';
|
|
3
|
+
/**
|
|
4
|
+
* `EdsShellHeaderApp` — pure React port of the Angular `eds-shell-header-app`.
|
|
5
|
+
*/
|
|
6
|
+
export const EdsShellHeaderApp = React.forwardRef(function EdsShellHeaderApp(
|
|
7
|
+
// appShortName is kept for API parity with the Angular input but is unused (as in Angular).
|
|
8
|
+
{ appName = '', appShortName: _appShortName = '', appSubTitle = '', children, className, ...rest }, ref) {
|
|
9
|
+
return (_jsxs("div", { ref: ref, className: className ? `eds-shell-header-app ${className}` : 'eds-shell-header-app', ...rest, children: [appName ? _jsx("span", { className: "app-name", children: appName }) : null, appSubTitle ? _jsx("span", { className: "app-subtitle", children: appSubTitle }) : null, children] }));
|
|
10
|
+
});
|
|
11
|
+
//# sourceMappingURL=eds-shell-header-app.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"eds-shell-header-app.js","sourceRoot":"","sources":["../../src/eds-shell/eds-shell-header-app.tsx"],"names":[],"mappings":";AAAA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAa/B;;GAEG;AACH,MAAM,CAAC,MAAM,iBAAiB,GAAG,KAAK,CAAC,UAAU,CAC7C,SAAS,iBAAiB;AACtB,4FAA4F;AAC5F,EAAE,OAAO,GAAG,EAAE,EAAE,YAAY,EAAE,aAAa,GAAG,EAAE,EAAE,WAAW,GAAG,EAAE,EAAE,QAAQ,EAAE,SAAS,EAAE,GAAG,IAAI,EAAE,EAClG,GAAG;IAEH,OAAO,CACH,eACI,GAAG,EAAE,GAAG,EACR,SAAS,EAAE,SAAS,CAAC,CAAC,CAAC,wBAAwB,SAAS,EAAE,CAAC,CAAC,CAAC,sBAAsB,KAC/E,IAAI,aAEP,OAAO,CAAC,CAAC,CAAC,eAAM,SAAS,EAAC,UAAU,YAAE,OAAO,GAAQ,CAAC,CAAC,CAAC,IAAI,EAC5D,WAAW,CAAC,CAAC,CAAC,eAAM,SAAS,EAAC,cAAc,YAAE,WAAW,GAAQ,CAAC,CAAC,CAAC,IAAI,EACxE,QAAQ,IACP,CACT,CAAC;AACN,CAAC,CACJ,CAAC"}
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
import * as React from 'react';
|
|
2
|
+
export interface EdsShellHeaderEndProps extends React.HTMLAttributes<HTMLDivElement> {
|
|
3
|
+
/** Default projected content. */
|
|
4
|
+
children?: React.ReactNode;
|
|
5
|
+
}
|
|
6
|
+
/**
|
|
7
|
+
* `EdsShellHeaderEnd` — pure React port of the Angular `eds-shell-header-end`.
|
|
8
|
+
* Pure content-projection wrapper.
|
|
9
|
+
*/
|
|
10
|
+
export declare const EdsShellHeaderEnd: React.ForwardRefExoticComponent<EdsShellHeaderEndProps & React.RefAttributes<HTMLDivElement>>;
|
|
11
|
+
//# sourceMappingURL=eds-shell-header-end.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"eds-shell-header-end.d.ts","sourceRoot":"","sources":["../../src/eds-shell/eds-shell-header-end.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAE/B,MAAM,WAAW,sBAAuB,SAAQ,KAAK,CAAC,cAAc,CAAC,cAAc,CAAC;IAChF,iCAAiC;IACjC,QAAQ,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC;CAC9B;AAED;;;GAGG;AACH,eAAO,MAAM,iBAAiB,+FAY7B,CAAC"}
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
import { jsx as _jsx } from "react/jsx-runtime";
|
|
2
|
+
import * as React from 'react';
|
|
3
|
+
/**
|
|
4
|
+
* `EdsShellHeaderEnd` — pure React port of the Angular `eds-shell-header-end`.
|
|
5
|
+
* Pure content-projection wrapper.
|
|
6
|
+
*/
|
|
7
|
+
export const EdsShellHeaderEnd = React.forwardRef(function EdsShellHeaderEnd({ children, className, ...rest }, ref) {
|
|
8
|
+
return (_jsx("div", { ref: ref, className: className ? `eds-shell-header-end ${className}` : 'eds-shell-header-end', ...rest, children: children }));
|
|
9
|
+
});
|
|
10
|
+
//# sourceMappingURL=eds-shell-header-end.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"eds-shell-header-end.js","sourceRoot":"","sources":["../../src/eds-shell/eds-shell-header-end.tsx"],"names":[],"mappings":";AAAA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAO/B;;;GAGG;AACH,MAAM,CAAC,MAAM,iBAAiB,GAAG,KAAK,CAAC,UAAU,CAC7C,SAAS,iBAAiB,CAAC,EAAE,QAAQ,EAAE,SAAS,EAAE,GAAG,IAAI,EAAE,EAAE,GAAG;IAC5D,OAAO,CACH,cACI,GAAG,EAAE,GAAG,EACR,SAAS,EAAE,SAAS,CAAC,CAAC,CAAC,wBAAwB,SAAS,EAAE,CAAC,CAAC,CAAC,sBAAsB,KAC/E,IAAI,YAEP,QAAQ,GACP,CACT,CAAC;AACN,CAAC,CACJ,CAAC"}
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
.eds-shell-header-environment {
|
|
2
|
+
position: absolute;
|
|
3
|
+
top: 6px;
|
|
4
|
+
left: -20px;
|
|
5
|
+
display: inline-flex;
|
|
6
|
+
align-items: center;
|
|
7
|
+
justify-content: center;
|
|
8
|
+
width: 80px;
|
|
9
|
+
padding: var(--eds-sp-3xs) 0;
|
|
10
|
+
background: var(--eds-c-surface-highlight);
|
|
11
|
+
color: var(--eds-c-on-surface-highlight);
|
|
12
|
+
font: var(--eds-f-microcopy-xs);
|
|
13
|
+
font-weight: 700;
|
|
14
|
+
text-transform: uppercase;
|
|
15
|
+
white-space: nowrap;
|
|
16
|
+
transform: rotate(-35deg);
|
|
17
|
+
transform-origin: center;
|
|
18
|
+
box-shadow: 0 1px 3px rgba(0, 0, 0, 0.2);
|
|
19
|
+
z-index: 1;
|
|
20
|
+
pointer-events: none;
|
|
21
|
+
}
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
import * as React from 'react';
|
|
2
|
+
export interface EdsShellHeaderEnvironmentProps extends React.HTMLAttributes<HTMLDivElement> {
|
|
3
|
+
/** Default projected content. */
|
|
4
|
+
children?: React.ReactNode;
|
|
5
|
+
}
|
|
6
|
+
/**
|
|
7
|
+
* `EdsShellHeaderEnvironment` — pure React port of the Angular `eds-shell-header-environment`.
|
|
8
|
+
* Pure content-projection wrapper.
|
|
9
|
+
*/
|
|
10
|
+
export declare const EdsShellHeaderEnvironment: React.ForwardRefExoticComponent<EdsShellHeaderEnvironmentProps & React.RefAttributes<HTMLDivElement>>;
|
|
11
|
+
//# sourceMappingURL=eds-shell-header-environment.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"eds-shell-header-environment.d.ts","sourceRoot":"","sources":["../../src/eds-shell/eds-shell-header-environment.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAE/B,MAAM,WAAW,8BAA+B,SAAQ,KAAK,CAAC,cAAc,CAAC,cAAc,CAAC;IACxF,iCAAiC;IACjC,QAAQ,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC;CAC9B;AAED;;;GAGG;AACH,eAAO,MAAM,yBAAyB,uGAcrC,CAAC"}
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
import { jsx as _jsx } from "react/jsx-runtime";
|
|
2
|
+
import * as React from 'react';
|
|
3
|
+
/**
|
|
4
|
+
* `EdsShellHeaderEnvironment` — pure React port of the Angular `eds-shell-header-environment`.
|
|
5
|
+
* Pure content-projection wrapper.
|
|
6
|
+
*/
|
|
7
|
+
export const EdsShellHeaderEnvironment = React.forwardRef(function EdsShellHeaderEnvironment({ children, className, ...rest }, ref) {
|
|
8
|
+
return (_jsx("div", { ref: ref, className: className ? `eds-shell-header-environment ${className}` : 'eds-shell-header-environment', ...rest, children: children }));
|
|
9
|
+
});
|
|
10
|
+
//# sourceMappingURL=eds-shell-header-environment.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"eds-shell-header-environment.js","sourceRoot":"","sources":["../../src/eds-shell/eds-shell-header-environment.tsx"],"names":[],"mappings":";AAAA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAO/B;;;GAGG;AACH,MAAM,CAAC,MAAM,yBAAyB,GAAG,KAAK,CAAC,UAAU,CACrD,SAAS,yBAAyB,CAAC,EAAE,QAAQ,EAAE,SAAS,EAAE,GAAG,IAAI,EAAE,EAAE,GAAG;IACpE,OAAO,CACH,cACI,GAAG,EAAE,GAAG,EACR,SAAS,EACL,SAAS,CAAC,CAAC,CAAC,gCAAgC,SAAS,EAAE,CAAC,CAAC,CAAC,8BAA8B,KAExF,IAAI,YAEP,QAAQ,GACP,CACT,CAAC;AACN,CAAC,CACJ,CAAC"}
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
import * as React from 'react';
|
|
2
|
+
export interface EdsShellHeaderLogoProps extends React.HTMLAttributes<HTMLDivElement> {
|
|
3
|
+
/** Custom logo URL. If not provided, uses the EC logo for the given language. @default '' */
|
|
4
|
+
logoUrl?: string;
|
|
5
|
+
/** Current language code (used to resolve the EC logo variant). @default 'en' */
|
|
6
|
+
language?: string;
|
|
7
|
+
/** Route to navigate on logo click. @default '/' */
|
|
8
|
+
homeUrl?: string;
|
|
9
|
+
/** Logo height CSS value. @default '56px' */
|
|
10
|
+
logoHeight?: string;
|
|
11
|
+
/** Logo width CSS value. @default 'auto' */
|
|
12
|
+
logoWidth?: string;
|
|
13
|
+
/** Default projected content. */
|
|
14
|
+
children?: React.ReactNode;
|
|
15
|
+
}
|
|
16
|
+
/**
|
|
17
|
+
* `EdsShellHeaderLogo` — pure React port of the Angular `eds-shell-header-logo`.
|
|
18
|
+
*/
|
|
19
|
+
export declare const EdsShellHeaderLogo: React.ForwardRefExoticComponent<EdsShellHeaderLogoProps & React.RefAttributes<HTMLDivElement>>;
|
|
20
|
+
//# sourceMappingURL=eds-shell-header-logo.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"eds-shell-header-logo.d.ts","sourceRoot":"","sources":["../../src/eds-shell/eds-shell-header-logo.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAE/B,MAAM,WAAW,uBAAwB,SAAQ,KAAK,CAAC,cAAc,CAAC,cAAc,CAAC;IACjF,6FAA6F;IAC7F,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,iFAAiF;IACjF,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,oDAAoD;IACpD,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,6CAA6C;IAC7C,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,4CAA4C;IAC5C,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,iCAAiC;IACjC,QAAQ,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC;CAC9B;AAED;;GAEG;AACH,eAAO,MAAM,kBAAkB,gGAiC9B,CAAC"}
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
2
|
+
import * as React from 'react';
|
|
3
|
+
/**
|
|
4
|
+
* `EdsShellHeaderLogo` — pure React port of the Angular `eds-shell-header-logo`.
|
|
5
|
+
*/
|
|
6
|
+
export const EdsShellHeaderLogo = React.forwardRef(function EdsShellHeaderLogo({ logoUrl = '', language = 'en', homeUrl = '/', logoHeight = '56px', logoWidth = 'auto', children, className, ...rest }, ref) {
|
|
7
|
+
const resolvedLogoUrl = logoUrl || `assets/eds/logos/ec/positive/logo-ec--${language}.svg`;
|
|
8
|
+
return (_jsxs("div", { ref: ref, className: className ? `eds-shell-header-logo ${className}` : 'eds-shell-header-logo', ...rest, children: [_jsx("a", { href: homeUrl, className: "logo-link", children: _jsx("img", { src: resolvedLogoUrl, style: { height: logoHeight, width: logoWidth }, alt: "European Commission - Home" }) }), children] }));
|
|
9
|
+
});
|
|
10
|
+
//# sourceMappingURL=eds-shell-header-logo.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"eds-shell-header-logo.js","sourceRoot":"","sources":["../../src/eds-shell/eds-shell-header-logo.tsx"],"names":[],"mappings":";AAAA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAiB/B;;GAEG;AACH,MAAM,CAAC,MAAM,kBAAkB,GAAG,KAAK,CAAC,UAAU,CAC9C,SAAS,kBAAkB,CACvB,EACI,OAAO,GAAG,EAAE,EACZ,QAAQ,GAAG,IAAI,EACf,OAAO,GAAG,GAAG,EACb,UAAU,GAAG,MAAM,EACnB,SAAS,GAAG,MAAM,EAClB,QAAQ,EACR,SAAS,EACT,GAAG,IAAI,EACV,EACD,GAAG;IAEH,MAAM,eAAe,GAAG,OAAO,IAAI,yCAAyC,QAAQ,MAAM,CAAC;IAE3F,OAAO,CACH,eACI,GAAG,EAAE,GAAG,EACR,SAAS,EAAE,SAAS,CAAC,CAAC,CAAC,yBAAyB,SAAS,EAAE,CAAC,CAAC,CAAC,uBAAuB,KACjF,IAAI,aAER,YAAG,IAAI,EAAE,OAAO,EAAE,SAAS,EAAC,WAAW,YACnC,cACI,GAAG,EAAE,eAAe,EACpB,KAAK,EAAE,EAAE,MAAM,EAAE,UAAU,EAAE,KAAK,EAAE,SAAS,EAAE,EAC/C,GAAG,EAAC,4BAA4B,GAClC,GACF,EACH,QAAQ,IACP,CACT,CAAC;AACN,CAAC,CACJ,CAAC"}
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
import * as React from 'react';
|
|
2
|
+
export interface EdsShellHeaderStartProps extends React.HTMLAttributes<HTMLDivElement> {
|
|
3
|
+
/** Default projected content. */
|
|
4
|
+
children?: React.ReactNode;
|
|
5
|
+
}
|
|
6
|
+
/**
|
|
7
|
+
* `EdsShellHeaderStart` — pure React port of the Angular `eds-shell-header-start`.
|
|
8
|
+
* Pure content-projection wrapper.
|
|
9
|
+
*/
|
|
10
|
+
export declare const EdsShellHeaderStart: React.ForwardRefExoticComponent<EdsShellHeaderStartProps & React.RefAttributes<HTMLDivElement>>;
|
|
11
|
+
//# sourceMappingURL=eds-shell-header-start.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"eds-shell-header-start.d.ts","sourceRoot":"","sources":["../../src/eds-shell/eds-shell-header-start.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAE/B,MAAM,WAAW,wBAAyB,SAAQ,KAAK,CAAC,cAAc,CAAC,cAAc,CAAC;IAClF,iCAAiC;IACjC,QAAQ,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC;CAC9B;AAED;;;GAGG;AACH,eAAO,MAAM,mBAAmB,iGAY/B,CAAC"}
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
import { jsx as _jsx } from "react/jsx-runtime";
|
|
2
|
+
import * as React from 'react';
|
|
3
|
+
/**
|
|
4
|
+
* `EdsShellHeaderStart` — pure React port of the Angular `eds-shell-header-start`.
|
|
5
|
+
* Pure content-projection wrapper.
|
|
6
|
+
*/
|
|
7
|
+
export const EdsShellHeaderStart = React.forwardRef(function EdsShellHeaderStart({ children, className, ...rest }, ref) {
|
|
8
|
+
return (_jsx("div", { ref: ref, className: className ? `eds-shell-header-start ${className}` : 'eds-shell-header-start', ...rest, children: children }));
|
|
9
|
+
});
|
|
10
|
+
//# sourceMappingURL=eds-shell-header-start.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"eds-shell-header-start.js","sourceRoot":"","sources":["../../src/eds-shell/eds-shell-header-start.tsx"],"names":[],"mappings":";AAAA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAO/B;;;GAGG;AACH,MAAM,CAAC,MAAM,mBAAmB,GAAG,KAAK,CAAC,UAAU,CAC/C,SAAS,mBAAmB,CAAC,EAAE,QAAQ,EAAE,SAAS,EAAE,GAAG,IAAI,EAAE,EAAE,GAAG;IAC9D,OAAO,CACH,cACI,GAAG,EAAE,GAAG,EACR,SAAS,EAAE,SAAS,CAAC,CAAC,CAAC,0BAA0B,SAAS,EAAE,CAAC,CAAC,CAAC,wBAAwB,KACnF,IAAI,YAEP,QAAQ,GACP,CACT,CAAC;AACN,CAAC,CACJ,CAAC"}
|
|
@@ -0,0 +1,33 @@
|
|
|
1
|
+
.eds-shell-header {
|
|
2
|
+
display: flex;
|
|
3
|
+
align-items: center;
|
|
4
|
+
gap: var(--eds-sp-m);
|
|
5
|
+
height: var(--eds-si-9xl);
|
|
6
|
+
padding: 0 var(--eds-sp-xl);
|
|
7
|
+
background: var(--eds-c-surface-elevation);
|
|
8
|
+
border-bottom: var(--eds-bw-xs) solid var(--eds-c-border-divider);
|
|
9
|
+
flex-shrink: 0;
|
|
10
|
+
}
|
|
11
|
+
|
|
12
|
+
.eds-shell-header .logo-wrapper {
|
|
13
|
+
position: relative;
|
|
14
|
+
overflow: hidden;
|
|
15
|
+
display: flex;
|
|
16
|
+
align-items: center;
|
|
17
|
+
}
|
|
18
|
+
|
|
19
|
+
.eds-shell-header .spacer {
|
|
20
|
+
flex: 1;
|
|
21
|
+
}
|
|
22
|
+
|
|
23
|
+
@media (min-width: 768px) and (max-width: 1139px) {
|
|
24
|
+
.eds-shell-header {
|
|
25
|
+
display: none;
|
|
26
|
+
}
|
|
27
|
+
}
|
|
28
|
+
|
|
29
|
+
@media (max-width: 767px) {
|
|
30
|
+
.eds-shell-header {
|
|
31
|
+
display: none;
|
|
32
|
+
}
|
|
33
|
+
}
|