@inera/ids-react 7.1.1 → 8.0.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (435) hide show
  1. package/components/accordion/accordion.js +4 -4
  2. package/components/alert/alert.d.ts +3 -3
  3. package/components/alert/alert.js +8 -5
  4. package/components/badge/badge.d.ts +0 -1
  5. package/components/badge/badge.js +2 -2
  6. package/components/box-link/box-link.js +2 -2
  7. package/components/breadcrumbs/breadcrumbs.js +3 -3
  8. package/components/button/button.d.ts +6 -7
  9. package/components/button/button.js +5 -79
  10. package/components/card/card.d.ts +4 -4
  11. package/components/card/card.js +5 -4
  12. package/components/carousel/carousel-item.js +5 -5
  13. package/components/carousel/carousel.d.ts +0 -2
  14. package/components/carousel/carousel.js +22 -42
  15. package/components/date-label/date-label.d.ts +6 -0
  16. package/components/date-label/date-label.js +18 -3
  17. package/components/dialog/dialog.d.ts +12 -12
  18. package/components/dialog/dialog.js +5 -7
  19. package/components/dropdown/dropdown-content-button.d.ts +7 -0
  20. package/components/dropdown/dropdown-content-button.js +11 -0
  21. package/components/dropdown/dropdown-content-link.js +2 -1
  22. package/components/dropdown/dropdown.d.ts +5 -4
  23. package/components/dropdown/dropdown.js +11 -10
  24. package/components/footer-1177/footer-1177.d.ts +0 -3
  25. package/components/footer-1177/footer-1177.js +17 -23
  26. package/components/footer-1177-admin/footer-1177-admin.d.ts +5 -7
  27. package/components/footer-1177-admin/footer-1177-admin.js +21 -26
  28. package/components/footer-1177-pro/footer-1177-pro.d.ts +15 -10
  29. package/components/footer-1177-pro/footer-1177-pro.js +41 -22
  30. package/components/footer-inera/footer-inera.d.ts +2 -6
  31. package/components/footer-inera/footer-inera.js +21 -27
  32. package/components/footer-inera-admin/footer-inera-admin.d.ts +2 -6
  33. package/components/footer-inera-admin/footer-inera-admin.js +23 -26
  34. package/components/form/check-button/check-button.d.ts +1 -0
  35. package/components/form/check-button/check-button.js +2 -2
  36. package/components/form/checkbox/checkbox-group.d.ts +1 -1
  37. package/components/form/checkbox/checkbox-group.js +6 -6
  38. package/components/form/checkbox/checkbox.d.ts +1 -0
  39. package/components/form/checkbox/checkbox.js +2 -2
  40. package/components/form/input/input.d.ts +2 -4
  41. package/components/form/input/input.js +16 -37
  42. package/components/form/radio/radio-group.d.ts +2 -2
  43. package/components/form/radio/radio-group.js +6 -6
  44. package/components/form/radio/radio.d.ts +3 -3
  45. package/components/form/radio/radio.js +2 -2
  46. package/components/form/radio-button/radio-button-group.d.ts +2 -2
  47. package/components/form/radio-button/radio-button-group.js +7 -7
  48. package/components/form/radio-button/radio-button.d.ts +4 -3
  49. package/components/form/radio-button/radio-button.js +2 -2
  50. package/components/form/range/range.d.ts +1 -0
  51. package/components/form/range/range.js +2 -2
  52. package/components/form/select/select.d.ts +1 -1
  53. package/components/form/select/select.js +5 -3
  54. package/components/form/select-multiple/select-multiple.d.ts +3 -0
  55. package/components/form/select-multiple/select-multiple.js +13 -6
  56. package/components/form/textarea/textarea.d.ts +1 -0
  57. package/components/form/textarea/textarea.js +2 -2
  58. package/components/form/time/time.d.ts +1 -0
  59. package/components/form/time/time.js +6 -6
  60. package/components/form/toggle/toggle.d.ts +1 -0
  61. package/components/form/toggle/toggle.js +5 -5
  62. package/components/global-alert/global-alert.d.ts +16 -0
  63. package/components/global-alert/global-alert.js +26 -0
  64. package/components/grid/container.d.ts +0 -1
  65. package/components/grid/container.js +4 -4
  66. package/components/header-1177/header-1177-avatar.d.ts +5 -2
  67. package/components/header-1177/header-1177-avatar.js +21 -10
  68. package/components/header-1177/header-1177-item.d.ts +1 -0
  69. package/components/header-1177/header-1177-item.js +6 -5
  70. package/components/header-1177/header-1177-menu-mobile.d.ts +1 -1
  71. package/components/header-1177/header-1177-menu-mobile.js +29 -18
  72. package/components/header-1177/header-1177-nav-item-mobile.js +4 -4
  73. package/components/header-1177/header-1177-nav-item.js +6 -7
  74. package/components/header-1177/header-1177-nav.d.ts +2 -0
  75. package/components/header-1177/header-1177-nav.js +3 -4
  76. package/components/header-1177/header-1177-region-picker-mobile.d.ts +9 -0
  77. package/components/header-1177/header-1177-region-picker-mobile.js +36 -0
  78. package/components/header-1177/header-1177-region-picker.d.ts +9 -0
  79. package/components/header-1177/header-1177-region-picker.js +34 -0
  80. package/components/header-1177/header-1177.d.ts +2 -6
  81. package/components/header-1177/header-1177.js +6 -22
  82. package/components/header-1177-admin/header-1177-admin-avatar-mobile.d.ts +3 -0
  83. package/components/header-1177-admin/header-1177-admin-avatar-mobile.js +28 -3
  84. package/components/header-1177-admin/header-1177-admin-avatar.d.ts +3 -2
  85. package/components/header-1177-admin/header-1177-admin-avatar.js +31 -18
  86. package/components/header-1177-admin/header-1177-admin-item.js +4 -4
  87. package/components/header-1177-admin/header-1177-admin-menu-mobile.d.ts +11 -0
  88. package/components/header-1177-admin/header-1177-admin-menu-mobile.js +53 -0
  89. package/components/header-1177-admin/header-1177-admin-nav-item.js +10 -11
  90. package/components/header-1177-admin/header-1177-admin-nav.js +4 -5
  91. package/components/header-1177-admin/header-1177-admin.d.ts +1 -4
  92. package/components/header-1177-admin/header-1177-admin.js +5 -18
  93. package/components/header-1177-pro/header-1177-pro-avatar-mobile.d.ts +3 -0
  94. package/components/header-1177-pro/header-1177-pro-avatar-mobile.js +28 -3
  95. package/components/header-1177-pro/header-1177-pro-avatar.d.ts +3 -2
  96. package/components/header-1177-pro/header-1177-pro-avatar.js +31 -18
  97. package/components/header-1177-pro/header-1177-pro-item.js +5 -5
  98. package/components/header-1177-pro/{header-1177-pro-nav-menu-mobile.d.ts → header-1177-pro-menu-mobile.d.ts} +3 -3
  99. package/components/header-1177-pro/header-1177-pro-menu-mobile.js +53 -0
  100. package/components/header-1177-pro/header-1177-pro-nav-item.js +11 -11
  101. package/components/header-1177-pro/header-1177-pro-nav.d.ts +2 -2
  102. package/components/header-1177-pro/header-1177-pro-nav.js +5 -20
  103. package/components/header-1177-pro/header-1177-pro-region-picker-mobile.d.ts +9 -0
  104. package/components/header-1177-pro/header-1177-pro-region-picker-mobile.js +36 -0
  105. package/components/header-1177-pro/header-1177-pro-region-picker.d.ts +9 -0
  106. package/components/header-1177-pro/header-1177-pro-region-picker.js +34 -0
  107. package/components/header-1177-pro/header-1177-pro.d.ts +4 -7
  108. package/components/header-1177-pro/header-1177-pro.js +4 -28
  109. package/components/header-inera/header-inera-item.js +1 -2
  110. package/components/header-inera/header-inera-menu-mobile.d.ts +11 -0
  111. package/components/header-inera/header-inera-menu-mobile.js +54 -0
  112. package/components/header-inera/header-inera-nav-item.js +6 -9
  113. package/components/header-inera/header-inera-nav.js +2 -3
  114. package/components/header-inera/header-inera.d.ts +1 -2
  115. package/components/header-inera/header-inera.js +4 -7
  116. package/components/header-inera-admin/header-inera-admin-avatar-mobile.d.ts +5 -2
  117. package/components/header-inera-admin/header-inera-admin-avatar-mobile.js +23 -3
  118. package/components/header-inera-admin/header-inera-admin-avatar.d.ts +3 -4
  119. package/components/header-inera-admin/header-inera-admin-avatar.js +34 -22
  120. package/components/header-inera-admin/header-inera-admin-item.js +1 -1
  121. package/components/header-inera-admin/header-inera-admin-menu-mobile.d.ts +11 -0
  122. package/components/header-inera-admin/header-inera-admin-menu-mobile.js +53 -0
  123. package/components/header-inera-admin/header-inera-admin-nav-item.js +6 -9
  124. package/components/header-inera-admin/header-inera-admin-nav.js +2 -3
  125. package/components/header-inera-admin/header-inera-admin.d.ts +2 -1
  126. package/components/header-inera-admin/header-inera-admin.js +6 -11
  127. package/components/header-patient/header-patient.d.ts +3 -3
  128. package/components/header-patient/header-patient.js +2 -2
  129. package/components/link/link.d.ts +3 -3
  130. package/components/link/link.js +3 -3
  131. package/components/mobile/menu/item/mobile-item.js +4 -4
  132. package/components/navigation/content/navigation-content.d.ts +1 -0
  133. package/components/navigation/content/navigation-content.js +7 -6
  134. package/components/pagination/data-pagination/data-pagination.d.ts +7 -11
  135. package/components/pagination/data-pagination/data-pagination.js +7 -7
  136. package/components/pagination/list-pagination/list-pagination.js +6 -11
  137. package/components/popover/popover.js +9 -9
  138. package/components/progressbar/progressbar.js +2 -2
  139. package/components/puff-list/puff-list-item/puff-list-item-info.d.ts +1 -0
  140. package/components/puff-list/puff-list-item/puff-list-item-info.js +5 -2
  141. package/components/puff-list/puff-list-item/puff-list-item.d.ts +8 -0
  142. package/components/puff-list/puff-list-item/puff-list-item.js +47 -13
  143. package/components/puff-list/puff-list.js +2 -2
  144. package/components/region-icon/region-icon.js +1 -2
  145. package/components/side-menu/side-menu.d.ts +1 -1
  146. package/components/side-menu/side-menu.js +6 -6
  147. package/components/side-panel/side-panel.d.ts +2 -0
  148. package/components/side-panel/side-panel.js +5 -5
  149. package/components/stepper/step.js +2 -2
  150. package/components/stepper/stepper.js +4 -4
  151. package/components/tabs/tab-panel.js +2 -2
  152. package/components/tabs/tab.js +2 -2
  153. package/components/tabs/tabs.d.ts +1 -0
  154. package/components/tabs/tabs.js +26 -12
  155. package/components/tooltip/tooltip.js +2 -2
  156. package/components/utils/contexts/HeaderContext.d.ts +0 -2
  157. package/index.d.ts +16 -144
  158. package/index.js +16 -144
  159. package/package.json +2 -3
  160. package/components/agent/agent.d.ts +0 -12
  161. package/components/agent/agent.js +0 -18
  162. package/components/alert-global/alert-global.d.ts +0 -16
  163. package/components/alert-global/alert-global.js +0 -28
  164. package/components/header-1177-pro/header-1177-pro-nav-menu-mobile.js +0 -35
  165. package/components/header-inera/header-inera-nav-mobile.d.ts +0 -11
  166. package/components/header-inera/header-inera-nav-mobile.js +0 -47
  167. package/components/header-inera-admin/header-inera-admin-nav-mobile.d.ts +0 -12
  168. package/components/header-inera-admin/header-inera-admin-nav-mobile.js +0 -35
  169. package/components/icons/icon-1177.d.ts +0 -3
  170. package/components/icons/icon-1177.js +0 -12
  171. package/components/icons/icon-activity.d.ts +0 -3
  172. package/components/icons/icon-activity.js +0 -12
  173. package/components/icons/icon-agent.d.ts +0 -3
  174. package/components/icons/icon-agent.js +0 -12
  175. package/components/icons/icon-alarm-clock-inactivity.d.ts +0 -3
  176. package/components/icons/icon-alarm-clock-inactivity.js +0 -12
  177. package/components/icons/icon-alarm-clock-neutral.d.ts +0 -3
  178. package/components/icons/icon-alarm-clock-neutral.js +0 -12
  179. package/components/icons/icon-archive.d.ts +0 -3
  180. package/components/icons/icon-archive.js +0 -12
  181. package/components/icons/icon-arrow.d.ts +0 -3
  182. package/components/icons/icon-arrow.js +0 -12
  183. package/components/icons/icon-attention.d.ts +0 -3
  184. package/components/icons/icon-attention.js +0 -12
  185. package/components/icons/icon-blekinge.d.ts +0 -3
  186. package/components/icons/icon-blekinge.js +0 -12
  187. package/components/icons/icon-bookmark.d.ts +0 -3
  188. package/components/icons/icon-bookmark.js +0 -12
  189. package/components/icons/icon-calendar.d.ts +0 -3
  190. package/components/icons/icon-calendar.js +0 -12
  191. package/components/icons/icon-call-active.d.ts +0 -3
  192. package/components/icons/icon-call-active.js +0 -12
  193. package/components/icons/icon-call.d.ts +0 -3
  194. package/components/icons/icon-call.js +0 -12
  195. package/components/icons/icon-camera-off.d.ts +0 -3
  196. package/components/icons/icon-camera-off.js +0 -12
  197. package/components/icons/icon-camera-on.d.ts +0 -3
  198. package/components/icons/icon-camera-on.js +0 -12
  199. package/components/icons/icon-camera-switch.d.ts +0 -3
  200. package/components/icons/icon-camera-switch.js +0 -12
  201. package/components/icons/icon-chart-bar.d.ts +0 -3
  202. package/components/icons/icon-chart-bar.js +0 -12
  203. package/components/icons/icon-chart-line.d.ts +0 -3
  204. package/components/icons/icon-chart-line.js +0 -12
  205. package/components/icons/icon-chat.d.ts +0 -3
  206. package/components/icons/icon-chat.js +0 -12
  207. package/components/icons/icon-check.d.ts +0 -3
  208. package/components/icons/icon-check.js +0 -12
  209. package/components/icons/icon-chevron-bold.d.ts +0 -3
  210. package/components/icons/icon-chevron-bold.js +0 -12
  211. package/components/icons/icon-chevron.d.ts +0 -3
  212. package/components/icons/icon-chevron.js +0 -12
  213. package/components/icons/icon-clipboard-cross.d.ts +0 -3
  214. package/components/icons/icon-clipboard-cross.js +0 -12
  215. package/components/icons/icon-clipboard-text.d.ts +0 -3
  216. package/components/icons/icon-clipboard-text.js +0 -12
  217. package/components/icons/icon-clipboard.d.ts +0 -3
  218. package/components/icons/icon-clipboard.js +0 -12
  219. package/components/icons/icon-clock.d.ts +0 -3
  220. package/components/icons/icon-clock.js +0 -12
  221. package/components/icons/icon-close-bold.d.ts +0 -3
  222. package/components/icons/icon-close-bold.js +0 -12
  223. package/components/icons/icon-close.d.ts +0 -3
  224. package/components/icons/icon-close.js +0 -12
  225. package/components/icons/icon-cog.d.ts +0 -3
  226. package/components/icons/icon-cog.js +0 -12
  227. package/components/icons/icon-computer-inera.d.ts +0 -3
  228. package/components/icons/icon-computer-inera.js +0 -12
  229. package/components/icons/icon-computer.d.ts +0 -3
  230. package/components/icons/icon-computer.js +0 -12
  231. package/components/icons/icon-copy-file.d.ts +0 -3
  232. package/components/icons/icon-copy-file.js +0 -12
  233. package/components/icons/icon-copy-link.d.ts +0 -3
  234. package/components/icons/icon-copy-link.js +0 -12
  235. package/components/icons/icon-dalarna.d.ts +0 -3
  236. package/components/icons/icon-dalarna.js +0 -12
  237. package/components/icons/icon-denied.d.ts +0 -3
  238. package/components/icons/icon-denied.js +0 -12
  239. package/components/icons/icon-doctors-bag.d.ts +0 -3
  240. package/components/icons/icon-doctors-bag.js +0 -12
  241. package/components/icons/icon-document.d.ts +0 -3
  242. package/components/icons/icon-document.js +0 -12
  243. package/components/icons/icon-download.d.ts +0 -3
  244. package/components/icons/icon-download.js +0 -12
  245. package/components/icons/icon-drag-n-drop.d.ts +0 -3
  246. package/components/icons/icon-drag-n-drop.js +0 -12
  247. package/components/icons/icon-ear-hearing.d.ts +0 -3
  248. package/components/icons/icon-ear-hearing.js +0 -12
  249. package/components/icons/icon-edit.d.ts +0 -3
  250. package/components/icons/icon-edit.js +0 -12
  251. package/components/icons/icon-email-sent.d.ts +0 -3
  252. package/components/icons/icon-email-sent.js +0 -12
  253. package/components/icons/icon-email-unread.d.ts +0 -3
  254. package/components/icons/icon-email-unread.js +0 -12
  255. package/components/icons/icon-email.d.ts +0 -3
  256. package/components/icons/icon-email.js +0 -12
  257. package/components/icons/icon-expand.d.ts +0 -3
  258. package/components/icons/icon-expand.js +0 -12
  259. package/components/icons/icon-external.d.ts +0 -3
  260. package/components/icons/icon-external.js +0 -12
  261. package/components/icons/icon-facebook.d.ts +0 -3
  262. package/components/icons/icon-facebook.js +0 -12
  263. package/components/icons/icon-file-csv.d.ts +0 -3
  264. package/components/icons/icon-file-csv.js +0 -12
  265. package/components/icons/icon-file-excel.d.ts +0 -3
  266. package/components/icons/icon-file-excel.js +0 -12
  267. package/components/icons/icon-file-other.d.ts +0 -3
  268. package/components/icons/icon-file-other.js +0 -12
  269. package/components/icons/icon-file-pdf.d.ts +0 -3
  270. package/components/icons/icon-file-pdf.js +0 -12
  271. package/components/icons/icon-file-picture.d.ts +0 -3
  272. package/components/icons/icon-file-picture.js +0 -12
  273. package/components/icons/icon-file-powerpoint.d.ts +0 -3
  274. package/components/icons/icon-file-powerpoint.js +0 -12
  275. package/components/icons/icon-file-word.d.ts +0 -3
  276. package/components/icons/icon-file-word.js +0 -12
  277. package/components/icons/icon-find-care.d.ts +0 -3
  278. package/components/icons/icon-find-care.js +0 -12
  279. package/components/icons/icon-find-region.d.ts +0 -3
  280. package/components/icons/icon-find-region.js +0 -12
  281. package/components/icons/icon-flag.d.ts +0 -3
  282. package/components/icons/icon-flag.js +0 -12
  283. package/components/icons/icon-form-numbered-reocurring.d.ts +0 -3
  284. package/components/icons/icon-form-numbered-reocurring.js +0 -12
  285. package/components/icons/icon-form-numbered.d.ts +0 -3
  286. package/components/icons/icon-form-numbered.js +0 -12
  287. package/components/icons/icon-gavleborg.d.ts +0 -3
  288. package/components/icons/icon-gavleborg.js +0 -12
  289. package/components/icons/icon-gotland.d.ts +0 -3
  290. package/components/icons/icon-gotland.js +0 -12
  291. package/components/icons/icon-halland.d.ts +0 -3
  292. package/components/icons/icon-halland.js +0 -12
  293. package/components/icons/icon-headphones.d.ts +0 -3
  294. package/components/icons/icon-headphones.js +0 -12
  295. package/components/icons/icon-hourglass-end.d.ts +0 -3
  296. package/components/icons/icon-hourglass-end.js +0 -12
  297. package/components/icons/icon-hourglass-start.d.ts +0 -3
  298. package/components/icons/icon-hourglass-start.js +0 -12
  299. package/components/icons/icon-hourglass.d.ts +0 -3
  300. package/components/icons/icon-hourglass.js +0 -12
  301. package/components/icons/icon-house.d.ts +0 -3
  302. package/components/icons/icon-house.js +0 -12
  303. package/components/icons/icon-id-card-locked.d.ts +0 -3
  304. package/components/icons/icon-id-card-locked.js +0 -12
  305. package/components/icons/icon-id-card.d.ts +0 -3
  306. package/components/icons/icon-id-card.js +0 -12
  307. package/components/icons/icon-image.d.ts +0 -3
  308. package/components/icons/icon-image.js +0 -12
  309. package/components/icons/icon-inera-legacy.d.ts +0 -3
  310. package/components/icons/icon-inera-legacy.js +0 -12
  311. package/components/icons/icon-inera.d.ts +0 -3
  312. package/components/icons/icon-inera.js +0 -12
  313. package/components/icons/icon-information.d.ts +0 -3
  314. package/components/icons/icon-information.js +0 -12
  315. package/components/icons/icon-jamtland-harjedalen.d.ts +0 -3
  316. package/components/icons/icon-jamtland-harjedalen.js +0 -12
  317. package/components/icons/icon-jonkoping.d.ts +0 -3
  318. package/components/icons/icon-jonkoping.js +0 -12
  319. package/components/icons/icon-kalmar.d.ts +0 -3
  320. package/components/icons/icon-kalmar.js +0 -12
  321. package/components/icons/icon-kronoberg.d.ts +0 -3
  322. package/components/icons/icon-kronoberg.js +0 -12
  323. package/components/icons/icon-lightbulb.d.ts +0 -3
  324. package/components/icons/icon-lightbulb.js +0 -12
  325. package/components/icons/icon-linkedin.d.ts +0 -3
  326. package/components/icons/icon-linkedin.js +0 -12
  327. package/components/icons/icon-list.d.ts +0 -3
  328. package/components/icons/icon-list.js +0 -12
  329. package/components/icons/icon-lock-open.d.ts +0 -3
  330. package/components/icons/icon-lock-open.js +0 -12
  331. package/components/icons/icon-lock.d.ts +0 -3
  332. package/components/icons/icon-lock.js +0 -12
  333. package/components/icons/icon-log-locked.d.ts +0 -3
  334. package/components/icons/icon-log-locked.js +0 -12
  335. package/components/icons/icon-log.d.ts +0 -3
  336. package/components/icons/icon-log.js +0 -12
  337. package/components/icons/icon-menu.d.ts +0 -3
  338. package/components/icons/icon-menu.js +0 -12
  339. package/components/icons/icon-minus.d.ts +0 -3
  340. package/components/icons/icon-minus.js +0 -12
  341. package/components/icons/icon-moment-start.d.ts +0 -3
  342. package/components/icons/icon-moment-start.js +0 -12
  343. package/components/icons/icon-moment-stop.d.ts +0 -3
  344. package/components/icons/icon-moment-stop.js +0 -12
  345. package/components/icons/icon-norrbotten.d.ts +0 -3
  346. package/components/icons/icon-norrbotten.js +0 -12
  347. package/components/icons/icon-office-building.d.ts +0 -3
  348. package/components/icons/icon-office-building.js +0 -12
  349. package/components/icons/icon-orebro.d.ts +0 -3
  350. package/components/icons/icon-orebro.js +0 -12
  351. package/components/icons/icon-organization.d.ts +0 -3
  352. package/components/icons/icon-organization.js +0 -12
  353. package/components/icons/icon-ostergotland.d.ts +0 -3
  354. package/components/icons/icon-ostergotland.js +0 -12
  355. package/components/icons/icon-plus.d.ts +0 -3
  356. package/components/icons/icon-plus.js +0 -12
  357. package/components/icons/icon-prescription.d.ts +0 -3
  358. package/components/icons/icon-prescription.js +0 -12
  359. package/components/icons/icon-print.d.ts +0 -3
  360. package/components/icons/icon-print.js +0 -12
  361. package/components/icons/icon-question.d.ts +0 -3
  362. package/components/icons/icon-question.js +0 -12
  363. package/components/icons/icon-reload.d.ts +0 -3
  364. package/components/icons/icon-reload.js +0 -12
  365. package/components/icons/icon-reply.d.ts +0 -3
  366. package/components/icons/icon-reply.js +0 -12
  367. package/components/icons/icon-search-inera.d.ts +0 -3
  368. package/components/icons/icon-search-inera.js +0 -12
  369. package/components/icons/icon-search.d.ts +0 -3
  370. package/components/icons/icon-search.js +0 -12
  371. package/components/icons/icon-share.d.ts +0 -3
  372. package/components/icons/icon-share.js +0 -12
  373. package/components/icons/icon-shield-locked-primary.d.ts +0 -3
  374. package/components/icons/icon-shield-locked-primary.js +0 -12
  375. package/components/icons/icon-shield-locked.d.ts +0 -3
  376. package/components/icons/icon-shield-locked.js +0 -12
  377. package/components/icons/icon-skane.d.ts +0 -3
  378. package/components/icons/icon-skane.js +0 -12
  379. package/components/icons/icon-sormland.d.ts +0 -3
  380. package/components/icons/icon-sormland.js +0 -12
  381. package/components/icons/icon-star-filled.d.ts +0 -3
  382. package/components/icons/icon-star-filled.js +0 -12
  383. package/components/icons/icon-star.d.ts +0 -3
  384. package/components/icons/icon-star.js +0 -12
  385. package/components/icons/icon-stockholm.d.ts +0 -3
  386. package/components/icons/icon-stockholm.js +0 -12
  387. package/components/icons/icon-success.d.ts +0 -3
  388. package/components/icons/icon-success.js +0 -12
  389. package/components/icons/icon-swap.d.ts +0 -3
  390. package/components/icons/icon-swap.js +0 -12
  391. package/components/icons/icon-switch-person.d.ts +0 -3
  392. package/components/icons/icon-switch-person.js +0 -12
  393. package/components/icons/icon-telephone.d.ts +0 -3
  394. package/components/icons/icon-telephone.js +0 -12
  395. package/components/icons/icon-test-tube-analyze.d.ts +0 -3
  396. package/components/icons/icon-test-tube-analyze.js +0 -12
  397. package/components/icons/icon-test-tube-empty.d.ts +0 -3
  398. package/components/icons/icon-test-tube-empty.js +0 -12
  399. package/components/icons/icon-test-tube.d.ts +0 -3
  400. package/components/icons/icon-test-tube.js +0 -12
  401. package/components/icons/icon-toggle-card.d.ts +0 -3
  402. package/components/icons/icon-toggle-card.js +0 -12
  403. package/components/icons/icon-toggle-list.d.ts +0 -3
  404. package/components/icons/icon-toggle-list.js +0 -12
  405. package/components/icons/icon-trash.d.ts +0 -3
  406. package/components/icons/icon-trash.js +0 -12
  407. package/components/icons/icon-twitter.d.ts +0 -3
  408. package/components/icons/icon-twitter.js +0 -12
  409. package/components/icons/icon-uppsala.d.ts +0 -3
  410. package/components/icons/icon-uppsala.js +0 -12
  411. package/components/icons/icon-user.d.ts +0 -3
  412. package/components/icons/icon-user.js +0 -12
  413. package/components/icons/icon-varmland.d.ts +0 -3
  414. package/components/icons/icon-varmland.js +0 -12
  415. package/components/icons/icon-vasterbotten.d.ts +0 -3
  416. package/components/icons/icon-vasterbotten.js +0 -12
  417. package/components/icons/icon-vasternorrland.d.ts +0 -3
  418. package/components/icons/icon-vasternorrland.js +0 -12
  419. package/components/icons/icon-vastmanland.d.ts +0 -3
  420. package/components/icons/icon-vastmanland.js +0 -12
  421. package/components/icons/icon-vastra-gotaland.d.ts +0 -3
  422. package/components/icons/icon-vastra-gotaland.js +0 -12
  423. package/components/icons/icon-video-off.d.ts +0 -3
  424. package/components/icons/icon-video-off.js +0 -12
  425. package/components/icons/icon-video-on.d.ts +0 -3
  426. package/components/icons/icon-video-on.js +0 -12
  427. package/components/icons/icon-video-switch.d.ts +0 -3
  428. package/components/icons/icon-video-switch.js +0 -12
  429. package/components/icons/icon-visibility-off.d.ts +0 -3
  430. package/components/icons/icon-visibility-off.js +0 -12
  431. package/components/icons/icon-visibility.d.ts +0 -3
  432. package/components/icons/icon-visibility.js +0 -12
  433. package/components/icons/icon-warning.d.ts +0 -3
  434. package/components/icons/icon-warning.js +0 -12
  435. package/components/icons/icon-x.d.ts +0 -3
@@ -5,40 +5,24 @@ import clsx from 'clsx';
5
5
  import '@inera/ids-design/components/header-1177/header-1177.css';
6
6
  import { HeaderProvider } from '../utils/contexts/HeaderContext.js';
7
7
 
8
- const IDSHeader1177 = ({ regionPickerText = "Välj region", srLogoLabel = "Logotyp", hideRegionPicker: initialRegionPicker = false, regionPickerExpanded: initialExpanded = false, fluid = false, unresponsive = false, logoHref = "", logoProps = {}, logo, regionIcon, skipToContentLink, onToggleRegion, items, avatar, mobileMenu, className, children }) => {
9
- const [regionPickerExpanded, setRegionPickerExpanded] = useState(initialExpanded);
8
+ const IDSHeader1177 = ({ srLogoText = "Logotyp", hideRegionPicker: initialRegionPicker = false, unresponsive = false, logoHref = "", logoProps = {}, logo, regionPicker, skipToContentLink, items, avatar, className, children, ...props }) => {
10
9
  const [hideRegionPicker, setHideRegionPicker] = useState(initialRegionPicker);
11
- const regionIconRef = useRef(null);
10
+ useRef(null);
12
11
  useEffect(() => {
13
12
  if (avatar) {
14
13
  // No region picker when avatar
15
- setRegionPickerExpanded(false);
16
14
  setHideRegionPicker(true);
17
15
  }
18
16
  else {
19
17
  setHideRegionPicker(initialRegionPicker);
20
18
  }
21
19
  }, [avatar]);
22
- const toggleRegion = () => {
23
- setRegionPickerExpanded(prev => !prev);
24
- onToggleRegion?.(!regionPickerExpanded);
25
- };
26
- const renderRegion = () => {
27
- if (hideRegionPicker)
28
- return null;
29
- return (jsxs("div", { className: clsx("ids-header-1177__region", {
30
- "ids-header-1177__region--selected": !!regionIcon
31
- }), children: [jsx("span", { className: "ids-header-1177__region-icon", ref: regionIconRef, children: regionIcon }), jsx("span", { className: "ids-header-1177__region-picker", children: jsx("button", { onClick: toggleRegion, className: clsx("ids-header-1177__region-picker__button", {
32
- "ids-header-1177__region-picker__button--expanded": regionPickerExpanded
33
- }), "aria-label": regionPickerText, children: jsx("span", { className: "ids-header-1177__region-picker__text", children: regionPickerText }) }) })] }));
34
- };
35
20
  const renderLogo = () => {
36
- return (jsx("div", { className: "ids-header-1177__logo-wrapper", children: jsx("div", { className: "ids-header-1177__logo", children: logo ? (jsx("span", { className: "ids-header-1177__link", children: logo })) : (jsx("a", { className: "ids-header-1177__logo-link", href: logoHref, "aria-label": srLogoLabel, ...logoProps })) }) }));
21
+ return (jsx("div", { className: "ids-header-1177__logo-wrapper", children: jsx("div", { className: "ids-header-1177__logo", children: logo ? (jsx("span", { className: "ids-header-1177__link", children: logo })) : (jsx("a", { className: "ids-header-1177__logo-link", href: logoHref, "aria-label": srLogoText, ...logoProps })) }) }));
37
22
  };
38
- return (jsx(HeaderProvider, { value: { unresponsive, fluid }, children: jsxs("header", { className: clsx("ids-header-1177", {
39
- "ids-header-1177--unresponsive": unresponsive,
40
- "ids-header-1177--fluid": fluid
41
- }, className), children: [skipToContentLink && (jsx("div", { className: "ids-header-1177__skip-to-content", children: skipToContentLink })), jsx("div", { className: "ids-header-1177__container", children: jsxs("div", { className: "ids-header-1177__inner", children: [jsxs("div", { className: "ids-header-1177__inner-left", children: [renderLogo(), renderRegion()] }), jsx("div", { className: "ids-header-1177__inner-right", children: jsxs("div", { className: "ids-header-1177__items", children: [items, " ", avatar, mobileMenu && jsx("div", { className: "ids-header-1177__mobile-menu", children: mobileMenu })] }) })] }) }), children] }) }));
23
+ return (jsx(HeaderProvider, { value: { unresponsive, hideRegionPicker }, children: jsxs("header", { className: clsx("ids-header-1177", {
24
+ "ids-header-1177--unresponsive": unresponsive
25
+ }, className), ...props, children: [skipToContentLink && jsx("div", { className: "ids-header-1177__skip-to-content", children: skipToContentLink }), jsxs("div", { className: "ids-header-1177__container", children: [jsx("div", { className: "ids-header-1177__left" }), jsxs("div", { className: "ids-header-1177__inner", children: [jsxs("div", { className: "ids-header-1177__inner-left", children: [renderLogo(), !hideRegionPicker && regionPicker && jsx("div", { className: "ids-header-1177__region-picker", children: regionPicker })] }), jsxs("div", { className: "ids-header-1177__inner-right", children: [items, " ", avatar] })] }), jsx("div", { className: "ids-header-1177__right" })] }), children] }) }));
42
26
  };
43
27
 
44
28
  export { IDSHeader1177 };
@@ -3,6 +3,9 @@ import "@inera/ids-design/components/header-1177-admin/header-1177-admin-avatar-
3
3
  interface IDSHeader1177AdminAvatarMobileProps {
4
4
  username?: string;
5
5
  unit?: string;
6
+ expanded?: boolean;
7
+ loginLink?: ReactNode;
8
+ persistent?: boolean;
6
9
  children?: ReactNode;
7
10
  }
8
11
  export declare const IDSHeader1177AdminAvatarMobile: React.FC<IDSHeader1177AdminAvatarMobileProps>;
@@ -1,9 +1,34 @@
1
1
  "use client";
2
- import { jsx, jsxs, Fragment } from 'react/jsx-runtime';
2
+ import { jsxs, jsx } from 'react/jsx-runtime';
3
+ import { useId, useState, useRef, useEffect } from 'react';
3
4
  import '@inera/ids-design/components/header-1177-admin/header-1177-admin-avatar-mobile.css';
5
+ import { useHeaderContext } from '../utils/contexts/HeaderContext.js';
6
+ import clsx from 'clsx';
4
7
 
5
- const IDSHeader1177AdminAvatarMobile = ({ username = "", unit = "", children }) => {
6
- return (jsx("div", { className: "ids-header-1177-admin__avatar-mobile", children: username || unit ? (jsxs(Fragment, { children: [jsxs("div", { className: "ids-header-1177-admin__avatar-mobile__logged-in", children: [jsx("div", { className: "ids-header-1177-admin__avatar-mobile__username", children: username }), jsx("div", { className: "ids-header-1177-admin__avatar-mobile__unit", children: unit })] }), children] })) : (jsx(Fragment, { children: children })) }));
8
+ const IDSHeader1177AdminAvatarMobile = ({ username = "", unit = "", expanded = false, loginLink, persistent = false, children, ...props }) => {
9
+ const dropdownId = useId();
10
+ const [isExpanded, setIsExpanded] = useState(expanded);
11
+ const headerContext = useHeaderContext();
12
+ const containerRef = useRef(null);
13
+ const toggleExpanded = () => setIsExpanded(prev => !prev);
14
+ const handleClickOutside = (event) => {
15
+ if (!persistent && containerRef.current && !containerRef.current.contains(event.target)) {
16
+ setIsExpanded(false);
17
+ }
18
+ };
19
+ useEffect(() => {
20
+ document.addEventListener("click", handleClickOutside);
21
+ return () => {
22
+ document.removeEventListener("click", handleClickOutside);
23
+ };
24
+ }, [persistent]);
25
+ return (!headerContext?.hideRegionPicker && (jsxs("div", { className: clsx("ids-header-1177-admin-avatar-mobile", {
26
+ "ids-header-1177-admin-avatar-mobile--unresponsive": headerContext?.unresponsive
27
+ }), ref: containerRef, ...props, children: [!username && loginLink && jsx("span", { className: "ids-header-1177-admin-avatar-mobile__login-link", children: loginLink }), username && (jsxs("div", { className: "ids-header-1177-admin-avatar-mobile__menu-wrapper", children: [jsx("button", { className: clsx("ids-header-1177-admin-avatar-mobile__button", {
28
+ "ids-header-1177-admin-avatar-mobile__button--expanded": isExpanded
29
+ }), onClick: toggleExpanded, "aria-controls": dropdownId, "aria-expanded": isExpanded, children: jsx("div", { className: "ids-header-1177-admin-avatar-mobile-content__name", title: username, children: username }) }), jsxs("div", { id: dropdownId, className: clsx("ids-header-1177-admin-avatar-mobile__menu", {
30
+ "ids-header-1177-admin-avatar-mobile__menu--expanded": isExpanded
31
+ }), children: [unit && jsx("div", { className: "ids-header-1177-admin-avatar-mobile__unit", children: unit }), jsx("div", { className: "ids-header-1177-admin-avatar-mobile__menu-links", children: children })] })] }))] })));
7
32
  };
8
33
 
9
34
  export { IDSHeader1177AdminAvatarMobile };
@@ -1,10 +1,11 @@
1
1
  import React, { ReactNode } from "react";
2
2
  import "@inera/ids-design/components/header-1177-admin/header-1177-admin-avatar.css";
3
3
  interface IDSHeader1177AdminAvatarProps {
4
- username?: string;
4
+ username: string;
5
5
  unit?: string;
6
- persistent?: boolean;
6
+ expanded?: boolean;
7
7
  children?: ReactNode;
8
+ persistent?: boolean;
8
9
  }
9
10
  export declare const IDSHeader1177AdminAvatar: React.FC<IDSHeader1177AdminAvatarProps>;
10
11
  export {};
@@ -1,34 +1,47 @@
1
1
  "use client";
2
- import { jsxs, jsx } from 'react/jsx-runtime';
3
- import { useState, useRef, useEffect } from 'react';
2
+ import { jsx, jsxs, Fragment } from 'react/jsx-runtime';
3
+ import { useId, useState, useRef, useEffect } from 'react';
4
4
  import '@inera/ids-design/components/header-1177-admin/header-1177-admin-avatar.css';
5
5
  import clsx from 'clsx';
6
6
  import { useHeaderContext } from '../utils/contexts/HeaderContext.js';
7
7
 
8
- const IDSHeader1177AdminAvatar = ({ username = "", unit = "", persistent = false, children }) => {
8
+ const IDSHeader1177AdminAvatar = ({ username, unit, expanded = false, children, persistent = false, ...props }) => {
9
+ const dropdownId = useId();
10
+ const [isExpanded, setIsExpanded] = useState(expanded);
9
11
  const headerContext = useHeaderContext();
10
- const [expanded, setExpanded] = useState(false);
11
- const avatarRef = useRef(null);
12
- const toggleExpanded = () => {
13
- setExpanded(prev => !prev);
14
- };
12
+ const containerRef = useRef(null);
13
+ const dropdownRef = useRef(null);
14
+ const toggleExpanded = () => setIsExpanded(prev => !prev);
15
15
  const handleClickOutside = (event) => {
16
- if (!persistent && avatarRef.current && !avatarRef.current.contains(event.target)) {
17
- setExpanded(false);
16
+ if (!persistent && containerRef.current && !containerRef.current.contains(event.target)) {
17
+ setIsExpanded(false);
18
18
  }
19
19
  };
20
20
  useEffect(() => {
21
- document.addEventListener("click", handleClickOutside);
21
+ document.addEventListener("mousedown", handleClickOutside);
22
22
  return () => {
23
- document.removeEventListener("click", handleClickOutside);
23
+ document.removeEventListener("mousedown", handleClickOutside);
24
24
  };
25
25
  }, [persistent]);
26
- return (jsxs("div", { ref: avatarRef, className: clsx("ids-header-1177-admin__avatar", {
27
- "ids-header-1177-admin__avatar--unresponsive": headerContext?.unresponsive,
28
- "ids-header-1177-admin__avatar--expanded": expanded
29
- }), children: [jsxs("button", { onClick: toggleExpanded, "aria-expanded": expanded, className: "ids-header-1177-admin__avatar-box", children: [jsx("div", { className: "ids-header-1177-admin__avatar-icon" }), jsxs("div", { className: "ids-header-1177-admin__avatar-content", children: [jsx("div", { className: "ids-header-1177-admin__avatar-content__name", title: username, children: username }), unit && (jsx("div", { className: "ids-header-1177-admin__avatar-content__unit", title: unit, children: unit }))] }), jsx("div", { className: clsx("ids-header-1177-admin__avatar-chevron", {
30
- "ids-header-1177-admin__avatar-chevron--expanded": expanded
31
- }) })] }), jsx("div", { className: "ids-header-1177-admin__avatar-dropdown", children: children })] }));
26
+ const handleLinkClick = () => {
27
+ setIsExpanded(false);
28
+ };
29
+ useEffect(() => {
30
+ if (!persistent && isExpanded) {
31
+ const links = dropdownRef.current?.querySelectorAll("a") || [];
32
+ links.forEach(link => link.addEventListener("click", handleLinkClick));
33
+ return () => {
34
+ links.forEach(link => link.removeEventListener("click", handleLinkClick));
35
+ };
36
+ }
37
+ }, [isExpanded, persistent]);
38
+ return (jsx("div", { ref: containerRef, className: clsx("ids-header-1177-admin-avatar", {
39
+ "ids-header-1177-admin-avatar--unresponsive": headerContext?.unresponsive
40
+ }), ...props, children: jsxs("div", { className: "ids-header-1177-admin-avatar__menu-wrapper", children: [jsxs("button", { className: clsx("ids-header-1177-admin-avatar__button", {
41
+ "ids-header-1177-admin-avatar__button--expanded": isExpanded
42
+ }), onClick: toggleExpanded, "aria-controls": dropdownId, "aria-expanded": isExpanded, children: [jsx("div", { className: "ids-header-1177-admin-avatar__name", title: username, children: username }), unit && (jsxs(Fragment, { children: [jsx("span", { className: "ids-header-1177-admin-avatar__unit-separator", children: "|" }), jsx("span", { className: "ids-header-1177-admin-avatar__unit", title: unit, children: unit })] }))] }), jsx("div", { ref: dropdownRef, id: dropdownId, className: clsx("ids-header-1177-admin-avatar__menu", {
43
+ "ids-header-1177-admin-avatar__menu--expanded": isExpanded
44
+ }), children: children && jsx("div", { className: "ids-header-1177-admin-avatar__menu-links", children: children }) })] }) }));
32
45
  };
33
46
 
34
47
  export { IDSHeader1177AdminAvatar };
@@ -7,12 +7,12 @@ import { useHeaderContext } from '../utils/contexts/HeaderContext.js';
7
7
 
8
8
  const IDSHeader1177AdminItem = ({ mobile = false, href = "", text = "", icon, link, onClick, ...props }) => {
9
9
  const headerContext = useHeaderContext();
10
- const classNames = clsx("ids-header-1177-admin__items__item", {
11
- "ids-header-1177-admin__items__item--unresponsive": headerContext?.unresponsive,
12
- "ids-header-1177-admin__items__item--mobile": mobile
10
+ const classNames = clsx("ids-header-1177-admin-item", {
11
+ "ids-header-1177-admin-item--unresponsive": headerContext?.unresponsive,
12
+ "ids-header-1177-admin-item--mobile": mobile
13
13
  });
14
14
  const renderContent = () => {
15
- return (jsxs(Fragment, { children: [jsx("div", { className: "ids-header-1177-admin__items__item-icon", "aria-label": text, children: jsx("span", { className: `ids-icon-${icon}` }) }), jsx("div", { className: "ids-header-1177-admin__items__item-text", children: text })] }));
15
+ return (jsxs(Fragment, { children: [jsx("div", { className: "ids-header-1177-admin-item-icon", "aria-hidden": "true", children: jsx("span", { className: `ids-icon-${icon}` }) }), jsx("div", { className: "ids-header-1177-admin-item-text", children: text })] }));
16
16
  };
17
17
  if (link && isValidElement(link)) {
18
18
  return cloneElement(link, {
@@ -0,0 +1,11 @@
1
+ import React, { ReactNode } from "react";
2
+ import "@inera/ids-design/components/header-1177-admin/header-1177-admin-menu-mobile.css";
3
+ interface IDSHeader1177AdminMenuMobileProps {
4
+ srLabel?: string;
5
+ persistent?: boolean;
6
+ children?: ReactNode;
7
+ onExpanded?: () => void;
8
+ onClosed?: () => void;
9
+ }
10
+ export declare const IDSHeader1177AdminMenuMobile: React.FC<IDSHeader1177AdminMenuMobileProps>;
11
+ export {};
@@ -0,0 +1,53 @@
1
+ "use client";
2
+ import { jsxs, jsx } from 'react/jsx-runtime';
3
+ import { useState, useRef, useEffect } from 'react';
4
+ import '@inera/ids-design/components/header-1177-admin/header-1177-admin-menu-mobile.css';
5
+ import { useHeaderContext } from '../utils/contexts/HeaderContext.js';
6
+ import clsx from 'clsx';
7
+
8
+ const IDSHeader1177AdminMenuMobile = ({ srLabel = "Meny", persistent = false, children, onExpanded, onClosed, ...props }) => {
9
+ const [isExpanded, setIsExpanded] = useState(false);
10
+ const headerContext = useHeaderContext();
11
+ const containerRef = useRef(null);
12
+ const menuRef = useRef(null);
13
+ const handleLinkClick = () => {
14
+ setIsExpanded(false);
15
+ onClosed?.();
16
+ };
17
+ const handleClickOutside = (event) => {
18
+ if (!persistent && containerRef.current && !containerRef.current.contains(event.target)) {
19
+ setIsExpanded(false);
20
+ onClosed?.();
21
+ }
22
+ };
23
+ useEffect(() => {
24
+ document.addEventListener("click", handleClickOutside);
25
+ return () => {
26
+ document.removeEventListener("click", handleClickOutside);
27
+ };
28
+ }, [persistent]);
29
+ useEffect(() => {
30
+ if (!persistent && isExpanded) {
31
+ const links = menuRef.current?.querySelectorAll("a") || [];
32
+ links.forEach(link => link.addEventListener("click", handleLinkClick));
33
+ return () => {
34
+ links.forEach(link => link.removeEventListener("click", handleLinkClick));
35
+ };
36
+ }
37
+ }, [isExpanded, persistent]);
38
+ const toggleExpanded = () => {
39
+ const newExpanded = !isExpanded;
40
+ setIsExpanded(newExpanded);
41
+ if (newExpanded) {
42
+ onExpanded?.();
43
+ }
44
+ else {
45
+ onClosed?.();
46
+ }
47
+ };
48
+ return (jsxs("div", { className: "ids-header-1177-admin-menu-mobile-component", ref: containerRef, ...props, children: [jsx("button", { onClick: toggleExpanded, "aria-expanded": isExpanded, "aria-label": srLabel, className: clsx("ids-header-1177-admin-menu-mobile", {
49
+ "ids-header-1177-admin-menu-mobile--unresponsive": headerContext?.unresponsive
50
+ }), children: jsx("div", { className: "ids-hamburger", children: jsx("span", { className: "ids-hamburger__lines" }) }) }), isExpanded && (jsx("div", { className: "ids-header-1177-admin-menu-mobile__items", ref: menuRef, children: children }))] }));
51
+ };
52
+
53
+ export { IDSHeader1177AdminMenuMobile };
@@ -1,11 +1,11 @@
1
1
  "use client";
2
2
  import { jsxs, jsx } from 'react/jsx-runtime';
3
- import React__default, { useState, useRef, useEffect } from 'react';
3
+ import React, { useState, useRef, useEffect } from 'react';
4
4
  import '@inera/ids-design/components/header-1177-admin/header-1177-admin-nav-item.css';
5
5
  import clsx from 'clsx';
6
6
  import { useHeaderContext } from '../utils/contexts/HeaderContext.js';
7
7
 
8
- const IDSHeader1177AdminNavItem = ({ active = false, expanded = false, label = "", col1, col2, col3, col4, children }) => {
8
+ const IDSHeader1177AdminNavItem = ({ active = false, expanded = false, label = "", col1, col2, col3, col4, children, ...props }) => {
9
9
  const headerContext = useHeaderContext();
10
10
  const [isExpanded, setIsExpanded] = useState(expanded);
11
11
  const containerRef = useRef(null);
@@ -22,21 +22,20 @@ const IDSHeader1177AdminNavItem = ({ active = false, expanded = false, label = "
22
22
  };
23
23
  }, [expanded]);
24
24
  const renderLink = (link) => {
25
- return React__default.isValidElement(link)
26
- ? React__default.cloneElement(link, {
25
+ return React.isValidElement(link)
26
+ ? React.cloneElement(link, {
27
27
  activeIcon: true,
28
28
  block: true,
29
- colorPreset: 1,
29
+ menu: true,
30
30
  onClick: () => setIsExpanded(false)
31
31
  })
32
32
  : link;
33
33
  };
34
- const renderDropdown = () => isExpanded && (jsx("div", { style: { marginTop: "0.125rem" }, id: "ids-header-1177-admin-nav-dropdown", className: "ids-header-1177-admin__items__item-dropdown", children: jsxs("div", { className: "ids-header-1177-admin__items__item-dropdown__content", children: [jsx("div", { className: "ids-header-1177-admin__items__item-dropdown__content-col-1", children: col1?.map((link, idx) => (jsx("div", { className: "ids-header-1177-admin__items-wrapper", children: renderLink(link) }, idx))) }), jsx("div", { className: "ids-header-1177-admin__items__item-dropdown__content-col-2", children: col2?.map((link, idx) => (jsx("div", { className: "ids-header-1177-admin__items-wrapper", children: renderLink(link) }, idx))) }), jsx("div", { className: "ids-header-1177-admin__items__item-dropdown__content-col-3", children: col3?.map((link, idx) => (jsx("div", { className: "ids-header-1177-admin__items-wrapper", children: renderLink(link) }, idx))) }), jsx("div", { className: "ids-header-1177-admin__items__item-dropdown__content-col-4", children: col4?.map((link, idx) => (jsx("div", { className: "ids-header-1177-admin__items-wrapper", children: renderLink(link) }, idx))) })] }) }));
35
- return (jsxs("div", { ref: containerRef, className: clsx("ids-header-1177-admin__nav-item", {
36
- "ids-header-1177-admin__nav-item--fluid": headerContext?.fluid,
37
- "ids-header-1177-admin__nav-item--unresponsive": headerContext?.unresponsive,
38
- "ids-header-1177-admin__nav-item--active": active || isExpanded
39
- }), children: [label ? (jsx("button", { onClick: () => setIsExpanded(prev => !prev), "aria-expanded": isExpanded, "aria-controls": "ids-header-1177-admin-nav-dropdown", children: label })) : (children), renderDropdown()] }));
34
+ const renderDropdown = () => isExpanded && (jsx("div", { id: "ids-header-1177-admin-nav-dropdown", className: "ids-header-1177-admin-nav-item__menu ids-header-1177-admin-nav-item__menu--expanded", children: jsxs("div", { className: "ids-header-1177-admin-nav-item__menu__content", children: [jsx("div", { className: "ids-header-1177-admin-nav-item__menu__content-col-1", children: col1?.map((link, idx) => (jsx("div", { className: "ids-header-1177-admin-nav__menu-item-wrapper", children: renderLink(link) }, idx))) }), jsx("div", { className: "ids-header-1177-admin-nav-item__menu__content-col-2", children: col2?.map((link, idx) => (jsx("div", { className: "ids-header-1177-admin-nav__menu-item-wrapper", children: renderLink(link) }, idx))) }), jsx("div", { className: "ids-header-1177-admin-nav-item__menu__content-col-3", children: col3?.map((link, idx) => (jsx("div", { className: "ids-header-1177-admin-nav__menu-item-wrapper", children: renderLink(link) }, idx))) }), jsx("div", { className: "ids-header-1177-admin-nav-item__menu__content-col-4", children: col4?.map((link, idx) => (jsx("div", { className: "ids-header-1177-admin-nav__menu-item-wrapper", children: renderLink(link) }, idx))) })] }) }));
35
+ return (jsxs("div", { ref: containerRef, className: clsx("ids-header-1177-admin-nav-item", {
36
+ "ids-header-1177-admin-nav-item--unresponsive": headerContext?.unresponsive,
37
+ "ids-header-1177-admin-nav-item--active": active || isExpanded
38
+ }), ...props, children: [label ? (jsx("button", { onClick: () => setIsExpanded(prev => !prev), "aria-expanded": isExpanded, "aria-controls": "ids-header-1177-admin-nav-dropdown", children: label })) : (children), renderDropdown()] }));
40
39
  };
41
40
 
42
41
  export { IDSHeader1177AdminNavItem };
@@ -4,12 +4,11 @@ import '@inera/ids-design/components/header-1177-admin/header-1177-admin-nav.css
4
4
  import clsx from 'clsx';
5
5
  import { useHeaderContext } from '../utils/contexts/HeaderContext.js';
6
6
 
7
- const IDSHeader1177AdminNav = ({ children }) => {
7
+ const IDSHeader1177AdminNav = ({ children, ...props }) => {
8
8
  const headerContext = useHeaderContext();
9
- return (jsx("nav", { className: clsx("ids-header-1177-admin__nav", {
10
- "ids-header-1177-admin__nav--fluid": headerContext?.fluid,
11
- "ids-header-1177-admin__nav--unresponsive": headerContext?.unresponsive
12
- }), children: jsx("div", { className: "ids-header-1177-admin__nav-inner", children: children }) }));
9
+ return (jsx("nav", { className: clsx("ids-header-1177-admin-nav", {
10
+ "ids-header-1177-admin-nav--unresponsive": headerContext?.unresponsive
11
+ }), ...props, children: jsx("div", { className: "ids-header-1177-admin-nav__inner", children: jsx("div", { className: "ids-header-1177-admin-nav__items", children: children }) }) }));
13
12
  };
14
13
 
15
14
  export { IDSHeader1177AdminNav };
@@ -1,16 +1,13 @@
1
1
  import React, { AnchorHTMLAttributes, ReactNode } from "react";
2
2
  import "@inera/ids-design/components/header-1177-admin/header-1177-admin.css";
3
3
  interface IDSHeader1177AdminProps extends React.HTMLAttributes<HTMLDivElement> {
4
- fluid?: boolean;
5
4
  unresponsive?: boolean;
6
- srLogoLabel?: string;
5
+ srLogoText?: string;
7
6
  brandTextTop?: string;
8
7
  brandText?: string;
9
8
  brandTextBottom?: string;
10
9
  logoHref?: string;
11
10
  logoProps?: AnchorHTMLAttributes<HTMLAnchorElement>;
12
- srMobileMenuLabel?: string;
13
- mobileMenuExpanded?: boolean;
14
11
  logo?: ReactNode;
15
12
  avatar?: ReactNode;
16
13
  mobileMenu?: ReactNode;
@@ -1,29 +1,16 @@
1
1
  "use client";
2
2
  import { jsx, jsxs } from 'react/jsx-runtime';
3
- import { useState } from 'react';
4
3
  import '@inera/ids-design/components/header-1177-admin/header-1177-admin.css';
5
4
  import clsx from 'clsx';
6
5
  import { HeaderProvider } from '../utils/contexts/HeaderContext.js';
7
6
 
8
- const IDSHeader1177Admin = ({ fluid = false, unresponsive = false, srLogoLabel = "Logotyp", brandTextTop = "", brandText = "", brandTextBottom = "", logoHref = "", logoProps = {}, srMobileMenuLabel = "Meny", mobileMenuExpanded: initialExpanded = false, logo, avatar, mobileMenu, items, skipToContentLink, className, children }) => {
9
- const [mobileExpanded, setMobileExpanded] = useState(initialExpanded);
7
+ const IDSHeader1177Admin = ({ unresponsive = false, srLogoText = "Logotyp", brandTextTop = "", brandText = "", brandTextBottom = "", logoHref = "", logoProps = {}, logo, avatar, mobileMenu, items, skipToContentLink, className, children, ...props }) => {
10
8
  const renderLogo = () => {
11
- return logo ? (logo) : (jsx("a", { className: "ids-header-1177-admin__logo-link", href: logoHref, "aria-label": srLogoLabel, ...logoProps }));
9
+ return logo ? (logo) : (jsx("a", { className: "ids-header-1177-admin__logo-link", href: logoHref, "aria-label": srLogoText, ...logoProps }));
12
10
  };
13
- const renderHamburgerButton = () => {
14
- if (!mobileMenu)
15
- return null;
16
- return (jsx("div", { className: "ids-header-1177-admin__mobile-menu", children: jsx("button", { onClick: () => setMobileExpanded(prev => !prev), "aria-label": srMobileMenuLabel, "aria-expanded": mobileExpanded, className: "ids-header-1177-admin__mobile-menu__btn", children: jsx("div", { className: "ids-hamburger", children: jsx("div", { className: "ids-hamburger__lines" }) }) }) }));
17
- };
18
- const renderMobileMenuItems = () => {
19
- if (!mobileExpanded || !mobileMenu)
20
- return null;
21
- return jsx("div", { className: "ids-header-1177-admin__nav-mobile__menu-items", children: mobileMenu });
22
- };
23
- return (jsx(HeaderProvider, { value: { unresponsive, fluid }, children: jsxs("header", { className: clsx("ids-header-1177-admin", {
24
- "ids-header-1177-admin--unresponsive": unresponsive,
25
- "ids-header-1177-admin--fluid": fluid
26
- }, className), style: { position: "relative", zIndex: 3 }, children: [jsxs("div", { className: "ids-header-1177-admin__container", children: [skipToContentLink && (jsx("div", { className: "ids-header-1177-admin__skip-to-content", children: skipToContentLink })), jsxs("div", { className: "ids-header-1177-admin__inner", children: [jsxs("div", { className: "ids-header-1177-admin__logo-col", children: [jsx("div", { className: "ids-header-1177-admin__logo", children: renderLogo() }), jsxs("div", { className: "ids-header-1177-admin__brand", children: [brandTextTop && (jsx("div", { className: "ids-header-1177-admin__brand-text---supplement", children: brandTextTop })), brandText && jsx("div", { className: "ids-header-1177-admin__brand-text", children: brandText }), brandTextBottom && (jsx("div", { className: "ids-header-1177-admin__brand-text---supplement", children: brandTextBottom }))] })] }), jsx("div", { className: "ids-header-1177-admin__items", children: jsxs("div", { className: "ids-header-1177-admin__items-inner", children: [avatar, items, renderHamburgerButton()] }) })] })] }), renderMobileMenuItems(), children] }) }));
11
+ return (jsx(HeaderProvider, { value: { unresponsive }, children: jsxs("header", { className: clsx("ids-header-1177-admin", {
12
+ "ids-header-1177-admin--unresponsive": unresponsive
13
+ }, className), style: { position: "relative", zIndex: 3 }, ...props, children: [skipToContentLink && jsx("div", { className: "ids-header-1177-admin__skip-to-content", children: skipToContentLink }), jsxs("div", { className: "ids-header-1177-admin__main", children: [jsxs("div", { className: "ids-header-1177-admin__main-left", children: [jsx("div", { className: "ids-header-1177-admin__logo", children: renderLogo() }), jsxs("div", { className: "ids-header-1177-admin__brand", children: [brandTextTop && jsx("div", { className: "ids-header-1177-admin__brand-text---supplement", children: brandTextTop }), brandText && jsx("div", { className: "ids-header-1177-admin__brand-text", children: brandText }), brandTextBottom && jsx("div", { className: "ids-header-1177-admin__brand-text---supplement", children: brandTextBottom })] })] }), jsxs("div", { className: "ids-header-1177-admin__main-right", children: [items, avatar, mobileMenu] })] }), children] }) }));
27
14
  };
28
15
 
29
16
  export { IDSHeader1177Admin };
@@ -3,6 +3,9 @@ import "@inera/ids-design/components/header-1177-pro/header-1177-pro-avatar-mobi
3
3
  interface IDSHeader1177ProAvatarMobileProps {
4
4
  username?: string;
5
5
  unit?: string;
6
+ expanded?: boolean;
7
+ loginLink?: ReactNode;
8
+ persistent?: boolean;
6
9
  children?: ReactNode;
7
10
  }
8
11
  export declare const IDSHeader1177ProAvatarMobile: React.FC<IDSHeader1177ProAvatarMobileProps>;
@@ -1,9 +1,34 @@
1
1
  "use client";
2
- import { jsx, jsxs, Fragment } from 'react/jsx-runtime';
2
+ import { jsxs, jsx } from 'react/jsx-runtime';
3
+ import { useId, useState, useRef, useEffect } from 'react';
3
4
  import '@inera/ids-design/components/header-1177-pro/header-1177-pro-avatar-mobile.css';
5
+ import { useHeaderContext } from '../utils/contexts/HeaderContext.js';
6
+ import clsx from 'clsx';
4
7
 
5
- const IDSHeader1177ProAvatarMobile = ({ username = "", unit = "", children }) => {
6
- return (jsx("li", { className: "ids-header-1177-pro__avatar-mobile", children: username || unit ? (jsxs(Fragment, { children: [jsxs("div", { className: "ids-header-1177-pro__avatar-mobile__user-logged-in", children: [jsx("div", { className: "ids-header-1177-pro__avatar-mobile__username", children: username }), unit && jsx("div", { className: "ids-header-1177-pro__avatar-mobile__unit", children: unit })] }), children] })) : (jsx(Fragment, { children: children })) }));
8
+ const IDSHeader1177ProAvatarMobile = ({ username = "", unit = "", expanded = false, loginLink, persistent = false, children, ...props }) => {
9
+ const dropdownId = useId();
10
+ const [isExpanded, setIsExpanded] = useState(expanded);
11
+ const headerContext = useHeaderContext();
12
+ const containerRef = useRef(null);
13
+ const toggleExpanded = () => setIsExpanded(prev => !prev);
14
+ const handleClickOutside = (event) => {
15
+ if (!persistent && containerRef.current && !containerRef.current.contains(event.target)) {
16
+ setIsExpanded(false);
17
+ }
18
+ };
19
+ useEffect(() => {
20
+ document.addEventListener("click", handleClickOutside);
21
+ return () => {
22
+ document.removeEventListener("click", handleClickOutside);
23
+ };
24
+ }, [persistent]);
25
+ return (!headerContext?.hideRegionPicker && (jsxs("div", { className: clsx("ids-header-1177-pro-avatar-mobile", {
26
+ "ids-header-1177-pro-avatar-mobile--unresponsive": headerContext?.unresponsive
27
+ }), ref: containerRef, ...props, children: [!username && loginLink && jsx("span", { className: "ids-header-1177-pro-avatar-mobile__login-link", children: loginLink }), username && (jsxs("div", { className: "ids-header-1177-pro-avatar-mobile__menu-wrapper", children: [jsx("button", { className: clsx("ids-header-1177-pro-avatar-mobile__button", {
28
+ "ids-header-1177-pro-avatar-mobile__button--expanded": isExpanded
29
+ }), onClick: toggleExpanded, "aria-controls": dropdownId, "aria-expanded": isExpanded, children: jsx("div", { className: "ids-header-1177-pro-avatar-mobile-content__name", title: username, children: username }) }), jsxs("div", { id: dropdownId, className: clsx("ids-header-1177-pro-avatar-mobile__menu", {
30
+ "ids-header-1177-pro-avatar-mobile__menu--expanded": isExpanded
31
+ }), children: [unit && jsx("div", { className: "ids-header-1177-pro-avatar-mobile__unit", children: unit }), jsx("div", { className: "ids-header-1177-pro-avatar-mobile__menu-links", children: children })] })] }))] })));
7
32
  };
8
33
 
9
34
  export { IDSHeader1177ProAvatarMobile };
@@ -1,10 +1,11 @@
1
1
  import React, { ReactNode } from "react";
2
2
  import "@inera/ids-design/components/header-1177-pro/header-1177-pro-avatar.css";
3
3
  interface IDSHeader1177ProAvatarProps {
4
- username?: string;
4
+ username: string;
5
5
  unit?: string;
6
- persistent?: boolean;
6
+ expanded?: boolean;
7
7
  children?: ReactNode;
8
+ persistent?: boolean;
8
9
  }
9
10
  export declare const IDSHeader1177ProAvatar: React.FC<IDSHeader1177ProAvatarProps>;
10
11
  export {};
@@ -1,34 +1,47 @@
1
1
  "use client";
2
- import { jsxs, jsx } from 'react/jsx-runtime';
3
- import { useState, useRef, useEffect } from 'react';
2
+ import { jsx, jsxs } from 'react/jsx-runtime';
3
+ import { useId, useState, useRef, useEffect } from 'react';
4
4
  import '@inera/ids-design/components/header-1177-pro/header-1177-pro-avatar.css';
5
5
  import clsx from 'clsx';
6
6
  import { useHeaderContext } from '../utils/contexts/HeaderContext.js';
7
7
 
8
- const IDSHeader1177ProAvatar = ({ username = "", unit = "", persistent = false, children }) => {
8
+ const IDSHeader1177ProAvatar = ({ username, unit, expanded = false, children, persistent = false, ...props }) => {
9
+ const dropdownId = useId();
10
+ const [isExpanded, setIsExpanded] = useState(expanded);
9
11
  const headerContext = useHeaderContext();
10
- const [expanded, setExpanded] = useState(false);
11
- const avatarRef = useRef(null);
12
- const toggleExpanded = () => {
13
- setExpanded(prev => !prev);
12
+ const containerRef = useRef(null);
13
+ const dropdownRef = useRef(null);
14
+ const toggleExpanded = () => setIsExpanded(prev => !prev);
15
+ const handleClickOutside = (event) => {
16
+ if (!persistent && containerRef.current && !containerRef.current.contains(event.target)) {
17
+ setIsExpanded(false);
18
+ }
14
19
  };
15
20
  useEffect(() => {
16
- const handleClickOutside = (event) => {
17
- if (avatarRef.current && !avatarRef.current.contains(event.target) && !persistent) {
18
- setExpanded(false);
19
- }
20
- };
21
21
  document.addEventListener("mousedown", handleClickOutside);
22
22
  return () => {
23
23
  document.removeEventListener("mousedown", handleClickOutside);
24
24
  };
25
25
  }, [persistent]);
26
- return (jsxs("div", { ref: avatarRef, className: clsx("ids-header-1177-pro__avatar", {
27
- "ids-header-1177-pro__avatar--unresponsive": headerContext?.unresponsive,
28
- "ids-header-1177-pro__avatar--expanded": expanded
29
- }), children: [jsxs("button", { onClick: toggleExpanded, "aria-controls": "ids-header-1177-pro__dropdown", "aria-expanded": expanded, className: "ids-header-1177-pro__avatar-box", children: [jsx("div", { className: "ids-header-1177-pro__avatar-icon" }), jsxs("div", { className: "ids-header-1177-pro__avatar-content", children: [jsx("div", { className: "ids-header-1177-pro__avatar-content__name", title: username, children: username }), jsx("div", { className: "ids-header-1177-pro__avatar-content__unit", title: unit, children: unit })] }), jsx("div", { className: clsx("ids-header-1177-pro__avatar-chevron", {
30
- "ids-header-1177-pro__avatar-chevron--expanded": expanded
31
- }) })] }), jsx("div", { id: "ids-header-1177-pro__dropdown", className: "ids-header-1177-pro__avatar-dropdown", children: children })] }));
26
+ const handleLinkClick = () => {
27
+ setIsExpanded(false);
28
+ };
29
+ useEffect(() => {
30
+ if (!persistent && isExpanded) {
31
+ const links = dropdownRef.current?.querySelectorAll("a") || [];
32
+ links.forEach(link => link.addEventListener("click", handleLinkClick));
33
+ return () => {
34
+ links.forEach(link => link.removeEventListener("click", handleLinkClick));
35
+ };
36
+ }
37
+ }, [isExpanded, persistent]);
38
+ return (jsx("div", { ref: containerRef, className: clsx("ids-header-1177-pro-avatar", {
39
+ "ids-header-1177-pro-avatar--unresponsive": headerContext?.unresponsive
40
+ }), ...props, children: jsxs("div", { className: "ids-header-1177-pro-avatar__menu-wrapper", children: [jsxs("button", { className: clsx("ids-header-1177-pro-avatar__button", {
41
+ "ids-header-1177-pro-avatar__button--expanded": isExpanded
42
+ }), onClick: toggleExpanded, "aria-controls": dropdownId, "aria-expanded": isExpanded, children: [jsx("div", { className: "ids-header-1177-pro-avatar__name", title: username, children: username }), unit && (jsx("div", { className: "ids-header-1177-pro-avatar__unit", title: unit, children: unit }))] }), jsx("div", { ref: dropdownRef, id: dropdownId, className: clsx("ids-header-1177-pro-avatar__menu", {
43
+ "ids-header-1177-pro-avatar__menu--expanded": isExpanded
44
+ }), children: children && jsx("div", { className: "ids-header-1177-pro-avatar__menu-links", children: children }) })] }) }));
32
45
  };
33
46
 
34
47
  export { IDSHeader1177ProAvatar };
@@ -7,11 +7,11 @@ import { useHeaderContext } from '../utils/contexts/HeaderContext.js';
7
7
 
8
8
  const IDSHeader1177ProItem = ({ mobile = false, icon = "", text = "", href = "", link, onClick, ...props }) => {
9
9
  const headerContext = useHeaderContext();
10
- const classNames = clsx("ids-header-1177-pro__items__item", {
11
- "ids-header-1177-pro__items__item--unresponsive": headerContext?.unresponsive,
12
- "ids-header-1177-pro__items__item--mobile": mobile
10
+ const classNames = clsx("ids-header-1177-pro-item", {
11
+ "ids-header-1177-pro-item--unresponsive": headerContext?.unresponsive,
12
+ "ids-header-1177-pro-item--mobile": mobile
13
13
  });
14
- const renderContent = () => (jsxs(Fragment, { children: [jsx("div", { className: "ids-header-1177-pro__items__item-icon", "aria-label": text, children: icon && jsx("span", { className: `ids-icon-${icon}` }) }), jsx("div", { className: "ids-header-1177-pro__items__item-text", children: text })] }));
14
+ const renderContent = () => (jsxs(Fragment, { children: [jsx("div", { className: "ids-header-1177-pro-item-icon", "aria-hidden": "true", children: icon && jsx("span", { className: `ids-icon-${icon}` }) }), jsx("div", { className: "ids-header-1177-pro-item-text", children: text })] }));
15
15
  if (link && isValidElement(link)) {
16
16
  return cloneElement(link, {
17
17
  ...props,
@@ -20,7 +20,7 @@ const IDSHeader1177ProItem = ({ mobile = false, icon = "", text = "", href = "",
20
20
  children: renderContent()
21
21
  });
22
22
  }
23
- return onClick ? (jsx("button", { className: classNames, onClick: onClick, style: { cursor: "pointer", padding: 0, margin: 0 }, ...props, children: renderContent() })) : (jsx("a", { className: classNames, href: href, style: { position: "relative", textDecoration: "none" }, ...props, children: renderContent() }));
23
+ return onClick ? (jsx("button", { className: classNames, onClick: onClick, style: { cursor: "pointer", padding: 0 }, ...props, children: renderContent() })) : (jsx("a", { className: classNames, href: href, style: { position: "relative", textDecoration: "none" }, ...props, children: renderContent() }));
24
24
  };
25
25
 
26
26
  export { IDSHeader1177ProItem };
@@ -1,11 +1,11 @@
1
1
  import React, { ReactNode } from "react";
2
- import "@inera/ids-design/components/header-1177-pro/header-1177-pro-nav-menu-mobile.css";
3
- interface IDSHeader1177ProNavMenuMobileProps {
2
+ import "@inera/ids-design/components/header-1177-pro/header-1177-pro-menu-mobile.css";
3
+ interface IDSHeader1177ProMenuMobileProps {
4
4
  label?: string;
5
5
  persistent?: boolean;
6
6
  children?: ReactNode;
7
7
  onExpanded?: () => void;
8
8
  onClosed?: () => void;
9
9
  }
10
- export declare const IDSHeader1177ProNavMenuMobile: React.FC<IDSHeader1177ProNavMenuMobileProps>;
10
+ export declare const IDSHeader1177ProMenuMobile: React.FC<IDSHeader1177ProMenuMobileProps>;
11
11
  export {};