@inera/ids-react 8.1.0 → 9.0.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (372) hide show
  1. package/components/accordion/accordion-base.d.ts +18 -0
  2. package/components/accordion/accordion-base.js +33 -0
  3. package/components/accordion/accordion.d.ts +5 -4
  4. package/components/accordion/accordion.js +16 -35
  5. package/components/alert/alert-base.d.ts +21 -0
  6. package/components/alert/alert-base.js +29 -0
  7. package/components/alert/alert.d.ts +3 -19
  8. package/components/alert/alert.js +8 -18
  9. package/components/alert/global-alert-base.d.ts +15 -0
  10. package/components/alert/global-alert-base.js +21 -0
  11. package/components/alert/global-alert.d.ts +7 -0
  12. package/components/alert/global-alert.js +19 -0
  13. package/components/badge/badge.js +2 -2
  14. package/components/breadcrumbs/breadcrumbs.js +2 -2
  15. package/components/{button-group → button}/button-group.js +2 -2
  16. package/components/button/button.js +3 -3
  17. package/components/card/card.js +3 -3
  18. package/components/carousel/carousel-item.d.ts +5 -4
  19. package/components/carousel/carousel-item.js +8 -6
  20. package/components/carousel/carousel.d.ts +4 -1
  21. package/components/carousel/carousel.js +24 -39
  22. package/components/{pagination/data-pagination → data-pagination}/data-pagination.d.ts +2 -6
  23. package/components/data-pagination/data-pagination.js +12 -0
  24. package/components/date-label/date-label.js +2 -2
  25. package/components/dialog/dialog-base.d.ts +21 -0
  26. package/components/dialog/dialog-base.js +29 -0
  27. package/components/dialog/dialog.d.ts +14 -17
  28. package/components/dialog/dialog.js +36 -36
  29. package/components/dropdown/dropdown-base.d.ts +18 -0
  30. package/components/dropdown/dropdown-base.js +42 -0
  31. package/components/dropdown/dropdown-content-button.d.ts +0 -1
  32. package/components/dropdown/dropdown-content-button.js +0 -1
  33. package/components/dropdown/dropdown-content-link.d.ts +2 -3
  34. package/components/dropdown/dropdown-content-link.js +3 -10
  35. package/components/dropdown/dropdown.d.ts +11 -13
  36. package/components/dropdown/dropdown.js +34 -53
  37. package/components/footer-1177/footer-1177.d.ts +6 -7
  38. package/components/footer-1177/footer-1177.js +8 -5
  39. package/components/footer-1177-admin/footer-1177-admin.d.ts +6 -7
  40. package/components/footer-1177-admin/footer-1177-admin.js +9 -6
  41. package/components/footer-1177-pro/footer-1177-pro.d.ts +6 -7
  42. package/components/footer-1177-pro/footer-1177-pro.js +9 -6
  43. package/components/footer-inera/footer-inera.d.ts +6 -7
  44. package/components/footer-inera/footer-inera.js +9 -6
  45. package/components/footer-inera-admin/footer-inera-admin.d.ts +6 -7
  46. package/components/footer-inera-admin/footer-inera-admin.js +9 -6
  47. package/components/form/check-button/check-button.d.ts +5 -6
  48. package/components/form/check-button/check-button.js +5 -10
  49. package/components/form/checkbox/checkbox-base.d.ts +19 -0
  50. package/components/form/checkbox/checkbox-base.js +29 -0
  51. package/components/form/checkbox/checkbox-group-base.d.ts +12 -0
  52. package/components/form/checkbox/checkbox-group-base.js +13 -0
  53. package/components/form/checkbox/checkbox-group.d.ts +4 -5
  54. package/components/form/checkbox/checkbox-group.js +26 -30
  55. package/components/form/checkbox/checkbox.d.ts +3 -3
  56. package/components/form/checkbox/checkbox.js +17 -40
  57. package/components/form/darkmode-toggle/darkmode-toggle.d.ts +11 -0
  58. package/components/form/darkmode-toggle/darkmode-toggle.js +13 -0
  59. package/components/form/datepicker/datepicker.d.ts +36 -0
  60. package/components/form/datepicker/datepicker.js +217 -0
  61. package/components/form/error-message/error-message.d.ts +1 -2
  62. package/components/form/error-message/error-message.js +2 -4
  63. package/components/form/form-hooks/useGroupValidity.d.ts +4 -1
  64. package/components/form/form-hooks/useGroupValidity.js +7 -2
  65. package/components/form/form-hooks/useInputValidity.d.ts +1 -1
  66. package/components/form/form-hooks/useInputValidity.js +9 -5
  67. package/components/form/input/input-base.d.ts +24 -0
  68. package/components/form/input/input-base.js +32 -0
  69. package/components/form/input/input.d.ts +3 -2
  70. package/components/form/input/input.js +8 -24
  71. package/components/form/radio/radio-base.d.ts +16 -0
  72. package/components/form/radio/radio-base.js +24 -0
  73. package/components/form/radio/radio-group-base.d.ts +13 -0
  74. package/components/form/radio/radio-group-base.js +10 -0
  75. package/components/form/radio/radio-group.d.ts +6 -5
  76. package/components/form/radio/radio-group.js +25 -19
  77. package/components/form/radio/radio.d.ts +9 -9
  78. package/components/form/radio/radio.js +7 -19
  79. package/components/form/radio-button/radio-button-group-base.d.ts +8 -0
  80. package/components/form/radio-button/radio-button-group-base.js +8 -0
  81. package/components/form/radio-button/radio-button-group.d.ts +4 -3
  82. package/components/form/radio-button/radio-button-group.js +18 -12
  83. package/components/form/radio-button/radio-button.d.ts +4 -5
  84. package/components/form/radio-button/radio-button.js +5 -10
  85. package/components/form/range/range-base.d.ts +18 -0
  86. package/components/form/range/range-base.js +16 -0
  87. package/components/form/range/range.d.ts +3 -6
  88. package/components/form/range/range.js +23 -23
  89. package/components/form/select/select-base.d.ts +19 -0
  90. package/components/form/select/select-base.js +24 -0
  91. package/components/form/select/select.d.ts +7 -7
  92. package/components/form/select/select.js +8 -18
  93. package/components/form/select-multiple/select-multiple-base.d.ts +27 -0
  94. package/components/form/select-multiple/select-multiple-base.js +27 -0
  95. package/components/form/select-multiple/select-multiple.d.ts +10 -7
  96. package/components/form/select-multiple/select-multiple.js +29 -54
  97. package/components/form/spinner/spinner.d.ts +3 -4
  98. package/components/form/spinner/spinner.js +3 -7
  99. package/components/form/textarea/textarea-base.d.ts +24 -0
  100. package/components/form/textarea/textarea-base.js +34 -0
  101. package/components/form/textarea/textarea.d.ts +4 -5
  102. package/components/form/textarea/textarea.js +6 -22
  103. package/components/form/time/time-base.d.ts +17 -0
  104. package/components/form/time/time-base.js +24 -0
  105. package/components/form/time/time.d.ts +8 -7
  106. package/components/form/time/time.js +5 -16
  107. package/components/form/toggle/toggle.d.ts +1 -2
  108. package/components/form/toggle/toggle.js +5 -8
  109. package/components/grid/column.d.ts +1 -1
  110. package/components/grid/column.js +6 -7
  111. package/components/grid/container.d.ts +1 -0
  112. package/components/grid/container.js +9 -5
  113. package/components/grid/row.js +1 -1
  114. package/components/grid-layout/grid-column.d.ts +19 -0
  115. package/components/grid-layout/grid-column.js +14 -0
  116. package/components/grid-layout/grid-container.d.ts +10 -0
  117. package/components/grid-layout/grid-container.js +17 -0
  118. package/components/grid-layout/grid-row.d.ts +8 -0
  119. package/components/grid-layout/grid-row.js +12 -0
  120. package/components/header-1177/header-1177-avatar-base.d.ts +16 -0
  121. package/components/header-1177/header-1177-avatar-base.js +24 -0
  122. package/components/header-1177/header-1177-avatar.d.ts +4 -7
  123. package/components/header-1177/header-1177-avatar.js +35 -42
  124. package/components/header-1177/header-1177-base.d.ts +18 -0
  125. package/components/header-1177/header-1177-base.js +14 -0
  126. package/components/header-1177/header-1177-item-base.d.ts +9 -0
  127. package/components/header-1177/header-1177-item-base.js +13 -0
  128. package/components/header-1177/header-1177-item.d.ts +2 -7
  129. package/components/header-1177/header-1177-item.js +6 -29
  130. package/components/header-1177/header-1177-menu-mobile-base.d.ts +12 -0
  131. package/components/header-1177/header-1177-menu-mobile-base.js +18 -0
  132. package/components/header-1177/header-1177-menu-mobile.d.ts +4 -5
  133. package/components/header-1177/header-1177-menu-mobile.js +29 -28
  134. package/components/header-1177/header-1177-nav-base.d.ts +9 -0
  135. package/components/header-1177/header-1177-nav-base.js +12 -0
  136. package/components/header-1177/header-1177-nav-item-base.d.ts +18 -0
  137. package/components/header-1177/header-1177-nav-item-base.js +31 -0
  138. package/components/header-1177/header-1177-nav-item-mobile-base.d.ts +7 -0
  139. package/components/header-1177/header-1177-nav-item-mobile-base.js +10 -0
  140. package/components/header-1177/header-1177-nav-item-mobile.d.ts +4 -8
  141. package/components/header-1177/header-1177-nav-item-mobile.js +5 -16
  142. package/components/header-1177/header-1177-nav-item.d.ts +7 -7
  143. package/components/header-1177/header-1177-nav-item.js +44 -35
  144. package/components/header-1177/header-1177-nav.d.ts +2 -4
  145. package/components/header-1177/header-1177-nav.js +5 -9
  146. package/components/header-1177/header-1177-region-picker-base.d.ts +9 -0
  147. package/components/header-1177/header-1177-region-picker-base.js +21 -0
  148. package/components/header-1177/header-1177-region-picker-mobile-base.d.ts +9 -0
  149. package/components/header-1177/header-1177-region-picker-mobile-base.js +21 -0
  150. package/components/header-1177/header-1177-region-picker-mobile.d.ts +3 -6
  151. package/components/header-1177/header-1177-region-picker-mobile.js +13 -29
  152. package/components/header-1177/header-1177-region-picker.d.ts +3 -6
  153. package/components/header-1177/header-1177-region-picker.js +15 -29
  154. package/components/header-1177/header-1177.d.ts +3 -3
  155. package/components/header-1177/header-1177.js +5 -10
  156. package/components/header-1177-admin/header-1177-admin-avatar-base.d.ts +14 -0
  157. package/components/header-1177-admin/header-1177-admin-avatar-base.js +23 -0
  158. package/components/header-1177-admin/header-1177-admin-avatar-mobile-base.d.ts +13 -0
  159. package/components/header-1177-admin/header-1177-admin-avatar-mobile-base.js +23 -0
  160. package/components/header-1177-admin/header-1177-admin-avatar-mobile.d.ts +3 -5
  161. package/components/header-1177-admin/header-1177-admin-avatar-mobile.js +27 -23
  162. package/components/header-1177-admin/header-1177-admin-avatar.d.ts +3 -5
  163. package/components/header-1177-admin/header-1177-admin-avatar.js +26 -25
  164. package/components/header-1177-admin/header-1177-admin-base.d.ts +18 -0
  165. package/components/header-1177-admin/header-1177-admin-base.js +14 -0
  166. package/components/header-1177-admin/header-1177-admin-item-base.d.ts +8 -0
  167. package/components/header-1177-admin/header-1177-admin-item-base.js +12 -0
  168. package/components/header-1177-admin/header-1177-admin-item.d.ts +3 -8
  169. package/components/header-1177-admin/header-1177-admin-item.js +5 -27
  170. package/components/header-1177-admin/header-1177-admin-menu-mobile-base.d.ts +11 -0
  171. package/components/header-1177-admin/header-1177-admin-menu-mobile-base.js +18 -0
  172. package/components/header-1177-admin/header-1177-admin-menu-mobile.d.ts +4 -5
  173. package/components/header-1177-admin/header-1177-admin-menu-mobile.js +27 -25
  174. package/components/header-1177-admin/header-1177-admin-nav-base.d.ts +7 -0
  175. package/components/header-1177-admin/header-1177-admin-nav-base.js +10 -0
  176. package/components/header-1177-admin/header-1177-admin-nav-item-base.d.ts +18 -0
  177. package/components/header-1177-admin/header-1177-admin-nav-item-base.js +31 -0
  178. package/components/header-1177-admin/header-1177-admin-nav-item-mobile-base.d.ts +7 -0
  179. package/components/header-1177-admin/header-1177-admin-nav-item-mobile-base.js +10 -0
  180. package/components/header-1177-admin/header-1177-admin-nav-item-mobile.d.ts +7 -0
  181. package/components/header-1177-admin/header-1177-admin-nav-item-mobile.js +11 -0
  182. package/components/header-1177-admin/header-1177-admin-nav-item.d.ts +6 -6
  183. package/components/header-1177-admin/header-1177-admin-nav-item.js +44 -35
  184. package/components/header-1177-admin/header-1177-admin-nav.d.ts +2 -4
  185. package/components/header-1177-admin/header-1177-admin-nav.js +4 -6
  186. package/components/header-1177-admin/header-1177-admin.d.ts +2 -3
  187. package/components/header-1177-admin/header-1177-admin.js +5 -10
  188. package/components/header-1177-pro/header-1177-pro-avatar-base.d.ts +14 -0
  189. package/components/header-1177-pro/header-1177-pro-avatar-base.js +23 -0
  190. package/components/header-1177-pro/header-1177-pro-avatar-mobile-base.d.ts +13 -0
  191. package/components/header-1177-pro/header-1177-pro-avatar-mobile-base.js +24 -0
  192. package/components/header-1177-pro/header-1177-pro-avatar-mobile.d.ts +3 -6
  193. package/components/header-1177-pro/header-1177-pro-avatar-mobile.js +23 -20
  194. package/components/header-1177-pro/header-1177-pro-avatar.d.ts +4 -6
  195. package/components/header-1177-pro/header-1177-pro-avatar.js +32 -30
  196. package/components/header-1177-pro/header-1177-pro-base.d.ts +19 -0
  197. package/components/header-1177-pro/header-1177-pro-base.js +11 -0
  198. package/components/header-1177-pro/header-1177-pro-item-base.d.ts +8 -0
  199. package/components/header-1177-pro/header-1177-pro-item-base.js +12 -0
  200. package/components/header-1177-pro/header-1177-pro-item.d.ts +3 -8
  201. package/components/header-1177-pro/header-1177-pro-item.js +5 -27
  202. package/components/header-1177-pro/header-1177-pro-menu-mobile-base.d.ts +11 -0
  203. package/components/header-1177-pro/header-1177-pro-menu-mobile-base.js +18 -0
  204. package/components/header-1177-pro/header-1177-pro-menu-mobile.d.ts +5 -6
  205. package/components/header-1177-pro/header-1177-pro-menu-mobile.js +27 -25
  206. package/components/header-1177-pro/header-1177-pro-nav-base.d.ts +10 -0
  207. package/components/header-1177-pro/header-1177-pro-nav-base.js +10 -0
  208. package/components/header-1177-pro/header-1177-pro-nav-item-base.d.ts +18 -0
  209. package/components/header-1177-pro/header-1177-pro-nav-item-base.js +31 -0
  210. package/components/header-1177-pro/header-1177-pro-nav-item-mobile-base.d.ts +7 -0
  211. package/components/header-1177-pro/header-1177-pro-nav-item-mobile-base.js +10 -0
  212. package/components/header-1177-pro/header-1177-pro-nav-item-mobile.d.ts +7 -0
  213. package/components/header-1177-pro/header-1177-pro-nav-item-mobile.js +11 -0
  214. package/components/header-1177-pro/header-1177-pro-nav-item.d.ts +6 -6
  215. package/components/header-1177-pro/header-1177-pro-nav-item.js +44 -35
  216. package/components/header-1177-pro/header-1177-pro-nav.d.ts +4 -5
  217. package/components/header-1177-pro/header-1177-pro-nav.js +5 -7
  218. package/components/header-1177-pro/header-1177-pro-region-picker-base.d.ts +9 -0
  219. package/components/header-1177-pro/header-1177-pro-region-picker-base.js +19 -0
  220. package/components/header-1177-pro/header-1177-pro-region-picker-mobile-base.d.ts +9 -0
  221. package/components/header-1177-pro/header-1177-pro-region-picker-mobile-base.js +19 -0
  222. package/components/header-1177-pro/header-1177-pro-region-picker-mobile.d.ts +3 -5
  223. package/components/header-1177-pro/header-1177-pro-region-picker-mobile.js +13 -29
  224. package/components/header-1177-pro/header-1177-pro-region-picker.d.ts +3 -5
  225. package/components/header-1177-pro/header-1177-pro-region-picker.js +15 -29
  226. package/components/header-1177-pro/header-1177-pro.d.ts +4 -5
  227. package/components/header-1177-pro/header-1177-pro.js +5 -7
  228. package/components/header-inera/header-inera-base.d.ts +14 -0
  229. package/components/header-inera/header-inera-base.js +11 -0
  230. package/components/header-inera/header-inera-item-base.d.ts +8 -0
  231. package/components/header-inera/header-inera-item-base.js +12 -0
  232. package/components/header-inera/header-inera-item.d.ts +3 -8
  233. package/components/header-inera/header-inera-item.js +5 -36
  234. package/components/header-inera/header-inera-menu-mobile-base.d.ts +11 -0
  235. package/components/header-inera/header-inera-menu-mobile-base.js +18 -0
  236. package/components/header-inera/header-inera-menu-mobile.d.ts +5 -6
  237. package/components/header-inera/header-inera-menu-mobile.js +27 -26
  238. package/components/header-inera/header-inera-nav-base.d.ts +7 -0
  239. package/components/header-inera/header-inera-nav-base.js +10 -0
  240. package/components/header-inera/header-inera-nav-item-base.d.ts +17 -0
  241. package/components/header-inera/header-inera-nav-item-base.js +26 -0
  242. package/components/header-inera/header-inera-nav-item.d.ts +7 -7
  243. package/components/header-inera/header-inera-nav-item.js +44 -34
  244. package/components/header-inera/header-inera-nav.d.ts +4 -6
  245. package/components/header-inera/header-inera-nav.js +4 -7
  246. package/components/header-inera/header-inera.d.ts +1 -3
  247. package/components/header-inera/header-inera.js +5 -7
  248. package/components/header-inera-admin/header-inera-admin-avatar-base.d.ts +14 -0
  249. package/components/header-inera-admin/header-inera-admin-avatar-base.js +23 -0
  250. package/components/header-inera-admin/header-inera-admin-avatar-mobile-base.d.ts +13 -0
  251. package/components/header-inera-admin/header-inera-admin-avatar-mobile-base.js +23 -0
  252. package/components/header-inera-admin/header-inera-admin-avatar-mobile.d.ts +3 -6
  253. package/components/header-inera-admin/header-inera-admin-avatar-mobile.js +26 -21
  254. package/components/header-inera-admin/header-inera-admin-avatar.d.ts +4 -6
  255. package/components/header-inera-admin/header-inera-admin-avatar.js +35 -31
  256. package/components/header-inera-admin/header-inera-admin-base.d.ts +15 -0
  257. package/components/header-inera-admin/header-inera-admin-base.js +20 -0
  258. package/components/header-inera-admin/header-inera-admin-item-base.d.ts +8 -0
  259. package/components/header-inera-admin/header-inera-admin-item-base.js +13 -0
  260. package/components/header-inera-admin/header-inera-admin-item.d.ts +3 -8
  261. package/components/header-inera-admin/header-inera-admin-item.js +6 -26
  262. package/components/header-inera-admin/header-inera-admin-menu-mobile-base.d.ts +11 -0
  263. package/components/header-inera-admin/header-inera-admin-menu-mobile-base.js +18 -0
  264. package/components/header-inera-admin/header-inera-admin-menu-mobile.d.ts +4 -5
  265. package/components/header-inera-admin/header-inera-admin-menu-mobile.js +27 -25
  266. package/components/header-inera-admin/header-inera-admin-nav-base.d.ts +7 -0
  267. package/components/header-inera-admin/header-inera-admin-nav-base.js +10 -0
  268. package/components/header-inera-admin/header-inera-admin-nav-item-base.d.ts +18 -0
  269. package/components/header-inera-admin/header-inera-admin-nav-item-base.js +31 -0
  270. package/components/header-inera-admin/header-inera-admin-nav-item-mobile-base.d.ts +7 -0
  271. package/components/header-inera-admin/header-inera-admin-nav-item-mobile-base.js +10 -0
  272. package/components/header-inera-admin/header-inera-admin-nav-item-mobile.d.ts +7 -0
  273. package/components/header-inera-admin/header-inera-admin-nav-item-mobile.js +11 -0
  274. package/components/header-inera-admin/header-inera-admin-nav-item.d.ts +7 -6
  275. package/components/header-inera-admin/header-inera-admin-nav-item.js +44 -34
  276. package/components/header-inera-admin/header-inera-admin-nav.d.ts +4 -6
  277. package/components/header-inera-admin/header-inera-admin-nav.js +5 -8
  278. package/components/header-inera-admin/header-inera-admin.d.ts +3 -4
  279. package/components/header-inera-admin/header-inera-admin.js +5 -16
  280. package/components/header-patient/header-patient.d.ts +2 -4
  281. package/components/header-patient/header-patient.js +6 -10
  282. package/components/link/action-link.d.ts +6 -0
  283. package/components/link/action-link.js +9 -0
  284. package/components/link/box-link.d.ts +6 -0
  285. package/components/link/box-link.js +9 -0
  286. package/components/link/link.d.ts +2 -2
  287. package/components/link/link.js +3 -10
  288. package/components/list-pagination/list-pagination-links.d.ts +19 -0
  289. package/components/list-pagination/list-pagination-links.js +48 -0
  290. package/components/{pagination/list-pagination → list-pagination}/list-pagination.d.ts +3 -2
  291. package/components/{pagination/list-pagination → list-pagination}/list-pagination.js +4 -3
  292. package/components/mobile-menu/mobile-item-base.d.ts +14 -0
  293. package/components/mobile-menu/mobile-item-base.js +46 -0
  294. package/components/mobile-menu/mobile-item.d.ts +6 -0
  295. package/components/mobile-menu/mobile-item.js +26 -0
  296. package/components/mobile-menu/mobile-menu.d.ts +6 -0
  297. package/components/mobile-menu/mobile-menu.js +10 -0
  298. package/components/{navigation/content → navigation-content}/navigation-content.d.ts +1 -1
  299. package/components/{navigation/content → navigation-content}/navigation-content.js +2 -2
  300. package/components/{navigation/local → navigation-local}/navigation-local.d.ts +1 -1
  301. package/components/{navigation/local → navigation-local}/navigation-local.js +1 -1
  302. package/components/{notification/badge → notification-badge}/notification-badge.d.ts +1 -1
  303. package/components/notification-badge/notification-badge.js +9 -0
  304. package/components/popover/popover-base.d.ts +15 -0
  305. package/components/popover/popover-base.js +27 -0
  306. package/components/popover/popover-content.d.ts +19 -0
  307. package/components/popover/popover-content.js +20 -0
  308. package/components/popover/popover.d.ts +7 -8
  309. package/components/popover/popover.js +67 -161
  310. package/components/progressbar/progressbar.js +2 -2
  311. package/components/puff-list/{puff-list-item/puff-list-item-date.d.ts → puff-list-item-date.d.ts} +0 -1
  312. package/components/puff-list/{puff-list-item/puff-list-item-date.js → puff-list-item-date.js} +2 -3
  313. package/components/puff-list/{puff-list-item/puff-list-item-header.d.ts → puff-list-item-header.d.ts} +1 -1
  314. package/components/puff-list/puff-list-item-header.js +12 -0
  315. package/components/puff-list/{puff-list-item/puff-list-item-info.d.ts → puff-list-item-info.d.ts} +1 -2
  316. package/components/puff-list/puff-list-item-info.js +8 -0
  317. package/components/puff-list/{puff-list-item/puff-list-item.d.ts → puff-list-item.d.ts} +0 -2
  318. package/components/puff-list/{puff-list-item/puff-list-item.js → puff-list-item.js} +2 -3
  319. package/components/puff-list/puff-list.js +2 -3
  320. package/components/region-icon/region-icon.js +2 -2
  321. package/components/side-menu/side-menu-base.d.ts +22 -0
  322. package/components/side-menu/side-menu-base.js +42 -0
  323. package/components/side-menu/side-menu.d.ts +6 -9
  324. package/components/side-menu/side-menu.js +13 -43
  325. package/components/side-panel/side-panel-base.d.ts +24 -0
  326. package/components/side-panel/side-panel-base.js +33 -0
  327. package/components/side-panel/side-panel-provider.d.ts +7 -0
  328. package/components/side-panel/side-panel-provider.js +12 -0
  329. package/components/side-panel/side-panel.d.ts +14 -15
  330. package/components/side-panel/side-panel.js +49 -54
  331. package/components/stepper/step-base.d.ts +15 -0
  332. package/components/stepper/step-base.js +36 -0
  333. package/components/stepper/step.d.ts +5 -8
  334. package/components/stepper/step.js +17 -33
  335. package/components/stepper/stepper.d.ts +4 -6
  336. package/components/stepper/stepper.js +8 -13
  337. package/components/tabs/tab-link.d.ts +15 -0
  338. package/components/tabs/tab-link.js +10 -0
  339. package/components/tabs/tab-panel.d.ts +2 -4
  340. package/components/tabs/tab-panel.js +5 -12
  341. package/components/tabs/tab.d.ts +5 -5
  342. package/components/tabs/tab.js +5 -8
  343. package/components/tabs/tabs-base.d.ts +15 -0
  344. package/components/tabs/tabs-base.js +15 -0
  345. package/components/tabs/tabs.d.ts +5 -8
  346. package/components/tabs/tabs.js +38 -51
  347. package/components/tag/tag.d.ts +5 -15
  348. package/components/tag/tag.js +3 -8
  349. package/components/tooltip/tooltip-base.d.ts +14 -0
  350. package/components/tooltip/tooltip-base.js +18 -0
  351. package/components/tooltip/tooltip.d.ts +3 -10
  352. package/components/tooltip/tooltip.js +59 -43
  353. package/components/utils/contexts/HeaderContext.d.ts +1 -0
  354. package/components/utils/hooks/useFocusTrap.js +1 -1
  355. package/index.d.ts +91 -15
  356. package/index.js +91 -15
  357. package/package.json +2 -2
  358. package/components/box-link/box-link.d.ts +0 -9
  359. package/components/box-link/box-link.js +0 -11
  360. package/components/global-alert/global-alert.d.ts +0 -16
  361. package/components/global-alert/global-alert.js +0 -26
  362. package/components/mobile/menu/item/mobile-item.d.ts +0 -15
  363. package/components/mobile/menu/item/mobile-item.js +0 -61
  364. package/components/mobile/menu/mobile-menu.d.ts +0 -7
  365. package/components/mobile/menu/mobile-menu.js +0 -12
  366. package/components/notification/badge/notification-badge.js +0 -9
  367. package/components/pagination/data-pagination/data-pagination.js +0 -16
  368. package/components/puff-list/puff-list-item/puff-list-item-header.js +0 -11
  369. package/components/puff-list/puff-list-item/puff-list-item-info.js +0 -10
  370. package/components/utils/hooks/useElementId.d.ts +0 -5
  371. package/components/utils/hooks/useElementId.js +0 -12
  372. /package/components/{button-group → button}/button-group.d.ts +0 -0
@@ -1,41 +1,25 @@
1
1
  "use client";
2
- import { jsxs, jsx } from 'react/jsx-runtime';
3
- import { useState, useEffect } from 'react';
4
- import '@inera/ids-design/components/stepper/stepper.css';
5
- import clsx from 'clsx';
2
+ import { jsx } from 'react/jsx-runtime';
3
+ import React, { forwardRef, useState, useEffect, useImperativeHandle } from 'react';
4
+ import { IDSStepBase } from './step-base.js';
6
5
 
7
- const IDSStep = ({ state = "", headline, label = "", stepNumber = "", srIndicatorText = "", last = "false", expanded: expandedProp = false, disabled = false, onToggleExpansion, onExpanded, onClosed, className, children, ...props }) => {
8
- const [expanded, setExpanded] = useState(expandedProp);
6
+ const IDSStep = forwardRef(({ state = "", headline, label, stepNumber = "", srIndicatorText = "", expanded: expandedProp = false, disabled = false, onToggleStep, onExpanded, onClosed, className, ...props }, ref) => {
7
+ const [isExpanded, setIsExpanded] = useState(expandedProp);
8
+ const internalRef = React.useRef(null);
9
9
  useEffect(() => {
10
- setExpanded(expandedProp);
10
+ setIsExpanded(expandedProp);
11
11
  }, [expandedProp]);
12
12
  useEffect(() => {
13
- onToggleExpansion?.(Number(stepNumber), expanded);
14
- expanded ? onExpanded?.() : onClosed?.();
15
- }, [expanded]);
16
- const toggleExpansion = () => {
17
- if (!disabled) {
18
- setExpanded(prev => !prev);
19
- }
13
+ onToggleStep?.(stepNumber, isExpanded);
14
+ isExpanded ? onExpanded?.() : onClosed?.();
15
+ }, [isExpanded]);
16
+ useImperativeHandle(ref, () => internalRef.current);
17
+ const handleToggleStep = () => {
18
+ if (!disabled)
19
+ setIsExpanded(prev => !prev);
20
20
  };
21
- const handleKeyPress = (e) => {
22
- if (e.key === "Enter" || e.key === " ") {
23
- e.preventDefault();
24
- toggleExpansion();
25
- }
26
- };
27
- const renderStepIndicator = () => {
28
- if (state === "valid" || state === "invalid")
29
- return null;
30
- return stepNumber;
31
- };
32
- return (jsxs("div", { className: clsx("ids-step", className), ...(last ? { last } : {}), ...props, children: [jsx("div", { role: "button", tabIndex: disabled ? -1 : 0, className: clsx("ids-step__button", {
33
- "ids-step__button--disabled": disabled
34
- }), "aria-expanded": expanded, onClick: toggleExpansion, onKeyDown: handleKeyPress, 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: [label && jsx("div", { className: "ids-step__label", children: label }), headline && jsx("div", { className: "ids-step__headline", children: headline })] }), jsx("div", { className: clsx("ids-step__chevron", {
35
- "ids-step__chevron--expanded": expanded
36
- }) })] })] }) }), jsx("div", { className: clsx("ids-step__content", {
37
- "ids-step__content--expanded": expanded
38
- }), children: children })] }));
39
- };
21
+ 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 }));
22
+ });
23
+ IDSStep.displayName = "IDSStep";
40
24
 
41
25
  export { IDSStep };
@@ -1,9 +1,7 @@
1
1
  import React, { ReactElement } from "react";
2
- import { IDSStepProps } from "./step";
3
- import "@inera/ids-design/components/stepper/stepper.css";
4
- interface IDSStepperProps extends React.HTMLAttributes<HTMLDivElement> {
2
+ import type { IDSStepProps } from "./step";
3
+ export interface IDSStepperProps extends React.HTMLAttributes<HTMLDivElement> {
5
4
  children: ReactElement<IDSStepProps>[] | ReactElement<IDSStepProps>;
6
- onToggleExpansion?: (step: number, expanded: boolean) => void;
5
+ onToggleStep?: (step: string, expanded: boolean) => void;
7
6
  }
8
- export declare function IDSStepper({ children, onToggleExpansion, className, ...props }: IDSStepperProps): import("react/jsx-runtime").JSX.Element;
9
- export {};
7
+ export declare function IDSStepper({ children, onToggleStep, className, ...props }: IDSStepperProps): import("react/jsx-runtime").JSX.Element;
@@ -1,22 +1,17 @@
1
- "use client";
2
1
  import { jsx } from 'react/jsx-runtime';
3
2
  import React, { isValidElement, cloneElement } from 'react';
4
- import '@inera/ids-design/components/stepper/stepper.css';
5
3
  import clsx from 'clsx';
6
4
 
7
- function IDSStepper({ children, onToggleExpansion, className, ...props }) {
5
+ function IDSStepper({ children, onToggleStep, className, ...props }) {
8
6
  const stepsArray = React.Children.toArray(children).filter(isValidElement);
9
- const handleExpansion = (step, expanded) => {
10
- onToggleExpansion?.(step, expanded);
7
+ const handleToggleStep = (step, expanded) => {
8
+ onToggleStep?.(step, expanded);
11
9
  };
12
- const enhancedSteps = stepsArray.map((step, index) => {
13
- return cloneElement(step, {
14
- key: `step-key-${index}`,
15
- stepNumber: `${index + 1}`,
16
- last: index === stepsArray.length - 1 ? "true" : "false",
17
- onToggleExpansion: handleExpansion
18
- });
19
- });
10
+ const enhancedSteps = stepsArray.map((step, index) => cloneElement(step, {
11
+ key: `step-key-${index}`,
12
+ stepNumber: `${index + 1}`,
13
+ onToggleStep: handleToggleStep
14
+ }));
20
15
  return (jsx("div", { className: clsx("ids-stepper", className), ...props, children: enhancedSteps }));
21
16
  }
22
17
 
@@ -0,0 +1,15 @@
1
+ import React, { ReactNode, KeyboardEventHandler } from "react";
2
+ export interface IDSTabLinkProps {
3
+ notices?: number;
4
+ href: string;
5
+ label: string;
6
+ index?: string;
7
+ id?: string;
8
+ panelId?: string;
9
+ icon?: string;
10
+ selected?: boolean;
11
+ notification?: ReactNode;
12
+ onKeyDown?: KeyboardEventHandler<HTMLElement>;
13
+ className?: string;
14
+ }
15
+ export declare const IDSTabLink: React.ForwardRefExoticComponent<IDSTabLinkProps & React.RefAttributes<HTMLAnchorElement>>;
@@ -0,0 +1,10 @@
1
+ import { jsx, jsxs } from 'react/jsx-runtime';
2
+ import { forwardRef } from 'react';
3
+ import clsx from 'clsx';
4
+
5
+ const IDSTabLink = forwardRef(({ label, index = "", href, id = "", panelId = "", selected = false, icon = "", notification, onKeyDown, className, ...props }, ref) => {
6
+ return (jsx("a", { ...props, ref: ref, href: href, id: id, role: "tab", "aria-selected": selected, "aria-controls": panelId, className: clsx("ids-tab", { "ids-tab--selected": selected }, className), onKeyDown: onKeyDown, children: jsxs("div", { className: "ids-tab__label", children: [icon && jsx("span", { className: `ids-tab-icon ids-icon-${icon} ids-icon--m`, "aria-hidden": "true" }), label, notification] }) }));
7
+ });
8
+ IDSTabLink.displayName = "IDSTabLink";
9
+
10
+ export { IDSTabLink };
@@ -1,11 +1,9 @@
1
- import React, { ReactNode } from "react";
2
- import "@inera/ids-design/components/tabs/tab-panel.css";
1
+ import React from "react";
3
2
  export interface IDSTabPanelProps extends React.HTMLAttributes<HTMLDivElement> {
4
3
  compact?: boolean;
5
4
  noFocus?: boolean;
6
5
  selected?: boolean;
7
- children?: ReactNode;
8
6
  id?: string;
9
7
  tabId?: string;
10
8
  }
11
- export declare const IDSTabPanel: React.FC<IDSTabPanelProps>;
9
+ export declare const IDSTabPanel: React.ForwardRefExoticComponent<IDSTabPanelProps & React.RefAttributes<HTMLDivElement>>;
@@ -1,20 +1,13 @@
1
- "use client";
2
1
  import { jsx } from 'react/jsx-runtime';
3
- import { useRef, useEffect } from 'react';
4
- import '@inera/ids-design/components/tabs/tab-panel.css';
2
+ import { forwardRef } from 'react';
5
3
  import clsx from 'clsx';
6
4
 
7
- const IDSTabPanel = ({ compact = false, noFocus = false, selected = false, id = "", tabId = "", children, className, ...props }) => {
8
- const panelRef = useRef(null);
9
- useEffect(() => {
10
- if (panelRef.current && !noFocus) {
11
- panelRef.current.setAttribute("tabindex", "0");
12
- }
13
- }, [noFocus]);
14
- return (jsx("div", { ref: panelRef, role: "tabpanel", id: id, "aria-hidden": !selected, "aria-labelledby": tabId, hidden: !selected, className: clsx("ids-tab-panel", {
5
+ const IDSTabPanel = forwardRef(({ compact = false, noFocus = false, selected = false, id = "", tabId = "", className, children, ...props }, ref) => {
6
+ return (jsx("div", { ref: ref, role: "tabpanel", id: id, "aria-hidden": !selected, "aria-labelledby": tabId, hidden: !selected, tabIndex: noFocus ? undefined : 0, className: clsx("ids-tab-panel", {
15
7
  "ids-tab-panel--selected": selected,
16
8
  "ids-tab-panel--compact": compact
17
9
  }, className), ...props, children: children }));
18
- };
10
+ });
11
+ IDSTabPanel.displayName = "IDSTabPanel";
19
12
 
20
13
  export { IDSTabPanel };
@@ -1,6 +1,5 @@
1
- import React, { ReactNode, KeyboardEvent } from "react";
2
- import "@inera/ids-design/components/tabs/tab.css";
3
- export interface IDSTabProps extends React.HTMLAttributes<HTMLDivElement> {
1
+ import React, { ReactNode, KeyboardEventHandler } from "react";
2
+ export interface IDSTabProps {
4
3
  notices?: number;
5
4
  label: string;
6
5
  index?: string;
@@ -10,6 +9,7 @@ export interface IDSTabProps extends React.HTMLAttributes<HTMLDivElement> {
10
9
  selected?: boolean;
11
10
  notification?: ReactNode;
12
11
  onTabClick?: (index: string) => void;
13
- onKeyDown?: (e: KeyboardEvent) => void;
12
+ onKeyDown?: KeyboardEventHandler<HTMLElement>;
13
+ className?: string;
14
14
  }
15
- export declare const IDSTab: React.FC<IDSTabProps>;
15
+ export declare const IDSTab: React.ForwardRefExoticComponent<IDSTabProps & React.RefAttributes<HTMLDivElement>>;
@@ -1,19 +1,16 @@
1
1
  "use client";
2
2
  import { jsx, jsxs } from 'react/jsx-runtime';
3
- import { useRef } from 'react';
4
- import '@inera/ids-design/components/tabs/tab.css';
3
+ import { forwardRef } from 'react';
5
4
  import clsx from 'clsx';
6
5
 
7
- const IDSTab = ({ label, index, id = "", panelId = "", selected = false, icon = "", notification, className, onTabClick, onKeyDown, ...props }) => {
8
- const tabRef = useRef(null);
6
+ const IDSTab = forwardRef(({ label, index = "", id = "", panelId = "", selected = false, icon = "", notification, onTabClick, onKeyDown, className, ...props }, ref) => {
9
7
  const handleClick = () => {
10
8
  if (!selected) {
11
9
  onTabClick?.(index);
12
10
  }
13
11
  };
14
- return (jsx("div", { id: id, ref: tabRef, role: "tab", tabIndex: 0, onClick: handleClick, onKeyDown: onKeyDown, className: clsx("ids-tab", {
15
- "ids-tab--selected": selected
16
- }, className), "aria-selected": selected, "aria-controls": panelId, ...props, children: jsxs("div", { className: "ids-tab__label", children: [icon && jsx("span", { className: `ids-icon-${icon} ids-icon--m`, "aria-hidden": "true" }), label, notification] }) }));
17
- };
12
+ return (jsx("div", { ...props, ref: ref, id: id, role: "tab", "aria-selected": selected, "aria-controls": panelId, tabIndex: 0, className: clsx("ids-tab", { "ids-tab--selected": selected }, className), onKeyDown: onKeyDown, onClick: handleClick, children: jsxs("div", { className: "ids-tab__label", children: [icon && jsx("span", { className: `ids-tab-icon ids-icon-${icon} ids-icon--m`, "aria-hidden": "true" }), label, notification && jsx("span", { className: "ids-tab-extra", children: notification })] }) }));
13
+ });
14
+ IDSTab.displayName = "IDSTab";
18
15
 
19
16
  export { IDSTab };
@@ -0,0 +1,15 @@
1
+ import React, { ReactElement, ReactNode } from "react";
2
+ import { IDSTabProps } from "./tab";
3
+ import "@inera/ids-design/components/tabs/tabs.css";
4
+ interface IDSTabsBaseProps extends React.HTMLAttributes<HTMLDivElement> {
5
+ activeTab?: number;
6
+ unresponsive?: boolean;
7
+ light?: boolean;
8
+ compact?: boolean;
9
+ breakpoint?: "m" | "s";
10
+ selectLabel?: string;
11
+ tabs?: ReactElement<IDSTabProps>[];
12
+ select?: ReactNode;
13
+ }
14
+ export declare function IDSTabsBase({ unresponsive, light, compact, breakpoint, selectLabel, tabs, className, children, select, ...props }: IDSTabsBaseProps): import("react/jsx-runtime").JSX.Element;
15
+ export {};
@@ -0,0 +1,15 @@
1
+ import { jsxs, jsx } from 'react/jsx-runtime';
2
+ import clsx from 'clsx';
3
+ import '@inera/ids-design/components/tabs/tabs.css';
4
+
5
+ function IDSTabsBase({ unresponsive = false, light = false, compact = false, breakpoint = "m", selectLabel = "", tabs = [], className, children, select, ...props }) {
6
+ const responsiveOnM = breakpoint === "m" && !unresponsive;
7
+ const responsiveOnS = breakpoint === "s" && !unresponsive;
8
+ return (jsxs("div", { ...props, className: clsx("ids-tabs", {
9
+ "ids-tabs--unresponsive": unresponsive,
10
+ "ids-tabs--responsive-on-m": responsiveOnM,
11
+ "ids-tabs--responsive-on-s": responsiveOnS
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
+ }
14
+
15
+ export { IDSTabsBase };
@@ -1,15 +1,12 @@
1
- import React, { ReactNode, ReactElement } from "react";
2
- import "@inera/ids-design/components/tabs/tabs.css";
1
+ import React, { ReactElement } from "react";
3
2
  import { IDSTabProps } from "./tab";
4
- interface IDSTabsProps extends React.HTMLAttributes<HTMLDivElement> {
3
+ export interface IDSTabsProps extends React.HTMLAttributes<HTMLDivElement> {
4
+ tabs?: ReactElement<IDSTabProps>[];
5
+ onTabChange?: (index: number) => void;
5
6
  unresponsive?: boolean;
6
7
  light?: boolean;
7
8
  compact?: boolean;
8
9
  breakpoint?: "m" | "s";
9
10
  selectLabel?: string;
10
- tabs?: ReactElement<IDSTabProps>[];
11
- children?: ReactNode;
12
- onTabChange?: (index: number) => void;
13
11
  }
14
- export declare const IDSTabs: React.FC<IDSTabsProps>;
15
- export {};
12
+ export declare function IDSTabs({ tabs, selectLabel, light, compact, breakpoint, children, onTabChange, ...props }: IDSTabsProps): import("react/jsx-runtime").JSX.Element;
@@ -1,52 +1,65 @@
1
1
  "use client";
2
- import { jsxs, jsx } from 'react/jsx-runtime';
3
- import React, { useState } from 'react';
2
+ import { jsx } from 'react/jsx-runtime';
3
+ import React, { useId, useState } from 'react';
4
+ import { IDSTabsBase } from './tabs-base.js';
4
5
  import { IDSSelect } from '../form/select/select.js';
5
- import '@inera/ids-design/components/tabs/tabs.css';
6
- import { useElementId } from '../utils/hooks/useElementId.js';
7
- import clsx from 'clsx';
8
6
 
9
- const IDSTabs = ({ unresponsive = false, light = false, compact = false, breakpoint = "m", selectLabel = "", tabs = [], children, className, onTabChange, ...props }) => {
10
- const tabsId = useElementId();
7
+ function IDSTabs({ tabs = [], selectLabel, light, compact, breakpoint, children, onTabChange, ...props }) {
8
+ const reactId = useId();
9
+ const getTabId = (index) => `tab-${reactId}-${index}`;
10
+ const getTabPanelId = (index) => `tab-panel-${reactId}-${index}`;
11
11
  const initialSelectedIndex = tabs.findIndex(tab => React.isValidElement(tab) && tab.props.selected === true);
12
12
  const [activeTab, setActiveTab] = useState(initialSelectedIndex !== -1 ? initialSelectedIndex : 0);
13
- const responsiveOnM = breakpoint === "m" && !unresponsive;
14
- const responsiveOnS = breakpoint === "s" && !unresponsive;
15
- const handleSelect = (index) => {
13
+ const handleTabChange = (index) => {
16
14
  setActiveTab(index);
17
15
  onTabChange?.(index);
18
16
  };
17
+ const tabChangedFromSelect = (e) => {
18
+ handleTabChange?.(Number(e.target.value));
19
+ };
20
+ const renderTabOptions = () => tabs?.map((tab, i) => {
21
+ if (!React.isValidElement(tab))
22
+ return null;
23
+ const { label, notification } = tab.props;
24
+ let notificationText = "";
25
+ if (typeof notification === "string" || typeof notification === "number") {
26
+ notificationText = String(notification);
27
+ }
28
+ else if (React.isValidElement(notification)) {
29
+ const badge = notification;
30
+ const childTexts = React.Children.toArray(badge.props.children)
31
+ .map(child => (typeof child === "string" || typeof child === "number" ? child : ""))
32
+ .join("");
33
+ notificationText = childTexts.trim();
34
+ }
35
+ const optionLabel = notificationText ? `${label} (${notificationText})` : label;
36
+ return (jsx("option", { value: i, children: optionLabel }, i));
37
+ });
19
38
  const handleKeydown = (e, index) => {
20
39
  if (e.key === "Enter" || e.key === " ") {
21
40
  e.preventDefault();
22
- handleSelect(index);
41
+ handleTabChange?.(index);
23
42
  }
24
43
  else if (e.key === "ArrowLeft" && index > 0) {
25
44
  e.preventDefault();
26
- document.getElementById(getTabId(index - 1))?.focus();
45
+ document.getElementById(getTabId?.(index - 1))?.focus();
27
46
  }
28
47
  else if (e.key === "ArrowRight" && index < tabs.length - 1) {
29
48
  e.preventDefault();
30
49
  document.getElementById(getTabId(index + 1))?.focus();
31
50
  }
32
51
  };
33
- const getTabId = (index) => {
34
- return `${tabsId}-tab-${index}`;
35
- };
36
- const getTabPanelId = (index) => {
37
- return `${tabsId}-tab-panel-${index}`;
38
- };
39
52
  const enhancedTabs = React.Children.map(tabs, (tab, idx) => {
40
53
  if (!React.isValidElement(tab))
41
54
  return tab;
42
55
  return React.cloneElement(tab, {
43
56
  key: `tab-key-${idx}`,
44
- id: getTabId(idx),
45
- panelId: getTabPanelId(idx),
57
+ id: getTabId?.(idx),
58
+ panelId: getTabPanelId?.(idx),
46
59
  index: `${idx}`,
47
60
  label: tab.props.label,
48
61
  selected: activeTab === idx,
49
- onTabClick: () => handleSelect(idx),
62
+ onTabClick: () => handleTabChange?.(idx),
50
63
  onKeyDown: (e) => handleKeydown(e, idx)
51
64
  });
52
65
  });
@@ -55,41 +68,15 @@ const IDSTabs = ({ unresponsive = false, light = false, compact = false, breakpo
55
68
  return panel;
56
69
  return React.cloneElement(panel, {
57
70
  key: `tab-panel-key-${idx}`,
58
- id: getTabPanelId(idx),
59
- tabId: getTabId(idx),
71
+ id: getTabPanelId?.(idx),
72
+ tabId: getTabId?.(idx),
60
73
  role: "tabpanel",
61
74
  hidden: activeTab !== idx,
62
75
  selected: activeTab === idx,
63
76
  compact
64
77
  });
65
78
  });
66
- const tabChangedFromSelect = (e) => {
67
- const index = Number(e.target.value);
68
- handleSelect(index);
69
- };
70
- const renderTabOptions = () => tabs?.map((tab, i) => {
71
- if (!React.isValidElement(tab))
72
- return null;
73
- const { label, notification } = tab.props;
74
- let notificationText = "";
75
- if (typeof notification === "string" || typeof notification === "number") {
76
- notificationText = String(notification);
77
- }
78
- else if (React.isValidElement(notification)) {
79
- const badge = notification;
80
- const childTexts = React.Children.toArray(badge.props.children)
81
- .map(child => (typeof child === "string" || typeof child === "number" ? child : ""))
82
- .join("");
83
- notificationText = childTexts.trim();
84
- }
85
- const optionLabel = notificationText ? `${label} (${notificationText})` : label;
86
- return (jsx("option", { value: i, children: optionLabel }, i));
87
- });
88
- return (jsxs("div", { className: clsx("ids-tabs", {
89
- "ids-tabs--unresponsive": unresponsive,
90
- "ids-tabs--responsive-on-m": responsiveOnM,
91
- "ids-tabs--responsive-on-s": responsiveOnS
92
- }, className), ...props, children: [jsx("div", { className: "ids-tabs__select", children: jsx(IDSSelect, { label: selectLabel, onChange: tabChangedFromSelect, value: activeTab, light: light, children: renderTabOptions() }) }), jsx("div", { className: "ids-tabs__tabs", role: "tablist", children: enhancedTabs }), jsx("div", { className: "ids-tabs__panels", children: enhancedTabPanels })] }));
93
- };
79
+ return (jsx(IDSTabsBase, { ...props, tabs: enhancedTabs, breakpoint: breakpoint, select: jsx(IDSSelect, { label: selectLabel, onChange: tabChangedFromSelect, value: activeTab, light: light, children: renderTabOptions() }), children: enhancedTabPanels }));
80
+ }
94
81
 
95
82
  export { IDSTabs };
@@ -1,17 +1,7 @@
1
1
  import React, { ReactNode } from "react";
2
2
  import "@inera/ids-design/components/tag/tag.css";
3
- type ButtonTagProps = React.ButtonHTMLAttributes<HTMLButtonElement> & {
4
- onClick: () => void;
5
- onClose?: () => void;
6
- srCloseLabel?: string;
7
- children?: ReactNode;
8
- };
9
- type SpanTagProps = React.HTMLAttributes<HTMLSpanElement> & {
10
- onClick?: undefined;
11
- onClose?: () => void;
12
- srCloseLabel?: string;
13
- children?: ReactNode;
14
- };
15
- type IDSTagProps = ButtonTagProps | SpanTagProps;
16
- export declare const IDSTag: React.ForwardRefExoticComponent<IDSTagProps & React.RefAttributes<HTMLButtonElement | HTMLSpanElement>>;
17
- export {};
3
+ export interface IDSTagProps extends React.HTMLAttributes<HTMLSpanElement> {
4
+ closeButton?: ReactNode;
5
+ clickable?: boolean;
6
+ }
7
+ export declare const IDSTag: React.ForwardRefExoticComponent<IDSTagProps & React.RefAttributes<HTMLSpanElement>>;
@@ -1,15 +1,10 @@
1
1
  import { jsx, jsxs } from 'react/jsx-runtime';
2
2
  import { forwardRef } from 'react';
3
- import '@inera/ids-design/components/tag/tag.css';
4
3
  import clsx from 'clsx';
4
+ import '@inera/ids-design/components/tag/tag.css';
5
5
 
6
- const IDSTag = forwardRef(({ srCloseLabel = "", onClose, onClick, className, children, ...props }, ref) => {
7
- const isClickable = !!onClick;
8
- const TagWrapper = isClickable ? "button" : "span";
9
- return (jsx(TagWrapper, { ref: ref, ...props, className: clsx("ids-tag", { "ids-tag--clickable": isClickable }, className), onClick: isClickable ? onClick : undefined, children: jsxs("div", { className: "ids-tag__content", children: [children, !isClickable && !!onClose && (jsx("button", { type: "button", className: "ids-tag__close-btn", "aria-label": srCloseLabel, onClick: e => {
10
- e.stopPropagation();
11
- onClose?.();
12
- } }))] }) }));
6
+ const IDSTag = forwardRef(({ clickable, closeButton, className, children, ...props }, ref) => {
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 })] }) }));
13
8
  });
14
9
  IDSTag.displayName = "IDSTag";
15
10
 
@@ -0,0 +1,14 @@
1
+ import React, { ReactNode } from "react";
2
+ import "@inera/ids-design/components/tooltip/tooltip.css";
3
+ export type TooltipPosition = "top-left" | "top" | "top-right" | "bottom-left" | "bottom" | "bottom-right";
4
+ export interface IDSTooltipBaseProps extends React.HTMLAttributes<HTMLSpanElement> {
5
+ position?: TooltipPosition;
6
+ maxWidth?: string;
7
+ translateX?: string;
8
+ translateY?: string;
9
+ trigger: ReactNode;
10
+ triggerIsIcon?: boolean;
11
+ triggerRef?: React.Ref<HTMLSpanElement>;
12
+ tooltipContentRef?: React.Ref<HTMLSpanElement>;
13
+ }
14
+ export declare function IDSTooltipBase({ position, maxWidth, translateX, translateY, trigger, triggerIsIcon, triggerRef, tooltipContentRef, className, children, ...props }: IDSTooltipBaseProps): import("react/jsx-runtime").JSX.Element;
@@ -0,0 +1,18 @@
1
+ import { jsxs, jsx } from 'react/jsx-runtime';
2
+ import { useId } from 'react';
3
+ import clsx from 'clsx';
4
+ import '@inera/ids-design/components/tooltip/tooltip.css';
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 }) {
7
+ const tooltipId = `tooltip-${useId()}`;
8
+ const ariaHandler = triggerIsIcon
9
+ ? {
10
+ "aria-labelledby": tooltipId
11
+ }
12
+ : {
13
+ "aria-describedby": tooltipId
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 })] }));
16
+ }
17
+
18
+ export { IDSTooltipBase };
@@ -1,11 +1,4 @@
1
- import React, { ReactNode } from "react";
2
- import "@inera/ids-design/components/tooltip/tooltip.css";
3
- export type TooltipPosition = "top-left" | "top" | "top-right" | "bottom-left" | "bottom" | "bottom-right";
4
- interface IDSTooltipProps extends React.HTMLAttributes<HTMLDivElement> {
5
- position?: TooltipPosition;
6
- maxWidth?: string;
7
- trigger: ReactNode;
8
- children?: ReactNode;
1
+ import { IDSTooltipBaseProps } from "./tooltip-base";
2
+ export interface IDSTooltipProps extends Omit<IDSTooltipBaseProps, "translateX" | "translateY"> {
9
3
  }
10
- export declare const IDSTooltip: React.FC<IDSTooltipProps>;
11
- export {};
4
+ export declare function IDSTooltip({ position, maxWidth, trigger, className, ...props }: IDSTooltipProps): import("react/jsx-runtime").JSX.Element;