@inera/ids-react 9.1.2 → 9.2.1

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 (353) hide show
  1. package/components/accordion/accordion-base.d.ts +4 -1
  2. package/components/accordion/accordion-base.js +33 -7
  3. package/components/accordion/accordion.d.ts +4 -1
  4. package/components/accordion/accordion.js +14 -11
  5. package/components/alert/alert-base.d.ts +3 -0
  6. package/components/alert/alert-base.js +4 -3
  7. package/components/alert/alert.d.ts +6 -1
  8. package/components/alert/alert.js +12 -9
  9. package/components/badge/badge.d.ts +1 -1
  10. package/components/badge/badge.js +6 -3
  11. package/components/breadcrumbs/breadcrumbs.d.ts +3 -0
  12. package/components/breadcrumbs/breadcrumbs.js +25 -4
  13. package/components/button/button-group.d.ts +3 -0
  14. package/components/button/button-group.js +1 -0
  15. package/components/button/button.js +22 -14
  16. package/components/card/card.d.ts +3 -0
  17. package/components/card/card.js +2 -1
  18. package/components/carousel/carousel-item.d.ts +3 -0
  19. package/components/carousel/carousel-item.js +1 -0
  20. package/components/date-label/date-label.d.ts +3 -0
  21. package/components/date-label/date-label.js +1 -0
  22. package/components/dialog/dialog-base.d.ts +0 -1
  23. package/components/dialog/dialog-base.js +3 -3
  24. package/components/dialog/dialog.d.ts +3 -0
  25. package/components/dialog/dialog.js +19 -19
  26. package/components/dropdown/dropdown-base.js +6 -3
  27. package/components/dropdown/dropdown-content-button.js +1 -1
  28. package/components/dropdown/dropdown-content-link.d.ts +3 -0
  29. package/components/dropdown/dropdown-content-link.js +1 -1
  30. package/components/dropdown/dropdown.d.ts +3 -0
  31. package/components/dropdown/dropdown.js +28 -31
  32. package/components/footer-1177/footer-1177.d.ts +3 -0
  33. package/components/footer-1177/footer-1177.js +1 -0
  34. package/components/footer-1177-admin/footer-1177-admin.d.ts +3 -0
  35. package/components/footer-1177-admin/footer-1177-admin.js +1 -0
  36. package/components/footer-1177-pro/footer-1177-pro.d.ts +3 -0
  37. package/components/footer-1177-pro/footer-1177-pro.js +1 -0
  38. package/components/footer-inera/footer-inera.d.ts +3 -0
  39. package/components/footer-inera/footer-inera.js +1 -0
  40. package/components/footer-inera-admin/footer-inera-admin.d.ts +3 -0
  41. package/components/footer-inera-admin/footer-inera-admin.js +2 -1
  42. package/components/footer-inera-general/footer-inera-general.d.ts +21 -0
  43. package/components/footer-inera-general/footer-inera-general.js +28 -0
  44. package/components/form/check-button/check-button.js +1 -0
  45. package/components/form/checkbox/checkbox-base.d.ts +7 -13
  46. package/components/form/checkbox/checkbox-base.js +10 -10
  47. package/components/form/checkbox/checkbox-group-base.d.ts +3 -0
  48. package/components/form/checkbox/checkbox-group-base.js +3 -2
  49. package/components/form/checkbox/checkbox-group.d.ts +3 -0
  50. package/components/form/checkbox/checkbox-group.js +1 -0
  51. package/components/form/checkbox/checkbox.d.ts +5 -15
  52. package/components/form/checkbox/checkbox.js +10 -2
  53. package/components/form/datepicker/datepicker.d.ts +7 -11
  54. package/components/form/datepicker/datepicker.js +17 -16
  55. package/components/form/error-message/error-message.d.ts +3 -0
  56. package/components/form/error-message/error-message.js +1 -0
  57. package/components/form/form-props/form-props.d.ts +18 -0
  58. package/components/form/input/input-base.d.ts +7 -16
  59. package/components/form/input/input-base.js +15 -16
  60. package/components/form/input/input.d.ts +3 -16
  61. package/components/form/input/input.js +3 -4
  62. package/components/form/radio/radio-base.d.ts +8 -13
  63. package/components/form/radio/radio-base.js +8 -10
  64. package/components/form/radio/radio-group-base.d.ts +3 -0
  65. package/components/form/radio/radio-group-base.js +1 -0
  66. package/components/form/radio/radio-group.d.ts +3 -0
  67. package/components/form/radio/radio-group.js +1 -1
  68. package/components/form/radio/radio.d.ts +2 -14
  69. package/components/form/radio/radio.js +11 -5
  70. package/components/form/radio-button/radio-button-group-base.d.ts +3 -0
  71. package/components/form/radio-button/radio-button-group-base.js +1 -0
  72. package/components/form/radio-button/radio-button-group.d.ts +3 -0
  73. package/components/form/radio-button/radio-button-group.js +4 -1
  74. package/components/form/radio-button/radio-button.js +1 -0
  75. package/components/form/range/range-base.d.ts +6 -8
  76. package/components/form/range/range-base.js +3 -2
  77. package/components/form/range/range.d.ts +2 -7
  78. package/components/form/range/range.js +13 -6
  79. package/components/form/select/select-base.d.ts +7 -15
  80. package/components/form/select/select-base.js +8 -8
  81. package/components/form/select/select.d.ts +2 -14
  82. package/components/form/select/select.js +12 -5
  83. package/components/form/select-multiple/select-multiple-base.d.ts +7 -14
  84. package/components/form/select-multiple/select-multiple-base.js +7 -5
  85. package/components/form/select-multiple/select-multiple.d.ts +4 -15
  86. package/components/form/select-multiple/select-multiple.js +3 -5
  87. package/components/form/spinner/spinner.d.ts +3 -0
  88. package/components/form/spinner/spinner.js +1 -0
  89. package/components/form/textarea/textarea-base.d.ts +7 -15
  90. package/components/form/textarea/textarea-base.js +7 -10
  91. package/components/form/textarea/textarea.d.ts +4 -14
  92. package/components/form/textarea/textarea.js +13 -6
  93. package/components/form/time/time-base.d.ts +6 -12
  94. package/components/form/time/time-base.js +7 -7
  95. package/components/form/time/time.d.ts +2 -14
  96. package/components/form/time/time.js +13 -6
  97. package/components/global-alert/global-alert-base.d.ts +3 -0
  98. package/components/global-alert/global-alert-base.js +3 -2
  99. package/components/global-alert/global-alert.d.ts +6 -1
  100. package/components/global-alert/global-alert.js +12 -9
  101. package/components/header-1177/header-1177-avatar-base.d.ts +3 -0
  102. package/components/header-1177/header-1177-avatar-base.js +1 -0
  103. package/components/header-1177/header-1177-avatar.d.ts +3 -0
  104. package/components/header-1177/header-1177-avatar.js +7 -15
  105. package/components/header-1177/header-1177-base.d.ts +3 -0
  106. package/components/header-1177/header-1177-base.js +1 -0
  107. package/components/header-1177/header-1177-item-base.d.ts +3 -0
  108. package/components/header-1177/header-1177-item-base.js +1 -0
  109. package/components/header-1177/header-1177-item.d.ts +3 -0
  110. package/components/header-1177/header-1177-item.js +1 -0
  111. package/components/header-1177/header-1177-menu-mobile-base.d.ts +3 -0
  112. package/components/header-1177/header-1177-menu-mobile-base.js +1 -0
  113. package/components/header-1177/header-1177-menu-mobile.d.ts +3 -0
  114. package/components/header-1177/header-1177-menu-mobile.js +7 -24
  115. package/components/header-1177/header-1177-nav-base.d.ts +3 -0
  116. package/components/header-1177/header-1177-nav-base.js +1 -0
  117. package/components/header-1177/header-1177-nav-item-base.d.ts +3 -0
  118. package/components/header-1177/header-1177-nav-item-base.js +1 -0
  119. package/components/header-1177/header-1177-nav-item-mobile-base.d.ts +3 -0
  120. package/components/header-1177/header-1177-nav-item-mobile-base.js +1 -0
  121. package/components/header-1177/header-1177-nav-item-mobile.d.ts +3 -0
  122. package/components/header-1177/header-1177-nav-item-mobile.js +1 -0
  123. package/components/header-1177/header-1177-nav-item.d.ts +3 -0
  124. package/components/header-1177/header-1177-nav-item.js +6 -29
  125. package/components/header-1177/header-1177-nav.d.ts +3 -0
  126. package/components/header-1177/header-1177-nav.js +2 -1
  127. package/components/header-1177/header-1177-region-picker-base.d.ts +3 -0
  128. package/components/header-1177/header-1177-region-picker-base.js +1 -0
  129. package/components/header-1177/header-1177-region-picker-mobile-base.d.ts +3 -0
  130. package/components/header-1177/header-1177-region-picker-mobile-base.js +1 -0
  131. package/components/header-1177/header-1177-region-picker-mobile.d.ts +3 -0
  132. package/components/header-1177/header-1177-region-picker-mobile.js +1 -0
  133. package/components/header-1177/header-1177-region-picker.d.ts +3 -0
  134. package/components/header-1177/header-1177-region-picker.js +1 -0
  135. package/components/header-1177/header-1177.d.ts +3 -0
  136. package/components/header-1177/header-1177.js +1 -0
  137. package/components/header-1177-admin/header-1177-admin-avatar-base.d.ts +3 -0
  138. package/components/header-1177-admin/header-1177-admin-avatar-base.js +2 -1
  139. package/components/header-1177-admin/header-1177-admin-avatar-mobile-base.d.ts +3 -0
  140. package/components/header-1177-admin/header-1177-admin-avatar-mobile-base.js +2 -1
  141. package/components/header-1177-admin/header-1177-admin-avatar-mobile.d.ts +3 -0
  142. package/components/header-1177-admin/header-1177-admin-avatar-mobile.js +7 -7
  143. package/components/header-1177-admin/header-1177-admin-avatar.d.ts +3 -0
  144. package/components/header-1177-admin/header-1177-admin-avatar.js +7 -25
  145. package/components/header-1177-admin/header-1177-admin-base.d.ts +3 -0
  146. package/components/header-1177-admin/header-1177-admin-base.js +1 -0
  147. package/components/header-1177-admin/header-1177-admin-item-base.d.ts +3 -0
  148. package/components/header-1177-admin/header-1177-admin-item-base.js +1 -0
  149. package/components/header-1177-admin/header-1177-admin-item.d.ts +3 -0
  150. package/components/header-1177-admin/header-1177-admin-item.js +1 -0
  151. package/components/header-1177-admin/header-1177-admin-menu-mobile-base.d.ts +3 -0
  152. package/components/header-1177-admin/header-1177-admin-menu-mobile-base.js +1 -0
  153. package/components/header-1177-admin/header-1177-admin-menu-mobile.d.ts +3 -0
  154. package/components/header-1177-admin/header-1177-admin-menu-mobile.js +7 -26
  155. package/components/header-1177-admin/header-1177-admin-nav-base.d.ts +6 -1
  156. package/components/header-1177-admin/header-1177-admin-nav-base.js +5 -3
  157. package/components/header-1177-admin/header-1177-admin-nav-item-base.d.ts +3 -0
  158. package/components/header-1177-admin/header-1177-admin-nav-item-base.js +1 -0
  159. package/components/header-1177-admin/header-1177-admin-nav-item-mobile-base.d.ts +3 -0
  160. package/components/header-1177-admin/header-1177-admin-nav-item-mobile-base.js +1 -0
  161. package/components/header-1177-admin/header-1177-admin-nav-item-mobile.d.ts +3 -0
  162. package/components/header-1177-admin/header-1177-admin-nav-item-mobile.js +1 -0
  163. package/components/header-1177-admin/header-1177-admin-nav-item.d.ts +3 -0
  164. package/components/header-1177-admin/header-1177-admin-nav-item.js +6 -29
  165. package/components/header-1177-admin/header-1177-admin-nav.d.ts +6 -1
  166. package/components/header-1177-admin/header-1177-admin-nav.js +3 -2
  167. package/components/header-1177-admin/header-1177-admin.d.ts +3 -0
  168. package/components/header-1177-admin/header-1177-admin.js +1 -0
  169. package/components/header-1177-pro/header-1177-pro-avatar-base.d.ts +3 -0
  170. package/components/header-1177-pro/header-1177-pro-avatar-base.js +1 -0
  171. package/components/header-1177-pro/header-1177-pro-avatar-mobile-base.d.ts +3 -0
  172. package/components/header-1177-pro/header-1177-pro-avatar-mobile-base.js +1 -0
  173. package/components/header-1177-pro/header-1177-pro-avatar-mobile.d.ts +3 -0
  174. package/components/header-1177-pro/header-1177-pro-avatar-mobile.js +6 -5
  175. package/components/header-1177-pro/header-1177-pro-avatar.d.ts +3 -0
  176. package/components/header-1177-pro/header-1177-pro-avatar.js +7 -26
  177. package/components/header-1177-pro/header-1177-pro-base.d.ts +3 -0
  178. package/components/header-1177-pro/header-1177-pro-base.js +1 -0
  179. package/components/header-1177-pro/header-1177-pro-item-base.d.ts +3 -0
  180. package/components/header-1177-pro/header-1177-pro-item-base.js +1 -0
  181. package/components/header-1177-pro/header-1177-pro-item.d.ts +3 -0
  182. package/components/header-1177-pro/header-1177-pro-item.js +1 -0
  183. package/components/header-1177-pro/header-1177-pro-menu-mobile-base.d.ts +3 -0
  184. package/components/header-1177-pro/header-1177-pro-menu-mobile-base.js +1 -0
  185. package/components/header-1177-pro/header-1177-pro-menu-mobile.d.ts +3 -0
  186. package/components/header-1177-pro/header-1177-pro-menu-mobile.js +7 -26
  187. package/components/header-1177-pro/header-1177-pro-nav-base.d.ts +6 -1
  188. package/components/header-1177-pro/header-1177-pro-nav-base.js +5 -3
  189. package/components/header-1177-pro/header-1177-pro-nav-item-base.d.ts +3 -0
  190. package/components/header-1177-pro/header-1177-pro-nav-item-base.js +1 -0
  191. package/components/header-1177-pro/header-1177-pro-nav-item-mobile-base.d.ts +3 -0
  192. package/components/header-1177-pro/header-1177-pro-nav-item-mobile-base.js +1 -0
  193. package/components/header-1177-pro/header-1177-pro-nav-item-mobile.d.ts +3 -0
  194. package/components/header-1177-pro/header-1177-pro-nav-item-mobile.js +1 -0
  195. package/components/header-1177-pro/header-1177-pro-nav-item.d.ts +3 -0
  196. package/components/header-1177-pro/header-1177-pro-nav-item.js +6 -29
  197. package/components/header-1177-pro/header-1177-pro-nav.d.ts +6 -1
  198. package/components/header-1177-pro/header-1177-pro-nav.js +3 -2
  199. package/components/header-1177-pro/header-1177-pro-region-picker-base.d.ts +3 -0
  200. package/components/header-1177-pro/header-1177-pro-region-picker-base.js +2 -1
  201. package/components/header-1177-pro/header-1177-pro-region-picker-mobile-base.d.ts +5 -1
  202. package/components/header-1177-pro/header-1177-pro-region-picker-mobile-base.js +4 -2
  203. package/components/header-1177-pro/header-1177-pro-region-picker-mobile.d.ts +3 -0
  204. package/components/header-1177-pro/header-1177-pro-region-picker-mobile.js +2 -1
  205. package/components/header-1177-pro/header-1177-pro-region-picker.d.ts +3 -0
  206. package/components/header-1177-pro/header-1177-pro-region-picker.js +1 -0
  207. package/components/header-1177-pro/header-1177-pro.d.ts +3 -0
  208. package/components/header-1177-pro/header-1177-pro.js +1 -0
  209. package/components/header-inera/header-inera-base.d.ts +3 -0
  210. package/components/header-inera/header-inera-base.js +1 -0
  211. package/components/header-inera/header-inera-item-base.d.ts +3 -0
  212. package/components/header-inera/header-inera-item-base.js +1 -0
  213. package/components/header-inera/header-inera-item.d.ts +3 -0
  214. package/components/header-inera/header-inera-item.js +1 -0
  215. package/components/header-inera/header-inera-menu-mobile-base.d.ts +3 -0
  216. package/components/header-inera/header-inera-menu-mobile-base.js +1 -0
  217. package/components/header-inera/header-inera-menu-mobile.d.ts +3 -0
  218. package/components/header-inera/header-inera-menu-mobile.js +7 -26
  219. package/components/header-inera/header-inera-nav-base.d.ts +3 -0
  220. package/components/header-inera/header-inera-nav-base.js +1 -0
  221. package/components/header-inera/header-inera-nav-item-base.d.ts +3 -0
  222. package/components/header-inera/header-inera-nav-item-base.js +1 -0
  223. package/components/header-inera/header-inera-nav-item.d.ts +3 -0
  224. package/components/header-inera/header-inera-nav-item.js +6 -29
  225. package/components/header-inera/header-inera-nav.d.ts +3 -0
  226. package/components/header-inera/header-inera-nav.js +1 -0
  227. package/components/header-inera/header-inera.d.ts +3 -0
  228. package/components/header-inera/header-inera.js +1 -0
  229. package/components/header-inera-admin/header-inera-admin-avatar-base.d.ts +3 -0
  230. package/components/header-inera-admin/header-inera-admin-avatar-base.js +2 -1
  231. package/components/header-inera-admin/header-inera-admin-avatar-mobile-base.d.ts +3 -0
  232. package/components/header-inera-admin/header-inera-admin-avatar-mobile-base.js +2 -1
  233. package/components/header-inera-admin/header-inera-admin-avatar-mobile.d.ts +3 -0
  234. package/components/header-inera-admin/header-inera-admin-avatar-mobile.js +6 -5
  235. package/components/header-inera-admin/header-inera-admin-avatar.d.ts +3 -0
  236. package/components/header-inera-admin/header-inera-admin-avatar.js +7 -25
  237. package/components/header-inera-admin/header-inera-admin-base.d.ts +3 -0
  238. package/components/header-inera-admin/header-inera-admin-base.js +1 -0
  239. package/components/header-inera-admin/header-inera-admin-item-base.d.ts +3 -0
  240. package/components/header-inera-admin/header-inera-admin-item-base.js +1 -0
  241. package/components/header-inera-admin/header-inera-admin-item.d.ts +3 -0
  242. package/components/header-inera-admin/header-inera-admin-item.js +1 -0
  243. package/components/header-inera-admin/header-inera-admin-menu-mobile-base.d.ts +3 -0
  244. package/components/header-inera-admin/header-inera-admin-menu-mobile-base.js +2 -1
  245. package/components/header-inera-admin/header-inera-admin-menu-mobile.d.ts +3 -0
  246. package/components/header-inera-admin/header-inera-admin-menu-mobile.js +7 -26
  247. package/components/header-inera-admin/header-inera-admin-nav-base.d.ts +6 -1
  248. package/components/header-inera-admin/header-inera-admin-nav-base.js +5 -3
  249. package/components/header-inera-admin/header-inera-admin-nav-item-base.d.ts +3 -0
  250. package/components/header-inera-admin/header-inera-admin-nav-item-base.js +1 -0
  251. package/components/header-inera-admin/header-inera-admin-nav-item-mobile-base.d.ts +3 -0
  252. package/components/header-inera-admin/header-inera-admin-nav-item-mobile-base.js +1 -0
  253. package/components/header-inera-admin/header-inera-admin-nav-item-mobile.d.ts +3 -0
  254. package/components/header-inera-admin/header-inera-admin-nav-item-mobile.js +1 -0
  255. package/components/header-inera-admin/header-inera-admin-nav-item.d.ts +3 -0
  256. package/components/header-inera-admin/header-inera-admin-nav-item.js +6 -29
  257. package/components/header-inera-admin/header-inera-admin-nav.d.ts +6 -1
  258. package/components/header-inera-admin/header-inera-admin-nav.js +3 -2
  259. package/components/header-inera-admin/header-inera-admin.d.ts +3 -0
  260. package/components/header-inera-admin/header-inera-admin.js +1 -0
  261. package/components/header-inera-general/header-inera-general-base.d.ts +16 -0
  262. package/components/header-inera-general/header-inera-general-base.js +12 -0
  263. package/components/header-inera-general/header-inera-general-item-base.d.ts +11 -0
  264. package/components/header-inera-general/header-inera-general-item-base.js +13 -0
  265. package/components/header-inera-general/header-inera-general-item.d.ts +10 -0
  266. package/components/header-inera-general/header-inera-general-item.js +12 -0
  267. package/components/header-inera-general/header-inera-general-menu-mobile-base.d.ts +15 -0
  268. package/components/header-inera-general/header-inera-general-menu-mobile-base.js +19 -0
  269. package/components/header-inera-general/header-inera-general-menu-mobile.d.ts +13 -0
  270. package/components/header-inera-general/header-inera-general-menu-mobile.js +31 -0
  271. package/components/header-inera-general/header-inera-general-nav-base.d.ts +10 -0
  272. package/components/header-inera-general/header-inera-general-nav-base.js +11 -0
  273. package/components/header-inera-general/header-inera-general-nav-item-base.d.ts +21 -0
  274. package/components/header-inera-general/header-inera-general-nav-item-base.js +27 -0
  275. package/components/header-inera-general/header-inera-general-nav-item.d.ts +18 -0
  276. package/components/header-inera-general/header-inera-general-nav-item.js +27 -0
  277. package/components/header-inera-general/header-inera-general-nav.d.ts +8 -0
  278. package/components/header-inera-general/header-inera-general-nav.js +12 -0
  279. package/components/header-inera-general/header-inera-general.d.ts +15 -0
  280. package/components/header-inera-general/header-inera-general.js +11 -0
  281. package/components/header-patient/header-patient.d.ts +3 -0
  282. package/components/header-patient/header-patient.js +1 -0
  283. package/components/link/action-link.d.ts +3 -0
  284. package/components/link/action-link.js +2 -1
  285. package/components/link/box-link.d.ts +3 -0
  286. package/components/link/box-link.js +1 -0
  287. package/components/link/link.d.ts +3 -0
  288. package/components/link/link.js +1 -0
  289. package/components/list-pagination/list-pagination-links.d.ts +3 -0
  290. package/components/list-pagination/list-pagination-links.js +1 -0
  291. package/components/list-pagination/list-pagination.d.ts +3 -0
  292. package/components/list-pagination/list-pagination.js +4 -3
  293. package/components/mobile-menu/mobile-item-base.d.ts +3 -0
  294. package/components/mobile-menu/mobile-item-base.js +1 -0
  295. package/components/mobile-menu/mobile-item.d.ts +3 -0
  296. package/components/mobile-menu/mobile-item.js +1 -0
  297. package/components/mobile-menu/mobile-menu.d.ts +3 -0
  298. package/components/mobile-menu/mobile-menu.js +1 -0
  299. package/components/navigation-content/navigation-content.d.ts +3 -0
  300. package/components/navigation-content/navigation-content.js +1 -0
  301. package/components/navigation-local/navigation-local.d.ts +3 -0
  302. package/components/navigation-local/navigation-local.js +1 -0
  303. package/components/notification-badge/notification-badge.d.ts +2 -4
  304. package/components/notification-badge/notification-badge.js +6 -3
  305. package/components/popover/popover-base.d.ts +4 -1
  306. package/components/popover/popover-base.js +1 -0
  307. package/components/popover/popover-content.d.ts +7 -1
  308. package/components/popover/popover-content.js +6 -10
  309. package/components/popover/popover.d.ts +3 -0
  310. package/components/popover/popover.js +141 -52
  311. package/components/progressbar/progressbar.d.ts +4 -4
  312. package/components/progressbar/progressbar.js +5 -3
  313. package/components/puff-list/puff-list-item-date.d.ts +3 -0
  314. package/components/puff-list/puff-list-item-date.js +1 -0
  315. package/components/puff-list/puff-list-item-info.d.ts +3 -0
  316. package/components/puff-list/puff-list-item-info.js +1 -0
  317. package/components/puff-list/puff-list-item.d.ts +1 -1
  318. package/components/puff-list/puff-list-item.js +11 -13
  319. package/components/puff-list/puff-list.d.ts +4 -1
  320. package/components/puff-list/puff-list.js +2 -1
  321. package/components/region-icon/region-icon.d.ts +3 -0
  322. package/components/region-icon/region-icon.js +1 -0
  323. package/components/side-menu/side-menu.d.ts +3 -0
  324. package/components/side-menu/side-menu.js +1 -0
  325. package/components/side-panel/side-panel-base.d.ts +1 -0
  326. package/components/side-panel/side-panel-base.js +1 -1
  327. package/components/side-panel/side-panel-provider.d.ts +3 -0
  328. package/components/side-panel/side-panel-provider.js +1 -0
  329. package/components/side-panel/side-panel.d.ts +3 -0
  330. package/components/side-panel/side-panel.js +29 -7
  331. package/components/stepper/step-base.js +1 -1
  332. package/components/stepper/step.js +11 -4
  333. package/components/stepper/stepper.d.ts +3 -0
  334. package/components/stepper/stepper.js +1 -0
  335. package/components/tabs/tabs-base.d.ts +3 -0
  336. package/components/tabs/tabs-base.js +1 -0
  337. package/components/tabs/tabs.d.ts +3 -0
  338. package/components/tabs/tabs.js +1 -0
  339. package/components/tag/tag.d.ts +1 -1
  340. package/components/tag/tag.js +4 -3
  341. package/components/toolbar/toolbar.d.ts +5 -0
  342. package/components/toolbar/toolbar.js +11 -0
  343. package/components/tooltip/tooltip-base.d.ts +5 -1
  344. package/components/tooltip/tooltip-base.js +3 -2
  345. package/components/tooltip/tooltip.d.ts +3 -0
  346. package/components/tooltip/tooltip.js +26 -1
  347. package/components/utils/hooks/useClickOutside.d.ts +1 -9
  348. package/components/utils/hooks/useClickOutside.js +9 -16
  349. package/components/utils/hooks/useLinkClick.d.ts +2 -0
  350. package/components/utils/hooks/useLinkClick.js +22 -0
  351. package/index.d.ts +24 -0
  352. package/index.js +12 -0
  353. package/package.json +2 -2
@@ -1,7 +1,9 @@
1
+ import React from "react";
1
2
  import { HTMLAttributes, ReactNode } from "react";
2
3
  import "@inera/ids-design/components/accordion/accordion.css";
3
4
  interface IDSAccordionBaseProps extends HTMLAttributes<HTMLDivElement> {
4
5
  headline: ReactNode;
6
+ subtitle?: string;
5
7
  expanded?: boolean;
6
8
  level?: 1 | 2;
7
9
  headlineSize?: "m" | "s" | "xs";
@@ -10,8 +12,9 @@ interface IDSAccordionBaseProps extends HTMLAttributes<HTMLDivElement> {
10
12
  children?: ReactNode;
11
13
  onToggleAccordion?: () => void;
12
14
  client?: boolean;
15
+ accordionRef?: React.Ref<HTMLDivElement>;
13
16
  }
14
- export declare function IDSAccordionBase({ headline, expanded, level, headlineSize, lean, noBorder, onToggleAccordion, client, children, className, ...props }: IDSAccordionBaseProps): import("react/jsx-runtime").JSX.Element;
17
+ export declare function IDSAccordionBase({ headline, subtitle, expanded, level, headlineSize, lean, noBorder, onToggleAccordion, client, children, className, accordionRef, ...props }: IDSAccordionBaseProps): import("react/jsx-runtime").JSX.Element;
15
18
  export declare namespace IDSAccordionBase {
16
19
  var displayName: string;
17
20
  }
@@ -3,15 +3,41 @@ import clsx from 'clsx';
3
3
  import React, { useId } from 'react';
4
4
  import '@inera/ids-design/components/accordion/accordion.css';
5
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()}`;
6
+ function IDSAccordionBase({ headline, subtitle, expanded = false, level = 1, headlineSize = "m", lean = false, noBorder, onToggleAccordion, client = false, children, className, accordionRef, ...props }) {
7
+ const reactId = useId();
8
+ const headerId = `accordion-header-${reactId}`;
9
+ const contentId = `accordion-content-${reactId}`;
8
10
  const hasChildren = !!React.Children.toArray(children).length;
9
11
  const handleKeyDown = (e) => {
10
12
  if (!onToggleAccordion)
11
13
  return;
12
- if (e.key === "Enter" || e.key === " ") {
13
- e.preventDefault();
14
- onToggleAccordion();
14
+ const container = e.currentTarget.closest("[data-accordion-root]") || document;
15
+ const items = Array.from(container.querySelectorAll("[data-accordion-header]"));
16
+ const currentIndex = items.indexOf(e.currentTarget);
17
+ if (currentIndex === -1)
18
+ return;
19
+ switch (e.key) {
20
+ case "Enter":
21
+ case " ":
22
+ e.preventDefault();
23
+ onToggleAccordion();
24
+ break;
25
+ case "ArrowDown":
26
+ e.preventDefault();
27
+ items[currentIndex + 1]?.focus();
28
+ break;
29
+ case "ArrowUp":
30
+ e.preventDefault();
31
+ items[currentIndex - 1]?.focus();
32
+ break;
33
+ case "Home":
34
+ e.preventDefault();
35
+ items[0]?.focus();
36
+ break;
37
+ case "End":
38
+ e.preventDefault();
39
+ items[items.length - 1]?.focus();
40
+ break;
15
41
  }
16
42
  };
17
43
  const toggleHandlers = client && onToggleAccordion
@@ -20,13 +46,13 @@ function IDSAccordionBase({ headline, expanded = false, level = 1, headlineSize
20
46
  onKeyDown: handleKeyDown
21
47
  }
22
48
  : {};
23
- return (jsxs("div", { ...props, className: clsx("ids-accordion", {
49
+ return (jsxs("div", { ...props, ref: accordionRef, className: clsx("ids-accordion", {
24
50
  "ids-accordion--expanded": expanded,
25
51
  "ids-accordion--no-border": noBorder,
26
52
  "ids-accordion--lean": lean,
27
53
  "ids-accordion--has-children": !!hasChildren,
28
54
  "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 })] }));
55
+ }, className), children: [jsx("div", { className: clsx("ids-accordion__button", `ids-accordion__button--${headlineSize}`), role: "button", tabIndex: 0, "data-accordion-header": true, "aria-expanded": expanded, "aria-controls": contentId, ...toggleHandlers, children: jsxs("div", { id: headerId, className: clsx("ids-accordion__headline", `ids-accordion__headline-${level}`, `ids-accordion__headline--${headlineSize}`, expanded && "ids-accordion__headline--expanded"), children: [headline, !!subtitle && jsx("div", { className: "ids-accordion__subtitle", children: subtitle })] }) }), jsx("div", { "aria-hidden": !expanded, id: contentId, "aria-labelledby": headerId, role: "region", className: "ids-accordion__content", children: jsx("div", { "data-accordion-root": true, children: children }) })] }));
30
56
  }
31
57
  IDSAccordionBase.displayName = "IDSAccordionBase";
32
58
 
@@ -1,16 +1,19 @@
1
1
  import React, { ReactNode } from "react";
2
2
  interface IDSAccordionProps extends React.HTMLAttributes<HTMLDivElement> {
3
3
  headline: ReactNode;
4
+ subtitle?: string;
4
5
  accordions?: ReactNode;
5
6
  headlineSize?: "m" | "s" | "xs";
6
7
  level?: 1 | 2;
7
8
  expanded?: boolean;
9
+ defaultExpanded?: boolean;
8
10
  lean?: boolean;
9
11
  noBorder?: boolean;
10
12
  onCollapsed?: () => void;
11
13
  onExpanded?: () => void;
14
+ onExpandedChange?: (expanded: boolean) => void;
12
15
  }
13
- export declare function IDSAccordion({ headline, accordions, level, headlineSize, expanded, lean, noBorder, onCollapsed, onExpanded, children, className, ...props }: IDSAccordionProps): import("react/jsx-runtime").JSX.Element;
16
+ export declare function IDSAccordion({ headline, subtitle, accordions, level, headlineSize, expanded, defaultExpanded, lean, noBorder, onCollapsed, onExpanded, onExpandedChange, children, ...props }: IDSAccordionProps): import("react/jsx-runtime").JSX.Element;
14
17
  export declare namespace IDSAccordion {
15
18
  var displayName: string;
16
19
  }
@@ -3,26 +3,29 @@ import { jsx } from 'react/jsx-runtime';
3
3
  import { useState, useRef, useEffect } from 'react';
4
4
  import { IDSAccordionBase } from './accordion-base.js';
5
5
 
6
- function IDSAccordion({ headline, accordions, level = 1, headlineSize = level === 2 ? "s" : "m", expanded = false, lean = false, noBorder = false, onCollapsed, onExpanded, children, className, ...props }) {
7
- const [isExpanded, setIsExpanded] = useState(expanded);
6
+ function IDSAccordion({ headline, subtitle, accordions, level = 1, headlineSize = level === 2 ? "s" : "m", expanded, defaultExpanded = false, lean = false, noBorder = false, onCollapsed, onExpanded, onExpandedChange, children, ...props }) {
7
+ const isControlled = expanded !== undefined;
8
+ const [internalExpanded, setInternalExpanded] = useState(defaultExpanded);
8
9
  const [isLean, setIsLean] = useState(lean);
9
10
  const accordionRef = useRef(null);
11
+ const isExpanded = isControlled ? expanded : internalExpanded;
10
12
  useEffect(() => {
11
13
  if (level === 1 && accordionRef.current?.closest(".ids-card") && !accordions) {
12
14
  setIsLean(true);
13
15
  }
14
- }, [level]);
15
- useEffect(() => {
16
- setIsExpanded(expanded);
17
- }, [expanded]);
16
+ }, [level, accordions]);
18
17
  const toggleExpanded = () => {
19
- setIsExpanded(prev => !prev);
20
- if (isExpanded)
21
- onCollapsed?.();
22
- else
18
+ const next = !isExpanded;
19
+ if (!isControlled) {
20
+ setInternalExpanded(next);
21
+ }
22
+ onExpandedChange?.(next);
23
+ if (next)
23
24
  onExpanded?.();
25
+ else
26
+ onCollapsed?.();
24
27
  };
25
- 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 }) }));
28
+ return (jsx(IDSAccordionBase, { ...props, client: true, accordionRef: accordionRef, headline: headline, subtitle: subtitle, level: level, headlineSize: headlineSize, expanded: isExpanded, lean: isLean, noBorder: noBorder, onToggleAccordion: toggleExpanded, children: children }));
26
29
  }
27
30
  IDSAccordion.displayName = "IDSAccordion";
28
31
 
@@ -19,3 +19,6 @@ export interface IDSAlertBaseProps extends React.HTMLAttributes<HTMLDivElement>
19
19
  client?: boolean;
20
20
  }
21
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;
22
+ export declare namespace IDSAlertBase {
23
+ var displayName: string;
24
+ }
@@ -20,10 +20,11 @@ function IDSAlertBase({ collapsible = false, ribbon = false, collapsed = false,
20
20
  "ids-alert--collapsed": collapsed,
21
21
  "ids-alert--ribbon": ribbon,
22
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", {
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", { type: "button", className: "ids-alert__close", ...closeHandler, "aria-label": srCloseText }))] })) : (jsxs(Fragment, { children: [jsxs("div", { className: "ids-alert__header", children: [collapsible && !compact && !ribbon && (jsx("button", { type: "button", className: clsx("ids-alert__expand-button", {
25
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 }) })] })) }));
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", { type: "button", className: "ids-alert__close", ...closeHandler, "aria-label": srCloseText }))] }), jsx("div", { id: contentId, children: !collapsed && jsx("div", { className: "ids-alert__content", children: children }) })] })) }));
27
27
  }
28
+ IDSAlertBase.displayName = "IDSAlertBase";
28
29
 
29
30
  export { IDSAlertBase };
@@ -1,5 +1,10 @@
1
1
  import { IDSAlertBaseProps } from "./alert-base";
2
2
  export interface IDSAlertProps extends Omit<IDSAlertBaseProps, "contentId" | "onToggleCollapse"> {
3
+ collapsed?: boolean;
4
+ defaultCollapsed?: boolean;
3
5
  onCollapsedChange?: (isCollapsed: boolean) => void;
4
6
  }
5
- export declare function IDSAlert({ collapsed, onCollapsedChange, onClose, children, className, ...props }: IDSAlertProps): import("react/jsx-runtime").JSX.Element;
7
+ export declare function IDSAlert({ collapsed, defaultCollapsed, onCollapsedChange, onClose, children, className, ...props }: IDSAlertProps): import("react/jsx-runtime").JSX.Element;
8
+ export declare namespace IDSAlert {
9
+ var displayName: string;
10
+ }
@@ -1,22 +1,25 @@
1
1
  "use client";
2
2
  import { jsx } from 'react/jsx-runtime';
3
- import { useState, useEffect } from 'react';
3
+ import { useState } from 'react';
4
4
  import { IDSAlertBase } from './alert-base.js';
5
5
 
6
- function IDSAlert({ collapsed = false, onCollapsedChange, onClose, children, className, ...props }) {
7
- const [isCollapsed, setIsCollapsed] = useState(collapsed);
8
- useEffect(() => {
9
- setIsCollapsed(collapsed);
10
- }, [collapsed]);
6
+ // FIXME 10.0 byt till expanded och defaultExpanded?
7
+ function IDSAlert({ collapsed, defaultCollapsed = false, onCollapsedChange, onClose, children, className, ...props }) {
8
+ const isControlled = collapsed !== undefined;
9
+ const [internalCollapsed, setInternalCollapsed] = useState(defaultCollapsed);
10
+ const isCollapsed = isControlled ? collapsed : internalCollapsed;
11
11
  const handleToggleCollapse = () => {
12
- const newState = !isCollapsed;
13
- setIsCollapsed(newState);
14
- onCollapsedChange?.(newState);
12
+ const next = !isCollapsed;
13
+ if (!isControlled) {
14
+ setInternalCollapsed(next);
15
+ }
16
+ onCollapsedChange?.(next);
15
17
  };
16
18
  const handleClose = () => {
17
19
  onClose?.();
18
20
  };
19
21
  return (jsx(IDSAlertBase, { ...props, client: true, collapsed: isCollapsed, className: className, onToggleCollapse: handleToggleCollapse, onClose: handleClose, children: children }));
20
22
  }
23
+ IDSAlert.displayName = "IDSAlert";
21
24
 
22
25
  export { IDSAlert };
@@ -4,4 +4,4 @@ export interface IDSBadgeProps extends React.HTMLAttributes<HTMLDivElement> {
4
4
  type?: "primary" | "secondary" | "neutral" | "info" | "attention" | "success" | "error";
5
5
  icon?: string;
6
6
  }
7
- export declare function IDSBadge({ type, icon, children, className, ...props }: IDSBadgeProps): import("react/jsx-runtime").JSX.Element;
7
+ export declare const IDSBadge: React.NamedExoticComponent<IDSBadgeProps>;
@@ -1,9 +1,12 @@
1
1
  import { jsx, jsxs } from 'react/jsx-runtime';
2
+ import React from 'react';
2
3
  import clsx from 'clsx';
3
4
  import '@inera/ids-design/components/badge/badge.css';
4
5
 
5
- function IDSBadge({ type = "primary", icon, children, className, ...props }) {
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
- }
6
+ const IDSBadge = React.memo(function IDSBadge(props) {
7
+ const { type = "primary", icon, children, className, ...rest } = props;
8
+ return (jsx("div", { ...rest, 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] }) }));
9
+ });
10
+ IDSBadge.displayName = "IDSBadge";
8
11
 
9
12
  export { IDSBadge };
@@ -5,4 +5,7 @@ interface IDSBreadcrumbsProps extends React.HTMLAttributes<HTMLDivElement> {
5
5
  mobileLink?: React.ReactElement<React.AnchorHTMLAttributes<HTMLAnchorElement> | React.LinkHTMLAttributes<HTMLLinkElement>>;
6
6
  }
7
7
  export declare function IDSBreadcrumbs({ lead, mobileLink, children, className, ...props }: IDSBreadcrumbsProps): import("react/jsx-runtime").JSX.Element;
8
+ export declare namespace IDSBreadcrumbs {
9
+ var displayName: string;
10
+ }
8
11
  export {};
@@ -1,9 +1,29 @@
1
1
  import { jsxs, jsx } from 'react/jsx-runtime';
2
- import React from 'react';
2
+ import React, { useRef } from 'react';
3
3
  import clsx from 'clsx';
4
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
+ const listRef = useRef(null);
8
+ const handleKeyDown = (e) => {
9
+ if (!listRef.current)
10
+ return;
11
+ const items = listRef.current.querySelectorAll("[data-crumb] a, [data-crumb] button");
12
+ if (!items.length)
13
+ return;
14
+ const active = document.activeElement;
15
+ const currentIndex = Array.from(items).indexOf(active);
16
+ if (currentIndex === -1)
17
+ return;
18
+ if (e.key === "ArrowRight") {
19
+ e.preventDefault();
20
+ items[currentIndex + 1]?.focus();
21
+ }
22
+ if (e.key === "ArrowLeft") {
23
+ e.preventDefault();
24
+ items[currentIndex - 1]?.focus();
25
+ }
26
+ };
7
27
  const getMobileLink = () => {
8
28
  if (mobileLink) {
9
29
  return React.cloneElement(mobileLink, { className: "ids-breadcrumbs__mobile-link" });
@@ -17,14 +37,15 @@ function IDSBreadcrumbs({ lead = "Du är här", mobileLink, children, className,
17
37
  return links.flatMap((child, index) => {
18
38
  const isLast = index === links.length - 1;
19
39
  if (isLast) {
20
- return (jsx("li", { className: "ids-breadcrumbs__crumb ids-breadcrumbs__crumb--current", children: child }, index));
40
+ return (jsx("li", { className: "ids-breadcrumbs__crumb ids-breadcrumbs__crumb--current", "data-crumb": true, children: child }, index));
21
41
  }
22
42
  else {
23
- return (jsxs("li", { className: "ids-breadcrumbs__crumb", children: [child, jsx("span", { className: "ids-breadcrumbs__crumb__separator", "aria-hidden": "true", children: "/" })] }, index));
43
+ return (jsxs("li", { className: "ids-breadcrumbs__crumb", "data-crumb": true, children: [child, jsx("span", { className: "ids-breadcrumbs__crumb__separator", "aria-hidden": "true", children: "/" })] }, index));
24
44
  }
25
45
  });
26
46
  };
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()] }), mobileLink && (jsx("ol", { className: "ids-breadcrumbs__mobile", children: jsxs("li", { className: "ids-breadcrumbs__mobile-links", children: [jsx("span", { className: "ids-breadcrumbs__icon" }), getMobileLink()] }) }))] }));
47
+ return (jsxs("nav", { ...props, className: clsx("ids-breadcrumbs", className), "aria-label": lead, children: [jsxs("ol", { className: "ids-breadcrumbs__desktop", ref: listRef, onKeyDown: handleKeyDown, children: [jsx("li", { className: "ids-breadcrumbs__lead", children: lead }), getLinks()] }), mobileLink && (jsx("ol", { className: "ids-breadcrumbs__mobile", children: jsxs("li", { className: "ids-breadcrumbs__mobile-links", children: [jsx("span", { className: "ids-breadcrumbs__icon", "aria-hidden": "true" }), getMobileLink()] }) }))] }));
28
48
  }
49
+ IDSBreadcrumbs.displayName = "IDSBreadcrumbs";
29
50
 
30
51
  export { IDSBreadcrumbs };
@@ -9,4 +9,7 @@ interface IDSButtonGroupProps extends React.HTMLAttributes<HTMLDivElement> {
9
9
  break?: Break;
10
10
  }
11
11
  export declare function IDSButtonGroup({ rtl, justify, unresponsive, break: breakpoint, children, className, ...props }: IDSButtonGroupProps): import("react/jsx-runtime").JSX.Element;
12
+ export declare namespace IDSButtonGroup {
13
+ var displayName: string;
14
+ }
12
15
  export {};
@@ -9,5 +9,6 @@ function IDSButtonGroup({ rtl = false, justify = "start", unresponsive = false,
9
9
  }, className);
10
10
  return (jsx("div", { ...props, className: classNames, children: children }));
11
11
  }
12
+ IDSButtonGroup.displayName = "IDSButtonGroup";
12
13
 
13
14
  export { IDSButtonGroup };
@@ -4,20 +4,28 @@ import { forwardRef } from 'react';
4
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}`, {
8
- "ids-button--m-block": mBlock,
9
- "ids-button--s-block": sBlock,
10
- "ids-button--active": active,
11
- "ids-button--fab": fab,
12
- "ids-button--icon": (icon && !children) || iconButton,
13
- "ids-button--secondary": secondary,
14
- "ids-button--tertiary": tertiary,
15
- "ids-button--disabled": disabled,
16
- "ids-button--block": block,
17
- "ids-button--submit": submit,
18
- "ids-button--loading": loading,
19
- "ids-focus-anchor": focusAnchor
20
- }, className);
7
+ let classNames;
8
+ if (fab) {
9
+ classNames = clsx("ids-button", {
10
+ "ids-button--fab": fab,
11
+ "ids-focus-anchor": focusAnchor
12
+ }, className);
13
+ }
14
+ else {
15
+ classNames = clsx("ids-button", !!size && `ids-button--${size}`, {
16
+ "ids-button--m-block": mBlock,
17
+ "ids-button--s-block": sBlock,
18
+ "ids-button--active": active,
19
+ "ids-button--icon": (icon && !children) || iconButton,
20
+ "ids-button--secondary": secondary,
21
+ "ids-button--tertiary": tertiary,
22
+ "ids-button--disabled": disabled,
23
+ "ids-button--block": block,
24
+ "ids-button--submit": submit,
25
+ "ids-button--loading": loading,
26
+ "ids-focus-anchor": focusAnchor
27
+ }, className);
28
+ }
21
29
  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
30
  });
23
31
  IDSButton.displayName = "IDSButton";
@@ -10,4 +10,7 @@ interface IDSCardProps extends React.HTMLAttributes<HTMLDivElement> {
10
10
  interactive?: boolean;
11
11
  }
12
12
  export declare function IDSCard({ focusCard, fill, borderTop, lean, hideOnM, hideOnS, interactive, children, className, ...props }: IDSCardProps): import("react/jsx-runtime").JSX.Element;
13
+ export declare namespace IDSCard {
14
+ var displayName: string;
15
+ }
13
16
  export {};
@@ -6,12 +6,13 @@ function IDSCard({ focusCard = false, fill = false, borderTop = false, lean = fa
6
6
  return (jsxs("div", { ...props, className: clsx("ids-card", {
7
7
  "ids-card--fill": fill,
8
8
  "ids-card--border-top": !!borderTop && !focusCard,
9
- "ids-card--focus-card": !!focusCard && !borderTop,
9
+ "ids-card--focus": !!focusCard && !borderTop,
10
10
  "ids-card--hide-on-m": hideOnM,
11
11
  "ids-card--hide-on-s": hideOnS,
12
12
  "ids-card--lean": lean,
13
13
  "ids-card--interactive": !!interactive && !hideOnM && !hideOnS && !borderTop
14
14
  }, className), children: [!!borderTop && !focusCard && !interactive && jsx("div", { className: "ids-card__border-top" }), jsx("div", { className: "ids-card__content", children: children })] }));
15
15
  }
16
+ IDSCard.displayName = "IDSCard";
16
17
 
17
18
  export { IDSCard };
@@ -9,3 +9,6 @@ export interface IDSCarouselItemProps extends React.HTMLAttributes<HTMLDivElemen
9
9
  children: React.ReactNode;
10
10
  }
11
11
  export declare function IDSCarouselItem({ headline, step, description, activeSlide, previousSlide, nextSlide, children, className, ...props }: IDSCarouselItemProps): import("react/jsx-runtime").JSX.Element;
12
+ export declare namespace IDSCarouselItem {
13
+ var displayName: string;
14
+ }
@@ -22,5 +22,6 @@ function IDSCarouselItem({ headline, step, description, activeSlide = false, pre
22
22
  next: nextSlide
23
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
24
  }
25
+ IDSCarouselItem.displayName = "IDSCarouselItem";
25
26
 
26
27
  export { IDSCarouselItem };
@@ -14,4 +14,7 @@ interface IDSDateLabelProps extends DetailedHTMLProps<TimeHTMLAttributes<HTMLTim
14
14
  srText?: string;
15
15
  }
16
16
  export declare function IDSDateLabel({ date, year, month, day, monthLabel, dateTo, yearTo, monthTo, monthToLabel, srText, dayTo, children, className, ...props }: IDSDateLabelProps): import("react/jsx-runtime").JSX.Element;
17
+ export declare namespace IDSDateLabel {
18
+ var displayName: string;
19
+ }
17
20
  export {};
@@ -14,5 +14,6 @@ function IDSDateLabel({ date = null, year = 0, month = 0, day = 0, monthLabel =
14
14
  const getMonthToText = () => (monthToLabel ? monthToLabel : getMonthAsSweText(getMonthTo() - 1, 3));
15
15
  return (jsxs("span", { ...props, className: clsx("ids-date-label", className), "aria-label": srText, role: "text", children: [jsxs("time", { className: "ids-date-label__time", "aria-hidden": "true", children: [jsx("span", { className: "ids-date-label__day", children: getDay() }), jsx("span", { className: "ids-date-label__month", children: getMonthText() }), jsx("span", { className: "ids-date-label__year", children: getYear() })] }), !!(dateTo || (dayTo && monthTo && yearTo)) && (jsxs("time", { className: "ids-date-label__time ids-date-label__time--separator", "aria-hidden": "true", children: [jsx("span", { className: "ids-date-label__day", children: getDayTo() }), jsx("span", { className: "ids-date-label__month", children: getMonthToText() }), jsx("span", { className: "ids-date-label__year", children: getYearTo() })] }))] }));
16
16
  }
17
+ IDSDateLabel.displayName = "IDSDateLabel";
17
18
 
18
19
  export { IDSDateLabel };
@@ -13,7 +13,6 @@ export interface IDSDialogBaseProps extends HTMLAttributes<HTMLDivElement> {
13
13
  srClose?: string;
14
14
  noScrollAreaFocus?: boolean;
15
15
  noOverlay?: boolean;
16
- dialogRef?: React.Ref<HTMLDivElement>;
17
16
  scrollAreaRef?: React.Ref<HTMLDivElement>;
18
17
  onOverlayClick?: () => void;
19
18
  client?: boolean;
@@ -3,7 +3,7 @@ import { forwardRef, useId } from 'react';
3
3
  import clsx from 'clsx';
4
4
  import '@inera/ids-design/components/dialog/dialog.css';
5
5
 
6
- const IDSDialogBase = forwardRef(({ show = false, width, maxWidth, height, headline, actions, dismissible, onCloseDialog, srClose = "Stäng", noScrollAreaFocus, noOverlay = false, noFocusTrap = false, dialogRef, scrollAreaRef, onOverlayClick, client = false, children, className, ...props }, ref) => {
6
+ const IDSDialogBase = forwardRef(({ show = false, width, maxWidth, height, headline, actions, dismissible, onCloseDialog, srClose = "Stäng", noScrollAreaFocus, noOverlay = false, noFocusTrap = false, scrollAreaRef, onOverlayClick, client = false, children, className, ...props }, ref) => {
7
7
  const reactId = useId();
8
8
  const headlineId = `dialog-header-${reactId}`;
9
9
  const overlayHandler = client && onOverlayClick
@@ -16,11 +16,11 @@ const IDSDialogBase = forwardRef(({ show = false, width, maxWidth, height, headl
16
16
  onClick: onCloseDialog
17
17
  }
18
18
  : {};
19
- return (jsxs(Fragment, { children: [!noOverlay && (jsx("div", { className: `ids-dialog-overlay ${!show ? "ids-dialog-overlay--hidden" : ""}`, ...overlayHandler })), jsxs("div", { ...props, className: clsx("ids-dialog", {
19
+ return (jsxs(Fragment, { children: [!noOverlay && (jsx("div", { className: `ids-dialog-overlay ${!show ? "ids-dialog-overlay--hidden" : ""}`, ...overlayHandler, "aria-hidden": "true" })), jsxs("div", { ...props, className: clsx("ids-dialog", {
20
20
  "ids-dialog--hidden": !show,
21
21
  "ids-focus-trap": !noFocusTrap,
22
22
  "ids-dialog--dismissible": !!dismissible
23
- }, className), ref: dialogRef, role: "dialog", "aria-modal": "true", "aria-labelledby": headline ? headlineId : undefined, style: { width, maxWidth, height, maxHeight: height || undefined }, children: [dismissible && (jsx("div", { className: "ids-dialog__dismissible", children: jsx("button", { "aria-label": srClose, ...closeHandler, className: "ids-dialog__close-button" }) })), jsxs("div", { ref: scrollAreaRef, className: clsx("ids-dialog__body", {
23
+ }, className), ref: ref, role: "dialog", "aria-modal": "true", "aria-labelledby": headline ? headlineId : undefined, style: { width, maxWidth, height, maxHeight: height || undefined }, children: [dismissible && (jsx("div", { className: "ids-dialog__dismissible", children: jsx("button", { "aria-label": srClose, ...closeHandler, className: "ids-dialog__close-button" }) })), jsxs("div", { ref: scrollAreaRef, className: clsx("ids-dialog__body", {
24
24
  "ids-dialog__body--scroll-area-focus": !noScrollAreaFocus
25
25
  }), tabIndex: noScrollAreaFocus ? -1 : 0, children: [jsx("div", { className: "ids-dialog__body-headline", id: headlineId, children: headline }), jsx("div", { className: "ids-dialog__body-content", children: children }), actions && jsx("div", { className: "ids-dialog__footer", children: actions })] })] })] }));
26
26
  });
@@ -18,3 +18,6 @@ export interface IDSDialogProps extends HTMLAttributes<HTMLDivElement> {
18
18
  onVisibilityChange?: (isVisible: boolean) => void;
19
19
  }
20
20
  export declare function IDSDialog({ show, srClose, headline, width, maxWidth, height, trigger, actions, noOverlay, dismissible, autoFocus, noFocusTrap, persistent, keepScrollbar, noScrollAreaFocus, onVisibilityChange, children, className, ...props }: IDSDialogProps): import("react/jsx-runtime").JSX.Element;
21
+ export declare namespace IDSDialog {
22
+ var displayName: string;
23
+ }
@@ -1,6 +1,6 @@
1
1
  "use client";
2
2
  import { jsxs, Fragment, jsx } from 'react/jsx-runtime';
3
- import { useState, useRef, useEffect, useCallback } from 'react';
3
+ import { useState, useRef, useCallback, useEffect } from 'react';
4
4
  import { IDSDialogBase } from './dialog-base.js';
5
5
  import { useFocusTrap } from '../utils/hooks/useFocusTrap.js';
6
6
  import { useEsc } from '../utils/hooks/useEsc.js';
@@ -10,8 +10,23 @@ function IDSDialog({ show = false, srClose = "Stäng", headline, width, maxWidth
10
10
  const triggerRef = useRef(null);
11
11
  const dialogRef = useRef(null);
12
12
  const scrollAreaRef = useRef(null);
13
+ const closeDialog = useCallback(() => {
14
+ setIsVisible(false);
15
+ focusTrigger();
16
+ }, []);
13
17
  useFocusTrap(dialogRef.current, isVisible && !noFocusTrap);
14
- useEsc(() => setIsVisible(false), triggerRef, dialogRef, isVisible && !persistent);
18
+ useEsc(closeDialog, triggerRef, dialogRef, !persistent && isVisible);
19
+ const focusTrigger = () => {
20
+ const container = triggerRef.current;
21
+ if (!container)
22
+ return;
23
+ const el = container.querySelector('button, [href], input, [tabindex]:not([tabindex="-1"])');
24
+ el?.focus();
25
+ };
26
+ const overlayClick = useCallback(() => {
27
+ if (!persistent)
28
+ setIsVisible(false);
29
+ }, []);
15
30
  // Sync prop show
16
31
  useEffect(() => {
17
32
  setIsVisible(show);
@@ -53,23 +68,8 @@ function IDSDialog({ show = false, srClose = "Stäng", headline, width, maxWidth
53
68
  }
54
69
  }
55
70
  }, [isVisible, autoFocus]);
56
- const focusTrigger = () => {
57
- const container = triggerRef.current;
58
- if (!container)
59
- return;
60
- const focusable = container.querySelector('button, [href], input, [tabindex]:not([tabindex="-1"])');
61
- focusable?.focus();
62
- };
63
- const overlayClick = useCallback(() => {
64
- if (!persistent)
65
- setIsVisible(false);
66
- focusTrigger();
67
- }, []);
68
- const closeDialog = useCallback(() => {
69
- setIsVisible(false);
70
- focusTrigger();
71
- }, []);
72
- return (jsxs(Fragment, { children: [jsx("div", { className: "ids-dialog__trigger", "aria-haspopup": "dialog", ref: triggerRef, children: trigger }), jsx(IDSDialogBase, { ...props, client: true, className: className, show: isVisible, noOverlay: noOverlay, headline: headline, dismissible: dismissible, width: width, maxWidth: maxWidth, height: height, dialogRef: dialogRef, scrollAreaRef: scrollAreaRef, actions: actions, noFocusTrap: noFocusTrap, noScrollAreaFocus: noScrollAreaFocus, onCloseDialog: closeDialog, onOverlayClick: overlayClick, children: children })] }));
71
+ return (jsxs(Fragment, { children: [jsx("div", { className: "ids-dialog__trigger", "aria-haspopup": "dialog", ref: triggerRef, children: trigger }), jsx(IDSDialogBase, { ...props, client: true, className: className, show: isVisible, noOverlay: noOverlay, headline: headline, dismissible: dismissible, width: width, maxWidth: maxWidth, height: height, ref: dialogRef, scrollAreaRef: scrollAreaRef, actions: actions, noFocusTrap: noFocusTrap, noScrollAreaFocus: noScrollAreaFocus, onCloseDialog: closeDialog, onOverlayClick: overlayClick, children: children })] }));
73
72
  }
73
+ IDSDialog.displayName = "IDSDialog";
74
74
 
75
75
  export { IDSDialog };
@@ -4,7 +4,9 @@ import clsx from 'clsx';
4
4
  import '@inera/ids-design/components/dropdown/dropdown.css';
5
5
 
6
6
  function IDSDropdownBase({ expanded, trigger, triggerRef, onTriggerClick, position, mBlock = false, sBlock = false, client = false, children, className, maxHeight, minWidth, contentRef, ...props }) {
7
- const triggerId = `dropdown-trigger-${useId()}`;
7
+ const reactId = useId();
8
+ const triggerId = `dropdown-trigger-${reactId}`;
9
+ const contentId = `dropdown-trigger-${reactId}`;
8
10
  const handleKeyPress = (e) => {
9
11
  if (!!onTriggerClick && (e.key === "Enter" || e.key === " ")) {
10
12
  e.preventDefault();
@@ -23,6 +25,7 @@ function IDSDropdownBase({ expanded, trigger, triggerRef, onTriggerClick, positi
23
25
  id: triggerId,
24
26
  "aria-expanded": expanded,
25
27
  "aria-haspopup": "dialog",
28
+ "aria-controls": contentId,
26
29
  ...triggerHandlers,
27
30
  ...trigger.props
28
31
  })
@@ -31,12 +34,12 @@ function IDSDropdownBase({ expanded, trigger, triggerRef, onTriggerClick, positi
31
34
  "ids-dropdown--m-block": mBlock,
32
35
  "ids-dropdown--s-block": sBlock,
33
36
  "ids-dropdown--expanded": expanded
34
- }, className), children: [enhancedTrigger, jsx("div", { ...props, ref: contentRef, "aria-labelledby": triggerId, "aria-hidden": !expanded, className: clsx(`ids-dropdown-content ids-dropdown-content--position-${position}`, {
37
+ }, className), children: [enhancedTrigger, jsx("div", { id: contentId, ...props, ref: contentRef, "aria-labelledby": triggerId, hidden: !expanded, role: "dialog", "aria-modal": "true", className: clsx(`ids-dropdown-content ids-dropdown-content--position-${position}`, "ids-focus-trap", {
35
38
  "ids-dropdown-content--show": expanded,
36
39
  "ids-dropdown-content--mblock": mBlock,
37
40
  "ids-dropdown-content--sblock": sBlock,
38
41
  "ids-dropdown-content--scrollable": !!maxHeight
39
- }, className), style: { minWidth }, children: jsx("div", { className: "ids-dropdown-content__scroll-area", role: "menu", style: { maxHeight: maxHeight || "auto" }, tabIndex: !!maxHeight ? 0 : -1, children: children }) })] }));
42
+ }, className), style: { minWidth }, children: jsx("div", { className: "ids-dropdown-content__scroll-area", style: { maxHeight: maxHeight || "auto" }, tabIndex: !!maxHeight ? 0 : -1, children: children }) })] }));
40
43
  }
41
44
 
42
45
  export { IDSDropdownBase };
@@ -3,7 +3,7 @@ import { forwardRef } from 'react';
3
3
  import clsx from 'clsx';
4
4
 
5
5
  const IDSDropdownContentButton = forwardRef(({ icon, children, className, ...props }, ref) => {
6
- return (jsxs("button", { ...props, ref: ref, role: "menuitem", className: clsx("ids-dropdown-content__button", className), children: [icon && jsx("span", { className: `ids-icon-${icon} ids-dropdown--start-icon` }), children] }));
6
+ return (jsxs("button", { ...props, ref: ref, className: clsx("ids-dropdown-content__button", className), children: [icon && jsx("span", { className: `ids-icon-${icon} ids-dropdown--start-icon` }), children] }));
7
7
  });
8
8
  IDSDropdownContentButton.displayName = "IDSDropdownContentButton";
9
9
 
@@ -3,3 +3,6 @@ export interface IDSDropdownContentLinkProps extends Omit<HTMLAttributes<HTMLAnc
3
3
  children: ReactElement;
4
4
  }
5
5
  export declare function IDSDropdownContentLink({ children, className, ...props }: IDSDropdownContentLinkProps): ReactElement<unknown, string | import("react").JSXElementConstructor<any>>;
6
+ export declare namespace IDSDropdownContentLink {
7
+ var displayName: string;
8
+ }
@@ -6,9 +6,9 @@ function IDSDropdownContentLink({ children, className, ...props }) {
6
6
  return cloneElement(children, {
7
7
  ...props,
8
8
  className: clsx("ids-dropdown-content__link", className),
9
- role: "menuitem",
10
9
  children: content
11
10
  });
12
11
  }
12
+ IDSDropdownContentLink.displayName = "IDSDropdownContentLink";
13
13
 
14
14
  export { IDSDropdownContentLink };