@eui/eds-react 22.0.0-alpha.8

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 (290) hide show
  1. package/eds-alert/eds-alert-title.css +5 -0
  2. package/eds-alert/eds-alert-title.d.ts +12 -0
  3. package/eds-alert/eds-alert-title.d.ts.map +1 -0
  4. package/eds-alert/eds-alert-title.js +12 -0
  5. package/eds-alert/eds-alert-title.js.map +1 -0
  6. package/eds-alert/eds-alert.css +62 -0
  7. package/eds-alert/eds-alert.d.ts +38 -0
  8. package/eds-alert/eds-alert.d.ts.map +1 -0
  9. package/eds-alert/eds-alert.js +29 -0
  10. package/eds-alert/eds-alert.js.map +1 -0
  11. package/eds-alert/index.d.ts +5 -0
  12. package/eds-alert/index.d.ts.map +1 -0
  13. package/eds-alert/index.js +3 -0
  14. package/eds-alert/index.js.map +1 -0
  15. package/eds-avatar/eds-avatar-badge.css +34 -0
  16. package/eds-avatar/eds-avatar-badge.d.ts +20 -0
  17. package/eds-avatar/eds-avatar-badge.d.ts.map +1 -0
  18. package/eds-avatar/eds-avatar-badge.js +13 -0
  19. package/eds-avatar/eds-avatar-badge.js.map +1 -0
  20. package/eds-avatar/eds-avatar-content-label.css +5 -0
  21. package/eds-avatar/eds-avatar-content-label.d.ts +13 -0
  22. package/eds-avatar/eds-avatar-content-label.d.ts.map +1 -0
  23. package/eds-avatar/eds-avatar-content-label.js +12 -0
  24. package/eds-avatar/eds-avatar-content-label.js.map +1 -0
  25. package/eds-avatar/eds-avatar-content-sublabel.css +5 -0
  26. package/eds-avatar/eds-avatar-content-sublabel.d.ts +13 -0
  27. package/eds-avatar/eds-avatar-content-sublabel.d.ts.map +1 -0
  28. package/eds-avatar/eds-avatar-content-sublabel.js +12 -0
  29. package/eds-avatar/eds-avatar-content-sublabel.js.map +1 -0
  30. package/eds-avatar/eds-avatar-content.css +6 -0
  31. package/eds-avatar/eds-avatar-content.d.ts +17 -0
  32. package/eds-avatar/eds-avatar-content.d.ts.map +1 -0
  33. package/eds-avatar/eds-avatar-content.js +12 -0
  34. package/eds-avatar/eds-avatar-content.js.map +1 -0
  35. package/eds-avatar/eds-avatar-icon.css +13 -0
  36. package/eds-avatar/eds-avatar-icon.d.ts +14 -0
  37. package/eds-avatar/eds-avatar-icon.d.ts.map +1 -0
  38. package/eds-avatar/eds-avatar-icon.js +13 -0
  39. package/eds-avatar/eds-avatar-icon.js.map +1 -0
  40. package/eds-avatar/eds-avatar-image.css +24 -0
  41. package/eds-avatar/eds-avatar-image.d.ts +19 -0
  42. package/eds-avatar/eds-avatar-image.d.ts.map +1 -0
  43. package/eds-avatar/eds-avatar-image.js +16 -0
  44. package/eds-avatar/eds-avatar-image.js.map +1 -0
  45. package/eds-avatar/eds-avatar-list.css +21 -0
  46. package/eds-avatar/eds-avatar-list.d.ts +14 -0
  47. package/eds-avatar/eds-avatar-list.d.ts.map +1 -0
  48. package/eds-avatar/eds-avatar-list.js +13 -0
  49. package/eds-avatar/eds-avatar-list.js.map +1 -0
  50. package/eds-avatar/eds-avatar-text.css +7 -0
  51. package/eds-avatar/eds-avatar-text.d.ts +14 -0
  52. package/eds-avatar/eds-avatar-text.d.ts.map +1 -0
  53. package/eds-avatar/eds-avatar-text.js +13 -0
  54. package/eds-avatar/eds-avatar-text.js.map +1 -0
  55. package/eds-avatar/eds-avatar.css +128 -0
  56. package/eds-avatar/eds-avatar.d.ts +38 -0
  57. package/eds-avatar/eds-avatar.d.ts.map +1 -0
  58. package/eds-avatar/eds-avatar.js +48 -0
  59. package/eds-avatar/eds-avatar.js.map +1 -0
  60. package/eds-avatar/index.d.ts +19 -0
  61. package/eds-avatar/index.d.ts.map +1 -0
  62. package/eds-avatar/index.js +10 -0
  63. package/eds-avatar/index.js.map +1 -0
  64. package/eds-badge/eds-badge.css +174 -0
  65. package/eds-badge/eds-badge.d.ts +46 -0
  66. package/eds-badge/eds-badge.d.ts.map +1 -0
  67. package/eds-badge/eds-badge.js +39 -0
  68. package/eds-badge/eds-badge.js.map +1 -0
  69. package/eds-badge/index.d.ts +3 -0
  70. package/eds-badge/index.d.ts.map +1 -0
  71. package/eds-badge/index.js +2 -0
  72. package/eds-badge/index.js.map +1 -0
  73. package/eds-button/eds-button.css +233 -0
  74. package/eds-button/eds-button.d.ts +65 -0
  75. package/eds-button/eds-button.d.ts.map +1 -0
  76. package/eds-button/eds-button.js +33 -0
  77. package/eds-button/eds-button.js.map +1 -0
  78. package/eds-button/index.d.ts +3 -0
  79. package/eds-button/index.d.ts.map +1 -0
  80. package/eds-button/index.js +2 -0
  81. package/eds-button/index.js.map +1 -0
  82. package/eds-chip/eds-chip.css +171 -0
  83. package/eds-chip/eds-chip.d.ts +71 -0
  84. package/eds-chip/eds-chip.d.ts.map +1 -0
  85. package/eds-chip/eds-chip.js +90 -0
  86. package/eds-chip/eds-chip.js.map +1 -0
  87. package/eds-chip/index.d.ts +3 -0
  88. package/eds-chip/index.d.ts.map +1 -0
  89. package/eds-chip/index.js +2 -0
  90. package/eds-chip/index.js.map +1 -0
  91. package/eds-icon/eds-icon.css +80 -0
  92. package/eds-icon/eds-icon.d.ts +44 -0
  93. package/eds-icon/eds-icon.d.ts.map +1 -0
  94. package/eds-icon/eds-icon.js +26 -0
  95. package/eds-icon/eds-icon.js.map +1 -0
  96. package/eds-icon/index.d.ts +3 -0
  97. package/eds-icon/index.d.ts.map +1 -0
  98. package/eds-icon/index.js +2 -0
  99. package/eds-icon/index.js.map +1 -0
  100. package/eds-icon-button/eds-icon-button.css +83 -0
  101. package/eds-icon-button/eds-icon-button.d.ts +33 -0
  102. package/eds-icon-button/eds-icon-button.d.ts.map +1 -0
  103. package/eds-icon-button/eds-icon-button.js +15 -0
  104. package/eds-icon-button/eds-icon-button.js.map +1 -0
  105. package/eds-icon-button/index.d.ts +3 -0
  106. package/eds-icon-button/index.d.ts.map +1 -0
  107. package/eds-icon-button/index.js +2 -0
  108. package/eds-icon-button/index.js.map +1 -0
  109. package/eds-icon-state/eds-icon-state.css +5 -0
  110. package/eds-icon-state/eds-icon-state.d.ts +24 -0
  111. package/eds-icon-state/eds-icon-state.d.ts.map +1 -0
  112. package/eds-icon-state/eds-icon-state.js +21 -0
  113. package/eds-icon-state/eds-icon-state.js.map +1 -0
  114. package/eds-icon-state/index.d.ts +3 -0
  115. package/eds-icon-state/index.d.ts.map +1 -0
  116. package/eds-icon-state/index.js +2 -0
  117. package/eds-icon-state/index.js.map +1 -0
  118. package/eds-link/eds-link.css +83 -0
  119. package/eds-link/eds-link.d.ts +32 -0
  120. package/eds-link/eds-link.d.ts.map +1 -0
  121. package/eds-link/eds-link.js +15 -0
  122. package/eds-link/eds-link.js.map +1 -0
  123. package/eds-link/index.d.ts +3 -0
  124. package/eds-link/index.d.ts.map +1 -0
  125. package/eds-link/index.js +2 -0
  126. package/eds-link/index.js.map +1 -0
  127. package/eds-menu/eds-menu-item-view.d.ts +31 -0
  128. package/eds-menu/eds-menu-item-view.d.ts.map +1 -0
  129. package/eds-menu/eds-menu-item-view.js +65 -0
  130. package/eds-menu/eds-menu-item-view.js.map +1 -0
  131. package/eds-menu/eds-menu-item.css +221 -0
  132. package/eds-menu/eds-menu-item.model.d.ts +69 -0
  133. package/eds-menu/eds-menu-item.model.d.ts.map +1 -0
  134. package/eds-menu/eds-menu-item.model.js +2 -0
  135. package/eds-menu/eds-menu-item.model.js.map +1 -0
  136. package/eds-menu/eds-menu.css +83 -0
  137. package/eds-menu/eds-menu.d.ts +52 -0
  138. package/eds-menu/eds-menu.d.ts.map +1 -0
  139. package/eds-menu/eds-menu.js +145 -0
  140. package/eds-menu/eds-menu.js.map +1 -0
  141. package/eds-menu/index.d.ts +6 -0
  142. package/eds-menu/index.d.ts.map +1 -0
  143. package/eds-menu/index.js +3 -0
  144. package/eds-menu/index.js.map +1 -0
  145. package/eds-shell/eds-shell-content.css +11 -0
  146. package/eds-shell/eds-shell-content.d.ts +11 -0
  147. package/eds-shell/eds-shell-content.d.ts.map +1 -0
  148. package/eds-shell/eds-shell-content.js +10 -0
  149. package/eds-shell/eds-shell-content.js.map +1 -0
  150. package/eds-shell/eds-shell-context.d.ts +20 -0
  151. package/eds-shell/eds-shell-context.d.ts.map +1 -0
  152. package/eds-shell/eds-shell-context.js +7 -0
  153. package/eds-shell/eds-shell-context.js.map +1 -0
  154. package/eds-shell/eds-shell-footer.css +25 -0
  155. package/eds-shell/eds-shell-footer.d.ts +12 -0
  156. package/eds-shell/eds-shell-footer.d.ts.map +1 -0
  157. package/eds-shell/eds-shell-footer.js +9 -0
  158. package/eds-shell/eds-shell-footer.js.map +1 -0
  159. package/eds-shell/eds-shell-header-app.css +23 -0
  160. package/eds-shell/eds-shell-header-app.d.ts +16 -0
  161. package/eds-shell/eds-shell-header-app.d.ts.map +1 -0
  162. package/eds-shell/eds-shell-header-app.js +11 -0
  163. package/eds-shell/eds-shell-header-app.js.map +1 -0
  164. package/eds-shell/eds-shell-header-end.css +5 -0
  165. package/eds-shell/eds-shell-header-end.d.ts +11 -0
  166. package/eds-shell/eds-shell-header-end.d.ts.map +1 -0
  167. package/eds-shell/eds-shell-header-end.js +10 -0
  168. package/eds-shell/eds-shell-header-end.js.map +1 -0
  169. package/eds-shell/eds-shell-header-environment.css +21 -0
  170. package/eds-shell/eds-shell-header-environment.d.ts +11 -0
  171. package/eds-shell/eds-shell-header-environment.d.ts.map +1 -0
  172. package/eds-shell/eds-shell-header-environment.js +10 -0
  173. package/eds-shell/eds-shell-header-environment.js.map +1 -0
  174. package/eds-shell/eds-shell-header-logo.css +14 -0
  175. package/eds-shell/eds-shell-header-logo.d.ts +20 -0
  176. package/eds-shell/eds-shell-header-logo.d.ts.map +1 -0
  177. package/eds-shell/eds-shell-header-logo.js +10 -0
  178. package/eds-shell/eds-shell-header-logo.js.map +1 -0
  179. package/eds-shell/eds-shell-header-start.css +5 -0
  180. package/eds-shell/eds-shell-header-start.d.ts +11 -0
  181. package/eds-shell/eds-shell-header-start.d.ts.map +1 -0
  182. package/eds-shell/eds-shell-header-start.js +10 -0
  183. package/eds-shell/eds-shell-header-start.js.map +1 -0
  184. package/eds-shell/eds-shell-header.css +33 -0
  185. package/eds-shell/eds-shell-header.d.ts +25 -0
  186. package/eds-shell/eds-shell-header.d.ts.map +1 -0
  187. package/eds-shell/eds-shell-header.js +14 -0
  188. package/eds-shell/eds-shell-header.js.map +1 -0
  189. package/eds-shell/eds-shell-menu-toggle.css +4 -0
  190. package/eds-shell/eds-shell-menu-toggle.d.ts +16 -0
  191. package/eds-shell/eds-shell-menu-toggle.d.ts.map +1 -0
  192. package/eds-shell/eds-shell-menu-toggle.js +20 -0
  193. package/eds-shell/eds-shell-menu-toggle.js.map +1 -0
  194. package/eds-shell/eds-shell-sidebar-bottom-nav.css +8 -0
  195. package/eds-shell/eds-shell-sidebar-bottom-nav.d.ts +20 -0
  196. package/eds-shell/eds-shell-sidebar-bottom-nav.d.ts.map +1 -0
  197. package/eds-shell/eds-shell-sidebar-bottom-nav.js +11 -0
  198. package/eds-shell/eds-shell-sidebar-bottom-nav.js.map +1 -0
  199. package/eds-shell/eds-shell-sidebar-footer.css +10 -0
  200. package/eds-shell/eds-shell-sidebar-footer.d.ts +10 -0
  201. package/eds-shell/eds-shell-sidebar-footer.d.ts.map +1 -0
  202. package/eds-shell/eds-shell-sidebar-footer.js +10 -0
  203. package/eds-shell/eds-shell-sidebar-footer.js.map +1 -0
  204. package/eds-shell/eds-shell-sidebar-header.css +33 -0
  205. package/eds-shell/eds-shell-sidebar-header.d.ts +16 -0
  206. package/eds-shell/eds-shell-sidebar-header.d.ts.map +1 -0
  207. package/eds-shell/eds-shell-sidebar-header.js +10 -0
  208. package/eds-shell/eds-shell-sidebar-header.js.map +1 -0
  209. package/eds-shell/eds-shell-sidebar-nav.css +9 -0
  210. package/eds-shell/eds-shell-sidebar-nav.d.ts +20 -0
  211. package/eds-shell/eds-shell-sidebar-nav.d.ts.map +1 -0
  212. package/eds-shell/eds-shell-sidebar-nav.js +11 -0
  213. package/eds-shell/eds-shell-sidebar-nav.js.map +1 -0
  214. package/eds-shell/eds-shell-sidebar.css +5 -0
  215. package/eds-shell/eds-shell-sidebar.d.ts +25 -0
  216. package/eds-shell/eds-shell-sidebar.d.ts.map +1 -0
  217. package/eds-shell/eds-shell-sidebar.js +15 -0
  218. package/eds-shell/eds-shell-sidebar.js.map +1 -0
  219. package/eds-shell/eds-shell-toolbar-app.css +23 -0
  220. package/eds-shell/eds-shell-toolbar-app.d.ts +16 -0
  221. package/eds-shell/eds-shell-toolbar-app.d.ts.map +1 -0
  222. package/eds-shell/eds-shell-toolbar-app.js +11 -0
  223. package/eds-shell/eds-shell-toolbar-app.js.map +1 -0
  224. package/eds-shell/eds-shell-toolbar-center.css +6 -0
  225. package/eds-shell/eds-shell-toolbar-center.d.ts +11 -0
  226. package/eds-shell/eds-shell-toolbar-center.d.ts.map +1 -0
  227. package/eds-shell/eds-shell-toolbar-center.js +10 -0
  228. package/eds-shell/eds-shell-toolbar-center.js.map +1 -0
  229. package/eds-shell/eds-shell-toolbar-end.css +23 -0
  230. package/eds-shell/eds-shell-toolbar-end.d.ts +11 -0
  231. package/eds-shell/eds-shell-toolbar-end.d.ts.map +1 -0
  232. package/eds-shell/eds-shell-toolbar-end.js +10 -0
  233. package/eds-shell/eds-shell-toolbar-end.js.map +1 -0
  234. package/eds-shell/eds-shell-toolbar-environment.css +21 -0
  235. package/eds-shell/eds-shell-toolbar-environment.d.ts +11 -0
  236. package/eds-shell/eds-shell-toolbar-environment.d.ts.map +1 -0
  237. package/eds-shell/eds-shell-toolbar-environment.js +10 -0
  238. package/eds-shell/eds-shell-toolbar-environment.js.map +1 -0
  239. package/eds-shell/eds-shell-toolbar-logo.css +11 -0
  240. package/eds-shell/eds-shell-toolbar-logo.d.ts +8 -0
  241. package/eds-shell/eds-shell-toolbar-logo.d.ts.map +1 -0
  242. package/eds-shell/eds-shell-toolbar-logo.js +10 -0
  243. package/eds-shell/eds-shell-toolbar-logo.js.map +1 -0
  244. package/eds-shell/eds-shell-toolbar-start.css +5 -0
  245. package/eds-shell/eds-shell-toolbar-start.d.ts +11 -0
  246. package/eds-shell/eds-shell-toolbar-start.d.ts.map +1 -0
  247. package/eds-shell/eds-shell-toolbar-start.js +10 -0
  248. package/eds-shell/eds-shell-toolbar-start.js.map +1 -0
  249. package/eds-shell/eds-shell-toolbar.css +37 -0
  250. package/eds-shell/eds-shell-toolbar.d.ts +27 -0
  251. package/eds-shell/eds-shell-toolbar.d.ts.map +1 -0
  252. package/eds-shell/eds-shell-toolbar.js +12 -0
  253. package/eds-shell/eds-shell-toolbar.js.map +1 -0
  254. package/eds-shell/eds-shell-top-message.css +48 -0
  255. package/eds-shell/eds-shell-top-message.d.ts +22 -0
  256. package/eds-shell/eds-shell-top-message.d.ts.map +1 -0
  257. package/eds-shell/eds-shell-top-message.js +24 -0
  258. package/eds-shell/eds-shell-top-message.js.map +1 -0
  259. package/eds-shell/eds-shell.css +105 -0
  260. package/eds-shell/eds-shell.d.ts +41 -0
  261. package/eds-shell/eds-shell.d.ts.map +1 -0
  262. package/eds-shell/eds-shell.js +116 -0
  263. package/eds-shell/eds-shell.js.map +1 -0
  264. package/eds-shell/index.d.ts +50 -0
  265. package/eds-shell/index.d.ts.map +1 -0
  266. package/eds-shell/index.js +25 -0
  267. package/eds-shell/index.js.map +1 -0
  268. package/eds-tag/eds-tag.css +83 -0
  269. package/eds-tag/eds-tag.d.ts +29 -0
  270. package/eds-tag/eds-tag.d.ts.map +1 -0
  271. package/eds-tag/eds-tag.js +14 -0
  272. package/eds-tag/eds-tag.js.map +1 -0
  273. package/eds-tag/index.d.ts +3 -0
  274. package/eds-tag/index.d.ts.map +1 -0
  275. package/eds-tag/index.js +2 -0
  276. package/eds-tag/index.js.map +1 -0
  277. package/eds-tooltip/eds-tooltip.css +140 -0
  278. package/eds-tooltip/eds-tooltip.d.ts +53 -0
  279. package/eds-tooltip/eds-tooltip.d.ts.map +1 -0
  280. package/eds-tooltip/eds-tooltip.js +179 -0
  281. package/eds-tooltip/eds-tooltip.js.map +1 -0
  282. package/eds-tooltip/index.d.ts +3 -0
  283. package/eds-tooltip/index.d.ts.map +1 -0
  284. package/eds-tooltip/index.js +2 -0
  285. package/eds-tooltip/index.js.map +1 -0
  286. package/index.d.ts +42 -0
  287. package/index.d.ts.map +1 -0
  288. package/index.js +29 -0
  289. package/index.js.map +1 -0
  290. package/package.json +105 -0
@@ -0,0 +1,32 @@
1
+ import * as React from 'react';
2
+ export interface EdsLinkProps extends Omit<React.AnchorHTMLAttributes<HTMLAnchorElement>, 'target' | 'rel'> {
3
+ /** Data attribute for e2e testing. @default 'eds-link' */
4
+ e2eAttr?: string;
5
+ /**
6
+ * When true, styles the link as an external link (adds the arrow-square-out icon and sets
7
+ * `target="_blank"` + `rel="noopener noreferrer"`). @default false
8
+ */
9
+ external?: boolean;
10
+ /** When true, applies a contrast style (dark foreground color). @default false */
11
+ contrast?: boolean;
12
+ /**
13
+ * When true, adds an underline to the link. By default, links have no underline — use this
14
+ * to explicitly opt in. @default false
15
+ */
16
+ underline?: boolean;
17
+ /** When true, makes the link inherit the parent color. @default false */
18
+ inherit?: boolean;
19
+ /** Projected content rendered inside the anchor (matches Angular `<ng-content/>`). */
20
+ children?: React.ReactNode;
21
+ }
22
+ /**
23
+ * `EdsLink` — pure React port of the Angular `a[edsLink]` directive.
24
+ *
25
+ * Renders a native `<a className="eds-link">` styled as an EDS link. Consumers pass `href`,
26
+ * `onClick`, etc. through `...rest`. When `external` is set the anchor gets `target="_blank"`
27
+ * + `rel="noopener noreferrer"` and an arrow-square-out icon after the content (via CSS). The
28
+ * rendered anchor IS the component (no wrapper). Requires `@eui/eds-styles` + the `eui-21` class
29
+ * on an ancestor for the `--eds-*` tokens to cascade in.
30
+ */
31
+ export declare const EdsLink: React.ForwardRefExoticComponent<EdsLinkProps & React.RefAttributes<HTMLAnchorElement>>;
32
+ //# sourceMappingURL=eds-link.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"eds-link.d.ts","sourceRoot":"","sources":["../../src/eds-link/eds-link.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAE/B,MAAM,WAAW,YAAa,SAAQ,IAAI,CAAC,KAAK,CAAC,oBAAoB,CAAC,iBAAiB,CAAC,EAAE,QAAQ,GAAG,KAAK,CAAC;IACvG,0DAA0D;IAC1D,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB;;;OAGG;IACH,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,kFAAkF;IAClF,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB;;;OAGG;IACH,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB,yEAAyE;IACzE,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,sFAAsF;IACtF,QAAQ,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC;CAC9B;AAED;;;;;;;;GAQG;AACH,eAAO,MAAM,OAAO,wFA6BlB,CAAC"}
@@ -0,0 +1,15 @@
1
+ import { jsx as _jsx } from "react/jsx-runtime";
2
+ import * as React from 'react';
3
+ /**
4
+ * `EdsLink` — pure React port of the Angular `a[edsLink]` directive.
5
+ *
6
+ * Renders a native `<a className="eds-link">` styled as an EDS link. Consumers pass `href`,
7
+ * `onClick`, etc. through `...rest`. When `external` is set the anchor gets `target="_blank"`
8
+ * + `rel="noopener noreferrer"` and an arrow-square-out icon after the content (via CSS). The
9
+ * rendered anchor IS the component (no wrapper). Requires `@eui/eds-styles` + the `eui-21` class
10
+ * on an ancestor for the `--eds-*` tokens to cascade in.
11
+ */
12
+ export const EdsLink = React.forwardRef(function EdsLink({ e2eAttr = 'eds-link', external = false, contrast = false, underline = false, inherit = false, children, className, ...rest }, ref) {
13
+ return (_jsx("a", { ref: ref, className: className ? `eds-link ${className}` : 'eds-link', "data-e2e": e2eAttr, "data-external": external ? '' : undefined, "data-contrast": contrast ? '' : undefined, "data-underline": underline ? '' : undefined, "data-inherit": inherit ? '' : undefined, target: external ? '_blank' : undefined, rel: external ? 'noopener noreferrer' : undefined, ...rest, children: children }));
14
+ });
15
+ //# sourceMappingURL=eds-link.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"eds-link.js","sourceRoot":"","sources":["../../src/eds-link/eds-link.tsx"],"names":[],"mappings":";AAAA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAuB/B;;;;;;;;GAQG;AACH,MAAM,CAAC,MAAM,OAAO,GAAG,KAAK,CAAC,UAAU,CAAkC,SAAS,OAAO,CACrF,EACI,OAAO,GAAG,UAAU,EACpB,QAAQ,GAAG,KAAK,EAChB,QAAQ,GAAG,KAAK,EAChB,SAAS,GAAG,KAAK,EACjB,OAAO,GAAG,KAAK,EACf,QAAQ,EACR,SAAS,EACT,GAAG,IAAI,EACV,EACD,GAAG;IAEH,OAAO,CACH,YACI,GAAG,EAAE,GAAG,EACR,SAAS,EAAE,SAAS,CAAC,CAAC,CAAC,YAAY,SAAS,EAAE,CAAC,CAAC,CAAC,UAAU,cACjD,OAAO,mBACF,QAAQ,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,SAAS,mBACzB,QAAQ,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,SAAS,oBACxB,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,SAAS,kBAC5B,OAAO,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,SAAS,EACtC,MAAM,EAAE,QAAQ,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,SAAS,EACvC,GAAG,EAAE,QAAQ,CAAC,CAAC,CAAC,qBAAqB,CAAC,CAAC,CAAC,SAAS,KAC7C,IAAI,YAEP,QAAQ,GACT,CACP,CAAC;AACN,CAAC,CAAC,CAAC"}
@@ -0,0 +1,3 @@
1
+ export { EdsLink } from './eds-link.js';
2
+ export type { EdsLinkProps } from './eds-link.js';
3
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/eds-link/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,eAAe,CAAC;AACxC,YAAY,EAAE,YAAY,EAAE,MAAM,eAAe,CAAC"}
@@ -0,0 +1,2 @@
1
+ export { EdsLink } from './eds-link.js';
2
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/eds-link/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,eAAe,CAAC"}
@@ -0,0 +1,31 @@
1
+ import * as React from 'react';
2
+ import type { EdsMenuItem } from './eds-menu-item.model.js';
3
+ export interface EdsMenuItemViewProps {
4
+ item: EdsMenuItem;
5
+ hasIcon?: boolean;
6
+ hasIconLabel?: boolean;
7
+ hasTooltip?: boolean;
8
+ hasTooltipOnExpanded?: boolean;
9
+ isCollapsed?: boolean;
10
+ hasCollapsedInitials?: boolean;
11
+ hasBoldRootLevel?: boolean;
12
+ hasExpandIcon?: boolean;
13
+ /** Focus ref target (host <li>-equivalent) for roving-tabindex keyboard nav. */
14
+ itemRef?: (el: HTMLDivElement | null) => void;
15
+ onItemClick?: (item: EdsMenuItem) => void;
16
+ onExpandToggle?: (item: EdsMenuItem) => void;
17
+ /** Projected child list (rendered inside the item), matching Angular `<ng-content/>`. */
18
+ children?: React.ReactNode;
19
+ }
20
+ /**
21
+ * `EdsMenuItemView` — pure React port of the Angular `eds-menu-item` component (internal to
22
+ * `EdsMenu`). Reproduces the label / navigable branches, the link content (badges, action &
23
+ * expand buttons) and the icon block (icon / marker / initials / icon-label), plus the
24
+ * `hostClasses()` BEM modifier classes and the tree ARIA host attributes.
25
+ *
26
+ * The Angular source predates the String-Props model and styles off BEM modifier classes
27
+ * (`eds-menu-item--icon-label`, `--bold`), so the React port keeps those classes (not
28
+ * `data-*`) to match the ported CSS 1:1.
29
+ */
30
+ export declare function EdsMenuItemView({ item, hasIcon, hasIconLabel, hasTooltip, hasTooltipOnExpanded, isCollapsed, hasCollapsedInitials, hasBoldRootLevel, hasExpandIcon, itemRef, onItemClick, onExpandToggle, children, }: EdsMenuItemViewProps): React.JSX.Element;
31
+ //# sourceMappingURL=eds-menu-item-view.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"eds-menu-item-view.d.ts","sourceRoot":"","sources":["../../src/eds-menu/eds-menu-item-view.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAK/B,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,0BAA0B,CAAC;AAE5D,MAAM,WAAW,oBAAoB;IACjC,IAAI,EAAE,WAAW,CAAC;IAClB,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,YAAY,CAAC,EAAE,OAAO,CAAC;IACvB,UAAU,CAAC,EAAE,OAAO,CAAC;IACrB,oBAAoB,CAAC,EAAE,OAAO,CAAC;IAC/B,WAAW,CAAC,EAAE,OAAO,CAAC;IACtB,oBAAoB,CAAC,EAAE,OAAO,CAAC;IAC/B,gBAAgB,CAAC,EAAE,OAAO,CAAC;IAC3B,aAAa,CAAC,EAAE,OAAO,CAAC;IACxB,gFAAgF;IAChF,OAAO,CAAC,EAAE,CAAC,EAAE,EAAE,cAAc,GAAG,IAAI,KAAK,IAAI,CAAC;IAC9C,WAAW,CAAC,EAAE,CAAC,IAAI,EAAE,WAAW,KAAK,IAAI,CAAC;IAC1C,cAAc,CAAC,EAAE,CAAC,IAAI,EAAE,WAAW,KAAK,IAAI,CAAC;IAC7C,yFAAyF;IACzF,QAAQ,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC;CAC9B;AAED;;;;;;;;;GASG;AACH,wBAAgB,eAAe,CAAC,EAC5B,IAAI,EACJ,OAAe,EACf,YAAoB,EACpB,UAAkB,EAClB,oBAA4B,EAC5B,WAAmB,EACnB,oBAA4B,EAC5B,gBAAwB,EACxB,aAAoB,EACpB,OAAO,EACP,WAAW,EACX,cAAc,EACd,QAAQ,GACX,EAAE,oBAAoB,GAAG,KAAK,CAAC,GAAG,CAAC,OAAO,CAoK1C"}
@@ -0,0 +1,65 @@
1
+ import { jsx as _jsx, Fragment as _Fragment, jsxs as _jsxs } from "react/jsx-runtime";
2
+ import { EdsIcon } from '../eds-icon/eds-icon.js';
3
+ import { EdsIconButton } from '../eds-icon-button/eds-icon-button.js';
4
+ import { EdsBadge } from '../eds-badge/eds-badge.js';
5
+ /**
6
+ * `EdsMenuItemView` — pure React port of the Angular `eds-menu-item` component (internal to
7
+ * `EdsMenu`). Reproduces the label / navigable branches, the link content (badges, action &
8
+ * expand buttons) and the icon block (icon / marker / initials / icon-label), plus the
9
+ * `hostClasses()` BEM modifier classes and the tree ARIA host attributes.
10
+ *
11
+ * The Angular source predates the String-Props model and styles off BEM modifier classes
12
+ * (`eds-menu-item--icon-label`, `--bold`), so the React port keeps those classes (not
13
+ * `data-*`) to match the ported CSS 1:1.
14
+ */
15
+ export function EdsMenuItemView({ item, hasIcon = false, hasIconLabel = false, hasTooltip = false, hasTooltipOnExpanded = false, isCollapsed = false, hasCollapsedInitials = false, hasBoldRootLevel = false, hasExpandIcon = true, itemRef, onItemClick, onExpandToggle, children, }) {
16
+ // Label-only (non-navigable) items render a category row; everything else renders an
17
+ // anchor (url / external / command / expandable / link), matching the Angular branches.
18
+ const isLabelItem = !item.url && !item.urlExternal && !item.command && !item.children && !item.link;
19
+ const tooltipText = (() => {
20
+ if (!hasTooltip)
21
+ return undefined;
22
+ if (isCollapsed)
23
+ return item.tooltip || item.label || undefined;
24
+ if (hasTooltipOnExpanded)
25
+ return item.tooltip || item.label || undefined;
26
+ return undefined;
27
+ })();
28
+ const hostClass = [
29
+ 'eds-menu-item',
30
+ isCollapsed && hasIconLabel ? 'eds-menu-item--icon-label' : '',
31
+ !item.parent && hasBoldRootLevel ? 'eds-menu-item--bold' : '',
32
+ ].join(' ').trim();
33
+ const onClick = (event) => {
34
+ event.preventDefault();
35
+ event.stopPropagation();
36
+ onItemClick?.(item);
37
+ };
38
+ const onExpandToggleClick = (event) => {
39
+ event.preventDefault();
40
+ event.stopPropagation();
41
+ onExpandToggle?.(item);
42
+ };
43
+ const onActionIconClick = (event) => {
44
+ event.preventDefault();
45
+ event.stopPropagation();
46
+ item.actionIcon?.action?.(event);
47
+ };
48
+ const markerColor = (mc) => ({
49
+ color: `var(--eds-c-foreground-${mc || 'primary'})`,
50
+ });
51
+ const iconBlock = (_jsx(_Fragment, { children: !isCollapsed ? (hasIcon ? (item.icon ? (_jsx(EdsIcon, { className: "eds-menu-item__icon", icon: item.icon, size: "s" })) : item.hasMarker ? (_jsx(EdsIcon, { className: "eds-menu-item__marker", icon: "dot:core", size: "xs", style: markerColor(item.markerTypeClass) })) : null) : item.hasMarker ? (_jsx(EdsIcon, { className: "eds-menu-item__marker", icon: "dot:core", size: "xs", style: markerColor(item.markerTypeClass) })) : null) : (_jsxs(_Fragment, { children: [hasCollapsedInitials && item.initials ? (_jsx("span", { className: "eds-menu-item__initials", children: item.initials })) : hasIcon && item.icon ? (_jsx(EdsIcon, { className: "eds-menu-item__icon", icon: item.icon, size: "s" })) : item.hasMarker ? (_jsx(EdsIcon, { className: "eds-menu-item__marker", icon: "dot:core", size: "xs", style: markerColor(item.markerTypeClass) })) : (_jsx("span", { className: "eds-menu-item__initials", children: item.label?.charAt(0) })), hasIconLabel ? _jsx("span", { className: "eds-menu-item__icon-label", children: item.label }) : null] })) }));
52
+ const linkContent = (_jsxs(_Fragment, { children: [_jsxs("span", { className: "eds-menu-item__link-start-block", children: [iconBlock, isCollapsed && item.tagLabel ? (_jsx(EdsBadge, { className: "eds-menu-item__badge--dot", color: (item.tagTypeClass || ''), iconOnly: true })) : null] }), _jsxs("span", { className: "eds-menu-item__link-content-block", children: [_jsx("span", { className: "eds-menu-item__link-label", children: item.label }), item.urlExternal && item.urlExternalTarget === '_blank' ? (_jsx(EdsIcon, { className: "eds-menu-item__link-external-icon", icon: "arrow-square-out:core", size: "xs" })) : null] }), _jsxs("span", { className: "eds-menu-item__link-end-block", children: [item.tagLabel && !isCollapsed ? (_jsx(EdsBadge, { color: (item.tagTypeClass || ''), size: "s", children: item.tagLabel })) : null, item.actionIcon ? (_jsx(EdsIconButton, { className: "eds-menu-item__action-icon", icon: item.actionIcon.icon, ariaLabel: item.actionIcon.label || 'Action', size: "xs", onButtonClick: onActionIconClick })) : null, hasExpandIcon && item.children?.length ? (_jsx(EdsIconButton, { className: "eds-menu-item__expand-toggle", icon: item.expanded ? 'caret-up' : 'caret-down', ariaLabel: item.expanded ? 'Collapse' : 'Expand', size: "xs", rounded: true, onButtonClick: onExpandToggleClick })) : null] })] }));
53
+ return (_jsx("div", { ref: itemRef, className: hostClass, "data-e2e": item.e2eAttr || 'eds-menu-item', role: "treeitem", tabIndex: -1, "aria-haspopup": item.children?.length ? true : undefined, "aria-expanded": item.children ? !!item.expanded : undefined, "aria-disabled": item.disabled || undefined, children: isLabelItem ? (_jsx("li", { role: "none", className: `eds-menu-item__content eds-menu-item__content--category${item.disabled ? ' eds-menu-item--disabled' : ''}`, title: tooltipText, children: _jsxs("span", { className: "eds-menu-item__link eds-menu-item__link--category", onClick: onClick, children: [_jsx("span", { className: "eds-menu-item__link-start-block", children: iconBlock }), _jsx("span", { className: "eds-menu-item__link-content-block", children: _jsx("span", { className: "eds-menu-item__link-label eds-menu-item__link-label--category", children: item.label }) })] }) })) : (_jsxs("li", { role: "none", className: [
54
+ 'eds-menu-item__content',
55
+ item.disabled ? 'eds-menu-item--disabled' : '',
56
+ item.expanded ? 'eds-menu-item--expanded' : '',
57
+ item.active ? 'eds-menu-item--active' : '',
58
+ ].join(' ').trim(), children: [_jsx("a", { className: [
59
+ 'eds-menu-item__link',
60
+ item.active ? 'eds-menu-item__link--active' : '',
61
+ item.disabled ? 'eds-menu-item__link--disabled' : '',
62
+ item.children?.length ? 'eds-menu-item__link--has-sub' : '',
63
+ ].join(' ').trim(), href: item.url && !item.urlExternal ? item.url : 'javascript:void(0)', title: tooltipText, onClick: onClick, children: linkContent }), children] })) }));
64
+ }
65
+ //# sourceMappingURL=eds-menu-item-view.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"eds-menu-item-view.js","sourceRoot":"","sources":["../../src/eds-menu/eds-menu-item-view.tsx"],"names":[],"mappings":"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"}
@@ -0,0 +1,221 @@
1
+ /*
2
+ * eds-menu-item — pure React port of eds-menu-item.scss.
3
+ * :host -> .eds-menu-item ; :host.MODIFIER -> .eds-menu-item.MODIFIER ;
4
+ * `.eds-menu--collapsed { :host { … } }` -> `.eds-menu--collapsed .eds-menu-item { … }`.
5
+ * base.eds-focus-visible() inlined.
6
+ */
7
+
8
+ .eds-menu-item {
9
+ display: block;
10
+ width: 100%;
11
+ }
12
+ .eds-menu-item:focus-visible:not([readonly]) {
13
+ outline: var(--eds-bw-s) solid var(--eds-c-border-primary) !important;
14
+ outline-offset: 1px !important;
15
+ border-radius: var(--eds-br-xs) !important;
16
+ }
17
+
18
+ .eds-menu-item .eds-menu-item__content {
19
+ display: flex;
20
+ flex-direction: column;
21
+ position: relative;
22
+ width: 100%;
23
+ }
24
+
25
+ /* Link base */
26
+ .eds-menu-item .eds-menu-item__link {
27
+ display: flex;
28
+ align-items: center;
29
+ gap: var(--eds-sp-xs);
30
+ padding: var(--eds-sp-xs) var(--eds-sp-l);
31
+ font: var(--eds-f-paragraph-s);
32
+ color: var(--eds-c-foreground-default);
33
+ text-decoration: none;
34
+ cursor: pointer;
35
+ border: none;
36
+ background: none;
37
+ width: 100%;
38
+ min-height: 40px;
39
+ border-left: 3px solid transparent;
40
+ transition: background 0.15s ease, color 0.15s ease, border-color 0.15s ease;
41
+ }
42
+ .eds-menu-item .eds-menu-item__link:hover:not(.eds-menu-item__link--disabled):not(.eds-menu-item__link--category) {
43
+ background: var(--eds-c-surface-elevation-sunken);
44
+ color: var(--eds-c-foreground-primary);
45
+ }
46
+ .eds-menu-item .eds-menu-item__link--active:not(.eds-menu-item--disabled) {
47
+ background: var(--eds-c-surface-primary-subtle);
48
+ color: var(--eds-c-foreground-primary);
49
+ font-weight: var(--eds-f-w-semi-bold);
50
+ border-left-color: var(--eds-c-border-primary);
51
+ }
52
+ .eds-menu-item .eds-menu-item__link--disabled {
53
+ opacity: var(--eds-op-40);
54
+ pointer-events: none;
55
+ }
56
+ .eds-menu-item .eds-menu-item__link--category {
57
+ cursor: default;
58
+ font: var(--eds-f-label-s-semi-bold);
59
+ color: var(--eds-c-foreground-subtler);
60
+ text-transform: uppercase;
61
+ letter-spacing: 0.02em;
62
+ padding: var(--eds-sp-m) var(--eds-sp-l) var(--eds-sp-xs);
63
+ min-height: auto;
64
+ border-left-color: transparent;
65
+ }
66
+ .eds-menu-item .eds-menu-item__link--category:hover {
67
+ background: none;
68
+ }
69
+
70
+ /* Sub-blocks */
71
+ .eds-menu-item .eds-menu-item__link-start-block {
72
+ display: flex;
73
+ align-items: center;
74
+ gap: var(--eds-sp-xs);
75
+ flex-shrink: 0;
76
+ position: relative;
77
+ }
78
+ .eds-menu-item .eds-menu-item__link-start-block:empty {
79
+ display: none;
80
+ }
81
+ .eds-menu-item .eds-menu-item__link-content-block {
82
+ display: flex;
83
+ align-items: center;
84
+ gap: var(--eds-sp-xs);
85
+ flex: 1;
86
+ min-width: 0;
87
+ }
88
+ .eds-menu-item .eds-menu-item__link-label {
89
+ white-space: nowrap;
90
+ overflow: hidden;
91
+ text-overflow: ellipsis;
92
+ }
93
+ .eds-menu-item .eds-menu-item__link-label--category {
94
+ font: var(--eds-f-label-s-semi-bold);
95
+ color: var(--eds-c-foreground-subtler);
96
+ }
97
+ .eds-menu-item .eds-menu-item__link-end-block {
98
+ display: flex;
99
+ align-items: center;
100
+ gap: var(--eds-sp-xs);
101
+ flex-shrink: 0;
102
+ margin-left: auto;
103
+ }
104
+ .eds-menu-item .eds-menu-item__link-external-icon {
105
+ flex-shrink: 0;
106
+ color: var(--eds-c-foreground-subtler);
107
+ }
108
+
109
+ /* Icon / marker */
110
+ .eds-menu-item .eds-menu-item__icon {
111
+ flex-shrink: 0;
112
+ }
113
+ .eds-menu-item .eds-menu-item__marker {
114
+ flex-shrink: 0;
115
+ }
116
+
117
+ /* Initials */
118
+ .eds-menu-item .eds-menu-item__initials {
119
+ display: flex;
120
+ align-items: center;
121
+ justify-content: center;
122
+ font: var(--eds-f-label-m-semi-bold);
123
+ width: 32px;
124
+ height: 32px;
125
+ border-radius: var(--eds-br-s);
126
+ background: var(--eds-c-surface-elevation-sunken);
127
+ border: 1px solid var(--eds-c-border-divider);
128
+ flex-shrink: 0;
129
+ }
130
+
131
+ /* Icon label (collapsed mode with labels) */
132
+ .eds-menu-item .eds-menu-item__icon-label {
133
+ font: var(--eds-f-microcopy-2xs);
134
+ color: var(--eds-c-foreground-subtler);
135
+ white-space: nowrap;
136
+ overflow: hidden;
137
+ text-overflow: ellipsis;
138
+ max-width: 100%;
139
+ text-align: center;
140
+ }
141
+
142
+ /* Badge dot in collapsed mode */
143
+ .eds-menu-item .eds-menu-item__badge--dot {
144
+ position: absolute;
145
+ top: -2px;
146
+ right: -2px;
147
+ pointer-events: none;
148
+ }
149
+
150
+ /* Action icon button */
151
+ .eds-menu-item .eds-menu-item__action-icon {
152
+ opacity: 0;
153
+ transition: opacity 0.15s ease;
154
+ }
155
+ .eds-menu-item .eds-menu-item__content:hover .eds-menu-item__action-icon {
156
+ opacity: 1;
157
+ }
158
+
159
+ /* Expand toggle */
160
+ .eds-menu-item .eds-menu-item__expand-toggle {
161
+ flex-shrink: 0;
162
+ }
163
+
164
+ /* Disabled state */
165
+ .eds-menu-item .eds-menu-item--disabled {
166
+ opacity: var(--eds-op-40);
167
+ pointer-events: none;
168
+ }
169
+
170
+ /* Expanded state */
171
+ .eds-menu-item .eds-menu-item--expanded > .eds-menu-item__link {
172
+ font-weight: var(--eds-f-w-medium);
173
+ }
174
+
175
+ /* Active state */
176
+ .eds-menu-item .eds-menu-item--active > .eds-menu-item__link {
177
+ background: var(--eds-c-surface-primary-subtle);
178
+ color: var(--eds-c-foreground-primary);
179
+ font-weight: var(--eds-f-w-semi-bold);
180
+ border-left-color: var(--eds-c-border-primary);
181
+ }
182
+
183
+ /* Bold root level */
184
+ .eds-menu-item.eds-menu-item--bold > .eds-menu-item__content > .eds-menu-item__link {
185
+ font-weight: var(--eds-f-w-semi-bold);
186
+ }
187
+
188
+ /* Icon-label mode (collapsed with labels under icons) */
189
+ .eds-menu-item.eds-menu-item--icon-label .eds-menu-item__link {
190
+ flex-direction: column;
191
+ align-items: center;
192
+ justify-content: center;
193
+ padding: var(--eds-sp-xs);
194
+ gap: var(--eds-sp-4xs);
195
+ border-left: none;
196
+ border-radius: var(--eds-br-s);
197
+ }
198
+ .eds-menu-item.eds-menu-item--icon-label .eds-menu-item__link-content-block {
199
+ display: none;
200
+ }
201
+ .eds-menu-item.eds-menu-item--icon-label .eds-menu-item__link-end-block {
202
+ display: none;
203
+ }
204
+
205
+ /* Collapsed host-level adjustments (parent .eds-menu--collapsed) */
206
+ .eds-menu--collapsed .eds-menu-item .eds-menu-item__content {
207
+ position: relative;
208
+ }
209
+ .eds-menu--collapsed .eds-menu-item .eds-menu-item__link {
210
+ justify-content: center;
211
+ padding: var(--eds-sp-xs) var(--eds-sp-s);
212
+ border-left: none;
213
+ border-radius: var(--eds-br-s);
214
+ margin: var(--eds-sp-4xs) 0;
215
+ }
216
+ .eds-menu--collapsed .eds-menu-item .eds-menu-item__link-content-block {
217
+ display: none;
218
+ }
219
+ .eds-menu--collapsed .eds-menu-item .eds-menu-item__link-end-block {
220
+ display: none;
221
+ }
@@ -0,0 +1,69 @@
1
+ /**
2
+ * Represents a single menu item in the EDS navigation menu (ported 1:1 from the Angular
3
+ * `EdsMenuItem` model). Supports hierarchical navigation, external links, icons, badges,
4
+ * markers, and action icons.
5
+ */
6
+ export interface EdsMenuItem<METADATA = unknown> {
7
+ /** Unique identifier for the menu item. Auto-generated if not provided. */
8
+ id?: string;
9
+ /** Data-e2e attribute for testing selectors. */
10
+ e2eAttr?: string;
11
+ /** Display label for the menu item. */
12
+ label?: string;
13
+ /** Computed initials from label (used in collapsed-initials mode). Managed internally. */
14
+ initials?: string;
15
+ /** Internal route URL for navigation. */
16
+ url?: string;
17
+ /** Query params for navigation. */
18
+ queryParams?: Record<string, string>;
19
+ /** External URL that opens in a new window/tab. */
20
+ urlExternal?: string;
21
+ /** Target for external URL navigation. Defaults to '_blank'. */
22
+ urlExternalTarget?: string;
23
+ /** When true, the item uses link mode (active state managed manually). */
24
+ link?: boolean;
25
+ /** Icon name (EDS icon identifier). */
26
+ icon?: string;
27
+ /** Color variant class for the icon. */
28
+ iconTypeClass?: string;
29
+ /** ARIA label for the icon (used in collapsed mode). */
30
+ iconLabel?: string;
31
+ /** Whether this item is currently expanded (for parent items with children). */
32
+ expanded?: boolean;
33
+ /** Whether this item is currently active/selected. */
34
+ active?: boolean;
35
+ /** Child menu items for hierarchical navigation. */
36
+ children?: EdsMenuItem[];
37
+ /** Reference to parent item. Managed internally. */
38
+ parent?: EdsMenuItem;
39
+ /** Whether the item is visible. */
40
+ visible?: boolean;
41
+ /** Badge label text displayed on the item. */
42
+ tagLabel?: string;
43
+ /** Badge color variant. */
44
+ tagTypeClass?: string;
45
+ /** Custom tooltip text. If not provided, tooltip is derived from label. */
46
+ tooltip?: string;
47
+ /** Whether to show a colored marker dot instead of an icon. */
48
+ hasMarker?: boolean;
49
+ /** Color variant for the marker dot. */
50
+ markerTypeClass?: string;
51
+ /** Grouping category for the menu item. */
52
+ category?: string;
53
+ /** Whether the item is disabled. */
54
+ disabled?: boolean;
55
+ /** Whether the item matches the current filter. Managed internally. */
56
+ filtered?: boolean;
57
+ /** Action icon configuration for an additional action button on the item. */
58
+ actionIcon?: {
59
+ icon: string;
60
+ color?: string;
61
+ label?: string;
62
+ action?: (event: unknown) => void;
63
+ };
64
+ /** Callback executed on item click (instead of navigation). */
65
+ command?: (...params: unknown[]) => void;
66
+ /** Generic typed metadata for custom data. */
67
+ metadata?: METADATA;
68
+ }
69
+ //# sourceMappingURL=eds-menu-item.model.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"eds-menu-item.model.d.ts","sourceRoot":"","sources":["../../src/eds-menu/eds-menu-item.model.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AACH,MAAM,WAAW,WAAW,CAAC,QAAQ,GAAG,OAAO;IAC3C,2EAA2E;IAC3E,EAAE,CAAC,EAAE,MAAM,CAAC;IACZ,gDAAgD;IAChD,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,uCAAuC;IACvC,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,0FAA0F;IAC1F,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,yCAAyC;IACzC,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,mCAAmC;IACnC,WAAW,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IACrC,mDAAmD;IACnD,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,gEAAgE;IAChE,iBAAiB,CAAC,EAAE,MAAM,CAAC;IAC3B,0EAA0E;IAC1E,IAAI,CAAC,EAAE,OAAO,CAAC;IACf,uCAAuC;IACvC,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,wCAAwC;IACxC,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,wDAAwD;IACxD,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,gFAAgF;IAChF,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,sDAAsD;IACtD,MAAM,CAAC,EAAE,OAAO,CAAC;IACjB,oDAAoD;IACpD,QAAQ,CAAC,EAAE,WAAW,EAAE,CAAC;IACzB,oDAAoD;IACpD,MAAM,CAAC,EAAE,WAAW,CAAC;IACrB,mCAAmC;IACnC,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,8CAA8C;IAC9C,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,2BAA2B;IAC3B,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,2EAA2E;IAC3E,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,+DAA+D;IAC/D,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB,wCAAwC;IACxC,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB,2CAA2C;IAC3C,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,oCAAoC;IACpC,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,uEAAuE;IACvE,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,6EAA6E;IAC7E,UAAU,CAAC,EAAE;QACT,IAAI,EAAE,MAAM,CAAC;QACb,KAAK,CAAC,EAAE,MAAM,CAAC;QACf,KAAK,CAAC,EAAE,MAAM,CAAC;QACf,MAAM,CAAC,EAAE,CAAC,KAAK,EAAE,OAAO,KAAK,IAAI,CAAC;KACrC,CAAC;IACF,+DAA+D;IAC/D,OAAO,CAAC,EAAE,CAAC,GAAG,MAAM,EAAE,OAAO,EAAE,KAAK,IAAI,CAAC;IACzC,8CAA8C;IAC9C,QAAQ,CAAC,EAAE,QAAQ,CAAC;CACvB"}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=eds-menu-item.model.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"eds-menu-item.model.js","sourceRoot":"","sources":["../../src/eds-menu/eds-menu-item.model.ts"],"names":[],"mappings":""}
@@ -0,0 +1,83 @@
1
+ /*
2
+ * eds-menu — pure React port of eds-menu.scss.
3
+ * :host -> .eds-menu ; :host.MODIFIER -> .eds-menu.MODIFIER (BEM modifier classes kept, as the
4
+ * Angular source predates the String-Props model). base.eds-focus-visible() inlined.
5
+ */
6
+
7
+ .eds-menu {
8
+ display: block;
9
+ width: 100%;
10
+ }
11
+
12
+ .eds-menu .eds-menu__list {
13
+ display: flex;
14
+ flex-direction: column;
15
+ gap: 0;
16
+ list-style: none;
17
+ margin: 0;
18
+ padding: 0;
19
+ width: 100%;
20
+ }
21
+ .eds-menu .eds-menu__list:focus-visible:not([readonly]) {
22
+ outline: var(--eds-bw-s) solid var(--eds-c-border-primary) !important;
23
+ outline-offset: 1px !important;
24
+ border-radius: var(--eds-br-xs) !important;
25
+ }
26
+
27
+ .eds-menu .eds-menu__sublist {
28
+ padding-left: var(--eds-sp-m);
29
+ }
30
+
31
+ /* Filter */
32
+ .eds-menu .eds-menu-filter {
33
+ display: flex;
34
+ padding: var(--eds-sp-s) var(--eds-sp-m);
35
+ width: 100%;
36
+ }
37
+ .eds-menu .eds-menu-filter--collapsed {
38
+ padding: 0;
39
+ height: 0;
40
+ overflow: hidden;
41
+ visibility: hidden;
42
+ }
43
+ .eds-menu .eds-menu-filter__input-wrapper {
44
+ display: flex;
45
+ align-items: center;
46
+ gap: var(--eds-sp-xs);
47
+ width: 100%;
48
+ padding: var(--eds-sp-xs) var(--eds-sp-s);
49
+ border: 1px solid var(--eds-c-border-divider);
50
+ border-radius: var(--eds-br-s);
51
+ background: var(--eds-c-surface-default);
52
+ }
53
+ .eds-menu .eds-menu-filter__icon {
54
+ flex-shrink: 0;
55
+ color: var(--eds-c-foreground-subtler);
56
+ }
57
+ .eds-menu .eds-menu-filter__input {
58
+ border: none;
59
+ outline: none;
60
+ background: transparent;
61
+ font: var(--eds-f-paragraph-s);
62
+ color: var(--eds-c-foreground-default);
63
+ width: 100%;
64
+ }
65
+ .eds-menu .eds-menu-filter__input::placeholder {
66
+ color: var(--eds-c-foreground-subtler);
67
+ }
68
+
69
+ /* Collapsed state modifiers */
70
+ .eds-menu.eds-menu--collapsed .eds-menu-filter {
71
+ padding: 0;
72
+ height: 0;
73
+ overflow: hidden;
74
+ visibility: hidden;
75
+ }
76
+ .eds-menu.eds-menu--collapsed .eds-menu__sublist {
77
+ padding-left: var(--eds-sp-xs);
78
+ }
79
+
80
+ /* Flat mode — remove sub-menu indentation */
81
+ .eds-menu.eds-menu--flat .eds-menu__sublist {
82
+ padding-left: 0;
83
+ }
@@ -0,0 +1,52 @@
1
+ import * as React from 'react';
2
+ import type { EdsMenuItem } from './eds-menu-item.model.js';
3
+ export interface EdsMenuProps {
4
+ /** Hierarchical array of menu items to display. */
5
+ items?: EdsMenuItem[];
6
+ /** Label for the search filter input. @default 'Search filter' */
7
+ searchFilterLabel?: string;
8
+ /** Current filter value (controlled filtering). @default '' */
9
+ filterValue?: string;
10
+ /** Collapses the menu to icon-only state. @default false */
11
+ isCollapsed?: boolean;
12
+ /** Shows initials when collapsed (instead of icons). @default false */
13
+ hasCollapsedInitials?: boolean;
14
+ /** Enables the search filter input. @default false */
15
+ hasFilter?: boolean;
16
+ /** Shows icons for menu items. @default false */
17
+ hasIcons?: boolean;
18
+ /** Shows labels underneath icons in collapsed mode. @default false */
19
+ hasIconsLabels?: boolean;
20
+ /** Alias for hasIconsLabels. @default false */
21
+ hasCollapsedLabels?: boolean;
22
+ /** Enables tooltips on menu items (shown in collapsed mode). @default true */
23
+ hasTooltip?: boolean;
24
+ /** Shows tooltips even when menu is expanded. @default false */
25
+ hasTooltipOnExpanded?: boolean;
26
+ /** Expands all items that do not have an explicit expanded property. @default false */
27
+ expandAllItems?: boolean;
28
+ /** Applies flat styling without hierarchical indentation. @default false */
29
+ isFlat?: boolean;
30
+ /** Applies bold font weight to root-level menu items. @default false */
31
+ hasBoldRootLevel?: boolean;
32
+ /** Emits true when any menu item is clicked. */
33
+ onIsClick?: (clicked: boolean) => void;
34
+ /** Emits the clicked menu item. */
35
+ onItemClick?: (item: EdsMenuItem) => void;
36
+ /** Emits when a menu item's expand state is toggled. */
37
+ onExpandToggle?: (item: EdsMenuItem) => void;
38
+ }
39
+ /**
40
+ * `EdsMenu` — pure React port of the Angular `eds-menu`.
41
+ *
42
+ * Renders a hierarchical navigation tree of `EdsMenuItem`s with optional icons, collapsed
43
+ * mode, a search filter, badges and expand/collapse. Behavior is reimplemented with hooks:
44
+ * items are configured immutably (no prop mutation), expansion is tracked in local state
45
+ * (seeded from `item.expanded` + `expandAllItems`), filtering derives a flagged copy, and
46
+ * keyboard navigation (Arrow/Home/End/Enter/Space, Right/Left to expand/collapse) uses a
47
+ * roving-tabindex over the visible items. Navigation uses plain anchors + the `onItemClick`
48
+ * callback (no router dependency). Styling keeps the Angular BEM host classes
49
+ * (`eds-menu--collapsed/--no-icons/--flat`) to match the ported CSS.
50
+ */
51
+ export declare function EdsMenu({ items, searchFilterLabel, filterValue, isCollapsed, hasCollapsedInitials, hasFilter, hasIcons, hasIconsLabels, hasCollapsedLabels, hasTooltip, hasTooltipOnExpanded, expandAllItems, isFlat, hasBoldRootLevel, onIsClick, onItemClick, onExpandToggle, }: EdsMenuProps): React.JSX.Element;
52
+ //# sourceMappingURL=eds-menu.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"eds-menu.d.ts","sourceRoot":"","sources":["../../src/eds-menu/eds-menu.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAI/B,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,0BAA0B,CAAC;AAE5D,MAAM,WAAW,YAAY;IACzB,mDAAmD;IACnD,KAAK,CAAC,EAAE,WAAW,EAAE,CAAC;IACtB,kEAAkE;IAClE,iBAAiB,CAAC,EAAE,MAAM,CAAC;IAC3B,+DAA+D;IAC/D,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,4DAA4D;IAC5D,WAAW,CAAC,EAAE,OAAO,CAAC;IACtB,uEAAuE;IACvE,oBAAoB,CAAC,EAAE,OAAO,CAAC;IAC/B,sDAAsD;IACtD,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB,iDAAiD;IACjD,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,sEAAsE;IACtE,cAAc,CAAC,EAAE,OAAO,CAAC;IACzB,+CAA+C;IAC/C,kBAAkB,CAAC,EAAE,OAAO,CAAC;IAC7B,8EAA8E;IAC9E,UAAU,CAAC,EAAE,OAAO,CAAC;IACrB,gEAAgE;IAChE,oBAAoB,CAAC,EAAE,OAAO,CAAC;IAC/B,uFAAuF;IACvF,cAAc,CAAC,EAAE,OAAO,CAAC;IACzB,4EAA4E;IAC5E,MAAM,CAAC,EAAE,OAAO,CAAC;IACjB,wEAAwE;IACxE,gBAAgB,CAAC,EAAE,OAAO,CAAC;IAC3B,gDAAgD;IAChD,SAAS,CAAC,EAAE,CAAC,OAAO,EAAE,OAAO,KAAK,IAAI,CAAC;IACvC,mCAAmC;IACnC,WAAW,CAAC,EAAE,CAAC,IAAI,EAAE,WAAW,KAAK,IAAI,CAAC;IAC1C,wDAAwD;IACxD,cAAc,CAAC,EAAE,CAAC,IAAI,EAAE,WAAW,KAAK,IAAI,CAAC;CAChD;AA+CD;;;;;;;;;;;GAWG;AACH,wBAAgB,OAAO,CAAC,EACpB,KAAU,EACV,iBAAmC,EACnC,WAAgB,EAChB,WAAmB,EACnB,oBAA4B,EAC5B,SAAiB,EACjB,QAAgB,EAChB,cAAsB,EACtB,kBAA0B,EAC1B,UAAiB,EACjB,oBAA4B,EAC5B,cAAsB,EACtB,MAAc,EACd,gBAAwB,EACxB,SAAS,EACT,WAAW,EACX,cAAc,GACjB,EAAE,YAAY,GAAG,KAAK,CAAC,GAAG,CAAC,OAAO,CA0IlC"}