@inera/ids-react 8.2.0 → 9.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 (370) hide show
  1. package/components/accordion/accordion-base.d.ts +18 -0
  2. package/components/accordion/accordion-base.js +33 -0
  3. package/components/accordion/accordion.d.ts +5 -4
  4. package/components/accordion/accordion.js +16 -35
  5. package/components/alert/alert-base.d.ts +21 -0
  6. package/components/alert/alert-base.js +29 -0
  7. package/components/alert/alert.d.ts +3 -19
  8. package/components/alert/alert.js +8 -18
  9. package/components/alert/global-alert-base.d.ts +15 -0
  10. package/components/alert/global-alert-base.js +21 -0
  11. package/components/alert/global-alert.d.ts +7 -0
  12. package/components/alert/global-alert.js +19 -0
  13. package/components/badge/badge.js +2 -2
  14. package/components/breadcrumbs/breadcrumbs.js +2 -2
  15. package/components/{button-group → button}/button-group.js +2 -2
  16. package/components/button/button.js +3 -3
  17. package/components/card/card.js +3 -3
  18. package/components/carousel/carousel-item.d.ts +5 -4
  19. package/components/carousel/carousel-item.js +8 -6
  20. package/components/carousel/carousel.d.ts +4 -1
  21. package/components/carousel/carousel.js +24 -39
  22. package/components/{pagination/data-pagination → data-pagination}/data-pagination.d.ts +2 -6
  23. package/components/data-pagination/data-pagination.js +12 -0
  24. package/components/date-label/date-label.js +2 -2
  25. package/components/dialog/dialog-base.d.ts +21 -0
  26. package/components/dialog/dialog-base.js +29 -0
  27. package/components/dialog/dialog.d.ts +14 -17
  28. package/components/dialog/dialog.js +36 -36
  29. package/components/dropdown/dropdown-base.d.ts +18 -0
  30. package/components/dropdown/dropdown-base.js +42 -0
  31. package/components/dropdown/dropdown-content-button.d.ts +0 -1
  32. package/components/dropdown/dropdown-content-button.js +0 -1
  33. package/components/dropdown/dropdown-content-link.d.ts +2 -3
  34. package/components/dropdown/dropdown-content-link.js +3 -10
  35. package/components/dropdown/dropdown.d.ts +11 -13
  36. package/components/dropdown/dropdown.js +34 -53
  37. package/components/footer-1177/footer-1177.d.ts +6 -7
  38. package/components/footer-1177/footer-1177.js +8 -5
  39. package/components/footer-1177-admin/footer-1177-admin.d.ts +6 -7
  40. package/components/footer-1177-admin/footer-1177-admin.js +9 -6
  41. package/components/footer-1177-pro/footer-1177-pro.d.ts +6 -7
  42. package/components/footer-1177-pro/footer-1177-pro.js +9 -6
  43. package/components/footer-inera/footer-inera.d.ts +6 -7
  44. package/components/footer-inera/footer-inera.js +9 -6
  45. package/components/footer-inera-admin/footer-inera-admin.d.ts +6 -7
  46. package/components/footer-inera-admin/footer-inera-admin.js +9 -6
  47. package/components/form/check-button/check-button.d.ts +5 -6
  48. package/components/form/check-button/check-button.js +5 -10
  49. package/components/form/checkbox/checkbox-base.d.ts +19 -0
  50. package/components/form/checkbox/checkbox-base.js +29 -0
  51. package/components/form/checkbox/checkbox-group-base.d.ts +12 -0
  52. package/components/form/checkbox/checkbox-group-base.js +13 -0
  53. package/components/form/checkbox/checkbox-group.d.ts +4 -5
  54. package/components/form/checkbox/checkbox-group.js +26 -30
  55. package/components/form/checkbox/checkbox.d.ts +3 -3
  56. package/components/form/checkbox/checkbox.js +17 -41
  57. package/components/form/darkmode-toggle/darkmode-toggle.d.ts +11 -0
  58. package/components/form/darkmode-toggle/darkmode-toggle.js +13 -0
  59. package/components/form/datepicker/datepicker.d.ts +11 -4
  60. package/components/form/datepicker/datepicker.js +65 -27
  61. package/components/form/error-message/error-message.d.ts +1 -2
  62. package/components/form/error-message/error-message.js +2 -4
  63. package/components/form/form-hooks/useGroupValidity.d.ts +4 -1
  64. package/components/form/form-hooks/useGroupValidity.js +7 -2
  65. package/components/form/form-hooks/useInputValidity.d.ts +1 -1
  66. package/components/form/form-hooks/useInputValidity.js +9 -5
  67. package/components/form/input/input-base.d.ts +24 -0
  68. package/components/form/input/input-base.js +32 -0
  69. package/components/form/input/input.d.ts +3 -2
  70. package/components/form/input/input.js +8 -24
  71. package/components/form/radio/radio-base.d.ts +16 -0
  72. package/components/form/radio/radio-base.js +24 -0
  73. package/components/form/radio/radio-group-base.d.ts +13 -0
  74. package/components/form/radio/radio-group-base.js +10 -0
  75. package/components/form/radio/radio-group.d.ts +6 -5
  76. package/components/form/radio/radio-group.js +25 -19
  77. package/components/form/radio/radio.d.ts +9 -9
  78. package/components/form/radio/radio.js +7 -20
  79. package/components/form/radio-button/radio-button-group-base.d.ts +8 -0
  80. package/components/form/radio-button/radio-button-group-base.js +8 -0
  81. package/components/form/radio-button/radio-button-group.d.ts +4 -3
  82. package/components/form/radio-button/radio-button-group.js +18 -12
  83. package/components/form/radio-button/radio-button.d.ts +4 -5
  84. package/components/form/radio-button/radio-button.js +5 -10
  85. package/components/form/range/range-base.d.ts +18 -0
  86. package/components/form/range/range-base.js +16 -0
  87. package/components/form/range/range.d.ts +3 -6
  88. package/components/form/range/range.js +23 -23
  89. package/components/form/select/select-base.d.ts +19 -0
  90. package/components/form/select/select-base.js +24 -0
  91. package/components/form/select/select.d.ts +7 -7
  92. package/components/form/select/select.js +8 -18
  93. package/components/form/select-multiple/select-multiple-base.d.ts +27 -0
  94. package/components/form/select-multiple/select-multiple-base.js +27 -0
  95. package/components/form/select-multiple/select-multiple.d.ts +10 -7
  96. package/components/form/select-multiple/select-multiple.js +29 -54
  97. package/components/form/spinner/spinner.d.ts +3 -4
  98. package/components/form/spinner/spinner.js +3 -7
  99. package/components/form/textarea/textarea-base.d.ts +24 -0
  100. package/components/form/textarea/textarea-base.js +34 -0
  101. package/components/form/textarea/textarea.d.ts +4 -5
  102. package/components/form/textarea/textarea.js +6 -22
  103. package/components/form/time/time-base.d.ts +17 -0
  104. package/components/form/time/time-base.js +24 -0
  105. package/components/form/time/time.d.ts +8 -7
  106. package/components/form/time/time.js +5 -16
  107. package/components/form/toggle/toggle.d.ts +1 -2
  108. package/components/form/toggle/toggle.js +5 -8
  109. package/components/grid/column.d.ts +1 -1
  110. package/components/grid/column.js +6 -7
  111. package/components/grid/container.js +1 -1
  112. package/components/grid/row.js +1 -1
  113. package/components/grid-layout/grid-column.d.ts +19 -0
  114. package/components/grid-layout/grid-column.js +14 -0
  115. package/components/grid-layout/grid-container.d.ts +10 -0
  116. package/components/grid-layout/grid-container.js +17 -0
  117. package/components/grid-layout/grid-row.d.ts +8 -0
  118. package/components/grid-layout/grid-row.js +12 -0
  119. package/components/header-1177/header-1177-avatar-base.d.ts +16 -0
  120. package/components/header-1177/header-1177-avatar-base.js +24 -0
  121. package/components/header-1177/header-1177-avatar.d.ts +4 -7
  122. package/components/header-1177/header-1177-avatar.js +35 -42
  123. package/components/header-1177/header-1177-base.d.ts +18 -0
  124. package/components/header-1177/header-1177-base.js +14 -0
  125. package/components/header-1177/header-1177-item-base.d.ts +9 -0
  126. package/components/header-1177/header-1177-item-base.js +13 -0
  127. package/components/header-1177/header-1177-item.d.ts +2 -7
  128. package/components/header-1177/header-1177-item.js +6 -29
  129. package/components/header-1177/header-1177-menu-mobile-base.d.ts +12 -0
  130. package/components/header-1177/header-1177-menu-mobile-base.js +18 -0
  131. package/components/header-1177/header-1177-menu-mobile.d.ts +4 -5
  132. package/components/header-1177/header-1177-menu-mobile.js +29 -28
  133. package/components/header-1177/header-1177-nav-base.d.ts +9 -0
  134. package/components/header-1177/header-1177-nav-base.js +12 -0
  135. package/components/header-1177/header-1177-nav-item-base.d.ts +18 -0
  136. package/components/header-1177/header-1177-nav-item-base.js +31 -0
  137. package/components/header-1177/header-1177-nav-item-mobile-base.d.ts +7 -0
  138. package/components/header-1177/header-1177-nav-item-mobile-base.js +10 -0
  139. package/components/header-1177/header-1177-nav-item-mobile.d.ts +4 -8
  140. package/components/header-1177/header-1177-nav-item-mobile.js +5 -16
  141. package/components/header-1177/header-1177-nav-item.d.ts +7 -7
  142. package/components/header-1177/header-1177-nav-item.js +44 -35
  143. package/components/header-1177/header-1177-nav.d.ts +2 -4
  144. package/components/header-1177/header-1177-nav.js +5 -9
  145. package/components/header-1177/header-1177-region-picker-base.d.ts +9 -0
  146. package/components/header-1177/header-1177-region-picker-base.js +21 -0
  147. package/components/header-1177/header-1177-region-picker-mobile-base.d.ts +9 -0
  148. package/components/header-1177/header-1177-region-picker-mobile-base.js +21 -0
  149. package/components/header-1177/header-1177-region-picker-mobile.d.ts +3 -6
  150. package/components/header-1177/header-1177-region-picker-mobile.js +13 -29
  151. package/components/header-1177/header-1177-region-picker.d.ts +3 -6
  152. package/components/header-1177/header-1177-region-picker.js +15 -29
  153. package/components/header-1177/header-1177.d.ts +3 -3
  154. package/components/header-1177/header-1177.js +5 -10
  155. package/components/header-1177-admin/header-1177-admin-avatar-base.d.ts +14 -0
  156. package/components/header-1177-admin/header-1177-admin-avatar-base.js +23 -0
  157. package/components/header-1177-admin/header-1177-admin-avatar-mobile-base.d.ts +13 -0
  158. package/components/header-1177-admin/header-1177-admin-avatar-mobile-base.js +23 -0
  159. package/components/header-1177-admin/header-1177-admin-avatar-mobile.d.ts +3 -5
  160. package/components/header-1177-admin/header-1177-admin-avatar-mobile.js +27 -23
  161. package/components/header-1177-admin/header-1177-admin-avatar.d.ts +3 -5
  162. package/components/header-1177-admin/header-1177-admin-avatar.js +26 -25
  163. package/components/header-1177-admin/header-1177-admin-base.d.ts +18 -0
  164. package/components/header-1177-admin/header-1177-admin-base.js +14 -0
  165. package/components/header-1177-admin/header-1177-admin-item-base.d.ts +8 -0
  166. package/components/header-1177-admin/header-1177-admin-item-base.js +12 -0
  167. package/components/header-1177-admin/header-1177-admin-item.d.ts +3 -8
  168. package/components/header-1177-admin/header-1177-admin-item.js +5 -27
  169. package/components/header-1177-admin/header-1177-admin-menu-mobile-base.d.ts +11 -0
  170. package/components/header-1177-admin/header-1177-admin-menu-mobile-base.js +18 -0
  171. package/components/header-1177-admin/header-1177-admin-menu-mobile.d.ts +4 -5
  172. package/components/header-1177-admin/header-1177-admin-menu-mobile.js +27 -25
  173. package/components/header-1177-admin/header-1177-admin-nav-base.d.ts +7 -0
  174. package/components/header-1177-admin/header-1177-admin-nav-base.js +10 -0
  175. package/components/header-1177-admin/header-1177-admin-nav-item-base.d.ts +18 -0
  176. package/components/header-1177-admin/header-1177-admin-nav-item-base.js +31 -0
  177. package/components/header-1177-admin/header-1177-admin-nav-item-mobile-base.d.ts +7 -0
  178. package/components/header-1177-admin/header-1177-admin-nav-item-mobile-base.js +10 -0
  179. package/components/header-1177-admin/header-1177-admin-nav-item-mobile.d.ts +7 -0
  180. package/components/header-1177-admin/header-1177-admin-nav-item-mobile.js +11 -0
  181. package/components/header-1177-admin/header-1177-admin-nav-item.d.ts +6 -6
  182. package/components/header-1177-admin/header-1177-admin-nav-item.js +44 -35
  183. package/components/header-1177-admin/header-1177-admin-nav.d.ts +2 -4
  184. package/components/header-1177-admin/header-1177-admin-nav.js +4 -6
  185. package/components/header-1177-admin/header-1177-admin.d.ts +2 -3
  186. package/components/header-1177-admin/header-1177-admin.js +5 -10
  187. package/components/header-1177-pro/header-1177-pro-avatar-base.d.ts +14 -0
  188. package/components/header-1177-pro/header-1177-pro-avatar-base.js +23 -0
  189. package/components/header-1177-pro/header-1177-pro-avatar-mobile-base.d.ts +13 -0
  190. package/components/header-1177-pro/header-1177-pro-avatar-mobile-base.js +24 -0
  191. package/components/header-1177-pro/header-1177-pro-avatar-mobile.d.ts +3 -6
  192. package/components/header-1177-pro/header-1177-pro-avatar-mobile.js +23 -20
  193. package/components/header-1177-pro/header-1177-pro-avatar.d.ts +4 -6
  194. package/components/header-1177-pro/header-1177-pro-avatar.js +32 -30
  195. package/components/header-1177-pro/header-1177-pro-base.d.ts +19 -0
  196. package/components/header-1177-pro/header-1177-pro-base.js +11 -0
  197. package/components/header-1177-pro/header-1177-pro-item-base.d.ts +8 -0
  198. package/components/header-1177-pro/header-1177-pro-item-base.js +12 -0
  199. package/components/header-1177-pro/header-1177-pro-item.d.ts +3 -8
  200. package/components/header-1177-pro/header-1177-pro-item.js +5 -27
  201. package/components/header-1177-pro/header-1177-pro-menu-mobile-base.d.ts +11 -0
  202. package/components/header-1177-pro/header-1177-pro-menu-mobile-base.js +18 -0
  203. package/components/header-1177-pro/header-1177-pro-menu-mobile.d.ts +5 -6
  204. package/components/header-1177-pro/header-1177-pro-menu-mobile.js +27 -25
  205. package/components/header-1177-pro/header-1177-pro-nav-base.d.ts +10 -0
  206. package/components/header-1177-pro/header-1177-pro-nav-base.js +10 -0
  207. package/components/header-1177-pro/header-1177-pro-nav-item-base.d.ts +18 -0
  208. package/components/header-1177-pro/header-1177-pro-nav-item-base.js +31 -0
  209. package/components/header-1177-pro/header-1177-pro-nav-item-mobile-base.d.ts +7 -0
  210. package/components/header-1177-pro/header-1177-pro-nav-item-mobile-base.js +10 -0
  211. package/components/header-1177-pro/header-1177-pro-nav-item-mobile.d.ts +7 -0
  212. package/components/header-1177-pro/header-1177-pro-nav-item-mobile.js +11 -0
  213. package/components/header-1177-pro/header-1177-pro-nav-item.d.ts +6 -6
  214. package/components/header-1177-pro/header-1177-pro-nav-item.js +44 -35
  215. package/components/header-1177-pro/header-1177-pro-nav.d.ts +4 -5
  216. package/components/header-1177-pro/header-1177-pro-nav.js +5 -7
  217. package/components/header-1177-pro/header-1177-pro-region-picker-base.d.ts +9 -0
  218. package/components/header-1177-pro/header-1177-pro-region-picker-base.js +19 -0
  219. package/components/header-1177-pro/header-1177-pro-region-picker-mobile-base.d.ts +9 -0
  220. package/components/header-1177-pro/header-1177-pro-region-picker-mobile-base.js +19 -0
  221. package/components/header-1177-pro/header-1177-pro-region-picker-mobile.d.ts +3 -5
  222. package/components/header-1177-pro/header-1177-pro-region-picker-mobile.js +13 -29
  223. package/components/header-1177-pro/header-1177-pro-region-picker.d.ts +3 -5
  224. package/components/header-1177-pro/header-1177-pro-region-picker.js +15 -29
  225. package/components/header-1177-pro/header-1177-pro.d.ts +4 -5
  226. package/components/header-1177-pro/header-1177-pro.js +5 -7
  227. package/components/header-inera/header-inera-base.d.ts +14 -0
  228. package/components/header-inera/header-inera-base.js +11 -0
  229. package/components/header-inera/header-inera-item-base.d.ts +8 -0
  230. package/components/header-inera/header-inera-item-base.js +12 -0
  231. package/components/header-inera/header-inera-item.d.ts +3 -8
  232. package/components/header-inera/header-inera-item.js +5 -36
  233. package/components/header-inera/header-inera-menu-mobile-base.d.ts +11 -0
  234. package/components/header-inera/header-inera-menu-mobile-base.js +18 -0
  235. package/components/header-inera/header-inera-menu-mobile.d.ts +5 -6
  236. package/components/header-inera/header-inera-menu-mobile.js +27 -26
  237. package/components/header-inera/header-inera-nav-base.d.ts +7 -0
  238. package/components/header-inera/header-inera-nav-base.js +10 -0
  239. package/components/header-inera/header-inera-nav-item-base.d.ts +17 -0
  240. package/components/header-inera/header-inera-nav-item-base.js +26 -0
  241. package/components/header-inera/header-inera-nav-item.d.ts +7 -7
  242. package/components/header-inera/header-inera-nav-item.js +44 -34
  243. package/components/header-inera/header-inera-nav.d.ts +4 -6
  244. package/components/header-inera/header-inera-nav.js +4 -7
  245. package/components/header-inera/header-inera.d.ts +1 -3
  246. package/components/header-inera/header-inera.js +5 -7
  247. package/components/header-inera-admin/header-inera-admin-avatar-base.d.ts +14 -0
  248. package/components/header-inera-admin/header-inera-admin-avatar-base.js +23 -0
  249. package/components/header-inera-admin/header-inera-admin-avatar-mobile-base.d.ts +13 -0
  250. package/components/header-inera-admin/header-inera-admin-avatar-mobile-base.js +23 -0
  251. package/components/header-inera-admin/header-inera-admin-avatar-mobile.d.ts +3 -6
  252. package/components/header-inera-admin/header-inera-admin-avatar-mobile.js +26 -21
  253. package/components/header-inera-admin/header-inera-admin-avatar.d.ts +4 -6
  254. package/components/header-inera-admin/header-inera-admin-avatar.js +35 -31
  255. package/components/header-inera-admin/header-inera-admin-base.d.ts +15 -0
  256. package/components/header-inera-admin/header-inera-admin-base.js +20 -0
  257. package/components/header-inera-admin/header-inera-admin-item-base.d.ts +8 -0
  258. package/components/header-inera-admin/header-inera-admin-item-base.js +13 -0
  259. package/components/header-inera-admin/header-inera-admin-item.d.ts +3 -8
  260. package/components/header-inera-admin/header-inera-admin-item.js +6 -26
  261. package/components/header-inera-admin/header-inera-admin-menu-mobile-base.d.ts +11 -0
  262. package/components/header-inera-admin/header-inera-admin-menu-mobile-base.js +18 -0
  263. package/components/header-inera-admin/header-inera-admin-menu-mobile.d.ts +4 -5
  264. package/components/header-inera-admin/header-inera-admin-menu-mobile.js +27 -25
  265. package/components/header-inera-admin/header-inera-admin-nav-base.d.ts +7 -0
  266. package/components/header-inera-admin/header-inera-admin-nav-base.js +10 -0
  267. package/components/header-inera-admin/header-inera-admin-nav-item-base.d.ts +18 -0
  268. package/components/header-inera-admin/header-inera-admin-nav-item-base.js +31 -0
  269. package/components/header-inera-admin/header-inera-admin-nav-item-mobile-base.d.ts +7 -0
  270. package/components/header-inera-admin/header-inera-admin-nav-item-mobile-base.js +10 -0
  271. package/components/header-inera-admin/header-inera-admin-nav-item-mobile.d.ts +7 -0
  272. package/components/header-inera-admin/header-inera-admin-nav-item-mobile.js +11 -0
  273. package/components/header-inera-admin/header-inera-admin-nav-item.d.ts +7 -6
  274. package/components/header-inera-admin/header-inera-admin-nav-item.js +44 -34
  275. package/components/header-inera-admin/header-inera-admin-nav.d.ts +4 -6
  276. package/components/header-inera-admin/header-inera-admin-nav.js +5 -8
  277. package/components/header-inera-admin/header-inera-admin.d.ts +3 -4
  278. package/components/header-inera-admin/header-inera-admin.js +5 -16
  279. package/components/header-patient/header-patient.d.ts +2 -4
  280. package/components/header-patient/header-patient.js +6 -10
  281. package/components/{action-link → link}/action-link.js +2 -2
  282. package/components/link/box-link.d.ts +6 -0
  283. package/components/link/box-link.js +9 -0
  284. package/components/link/link.d.ts +2 -2
  285. package/components/link/link.js +3 -10
  286. package/components/list-pagination/list-pagination-links.d.ts +19 -0
  287. package/components/list-pagination/list-pagination-links.js +48 -0
  288. package/components/{pagination/list-pagination → list-pagination}/list-pagination.d.ts +3 -2
  289. package/components/{pagination/list-pagination → list-pagination}/list-pagination.js +4 -3
  290. package/components/mobile-menu/mobile-item-base.d.ts +14 -0
  291. package/components/mobile-menu/mobile-item-base.js +46 -0
  292. package/components/mobile-menu/mobile-item.d.ts +6 -0
  293. package/components/mobile-menu/mobile-item.js +26 -0
  294. package/components/mobile-menu/mobile-menu.d.ts +6 -0
  295. package/components/mobile-menu/mobile-menu.js +10 -0
  296. package/components/{navigation/content → navigation-content}/navigation-content.d.ts +1 -1
  297. package/components/{navigation/content → navigation-content}/navigation-content.js +1 -1
  298. package/components/{navigation/local → navigation-local}/navigation-local.d.ts +1 -1
  299. package/components/{navigation/local → navigation-local}/navigation-local.js +1 -1
  300. package/components/{notification/badge → notification-badge}/notification-badge.d.ts +1 -1
  301. package/components/notification-badge/notification-badge.js +9 -0
  302. package/components/popover/popover-base.d.ts +15 -0
  303. package/components/popover/popover-base.js +27 -0
  304. package/components/popover/popover-content.d.ts +19 -0
  305. package/components/popover/popover-content.js +20 -0
  306. package/components/popover/popover.d.ts +7 -8
  307. package/components/popover/popover.js +67 -161
  308. package/components/progressbar/progressbar.js +2 -2
  309. package/components/puff-list/{puff-list-item/puff-list-item-date.d.ts → puff-list-item-date.d.ts} +0 -1
  310. package/components/puff-list/{puff-list-item/puff-list-item-date.js → puff-list-item-date.js} +2 -3
  311. package/components/puff-list/{puff-list-item/puff-list-item-header.d.ts → puff-list-item-header.d.ts} +1 -1
  312. package/components/puff-list/puff-list-item-header.js +12 -0
  313. package/components/puff-list/{puff-list-item/puff-list-item-info.d.ts → puff-list-item-info.d.ts} +1 -2
  314. package/components/puff-list/puff-list-item-info.js +8 -0
  315. package/components/puff-list/{puff-list-item/puff-list-item.d.ts → puff-list-item.d.ts} +0 -2
  316. package/components/puff-list/{puff-list-item/puff-list-item.js → puff-list-item.js} +2 -3
  317. package/components/puff-list/puff-list.js +2 -3
  318. package/components/region-icon/region-icon.js +2 -2
  319. package/components/side-menu/side-menu-base.d.ts +22 -0
  320. package/components/side-menu/side-menu-base.js +42 -0
  321. package/components/side-menu/side-menu.d.ts +6 -9
  322. package/components/side-menu/side-menu.js +13 -43
  323. package/components/side-panel/side-panel-base.d.ts +24 -0
  324. package/components/side-panel/side-panel-base.js +33 -0
  325. package/components/side-panel/side-panel-provider.d.ts +7 -0
  326. package/components/side-panel/side-panel-provider.js +12 -0
  327. package/components/side-panel/side-panel.d.ts +14 -15
  328. package/components/side-panel/side-panel.js +49 -54
  329. package/components/stepper/step-base.d.ts +15 -0
  330. package/components/stepper/step-base.js +36 -0
  331. package/components/stepper/step.d.ts +5 -8
  332. package/components/stepper/step.js +17 -33
  333. package/components/stepper/stepper.d.ts +4 -6
  334. package/components/stepper/stepper.js +8 -13
  335. package/components/tabs/tab-link.d.ts +15 -0
  336. package/components/tabs/tab-link.js +10 -0
  337. package/components/tabs/tab-panel.d.ts +2 -4
  338. package/components/tabs/tab-panel.js +5 -12
  339. package/components/tabs/tab.d.ts +5 -5
  340. package/components/tabs/tab.js +5 -8
  341. package/components/tabs/tabs-base.d.ts +15 -0
  342. package/components/tabs/tabs-base.js +15 -0
  343. package/components/tabs/tabs.d.ts +5 -8
  344. package/components/tabs/tabs.js +38 -51
  345. package/components/tag/tag.d.ts +5 -15
  346. package/components/tag/tag.js +3 -8
  347. package/components/tooltip/tooltip-base.d.ts +14 -0
  348. package/components/tooltip/tooltip-base.js +18 -0
  349. package/components/tooltip/tooltip.d.ts +3 -10
  350. package/components/tooltip/tooltip.js +59 -43
  351. package/components/utils/contexts/HeaderContext.d.ts +1 -0
  352. package/index.d.ts +90 -16
  353. package/index.js +90 -16
  354. package/package.json +2 -2
  355. package/components/box-link/box-link.d.ts +0 -9
  356. package/components/box-link/box-link.js +0 -11
  357. package/components/global-alert/global-alert.d.ts +0 -16
  358. package/components/global-alert/global-alert.js +0 -26
  359. package/components/mobile/menu/item/mobile-item.d.ts +0 -15
  360. package/components/mobile/menu/item/mobile-item.js +0 -61
  361. package/components/mobile/menu/mobile-menu.d.ts +0 -7
  362. package/components/mobile/menu/mobile-menu.js +0 -12
  363. package/components/notification/badge/notification-badge.js +0 -9
  364. package/components/pagination/data-pagination/data-pagination.js +0 -16
  365. package/components/puff-list/puff-list-item/puff-list-item-header.js +0 -11
  366. package/components/puff-list/puff-list-item/puff-list-item-info.js +0 -10
  367. package/components/utils/hooks/useElementId.d.ts +0 -5
  368. package/components/utils/hooks/useElementId.js +0 -12
  369. /package/components/{button-group → button}/button-group.d.ts +0 -0
  370. /package/components/{action-link → link}/action-link.d.ts +0 -0
@@ -0,0 +1,18 @@
1
+ import { HTMLAttributes, ReactNode } from "react";
2
+ import "@inera/ids-design/components/accordion/accordion.css";
3
+ interface IDSAccordionBaseProps extends HTMLAttributes<HTMLDivElement> {
4
+ headline: ReactNode;
5
+ expanded?: boolean;
6
+ level?: 1 | 2;
7
+ headlineSize?: "m" | "s" | "xs";
8
+ lean?: boolean;
9
+ noBorder?: boolean;
10
+ children?: ReactNode;
11
+ onToggleAccordion?: () => void;
12
+ client?: boolean;
13
+ }
14
+ export declare function IDSAccordionBase({ headline, expanded, level, headlineSize, lean, noBorder, onToggleAccordion, client, children, className, ...props }: IDSAccordionBaseProps): import("react/jsx-runtime").JSX.Element;
15
+ export declare namespace IDSAccordionBase {
16
+ var displayName: string;
17
+ }
18
+ export {};
@@ -0,0 +1,33 @@
1
+ import { jsxs, jsx } from 'react/jsx-runtime';
2
+ import clsx from 'clsx';
3
+ import React, { useId } from 'react';
4
+ import '@inera/ids-design/components/accordion/accordion.css';
5
+
6
+ function IDSAccordionBase({ headline, expanded = false, level = 1, headlineSize = "m", lean = false, noBorder, onToggleAccordion, client = false, children, className, ...props }) {
7
+ const contentId = `accordion-content-${useId()}`;
8
+ const hasChildren = !!React.Children.toArray(children).length;
9
+ const handleKeyDown = (e) => {
10
+ if (!onToggleAccordion)
11
+ return;
12
+ if (e.key === "Enter" || e.key === " ") {
13
+ e.preventDefault();
14
+ onToggleAccordion();
15
+ }
16
+ };
17
+ const toggleHandlers = client && onToggleAccordion
18
+ ? {
19
+ onClick: onToggleAccordion,
20
+ onKeyDown: handleKeyDown
21
+ }
22
+ : {};
23
+ return (jsxs("div", { ...props, className: clsx("ids-accordion", {
24
+ "ids-accordion--expanded": expanded,
25
+ "ids-accordion--no-border": noBorder,
26
+ "ids-accordion--lean": lean,
27
+ "ids-accordion--has-children": !!hasChildren,
28
+ "ids-accordion--is-child": level === 2
29
+ }, className), children: [jsx("div", { className: clsx("ids-accordion__button", `ids-accordion__button--${headlineSize}`), role: "button", tabIndex: 0, "aria-expanded": expanded, "aria-controls": contentId, ...toggleHandlers, children: jsx("div", { className: clsx("ids-accordion__headline", `ids-accordion__headline-${level}`, `ids-accordion__headline--${headlineSize}`, expanded && "ids-accordion__headline--expanded"), children: headline }) }), jsx("div", { "aria-hidden": !expanded, id: contentId, className: "ids-accordion__content", children: children })] }));
30
+ }
31
+ IDSAccordionBase.displayName = "IDSAccordionBase";
32
+
33
+ export { IDSAccordionBase };
@@ -1,7 +1,7 @@
1
1
  import React, { ReactNode } from "react";
2
- import "@inera/ids-design/components/accordion/accordion.css";
3
2
  interface IDSAccordionProps extends React.HTMLAttributes<HTMLDivElement> {
4
3
  headline: ReactNode;
4
+ accordions?: ReactNode;
5
5
  headlineSize?: "m" | "s" | "xs";
6
6
  level?: 1 | 2;
7
7
  expanded?: boolean;
@@ -9,8 +9,9 @@ interface IDSAccordionProps extends React.HTMLAttributes<HTMLDivElement> {
9
9
  noBorder?: boolean;
10
10
  onCollapsed?: () => void;
11
11
  onExpanded?: () => void;
12
- accordions?: ReactNode;
13
- children?: ReactNode;
14
12
  }
15
- export declare const IDSAccordion: React.FC<IDSAccordionProps>;
13
+ export declare function IDSAccordion({ headline, accordions, level, headlineSize, expanded, lean, noBorder, onCollapsed, onExpanded, children, className, ...props }: IDSAccordionProps): import("react/jsx-runtime").JSX.Element;
14
+ export declare namespace IDSAccordion {
15
+ var displayName: string;
16
+ }
16
17
  export {};
@@ -1,45 +1,26 @@
1
1
  "use client";
2
- import { jsxs, jsx } from 'react/jsx-runtime';
2
+ import { jsx } from 'react/jsx-runtime';
3
3
  import { useState, useRef, useEffect } from 'react';
4
- import clsx from 'clsx';
5
- import '@inera/ids-design/components/accordion/accordion.css';
6
- import { useElementId } from '../utils/hooks/useElementId.js';
4
+ import { IDSAccordionBase } from './accordion-base.js';
7
5
 
8
- const IDSAccordion = ({ headline = "", level = 1, headlineSize = level === 2 ? "s" : "m", expanded = false, lean = false, noBorder = false, onCollapsed, onExpanded, accordions, children, className, ...props }) => {
6
+ function IDSAccordion({ headline, accordions, level = 1, headlineSize = level === 2 ? "s" : "m", expanded = false, lean = false, noBorder = false, onCollapsed, onExpanded, children, className, ...props }) {
9
7
  const [isExpanded, setIsExpanded] = useState(expanded);
10
- const contentId = useElementId();
8
+ const [isLean, setIsLean] = useState(lean);
11
9
  const accordionRef = useRef(null);
12
10
  useEffect(() => {
13
- setIsExpanded(expanded);
14
- }, [expanded]);
15
- const toggleExpansion = () => {
16
- setIsExpanded(prev => !prev);
17
- if (isExpanded) {
18
- if (onCollapsed) {
19
- onCollapsed();
20
- }
21
- }
22
- else {
23
- if (onExpanded) {
24
- onExpanded();
25
- }
26
- }
27
- };
28
- const onKeyPress = (e) => {
29
- if (e.key === " " || e.key === "Enter") {
30
- e.preventDefault();
31
- toggleExpansion();
11
+ if (level === 1 && accordionRef.current?.closest(".ids-card") && !accordions) {
12
+ setIsLean(true);
32
13
  }
14
+ }, [level]);
15
+ const toggleExpanded = () => {
16
+ setIsExpanded(prev => !prev);
17
+ if (isExpanded)
18
+ onCollapsed?.();
19
+ else
20
+ onExpanded?.();
33
21
  };
34
- return (jsxs("div", { ref: accordionRef, className: clsx("ids-accordion", {
35
- "ids-accordion--expanded": isExpanded,
36
- "ids-accordion--no-border": noBorder,
37
- "ids-accordion--lean": lean,
38
- "ids-accordion--has-children": !!accordions,
39
- "ids-accordion--is-child": level === 2
40
- }, className), ...props, children: [jsx("div", { className: `ids-accordion__button ids-accordion__button--${headlineSize}`, role: "button", tabIndex: 0, onClick: toggleExpansion, onKeyDown: onKeyPress, "aria-expanded": isExpanded, "aria-controls": contentId, children: jsx("div", { className: clsx("ids-accordion__headline", `ids-accordion__headline-${level}`, `ids-accordion__headline--${headlineSize}`, {
41
- "ids-accordion__headline--expanded": isExpanded
42
- }), children: headline }) }), jsxs("div", { "aria-hidden": !isExpanded, id: contentId, className: "ids-accordion__content", children: [children, accordions && accordions] })] }));
43
- };
22
+ return (jsx("div", { ref: accordionRef, children: jsx(IDSAccordionBase, { ...props, client: true, headline: headline, level: level, headlineSize: headlineSize, expanded: isExpanded, lean: isLean, noBorder: noBorder, className: className, onToggleAccordion: toggleExpanded, children: children }) }));
23
+ }
24
+ IDSAccordion.displayName = "IDSAccordion";
44
25
 
45
26
  export { IDSAccordion };
@@ -0,0 +1,21 @@
1
+ import React, { ReactNode } from "react";
2
+ import "@inera/ids-design/components/alert/alert.css";
3
+ export interface IDSAlertBaseProps extends React.HTMLAttributes<HTMLDivElement> {
4
+ collapsible?: boolean;
5
+ ribbon?: boolean;
6
+ collapsed?: boolean;
7
+ dismissible?: boolean;
8
+ headline?: ReactNode;
9
+ collapsableHeadline?: string;
10
+ compact?: boolean;
11
+ type?: "info" | "attention" | "success" | "error";
12
+ srCloseText?: string;
13
+ srCollapseText?: string;
14
+ srExpandText?: string;
15
+ noRole?: boolean;
16
+ children?: ReactNode;
17
+ onClose?: () => void;
18
+ onToggleCollapse?: () => void;
19
+ client?: boolean;
20
+ }
21
+ export declare function IDSAlertBase({ collapsible, ribbon, collapsed, dismissible, headline, collapsableHeadline, compact, type, srCloseText, srCollapseText, srExpandText, noRole, onClose, onToggleCollapse, client, children, className, ...props }: IDSAlertBaseProps): import("react/jsx-runtime").JSX.Element;
@@ -0,0 +1,29 @@
1
+ import { jsx, jsxs, Fragment } from 'react/jsx-runtime';
2
+ import { useId } from 'react';
3
+ import clsx from 'clsx';
4
+ import '@inera/ids-design/components/alert/alert.css';
5
+
6
+ function IDSAlertBase({ collapsible = false, ribbon = false, collapsed = false, dismissible = false, headline, collapsableHeadline = "", compact = false, type = "info", srCloseText = "Stäng alert", srCollapseText = "Minimera alertmeddelande", srExpandText = "Expandera alertmeddelande", noRole = false, onClose, onToggleCollapse, client = false, children, className, ...props }) {
7
+ const contentId = `alert-content-${useId()}`;
8
+ const closeHandler = client && onClose
9
+ ? {
10
+ onClick: onClose
11
+ }
12
+ : {};
13
+ const toggleHandler = client && onToggleCollapse
14
+ ? {
15
+ onClick: onToggleCollapse
16
+ }
17
+ : {};
18
+ return (jsx("div", { ...props, role: !noRole ? "alert" : undefined, className: clsx("ids-alert", `ids-alert--${type}`, {
19
+ "ids-alert--collapsible": collapsible,
20
+ "ids-alert--collapsed": collapsed,
21
+ "ids-alert--ribbon": ribbon,
22
+ "ids-alert--compact": compact,
23
+ "ids-alert--dismissible": dismissible,
24
+ }, className), children: compact || ribbon ? (jsxs(Fragment, { children: [jsxs("div", { className: "ids-alert__content", children: [jsx("span", { className: "ids-alert__content-icon", "aria-hidden": "true" }), jsx("span", { className: "ids-alert__content-text", children: children })] }), dismissible && jsx("button", { className: "ids-alert__close", ...closeHandler, "aria-label": srCloseText })] })) : (jsxs(Fragment, { children: [jsxs("div", { className: "ids-alert__header", children: [collapsible && !compact && !ribbon && (jsx("button", { className: clsx("ids-alert__expand-button", {
25
+ "ids-alert__expand-button--expanded": !collapsed
26
+ }), ...toggleHandler, "aria-controls": contentId, "aria-expanded": !collapsed, children: jsxs("div", { className: "ids-alert__icon_and_text", children: [jsx("span", { className: "ids-alert__state-icon", "aria-hidden": "true" }), jsx("div", { className: "ids-alert__headline", children: collapsableHeadline }), jsx("span", { className: "ids-alert__sr-only", children: collapsed ? srExpandText : srCollapseText })] }) })), !collapsible && (jsxs("div", { className: "ids-alert__icon_and_text", children: [jsx("span", { className: "ids-alert__state-icon", "aria-hidden": "true" }), jsx("div", { className: "ids-alert__headline", children: headline })] })), dismissible && !collapsible && (jsx("button", { className: "ids-alert__close", ...closeHandler, "aria-label": srCloseText }))] }), jsx("div", { id: contentId, children: !collapsed && jsx("div", { className: "ids-alert__content", children: children }) })] })) }));
27
+ }
28
+
29
+ export { IDSAlertBase };
@@ -1,21 +1,5 @@
1
- import React, { ReactNode } from "react";
2
- import "@inera/ids-design/components/alert/alert.css";
3
- interface IDSAlertProps extends React.HTMLAttributes<HTMLDivElement> {
4
- collapsible?: boolean;
5
- ribbon?: boolean;
6
- collapsed?: boolean;
7
- dismissible?: boolean;
8
- headline?: ReactNode;
9
- collapsableHeadline?: string;
10
- compact?: boolean;
11
- type?: "info" | "attention" | "success" | "error";
12
- srCloseText?: string;
13
- srCollapseText?: string;
14
- srExpandText?: string;
15
- noRole?: boolean;
16
- children?: ReactNode;
17
- onClose?: () => void;
1
+ import { IDSAlertBaseProps } from "./alert-base";
2
+ export interface IDSAlertProps extends Omit<IDSAlertBaseProps, "contentId" | "onToggleCollapse"> {
18
3
  onCollapsedChange?: (isCollapsed: boolean) => void;
19
4
  }
20
- export declare const IDSAlert: React.FC<IDSAlertProps>;
21
- export {};
5
+ export declare function IDSAlert({ collapsed, onCollapsedChange, onClose, children, className, ...props }: IDSAlertProps): import("react/jsx-runtime").JSX.Element;
@@ -1,32 +1,22 @@
1
1
  "use client";
2
- import { jsx, jsxs, Fragment } from 'react/jsx-runtime';
2
+ import { jsx } from 'react/jsx-runtime';
3
3
  import { useState, useEffect } from 'react';
4
- import '@inera/ids-design/components/alert/alert.css';
5
- import clsx from 'clsx';
6
- import { useElementId } from '../utils/hooks/useElementId.js';
4
+ import { IDSAlertBase } from './alert-base.js';
7
5
 
8
- const IDSAlert = ({ collapsible = false, ribbon = false, collapsed = false, dismissible = false, headline, collapsableHeadline = "", compact = false, type = "info", srCloseText = "Stäng alert", srCollapseText = "Minimera alertmeddelande", srExpandText = "Expandera alertmeddelande", noRole = false, onClose, onCollapsedChange, className, children, ...props }) => {
9
- const contentId = useElementId();
6
+ function IDSAlert({ collapsed = false, onCollapsedChange, onClose, children, className, ...props }) {
10
7
  const [isCollapsed, setIsCollapsed] = useState(collapsed);
11
8
  useEffect(() => {
12
9
  setIsCollapsed(collapsed);
13
10
  }, [collapsed]);
14
11
  const handleToggleCollapse = () => {
15
- const newCollapsedState = !isCollapsed;
16
- setIsCollapsed(newCollapsedState);
17
- onCollapsedChange?.(newCollapsedState);
12
+ const newState = !isCollapsed;
13
+ setIsCollapsed(newState);
14
+ onCollapsedChange?.(newState);
18
15
  };
19
16
  const handleClose = () => {
20
17
  onClose?.();
21
18
  };
22
- return (jsx("div", { role: !noRole ? "alert" : undefined, className: clsx("ids-alert", `ids-alert--${type}`, {
23
- "ids-alert--collapsible": collapsible,
24
- "ids-alert--collapsed": isCollapsed,
25
- "ids-alert--ribbon": ribbon,
26
- "ids-alert--compact": compact
27
- }, className), ...props, children: compact || ribbon ? (jsxs(Fragment, { children: [jsxs("div", { className: "ids-alert__content", children: [jsx("span", { className: "ids-alert__content-icon", "aria-hidden": "true" }), jsx("span", { className: "ids-alert__content-text", children: children })] }), dismissible && jsx("button", { className: "ids-alert__close", onClick: handleClose, "aria-label": srCloseText })] })) : (jsxs(Fragment, { children: [jsxs("div", { className: "ids-alert__header", children: [collapsible && !compact && !ribbon && (jsx(Fragment, { children: jsx("button", { className: clsx("ids-alert__expand-button", {
28
- "ids-alert__expand-button--expanded": !isCollapsed
29
- }), onClick: handleToggleCollapse, "aria-controls": contentId, "aria-expanded": !isCollapsed, children: jsxs("div", { className: "ids-alert__icon_and_text", children: [jsx("span", { className: "ids-alert__state-icon", "aria-hidden": "true" }), jsx("div", { className: "ids-alert__headline", children: collapsableHeadline }), jsx("span", { className: "ids-alert__sr-only", children: isCollapsed ? srExpandText : srCollapseText })] }) }) })), !collapsible && (jsxs("div", { className: "ids-alert__icon_and_text", children: [jsx("span", { className: "ids-alert__state-icon", "aria-hidden": "true" }), jsx("div", { className: "ids-alert__headline", children: headline })] })), dismissible && !collapsible && (jsx("button", { className: "ids-alert__close", onClick: handleClose, "aria-label": srCloseText }))] }), jsx("div", { id: contentId, children: !isCollapsed && jsx("div", { className: "ids-alert__content", children: children }) })] })) }));
30
- };
19
+ return (jsx(IDSAlertBase, { ...props, client: true, collapsed: isCollapsed, onToggleCollapse: handleToggleCollapse, onClose: handleClose, children: children }));
20
+ }
31
21
 
32
22
  export { IDSAlert };
@@ -0,0 +1,15 @@
1
+ import React, { ReactNode } from "react";
2
+ import "@inera/ids-design/components/global-alert/global-alert.css";
3
+ export interface IDSGlobalAlertBaseProps extends React.HTMLAttributes<HTMLDivElement> {
4
+ agent?: boolean;
5
+ srExpandText?: string;
6
+ srCollapseText?: string;
7
+ collapsed?: boolean;
8
+ noRole?: boolean;
9
+ headline: string;
10
+ actions?: ReactNode;
11
+ children?: ReactNode;
12
+ onToggle?: () => void;
13
+ client?: boolean;
14
+ }
15
+ export declare function IDSGlobalAlertBase({ agent, srExpandText, srCollapseText, collapsed, noRole, headline, actions, children, className, onToggle, client, ...props }: IDSGlobalAlertBaseProps): import("react/jsx-runtime").JSX.Element;
@@ -0,0 +1,21 @@
1
+ import { jsx, jsxs } from 'react/jsx-runtime';
2
+ import { useId } from 'react';
3
+ import clsx from 'clsx';
4
+ import '@inera/ids-design/components/global-alert/global-alert.css';
5
+
6
+ function IDSGlobalAlertBase({ agent = false, srExpandText = "Visa meddelande", srCollapseText = "Dölj meddelande", collapsed = false, noRole = false, headline, actions, children, className, onToggle, client = false, ...props }) {
7
+ const contentId = `alert-global-content-${useId()}`;
8
+ const toggleHandler = client && onToggle
9
+ ? {
10
+ onClick: onToggle
11
+ }
12
+ : {};
13
+ return (jsx("div", { role: noRole ? undefined : "alert", className: clsx("ids-global-alert", {
14
+ "ids-global-alert--collapsed": collapsed,
15
+ "ids-global-alert--agent": agent
16
+ }, className), ...props, children: jsxs("div", { className: "ids-global-alert__inner", children: [jsx("div", { className: "ids-global-alert__header", children: jsx("button", { className: clsx("ids-global-alert__button", {
17
+ "ids-global-alert__button--expanded": !collapsed
18
+ }), "aria-controls": contentId, "aria-expanded": !collapsed, ...toggleHandler, children: jsxs("div", { className: "ids-global-alert__icon-headline", children: [jsx("div", { className: "ids-global-alert__headline", children: headline }), jsx("span", { className: "ids-global-alert__sr-only", children: collapsed ? srExpandText : srCollapseText })] }) }) }), jsxs("div", { id: contentId, className: "ids-global-alert__content", children: [children, actions && jsx("div", { className: "ids-global-alert__sub-content", children: actions })] })] }) }));
19
+ }
20
+
21
+ export { IDSGlobalAlertBase };
@@ -0,0 +1,7 @@
1
+ import React from "react";
2
+ import { IDSGlobalAlertBase } from "./global-alert-base";
3
+ interface IDSGlobalAlertProps extends Omit<React.ComponentProps<typeof IDSGlobalAlertBase>, "onToggle" | "contentId"> {
4
+ onCollapsedChange?: (isCollapsed: boolean) => void;
5
+ }
6
+ export declare function IDSGlobalAlert({ collapsed, onCollapsedChange, ...props }: IDSGlobalAlertProps): import("react/jsx-runtime").JSX.Element;
7
+ export {};
@@ -0,0 +1,19 @@
1
+ "use client";
2
+ import { jsx } from 'react/jsx-runtime';
3
+ import { useState, useEffect } from 'react';
4
+ import { IDSGlobalAlertBase } from './global-alert-base.js';
5
+
6
+ function IDSGlobalAlert({ collapsed = false, onCollapsedChange, ...props }) {
7
+ const [isCollapsed, setIsCollapsed] = useState(collapsed);
8
+ useEffect(() => {
9
+ setIsCollapsed(collapsed);
10
+ }, [collapsed]);
11
+ const handleToggleCollapse = () => {
12
+ const newState = !isCollapsed;
13
+ setIsCollapsed(newState);
14
+ onCollapsedChange?.(newState);
15
+ };
16
+ return jsx(IDSGlobalAlertBase, { ...props, client: true, collapsed: isCollapsed, onToggle: handleToggleCollapse });
17
+ }
18
+
19
+ export { IDSGlobalAlert };
@@ -1,9 +1,9 @@
1
1
  import { jsx, jsxs } from 'react/jsx-runtime';
2
- import '@inera/ids-design/components/badge/badge.css';
3
2
  import clsx from 'clsx';
3
+ import '@inera/ids-design/components/badge/badge.css';
4
4
 
5
5
  function IDSBadge({ type = "primary", icon, children, className, ...props }) {
6
- return (jsx("div", { className: clsx(`ids-badge ids-badge--${type}`, className), ...props, children: jsxs("div", { className: "ids-badge__inner", children: [icon && jsx("span", { className: `ids-icon-${icon}`, "aria-hidden": "true" }), icon && children && jsx("span", { className: "ids-badge__icon" }), children] }) }));
6
+ return (jsx("div", { ...props, className: clsx(`ids-badge ids-badge--${type}`, className), children: jsxs("div", { className: "ids-badge__inner", children: [icon && jsx("span", { className: `ids-icon-${icon}`, "aria-hidden": "true" }), icon && children && jsx("span", { className: "ids-badge__icon" }), children] }) }));
7
7
  }
8
8
 
9
9
  export { IDSBadge };
@@ -1,7 +1,7 @@
1
1
  import { jsxs, jsx } from 'react/jsx-runtime';
2
2
  import React from 'react';
3
- import '@inera/ids-design/components/breadcrumbs/breadcrumbs.css';
4
3
  import clsx from 'clsx';
4
+ import '@inera/ids-design/components/breadcrumbs/breadcrumbs.css';
5
5
 
6
6
  function IDSBreadcrumbs({ lead = "Du är här", mobileLink, children, className, ...props }) {
7
7
  const getMobileLink = () => {
@@ -24,7 +24,7 @@ function IDSBreadcrumbs({ lead = "Du är här", mobileLink, children, className,
24
24
  }
25
25
  });
26
26
  };
27
- return (jsxs("nav", { className: clsx("ids-breadcrumbs", className), "aria-label": lead, ...props, children: [jsxs("ol", { className: "ids-breadcrumbs__desktop", children: [jsx("li", { className: "ids-breadcrumbs__lead", children: lead }), getLinks()] }), jsx("ol", { className: "ids-breadcrumbs__mobile", children: jsxs("li", { className: "ids-breadcrumbs__mobile-links", children: [jsx("span", { className: "ids-breadcrumbs__icon" }), getMobileLink()] }) })] }));
27
+ return (jsxs("nav", { ...props, className: clsx("ids-breadcrumbs", className), "aria-label": lead, children: [jsxs("ol", { className: "ids-breadcrumbs__desktop", children: [jsx("li", { className: "ids-breadcrumbs__lead", children: lead }), getLinks()] }), jsx("ol", { className: "ids-breadcrumbs__mobile", children: jsxs("li", { className: "ids-breadcrumbs__mobile-links", children: [jsx("span", { className: "ids-breadcrumbs__icon" }), getMobileLink()] }) })] }));
28
28
  }
29
29
 
30
30
  export { IDSBreadcrumbs };
@@ -1,13 +1,13 @@
1
1
  import { jsx } from 'react/jsx-runtime';
2
- import '@inera/ids-design/components/button-group/button-group.css';
3
2
  import clsx from 'clsx';
3
+ import '@inera/ids-design/components/button-group/button-group.css';
4
4
 
5
5
  function IDSButtonGroup({ rtl = false, justify = "start", unresponsive = false, break: breakpoint = "m", children, className, ...props }) {
6
6
  const classNames = clsx("ids-button-group", `ids-button-group--break-${breakpoint}`, `ids-button-group--${justify}`, {
7
7
  "ids-button-group--rtl": rtl,
8
8
  "ids-button-group--unresponsive": unresponsive
9
9
  }, className);
10
- return (jsx("div", { className: classNames, ...props, children: children }));
10
+ return (jsx("div", { ...props, className: classNames, children: children }));
11
11
  }
12
12
 
13
13
  export { IDSButtonGroup };
@@ -1,10 +1,10 @@
1
- "use client";
2
1
  import { jsxs, jsx } from 'react/jsx-runtime';
3
2
  import clsx from 'clsx';
4
3
  import { forwardRef } from 'react';
4
+ import { IDSSpinner } from '../form/spinner/spinner.js';
5
5
 
6
6
  const IDSButton = forwardRef(({ active = false, block = false, disabled = false, fab = false, iconButton = false, icon = "", mBlock = false, sBlock = false, loading = false, tertiary = false, secondary = false, size = "m", submit = false, toggle = false, focusAnchor = false, children, className, ...props }, ref) => {
7
- const classNames = clsx("ids-button", size && `ids-button--${size}`, {
7
+ const classNames = clsx("ids-button", !!size && `ids-button--${size}`, {
8
8
  "ids-button--m-block": mBlock,
9
9
  "ids-button--s-block": sBlock,
10
10
  "ids-button--active": active,
@@ -18,7 +18,7 @@ const IDSButton = forwardRef(({ active = false, block = false, disabled = false,
18
18
  "ids-button--loading": loading,
19
19
  "ids-focus-anchor": focusAnchor
20
20
  }, className);
21
- return (jsxs("button", { ref: ref, className: classNames, "aria-disabled": disabled || loading, "aria-pressed": toggle, tabIndex: !disabled && !loading ? 0 : -1, disabled: disabled, ...props, children: [icon && jsx("span", { className: `ids-icon-${icon}` }), children] }));
21
+ return (jsxs("button", { ...props, ref: ref, className: classNames, "aria-disabled": disabled || loading, ...(toggle ? { "aria-pressed": active } : {}), tabIndex: !disabled && !loading ? 0 : -1, disabled: disabled, children: [icon && jsx("span", { className: `ids-icon-${icon}` }), loading && jsx(IDSSpinner, { variant: !secondary && !tertiary ? "3" : "2" }), !loading && children] }));
22
22
  });
23
23
  IDSButton.displayName = "IDSButton";
24
24
 
@@ -1,7 +1,7 @@
1
1
  import { jsx, jsxs } from 'react/jsx-runtime';
2
2
  import { isValidElement, cloneElement } from 'react';
3
- import '@inera/ids-design/components/card/card.css';
4
3
  import clsx from 'clsx';
4
+ import '@inera/ids-design/components/card/card.css';
5
5
 
6
6
  function IDSCard({ focusCard = false, fill = false, borderTop = false, lean = false, hideOnM = false, hideOnS = false, cardLink, children, className, ...props }) {
7
7
  let enhancedCardLink = null;
@@ -14,7 +14,7 @@ function IDSCard({ focusCard = false, fill = false, borderTop = false, lean = fa
14
14
  const anchorProps = cardLink;
15
15
  enhancedCardLink = jsx("a", { ...anchorProps, className: clsx(anchorProps.className, "ids-card--interactive-link") });
16
16
  }
17
- return (jsxs("div", { className: clsx("ids-card", {
17
+ return (jsxs("div", { ...props, className: clsx("ids-card", {
18
18
  "ids-card--fill": fill,
19
19
  "ids-card--border-top": !!borderTop && !focusCard,
20
20
  "ids-card--focus-card": !!focusCard && !borderTop,
@@ -22,7 +22,7 @@ function IDSCard({ focusCard = false, fill = false, borderTop = false, lean = fa
22
22
  "ids-card--hide-on-s": hideOnS,
23
23
  "ids-card--lean": lean,
24
24
  "ids-card--interactive": !!cardLink
25
- }, className), ...props, children: [!!borderTop && !focusCard && jsx("div", { className: "ids-card__border-top" }), jsx("div", { className: "ids-card__content", children: children }), enhancedCardLink] }));
25
+ }, className), children: [!!borderTop && !focusCard && jsx("div", { className: "ids-card__border-top" }), jsx("div", { className: "ids-card__content", children: children }), enhancedCardLink] }));
26
26
  }
27
27
 
28
28
  export { IDSCard };
@@ -1,10 +1,11 @@
1
1
  import React from "react";
2
- import "@inera/ids-design/components/carousel/carousel-item.css";
3
- interface IDSCarouselItemProps extends React.HTMLAttributes<HTMLDivElement> {
2
+ export interface IDSCarouselItemProps extends React.HTMLAttributes<HTMLDivElement> {
4
3
  headline?: string;
5
4
  step?: string;
6
5
  description?: string;
6
+ activeSlide?: boolean;
7
+ previousSlide?: boolean;
8
+ nextSlide?: boolean;
7
9
  children: React.ReactNode;
8
10
  }
9
- export declare const IDSCarouselItem: React.FC<IDSCarouselItemProps>;
10
- export {};
11
+ export declare function IDSCarouselItem({ headline, step, description, activeSlide, previousSlide, nextSlide, children, className, ...props }: IDSCarouselItemProps): import("react/jsx-runtime").JSX.Element;
@@ -1,10 +1,8 @@
1
- "use client";
2
- import { jsxs, jsx } from 'react/jsx-runtime';
1
+ import { jsx, jsxs } from 'react/jsx-runtime';
3
2
  import React from 'react';
4
- import '@inera/ids-design/components/carousel/carousel-item.css';
5
3
  import clsx from 'clsx';
6
4
 
7
- const IDSCarouselItem = ({ headline, step, description, children, className, ...props }) => {
5
+ function IDSCarouselItem({ headline, step, description, activeSlide = false, previousSlide = false, nextSlide = false, children, className, ...props }) {
8
6
  const isImageElement = (child) => {
9
7
  return React.isValidElement(child) && child.type === "img";
10
8
  };
@@ -18,7 +16,11 @@ const IDSCarouselItem = ({ headline, step, description, children, className, ...
18
16
  const image = findCarouselImage(childrenArray);
19
17
  const otherContent = getNonImageContent(childrenArray);
20
18
  const hasFooterContent = description || step;
21
- return (jsxs("div", { className: clsx("ids-carousel-item", className), ...props, children: [jsx("div", { className: "ids-carousel-item__image", children: image }), jsxs("div", { className: "ids-carousel-item__content", children: [headline && jsx("h2", { className: "ids-carousel-item__headline", children: headline }), otherContent, hasFooterContent && (jsxs("div", { className: "ids-carousel-item__footer", children: [description && jsx("div", { className: "ids-carousel-item__description", children: description }), step && (jsx("div", { className: "ids-carousel-item__step", children: jsx("div", { className: "ids-tag", children: step }) }))] }))] })] }));
22
- };
19
+ return (jsx("div", { ...props, className: clsx("ids-carousel-item-wrapper", {
20
+ active: activeSlide,
21
+ prev: previousSlide,
22
+ next: nextSlide
23
+ }, className), "aria-hidden": !activeSlide, inert: !activeSlide, children: jsxs("div", { className: clsx("ids-carousel-item"), children: [jsx("div", { className: "ids-carousel-item__image", children: image }), jsxs("div", { className: "ids-carousel-item__content", children: [headline && jsx("h2", { className: "ids-carousel-item__headline", children: headline }), otherContent, hasFooterContent && (jsxs("div", { className: "ids-carousel-item__footer", children: [description && jsx("div", { className: "ids-carousel-item__description", children: description }), step && (jsx("div", { className: "ids-carousel-item__step", children: jsx("div", { className: "ids-tag", children: step }) }))] }))] })] }) }));
24
+ }
23
25
 
24
26
  export { IDSCarouselItem };
@@ -5,5 +5,8 @@ interface IDSCarouselProps extends React.HTMLAttributes<HTMLDivElement> {
5
5
  srPrevLabel?: string;
6
6
  children: React.ReactNode;
7
7
  }
8
- export declare const IDSCarousel: React.FC<IDSCarouselProps>;
8
+ export declare function IDSCarousel({ srNextLabel, srPrevLabel, className, children, ...props }: IDSCarouselProps): import("react/jsx-runtime").JSX.Element;
9
+ export declare namespace IDSCarousel {
10
+ var displayName: string;
11
+ }
9
12
  export {};
@@ -1,11 +1,12 @@
1
1
  "use client";
2
- import { jsx, jsxs } from 'react/jsx-runtime';
3
- import { useState, useRef, Children, useEffect } from 'react';
4
- import '@inera/ids-design/components/carousel/carousel.css';
5
- import clsx from 'clsx';
2
+ import { jsxs, jsx } from 'react/jsx-runtime';
3
+ import { useState, useRef, Children, useEffect, isValidElement, cloneElement } from 'react';
6
4
  import { breakPoints } from '../utils/utils.js';
5
+ import clsx from 'clsx';
6
+ import '@inera/ids-design/components/carousel/carousel.css';
7
7
 
8
- const IDSCarousel = ({ srNextLabel = "Nästa", srPrevLabel = "Föregående", className, children, ...props }) => {
8
+ function IDSCarousel({ srNextLabel = "Nästa", srPrevLabel = "Föregående", className, children, ...props }) {
9
+ const [windowWidth, setWindowWidth] = useState(0);
9
10
  const [activeSlideIndex, setActiveSlideIndex] = useState(0);
10
11
  const [isAnimating, setIsAnimating] = useState(false);
11
12
  const [isAnimatingLeft, setIsAnimatingLeft] = useState(false);
@@ -13,11 +14,16 @@ const IDSCarousel = ({ srNextLabel = "Nästa", srPrevLabel = "Föregående", cla
13
14
  const [buttonPosition, setButtonPosition] = useState({ top: 0, height: 0 });
14
15
  const carouselRef = useRef(null);
15
16
  const slideCount = Children.count(children);
16
- let windowWidth = window.innerWidth;
17
+ useEffect(() => {
18
+ const updateWidth = () => setWindowWidth(window.innerWidth);
19
+ updateWidth(); // set immediately after mount
20
+ window.addEventListener("resize", updateWidth);
21
+ return () => window.removeEventListener("resize", updateWidth);
22
+ }, []);
17
23
  // Validate slide count
18
24
  useEffect(() => {
19
25
  if (slideCount < 3) {
20
- console.warn("Carousel requires at least 3 carousel-items.");
26
+ console.warn("Carousel requires at least 3 carousel-items");
21
27
  }
22
28
  }, [slideCount]);
23
29
  // Initial setup
@@ -26,10 +32,6 @@ const IDSCarousel = ({ srNextLabel = "Nästa", srPrevLabel = "Föregående", cla
26
32
  setActiveSlideIndex(0);
27
33
  }
28
34
  }, []);
29
- // Recalculate window width on resize
30
- useEffect(() => {
31
- windowWidth = window.innerWidth;
32
- }, [windowWidth]);
33
35
  // Resize observer
34
36
  useEffect(() => {
35
37
  const resizeObserver = new ResizeObserver(entries => {
@@ -93,23 +95,6 @@ const IDSCarousel = ({ srNextLabel = "Nästa", srPrevLabel = "Föregående", cla
93
95
  setIsAnimatingLeft(false);
94
96
  }, 500);
95
97
  };
96
- useEffect(() => {
97
- if (!carouselRef.current)
98
- return;
99
- const allSlides = carouselRef.current.querySelectorAll(".ids-carousel-item-wrapper");
100
- allSlides.forEach((slide, index) => {
101
- const isActive = index === activeSlideIndex;
102
- if (isActive) {
103
- slide.removeAttribute("inert");
104
- slide.setAttribute("aria-hidden", "false");
105
- }
106
- else {
107
- slide.setAttribute("inert", "");
108
- slide.setAttribute("aria-hidden", "true");
109
- }
110
- });
111
- }, [activeSlideIndex]);
112
- // Touch/swipe
113
98
  const touchStartX = useRef(null);
114
99
  const handleTouchStart = (e) => {
115
100
  touchStartX.current = e.touches[0].clientX;
@@ -123,27 +108,27 @@ const IDSCarousel = ({ srNextLabel = "Nästa", srPrevLabel = "Föregående", cla
123
108
  touchStartX.current = null;
124
109
  };
125
110
  const slides = Children.map(children, (child, index) => {
111
+ if (!isValidElement(child))
112
+ return child;
126
113
  const isActive = index === activeSlideIndex;
127
114
  const isPrev = index === (activeSlideIndex - 1 + slideCount) % slideCount;
128
115
  const isNext = index === (activeSlideIndex + 1) % slideCount;
129
- let itemClass = "ids-carousel-item-wrapper";
130
- if (isActive)
131
- itemClass += " active";
132
- else if (isPrev)
133
- itemClass += " prev";
134
- else if (isNext)
135
- itemClass += " next";
136
- return isActive ? (jsx("div", { className: itemClass, "aria-hidden": "false", children: child }, index)) : (jsx("div", { className: itemClass, "aria-hidden": "true", inert: true, children: child }, index));
116
+ return cloneElement(child, {
117
+ activeSlide: isActive,
118
+ previousSlide: isPrev,
119
+ nextSlide: isNext
120
+ });
137
121
  });
138
122
  const isMobile = windowWidth < breakPoints.medium;
139
- return (jsxs("div", { className: clsx("ids-carousel", className), ref: carouselRef, ...props, children: [jsx("button", { "aria-label": srPrevLabel, className: clsx("ids-carousel__button-prev", {
123
+ return (jsxs("div", { ...props, className: clsx("ids-carousel", className), ref: carouselRef, children: [jsx("button", { "aria-label": srPrevLabel, className: clsx("ids-carousel__button-prev", {
140
124
  "ids-carousel__button-prev--mobile": isMobile
141
125
  }), onClick: handlePrev, style: buttonPosition, children: isMobile && jsx("div", { className: "ids-carousel-btn__inner" }) }), jsx("button", { "aria-label": srNextLabel, className: clsx("ids-carousel__button-next", {
142
126
  "ids-carousel__button-next--mobile": isMobile
143
- }), onClick: handleNext, style: buttonPosition, children: isMobile && jsx("div", { className: "ids-carousel-btn__inner" }) }), jsx("div", { className: clsx("ids-carousel-content js-carousel-slide", {
127
+ }), onClick: handleNext, style: buttonPosition, children: isMobile && jsx("div", { className: "ids-carousel-btn__inner" }) }), jsx("div", { className: clsx("ids-carousel-content", {
144
128
  "animating-left": isAnimatingLeft,
145
129
  "animating-right": isAnimatingRight
146
130
  }), onTouchStart: handleTouchStart, onTouchEnd: handleTouchEnd, children: jsx("div", { "aria-live": "polite", children: slides }) })] }));
147
- };
131
+ }
132
+ IDSCarousel.displayName = "IDSCarousel";
148
133
 
149
134
  export { IDSCarousel };
@@ -1,19 +1,15 @@
1
- import React, { ReactNode, ChangeEvent } from "react";
2
- import "@inera/ids-design/components/pagination/data-pagination/data-pagination.css";
1
+ import React, { ReactNode } from "react";
2
+ import "@inera/ids-design/components/data-pagination/data-pagination.css";
3
3
  export interface IDSDataPaginationProps extends React.HTMLAttributes<HTMLDivElement> {
4
- label?: string;
5
4
  from: number;
6
5
  to: number;
7
6
  of?: string;
8
7
  total: number | string;
9
8
  defaultValue?: string;
10
- selectId?: string;
11
9
  light?: boolean;
12
- noSelect?: boolean;
13
10
  firstPageButton?: ReactNode;
14
11
  previousButton?: ReactNode;
15
12
  nextButton?: ReactNode;
16
13
  lastPageButton?: ReactNode;
17
- onSelectChange?: (event: ChangeEvent<HTMLSelectElement>) => void;
18
14
  }
19
15
  export declare const IDSDataPagination: React.ForwardRefExoticComponent<IDSDataPaginationProps & React.RefAttributes<HTMLSelectElement>>;