@dnb/eufemia 9.27.0 → 9.30.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 (388) hide show
  1. package/CHANGELOG.md +53 -0
  2. package/cjs/components/Badge.d.ts +3 -0
  3. package/cjs/components/{slider/web-component.js → Badge.js} +6 -9
  4. package/cjs/components/autocomplete/Autocomplete.js +14 -2
  5. package/cjs/components/autocomplete/style/_autocomplete.scss +17 -1
  6. package/cjs/components/autocomplete/style/dnb-autocomplete.css +36 -3
  7. package/cjs/components/autocomplete/style/dnb-autocomplete.min.css +1 -1
  8. package/cjs/components/avatar/style/_avatar.scss +1 -0
  9. package/cjs/components/avatar/style/dnb-avatar.css +1 -0
  10. package/cjs/components/avatar/style/dnb-avatar.min.css +1 -1
  11. package/cjs/components/badge/Badge.d.ts +58 -0
  12. package/cjs/components/badge/Badge.js +124 -0
  13. package/cjs/components/badge/index.d.ts +8 -0
  14. package/cjs/components/badge/index.js +52 -0
  15. package/cjs/components/badge/style/_badge.scss +74 -0
  16. package/cjs/components/badge/style/dnb-badge.css +151 -0
  17. package/cjs/components/badge/style/dnb-badge.min.css +1 -0
  18. package/cjs/components/badge/style/dnb-badge.scss +12 -0
  19. package/cjs/components/badge/style/index.d.ts +6 -0
  20. package/cjs/components/badge/style/index.js +3 -0
  21. package/cjs/components/badge/style/themes/dnb-badge-theme-ui.css +21 -0
  22. package/cjs/components/badge/style/themes/dnb-badge-theme-ui.min.css +1 -0
  23. package/cjs/components/badge/style/themes/dnb-badge-theme-ui.scss +17 -0
  24. package/cjs/components/badge/style/themes/ui.d.ts +1 -0
  25. package/cjs/components/badge/style/themes/ui.js +3 -0
  26. package/cjs/components/badge/style.d.ts +1 -0
  27. package/cjs/components/badge/style.js +3 -0
  28. package/cjs/components/button/style/themes/dnb-button-theme-eiendom.css +20 -0
  29. package/cjs/components/button/style/themes/dnb-button-theme-eiendom.min.css +2 -2
  30. package/cjs/components/button/style/themes/dnb-button-theme-eiendom.scss +8 -0
  31. package/cjs/components/dialog/style/dnb-dialog.css +12 -19
  32. package/cjs/components/dialog/style/dnb-dialog.min.css +1 -1
  33. package/cjs/components/dialog/style/themes/dnb-dialog-theme-ui.css +0 -2
  34. package/cjs/components/dialog/style/themes/dnb-dialog-theme-ui.min.css +1 -1
  35. package/cjs/components/dialog/style/themes/dnb-dialog-theme-ui.scss +0 -7
  36. package/cjs/components/drawer/DrawerContent.js +7 -1
  37. package/cjs/components/drawer/style/_drawer.scss +6 -13
  38. package/cjs/components/drawer/style/dnb-drawer.css +21 -31
  39. package/cjs/components/drawer/style/dnb-drawer.min.css +1 -1
  40. package/cjs/components/drawer/style/themes/dnb-drawer-theme-ui.css +0 -2
  41. package/cjs/components/drawer/style/themes/dnb-drawer-theme-ui.min.css +1 -1
  42. package/cjs/components/drawer/style/themes/dnb-drawer-theme-ui.scss +0 -7
  43. package/cjs/components/form-row/FormRow.js +9 -8
  44. package/cjs/components/form-row/FormRowHelpers.d.ts +1 -0
  45. package/cjs/components/form-row/FormRowHelpers.js +16 -2
  46. package/cjs/components/index.d.ts +2 -1
  47. package/cjs/components/index.js +8 -0
  48. package/cjs/components/lib.d.ts +3 -1
  49. package/cjs/components/lib.js +9 -0
  50. package/cjs/components/modal/ModalContent.js +0 -2
  51. package/cjs/components/modal/style/_modal.scss +0 -4
  52. package/cjs/components/modal/style/dnb-modal.css +12 -19
  53. package/cjs/components/modal/style/dnb-modal.min.css +1 -1
  54. package/cjs/components/modal/style/themes/dnb-modal-theme-ui.css +6 -2
  55. package/cjs/components/modal/style/themes/dnb-modal-theme-ui.min.css +1 -1
  56. package/cjs/components/modal/style/themes/dnb-modal-theme-ui.scss +6 -5
  57. package/cjs/components/skeleton/SkeletonHelper.d.ts +2 -1
  58. package/cjs/components/slider/Slider.d.ts +8 -229
  59. package/cjs/components/slider/Slider.js +21 -798
  60. package/cjs/components/slider/SliderHelpers.d.ts +23 -0
  61. package/cjs/components/slider/SliderHelpers.js +245 -0
  62. package/cjs/components/slider/SliderInstance.d.ts +6 -0
  63. package/cjs/components/slider/SliderInstance.js +190 -0
  64. package/cjs/components/slider/SliderProvider.d.ts +4 -0
  65. package/cjs/components/slider/SliderProvider.js +301 -0
  66. package/cjs/components/slider/SliderThumb.d.ts +2 -0
  67. package/cjs/components/slider/SliderThumb.js +142 -0
  68. package/cjs/components/slider/SliderTrack.d.ts +6 -0
  69. package/cjs/components/slider/SliderTrack.js +132 -0
  70. package/cjs/components/slider/hooks/useSliderEvents.d.ts +11 -0
  71. package/cjs/components/slider/hooks/useSliderEvents.js +146 -0
  72. package/cjs/components/slider/hooks/useSliderProps.d.ts +1 -0
  73. package/cjs/components/slider/hooks/useSliderProps.js +16 -0
  74. package/cjs/components/slider/style/_slider.scss +19 -54
  75. package/cjs/components/slider/style/dnb-slider.css +30 -66
  76. package/cjs/components/slider/style/dnb-slider.min.css +1 -1
  77. package/cjs/components/slider/style/themes/dnb-slider-theme-ui.css +0 -16
  78. package/cjs/components/slider/style/themes/dnb-slider-theme-ui.min.css +1 -1
  79. package/cjs/components/slider/style/themes/dnb-slider-theme-ui.scss +0 -17
  80. package/cjs/components/slider/types.d.ts +100 -0
  81. package/cjs/components/slider/types.js +1 -0
  82. package/cjs/components/tabs/style/themes/dnb-tabs-theme-eiendom.css +148 -0
  83. package/cjs/components/tabs/style/themes/dnb-tabs-theme-eiendom.min.css +1 -0
  84. package/cjs/components/tabs/style/themes/dnb-tabs-theme-eiendom.scss +14 -0
  85. package/cjs/components/timeline/TimelineItem.js +2 -1
  86. package/cjs/elements/Anchor.d.ts +44 -105
  87. package/cjs/elements/Anchor.js +48 -138
  88. package/cjs/elements/Element.d.ts +23 -40
  89. package/cjs/elements/Element.js +48 -122
  90. package/cjs/elements/Link.d.ts +18 -1
  91. package/cjs/elements/lib.d.ts +36 -2
  92. package/cjs/index.d.ts +2 -1
  93. package/cjs/index.js +8 -0
  94. package/cjs/shared/AlignmentHelper.js +4 -2
  95. package/cjs/shared/Context.d.ts +7 -1
  96. package/cjs/shared/Eufemia.js +1 -1
  97. package/cjs/shared/helpers/Suffix.d.ts +6 -4
  98. package/cjs/shared/helpers/Suffix.js +5 -2
  99. package/cjs/shared/helpers/filterValidProps.d.ts +11 -0
  100. package/cjs/shared/helpers/filterValidProps.js +19 -0
  101. package/cjs/shared/helpers/withCamelCaseProps.d.ts +1 -1
  102. package/cjs/shared/helpers/withCamelCaseProps.js +10 -0
  103. package/cjs/shared/helpers/withSnakeCaseProps.d.ts +40 -0
  104. package/cjs/shared/helpers/withSnakeCaseProps.js +168 -0
  105. package/cjs/shared/locales/en-GB.d.ts +3 -3
  106. package/cjs/shared/locales/en-GB.js +3 -3
  107. package/cjs/shared/locales/en-US.d.ts +3 -3
  108. package/cjs/shared/locales/index.d.ts +6 -6
  109. package/cjs/shared/locales/nb-NO.d.ts +3 -3
  110. package/cjs/shared/locales/nb-NO.js +3 -3
  111. package/cjs/style/dnb-ui-components.css +161 -88
  112. package/cjs/style/dnb-ui-components.min.css +4 -4
  113. package/cjs/style/dnb-ui-components.scss +1 -0
  114. package/cjs/style/dnb-ui-elements.css +44 -28
  115. package/cjs/style/dnb-ui-elements.min.css +1 -1
  116. package/cjs/style/dnb-ui-tags.css +63 -40
  117. package/cjs/style/dnb-ui-tags.min.css +1 -1
  118. package/cjs/style/elements/_anchor-mixins.scss +6 -3
  119. package/cjs/style/themes/theme-eiendom/dnb-theme-eiendom.css +237 -46
  120. package/cjs/style/themes/theme-eiendom/dnb-theme-eiendom.min.css +7 -7
  121. package/cjs/style/themes/theme-eiendom/dnb-theme-eiendom.scss +1 -0
  122. package/cjs/style/themes/theme-ui/dnb-theme-ui.css +72 -50
  123. package/cjs/style/themes/theme-ui/dnb-theme-ui.min.css +4 -4
  124. package/cjs/style/themes/theme-ui/dnb-theme-ui.scss +1 -0
  125. package/components/Badge.d.ts +3 -0
  126. package/components/Badge.js +3 -0
  127. package/components/autocomplete/Autocomplete.js +15 -3
  128. package/components/autocomplete/style/_autocomplete.scss +17 -1
  129. package/components/autocomplete/style/dnb-autocomplete.css +36 -3
  130. package/components/autocomplete/style/dnb-autocomplete.min.css +1 -1
  131. package/components/avatar/style/_avatar.scss +1 -0
  132. package/components/avatar/style/dnb-avatar.css +1 -0
  133. package/components/avatar/style/dnb-avatar.min.css +1 -1
  134. package/components/badge/Badge.d.ts +58 -0
  135. package/components/badge/Badge.js +92 -0
  136. package/components/badge/index.d.ts +8 -0
  137. package/components/badge/index.js +3 -0
  138. package/components/badge/style/_badge.scss +74 -0
  139. package/components/badge/style/dnb-badge.css +151 -0
  140. package/components/badge/style/dnb-badge.min.css +1 -0
  141. package/components/badge/style/dnb-badge.scss +12 -0
  142. package/components/badge/style/index.d.ts +6 -0
  143. package/components/badge/style/index.js +1 -0
  144. package/components/badge/style/themes/dnb-badge-theme-ui.css +21 -0
  145. package/components/badge/style/themes/dnb-badge-theme-ui.min.css +1 -0
  146. package/components/badge/style/themes/dnb-badge-theme-ui.scss +17 -0
  147. package/components/badge/style/themes/ui.d.ts +1 -0
  148. package/components/badge/style/themes/ui.js +1 -0
  149. package/components/badge/style.d.ts +1 -0
  150. package/components/badge/style.js +1 -0
  151. package/components/button/style/themes/dnb-button-theme-eiendom.css +20 -0
  152. package/components/button/style/themes/dnb-button-theme-eiendom.min.css +2 -2
  153. package/components/button/style/themes/dnb-button-theme-eiendom.scss +8 -0
  154. package/components/dialog/style/dnb-dialog.css +12 -19
  155. package/components/dialog/style/dnb-dialog.min.css +1 -1
  156. package/components/dialog/style/themes/dnb-dialog-theme-ui.css +0 -2
  157. package/components/dialog/style/themes/dnb-dialog-theme-ui.min.css +1 -1
  158. package/components/dialog/style/themes/dnb-dialog-theme-ui.scss +0 -7
  159. package/components/drawer/DrawerContent.js +4 -1
  160. package/components/drawer/style/_drawer.scss +6 -13
  161. package/components/drawer/style/dnb-drawer.css +21 -31
  162. package/components/drawer/style/dnb-drawer.min.css +1 -1
  163. package/components/drawer/style/themes/dnb-drawer-theme-ui.css +0 -2
  164. package/components/drawer/style/themes/dnb-drawer-theme-ui.min.css +1 -1
  165. package/components/drawer/style/themes/dnb-drawer-theme-ui.scss +0 -7
  166. package/components/form-row/FormRow.js +9 -8
  167. package/components/form-row/FormRowHelpers.d.ts +1 -0
  168. package/components/form-row/FormRowHelpers.js +10 -0
  169. package/components/index.d.ts +2 -1
  170. package/components/index.js +2 -1
  171. package/components/lib.d.ts +3 -1
  172. package/components/lib.js +3 -1
  173. package/components/modal/ModalContent.js +0 -2
  174. package/components/modal/style/_modal.scss +0 -4
  175. package/components/modal/style/dnb-modal.css +12 -19
  176. package/components/modal/style/dnb-modal.min.css +1 -1
  177. package/components/modal/style/themes/dnb-modal-theme-ui.css +6 -2
  178. package/components/modal/style/themes/dnb-modal-theme-ui.min.css +1 -1
  179. package/components/modal/style/themes/dnb-modal-theme-ui.scss +6 -5
  180. package/components/skeleton/SkeletonHelper.d.ts +2 -1
  181. package/components/slider/Slider.d.ts +8 -229
  182. package/components/slider/Slider.js +8 -748
  183. package/components/slider/SliderHelpers.d.ts +23 -0
  184. package/components/slider/SliderHelpers.js +158 -0
  185. package/components/slider/SliderInstance.d.ts +6 -0
  186. package/components/slider/SliderInstance.js +162 -0
  187. package/components/slider/SliderProvider.d.ts +4 -0
  188. package/components/slider/SliderProvider.js +236 -0
  189. package/components/slider/SliderThumb.d.ts +2 -0
  190. package/components/slider/SliderThumb.js +114 -0
  191. package/components/slider/SliderTrack.d.ts +6 -0
  192. package/components/slider/SliderTrack.js +105 -0
  193. package/components/slider/hooks/useSliderEvents.d.ts +11 -0
  194. package/components/slider/hooks/useSliderEvents.js +132 -0
  195. package/components/slider/hooks/useSliderProps.d.ts +1 -0
  196. package/components/slider/hooks/useSliderProps.js +5 -0
  197. package/components/slider/style/_slider.scss +19 -54
  198. package/components/slider/style/dnb-slider.css +30 -66
  199. package/components/slider/style/dnb-slider.min.css +1 -1
  200. package/components/slider/style/themes/dnb-slider-theme-ui.css +0 -16
  201. package/components/slider/style/themes/dnb-slider-theme-ui.min.css +1 -1
  202. package/components/slider/style/themes/dnb-slider-theme-ui.scss +0 -17
  203. package/components/slider/types.d.ts +100 -0
  204. package/components/slider/types.js +1 -0
  205. package/components/tabs/style/themes/dnb-tabs-theme-eiendom.css +148 -0
  206. package/components/tabs/style/themes/dnb-tabs-theme-eiendom.min.css +1 -0
  207. package/components/tabs/style/themes/dnb-tabs-theme-eiendom.scss +14 -0
  208. package/components/timeline/TimelineItem.js +2 -1
  209. package/elements/Anchor.d.ts +44 -105
  210. package/elements/Anchor.js +51 -113
  211. package/elements/Element.d.ts +23 -40
  212. package/elements/Element.js +44 -92
  213. package/elements/Link.d.ts +18 -1
  214. package/elements/lib.d.ts +36 -2
  215. package/es/components/Badge.d.ts +3 -0
  216. package/es/components/Badge.js +3 -0
  217. package/es/components/autocomplete/Autocomplete.js +14 -3
  218. package/es/components/autocomplete/style/_autocomplete.scss +17 -1
  219. package/es/components/autocomplete/style/dnb-autocomplete.css +36 -3
  220. package/es/components/autocomplete/style/dnb-autocomplete.min.css +1 -1
  221. package/es/components/avatar/style/_avatar.scss +1 -0
  222. package/es/components/avatar/style/dnb-avatar.css +1 -0
  223. package/es/components/avatar/style/dnb-avatar.min.css +1 -1
  224. package/es/components/badge/Badge.d.ts +58 -0
  225. package/es/components/badge/Badge.js +88 -0
  226. package/es/components/badge/index.d.ts +8 -0
  227. package/es/components/badge/index.js +3 -0
  228. package/es/components/badge/style/_badge.scss +74 -0
  229. package/es/components/badge/style/dnb-badge.css +151 -0
  230. package/es/components/badge/style/dnb-badge.min.css +1 -0
  231. package/es/components/badge/style/dnb-badge.scss +12 -0
  232. package/es/components/badge/style/index.d.ts +6 -0
  233. package/es/components/badge/style/index.js +1 -0
  234. package/es/components/badge/style/themes/dnb-badge-theme-ui.css +21 -0
  235. package/es/components/badge/style/themes/dnb-badge-theme-ui.min.css +1 -0
  236. package/es/components/badge/style/themes/dnb-badge-theme-ui.scss +17 -0
  237. package/es/components/badge/style/themes/ui.d.ts +1 -0
  238. package/es/components/badge/style/themes/ui.js +1 -0
  239. package/es/components/badge/style.d.ts +1 -0
  240. package/es/components/badge/style.js +1 -0
  241. package/es/components/button/style/themes/dnb-button-theme-eiendom.css +20 -0
  242. package/es/components/button/style/themes/dnb-button-theme-eiendom.min.css +2 -2
  243. package/es/components/button/style/themes/dnb-button-theme-eiendom.scss +8 -0
  244. package/es/components/dialog/style/dnb-dialog.css +12 -19
  245. package/es/components/dialog/style/dnb-dialog.min.css +1 -1
  246. package/es/components/dialog/style/themes/dnb-dialog-theme-ui.css +0 -2
  247. package/es/components/dialog/style/themes/dnb-dialog-theme-ui.min.css +1 -1
  248. package/es/components/dialog/style/themes/dnb-dialog-theme-ui.scss +0 -7
  249. package/es/components/drawer/DrawerContent.js +4 -1
  250. package/es/components/drawer/style/_drawer.scss +6 -13
  251. package/es/components/drawer/style/dnb-drawer.css +21 -31
  252. package/es/components/drawer/style/dnb-drawer.min.css +1 -1
  253. package/es/components/drawer/style/themes/dnb-drawer-theme-ui.css +0 -2
  254. package/es/components/drawer/style/themes/dnb-drawer-theme-ui.min.css +1 -1
  255. package/es/components/drawer/style/themes/dnb-drawer-theme-ui.scss +0 -7
  256. package/es/components/form-row/FormRow.js +13 -11
  257. package/es/components/form-row/FormRowHelpers.d.ts +1 -0
  258. package/es/components/form-row/FormRowHelpers.js +10 -0
  259. package/es/components/index.d.ts +2 -1
  260. package/es/components/index.js +2 -1
  261. package/es/components/lib.d.ts +3 -1
  262. package/es/components/lib.js +3 -1
  263. package/es/components/modal/ModalContent.js +0 -1
  264. package/es/components/modal/style/_modal.scss +0 -4
  265. package/es/components/modal/style/dnb-modal.css +12 -19
  266. package/es/components/modal/style/dnb-modal.min.css +1 -1
  267. package/es/components/modal/style/themes/dnb-modal-theme-ui.css +6 -2
  268. package/es/components/modal/style/themes/dnb-modal-theme-ui.min.css +1 -1
  269. package/es/components/modal/style/themes/dnb-modal-theme-ui.scss +6 -5
  270. package/es/components/skeleton/SkeletonHelper.d.ts +2 -1
  271. package/es/components/slider/Slider.d.ts +8 -229
  272. package/es/components/slider/Slider.js +7 -688
  273. package/es/components/slider/SliderHelpers.d.ts +23 -0
  274. package/es/components/slider/SliderHelpers.js +130 -0
  275. package/es/components/slider/SliderInstance.d.ts +6 -0
  276. package/es/components/slider/SliderInstance.js +167 -0
  277. package/es/components/slider/SliderProvider.d.ts +4 -0
  278. package/es/components/slider/SliderProvider.js +214 -0
  279. package/es/components/slider/SliderThumb.d.ts +2 -0
  280. package/es/components/slider/SliderThumb.js +106 -0
  281. package/es/components/slider/SliderTrack.d.ts +6 -0
  282. package/es/components/slider/SliderTrack.js +100 -0
  283. package/es/components/slider/hooks/useSliderEvents.d.ts +11 -0
  284. package/es/components/slider/hooks/useSliderEvents.js +129 -0
  285. package/es/components/slider/hooks/useSliderProps.d.ts +1 -0
  286. package/es/components/slider/hooks/useSliderProps.js +5 -0
  287. package/es/components/slider/style/_slider.scss +19 -54
  288. package/es/components/slider/style/dnb-slider.css +30 -66
  289. package/es/components/slider/style/dnb-slider.min.css +1 -1
  290. package/es/components/slider/style/themes/dnb-slider-theme-ui.css +0 -16
  291. package/es/components/slider/style/themes/dnb-slider-theme-ui.min.css +1 -1
  292. package/es/components/slider/style/themes/dnb-slider-theme-ui.scss +0 -17
  293. package/es/components/slider/types.d.ts +100 -0
  294. package/es/components/slider/types.js +1 -0
  295. package/es/components/tabs/style/themes/dnb-tabs-theme-eiendom.css +148 -0
  296. package/es/components/tabs/style/themes/dnb-tabs-theme-eiendom.min.css +1 -0
  297. package/es/components/tabs/style/themes/dnb-tabs-theme-eiendom.scss +14 -0
  298. package/es/components/timeline/TimelineItem.js +2 -1
  299. package/es/elements/Anchor.d.ts +44 -105
  300. package/es/elements/Anchor.js +49 -80
  301. package/es/elements/Element.d.ts +23 -40
  302. package/es/elements/Element.js +44 -61
  303. package/es/elements/Link.d.ts +18 -1
  304. package/es/elements/lib.d.ts +36 -2
  305. package/es/index.d.ts +2 -1
  306. package/es/index.js +2 -1
  307. package/es/shared/AlignmentHelper.js +2 -2
  308. package/es/shared/Context.d.ts +7 -1
  309. package/es/shared/Eufemia.js +1 -1
  310. package/es/shared/helpers/Suffix.d.ts +6 -4
  311. package/es/shared/helpers/Suffix.js +5 -3
  312. package/es/shared/helpers/filterValidProps.d.ts +11 -0
  313. package/es/shared/helpers/filterValidProps.js +14 -0
  314. package/es/shared/helpers/withCamelCaseProps.d.ts +1 -1
  315. package/es/shared/helpers/withCamelCaseProps.js +9 -0
  316. package/es/shared/helpers/withSnakeCaseProps.d.ts +40 -0
  317. package/es/shared/helpers/withSnakeCaseProps.js +72 -0
  318. package/es/shared/locales/en-GB.d.ts +3 -3
  319. package/es/shared/locales/en-GB.js +3 -3
  320. package/es/shared/locales/en-US.d.ts +3 -3
  321. package/es/shared/locales/index.d.ts +6 -6
  322. package/es/shared/locales/nb-NO.d.ts +3 -3
  323. package/es/shared/locales/nb-NO.js +3 -3
  324. package/es/style/dnb-ui-components.css +161 -88
  325. package/es/style/dnb-ui-components.min.css +4 -4
  326. package/es/style/dnb-ui-components.scss +1 -0
  327. package/es/style/dnb-ui-elements.css +44 -28
  328. package/es/style/dnb-ui-elements.min.css +1 -1
  329. package/es/style/dnb-ui-tags.css +63 -40
  330. package/es/style/dnb-ui-tags.min.css +1 -1
  331. package/es/style/elements/_anchor-mixins.scss +6 -3
  332. package/es/style/themes/theme-eiendom/dnb-theme-eiendom.css +237 -46
  333. package/es/style/themes/theme-eiendom/dnb-theme-eiendom.min.css +7 -7
  334. package/es/style/themes/theme-eiendom/dnb-theme-eiendom.scss +1 -0
  335. package/es/style/themes/theme-ui/dnb-theme-ui.css +72 -50
  336. package/es/style/themes/theme-ui/dnb-theme-ui.min.css +4 -4
  337. package/es/style/themes/theme-ui/dnb-theme-ui.scss +1 -0
  338. package/esm/dnb-ui-basis.min.mjs +1 -1
  339. package/esm/dnb-ui-components.min.mjs +3 -3
  340. package/esm/dnb-ui-elements.min.mjs +9 -10
  341. package/esm/dnb-ui-extensions.min.mjs +4 -4
  342. package/esm/dnb-ui-lib.min.mjs +3 -3
  343. package/esm/dnb-ui-web-components.min.mjs +3 -3
  344. package/index.d.ts +2 -1
  345. package/index.js +2 -1
  346. package/package.json +1 -1
  347. package/shared/AlignmentHelper.js +4 -2
  348. package/shared/Context.d.ts +7 -1
  349. package/shared/Eufemia.js +1 -1
  350. package/shared/helpers/Suffix.d.ts +6 -4
  351. package/shared/helpers/Suffix.js +4 -2
  352. package/shared/helpers/filterValidProps.d.ts +11 -0
  353. package/shared/helpers/filterValidProps.js +14 -0
  354. package/shared/helpers/withCamelCaseProps.d.ts +1 -1
  355. package/shared/helpers/withCamelCaseProps.js +10 -0
  356. package/shared/helpers/withSnakeCaseProps.d.ts +40 -0
  357. package/shared/helpers/withSnakeCaseProps.js +115 -0
  358. package/shared/locales/en-GB.d.ts +3 -3
  359. package/shared/locales/en-GB.js +3 -3
  360. package/shared/locales/en-US.d.ts +3 -3
  361. package/shared/locales/index.d.ts +6 -6
  362. package/shared/locales/nb-NO.d.ts +3 -3
  363. package/shared/locales/nb-NO.js +3 -3
  364. package/style/dnb-ui-components.css +161 -88
  365. package/style/dnb-ui-components.min.css +4 -4
  366. package/style/dnb-ui-components.scss +1 -0
  367. package/style/dnb-ui-elements.css +44 -28
  368. package/style/dnb-ui-elements.min.css +1 -1
  369. package/style/dnb-ui-tags.css +63 -40
  370. package/style/dnb-ui-tags.min.css +1 -1
  371. package/style/elements/_anchor-mixins.scss +6 -3
  372. package/style/themes/theme-eiendom/dnb-theme-eiendom.css +237 -46
  373. package/style/themes/theme-eiendom/dnb-theme-eiendom.min.css +7 -7
  374. package/style/themes/theme-eiendom/dnb-theme-eiendom.scss +1 -0
  375. package/style/themes/theme-ui/dnb-theme-ui.css +72 -50
  376. package/style/themes/theme-ui/dnb-theme-ui.min.css +4 -4
  377. package/style/themes/theme-ui/dnb-theme-ui.scss +1 -0
  378. package/umd/dnb-ui-basis.min.js +1 -1
  379. package/umd/dnb-ui-components.min.js +5 -5
  380. package/umd/dnb-ui-elements.min.js +20 -21
  381. package/umd/dnb-ui-extensions.min.js +3 -3
  382. package/umd/dnb-ui-lib.min.js +4 -4
  383. package/umd/dnb-ui-web-components.min.js +4 -4
  384. package/cjs/components/slider/web-component.d.ts +0 -3
  385. package/components/slider/web-component.d.ts +0 -3
  386. package/components/slider/web-component.js +0 -5
  387. package/es/components/slider/web-component.d.ts +0 -3
  388. package/es/components/slider/web-component.js +0 -5
@@ -0,0 +1,23 @@
1
+ import { formatOptionParams, formatValue, formatReturnType } from '../number-format/NumberUtils';
2
+ import type { ValueTypes } from './types';
3
+ export declare const percentToValue: (percent: number, min: number, max: number, isReverse: boolean) => number;
4
+ export declare const roundToStep: (number: number, step: number) => number;
5
+ export declare const getOffset: (node: HTMLElement) => {
6
+ top: number;
7
+ left: number;
8
+ };
9
+ export declare const getMousePosition: (event: MouseEvent & TouchEvent) => {
10
+ x: number;
11
+ y: number;
12
+ };
13
+ export declare const calculatePercent: (node: HTMLElement, event: MouseEvent | TouchEvent, isVertical: boolean) => number;
14
+ export declare const clamp: (value: number, min?: number, max?: number) => number;
15
+ export declare const roundValue: (value: number, step: number) => number;
16
+ export declare const createMockDiv: ({ width, height }: {
17
+ width: any;
18
+ height: any;
19
+ }) => HTMLDivElement;
20
+ export declare const getUpdatedValues: (value: Array<number>, index: number, newValue: number) => ValueTypes;
21
+ export declare const closestIndex: (goal: number, array: Array<number>) => number;
22
+ export declare const formatNumber: (value: formatValue, opts?: formatOptionParams) => formatReturnType;
23
+ export declare const getHumanNumber: (value: number, numberFormat: formatOptionParams) => string;
@@ -0,0 +1,158 @@
1
+ import _defineProperty from "@babel/runtime/helpers/esm/defineProperty";
2
+ import _toConsumableArray from "@babel/runtime/helpers/esm/toConsumableArray";
3
+ import _extends from "@babel/runtime/helpers/esm/extends";
4
+
5
+ function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) { symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); } keys.push.apply(keys, symbols); } return keys; }
6
+
7
+ function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys(Object(source), true).forEach(function (key) { _defineProperty(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }
8
+
9
+ import "core-js/modules/es.parse-float.js";
10
+ import "core-js/modules/es.number.to-fixed.js";
11
+ import "core-js/modules/es.array.map.js";
12
+ import "core-js/modules/es.array.sort.js";
13
+ import "core-js/modules/es.array.find-index.js";
14
+ import "core-js/modules/es.object.keys.js";
15
+ import "core-js/modules/es.symbol.js";
16
+ import "core-js/modules/es.array.filter.js";
17
+ import "core-js/modules/es.object.to-string.js";
18
+ import "core-js/modules/es.object.get-own-property-descriptor.js";
19
+ import "core-js/modules/web.dom-collections.for-each.js";
20
+ import "core-js/modules/es.object.get-own-property-descriptors.js";
21
+ import { format } from '../number-format/NumberUtils';
22
+ export var percentToValue = function percentToValue(percent, min, max, isReverse) {
23
+ if (typeof min === 'string') {
24
+ min = parseFloat(min);
25
+ }
26
+
27
+ if (typeof max === 'string') {
28
+ max = parseFloat(max);
29
+ }
30
+
31
+ var num = (max - min) * percent / 100 + min;
32
+
33
+ if (isReverse) {
34
+ num = max + min - num;
35
+ }
36
+
37
+ return num;
38
+ };
39
+ export var roundToStep = function roundToStep(number, step) {
40
+ return Math.round(number / step) * step;
41
+ };
42
+ export var getOffset = function getOffset(node) {
43
+ var _ref = typeof window !== 'undefined' ? window : {
44
+ pageYOffset: 0,
45
+ pageXOffset: 0
46
+ },
47
+ pageYOffset = _ref.pageYOffset,
48
+ pageXOffset = _ref.pageXOffset;
49
+
50
+ var _node$getBoundingClie = node.getBoundingClientRect(),
51
+ left = _node$getBoundingClie.left,
52
+ top = _node$getBoundingClie.top;
53
+
54
+ return {
55
+ top: top + pageYOffset,
56
+ left: left + pageXOffset
57
+ };
58
+ };
59
+ export var getMousePosition = function getMousePosition(event) {
60
+ if (event.changedTouches && event.changedTouches[0]) {
61
+ return {
62
+ x: event.changedTouches[0].pageX,
63
+ y: event.changedTouches[0].pageY
64
+ };
65
+ }
66
+
67
+ return {
68
+ x: event.pageX,
69
+ y: event.pageY
70
+ };
71
+ };
72
+ export var calculatePercent = function calculatePercent(node, event, isVertical) {
73
+ var _node$getBoundingClie2 = node.getBoundingClientRect(),
74
+ width = _node$getBoundingClie2.width,
75
+ height = _node$getBoundingClie2.height;
76
+
77
+ var _getOffset = getOffset(node),
78
+ top = _getOffset.top,
79
+ left = _getOffset.left;
80
+
81
+ var _getMousePosition = getMousePosition(event),
82
+ x = _getMousePosition.x,
83
+ y = _getMousePosition.y;
84
+
85
+ var value = isVertical ? y - top : x - left;
86
+ var onePercent = (isVertical ? height : width) / 100;
87
+ return Math.abs(clamp(value / onePercent));
88
+ };
89
+ export var clamp = function clamp(value) {
90
+ var min = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 0;
91
+ var max = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : 100;
92
+ return Math.min(Math.max(value, min), max);
93
+ };
94
+ export var roundValue = function roundValue(value, step) {
95
+ return step > 0 ? roundToStep(value, step) : parseFloat(parseFloat(String(value)).toFixed(3));
96
+ };
97
+ export var createMockDiv = function createMockDiv(_ref2) {
98
+ var width = _ref2.width,
99
+ height = _ref2.height;
100
+ var div = document.createElement('div');
101
+
102
+ _extends(div.style, {
103
+ width: "".concat(width, "px"),
104
+ height: "".concat(height, "px")
105
+ });
106
+
107
+ div.getBoundingClientRect = function () {
108
+ return {
109
+ width: width,
110
+ height: height,
111
+ top: 0,
112
+ left: 0,
113
+ right: width,
114
+ bottom: height
115
+ };
116
+ };
117
+
118
+ return div;
119
+ };
120
+ export var getUpdatedValues = function getUpdatedValues(value, index, newValue) {
121
+ return value.map(function (val, i) {
122
+ if (i === index) {
123
+ val = newValue;
124
+ }
125
+
126
+ return val;
127
+ });
128
+ };
129
+ export var closestIndex = function closestIndex(goal, array) {
130
+ var res = _toConsumableArray(array).sort(function (a, b) {
131
+ return Math.abs(goal - a) - Math.abs(goal - b);
132
+ })[0];
133
+
134
+ return array.findIndex(function (num) {
135
+ return num === res;
136
+ });
137
+ };
138
+ export var formatNumber = function formatNumber(value) {
139
+ var opts = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : null;
140
+
141
+ if (opts) {
142
+ return format(value, opts);
143
+ }
144
+
145
+ return value;
146
+ };
147
+ export var getHumanNumber = function getHumanNumber(value, numberFormat) {
148
+ var num = value;
149
+
150
+ var _ref3 = numberFormat ? formatNumber(num, _objectSpread(_objectSpread({}, numberFormat || {}), {}, {
151
+ returnAria: true
152
+ })) : {
153
+ aria: null
154
+ },
155
+ humanNumber = _ref3.aria;
156
+
157
+ return String(humanNumber || value);
158
+ };
@@ -0,0 +1,6 @@
1
+ /**
2
+ * Web Slider Component
3
+ *
4
+ */
5
+ /// <reference types="react" />
6
+ export declare function SliderInstance(): JSX.Element;
@@ -0,0 +1,162 @@
1
+ import _extends from "@babel/runtime/helpers/esm/extends";
2
+
3
+ var _SubtractButton, _AddButton, _AlignmentHelper, _SliderMainTrack, _SliderSuffix;
4
+
5
+ import "core-js/modules/es.regexp.exec.js";
6
+ import "core-js/modules/es.string.replace.js";
7
+ import React from 'react';
8
+ import classnames from 'classnames';
9
+ import { isTrue } from '../../shared/component-helper';
10
+ import AlignmentHelper from '../../shared/AlignmentHelper';
11
+ import { createSpacingClasses } from '../space/SpacingHelper';
12
+ import { createSkeletonClass, skeletonDOMAttributes } from '../skeleton/SkeletonHelper';
13
+ import Context from '../../shared/Context';
14
+ import Suffix from '../../shared/helpers/Suffix';
15
+ import Button from '../button/Button';
16
+ import FormLabel from '../form-label/FormLabel';
17
+ import FormStatus from '../form-status/FormStatus';
18
+ import { SliderMainTrack, SliderTrackAfter, SliderTrackBefore } from './SliderTrack';
19
+ import { SliderThumb } from './SliderThumb';
20
+ import { useSliderProps } from './hooks/useSliderProps';
21
+ import { clamp, getHumanNumber } from './SliderHelpers';
22
+ export function SliderInstance() {
23
+ var context = React.useContext(Context);
24
+
25
+ var _useSliderProps = useSliderProps(),
26
+ isReverse = _useSliderProps.isReverse,
27
+ isVertical = _useSliderProps.isVertical,
28
+ showButtons = _useSliderProps.showButtons,
29
+ showStatus = _useSliderProps.showStatus,
30
+ allProps = _useSliderProps.allProps;
31
+
32
+ var id = allProps.id,
33
+ label = allProps.label,
34
+ labelSrOnly = allProps.labelSrOnly,
35
+ labelDirection = allProps.labelDirection,
36
+ status = allProps.status,
37
+ statusProps = allProps.statusProps,
38
+ statusState = allProps.statusState,
39
+ statusNoAnimation = allProps.statusNoAnimation,
40
+ globalStatusId = allProps.globalStatusId,
41
+ stretch = allProps.stretch,
42
+ skeleton = allProps.skeleton,
43
+ disabled = allProps.disabled,
44
+ className = allProps.className;
45
+ var mainParams = {
46
+ className: classnames("dnb-slider dnb-form-component", createSkeletonClass(null, skeleton), createSpacingClasses(allProps), className, isVertical && 'dnb-slider--vertical', disabled && 'dnb-slider__state--disabled', !showButtons && 'dnb-slider--no-buttons', isTrue(stretch) && 'dnb-slider--stretch', label && labelDirection && "dnb-slider__label--".concat(labelDirection), showStatus && 'dnb-slider__form-status', status && "dnb-slider__status--".concat(statusState))
47
+ };
48
+ var subtractButton = showButtons ? _SubtractButton || (_SubtractButton = React.createElement(SubtractButton, null)) : null;
49
+ var addButton = showButtons ? _AddButton || (_AddButton = React.createElement(AddButton, null)) : null;
50
+ skeletonDOMAttributes(mainParams, skeleton, context);
51
+ return React.createElement("span", mainParams, label && React.createElement(FormLabel, {
52
+ id: id + '-label',
53
+ text: label,
54
+ disabled: disabled,
55
+ skeleton: skeleton,
56
+ label_direction: labelDirection,
57
+ sr_only: labelSrOnly
58
+ }), React.createElement("span", {
59
+ className: "dnb-slider__wrapper"
60
+ }, _AlignmentHelper || (_AlignmentHelper = React.createElement(AlignmentHelper, null)), React.createElement(FormStatus, _extends({
61
+ show: showStatus,
62
+ id: id + '-form-status',
63
+ global_status_id: globalStatusId,
64
+ label: label,
65
+ text_id: id + '-status',
66
+ text: status,
67
+ status: statusState,
68
+ no_animation: statusNoAnimation,
69
+ skeleton: skeleton
70
+ }, statusProps)), React.createElement("span", {
71
+ className: "dnb-slider__inner"
72
+ }, showButtons && (isReverse ? addButton : subtractButton), _SliderMainTrack || (_SliderMainTrack = React.createElement(SliderMainTrack, null, React.createElement(SliderThumb, null), React.createElement(SliderTrackBefore, null), React.createElement(SliderTrackAfter, null))), showButtons && (isReverse ? subtractButton : addButton), _SliderSuffix || (_SliderSuffix = React.createElement(SliderSuffix, null)))));
73
+ }
74
+
75
+ function SliderSuffix() {
76
+ var _useSliderProps2 = useSliderProps(),
77
+ allProps = _useSliderProps2.allProps;
78
+
79
+ var id = allProps.id,
80
+ suffix = allProps.suffix;
81
+ return suffix ? React.createElement(Suffix, {
82
+ className: "dnb-slider__suffix",
83
+ id: id + '-suffix',
84
+ context: allProps
85
+ }, suffix) : null;
86
+ }
87
+
88
+ function SubtractButton() {
89
+ var _useSliderProps3 = useSliderProps(),
90
+ emitChange = _useSliderProps3.emitChange,
91
+ value = _useSliderProps3.value,
92
+ attributes = _useSliderProps3.attributes,
93
+ allProps = _useSliderProps3.allProps;
94
+
95
+ var step = allProps.step,
96
+ min = allProps.min,
97
+ max = allProps.max,
98
+ disabled = allProps.disabled,
99
+ skeleton = allProps.skeleton,
100
+ subtractTitle = allProps.subtractTitle,
101
+ numberFormat = allProps.numberFormat;
102
+
103
+ var onSubtractClickHandler = function onSubtractClickHandler(event) {
104
+ emitChange(event, clamp(value - (step || 1), min, max));
105
+ };
106
+
107
+ var subtractParams = {};
108
+
109
+ if (typeof attributes['aria-hidden'] !== 'undefined') {
110
+ subtractParams['aria-hidden'] = attributes['aria-hidden'];
111
+ }
112
+
113
+ var humanNumber = getHumanNumber(value, numberFormat);
114
+ return React.createElement(Button, _extends({
115
+ className: "dnb-slider__button dnb-slider__button--subtract",
116
+ variant: "secondary",
117
+ icon: "subtract",
118
+ size: "small",
119
+ "aria-label": subtractTitle === null || subtractTitle === void 0 ? void 0 : subtractTitle.replace('%s', humanNumber),
120
+ on_click: onSubtractClickHandler,
121
+ disabled: disabled,
122
+ skeleton: skeleton
123
+ }, subtractParams));
124
+ }
125
+
126
+ function AddButton() {
127
+ var _useSliderProps4 = useSliderProps(),
128
+ emitChange = _useSliderProps4.emitChange,
129
+ value = _useSliderProps4.value,
130
+ attributes = _useSliderProps4.attributes,
131
+ allProps = _useSliderProps4.allProps;
132
+
133
+ var step = allProps.step,
134
+ min = allProps.min,
135
+ max = allProps.max,
136
+ disabled = allProps.disabled,
137
+ skeleton = allProps.skeleton,
138
+ addTitle = allProps.addTitle,
139
+ numberFormat = allProps.numberFormat;
140
+
141
+ var onAddClickHandler = function onAddClickHandler(event) {
142
+ emitChange(event, clamp(value + (step || 1), min, max));
143
+ };
144
+
145
+ var addParams = {};
146
+
147
+ if (typeof attributes['aria-hidden'] !== 'undefined') {
148
+ addParams['aria-hidden'] = attributes['aria-hidden'];
149
+ }
150
+
151
+ var humanNumber = getHumanNumber(value, numberFormat);
152
+ return React.createElement(Button, _extends({
153
+ className: "dnb-slider__button dnb-slider__button--add",
154
+ variant: "secondary",
155
+ icon: "add",
156
+ size: "small",
157
+ "aria-label": addTitle === null || addTitle === void 0 ? void 0 : addTitle.replace('%s', humanNumber),
158
+ on_click: onAddClickHandler,
159
+ disabled: disabled,
160
+ skeleton: skeleton
161
+ }, addParams));
162
+ }
@@ -0,0 +1,4 @@
1
+ import React from 'react';
2
+ import type { SliderProps, SliderContextTypes } from './types';
3
+ export declare const SliderContext: React.Context<SliderContextTypes>;
4
+ export declare function SliderProvider(localProps: SliderProps): JSX.Element;
@@ -0,0 +1,236 @@
1
+ import _objectWithoutProperties from "@babel/runtime/helpers/esm/objectWithoutProperties";
2
+ import _slicedToArray from "@babel/runtime/helpers/esm/slicedToArray";
3
+ var _excluded = ["step", "label", "labelDirection", "labelSrOnly", "status", "statusState", "statusProps", "statusNoAnimation", "globalStatusId", "stretch", "suffix", "thumbTitle", "subtractTitle", "addTitle", "hideButtons", "multiThumbBehavior", "numberFormat", "skeleton", "max", "min", "disabled", "className", "id", "onInit", "onChange", "onDragStart", "onDragEnd", "vertical", "reverse", "value", "children"];
4
+ import "core-js/modules/es.array.reverse.js";
5
+ import "core-js/modules/es.object.to-string.js";
6
+ import React from 'react';
7
+ import { includeValidProps } from '../../components/form-row/FormRowHelpers';
8
+ import { usePropsWithContext } from '../../shared/hooks';
9
+ import { warn, isTrue, makeUniqueId, dispatchCustomElementEvent, getStatusState } from '../../shared/component-helper';
10
+ import Context from '../../shared/Context';
11
+ import { closestIndex, formatNumber, getUpdatedValues, roundValue } from './SliderHelpers';
12
+ import { convertSnakeCaseProps } from '../../shared/helpers/withSnakeCaseProps';
13
+ var defaultProps = {
14
+ statusState: 'error',
15
+ addTitle: '+',
16
+ subtractTitle: '−',
17
+ min: 0,
18
+ max: 100,
19
+ value: -1,
20
+ multiThumbBehavior: 'swap'
21
+ };
22
+ export var SliderContext = React.createContext(null);
23
+ export function SliderProvider(localProps) {
24
+ var context = React.useContext(Context);
25
+ var allProps = convertSnakeCaseProps(usePropsWithContext(localProps, defaultProps, {
26
+ skeleton: context === null || context === void 0 ? void 0 : context.skeleton
27
+ }, context === null || context === void 0 ? void 0 : context.getTranslation(localProps).Slider, includeValidProps(context === null || context === void 0 ? void 0 : context.FormRow, {
28
+ vertical: null
29
+ }), context === null || context === void 0 ? void 0 : context.Slider));
30
+
31
+ var _React$useState = React.useState(makeUniqueId),
32
+ _React$useState2 = _slicedToArray(_React$useState, 1),
33
+ _id = _React$useState2[0];
34
+
35
+ if (!allProps.id) {
36
+ allProps.id = _id;
37
+ }
38
+
39
+ var step = allProps.step,
40
+ label = allProps.label,
41
+ labelDirection = allProps.labelDirection,
42
+ labelSrOnly = allProps.labelSrOnly,
43
+ status = allProps.status,
44
+ statusState = allProps.statusState,
45
+ statusProps = allProps.statusProps,
46
+ statusNoAnimation = allProps.statusNoAnimation,
47
+ globalStatusId = allProps.globalStatusId,
48
+ stretch = allProps.stretch,
49
+ suffix = allProps.suffix,
50
+ title = allProps.thumbTitle,
51
+ subtractTitle = allProps.subtractTitle,
52
+ addTitle = allProps.addTitle,
53
+ hideButtons = allProps.hideButtons,
54
+ multiThumbBehavior = allProps.multiThumbBehavior,
55
+ numberFormat = allProps.numberFormat,
56
+ skeleton = allProps.skeleton,
57
+ max = allProps.max,
58
+ min = allProps.min,
59
+ disabled = allProps.disabled,
60
+ className = allProps.className,
61
+ id = allProps.id,
62
+ onInit = allProps.onInit,
63
+ onChange = allProps.onChange,
64
+ onDragStart = allProps.onDragStart,
65
+ onDragEnd = allProps.onDragEnd,
66
+ _vertical = allProps.vertical,
67
+ _reverse = allProps.reverse,
68
+ _value = allProps.value,
69
+ _children = allProps.children,
70
+ attributes = _objectWithoutProperties(allProps, _excluded);
71
+
72
+ var _React$useState3 = React.useState(_value),
73
+ _React$useState4 = _slicedToArray(_React$useState3, 2),
74
+ value = _React$useState4[0],
75
+ setValue = _React$useState4[1];
76
+
77
+ var realtimeValue = React.useRef(_value);
78
+
79
+ var _React$useState5 = React.useState('initial'),
80
+ _React$useState6 = _slicedToArray(_React$useState5, 2),
81
+ thumbState = _React$useState6[0],
82
+ setThumbState = _React$useState6[1];
83
+
84
+ var thumbIndex = React.useRef(-1);
85
+
86
+ var _React$useState7 = React.useState(isTrue(_vertical)),
87
+ _React$useState8 = _slicedToArray(_React$useState7, 1),
88
+ isVertical = _React$useState8[0];
89
+
90
+ var _React$useState9 = React.useState(isVertical ? !isTrue(_reverse) : isTrue(_reverse)),
91
+ _React$useState10 = _slicedToArray(_React$useState9, 1),
92
+ isReverse = _React$useState10[0];
93
+
94
+ var isMulti = Array.isArray(value);
95
+
96
+ var setThumbIndex = function setThumbIndex(index) {
97
+ if (!isNaN(index)) {
98
+ thumbIndex.current = index;
99
+ }
100
+ };
101
+
102
+ if (allProps.use_scrollwheel) {
103
+ warn('use_scrollwheel is not supported anymore!');
104
+ }
105
+
106
+ var getAndUpdateCurrentIndex = function getAndUpdateCurrentIndex(currentValue) {
107
+ var currentIndex = null;
108
+
109
+ if (thumbIndex.current > -1) {
110
+ currentIndex = thumbIndex.current;
111
+ } else {
112
+ currentIndex = closestIndex(currentValue, value);
113
+ setThumbIndex(currentIndex);
114
+ }
115
+
116
+ return currentIndex;
117
+ };
118
+
119
+ var updateValue = function updateValue(value) {
120
+ setValue(value);
121
+ realtimeValue.current = value;
122
+ };
123
+
124
+ var emitChange = function emitChange(event, rawValue) {
125
+ if (disabled || isTrue(skeleton)) {
126
+ return;
127
+ }
128
+
129
+ var numberValue = roundValue(rawValue, step);
130
+ var multiValues = numberValue;
131
+
132
+ if (numberValue > -1) {
133
+ if (isMulti) {
134
+ var currentIndex = getAndUpdateCurrentIndex(numberValue);
135
+ var lower = realtimeValue.current[currentIndex - 1];
136
+ var upper = realtimeValue.current[currentIndex + 1];
137
+
138
+ if (multiThumbBehavior === 'omit') {
139
+ if (numberValue < lower) {
140
+ numberValue = lower;
141
+ }
142
+
143
+ if (numberValue > upper) {
144
+ numberValue = upper;
145
+ }
146
+ }
147
+
148
+ multiValues = getUpdatedValues(multiThumbBehavior === 'push' ? realtimeValue.current : value, currentIndex, numberValue);
149
+
150
+ if (multiThumbBehavior === 'push') {
151
+ if (typeof lower !== 'undefined' && numberValue < lower) {
152
+ multiValues[currentIndex - 1] = numberValue;
153
+ }
154
+
155
+ if (typeof upper !== 'undefined' && numberValue >= upper) {
156
+ multiValues[currentIndex + 1] = numberValue;
157
+ }
158
+ }
159
+
160
+ if (numberValue === realtimeValue.current[currentIndex]) {
161
+ return;
162
+ }
163
+ } else if (numberValue === realtimeValue.current) {
164
+ return;
165
+ }
166
+
167
+ if (typeof onChange === 'function') {
168
+ var obj = {
169
+ value: multiValues,
170
+ rawValue: rawValue,
171
+ raw_value: rawValue,
172
+ event: event,
173
+ number: null
174
+ };
175
+
176
+ if (numberFormat) {
177
+ obj.number = formatNumber(numberValue, numberFormat);
178
+ }
179
+
180
+ dispatchCustomElementEvent(allProps, 'onChange', obj);
181
+ }
182
+
183
+ updateValue(multiValues);
184
+ }
185
+ };
186
+
187
+ React.useEffect(function () {
188
+ if (isMulti) {
189
+ var hasChanged = _value.some(function (val, i) {
190
+ return val !== value[i];
191
+ });
192
+
193
+ if (hasChanged) {
194
+ updateValue(_value);
195
+ }
196
+ } else {
197
+ updateValue(_value);
198
+ }
199
+ }, [_value, isMulti]);
200
+ var trackRef = React.useRef();
201
+ var jumpedTimeout = React.useRef();
202
+
203
+ var setJumpedState = function setJumpedState() {
204
+ setThumbState('jumped');
205
+ clearTimeout(jumpedTimeout.current);
206
+ jumpedTimeout.current = setTimeout(function () {
207
+ return setThumbState('normal');
208
+ }, 100);
209
+ };
210
+
211
+ var showStatus = getStatusState(status);
212
+ var showButtons = !isMulti && !isTrue(hideButtons);
213
+ var values = isMulti ? value : [value];
214
+ return React.createElement(SliderContext.Provider, {
215
+ value: {
216
+ isMulti: isMulti,
217
+ isReverse: isReverse,
218
+ isVertical: isVertical,
219
+ value: value,
220
+ values: values,
221
+ setValue: setValue,
222
+ attributes: attributes,
223
+ showStatus: showStatus,
224
+ showButtons: showButtons,
225
+ thumbState: thumbState,
226
+ setThumbState: setThumbState,
227
+ thumbIndex: thumbIndex,
228
+ setThumbIndex: setThumbIndex,
229
+ emitChange: emitChange,
230
+ allProps: allProps,
231
+ trackRef: trackRef,
232
+ setJumpedState: setJumpedState,
233
+ jumpedTimeout: jumpedTimeout
234
+ }
235
+ }, localProps.children);
236
+ }
@@ -0,0 +1,2 @@
1
+ /// <reference types="react" />
2
+ export declare function SliderThumb(): JSX.Element;