@inera/ids-react 9.1.1 → 9.2.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 (355) 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 +8 -12
  54. package/components/form/datepicker/datepicker.js +25 -23
  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 +2 -2
  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 +4 -6
  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/useEsc.d.ts +1 -9
  350. package/components/utils/hooks/useEsc.js +14 -17
  351. package/components/utils/hooks/useLinkClick.d.ts +2 -0
  352. package/components/utils/hooks/useLinkClick.js +22 -0
  353. package/index.d.ts +24 -0
  354. package/index.js +12 -0
  355. package/package.json +2 -2
@@ -3,3 +3,6 @@ export interface IDSPuffListItemInfoProps extends React.HTMLAttributes<HTMLDivEl
3
3
  bottom?: boolean;
4
4
  }
5
5
  export declare function IDSPuffListItemInfo({ bottom, children, ...props }: IDSPuffListItemInfoProps): import("react/jsx-runtime").JSX.Element;
6
+ export declare namespace IDSPuffListItemInfo {
7
+ var displayName: string;
8
+ }
@@ -4,5 +4,6 @@ import clsx from 'clsx';
4
4
  function IDSPuffListItemInfo({ bottom = false, children, ...props }) {
5
5
  return (jsx("div", { ...props, className: clsx("ids-puff-list-item__info", { "ids-puff-list-item__info--bottom": bottom }), children: children }));
6
6
  }
7
+ IDSPuffListItemInfo.displayName = "IDSPuffListItemInfo";
7
8
 
8
9
  export { IDSPuffListItemInfo };
@@ -1,6 +1,6 @@
1
1
  import React, { ReactNode } from "react";
2
2
  import "@inera/ids-design/components/puff-list/puff-list.css";
3
- export interface IDSPuffListItemProps extends React.HTMLAttributes<HTMLDivElement> {
3
+ export interface IDSPuffListItemProps extends React.HTMLAttributes<HTMLElement> {
4
4
  header?: ReactNode;
5
5
  itemLink?: React.ReactElement;
6
6
  date?: React.ReactElement;
@@ -4,21 +4,19 @@ import clsx from 'clsx';
4
4
  import '@inera/ids-design/components/puff-list/puff-list.css';
5
5
 
6
6
  function IDSPuffListItem({ header, itemLink, date, dateTo, noContent = false, lean = false, dateLabel, extra, className, children, ...props }) {
7
- const renderBody = () => {
8
- const content = (jsxs(Fragment, { children: [jsx("div", { className: "ids-puff-list-item-header", children: header }), !noContent && jsx("div", { className: "ids-puff-list-item__body", children: children })] }));
9
- if (itemLink && isValidElement(itemLink)) {
10
- return cloneElement(itemLink, {
11
- ...itemLink.props,
12
- className: clsx("ids-puff-list-item__item-link", itemLink.props.className),
13
- children: content
14
- });
15
- }
16
- return content;
17
- };
18
- return (jsxs("div", { ...props, className: clsx("ids-puff-list-item", {
7
+ const Tag = lean ? "div" : "li";
8
+ const content = (jsxs("div", { className: "ids-puff-list-item__inner", children: [dateLabel && jsx("div", { className: "ids-puff-list-item__date-label", children: dateLabel }), jsxs("div", { className: "ids-puff-list-item__content-wrapper", children: [jsxs("div", { className: "ids-puff-list-item__content", children: [!!date && date, !!date && !!dateTo && (jsxs(Fragment, { children: [jsx("span", { className: "ids-puff-list-item__date-spacer", children: "\u2015" }), dateTo] })), jsx("div", { className: "ids-puff-list-item-header", children: header }), !noContent && jsx("div", { className: "ids-puff-list-item__body", children: children })] }), extra && jsx("div", { className: "ids-puff-list-item__extra-content", children: extra })] })] }));
9
+ const wrappedContent = itemLink && isValidElement(itemLink)
10
+ ? cloneElement(itemLink, {
11
+ ...itemLink.props,
12
+ className: clsx("ids-puff-list-item__item-link", itemLink.props.className),
13
+ children: content
14
+ })
15
+ : content;
16
+ return (jsx(Tag, { ...props, className: clsx("ids-puff-list-item", {
19
17
  "ids-puff-list-item--interactive": !!itemLink,
20
18
  "ids-puff-list-item--lean": !!lean
21
- }, className), children: [jsxs("div", { className: "ids-puff-list-item__inner", children: [dateLabel && jsx("div", { className: "ids-puff-list-item__date-label", children: dateLabel }), jsxs("div", { className: "ids-puff-list-item__content-wrapper", children: [jsxs("div", { className: "ids-puff-list-item__content", children: [!!date && date, !!date && !!dateTo && (jsxs(Fragment, { children: [jsx("span", { className: "ids-puff-list-item__date-spacer", children: "\u2015" }), dateTo] })), renderBody()] }), extra && jsx("div", { className: "ids-puff-list-item__extra-content", children: extra })] })] }), jsx("div", { className: "ids-puff-list-item-separator" })] }));
19
+ }, className), children: wrappedContent }));
22
20
  }
23
21
  IDSPuffListItem.displayName = "IDSPuffListItem";
24
22
 
@@ -1,7 +1,10 @@
1
1
  import React, { ReactNode } from "react";
2
2
  import "@inera/ids-design/components/puff-list/puff-list.css";
3
- interface IDSPuffListProps extends React.HTMLAttributes<HTMLDivElement> {
3
+ interface IDSPuffListProps extends React.HTMLAttributes<HTMLDListElement> {
4
4
  children?: ReactNode;
5
5
  }
6
6
  export declare function IDSPuffList({ children, className, ...props }: IDSPuffListProps): import("react/jsx-runtime").JSX.Element;
7
+ export declare namespace IDSPuffList {
8
+ var displayName: string;
9
+ }
7
10
  export {};
@@ -3,7 +3,8 @@ import clsx from 'clsx';
3
3
  import '@inera/ids-design/components/puff-list/puff-list.css';
4
4
 
5
5
  function IDSPuffList({ children, className, ...props }) {
6
- return (jsx("div", { ...props, className: clsx("ids-puff-list", className), children: children }));
6
+ return (jsx("ul", { ...props, className: clsx("ids-puff-list", className), children: children }));
7
7
  }
8
+ IDSPuffList.displayName = "IDSPuffList";
8
9
 
9
10
  export { IDSPuffList };
@@ -9,4 +9,7 @@ export interface IDSRegionIconProps extends React.HTMLAttributes<HTMLSpanElement
9
9
  inline?: boolean;
10
10
  }
11
11
  export declare function IDSRegionIcon({ name, size, colorPreset, light, inline, className, ...props }: IDSRegionIconProps): import("react/jsx-runtime").JSX.Element;
12
+ export declare namespace IDSRegionIcon {
13
+ var displayName: string;
14
+ }
12
15
  export {};
@@ -21,5 +21,6 @@ function IDSRegionIcon({ name, size = "m", colorPreset = 1, light = false, inlin
21
21
  };
22
22
  return (jsx("span", { ...props, className: clsx("ids-region-icon", `ids-region-icon--${name}`, `ids-region-icon--color-preset-${light ? 3 : colorPreset}`, { "ids-region-icon--inline": inline }, className), style: { fontSize: getSize() } }));
23
23
  }
24
+ IDSRegionIcon.displayName = "IDSRegionIcon";
24
25
 
25
26
  export { IDSRegionIcon };
@@ -11,3 +11,6 @@ export interface IDSSideMenuProps extends React.HTMLAttributes<HTMLDivElement> {
11
11
  onToggleMenu?: (isExpanded: boolean) => void;
12
12
  }
13
13
  export declare function IDSSideMenu({ expanded, onToggleMenu, srToggleText, className, ...props }: IDSSideMenuProps): import("react/jsx-runtime").JSX.Element;
14
+ export declare namespace IDSSideMenu {
15
+ var displayName: string;
16
+ }
@@ -24,5 +24,6 @@ function IDSSideMenu({ expanded = false, onToggleMenu, srToggleText = "Sektion",
24
24
  };
25
25
  return (jsx(IDSSideMenuBase, { ...props, client: true, className: className, srToggleText: srToggleText, isExpanded: isExpanded, onToggleMenu: handleToggleMenu, handleKeyDown: handleKeyDown }));
26
26
  }
27
+ IDSSideMenu.displayName = "IDSSideMenu";
27
28
 
28
29
  export { IDSSideMenu };
@@ -20,5 +20,6 @@ export interface IDSSidePanelBaseProps extends React.HTMLAttributes<HTMLDivEleme
20
20
  srOpen?: string;
21
21
  noScrollAreaFocus?: boolean;
22
22
  hamburgerRef?: React.Ref<HTMLButtonElement>;
23
+ componentRef?: React.Ref<HTMLDivElement>;
23
24
  }
24
25
  export declare const IDSSidePanelBase: React.ForwardRefExoticComponent<IDSSidePanelBaseProps & React.RefAttributes<HTMLDivElement>>;
@@ -3,7 +3,7 @@ import React, { forwardRef } from 'react';
3
3
  import clsx from 'clsx';
4
4
  import '@inera/ids-design/components/side-panel/side-panel.css';
5
5
 
6
- const IDSSidePanelBase = forwardRef(({ visible = false, left = false, elevated = false, menu = false, footer = false, noScrollAreaFocus = false, footerDarkmodeToggle, size = "m", srLabel = "Sidopanel", onTogglePanel, onClosePanel, srClose, srOpen, client, headline, footerLinks, footerText, hamburgerRef, className, children, ...props }, ref) => {
6
+ const IDSSidePanelBase = forwardRef(({ visible = false, left = false, elevated = false, menu = false, footer = false, noScrollAreaFocus = false, footerDarkmodeToggle, size = "m", srLabel = "Sidopanel", onTogglePanel, onClosePanel, srClose, srOpen, client, headline, footerLinks, footerText, hamburgerRef, componentRef, className, children, ...props }, ref) => {
7
7
  const [ready, setReady] = React.useState(false);
8
8
  React.useEffect(() => {
9
9
  setReady(true);
@@ -5,3 +5,6 @@ export interface IDSSidePanelProviderProps extends React.HTMLAttributes<HTMLDivE
5
5
  sidePanel: ReactNode;
6
6
  }
7
7
  export declare function IDSSidePanelProvider({ left, hideSidePanel, sidePanel, className, children, ...props }: IDSSidePanelProviderProps): import("react/jsx-runtime").JSX.Element;
8
+ export declare namespace IDSSidePanelProvider {
9
+ var displayName: string;
10
+ }
@@ -8,5 +8,6 @@ function IDSSidePanelProvider({ left, hideSidePanel, sidePanel, className, child
8
8
  }
9
9
  return (jsxs("div", { className: classNames, ...props, children: [children, " ", !hideSidePanel && sidePanel] }));
10
10
  }
11
+ IDSSidePanelProvider.displayName = "IDSSidePanelProvider";
11
12
 
12
13
  export { IDSSidePanelProvider };
@@ -20,3 +20,6 @@ export interface IDSSidePanelProps extends React.HTMLAttributes<HTMLDivElement>
20
20
  noScrollAreaFocus?: boolean;
21
21
  }
22
22
  export declare function IDSSidePanel({ show, menu, noScrollAreaFocus, srLabel, onVisibilityChange, srClose, srOpen, onOpen, onClose, className, children, ...props }: IDSSidePanelProps): import("react/jsx-runtime").JSX.Element;
23
+ export declare namespace IDSSidePanel {
24
+ var displayName: string;
25
+ }
@@ -5,12 +5,19 @@ import { IDSSidePanelBase } from './side-panel-base.js';
5
5
  import { useEsc } from '../utils/hooks/useEsc.js';
6
6
 
7
7
  function IDSSidePanel({ show, menu = false, noScrollAreaFocus = false, srLabel = "Sidopanel", onVisibilityChange, srClose = "Stäng", srOpen = "Öppna", onOpen, onClose, className, children, ...props }) {
8
- const internalRef = useRef(null);
8
+ const componentRef = useRef(null);
9
9
  const hamburgerRef = useRef(null);
10
10
  const isControlled = show !== undefined;
11
11
  const [internalShow, setInternalShow] = useState(false);
12
12
  const visible = isControlled ? show : internalShow;
13
- useEsc(() => setVisible(false), hamburgerRef, internalShow);
13
+ const togglePanel = () => setVisible(!visible);
14
+ const closePanel = () => {
15
+ setVisible(false);
16
+ if (!isControlled) {
17
+ onClose?.();
18
+ }
19
+ };
20
+ useEsc(closePanel, hamburgerRef, componentRef, internalShow);
14
21
  const setVisible = (value) => {
15
22
  if (!isControlled) {
16
23
  setInternalShow(value);
@@ -21,7 +28,7 @@ function IDSSidePanel({ show, menu = false, noScrollAreaFocus = false, srLabel =
21
28
  useEffect(() => {
22
29
  if (visible) {
23
30
  onOpen?.();
24
- const heading = internalRef.current?.querySelector("h1, h2, h3, h4, h5, h6");
31
+ const heading = componentRef.current?.querySelector("h1, h2, h3, h4, h5, h6");
25
32
  if (heading) {
26
33
  heading.setAttribute("tabindex", "-1");
27
34
  setTimeout(() => {
@@ -39,7 +46,7 @@ function IDSSidePanel({ show, menu = false, noScrollAreaFocus = false, srLabel =
39
46
  // Window resize ARIA attributes
40
47
  useEffect(() => {
41
48
  const handleResize = () => {
42
- const panel = internalRef.current;
49
+ const panel = componentRef.current;
43
50
  if (!panel)
44
51
  return;
45
52
  if (window.innerWidth <= 1024) {
@@ -57,8 +64,6 @@ function IDSSidePanel({ show, menu = false, noScrollAreaFocus = false, srLabel =
57
64
  window.addEventListener("resize", handleResize);
58
65
  return () => window.removeEventListener("resize", handleResize);
59
66
  }, [srLabel]);
60
- const onClosePanel = () => setVisible(false);
61
- const onTogglePanel = () => setVisible(!visible);
62
67
  useEffect(() => {
63
68
  const handleBodyScroll = () => {
64
69
  if (visible && window.innerWidth <= 1024) {
@@ -75,7 +80,24 @@ function IDSSidePanel({ show, menu = false, noScrollAreaFocus = false, srLabel =
75
80
  document.body.style.overflow = ""; // cleanup on unmount
76
81
  };
77
82
  }, [visible]);
78
- return (jsx(IDSSidePanelBase, { ...props, ref: internalRef, client: true, menu: menu, className: className, srClose: srClose, srOpen: srOpen, noScrollAreaFocus: noScrollAreaFocus, visible: visible, onClosePanel: onClosePanel, onTogglePanel: onTogglePanel, hamburgerRef: hamburgerRef, children: children }));
83
+ useEffect(() => {
84
+ const handleBodyScroll = () => {
85
+ if (visible && window.innerWidth <= 1024) {
86
+ document.body.style.overflow = "hidden";
87
+ }
88
+ else {
89
+ document.body.style.overflow = "";
90
+ }
91
+ };
92
+ handleBodyScroll();
93
+ window.addEventListener("resize", handleBodyScroll);
94
+ return () => {
95
+ window.removeEventListener("resize", handleBodyScroll);
96
+ document.body.style.overflow = ""; // cleanup on unmount
97
+ };
98
+ }, [visible]);
99
+ return (jsx(IDSSidePanelBase, { ...props, ref: componentRef, client: true, menu: menu, className: className, srClose: srClose, srOpen: srOpen, noScrollAreaFocus: noScrollAreaFocus, visible: visible, onClosePanel: closePanel, onTogglePanel: togglePanel, hamburgerRef: hamburgerRef, children: children }));
79
100
  }
101
+ IDSSidePanel.displayName = "IDSSidePanel";
80
102
 
81
103
  export { IDSSidePanel };
@@ -25,7 +25,7 @@ const IDSStepBase = forwardRef(({ state = "", headline, label = "", stepNumber =
25
25
  : {};
26
26
  return (jsxs("div", { className: clsx("ids-step", className), ...props, children: [jsx("div", { ref: ref, role: "button", tabIndex: disabled ? -1 : 0, className: clsx("ids-step__button", {
27
27
  "ids-step__button--disabled": disabled
28
- }), "aria-expanded": expanded, ...toggleHandlers, children: jsxs("div", { className: "ids-step__button-inner", children: [jsx("div", { className: "ids-step__indicator-wrapper", children: jsx("div", { "aria-label": srIndicatorText || stepNumber, role: "img", className: `ids-step__indicator ids-step__indicator--${state}`, children: renderStepIndicator() }) }), jsxs("div", { className: "ids-step__button-text", children: [jsxs("div", { className: "ids-step__headline-label", children: [headline && jsx("div", { className: "ids-step__headline", children: headline }), label && jsx("div", { className: "ids-step__label", children: label })] }), jsx("div", { className: clsx("ids-step__chevron", {
28
+ }), "aria-expanded": expanded, ...toggleHandlers, children: jsxs("div", { className: "ids-step__button-inner", children: [jsx("div", { className: "ids-step__indicator-wrapper", children: jsx("div", { "aria-label": srIndicatorText || stepNumber, role: "img", className: `ids-step__indicator ids-step__indicator--${state}`, children: renderStepIndicator() }) }), jsxs("div", { className: "ids-step__button-text", children: [jsxs("div", { className: "ids-step__headline-label", children: [headline && jsx("div", { className: "ids-step__headline", children: headline }), label && jsx("div", { className: "ids-step__subtitle", children: label })] }), jsx("div", { className: clsx("ids-step__chevron", {
29
29
  "ids-step__chevron--expanded": expanded
30
30
  }) })] })] }) }), jsx("div", { className: clsx("ids-step__content", {
31
31
  "ids-step__content--expanded": expanded
@@ -1,15 +1,22 @@
1
1
  "use client";
2
2
  import { jsx } from 'react/jsx-runtime';
3
- import React, { forwardRef, useState, useEffect, useImperativeHandle } from 'react';
3
+ import React, { forwardRef, useState, useEffect } from 'react';
4
4
  import { IDSStepBase } from './step-base.js';
5
5
 
6
6
  const IDSStep = forwardRef(({ state = "", headline, label, stepNumber = "", srIndicatorText = "", expanded = false, disabled = false, onToggleStep, onExpanded, onClosed, className, ...props }, ref) => {
7
7
  const [isExpanded, setIsExpanded] = useState(expanded);
8
- const internalRef = React.useRef(null);
8
+ const stepRef = React.useRef(null);
9
9
  useEffect(() => {
10
10
  setIsExpanded(expanded);
11
11
  }, [expanded]);
12
- useImperativeHandle(ref, () => internalRef.current);
12
+ // Merge forwarded + local ref
13
+ const mergedRef = (node) => {
14
+ stepRef.current = node;
15
+ if (typeof ref === "function")
16
+ ref(node);
17
+ else if (ref)
18
+ ref.current = node;
19
+ };
13
20
  const handleToggleStep = () => {
14
21
  if (disabled)
15
22
  return;
@@ -20,7 +27,7 @@ const IDSStep = forwardRef(({ state = "", headline, label, stepNumber = "", srIn
20
27
  return next;
21
28
  });
22
29
  };
23
- return (jsx(IDSStepBase, { client: true, ref: internalRef, state: state, headline: headline, label: label, stepNumber: stepNumber, srIndicatorText: srIndicatorText, expanded: isExpanded, disabled: disabled, onToggleStep: handleToggleStep, className: className, ...props }));
30
+ return (jsx(IDSStepBase, { client: true, ref: mergedRef, state: state, headline: headline, label: label, stepNumber: stepNumber, srIndicatorText: srIndicatorText, expanded: isExpanded, disabled: disabled, onToggleStep: handleToggleStep, className: className, ...props }));
24
31
  });
25
32
  IDSStep.displayName = "IDSStep";
26
33
 
@@ -5,3 +5,6 @@ export interface IDSStepperProps extends React.HTMLAttributes<HTMLDivElement> {
5
5
  onToggleStep?: (step: string, expanded: boolean) => void;
6
6
  }
7
7
  export declare function IDSStepper({ children, onToggleStep, className, ...props }: IDSStepperProps): import("react/jsx-runtime").JSX.Element;
8
+ export declare namespace IDSStepper {
9
+ var displayName: string;
10
+ }
@@ -14,5 +14,6 @@ function IDSStepper({ children, onToggleStep, className, ...props }) {
14
14
  }));
15
15
  return (jsx("div", { className: clsx("ids-stepper", className), ...props, children: enhancedSteps }));
16
16
  }
17
+ IDSStepper.displayName = "IDSStepper";
17
18
 
18
19
  export { IDSStepper };
@@ -12,4 +12,7 @@ interface IDSTabsBaseProps extends React.HTMLAttributes<HTMLDivElement> {
12
12
  select?: ReactNode;
13
13
  }
14
14
  export declare function IDSTabsBase({ unresponsive, light, compact, breakpoint, selectLabel, tabs, className, children, select, ...props }: IDSTabsBaseProps): import("react/jsx-runtime").JSX.Element;
15
+ export declare namespace IDSTabsBase {
16
+ var displayName: string;
17
+ }
15
18
  export {};
@@ -11,5 +11,6 @@ function IDSTabsBase({ unresponsive = false, light = false, compact = false, bre
11
11
  "ids-tabs--responsive-on-s": responsiveOnS
12
12
  }, className), children: [jsx("div", { className: "ids-tabs__select", children: select }), jsx("div", { className: "ids-tabs__tabs", role: "tablist", children: tabs }), jsx("div", { className: "ids-tabs__panels", children: children })] }));
13
13
  }
14
+ IDSTabsBase.displayName = "IDSTabsBase";
14
15
 
15
16
  export { IDSTabsBase };
@@ -10,3 +10,6 @@ export interface IDSTabsProps extends React.HTMLAttributes<HTMLDivElement> {
10
10
  selectLabel?: string;
11
11
  }
12
12
  export declare function IDSTabs({ tabs, selectLabel, light, compact, breakpoint, children, className, onTabChange, ...props }: IDSTabsProps): import("react/jsx-runtime").JSX.Element;
13
+ export declare namespace IDSTabs {
14
+ var displayName: string;
15
+ }
@@ -82,5 +82,6 @@ function IDSTabs({ tabs = [], selectLabel, light, compact, breakpoint, children,
82
82
  });
83
83
  return (jsx(IDSTabsBase, { ...props, tabs: enhancedTabs, breakpoint: breakpoint, className: className, select: jsx(IDSSelect, { label: selectLabel, onChange: tabChangedFromSelect, value: activeTab, light: light, children: renderTabOptions() }), children: enhancedTabPanels }));
84
84
  }
85
+ IDSTabs.displayName = "IDSTabs";
85
86
 
86
87
  export { IDSTabs };
@@ -4,4 +4,4 @@ export interface IDSTagProps extends React.HTMLAttributes<HTMLSpanElement> {
4
4
  closeButton?: ReactNode;
5
5
  clickable?: boolean;
6
6
  }
7
- export declare const IDSTag: React.ForwardRefExoticComponent<IDSTagProps & React.RefAttributes<HTMLSpanElement>>;
7
+ export declare const IDSTag: React.NamedExoticComponent<IDSTagProps & React.RefAttributes<HTMLSpanElement>>;
@@ -1,11 +1,12 @@
1
1
  import { jsx, jsxs } from 'react/jsx-runtime';
2
- import { forwardRef } from 'react';
2
+ import { forwardRef, memo } from 'react';
3
3
  import clsx from 'clsx';
4
4
  import '@inera/ids-design/components/tag/tag.css';
5
5
 
6
- const IDSTag = forwardRef(({ clickable, closeButton, className, children, ...props }, ref) => {
6
+ const IDSTagMemo = forwardRef(({ clickable, closeButton, className, children, ...props }, ref) => {
7
7
  return (jsx("span", { ref: ref, ...props, className: clsx("ids-tag", { "ids-tag--clickable": clickable }, className), children: jsxs("div", { className: "ids-tag__content", children: [children, !!closeButton && jsx("span", { className: "ids-tag__close-btn", children: closeButton })] }) }));
8
8
  });
9
- IDSTag.displayName = "IDSTag";
9
+ IDSTagMemo.displayName = "IDSTag";
10
+ const IDSTag = memo(IDSTagMemo);
10
11
 
11
12
  export { IDSTag };
@@ -0,0 +1,5 @@
1
+ import React from "react";
2
+ import "@inera/ids-design/components/toolbar/toolbar.css";
3
+ export interface IDSToolbarProps extends React.HTMLAttributes<HTMLDivElement> {
4
+ }
5
+ export declare const IDSToolbar: React.ForwardRefExoticComponent<IDSToolbarProps & React.RefAttributes<HTMLDivElement>>;
@@ -0,0 +1,11 @@
1
+ import { jsx } from 'react/jsx-runtime';
2
+ import { forwardRef } from 'react';
3
+ import clsx from 'clsx';
4
+ import '@inera/ids-design/components/toolbar/toolbar.css';
5
+
6
+ const IDSToolbar = forwardRef(({ className, children, ...props }, ref) => {
7
+ return (jsx("div", { ref: ref, ...props, className: clsx("ids-toolbar", className), children: jsx("div", { className: "ids-toolbar__content", children: children }) }));
8
+ });
9
+ IDSToolbar.displayName = "IDSToolbar";
10
+
11
+ export { IDSToolbar };
@@ -10,5 +10,9 @@ export interface IDSTooltipBaseProps extends React.HTMLAttributes<HTMLSpanElemen
10
10
  triggerIsIcon?: boolean;
11
11
  triggerRef?: React.Ref<HTMLSpanElement>;
12
12
  tooltipContentRef?: React.Ref<HTMLSpanElement>;
13
+ isHidden?: boolean;
14
+ }
15
+ export declare function IDSTooltipBase({ position, maxWidth, translateX, translateY, trigger, triggerIsIcon, triggerRef, tooltipContentRef, isHidden, className, children, ...props }: IDSTooltipBaseProps): import("react/jsx-runtime").JSX.Element;
16
+ export declare namespace IDSTooltipBase {
17
+ var displayName: string;
13
18
  }
14
- export declare function IDSTooltipBase({ position, maxWidth, translateX, translateY, trigger, triggerIsIcon, triggerRef, tooltipContentRef, className, children, ...props }: IDSTooltipBaseProps): import("react/jsx-runtime").JSX.Element;
@@ -3,7 +3,7 @@ import { useId } from 'react';
3
3
  import clsx from 'clsx';
4
4
  import '@inera/ids-design/components/tooltip/tooltip.css';
5
5
 
6
- function IDSTooltipBase({ position = "top", maxWidth = "20rem", translateX = position === "top" || position === "bottom" ? "-50%" : "0", translateY = position.includes("top") ? "-100%" : "100%", trigger, triggerIsIcon, triggerRef, tooltipContentRef, className, children, ...props }) {
6
+ function IDSTooltipBase({ position = "top", maxWidth = "20rem", translateX = position === "top" || position === "bottom" ? "-50%" : "0", translateY = position.includes("top") ? "-100%" : "100%", trigger, triggerIsIcon, triggerRef, tooltipContentRef, isHidden, className, children, ...props }) {
7
7
  const tooltipId = `tooltip-${useId()}`;
8
8
  const ariaHandler = triggerIsIcon
9
9
  ? {
@@ -12,7 +12,8 @@ function IDSTooltipBase({ position = "top", maxWidth = "20rem", translateX = pos
12
12
  : {
13
13
  "aria-describedby": tooltipId
14
14
  };
15
- return (jsxs("span", { className: clsx("ids-tooltip", className), ...props, children: [jsx("span", { className: "ids-tooltip__trigger", ...ariaHandler, ref: triggerRef, children: trigger }), jsx("span", { className: clsx("ids-tooltip__content", `ids-tooltip__content--${position}`), ref: tooltipContentRef, role: "tooltip", id: tooltipId, style: { transform: `translate(${translateX}, ${translateY})`, maxWidth }, children: children })] }));
15
+ return (jsxs("span", { className: clsx("ids-tooltip", className), ...props, children: [jsx("span", { className: "ids-tooltip__trigger", ...ariaHandler, ref: triggerRef, children: trigger }), jsx("span", { className: clsx("ids-tooltip__content", `ids-tooltip__content--${position}`), ref: tooltipContentRef, role: "tooltip", hidden: isHidden, id: tooltipId, style: { transform: `translate(${translateX}, ${translateY})`, maxWidth }, children: children })] }));
16
16
  }
17
+ IDSTooltipBase.displayName = "IDSTooltipBase";
17
18
 
18
19
  export { IDSTooltipBase };
@@ -2,3 +2,6 @@ import { IDSTooltipBaseProps } from "./tooltip-base";
2
2
  export interface IDSTooltipProps extends Omit<IDSTooltipBaseProps, "translateX" | "translateY"> {
3
3
  }
4
4
  export declare function IDSTooltip({ position, maxWidth, trigger, className, ...props }: IDSTooltipProps): import("react/jsx-runtime").JSX.Element;
5
+ export declare namespace IDSTooltip {
6
+ var displayName: string;
7
+ }
@@ -6,6 +6,7 @@ import { IDSTooltipBase } from './tooltip-base.js';
6
6
  function IDSTooltip({ position = "top", maxWidth, trigger, className, ...props }) {
7
7
  const [internalMaxWidth, setInternalMaxWidth] = useState(maxWidth);
8
8
  const [triggerIsIcon, setTriggerIsIcon] = useState(false);
9
+ const [isVisible, setIsVisible] = useState(false);
9
10
  const tooltipContentRef = useRef(null);
10
11
  const triggerRef = useRef(null);
11
12
  const hasUpdatedMaxWidthRef = useRef(false);
@@ -93,7 +94,31 @@ function IDSTooltip({ position = "top", maxWidth, trigger, className, ...props }
93
94
  triggerWrapper.removeEventListener("focusin", handleXOverflow);
94
95
  };
95
96
  }, [triggerRef]);
96
- return (jsx(IDSTooltipBase, { ...props, position: position, maxWidth: internalMaxWidth, trigger: trigger, triggerIsIcon: triggerIsIcon, className: className, triggerRef: triggerRef, tooltipContentRef: tooltipContentRef }));
97
+ const isTooltipVisible = () => {
98
+ const tooltip = tooltipContentRef.current;
99
+ if (!tooltip)
100
+ return false;
101
+ const style = getComputedStyle(tooltip);
102
+ return style.visibility !== "hidden" && style.display !== "none" && style.opacity !== "0";
103
+ };
104
+ useEffect(() => {
105
+ const triggerEl = triggerRef.current;
106
+ if (!triggerEl)
107
+ return;
108
+ const updateVisibility = () => setIsVisible(isTooltipVisible());
109
+ triggerEl.addEventListener("mouseenter", updateVisibility);
110
+ triggerEl.addEventListener("mouseleave", updateVisibility);
111
+ triggerEl.addEventListener("focusin", updateVisibility); // <-- replaces focus
112
+ triggerEl.addEventListener("focusout", updateVisibility); // <-- replaces blur
113
+ return () => {
114
+ triggerEl.removeEventListener("mouseenter", updateVisibility);
115
+ triggerEl.removeEventListener("mouseleave", updateVisibility);
116
+ triggerEl.removeEventListener("focusin", updateVisibility);
117
+ triggerEl.removeEventListener("focusout", updateVisibility);
118
+ };
119
+ }, [triggerRef.current]);
120
+ return (jsx(IDSTooltipBase, { ...props, position: position, maxWidth: internalMaxWidth, trigger: trigger, triggerIsIcon: triggerIsIcon, className: className, triggerRef: triggerRef, isHidden: !isVisible, tooltipContentRef: tooltipContentRef }));
97
121
  }
122
+ IDSTooltip.displayName = "IDSTooltip";
98
123
 
99
124
  export { IDSTooltip };
@@ -1,10 +1,2 @@
1
1
  import { RefObject } from "react";
2
- /**
3
- * useClickOutside
4
- * Calls handler when a click occurs outside the provided ref(s)
5
- *
6
- * @param refs - one or more refs to consider "inside"
7
- * @param handler - callback when a click outside occurs
8
- * @param enabled - optional, defaults to true; disable the listener when false
9
- */
10
- export declare function useClickOutside(refs: RefObject<HTMLElement> | RefObject<HTMLElement>[], handler: (event: MouseEvent | TouchEvent) => void, enabled?: boolean): void;
2
+ export declare function useClickOutside(callback: (event: MouseEvent | TouchEvent) => void, refs: RefObject<HTMLElement> | RefObject<HTMLElement>[], focusRef?: RefObject<HTMLElement>, enabled?: boolean): void;
@@ -1,31 +1,24 @@
1
1
  import { useEffect } from 'react';
2
2
 
3
- /**
4
- * useClickOutside
5
- * Calls handler when a click occurs outside the provided ref(s)
6
- *
7
- * @param refs - one or more refs to consider "inside"
8
- * @param handler - callback when a click outside occurs
9
- * @param enabled - optional, defaults to true; disable the listener when false
10
- */
11
- function useClickOutside(refs, handler, enabled = true) {
3
+ function useClickOutside(callback, refs, focusRef, enabled = true) {
12
4
  useEffect(() => {
13
5
  if (!enabled)
14
6
  return;
15
7
  const elements = Array.isArray(refs) ? refs.map(r => r.current) : [refs.current];
16
- const listener = (event) => {
8
+ const handler = (event) => {
17
9
  // If any element contains the click, do nothing
18
10
  if (elements.some(el => el && el.contains(event.target)))
19
11
  return;
20
- handler(event);
12
+ callback(event);
13
+ focusRef?.current?.focus({ preventScroll: true });
21
14
  };
22
- document.addEventListener("mousedown", listener);
23
- document.addEventListener("touchstart", listener);
15
+ document.addEventListener("mousedown", handler);
16
+ document.addEventListener("touchstart", handler);
24
17
  return () => {
25
- document.removeEventListener("mousedown", listener);
26
- document.removeEventListener("touchstart", listener);
18
+ document.removeEventListener("mousedown", handler);
19
+ document.removeEventListener("touchstart", handler);
27
20
  };
28
- }, [refs, handler, enabled]);
21
+ }, [refs, callback, enabled]);
29
22
  }
30
23
 
31
24
  export { useClickOutside };
@@ -1,10 +1,2 @@
1
1
  import { RefObject } from "react";
2
- /**
3
- * useEsc
4
- * Calls the provided callback when Escape is pressed and optionally focuses a ref
5
- *
6
- * @param callback - function to call when Escape is pressed
7
- * @param focusRef - optional ref to focus when Escape is pressed
8
- * @param enabled - optional, defaults to true; disables listener when false
9
- */
10
- export declare function useEsc(callback: () => void, focusRef?: RefObject<HTMLElement>, enabled?: boolean): void;
2
+ export declare function useEsc(callback: (event: KeyboardEvent) => void, focusRef?: RefObject<HTMLElement>, containerRef?: RefObject<HTMLElement>, enabled?: boolean): void;
@@ -1,27 +1,24 @@
1
1
  import { useEffect } from 'react';
2
2
 
3
- /**
4
- * useEsc
5
- * Calls the provided callback when Escape is pressed and optionally focuses a ref
6
- *
7
- * @param callback - function to call when Escape is pressed
8
- * @param focusRef - optional ref to focus when Escape is pressed
9
- * @param enabled - optional, defaults to true; disables listener when false
10
- */
11
- function useEsc(callback, focusRef, enabled = true) {
3
+ function useEsc(callback, focusRef, containerRef, enabled = true) {
12
4
  useEffect(() => {
13
5
  if (!enabled)
14
6
  return;
15
- const handleKeyDown = (event) => {
16
- if (event.key === "Escape") {
17
- event.preventDefault();
18
- callback();
19
- focusRef?.current?.focus();
7
+ const handler = (event) => {
8
+ if (event.key !== "Escape")
9
+ return;
10
+ if (containerRef?.current) {
11
+ const active = document.activeElement;
12
+ if (!containerRef.current.contains(active))
13
+ return;
20
14
  }
15
+ event.preventDefault();
16
+ callback(event);
17
+ focusRef?.current?.focus();
21
18
  };
22
- document.addEventListener("keydown", handleKeyDown);
23
- return () => document.removeEventListener("keydown", handleKeyDown);
24
- }, [callback, focusRef, enabled]);
19
+ document.addEventListener("keydown", handler);
20
+ return () => document.removeEventListener("keydown", handler);
21
+ }, [callback, focusRef, enabled, containerRef]);
25
22
  }
26
23
 
27
24
  export { useEsc };
@@ -0,0 +1,2 @@
1
+ import { RefObject } from "react";
2
+ export declare function useLinkClick(callback: (event: MouseEvent | TouchEvent) => void, containerRef: React.RefObject<HTMLElement>, focusRef?: RefObject<HTMLElement>, active?: boolean): void;
@@ -0,0 +1,22 @@
1
+ import { useEffect } from 'react';
2
+
3
+ function useLinkClick(callback, containerRef, focusRef, active = true) {
4
+ useEffect(() => {
5
+ if (!active)
6
+ return;
7
+ const container = containerRef.current;
8
+ if (!container)
9
+ return;
10
+ const elements = container.querySelectorAll("a");
11
+ const handler = (event) => {
12
+ callback(event);
13
+ focusRef?.current?.focus();
14
+ };
15
+ elements.forEach(el => el.addEventListener("click", handler));
16
+ return () => {
17
+ elements.forEach(el => el.removeEventListener("click", handler));
18
+ };
19
+ }, [containerRef, callback, active]);
20
+ }
21
+
22
+ export { useLinkClick };