@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.
Files changed (313) hide show
  1. package/eds-accordion/eds-accordion-item.css +108 -0
  2. package/eds-accordion/eds-accordion-item.d.ts +47 -0
  3. package/eds-accordion/eds-accordion-item.d.ts.map +1 -0
  4. package/eds-accordion/eds-accordion-item.js +87 -0
  5. package/eds-accordion/eds-accordion-item.js.map +1 -0
  6. package/eds-accordion/eds-accordion.css +7 -0
  7. package/eds-accordion/eds-accordion.d.ts +54 -0
  8. package/eds-accordion/eds-accordion.d.ts.map +1 -0
  9. package/eds-accordion/eds-accordion.js +79 -0
  10. package/eds-accordion/eds-accordion.js.map +1 -0
  11. package/eds-accordion/index.d.ts +5 -0
  12. package/eds-accordion/index.d.ts.map +1 -0
  13. package/eds-accordion/index.js +3 -0
  14. package/eds-accordion/index.js.map +1 -0
  15. package/eds-alert/eds-alert-title.css +5 -0
  16. package/eds-alert/eds-alert-title.d.ts +12 -0
  17. package/eds-alert/eds-alert-title.d.ts.map +1 -0
  18. package/eds-alert/eds-alert-title.js +12 -0
  19. package/eds-alert/eds-alert-title.js.map +1 -0
  20. package/eds-alert/eds-alert.css +62 -0
  21. package/eds-alert/eds-alert.d.ts +38 -0
  22. package/eds-alert/eds-alert.d.ts.map +1 -0
  23. package/eds-alert/eds-alert.js +29 -0
  24. package/eds-alert/eds-alert.js.map +1 -0
  25. package/eds-alert/index.d.ts +5 -0
  26. package/eds-alert/index.d.ts.map +1 -0
  27. package/eds-alert/index.js +3 -0
  28. package/eds-alert/index.js.map +1 -0
  29. package/eds-avatar/eds-avatar-badge.css +34 -0
  30. package/eds-avatar/eds-avatar-badge.d.ts +20 -0
  31. package/eds-avatar/eds-avatar-badge.d.ts.map +1 -0
  32. package/eds-avatar/eds-avatar-badge.js +13 -0
  33. package/eds-avatar/eds-avatar-badge.js.map +1 -0
  34. package/eds-avatar/eds-avatar-content-label.css +5 -0
  35. package/eds-avatar/eds-avatar-content-label.d.ts +13 -0
  36. package/eds-avatar/eds-avatar-content-label.d.ts.map +1 -0
  37. package/eds-avatar/eds-avatar-content-label.js +12 -0
  38. package/eds-avatar/eds-avatar-content-label.js.map +1 -0
  39. package/eds-avatar/eds-avatar-content-sublabel.css +5 -0
  40. package/eds-avatar/eds-avatar-content-sublabel.d.ts +13 -0
  41. package/eds-avatar/eds-avatar-content-sublabel.d.ts.map +1 -0
  42. package/eds-avatar/eds-avatar-content-sublabel.js +12 -0
  43. package/eds-avatar/eds-avatar-content-sublabel.js.map +1 -0
  44. package/eds-avatar/eds-avatar-content.css +6 -0
  45. package/eds-avatar/eds-avatar-content.d.ts +17 -0
  46. package/eds-avatar/eds-avatar-content.d.ts.map +1 -0
  47. package/eds-avatar/eds-avatar-content.js +12 -0
  48. package/eds-avatar/eds-avatar-content.js.map +1 -0
  49. package/eds-avatar/eds-avatar-icon.css +13 -0
  50. package/eds-avatar/eds-avatar-icon.d.ts +14 -0
  51. package/eds-avatar/eds-avatar-icon.d.ts.map +1 -0
  52. package/eds-avatar/eds-avatar-icon.js +13 -0
  53. package/eds-avatar/eds-avatar-icon.js.map +1 -0
  54. package/eds-avatar/eds-avatar-image.css +24 -0
  55. package/eds-avatar/eds-avatar-image.d.ts +19 -0
  56. package/eds-avatar/eds-avatar-image.d.ts.map +1 -0
  57. package/eds-avatar/eds-avatar-image.js +16 -0
  58. package/eds-avatar/eds-avatar-image.js.map +1 -0
  59. package/eds-avatar/eds-avatar-list.css +21 -0
  60. package/eds-avatar/eds-avatar-list.d.ts +14 -0
  61. package/eds-avatar/eds-avatar-list.d.ts.map +1 -0
  62. package/eds-avatar/eds-avatar-list.js +13 -0
  63. package/eds-avatar/eds-avatar-list.js.map +1 -0
  64. package/eds-avatar/eds-avatar-text.css +7 -0
  65. package/eds-avatar/eds-avatar-text.d.ts +14 -0
  66. package/eds-avatar/eds-avatar-text.d.ts.map +1 -0
  67. package/eds-avatar/eds-avatar-text.js +13 -0
  68. package/eds-avatar/eds-avatar-text.js.map +1 -0
  69. package/eds-avatar/eds-avatar.css +128 -0
  70. package/eds-avatar/eds-avatar.d.ts +38 -0
  71. package/eds-avatar/eds-avatar.d.ts.map +1 -0
  72. package/eds-avatar/eds-avatar.js +48 -0
  73. package/eds-avatar/eds-avatar.js.map +1 -0
  74. package/eds-avatar/index.d.ts +19 -0
  75. package/eds-avatar/index.d.ts.map +1 -0
  76. package/eds-avatar/index.js +10 -0
  77. package/eds-avatar/index.js.map +1 -0
  78. package/eds-badge/eds-badge.css +174 -0
  79. package/eds-badge/eds-badge.d.ts +46 -0
  80. package/eds-badge/eds-badge.d.ts.map +1 -0
  81. package/eds-badge/eds-badge.js +39 -0
  82. package/eds-badge/eds-badge.js.map +1 -0
  83. package/eds-badge/index.d.ts +3 -0
  84. package/eds-badge/index.d.ts.map +1 -0
  85. package/eds-badge/index.js +2 -0
  86. package/eds-badge/index.js.map +1 -0
  87. package/eds-button/eds-button.css +233 -0
  88. package/eds-button/eds-button.d.ts +65 -0
  89. package/eds-button/eds-button.d.ts.map +1 -0
  90. package/eds-button/eds-button.js +33 -0
  91. package/eds-button/eds-button.js.map +1 -0
  92. package/eds-button/index.d.ts +3 -0
  93. package/eds-button/index.d.ts.map +1 -0
  94. package/eds-button/index.js +2 -0
  95. package/eds-button/index.js.map +1 -0
  96. package/eds-chip/eds-chip.css +171 -0
  97. package/eds-chip/eds-chip.d.ts +71 -0
  98. package/eds-chip/eds-chip.d.ts.map +1 -0
  99. package/eds-chip/eds-chip.js +95 -0
  100. package/eds-chip/eds-chip.js.map +1 -0
  101. package/eds-chip/index.d.ts +3 -0
  102. package/eds-chip/index.d.ts.map +1 -0
  103. package/eds-chip/index.js +2 -0
  104. package/eds-chip/index.js.map +1 -0
  105. package/eds-chip-list/eds-chip-list.css +32 -0
  106. package/eds-chip-list/eds-chip-list.d.ts +68 -0
  107. package/eds-chip-list/eds-chip-list.d.ts.map +1 -0
  108. package/eds-chip-list/eds-chip-list.js +69 -0
  109. package/eds-chip-list/eds-chip-list.js.map +1 -0
  110. package/eds-chip-list/index.d.ts +3 -0
  111. package/eds-chip-list/index.d.ts.map +1 -0
  112. package/eds-chip-list/index.js +2 -0
  113. package/eds-chip-list/index.js.map +1 -0
  114. package/eds-icon/eds-icon.css +80 -0
  115. package/eds-icon/eds-icon.d.ts +44 -0
  116. package/eds-icon/eds-icon.d.ts.map +1 -0
  117. package/eds-icon/eds-icon.js +26 -0
  118. package/eds-icon/eds-icon.js.map +1 -0
  119. package/eds-icon/index.d.ts +3 -0
  120. package/eds-icon/index.d.ts.map +1 -0
  121. package/eds-icon/index.js +2 -0
  122. package/eds-icon/index.js.map +1 -0
  123. package/eds-icon-button/eds-icon-button.css +83 -0
  124. package/eds-icon-button/eds-icon-button.d.ts +33 -0
  125. package/eds-icon-button/eds-icon-button.d.ts.map +1 -0
  126. package/eds-icon-button/eds-icon-button.js +15 -0
  127. package/eds-icon-button/eds-icon-button.js.map +1 -0
  128. package/eds-icon-button/index.d.ts +3 -0
  129. package/eds-icon-button/index.d.ts.map +1 -0
  130. package/eds-icon-button/index.js +2 -0
  131. package/eds-icon-button/index.js.map +1 -0
  132. package/eds-icon-state/eds-icon-state.css +5 -0
  133. package/eds-icon-state/eds-icon-state.d.ts +24 -0
  134. package/eds-icon-state/eds-icon-state.d.ts.map +1 -0
  135. package/eds-icon-state/eds-icon-state.js +21 -0
  136. package/eds-icon-state/eds-icon-state.js.map +1 -0
  137. package/eds-icon-state/index.d.ts +3 -0
  138. package/eds-icon-state/index.d.ts.map +1 -0
  139. package/eds-icon-state/index.js +2 -0
  140. package/eds-icon-state/index.js.map +1 -0
  141. package/eds-link/eds-link.css +83 -0
  142. package/eds-link/eds-link.d.ts +32 -0
  143. package/eds-link/eds-link.d.ts.map +1 -0
  144. package/eds-link/eds-link.js +15 -0
  145. package/eds-link/eds-link.js.map +1 -0
  146. package/eds-link/index.d.ts +3 -0
  147. package/eds-link/index.d.ts.map +1 -0
  148. package/eds-link/index.js +2 -0
  149. package/eds-link/index.js.map +1 -0
  150. package/eds-menu/eds-menu-item-view.d.ts +31 -0
  151. package/eds-menu/eds-menu-item-view.d.ts.map +1 -0
  152. package/eds-menu/eds-menu-item-view.js +65 -0
  153. package/eds-menu/eds-menu-item-view.js.map +1 -0
  154. package/eds-menu/eds-menu-item.css +221 -0
  155. package/eds-menu/eds-menu-item.model.d.ts +69 -0
  156. package/eds-menu/eds-menu-item.model.d.ts.map +1 -0
  157. package/eds-menu/eds-menu-item.model.js +2 -0
  158. package/eds-menu/eds-menu-item.model.js.map +1 -0
  159. package/eds-menu/eds-menu.css +83 -0
  160. package/eds-menu/eds-menu.d.ts +52 -0
  161. package/eds-menu/eds-menu.d.ts.map +1 -0
  162. package/eds-menu/eds-menu.js +145 -0
  163. package/eds-menu/eds-menu.js.map +1 -0
  164. package/eds-menu/index.d.ts +6 -0
  165. package/eds-menu/index.d.ts.map +1 -0
  166. package/eds-menu/index.js +3 -0
  167. package/eds-menu/index.js.map +1 -0
  168. package/eds-shell/eds-shell-content.css +11 -0
  169. package/eds-shell/eds-shell-content.d.ts +11 -0
  170. package/eds-shell/eds-shell-content.d.ts.map +1 -0
  171. package/eds-shell/eds-shell-content.js +10 -0
  172. package/eds-shell/eds-shell-content.js.map +1 -0
  173. package/eds-shell/eds-shell-context.d.ts +20 -0
  174. package/eds-shell/eds-shell-context.d.ts.map +1 -0
  175. package/eds-shell/eds-shell-context.js +7 -0
  176. package/eds-shell/eds-shell-context.js.map +1 -0
  177. package/eds-shell/eds-shell-footer.css +25 -0
  178. package/eds-shell/eds-shell-footer.d.ts +12 -0
  179. package/eds-shell/eds-shell-footer.d.ts.map +1 -0
  180. package/eds-shell/eds-shell-footer.js +9 -0
  181. package/eds-shell/eds-shell-footer.js.map +1 -0
  182. package/eds-shell/eds-shell-header-app.css +23 -0
  183. package/eds-shell/eds-shell-header-app.d.ts +16 -0
  184. package/eds-shell/eds-shell-header-app.d.ts.map +1 -0
  185. package/eds-shell/eds-shell-header-app.js +11 -0
  186. package/eds-shell/eds-shell-header-app.js.map +1 -0
  187. package/eds-shell/eds-shell-header-end.css +5 -0
  188. package/eds-shell/eds-shell-header-end.d.ts +11 -0
  189. package/eds-shell/eds-shell-header-end.d.ts.map +1 -0
  190. package/eds-shell/eds-shell-header-end.js +10 -0
  191. package/eds-shell/eds-shell-header-end.js.map +1 -0
  192. package/eds-shell/eds-shell-header-environment.css +21 -0
  193. package/eds-shell/eds-shell-header-environment.d.ts +11 -0
  194. package/eds-shell/eds-shell-header-environment.d.ts.map +1 -0
  195. package/eds-shell/eds-shell-header-environment.js +10 -0
  196. package/eds-shell/eds-shell-header-environment.js.map +1 -0
  197. package/eds-shell/eds-shell-header-logo.css +14 -0
  198. package/eds-shell/eds-shell-header-logo.d.ts +20 -0
  199. package/eds-shell/eds-shell-header-logo.d.ts.map +1 -0
  200. package/eds-shell/eds-shell-header-logo.js +10 -0
  201. package/eds-shell/eds-shell-header-logo.js.map +1 -0
  202. package/eds-shell/eds-shell-header-start.css +5 -0
  203. package/eds-shell/eds-shell-header-start.d.ts +11 -0
  204. package/eds-shell/eds-shell-header-start.d.ts.map +1 -0
  205. package/eds-shell/eds-shell-header-start.js +10 -0
  206. package/eds-shell/eds-shell-header-start.js.map +1 -0
  207. package/eds-shell/eds-shell-header.css +33 -0
  208. package/eds-shell/eds-shell-header.d.ts +25 -0
  209. package/eds-shell/eds-shell-header.d.ts.map +1 -0
  210. package/eds-shell/eds-shell-header.js +14 -0
  211. package/eds-shell/eds-shell-header.js.map +1 -0
  212. package/eds-shell/eds-shell-menu-toggle.css +4 -0
  213. package/eds-shell/eds-shell-menu-toggle.d.ts +16 -0
  214. package/eds-shell/eds-shell-menu-toggle.d.ts.map +1 -0
  215. package/eds-shell/eds-shell-menu-toggle.js +20 -0
  216. package/eds-shell/eds-shell-menu-toggle.js.map +1 -0
  217. package/eds-shell/eds-shell-sidebar-bottom-nav.css +8 -0
  218. package/eds-shell/eds-shell-sidebar-bottom-nav.d.ts +20 -0
  219. package/eds-shell/eds-shell-sidebar-bottom-nav.d.ts.map +1 -0
  220. package/eds-shell/eds-shell-sidebar-bottom-nav.js +11 -0
  221. package/eds-shell/eds-shell-sidebar-bottom-nav.js.map +1 -0
  222. package/eds-shell/eds-shell-sidebar-footer.css +10 -0
  223. package/eds-shell/eds-shell-sidebar-footer.d.ts +10 -0
  224. package/eds-shell/eds-shell-sidebar-footer.d.ts.map +1 -0
  225. package/eds-shell/eds-shell-sidebar-footer.js +10 -0
  226. package/eds-shell/eds-shell-sidebar-footer.js.map +1 -0
  227. package/eds-shell/eds-shell-sidebar-header.css +33 -0
  228. package/eds-shell/eds-shell-sidebar-header.d.ts +16 -0
  229. package/eds-shell/eds-shell-sidebar-header.d.ts.map +1 -0
  230. package/eds-shell/eds-shell-sidebar-header.js +10 -0
  231. package/eds-shell/eds-shell-sidebar-header.js.map +1 -0
  232. package/eds-shell/eds-shell-sidebar-nav.css +9 -0
  233. package/eds-shell/eds-shell-sidebar-nav.d.ts +20 -0
  234. package/eds-shell/eds-shell-sidebar-nav.d.ts.map +1 -0
  235. package/eds-shell/eds-shell-sidebar-nav.js +11 -0
  236. package/eds-shell/eds-shell-sidebar-nav.js.map +1 -0
  237. package/eds-shell/eds-shell-sidebar.css +5 -0
  238. package/eds-shell/eds-shell-sidebar.d.ts +25 -0
  239. package/eds-shell/eds-shell-sidebar.d.ts.map +1 -0
  240. package/eds-shell/eds-shell-sidebar.js +15 -0
  241. package/eds-shell/eds-shell-sidebar.js.map +1 -0
  242. package/eds-shell/eds-shell-toolbar-app.css +23 -0
  243. package/eds-shell/eds-shell-toolbar-app.d.ts +16 -0
  244. package/eds-shell/eds-shell-toolbar-app.d.ts.map +1 -0
  245. package/eds-shell/eds-shell-toolbar-app.js +11 -0
  246. package/eds-shell/eds-shell-toolbar-app.js.map +1 -0
  247. package/eds-shell/eds-shell-toolbar-center.css +6 -0
  248. package/eds-shell/eds-shell-toolbar-center.d.ts +11 -0
  249. package/eds-shell/eds-shell-toolbar-center.d.ts.map +1 -0
  250. package/eds-shell/eds-shell-toolbar-center.js +10 -0
  251. package/eds-shell/eds-shell-toolbar-center.js.map +1 -0
  252. package/eds-shell/eds-shell-toolbar-end.css +23 -0
  253. package/eds-shell/eds-shell-toolbar-end.d.ts +11 -0
  254. package/eds-shell/eds-shell-toolbar-end.d.ts.map +1 -0
  255. package/eds-shell/eds-shell-toolbar-end.js +10 -0
  256. package/eds-shell/eds-shell-toolbar-end.js.map +1 -0
  257. package/eds-shell/eds-shell-toolbar-environment.css +21 -0
  258. package/eds-shell/eds-shell-toolbar-environment.d.ts +11 -0
  259. package/eds-shell/eds-shell-toolbar-environment.d.ts.map +1 -0
  260. package/eds-shell/eds-shell-toolbar-environment.js +10 -0
  261. package/eds-shell/eds-shell-toolbar-environment.js.map +1 -0
  262. package/eds-shell/eds-shell-toolbar-logo.css +11 -0
  263. package/eds-shell/eds-shell-toolbar-logo.d.ts +8 -0
  264. package/eds-shell/eds-shell-toolbar-logo.d.ts.map +1 -0
  265. package/eds-shell/eds-shell-toolbar-logo.js +10 -0
  266. package/eds-shell/eds-shell-toolbar-logo.js.map +1 -0
  267. package/eds-shell/eds-shell-toolbar-start.css +5 -0
  268. package/eds-shell/eds-shell-toolbar-start.d.ts +11 -0
  269. package/eds-shell/eds-shell-toolbar-start.d.ts.map +1 -0
  270. package/eds-shell/eds-shell-toolbar-start.js +10 -0
  271. package/eds-shell/eds-shell-toolbar-start.js.map +1 -0
  272. package/eds-shell/eds-shell-toolbar.css +37 -0
  273. package/eds-shell/eds-shell-toolbar.d.ts +27 -0
  274. package/eds-shell/eds-shell-toolbar.d.ts.map +1 -0
  275. package/eds-shell/eds-shell-toolbar.js +12 -0
  276. package/eds-shell/eds-shell-toolbar.js.map +1 -0
  277. package/eds-shell/eds-shell-top-message.css +48 -0
  278. package/eds-shell/eds-shell-top-message.d.ts +22 -0
  279. package/eds-shell/eds-shell-top-message.d.ts.map +1 -0
  280. package/eds-shell/eds-shell-top-message.js +24 -0
  281. package/eds-shell/eds-shell-top-message.js.map +1 -0
  282. package/eds-shell/eds-shell.css +105 -0
  283. package/eds-shell/eds-shell.d.ts +41 -0
  284. package/eds-shell/eds-shell.d.ts.map +1 -0
  285. package/eds-shell/eds-shell.js +116 -0
  286. package/eds-shell/eds-shell.js.map +1 -0
  287. package/eds-shell/index.d.ts +50 -0
  288. package/eds-shell/index.d.ts.map +1 -0
  289. package/eds-shell/index.js +25 -0
  290. package/eds-shell/index.js.map +1 -0
  291. package/eds-tag/eds-tag.css +83 -0
  292. package/eds-tag/eds-tag.d.ts +29 -0
  293. package/eds-tag/eds-tag.d.ts.map +1 -0
  294. package/eds-tag/eds-tag.js +14 -0
  295. package/eds-tag/eds-tag.js.map +1 -0
  296. package/eds-tag/index.d.ts +3 -0
  297. package/eds-tag/index.d.ts.map +1 -0
  298. package/eds-tag/index.js +2 -0
  299. package/eds-tag/index.js.map +1 -0
  300. package/eds-tooltip/eds-tooltip.css +140 -0
  301. package/eds-tooltip/eds-tooltip.d.ts +53 -0
  302. package/eds-tooltip/eds-tooltip.d.ts.map +1 -0
  303. package/eds-tooltip/eds-tooltip.js +179 -0
  304. package/eds-tooltip/eds-tooltip.js.map +1 -0
  305. package/eds-tooltip/index.d.ts +3 -0
  306. package/eds-tooltip/index.d.ts.map +1 -0
  307. package/eds-tooltip/index.js +2 -0
  308. package/eds-tooltip/index.js.map +1 -0
  309. package/index.d.ts +46 -0
  310. package/index.d.ts.map +1 -0
  311. package/index.js +31 -0
  312. package/index.js.map +1 -0
  313. 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":"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"}
@@ -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,3 @@
1
+ export { EdsMenu } from './eds-menu.js';
2
+ export { EdsMenuItemView } from './eds-menu-item-view.js';
3
+ //# sourceMappingURL=index.js.map
@@ -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
+ .eds-shell-content {
2
+ display: block;
3
+ flex: 1;
4
+ padding: var(--eds-sp-xl);
5
+ }
6
+
7
+ @media (max-width: 767px) {
8
+ .eds-shell-content {
9
+ padding: var(--eds-sp-m);
10
+ }
11
+ }
@@ -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,5 @@
1
+ .eds-shell-header-end {
2
+ display: flex;
3
+ align-items: center;
4
+ gap: var(--eds-sp-xs);
5
+ }
@@ -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,14 @@
1
+ .eds-shell-header-logo {
2
+ display: flex;
3
+ align-items: center;
4
+ flex-shrink: 0;
5
+ }
6
+
7
+ .eds-shell-header-logo .logo-link {
8
+ display: flex;
9
+ align-items: center;
10
+ }
11
+
12
+ .eds-shell-header-logo img {
13
+ display: block;
14
+ }
@@ -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,5 @@
1
+ .eds-shell-header-start {
2
+ display: flex;
3
+ align-items: center;
4
+ gap: var(--eds-sp-m);
5
+ }
@@ -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
+ }