@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,108 @@
1
+ /* Pure-React port of eds-accordion-item.scss (1:1).
2
+ :host -> .eds-accordion-item; :host([size="s"]) -> [data-size="s"]; :host([disabled]) -> [data-disabled]. */
3
+
4
+ .eds-accordion-item {
5
+ display: flex;
6
+ flex-direction: column;
7
+ width: 100%;
8
+ border-bottom: var(--eds-bw-xs) solid var(--eds-c-border-divider);
9
+ overflow: clip;
10
+ }
11
+
12
+ .eds-accordion-item [role="heading"] {
13
+ margin: 0;
14
+ padding: 0;
15
+ font: inherit;
16
+ }
17
+
18
+ .eds-accordion-item .eds-accordion-item__header {
19
+ display: flex;
20
+ align-items: center;
21
+ width: 100%;
22
+ padding: var(--eds-sp-m) var(--eds-sp-l);
23
+ outline: none;
24
+ background-color: transparent;
25
+ border: var(--eds-bw-none);
26
+ text-align: start;
27
+ cursor: pointer;
28
+ font: var(--eds-f-label-m-semi-bold);
29
+ color: var(--eds-c-foreground);
30
+ }
31
+
32
+ .eds-accordion-item .eds-accordion-item__header:focus-visible {
33
+ outline: var(--eds-bw-xs) solid var(--eds-c-border-focus);
34
+ outline-offset: calc(-1 * var(--eds-sp-4xs));
35
+ border-radius: var(--eds-br-xs);
36
+ }
37
+
38
+ .eds-accordion-item .eds-accordion-item__header:hover:not(:disabled) {
39
+ background-color: var(--eds-c-surface-elevation-sunken);
40
+ }
41
+
42
+ .eds-accordion-item .eds-accordion-item__header-icon {
43
+ display: inline-flex;
44
+ align-items: center;
45
+ justify-content: center;
46
+ margin-left: auto;
47
+ padding-left: var(--eds-sp-m);
48
+ }
49
+
50
+ .eds-accordion-item .eds-accordion-item__header-icon > * {
51
+ display: inline-flex;
52
+ transition: transform 200ms ease;
53
+ }
54
+
55
+ .eds-accordion-item .eds-accordion-item__header-icon--rotated > * {
56
+ transform: rotate(180deg);
57
+ }
58
+
59
+ .eds-accordion-item .eds-accordion-item__body {
60
+ display: grid;
61
+ grid-template-rows: 1fr;
62
+ transition: grid-template-rows 200ms ease;
63
+ overflow: hidden;
64
+ }
65
+
66
+ .eds-accordion-item .eds-accordion-item__body-inner {
67
+ min-height: 0;
68
+ overflow: hidden;
69
+ padding: var(--eds-sp-xs) var(--eds-sp-l) var(--eds-sp-l) var(--eds-sp-l);
70
+ font: var(--eds-f-paragraph-m);
71
+ }
72
+
73
+ .eds-accordion-item .eds-accordion-item__body--collapsed {
74
+ grid-template-rows: 0fr;
75
+ }
76
+
77
+ .eds-accordion-item .eds-accordion-item__body--collapsed .eds-accordion-item__body-inner {
78
+ padding-top: 0;
79
+ padding-bottom: 0;
80
+ }
81
+
82
+ /* SIZE VARIANTS
83
+ ------------- */
84
+
85
+ .eds-accordion-item[data-size="s"] .eds-accordion-item__header {
86
+ padding-top: var(--eds-sp-xs);
87
+ padding-bottom: var(--eds-sp-xs);
88
+ font: var(--eds-f-label-s-semi-bold);
89
+ }
90
+
91
+ .eds-accordion-item[data-size="s"] .eds-accordion-item__body-inner {
92
+ padding-bottom: var(--eds-sp-s);
93
+ font: var(--eds-f-paragraph-s);
94
+ }
95
+
96
+ .eds-accordion-item[data-size="l"] .eds-accordion-item__header {
97
+ padding-top: var(--eds-sp-l);
98
+ padding-bottom: var(--eds-sp-l);
99
+ font: var(--eds-f-label-l-semi-bold);
100
+ }
101
+
102
+ /* DISABLED
103
+ -------- */
104
+
105
+ .eds-accordion-item[data-disabled] {
106
+ pointer-events: none;
107
+ opacity: var(--eds-op-40);
108
+ }
@@ -0,0 +1,47 @@
1
+ import * as React from 'react';
2
+ /** Local narrowed size union — the accordion item's size contract (ported 1:1 from Angular). */
3
+ export type EdsAccordionItemSize = 's' | 'm' | 'l';
4
+ /**
5
+ * `EdsAccordionItemHeader` — pure React port of the Angular `eds-accordion-item-header` slot
6
+ * marker directive. Its children are projected into the item's clickable header button. Used
7
+ * as a child of `EdsAccordionItem`; the item extracts it and renders its content in the header.
8
+ */
9
+ export interface EdsAccordionItemHeaderProps {
10
+ children?: React.ReactNode;
11
+ }
12
+ export declare function EdsAccordionItemHeader({ children }: EdsAccordionItemHeaderProps): React.JSX.Element;
13
+ export interface EdsAccordionItemProps extends Omit<React.HTMLAttributes<HTMLDivElement>, 'onToggle'> {
14
+ /** Size of the accordion item. @default 'm' */
15
+ size?: EdsAccordionItemSize;
16
+ /** Whether the accordion item is disabled. @default false */
17
+ disabled?: boolean;
18
+ /** The heading level (2–6) for the accordion header wrapper (WAI-ARIA APG). @default 3 */
19
+ headingLevel?: number;
20
+ /** Whether the item starts expanded (Angular `isExpanded`, uncontrolled initial state). @default false */
21
+ isExpanded?: boolean;
22
+ /** Fired when the item is toggled; payload is the new expanded state (Angular `toggleItem`). */
23
+ onToggleItem?: (expanded: boolean) => void;
24
+ /**
25
+ * Header content. Either pass an `<EdsAccordionItemHeader>` among `children` (mirroring the
26
+ * Angular `<eds-accordion-item-header>` slot) or use this `header` prop directly.
27
+ */
28
+ header?: React.ReactNode;
29
+ /** Data attribute for e2e testing. @default 'eds-accordion-item' */
30
+ e2eAttr?: string;
31
+ /** Item body content plus the optional `<EdsAccordionItemHeader>` slot. */
32
+ children?: React.ReactNode;
33
+ }
34
+ /**
35
+ * `EdsAccordionItem` — pure React port of the Angular `eds-accordion-item`.
36
+ *
37
+ * A collapsible panel with a header button and a content region, implementing the WAI-ARIA APG
38
+ * Accordion pattern: the header button reflects `aria-expanded` and `aria-controls`, wrapped in
39
+ * a `role="heading"` with `aria-level={headingLevel}`; the panel is `role="region"` with
40
+ * `aria-labelledby` pointing back at the header. Enter/Space toggle via the native `<button>`.
41
+ * `size` and `disabled` reflect as `data-*`; a rotating caret icon indicates state.
42
+ *
43
+ * Expansion is coordinated by the enclosing `EdsAccordion` (single- vs multi-expand) via the
44
+ * `EdsAccordionContext`. Standalone (no accordion parent) it manages its own local state.
45
+ */
46
+ export declare const EdsAccordionItem: React.ForwardRefExoticComponent<EdsAccordionItemProps & React.RefAttributes<HTMLDivElement>>;
47
+ //# sourceMappingURL=eds-accordion-item.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"eds-accordion-item.d.ts","sourceRoot":"","sources":["../../src/eds-accordion/eds-accordion-item.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAK/B,gGAAgG;AAChG,MAAM,MAAM,oBAAoB,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,CAAC;AAEnD;;;;GAIG;AACH,MAAM,WAAW,2BAA2B;IACxC,QAAQ,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC;CAC9B;AAED,wBAAgB,sBAAsB,CAAC,EAAE,QAAQ,EAAE,EAAE,2BAA2B,GAAG,KAAK,CAAC,GAAG,CAAC,OAAO,CAEnG;AAED,MAAM,WAAW,qBACb,SAAQ,IAAI,CAAC,KAAK,CAAC,cAAc,CAAC,cAAc,CAAC,EAAE,UAAU,CAAC;IAC9D,+CAA+C;IAC/C,IAAI,CAAC,EAAE,oBAAoB,CAAC;IAC5B,6DAA6D;IAC7D,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,0FAA0F;IAC1F,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,0GAA0G;IAC1G,UAAU,CAAC,EAAE,OAAO,CAAC;IACrB,gGAAgG;IAChG,YAAY,CAAC,EAAE,CAAC,QAAQ,EAAE,OAAO,KAAK,IAAI,CAAC;IAC3C;;;OAGG;IACH,MAAM,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC;IACzB,oEAAoE;IACpE,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,2EAA2E;IAC3E,QAAQ,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC;CAC9B;AAgBD;;;;;;;;;;;GAWG;AACH,eAAO,MAAM,gBAAgB,8FAiH5B,CAAC"}
@@ -0,0 +1,87 @@
1
+ import { Fragment as _Fragment, jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
2
+ import * as React from 'react';
3
+ import { useEffect, useId, useRef, useState } from 'react';
4
+ import { EdsIcon } from '../eds-icon/eds-icon.js';
5
+ import { useEdsAccordion, useEdsAccordionExpanded } from './eds-accordion.js';
6
+ export function EdsAccordionItemHeader({ children }) {
7
+ return _jsx(_Fragment, { children: children });
8
+ }
9
+ /** Extract the `EdsAccordionItemHeader` content from children, returning [header, body]. */
10
+ function splitHeader(children) {
11
+ let header = null;
12
+ const body = [];
13
+ React.Children.forEach(children, child => {
14
+ if (React.isValidElement(child) && child.type === EdsAccordionItemHeader) {
15
+ header = child.props.children;
16
+ }
17
+ else {
18
+ body.push(child);
19
+ }
20
+ });
21
+ return [header, body];
22
+ }
23
+ /**
24
+ * `EdsAccordionItem` — pure React port of the Angular `eds-accordion-item`.
25
+ *
26
+ * A collapsible panel with a header button and a content region, implementing the WAI-ARIA APG
27
+ * Accordion pattern: the header button reflects `aria-expanded` and `aria-controls`, wrapped in
28
+ * a `role="heading"` with `aria-level={headingLevel}`; the panel is `role="region"` with
29
+ * `aria-labelledby` pointing back at the header. Enter/Space toggle via the native `<button>`.
30
+ * `size` and `disabled` reflect as `data-*`; a rotating caret icon indicates state.
31
+ *
32
+ * Expansion is coordinated by the enclosing `EdsAccordion` (single- vs multi-expand) via the
33
+ * `EdsAccordionContext`. Standalone (no accordion parent) it manages its own local state.
34
+ */
35
+ export const EdsAccordionItem = React.forwardRef(function EdsAccordionItem({ size = 'm', disabled = false, headingLevel = 3, isExpanded = false, onToggleItem, header, e2eAttr = 'eds-accordion-item', children, className, ...rest }, ref) {
36
+ const accordion = useEdsAccordion();
37
+ const expandedSet = useEdsAccordionExpanded();
38
+ // ARIA relationship ids (Angular used crypto.randomUUID slices; React `useId` is stable).
39
+ const generatedId = useId();
40
+ const headerId = `eds-accordion-header-${generatedId}`;
41
+ const panelId = `eds-accordion-panel-${generatedId}`;
42
+ // Standalone fallback state when there is no coordinating accordion parent.
43
+ const [localExpanded, setLocalExpanded] = useState(isExpanded);
44
+ // Register/unregister with the parent accordion, seeding the initial expanded state.
45
+ const idRef = useRef(null);
46
+ useEffect(() => {
47
+ if (!accordion) {
48
+ return;
49
+ }
50
+ const id = accordion.register(isExpanded);
51
+ idRef.current = id;
52
+ return () => {
53
+ accordion.unregister(id);
54
+ idRef.current = null;
55
+ };
56
+ // Register once on mount (matches an item joining the CDK accordion). isExpanded is
57
+ // the initial seed only.
58
+ }, [accordion]);
59
+ // Read expansion reactively from the accordion's expanded-id set (re-renders on toggle);
60
+ // fall back to local state when there is no coordinating accordion parent.
61
+ const expanded = accordion && idRef.current ? expandedSet.has(idRef.current) : localExpanded;
62
+ const onToggle = (event) => {
63
+ if (disabled) {
64
+ return;
65
+ }
66
+ let nextExpanded;
67
+ if (accordion && idRef.current) {
68
+ nextExpanded = !accordion.isExpanded(idRef.current);
69
+ accordion.toggle(idRef.current);
70
+ }
71
+ else {
72
+ nextExpanded = !localExpanded;
73
+ setLocalExpanded(nextExpanded);
74
+ }
75
+ onToggleItem?.(nextExpanded);
76
+ event.preventDefault();
77
+ event.stopPropagation();
78
+ };
79
+ const [slotHeader, body] = splitHeader(children);
80
+ const headerContent = header ?? slotHeader;
81
+ return (_jsxs("div", { ref: ref, className: className ? `eds-accordion-item ${className}` : 'eds-accordion-item', "data-size": size, "data-disabled": disabled ? '' : undefined, "data-e2e": e2eAttr, ...rest, children: [_jsx("div", { role: "heading", "aria-level": headingLevel, children: _jsxs("button", { className: "eds-accordion-item__header", type: "button", id: headerId, "aria-expanded": expanded, "aria-controls": panelId, disabled: disabled, onClick: onToggle, children: [headerContent, _jsx("span", { className: expanded
82
+ ? 'eds-accordion-item__header-icon eds-accordion-item__header-icon--rotated'
83
+ : 'eds-accordion-item__header-icon', children: _jsx(EdsIcon, { icon: "caret-down:core", size: "s" }) })] }) }), _jsx("div", { id: panelId, role: "region", "aria-labelledby": headerId, className: expanded
84
+ ? 'eds-accordion-item__body'
85
+ : 'eds-accordion-item__body eds-accordion-item__body--collapsed', children: _jsx("div", { className: "eds-accordion-item__body-inner", children: body }) })] }));
86
+ });
87
+ //# sourceMappingURL=eds-accordion-item.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"eds-accordion-item.js","sourceRoot":"","sources":["../../src/eds-accordion/eds-accordion-item.tsx"],"names":[],"mappings":"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"}
@@ -0,0 +1,7 @@
1
+ /* Pure-React port of eds-accordion.scss (1:1). :host -> .eds-accordion. */
2
+
3
+ .eds-accordion {
4
+ display: flex;
5
+ width: 100%;
6
+ flex-direction: column;
7
+ }
@@ -0,0 +1,54 @@
1
+ import * as React from 'react';
2
+ /**
3
+ * Stable coordination API published by an `EdsAccordion` to its `EdsAccordionItem` children —
4
+ * the React analog of Angular's `CdkAccordion` DI provider. Every method is referentially
5
+ * stable (never recreated), so an item can `register()` once in an effect without the effect
6
+ * re-running on each toggle. Reactive expansion reads go through `EdsAccordionExpandedContext`
7
+ * instead (a separate, changing value), keeping this API identity constant.
8
+ */
9
+ export interface EdsAccordionContextValue {
10
+ /** Whether multiple items may be expanded simultaneously (Angular `isMulti`). */
11
+ isMulti: boolean;
12
+ /** Registers an item, returning its stable id (mirrors `CdkAccordionItem` joining a `CdkAccordion`). */
13
+ register: (initiallyExpanded: boolean) => string;
14
+ /** Unregisters an item (on unmount). */
15
+ unregister: (id: string) => void;
16
+ /** Whether the item with the given id is currently expanded (imperative read). */
17
+ isExpanded: (id: string) => boolean;
18
+ /** Toggles the item with the given id, honouring single/multi mode. */
19
+ toggle: (id: string) => void;
20
+ }
21
+ /** The stable coordination API (identity never changes for a given accordion instance). */
22
+ export declare const EdsAccordionContext: React.Context<EdsAccordionContextValue | undefined>;
23
+ /**
24
+ * The reactive expanded-id set — a separate context so its changes (on every toggle) re-render
25
+ * the items WITHOUT recreating the stable API context. An item subscribes to this to compute
26
+ * its own `expanded` flag.
27
+ */
28
+ export declare const EdsAccordionExpandedContext: React.Context<ReadonlySet<string>>;
29
+ /** Hook for an `EdsAccordionItem` to consume the enclosing accordion's coordination API. */
30
+ export declare function useEdsAccordion(): EdsAccordionContextValue | undefined;
31
+ /** Hook for an `EdsAccordionItem` to reactively read the expanded-id set. */
32
+ export declare function useEdsAccordionExpanded(): ReadonlySet<string>;
33
+ export interface EdsAccordionProps extends React.HTMLAttributes<HTMLDivElement> {
34
+ /**
35
+ * Whether multiple items can be expanded at the same time (Angular `CdkAccordion.multi`,
36
+ * bound as `isMulti`). @default false
37
+ */
38
+ isMulti?: boolean;
39
+ /** Data attribute for e2e testing. @default 'eds-accordion' */
40
+ e2eAttr?: string;
41
+ /** Accordion items — one or more `<EdsAccordionItem>` elements. */
42
+ children?: React.ReactNode;
43
+ }
44
+ /**
45
+ * `EdsAccordion` — pure React port of the Angular `eds-accordion`.
46
+ *
47
+ * Manages a collection of expandable `EdsAccordionItem` panels, reproducing the Angular CDK
48
+ * Accordion behavior: single-expansion by default (opening an item collapses the previously
49
+ * open one) or multi-expansion via `isMulti`. The coordination API is published stably so an
50
+ * item registers exactly once; the changing expanded-id set is published separately so toggles
51
+ * re-render items without churning their registration.
52
+ */
53
+ export declare const EdsAccordion: React.ForwardRefExoticComponent<EdsAccordionProps & React.RefAttributes<HTMLDivElement>>;
54
+ //# sourceMappingURL=eds-accordion.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"eds-accordion.d.ts","sourceRoot":"","sources":["../../src/eds-accordion/eds-accordion.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAG/B;;;;;;GAMG;AACH,MAAM,WAAW,wBAAwB;IACrC,iFAAiF;IACjF,OAAO,EAAE,OAAO,CAAC;IACjB,wGAAwG;IACxG,QAAQ,EAAE,CAAC,iBAAiB,EAAE,OAAO,KAAK,MAAM,CAAC;IACjD,wCAAwC;IACxC,UAAU,EAAE,CAAC,EAAE,EAAE,MAAM,KAAK,IAAI,CAAC;IACjC,kFAAkF;IAClF,UAAU,EAAE,CAAC,EAAE,EAAE,MAAM,KAAK,OAAO,CAAC;IACpC,uEAAuE;IACvE,MAAM,EAAE,CAAC,EAAE,EAAE,MAAM,KAAK,IAAI,CAAC;CAChC;AAED,2FAA2F;AAC3F,eAAO,MAAM,mBAAmB,qDAAiE,CAAC;AAElG;;;;GAIG;AACH,eAAO,MAAM,2BAA2B,oCAAgD,CAAC;AAEzF,4FAA4F;AAC5F,wBAAgB,eAAe,IAAI,wBAAwB,GAAG,SAAS,CAEtE;AAED,6EAA6E;AAC7E,wBAAgB,uBAAuB,IAAI,WAAW,CAAC,MAAM,CAAC,CAE7D;AAED,MAAM,WAAW,iBAAkB,SAAQ,KAAK,CAAC,cAAc,CAAC,cAAc,CAAC;IAC3E;;;OAGG;IACH,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,+DAA+D;IAC/D,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,mEAAmE;IACnE,QAAQ,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC;CAC9B;AAED;;;;;;;;GAQG;AACH,eAAO,MAAM,YAAY,0FAuEvB,CAAC"}
@@ -0,0 +1,79 @@
1
+ import { jsx as _jsx } from "react/jsx-runtime";
2
+ import * as React from 'react';
3
+ import { createContext, useCallback, useContext, useMemo, useRef, useState } from 'react';
4
+ /** The stable coordination API (identity never changes for a given accordion instance). */
5
+ export const EdsAccordionContext = createContext(undefined);
6
+ /**
7
+ * The reactive expanded-id set — a separate context so its changes (on every toggle) re-render
8
+ * the items WITHOUT recreating the stable API context. An item subscribes to this to compute
9
+ * its own `expanded` flag.
10
+ */
11
+ export const EdsAccordionExpandedContext = createContext(new Set());
12
+ /** Hook for an `EdsAccordionItem` to consume the enclosing accordion's coordination API. */
13
+ export function useEdsAccordion() {
14
+ return useContext(EdsAccordionContext);
15
+ }
16
+ /** Hook for an `EdsAccordionItem` to reactively read the expanded-id set. */
17
+ export function useEdsAccordionExpanded() {
18
+ return useContext(EdsAccordionExpandedContext);
19
+ }
20
+ /**
21
+ * `EdsAccordion` — pure React port of the Angular `eds-accordion`.
22
+ *
23
+ * Manages a collection of expandable `EdsAccordionItem` panels, reproducing the Angular CDK
24
+ * Accordion behavior: single-expansion by default (opening an item collapses the previously
25
+ * open one) or multi-expansion via `isMulti`. The coordination API is published stably so an
26
+ * item registers exactly once; the changing expanded-id set is published separately so toggles
27
+ * re-render items without churning their registration.
28
+ */
29
+ export const EdsAccordion = React.forwardRef(function EdsAccordion({ isMulti = false, e2eAttr = 'eds-accordion', children, className, ...rest }, ref) {
30
+ const [expandedIds, setExpandedIds] = useState(() => new Set());
31
+ const idCounter = useRef(0);
32
+ // Refs let the stable callbacks read current values without being recreated.
33
+ const isMultiRef = useRef(isMulti);
34
+ isMultiRef.current = isMulti;
35
+ const expandedRef = useRef(expandedIds);
36
+ expandedRef.current = expandedIds;
37
+ const register = useCallback((initiallyExpanded) => {
38
+ const id = `eds-accordion-item-${idCounter.current++}`;
39
+ if (initiallyExpanded) {
40
+ setExpandedIds((prev) => {
41
+ // Single mode: only the first initially-expanded item stays open.
42
+ if (!isMultiRef.current && prev.size > 0)
43
+ return prev;
44
+ const next = new Set(prev);
45
+ next.add(id);
46
+ return next;
47
+ });
48
+ }
49
+ return id;
50
+ }, []);
51
+ const unregister = useCallback((id) => {
52
+ setExpandedIds((prev) => {
53
+ if (!prev.has(id))
54
+ return prev;
55
+ const next = new Set(prev);
56
+ next.delete(id);
57
+ return next;
58
+ });
59
+ }, []);
60
+ const toggle = useCallback((id) => {
61
+ setExpandedIds((prev) => {
62
+ const next = new Set(prev);
63
+ if (next.has(id)) {
64
+ next.delete(id);
65
+ }
66
+ else {
67
+ if (!isMultiRef.current)
68
+ next.clear();
69
+ next.add(id);
70
+ }
71
+ return next;
72
+ });
73
+ }, []);
74
+ const isExpanded = useCallback((id) => expandedRef.current.has(id), []);
75
+ // Stable API identity — depends only on isMulti (rare change), not on expandedIds.
76
+ const api = useMemo(() => ({ isMulti, register, unregister, isExpanded, toggle }), [isMulti, register, unregister, isExpanded, toggle]);
77
+ return (_jsx(EdsAccordionContext.Provider, { value: api, children: _jsx(EdsAccordionExpandedContext.Provider, { value: expandedIds, children: _jsx("div", { ref: ref, className: className ? `eds-accordion ${className}` : 'eds-accordion', "data-e2e": e2eAttr, ...rest, children: children }) }) }));
78
+ });
79
+ //# sourceMappingURL=eds-accordion.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"eds-accordion.js","sourceRoot":"","sources":["../../src/eds-accordion/eds-accordion.tsx"],"names":[],"mappings":"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"}
@@ -0,0 +1,5 @@
1
+ export { EdsAccordion, EdsAccordionContext, useEdsAccordion } from './eds-accordion.js';
2
+ export type { EdsAccordionProps, EdsAccordionContextValue } from './eds-accordion.js';
3
+ export { EdsAccordionItem, EdsAccordionItemHeader } from './eds-accordion-item.js';
4
+ export type { EdsAccordionItemProps, EdsAccordionItemSize, EdsAccordionItemHeaderProps, } from './eds-accordion-item.js';
5
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/eds-accordion/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,mBAAmB,EAAE,eAAe,EAAE,MAAM,oBAAoB,CAAC;AACxF,YAAY,EAAE,iBAAiB,EAAE,wBAAwB,EAAE,MAAM,oBAAoB,CAAC;AAEtF,OAAO,EAAE,gBAAgB,EAAE,sBAAsB,EAAE,MAAM,yBAAyB,CAAC;AACnF,YAAY,EACR,qBAAqB,EACrB,oBAAoB,EACpB,2BAA2B,GAC9B,MAAM,yBAAyB,CAAC"}
@@ -0,0 +1,3 @@
1
+ export { EdsAccordion, EdsAccordionContext, useEdsAccordion } from './eds-accordion.js';
2
+ export { EdsAccordionItem, EdsAccordionItemHeader } from './eds-accordion-item.js';
3
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/eds-accordion/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,mBAAmB,EAAE,eAAe,EAAE,MAAM,oBAAoB,CAAC;AAGxF,OAAO,EAAE,gBAAgB,EAAE,sBAAsB,EAAE,MAAM,yBAAyB,CAAC"}
@@ -0,0 +1,5 @@
1
+ /* eds-alert-title — pure React port of eds-alert-title.scss. :host -> .eds-alert-title. */
2
+
3
+ .eds-alert-title {
4
+ font: var(--eds-f-paragraph-m-semi-bold);
5
+ }
@@ -0,0 +1,12 @@
1
+ import * as React from 'react';
2
+ export interface EdsAlertTitleProps extends React.HTMLAttributes<HTMLDivElement> {
3
+ children?: React.ReactNode;
4
+ }
5
+ /**
6
+ * `EdsAlertTitle` — pure React port of the Angular `eds-alert-title` sub-component.
7
+ *
8
+ * A semantic title wrapper (bold paragraph font) placed inside an `EdsAlert`'s children,
9
+ * ahead of the body text. Pure content projection (`<ng-content/>` → `{children}`).
10
+ */
11
+ export declare const EdsAlertTitle: React.ForwardRefExoticComponent<EdsAlertTitleProps & React.RefAttributes<HTMLDivElement>>;
12
+ //# sourceMappingURL=eds-alert-title.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"eds-alert-title.d.ts","sourceRoot":"","sources":["../../src/eds-alert/eds-alert-title.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAE/B,MAAM,WAAW,kBAAmB,SAAQ,KAAK,CAAC,cAAc,CAAC,cAAc,CAAC;IAC5E,QAAQ,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC;CAC9B;AAED;;;;;GAKG;AACH,eAAO,MAAM,aAAa,2FASxB,CAAC"}
@@ -0,0 +1,12 @@
1
+ import { jsx as _jsx } from "react/jsx-runtime";
2
+ import * as React from 'react';
3
+ /**
4
+ * `EdsAlertTitle` — pure React port of the Angular `eds-alert-title` sub-component.
5
+ *
6
+ * A semantic title wrapper (bold paragraph font) placed inside an `EdsAlert`'s children,
7
+ * ahead of the body text. Pure content projection (`<ng-content/>` → `{children}`).
8
+ */
9
+ export const EdsAlertTitle = React.forwardRef(function EdsAlertTitle({ children, className, ...rest }, ref) {
10
+ return (_jsx("div", { ref: ref, className: className ? `eds-alert-title ${className}` : 'eds-alert-title', ...rest, children: children }));
11
+ });
12
+ //# sourceMappingURL=eds-alert-title.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"eds-alert-title.js","sourceRoot":"","sources":["../../src/eds-alert/eds-alert-title.tsx"],"names":[],"mappings":";AAAA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAM/B;;;;;GAKG;AACH,MAAM,CAAC,MAAM,aAAa,GAAG,KAAK,CAAC,UAAU,CAAqC,SAAS,aAAa,CACpG,EAAE,QAAQ,EAAE,SAAS,EAAE,GAAG,IAAI,EAAE,EAChC,GAAG;IAEH,OAAO,CACH,cAAK,GAAG,EAAE,GAAG,EAAE,SAAS,EAAE,SAAS,CAAC,CAAC,CAAC,mBAAmB,SAAS,EAAE,CAAC,CAAC,CAAC,iBAAiB,KAAM,IAAI,YAC7F,QAAQ,GACP,CACT,CAAC;AACN,CAAC,CAAC,CAAC"}
@@ -0,0 +1,62 @@
1
+ /*
2
+ * eds-alert — pure React port of eds-alert.scss.
3
+ * :host -> .eds-alert ; :host([color="x"]) -> .eds-alert[data-color="x"].
4
+ * base.media(base.$eds-bkp-mobile) -> @media (max-width: 767px) (mobile is < 768px).
5
+ */
6
+
7
+ .eds-alert {
8
+ /* default color = info */
9
+ --_eds-alert-surface: var(--eds-c-surface-info-subtler);
10
+ --_eds-alert-on-surface: var(--eds-c-on-surface-info-subtler);
11
+ --_eds-alert-border-color: var(--eds-c-border-info);
12
+
13
+ display: flex;
14
+ width: 100%;
15
+ background-color: var(--_eds-alert-surface);
16
+ padding: var(--eds-sp-s);
17
+ border-radius: var(--eds-br-s);
18
+ border-left: var(--eds-bw-m) solid var(--_eds-alert-border-color);
19
+ }
20
+
21
+ .eds-alert .eds-alert__content {
22
+ display: flex;
23
+ width: 100%;
24
+ flex-direction: column;
25
+ padding: 0 var(--eds-sp-xs);
26
+ font: var(--eds-f-paragraph-m);
27
+ }
28
+
29
+ .eds-alert .eds-alert__close {
30
+ margin-left: auto;
31
+ display: flex;
32
+ align-self: baseline;
33
+ --_button-padding: var(--eds-sp-3xs);
34
+ }
35
+
36
+ /* COLOR VARIANTS */
37
+ .eds-alert[data-color="info"] {
38
+ --_eds-alert-surface: var(--eds-c-surface-info-subtler);
39
+ --_eds-alert-on-surface: var(--eds-c-on-surface-info-subtler);
40
+ --_eds-alert-border-color: var(--eds-c-border-info);
41
+ }
42
+ .eds-alert[data-color="success"] {
43
+ --_eds-alert-surface: var(--eds-c-surface-success-subtler);
44
+ --_eds-alert-on-surface: var(--eds-c-on-surface-success-subtler);
45
+ --_eds-alert-border-color: var(--eds-c-border-success);
46
+ }
47
+ .eds-alert[data-color="warning"] {
48
+ --_eds-alert-surface: var(--eds-c-surface-warning-subtler);
49
+ --_eds-alert-on-surface: var(--eds-c-on-surface-warning-subtler);
50
+ --_eds-alert-border-color: var(--eds-c-border-warning);
51
+ }
52
+ .eds-alert[data-color="critical"] {
53
+ --_eds-alert-surface: var(--eds-c-surface-critical-subtler);
54
+ --_eds-alert-on-surface: var(--eds-c-on-surface-critical-subtler);
55
+ --_eds-alert-border-color: var(--eds-c-border-critical);
56
+ }
57
+
58
+ @media (max-width: 767px) {
59
+ .eds-alert .eds-alert__content {
60
+ font: var(--eds-f-paragraph-s);
61
+ }
62
+ }
@@ -0,0 +1,38 @@
1
+ import * as React from 'react';
2
+ /** Local narrowed color union — the alert's color contract. */
3
+ export type EdsAlertColor = 'info' | 'success' | 'warning' | 'critical';
4
+ export interface EdsAlertProps extends Omit<React.HTMLAttributes<HTMLDivElement>, 'color'> {
5
+ /** Semantic color of the alert (also selects the leading status icon). @default 'info' */
6
+ color?: EdsAlertColor;
7
+ /** Shows a close button that dismisses the alert. @default false */
8
+ isCloseable?: boolean;
9
+ /**
10
+ * Controlled visibility. When provided, the alert is controlled — use `onVisibleChange`
11
+ * / `onCloseAlert` to react to dismissal. Omit for uncontrolled (see `defaultVisible`).
12
+ */
13
+ isVisible?: boolean;
14
+ /** Initial visibility for the uncontrolled case. @default true */
15
+ defaultVisible?: boolean;
16
+ /** Fired with the new visibility when it changes (controlled or uncontrolled). */
17
+ onVisibleChange?: (visible: boolean) => void;
18
+ /** Fired when the alert is closed via the close button (always `false`). */
19
+ onCloseAlert?: (visible: boolean) => void;
20
+ /** ARIA label for the close button (localizable). @default 'Close alert' */
21
+ closeAriaLabel?: string;
22
+ /** Data attribute for e2e testing. @default 'eds-alert' */
23
+ e2eAttr?: string;
24
+ /** Alert content — an optional `<EdsAlertTitle>` followed by the body. */
25
+ children?: React.ReactNode;
26
+ }
27
+ /**
28
+ * `EdsAlert` — pure React port of the Angular `eds-alert`.
29
+ *
30
+ * A dismissible status message: a leading status icon (`EdsIconState`), a content column
31
+ * (title slot via `<EdsAlertTitle>` + body, both in `children`), and an optional close
32
+ * button (`EdsIconButton`). `color` reflects as `data-color`; `hidden` is set on the root
33
+ * when not visible (matching the Angular `[attr.hidden]`). Visibility supports both
34
+ * controlled (`isVisible` + `onVisibleChange`) and uncontrolled (`defaultVisible`) use; the
35
+ * Angular `closeAlert` output maps to `onCloseAlert`.
36
+ */
37
+ export declare const EdsAlert: React.ForwardRefExoticComponent<EdsAlertProps & React.RefAttributes<HTMLDivElement>>;
38
+ //# sourceMappingURL=eds-alert.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"eds-alert.d.ts","sourceRoot":"","sources":["../../src/eds-alert/eds-alert.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAK/B,+DAA+D;AAC/D,MAAM,MAAM,aAAa,GAAG,MAAM,GAAG,SAAS,GAAG,SAAS,GAAG,UAAU,CAAC;AAExE,MAAM,WAAW,aAAc,SAAQ,IAAI,CAAC,KAAK,CAAC,cAAc,CAAC,cAAc,CAAC,EAAE,OAAO,CAAC;IACtF,0FAA0F;IAC1F,KAAK,CAAC,EAAE,aAAa,CAAC;IACtB,oEAAoE;IACpE,WAAW,CAAC,EAAE,OAAO,CAAC;IACtB;;;OAGG;IACH,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB,kEAAkE;IAClE,cAAc,CAAC,EAAE,OAAO,CAAC;IACzB,kFAAkF;IAClF,eAAe,CAAC,EAAE,CAAC,OAAO,EAAE,OAAO,KAAK,IAAI,CAAC;IAC7C,4EAA4E;IAC5E,YAAY,CAAC,EAAE,CAAC,OAAO,EAAE,OAAO,KAAK,IAAI,CAAC;IAC1C,4EAA4E;IAC5E,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,2DAA2D;IAC3D,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,0EAA0E;IAC1E,QAAQ,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC;CAC9B;AAED;;;;;;;;;GASG;AACH,eAAO,MAAM,QAAQ,sFAuDnB,CAAC"}
@@ -0,0 +1,29 @@
1
+ import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
2
+ import * as React from 'react';
3
+ import { useState } from 'react';
4
+ import { EdsIconState } from '../eds-icon-state/eds-icon-state.js';
5
+ import { EdsIconButton } from '../eds-icon-button/eds-icon-button.js';
6
+ /**
7
+ * `EdsAlert` — pure React port of the Angular `eds-alert`.
8
+ *
9
+ * A dismissible status message: a leading status icon (`EdsIconState`), a content column
10
+ * (title slot via `<EdsAlertTitle>` + body, both in `children`), and an optional close
11
+ * button (`EdsIconButton`). `color` reflects as `data-color`; `hidden` is set on the root
12
+ * when not visible (matching the Angular `[attr.hidden]`). Visibility supports both
13
+ * controlled (`isVisible` + `onVisibleChange`) and uncontrolled (`defaultVisible`) use; the
14
+ * Angular `closeAlert` output maps to `onCloseAlert`.
15
+ */
16
+ export const EdsAlert = React.forwardRef(function EdsAlert({ color = 'info', isCloseable = false, isVisible, defaultVisible = true, onVisibleChange, onCloseAlert, closeAriaLabel = 'Close alert', e2eAttr = 'eds-alert', children, className, ...rest }, ref) {
17
+ const isControlled = isVisible !== undefined;
18
+ const [internalVisible, setInternalVisible] = useState(defaultVisible);
19
+ const visible = isControlled ? isVisible : internalVisible;
20
+ const onCloseClick = () => {
21
+ if (!isControlled) {
22
+ setInternalVisible(false);
23
+ }
24
+ onVisibleChange?.(false);
25
+ onCloseAlert?.(false);
26
+ };
27
+ return (_jsxs("div", { ref: ref, className: className ? `eds-alert ${className}` : 'eds-alert', role: "alert", "data-color": color, hidden: !visible || undefined, "data-e2e": e2eAttr, ...rest, children: [_jsx(EdsIconState, { className: "eds-alert__icon", color: color }), _jsx("div", { className: "eds-alert__content", children: children }), isCloseable && (_jsx(EdsIconButton, { className: "eds-alert__close", ariaLabel: closeAriaLabel, icon: "x:core", rounded: true, size: "s", color: "neutral", onButtonClick: onCloseClick }))] }));
28
+ });
29
+ //# sourceMappingURL=eds-alert.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"eds-alert.js","sourceRoot":"","sources":["../../src/eds-alert/eds-alert.tsx"],"names":[],"mappings":";AAAA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAC/B,OAAO,EAAE,QAAQ,EAAE,MAAM,OAAO,CAAC;AACjC,OAAO,EAAE,YAAY,EAAE,MAAM,qCAAqC,CAAC;AACnE,OAAO,EAAE,aAAa,EAAE,MAAM,uCAAuC,CAAC;AA6BtE;;;;;;;;;GASG;AACH,MAAM,CAAC,MAAM,QAAQ,GAAG,KAAK,CAAC,UAAU,CAAgC,SAAS,QAAQ,CACrF,EACI,KAAK,GAAG,MAAM,EACd,WAAW,GAAG,KAAK,EACnB,SAAS,EACT,cAAc,GAAG,IAAI,EACrB,eAAe,EACf,YAAY,EACZ,cAAc,GAAG,aAAa,EAC9B,OAAO,GAAG,WAAW,EACrB,QAAQ,EACR,SAAS,EACT,GAAG,IAAI,EACV,EACD,GAAG;IAEH,MAAM,YAAY,GAAG,SAAS,KAAK,SAAS,CAAC;IAC7C,MAAM,CAAC,eAAe,EAAE,kBAAkB,CAAC,GAAG,QAAQ,CAAC,cAAc,CAAC,CAAC;IACvE,MAAM,OAAO,GAAG,YAAY,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,eAAe,CAAC;IAE3D,MAAM,YAAY,GAAG,GAAS,EAAE;QAC5B,IAAI,CAAC,YAAY,EAAE,CAAC;YAChB,kBAAkB,CAAC,KAAK,CAAC,CAAC;QAC9B,CAAC;QACD,eAAe,EAAE,CAAC,KAAK,CAAC,CAAC;QACzB,YAAY,EAAE,CAAC,KAAK,CAAC,CAAC;IAC1B,CAAC,CAAC;IAEF,OAAO,CACH,eACI,GAAG,EAAE,GAAG,EACR,SAAS,EAAE,SAAS,CAAC,CAAC,CAAC,aAAa,SAAS,EAAE,CAAC,CAAC,CAAC,WAAW,EAC7D,IAAI,EAAC,OAAO,gBACA,KAAK,EACjB,MAAM,EAAE,CAAC,OAAO,IAAI,SAAS,cACnB,OAAO,KACb,IAAI,aAER,KAAC,YAAY,IAAC,SAAS,EAAC,iBAAiB,EAAC,KAAK,EAAE,KAAK,GAAI,EAE1D,cAAK,SAAS,EAAC,oBAAoB,YAAE,QAAQ,GAAO,EAEnD,WAAW,IAAI,CACZ,KAAC,aAAa,IACV,SAAS,EAAC,kBAAkB,EAC5B,SAAS,EAAE,cAAc,EACzB,IAAI,EAAC,QAAQ,EACb,OAAO,QACP,IAAI,EAAC,GAAG,EACR,KAAK,EAAC,SAAS,EACf,aAAa,EAAE,YAAY,GAC7B,CACL,IACC,CACT,CAAC;AACN,CAAC,CAAC,CAAC"}
@@ -0,0 +1,5 @@
1
+ export { EdsAlert } from './eds-alert.js';
2
+ export type { EdsAlertProps, EdsAlertColor } from './eds-alert.js';
3
+ export { EdsAlertTitle } from './eds-alert-title.js';
4
+ export type { EdsAlertTitleProps } from './eds-alert-title.js';
5
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/eds-alert/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,gBAAgB,CAAC;AAC1C,YAAY,EAAE,aAAa,EAAE,aAAa,EAAE,MAAM,gBAAgB,CAAC;AACnE,OAAO,EAAE,aAAa,EAAE,MAAM,sBAAsB,CAAC;AACrD,YAAY,EAAE,kBAAkB,EAAE,MAAM,sBAAsB,CAAC"}
@@ -0,0 +1,3 @@
1
+ export { EdsAlert } from './eds-alert.js';
2
+ export { EdsAlertTitle } from './eds-alert-title.js';
3
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/eds-alert/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,gBAAgB,CAAC;AAE1C,OAAO,EAAE,aAAa,EAAE,MAAM,sBAAsB,CAAC"}