@inera/ids-react 8.2.0 → 9.0.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (370) hide show
  1. package/components/accordion/accordion-base.d.ts +18 -0
  2. package/components/accordion/accordion-base.js +33 -0
  3. package/components/accordion/accordion.d.ts +5 -4
  4. package/components/accordion/accordion.js +16 -35
  5. package/components/alert/alert-base.d.ts +21 -0
  6. package/components/alert/alert-base.js +29 -0
  7. package/components/alert/alert.d.ts +3 -19
  8. package/components/alert/alert.js +8 -18
  9. package/components/alert/global-alert-base.d.ts +15 -0
  10. package/components/alert/global-alert-base.js +21 -0
  11. package/components/alert/global-alert.d.ts +7 -0
  12. package/components/alert/global-alert.js +19 -0
  13. package/components/badge/badge.js +2 -2
  14. package/components/breadcrumbs/breadcrumbs.js +2 -2
  15. package/components/{button-group → button}/button-group.js +2 -2
  16. package/components/button/button.js +3 -3
  17. package/components/card/card.js +3 -3
  18. package/components/carousel/carousel-item.d.ts +5 -4
  19. package/components/carousel/carousel-item.js +8 -6
  20. package/components/carousel/carousel.d.ts +4 -1
  21. package/components/carousel/carousel.js +24 -39
  22. package/components/{pagination/data-pagination → data-pagination}/data-pagination.d.ts +2 -6
  23. package/components/data-pagination/data-pagination.js +12 -0
  24. package/components/date-label/date-label.js +2 -2
  25. package/components/dialog/dialog-base.d.ts +21 -0
  26. package/components/dialog/dialog-base.js +29 -0
  27. package/components/dialog/dialog.d.ts +14 -17
  28. package/components/dialog/dialog.js +36 -36
  29. package/components/dropdown/dropdown-base.d.ts +18 -0
  30. package/components/dropdown/dropdown-base.js +42 -0
  31. package/components/dropdown/dropdown-content-button.d.ts +0 -1
  32. package/components/dropdown/dropdown-content-button.js +0 -1
  33. package/components/dropdown/dropdown-content-link.d.ts +2 -3
  34. package/components/dropdown/dropdown-content-link.js +3 -10
  35. package/components/dropdown/dropdown.d.ts +11 -13
  36. package/components/dropdown/dropdown.js +34 -53
  37. package/components/footer-1177/footer-1177.d.ts +6 -7
  38. package/components/footer-1177/footer-1177.js +8 -5
  39. package/components/footer-1177-admin/footer-1177-admin.d.ts +6 -7
  40. package/components/footer-1177-admin/footer-1177-admin.js +9 -6
  41. package/components/footer-1177-pro/footer-1177-pro.d.ts +6 -7
  42. package/components/footer-1177-pro/footer-1177-pro.js +9 -6
  43. package/components/footer-inera/footer-inera.d.ts +6 -7
  44. package/components/footer-inera/footer-inera.js +9 -6
  45. package/components/footer-inera-admin/footer-inera-admin.d.ts +6 -7
  46. package/components/footer-inera-admin/footer-inera-admin.js +9 -6
  47. package/components/form/check-button/check-button.d.ts +5 -6
  48. package/components/form/check-button/check-button.js +5 -10
  49. package/components/form/checkbox/checkbox-base.d.ts +19 -0
  50. package/components/form/checkbox/checkbox-base.js +29 -0
  51. package/components/form/checkbox/checkbox-group-base.d.ts +12 -0
  52. package/components/form/checkbox/checkbox-group-base.js +13 -0
  53. package/components/form/checkbox/checkbox-group.d.ts +4 -5
  54. package/components/form/checkbox/checkbox-group.js +26 -30
  55. package/components/form/checkbox/checkbox.d.ts +3 -3
  56. package/components/form/checkbox/checkbox.js +17 -41
  57. package/components/form/darkmode-toggle/darkmode-toggle.d.ts +11 -0
  58. package/components/form/darkmode-toggle/darkmode-toggle.js +13 -0
  59. package/components/form/datepicker/datepicker.d.ts +11 -4
  60. package/components/form/datepicker/datepicker.js +65 -27
  61. package/components/form/error-message/error-message.d.ts +1 -2
  62. package/components/form/error-message/error-message.js +2 -4
  63. package/components/form/form-hooks/useGroupValidity.d.ts +4 -1
  64. package/components/form/form-hooks/useGroupValidity.js +7 -2
  65. package/components/form/form-hooks/useInputValidity.d.ts +1 -1
  66. package/components/form/form-hooks/useInputValidity.js +9 -5
  67. package/components/form/input/input-base.d.ts +24 -0
  68. package/components/form/input/input-base.js +32 -0
  69. package/components/form/input/input.d.ts +3 -2
  70. package/components/form/input/input.js +8 -24
  71. package/components/form/radio/radio-base.d.ts +16 -0
  72. package/components/form/radio/radio-base.js +24 -0
  73. package/components/form/radio/radio-group-base.d.ts +13 -0
  74. package/components/form/radio/radio-group-base.js +10 -0
  75. package/components/form/radio/radio-group.d.ts +6 -5
  76. package/components/form/radio/radio-group.js +25 -19
  77. package/components/form/radio/radio.d.ts +9 -9
  78. package/components/form/radio/radio.js +7 -20
  79. package/components/form/radio-button/radio-button-group-base.d.ts +8 -0
  80. package/components/form/radio-button/radio-button-group-base.js +8 -0
  81. package/components/form/radio-button/radio-button-group.d.ts +4 -3
  82. package/components/form/radio-button/radio-button-group.js +18 -12
  83. package/components/form/radio-button/radio-button.d.ts +4 -5
  84. package/components/form/radio-button/radio-button.js +5 -10
  85. package/components/form/range/range-base.d.ts +18 -0
  86. package/components/form/range/range-base.js +16 -0
  87. package/components/form/range/range.d.ts +3 -6
  88. package/components/form/range/range.js +23 -23
  89. package/components/form/select/select-base.d.ts +19 -0
  90. package/components/form/select/select-base.js +24 -0
  91. package/components/form/select/select.d.ts +7 -7
  92. package/components/form/select/select.js +8 -18
  93. package/components/form/select-multiple/select-multiple-base.d.ts +27 -0
  94. package/components/form/select-multiple/select-multiple-base.js +27 -0
  95. package/components/form/select-multiple/select-multiple.d.ts +10 -7
  96. package/components/form/select-multiple/select-multiple.js +29 -54
  97. package/components/form/spinner/spinner.d.ts +3 -4
  98. package/components/form/spinner/spinner.js +3 -7
  99. package/components/form/textarea/textarea-base.d.ts +24 -0
  100. package/components/form/textarea/textarea-base.js +34 -0
  101. package/components/form/textarea/textarea.d.ts +4 -5
  102. package/components/form/textarea/textarea.js +6 -22
  103. package/components/form/time/time-base.d.ts +17 -0
  104. package/components/form/time/time-base.js +24 -0
  105. package/components/form/time/time.d.ts +8 -7
  106. package/components/form/time/time.js +5 -16
  107. package/components/form/toggle/toggle.d.ts +1 -2
  108. package/components/form/toggle/toggle.js +5 -8
  109. package/components/grid/column.d.ts +1 -1
  110. package/components/grid/column.js +6 -7
  111. package/components/grid/container.js +1 -1
  112. package/components/grid/row.js +1 -1
  113. package/components/grid-layout/grid-column.d.ts +19 -0
  114. package/components/grid-layout/grid-column.js +14 -0
  115. package/components/grid-layout/grid-container.d.ts +10 -0
  116. package/components/grid-layout/grid-container.js +17 -0
  117. package/components/grid-layout/grid-row.d.ts +8 -0
  118. package/components/grid-layout/grid-row.js +12 -0
  119. package/components/header-1177/header-1177-avatar-base.d.ts +16 -0
  120. package/components/header-1177/header-1177-avatar-base.js +24 -0
  121. package/components/header-1177/header-1177-avatar.d.ts +4 -7
  122. package/components/header-1177/header-1177-avatar.js +35 -42
  123. package/components/header-1177/header-1177-base.d.ts +18 -0
  124. package/components/header-1177/header-1177-base.js +14 -0
  125. package/components/header-1177/header-1177-item-base.d.ts +9 -0
  126. package/components/header-1177/header-1177-item-base.js +13 -0
  127. package/components/header-1177/header-1177-item.d.ts +2 -7
  128. package/components/header-1177/header-1177-item.js +6 -29
  129. package/components/header-1177/header-1177-menu-mobile-base.d.ts +12 -0
  130. package/components/header-1177/header-1177-menu-mobile-base.js +18 -0
  131. package/components/header-1177/header-1177-menu-mobile.d.ts +4 -5
  132. package/components/header-1177/header-1177-menu-mobile.js +29 -28
  133. package/components/header-1177/header-1177-nav-base.d.ts +9 -0
  134. package/components/header-1177/header-1177-nav-base.js +12 -0
  135. package/components/header-1177/header-1177-nav-item-base.d.ts +18 -0
  136. package/components/header-1177/header-1177-nav-item-base.js +31 -0
  137. package/components/header-1177/header-1177-nav-item-mobile-base.d.ts +7 -0
  138. package/components/header-1177/header-1177-nav-item-mobile-base.js +10 -0
  139. package/components/header-1177/header-1177-nav-item-mobile.d.ts +4 -8
  140. package/components/header-1177/header-1177-nav-item-mobile.js +5 -16
  141. package/components/header-1177/header-1177-nav-item.d.ts +7 -7
  142. package/components/header-1177/header-1177-nav-item.js +44 -35
  143. package/components/header-1177/header-1177-nav.d.ts +2 -4
  144. package/components/header-1177/header-1177-nav.js +5 -9
  145. package/components/header-1177/header-1177-region-picker-base.d.ts +9 -0
  146. package/components/header-1177/header-1177-region-picker-base.js +21 -0
  147. package/components/header-1177/header-1177-region-picker-mobile-base.d.ts +9 -0
  148. package/components/header-1177/header-1177-region-picker-mobile-base.js +21 -0
  149. package/components/header-1177/header-1177-region-picker-mobile.d.ts +3 -6
  150. package/components/header-1177/header-1177-region-picker-mobile.js +13 -29
  151. package/components/header-1177/header-1177-region-picker.d.ts +3 -6
  152. package/components/header-1177/header-1177-region-picker.js +15 -29
  153. package/components/header-1177/header-1177.d.ts +3 -3
  154. package/components/header-1177/header-1177.js +5 -10
  155. package/components/header-1177-admin/header-1177-admin-avatar-base.d.ts +14 -0
  156. package/components/header-1177-admin/header-1177-admin-avatar-base.js +23 -0
  157. package/components/header-1177-admin/header-1177-admin-avatar-mobile-base.d.ts +13 -0
  158. package/components/header-1177-admin/header-1177-admin-avatar-mobile-base.js +23 -0
  159. package/components/header-1177-admin/header-1177-admin-avatar-mobile.d.ts +3 -5
  160. package/components/header-1177-admin/header-1177-admin-avatar-mobile.js +27 -23
  161. package/components/header-1177-admin/header-1177-admin-avatar.d.ts +3 -5
  162. package/components/header-1177-admin/header-1177-admin-avatar.js +26 -25
  163. package/components/header-1177-admin/header-1177-admin-base.d.ts +18 -0
  164. package/components/header-1177-admin/header-1177-admin-base.js +14 -0
  165. package/components/header-1177-admin/header-1177-admin-item-base.d.ts +8 -0
  166. package/components/header-1177-admin/header-1177-admin-item-base.js +12 -0
  167. package/components/header-1177-admin/header-1177-admin-item.d.ts +3 -8
  168. package/components/header-1177-admin/header-1177-admin-item.js +5 -27
  169. package/components/header-1177-admin/header-1177-admin-menu-mobile-base.d.ts +11 -0
  170. package/components/header-1177-admin/header-1177-admin-menu-mobile-base.js +18 -0
  171. package/components/header-1177-admin/header-1177-admin-menu-mobile.d.ts +4 -5
  172. package/components/header-1177-admin/header-1177-admin-menu-mobile.js +27 -25
  173. package/components/header-1177-admin/header-1177-admin-nav-base.d.ts +7 -0
  174. package/components/header-1177-admin/header-1177-admin-nav-base.js +10 -0
  175. package/components/header-1177-admin/header-1177-admin-nav-item-base.d.ts +18 -0
  176. package/components/header-1177-admin/header-1177-admin-nav-item-base.js +31 -0
  177. package/components/header-1177-admin/header-1177-admin-nav-item-mobile-base.d.ts +7 -0
  178. package/components/header-1177-admin/header-1177-admin-nav-item-mobile-base.js +10 -0
  179. package/components/header-1177-admin/header-1177-admin-nav-item-mobile.d.ts +7 -0
  180. package/components/header-1177-admin/header-1177-admin-nav-item-mobile.js +11 -0
  181. package/components/header-1177-admin/header-1177-admin-nav-item.d.ts +6 -6
  182. package/components/header-1177-admin/header-1177-admin-nav-item.js +44 -35
  183. package/components/header-1177-admin/header-1177-admin-nav.d.ts +2 -4
  184. package/components/header-1177-admin/header-1177-admin-nav.js +4 -6
  185. package/components/header-1177-admin/header-1177-admin.d.ts +2 -3
  186. package/components/header-1177-admin/header-1177-admin.js +5 -10
  187. package/components/header-1177-pro/header-1177-pro-avatar-base.d.ts +14 -0
  188. package/components/header-1177-pro/header-1177-pro-avatar-base.js +23 -0
  189. package/components/header-1177-pro/header-1177-pro-avatar-mobile-base.d.ts +13 -0
  190. package/components/header-1177-pro/header-1177-pro-avatar-mobile-base.js +24 -0
  191. package/components/header-1177-pro/header-1177-pro-avatar-mobile.d.ts +3 -6
  192. package/components/header-1177-pro/header-1177-pro-avatar-mobile.js +23 -20
  193. package/components/header-1177-pro/header-1177-pro-avatar.d.ts +4 -6
  194. package/components/header-1177-pro/header-1177-pro-avatar.js +32 -30
  195. package/components/header-1177-pro/header-1177-pro-base.d.ts +19 -0
  196. package/components/header-1177-pro/header-1177-pro-base.js +11 -0
  197. package/components/header-1177-pro/header-1177-pro-item-base.d.ts +8 -0
  198. package/components/header-1177-pro/header-1177-pro-item-base.js +12 -0
  199. package/components/header-1177-pro/header-1177-pro-item.d.ts +3 -8
  200. package/components/header-1177-pro/header-1177-pro-item.js +5 -27
  201. package/components/header-1177-pro/header-1177-pro-menu-mobile-base.d.ts +11 -0
  202. package/components/header-1177-pro/header-1177-pro-menu-mobile-base.js +18 -0
  203. package/components/header-1177-pro/header-1177-pro-menu-mobile.d.ts +5 -6
  204. package/components/header-1177-pro/header-1177-pro-menu-mobile.js +27 -25
  205. package/components/header-1177-pro/header-1177-pro-nav-base.d.ts +10 -0
  206. package/components/header-1177-pro/header-1177-pro-nav-base.js +10 -0
  207. package/components/header-1177-pro/header-1177-pro-nav-item-base.d.ts +18 -0
  208. package/components/header-1177-pro/header-1177-pro-nav-item-base.js +31 -0
  209. package/components/header-1177-pro/header-1177-pro-nav-item-mobile-base.d.ts +7 -0
  210. package/components/header-1177-pro/header-1177-pro-nav-item-mobile-base.js +10 -0
  211. package/components/header-1177-pro/header-1177-pro-nav-item-mobile.d.ts +7 -0
  212. package/components/header-1177-pro/header-1177-pro-nav-item-mobile.js +11 -0
  213. package/components/header-1177-pro/header-1177-pro-nav-item.d.ts +6 -6
  214. package/components/header-1177-pro/header-1177-pro-nav-item.js +44 -35
  215. package/components/header-1177-pro/header-1177-pro-nav.d.ts +4 -5
  216. package/components/header-1177-pro/header-1177-pro-nav.js +5 -7
  217. package/components/header-1177-pro/header-1177-pro-region-picker-base.d.ts +9 -0
  218. package/components/header-1177-pro/header-1177-pro-region-picker-base.js +19 -0
  219. package/components/header-1177-pro/header-1177-pro-region-picker-mobile-base.d.ts +9 -0
  220. package/components/header-1177-pro/header-1177-pro-region-picker-mobile-base.js +19 -0
  221. package/components/header-1177-pro/header-1177-pro-region-picker-mobile.d.ts +3 -5
  222. package/components/header-1177-pro/header-1177-pro-region-picker-mobile.js +13 -29
  223. package/components/header-1177-pro/header-1177-pro-region-picker.d.ts +3 -5
  224. package/components/header-1177-pro/header-1177-pro-region-picker.js +15 -29
  225. package/components/header-1177-pro/header-1177-pro.d.ts +4 -5
  226. package/components/header-1177-pro/header-1177-pro.js +5 -7
  227. package/components/header-inera/header-inera-base.d.ts +14 -0
  228. package/components/header-inera/header-inera-base.js +11 -0
  229. package/components/header-inera/header-inera-item-base.d.ts +8 -0
  230. package/components/header-inera/header-inera-item-base.js +12 -0
  231. package/components/header-inera/header-inera-item.d.ts +3 -8
  232. package/components/header-inera/header-inera-item.js +5 -36
  233. package/components/header-inera/header-inera-menu-mobile-base.d.ts +11 -0
  234. package/components/header-inera/header-inera-menu-mobile-base.js +18 -0
  235. package/components/header-inera/header-inera-menu-mobile.d.ts +5 -6
  236. package/components/header-inera/header-inera-menu-mobile.js +27 -26
  237. package/components/header-inera/header-inera-nav-base.d.ts +7 -0
  238. package/components/header-inera/header-inera-nav-base.js +10 -0
  239. package/components/header-inera/header-inera-nav-item-base.d.ts +17 -0
  240. package/components/header-inera/header-inera-nav-item-base.js +26 -0
  241. package/components/header-inera/header-inera-nav-item.d.ts +7 -7
  242. package/components/header-inera/header-inera-nav-item.js +44 -34
  243. package/components/header-inera/header-inera-nav.d.ts +4 -6
  244. package/components/header-inera/header-inera-nav.js +4 -7
  245. package/components/header-inera/header-inera.d.ts +1 -3
  246. package/components/header-inera/header-inera.js +5 -7
  247. package/components/header-inera-admin/header-inera-admin-avatar-base.d.ts +14 -0
  248. package/components/header-inera-admin/header-inera-admin-avatar-base.js +23 -0
  249. package/components/header-inera-admin/header-inera-admin-avatar-mobile-base.d.ts +13 -0
  250. package/components/header-inera-admin/header-inera-admin-avatar-mobile-base.js +23 -0
  251. package/components/header-inera-admin/header-inera-admin-avatar-mobile.d.ts +3 -6
  252. package/components/header-inera-admin/header-inera-admin-avatar-mobile.js +26 -21
  253. package/components/header-inera-admin/header-inera-admin-avatar.d.ts +4 -6
  254. package/components/header-inera-admin/header-inera-admin-avatar.js +35 -31
  255. package/components/header-inera-admin/header-inera-admin-base.d.ts +15 -0
  256. package/components/header-inera-admin/header-inera-admin-base.js +20 -0
  257. package/components/header-inera-admin/header-inera-admin-item-base.d.ts +8 -0
  258. package/components/header-inera-admin/header-inera-admin-item-base.js +13 -0
  259. package/components/header-inera-admin/header-inera-admin-item.d.ts +3 -8
  260. package/components/header-inera-admin/header-inera-admin-item.js +6 -26
  261. package/components/header-inera-admin/header-inera-admin-menu-mobile-base.d.ts +11 -0
  262. package/components/header-inera-admin/header-inera-admin-menu-mobile-base.js +18 -0
  263. package/components/header-inera-admin/header-inera-admin-menu-mobile.d.ts +4 -5
  264. package/components/header-inera-admin/header-inera-admin-menu-mobile.js +27 -25
  265. package/components/header-inera-admin/header-inera-admin-nav-base.d.ts +7 -0
  266. package/components/header-inera-admin/header-inera-admin-nav-base.js +10 -0
  267. package/components/header-inera-admin/header-inera-admin-nav-item-base.d.ts +18 -0
  268. package/components/header-inera-admin/header-inera-admin-nav-item-base.js +31 -0
  269. package/components/header-inera-admin/header-inera-admin-nav-item-mobile-base.d.ts +7 -0
  270. package/components/header-inera-admin/header-inera-admin-nav-item-mobile-base.js +10 -0
  271. package/components/header-inera-admin/header-inera-admin-nav-item-mobile.d.ts +7 -0
  272. package/components/header-inera-admin/header-inera-admin-nav-item-mobile.js +11 -0
  273. package/components/header-inera-admin/header-inera-admin-nav-item.d.ts +7 -6
  274. package/components/header-inera-admin/header-inera-admin-nav-item.js +44 -34
  275. package/components/header-inera-admin/header-inera-admin-nav.d.ts +4 -6
  276. package/components/header-inera-admin/header-inera-admin-nav.js +5 -8
  277. package/components/header-inera-admin/header-inera-admin.d.ts +3 -4
  278. package/components/header-inera-admin/header-inera-admin.js +5 -16
  279. package/components/header-patient/header-patient.d.ts +2 -4
  280. package/components/header-patient/header-patient.js +6 -10
  281. package/components/{action-link → link}/action-link.js +2 -2
  282. package/components/link/box-link.d.ts +6 -0
  283. package/components/link/box-link.js +9 -0
  284. package/components/link/link.d.ts +2 -2
  285. package/components/link/link.js +3 -10
  286. package/components/list-pagination/list-pagination-links.d.ts +19 -0
  287. package/components/list-pagination/list-pagination-links.js +48 -0
  288. package/components/{pagination/list-pagination → list-pagination}/list-pagination.d.ts +3 -2
  289. package/components/{pagination/list-pagination → list-pagination}/list-pagination.js +4 -3
  290. package/components/mobile-menu/mobile-item-base.d.ts +14 -0
  291. package/components/mobile-menu/mobile-item-base.js +46 -0
  292. package/components/mobile-menu/mobile-item.d.ts +6 -0
  293. package/components/mobile-menu/mobile-item.js +26 -0
  294. package/components/mobile-menu/mobile-menu.d.ts +6 -0
  295. package/components/mobile-menu/mobile-menu.js +10 -0
  296. package/components/{navigation/content → navigation-content}/navigation-content.d.ts +1 -1
  297. package/components/{navigation/content → navigation-content}/navigation-content.js +1 -1
  298. package/components/{navigation/local → navigation-local}/navigation-local.d.ts +1 -1
  299. package/components/{navigation/local → navigation-local}/navigation-local.js +1 -1
  300. package/components/{notification/badge → notification-badge}/notification-badge.d.ts +1 -1
  301. package/components/notification-badge/notification-badge.js +9 -0
  302. package/components/popover/popover-base.d.ts +15 -0
  303. package/components/popover/popover-base.js +27 -0
  304. package/components/popover/popover-content.d.ts +19 -0
  305. package/components/popover/popover-content.js +20 -0
  306. package/components/popover/popover.d.ts +7 -8
  307. package/components/popover/popover.js +67 -161
  308. package/components/progressbar/progressbar.js +2 -2
  309. package/components/puff-list/{puff-list-item/puff-list-item-date.d.ts → puff-list-item-date.d.ts} +0 -1
  310. package/components/puff-list/{puff-list-item/puff-list-item-date.js → puff-list-item-date.js} +2 -3
  311. package/components/puff-list/{puff-list-item/puff-list-item-header.d.ts → puff-list-item-header.d.ts} +1 -1
  312. package/components/puff-list/puff-list-item-header.js +12 -0
  313. package/components/puff-list/{puff-list-item/puff-list-item-info.d.ts → puff-list-item-info.d.ts} +1 -2
  314. package/components/puff-list/puff-list-item-info.js +8 -0
  315. package/components/puff-list/{puff-list-item/puff-list-item.d.ts → puff-list-item.d.ts} +0 -2
  316. package/components/puff-list/{puff-list-item/puff-list-item.js → puff-list-item.js} +2 -3
  317. package/components/puff-list/puff-list.js +2 -3
  318. package/components/region-icon/region-icon.js +2 -2
  319. package/components/side-menu/side-menu-base.d.ts +22 -0
  320. package/components/side-menu/side-menu-base.js +42 -0
  321. package/components/side-menu/side-menu.d.ts +6 -9
  322. package/components/side-menu/side-menu.js +13 -43
  323. package/components/side-panel/side-panel-base.d.ts +24 -0
  324. package/components/side-panel/side-panel-base.js +33 -0
  325. package/components/side-panel/side-panel-provider.d.ts +7 -0
  326. package/components/side-panel/side-panel-provider.js +12 -0
  327. package/components/side-panel/side-panel.d.ts +14 -15
  328. package/components/side-panel/side-panel.js +49 -54
  329. package/components/stepper/step-base.d.ts +15 -0
  330. package/components/stepper/step-base.js +36 -0
  331. package/components/stepper/step.d.ts +5 -8
  332. package/components/stepper/step.js +17 -33
  333. package/components/stepper/stepper.d.ts +4 -6
  334. package/components/stepper/stepper.js +8 -13
  335. package/components/tabs/tab-link.d.ts +15 -0
  336. package/components/tabs/tab-link.js +10 -0
  337. package/components/tabs/tab-panel.d.ts +2 -4
  338. package/components/tabs/tab-panel.js +5 -12
  339. package/components/tabs/tab.d.ts +5 -5
  340. package/components/tabs/tab.js +5 -8
  341. package/components/tabs/tabs-base.d.ts +15 -0
  342. package/components/tabs/tabs-base.js +15 -0
  343. package/components/tabs/tabs.d.ts +5 -8
  344. package/components/tabs/tabs.js +38 -51
  345. package/components/tag/tag.d.ts +5 -15
  346. package/components/tag/tag.js +3 -8
  347. package/components/tooltip/tooltip-base.d.ts +14 -0
  348. package/components/tooltip/tooltip-base.js +18 -0
  349. package/components/tooltip/tooltip.d.ts +3 -10
  350. package/components/tooltip/tooltip.js +59 -43
  351. package/components/utils/contexts/HeaderContext.d.ts +1 -0
  352. package/index.d.ts +90 -16
  353. package/index.js +90 -16
  354. package/package.json +2 -2
  355. package/components/box-link/box-link.d.ts +0 -9
  356. package/components/box-link/box-link.js +0 -11
  357. package/components/global-alert/global-alert.d.ts +0 -16
  358. package/components/global-alert/global-alert.js +0 -26
  359. package/components/mobile/menu/item/mobile-item.d.ts +0 -15
  360. package/components/mobile/menu/item/mobile-item.js +0 -61
  361. package/components/mobile/menu/mobile-menu.d.ts +0 -7
  362. package/components/mobile/menu/mobile-menu.js +0 -12
  363. package/components/notification/badge/notification-badge.js +0 -9
  364. package/components/pagination/data-pagination/data-pagination.js +0 -16
  365. package/components/puff-list/puff-list-item/puff-list-item-header.js +0 -11
  366. package/components/puff-list/puff-list-item/puff-list-item-info.js +0 -10
  367. package/components/utils/hooks/useElementId.d.ts +0 -5
  368. package/components/utils/hooks/useElementId.js +0 -12
  369. /package/components/{button-group → button}/button-group.d.ts +0 -0
  370. /package/components/{action-link → link}/action-link.d.ts +0 -0
@@ -2,7 +2,7 @@ import { jsxs, jsx, Fragment } from 'react/jsx-runtime';
2
2
  import clsx from 'clsx';
3
3
  import '@inera/ids-design/components/footer-1177-admin/footer-1177-admin.css';
4
4
 
5
- const IDSFooter1177Admin = ({ headline = "", srHeadline = "", cols = 3, col1 = [], col2 = [], col3 = [], subFooterLeft, subFooterRight, mobileMenu, mobileLinks, subFooterMobile, children, className, ...props }) => {
5
+ function IDSFooter1177Admin({ headline = "", srHeadline = "", col1, col2, col3, toggle, subFooterLeft, subFooterRight, mobileMenu, mobileLinks, subFooterMobile, children, className, ...props }) {
6
6
  const renderHeadline = () => {
7
7
  if (srHeadline) {
8
8
  return (jsxs(Fragment, { children: [jsx("h2", { className: "ids-footer-1177-admin__headline--sr", children: srHeadline }), jsx("h2", { "aria-hidden": "true", className: "ids-footer-1177-admin__headline", children: headline })] }));
@@ -10,15 +10,18 @@ const IDSFooter1177Admin = ({ headline = "", srHeadline = "", cols = 3, col1 = [
10
10
  return jsx("h2", { className: "ids-footer-1177-admin__headline", children: headline });
11
11
  };
12
12
  const renderCols = () => {
13
- if (cols === 1) {
13
+ if (!!col1 && !col2 && !col3) {
14
14
  return jsx("div", { className: clsx("ids-footer-1177-admin__link-col", "ids-footer-1177-admin__link-col--100"), children: col1 });
15
15
  }
16
- else if (cols === 2) {
16
+ else if (!!col1 && !!col2 && !col3) {
17
17
  return (jsxs(Fragment, { children: [jsx("div", { className: clsx("ids-footer-1177-admin__link-col", "ids-footer-1177-admin__link-col--50"), children: col1 }), jsx("div", { className: clsx("ids-footer-1177-admin__link-col", "ids-footer-1177-admin__link-col--50"), children: col2 })] }));
18
18
  }
19
- return (jsxs(Fragment, { children: [jsx("div", { className: clsx("ids-footer-1177-admin__link-col", "ids-footer-1177-admin__link-col--33"), children: col1 }), jsx("div", { className: clsx("ids-footer-1177-admin__link-col", "ids-footer-1177-admin__link-col--33"), children: col2 }), jsx("div", { className: clsx("ids-footer-1177-admin__link-col", "ids-footer-1177-admin__link-col--33"), children: col3 })] }));
19
+ else if (!!col1 && !!col2 && !!col3) {
20
+ return (jsxs(Fragment, { children: [jsx("div", { className: clsx("ids-footer-1177-admin__link-col", "ids-footer-1177-admin__link-col--33"), children: col1 }), jsx("div", { className: clsx("ids-footer-1177-admin__link-col", "ids-footer-1177-admin__link-col--33"), children: col2 }), jsx("div", { className: clsx("ids-footer-1177-admin__link-col", "ids-footer-1177-admin__link-col--33"), children: col3 })] }));
21
+ }
22
+ return null;
20
23
  };
21
- return (jsxs("footer", { className: clsx("ids-footer-1177-admin", className), ...props, children: [jsx("div", { className: "ids-footer-1177-admin__inner-wrapper", children: jsxs("div", { className: "ids-footer-1177-admin__inner", children: [jsx("div", { className: "ids-footer-1177-admin__headline-wrapper", children: renderHeadline() }), jsxs("div", { className: "ids-footer-1177-admin__content", children: [jsx("div", { className: "ids-footer-1177-admin__text", children: children }), jsx("div", { className: "ids-footer-1177-admin__cols", children: renderCols() })] })] }) }), jsx("div", { className: "ids-footer-1177-admin__mobile-menu", children: mobileMenu }), jsxs("div", { className: "ids-footer-1177-admin__sub-footer", children: [jsx("div", { className: "ids-footer-1177-admin__sub-footer-container", children: jsxs("div", { className: "ids-footer-1177-admin__sub-footer-inner", children: [jsx("div", { className: "ids-footer-1177-admin__sub-footer-left", children: subFooterLeft }), jsx("div", { className: "ids-footer-1177-admin__sub-footer-right", children: subFooterRight }), jsx("div", { className: "ids-footer-1177-admin__mobile-links", children: mobileLinks })] }) }), jsxs("div", { className: "ids-footer-1177-admin__sub-footer-mobile", children: [jsxs("div", { className: "ids-footer-1177-admin__sub-footer-mobile-headline-wrapper", children: [jsx("div", { className: "ids-footer-1177-admin__sub-footer-mobile-logo" }), jsx("div", { className: "ids-footer-1177-admin__sub-footer-mobile-headline", children: headline })] }), jsx("div", { className: "ids-footer-1177-admin__sub-footer-mobile-text", children: subFooterMobile })] })] })] }));
22
- };
24
+ return (jsxs("footer", { className: clsx("ids-footer-1177-admin", className), ...props, children: [jsx("div", { className: "ids-footer-1177-admin__inner-wrapper", children: jsxs("div", { className: "ids-footer-1177-admin__inner", children: [jsx("div", { className: "ids-footer-1177-admin__headline-wrapper", children: renderHeadline() }), jsxs("div", { className: "ids-footer-1177-admin__content", children: [jsxs("div", { className: "ids-footer-1177-admin__text", children: [children, toggle && jsx("div", { className: "ids-footer-1177-admin__darkmode-toggle", children: toggle })] }), jsx("div", { className: "ids-footer-1177-admin__cols", children: renderCols() })] })] }) }), jsx("div", { className: "ids-footer-1177-admin__mobile-menu", children: mobileMenu }), jsxs("div", { className: "ids-footer-1177-admin__sub-footer", children: [jsx("div", { className: "ids-footer-1177-admin__sub-footer-container", children: jsxs("div", { className: "ids-footer-1177-admin__sub-footer-inner", children: [jsx("div", { className: "ids-footer-1177-admin__sub-footer-left", children: subFooterLeft }), jsx("div", { className: "ids-footer-1177-admin__sub-footer-right", children: subFooterRight }), jsx("div", { className: "ids-footer-1177-admin__mobile-links", children: mobileLinks })] }) }), jsxs("div", { className: "ids-footer-1177-admin__sub-footer-mobile", children: [jsxs("div", { className: "ids-footer-1177-admin__sub-footer-mobile-headline-wrapper", children: [jsx("div", { className: "ids-footer-1177-admin__sub-footer-mobile-logo" }), jsx("div", { className: "ids-footer-1177-admin__sub-footer-mobile-headline", children: headline })] }), jsx("div", { className: "ids-footer-1177-admin__sub-footer-mobile-text", children: subFooterMobile })] })] })] }));
25
+ }
23
26
 
24
27
  export { IDSFooter1177Admin };
@@ -1,16 +1,15 @@
1
- import React, { ReactElement, ReactNode } from "react";
2
- import { IDSLinkProps } from "../link/link";
1
+ import React, { ReactNode } from "react";
3
2
  import "@inera/ids-design/components/footer-1177-pro/footer-1177-pro.css";
4
3
  interface Footer1177ProProps extends React.HTMLAttributes<HTMLDivElement> {
5
4
  headline?: string;
6
5
  srHeadline?: string;
7
- cols?: 1 | 2 | 3;
6
+ toggle?: ReactNode;
8
7
  col1Headline?: ReactNode;
9
8
  col2Headline?: ReactNode;
10
9
  col3Headline?: ReactNode;
11
- col1?: ReactElement<IDSLinkProps>[];
12
- col2?: ReactElement<IDSLinkProps>[];
13
- col3?: ReactElement<IDSLinkProps>[];
10
+ col1?: ReactNode;
11
+ col2?: ReactNode;
12
+ col3?: ReactNode;
14
13
  subFooterLeft?: ReactNode;
15
14
  subFooterRight?: ReactNode;
16
15
  mobileMenu?: ReactNode;
@@ -18,5 +17,5 @@ interface Footer1177ProProps extends React.HTMLAttributes<HTMLDivElement> {
18
17
  subFooterMobile?: ReactNode;
19
18
  children?: ReactNode;
20
19
  }
21
- export declare const IDSFooter1177Pro: React.FC<Footer1177ProProps>;
20
+ export declare function IDSFooter1177Pro({ headline, srHeadline, col1, col2, col3, toggle, col1Headline, col2Headline, col3Headline, subFooterLeft, subFooterRight, mobileMenu, mobileLinks, subFooterMobile, children, className, ...props }: Footer1177ProProps): import("react/jsx-runtime").JSX.Element;
22
21
  export {};
@@ -2,7 +2,7 @@ import { jsxs, jsx, Fragment } from 'react/jsx-runtime';
2
2
  import clsx from 'clsx';
3
3
  import '@inera/ids-design/components/footer-1177-pro/footer-1177-pro.css';
4
4
 
5
- const IDSFooter1177Pro = ({ headline = "", srHeadline = "", cols = 3, col1 = [], col2 = [], col3 = [], col1Headline, col2Headline, col3Headline, subFooterLeft, subFooterRight, mobileMenu, mobileLinks, subFooterMobile, children, className, ...props }) => {
5
+ function IDSFooter1177Pro({ headline = "", srHeadline = "", col1, col2, col3, toggle, col1Headline, col2Headline, col3Headline, subFooterLeft, subFooterRight, mobileMenu, mobileLinks, subFooterMobile, children, className, ...props }) {
6
6
  const renderHeadline = () => {
7
7
  if (srHeadline) {
8
8
  return (jsxs(Fragment, { children: [jsx("h2", { className: "ids-footer-1177-pro__headline--sr", children: srHeadline }), jsx("h2", { "aria-hidden": "true", className: "ids-footer-1177-pro__headline", children: headline })] }));
@@ -10,15 +10,18 @@ const IDSFooter1177Pro = ({ headline = "", srHeadline = "", cols = 3, col1 = [],
10
10
  return jsx("h2", { className: "ids-footer-1177-pro__headline", children: headline });
11
11
  };
12
12
  const renderCols = () => {
13
- if (cols === 1) {
13
+ if (!!col1 && !col2 && !col3) {
14
14
  return (jsxs("div", { className: clsx("ids-footer-1177-pro__link-col", "ids-footer-1177-pro__link-col--100"), children: [col1Headline, col1] }));
15
15
  }
16
- else if (cols === 2) {
16
+ else if (!!col1 && !!col2 && !col3) {
17
17
  return (jsxs(Fragment, { children: [jsxs("div", { className: clsx("ids-footer-1177-pro__link-col", "ids-footer-1177-pro__link-col--50"), children: [col1Headline, col1] }), jsxs("div", { className: clsx("ids-footer-1177-pro__link-col", "ids-footer-1177-pro__link-col--50"), children: [col2Headline, col2] })] }));
18
18
  }
19
- return (jsxs(Fragment, { children: [jsxs("div", { className: clsx("ids-footer-1177-pro__link-col", "ids-footer-1177-pro__link-col--33"), children: [col1Headline, col1] }), jsxs("div", { className: clsx("ids-footer-1177-pro__link-col", "ids-footer-1177-pro__link-col--33"), children: [col2Headline, col2] }), jsxs("div", { className: clsx("ids-footer-1177-pro__link-col", "ids-footer-1177-pro__link-col--33"), children: [col3Headline, col3] })] }));
19
+ else if (!!col1 && !!col2 && !!col3) {
20
+ return (jsxs(Fragment, { children: [jsxs("div", { className: clsx("ids-footer-1177-pro__link-col", "ids-footer-1177-pro__link-col--33"), children: [col1Headline, col1] }), jsxs("div", { className: clsx("ids-footer-1177-pro__link-col", "ids-footer-1177-pro__link-col--33"), children: [col2Headline, col2] }), jsxs("div", { className: clsx("ids-footer-1177-pro__link-col", "ids-footer-1177-pro__link-col--33"), children: [col3Headline, col3] })] }));
21
+ }
22
+ return null;
20
23
  };
21
- return (jsxs("footer", { className: clsx("ids-footer-1177-pro", className), ...props, children: [jsx("div", { className: "ids-footer-1177-pro__inner-wrapper", children: jsxs("div", { className: "ids-footer-1177-pro__inner", children: [jsx("div", { className: "ids-footer-1177-pro__headline-wrapper", children: renderHeadline() }), jsxs("div", { className: "ids-footer-1177-pro__content", children: [jsx("div", { className: "ids-footer-1177-pro__text", children: children }), jsx("div", { className: "ids-footer-1177-pro__cols", children: renderCols() })] })] }) }), jsx("div", { className: "ids-footer-1177-pro__mobile-menu", children: mobileMenu }), jsxs("div", { className: "ids-footer-1177-pro__sub-footer", children: [jsx("div", { className: "ids-footer-1177-pro__sub-footer-container", children: jsxs("div", { className: "ids-footer-1177-pro__sub-footer-inner", children: [jsx("div", { className: "ids-footer-1177-pro__sub-footer-left", children: subFooterLeft }), jsx("div", { className: "ids-footer-1177-pro__sub-footer-right", children: subFooterRight }), jsx("div", { className: "ids-footer-1177-pro__mobile-links", children: mobileLinks })] }) }), jsxs("div", { className: "ids-footer-1177-pro__sub-footer-mobile", children: [jsxs("div", { className: "ids-footer-1177-pro__sub-footer-mobile-headline-wrapper", children: [jsx("div", { className: "ids-footer-1177-pro__sub-footer-mobile-logo" }), jsx("div", { className: "ids-footer-1177-pro__sub-footer-mobile-headline", children: headline })] }), jsx("div", { className: "ids-footer-1177-pro__sub-footer-mobile-text", children: subFooterMobile })] })] })] }));
22
- };
24
+ return (jsxs("footer", { className: clsx("ids-footer-1177-pro", className), ...props, children: [jsx("div", { className: "ids-footer-1177-pro__inner-wrapper", children: jsxs("div", { className: "ids-footer-1177-pro__inner", children: [jsx("div", { className: "ids-footer-1177-pro__headline-wrapper", children: renderHeadline() }), jsxs("div", { className: "ids-footer-1177-pro__content", children: [jsxs("div", { className: "ids-footer-1177-pro__text", children: [children, toggle && jsx("div", { className: "ids-footer-1177-pro__darkmode-toggle", children: toggle })] }), jsx("div", { className: "ids-footer-1177-pro__cols", children: renderCols() })] })] }) }), jsx("div", { className: "ids-footer-1177-pro__mobile-menu", children: mobileMenu }), jsxs("div", { className: "ids-footer-1177-pro__sub-footer", children: [jsx("div", { className: "ids-footer-1177-pro__sub-footer-container", children: jsxs("div", { className: "ids-footer-1177-pro__sub-footer-inner", children: [jsx("div", { className: "ids-footer-1177-pro__sub-footer-left", children: subFooterLeft }), jsx("div", { className: "ids-footer-1177-pro__sub-footer-right", children: subFooterRight }), jsx("div", { className: "ids-footer-1177-pro__mobile-links", children: mobileLinks })] }) }), jsxs("div", { className: "ids-footer-1177-pro__sub-footer-mobile", children: [jsxs("div", { className: "ids-footer-1177-pro__sub-footer-mobile-headline-wrapper", children: [jsx("div", { className: "ids-footer-1177-pro__sub-footer-mobile-logo" }), jsx("div", { className: "ids-footer-1177-pro__sub-footer-mobile-headline", children: headline })] }), jsx("div", { className: "ids-footer-1177-pro__sub-footer-mobile-text", children: subFooterMobile })] })] })] }));
25
+ }
23
26
 
24
27
  export { IDSFooter1177Pro };
@@ -1,13 +1,12 @@
1
- import React, { ReactElement, ReactNode } from "react";
2
- import { IDSLinkProps } from "../link/link";
1
+ import React, { ReactNode } from "react";
3
2
  import "@inera/ids-design/components/footer-inera/footer-inera.css";
4
3
  interface FooterIneraProps extends React.HTMLAttributes<HTMLDivElement> {
5
4
  headline?: string;
6
5
  srHeadline?: string;
7
- cols?: 1 | 2 | 3;
8
- col1?: ReactElement<IDSLinkProps>[];
9
- col2?: ReactElement<IDSLinkProps>[];
10
- col3?: ReactElement<IDSLinkProps>[];
6
+ toggle?: ReactNode;
7
+ col1?: ReactNode;
8
+ col2?: ReactNode;
9
+ col3?: ReactNode;
11
10
  subFooterLeft?: ReactNode;
12
11
  subFooterRight?: ReactNode;
13
12
  mobileMenu?: ReactNode;
@@ -15,5 +14,5 @@ interface FooterIneraProps extends React.HTMLAttributes<HTMLDivElement> {
15
14
  subFooterMobile?: ReactNode;
16
15
  children?: ReactNode;
17
16
  }
18
- export declare const IDSFooterInera: React.FC<FooterIneraProps>;
17
+ export declare function IDSFooterInera({ headline, srHeadline, col1, col2, col3, toggle, subFooterLeft, subFooterRight, mobileMenu, mobileLinks, subFooterMobile, children, className, ...props }: FooterIneraProps): import("react/jsx-runtime").JSX.Element;
19
18
  export {};
@@ -2,7 +2,7 @@ import { jsxs, jsx, Fragment } from 'react/jsx-runtime';
2
2
  import clsx from 'clsx';
3
3
  import '@inera/ids-design/components/footer-inera/footer-inera.css';
4
4
 
5
- const IDSFooterInera = ({ headline = "", srHeadline = "", cols = 3, col1 = [], col2 = [], col3 = [], subFooterLeft, subFooterRight, mobileMenu, mobileLinks, subFooterMobile, children, className, ...props }) => {
5
+ function IDSFooterInera({ headline = "", srHeadline = "", col1, col2, col3, toggle, subFooterLeft, subFooterRight, mobileMenu, mobileLinks, subFooterMobile, children, className, ...props }) {
6
6
  const renderHeadline = () => {
7
7
  if (srHeadline) {
8
8
  return (jsxs(Fragment, { children: [jsx("h2", { className: "ids-footer-inera__headline--sr", children: srHeadline }), jsx("h2", { "aria-hidden": "true", className: "ids-footer-inera__headline", children: headline })] }));
@@ -10,15 +10,18 @@ const IDSFooterInera = ({ headline = "", srHeadline = "", cols = 3, col1 = [], c
10
10
  return jsx("h2", { className: "ids-footer-inera__headline", children: headline });
11
11
  };
12
12
  const renderCols = () => {
13
- if (cols === 1) {
13
+ if (!!col1 && !col2 && !col3) {
14
14
  return jsx("div", { className: clsx("ids-footer-inera__link-col", "ids-footer-inera__link-col--100"), children: col1 });
15
15
  }
16
- else if (cols === 2) {
16
+ else if (!!col1 && !!col2 && !col3) {
17
17
  return (jsxs(Fragment, { children: [jsx("div", { className: clsx("ids-footer-inera__link-col", "ids-footer-inera__link-col--50"), children: col1 }), jsx("div", { className: clsx("ids-footer-inera__link-col", "ids-footer-inera__link-col--50"), children: col2 })] }));
18
18
  }
19
- return (jsxs(Fragment, { children: [jsx("div", { className: clsx("ids-footer-inera__link-col", "ids-footer-inera__link-col--33"), children: col1 }), jsx("div", { className: clsx("ids-footer-inera__link-col", "ids-footer-inera__link-col--33"), children: col2 }), jsx("div", { className: clsx("ids-footer-inera__link-col", "ids-footer-inera__link-col--33"), children: col3 })] }));
19
+ else if (!!col1 && !!col2 && !!col3) {
20
+ return (jsxs(Fragment, { children: [jsx("div", { className: clsx("ids-footer-inera__link-col", "ids-footer-inera__link-col--33"), children: col1 }), jsx("div", { className: clsx("ids-footer-inera__link-col", "ids-footer-inera__link-col--33"), children: col2 }), jsx("div", { className: clsx("ids-footer-inera__link-col", "ids-footer-inera__link-col--33"), children: col3 })] }));
21
+ }
22
+ return null;
20
23
  };
21
- return (jsxs("footer", { className: clsx("ids-footer-inera", className), ...props, children: [jsx("div", { className: "ids-footer-inera__inner-wrapper", children: jsxs("div", { className: "ids-footer-inera__inner", children: [jsx("div", { className: "ids-footer-inera__headline-wrapper", children: renderHeadline() }), jsxs("div", { className: "ids-footer-inera__content", children: [jsx("div", { className: "ids-footer-inera__text", children: children }), jsx("div", { className: "ids-footer-inera__cols", children: renderCols() })] })] }) }), jsx("div", { className: "ids-footer-inera__mobile-menu", children: mobileMenu }), jsxs("div", { className: "ids-footer-inera__sub-footer", children: [jsx("div", { className: "ids-footer-inera__sub-footer-container", children: jsxs("div", { className: "ids-footer-inera__sub-footer-inner", children: [jsx("div", { className: "ids-footer-inera__sub-footer-left", children: subFooterLeft }), jsx("div", { className: "ids-footer-inera__sub-footer-right", children: subFooterRight }), jsx("div", { className: "ids-footer-inera__mobile-links", children: mobileLinks })] }) }), jsx("div", { className: "ids-footer-inera__sub-footer-mobile", children: jsx("div", { className: "ids-footer-inera__sub-footer-mobile-text", children: subFooterMobile }) })] })] }));
22
- };
24
+ return (jsxs("footer", { className: clsx("ids-footer-inera", className), ...props, children: [jsx("div", { className: "ids-footer-inera__inner-wrapper", children: jsxs("div", { className: "ids-footer-inera__inner", children: [jsx("div", { className: "ids-footer-inera__headline-wrapper", children: renderHeadline() }), jsxs("div", { className: "ids-footer-inera__content", children: [jsxs("div", { className: "ids-footer-inera__text", children: [children, toggle && jsx("div", { className: "ids-footer-inera__darkmode-toggle", children: toggle })] }), jsx("div", { className: "ids-footer-inera__cols", children: renderCols() })] })] }) }), jsx("div", { className: "ids-footer-inera__mobile-menu", children: mobileMenu }), jsxs("div", { className: "ids-footer-inera__sub-footer", children: [jsx("div", { className: "ids-footer-inera__sub-footer-container", children: jsxs("div", { className: "ids-footer-inera__sub-footer-inner", children: [jsx("div", { className: "ids-footer-inera__sub-footer-left", children: subFooterLeft }), jsx("div", { className: "ids-footer-inera__sub-footer-right", children: subFooterRight }), jsx("div", { className: "ids-footer-inera__mobile-links", children: mobileLinks })] }) }), jsx("div", { className: "ids-footer-inera__sub-footer-mobile", children: jsx("div", { className: "ids-footer-inera__sub-footer-mobile-text", children: subFooterMobile }) })] })] }));
25
+ }
23
26
 
24
27
  export { IDSFooterInera };
@@ -1,13 +1,12 @@
1
- import React, { ReactElement, ReactNode } from "react";
2
- import { IDSLinkProps } from "../link/link";
1
+ import React, { ReactNode } from "react";
3
2
  import "@inera/ids-design/components/footer-inera-admin/footer-inera-admin.css";
4
3
  interface FooterIneraAdminProps extends React.HTMLAttributes<HTMLDivElement> {
5
4
  headline?: string;
6
5
  srHeadline?: string;
7
- cols?: 1 | 2 | 3;
8
- col1?: ReactElement<IDSLinkProps>[];
9
- col2?: ReactElement<IDSLinkProps>[];
10
- col3?: ReactElement<IDSLinkProps>[];
6
+ toggle?: ReactNode;
7
+ col1?: ReactNode;
8
+ col2?: ReactNode;
9
+ col3?: ReactNode;
11
10
  subFooterLeft?: ReactNode;
12
11
  subFooterRight?: ReactNode;
13
12
  mobileMenu?: ReactNode;
@@ -15,5 +14,5 @@ interface FooterIneraAdminProps extends React.HTMLAttributes<HTMLDivElement> {
15
14
  subFooterMobile?: ReactNode;
16
15
  children?: ReactNode;
17
16
  }
18
- export declare const IDSFooterIneraAdmin: React.FC<FooterIneraAdminProps>;
17
+ export declare function IDSFooterIneraAdmin({ headline, srHeadline, col1, col2, col3, toggle, subFooterLeft, subFooterRight, mobileMenu, mobileLinks, subFooterMobile, children, className, ...props }: FooterIneraAdminProps): import("react/jsx-runtime").JSX.Element;
19
18
  export {};
@@ -2,7 +2,7 @@ import { jsxs, jsx, Fragment } from 'react/jsx-runtime';
2
2
  import clsx from 'clsx';
3
3
  import '@inera/ids-design/components/footer-inera-admin/footer-inera-admin.css';
4
4
 
5
- const IDSFooterIneraAdmin = ({ headline = "", srHeadline = "", cols = 3, col1 = [], col2 = [], col3 = [], subFooterLeft, subFooterRight, mobileMenu, mobileLinks, subFooterMobile, children, className, ...props }) => {
5
+ function IDSFooterIneraAdmin({ headline = "", srHeadline = "", col1, col2, col3, toggle, subFooterLeft, subFooterRight, mobileMenu, mobileLinks, subFooterMobile, children, className, ...props }) {
6
6
  const renderHeadline = () => {
7
7
  if (srHeadline) {
8
8
  return (jsxs(Fragment, { children: [jsx("h2", { className: "ids-footer-inera-admin__headline--sr", children: srHeadline }), jsx("h2", { "aria-hidden": "true", className: "ids-footer-inera-admin__headline", children: headline })] }));
@@ -10,15 +10,18 @@ const IDSFooterIneraAdmin = ({ headline = "", srHeadline = "", cols = 3, col1 =
10
10
  return jsx("h2", { className: "ids-footer-inera-admin__headline", children: headline });
11
11
  };
12
12
  const renderCols = () => {
13
- if (cols === 1) {
13
+ if (!!col1 && !col2 && !col3) {
14
14
  return (jsx("div", { className: clsx("ids-footer-inera-admin__link-col", "ids-footer-inera-admin__link-col--100"), children: col1 }));
15
15
  }
16
- else if (cols === 2) {
16
+ else if (!!col1 && !!col2 && !col3) {
17
17
  return (jsxs(Fragment, { children: [jsx("div", { className: clsx("ids-footer-inera-admin__link-col", "ids-footer-inera-admin__link-col--50"), children: col1 }), jsx("div", { className: clsx("ids-footer-inera-admin__link-col", "ids-footer-inera-admin__link-col--50"), children: col2 })] }));
18
18
  }
19
- return (jsxs(Fragment, { children: [jsx("div", { className: clsx("ids-footer-inera-admin__link-col", "ids-footer-inera-admin__link-col--33"), children: col1 }), jsx("div", { className: clsx("ids-footer-inera-admin__link-col", "ids-footer-inera-admin__link-col--33"), children: col2 }), jsx("div", { className: clsx("ids-footer-inera-admin__link-col", "ids-footer-inera-admin__link-col--33"), children: col3 })] }));
19
+ else if (!!col1 && !!col2 && !!col3) {
20
+ return (jsxs(Fragment, { children: [jsx("div", { className: clsx("ids-footer-inera-admin__link-col", "ids-footer-inera-admin__link-col--33"), children: col1 }), jsx("div", { className: clsx("ids-footer-inera-admin__link-col", "ids-footer-inera-admin__link-col--33"), children: col2 }), jsx("div", { className: clsx("ids-footer-inera-admin__link-col", "ids-footer-inera-admin__link-col--33"), children: col3 })] }));
21
+ }
22
+ return null;
20
23
  };
21
- return (jsxs("footer", { className: clsx("ids-footer-inera-admin", className), ...props, children: [jsx("div", { className: "ids-footer-inera-admin__inner-wrapper", children: jsxs("div", { className: "ids-footer-inera-admin__inner", children: [jsx("div", { className: "ids-footer-inera-admin__headline-wrapper", children: renderHeadline() }), jsxs("div", { className: "ids-footer-inera-admin__content", children: [jsx("div", { className: "ids-footer-inera-admin__text", children: children }), jsx("div", { className: "ids-footer-inera-admin__cols", children: renderCols() })] })] }) }), jsx("div", { className: "ids-footer-inera-admin__mobile-menu", children: mobileMenu }), jsxs("div", { className: "ids-footer-inera-admin__sub-footer", children: [jsx("div", { className: "ids-footer-inera-admin__sub-footer-container", children: jsxs("div", { className: "ids-footer-inera-admin__sub-footer-inner", children: [jsx("div", { className: "ids-footer-inera-admin__sub-footer-left", children: subFooterLeft }), jsx("div", { className: "ids-footer-inera-admin__sub-footer-right", children: subFooterRight }), jsx("div", { className: "ids-footer-inera-admin__mobile-links", children: mobileLinks })] }) }), jsxs("div", { className: "ids-footer-inera-admin__sub-footer-mobile", children: [jsxs("div", { className: "ids-footer-inera-admin__sub-footer-mobile-headline-wrapper", children: [jsx("div", { className: "ids-footer-inera-admin__sub-footer-mobile-logo" }), jsx("div", { className: "ids-footer-inera-admin__sub-footer-mobile-headline", children: headline })] }), jsx("div", { className: "ids-footer-inera-admin__sub-footer-mobile-text", children: subFooterMobile })] })] })] }));
22
- };
24
+ return (jsxs("footer", { className: clsx("ids-footer-inera-admin", className), ...props, children: [jsx("div", { className: "ids-footer-inera-admin__inner-wrapper", children: jsxs("div", { className: "ids-footer-inera-admin__inner", children: [jsx("div", { className: "ids-footer-inera-admin__headline-wrapper", children: renderHeadline() }), jsxs("div", { className: "ids-footer-inera-admin__content", children: [jsxs("div", { className: "ids-footer-inera-admin__text", children: [children, toggle && jsx("div", { className: "ids-footer-inera-admin__darkmode-toggle", children: toggle })] }), jsx("div", { className: "ids-footer-inera-admin__cols", children: renderCols() })] })] }) }), jsx("div", { className: "ids-footer-inera-admin__mobile-menu", children: mobileMenu }), jsxs("div", { className: "ids-footer-inera-admin__sub-footer", children: [jsx("div", { className: "ids-footer-inera-admin__sub-footer-container", children: jsxs("div", { className: "ids-footer-inera-admin__sub-footer-inner", children: [jsx("div", { className: "ids-footer-inera-admin__sub-footer-left", children: subFooterLeft }), jsx("div", { className: "ids-footer-inera-admin__sub-footer-right", children: subFooterRight }), jsx("div", { className: "ids-footer-inera-admin__mobile-links", children: mobileLinks })] }) }), jsxs("div", { className: "ids-footer-inera-admin__sub-footer-mobile", children: [jsxs("div", { className: "ids-footer-inera-admin__sub-footer-mobile-headline-wrapper", children: [jsx("div", { className: "ids-footer-inera-admin__sub-footer-mobile-logo" }), jsx("div", { className: "ids-footer-inera-admin__sub-footer-mobile-headline", children: headline })] }), jsx("div", { className: "ids-footer-inera-admin__sub-footer-mobile-text", children: subFooterMobile })] })] })] }));
25
+ }
23
26
 
24
27
  export { IDSFooterIneraAdmin };
@@ -1,9 +1,8 @@
1
- import { ReactNode, InputHTMLAttributes } from "react";
2
- interface IDSCheckButtonProps extends InputHTMLAttributes<HTMLInputElement> {
3
- disabled?: boolean;
4
- focusAnchor?: boolean;
5
- children?: ReactNode;
1
+ import { InputHTMLAttributes } from "react";
2
+ export interface IDSCheckButtonProps extends InputHTMLAttributes<HTMLInputElement> {
3
+ id?: string;
6
4
  dataTestId?: string;
5
+ focusAnchor?: boolean;
6
+ disabled?: boolean;
7
7
  }
8
8
  export declare const IDSCheckButton: import("react").ForwardRefExoticComponent<IDSCheckButtonProps & import("react").RefAttributes<HTMLInputElement>>;
9
- export {};
@@ -1,17 +1,12 @@
1
- "use client";
2
1
  import { jsxs, jsx } from 'react/jsx-runtime';
3
- import { forwardRef, useRef, useImperativeHandle } from 'react';
4
- import { useElementId } from '../../utils/hooks/useElementId.js';
2
+ import { forwardRef, useId } from 'react';
5
3
  import clsx from 'clsx';
6
4
 
7
- const IDSCheckButton = forwardRef(({ disabled = false, focusAnchor = false, id, children, dataTestId = "", className, ...props }, ref) => {
8
- const fieldId = useElementId(id);
9
- const checkButtonRef = useRef(null);
10
- useImperativeHandle(ref, () => checkButtonRef.current);
11
- return (jsxs("div", { className: clsx("ids-check-button", { "ids-check-button--disabled": disabled }, className), "data-testid": dataTestId, children: [jsx("input", { id: fieldId, ref: checkButtonRef, className: clsx("ids-check-button__input", {
5
+ const IDSCheckButton = forwardRef(function IDSCheckButton({ id, dataTestId, disabled, focusAnchor, className, children, ...props }, ref) {
6
+ const inputId = !!id ? id : useId();
7
+ return (jsxs("div", { className: clsx("ids-check-button", { "ids-check-button--disabled": disabled }, className), "data-testid": dataTestId, children: [jsx("input", { id: inputId, ref: ref, className: clsx("ids-check-button__input", {
12
8
  "ids-focus-anchor": focusAnchor
13
- }), type: "checkbox", disabled: disabled, ...props }), jsx("label", { htmlFor: fieldId, className: "ids-check-button__label", children: children })] }));
9
+ }), type: "checkbox", disabled: disabled, ...props }), jsx("label", { htmlFor: inputId, className: "ids-check-button__label", children: children })] }));
14
10
  });
15
- IDSCheckButton.displayName = "IDSCheckButton";
16
11
 
17
12
  export { IDSCheckButton };
@@ -0,0 +1,19 @@
1
+ import React, { ReactNode, ReactElement, InputHTMLAttributes } from "react";
2
+ export interface IDSCheckboxBaseProps extends InputHTMLAttributes<HTMLInputElement> {
3
+ invalid?: boolean;
4
+ disabled?: boolean;
5
+ required?: boolean;
6
+ indeterminate?: boolean;
7
+ light?: boolean;
8
+ block?: boolean;
9
+ compact?: boolean;
10
+ focusAnchor?: boolean;
11
+ errorMsg?: string | ReactNode;
12
+ tooltip?: ReactNode;
13
+ dataTestId?: string;
14
+ id?: string;
15
+ groupErrorMsgId?: string;
16
+ errorMsgId?: string;
17
+ inputRef?: React.Ref<HTMLInputElement>;
18
+ }
19
+ export declare function IDSCheckboxBase({ invalid, disabled, required, light, block, compact, focusAnchor, errorMsg, tooltip, children, dataTestId, id, groupErrorMsgId, errorMsgId, inputRef, className, ...props }: IDSCheckboxBaseProps): ReactElement;
@@ -0,0 +1,29 @@
1
+ import { jsxs, jsx } from 'react/jsx-runtime';
2
+ import { useId } from 'react';
3
+ import clsx from 'clsx';
4
+ import { IDSErrorMessage } from '../error-message/error-message.js';
5
+
6
+ function IDSCheckboxBase({ invalid, disabled, required, light, block, compact, focusAnchor, errorMsg, tooltip, children, dataTestId, id, groupErrorMsgId, errorMsgId, inputRef, className, ...props }) {
7
+ const reactId = useId();
8
+ const inputId = !!id ? id : `checkbox-base-${reactId}`;
9
+ const baseErrorMsgId = !!errorMsgId ? errorMsgId : `checkbox-base-error-${reactId}`;
10
+ const showErrorMsg = invalid && !!errorMsg;
11
+ const ariaHandler = showErrorMsg || !!groupErrorMsgId
12
+ ? {
13
+ "aria-describedby": groupErrorMsgId || baseErrorMsgId
14
+ }
15
+ : {};
16
+ return (jsxs("div", { className: clsx("ids-checkbox-component", className), style: { display: "inline-flex", flexDirection: "column", gap: showErrorMsg ? "0.5rem" : "" }, "data-testid": dataTestId, children: [jsxs("div", { className: clsx("ids-checkbox", {
17
+ "ids-checkbox--light": light,
18
+ "ids-checkbox--block": block
19
+ }), "data-testid": dataTestId, children: [jsx("input", { id: inputId, ref: inputRef, type: "checkbox", className: clsx("ids-checkbox__input", {
20
+ "ids-focus-anchor": focusAnchor
21
+ }), "aria-invalid": invalid, disabled: disabled, "aria-disabled": disabled, required: required, "aria-required": required, ...ariaHandler, ...props }), !!children && (jsxs("div", { className: clsx("ids-label-wrapper", {
22
+ "ids-label-wrapper--block": block
23
+ }), children: [jsx("label", { htmlFor: inputId, className: clsx("ids-checkbox__label ids-label", {
24
+ "ids-label--clickable": !disabled,
25
+ "ids-label--disabled": disabled
26
+ }), children: children }), tooltip && jsx("span", { className: "ids-label__tooltip", children: tooltip })] }))] }), showErrorMsg && (jsx(IDSErrorMessage, { id: baseErrorMsgId, show: true, compact: true, children: errorMsg }))] }));
27
+ }
28
+
29
+ export { IDSCheckboxBase };
@@ -0,0 +1,12 @@
1
+ import React, { ReactNode, InputHTMLAttributes } from "react";
2
+ export interface IDSCheckboxGroupBaseProps extends InputHTMLAttributes<HTMLFieldSetElement> {
3
+ legend?: string;
4
+ errorMsg?: string | ReactNode;
5
+ compact?: boolean;
6
+ tooltip?: ReactNode;
7
+ children?: ReactNode;
8
+ invalid?: boolean;
9
+ errorMsgId?: string;
10
+ groupRef?: React.Ref<HTMLFieldSetElement>;
11
+ }
12
+ export declare function IDSCheckboxGroupBase({ legend, errorMsg, compact, tooltip, children, className, invalid, errorMsgId, groupRef, ...props }: IDSCheckboxGroupBaseProps): import("react/jsx-runtime").JSX.Element;
@@ -0,0 +1,13 @@
1
+ import { jsxs, jsx } from 'react/jsx-runtime';
2
+ import { useId } from 'react';
3
+ import clsx from 'clsx';
4
+ import { IDSErrorMessage } from '../error-message/error-message.js';
5
+
6
+ function IDSCheckboxGroupBase({ legend = "", errorMsg = "", compact = false, tooltip, children, className, invalid = false, errorMsgId, groupRef, ...props }) {
7
+ const baseErrorMsgId = !!errorMsgId ? errorMsgId : `checkbox-group-base-error-${useId()}`;
8
+ return (jsxs("fieldset", { ref: groupRef, className: clsx("ids-form-group__fieldset", {
9
+ "ids-form-group__fieldset--compact": compact
10
+ }, className), ...props, children: [legend && (jsx("div", { className: "ids-label-wrapper", children: jsxs("legend", { children: [legend, tooltip && jsx("span", { className: "ids-legend__tooltip", children: tooltip })] }) })), children, invalid && !!errorMsg && (jsx(IDSErrorMessage, { id: baseErrorMsgId, show: true, compact: true, children: errorMsg }))] }));
11
+ }
12
+
13
+ export { IDSCheckboxGroupBase };
@@ -1,14 +1,13 @@
1
- import React, { ReactNode, InputHTMLAttributes, SetStateAction, Dispatch } from "react";
2
- interface IDSCheckboxGroupProps extends InputHTMLAttributes<HTMLFieldSetElement> {
1
+ import { InputHTMLAttributes, ReactNode } from "react";
2
+ export interface IDSCheckboxGroupProps extends InputHTMLAttributes<HTMLFieldSetElement> {
3
3
  legend?: string;
4
4
  errorMsg?: string | ReactNode;
5
5
  compact?: boolean;
6
+ invalid?: boolean;
6
7
  tooltip?: ReactNode;
7
8
  block?: boolean;
8
9
  noValidation?: boolean;
9
10
  children?: ReactNode;
10
11
  onValidityChange?: (isValid: boolean) => void;
11
- setCheckedBoxesCount?: Dispatch<SetStateAction<number>>;
12
12
  }
13
- export declare const IDSCheckboxGroup: React.FC<IDSCheckboxGroupProps>;
14
- export {};
13
+ export declare function IDSCheckboxGroup({ errorMsg, block, invalid, noValidation, onValidityChange, children, ...props }: IDSCheckboxGroupProps): import("react/jsx-runtime").JSX.Element;
@@ -1,43 +1,39 @@
1
1
  "use client";
2
- import { jsxs, jsx } from 'react/jsx-runtime';
3
- import React, { useRef, useEffect } from 'react';
4
- import { IDSErrorMessage } from '../error-message/error-message.js';
5
- import { useElementId } from '../../utils/hooks/useElementId.js';
2
+ import { jsx } from 'react/jsx-runtime';
3
+ import React, { useRef, useId, useEffect } from 'react';
4
+ import { IDSCheckboxGroupBase } from './checkbox-group-base.js';
5
+ import { IDSCheckbox } from './checkbox.js';
6
6
  import { useGroupValidity } from '../form-hooks/useGroupValidity.js';
7
- import clsx from 'clsx';
8
7
 
9
- const IDSCheckboxGroup = ({ legend = "", errorMsg = "", compact = false, block = false, noValidation = false, tooltip, children, className, onValidityChange, setCheckedBoxesCount, ...props }) => {
8
+ function IDSCheckboxGroup({ errorMsg = "", block, invalid, noValidation = false, onValidityChange, children, ...props }) {
10
9
  const groupRef = useRef(null);
11
- const isValid = useGroupValidity(groupRef, "checkbox", () => {
12
- onValidityChange?.(false);
10
+ const errorMsgId = useId();
11
+ const { isValid, hasInteracted } = useGroupValidity(groupRef, "checkbox", () => {
12
+ if (!noValidation) {
13
+ onValidityChange?.(false);
14
+ }
13
15
  });
14
- const errorMsgId = useElementId();
15
- useEffect(() => {
16
- const checkedCount = groupRef.current?.querySelectorAll('input[type="checkbox"]:checked')?.length ?? 0;
17
- setCheckedBoxesCount?.(checkedCount);
18
- }, [groupRef]);
19
16
  useEffect(() => {
20
- onValidityChange?.(isValid);
21
- }, [isValid, onValidityChange]);
17
+ if (hasInteracted) {
18
+ onValidityChange?.(isValid);
19
+ }
20
+ }, [hasInteracted, isValid, onValidityChange]);
22
21
  const clonedChildren = React.Children.map(children, child => {
23
- if (React.isValidElement(child) && child.type.displayName === "IDSCheckbox") {
24
- return React.cloneElement(child, {
22
+ if (!React.isValidElement(child))
23
+ return child;
24
+ if (child.type === IDSCheckbox) {
25
+ const cloneProps = {
25
26
  key: child.props.id,
26
- groupErrorMsgId: errorMsg && errorMsgId,
27
- block: block,
28
- noValidation: noValidation,
29
- onChange: (e) => {
30
- child.props.onChange?.(e);
31
- const checkedCount = groupRef.current?.querySelectorAll('input[type="checkbox"]:checked')?.length ?? 0;
32
- setCheckedBoxesCount?.(checkedCount);
33
- }
34
- });
27
+ id: child.props.id,
28
+ groupErrorMsgId: !!errorMsg && !noValidation ? errorMsgId : undefined,
29
+ block,
30
+ noValidation
31
+ };
32
+ return React.cloneElement(child, cloneProps);
35
33
  }
36
34
  return child;
37
35
  });
38
- return (jsxs("fieldset", { ref: groupRef, className: clsx("ids-form-group__fieldset", {
39
- "ids-form-group__fieldset--compact": compact
40
- }, className), ...props, children: [jsxs("legend", { children: [legend, tooltip] }), clonedChildren, !isValid && !!errorMsg && (jsx(IDSErrorMessage, { id: errorMsgId, show: true, compact: true, children: errorMsg }))] }));
41
- };
36
+ return (jsx(IDSCheckboxGroupBase, { ...props, groupRef: groupRef, invalid: !isValid || invalid, errorMsgId: errorMsgId, errorMsg: !noValidation && errorMsg, children: clonedChildren }));
37
+ }
42
38
 
43
39
  export { IDSCheckboxGroup };
@@ -1,19 +1,19 @@
1
1
  import React, { ReactNode, InputHTMLAttributes } from "react";
2
2
  export interface IDSCheckboxProps extends InputHTMLAttributes<HTMLInputElement> {
3
+ id?: string;
4
+ key?: string;
3
5
  invalid?: boolean;
4
6
  disabled?: boolean;
5
7
  required?: boolean;
6
8
  indeterminate?: boolean;
7
- noLabel?: boolean;
8
9
  noValidation?: boolean;
9
10
  light?: boolean;
10
11
  block?: boolean;
11
12
  compact?: boolean;
12
13
  focusAnchor?: boolean;
13
14
  errorMsg?: string | ReactNode;
14
- groupErrorMsgId?: string;
15
15
  tooltip?: ReactNode;
16
- children?: ReactNode;
17
16
  dataTestId?: string;
17
+ groupErrorMsgId?: string;
18
18
  }
19
19
  export declare const IDSCheckbox: React.ForwardRefExoticComponent<IDSCheckboxProps & React.RefAttributes<HTMLInputElement>>;
@@ -1,57 +1,33 @@
1
1
  "use client";
2
- import { jsxs, jsx } from 'react/jsx-runtime';
2
+ import { jsx } from 'react/jsx-runtime';
3
3
  import { forwardRef, useRef, useEffect } from 'react';
4
- import { useElementId } from '../../utils/hooks/useElementId.js';
5
- import { IDSErrorMessage } from '../error-message/error-message.js';
6
- import { useAriaDescribedBy } from '../form-hooks/useAriaDescribedBy.js';
4
+ import { IDSCheckboxBase } from './checkbox-base.js';
7
5
  import { useInputValidity } from '../form-hooks/useInputValidity.js';
8
- import clsx from 'clsx';
9
6
 
10
- const IDSCheckbox = forwardRef(({ invalid = false, disabled = false, required = false, indeterminate = false, noValidation = false, noLabel = false, light = false, block = false, compact = false, focusAnchor = false, errorMsg = "", groupErrorMsgId = "", dataTestId = "", tooltip, id, children, className, ...props }, ref) => {
7
+ const IDSCheckbox = forwardRef(({ invalid = false, noValidation = false, indeterminate = false, children, ...props }, ref) => {
11
8
  const internalRef = useRef(null);
12
9
  const checkboxRef = ref ?? internalRef;
13
- const fieldId = useElementId(id);
14
- const errorMsgId = useElementId();
15
10
  const hasValidValue = useInputValidity(checkboxRef);
16
11
  const isInvalid = (invalid || !hasValidValue) && !noValidation;
17
- if (groupErrorMsgId) {
18
- useAriaDescribedBy(checkboxRef, groupErrorMsgId, isInvalid, true);
19
- }
20
- else {
21
- useAriaDescribedBy(checkboxRef, errorMsgId, isInvalid, !!errorMsg);
22
- }
12
+ // indeterminate support
23
13
  useEffect(() => {
24
14
  if (checkboxRef.current) {
25
15
  checkboxRef.current.indeterminate = indeterminate;
26
16
  }
27
- }, [checkboxRef, indeterminate]);
17
+ }, [indeterminate]);
18
+ // aria-checked update for indeterminate
28
19
  useEffect(() => {
29
- const checkboxEl = checkboxRef.current;
30
- if (checkboxEl) {
31
- const updateAriaChecked = () => {
32
- checkboxEl.setAttribute("aria-checked", checkboxEl.indeterminate ? "mixed" : `${checkboxEl.checked}`);
33
- };
34
- updateAriaChecked();
35
- checkboxEl.addEventListener("change", updateAriaChecked);
36
- return () => {
37
- checkboxEl.removeEventListener("change", updateAriaChecked);
38
- };
39
- }
40
- }, [checkboxRef]);
41
- return (jsxs("div", { className: clsx("ids-checkbox-component", className), style: { display: "flex", flexDirection: "column", gap: "0.5rem" }, "data-testid": dataTestId, children: [jsxs("div", { className: clsx("ids-checkbox", {
42
- "ids-checkbox--light": light,
43
- "ids-checkbox--block": block,
44
- "ids-checkbox--compact": compact
45
- }), children: [jsx("input", { id: fieldId, ref: checkboxRef, type: "checkbox", className: clsx("ids-checkbox__input", {
46
- "ids-focus-anchor": focusAnchor
47
- }), "aria-invalid": isInvalid, disabled: disabled, "aria-disabled": disabled, required: !noValidation && required, "aria-required": !noValidation && required, ...props }), jsxs("div", { className: clsx("ids-label-tooltip-wrapper", {
48
- "ids-label-tooltip-wrapper--block": block,
49
- "ids-label-tooltip-wrapper--inline": tooltip
50
- }), children: [jsx("label", { htmlFor: fieldId, className: clsx("ids-checkbox__label ids-label", {
51
- "ids-label--clickable": !disabled,
52
- "ids-label--disabled": disabled,
53
- "ids-label--no-label": noLabel
54
- }), children: !noLabel && children }), tooltip] })] }), isInvalid && errorMsg && (jsx(IDSErrorMessage, { id: errorMsgId, show: true, compact: true, children: errorMsg }))] }));
20
+ const el = checkboxRef.current;
21
+ if (!el)
22
+ return;
23
+ const updateAriaChecked = () => {
24
+ el.setAttribute("aria-checked", el.indeterminate ? "mixed" : `${el.checked}`);
25
+ };
26
+ updateAriaChecked();
27
+ el.addEventListener("change", updateAriaChecked);
28
+ return () => el.removeEventListener("change", updateAriaChecked);
29
+ }, []);
30
+ return (jsx(IDSCheckboxBase, { ...props, inputRef: checkboxRef, invalid: isInvalid, children: children }));
55
31
  });
56
32
  IDSCheckbox.displayName = "IDSCheckbox";
57
33
 
@@ -0,0 +1,11 @@
1
+ import { InputHTMLAttributes, ReactNode } from "react";
2
+ interface IDSDarkmodeToggleProps extends InputHTMLAttributes<HTMLInputElement> {
3
+ tooltip?: ReactNode;
4
+ focusAnchor?: boolean;
5
+ children?: ReactNode;
6
+ dataTestId?: string;
7
+ disabled?: boolean;
8
+ srText?: string;
9
+ }
10
+ export declare const IDSDarkmodeToggle: import("react").ForwardRefExoticComponent<IDSDarkmodeToggleProps & import("react").RefAttributes<HTMLInputElement>>;
11
+ export {};
@@ -0,0 +1,13 @@
1
+ import { jsxs, jsx } from 'react/jsx-runtime';
2
+ import { forwardRef, useId } from 'react';
3
+ import clsx from 'clsx';
4
+
5
+ const IDSDarkmodeToggle = forwardRef(({ id, dataTestId, focusAnchor, disabled, className, tooltip, srText = "Växla tema", children, ...props }, ref) => {
6
+ const inputId = !!id ? id : useId();
7
+ return (jsxs("div", { className: clsx("ids-darkmode-toggle", className), "data-testid": dataTestId, children: [jsx("input", { id: inputId, ref: ref, className: clsx("ids-darkmode-toggle__input", {
8
+ "ids-focus-anchor": focusAnchor
9
+ }), "aria-label": srText, disabled: disabled, type: "checkbox", role: "switch", "aria-checked": props.defaultChecked || props.checked, ...props }), jsxs("div", { className: "ids-label-wrapper", children: [jsx("label", { htmlFor: inputId, className: "ids-darkmode-toggle__label ids-label ids-label--clickable", children: children }), tooltip && jsx("span", { className: "ids-label__tooltip", children: tooltip })] })] }));
10
+ });
11
+ IDSDarkmodeToggle.displayName = "IDSDarkmodeToggle";
12
+
13
+ export { IDSDarkmodeToggle };