@inera/ids-react 9.2.2 → 9.4.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 (346) hide show
  1. package/components/accordion/accordion-base.d.ts +1 -1
  2. package/components/accordion/accordion.d.ts +1 -1
  3. package/components/accordion/accordion.js +1 -1
  4. package/components/alert/alert-base.d.ts +1 -1
  5. package/components/alert/alert-base.js +2 -2
  6. package/components/alert/alert.d.ts +1 -1
  7. package/components/badge/badge.js +1 -1
  8. package/components/breadcrumbs/breadcrumbs.d.ts +1 -1
  9. package/components/breadcrumbs/breadcrumbs.js +10 -6
  10. package/components/button/button-group.d.ts +1 -1
  11. package/components/button/button.d.ts +1 -0
  12. package/components/button/button.js +7 -2
  13. package/components/button/control-button.d.ts +6 -0
  14. package/components/button/control-button.js +10 -0
  15. package/components/card/card.d.ts +1 -1
  16. package/components/carousel/carousel-item.d.ts +1 -1
  17. package/components/carousel/carousel.d.ts +1 -1
  18. package/components/carousel/carousel.js +8 -6
  19. package/components/date-label/date-label.d.ts +3 -2
  20. package/components/date-label/date-label.js +4 -2
  21. package/components/dialog/dialog-base.js +1 -1
  22. package/components/dialog/dialog.d.ts +1 -1
  23. package/components/dialog/dialog.js +1 -1
  24. package/components/district-selector/district-selector.d.ts +10 -0
  25. package/components/district-selector/district-selector.js +11 -0
  26. package/components/dropdown/dropdown-base.d.ts +2 -2
  27. package/components/dropdown/dropdown-base.js +1 -1
  28. package/components/dropdown/dropdown.d.ts +2 -1
  29. package/components/dropdown/dropdown.js +2 -0
  30. package/components/footer-1177/footer-1177-columns.d.ts +10 -0
  31. package/components/footer-1177/footer-1177-columns.js +18 -0
  32. package/components/footer-1177/footer-1177-headline.d.ts +10 -0
  33. package/components/footer-1177/footer-1177-headline.js +11 -0
  34. package/components/footer-1177/footer-1177.d.ts +1 -1
  35. package/components/footer-1177/footer-1177.js +4 -20
  36. package/components/footer-1177-admin/footer-1177-admin-columns.d.ts +10 -0
  37. package/components/footer-1177-admin/footer-1177-admin-columns.js +18 -0
  38. package/components/footer-1177-admin/footer-1177-admin-headline.d.ts +9 -0
  39. package/components/footer-1177-admin/footer-1177-admin-headline.js +11 -0
  40. package/components/footer-1177-admin/footer-1177-admin.d.ts +1 -1
  41. package/components/footer-1177-admin/footer-1177-admin.js +4 -20
  42. package/components/footer-1177-pro/footer-1177-pro-columns.d.ts +13 -0
  43. package/components/footer-1177-pro/footer-1177-pro-columns.js +18 -0
  44. package/components/footer-1177-pro/footer-1177-pro-headline.d.ts +9 -0
  45. package/components/footer-1177-pro/footer-1177-pro-headline.js +11 -0
  46. package/components/footer-1177-pro/footer-1177-pro.d.ts +1 -1
  47. package/components/footer-1177-pro/footer-1177-pro.js +4 -20
  48. package/components/footer-inera/footer-inera-columns.d.ts +10 -0
  49. package/components/footer-inera/footer-inera-columns.js +18 -0
  50. package/components/footer-inera/footer-inera-headline.d.ts +9 -0
  51. package/components/footer-inera/footer-inera-headline.js +11 -0
  52. package/components/footer-inera/footer-inera.d.ts +1 -1
  53. package/components/footer-inera/footer-inera.js +4 -20
  54. package/components/footer-inera-admin/footer-inera-admin-columns.d.ts +10 -0
  55. package/components/footer-inera-admin/footer-inera-admin-columns.js +18 -0
  56. package/components/footer-inera-admin/footer-inera-admin-headline.d.ts +9 -0
  57. package/components/footer-inera-admin/footer-inera-admin-headline.js +11 -0
  58. package/components/footer-inera-admin/footer-inera-admin.d.ts +1 -1
  59. package/components/footer-inera-admin/footer-inera-admin.js +4 -20
  60. package/components/footer-inera-general/footer-inera-general-columns.d.ts +10 -0
  61. package/components/footer-inera-general/footer-inera-general-columns.js +18 -0
  62. package/components/footer-inera-general/footer-inera-general-headline.d.ts +9 -0
  63. package/components/footer-inera-general/footer-inera-general-headline.js +11 -0
  64. package/components/footer-inera-general/footer-inera-general.d.ts +1 -1
  65. package/components/footer-inera-general/footer-inera-general.js +4 -20
  66. package/components/form/checkbox/checkbox-base.js +2 -3
  67. package/components/form/checkbox/checkbox-group-base.d.ts +2 -1
  68. package/components/form/checkbox/checkbox-group-base.js +3 -3
  69. package/components/form/checkbox/checkbox-group.d.ts +3 -2
  70. package/components/form/checkbox/checkbox-group.js +2 -2
  71. package/components/form/checkbox/checkbox.js +3 -4
  72. package/components/form/datepicker/datepicker.d.ts +3 -1
  73. package/components/form/datepicker/datepicker.js +143 -111
  74. package/components/form/error-message/error-message.d.ts +1 -1
  75. package/components/form/form-hooks/useAriaDescribedBy.js +1 -4
  76. package/components/form/form-hooks/useInputValidity.d.ts +1 -1
  77. package/components/form/form-hooks/useInputValidity.js +28 -12
  78. package/components/form/form-props/form-props.d.ts +1 -0
  79. package/components/form/input/input-base.d.ts +4 -2
  80. package/components/form/input/input-base.js +14 -9
  81. package/components/form/input/input.d.ts +3 -0
  82. package/components/form/input/input.js +1 -1
  83. package/components/form/radio/radio-base.d.ts +1 -1
  84. package/components/form/radio/radio-base.js +1 -2
  85. package/components/form/radio/radio-group-base.d.ts +2 -1
  86. package/components/form/radio/radio-group-base.js +3 -3
  87. package/components/form/radio/radio-group.d.ts +3 -2
  88. package/components/form/radio/radio-group.js +2 -2
  89. package/components/form/radio-button/radio-button-group-base.d.ts +1 -1
  90. package/components/form/radio-button/radio-button-group.d.ts +2 -1
  91. package/components/form/range/range-base.d.ts +1 -1
  92. package/components/form/range/range-base.js +2 -2
  93. package/components/form/select/select-base.d.ts +3 -3
  94. package/components/form/select/select-base.js +3 -5
  95. package/components/form/select/select.d.ts +2 -2
  96. package/components/form/select/select.js +1 -1
  97. package/components/form/select-multiple/select-multiple-base.d.ts +2 -2
  98. package/components/form/select-multiple/select-multiple-base.js +3 -3
  99. package/components/form/select-multiple/select-multiple.d.ts +2 -2
  100. package/components/form/select-multiple/select-multiple.js +1 -1
  101. package/components/form/spinner/spinner.d.ts +1 -1
  102. package/components/form/textarea/textarea-base.d.ts +1 -1
  103. package/components/form/textarea/textarea-base.js +3 -5
  104. package/components/form/textarea/textarea.js +1 -1
  105. package/components/form/time/time-base.d.ts +1 -1
  106. package/components/form/time/time-base.js +2 -4
  107. package/components/form/time/time.js +4 -5
  108. package/components/global-alert/global-alert-base.d.ts +1 -1
  109. package/components/global-alert/global-alert.d.ts +1 -1
  110. package/components/header-1177/header-1177-avatar-base.d.ts +1 -1
  111. package/components/header-1177/header-1177-avatar.d.ts +1 -1
  112. package/components/header-1177/header-1177-base.d.ts +2 -2
  113. package/components/header-1177/header-1177-base.js +3 -5
  114. package/components/header-1177/header-1177-item-base.d.ts +1 -1
  115. package/components/header-1177/header-1177-item-base.js +1 -2
  116. package/components/header-1177/header-1177-item.d.ts +1 -1
  117. package/components/header-1177/header-1177-logo.d.ts +12 -0
  118. package/components/header-1177/header-1177-logo.js +8 -0
  119. package/components/header-1177/header-1177-menu-mobile-base.d.ts +1 -1
  120. package/components/header-1177/header-1177-menu-mobile.d.ts +1 -1
  121. package/components/header-1177/header-1177-nav-base.d.ts +1 -1
  122. package/components/header-1177/header-1177-nav-base.js +1 -1
  123. package/components/header-1177/header-1177-nav-item-base.d.ts +1 -1
  124. package/components/header-1177/header-1177-nav-item-base.js +3 -12
  125. package/components/header-1177/header-1177-nav-item-link.d.ts +10 -0
  126. package/components/header-1177/header-1177-nav-item-link.js +19 -0
  127. package/components/header-1177/header-1177-nav-item-mobile-base.d.ts +1 -1
  128. package/components/header-1177/header-1177-nav-item-mobile.d.ts +1 -1
  129. package/components/header-1177/header-1177-nav-item.d.ts +1 -1
  130. package/components/header-1177/header-1177-nav.d.ts +1 -1
  131. package/components/header-1177/header-1177-region-picker-base.d.ts +4 -2
  132. package/components/header-1177/header-1177-region-picker-base.js +8 -3
  133. package/components/header-1177/header-1177-region-picker-mobile-base.d.ts +4 -2
  134. package/components/header-1177/header-1177-region-picker-mobile-base.js +8 -3
  135. package/components/header-1177/header-1177-region-picker-mobile.d.ts +3 -1
  136. package/components/header-1177/header-1177-region-picker.d.ts +3 -1
  137. package/components/header-1177/header-1177.d.ts +2 -1
  138. package/components/header-1177/header-1177.js +2 -2
  139. package/components/header-1177-admin/header-1177-admin-avatar-base.d.ts +1 -1
  140. package/components/header-1177-admin/header-1177-admin-avatar-mobile-base.d.ts +1 -1
  141. package/components/header-1177-admin/header-1177-admin-avatar-mobile.d.ts +1 -1
  142. package/components/header-1177-admin/header-1177-admin-avatar.d.ts +1 -1
  143. package/components/header-1177-admin/header-1177-admin-base.d.ts +2 -2
  144. package/components/header-1177-admin/header-1177-admin-base.js +3 -5
  145. package/components/header-1177-admin/header-1177-admin-item-base.d.ts +1 -1
  146. package/components/header-1177-admin/header-1177-admin-item-base.js +1 -2
  147. package/components/header-1177-admin/header-1177-admin-item.d.ts +1 -1
  148. package/components/header-1177-admin/header-1177-admin-logo.d.ts +12 -0
  149. package/components/header-1177-admin/header-1177-admin-logo.js +8 -0
  150. package/components/header-1177-admin/header-1177-admin-menu-mobile-base.d.ts +1 -1
  151. package/components/header-1177-admin/header-1177-admin-menu-mobile.d.ts +1 -1
  152. package/components/header-1177-admin/header-1177-admin-nav-base.d.ts +2 -1
  153. package/components/header-1177-admin/header-1177-admin-nav-base.js +4 -3
  154. package/components/header-1177-admin/header-1177-admin-nav-item-base.d.ts +1 -1
  155. package/components/header-1177-admin/header-1177-admin-nav-item-base.js +3 -12
  156. package/components/header-1177-admin/header-1177-admin-nav-item-link.d.ts +10 -0
  157. package/components/header-1177-admin/header-1177-admin-nav-item-link.js +19 -0
  158. package/components/header-1177-admin/header-1177-admin-nav-item-mobile-base.d.ts +1 -1
  159. package/components/header-1177-admin/header-1177-admin-nav-item-mobile.d.ts +1 -1
  160. package/components/header-1177-admin/header-1177-admin-nav-item.d.ts +1 -1
  161. package/components/header-1177-admin/header-1177-admin-nav.d.ts +2 -1
  162. package/components/header-1177-admin/header-1177-admin-nav.js +2 -2
  163. package/components/header-1177-admin/header-1177-admin.d.ts +2 -1
  164. package/components/header-1177-admin/header-1177-admin.js +2 -2
  165. package/components/header-1177-pro/header-1177-pro-avatar-base.d.ts +1 -1
  166. package/components/header-1177-pro/header-1177-pro-avatar-mobile-base.d.ts +1 -1
  167. package/components/header-1177-pro/header-1177-pro-avatar-mobile-base.js +0 -1
  168. package/components/header-1177-pro/header-1177-pro-avatar-mobile.d.ts +1 -1
  169. package/components/header-1177-pro/header-1177-pro-avatar.d.ts +1 -1
  170. package/components/header-1177-pro/header-1177-pro-base.d.ts +1 -1
  171. package/components/header-1177-pro/header-1177-pro-base.js +2 -1
  172. package/components/header-1177-pro/header-1177-pro-item-base.d.ts +1 -1
  173. package/components/header-1177-pro/header-1177-pro-item-base.js +1 -2
  174. package/components/header-1177-pro/header-1177-pro-item.d.ts +1 -1
  175. package/components/header-1177-pro/header-1177-pro-logo.d.ts +12 -0
  176. package/components/header-1177-pro/header-1177-pro-logo.js +8 -0
  177. package/components/header-1177-pro/header-1177-pro-menu-mobile-base.d.ts +1 -1
  178. package/components/header-1177-pro/header-1177-pro-menu-mobile.d.ts +1 -1
  179. package/components/header-1177-pro/header-1177-pro-nav-base.d.ts +2 -1
  180. package/components/header-1177-pro/header-1177-pro-nav-base.js +3 -2
  181. package/components/header-1177-pro/header-1177-pro-nav-item-base.d.ts +1 -1
  182. package/components/header-1177-pro/header-1177-pro-nav-item-base.js +3 -12
  183. package/components/header-1177-pro/header-1177-pro-nav-item-link.d.ts +10 -0
  184. package/components/header-1177-pro/header-1177-pro-nav-item-link.js +19 -0
  185. package/components/header-1177-pro/header-1177-pro-nav-item-mobile-base.d.ts +1 -1
  186. package/components/header-1177-pro/header-1177-pro-nav-item-mobile.d.ts +1 -1
  187. package/components/header-1177-pro/header-1177-pro-nav-item.d.ts +1 -1
  188. package/components/header-1177-pro/header-1177-pro-nav.d.ts +2 -1
  189. package/components/header-1177-pro/header-1177-pro-nav.js +2 -2
  190. package/components/header-1177-pro/header-1177-pro-region-picker-base.d.ts +3 -1
  191. package/components/header-1177-pro/header-1177-pro-region-picker-base.js +8 -3
  192. package/components/header-1177-pro/header-1177-pro-region-picker-mobile-base.d.ts +3 -1
  193. package/components/header-1177-pro/header-1177-pro-region-picker-mobile-base.js +8 -3
  194. package/components/header-1177-pro/header-1177-pro-region-picker-mobile.d.ts +3 -1
  195. package/components/header-1177-pro/header-1177-pro-region-picker-mobile.js +1 -1
  196. package/components/header-1177-pro/header-1177-pro-region-picker.d.ts +3 -1
  197. package/components/header-1177-pro/header-1177-pro-region-picker.js +1 -1
  198. package/components/header-1177-pro/header-1177-pro.d.ts +1 -1
  199. package/components/header-inera/header-inera-base.d.ts +2 -2
  200. package/components/header-inera/header-inera-base.js +3 -2
  201. package/components/header-inera/header-inera-item-base.d.ts +1 -1
  202. package/components/header-inera/header-inera-item-base.js +1 -2
  203. package/components/header-inera/header-inera-item.d.ts +1 -1
  204. package/components/header-inera/header-inera-logo.d.ts +12 -0
  205. package/components/header-inera/header-inera-logo.js +8 -0
  206. package/components/header-inera/header-inera-menu-mobile-base.d.ts +1 -1
  207. package/components/header-inera/header-inera-menu-mobile.d.ts +1 -1
  208. package/components/header-inera/header-inera-nav-base.d.ts +1 -1
  209. package/components/header-inera/header-inera-nav-base.js +1 -1
  210. package/components/header-inera/header-inera-nav-item-base.d.ts +1 -1
  211. package/components/header-inera/header-inera-nav-item-base.js +4 -13
  212. package/components/header-inera/header-inera-nav-item-link.d.ts +10 -0
  213. package/components/header-inera/header-inera-nav-item-link.js +19 -0
  214. package/components/header-inera/header-inera-nav-item.d.ts +1 -1
  215. package/components/header-inera/header-inera-nav.d.ts +1 -1
  216. package/components/header-inera/header-inera.d.ts +2 -1
  217. package/components/header-inera/header-inera.js +2 -2
  218. package/components/header-inera-admin/header-inera-admin-avatar-base.d.ts +1 -1
  219. package/components/header-inera-admin/header-inera-admin-avatar-mobile-base.d.ts +1 -1
  220. package/components/header-inera-admin/header-inera-admin-avatar-mobile.d.ts +1 -1
  221. package/components/header-inera-admin/header-inera-admin-avatar.d.ts +1 -1
  222. package/components/header-inera-admin/header-inera-admin-base.d.ts +1 -1
  223. package/components/header-inera-admin/header-inera-admin-base.js +1 -10
  224. package/components/header-inera-admin/header-inera-admin-item-base.d.ts +1 -1
  225. package/components/header-inera-admin/header-inera-admin-item-base.js +2 -3
  226. package/components/header-inera-admin/header-inera-admin-item.d.ts +1 -1
  227. package/components/header-inera-admin/header-inera-admin-menu-mobile-base.d.ts +1 -1
  228. package/components/header-inera-admin/header-inera-admin-menu-mobile.d.ts +1 -1
  229. package/components/header-inera-admin/header-inera-admin-nav-base.d.ts +2 -1
  230. package/components/header-inera-admin/header-inera-admin-nav-base.js +4 -3
  231. package/components/header-inera-admin/header-inera-admin-nav-item-base.d.ts +1 -1
  232. package/components/header-inera-admin/header-inera-admin-nav-item-base.js +3 -12
  233. package/components/header-inera-admin/header-inera-admin-nav-item-link.d.ts +10 -0
  234. package/components/header-inera-admin/header-inera-admin-nav-item-link.js +19 -0
  235. package/components/header-inera-admin/header-inera-admin-nav-item-mobile-base.d.ts +1 -1
  236. package/components/header-inera-admin/header-inera-admin-nav-item-mobile.d.ts +1 -1
  237. package/components/header-inera-admin/header-inera-admin-nav-item.d.ts +1 -1
  238. package/components/header-inera-admin/header-inera-admin-nav.d.ts +2 -1
  239. package/components/header-inera-admin/header-inera-admin-nav.js +2 -2
  240. package/components/header-inera-admin/header-inera-admin.d.ts +1 -1
  241. package/components/header-inera-general/header-inera-general-avatar-base.d.ts +18 -0
  242. package/components/header-inera-general/header-inera-general-avatar-base.js +24 -0
  243. package/components/header-inera-general/header-inera-general-avatar-mobile-base.d.ts +17 -0
  244. package/components/header-inera-general/header-inera-general-avatar-mobile-base.js +24 -0
  245. package/components/header-inera-general/header-inera-general-avatar-mobile.d.ts +12 -0
  246. package/components/header-inera-general/header-inera-general-avatar-mobile.js +28 -0
  247. package/components/header-inera-general/header-inera-general-avatar.d.ts +12 -0
  248. package/components/header-inera-general/header-inera-general-avatar.js +29 -0
  249. package/components/header-inera-general/header-inera-general-base.d.ts +2 -1
  250. package/components/header-inera-general/header-inera-general-base.js +2 -2
  251. package/components/header-inera-general/header-inera-general-item-base.d.ts +1 -1
  252. package/components/header-inera-general/header-inera-general-item-base.js +2 -2
  253. package/components/header-inera-general/header-inera-general-item.d.ts +1 -1
  254. package/components/header-inera-general/header-inera-general-item.js +1 -1
  255. package/components/header-inera-general/header-inera-general-menu-mobile-base.d.ts +1 -1
  256. package/components/header-inera-general/header-inera-general-menu-mobile.d.ts +1 -1
  257. package/components/header-inera-general/header-inera-general-nav-base.d.ts +1 -1
  258. package/components/header-inera-general/header-inera-general-nav-base.js +1 -1
  259. package/components/header-inera-general/header-inera-general-nav-item-base.d.ts +1 -1
  260. package/components/header-inera-general/header-inera-general-nav-item-base.js +4 -13
  261. package/components/header-inera-general/header-inera-general-nav-item-link.d.ts +10 -0
  262. package/components/header-inera-general/header-inera-general-nav-item-link.js +19 -0
  263. package/components/header-inera-general/header-inera-general-nav-item-mobile-base.d.ts +10 -0
  264. package/components/header-inera-general/header-inera-general-nav-item-mobile-base.js +11 -0
  265. package/components/header-inera-general/header-inera-general-nav-item-mobile.d.ts +10 -0
  266. package/components/header-inera-general/header-inera-general-nav-item-mobile.js +12 -0
  267. package/components/header-inera-general/header-inera-general-nav-item.d.ts +1 -1
  268. package/components/header-inera-general/header-inera-general-nav-mobile.d.ts +10 -0
  269. package/components/header-inera-general/header-inera-general-nav-mobile.js +8 -0
  270. package/components/header-inera-general/header-inera-general-nav.d.ts +1 -1
  271. package/components/header-inera-general/header-inera-general.d.ts +3 -1
  272. package/components/header-inera-general/header-inera-general.js +2 -2
  273. package/components/header-patient/header-patient.d.ts +1 -1
  274. package/components/link/action-link.d.ts +1 -1
  275. package/components/link/box-link.d.ts +1 -1
  276. package/components/list-pagination/list-pagination-links.d.ts +3 -2
  277. package/components/list-pagination/list-pagination-links.js +3 -20
  278. package/components/list-pagination/list-pagination-summary.d.ts +13 -0
  279. package/components/list-pagination/list-pagination-summary.js +9 -0
  280. package/components/list-pagination/list-pagination.d.ts +3 -2
  281. package/components/list-pagination/list-pagination.js +3 -20
  282. package/components/message-avatar/message-avatar.d.ts +12 -0
  283. package/components/message-avatar/message-avatar.js +10 -0
  284. package/components/mobile-menu/mobile-item-base.d.ts +1 -1
  285. package/components/mobile-menu/mobile-item-base.js +4 -24
  286. package/components/mobile-menu/mobile-item-link.d.ts +16 -0
  287. package/components/mobile-menu/mobile-item-link.js +27 -0
  288. package/components/mobile-menu/mobile-item.d.ts +1 -1
  289. package/components/mobile-menu/mobile-menu.d.ts +1 -1
  290. package/components/navigation-content/navigation-content-item-base.d.ts +12 -0
  291. package/components/navigation-content/navigation-content-item-base.js +17 -0
  292. package/components/navigation-content/navigation-content-item.d.ts +11 -0
  293. package/components/navigation-content/navigation-content-item.js +25 -0
  294. package/components/navigation-content/navigation-content.d.ts +1 -1
  295. package/components/navigation-content/navigation-content.js +10 -6
  296. package/components/navigation-local/navigation-local.d.ts +1 -1
  297. package/components/notification-badge/notification-badge.js +1 -1
  298. package/components/popover/popover-base.d.ts +1 -1
  299. package/components/popover/popover-caret.d.ts +9 -0
  300. package/components/popover/popover-caret.js +8 -0
  301. package/components/popover/popover-content.d.ts +1 -1
  302. package/components/popover/popover-content.js +2 -2
  303. package/components/popover/popover.d.ts +2 -1
  304. package/components/popover/popover.js +28 -14
  305. package/components/progressbar/progressbar.d.ts +1 -1
  306. package/components/puff-list/puff-list-item-date.d.ts +1 -1
  307. package/components/puff-list/puff-list-item-header.d.ts +2 -2
  308. package/components/puff-list/puff-list-item-info.d.ts +1 -1
  309. package/components/puff-list/puff-list-item.d.ts +2 -1
  310. package/components/puff-list/puff-list-item.js +2 -2
  311. package/components/puff-list/puff-list.d.ts +1 -1
  312. package/components/region-icon/region-icon.d.ts +5 -2
  313. package/components/region-icon/region-icon.js +6 -3
  314. package/components/side-menu/side-menu-base.d.ts +1 -1
  315. package/components/side-menu/side-menu-base.js +6 -24
  316. package/components/side-menu/side-menu-label.d.ts +17 -0
  317. package/components/side-menu/side-menu-label.js +14 -0
  318. package/components/side-menu/side-menu-toggle.d.ts +15 -0
  319. package/components/side-menu/side-menu-toggle.js +14 -0
  320. package/components/side-menu/side-menu.d.ts +1 -1
  321. package/components/side-panel/side-panel-base.js +4 -8
  322. package/components/side-panel/side-panel-footer.d.ts +10 -0
  323. package/components/side-panel/side-panel-footer.js +8 -0
  324. package/components/side-panel/side-panel-provider.d.ts +1 -1
  325. package/components/side-panel/side-panel.d.ts +1 -1
  326. package/components/side-panel/side-panel.js +2 -18
  327. package/components/stepper/step-base.d.ts +1 -1
  328. package/components/stepper/step-base.js +6 -9
  329. package/components/stepper/step-indicator.d.ts +11 -0
  330. package/components/stepper/step-indicator.js +8 -0
  331. package/components/stepper/step.d.ts +1 -1
  332. package/components/stepper/step.js +2 -11
  333. package/components/stepper/stepper.d.ts +1 -1
  334. package/components/tabs/tab-link.js +1 -1
  335. package/components/tabs/tab.js +1 -1
  336. package/components/tabs/tabs-base.d.ts +1 -1
  337. package/components/tabs/tabs.d.ts +1 -1
  338. package/components/tag/tag.js +9 -2
  339. package/components/tooltip/tooltip-base.d.ts +1 -3
  340. package/components/tooltip/tooltip-base.js +14 -10
  341. package/components/tooltip/tooltip.d.ts +1 -1
  342. package/components/tooltip/tooltip.js +1 -41
  343. package/components/utils/utils.js +0 -1
  344. package/index.d.ts +12 -0
  345. package/index.js +12 -0
  346. package/package.json +4 -3
@@ -0,0 +1,11 @@
1
+ import React, { ReactNode } from "react";
2
+ export interface IDSNavigationContentItemProps extends React.HTMLAttributes<HTMLDivElement> {
3
+ selected?: boolean;
4
+ defaultExpanded?: boolean;
5
+ link?: ReactNode;
6
+ level?: number;
7
+ showText?: string;
8
+ hideText?: string;
9
+ onToggleItem?: (isExpanded: boolean) => void;
10
+ }
11
+ export declare function IDSNavigationContentItem({ defaultExpanded, level, onToggleItem, className, children, ...props }: IDSNavigationContentItemProps): React.JSX.Element;
@@ -0,0 +1,25 @@
1
+ import { jsx } from 'react/jsx-runtime';
2
+ import React, { useState, useEffect } from 'react';
3
+ import { IDSNavigationContentItemBase } from './navigation-content-item-base.js';
4
+
5
+ function IDSNavigationContentItem({ defaultExpanded = false, level = 1, onToggleItem, className, children, ...props }) {
6
+ const [isExpanded, setIsExpanded] = useState(defaultExpanded);
7
+ useEffect(() => {
8
+ setIsExpanded(defaultExpanded);
9
+ }, [defaultExpanded]);
10
+ const handleToggleMenu = () => {
11
+ if (!!children) {
12
+ const newValue = !isExpanded;
13
+ setIsExpanded(newValue);
14
+ onToggleItem?.(newValue);
15
+ }
16
+ };
17
+ return (jsx(IDSNavigationContentItemBase, { ...props, client: true, expanded: isExpanded, level: level, onToggleItem: handleToggleMenu, className: className, children: React.Children.map(children, child => React.isValidElement(child)
18
+ ? React.cloneElement(child, {
19
+ "data-ids-sub-item": true,
20
+ level: level + 1
21
+ })
22
+ : child) }));
23
+ }
24
+
25
+ export { IDSNavigationContentItem };
@@ -4,7 +4,7 @@ export interface IDSNavigationContentProps extends React.HTMLAttributes<HTMLDivE
4
4
  headline?: string;
5
5
  maxHeight?: string;
6
6
  }
7
- export declare function IDSNavigationContent({ headline, maxHeight, className, children, ...props }: IDSNavigationContentProps): import("react/jsx-runtime").JSX.Element;
7
+ export declare function IDSNavigationContent({ headline, maxHeight, className, children, ...props }: IDSNavigationContentProps): React.JSX.Element;
8
8
  export declare namespace IDSNavigationContent {
9
9
  var displayName: string;
10
10
  }
@@ -1,15 +1,19 @@
1
1
  import { jsx, jsxs } from 'react/jsx-runtime';
2
- import React from 'react';
2
+ import React, { useId } from 'react';
3
3
  import clsx from 'clsx';
4
+ import { IDSLink } from '../link/link.js';
4
5
  import '@inera/ids-design/components/navigation-content/navigation-content.css';
5
6
 
6
7
  function IDSNavigationContent({ headline = "", maxHeight = "", className, children, ...props }) {
7
- const linkWrappers = React.Children.map(children, (link, i) => {
8
- if (!React.isValidElement(link))
9
- return link;
10
- return (jsx("div", { className: "ids-navigation-content__link-wrapper", children: link }, i));
8
+ const headerId = useId();
9
+ const linkWrappers = React.Children.map(children, (child, i) => {
10
+ if (!React.isValidElement(child))
11
+ return child;
12
+ if (child.type !== IDSLink)
13
+ return child;
14
+ return (jsx("li", { className: "ids-navigation-content__link-wrapper", children: child }, child.key ?? i));
11
15
  });
12
- return (jsxs("div", { className: clsx("ids-navigation-content", { "ids-navigation-content--scrollable": maxHeight }, className), ...props, children: [jsx("div", { className: "ids-navigation-content__border-top", children: jsx("div", { className: "ids-navigation-content__border-top-content" }) }), jsxs("nav", { className: "ids-navigation-content__inner", "aria-labelledby": "content-navigation-headline", id: "content-navigation-inner", children: [headline && (jsx("h2", { className: "ids-navigation-content__inner__headline", id: "content-navigation-headline", children: headline })), jsx("div", { className: "ids-navigation-content__links", style: { maxHeight: maxHeight || "none" }, children: linkWrappers })] })] }));
16
+ return (jsx("nav", { className: clsx("ids-navigation-content", { "ids-navigation-content--scrollable": maxHeight }, className), "aria-labelledby": headerId, ...props, children: jsxs("div", { className: "ids-navigation-content__inner", children: [headline && (jsx("h2", { className: "ids-navigation-content__inner__headline", id: headerId, children: headline })), jsx("ul", { className: "ids-navigation-content__links", style: { maxHeight: maxHeight || "none" }, children: linkWrappers })] }) }));
13
17
  }
14
18
  IDSNavigationContent.displayName = "IDSNavigationContent";
15
19
 
@@ -3,7 +3,7 @@ import "@inera/ids-design/components/navigation-local/navigation-local.css";
3
3
  export interface IDSNavigationLocalProps extends React.HTMLAttributes<HTMLDivElement> {
4
4
  headline?: string;
5
5
  }
6
- export declare function IDSNavigationLocal({ headline, className, children, ...props }: IDSNavigationLocalProps): import("react/jsx-runtime").JSX.Element;
6
+ export declare function IDSNavigationLocal({ headline, className, children, ...props }: IDSNavigationLocalProps): React.JSX.Element;
7
7
  export declare namespace IDSNavigationLocal {
8
8
  var displayName: string;
9
9
  }
@@ -5,7 +5,7 @@ import '@inera/ids-design/components/notification-badge/notification-badge.css';
5
5
 
6
6
  const IDSNotificationBadge = React.memo(function IDSNotificationBadge(props) {
7
7
  const { type = "primary", icon, children, className, ...rest } = props;
8
- return (jsxs("div", { ...rest, className: clsx("ids-notification-badge", `ids-notification-badge--${type}`, className), children: [icon && jsx("span", { className: `ids-icon-${icon}`, "aria-hidden": "true" }), children] }));
8
+ return (jsxs("div", { ...rest, className: clsx("ids-notification-badge", `ids-notification-badge--${type}`, className), children: [icon && jsx("span", { className: `ids-icon-${icon}-small`, "aria-hidden": "true" }), children] }));
9
9
  });
10
10
  IDSNotificationBadge.displayName = "IDSNotificationBadge";
11
11
 
@@ -11,7 +11,7 @@ interface IDSPopoverBaseProps extends React.HTMLAttributes<HTMLSpanElement> {
11
11
  className?: string;
12
12
  client?: boolean;
13
13
  }
14
- export declare function IDSPopoverBase({ trigger, triggerRef, togglePopover, handleKeyPress, client, expanded, className, children, ...props }: IDSPopoverBaseProps): import("react/jsx-runtime").JSX.Element;
14
+ export declare function IDSPopoverBase({ trigger, triggerRef, togglePopover, handleKeyPress, client, expanded, className, children, ...props }: IDSPopoverBaseProps): React.JSX.Element;
15
15
  export declare namespace IDSPopoverBase {
16
16
  var displayName: string;
17
17
  }
@@ -0,0 +1,9 @@
1
+ import { PopoverPosition } from "./popover-content";
2
+ interface IDSPopoverCaretProps {
3
+ position?: PopoverPosition;
4
+ }
5
+ export declare function IDSPopoverCaret({ position }: IDSPopoverCaretProps): import("react").JSX.Element;
6
+ export declare namespace IDSPopoverCaret {
7
+ var displayName: string;
8
+ }
9
+ export {};
@@ -0,0 +1,8 @@
1
+ import { jsxs, jsx } from 'react/jsx-runtime';
2
+
3
+ function IDSPopoverCaret({ position = "bottom" }) {
4
+ return (jsxs("div", { className: `ids-popover-content__caret ids-popover-content__caret--${position}`, children: [jsx("span", { className: `ids-popover-content__caret-body ids-popover-content__caret--${position}` }), jsx("span", { className: `ids-popover-content__caret-border ids-popover-content__caret--${position}` }), jsx("span", { className: `ids-popover-content__caret-shadow ids-popover-content__caret--${position}` })] }));
5
+ }
6
+ IDSPopoverCaret.displayName = "IDSPopoverCaret";
7
+
8
+ export { IDSPopoverCaret };
@@ -18,7 +18,7 @@ interface IDSPopoverContentProps {
18
18
  client?: boolean;
19
19
  style?: React.CSSProperties;
20
20
  }
21
- export declare function IDSPopoverContent({ position, caretPosition, srCloseText, headline, contentScrollAreaStyle, noFocusTrap, noScrollAreaFocus, contentRef, scrollAreaRef, closeButtonRef, closePopover, client, children, style }: IDSPopoverContentProps): import("react/jsx-runtime").JSX.Element;
21
+ export declare function IDSPopoverContent({ position, caretPosition, srCloseText, headline, contentScrollAreaStyle, noFocusTrap, noScrollAreaFocus, contentRef, scrollAreaRef, closeButtonRef, closePopover, client, children, style }: IDSPopoverContentProps): React.JSX.Element;
22
22
  export declare namespace IDSPopoverContent {
23
23
  var displayName: string;
24
24
  }
@@ -2,14 +2,14 @@ import { jsxs, jsx } from 'react/jsx-runtime';
2
2
  import { useId } from 'react';
3
3
  import clsx from 'clsx';
4
4
  import '@inera/ids-design/components/popover/popover.css';
5
+ import { IDSPopoverCaret } from './popover-caret.js';
5
6
 
6
7
  function IDSPopoverContent({ position = "bottom", caretPosition = "bottom", srCloseText = "Stäng", headline, contentScrollAreaStyle, noFocusTrap = false, noScrollAreaFocus = false, contentRef, scrollAreaRef, closeButtonRef, closePopover, client, children, style }) {
7
8
  const contentId = `popover-content-${useId()}`;
8
9
  const closeHandler = client && closePopover ? { onClick: closePopover } : {};
9
- const renderCaret = (pos) => (jsxs("div", { className: `ids-popover-content__caret ids-popover-content__caret--${pos}`, children: [jsx("span", { className: `ids-popover-content__caret-body ids-popover-content__caret--${pos}` }), jsx("span", { className: `ids-popover-content__caret-border ids-popover-content__caret--${pos}` }), jsx("span", { className: `ids-popover-content__caret-shadow ids-popover-content__caret--${pos}` })] }));
10
10
  return (jsxs("div", { ref: contentRef, style: style, className: clsx("ids-popover-content", `ids-popover-content--${position}`, {
11
11
  "ids-focus-trap": !noFocusTrap
12
- }), role: "tooltip", id: contentId, "data-position": position, children: [renderCaret(caretPosition), jsx("div", { className: "ids-popover-content__close-btn-wrapper", children: jsx("button", { "aria-label": srCloseText, className: "ids-popover-content__close-btn", ...closeHandler, ref: closeButtonRef }) }), jsx("div", { ref: scrollAreaRef, className: "ids-popover-content__content-wrapper", tabIndex: noScrollAreaFocus ? -1 : 0, style: contentScrollAreaStyle, children: jsxs("div", { className: "ids-popover-content__content-wrapper-inner", children: [!!headline && jsx("div", { className: "ids-popover-content__headline", children: headline }), children] }) })] }));
12
+ }), role: "tooltip", id: contentId, "data-position": position, children: [jsx(IDSPopoverCaret, { position: caretPosition }), jsx("div", { className: "ids-popover-content__close-btn-wrapper", children: jsx("button", { className: "ids-popover-content__close-btn", "aria-label": srCloseText, ...closeHandler, ref: closeButtonRef }) }), jsx("div", { ref: scrollAreaRef, className: "ids-popover-content__content-wrapper", tabIndex: noScrollAreaFocus ? -1 : 0, style: contentScrollAreaStyle, children: jsxs("div", { className: "ids-popover-content__content-wrapper-inner", children: [!!headline && jsx("div", { className: "ids-popover-content__headline", children: headline }), children] }) })] }));
13
13
  }
14
14
  IDSPopoverContent.displayName = "IDSPopoverContent";
15
15
 
@@ -10,12 +10,13 @@ interface IDSPopoverProps extends React.HTMLAttributes<HTMLDivElement> {
10
10
  noFocusTrap?: boolean;
11
11
  autoFocus?: boolean;
12
12
  srCloseText?: string;
13
+ zIndex?: number;
13
14
  noScrollAreaFocus?: boolean;
14
15
  onVisibilityChange?: (isVisible: boolean) => void;
15
16
  headline?: React.ReactNode;
16
17
  children?: React.ReactNode;
17
18
  }
18
- export declare function IDSPopover({ position, category, trigger, maxWidth, maxHeight, show, noFocusTrap, autoFocus, noScrollAreaFocus, srCloseText, headline, children, className, onVisibilityChange, ...props }: IDSPopoverProps): import("react/jsx-runtime").JSX.Element;
19
+ export declare function IDSPopover({ position, category, trigger, maxWidth, maxHeight, show, noFocusTrap, autoFocus, noScrollAreaFocus, srCloseText, zIndex, headline, children, className, onVisibilityChange, ...props }: IDSPopoverProps): React.JSX.Element;
19
20
  export declare namespace IDSPopover {
20
21
  var displayName: string;
21
22
  }
@@ -7,7 +7,7 @@ import { useFocusTrap } from '../utils/hooks/useFocusTrap.js';
7
7
  import { IDSPopoverContent } from './popover-content.js';
8
8
  import { useEsc } from '../utils/hooks/useEsc.js';
9
9
 
10
- function IDSPopover({ position = "bottom", category = "", trigger, maxWidth = 260, maxHeight = 260, show = false, noFocusTrap = false, autoFocus = false, noScrollAreaFocus = false, srCloseText = "Stäng", headline, children, className, onVisibilityChange, ...props }) {
10
+ function IDSPopover({ position = "bottom", category = "", trigger, maxWidth = 260, maxHeight = 260, show = false, noFocusTrap = false, autoFocus = false, noScrollAreaFocus = false, srCloseText = "Stäng", zIndex = 9999, headline, children, className, onVisibilityChange, ...props }) {
11
11
  const popoverRef = useRef(null);
12
12
  const triggerRef = useRef(null);
13
13
  const contentRef = useRef(null);
@@ -34,11 +34,6 @@ function IDSPopover({ position = "bottom", category = "", trigger, maxWidth = 26
34
34
  setTimeout(() => requestAnimationFrame(() => setReady(true)), 100);
35
35
  }
36
36
  }, [isExpanded]);
37
- useLayoutEffect(() => {
38
- if (!ready)
39
- return;
40
- requestAnimationFrame(() => updatePosition());
41
- }, [ready]);
42
37
  const handleVisibilityChange = (visible) => {
43
38
  setIsExpanded(visible);
44
39
  onVisibilityChange?.(visible);
@@ -161,16 +156,35 @@ function IDSPopover({ position = "bottom", category = "", trigger, maxWidth = 26
161
156
  });
162
157
  }, [position]);
163
158
  useLayoutEffect(() => {
164
- if (!isExpanded || !triggerRef.current || !contentRef.current)
159
+ if (!ready)
165
160
  return;
166
- updatePosition();
167
- window.addEventListener("resize", updatePosition);
168
- window.addEventListener("scroll", updatePosition);
161
+ requestAnimationFrame(() => updatePosition());
162
+ }, [ready, updatePosition]);
163
+ useLayoutEffect(() => {
164
+ if (!isExpanded)
165
+ return;
166
+ const update = () => {
167
+ requestAnimationFrame(updatePosition);
168
+ };
169
+ update();
170
+ const observer = new ResizeObserver(update);
171
+ if (triggerRef.current)
172
+ observer.observe(triggerRef.current);
173
+ if (contentRef.current)
174
+ observer.observe(contentRef.current);
175
+ observer.observe(document.documentElement);
176
+ window.addEventListener("resize", update);
177
+ window.addEventListener("scroll", update, true);
178
+ window.visualViewport?.addEventListener("resize", update);
179
+ window.visualViewport?.addEventListener("scroll", update);
169
180
  return () => {
170
- window.removeEventListener("resize", updatePosition);
171
- window.removeEventListener("scroll", updatePosition);
181
+ observer.disconnect();
182
+ window.removeEventListener("resize", update);
183
+ window.removeEventListener("scroll", update, true);
184
+ window.visualViewport?.removeEventListener("resize", update);
185
+ window.visualViewport?.removeEventListener("scroll", update);
172
186
  };
173
- }, [isExpanded, position]);
187
+ }, [isExpanded, updatePosition]);
174
188
  return (jsxs("span", { "data-popover-category": category, ref: popoverRef, children: [jsx(IDSPopoverBase, { ...props, client: true, expanded: isExpanded, triggerRef: triggerRef, togglePopover: togglePopover, handleKeyPress: handleKeyPress, trigger: trigger, className: className }), mounted &&
175
189
  isExpanded &&
176
190
  createPortal(jsx(IDSPopoverContent, { client: true, headline: headline, contentRef: contentRef, scrollAreaRef: scrollAreaRef, noScrollAreaFocus: noScrollAreaFocus, caretPosition: position, srCloseText: srCloseText, closeButtonRef: closeButtonRef, closePopover: closePopover, contentScrollAreaStyle: {
@@ -181,7 +195,7 @@ function IDSPopover({ position = "bottom", category = "", trigger, maxWidth = 26
181
195
  position: "absolute",
182
196
  top: coords.top,
183
197
  left: coords.left,
184
- zIndex: 9999
198
+ zIndex: zIndex
185
199
  }, children: children }), document.body)] }));
186
200
  }
187
201
  IDSPopover.displayName = "IDSPopover";
@@ -7,6 +7,6 @@ export interface IDSProgressbarProps extends React.HTMLAttributes<HTMLDivElement
7
7
  srLabel: string;
8
8
  }
9
9
  export declare const IDSProgressbar: React.MemoExoticComponent<{
10
- ({ label, hideLabel, value, srLabel, className, ...props }: IDSProgressbarProps): import("react/jsx-runtime").JSX.Element;
10
+ ({ label, hideLabel, value, srLabel, className, ...props }: IDSProgressbarProps): React.JSX.Element;
11
11
  displayName: string;
12
12
  }>;
@@ -8,7 +8,7 @@ interface IDSPuffListItemDateProps extends React.HTMLAttributes<HTMLDivElement>
8
8
  monthLabel?: string;
9
9
  time?: string;
10
10
  }
11
- export declare function IDSPuffListItemDate({ date, showTime, day, year, month, monthLabel, time, ...props }: IDSPuffListItemDateProps): import("react/jsx-runtime").JSX.Element;
11
+ export declare function IDSPuffListItemDate({ date, showTime, day, year, month, monthLabel, time, ...props }: IDSPuffListItemDateProps): React.JSX.Element;
12
12
  export declare namespace IDSPuffListItemDate {
13
13
  var displayName: string;
14
14
  }
@@ -1,10 +1,10 @@
1
1
  import React, { ReactNode } from "react";
2
2
  export interface IDSPuffListItemHeaderProps extends React.HTMLAttributes<HTMLHeadingElement> {
3
- headlineLevel?: 2 | 3 | 4 | 5;
3
+ headlineLevel?: 2 | 3 | 4 | 5 | 6;
4
4
  headlineExtra?: ReactNode;
5
5
  noMargin?: boolean;
6
6
  }
7
- export declare function IDSPuffListItemHeader({ headlineLevel, headlineExtra, noMargin, children, ...props }: IDSPuffListItemHeaderProps): import("react/jsx-runtime").JSX.Element;
7
+ export declare function IDSPuffListItemHeader({ headlineLevel, headlineExtra, noMargin, children, ...props }: IDSPuffListItemHeaderProps): React.JSX.Element;
8
8
  export declare namespace IDSPuffListItemHeader {
9
9
  var displayName: string;
10
10
  }
@@ -2,7 +2,7 @@ import React from "react";
2
2
  export interface IDSPuffListItemInfoProps extends React.HTMLAttributes<HTMLDivElement> {
3
3
  bottom?: boolean;
4
4
  }
5
- export declare function IDSPuffListItemInfo({ bottom, children, ...props }: IDSPuffListItemInfoProps): import("react/jsx-runtime").JSX.Element;
5
+ export declare function IDSPuffListItemInfo({ bottom, children, ...props }: IDSPuffListItemInfoProps): React.JSX.Element;
6
6
  export declare namespace IDSPuffListItemInfo {
7
7
  var displayName: string;
8
8
  }
@@ -9,8 +9,9 @@ export interface IDSPuffListItemProps extends React.HTMLAttributes<HTMLElement>
9
9
  lean?: boolean;
10
10
  dateLabel?: ReactNode;
11
11
  extra?: ReactNode;
12
+ noListItem?: boolean;
12
13
  }
13
- export declare function IDSPuffListItem({ header, itemLink, date, dateTo, noContent, lean, dateLabel, extra, className, children, ...props }: IDSPuffListItemProps): import("react/jsx-runtime").JSX.Element;
14
+ export declare function IDSPuffListItem({ header, itemLink, date, dateTo, noContent, lean, dateLabel, extra, noListItem, className, children, ...props }: IDSPuffListItemProps): React.JSX.Element;
14
15
  export declare namespace IDSPuffListItem {
15
16
  var displayName: string;
16
17
  }
@@ -3,8 +3,8 @@ import { isValidElement, cloneElement } from 'react';
3
3
  import clsx from 'clsx';
4
4
  import '@inera/ids-design/components/puff-list/puff-list.css';
5
5
 
6
- function IDSPuffListItem({ header, itemLink, date, dateTo, noContent = false, lean = false, dateLabel, extra, className, children, ...props }) {
7
- const Tag = lean ? "div" : "li";
6
+ function IDSPuffListItem({ header, itemLink, date, dateTo, noContent = false, lean = false, dateLabel, extra, noListItem, className, children, ...props }) {
7
+ const Tag = noListItem || lean ? "div" : "li";
8
8
  const content = (jsxs("div", { className: "ids-puff-list-item__inner", children: [dateLabel && jsx("div", { className: "ids-puff-list-item__date-label", children: dateLabel }), jsxs("div", { className: "ids-puff-list-item__content-wrapper", children: [jsxs("div", { className: "ids-puff-list-item__content", children: [!!date && date, !!date && !!dateTo && (jsxs(Fragment, { children: [jsx("span", { className: "ids-puff-list-item__date-spacer", children: "\u2015" }), dateTo] })), jsx("div", { className: "ids-puff-list-item-header", children: header }), !noContent && jsx("div", { className: "ids-puff-list-item__body", children: children })] }), extra && jsx("div", { className: "ids-puff-list-item__extra-content", children: extra })] })] }));
9
9
  const wrappedContent = itemLink && isValidElement(itemLink)
10
10
  ? cloneElement(itemLink, {
@@ -3,7 +3,7 @@ import "@inera/ids-design/components/puff-list/puff-list.css";
3
3
  interface IDSPuffListProps extends React.HTMLAttributes<HTMLDListElement> {
4
4
  children?: ReactNode;
5
5
  }
6
- export declare function IDSPuffList({ children, className, ...props }: IDSPuffListProps): import("react/jsx-runtime").JSX.Element;
6
+ export declare function IDSPuffList({ children, className, ...props }: IDSPuffListProps): React.JSX.Element;
7
7
  export declare namespace IDSPuffList {
8
8
  var displayName: string;
9
9
  }
@@ -7,9 +7,12 @@ export interface IDSRegionIconProps extends React.HTMLAttributes<HTMLSpanElement
7
7
  colorPreset?: number;
8
8
  light?: boolean;
9
9
  inline?: boolean;
10
+ srText?: string;
10
11
  }
11
- export declare function IDSRegionIcon({ name, size, colorPreset, light, inline, className, ...props }: IDSRegionIconProps): import("react/jsx-runtime").JSX.Element;
12
- export declare namespace IDSRegionIcon {
12
+ declare function IDSRegionIconBase({ name, size, colorPreset, light, // FIXME 10.0 remove
13
+ inline, srText, className, ...props }: IDSRegionIconProps): React.JSX.Element;
14
+ declare namespace IDSRegionIconBase {
13
15
  var displayName: string;
14
16
  }
17
+ export declare const IDSRegionIcon: React.MemoExoticComponent<typeof IDSRegionIconBase>;
15
18
  export {};
@@ -1,8 +1,10 @@
1
1
  import { jsx } from 'react/jsx-runtime';
2
+ import React from 'react';
2
3
  import clsx from 'clsx';
3
4
  import '@inera/ids-design/components/region-icon/region-icon.css';
4
5
 
5
- function IDSRegionIcon({ name, size = "m", colorPreset = 1, light = false, inline = false, className, ...props }) {
6
+ function IDSRegionIconBase({ name, size = "m", colorPreset = 1, light = false, // FIXME 10.0 remove
7
+ inline = false, srText = "", className, ...props }) {
6
8
  const getSize = () => {
7
9
  switch (size) {
8
10
  case "l":
@@ -19,8 +21,9 @@ function IDSRegionIcon({ name, size = "m", colorPreset = 1, light = false, inlin
19
21
  return "2.5rem";
20
22
  }
21
23
  };
22
- return (jsx("span", { ...props, className: clsx("ids-region-icon", `ids-region-icon--${name}`, `ids-region-icon--color-preset-${light ? 3 : colorPreset}`, { "ids-region-icon--inline": inline }, className), style: { fontSize: getSize() } }));
24
+ return (jsx("span", { ...props, className: clsx("ids-region-icon", `ids-region-icon--${name}`, `ids-region-icon--color-preset-${light ? 3 : colorPreset}`, { "ids-region-icon--inline": inline }, className), "aria-label": srText || name, style: { fontSize: getSize() } }));
23
25
  }
24
- IDSRegionIcon.displayName = "IDSRegionIcon";
26
+ IDSRegionIconBase.displayName = "IDSRegionIcon";
27
+ const IDSRegionIcon = React.memo(IDSRegionIconBase);
25
28
 
26
29
  export { IDSRegionIcon };
@@ -15,7 +15,7 @@ interface IDSSideMenuBaseProps extends React.HTMLAttributes<HTMLDivElement> {
15
15
  toggleButtonProps?: React.ButtonHTMLAttributes<HTMLButtonElement>;
16
16
  client?: boolean;
17
17
  }
18
- export declare function IDSSideMenuBase({ label, srToggleText, expanded, active, level, icon, labelNotification, link, isExpanded, onToggleMenu, handleKeyDown, toggleButtonProps, className, children, client, ...props }: IDSSideMenuBaseProps): import("react/jsx-runtime").JSX.Element;
18
+ export declare function IDSSideMenuBase({ label, srToggleText, expanded, active, level, icon, labelNotification, link, isExpanded, onToggleMenu, handleKeyDown, toggleButtonProps, className, children, client, ...props }: IDSSideMenuBaseProps): React.JSX.Element;
19
19
  export declare namespace IDSSideMenuBase {
20
20
  var displayName: string;
21
21
  }
@@ -1,41 +1,23 @@
1
1
  import { jsxs, jsx, Fragment } from 'react/jsx-runtime';
2
- import React from 'react';
2
+ import React, { useId } from 'react';
3
3
  import clsx from 'clsx';
4
4
  import '@inera/ids-design/components/side-menu/side-menu.css';
5
+ import { IDSSideMenuLabel } from './side-menu-label.js';
6
+ import { IDSSideMenuToggle } from './side-menu-toggle.js';
5
7
 
6
8
  function IDSSideMenuBase({ label = "", srToggleText = "Sektion", expanded = false, active = false, level = 1, icon = "", labelNotification, link, isExpanded = expanded, onToggleMenu, handleKeyDown, toggleButtonProps, className, children, client = false, ...props }) {
7
9
  const hasChildren = !!React.Children.toArray(children).length;
10
+ const childrenId = useId();
8
11
  const toggleHandlers = client && onToggleMenu
9
12
  ? {
10
13
  onClick: onToggleMenu,
11
14
  onKeyDown: handleKeyDown
12
15
  }
13
16
  : {};
14
- const renderExpandButton = () => {
15
- if (hasChildren) {
16
- return (jsx("button", { className: clsx("ids-side-menu__chevron-button", {
17
- "ids-side-menu__chevron-button--expanded": isExpanded
18
- }), ...toggleHandlers, ...toggleButtonProps, "aria-expanded": isExpanded, "aria-label": srToggleText }));
19
- }
20
- return icon ? (jsx("div", { className: "ids-side-menu__label-icon", "aria-hidden": "true", children: jsx("span", { className: `ids-icon-${icon}` }) })) : (jsx("div", { className: "ids-side-menu__chevron-button--empty" }));
21
- };
22
- const renderLabel = () => {
23
- if (hasChildren) {
24
- return (jsxs("button", { className: "ids-side-menu__label-button", ...toggleHandlers, ...toggleButtonProps, "aria-expanded": isExpanded, "aria-label": srToggleText, children: [jsx("div", { className: clsx("ids-side-menu__label-chevron", {
25
- "ids-side-menu__label-chevron--expanded": isExpanded
26
- }) }), jsxs("div", { className: "ids-side-menu__label", children: [label, labelNotification] })] }));
27
- }
28
- return (jsxs(Fragment, { children: [icon ? (jsx("div", { className: "ids-side-menu__label-icon", "aria-hidden": "true", children: jsx("span", { className: `ids-icon-${icon}` }) })) : (jsx("div", { className: "ids-side-menu__chevron-button--empty" })), jsxs("div", { className: "ids-side-menu__label", children: [jsx("span", { className: "ids-side-menu__label-text", children: label }), labelNotification] })] }));
29
- };
30
- const renderMenuPost = () => {
31
- if (label)
32
- return renderLabel();
33
- return (jsxs(Fragment, { children: [renderExpandButton(), jsx("div", { className: "ids-side-menu__link", onClick: e => e.stopPropagation(), onKeyDown: e => e.code !== "Escape" && e.stopPropagation(), children: link })] }));
34
- };
35
17
  return (jsxs("div", { className: clsx("ids-side-menu", `ids-side-menu--level-${level}`, className), ...props, children: [jsx("div", { className: clsx("ids-side-menu__header", {
36
18
  "ids-side-menu--active": active,
37
- "ids-side-menu--node-label": hasChildren && label
38
- }), children: jsx("div", { className: "ids-side-menu__header-inner", children: renderMenuPost() }) }), isExpanded && jsx("div", { className: "ids-side-menu__children", children: children })] }));
19
+ "ids-side-menu__header--node-label": hasChildren && label
20
+ }), children: jsxs("div", { className: "ids-side-menu__header-inner", children: [label && (jsx(IDSSideMenuLabel, { hasChildren: hasChildren, toggleHandlers: toggleHandlers, toggleButtonProps: toggleButtonProps, expanded: isExpanded, childrenId: childrenId, label: label, icon: icon, labelNotification: labelNotification, srToggleText: srToggleText })), !label && (jsxs(Fragment, { children: [jsx(IDSSideMenuToggle, { hasChildren: hasChildren, childrenId: childrenId, toggleHandlers: toggleHandlers, toggleButtonProps: toggleButtonProps, icon: icon, srToggleText: srToggleText, expanded: isExpanded }), jsx("div", { className: "ids-side-menu__link", onClick: e => e.stopPropagation(), onKeyDown: e => e.code !== "Escape" && e.stopPropagation(), children: link })] }))] }) }), isExpanded && (jsx("div", { className: "ids-side-menu__children", id: childrenId, children: children }))] }));
39
21
  }
40
22
  IDSSideMenuBase.displayName = "IDSSideMenuBase";
41
23
 
@@ -0,0 +1,17 @@
1
+ import React, { ReactNode } from "react";
2
+ interface IDSSideMenuLabelProps extends React.HTMLAttributes<HTMLDivElement> {
3
+ icon?: string;
4
+ label?: string;
5
+ labelNotification?: ReactNode;
6
+ srToggleText?: string;
7
+ expanded?: boolean;
8
+ hasChildren?: boolean;
9
+ childrenId?: string;
10
+ toggleButtonProps?: React.ButtonHTMLAttributes<HTMLButtonElement>;
11
+ toggleHandlers?: React.ButtonHTMLAttributes<HTMLButtonElement>;
12
+ }
13
+ export declare function IDSSideMenuLabel({ label, srToggleText, expanded, icon, labelNotification, hasChildren, childrenId, toggleButtonProps, toggleHandlers }: IDSSideMenuLabelProps): React.JSX.Element;
14
+ export declare namespace IDSSideMenuLabel {
15
+ var displayName: string;
16
+ }
17
+ export {};
@@ -0,0 +1,14 @@
1
+ import { jsxs, jsx, Fragment } from 'react/jsx-runtime';
2
+ import clsx from 'clsx';
3
+
4
+ function IDSSideMenuLabel({ label = "", srToggleText, expanded = false, icon = "", labelNotification, hasChildren, childrenId, toggleButtonProps, toggleHandlers }) {
5
+ if (hasChildren) {
6
+ return (jsxs("button", { className: "ids-side-menu__label-button", ...toggleHandlers, ...toggleButtonProps, "aria-expanded": expanded, "aria-controls": childrenId, "aria-label": srToggleText, children: [jsx("div", { className: clsx("ids-side-menu__label-chevron", {
7
+ "ids-side-menu__label-chevron--expanded": expanded
8
+ }) }), jsxs("div", { className: "ids-side-menu__label", children: [label, labelNotification] })] }));
9
+ }
10
+ return (jsxs(Fragment, { children: [icon ? (jsx("div", { className: "ids-side-menu__label-icon", "aria-hidden": "true", children: jsx("span", { className: `ids-icon-${icon}` }) })) : (jsx("div", { className: "ids-side-menu__chevron-button--empty" })), jsxs("div", { className: "ids-side-menu__label", children: [jsx("span", { className: "ids-side-menu__label-text", children: label }), labelNotification] })] }));
11
+ }
12
+ IDSSideMenuLabel.displayName = "IDSSideMenuLabel";
13
+
14
+ export { IDSSideMenuLabel };
@@ -0,0 +1,15 @@
1
+ import React from "react";
2
+ interface IDSSideMenuToggleProps extends React.HTMLAttributes<HTMLDivElement> {
3
+ icon?: string;
4
+ srToggleText?: string;
5
+ expanded?: boolean;
6
+ hasChildren?: boolean;
7
+ childrenId?: string;
8
+ toggleButtonProps?: React.ButtonHTMLAttributes<HTMLButtonElement>;
9
+ toggleHandlers?: React.ButtonHTMLAttributes<HTMLButtonElement>;
10
+ }
11
+ export declare function IDSSideMenuToggle({ srToggleText, expanded, icon, hasChildren, toggleButtonProps, toggleHandlers, childrenId }: IDSSideMenuToggleProps): React.JSX.Element;
12
+ export declare namespace IDSSideMenuToggle {
13
+ var displayName: string;
14
+ }
15
+ export {};
@@ -0,0 +1,14 @@
1
+ import { jsx } from 'react/jsx-runtime';
2
+ import clsx from 'clsx';
3
+
4
+ function IDSSideMenuToggle({ srToggleText, expanded = false, icon = "", hasChildren, toggleButtonProps, toggleHandlers, childrenId }) {
5
+ if (hasChildren) {
6
+ return (jsx("button", { className: clsx("ids-side-menu__chevron-button", {
7
+ "ids-side-menu__chevron-button--expanded": expanded
8
+ }), ...toggleHandlers, ...toggleButtonProps, "aria-expanded": expanded, "aria-controls": childrenId, "aria-label": srToggleText }));
9
+ }
10
+ return icon ? (jsx("div", { className: "ids-side-menu__label-icon", "aria-hidden": "true", children: jsx("span", { className: `ids-icon-${icon}` }) })) : (jsx("div", { className: "ids-side-menu__chevron-button--empty" }));
11
+ }
12
+ IDSSideMenuToggle.displayName = "IDSSideMenuToggle";
13
+
14
+ export { IDSSideMenuToggle };
@@ -10,7 +10,7 @@ export interface IDSSideMenuProps extends React.HTMLAttributes<HTMLDivElement> {
10
10
  link?: React.ReactNode;
11
11
  onToggleMenu?: (isExpanded: boolean) => void;
12
12
  }
13
- export declare function IDSSideMenu({ expanded, onToggleMenu, srToggleText, className, ...props }: IDSSideMenuProps): import("react/jsx-runtime").JSX.Element;
13
+ export declare function IDSSideMenu({ expanded, onToggleMenu, srToggleText, className, ...props }: IDSSideMenuProps): React.JSX.Element;
14
14
  export declare namespace IDSSideMenu {
15
15
  var displayName: string;
16
16
  }
@@ -2,6 +2,7 @@ import { jsx, jsxs } from 'react/jsx-runtime';
2
2
  import React, { forwardRef } from 'react';
3
3
  import clsx from 'clsx';
4
4
  import '@inera/ids-design/components/side-panel/side-panel.css';
5
+ import { IDSSidePanelFooter } from './side-panel-footer.js';
5
6
 
6
7
  const IDSSidePanelBase = forwardRef(({ visible = false, left = false, elevated = false, menu = false, footer = false, noCloseButton = false, noScrollAreaFocus = false, footerDarkmodeToggle, size = "m", srLabel = "Sidopanel", onTogglePanel, onClosePanel, srClose, srOpen, client, headline, footerLinks, footerText, hamburgerRef, componentRef, className, children, ...props }, ref) => {
7
8
  const [ready, setReady] = React.useState(false);
@@ -23,14 +24,9 @@ const IDSSidePanelBase = forwardRef(({ visible = false, left = false, elevated =
23
24
  onClick: onClosePanel
24
25
  }
25
26
  : {};
26
- const renderFooter = () => {
27
- if (menu && footer) {
28
- return (jsxs("footer", { className: "ids-side-panel__footer", children: [footerLinks && jsx("div", { className: "ids-side-panel__footer-links", children: footerLinks }), footerDarkmodeToggle && jsx("div", { className: "ids-side-panel__footer-toggle", children: footerDarkmodeToggle }), footerText && jsx("div", { className: "ids-side-panel__footer-text", children: footerText })] }));
29
- }
30
- return null;
31
- };
32
- const renderContent = () => (jsxs("div", { className: "ids-side-panel__content", tabIndex: noScrollAreaFocus ? -1 : 0, children: [jsxs("div", { className: "ids-side-panel__inner", children: [headline, children] }), renderFooter()] }));
33
- return (jsx("div", { className: classNames, ref: ref, ...props, children: jsxs("div", { className: "ids-side-panel__panel", children: [!noCloseButton && (jsx("div", { className: "ids-side-panel__actions", children: menu ? (jsx("button", { "aria-label": visible ? srClose : srOpen, className: "ids-side-panel__hamburger", "aria-expanded": visible, ...toggleHandler, ref: hamburgerRef, children: jsx("div", { className: "ids-hamburger", children: jsx("div", { className: "ids-hamburger__lines" }) }) })) : (jsx("button", { "aria-label": srClose, "aria-expanded": visible, className: "ids-side-panel__close-button", ...closeHandler })) })), renderContent()] }) }));
27
+ return (jsx("div", { className: classNames, ref: ref, ...props, children: jsxs("div", { className: clsx("ids-side-panel__panel", {
28
+ "ids-side-panel__panel--no-close-button": noCloseButton
29
+ }), children: [!noCloseButton && (jsx("div", { className: "ids-side-panel__actions", children: menu ? (jsx("button", { "aria-label": visible ? srClose : srOpen, className: "ids-side-panel__hamburger", "aria-expanded": visible, ...toggleHandler, ref: hamburgerRef, children: jsx("div", { className: "ids-hamburger", children: jsx("div", { className: "ids-hamburger__lines" }) }) })) : (jsx("button", { "aria-label": srClose, "aria-expanded": visible, className: "ids-side-panel__close-button", ...closeHandler })) })), jsxs("div", { className: "ids-side-panel__content", tabIndex: noScrollAreaFocus ? -1 : 0, children: [jsxs("div", { className: "ids-side-panel__inner", children: [headline, children] }), menu && footer && (jsx(IDSSidePanelFooter, { footerLinks: footerLinks, footerText: footerText, footerDarkmodeToggle: footerDarkmodeToggle }))] })] }) }));
34
30
  });
35
31
  IDSSidePanelBase.displayName = "IDSSidePanelBase";
36
32
 
@@ -0,0 +1,10 @@
1
+ import React, { ReactNode } from "react";
2
+ export interface IDSSidePanelFooterProps extends React.HTMLAttributes<HTMLDivElement> {
3
+ footerDarkmodeToggle?: ReactNode;
4
+ footerLinks?: ReactNode;
5
+ footerText?: ReactNode;
6
+ }
7
+ export declare function IDSSidePanelFooter({ footerLinks, footerText, footerDarkmodeToggle }: IDSSidePanelFooterProps): React.JSX.Element;
8
+ export declare namespace IDSSidePanelFooter {
9
+ var displayName: string;
10
+ }
@@ -0,0 +1,8 @@
1
+ import { jsxs, jsx } from 'react/jsx-runtime';
2
+
3
+ function IDSSidePanelFooter({ footerLinks, footerText, footerDarkmodeToggle }) {
4
+ return (jsxs("footer", { className: "ids-side-panel__footer", children: [footerLinks && jsx("div", { className: "ids-side-panel__footer-links", children: footerLinks }), footerDarkmodeToggle && jsx("div", { className: "ids-side-panel__footer-toggle", children: footerDarkmodeToggle }), footerText && jsx("div", { className: "ids-side-panel__footer-text", children: footerText })] }));
5
+ }
6
+ IDSSidePanelFooter.displayName = "IDSSidePanelFooter";
7
+
8
+ export { IDSSidePanelFooter };
@@ -4,7 +4,7 @@ export interface IDSSidePanelProviderProps extends React.HTMLAttributes<HTMLDivE
4
4
  hideSidePanel?: boolean;
5
5
  sidePanel: ReactNode;
6
6
  }
7
- export declare function IDSSidePanelProvider({ left, hideSidePanel, sidePanel, className, children, ...props }: IDSSidePanelProviderProps): import("react/jsx-runtime").JSX.Element;
7
+ export declare function IDSSidePanelProvider({ left, hideSidePanel, sidePanel, className, children, ...props }: IDSSidePanelProviderProps): React.JSX.Element;
8
8
  export declare namespace IDSSidePanelProvider {
9
9
  var displayName: string;
10
10
  }
@@ -20,7 +20,7 @@ export interface IDSSidePanelProps extends React.HTMLAttributes<HTMLDivElement>
20
20
  noScrollAreaFocus?: boolean;
21
21
  noCloseButton?: boolean;
22
22
  }
23
- export declare function IDSSidePanel({ show, menu, noScrollAreaFocus, noCloseButton, srLabel, onVisibilityChange, srClose, srOpen, onOpen, onClose, className, children, ...props }: IDSSidePanelProps): import("react/jsx-runtime").JSX.Element;
23
+ export declare function IDSSidePanel({ show, menu, noScrollAreaFocus, noCloseButton, srLabel, onVisibilityChange, srClose, srOpen, onOpen, onClose, className, children, ...props }: IDSSidePanelProps): import("react").JSX.Element;
24
24
  export declare namespace IDSSidePanel {
25
25
  var displayName: string;
26
26
  }