@inera/ids-react 9.1.2 → 9.2.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (353) hide show
  1. package/components/accordion/accordion-base.d.ts +4 -1
  2. package/components/accordion/accordion-base.js +33 -7
  3. package/components/accordion/accordion.d.ts +4 -1
  4. package/components/accordion/accordion.js +14 -11
  5. package/components/alert/alert-base.d.ts +3 -0
  6. package/components/alert/alert-base.js +4 -3
  7. package/components/alert/alert.d.ts +6 -1
  8. package/components/alert/alert.js +12 -9
  9. package/components/badge/badge.d.ts +1 -1
  10. package/components/badge/badge.js +6 -3
  11. package/components/breadcrumbs/breadcrumbs.d.ts +3 -0
  12. package/components/breadcrumbs/breadcrumbs.js +25 -4
  13. package/components/button/button-group.d.ts +3 -0
  14. package/components/button/button-group.js +1 -0
  15. package/components/button/button.js +22 -14
  16. package/components/card/card.d.ts +3 -0
  17. package/components/card/card.js +2 -1
  18. package/components/carousel/carousel-item.d.ts +3 -0
  19. package/components/carousel/carousel-item.js +1 -0
  20. package/components/date-label/date-label.d.ts +3 -0
  21. package/components/date-label/date-label.js +1 -0
  22. package/components/dialog/dialog-base.d.ts +0 -1
  23. package/components/dialog/dialog-base.js +3 -3
  24. package/components/dialog/dialog.d.ts +3 -0
  25. package/components/dialog/dialog.js +19 -19
  26. package/components/dropdown/dropdown-base.js +6 -3
  27. package/components/dropdown/dropdown-content-button.js +1 -1
  28. package/components/dropdown/dropdown-content-link.d.ts +3 -0
  29. package/components/dropdown/dropdown-content-link.js +1 -1
  30. package/components/dropdown/dropdown.d.ts +3 -0
  31. package/components/dropdown/dropdown.js +28 -31
  32. package/components/footer-1177/footer-1177.d.ts +3 -0
  33. package/components/footer-1177/footer-1177.js +1 -0
  34. package/components/footer-1177-admin/footer-1177-admin.d.ts +3 -0
  35. package/components/footer-1177-admin/footer-1177-admin.js +1 -0
  36. package/components/footer-1177-pro/footer-1177-pro.d.ts +3 -0
  37. package/components/footer-1177-pro/footer-1177-pro.js +1 -0
  38. package/components/footer-inera/footer-inera.d.ts +3 -0
  39. package/components/footer-inera/footer-inera.js +1 -0
  40. package/components/footer-inera-admin/footer-inera-admin.d.ts +3 -0
  41. package/components/footer-inera-admin/footer-inera-admin.js +2 -1
  42. package/components/footer-inera-general/footer-inera-general.d.ts +21 -0
  43. package/components/footer-inera-general/footer-inera-general.js +28 -0
  44. package/components/form/check-button/check-button.js +1 -0
  45. package/components/form/checkbox/checkbox-base.d.ts +7 -13
  46. package/components/form/checkbox/checkbox-base.js +10 -10
  47. package/components/form/checkbox/checkbox-group-base.d.ts +3 -0
  48. package/components/form/checkbox/checkbox-group-base.js +3 -2
  49. package/components/form/checkbox/checkbox-group.d.ts +3 -0
  50. package/components/form/checkbox/checkbox-group.js +1 -0
  51. package/components/form/checkbox/checkbox.d.ts +5 -15
  52. package/components/form/checkbox/checkbox.js +10 -2
  53. package/components/form/datepicker/datepicker.d.ts +7 -11
  54. package/components/form/datepicker/datepicker.js +17 -16
  55. package/components/form/error-message/error-message.d.ts +3 -0
  56. package/components/form/error-message/error-message.js +1 -0
  57. package/components/form/form-props/form-props.d.ts +18 -0
  58. package/components/form/input/input-base.d.ts +7 -16
  59. package/components/form/input/input-base.js +15 -16
  60. package/components/form/input/input.d.ts +3 -16
  61. package/components/form/input/input.js +3 -4
  62. package/components/form/radio/radio-base.d.ts +8 -13
  63. package/components/form/radio/radio-base.js +8 -10
  64. package/components/form/radio/radio-group-base.d.ts +3 -0
  65. package/components/form/radio/radio-group-base.js +1 -0
  66. package/components/form/radio/radio-group.d.ts +3 -0
  67. package/components/form/radio/radio-group.js +2 -2
  68. package/components/form/radio/radio.d.ts +2 -14
  69. package/components/form/radio/radio.js +11 -5
  70. package/components/form/radio-button/radio-button-group-base.d.ts +3 -0
  71. package/components/form/radio-button/radio-button-group-base.js +1 -0
  72. package/components/form/radio-button/radio-button-group.d.ts +3 -0
  73. package/components/form/radio-button/radio-button-group.js +4 -1
  74. package/components/form/radio-button/radio-button.js +1 -0
  75. package/components/form/range/range-base.d.ts +6 -8
  76. package/components/form/range/range-base.js +3 -2
  77. package/components/form/range/range.d.ts +2 -7
  78. package/components/form/range/range.js +13 -6
  79. package/components/form/select/select-base.d.ts +7 -15
  80. package/components/form/select/select-base.js +8 -8
  81. package/components/form/select/select.d.ts +2 -14
  82. package/components/form/select/select.js +12 -5
  83. package/components/form/select-multiple/select-multiple-base.d.ts +7 -14
  84. package/components/form/select-multiple/select-multiple-base.js +7 -5
  85. package/components/form/select-multiple/select-multiple.d.ts +4 -15
  86. package/components/form/select-multiple/select-multiple.js +3 -5
  87. package/components/form/spinner/spinner.d.ts +3 -0
  88. package/components/form/spinner/spinner.js +1 -0
  89. package/components/form/textarea/textarea-base.d.ts +7 -15
  90. package/components/form/textarea/textarea-base.js +7 -10
  91. package/components/form/textarea/textarea.d.ts +4 -14
  92. package/components/form/textarea/textarea.js +13 -6
  93. package/components/form/time/time-base.d.ts +6 -12
  94. package/components/form/time/time-base.js +7 -7
  95. package/components/form/time/time.d.ts +2 -14
  96. package/components/form/time/time.js +13 -6
  97. package/components/global-alert/global-alert-base.d.ts +3 -0
  98. package/components/global-alert/global-alert-base.js +3 -2
  99. package/components/global-alert/global-alert.d.ts +6 -1
  100. package/components/global-alert/global-alert.js +12 -9
  101. package/components/header-1177/header-1177-avatar-base.d.ts +3 -0
  102. package/components/header-1177/header-1177-avatar-base.js +1 -0
  103. package/components/header-1177/header-1177-avatar.d.ts +3 -0
  104. package/components/header-1177/header-1177-avatar.js +7 -15
  105. package/components/header-1177/header-1177-base.d.ts +3 -0
  106. package/components/header-1177/header-1177-base.js +1 -0
  107. package/components/header-1177/header-1177-item-base.d.ts +3 -0
  108. package/components/header-1177/header-1177-item-base.js +1 -0
  109. package/components/header-1177/header-1177-item.d.ts +3 -0
  110. package/components/header-1177/header-1177-item.js +1 -0
  111. package/components/header-1177/header-1177-menu-mobile-base.d.ts +3 -0
  112. package/components/header-1177/header-1177-menu-mobile-base.js +1 -0
  113. package/components/header-1177/header-1177-menu-mobile.d.ts +3 -0
  114. package/components/header-1177/header-1177-menu-mobile.js +7 -24
  115. package/components/header-1177/header-1177-nav-base.d.ts +3 -0
  116. package/components/header-1177/header-1177-nav-base.js +1 -0
  117. package/components/header-1177/header-1177-nav-item-base.d.ts +3 -0
  118. package/components/header-1177/header-1177-nav-item-base.js +1 -0
  119. package/components/header-1177/header-1177-nav-item-mobile-base.d.ts +3 -0
  120. package/components/header-1177/header-1177-nav-item-mobile-base.js +1 -0
  121. package/components/header-1177/header-1177-nav-item-mobile.d.ts +3 -0
  122. package/components/header-1177/header-1177-nav-item-mobile.js +1 -0
  123. package/components/header-1177/header-1177-nav-item.d.ts +3 -0
  124. package/components/header-1177/header-1177-nav-item.js +6 -29
  125. package/components/header-1177/header-1177-nav.d.ts +3 -0
  126. package/components/header-1177/header-1177-nav.js +2 -1
  127. package/components/header-1177/header-1177-region-picker-base.d.ts +3 -0
  128. package/components/header-1177/header-1177-region-picker-base.js +1 -0
  129. package/components/header-1177/header-1177-region-picker-mobile-base.d.ts +3 -0
  130. package/components/header-1177/header-1177-region-picker-mobile-base.js +1 -0
  131. package/components/header-1177/header-1177-region-picker-mobile.d.ts +3 -0
  132. package/components/header-1177/header-1177-region-picker-mobile.js +1 -0
  133. package/components/header-1177/header-1177-region-picker.d.ts +3 -0
  134. package/components/header-1177/header-1177-region-picker.js +1 -0
  135. package/components/header-1177/header-1177.d.ts +3 -0
  136. package/components/header-1177/header-1177.js +1 -0
  137. package/components/header-1177-admin/header-1177-admin-avatar-base.d.ts +3 -0
  138. package/components/header-1177-admin/header-1177-admin-avatar-base.js +2 -1
  139. package/components/header-1177-admin/header-1177-admin-avatar-mobile-base.d.ts +3 -0
  140. package/components/header-1177-admin/header-1177-admin-avatar-mobile-base.js +2 -1
  141. package/components/header-1177-admin/header-1177-admin-avatar-mobile.d.ts +3 -0
  142. package/components/header-1177-admin/header-1177-admin-avatar-mobile.js +7 -7
  143. package/components/header-1177-admin/header-1177-admin-avatar.d.ts +3 -0
  144. package/components/header-1177-admin/header-1177-admin-avatar.js +7 -25
  145. package/components/header-1177-admin/header-1177-admin-base.d.ts +3 -0
  146. package/components/header-1177-admin/header-1177-admin-base.js +1 -0
  147. package/components/header-1177-admin/header-1177-admin-item-base.d.ts +3 -0
  148. package/components/header-1177-admin/header-1177-admin-item-base.js +1 -0
  149. package/components/header-1177-admin/header-1177-admin-item.d.ts +3 -0
  150. package/components/header-1177-admin/header-1177-admin-item.js +1 -0
  151. package/components/header-1177-admin/header-1177-admin-menu-mobile-base.d.ts +3 -0
  152. package/components/header-1177-admin/header-1177-admin-menu-mobile-base.js +1 -0
  153. package/components/header-1177-admin/header-1177-admin-menu-mobile.d.ts +3 -0
  154. package/components/header-1177-admin/header-1177-admin-menu-mobile.js +7 -26
  155. package/components/header-1177-admin/header-1177-admin-nav-base.d.ts +6 -1
  156. package/components/header-1177-admin/header-1177-admin-nav-base.js +5 -3
  157. package/components/header-1177-admin/header-1177-admin-nav-item-base.d.ts +3 -0
  158. package/components/header-1177-admin/header-1177-admin-nav-item-base.js +1 -0
  159. package/components/header-1177-admin/header-1177-admin-nav-item-mobile-base.d.ts +3 -0
  160. package/components/header-1177-admin/header-1177-admin-nav-item-mobile-base.js +1 -0
  161. package/components/header-1177-admin/header-1177-admin-nav-item-mobile.d.ts +3 -0
  162. package/components/header-1177-admin/header-1177-admin-nav-item-mobile.js +1 -0
  163. package/components/header-1177-admin/header-1177-admin-nav-item.d.ts +3 -0
  164. package/components/header-1177-admin/header-1177-admin-nav-item.js +6 -29
  165. package/components/header-1177-admin/header-1177-admin-nav.d.ts +6 -1
  166. package/components/header-1177-admin/header-1177-admin-nav.js +3 -2
  167. package/components/header-1177-admin/header-1177-admin.d.ts +3 -0
  168. package/components/header-1177-admin/header-1177-admin.js +1 -0
  169. package/components/header-1177-pro/header-1177-pro-avatar-base.d.ts +3 -0
  170. package/components/header-1177-pro/header-1177-pro-avatar-base.js +1 -0
  171. package/components/header-1177-pro/header-1177-pro-avatar-mobile-base.d.ts +3 -0
  172. package/components/header-1177-pro/header-1177-pro-avatar-mobile-base.js +1 -0
  173. package/components/header-1177-pro/header-1177-pro-avatar-mobile.d.ts +3 -0
  174. package/components/header-1177-pro/header-1177-pro-avatar-mobile.js +6 -5
  175. package/components/header-1177-pro/header-1177-pro-avatar.d.ts +3 -0
  176. package/components/header-1177-pro/header-1177-pro-avatar.js +7 -26
  177. package/components/header-1177-pro/header-1177-pro-base.d.ts +3 -0
  178. package/components/header-1177-pro/header-1177-pro-base.js +1 -0
  179. package/components/header-1177-pro/header-1177-pro-item-base.d.ts +3 -0
  180. package/components/header-1177-pro/header-1177-pro-item-base.js +1 -0
  181. package/components/header-1177-pro/header-1177-pro-item.d.ts +3 -0
  182. package/components/header-1177-pro/header-1177-pro-item.js +1 -0
  183. package/components/header-1177-pro/header-1177-pro-menu-mobile-base.d.ts +3 -0
  184. package/components/header-1177-pro/header-1177-pro-menu-mobile-base.js +1 -0
  185. package/components/header-1177-pro/header-1177-pro-menu-mobile.d.ts +3 -0
  186. package/components/header-1177-pro/header-1177-pro-menu-mobile.js +7 -26
  187. package/components/header-1177-pro/header-1177-pro-nav-base.d.ts +6 -1
  188. package/components/header-1177-pro/header-1177-pro-nav-base.js +5 -3
  189. package/components/header-1177-pro/header-1177-pro-nav-item-base.d.ts +3 -0
  190. package/components/header-1177-pro/header-1177-pro-nav-item-base.js +1 -0
  191. package/components/header-1177-pro/header-1177-pro-nav-item-mobile-base.d.ts +3 -0
  192. package/components/header-1177-pro/header-1177-pro-nav-item-mobile-base.js +1 -0
  193. package/components/header-1177-pro/header-1177-pro-nav-item-mobile.d.ts +3 -0
  194. package/components/header-1177-pro/header-1177-pro-nav-item-mobile.js +1 -0
  195. package/components/header-1177-pro/header-1177-pro-nav-item.d.ts +3 -0
  196. package/components/header-1177-pro/header-1177-pro-nav-item.js +6 -29
  197. package/components/header-1177-pro/header-1177-pro-nav.d.ts +6 -1
  198. package/components/header-1177-pro/header-1177-pro-nav.js +3 -2
  199. package/components/header-1177-pro/header-1177-pro-region-picker-base.d.ts +3 -0
  200. package/components/header-1177-pro/header-1177-pro-region-picker-base.js +2 -1
  201. package/components/header-1177-pro/header-1177-pro-region-picker-mobile-base.d.ts +5 -1
  202. package/components/header-1177-pro/header-1177-pro-region-picker-mobile-base.js +4 -2
  203. package/components/header-1177-pro/header-1177-pro-region-picker-mobile.d.ts +3 -0
  204. package/components/header-1177-pro/header-1177-pro-region-picker-mobile.js +2 -1
  205. package/components/header-1177-pro/header-1177-pro-region-picker.d.ts +3 -0
  206. package/components/header-1177-pro/header-1177-pro-region-picker.js +1 -0
  207. package/components/header-1177-pro/header-1177-pro.d.ts +3 -0
  208. package/components/header-1177-pro/header-1177-pro.js +1 -0
  209. package/components/header-inera/header-inera-base.d.ts +3 -0
  210. package/components/header-inera/header-inera-base.js +1 -0
  211. package/components/header-inera/header-inera-item-base.d.ts +3 -0
  212. package/components/header-inera/header-inera-item-base.js +1 -0
  213. package/components/header-inera/header-inera-item.d.ts +3 -0
  214. package/components/header-inera/header-inera-item.js +1 -0
  215. package/components/header-inera/header-inera-menu-mobile-base.d.ts +3 -0
  216. package/components/header-inera/header-inera-menu-mobile-base.js +1 -0
  217. package/components/header-inera/header-inera-menu-mobile.d.ts +3 -0
  218. package/components/header-inera/header-inera-menu-mobile.js +7 -26
  219. package/components/header-inera/header-inera-nav-base.d.ts +3 -0
  220. package/components/header-inera/header-inera-nav-base.js +1 -0
  221. package/components/header-inera/header-inera-nav-item-base.d.ts +3 -0
  222. package/components/header-inera/header-inera-nav-item-base.js +1 -0
  223. package/components/header-inera/header-inera-nav-item.d.ts +3 -0
  224. package/components/header-inera/header-inera-nav-item.js +6 -29
  225. package/components/header-inera/header-inera-nav.d.ts +3 -0
  226. package/components/header-inera/header-inera-nav.js +1 -0
  227. package/components/header-inera/header-inera.d.ts +3 -0
  228. package/components/header-inera/header-inera.js +1 -0
  229. package/components/header-inera-admin/header-inera-admin-avatar-base.d.ts +3 -0
  230. package/components/header-inera-admin/header-inera-admin-avatar-base.js +2 -1
  231. package/components/header-inera-admin/header-inera-admin-avatar-mobile-base.d.ts +3 -0
  232. package/components/header-inera-admin/header-inera-admin-avatar-mobile-base.js +2 -1
  233. package/components/header-inera-admin/header-inera-admin-avatar-mobile.d.ts +3 -0
  234. package/components/header-inera-admin/header-inera-admin-avatar-mobile.js +6 -5
  235. package/components/header-inera-admin/header-inera-admin-avatar.d.ts +3 -0
  236. package/components/header-inera-admin/header-inera-admin-avatar.js +7 -25
  237. package/components/header-inera-admin/header-inera-admin-base.d.ts +3 -0
  238. package/components/header-inera-admin/header-inera-admin-base.js +1 -0
  239. package/components/header-inera-admin/header-inera-admin-item-base.d.ts +3 -0
  240. package/components/header-inera-admin/header-inera-admin-item-base.js +1 -0
  241. package/components/header-inera-admin/header-inera-admin-item.d.ts +3 -0
  242. package/components/header-inera-admin/header-inera-admin-item.js +1 -0
  243. package/components/header-inera-admin/header-inera-admin-menu-mobile-base.d.ts +3 -0
  244. package/components/header-inera-admin/header-inera-admin-menu-mobile-base.js +2 -1
  245. package/components/header-inera-admin/header-inera-admin-menu-mobile.d.ts +3 -0
  246. package/components/header-inera-admin/header-inera-admin-menu-mobile.js +7 -26
  247. package/components/header-inera-admin/header-inera-admin-nav-base.d.ts +6 -1
  248. package/components/header-inera-admin/header-inera-admin-nav-base.js +5 -3
  249. package/components/header-inera-admin/header-inera-admin-nav-item-base.d.ts +3 -0
  250. package/components/header-inera-admin/header-inera-admin-nav-item-base.js +1 -0
  251. package/components/header-inera-admin/header-inera-admin-nav-item-mobile-base.d.ts +3 -0
  252. package/components/header-inera-admin/header-inera-admin-nav-item-mobile-base.js +1 -0
  253. package/components/header-inera-admin/header-inera-admin-nav-item-mobile.d.ts +3 -0
  254. package/components/header-inera-admin/header-inera-admin-nav-item-mobile.js +1 -0
  255. package/components/header-inera-admin/header-inera-admin-nav-item.d.ts +3 -0
  256. package/components/header-inera-admin/header-inera-admin-nav-item.js +6 -29
  257. package/components/header-inera-admin/header-inera-admin-nav.d.ts +6 -1
  258. package/components/header-inera-admin/header-inera-admin-nav.js +3 -2
  259. package/components/header-inera-admin/header-inera-admin.d.ts +3 -0
  260. package/components/header-inera-admin/header-inera-admin.js +1 -0
  261. package/components/header-inera-general/header-inera-general-base.d.ts +16 -0
  262. package/components/header-inera-general/header-inera-general-base.js +12 -0
  263. package/components/header-inera-general/header-inera-general-item-base.d.ts +11 -0
  264. package/components/header-inera-general/header-inera-general-item-base.js +13 -0
  265. package/components/header-inera-general/header-inera-general-item.d.ts +10 -0
  266. package/components/header-inera-general/header-inera-general-item.js +12 -0
  267. package/components/header-inera-general/header-inera-general-menu-mobile-base.d.ts +15 -0
  268. package/components/header-inera-general/header-inera-general-menu-mobile-base.js +19 -0
  269. package/components/header-inera-general/header-inera-general-menu-mobile.d.ts +13 -0
  270. package/components/header-inera-general/header-inera-general-menu-mobile.js +31 -0
  271. package/components/header-inera-general/header-inera-general-nav-base.d.ts +10 -0
  272. package/components/header-inera-general/header-inera-general-nav-base.js +11 -0
  273. package/components/header-inera-general/header-inera-general-nav-item-base.d.ts +21 -0
  274. package/components/header-inera-general/header-inera-general-nav-item-base.js +27 -0
  275. package/components/header-inera-general/header-inera-general-nav-item.d.ts +18 -0
  276. package/components/header-inera-general/header-inera-general-nav-item.js +27 -0
  277. package/components/header-inera-general/header-inera-general-nav.d.ts +8 -0
  278. package/components/header-inera-general/header-inera-general-nav.js +12 -0
  279. package/components/header-inera-general/header-inera-general.d.ts +15 -0
  280. package/components/header-inera-general/header-inera-general.js +11 -0
  281. package/components/header-patient/header-patient.d.ts +3 -0
  282. package/components/header-patient/header-patient.js +1 -0
  283. package/components/link/action-link.d.ts +3 -0
  284. package/components/link/action-link.js +2 -1
  285. package/components/link/box-link.d.ts +3 -0
  286. package/components/link/box-link.js +1 -0
  287. package/components/link/link.d.ts +3 -0
  288. package/components/link/link.js +1 -0
  289. package/components/list-pagination/list-pagination-links.d.ts +3 -0
  290. package/components/list-pagination/list-pagination-links.js +1 -0
  291. package/components/list-pagination/list-pagination.d.ts +3 -0
  292. package/components/list-pagination/list-pagination.js +4 -3
  293. package/components/mobile-menu/mobile-item-base.d.ts +3 -0
  294. package/components/mobile-menu/mobile-item-base.js +1 -0
  295. package/components/mobile-menu/mobile-item.d.ts +3 -0
  296. package/components/mobile-menu/mobile-item.js +1 -0
  297. package/components/mobile-menu/mobile-menu.d.ts +3 -0
  298. package/components/mobile-menu/mobile-menu.js +1 -0
  299. package/components/navigation-content/navigation-content.d.ts +3 -0
  300. package/components/navigation-content/navigation-content.js +1 -0
  301. package/components/navigation-local/navigation-local.d.ts +3 -0
  302. package/components/navigation-local/navigation-local.js +1 -0
  303. package/components/notification-badge/notification-badge.d.ts +2 -4
  304. package/components/notification-badge/notification-badge.js +6 -3
  305. package/components/popover/popover-base.d.ts +4 -1
  306. package/components/popover/popover-base.js +1 -0
  307. package/components/popover/popover-content.d.ts +7 -1
  308. package/components/popover/popover-content.js +6 -10
  309. package/components/popover/popover.d.ts +3 -0
  310. package/components/popover/popover.js +141 -52
  311. package/components/progressbar/progressbar.d.ts +4 -4
  312. package/components/progressbar/progressbar.js +5 -3
  313. package/components/puff-list/puff-list-item-date.d.ts +3 -0
  314. package/components/puff-list/puff-list-item-date.js +1 -0
  315. package/components/puff-list/puff-list-item-info.d.ts +3 -0
  316. package/components/puff-list/puff-list-item-info.js +1 -0
  317. package/components/puff-list/puff-list-item.d.ts +1 -1
  318. package/components/puff-list/puff-list-item.js +11 -13
  319. package/components/puff-list/puff-list.d.ts +4 -1
  320. package/components/puff-list/puff-list.js +2 -1
  321. package/components/region-icon/region-icon.d.ts +3 -0
  322. package/components/region-icon/region-icon.js +1 -0
  323. package/components/side-menu/side-menu.d.ts +3 -0
  324. package/components/side-menu/side-menu.js +1 -0
  325. package/components/side-panel/side-panel-base.d.ts +1 -0
  326. package/components/side-panel/side-panel-base.js +1 -1
  327. package/components/side-panel/side-panel-provider.d.ts +3 -0
  328. package/components/side-panel/side-panel-provider.js +1 -0
  329. package/components/side-panel/side-panel.d.ts +3 -0
  330. package/components/side-panel/side-panel.js +29 -7
  331. package/components/stepper/step-base.js +1 -1
  332. package/components/stepper/step.js +11 -4
  333. package/components/stepper/stepper.d.ts +3 -0
  334. package/components/stepper/stepper.js +1 -0
  335. package/components/tabs/tabs-base.d.ts +3 -0
  336. package/components/tabs/tabs-base.js +1 -0
  337. package/components/tabs/tabs.d.ts +3 -0
  338. package/components/tabs/tabs.js +1 -0
  339. package/components/tag/tag.d.ts +1 -1
  340. package/components/tag/tag.js +4 -3
  341. package/components/toolbar/toolbar.d.ts +5 -0
  342. package/components/toolbar/toolbar.js +11 -0
  343. package/components/tooltip/tooltip-base.d.ts +5 -1
  344. package/components/tooltip/tooltip-base.js +3 -2
  345. package/components/tooltip/tooltip.d.ts +3 -0
  346. package/components/tooltip/tooltip.js +26 -1
  347. package/components/utils/hooks/useClickOutside.d.ts +1 -9
  348. package/components/utils/hooks/useClickOutside.js +9 -16
  349. package/components/utils/hooks/useLinkClick.d.ts +2 -0
  350. package/components/utils/hooks/useLinkClick.js +22 -0
  351. package/index.d.ts +24 -0
  352. package/index.js +12 -0
  353. package/package.json +2 -2
@@ -1,25 +1,16 @@
1
- import React, { ReactNode, InputHTMLAttributes, CSSProperties } from "react";
2
- export interface IDSInputBaseProps extends InputHTMLAttributes<HTMLInputElement> {
3
- label: string;
4
- type?: string;
1
+ import React, { ReactNode, CSSProperties } from "react";
2
+ import { CommonFormPropsWithReadOnly } from "../form-props/form-props";
3
+ export interface IDSInputBaseProps extends React.InputHTMLAttributes<HTMLInputElement>, CommonFormPropsWithReadOnly {
5
4
  icon?: string;
6
- hint?: string | ReactNode;
7
5
  unit?: string;
8
6
  showSearchLabel?: boolean;
9
- errorMsg?: string;
10
- disabled?: boolean;
11
- invalid?: boolean;
12
- required?: boolean;
13
- focusAnchor?: boolean;
14
- light?: boolean;
15
- readOnly?: boolean;
16
- tooltip?: ReactNode;
17
7
  submitButton?: ReactNode;
18
- dataTestId?: string;
19
- id?: string;
20
8
  hintId?: string;
21
9
  errorMsgId?: string;
22
10
  inputRef?: React.Ref<HTMLInputElement>;
23
11
  style?: CSSProperties;
24
12
  }
25
- export declare function IDSInputBase({ label, type, icon, hint, unit, showSearchLabel, errorMsg, dataTestId, disabled, invalid, required, focusAnchor, light, readOnly, tooltip, submitButton, className, id, hintId, errorMsgId, inputRef, style, ...props }: IDSInputBaseProps): import("react/jsx-runtime").JSX.Element;
13
+ export declare function IDSInputBase({ label, type, icon, hint, unit, showSearchLabel, errorMsg, dataTestId, disabled, invalid, required, focusAnchor, light, readOnly, tooltip, submitButton, className, id, hintId, errorMsgId, inputRef, ...props }: IDSInputBaseProps): import("react/jsx-runtime").JSX.Element;
14
+ export declare namespace IDSInputBase {
15
+ var displayName: string;
16
+ }
@@ -3,23 +3,21 @@ import { useId } from 'react';
3
3
  import clsx from 'clsx';
4
4
  import { IDSErrorMessage } from '../error-message/error-message.js';
5
5
 
6
- function IDSInputBase({ label, type = "text", icon, hint, unit, showSearchLabel = false, errorMsg, dataTestId, disabled = false, invalid = false, required = false, focusAnchor = false, light = false, readOnly = false, tooltip, submitButton, className, id, hintId, errorMsgId, inputRef, style, ...props }) {
6
+ function IDSInputBase({ label, type = "text", icon, hint, unit, showSearchLabel = false, errorMsg, dataTestId, disabled = false, invalid = false, required = false, focusAnchor = false, light = false, readOnly = false, tooltip, submitButton, className, id, hintId, errorMsgId, inputRef, ...props }) {
7
7
  const reactId = useId();
8
- const inputId = !!id ? id : `input-base-${reactId}`;
9
- const baseHintId = !!hintId ? hintId : `input-base-hint-${reactId}`;
10
- const baseErrorMsgId = !!errorMsgId ? errorMsgId : `input-base-error-${reactId}`;
8
+ const inputId = id ?? `input-base-${reactId}`;
9
+ const baseHintId = hintId ?? `input-base-hint-${reactId}`;
10
+ const baseErrorMsgId = errorMsgId ?? `input-base-error-${reactId}`;
11
11
  const showErrorMsg = invalid && !!errorMsg;
12
- const ariaHandler = showErrorMsg
13
- ? {
14
- "aria-describedby": baseErrorMsgId
15
- }
16
- : !!hint
17
- ? {
18
- "aria-describedby": baseHintId
19
- }
20
- : {};
21
- ariaHandler["aria-label"] = type === "search" && !showSearchLabel ? label : "";
22
- return (jsxs(Fragment, { children: [jsxs("div", { className: clsx("ids-input", { "ids-input--search": type === "search", "ids-input--icon": !!icon }, className), "data-testid": dataTestId, style: style, children: [jsxs("div", { className: "ids-input__wrapper", children: [label && (jsxs("div", { className: clsx("ids-label-wrapper", "ids-label-wrapper--margin-bottom", {
12
+ const ariaHandler = {};
13
+ const describedByIds = [showErrorMsg && baseErrorMsgId, hint && baseHintId].filter(Boolean);
14
+ if (describedByIds.length) {
15
+ ariaHandler["aria-describedby"] = describedByIds.join(" ");
16
+ }
17
+ if (type === "search" && !showSearchLabel && label) {
18
+ ariaHandler["aria-label"] = label;
19
+ }
20
+ return (jsxs(Fragment, { children: [jsxs("div", { className: clsx("ids-input", { "ids-input--search": type === "search", "ids-input--icon": !!icon }, className), "data-testid": dataTestId, children: [jsxs("div", { className: "ids-input__wrapper", children: [label && (jsxs("div", { className: clsx("ids-label-wrapper", "ids-label-wrapper--margin-bottom", {
23
21
  "ids-hidden": type === "search" && !showSearchLabel
24
22
  }), children: [jsx("label", { className: clsx("ids-label", {
25
23
  "ids-label--disabled": disabled || readOnly
@@ -27,7 +25,8 @@ function IDSInputBase({ label, type = "text", icon, hint, unit, showSearchLabel
27
25
  "ids-input--light": light,
28
26
  "ids-input--invalid": invalid,
29
27
  "ids-focus-anchor": focusAnchor
30
- }), "aria-invalid": invalid, required: required, "aria-required": required, disabled: disabled, "aria-disabled": disabled, ...ariaHandler, ...props }), icon && type !== "search" && jsx("span", { className: `ids-input__icon ids-icon-${icon}` })] }), jsx("div", { className: "ids-input__unit", "aria-hidden": "true", children: unit })] }), hint && (jsx("div", { className: "ids-input__hint", id: baseHintId, children: hint }))] }), !!submitButton && submitButton] }), showErrorMsg && (jsx(IDSErrorMessage, { id: baseErrorMsgId, show: true, children: errorMsg }))] }));
28
+ }), "aria-invalid": invalid, required: required, disabled: disabled, ...ariaHandler, ...props }), icon && type !== "search" && jsx("span", { className: `ids-input__icon ids-icon-${icon}` })] }), unit && (jsx("div", { className: "ids-input__unit", "aria-hidden": "true", children: unit }))] }), hint && (jsx("div", { className: "ids-input__hint", id: baseHintId, children: hint }))] }), !!submitButton && submitButton] }), showErrorMsg && (jsx(IDSErrorMessage, { id: baseErrorMsgId, show: true, children: errorMsg }))] }));
31
29
  }
30
+ IDSInputBase.displayName = "IDSInputBase";
32
31
 
33
32
  export { IDSInputBase };
@@ -1,23 +1,10 @@
1
- import { ReactNode, InputHTMLAttributes } from "react";
2
- interface IDSInputProps extends InputHTMLAttributes<HTMLInputElement> {
3
- label: string;
4
- type?: string;
1
+ import { ReactNode } from "react";
2
+ import { CommonFormPropsWithReadOnly } from "../form-props/form-props";
3
+ interface IDSInputProps extends React.InputHTMLAttributes<HTMLInputElement>, CommonFormPropsWithReadOnly {
5
4
  icon?: string;
6
- hint?: string | ReactNode;
7
5
  unit?: string;
8
6
  showSearchLabel?: boolean;
9
- errorMsg?: string;
10
- disabled?: boolean;
11
- invalid?: boolean;
12
- required?: boolean;
13
- noValidation?: boolean;
14
- focusAnchor?: boolean;
15
- light?: boolean;
16
- readOnly?: boolean;
17
- tooltip?: ReactNode;
18
7
  submitButton?: ReactNode;
19
- dataTestId?: string;
20
- validationOnBlur?: boolean;
21
8
  }
22
9
  export declare const IDSInput: import("react").ForwardRefExoticComponent<IDSInputProps & import("react").RefAttributes<HTMLInputElement>>;
23
10
  export {};
@@ -6,6 +6,8 @@ import { IDSInputBase } from './input-base.js';
6
6
 
7
7
  const IDSInput = forwardRef(({ invalid = false, noValidation = false, style, validationOnBlur = false, ...props }, ref) => {
8
8
  const inputRef = useRef(null);
9
+ const hasValidValue = useInputValidity(inputRef, validationOnBlur);
10
+ const computedInvalid = (invalid || !hasValidValue) && !noValidation;
9
11
  // Merge forwarded + local ref
10
12
  const mergedRef = (node) => {
11
13
  inputRef.current = node;
@@ -14,10 +16,7 @@ const IDSInput = forwardRef(({ invalid = false, noValidation = false, style, val
14
16
  else if (ref)
15
17
  ref.current = node;
16
18
  };
17
- // Validation
18
- const hasValidValue = useInputValidity(inputRef, validationOnBlur);
19
- const isInvalid = (invalid || !hasValidValue) && !noValidation;
20
- return jsx(IDSInputBase, { ...props, style: style, invalid: isInvalid, inputRef: mergedRef });
19
+ return jsx(IDSInputBase, { ...props, style: style, invalid: computedInvalid, inputRef: mergedRef });
21
20
  });
22
21
  IDSInput.displayName = "IDSInput";
23
22
 
@@ -1,16 +1,11 @@
1
- import React, { ReactNode, InputHTMLAttributes } from "react";
2
- export interface IDSRadioBaseProps extends InputHTMLAttributes<HTMLInputElement> {
3
- id?: string;
4
- name?: string;
5
- light?: boolean;
6
- compact?: boolean;
7
- disabled?: boolean;
8
- invalid?: boolean;
9
- focusAnchor?: boolean;
10
- tooltip?: ReactNode;
11
- dataTestId?: string;
12
- children?: ReactNode;
1
+ import React from "react";
2
+ import { CommonFormPropsWithReadOnly } from "../form-props/form-props";
3
+ interface IDSRadioBaseProps extends React.InputHTMLAttributes<HTMLInputElement>, CommonFormPropsWithReadOnly {
13
4
  errorMsgId?: string;
14
5
  inputRef?: React.Ref<HTMLInputElement>;
15
6
  }
16
- export declare function IDSRadioBase({ id, name, light, compact, disabled, focusAnchor, tooltip, dataTestId, children, className, inputRef, invalid, errorMsgId, ...props }: IDSRadioBaseProps): import("react/jsx-runtime").JSX.Element;
7
+ export declare function IDSRadioBase({ id, name, light, disabled, focusAnchor, tooltip, dataTestId, children, className, inputRef, invalid, errorMsgId, ...props }: IDSRadioBaseProps): import("react/jsx-runtime").JSX.Element;
8
+ export declare namespace IDSRadioBase {
9
+ var displayName: string;
10
+ }
11
+ export {};
@@ -2,23 +2,21 @@ import { jsxs, jsx } from 'react/jsx-runtime';
2
2
  import { useId } from 'react';
3
3
  import clsx from 'clsx';
4
4
 
5
- function IDSRadioBase({ id, name, light, compact, disabled, focusAnchor, tooltip, dataTestId, children, className, inputRef, invalid, errorMsgId, ...props }) {
6
- const reactId = useId();
7
- const inputId = !!id ? id : `radio-base-${reactId}`;
5
+ function IDSRadioBase({ id, name, light, disabled, focusAnchor, tooltip, dataTestId, children, className, inputRef, invalid, errorMsgId, ...props }) {
6
+ const inputId = id ?? `radio-base-${useId()}`;
8
7
  const showErrorMsg = invalid && !!errorMsgId;
9
- // for radio the errorMsgId always comes from the group
10
- const ariaHandler = showErrorMsg
11
- ? {
12
- "aria-describedby": errorMsgId
13
- }
14
- : {};
8
+ const ariaHandler = {};
9
+ if (showErrorMsg) {
10
+ ariaHandler["aria-describedby"] = errorMsgId;
11
+ }
15
12
  return (jsxs("div", { className: clsx("ids-radio", className), "data-testid": dataTestId, children: [jsx("input", { id: inputId, ref: inputRef, type: "radio", className: clsx("ids-radio__input", {
16
13
  "ids-input--light": light,
17
14
  "ids-focus-anchor": focusAnchor
18
- }), name: name, disabled: disabled, "aria-disabled": disabled, "aria-invalid": invalid, ...ariaHandler, ...props }), !!children && (jsxs("div", { className: "ids-label-wrapper", children: [jsx("label", { htmlFor: inputId, className: clsx("ids-radio__label ids-label", {
15
+ }), name: name, disabled: disabled, "aria-invalid": invalid, ...ariaHandler, ...props }), !!children && (jsxs("div", { className: "ids-label-wrapper", children: [jsx("label", { htmlFor: inputId, className: clsx("ids-radio__label ids-label", {
19
16
  "ids-label--clickable": !disabled,
20
17
  "ids-label--disabled": disabled
21
18
  }), children: children }), tooltip && jsx("span", { className: "ids-label__tooltip", children: tooltip })] }))] }));
22
19
  }
20
+ IDSRadioBase.displayName = "IDSRadioBase";
23
21
 
24
22
  export { IDSRadioBase };
@@ -11,4 +11,7 @@ interface IDSRadioGroupBaseProps extends FieldsetHTMLAttributes<HTMLFieldSetElem
11
11
  groupRef?: React.Ref<HTMLFieldSetElement>;
12
12
  }
13
13
  export declare function IDSRadioGroupBase({ legend, hideLegend, errorMsg, errorMsgId, compact, required, tooltip, className, children, invalid, groupRef, ...props }: IDSRadioGroupBaseProps): import("react/jsx-runtime").JSX.Element;
14
+ export declare namespace IDSRadioGroupBase {
15
+ var displayName: string;
16
+ }
14
17
  export {};
@@ -8,5 +8,6 @@ function IDSRadioGroupBase({ legend, hideLegend, errorMsg, errorMsgId, compact =
8
8
  "ids-label-wrapper--sr-only": hideLegend
9
9
  }, className), children: jsxs("legend", { children: [legend, tooltip && jsx("span", { className: "ids-legend__tooltip", children: tooltip })] }) })), children, showErrorMsg && (jsx(IDSErrorMessage, { id: errorMsgId, show: true, style: { marginTop: compact ? "0.75rem" : "auto" }, children: errorMsg }))] }));
10
10
  }
11
+ IDSRadioGroupBase.displayName = "IDSRadioGroupBase";
11
12
 
12
13
  export { IDSRadioGroupBase };
@@ -12,4 +12,7 @@ interface IDSRadioGroupProps extends FieldsetHTMLAttributes<HTMLFieldSetElement>
12
12
  onRadioChange?: (e: ChangeEvent<HTMLInputElement>) => void;
13
13
  }
14
14
  export declare function IDSRadioGroup({ name, required, noValidation, invalid, errorMsg, children, onRadioChange, ...props }: IDSRadioGroupProps): import("react/jsx-runtime").JSX.Element;
15
+ export declare namespace IDSRadioGroup {
16
+ var displayName: string;
17
+ }
15
18
  export {};
@@ -19,7 +19,6 @@ function IDSRadioGroup({ name, required, noValidation, invalid, errorMsg, childr
19
19
  const { id, ...rest } = child.props;
20
20
  const cloneProps = {
21
21
  ...rest,
22
- key: child.key,
23
22
  id: child.props.id,
24
23
  name: groupName,
25
24
  required: required && !noValidation,
@@ -28,11 +27,12 @@ function IDSRadioGroup({ name, required, noValidation, invalid, errorMsg, childr
28
27
  groupInvalid: groupInvalid,
29
28
  onChange: onRadioChange
30
29
  };
31
- return React.cloneElement(child, cloneProps);
30
+ return React.cloneElement(child, cloneProps, undefined);
32
31
  }
33
32
  return child;
34
33
  });
35
34
  return (jsx(IDSRadioGroupBase, { ...props, groupRef: groupRef, required: required, invalid: groupInvalid || invalid, errorMsg: !noValidation && errorMsg, errorMsgId: errorMsgId, children: clonedChildren }));
36
35
  }
36
+ IDSRadioGroup.displayName = "IDSRadioGroup";
37
37
 
38
38
  export { IDSRadioGroup };
@@ -1,18 +1,6 @@
1
- import { ReactNode, InputHTMLAttributes } from "react";
2
- export interface IDSRadioProps extends InputHTMLAttributes<HTMLInputElement> {
3
- id?: string;
4
- key?: string;
5
- name?: string;
6
- light?: boolean;
7
- compact?: boolean;
8
- disabled?: boolean;
9
- invalid?: boolean;
1
+ import { CommonFormPropsWithReadOnly } from "../form-props/form-props";
2
+ export interface IDSRadioProps extends React.InputHTMLAttributes<HTMLInputElement>, CommonFormPropsWithReadOnly {
10
3
  groupInvalid?: boolean;
11
- focusAnchor?: boolean;
12
- tooltip?: ReactNode;
13
- dataTestId?: string;
14
- children?: ReactNode;
15
- noValidation?: boolean;
16
4
  groupErrorMsgId?: string;
17
5
  }
18
6
  export declare const IDSRadio: import("react").ForwardRefExoticComponent<IDSRadioProps & import("react").RefAttributes<HTMLInputElement>>;
@@ -1,14 +1,20 @@
1
1
  "use client";
2
2
  import { jsx } from 'react/jsx-runtime';
3
- import { forwardRef, useRef, useImperativeHandle } from 'react';
3
+ import { forwardRef, useRef } from 'react';
4
4
  import { IDSRadioBase } from './radio-base.js';
5
5
 
6
6
  const IDSRadio = forwardRef(({ groupErrorMsgId, invalid = false, groupInvalid = false, noValidation = false, children, ...props }, ref) => {
7
7
  const radioRef = useRef(null);
8
- const isInvalid = invalid || groupInvalid;
9
- // Expose ref to user
10
- useImperativeHandle(ref, () => radioRef.current);
11
- return (jsx(IDSRadioBase, { ...props, inputRef: radioRef, errorMsgId: groupErrorMsgId, invalid: isInvalid, children: children }));
8
+ const computedInvalid = invalid || groupInvalid;
9
+ // Merge forwarded + local ref
10
+ const mergedRef = (node) => {
11
+ radioRef.current = node;
12
+ if (typeof ref === "function")
13
+ ref(node);
14
+ else if (ref)
15
+ ref.current = node;
16
+ };
17
+ return (jsx(IDSRadioBase, { ...props, inputRef: mergedRef, errorMsgId: groupErrorMsgId, invalid: computedInvalid, children: children }));
12
18
  });
13
19
  IDSRadio.displayName = "IDSRadio";
14
20
 
@@ -6,3 +6,6 @@ export interface IDSRadioButtonGroupBaseProps extends InputHTMLAttributes<HTMLFi
6
6
  groupRef?: React.Ref<HTMLFieldSetElement>;
7
7
  }
8
8
  export declare function IDSRadioButtonGroupBase({ legend, groupRef, tooltip, children, className, ...props }: IDSRadioButtonGroupBaseProps): import("react/jsx-runtime").JSX.Element;
9
+ export declare namespace IDSRadioButtonGroupBase {
10
+ var displayName: string;
11
+ }
@@ -4,5 +4,6 @@ import clsx from 'clsx';
4
4
  function IDSRadioButtonGroupBase({ legend, groupRef, tooltip, children, className, ...props }) {
5
5
  return (jsxs("fieldset", { ref: groupRef, className: clsx("ids-form-group__fieldset", "ids-form-group__fieldset--compact", className), ...props, children: [legend ? (jsx("div", { className: "ids-label-wrapper", children: jsxs("legend", { children: [legend, tooltip && jsx("span", { className: "ids-legend__tooltip", children: tooltip })] }) })) : null, children] }));
6
6
  }
7
+ IDSRadioButtonGroupBase.displayName = "IDSRadioButtonGroupBase";
7
8
 
8
9
  export { IDSRadioButtonGroupBase };
@@ -7,4 +7,7 @@ interface IDSRadioButtonGroupProps extends InputHTMLAttributes<HTMLFieldSetEleme
7
7
  onRadioChange?: (e: ChangeEvent<HTMLInputElement>) => void;
8
8
  }
9
9
  export declare function IDSRadioButtonGroup({ name, legend, tooltip, children, onRadioChange, className, ...props }: IDSRadioButtonGroupProps): import("react/jsx-runtime").JSX.Element;
10
+ export declare namespace IDSRadioButtonGroup {
11
+ var displayName: string;
12
+ }
10
13
  export {};
@@ -9,7 +9,7 @@ function IDSRadioButtonGroup({ name, legend, tooltip, children, onRadioChange, c
9
9
  if (!React.isValidElement(child))
10
10
  return child;
11
11
  if (child.type === IDSRadioButton) {
12
- const { id, icon, ...rest } = child.props;
12
+ const { id, icon, defaultValue, ...rest } = child.props;
13
13
  const cloneProps = {
14
14
  ...rest,
15
15
  icon,
@@ -18,11 +18,14 @@ function IDSRadioButtonGroup({ name, legend, tooltip, children, onRadioChange, c
18
18
  };
19
19
  if (id)
20
20
  cloneProps.id = id;
21
+ if (defaultValue)
22
+ cloneProps.defaultValue = defaultValue;
21
23
  return React.cloneElement(child, cloneProps);
22
24
  }
23
25
  return child;
24
26
  });
25
27
  return (jsx(IDSRadioButtonGroupBase, { legend: legend, tooltip: tooltip, className: className, ...props, children: clonedChildren }));
26
28
  }
29
+ IDSRadioButtonGroup.displayName = "IDSRadioButtonGroup";
27
30
 
28
31
  export { IDSRadioButtonGroup };
@@ -8,5 +8,6 @@ const IDSRadioButton = forwardRef(function IDSRadioButton({ id, icon, name, data
8
8
  "ids-focus-anchor": focusAnchor
9
9
  }), ...props }), jsx("label", { htmlFor: inputId, className: `ids-radio-button__label ids-icon-${icon}`, children: children })] }));
10
10
  });
11
+ IDSRadioButton.displayName = "IDSRadioButton";
11
12
 
12
13
  export { IDSRadioButton };
@@ -1,13 +1,8 @@
1
- import { InputHTMLAttributes, ReactNode, Ref, CSSProperties } from "react";
2
- export interface IDSRangeBaseProps extends InputHTMLAttributes<HTMLInputElement> {
3
- id?: string;
4
- label?: string;
1
+ import { Ref, CSSProperties } from "react";
2
+ import { CommonFormProps } from "../form-props/form-props";
3
+ export interface IDSRangeBaseProps extends React.InputHTMLAttributes<HTMLInputElement>, CommonFormProps {
5
4
  showTicks?: boolean;
6
5
  ticks?: number[];
7
- disabled?: boolean;
8
- focusAnchor?: boolean;
9
- dataTestId?: string;
10
- tooltip?: ReactNode;
11
6
  valueNow: number;
12
7
  min?: number;
13
8
  max?: number;
@@ -16,3 +11,6 @@ export interface IDSRangeBaseProps extends InputHTMLAttributes<HTMLInputElement>
16
11
  style?: CSSProperties;
17
12
  }
18
13
  export declare function IDSRangeBase({ id, label, showTicks, ticks, disabled, focusAnchor, dataTestId, tooltip, valueNow, min, max, step, inputRef, style, className, ...props }: IDSRangeBaseProps): import("react/jsx-runtime").JSX.Element;
14
+ export declare namespace IDSRangeBase {
15
+ var displayName: string;
16
+ }
@@ -2,15 +2,16 @@ import { jsxs, jsx } from 'react/jsx-runtime';
2
2
  import { useId } from 'react';
3
3
  import clsx from 'clsx';
4
4
 
5
- function IDSRangeBase({ id, label, showTicks, ticks = [], disabled, focusAnchor, dataTestId, tooltip, valueNow, min, max, step = 1, inputRef, style, className, ...props }) {
5
+ function IDSRangeBase({ id, label, showTicks, ticks = [], disabled, focusAnchor, dataTestId, tooltip, valueNow, min = 0, max = 10, step = 1, inputRef, style, className, ...props }) {
6
6
  const inputId = !!id ? id : `range-${useId()}`;
7
7
  return (jsxs("div", { className: clsx("ids-range", className), "data-testid": dataTestId, style: style, children: [label && (jsxs("div", { className: "ids-label-wrapper ids-label-wrapper--margin-bottom", children: [jsx("label", { htmlFor: inputId, className: clsx("ids-label", { "ids-label--disabled": disabled }), children: label }), tooltip && jsx("span", { className: "ids-label__tooltip", children: tooltip })] })), jsx("input", { id: inputId, ref: inputRef, type: "range", className: clsx("ids-range__input", {
8
8
  "ids-focus-anchor": focusAnchor
9
9
  }), min: min, "aria-valuemin": min, max: max, "aria-valuemax": max, "aria-valuenow": valueNow, "aria-disabled": disabled, disabled: disabled, step: step, style: {
10
- backgroundSize: ((valueNow - min) * 100) / (max - min) + "% 100%"
10
+ backgroundSize: ((valueNow - (min ?? 0)) * 100) / ((max ?? 100) - (min ?? 0)) + "% 100%"
11
11
  }, ...props }), showTicks && (jsx("div", { className: clsx("ids-range-ticks", {
12
12
  "ids-range-ticks--disabled": disabled
13
13
  }), children: ticks.map(tick => (jsx("div", { className: "ids-range-tick", children: tick }, tick))) }))] }));
14
14
  }
15
+ IDSRangeBase.displayName = "IDSRangeBase";
15
16
 
16
17
  export { IDSRangeBase };
@@ -1,15 +1,10 @@
1
- import { ReactNode, InputHTMLAttributes } from "react";
2
- export interface IDSRangeProps extends InputHTMLAttributes<HTMLInputElement> {
3
- label?: string;
1
+ import { CommonFormProps } from "../form-props/form-props";
2
+ export interface IDSRangeProps extends React.InputHTMLAttributes<HTMLInputElement>, CommonFormProps {
4
3
  value?: number;
5
4
  showTicks?: boolean;
6
5
  interval?: number;
7
6
  min?: number;
8
7
  max?: number;
9
8
  step?: number;
10
- disabled?: boolean;
11
- focusAnchor?: boolean;
12
- dataTestId?: string;
13
- tooltip?: ReactNode;
14
9
  }
15
10
  export declare const IDSRange: import("react").ForwardRefExoticComponent<IDSRangeProps & import("react").RefAttributes<HTMLInputElement>>;
@@ -1,19 +1,26 @@
1
1
  "use client";
2
2
  import { jsx } from 'react/jsx-runtime';
3
- import { forwardRef, useState, useRef, useImperativeHandle, useEffect } from 'react';
3
+ import { forwardRef, useState, useRef, useEffect } from 'react';
4
4
  import { IDSRangeBase } from './range-base.js';
5
5
 
6
- const IDSRange = forwardRef(({ label, value = 0, showTicks = false, interval = 0, min = 0, max = 0, step = 0, onChange, style, ...props }, ref) => {
6
+ const IDSRange = forwardRef(({ label, value = 0, showTicks = false, interval = 0, min = 0, max = 0, step = 0, onChange, ...props }, ref) => {
7
7
  const [internalValue, setInternalValue] = useState(value ?? 0);
8
8
  const [ticks, setTicks] = useState([]);
9
- const inputRef = useRef(null);
10
- useImperativeHandle(ref, () => inputRef.current);
9
+ const rangeRef = useRef(null);
10
+ // Merge forwarded + local ref
11
+ const mergedRef = (node) => {
12
+ rangeRef.current = node;
13
+ if (typeof ref === "function")
14
+ ref(node);
15
+ else if (ref)
16
+ ref.current = node;
17
+ };
11
18
  useEffect(() => {
12
19
  if (step > 0 && showTicks) {
13
20
  const out = [];
14
21
  const inc = interval > 0 ? interval : step;
15
22
  for (let i = min; i <= max; i += inc) {
16
- out.push(Math.floor(i));
23
+ out.push(Math.min(Math.floor(i), max));
17
24
  }
18
25
  setTicks(out);
19
26
  }
@@ -29,7 +36,7 @@ const IDSRange = forwardRef(({ label, value = 0, showTicks = false, interval = 0
29
36
  setInternalValue(newValue);
30
37
  onChange?.(e);
31
38
  };
32
- return (jsx(IDSRangeBase, { ...props, label: label, inputRef: inputRef, ticks: ticks, showTicks: showTicks, min: min, max: max, step: step, value: internalValue, valueNow: internalValue, onChange: handleChange, style: style }));
39
+ return (jsx(IDSRangeBase, { ...props, label: label, inputRef: mergedRef, ticks: ticks, showTicks: showTicks, min: min, max: max, step: step, value: internalValue, valueNow: internalValue, onChange: handleChange }));
33
40
  });
34
41
  IDSRange.displayName = "IDSRange";
35
42
 
@@ -1,19 +1,11 @@
1
- import { CSSProperties, ReactNode, SelectHTMLAttributes } from "react";
2
- export interface IDSSelectBaseProps extends SelectHTMLAttributes<HTMLSelectElement> {
3
- id?: string;
4
- label?: string;
5
- errorMsgId?: string;
6
- errorMsg?: string;
7
- invalid?: boolean;
8
- disabled?: boolean;
9
- required?: boolean;
10
- light?: boolean;
11
- focusAnchor?: boolean;
12
- tooltip?: ReactNode;
13
- children?: ReactNode;
14
- className?: string;
15
- dataTestId?: string;
1
+ import { CSSProperties } from "react";
2
+ import { CommonFormProps } from "../form-props/form-props";
3
+ export interface IDSSelectBaseProps extends React.SelectHTMLAttributes<HTMLSelectElement>, CommonFormProps {
16
4
  selectRef?: React.Ref<HTMLSelectElement>;
5
+ errorMsgId?: string;
17
6
  style?: CSSProperties;
18
7
  }
19
8
  export declare function IDSSelectBase({ id, label, errorMsgId, errorMsg, invalid, disabled, required, light, focusAnchor, tooltip, children, className, selectRef, dataTestId, style, ...props }: IDSSelectBaseProps): import("react/jsx-runtime").JSX.Element;
9
+ export declare namespace IDSSelectBase {
10
+ var displayName: string;
11
+ }
@@ -5,20 +5,20 @@ import { IDSErrorMessage } from '../error-message/error-message.js';
5
5
 
6
6
  function IDSSelectBase({ id, label, errorMsgId, errorMsg, invalid, disabled, required, light, focusAnchor, tooltip, children, className, selectRef, dataTestId, style, ...props }) {
7
7
  const reactId = useId();
8
- const selectId = !!id ? id : `select-base-${reactId}`;
9
- const baseErrorMsgId = !!errorMsgId ? errorMsgId : `select-base-error-${reactId}`;
8
+ const selectId = id ?? `select-base-${reactId}`;
9
+ const baseErrorMsgId = errorMsgId ?? `select-base-error-${reactId}`;
10
10
  const showErrorMsg = invalid && !!errorMsg;
11
- const ariaHandler = showErrorMsg
12
- ? {
13
- "aria-describedby": baseErrorMsgId
14
- }
15
- : {};
11
+ const ariaHandler = {};
12
+ if (showErrorMsg) {
13
+ ariaHandler["aria-describedby"] = baseErrorMsgId;
14
+ }
16
15
  return (jsxs("div", { className: clsx("ids-select", className), "data-testid": dataTestId, style: style, children: [label && (jsxs("div", { className: "ids-label-wrapper ids-label-wrapper--margin-bottom", children: [jsx("label", { htmlFor: selectId, className: clsx("ids-label", {
17
16
  "ids-label--disabled": disabled
18
17
  }), children: label }), tooltip && jsx("span", { className: "ids-label__tooltip", children: tooltip })] })), jsx("div", { className: "ids-select__wrapper", children: jsx("select", { id: selectId, ref: selectRef, className: clsx("ids-select__select", {
19
18
  "ids-input--light": light,
20
19
  "ids-focus-anchor": focusAnchor
21
- }), "aria-invalid": invalid, "aria-required": required, "aria-disabled": disabled, disabled: disabled, required: required, ...ariaHandler, ...props, children: children }) }), showErrorMsg && (jsx(IDSErrorMessage, { id: baseErrorMsgId, show: true, children: errorMsg }))] }));
20
+ }), "aria-invalid": invalid, "aria-disabled": disabled, disabled: disabled, required: required, ...ariaHandler, ...props, children: children }) }), showErrorMsg && (jsx(IDSErrorMessage, { id: baseErrorMsgId, show: true, children: errorMsg }))] }));
22
21
  }
22
+ IDSSelectBase.displayName = "IDSSelectBase";
23
23
 
24
24
  export { IDSSelectBase };
@@ -1,16 +1,4 @@
1
- import { ReactNode, SelectHTMLAttributes } from "react";
2
- export interface IDSSelectProps extends SelectHTMLAttributes<HTMLSelectElement> {
3
- id?: string;
4
- label?: string;
5
- errorMsg?: string;
6
- invalid?: boolean;
7
- disabled?: boolean;
8
- required?: boolean;
9
- light?: boolean;
10
- focusAnchor?: boolean;
11
- tooltip?: ReactNode;
12
- dataTestId?: string;
13
- noValidation?: boolean;
14
- validationOnBlur?: boolean;
1
+ import { CommonFormProps } from "../form-props/form-props";
2
+ export interface IDSSelectProps extends React.SelectHTMLAttributes<HTMLSelectElement>, CommonFormProps {
15
3
  }
16
4
  export declare const IDSSelect: import("react").ForwardRefExoticComponent<IDSSelectProps & import("react").RefAttributes<HTMLSelectElement>>;
@@ -1,16 +1,23 @@
1
1
  "use client";
2
2
  import { jsx } from 'react/jsx-runtime';
3
- import { forwardRef, useId, useRef, useImperativeHandle } from 'react';
3
+ import { forwardRef, useId, useRef } from 'react';
4
4
  import { useInputValidity } from '../form-hooks/useInputValidity.js';
5
5
  import { IDSSelectBase } from './select-base.js';
6
6
 
7
- const IDSSelect = forwardRef(({ id, label, errorMsg, disabled, required, light, focusAnchor, tooltip, dataTestId, invalid = false, noValidation = false, validationOnBlur = false, children, style, ...props }, ref) => {
7
+ const IDSSelect = forwardRef(({ invalid = false, noValidation = false, validationOnBlur = false, children, ...props }, ref) => {
8
8
  const errorMsgId = `select-error-${useId()}`;
9
9
  const selectRef = useRef(null);
10
10
  const hasValidValue = useInputValidity(selectRef, validationOnBlur);
11
- const isInvalid = (invalid || !hasValidValue) && !noValidation;
12
- useImperativeHandle(ref, () => selectRef.current);
13
- return (jsx(IDSSelectBase, { ...props, style: style, id: id, label: label, errorMsg: errorMsg, disabled: disabled, required: required, light: light, focusAnchor: focusAnchor, tooltip: tooltip, dataTestId: dataTestId, selectRef: selectRef, errorMsgId: errorMsgId, invalid: isInvalid, children: children }));
11
+ const computedInvalid = (invalid || !hasValidValue) && !noValidation;
12
+ // Merge forwarded + local ref
13
+ const mergedRef = (node) => {
14
+ selectRef.current = node;
15
+ if (typeof ref === "function")
16
+ ref(node);
17
+ else if (ref)
18
+ ref.current = node;
19
+ };
20
+ return (jsx(IDSSelectBase, { ...props, selectRef: mergedRef, errorMsgId: errorMsgId, invalid: computedInvalid, children: children }));
14
21
  });
15
22
  IDSSelect.displayName = "IDSSelect";
16
23
 
@@ -1,27 +1,20 @@
1
- import { CSSProperties, ReactNode } from "react";
2
- export interface IDSSelectMultipleBaseProps {
3
- id?: string;
4
- labelId?: string;
5
- label?: string;
1
+ import { CSSProperties } from "react";
2
+ import { CommonFormPropsWithReadOnly } from "../form-props/form-props";
3
+ export interface IDSSelectMultipleBaseProps extends React.InputHTMLAttributes<HTMLInputElement>, CommonFormPropsWithReadOnly {
6
4
  expanded?: boolean;
7
5
  placeholder?: string;
8
6
  numbCheckedBoxes?: number;
9
7
  selectedLabel?: string;
10
8
  selectedLabelPlural?: string;
11
9
  maxHeight?: string;
12
- errorMsg?: string;
13
- invalid?: boolean;
14
- disabled?: boolean;
15
10
  ariaDisabled?: boolean;
16
- light?: boolean;
17
- focusAnchor?: boolean;
18
- tooltip?: ReactNode;
19
11
  buttonRef?: React.Ref<HTMLButtonElement>;
20
12
  componentRef?: React.Ref<HTMLDivElement>;
21
- children?: ReactNode;
22
- className?: string;
23
13
  onClick?: () => void;
24
14
  client?: boolean;
25
15
  style?: CSSProperties;
26
16
  }
27
- export declare function IDSSelectMultipleBase({ id, labelId, label, placeholder, numbCheckedBoxes, selectedLabel, selectedLabelPlural, expanded, maxHeight, tooltip, componentRef, buttonRef, invalid, disabled, ariaDisabled, light, focusAnchor, className, children, style, onClick, client }: IDSSelectMultipleBaseProps): import("react/jsx-runtime").JSX.Element;
17
+ export declare function IDSSelectMultipleBase({ id, label, placeholder, numbCheckedBoxes, selectedLabel, selectedLabelPlural, expanded, maxHeight, tooltip, componentRef, buttonRef, invalid, disabled, readOnly, ariaDisabled, light, focusAnchor, className, children, style, onClick, client }: IDSSelectMultipleBaseProps): import("react/jsx-runtime").JSX.Element;
18
+ export declare namespace IDSSelectMultipleBase {
19
+ var displayName: string;
20
+ }