@dnb/eufemia 10.20.0 → 10.21.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 (810) hide show
  1. package/CHANGELOG.md +27 -0
  2. package/cjs/components/date-picker/DatePicker.d.ts +10 -1
  3. package/cjs/components/date-picker/DatePicker.js +5 -2
  4. package/cjs/components/date-picker/DatePicker.js.map +1 -1
  5. package/cjs/components/form-label/style/dnb-form-label.css +0 -7
  6. package/cjs/components/form-label/style/dnb-form-label.min.css +1 -1
  7. package/cjs/components/form-label/style/dnb-form-label.scss +0 -6
  8. package/cjs/components/form-status/style/dnb-form-status.css +11 -0
  9. package/cjs/components/form-status/style/dnb-form-status.min.css +1 -1
  10. package/cjs/components/form-status/style/dnb-form-status.scss +11 -0
  11. package/cjs/components/info-card/InfoCard.d.ts +6 -0
  12. package/cjs/components/info-card/InfoCard.js +4 -2
  13. package/cjs/components/info-card/InfoCard.js.map +1 -1
  14. package/cjs/components/info-card/style/dnb-info-card.css +3 -1
  15. package/cjs/components/info-card/style/dnb-info-card.min.css +1 -1
  16. package/cjs/components/info-card/style/dnb-info-card.scss +4 -2
  17. package/cjs/components/input/Input.d.ts +8 -8
  18. package/cjs/components/input/InputDocs.d.ts +2 -0
  19. package/cjs/components/input/InputDocs.js +165 -0
  20. package/cjs/components/input/InputDocs.js.map +1 -0
  21. package/cjs/components/input/InputPassword.d.ts +6 -17
  22. package/cjs/components/input/InputPassword.js +4 -85
  23. package/cjs/components/input/InputPassword.js.map +1 -1
  24. package/cjs/components/input-masked/InputMasked.d.ts +6 -93
  25. package/cjs/components/input-masked/InputMasked.js +3 -1
  26. package/cjs/components/input-masked/InputMasked.js.map +1 -1
  27. package/cjs/components/input-masked/InputMaskedDocs.d.ts +2 -0
  28. package/cjs/components/input-masked/InputMaskedDocs.js +85 -0
  29. package/cjs/components/input-masked/InputMaskedDocs.js.map +1 -0
  30. package/cjs/components/input-masked/InputMaskedHooks.js +7 -4
  31. package/cjs/components/input-masked/InputMaskedHooks.js.map +1 -1
  32. package/cjs/components/input-masked/MultiInputMask.js +2 -6
  33. package/cjs/components/input-masked/MultiInputMask.js.map +1 -1
  34. package/cjs/components/input-masked/style/dnb-input-masked.css +3 -0
  35. package/cjs/components/input-masked/style/dnb-input-masked.min.css +1 -1
  36. package/cjs/components/input-masked/style/dnb-input-masked.scss +5 -0
  37. package/cjs/components/number-format/NumberFormat.d.ts +1 -1
  38. package/cjs/components/number-format/NumberUtils.js +22 -14
  39. package/cjs/components/number-format/NumberUtils.js.map +1 -1
  40. package/cjs/components/slider/Slider.d.ts +1 -0
  41. package/cjs/components/slider/Slider.js +10 -1
  42. package/cjs/components/slider/Slider.js.map +1 -1
  43. package/cjs/components/slider/SliderInstance.js +20 -6
  44. package/cjs/components/slider/SliderInstance.js.map +1 -1
  45. package/cjs/components/slider/SliderMarker.d.ts +7 -0
  46. package/cjs/components/slider/SliderMarker.js +62 -0
  47. package/cjs/components/slider/SliderMarker.js.map +1 -0
  48. package/cjs/components/slider/SliderProvider.js +2 -1
  49. package/cjs/components/slider/SliderProvider.js.map +1 -1
  50. package/cjs/components/slider/style/dnb-slider.css +43 -2
  51. package/cjs/components/slider/style/dnb-slider.min.css +1 -1
  52. package/cjs/components/slider/style/dnb-slider.scss +44 -1
  53. package/cjs/components/slider/style/themes/dnb-slider-theme-sbanken.css +3 -0
  54. package/cjs/components/slider/style/themes/dnb-slider-theme-sbanken.min.css +1 -1
  55. package/cjs/components/slider/style/themes/dnb-slider-theme-sbanken.scss +4 -0
  56. package/cjs/components/slider/style/themes/dnb-slider-theme-ui.css +3 -0
  57. package/cjs/components/slider/style/themes/dnb-slider-theme-ui.min.css +1 -1
  58. package/cjs/components/slider/style/themes/dnb-slider-theme-ui.scss +5 -0
  59. package/cjs/components/slider/types.d.ts +6 -0
  60. package/cjs/components/slider/types.js.map +1 -1
  61. package/cjs/components/table/TableAccordion.js +3 -2
  62. package/cjs/components/table/TableAccordion.js.map +1 -1
  63. package/cjs/components/table/TableAccordionContent.js +3 -3
  64. package/cjs/components/table/TableAccordionContent.js.map +1 -1
  65. package/cjs/components/table/style/dnb-table.css +179 -112
  66. package/cjs/components/table/style/dnb-table.min.css +1 -1
  67. package/cjs/components/table/style/dnb-table.scss +60 -4
  68. package/cjs/components/table/style/table-accordion.scss +24 -57
  69. package/cjs/components/table/style/table-container.scss +9 -9
  70. package/cjs/components/table/style/table-mixins.scss +19 -2
  71. package/cjs/components/table/style/table-td.scss +82 -60
  72. package/cjs/components/table/style/table-th.scss +5 -30
  73. package/cjs/components/table/style/table-tr.scss +0 -20
  74. package/cjs/components/table/style/themes/dnb-table-theme-sbanken.css +24 -7
  75. package/cjs/components/table/style/themes/dnb-table-theme-sbanken.min.css +1 -1
  76. package/cjs/components/table/style/themes/dnb-table-theme-sbanken.scss +17 -12
  77. package/cjs/components/table/style/themes/dnb-table-theme-ui.css +14 -9
  78. package/cjs/components/table/style/themes/dnb-table-theme-ui.min.css +1 -1
  79. package/cjs/components/table/style/themes/dnb-table-theme-ui.scss +12 -22
  80. package/cjs/components/textarea/Textarea.d.ts +4 -10
  81. package/cjs/components/textarea/TextareaDocs.d.ts +2 -0
  82. package/cjs/components/textarea/TextareaDocs.js +105 -0
  83. package/cjs/components/textarea/TextareaDocs.js.map +1 -0
  84. package/cjs/components/textarea/style/dnb-textarea.css +1 -0
  85. package/cjs/components/textarea/style/dnb-textarea.min.css +1 -1
  86. package/cjs/components/textarea/style/dnb-textarea.scss +3 -0
  87. package/cjs/components/upload/UploadInfo.js +1 -1
  88. package/cjs/components/upload/UploadInfo.js.map +1 -1
  89. package/cjs/core/jest/jestSetupScreenshots.css +7 -0
  90. package/cjs/elements/lib.d.ts +1 -1
  91. package/cjs/elements/lists/Dl.d.ts +5 -1
  92. package/cjs/elements/lists/Dl.js +5 -4
  93. package/cjs/elements/lists/Dl.js.map +1 -1
  94. package/cjs/elements/lists/style/lists-mixins.scss +24 -1
  95. package/cjs/extensions/forms/DataContext/Context.d.ts +1 -0
  96. package/cjs/extensions/forms/DataContext/Context.js.map +1 -1
  97. package/cjs/extensions/forms/DataContext/Provider/Provider.js +58 -40
  98. package/cjs/extensions/forms/DataContext/Provider/Provider.js.map +1 -1
  99. package/cjs/extensions/forms/Field/Currency/Currency.js +1 -1
  100. package/cjs/extensions/forms/Field/Currency/Currency.js.map +1 -1
  101. package/cjs/extensions/forms/Field/Expiry/Expiry.js +1 -0
  102. package/cjs/extensions/forms/Field/Expiry/Expiry.js.map +1 -1
  103. package/cjs/extensions/forms/Field/FieldDocs.d.ts +3 -0
  104. package/cjs/extensions/forms/Field/FieldDocs.js +18 -0
  105. package/cjs/extensions/forms/Field/FieldDocs.js.map +1 -0
  106. package/cjs/extensions/forms/Field/Number/Number.d.ts +1 -0
  107. package/cjs/extensions/forms/Field/Number/Number.js +13 -7
  108. package/cjs/extensions/forms/Field/Number/Number.js.map +1 -1
  109. package/cjs/extensions/forms/Field/Number/NumberDocs.d.ts +2 -0
  110. package/cjs/extensions/forms/Field/Number/NumberDocs.js +92 -0
  111. package/cjs/extensions/forms/Field/Number/NumberDocs.js.map +1 -0
  112. package/cjs/extensions/forms/Field/Number/style/dnb-number.css +3 -1
  113. package/cjs/extensions/forms/Field/Number/style/dnb-number.min.css +1 -1
  114. package/cjs/extensions/forms/Field/Number/style/dnb-number.scss +4 -1
  115. package/cjs/extensions/forms/Field/Password/Password.d.ts +45 -0
  116. package/cjs/extensions/forms/Field/Password/Password.js +111 -0
  117. package/cjs/extensions/forms/Field/Password/Password.js.map +1 -0
  118. package/cjs/extensions/forms/Field/Password/index.d.ts +2 -0
  119. package/cjs/extensions/forms/Field/Password/index.js +27 -0
  120. package/cjs/extensions/forms/Field/Password/index.js.map +1 -0
  121. package/cjs/extensions/forms/Field/Password/style/dnb-password.css +6 -0
  122. package/cjs/extensions/forms/Field/Password/style/dnb-password.min.css +1 -0
  123. package/cjs/extensions/forms/Field/Password/style/dnb-password.scss +10 -0
  124. package/cjs/extensions/forms/Field/PostalCodeAndCity/PostalCodeAndCity.js +4 -5
  125. package/cjs/extensions/forms/Field/PostalCodeAndCity/PostalCodeAndCity.js.map +1 -1
  126. package/cjs/extensions/forms/Field/PostalCodeAndCity/style/dnb-postal-code-and-city.css +0 -12
  127. package/cjs/extensions/forms/Field/PostalCodeAndCity/style/dnb-postal-code-and-city.min.css +1 -1
  128. package/cjs/extensions/forms/Field/PostalCodeAndCity/style/dnb-postal-code-and-city.scss +0 -11
  129. package/cjs/extensions/forms/Field/Selection/Selection.d.ts +0 -1
  130. package/cjs/extensions/forms/Field/Selection/Selection.js +1 -9
  131. package/cjs/extensions/forms/Field/Selection/Selection.js.map +1 -1
  132. package/cjs/extensions/forms/Field/String/String.d.ts +20 -9
  133. package/cjs/extensions/forms/Field/String/String.js +52 -31
  134. package/cjs/extensions/forms/Field/String/String.js.map +1 -1
  135. package/cjs/extensions/forms/Field/String/StringDocs.d.ts +2 -0
  136. package/cjs/extensions/forms/Field/String/StringDocs.js +106 -0
  137. package/cjs/extensions/forms/Field/String/StringDocs.js.map +1 -0
  138. package/cjs/extensions/forms/Field/Toggle/Toggle.js +1 -1
  139. package/cjs/extensions/forms/Field/Toggle/Toggle.js.map +1 -1
  140. package/cjs/extensions/forms/Field/index.d.ts +1 -0
  141. package/cjs/extensions/forms/Field/index.js +7 -0
  142. package/cjs/extensions/forms/Field/index.js.map +1 -1
  143. package/cjs/extensions/forms/FieldBlock/FieldBlock.d.ts +8 -3
  144. package/cjs/extensions/forms/FieldBlock/FieldBlock.js +204 -62
  145. package/cjs/extensions/forms/FieldBlock/FieldBlock.js.map +1 -1
  146. package/cjs/extensions/forms/FieldBlock/FieldBlockContext.d.ts +40 -6
  147. package/cjs/extensions/forms/FieldBlock/FieldBlockContext.js.map +1 -1
  148. package/cjs/extensions/forms/FieldBlock/FieldBlockDocs.d.ts +2 -0
  149. package/cjs/extensions/forms/FieldBlock/FieldBlockDocs.js +60 -0
  150. package/cjs/extensions/forms/FieldBlock/FieldBlockDocs.js.map +1 -0
  151. package/cjs/extensions/forms/FieldBlock/style/dnb-field-block.css +27 -0
  152. package/cjs/extensions/forms/FieldBlock/style/dnb-field-block.min.css +1 -1
  153. package/cjs/extensions/forms/FieldBlock/style/dnb-field-block.scss +26 -0
  154. package/cjs/extensions/forms/Form/Appearance/Appearance.d.ts +7 -0
  155. package/cjs/extensions/forms/Form/Appearance/Appearance.js +38 -0
  156. package/cjs/extensions/forms/Form/Appearance/Appearance.js.map +1 -0
  157. package/cjs/extensions/forms/Form/Appearance/AppearanceDocs.d.ts +2 -0
  158. package/cjs/extensions/forms/Form/Appearance/AppearanceDocs.js +15 -0
  159. package/cjs/extensions/forms/Form/Appearance/AppearanceDocs.js.map +1 -0
  160. package/cjs/extensions/forms/Form/Appearance/index.d.ts +2 -0
  161. package/cjs/extensions/forms/Form/Appearance/index.js +27 -0
  162. package/cjs/extensions/forms/Form/Appearance/index.js.map +1 -0
  163. package/cjs/extensions/forms/Form/data-context/useData.js +1 -1
  164. package/cjs/extensions/forms/Form/data-context/useData.js.map +1 -1
  165. package/cjs/extensions/forms/Form/index.d.ts +1 -0
  166. package/cjs/extensions/forms/Form/index.js +7 -0
  167. package/cjs/extensions/forms/Form/index.js.map +1 -1
  168. package/cjs/extensions/forms/Value/Currency/Currency.js +2 -2
  169. package/cjs/extensions/forms/Value/Currency/Currency.js.map +1 -1
  170. package/cjs/extensions/forms/Value/SummaryList/SummaryList.d.ts +7 -0
  171. package/cjs/extensions/forms/Value/SummaryList/SummaryList.js +35 -0
  172. package/cjs/extensions/forms/Value/SummaryList/SummaryList.js.map +1 -0
  173. package/cjs/extensions/forms/Value/SummaryList/SummaryListContext.d.ts +7 -0
  174. package/cjs/extensions/forms/Value/SummaryList/SummaryListContext.js +12 -0
  175. package/cjs/extensions/forms/Value/SummaryList/SummaryListContext.js.map +1 -0
  176. package/cjs/extensions/forms/Value/SummaryList/index.d.ts +2 -0
  177. package/cjs/extensions/forms/Value/SummaryList/index.js +27 -0
  178. package/cjs/extensions/forms/Value/SummaryList/index.js.map +1 -0
  179. package/cjs/extensions/forms/Value/ValueDocs.d.ts +2 -0
  180. package/cjs/extensions/forms/Value/ValueDocs.js +40 -0
  181. package/cjs/extensions/forms/Value/ValueDocs.js.map +1 -0
  182. package/cjs/extensions/forms/Value/index.d.ts +1 -0
  183. package/cjs/extensions/forms/Value/index.js +7 -0
  184. package/cjs/extensions/forms/Value/index.js.map +1 -1
  185. package/cjs/extensions/forms/ValueBlock/ValueBlock.js +13 -3
  186. package/cjs/extensions/forms/ValueBlock/ValueBlock.js.map +1 -1
  187. package/cjs/extensions/forms/hooks/DataValueDocs.d.ts +3 -0
  188. package/cjs/extensions/forms/hooks/DataValueDocs.js +118 -0
  189. package/cjs/extensions/forms/hooks/DataValueDocs.js.map +1 -0
  190. package/cjs/extensions/forms/hooks/useDataValue.d.ts +6 -6
  191. package/cjs/extensions/forms/hooks/useDataValue.js +87 -18
  192. package/cjs/extensions/forms/hooks/useDataValue.js.map +1 -1
  193. package/cjs/extensions/forms/hooks/useId.js +1 -1
  194. package/cjs/extensions/forms/hooks/useId.js.map +1 -1
  195. package/cjs/extensions/forms/hooks/useMountEffect.js +1 -1
  196. package/cjs/extensions/forms/hooks/useMountEffect.js.map +1 -1
  197. package/cjs/extensions/forms/hooks/useUnmountEffect.d.ts +4 -0
  198. package/cjs/extensions/forms/hooks/useUnmountEffect.js +14 -0
  199. package/cjs/extensions/forms/hooks/useUnmountEffect.js.map +1 -0
  200. package/cjs/extensions/forms/style/dnb-forms.css +37 -13
  201. package/cjs/extensions/forms/style/dnb-forms.min.css +1 -1
  202. package/cjs/extensions/forms/types.d.ts +4 -4
  203. package/cjs/extensions/forms/types.js.map +1 -1
  204. package/cjs/shared/Context.d.ts +2 -0
  205. package/cjs/shared/Context.js.map +1 -1
  206. package/cjs/shared/Eufemia.d.ts +1 -1
  207. package/cjs/shared/Eufemia.js +2 -2
  208. package/cjs/shared/Eufemia.js.map +1 -1
  209. package/cjs/shared/component-helper.d.ts +1 -0
  210. package/cjs/shared/component-helper.js +10 -0
  211. package/cjs/shared/component-helper.js.map +1 -1
  212. package/cjs/shared/helpers/filterValidProps.d.ts +2 -2
  213. package/cjs/shared/helpers/filterValidProps.js +2 -2
  214. package/cjs/shared/helpers/filterValidProps.js.map +1 -1
  215. package/cjs/shared/helpers/withCamelCaseProps.d.ts +7 -1
  216. package/cjs/shared/helpers/withCamelCaseProps.js.map +1 -1
  217. package/cjs/shared/locales/en-GB.d.ts +5 -3
  218. package/cjs/shared/locales/en-GB.js +7 -5
  219. package/cjs/shared/locales/en-GB.js.map +1 -1
  220. package/cjs/shared/locales/en-US.d.ts +5 -3
  221. package/cjs/shared/locales/index.d.ts +10 -6
  222. package/cjs/shared/locales/nb-NO.d.ts +5 -3
  223. package/cjs/shared/locales/nb-NO.js +7 -5
  224. package/cjs/shared/locales/nb-NO.js.map +1 -1
  225. package/cjs/shared/types.d.ts +5 -0
  226. package/cjs/shared/types.js.map +1 -1
  227. package/cjs/style/dnb-ui-components.css +277 -135
  228. package/cjs/style/dnb-ui-components.min.css +3 -3
  229. package/cjs/style/dnb-ui-elements.css +25 -5
  230. package/cjs/style/dnb-ui-elements.min.css +1 -1
  231. package/cjs/style/dnb-ui-extensions.css +37 -13
  232. package/cjs/style/dnb-ui-extensions.min.css +1 -1
  233. package/cjs/style/dnb-ui-forms.css +37 -13
  234. package/cjs/style/dnb-ui-forms.min.css +1 -1
  235. package/cjs/style/dnb-ui-forms.scss +1 -0
  236. package/cjs/style/themes/theme-eiendom/eiendom-theme-basis.css +25 -5
  237. package/cjs/style/themes/theme-eiendom/eiendom-theme-basis.min.css +1 -1
  238. package/cjs/style/themes/theme-eiendom/eiendom-theme-components.css +331 -157
  239. package/cjs/style/themes/theme-eiendom/eiendom-theme-components.min.css +4 -4
  240. package/cjs/style/themes/theme-eiendom/eiendom-theme-elements.css +25 -5
  241. package/cjs/style/themes/theme-eiendom/eiendom-theme-elements.min.css +1 -1
  242. package/cjs/style/themes/theme-eiendom/eiendom-theme-extensions.css +37 -13
  243. package/cjs/style/themes/theme-eiendom/eiendom-theme-extensions.min.css +1 -1
  244. package/cjs/style/themes/theme-eiendom/eiendom-theme-forms.css +37 -13
  245. package/cjs/style/themes/theme-eiendom/eiendom-theme-forms.min.css +1 -1
  246. package/cjs/style/themes/theme-sbanken/sbanken-theme-basis.css +25 -5
  247. package/cjs/style/themes/theme-sbanken/sbanken-theme-basis.min.css +1 -1
  248. package/cjs/style/themes/theme-sbanken/sbanken-theme-components.css +341 -155
  249. package/cjs/style/themes/theme-sbanken/sbanken-theme-components.min.css +4 -4
  250. package/cjs/style/themes/theme-sbanken/sbanken-theme-elements.css +25 -5
  251. package/cjs/style/themes/theme-sbanken/sbanken-theme-elements.min.css +1 -1
  252. package/cjs/style/themes/theme-sbanken/sbanken-theme-extensions.css +37 -13
  253. package/cjs/style/themes/theme-sbanken/sbanken-theme-extensions.min.css +1 -1
  254. package/cjs/style/themes/theme-sbanken/sbanken-theme-forms.css +37 -13
  255. package/cjs/style/themes/theme-sbanken/sbanken-theme-forms.min.css +1 -1
  256. package/cjs/style/themes/theme-ui/ui-theme-basis.css +25 -5
  257. package/cjs/style/themes/theme-ui/ui-theme-basis.min.css +1 -1
  258. package/cjs/style/themes/theme-ui/ui-theme-components.css +331 -157
  259. package/cjs/style/themes/theme-ui/ui-theme-components.min.css +4 -4
  260. package/cjs/style/themes/theme-ui/ui-theme-elements.css +25 -5
  261. package/cjs/style/themes/theme-ui/ui-theme-elements.min.css +1 -1
  262. package/cjs/style/themes/theme-ui/ui-theme-extensions.css +37 -13
  263. package/cjs/style/themes/theme-ui/ui-theme-extensions.min.css +1 -1
  264. package/cjs/style/themes/theme-ui/ui-theme-forms.css +37 -13
  265. package/cjs/style/themes/theme-ui/ui-theme-forms.min.css +1 -1
  266. package/cjs/style/themes/theme-ui/ui-theme-tags.css +25 -5
  267. package/cjs/style/themes/theme-ui/ui-theme-tags.min.css +1 -1
  268. package/components/date-picker/DatePicker.d.ts +10 -1
  269. package/components/date-picker/DatePicker.js +5 -2
  270. package/components/date-picker/DatePicker.js.map +1 -1
  271. package/components/form-label/style/dnb-form-label.css +0 -7
  272. package/components/form-label/style/dnb-form-label.min.css +1 -1
  273. package/components/form-label/style/dnb-form-label.scss +0 -6
  274. package/components/form-status/style/dnb-form-status.css +11 -0
  275. package/components/form-status/style/dnb-form-status.min.css +1 -1
  276. package/components/form-status/style/dnb-form-status.scss +11 -0
  277. package/components/info-card/InfoCard.d.ts +6 -0
  278. package/components/info-card/InfoCard.js +4 -2
  279. package/components/info-card/InfoCard.js.map +1 -1
  280. package/components/info-card/style/dnb-info-card.css +3 -1
  281. package/components/info-card/style/dnb-info-card.min.css +1 -1
  282. package/components/info-card/style/dnb-info-card.scss +4 -2
  283. package/components/input/Input.d.ts +8 -8
  284. package/components/input/InputDocs.d.ts +2 -0
  285. package/components/input/InputDocs.js +158 -0
  286. package/components/input/InputDocs.js.map +1 -0
  287. package/components/input/InputPassword.d.ts +6 -17
  288. package/components/input/InputPassword.js +3 -81
  289. package/components/input/InputPassword.js.map +1 -1
  290. package/components/input-masked/InputMasked.d.ts +6 -93
  291. package/components/input-masked/InputMasked.js +3 -1
  292. package/components/input-masked/InputMasked.js.map +1 -1
  293. package/components/input-masked/InputMaskedDocs.d.ts +2 -0
  294. package/components/input-masked/InputMaskedDocs.js +78 -0
  295. package/components/input-masked/InputMaskedDocs.js.map +1 -0
  296. package/components/input-masked/InputMaskedHooks.js +7 -4
  297. package/components/input-masked/InputMaskedHooks.js.map +1 -1
  298. package/components/input-masked/MultiInputMask.js +2 -6
  299. package/components/input-masked/MultiInputMask.js.map +1 -1
  300. package/components/input-masked/style/dnb-input-masked.css +3 -0
  301. package/components/input-masked/style/dnb-input-masked.min.css +1 -1
  302. package/components/input-masked/style/dnb-input-masked.scss +5 -0
  303. package/components/number-format/NumberFormat.d.ts +1 -1
  304. package/components/number-format/NumberUtils.js +22 -14
  305. package/components/number-format/NumberUtils.js.map +1 -1
  306. package/components/slider/Slider.d.ts +1 -0
  307. package/components/slider/Slider.js +1 -0
  308. package/components/slider/Slider.js.map +1 -1
  309. package/components/slider/SliderInstance.js +18 -5
  310. package/components/slider/SliderInstance.js.map +1 -1
  311. package/components/slider/SliderMarker.d.ts +7 -0
  312. package/components/slider/SliderMarker.js +53 -0
  313. package/components/slider/SliderMarker.js.map +1 -0
  314. package/components/slider/SliderProvider.js +2 -1
  315. package/components/slider/SliderProvider.js.map +1 -1
  316. package/components/slider/style/dnb-slider.css +43 -2
  317. package/components/slider/style/dnb-slider.min.css +1 -1
  318. package/components/slider/style/dnb-slider.scss +44 -1
  319. package/components/slider/style/themes/dnb-slider-theme-sbanken.css +3 -0
  320. package/components/slider/style/themes/dnb-slider-theme-sbanken.min.css +1 -1
  321. package/components/slider/style/themes/dnb-slider-theme-sbanken.scss +4 -0
  322. package/components/slider/style/themes/dnb-slider-theme-ui.css +3 -0
  323. package/components/slider/style/themes/dnb-slider-theme-ui.min.css +1 -1
  324. package/components/slider/style/themes/dnb-slider-theme-ui.scss +5 -0
  325. package/components/slider/types.d.ts +6 -0
  326. package/components/slider/types.js.map +1 -1
  327. package/components/table/TableAccordion.js +3 -2
  328. package/components/table/TableAccordion.js.map +1 -1
  329. package/components/table/TableAccordionContent.js +3 -3
  330. package/components/table/TableAccordionContent.js.map +1 -1
  331. package/components/table/style/dnb-table.css +179 -112
  332. package/components/table/style/dnb-table.min.css +1 -1
  333. package/components/table/style/dnb-table.scss +60 -4
  334. package/components/table/style/table-accordion.scss +24 -57
  335. package/components/table/style/table-container.scss +9 -9
  336. package/components/table/style/table-mixins.scss +19 -2
  337. package/components/table/style/table-td.scss +82 -60
  338. package/components/table/style/table-th.scss +5 -30
  339. package/components/table/style/table-tr.scss +0 -20
  340. package/components/table/style/themes/dnb-table-theme-sbanken.css +24 -7
  341. package/components/table/style/themes/dnb-table-theme-sbanken.min.css +1 -1
  342. package/components/table/style/themes/dnb-table-theme-sbanken.scss +17 -12
  343. package/components/table/style/themes/dnb-table-theme-ui.css +14 -9
  344. package/components/table/style/themes/dnb-table-theme-ui.min.css +1 -1
  345. package/components/table/style/themes/dnb-table-theme-ui.scss +12 -22
  346. package/components/textarea/Textarea.d.ts +4 -10
  347. package/components/textarea/TextareaDocs.d.ts +2 -0
  348. package/components/textarea/TextareaDocs.js +98 -0
  349. package/components/textarea/TextareaDocs.js.map +1 -0
  350. package/components/textarea/style/dnb-textarea.css +1 -0
  351. package/components/textarea/style/dnb-textarea.min.css +1 -1
  352. package/components/textarea/style/dnb-textarea.scss +3 -0
  353. package/components/upload/UploadInfo.js +1 -1
  354. package/components/upload/UploadInfo.js.map +1 -1
  355. package/core/jest/jestSetupScreenshots.css +7 -0
  356. package/elements/lib.d.ts +1 -1
  357. package/elements/lists/Dl.d.ts +5 -1
  358. package/elements/lists/Dl.js +5 -4
  359. package/elements/lists/Dl.js.map +1 -1
  360. package/elements/lists/style/lists-mixins.scss +24 -1
  361. package/es/components/date-picker/DatePicker.d.ts +10 -1
  362. package/es/components/date-picker/DatePicker.js +5 -2
  363. package/es/components/date-picker/DatePicker.js.map +1 -1
  364. package/es/components/form-label/style/dnb-form-label.css +0 -7
  365. package/es/components/form-label/style/dnb-form-label.min.css +1 -1
  366. package/es/components/form-label/style/dnb-form-label.scss +0 -6
  367. package/es/components/form-status/style/dnb-form-status.css +11 -0
  368. package/es/components/form-status/style/dnb-form-status.min.css +1 -1
  369. package/es/components/form-status/style/dnb-form-status.scss +11 -0
  370. package/es/components/info-card/InfoCard.d.ts +6 -0
  371. package/es/components/info-card/InfoCard.js +4 -2
  372. package/es/components/info-card/InfoCard.js.map +1 -1
  373. package/es/components/info-card/style/dnb-info-card.css +3 -1
  374. package/es/components/info-card/style/dnb-info-card.min.css +1 -1
  375. package/es/components/info-card/style/dnb-info-card.scss +4 -2
  376. package/es/components/input/Input.d.ts +8 -8
  377. package/es/components/input/InputDocs.d.ts +2 -0
  378. package/es/components/input/InputDocs.js +158 -0
  379. package/es/components/input/InputDocs.js.map +1 -0
  380. package/es/components/input/InputPassword.d.ts +6 -17
  381. package/es/components/input/InputPassword.js +3 -81
  382. package/es/components/input/InputPassword.js.map +1 -1
  383. package/es/components/input-masked/InputMasked.d.ts +6 -93
  384. package/es/components/input-masked/InputMasked.js +3 -1
  385. package/es/components/input-masked/InputMasked.js.map +1 -1
  386. package/es/components/input-masked/InputMaskedDocs.d.ts +2 -0
  387. package/es/components/input-masked/InputMaskedDocs.js +78 -0
  388. package/es/components/input-masked/InputMaskedDocs.js.map +1 -0
  389. package/es/components/input-masked/InputMaskedHooks.js +7 -4
  390. package/es/components/input-masked/InputMaskedHooks.js.map +1 -1
  391. package/es/components/input-masked/MultiInputMask.js +2 -6
  392. package/es/components/input-masked/MultiInputMask.js.map +1 -1
  393. package/es/components/input-masked/style/dnb-input-masked.css +3 -0
  394. package/es/components/input-masked/style/dnb-input-masked.min.css +1 -1
  395. package/es/components/input-masked/style/dnb-input-masked.scss +5 -0
  396. package/es/components/number-format/NumberFormat.d.ts +1 -1
  397. package/es/components/number-format/NumberUtils.js +23 -14
  398. package/es/components/number-format/NumberUtils.js.map +1 -1
  399. package/es/components/slider/Slider.d.ts +1 -0
  400. package/es/components/slider/Slider.js +1 -0
  401. package/es/components/slider/Slider.js.map +1 -1
  402. package/es/components/slider/SliderInstance.js +17 -5
  403. package/es/components/slider/SliderInstance.js.map +1 -1
  404. package/es/components/slider/SliderMarker.d.ts +7 -0
  405. package/es/components/slider/SliderMarker.js +52 -0
  406. package/es/components/slider/SliderMarker.js.map +1 -0
  407. package/es/components/slider/SliderProvider.js +2 -1
  408. package/es/components/slider/SliderProvider.js.map +1 -1
  409. package/es/components/slider/style/dnb-slider.css +43 -2
  410. package/es/components/slider/style/dnb-slider.min.css +1 -1
  411. package/es/components/slider/style/dnb-slider.scss +44 -1
  412. package/es/components/slider/style/themes/dnb-slider-theme-sbanken.css +3 -0
  413. package/es/components/slider/style/themes/dnb-slider-theme-sbanken.min.css +1 -1
  414. package/es/components/slider/style/themes/dnb-slider-theme-sbanken.scss +4 -0
  415. package/es/components/slider/style/themes/dnb-slider-theme-ui.css +3 -0
  416. package/es/components/slider/style/themes/dnb-slider-theme-ui.min.css +1 -1
  417. package/es/components/slider/style/themes/dnb-slider-theme-ui.scss +5 -0
  418. package/es/components/slider/types.d.ts +6 -0
  419. package/es/components/slider/types.js.map +1 -1
  420. package/es/components/table/TableAccordion.js +3 -3
  421. package/es/components/table/TableAccordion.js.map +1 -1
  422. package/es/components/table/TableAccordionContent.js +3 -3
  423. package/es/components/table/TableAccordionContent.js.map +1 -1
  424. package/es/components/table/style/dnb-table.css +179 -112
  425. package/es/components/table/style/dnb-table.min.css +1 -1
  426. package/es/components/table/style/dnb-table.scss +60 -4
  427. package/es/components/table/style/table-accordion.scss +24 -57
  428. package/es/components/table/style/table-container.scss +9 -9
  429. package/es/components/table/style/table-mixins.scss +19 -2
  430. package/es/components/table/style/table-td.scss +82 -60
  431. package/es/components/table/style/table-th.scss +5 -30
  432. package/es/components/table/style/table-tr.scss +0 -20
  433. package/es/components/table/style/themes/dnb-table-theme-sbanken.css +24 -7
  434. package/es/components/table/style/themes/dnb-table-theme-sbanken.min.css +1 -1
  435. package/es/components/table/style/themes/dnb-table-theme-sbanken.scss +17 -12
  436. package/es/components/table/style/themes/dnb-table-theme-ui.css +14 -9
  437. package/es/components/table/style/themes/dnb-table-theme-ui.min.css +1 -1
  438. package/es/components/table/style/themes/dnb-table-theme-ui.scss +12 -22
  439. package/es/components/textarea/Textarea.d.ts +4 -10
  440. package/es/components/textarea/TextareaDocs.d.ts +2 -0
  441. package/es/components/textarea/TextareaDocs.js +98 -0
  442. package/es/components/textarea/TextareaDocs.js.map +1 -0
  443. package/es/components/textarea/style/dnb-textarea.css +1 -0
  444. package/es/components/textarea/style/dnb-textarea.min.css +1 -1
  445. package/es/components/textarea/style/dnb-textarea.scss +3 -0
  446. package/es/components/upload/UploadInfo.js +1 -1
  447. package/es/components/upload/UploadInfo.js.map +1 -1
  448. package/es/core/jest/jestSetupScreenshots.css +7 -0
  449. package/es/elements/lib.d.ts +1 -1
  450. package/es/elements/lists/Dl.d.ts +5 -1
  451. package/es/elements/lists/Dl.js +5 -4
  452. package/es/elements/lists/Dl.js.map +1 -1
  453. package/es/elements/lists/style/lists-mixins.scss +24 -1
  454. package/es/extensions/forms/DataContext/Context.d.ts +1 -0
  455. package/es/extensions/forms/DataContext/Context.js.map +1 -1
  456. package/es/extensions/forms/DataContext/Provider/Provider.js +58 -40
  457. package/es/extensions/forms/DataContext/Provider/Provider.js.map +1 -1
  458. package/es/extensions/forms/Field/Currency/Currency.js +1 -1
  459. package/es/extensions/forms/Field/Currency/Currency.js.map +1 -1
  460. package/es/extensions/forms/Field/Expiry/Expiry.js +1 -0
  461. package/es/extensions/forms/Field/Expiry/Expiry.js.map +1 -1
  462. package/es/extensions/forms/Field/FieldDocs.d.ts +3 -0
  463. package/es/extensions/forms/Field/FieldDocs.js +8 -0
  464. package/es/extensions/forms/Field/FieldDocs.js.map +1 -0
  465. package/es/extensions/forms/Field/Number/Number.d.ts +1 -0
  466. package/es/extensions/forms/Field/Number/Number.js +13 -7
  467. package/es/extensions/forms/Field/Number/Number.js.map +1 -1
  468. package/es/extensions/forms/Field/Number/NumberDocs.d.ts +2 -0
  469. package/es/extensions/forms/Field/Number/NumberDocs.js +85 -0
  470. package/es/extensions/forms/Field/Number/NumberDocs.js.map +1 -0
  471. package/es/extensions/forms/Field/Number/style/dnb-number.css +3 -1
  472. package/es/extensions/forms/Field/Number/style/dnb-number.min.css +1 -1
  473. package/es/extensions/forms/Field/Number/style/dnb-number.scss +4 -1
  474. package/es/extensions/forms/Field/Password/Password.d.ts +45 -0
  475. package/es/extensions/forms/Field/Password/Password.js +99 -0
  476. package/es/extensions/forms/Field/Password/Password.js.map +1 -0
  477. package/es/extensions/forms/Field/Password/index.d.ts +2 -0
  478. package/es/extensions/forms/Field/Password/index.js +3 -0
  479. package/es/extensions/forms/Field/Password/index.js.map +1 -0
  480. package/es/extensions/forms/Field/Password/style/dnb-password.css +6 -0
  481. package/es/extensions/forms/Field/Password/style/dnb-password.min.css +1 -0
  482. package/es/extensions/forms/Field/Password/style/dnb-password.scss +10 -0
  483. package/es/extensions/forms/Field/PostalCodeAndCity/PostalCodeAndCity.js +4 -5
  484. package/es/extensions/forms/Field/PostalCodeAndCity/PostalCodeAndCity.js.map +1 -1
  485. package/es/extensions/forms/Field/PostalCodeAndCity/style/dnb-postal-code-and-city.css +0 -12
  486. package/es/extensions/forms/Field/PostalCodeAndCity/style/dnb-postal-code-and-city.min.css +1 -1
  487. package/es/extensions/forms/Field/PostalCodeAndCity/style/dnb-postal-code-and-city.scss +0 -11
  488. package/es/extensions/forms/Field/Selection/Selection.d.ts +0 -1
  489. package/es/extensions/forms/Field/Selection/Selection.js +2 -11
  490. package/es/extensions/forms/Field/Selection/Selection.js.map +1 -1
  491. package/es/extensions/forms/Field/String/String.d.ts +20 -9
  492. package/es/extensions/forms/Field/String/String.js +52 -31
  493. package/es/extensions/forms/Field/String/String.js.map +1 -1
  494. package/es/extensions/forms/Field/String/StringDocs.d.ts +2 -0
  495. package/es/extensions/forms/Field/String/StringDocs.js +99 -0
  496. package/es/extensions/forms/Field/String/StringDocs.js.map +1 -0
  497. package/es/extensions/forms/Field/Toggle/Toggle.js +1 -1
  498. package/es/extensions/forms/Field/Toggle/Toggle.js.map +1 -1
  499. package/es/extensions/forms/Field/index.d.ts +1 -0
  500. package/es/extensions/forms/Field/index.js +1 -0
  501. package/es/extensions/forms/Field/index.js.map +1 -1
  502. package/es/extensions/forms/FieldBlock/FieldBlock.d.ts +8 -3
  503. package/es/extensions/forms/FieldBlock/FieldBlock.js +195 -58
  504. package/es/extensions/forms/FieldBlock/FieldBlock.js.map +1 -1
  505. package/es/extensions/forms/FieldBlock/FieldBlockContext.d.ts +40 -6
  506. package/es/extensions/forms/FieldBlock/FieldBlockContext.js.map +1 -1
  507. package/es/extensions/forms/FieldBlock/FieldBlockDocs.d.ts +2 -0
  508. package/es/extensions/forms/FieldBlock/FieldBlockDocs.js +53 -0
  509. package/es/extensions/forms/FieldBlock/FieldBlockDocs.js.map +1 -0
  510. package/es/extensions/forms/FieldBlock/style/dnb-field-block.css +27 -0
  511. package/es/extensions/forms/FieldBlock/style/dnb-field-block.min.css +1 -1
  512. package/es/extensions/forms/FieldBlock/style/dnb-field-block.scss +26 -0
  513. package/es/extensions/forms/Form/Appearance/Appearance.d.ts +7 -0
  514. package/es/extensions/forms/Form/Appearance/Appearance.js +30 -0
  515. package/es/extensions/forms/Form/Appearance/Appearance.js.map +1 -0
  516. package/es/extensions/forms/Form/Appearance/AppearanceDocs.d.ts +2 -0
  517. package/es/extensions/forms/Form/Appearance/AppearanceDocs.js +8 -0
  518. package/es/extensions/forms/Form/Appearance/AppearanceDocs.js.map +1 -0
  519. package/es/extensions/forms/Form/Appearance/index.d.ts +2 -0
  520. package/es/extensions/forms/Form/Appearance/index.js +3 -0
  521. package/es/extensions/forms/Form/Appearance/index.js.map +1 -0
  522. package/es/extensions/forms/Form/data-context/useData.js +1 -1
  523. package/es/extensions/forms/Form/data-context/useData.js.map +1 -1
  524. package/es/extensions/forms/Form/index.d.ts +1 -0
  525. package/es/extensions/forms/Form/index.js +1 -0
  526. package/es/extensions/forms/Form/index.js.map +1 -1
  527. package/es/extensions/forms/Value/Currency/Currency.js +2 -2
  528. package/es/extensions/forms/Value/Currency/Currency.js.map +1 -1
  529. package/es/extensions/forms/Value/SummaryList/SummaryList.d.ts +7 -0
  530. package/es/extensions/forms/Value/SummaryList/SummaryList.js +26 -0
  531. package/es/extensions/forms/Value/SummaryList/SummaryList.js.map +1 -0
  532. package/es/extensions/forms/Value/SummaryList/SummaryListContext.d.ts +7 -0
  533. package/es/extensions/forms/Value/SummaryList/SummaryListContext.js +4 -0
  534. package/es/extensions/forms/Value/SummaryList/SummaryListContext.js.map +1 -0
  535. package/es/extensions/forms/Value/SummaryList/index.d.ts +2 -0
  536. package/es/extensions/forms/Value/SummaryList/index.js +3 -0
  537. package/es/extensions/forms/Value/SummaryList/index.js.map +1 -0
  538. package/es/extensions/forms/Value/ValueDocs.d.ts +2 -0
  539. package/es/extensions/forms/Value/ValueDocs.js +33 -0
  540. package/es/extensions/forms/Value/ValueDocs.js.map +1 -0
  541. package/es/extensions/forms/Value/index.d.ts +1 -0
  542. package/es/extensions/forms/Value/index.js +1 -0
  543. package/es/extensions/forms/Value/index.js.map +1 -1
  544. package/es/extensions/forms/ValueBlock/ValueBlock.js +12 -4
  545. package/es/extensions/forms/ValueBlock/ValueBlock.js.map +1 -1
  546. package/es/extensions/forms/hooks/DataValueDocs.d.ts +3 -0
  547. package/es/extensions/forms/hooks/DataValueDocs.js +110 -0
  548. package/es/extensions/forms/hooks/DataValueDocs.js.map +1 -0
  549. package/es/extensions/forms/hooks/useDataValue.d.ts +6 -6
  550. package/es/extensions/forms/hooks/useDataValue.js +87 -18
  551. package/es/extensions/forms/hooks/useDataValue.js.map +1 -1
  552. package/es/extensions/forms/hooks/useId.js +1 -1
  553. package/es/extensions/forms/hooks/useId.js.map +1 -1
  554. package/es/extensions/forms/hooks/useMountEffect.js +1 -1
  555. package/es/extensions/forms/hooks/useMountEffect.js.map +1 -1
  556. package/es/extensions/forms/hooks/useUnmountEffect.d.ts +4 -0
  557. package/es/extensions/forms/hooks/useUnmountEffect.js +9 -0
  558. package/es/extensions/forms/hooks/useUnmountEffect.js.map +1 -0
  559. package/es/extensions/forms/style/dnb-forms.css +37 -13
  560. package/es/extensions/forms/style/dnb-forms.min.css +1 -1
  561. package/es/extensions/forms/types.d.ts +4 -4
  562. package/es/extensions/forms/types.js.map +1 -1
  563. package/es/shared/Context.d.ts +2 -0
  564. package/es/shared/Context.js.map +1 -1
  565. package/es/shared/Eufemia.d.ts +1 -1
  566. package/es/shared/Eufemia.js +2 -2
  567. package/es/shared/Eufemia.js.map +1 -1
  568. package/es/shared/component-helper.d.ts +1 -0
  569. package/es/shared/component-helper.js +6 -0
  570. package/es/shared/component-helper.js.map +1 -1
  571. package/es/shared/helpers/filterValidProps.d.ts +2 -2
  572. package/es/shared/helpers/filterValidProps.js +2 -2
  573. package/es/shared/helpers/filterValidProps.js.map +1 -1
  574. package/es/shared/helpers/withCamelCaseProps.d.ts +7 -1
  575. package/es/shared/helpers/withCamelCaseProps.js.map +1 -1
  576. package/es/shared/locales/en-GB.d.ts +5 -3
  577. package/es/shared/locales/en-GB.js +7 -5
  578. package/es/shared/locales/en-GB.js.map +1 -1
  579. package/es/shared/locales/en-US.d.ts +5 -3
  580. package/es/shared/locales/index.d.ts +10 -6
  581. package/es/shared/locales/nb-NO.d.ts +5 -3
  582. package/es/shared/locales/nb-NO.js +7 -5
  583. package/es/shared/locales/nb-NO.js.map +1 -1
  584. package/es/shared/types.d.ts +5 -0
  585. package/es/shared/types.js.map +1 -1
  586. package/es/style/dnb-ui-components.css +277 -135
  587. package/es/style/dnb-ui-components.min.css +3 -3
  588. package/es/style/dnb-ui-elements.css +25 -5
  589. package/es/style/dnb-ui-elements.min.css +1 -1
  590. package/es/style/dnb-ui-extensions.css +37 -13
  591. package/es/style/dnb-ui-extensions.min.css +1 -1
  592. package/es/style/dnb-ui-forms.css +37 -13
  593. package/es/style/dnb-ui-forms.min.css +1 -1
  594. package/es/style/dnb-ui-forms.scss +1 -0
  595. package/es/style/themes/theme-eiendom/eiendom-theme-basis.css +25 -5
  596. package/es/style/themes/theme-eiendom/eiendom-theme-basis.min.css +1 -1
  597. package/es/style/themes/theme-eiendom/eiendom-theme-components.css +331 -157
  598. package/es/style/themes/theme-eiendom/eiendom-theme-components.min.css +4 -4
  599. package/es/style/themes/theme-eiendom/eiendom-theme-elements.css +25 -5
  600. package/es/style/themes/theme-eiendom/eiendom-theme-elements.min.css +1 -1
  601. package/es/style/themes/theme-eiendom/eiendom-theme-extensions.css +37 -13
  602. package/es/style/themes/theme-eiendom/eiendom-theme-extensions.min.css +1 -1
  603. package/es/style/themes/theme-eiendom/eiendom-theme-forms.css +37 -13
  604. package/es/style/themes/theme-eiendom/eiendom-theme-forms.min.css +1 -1
  605. package/es/style/themes/theme-sbanken/sbanken-theme-basis.css +25 -5
  606. package/es/style/themes/theme-sbanken/sbanken-theme-basis.min.css +1 -1
  607. package/es/style/themes/theme-sbanken/sbanken-theme-components.css +341 -155
  608. package/es/style/themes/theme-sbanken/sbanken-theme-components.min.css +4 -4
  609. package/es/style/themes/theme-sbanken/sbanken-theme-elements.css +25 -5
  610. package/es/style/themes/theme-sbanken/sbanken-theme-elements.min.css +1 -1
  611. package/es/style/themes/theme-sbanken/sbanken-theme-extensions.css +37 -13
  612. package/es/style/themes/theme-sbanken/sbanken-theme-extensions.min.css +1 -1
  613. package/es/style/themes/theme-sbanken/sbanken-theme-forms.css +37 -13
  614. package/es/style/themes/theme-sbanken/sbanken-theme-forms.min.css +1 -1
  615. package/es/style/themes/theme-ui/ui-theme-basis.css +25 -5
  616. package/es/style/themes/theme-ui/ui-theme-basis.min.css +1 -1
  617. package/es/style/themes/theme-ui/ui-theme-components.css +331 -157
  618. package/es/style/themes/theme-ui/ui-theme-components.min.css +4 -4
  619. package/es/style/themes/theme-ui/ui-theme-elements.css +25 -5
  620. package/es/style/themes/theme-ui/ui-theme-elements.min.css +1 -1
  621. package/es/style/themes/theme-ui/ui-theme-extensions.css +37 -13
  622. package/es/style/themes/theme-ui/ui-theme-extensions.min.css +1 -1
  623. package/es/style/themes/theme-ui/ui-theme-forms.css +37 -13
  624. package/es/style/themes/theme-ui/ui-theme-forms.min.css +1 -1
  625. package/es/style/themes/theme-ui/ui-theme-tags.css +25 -5
  626. package/es/style/themes/theme-ui/ui-theme-tags.min.css +1 -1
  627. package/esm/dnb-ui-basis.min.mjs +1 -1
  628. package/esm/dnb-ui-components.min.mjs +1 -1
  629. package/esm/dnb-ui-elements.min.mjs +1 -1
  630. package/esm/dnb-ui-extensions.min.mjs +3 -3
  631. package/esm/dnb-ui-lib.min.mjs +1 -1
  632. package/extensions/forms/DataContext/Context.d.ts +1 -0
  633. package/extensions/forms/DataContext/Context.js.map +1 -1
  634. package/extensions/forms/DataContext/Provider/Provider.js +58 -40
  635. package/extensions/forms/DataContext/Provider/Provider.js.map +1 -1
  636. package/extensions/forms/Field/Currency/Currency.js +1 -1
  637. package/extensions/forms/Field/Currency/Currency.js.map +1 -1
  638. package/extensions/forms/Field/Expiry/Expiry.js +1 -0
  639. package/extensions/forms/Field/Expiry/Expiry.js.map +1 -1
  640. package/extensions/forms/Field/FieldDocs.d.ts +3 -0
  641. package/extensions/forms/Field/FieldDocs.js +8 -0
  642. package/extensions/forms/Field/FieldDocs.js.map +1 -0
  643. package/extensions/forms/Field/Number/Number.d.ts +1 -0
  644. package/extensions/forms/Field/Number/Number.js +13 -7
  645. package/extensions/forms/Field/Number/Number.js.map +1 -1
  646. package/extensions/forms/Field/Number/NumberDocs.d.ts +2 -0
  647. package/extensions/forms/Field/Number/NumberDocs.js +85 -0
  648. package/extensions/forms/Field/Number/NumberDocs.js.map +1 -0
  649. package/extensions/forms/Field/Number/style/dnb-number.css +3 -1
  650. package/extensions/forms/Field/Number/style/dnb-number.min.css +1 -1
  651. package/extensions/forms/Field/Number/style/dnb-number.scss +4 -1
  652. package/extensions/forms/Field/Password/Password.d.ts +45 -0
  653. package/extensions/forms/Field/Password/Password.js +99 -0
  654. package/extensions/forms/Field/Password/Password.js.map +1 -0
  655. package/extensions/forms/Field/Password/index.d.ts +2 -0
  656. package/extensions/forms/Field/Password/index.js +3 -0
  657. package/extensions/forms/Field/Password/index.js.map +1 -0
  658. package/extensions/forms/Field/Password/style/dnb-password.css +6 -0
  659. package/extensions/forms/Field/Password/style/dnb-password.min.css +1 -0
  660. package/extensions/forms/Field/Password/style/dnb-password.scss +10 -0
  661. package/extensions/forms/Field/PostalCodeAndCity/PostalCodeAndCity.js +4 -5
  662. package/extensions/forms/Field/PostalCodeAndCity/PostalCodeAndCity.js.map +1 -1
  663. package/extensions/forms/Field/PostalCodeAndCity/style/dnb-postal-code-and-city.css +0 -12
  664. package/extensions/forms/Field/PostalCodeAndCity/style/dnb-postal-code-and-city.min.css +1 -1
  665. package/extensions/forms/Field/PostalCodeAndCity/style/dnb-postal-code-and-city.scss +0 -11
  666. package/extensions/forms/Field/Selection/Selection.d.ts +0 -1
  667. package/extensions/forms/Field/Selection/Selection.js +2 -11
  668. package/extensions/forms/Field/Selection/Selection.js.map +1 -1
  669. package/extensions/forms/Field/String/String.d.ts +20 -9
  670. package/extensions/forms/Field/String/String.js +52 -31
  671. package/extensions/forms/Field/String/String.js.map +1 -1
  672. package/extensions/forms/Field/String/StringDocs.d.ts +2 -0
  673. package/extensions/forms/Field/String/StringDocs.js +99 -0
  674. package/extensions/forms/Field/String/StringDocs.js.map +1 -0
  675. package/extensions/forms/Field/Toggle/Toggle.js +1 -1
  676. package/extensions/forms/Field/Toggle/Toggle.js.map +1 -1
  677. package/extensions/forms/Field/index.d.ts +1 -0
  678. package/extensions/forms/Field/index.js +1 -0
  679. package/extensions/forms/Field/index.js.map +1 -1
  680. package/extensions/forms/FieldBlock/FieldBlock.d.ts +8 -3
  681. package/extensions/forms/FieldBlock/FieldBlock.js +203 -64
  682. package/extensions/forms/FieldBlock/FieldBlock.js.map +1 -1
  683. package/extensions/forms/FieldBlock/FieldBlockContext.d.ts +40 -6
  684. package/extensions/forms/FieldBlock/FieldBlockContext.js.map +1 -1
  685. package/extensions/forms/FieldBlock/FieldBlockDocs.d.ts +2 -0
  686. package/extensions/forms/FieldBlock/FieldBlockDocs.js +53 -0
  687. package/extensions/forms/FieldBlock/FieldBlockDocs.js.map +1 -0
  688. package/extensions/forms/FieldBlock/style/dnb-field-block.css +27 -0
  689. package/extensions/forms/FieldBlock/style/dnb-field-block.min.css +1 -1
  690. package/extensions/forms/FieldBlock/style/dnb-field-block.scss +26 -0
  691. package/extensions/forms/Form/Appearance/Appearance.d.ts +7 -0
  692. package/extensions/forms/Form/Appearance/Appearance.js +30 -0
  693. package/extensions/forms/Form/Appearance/Appearance.js.map +1 -0
  694. package/extensions/forms/Form/Appearance/AppearanceDocs.d.ts +2 -0
  695. package/extensions/forms/Form/Appearance/AppearanceDocs.js +8 -0
  696. package/extensions/forms/Form/Appearance/AppearanceDocs.js.map +1 -0
  697. package/extensions/forms/Form/Appearance/index.d.ts +2 -0
  698. package/extensions/forms/Form/Appearance/index.js +3 -0
  699. package/extensions/forms/Form/Appearance/index.js.map +1 -0
  700. package/extensions/forms/Form/data-context/useData.js +1 -1
  701. package/extensions/forms/Form/data-context/useData.js.map +1 -1
  702. package/extensions/forms/Form/index.d.ts +1 -0
  703. package/extensions/forms/Form/index.js +1 -0
  704. package/extensions/forms/Form/index.js.map +1 -1
  705. package/extensions/forms/Value/Currency/Currency.js +2 -2
  706. package/extensions/forms/Value/Currency/Currency.js.map +1 -1
  707. package/extensions/forms/Value/SummaryList/SummaryList.d.ts +7 -0
  708. package/extensions/forms/Value/SummaryList/SummaryList.js +26 -0
  709. package/extensions/forms/Value/SummaryList/SummaryList.js.map +1 -0
  710. package/extensions/forms/Value/SummaryList/SummaryListContext.d.ts +7 -0
  711. package/extensions/forms/Value/SummaryList/SummaryListContext.js +4 -0
  712. package/extensions/forms/Value/SummaryList/SummaryListContext.js.map +1 -0
  713. package/extensions/forms/Value/SummaryList/index.d.ts +2 -0
  714. package/extensions/forms/Value/SummaryList/index.js +3 -0
  715. package/extensions/forms/Value/SummaryList/index.js.map +1 -0
  716. package/extensions/forms/Value/ValueDocs.d.ts +2 -0
  717. package/extensions/forms/Value/ValueDocs.js +33 -0
  718. package/extensions/forms/Value/ValueDocs.js.map +1 -0
  719. package/extensions/forms/Value/index.d.ts +1 -0
  720. package/extensions/forms/Value/index.js +1 -0
  721. package/extensions/forms/Value/index.js.map +1 -1
  722. package/extensions/forms/ValueBlock/ValueBlock.js +12 -4
  723. package/extensions/forms/ValueBlock/ValueBlock.js.map +1 -1
  724. package/extensions/forms/hooks/DataValueDocs.d.ts +3 -0
  725. package/extensions/forms/hooks/DataValueDocs.js +110 -0
  726. package/extensions/forms/hooks/DataValueDocs.js.map +1 -0
  727. package/extensions/forms/hooks/useDataValue.d.ts +6 -6
  728. package/extensions/forms/hooks/useDataValue.js +87 -18
  729. package/extensions/forms/hooks/useDataValue.js.map +1 -1
  730. package/extensions/forms/hooks/useId.js +1 -1
  731. package/extensions/forms/hooks/useId.js.map +1 -1
  732. package/extensions/forms/hooks/useMountEffect.js +1 -1
  733. package/extensions/forms/hooks/useMountEffect.js.map +1 -1
  734. package/extensions/forms/hooks/useUnmountEffect.d.ts +4 -0
  735. package/extensions/forms/hooks/useUnmountEffect.js +9 -0
  736. package/extensions/forms/hooks/useUnmountEffect.js.map +1 -0
  737. package/extensions/forms/style/dnb-forms.css +37 -13
  738. package/extensions/forms/style/dnb-forms.min.css +1 -1
  739. package/extensions/forms/types.d.ts +4 -4
  740. package/extensions/forms/types.js.map +1 -1
  741. package/package.json +1 -1
  742. package/shared/Context.d.ts +2 -0
  743. package/shared/Context.js.map +1 -1
  744. package/shared/Eufemia.d.ts +1 -1
  745. package/shared/Eufemia.js +2 -2
  746. package/shared/Eufemia.js.map +1 -1
  747. package/shared/component-helper.d.ts +1 -0
  748. package/shared/component-helper.js +9 -0
  749. package/shared/component-helper.js.map +1 -1
  750. package/shared/helpers/filterValidProps.d.ts +2 -2
  751. package/shared/helpers/filterValidProps.js +2 -2
  752. package/shared/helpers/filterValidProps.js.map +1 -1
  753. package/shared/helpers/withCamelCaseProps.d.ts +7 -1
  754. package/shared/helpers/withCamelCaseProps.js.map +1 -1
  755. package/shared/locales/en-GB.d.ts +5 -3
  756. package/shared/locales/en-GB.js +7 -5
  757. package/shared/locales/en-GB.js.map +1 -1
  758. package/shared/locales/en-US.d.ts +5 -3
  759. package/shared/locales/index.d.ts +10 -6
  760. package/shared/locales/nb-NO.d.ts +5 -3
  761. package/shared/locales/nb-NO.js +7 -5
  762. package/shared/locales/nb-NO.js.map +1 -1
  763. package/shared/types.d.ts +5 -0
  764. package/shared/types.js.map +1 -1
  765. package/style/dnb-ui-components.css +277 -135
  766. package/style/dnb-ui-components.min.css +3 -3
  767. package/style/dnb-ui-elements.css +25 -5
  768. package/style/dnb-ui-elements.min.css +1 -1
  769. package/style/dnb-ui-extensions.css +37 -13
  770. package/style/dnb-ui-extensions.min.css +1 -1
  771. package/style/dnb-ui-forms.css +37 -13
  772. package/style/dnb-ui-forms.min.css +1 -1
  773. package/style/dnb-ui-forms.scss +1 -0
  774. package/style/themes/theme-eiendom/eiendom-theme-basis.css +25 -5
  775. package/style/themes/theme-eiendom/eiendom-theme-basis.min.css +1 -1
  776. package/style/themes/theme-eiendom/eiendom-theme-components.css +331 -157
  777. package/style/themes/theme-eiendom/eiendom-theme-components.min.css +4 -4
  778. package/style/themes/theme-eiendom/eiendom-theme-elements.css +25 -5
  779. package/style/themes/theme-eiendom/eiendom-theme-elements.min.css +1 -1
  780. package/style/themes/theme-eiendom/eiendom-theme-extensions.css +37 -13
  781. package/style/themes/theme-eiendom/eiendom-theme-extensions.min.css +1 -1
  782. package/style/themes/theme-eiendom/eiendom-theme-forms.css +37 -13
  783. package/style/themes/theme-eiendom/eiendom-theme-forms.min.css +1 -1
  784. package/style/themes/theme-sbanken/sbanken-theme-basis.css +25 -5
  785. package/style/themes/theme-sbanken/sbanken-theme-basis.min.css +1 -1
  786. package/style/themes/theme-sbanken/sbanken-theme-components.css +341 -155
  787. package/style/themes/theme-sbanken/sbanken-theme-components.min.css +4 -4
  788. package/style/themes/theme-sbanken/sbanken-theme-elements.css +25 -5
  789. package/style/themes/theme-sbanken/sbanken-theme-elements.min.css +1 -1
  790. package/style/themes/theme-sbanken/sbanken-theme-extensions.css +37 -13
  791. package/style/themes/theme-sbanken/sbanken-theme-extensions.min.css +1 -1
  792. package/style/themes/theme-sbanken/sbanken-theme-forms.css +37 -13
  793. package/style/themes/theme-sbanken/sbanken-theme-forms.min.css +1 -1
  794. package/style/themes/theme-ui/ui-theme-basis.css +25 -5
  795. package/style/themes/theme-ui/ui-theme-basis.min.css +1 -1
  796. package/style/themes/theme-ui/ui-theme-components.css +331 -157
  797. package/style/themes/theme-ui/ui-theme-components.min.css +4 -4
  798. package/style/themes/theme-ui/ui-theme-elements.css +25 -5
  799. package/style/themes/theme-ui/ui-theme-elements.min.css +1 -1
  800. package/style/themes/theme-ui/ui-theme-extensions.css +37 -13
  801. package/style/themes/theme-ui/ui-theme-extensions.min.css +1 -1
  802. package/style/themes/theme-ui/ui-theme-forms.css +37 -13
  803. package/style/themes/theme-ui/ui-theme-forms.min.css +1 -1
  804. package/style/themes/theme-ui/ui-theme-tags.css +25 -5
  805. package/style/themes/theme-ui/ui-theme-tags.min.css +1 -1
  806. package/umd/dnb-ui-basis.min.js +1 -1
  807. package/umd/dnb-ui-components.min.js +1 -1
  808. package/umd/dnb-ui-elements.min.js +1 -1
  809. package/umd/dnb-ui-extensions.min.js +3 -3
  810. package/umd/dnb-ui-lib.min.js +1 -1
@@ -1,7 +1,9 @@
1
1
  "use client";
2
2
 
3
+ import _objectWithoutProperties from "@babel/runtime/helpers/esm/objectWithoutProperties";
3
4
  import _extends from "@babel/runtime/helpers/esm/extends";
4
- var _SubtractButton, _AddButton, _AlignmentHelper, _SliderMainTrack, _SliderSuffix;
5
+ const _excluded = ["instance"];
6
+ var _SubtractButton, _AddButton, _AlignmentHelper, _SliderThumb, _SliderTrackBefore, _SliderTrackAfter, _SliderSuffix;
5
7
  import React from 'react';
6
8
  import classnames from 'classnames';
7
9
  import { isTrue } from '../../shared/component-helper';
@@ -40,7 +42,8 @@ export function SliderInstance() {
40
42
  stretch,
41
43
  skeleton,
42
44
  disabled,
43
- className
45
+ className,
46
+ extensions
44
47
  } = allProps;
45
48
  const mainParams = {
46
49
  className: classnames("dnb-slider dnb-form-component", createSkeletonClass(null, skeleton), createSpacingClasses(allProps), className, isVertical && 'dnb-slider--vertical', disabled && 'dnb-slider__state--disabled', shouldAnimate && 'dnb-slider__state--animate', !showButtons && 'dnb-slider--no-buttons', isTrue(stretch) && 'dnb-slider--stretch', label && labelDirection && `dnb-slider__label--${labelDirection}`, showStatus && 'dnb-slider__form-status', status && `dnb-slider__status--${statusState}`)
@@ -53,8 +56,8 @@ export function SliderInstance() {
53
56
  text: label,
54
57
  disabled: disabled,
55
58
  skeleton: skeleton,
56
- label_direction: labelDirection,
57
- sr_only: labelSrOnly
59
+ labelDirection: labelDirection,
60
+ srOnly: labelSrOnly
58
61
  }), React.createElement("span", {
59
62
  className: "dnb-slider__wrapper"
60
63
  }, _AlignmentHelper || (_AlignmentHelper = React.createElement(AlignmentHelper, null)), React.createElement(FormStatus, _extends({
@@ -68,7 +71,17 @@ export function SliderInstance() {
68
71
  skeleton: skeleton
69
72
  }, statusProps)), React.createElement("span", {
70
73
  className: "dnb-slider__inner"
71
- }, 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)))));
74
+ }, showButtons && (isReverse ? addButton : subtractButton), React.createElement(SliderMainTrack, null, extensions && Object.entries(extensions).map(_ref2 => {
75
+ let [key, _ref] = _ref2;
76
+ let {
77
+ instance
78
+ } = _ref,
79
+ options = _objectWithoutProperties(_ref, _excluded);
80
+ const Element = instance;
81
+ return React.createElement(Element, _extends({
82
+ key: key
83
+ }, options));
84
+ }), _SliderThumb || (_SliderThumb = React.createElement(SliderThumb, null)), _SliderTrackBefore || (_SliderTrackBefore = React.createElement(SliderTrackBefore, null)), _SliderTrackAfter || (_SliderTrackAfter = React.createElement(SliderTrackAfter, null))), showButtons && (isReverse ? subtractButton : addButton), _SliderSuffix || (_SliderSuffix = React.createElement(SliderSuffix, null)))));
72
85
  }
73
86
  function SliderSuffix() {
74
87
  const {
@@ -1 +1 @@
1
- {"version":3,"file":"SliderInstance.js","names":["React","classnames","isTrue","AlignmentHelper","createSpacingClasses","createSkeletonClass","skeletonDOMAttributes","Context","Suffix","Button","FormLabel","FormStatus","SliderMainTrack","SliderTrackBefore","SliderTrackAfter","SliderThumb","useSliderProps","clamp","getFormattedNumber","SliderInstance","context","useContext","isReverse","isVertical","showButtons","showStatus","shouldAnimate","allProps","id","label","labelSrOnly","labelDirection","status","statusProps","statusState","statusNoAnimation","globalStatus","stretch","skeleton","disabled","className","mainParams","subtractButton","_SubtractButton","createElement","SubtractButton","addButton","_AddButton","AddButton","text","label_direction","sr_only","_AlignmentHelper","_extends","show","text_id","state","no_animation","_SliderMainTrack","_SliderSuffix","SliderSuffix","suffix","emitChange","value","attributes","step","min","max","subtractTitle","numberFormat","onSubtractClickHandler","event","subtractParams","humanNumber","variant","icon","size","replace","aria","String","on_click","addTitle","onAddClickHandler","addParams"],"sources":["../../../../src/components/slider/SliderInstance.tsx"],"sourcesContent":["/**\n * Web Slider Component\n *\n */\n\nimport React from 'react'\nimport classnames from 'classnames'\nimport { isTrue } from '../../shared/component-helper'\nimport AlignmentHelper from '../../shared/AlignmentHelper'\nimport { createSpacingClasses } from '../space/SpacingHelper'\nimport {\n createSkeletonClass,\n skeletonDOMAttributes,\n} from '../skeleton/SkeletonHelper'\n\nimport Context from '../../shared/Context'\nimport Suffix from '../../shared/helpers/Suffix'\nimport Button from '../button/Button'\nimport FormLabel from '../form-label/FormLabel'\nimport FormStatus from '../form-status/FormStatus'\n\nimport {\n SliderMainTrack,\n SliderTrackBefore,\n SliderTrackAfter,\n} from './SliderTrack'\nimport { SliderThumb } from './SliderThumb'\nimport { useSliderProps } from './hooks/useSliderProps'\nimport { clamp, getFormattedNumber } from './SliderHelpers'\n\nexport function SliderInstance() {\n const context = React.useContext(Context)\n\n const {\n isReverse,\n isVertical,\n showButtons,\n showStatus,\n shouldAnimate,\n allProps,\n } = useSliderProps()\n\n const {\n id,\n label,\n labelSrOnly,\n labelDirection,\n status,\n statusProps,\n statusState,\n statusNoAnimation,\n globalStatus,\n stretch,\n skeleton,\n disabled,\n className,\n } = allProps\n\n const mainParams = {\n className: classnames(\n 'dnb-slider',\n isVertical && 'dnb-slider--vertical',\n disabled && 'dnb-slider__state--disabled',\n shouldAnimate && 'dnb-slider__state--animate',\n !showButtons && 'dnb-slider--no-buttons',\n isTrue(stretch) && 'dnb-slider--stretch',\n label && labelDirection && `dnb-slider__label--${labelDirection}`,\n showStatus && 'dnb-slider__form-status',\n status && `dnb-slider__status--${statusState}`,\n 'dnb-form-component',\n createSkeletonClass(null, skeleton),\n createSpacingClasses(allProps),\n className\n ),\n }\n\n const subtractButton = showButtons ? <SubtractButton /> : null\n const addButton = showButtons ? <AddButton /> : null\n\n skeletonDOMAttributes(mainParams, skeleton, context)\n\n return (\n <span {...mainParams}>\n {label && (\n // do not use \"for_id\" as the ID element is not a fo\n <FormLabel\n id={id + '-label'}\n text={label}\n disabled={disabled}\n skeleton={skeleton}\n label_direction={labelDirection}\n sr_only={labelSrOnly}\n />\n )}\n\n <span className=\"dnb-slider__wrapper\">\n <AlignmentHelper />\n\n <FormStatus\n show={showStatus}\n id={id + '-form-status'}\n globalStatus={globalStatus}\n text_id={id + '-status'} // used for \"aria-describedby\"\n text={status}\n state={statusState}\n no_animation={statusNoAnimation}\n skeleton={skeleton}\n {...statusProps}\n />\n\n <span className=\"dnb-slider__inner\">\n {showButtons && (isReverse ? addButton : subtractButton)}\n\n <SliderMainTrack>\n <SliderThumb />\n <SliderTrackBefore />\n <SliderTrackAfter />\n </SliderMainTrack>\n\n {showButtons && (isReverse ? subtractButton : addButton)}\n\n <SliderSuffix />\n </span>\n </span>\n </span>\n )\n}\n\nfunction SliderSuffix() {\n const { allProps } = useSliderProps()\n const { id, suffix } = allProps\n\n return suffix ? (\n <Suffix\n className=\"dnb-slider__suffix\"\n id={id + '-suffix'} // used for \"aria-describedby\"\n context={allProps}\n >\n {suffix}\n </Suffix>\n ) : null\n}\n\nfunction SubtractButton() {\n const { emitChange, value, attributes, allProps } = useSliderProps()\n const {\n step,\n min,\n max,\n disabled,\n skeleton,\n subtractTitle,\n numberFormat,\n } = allProps\n\n const onSubtractClickHandler = (event: MouseEvent | TouchEvent) => {\n emitChange(event, clamp((value as number) - (step || 1), min, max))\n }\n\n const subtractParams = {}\n\n if (typeof attributes['aria-hidden'] !== 'undefined') {\n subtractParams['aria-hidden'] = attributes['aria-hidden']\n }\n\n const humanNumber = getFormattedNumber(value as number, numberFormat)\n\n return (\n <Button\n className=\"dnb-slider__button dnb-slider__button--subtract\"\n variant=\"secondary\"\n icon=\"subtract\"\n size=\"small\"\n aria-label={subtractTitle?.replace(\n '%s',\n humanNumber.aria || String(value)\n )}\n on_click={onSubtractClickHandler}\n disabled={disabled}\n skeleton={skeleton}\n {...subtractParams}\n />\n )\n}\n\nfunction AddButton() {\n const { emitChange, value, attributes, allProps } = useSliderProps()\n const { step, min, max, disabled, skeleton, addTitle, numberFormat } =\n allProps\n\n const onAddClickHandler = (event: MouseEvent | TouchEvent) => {\n emitChange(event, clamp((value as number) + (step || 1), min, max))\n }\n\n const addParams = {}\n\n if (typeof attributes['aria-hidden'] !== 'undefined') {\n addParams['aria-hidden'] = attributes['aria-hidden']\n }\n\n const humanNumber = getFormattedNumber(value as number, numberFormat)\n\n return (\n <Button\n className=\"dnb-slider__button dnb-slider__button--add\"\n variant=\"secondary\"\n icon=\"add\"\n size=\"small\"\n aria-label={addTitle?.replace(\n '%s',\n humanNumber.aria || String(value)\n )}\n on_click={onAddClickHandler}\n disabled={disabled}\n skeleton={skeleton}\n {...addParams}\n />\n )\n}\n"],"mappings":"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"}
1
+ {"version":3,"file":"SliderInstance.js","names":["React","classnames","isTrue","AlignmentHelper","createSpacingClasses","createSkeletonClass","skeletonDOMAttributes","Context","Suffix","Button","FormLabel","FormStatus","SliderMainTrack","SliderTrackBefore","SliderTrackAfter","SliderThumb","useSliderProps","clamp","getFormattedNumber","SliderInstance","context","useContext","isReverse","isVertical","showButtons","showStatus","shouldAnimate","allProps","id","label","labelSrOnly","labelDirection","status","statusProps","statusState","statusNoAnimation","globalStatus","stretch","skeleton","disabled","className","extensions","mainParams","subtractButton","_SubtractButton","createElement","SubtractButton","addButton","_AddButton","AddButton","text","srOnly","_AlignmentHelper","_extends","show","text_id","state","no_animation","Object","entries","map","_ref2","key","_ref","instance","options","_objectWithoutProperties","_excluded","Element","_SliderThumb","_SliderTrackBefore","_SliderTrackAfter","_SliderSuffix","SliderSuffix","suffix","emitChange","value","attributes","step","min","max","subtractTitle","numberFormat","onSubtractClickHandler","event","subtractParams","humanNumber","variant","icon","size","replace","aria","String","on_click","addTitle","onAddClickHandler","addParams"],"sources":["../../../../src/components/slider/SliderInstance.tsx"],"sourcesContent":["/**\n * Web Slider Component\n *\n */\n\nimport React from 'react'\nimport classnames from 'classnames'\nimport { isTrue } from '../../shared/component-helper'\nimport AlignmentHelper from '../../shared/AlignmentHelper'\nimport { createSpacingClasses } from '../space/SpacingHelper'\nimport {\n createSkeletonClass,\n skeletonDOMAttributes,\n} from '../skeleton/SkeletonHelper'\n\nimport Context from '../../shared/Context'\nimport Suffix from '../../shared/helpers/Suffix'\nimport Button from '../button/Button'\nimport FormLabel from '../form-label/FormLabel'\nimport FormStatus from '../form-status/FormStatus'\n\nimport {\n SliderMainTrack,\n SliderTrackBefore,\n SliderTrackAfter,\n} from './SliderTrack'\nimport { SliderThumb } from './SliderThumb'\nimport { useSliderProps } from './hooks/useSliderProps'\nimport { clamp, getFormattedNumber } from './SliderHelpers'\n\nexport function SliderInstance() {\n const context = React.useContext(Context)\n\n const {\n isReverse,\n isVertical,\n showButtons,\n showStatus,\n shouldAnimate,\n allProps,\n } = useSliderProps()\n\n const {\n id,\n label,\n labelSrOnly,\n labelDirection,\n status,\n statusProps,\n statusState,\n statusNoAnimation,\n globalStatus,\n stretch,\n skeleton,\n disabled,\n className,\n extensions,\n } = allProps\n\n const mainParams = {\n className: classnames(\n 'dnb-slider',\n isVertical && 'dnb-slider--vertical',\n disabled && 'dnb-slider__state--disabled',\n shouldAnimate && 'dnb-slider__state--animate',\n !showButtons && 'dnb-slider--no-buttons',\n isTrue(stretch) && 'dnb-slider--stretch',\n label && labelDirection && `dnb-slider__label--${labelDirection}`,\n showStatus && 'dnb-slider__form-status',\n status && `dnb-slider__status--${statusState}`,\n 'dnb-form-component',\n createSkeletonClass(null, skeleton),\n createSpacingClasses(allProps),\n className\n ),\n }\n\n const subtractButton = showButtons ? <SubtractButton /> : null\n const addButton = showButtons ? <AddButton /> : null\n\n skeletonDOMAttributes(mainParams, skeleton, context)\n\n return (\n <span {...mainParams}>\n {label && (\n // do not use \"for_id\" as the ID element is not a fo\n <FormLabel\n id={id + '-label'}\n text={label}\n disabled={disabled}\n skeleton={skeleton}\n labelDirection={labelDirection}\n srOnly={labelSrOnly}\n />\n )}\n\n <span className=\"dnb-slider__wrapper\">\n <AlignmentHelper />\n\n <FormStatus\n show={showStatus}\n id={id + '-form-status'}\n globalStatus={globalStatus}\n text_id={id + '-status'} // used for \"aria-describedby\"\n text={status}\n state={statusState}\n no_animation={statusNoAnimation}\n skeleton={skeleton}\n {...statusProps}\n />\n\n <span className=\"dnb-slider__inner\">\n {showButtons && (isReverse ? addButton : subtractButton)}\n\n <SliderMainTrack>\n {extensions &&\n Object.entries(extensions).map(\n ([key, { instance, ...options }]) => {\n const Element = instance as React.ElementType\n return <Element key={key} {...options} />\n }\n )}\n <SliderThumb />\n <SliderTrackBefore />\n <SliderTrackAfter />\n </SliderMainTrack>\n\n {showButtons && (isReverse ? subtractButton : addButton)}\n\n <SliderSuffix />\n </span>\n </span>\n </span>\n )\n}\n\nfunction SliderSuffix() {\n const { allProps } = useSliderProps()\n const { id, suffix } = allProps\n\n return suffix ? (\n <Suffix\n className=\"dnb-slider__suffix\"\n id={id + '-suffix'} // used for \"aria-describedby\"\n context={allProps}\n >\n {suffix}\n </Suffix>\n ) : null\n}\n\nfunction SubtractButton() {\n const { emitChange, value, attributes, allProps } = useSliderProps()\n const {\n step,\n min,\n max,\n disabled,\n skeleton,\n subtractTitle,\n numberFormat,\n } = allProps\n\n const onSubtractClickHandler = (event: MouseEvent | TouchEvent) => {\n emitChange(event, clamp((value as number) - (step || 1), min, max))\n }\n\n const subtractParams = {}\n\n if (typeof attributes['aria-hidden'] !== 'undefined') {\n subtractParams['aria-hidden'] = attributes['aria-hidden']\n }\n\n const humanNumber = getFormattedNumber(value as number, numberFormat)\n\n return (\n <Button\n className=\"dnb-slider__button dnb-slider__button--subtract\"\n variant=\"secondary\"\n icon=\"subtract\"\n size=\"small\"\n aria-label={subtractTitle?.replace(\n '%s',\n humanNumber.aria || String(value)\n )}\n on_click={onSubtractClickHandler}\n disabled={disabled}\n skeleton={skeleton}\n {...subtractParams}\n />\n )\n}\n\nfunction AddButton() {\n const { emitChange, value, attributes, allProps } = useSliderProps()\n const { step, min, max, disabled, skeleton, addTitle, numberFormat } =\n allProps\n\n const onAddClickHandler = (event: MouseEvent | TouchEvent) => {\n emitChange(event, clamp((value as number) + (step || 1), min, max))\n }\n\n const addParams = {}\n\n if (typeof attributes['aria-hidden'] !== 'undefined') {\n addParams['aria-hidden'] = attributes['aria-hidden']\n }\n\n const humanNumber = getFormattedNumber(value as number, numberFormat)\n\n return (\n <Button\n className=\"dnb-slider__button dnb-slider__button--add\"\n variant=\"secondary\"\n icon=\"add\"\n size=\"small\"\n aria-label={addTitle?.replace(\n '%s',\n humanNumber.aria || String(value)\n )}\n on_click={onAddClickHandler}\n disabled={disabled}\n skeleton={skeleton}\n {...addParams}\n />\n )\n}\n"],"mappings":"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"}
@@ -0,0 +1,7 @@
1
+ import React from 'react';
2
+ type SliderMarkerProps = {
3
+ value: number;
4
+ text: React.ReactNode;
5
+ };
6
+ export default function SliderMarker({ value, text }: SliderMarkerProps): import("react/jsx-runtime").JSX.Element;
7
+ export {};
@@ -0,0 +1,53 @@
1
+ import _extends from "@babel/runtime/helpers/esm/extends";
2
+ import React, { useCallback } from 'react';
3
+ import { makeUniqueId } from '../../shared/component-helper';
4
+ import { useSliderProps } from './hooks/useSliderProps';
5
+ import { clamp, getFormattedNumber } from './SliderHelpers';
6
+ import Tooltip from '../tooltip/Tooltip';
7
+ export default function SliderMarker(_ref) {
8
+ let {
9
+ value,
10
+ text
11
+ } = _ref;
12
+ const {
13
+ isReverse,
14
+ isVertical,
15
+ allProps
16
+ } = useSliderProps();
17
+ const {
18
+ min,
19
+ max,
20
+ numberFormat
21
+ } = allProps;
22
+ const getParams = useCallback(() => {
23
+ const markerId = `slider-marker-${makeUniqueId()}`;
24
+ const {
25
+ number,
26
+ aria
27
+ } = getFormattedNumber(value, numberFormat || {});
28
+ let percent = clamp((value - min) * 100 / (max - min));
29
+ if (isReverse) {
30
+ percent = 100 - percent;
31
+ }
32
+ const params = {
33
+ id: markerId,
34
+ 'aria-label': aria,
35
+ tabIndex: 0,
36
+ style: {
37
+ [`${isVertical ? 'top' : 'left'}`]: `${percent}%`
38
+ },
39
+ children: React.createElement(Tooltip, {
40
+ targetSelector: `#${markerId}`
41
+ }, text || number)
42
+ };
43
+ return params;
44
+ }, [isReverse, isVertical, max, min, numberFormat, text, value]);
45
+ if (!value) {
46
+ return null;
47
+ }
48
+ const params = getParams();
49
+ return React.createElement("mark", _extends({
50
+ className: "dnb-slider__marker"
51
+ }, params));
52
+ }
53
+ //# sourceMappingURL=SliderMarker.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"SliderMarker.js","names":["React","useCallback","makeUniqueId","useSliderProps","clamp","getFormattedNumber","Tooltip","SliderMarker","_ref","value","text","isReverse","isVertical","allProps","min","max","numberFormat","getParams","markerId","number","aria","percent","params","id","tabIndex","style","children","createElement","targetSelector","_extends","className"],"sources":["../../../../src/components/slider/SliderMarker.tsx"],"sourcesContent":["import React, { useCallback } from 'react'\nimport { makeUniqueId } from '../../shared/component-helper'\nimport { useSliderProps } from './hooks/useSliderProps'\nimport { clamp, getFormattedNumber } from './SliderHelpers'\nimport Tooltip from '../tooltip/Tooltip'\n\ntype SliderMarkerProps = {\n value: number\n text: React.ReactNode\n}\n\nexport default function SliderMarker({ value, text }: SliderMarkerProps) {\n const { isReverse, isVertical, allProps } = useSliderProps()\n const { min, max, numberFormat } = allProps\n\n const getParams = useCallback(() => {\n const markerId = `slider-marker-${makeUniqueId()}`\n const { number, aria } = getFormattedNumber(value, numberFormat || {})\n\n let percent = clamp(((value - min) * 100) / (max - min))\n if (isReverse) {\n percent = 100 - percent\n }\n\n const params = {\n id: markerId,\n 'aria-label': aria,\n tabIndex: 0,\n style: {\n [`${isVertical ? 'top' : 'left'}`]: `${percent}%`,\n },\n children: (\n <Tooltip targetSelector={`#${markerId}`}>{text || number}</Tooltip>\n ),\n }\n\n return params\n }, [isReverse, isVertical, max, min, numberFormat, text, value])\n\n if (!value) {\n return null\n }\n\n const params = getParams()\n\n return <mark className=\"dnb-slider__marker\" {...params} />\n}\n"],"mappings":";AAAA,OAAOA,KAAK,IAAIC,WAAW,QAAQ,OAAO;AAC1C,SAASC,YAAY,QAAQ,+BAA+B;AAC5D,SAASC,cAAc,QAAQ,wBAAwB;AACvD,SAASC,KAAK,EAAEC,kBAAkB,QAAQ,iBAAiB;AAC3D,OAAOC,OAAO,MAAM,oBAAoB;AAOxC,eAAe,SAASC,YAAYA,CAAAC,IAAA,EAAqC;EAAA,IAApC;IAAEC,KAAK;IAAEC;EAAwB,CAAC,GAAAF,IAAA;EACrE,MAAM;IAAEG,SAAS;IAAEC,UAAU;IAAEC;EAAS,CAAC,GAAGV,cAAc,CAAC,CAAC;EAC5D,MAAM;IAAEW,GAAG;IAAEC,GAAG;IAAEC;EAAa,CAAC,GAAGH,QAAQ;EAE3C,MAAMI,SAAS,GAAGhB,WAAW,CAAC,MAAM;IAClC,MAAMiB,QAAQ,GAAI,iBAAgBhB,YAAY,CAAC,CAAE,EAAC;IAClD,MAAM;MAAEiB,MAAM;MAAEC;IAAK,CAAC,GAAGf,kBAAkB,CAACI,KAAK,EAAEO,YAAY,IAAI,CAAC,CAAC,CAAC;IAEtE,IAAIK,OAAO,GAAGjB,KAAK,CAAE,CAACK,KAAK,GAAGK,GAAG,IAAI,GAAG,IAAKC,GAAG,GAAGD,GAAG,CAAC,CAAC;IACxD,IAAIH,SAAS,EAAE;MACbU,OAAO,GAAG,GAAG,GAAGA,OAAO;IACzB;IAEA,MAAMC,MAAM,GAAG;MACbC,EAAE,EAAEL,QAAQ;MACZ,YAAY,EAAEE,IAAI;MAClBI,QAAQ,EAAE,CAAC;MACXC,KAAK,EAAE;QACL,CAAE,GAAEb,UAAU,GAAG,KAAK,GAAG,MAAO,EAAC,GAAI,GAAES,OAAQ;MACjD,CAAC;MACDK,QAAQ,EACN1B,KAAA,CAAA2B,aAAA,CAACrB,OAAO;QAACsB,cAAc,EAAG,IAAGV,QAAS;MAAE,GAAER,IAAI,IAAIS,MAAgB;IAEtE,CAAC;IAED,OAAOG,MAAM;EACf,CAAC,EAAE,CAACX,SAAS,EAAEC,UAAU,EAAEG,GAAG,EAAED,GAAG,EAAEE,YAAY,EAAEN,IAAI,EAAED,KAAK,CAAC,CAAC;EAEhE,IAAI,CAACA,KAAK,EAAE;IACV,OAAO,IAAI;EACb;EAEA,MAAMa,MAAM,GAAGL,SAAS,CAAC,CAAC;EAE1B,OAAOjB,KAAA,CAAA2B,aAAA,SAAAE,QAAA;IAAMC,SAAS,EAAC;EAAoB,GAAKR,MAAM,CAAG,CAAC;AAC5D"}
@@ -1,7 +1,7 @@
1
1
  "use client";
2
2
 
3
3
  import _objectWithoutProperties from "@babel/runtime/helpers/esm/objectWithoutProperties";
4
- const _excluded = ["step", "label", "labelDirection", "labelSrOnly", "status", "statusState", "statusProps", "statusNoAnimation", "globalStatus", "stretch", "suffix", "thumbTitle", "subtractTitle", "addTitle", "hideButtons", "multiThumbBehavior", "numberFormat", "tooltip", "alwaysShowTooltip", "skeleton", "max", "min", "disabled", "className", "id", "onChange", "onDragStart", "onDragEnd", "vertical", "reverse", "value", "children"];
4
+ const _excluded = ["step", "label", "labelDirection", "labelSrOnly", "status", "statusState", "statusProps", "statusNoAnimation", "globalStatus", "stretch", "suffix", "thumbTitle", "subtractTitle", "addTitle", "hideButtons", "multiThumbBehavior", "numberFormat", "tooltip", "alwaysShowTooltip", "skeleton", "max", "min", "extensions", "disabled", "className", "id", "onChange", "onDragStart", "onDragEnd", "vertical", "reverse", "value", "children"];
5
5
  import React from 'react';
6
6
  import { pickFormElementProps } from '../../shared/helpers/filterValidProps';
7
7
  import { isTrue, makeUniqueId, dispatchCustomElementEvent, getStatusState, extendPropsWithContext } from '../../shared/component-helper';
@@ -54,6 +54,7 @@ export function SliderProvider(localProps) {
54
54
  skeleton,
55
55
  max,
56
56
  min,
57
+ extensions,
57
58
  disabled,
58
59
  className,
59
60
  id,
@@ -1 +1 @@
1
- {"version":3,"file":"SliderProvider.js","names":["React","pickFormElementProps","isTrue","makeUniqueId","dispatchCustomElementEvent","getStatusState","extendPropsWithContext","Context","closestIndex","getFormattedNumber","getUpdatedValues","roundValue","convertSnakeCaseProps","defaultProps","statusState","addTitle","subtractTitle","min","max","value","multiThumbBehavior","SliderContext","createContext","SliderProvider","localProps","context","useContext","allProps","skeleton","getTranslation","Slider","FormRow","vertical","formElement","_id","useState","id","step","label","labelDirection","labelSrOnly","status","statusProps","statusNoAnimation","globalStatus","stretch","suffix","thumbTitle","title","hideButtons","numberFormat","tooltip","alwaysShowTooltip","disabled","className","onChange","onDragStart","onDragEnd","_vertical","reverse","_reverse","_value","children","_children","attributes","_objectWithoutProperties","_excluded","setValue","externValue","updateExternValue","realtimeValue","useRef","thumbState","setThumbState","thumbIndex","shouldAnimate","updateAnimateState","isVertical","isReverse","isMulti","Array","isArray","setThumbIndex","index","isNaN","current","getAndUpdateCurrentIndex","currentValue","currentIndex","updateValue","emitChange","event","rawValue","numberValue","multiValues","lower","upper","obj","number","useEffect","hasChanged","some","val","i","trackRef","animationTimeout","setShouldAnimate","state","clearTimeout","setTimeout","showStatus","showButtons","values","createElement","Provider"],"sources":["../../../../src/components/slider/SliderProvider.tsx"],"sourcesContent":["import React from 'react'\nimport { pickFormElementProps } from '../../shared/helpers/filterValidProps'\nimport {\n isTrue,\n makeUniqueId,\n dispatchCustomElementEvent,\n getStatusState,\n extendPropsWithContext,\n} from '../../shared/component-helper'\n\nimport Context from '../../shared/Context'\nimport {\n closestIndex,\n getFormattedNumber,\n getUpdatedValues,\n roundValue,\n} from './SliderHelpers'\n\nimport type {\n ValueTypes,\n onChangeEventProps,\n SliderAllProps,\n SliderContextTypes,\n ThumbStateEnums,\n} from './types'\nimport { convertSnakeCaseProps } from '../../shared/helpers/withSnakeCaseProps'\n\nconst defaultProps = {\n statusState: 'error',\n addTitle: '+',\n subtractTitle: '−',\n min: 0,\n max: 100,\n value: -1,\n multiThumbBehavior: 'swap',\n}\n\nexport const SliderContext = React.createContext<SliderContextTypes>(null)\n\nexport function SliderProvider(localProps: SliderAllProps) {\n const context = React.useContext(Context)\n const allProps = convertSnakeCaseProps(\n extendPropsWithContext(\n localProps,\n defaultProps,\n { skeleton: context?.skeleton },\n context?.getTranslation(localProps).Slider,\n // Deprecated – can be removed in v11\n pickFormElementProps(\n context?.FormRow,\n\n /**\n * Exclude some props\n */\n {\n vertical: null,\n }\n ),\n pickFormElementProps(\n context?.formElement,\n\n /**\n * Exclude some props\n */\n {\n vertical: null,\n }\n ),\n context?.Slider\n )\n )\n\n const [_id] = React.useState(makeUniqueId)\n if (!allProps.id) {\n allProps.id = _id\n }\n\n const {\n step,\n label, // eslint-disable-line\n labelDirection, // eslint-disable-line\n labelSrOnly, // eslint-disable-line\n status, // eslint-disable-line\n statusState, // eslint-disable-line\n statusProps, // eslint-disable-line\n statusNoAnimation, // eslint-disable-line\n globalStatus, // eslint-disable-line\n stretch, // eslint-disable-line\n suffix, // eslint-disable-line\n thumbTitle: title, // eslint-disable-line\n subtractTitle, // eslint-disable-line\n addTitle, // eslint-disable-line\n hideButtons, // eslint-disable-line\n multiThumbBehavior,\n numberFormat,\n tooltip, // eslint-disable-line\n alwaysShowTooltip, // eslint-disable-line\n skeleton,\n max, // eslint-disable-line\n min, // eslint-disable-line\n disabled,\n className, // eslint-disable-line\n id, // eslint-disable-line\n onChange,\n onDragStart, // eslint-disable-line\n onDragEnd, // eslint-disable-line\n vertical: _vertical,\n reverse: _reverse,\n value: _value,\n children: _children, // eslint-disable-line\n\n ...attributes // Find a DOM element to forwards props too when multi buttons are supported\n } = allProps\n\n const [value, setValue] = React.useState<ValueTypes>(_value)\n const [externValue, updateExternValue] =\n React.useState<ValueTypes>(_value)\n const realtimeValue = React.useRef<ValueTypes>(_value)\n const [thumbState, setThumbState] =\n React.useState<ThumbStateEnums>('initial')\n const thumbIndex = React.useRef<number>(-1)\n const [shouldAnimate, updateAnimateState] =\n React.useState<boolean>(false)\n const [isVertical] = React.useState(isTrue(_vertical))\n const [isReverse] = React.useState(\n isVertical ? !isTrue(_reverse) : isTrue(_reverse)\n )\n const isMulti = Array.isArray(value)\n const setThumbIndex = (index: number) => {\n if (!isNaN(index)) {\n thumbIndex.current = index\n }\n }\n\n const getAndUpdateCurrentIndex = (currentValue: number) => {\n let currentIndex = null\n\n if (thumbIndex.current > -1) {\n currentIndex = thumbIndex.current\n } else {\n currentIndex = closestIndex(currentValue, value as Array<number>)\n setThumbIndex(currentIndex)\n }\n\n return currentIndex\n }\n\n const updateValue = (value: ValueTypes) => {\n setValue(value)\n realtimeValue.current = value\n }\n\n const emitChange = (\n event: MouseEvent | TouchEvent,\n rawValue: number\n ) => {\n if (disabled || isTrue(skeleton)) {\n return\n }\n\n let numberValue = roundValue(rawValue, step)\n let multiValues: ValueTypes = numberValue\n\n if (numberValue >= min) {\n if (isMulti) {\n const currentIndex = getAndUpdateCurrentIndex(numberValue)\n const lower = realtimeValue.current[currentIndex - 1]\n const upper = realtimeValue.current[currentIndex + 1]\n\n if (multiThumbBehavior === 'omit') {\n if (numberValue < lower) {\n numberValue = lower\n }\n if (numberValue > upper) {\n numberValue = upper\n }\n }\n\n multiValues = getUpdatedValues(\n multiThumbBehavior === 'push'\n ? (realtimeValue.current as Array<number>)\n : value,\n currentIndex,\n numberValue\n )\n\n if (multiThumbBehavior === 'push') {\n if (typeof lower !== 'undefined' && numberValue < lower) {\n multiValues[currentIndex - 1] = numberValue\n }\n if (typeof upper !== 'undefined' && numberValue >= upper) {\n multiValues[currentIndex + 1] = numberValue\n }\n }\n\n if (numberValue === realtimeValue.current[currentIndex]) {\n return // stop here\n }\n } else if (numberValue === realtimeValue.current) {\n return // stop here\n }\n\n if (typeof onChange === 'function') {\n const obj: onChangeEventProps = {\n value: multiValues,\n rawValue,\n event,\n number: null,\n }\n\n if (numberFormat) {\n obj.number = getFormattedNumber(numberValue, numberFormat).number\n }\n\n dispatchCustomElementEvent(allProps, 'onChange', obj)\n }\n\n updateValue(multiValues)\n }\n }\n\n React.useEffect(() => {\n if (isMulti) {\n const hasChanged = (_value as Array<number>).some((val, i) => {\n return val !== externValue[i]\n })\n\n if (hasChanged) {\n updateValue(_value)\n updateExternValue(_value)\n }\n } else if (_value !== externValue) {\n updateValue(_value)\n updateExternValue(_value)\n }\n\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [_value, isMulti])\n\n const trackRef = React.useRef<HTMLElement>()\n\n const animationTimeout = React.useRef<NodeJS.Timeout>()\n const setShouldAnimate = (state: boolean) => {\n updateAnimateState(state)\n clearTimeout(animationTimeout.current)\n if (state) {\n animationTimeout.current = setTimeout(\n () => updateAnimateState(false),\n 250\n )\n }\n }\n\n const showStatus = getStatusState(status)\n const showButtons = !isMulti && !isTrue(hideButtons)\n const values = (isMulti ? value : [value]) as Array<number>\n\n return (\n <SliderContext.Provider\n value={{\n isMulti,\n isReverse,\n isVertical,\n shouldAnimate,\n value,\n values,\n setValue,\n attributes,\n showStatus,\n showButtons,\n thumbState,\n setThumbState,\n thumbIndex,\n setThumbIndex,\n emitChange,\n allProps,\n trackRef,\n setShouldAnimate,\n animationTimeout,\n }}\n >\n {localProps.children}\n </SliderContext.Provider>\n )\n}\n"],"mappings":"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"}
1
+ {"version":3,"file":"SliderProvider.js","names":["React","pickFormElementProps","isTrue","makeUniqueId","dispatchCustomElementEvent","getStatusState","extendPropsWithContext","Context","closestIndex","getFormattedNumber","getUpdatedValues","roundValue","convertSnakeCaseProps","defaultProps","statusState","addTitle","subtractTitle","min","max","value","multiThumbBehavior","SliderContext","createContext","SliderProvider","localProps","context","useContext","allProps","skeleton","getTranslation","Slider","FormRow","vertical","formElement","_id","useState","id","step","label","labelDirection","labelSrOnly","status","statusProps","statusNoAnimation","globalStatus","stretch","suffix","thumbTitle","title","hideButtons","numberFormat","tooltip","alwaysShowTooltip","extensions","disabled","className","onChange","onDragStart","onDragEnd","_vertical","reverse","_reverse","_value","children","_children","attributes","_objectWithoutProperties","_excluded","setValue","externValue","updateExternValue","realtimeValue","useRef","thumbState","setThumbState","thumbIndex","shouldAnimate","updateAnimateState","isVertical","isReverse","isMulti","Array","isArray","setThumbIndex","index","isNaN","current","getAndUpdateCurrentIndex","currentValue","currentIndex","updateValue","emitChange","event","rawValue","numberValue","multiValues","lower","upper","obj","number","useEffect","hasChanged","some","val","i","trackRef","animationTimeout","setShouldAnimate","state","clearTimeout","setTimeout","showStatus","showButtons","values","createElement","Provider"],"sources":["../../../../src/components/slider/SliderProvider.tsx"],"sourcesContent":["import React from 'react'\nimport { pickFormElementProps } from '../../shared/helpers/filterValidProps'\nimport {\n isTrue,\n makeUniqueId,\n dispatchCustomElementEvent,\n getStatusState,\n extendPropsWithContext,\n} from '../../shared/component-helper'\n\nimport Context from '../../shared/Context'\nimport {\n closestIndex,\n getFormattedNumber,\n getUpdatedValues,\n roundValue,\n} from './SliderHelpers'\n\nimport type {\n ValueTypes,\n onChangeEventProps,\n SliderAllProps,\n SliderContextTypes,\n ThumbStateEnums,\n} from './types'\nimport { convertSnakeCaseProps } from '../../shared/helpers/withSnakeCaseProps'\n\nconst defaultProps = {\n statusState: 'error',\n addTitle: '+',\n subtractTitle: '−',\n min: 0,\n max: 100,\n value: -1,\n multiThumbBehavior: 'swap',\n}\n\nexport const SliderContext = React.createContext<SliderContextTypes>(null)\n\nexport function SliderProvider(localProps: SliderAllProps) {\n const context = React.useContext(Context)\n const allProps = convertSnakeCaseProps(\n extendPropsWithContext(\n localProps,\n defaultProps,\n { skeleton: context?.skeleton },\n context?.getTranslation(localProps).Slider,\n // Deprecated – can be removed in v11\n pickFormElementProps(\n context?.FormRow,\n\n /**\n * Exclude some props\n */\n {\n vertical: null,\n }\n ),\n pickFormElementProps(\n context?.formElement,\n\n /**\n * Exclude some props\n */\n {\n vertical: null,\n }\n ),\n context?.Slider\n )\n )\n\n const [_id] = React.useState(makeUniqueId)\n if (!allProps.id) {\n allProps.id = _id\n }\n\n const {\n step,\n label, // eslint-disable-line\n labelDirection, // eslint-disable-line\n labelSrOnly, // eslint-disable-line\n status, // eslint-disable-line\n statusState, // eslint-disable-line\n statusProps, // eslint-disable-line\n statusNoAnimation, // eslint-disable-line\n globalStatus, // eslint-disable-line\n stretch, // eslint-disable-line\n suffix, // eslint-disable-line\n thumbTitle: title, // eslint-disable-line\n subtractTitle, // eslint-disable-line\n addTitle, // eslint-disable-line\n hideButtons, // eslint-disable-line\n multiThumbBehavior,\n numberFormat,\n tooltip, // eslint-disable-line\n alwaysShowTooltip, // eslint-disable-line\n skeleton,\n max, // eslint-disable-line\n min, // eslint-disable-line\n extensions, // eslint-disable-line\n disabled,\n className, // eslint-disable-line\n id, // eslint-disable-line\n onChange,\n onDragStart, // eslint-disable-line\n onDragEnd, // eslint-disable-line\n vertical: _vertical,\n reverse: _reverse,\n value: _value,\n children: _children, // eslint-disable-line\n\n ...attributes // Find a DOM element to forwards props too when multi buttons are supported\n } = allProps\n\n const [value, setValue] = React.useState<ValueTypes>(_value)\n const [externValue, updateExternValue] =\n React.useState<ValueTypes>(_value)\n const realtimeValue = React.useRef<ValueTypes>(_value)\n const [thumbState, setThumbState] =\n React.useState<ThumbStateEnums>('initial')\n const thumbIndex = React.useRef<number>(-1)\n const [shouldAnimate, updateAnimateState] =\n React.useState<boolean>(false)\n const [isVertical] = React.useState(isTrue(_vertical))\n const [isReverse] = React.useState(\n isVertical ? !isTrue(_reverse) : isTrue(_reverse)\n )\n const isMulti = Array.isArray(value)\n const setThumbIndex = (index: number) => {\n if (!isNaN(index)) {\n thumbIndex.current = index\n }\n }\n\n const getAndUpdateCurrentIndex = (currentValue: number) => {\n let currentIndex = null\n\n if (thumbIndex.current > -1) {\n currentIndex = thumbIndex.current\n } else {\n currentIndex = closestIndex(currentValue, value as Array<number>)\n setThumbIndex(currentIndex)\n }\n\n return currentIndex\n }\n\n const updateValue = (value: ValueTypes) => {\n setValue(value)\n realtimeValue.current = value\n }\n\n const emitChange = (\n event: MouseEvent | TouchEvent,\n rawValue: number\n ) => {\n if (disabled || isTrue(skeleton)) {\n return\n }\n\n let numberValue = roundValue(rawValue, step)\n let multiValues: ValueTypes = numberValue\n\n if (numberValue >= min) {\n if (isMulti) {\n const currentIndex = getAndUpdateCurrentIndex(numberValue)\n const lower = realtimeValue.current[currentIndex - 1]\n const upper = realtimeValue.current[currentIndex + 1]\n\n if (multiThumbBehavior === 'omit') {\n if (numberValue < lower) {\n numberValue = lower\n }\n if (numberValue > upper) {\n numberValue = upper\n }\n }\n\n multiValues = getUpdatedValues(\n multiThumbBehavior === 'push'\n ? (realtimeValue.current as Array<number>)\n : value,\n currentIndex,\n numberValue\n )\n\n if (multiThumbBehavior === 'push') {\n if (typeof lower !== 'undefined' && numberValue < lower) {\n multiValues[currentIndex - 1] = numberValue\n }\n if (typeof upper !== 'undefined' && numberValue >= upper) {\n multiValues[currentIndex + 1] = numberValue\n }\n }\n\n if (numberValue === realtimeValue.current[currentIndex]) {\n return // stop here\n }\n } else if (numberValue === realtimeValue.current) {\n return // stop here\n }\n\n if (typeof onChange === 'function') {\n const obj: onChangeEventProps = {\n value: multiValues,\n rawValue,\n event,\n number: null,\n }\n\n if (numberFormat) {\n obj.number = getFormattedNumber(numberValue, numberFormat).number\n }\n\n dispatchCustomElementEvent(allProps, 'onChange', obj)\n }\n\n updateValue(multiValues)\n }\n }\n\n React.useEffect(() => {\n if (isMulti) {\n const hasChanged = (_value as Array<number>).some((val, i) => {\n return val !== externValue[i]\n })\n\n if (hasChanged) {\n updateValue(_value)\n updateExternValue(_value)\n }\n } else if (_value !== externValue) {\n updateValue(_value)\n updateExternValue(_value)\n }\n\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [_value, isMulti])\n\n const trackRef = React.useRef<HTMLElement>()\n\n const animationTimeout = React.useRef<NodeJS.Timeout>()\n const setShouldAnimate = (state: boolean) => {\n updateAnimateState(state)\n clearTimeout(animationTimeout.current)\n if (state) {\n animationTimeout.current = setTimeout(\n () => updateAnimateState(false),\n 250\n )\n }\n }\n\n const showStatus = getStatusState(status)\n const showButtons = !isMulti && !isTrue(hideButtons)\n const values = (isMulti ? value : [value]) as Array<number>\n\n return (\n <SliderContext.Provider\n value={{\n isMulti,\n isReverse,\n isVertical,\n shouldAnimate,\n value,\n values,\n setValue,\n attributes,\n showStatus,\n showButtons,\n thumbState,\n setThumbState,\n thumbIndex,\n setThumbIndex,\n emitChange,\n allProps,\n trackRef,\n setShouldAnimate,\n animationTimeout,\n }}\n >\n {localProps.children}\n </SliderContext.Provider>\n )\n}\n"],"mappings":";;;;AAAA,OAAOA,KAAK,MAAM,OAAO;AACzB,SAASC,oBAAoB,QAAQ,uCAAuC;AAC5E,SACEC,MAAM,EACNC,YAAY,EACZC,0BAA0B,EAC1BC,cAAc,EACdC,sBAAsB,QACjB,+BAA+B;AAEtC,OAAOC,OAAO,MAAM,sBAAsB;AAC1C,SACEC,YAAY,EACZC,kBAAkB,EAClBC,gBAAgB,EAChBC,UAAU,QACL,iBAAiB;AASxB,SAASC,qBAAqB,QAAQ,yCAAyC;AAE/E,MAAMC,YAAY,GAAG;EACnBC,WAAW,EAAE,OAAO;EACpBC,QAAQ,EAAE,GAAG;EACbC,aAAa,EAAE,GAAG;EAClBC,GAAG,EAAE,CAAC;EACNC,GAAG,EAAE,GAAG;EACRC,KAAK,EAAE,CAAC,CAAC;EACTC,kBAAkB,EAAE;AACtB,CAAC;AAED,OAAO,MAAMC,aAAa,GAAGrB,KAAK,CAACsB,aAAa,CAAqB,IAAI,CAAC;AAE1E,OAAO,SAASC,cAAcA,CAACC,UAA0B,EAAE;EACzD,MAAMC,OAAO,GAAGzB,KAAK,CAAC0B,UAAU,CAACnB,OAAO,CAAC;EACzC,MAAMoB,QAAQ,GAAGf,qBAAqB,CACpCN,sBAAsB,CACpBkB,UAAU,EACVX,YAAY,EACZ;IAAEe,QAAQ,EAAEH,OAAO,aAAPA,OAAO,uBAAPA,OAAO,CAAEG;EAAS,CAAC,EAC/BH,OAAO,aAAPA,OAAO,uBAAPA,OAAO,CAAEI,cAAc,CAACL,UAAU,CAAC,CAACM,MAAM,EAE1C7B,oBAAoB,CAClBwB,OAAO,aAAPA,OAAO,uBAAPA,OAAO,CAAEM,OAAO,EAKhB;IACEC,QAAQ,EAAE;EACZ,CACF,CAAC,EACD/B,oBAAoB,CAClBwB,OAAO,aAAPA,OAAO,uBAAPA,OAAO,CAAEQ,WAAW,EAKpB;IACED,QAAQ,EAAE;EACZ,CACF,CAAC,EACDP,OAAO,aAAPA,OAAO,uBAAPA,OAAO,CAAEK,MACX,CACF,CAAC;EAED,MAAM,CAACI,GAAG,CAAC,GAAGlC,KAAK,CAACmC,QAAQ,CAAChC,YAAY,CAAC;EAC1C,IAAI,CAACwB,QAAQ,CAACS,EAAE,EAAE;IAChBT,QAAQ,CAACS,EAAE,GAAGF,GAAG;EACnB;EAEA,MAAM;MACJG,IAAI;MACJC,KAAK;MACLC,cAAc;MACdC,WAAW;MACXC,MAAM;MACN3B,WAAW;MACX4B,WAAW;MACXC,iBAAiB;MACjBC,YAAY;MACZC,OAAO;MACPC,MAAM;MACNC,UAAU,EAAEC,KAAK;MACjBhC,aAAa;MACbD,QAAQ;MACRkC,WAAW;MACX7B,kBAAkB;MAClB8B,YAAY;MACZC,OAAO;MACPC,iBAAiB;MACjBxB,QAAQ;MACRV,GAAG;MACHD,GAAG;MACHoC,UAAU;MACVC,QAAQ;MACRC,SAAS;MACTnB,EAAE;MACFoB,QAAQ;MACRC,WAAW;MACXC,SAAS;MACT1B,QAAQ,EAAE2B,SAAS;MACnBC,OAAO,EAAEC,QAAQ;MACjB1C,KAAK,EAAE2C,MAAM;MACbC,QAAQ,EAAEC;IAGZ,CAAC,GAAGrC,QAAQ;IADPsC,UAAU,GAAAC,wBAAA,CACXvC,QAAQ,EAAAwC,SAAA;EAEZ,MAAM,CAAChD,KAAK,EAAEiD,QAAQ,CAAC,GAAGpE,KAAK,CAACmC,QAAQ,CAAa2B,MAAM,CAAC;EAC5D,MAAM,CAACO,WAAW,EAAEC,iBAAiB,CAAC,GACpCtE,KAAK,CAACmC,QAAQ,CAAa2B,MAAM,CAAC;EACpC,MAAMS,aAAa,GAAGvE,KAAK,CAACwE,MAAM,CAAaV,MAAM,CAAC;EACtD,MAAM,CAACW,UAAU,EAAEC,aAAa,CAAC,GAC/B1E,KAAK,CAACmC,QAAQ,CAAkB,SAAS,CAAC;EAC5C,MAAMwC,UAAU,GAAG3E,KAAK,CAACwE,MAAM,CAAS,CAAC,CAAC,CAAC;EAC3C,MAAM,CAACI,aAAa,EAAEC,kBAAkB,CAAC,GACvC7E,KAAK,CAACmC,QAAQ,CAAU,KAAK,CAAC;EAChC,MAAM,CAAC2C,UAAU,CAAC,GAAG9E,KAAK,CAACmC,QAAQ,CAACjC,MAAM,CAACyD,SAAS,CAAC,CAAC;EACtD,MAAM,CAACoB,SAAS,CAAC,GAAG/E,KAAK,CAACmC,QAAQ,CAChC2C,UAAU,GAAG,CAAC5E,MAAM,CAAC2D,QAAQ,CAAC,GAAG3D,MAAM,CAAC2D,QAAQ,CAClD,CAAC;EACD,MAAMmB,OAAO,GAAGC,KAAK,CAACC,OAAO,CAAC/D,KAAK,CAAC;EACpC,MAAMgE,aAAa,GAAIC,KAAa,IAAK;IACvC,IAAI,CAACC,KAAK,CAACD,KAAK,CAAC,EAAE;MACjBT,UAAU,CAACW,OAAO,GAAGF,KAAK;IAC5B;EACF,CAAC;EAED,MAAMG,wBAAwB,GAAIC,YAAoB,IAAK;IACzD,IAAIC,YAAY,GAAG,IAAI;IAEvB,IAAId,UAAU,CAACW,OAAO,GAAG,CAAC,CAAC,EAAE;MAC3BG,YAAY,GAAGd,UAAU,CAACW,OAAO;IACnC,CAAC,MAAM;MACLG,YAAY,GAAGjF,YAAY,CAACgF,YAAY,EAAErE,KAAsB,CAAC;MACjEgE,aAAa,CAACM,YAAY,CAAC;IAC7B;IAEA,OAAOA,YAAY;EACrB,CAAC;EAED,MAAMC,WAAW,GAAIvE,KAAiB,IAAK;IACzCiD,QAAQ,CAACjD,KAAK,CAAC;IACfoD,aAAa,CAACe,OAAO,GAAGnE,KAAK;EAC/B,CAAC;EAED,MAAMwE,UAAU,GAAGA,CACjBC,KAA8B,EAC9BC,QAAgB,KACb;IACH,IAAIvC,QAAQ,IAAIpD,MAAM,CAAC0B,QAAQ,CAAC,EAAE;MAChC;IACF;IAEA,IAAIkE,WAAW,GAAGnF,UAAU,CAACkF,QAAQ,EAAExD,IAAI,CAAC;IAC5C,IAAI0D,WAAuB,GAAGD,WAAW;IAEzC,IAAIA,WAAW,IAAI7E,GAAG,EAAE;MACtB,IAAI+D,OAAO,EAAE;QACX,MAAMS,YAAY,GAAGF,wBAAwB,CAACO,WAAW,CAAC;QAC1D,MAAME,KAAK,GAAGzB,aAAa,CAACe,OAAO,CAACG,YAAY,GAAG,CAAC,CAAC;QACrD,MAAMQ,KAAK,GAAG1B,aAAa,CAACe,OAAO,CAACG,YAAY,GAAG,CAAC,CAAC;QAErD,IAAIrE,kBAAkB,KAAK,MAAM,EAAE;UACjC,IAAI0E,WAAW,GAAGE,KAAK,EAAE;YACvBF,WAAW,GAAGE,KAAK;UACrB;UACA,IAAIF,WAAW,GAAGG,KAAK,EAAE;YACvBH,WAAW,GAAGG,KAAK;UACrB;QACF;QAEAF,WAAW,GAAGrF,gBAAgB,CAC5BU,kBAAkB,KAAK,MAAM,GACxBmD,aAAa,CAACe,OAAO,GACtBnE,KAAK,EACTsE,YAAY,EACZK,WACF,CAAC;QAED,IAAI1E,kBAAkB,KAAK,MAAM,EAAE;UACjC,IAAI,OAAO4E,KAAK,KAAK,WAAW,IAAIF,WAAW,GAAGE,KAAK,EAAE;YACvDD,WAAW,CAACN,YAAY,GAAG,CAAC,CAAC,GAAGK,WAAW;UAC7C;UACA,IAAI,OAAOG,KAAK,KAAK,WAAW,IAAIH,WAAW,IAAIG,KAAK,EAAE;YACxDF,WAAW,CAACN,YAAY,GAAG,CAAC,CAAC,GAAGK,WAAW;UAC7C;QACF;QAEA,IAAIA,WAAW,KAAKvB,aAAa,CAACe,OAAO,CAACG,YAAY,CAAC,EAAE;UACvD;QACF;MACF,CAAC,MAAM,IAAIK,WAAW,KAAKvB,aAAa,CAACe,OAAO,EAAE;QAChD;MACF;MAEA,IAAI,OAAO9B,QAAQ,KAAK,UAAU,EAAE;QAClC,MAAM0C,GAAuB,GAAG;UAC9B/E,KAAK,EAAE4E,WAAW;UAClBF,QAAQ;UACRD,KAAK;UACLO,MAAM,EAAE;QACV,CAAC;QAED,IAAIjD,YAAY,EAAE;UAChBgD,GAAG,CAACC,MAAM,GAAG1F,kBAAkB,CAACqF,WAAW,EAAE5C,YAAY,CAAC,CAACiD,MAAM;QACnE;QAEA/F,0BAA0B,CAACuB,QAAQ,EAAE,UAAU,EAAEuE,GAAG,CAAC;MACvD;MAEAR,WAAW,CAACK,WAAW,CAAC;IAC1B;EACF,CAAC;EAED/F,KAAK,CAACoG,SAAS,CAAC,MAAM;IACpB,IAAIpB,OAAO,EAAE;MACX,MAAMqB,UAAU,GAAIvC,MAAM,CAAmBwC,IAAI,CAAC,CAACC,GAAG,EAAEC,CAAC,KAAK;QAC5D,OAAOD,GAAG,KAAKlC,WAAW,CAACmC,CAAC,CAAC;MAC/B,CAAC,CAAC;MAEF,IAAIH,UAAU,EAAE;QACdX,WAAW,CAAC5B,MAAM,CAAC;QACnBQ,iBAAiB,CAACR,MAAM,CAAC;MAC3B;IACF,CAAC,MAAM,IAAIA,MAAM,KAAKO,WAAW,EAAE;MACjCqB,WAAW,CAAC5B,MAAM,CAAC;MACnBQ,iBAAiB,CAACR,MAAM,CAAC;IAC3B;EAGF,CAAC,EAAE,CAACA,MAAM,EAAEkB,OAAO,CAAC,CAAC;EAErB,MAAMyB,QAAQ,GAAGzG,KAAK,CAACwE,MAAM,CAAc,CAAC;EAE5C,MAAMkC,gBAAgB,GAAG1G,KAAK,CAACwE,MAAM,CAAiB,CAAC;EACvD,MAAMmC,gBAAgB,GAAIC,KAAc,IAAK;IAC3C/B,kBAAkB,CAAC+B,KAAK,CAAC;IACzBC,YAAY,CAACH,gBAAgB,CAACpB,OAAO,CAAC;IACtC,IAAIsB,KAAK,EAAE;MACTF,gBAAgB,CAACpB,OAAO,GAAGwB,UAAU,CACnC,MAAMjC,kBAAkB,CAAC,KAAK,CAAC,EAC/B,GACF,CAAC;IACH;EACF,CAAC;EAED,MAAMkC,UAAU,GAAG1G,cAAc,CAACoC,MAAM,CAAC;EACzC,MAAMuE,WAAW,GAAG,CAAChC,OAAO,IAAI,CAAC9E,MAAM,CAAC+C,WAAW,CAAC;EACpD,MAAMgE,MAAM,GAAIjC,OAAO,GAAG7D,KAAK,GAAG,CAACA,KAAK,CAAmB;EAE3D,OACEnB,KAAA,CAAAkH,aAAA,CAAC7F,aAAa,CAAC8F,QAAQ;IACrBhG,KAAK,EAAE;MACL6D,OAAO;MACPD,SAAS;MACTD,UAAU;MACVF,aAAa;MACbzD,KAAK;MACL8F,MAAM;MACN7C,QAAQ;MACRH,UAAU;MACV8C,UAAU;MACVC,WAAW;MACXvC,UAAU;MACVC,aAAa;MACbC,UAAU;MACVQ,aAAa;MACbQ,UAAU;MACVhE,QAAQ;MACR8E,QAAQ;MACRE,gBAAgB;MAChBD;IACF;EAAE,GAEDlF,UAAU,CAACuC,QACU,CAAC;AAE7B"}
@@ -14,6 +14,9 @@
14
14
  --slider-line-after: gray;
15
15
  --slider-line-before--disabled: dimgray;
16
16
  --slider-line-after--disabled: lightgray;
17
+ --slider-marker: var(--slider-line-before);
18
+ --slider-marker-height: calc(var(--slider-thumb-size) * 0.75);
19
+ --slider-marker-width: 0.125rem;
17
20
  -webkit-user-select: none;
18
21
  user-select: none;
19
22
  -webkit-touch-callout: none;
@@ -53,6 +56,44 @@
53
56
  padding-left: 0;
54
57
  padding-top: 0.5rem;
55
58
  }
59
+ .dnb-slider__marker {
60
+ position: absolute;
61
+ top: 0;
62
+ bottom: 0;
63
+ z-index: 3;
64
+ margin: auto;
65
+ width: var(--slider-marker-width);
66
+ height: var(--slider-marker-height);
67
+ background-color: var(--slider-marker);
68
+ }
69
+ .dnb-slider__marker:focus {
70
+ outline: none;
71
+ outline: none;
72
+ }
73
+ html[data-whatinput=keyboard] .dnb-slider__marker:focus {
74
+ --border-color: var(--focus-ring-color);
75
+ --border-width: var(--focus-ring-width);
76
+ box-shadow: 0 0 0 var(--border-width) var(--border-color);
77
+ border-color: transparent;
78
+ }
79
+ .dnb-slider__marker::before {
80
+ content: "";
81
+ position: absolute;
82
+ width: 100%;
83
+ height: 100%;
84
+ transform: scale(10, 1);
85
+ }
86
+ .dnb-slider--vertical .dnb-slider__marker {
87
+ top: auto;
88
+ right: 0;
89
+ bottom: auto;
90
+ left: 0;
91
+ height: var(--slider-marker-width);
92
+ width: var(--slider-marker-height);
93
+ }
94
+ .dnb-slider--vertical .dnb-slider__marker::before {
95
+ transform: scale(1, 10);
96
+ }
56
97
  .dnb-slider__track {
57
98
  touch-action: none;
58
99
  position: relative;
@@ -119,7 +160,7 @@
119
160
  position: absolute;
120
161
  left: 0;
121
162
  top: 0;
122
- z-index: 3;
163
+ z-index: 4;
123
164
  display: flex;
124
165
  justify-content: center;
125
166
  transform: translate3d(-50%, 0, 0);
@@ -207,7 +248,7 @@ html[data-whatinput=keyboard] .dnb-slider__button-helper:not(:disabled):focus ~
207
248
  margin-bottom: 0.5rem;
208
249
  }
209
250
  }
210
- .dnb-slider.dnb-skeleton .dnb-slider__line, .dnb-slider.dnb-skeleton .dnb-slider__state--disabled .dnb-slider__line {
251
+ .dnb-slider.dnb-skeleton .dnb-slider__line, .dnb-slider.dnb-skeleton .dnb-slider__marker, .dnb-slider.dnb-skeleton .dnb-slider__state--disabled .dnb-slider__line {
211
252
  background-color: var(--skeleton-color);
212
253
  }
213
254
  .dnb-slider.dnb-skeleton .dnb-slider__track::before, .dnb-slider.dnb-skeleton .dnb-slider__track::after, .dnb-slider.dnb-skeleton .dnb-slider__state--disabled.dnb-slider__track::before, .dnb-slider.dnb-skeleton .dnb-slider__state--disabled.dnb-slider__track::after {
@@ -1 +1 @@
1
- .dnb-slider{--slider-track-height:0.25rem;--slider-thumb-size:2rem;--slider-button-size:1.5rem;--slider-space:1rem;--slider-line-before:#000;--slider-line-after:gray;--slider-line-before--disabled:dimgray;--slider-line-after--disabled:#d3d3d3;-webkit-touch-callout:none;display:flex;font-size:var(--font-size-small);line-height:var(--slider-thumb-size);-webkit-user-select:none;user-select:none}.dnb-slider--stretch{width:100%}.dnb-slider--vertical{display:flex;height:100%;min-height:inherit;min-width:inherit;width:auto}.dnb-slider__wrapper{display:inline-flex;flex:1;flex-direction:column;width:100%}.dnb-slider--vertical .dnb-slider__wrapper{align-items:center;height:100%;width:auto}.dnb-slider__inner{display:inline-flex;height:var(--slider-thumb-size)}.dnb-slider__suffix{align-self:center}.dnb-slider--vertical .dnb-slider__suffix{padding-left:0;padding-top:.5rem}.dnb-slider__track{cursor:pointer;flex:1;margin:0 calc(var(--slider-space)*1.5);min-width:2rem;position:relative;touch-action:none}.dnb-slider--vertical .dnb-slider__track{margin:calc(var(--slider-space)*1.5) 0;min-height:2rem;min-width:auto}.dnb-slider--no-buttons .dnb-slider__track{margin:0 calc(var(--slider-space))}.dnb-slider--no-buttons.dnb-slider--vertical .dnb-slider__track{margin:calc(var(--slider-space)) 0}.dnb-slider--vertical .dnb-slider__inner{flex-direction:column;height:inherit;min-height:inherit;min-width:inherit;width:var(--slider-thumb-size)}.dnb-slider__line{background-color:var(--slider-line-before);border-radius:var(--slider-track-height);height:var(--slider-track-height);left:0;margin:0 calc(0px - var(--slider-space));position:absolute;top:50%;transform:translate3d(0,-50%,0)}.dnb-slider__line__before{z-index:2}.dnb-slider__line__after{background-color:var(--slider-line-after);right:0;z-index:1}.dnb-slider--vertical .dnb-slider__line{height:auto;left:50%;margin:calc(0px - var(--slider-space)) 0;top:0;transform:translate3d(-50%,0,0);width:var(--slider-track-height)}.dnb-slider--vertical .dnb-slider__line__before{bottom:0;top:0}.dnb-slider--vertical .dnb-slider__line__after{bottom:0}.dnb-slider__thumb{box-shadow:var(--shadow-default)}.dnb-slider__button-helper,.dnb-slider__thumb{border-radius:50%;display:flex;justify-content:center;left:0;position:absolute;top:0;transform:translate3d(-50%,0,0);z-index:3}.dnb-slider__button-helper,.dnb-slider__button-helper .dnb-button,.dnb-slider__thumb,.dnb-slider__thumb .dnb-button{height:var(--slider-thumb-size);width:var(--slider-thumb-size)}.dnb-slider--vertical .dnb-slider__thumb{transform:translate3d(0,-50%,0)}.dnb-slider__button.dnb-button--size-small{height:var(--slider-button-size);line-height:var(--slider-button-size);transform:translateY(.25rem);width:var(--slider-button-size);z-index:2}.dnb-slider--vertical .dnb-slider__button.dnb-button--size-small{transform:translateX(.25rem)}.dnb-slider__state--disabled .dnb-slider__line,.dnb-slider__state--disabled .dnb-slider__thumb,.dnb-slider__state--disabled .dnb-slider__track{cursor:not-allowed}.dnb-slider__state--animate .dnb-slider__line,.dnb-slider__state--animate .dnb-slider__thumb{transition:left .25s var(--easing-default),top .25s var(--easing-default),bottom .25s var(--easing-default),right .25s var(--easing-default),box-shadow .25s var(--easing-default)}html[data-visual-test] .dnb-slider__line,html[data-visual-test] .dnb-slider__thumb{transition:none!important}.dnb-slider__button-helper{opacity:0;pointer-events:none;transform:translate3d(.0625rem,0,0);z-index:2}.dnb-slider__button-helper:not(:disabled):focus~.dnb-button{outline:none}html[data-whatinput=keyboard] .dnb-slider__button-helper:not(:disabled):focus~.dnb-button{--border-color:var(--focus-ring-color);--border-width:var(--focus-ring-width);border-color:transparent;box-shadow:0 0 0 var(--border-width) var(--border-color)}.dnb-slider>.dnb-form-label{align-self:flex-start;line-height:var(--slider-thumb-size);margin-right:1rem}.dnb-slider>.dnb-form-label--vertical{line-height:var(--line-height-basis);margin-right:0}.dnb-slider__label--vertical{flex-direction:column}.dnb-slider__label--vertical.dnb-slider--vertical{align-items:center}.dnb-slider__label--vertical.dnb-slider--vertical .dnb-form-label{margin-bottom:.5rem;margin-right:0;text-align:center;width:100%}.dnb-slider .dnb-form-status{margin-top:.5rem;order:2}.dnb-slider--vertical .dnb-form-status{margin-top:1rem}@media screen and (max-width:40em){.dnb-responsive-component .dnb-slider{align-items:flex-start;display:flex;flex-direction:column;margin-bottom:.5rem}.dnb-responsive-component .dnb-slider>.dnb-form-label{margin-bottom:.5rem}}.dnb-slider.dnb-skeleton .dnb-slider__line,.dnb-slider.dnb-skeleton .dnb-slider__state--disabled .dnb-slider__line,.dnb-slider.dnb-skeleton .dnb-slider__state--disabled.dnb-slider__track:after,.dnb-slider.dnb-skeleton .dnb-slider__state--disabled.dnb-slider__track:before,.dnb-slider.dnb-skeleton .dnb-slider__track:after,.dnb-slider.dnb-skeleton .dnb-slider__track:before{background-color:var(--skeleton-color)}
1
+ .dnb-slider{--slider-track-height:0.25rem;--slider-thumb-size:2rem;--slider-button-size:1.5rem;--slider-space:1rem;--slider-line-before:#000;--slider-line-after:gray;--slider-line-before--disabled:dimgray;--slider-line-after--disabled:#d3d3d3;--slider-marker:var(--slider-line-before);--slider-marker-height:calc(var(--slider-thumb-size)*0.75);--slider-marker-width:0.125rem;-webkit-touch-callout:none;display:flex;font-size:var(--font-size-small);line-height:var(--slider-thumb-size);-webkit-user-select:none;user-select:none}.dnb-slider--stretch{width:100%}.dnb-slider--vertical{display:flex;height:100%;min-height:inherit;min-width:inherit;width:auto}.dnb-slider__wrapper{display:inline-flex;flex:1;flex-direction:column;width:100%}.dnb-slider--vertical .dnb-slider__wrapper{align-items:center;height:100%;width:auto}.dnb-slider__inner{display:inline-flex;height:var(--slider-thumb-size)}.dnb-slider__suffix{align-self:center}.dnb-slider--vertical .dnb-slider__suffix{padding-left:0;padding-top:.5rem}.dnb-slider__marker{background-color:var(--slider-marker);bottom:0;height:var(--slider-marker-height);margin:auto;position:absolute;top:0;width:var(--slider-marker-width);z-index:3}.dnb-slider__marker:focus{outline:none}html[data-whatinput=keyboard] .dnb-slider__marker:focus{--border-color:var(--focus-ring-color);--border-width:var(--focus-ring-width);border-color:transparent;box-shadow:0 0 0 var(--border-width) var(--border-color)}.dnb-slider__marker:before{content:"";height:100%;position:absolute;transform:scaleX(10);width:100%}.dnb-slider--vertical .dnb-slider__marker{bottom:auto;height:var(--slider-marker-width);left:0;right:0;top:auto;width:var(--slider-marker-height)}.dnb-slider--vertical .dnb-slider__marker:before{transform:scaleY(10)}.dnb-slider__track{cursor:pointer;flex:1;margin:0 calc(var(--slider-space)*1.5);min-width:2rem;position:relative;touch-action:none}.dnb-slider--vertical .dnb-slider__track{margin:calc(var(--slider-space)*1.5) 0;min-height:2rem;min-width:auto}.dnb-slider--no-buttons .dnb-slider__track{margin:0 calc(var(--slider-space))}.dnb-slider--no-buttons.dnb-slider--vertical .dnb-slider__track{margin:calc(var(--slider-space)) 0}.dnb-slider--vertical .dnb-slider__inner{flex-direction:column;height:inherit;min-height:inherit;min-width:inherit;width:var(--slider-thumb-size)}.dnb-slider__line{background-color:var(--slider-line-before);border-radius:var(--slider-track-height);height:var(--slider-track-height);left:0;margin:0 calc(0px - var(--slider-space));position:absolute;top:50%;transform:translate3d(0,-50%,0)}.dnb-slider__line__before{z-index:2}.dnb-slider__line__after{background-color:var(--slider-line-after);right:0;z-index:1}.dnb-slider--vertical .dnb-slider__line{height:auto;left:50%;margin:calc(0px - var(--slider-space)) 0;top:0;transform:translate3d(-50%,0,0);width:var(--slider-track-height)}.dnb-slider--vertical .dnb-slider__line__before{bottom:0;top:0}.dnb-slider--vertical .dnb-slider__line__after{bottom:0}.dnb-slider__thumb{box-shadow:var(--shadow-default)}.dnb-slider__button-helper,.dnb-slider__thumb{border-radius:50%;display:flex;justify-content:center;left:0;position:absolute;top:0;transform:translate3d(-50%,0,0);z-index:4}.dnb-slider__button-helper,.dnb-slider__button-helper .dnb-button,.dnb-slider__thumb,.dnb-slider__thumb .dnb-button{height:var(--slider-thumb-size);width:var(--slider-thumb-size)}.dnb-slider--vertical .dnb-slider__thumb{transform:translate3d(0,-50%,0)}.dnb-slider__button.dnb-button--size-small{height:var(--slider-button-size);line-height:var(--slider-button-size);transform:translateY(.25rem);width:var(--slider-button-size);z-index:2}.dnb-slider--vertical .dnb-slider__button.dnb-button--size-small{transform:translateX(.25rem)}.dnb-slider__state--disabled .dnb-slider__line,.dnb-slider__state--disabled .dnb-slider__thumb,.dnb-slider__state--disabled .dnb-slider__track{cursor:not-allowed}.dnb-slider__state--animate .dnb-slider__line,.dnb-slider__state--animate .dnb-slider__thumb{transition:left .25s var(--easing-default),top .25s var(--easing-default),bottom .25s var(--easing-default),right .25s var(--easing-default),box-shadow .25s var(--easing-default)}html[data-visual-test] .dnb-slider__line,html[data-visual-test] .dnb-slider__thumb{transition:none!important}.dnb-slider__button-helper{opacity:0;pointer-events:none;transform:translate3d(.0625rem,0,0);z-index:2}.dnb-slider__button-helper:not(:disabled):focus~.dnb-button{outline:none}html[data-whatinput=keyboard] .dnb-slider__button-helper:not(:disabled):focus~.dnb-button{--border-color:var(--focus-ring-color);--border-width:var(--focus-ring-width);border-color:transparent;box-shadow:0 0 0 var(--border-width) var(--border-color)}.dnb-slider>.dnb-form-label{align-self:flex-start;line-height:var(--slider-thumb-size);margin-right:1rem}.dnb-slider>.dnb-form-label--vertical{line-height:var(--line-height-basis);margin-right:0}.dnb-slider__label--vertical{flex-direction:column}.dnb-slider__label--vertical.dnb-slider--vertical{align-items:center}.dnb-slider__label--vertical.dnb-slider--vertical .dnb-form-label{margin-bottom:.5rem;margin-right:0;text-align:center;width:100%}.dnb-slider .dnb-form-status{margin-top:.5rem;order:2}.dnb-slider--vertical .dnb-form-status{margin-top:1rem}@media screen and (max-width:40em){.dnb-responsive-component .dnb-slider{align-items:flex-start;display:flex;flex-direction:column;margin-bottom:.5rem}.dnb-responsive-component .dnb-slider>.dnb-form-label{margin-bottom:.5rem}}.dnb-slider.dnb-skeleton .dnb-slider__line,.dnb-slider.dnb-skeleton .dnb-slider__marker,.dnb-slider.dnb-skeleton .dnb-slider__state--disabled .dnb-slider__line,.dnb-slider.dnb-skeleton .dnb-slider__state--disabled.dnb-slider__track:after,.dnb-slider.dnb-skeleton .dnb-slider__state--disabled.dnb-slider__track:before,.dnb-slider.dnb-skeleton .dnb-slider__track:after,.dnb-slider.dnb-skeleton .dnb-slider__track:before{background-color:var(--skeleton-color)}
@@ -14,6 +14,9 @@
14
14
  --slider-line-after: gray;
15
15
  --slider-line-before--disabled: dimgray;
16
16
  --slider-line-after--disabled: lightgray;
17
+ --slider-marker: var(--slider-line-before);
18
+ --slider-marker-height: calc(var(--slider-thumb-size) * 0.75);
19
+ --slider-marker-width: 0.125rem;
17
20
 
18
21
  user-select: none; // Safari / Touch fix
19
22
  -webkit-touch-callout: none; // Safari / Touch fix
@@ -68,6 +71,45 @@
68
71
  padding-top: 0.5rem;
69
72
  }
70
73
 
74
+ &__marker {
75
+ position: absolute;
76
+ top: 0;
77
+ bottom: 0;
78
+ z-index: 3;
79
+ margin: auto;
80
+ width: var(--slider-marker-width);
81
+ height: var(--slider-marker-height);
82
+ background-color: var(--slider-marker);
83
+
84
+ &:focus {
85
+ outline: none; // we show a Tooltip instead
86
+ @include focusRing();
87
+ }
88
+
89
+ // Larger bounding area
90
+ &::before {
91
+ content: '';
92
+ position: absolute;
93
+ width: 100%;
94
+ height: 100%;
95
+ transform: scale(10, 1);
96
+ }
97
+ }
98
+
99
+ &--vertical &__marker {
100
+ top: auto;
101
+ right: 0;
102
+ bottom: auto;
103
+ left: 0;
104
+
105
+ height: var(--slider-marker-width);
106
+ width: var(--slider-marker-height);
107
+
108
+ &::before {
109
+ transform: scale(1, 10);
110
+ }
111
+ }
112
+
71
113
  &__track {
72
114
  // make sure we do not alow page scroll on touch devices
73
115
  touch-action: none;
@@ -165,7 +207,7 @@
165
207
  position: absolute;
166
208
  left: 0;
167
209
  top: 0;
168
- z-index: 3;
210
+ z-index: 4;
169
211
 
170
212
  display: flex;
171
213
  justify-content: center;
@@ -283,6 +325,7 @@
283
325
  }
284
326
 
285
327
  &.dnb-skeleton &__line,
328
+ &.dnb-skeleton &__marker,
286
329
  &.dnb-skeleton &__state--disabled &__line {
287
330
  background-color: var(--skeleton-color);
288
331
  }
@@ -7,4 +7,7 @@
7
7
  --slider-line-after: var(--sb-color-gray-light);
8
8
  --slider-line-before--disabled: var(--sb-color-gray);
9
9
  --slider-line-after--disabled: var(--sb-color-gray-light);
10
+ }
11
+ .dnb-slider__marker :hover {
12
+ background-color: var(--sb-color-violet);
10
13
  }
@@ -1 +1 @@
1
- .dnb-slider{--slider-line-before:var(--sb-color-purple-alternative);--slider-line-after:var(--sb-color-gray-light);--slider-line-before--disabled:var(--sb-color-gray);--slider-line-after--disabled:var(--sb-color-gray-light)}
1
+ .dnb-slider{--slider-line-before:var(--sb-color-purple-alternative);--slider-line-after:var(--sb-color-gray-light);--slider-line-before--disabled:var(--sb-color-gray);--slider-line-after--disabled:var(--sb-color-gray-light)}.dnb-slider__marker :hover{background-color:var(--sb-color-violet)}
@@ -8,4 +8,8 @@
8
8
  --slider-line-after: var(--sb-color-gray-light);
9
9
  --slider-line-before--disabled: var(--sb-color-gray);
10
10
  --slider-line-after--disabled: var(--sb-color-gray-light);
11
+
12
+ &__marker :hover {
13
+ background-color: var(--sb-color-violet);
14
+ }
11
15
  }
@@ -7,4 +7,7 @@
7
7
  --slider-line-after: var(--color-mint-green-50);
8
8
  --slider-line-before--disabled: var(--color-sea-green-30);
9
9
  --slider-line-after--disabled: var(--color-mint-green-25);
10
+ }
11
+ .dnb-slider__marker:hover, .dnb-slider__marker:focus-within {
12
+ background-color: var(--color-emerald-green);
10
13
  }
@@ -1 +1 @@
1
- .dnb-slider{--slider-line-before:var(--color-sea-green);--slider-line-after:var(--color-mint-green-50);--slider-line-before--disabled:var(--color-sea-green-30);--slider-line-after--disabled:var(--color-mint-green-25)}
1
+ .dnb-slider{--slider-line-before:var(--color-sea-green);--slider-line-after:var(--color-mint-green-50);--slider-line-before--disabled:var(--color-sea-green-30);--slider-line-after--disabled:var(--color-mint-green-25)}.dnb-slider__marker:focus-within,.dnb-slider__marker:hover{background-color:var(--color-emerald-green)}
@@ -8,4 +8,9 @@
8
8
  --slider-line-after: var(--color-mint-green-50);
9
9
  --slider-line-before--disabled: var(--color-sea-green-30);
10
10
  --slider-line-after--disabled: var(--color-mint-green-25);
11
+
12
+ &__marker:hover,
13
+ &__marker:focus-within {
14
+ background-color: var(--color-emerald-green);
15
+ }
11
16
  }
@@ -14,6 +14,10 @@ export type onChangeEventProps = {
14
14
  number?: formatReturnType | null;
15
15
  event?: Event;
16
16
  };
17
+ export type SliderExtensions = Record<string, {
18
+ instance: React.ElementType;
19
+ [key: string]: unknown;
20
+ }>;
17
21
  export type SliderProps = IncludeSnakeCase<{
18
22
  /** prepends the Form Label component. If no ID is provided, a random ID is created. */
19
23
  label?: React.ReactNode;
@@ -46,6 +50,8 @@ export type SliderProps = IncludeSnakeCase<{
46
50
  value?: ValueTypes;
47
51
  /** the steps the slider takes on changing the value. Defaults to `null`. */
48
52
  step?: number;
53
+ /** makes it possible to display overlays with other functionality such as a marker on the slider marking a given value. */
54
+ extensions: SliderExtensions;
49
55
  /** show the slider vertically. Defaults to `false`. */
50
56
  vertical?: boolean;
51
57
  /** show the slider reversed. Defaults to `false`. */
@@ -1 +1 @@
1
- {"version":3,"file":"types.js","names":[],"sources":["../../../../src/components/slider/types.ts"],"sourcesContent":["import React from 'react'\n\nimport type { SuffixChildren } from '../../shared/helpers/Suffix'\nimport type {\n formatReturnType,\n formatOptionParams,\n} from '../number-format/NumberUtils'\nimport { IncludeSnakeCase } from '../../shared/helpers/withSnakeCaseProps'\nimport type { SpacingProps } from '../../shared/types'\nimport type { SkeletonShow } from '../Skeleton'\nimport type { GlobalStatusConfigObject } from '../GlobalStatus'\n\nexport type ValueTypes = number | Array<number>\nexport type NumberFormatTypes =\n | formatOptionParams\n | ((value: number) => unknown)\nexport type onChangeEventProps = {\n value: ValueTypes\n rawValue: number\n number?: formatReturnType | null\n event?: Event\n}\n\nexport type SliderProps = IncludeSnakeCase<{\n /** prepends the Form Label component. If no ID is provided, a random ID is created. */\n label?: React.ReactNode\n\n /** use `labelDirection=\"vertical\"` to change the label layout direction. Defaults to `horizontal`. */\n labelDirection?: 'vertical' | 'horizontal'\n\n /** use `true` to make the label only readable by screen readers. */\n labelSrOnly?: boolean\n\n /** text with a status message. The style defaults to an error message. You can use `true` to only get the status color, without a message. */\n status?: string | boolean\n\n /** defines the state of the status. Currently, there are two statuses `[error, info]`. Defaults to `error`. */\n statusState?: 'error' | 'info'\n\n /** use an object to define additional FormStatus properties. */\n statusProps?: Record<string, unknown>\n statusNoAnimation?: boolean\n\n /** the `status_id` used for the target [GlobalStatus](/uilib/components/global-status). */\n globalStatus?: GlobalStatusConfigObject\n\n /** text describing the content of the Slider more than the label. You can also send in a React component, so it gets wrapped inside the Slider component. */\n suffix?: SuffixChildren\n\n /** give the slider thumb button a title for accessibility reasons. Defaults to `null`. */\n thumbTitle?: string\n\n /** give the add button a title for accessibility reasons. Defaults to `+`. */\n addTitle?: string\n\n /** give the subtract button a title for accessibility reasons. Defaults to `−`. */\n subtractTitle?: string\n\n /** the minimum value. Defaults to `0`. */\n min?: number\n\n /** the maximum value. Defaults to `100`. */\n max?: number\n\n /** the `value` of the slider as a number. If an array with numbers is provided, each number will represent a thumb button (the `+` and `-` button will be hidden on multiple thumbs). */\n value?: ValueTypes\n\n /** the steps the slider takes on changing the value. Defaults to `null`. */\n step?: number\n\n /** show the slider vertically. Defaults to `false`. */\n vertical?: boolean\n\n /** show the slider reversed. Defaults to `false`. */\n reverse?: boolean\n\n /** if set to `true`, then the slider will be 100% in `width`. */\n stretch?: boolean\n\n /** provide a function callback or use the options from the [NumberFormat](/uilib/components/number-format/properties) component. It will show a formatted number in the Tooltip (`tooltip={true}`) and enhance the screen reader UX. It will also extend the `onChange` event return object with a formatted `number` property. */\n numberFormat?: NumberFormatTypes\n\n /** use `true` to show a tooltip on `mouseOver`, `touchStart` and `focus`, showing the current number (if `numberFormat` is given) or the raw value. Defaults to `null`. */\n tooltip: boolean\n\n /** use `true` to always show the tooltip, in addition to the `tooltip` property. */\n alwaysShowTooltip: boolean\n\n /** removes the helper buttons. Defaults to `false`. */\n hideButtons?: boolean\n\n /** use either `omit`, `push` or `swap`. This property only works for two (range) or more thumb buttons, while `omit` will stop the thumb from swapping, `push` will push its nearest thumb along. Defaults to `swap`. */\n multiThumbBehavior?: 'swap' | 'omit' | 'push'\n\n /** if set to `true`, an overlaying skeleton with animation will be shown. */\n skeleton?: SkeletonShow\n\n id?: string\n disabled?: boolean\n className?: string\n\n /** will be called on state changes made by the user. The callback `value` and `rawValue` is a number `{ value, rawValue, event }`. But if the prop `numberFormat` is given, then it will return an additional `number` with the given format `{ value, number, rawValue, event }`. */\n onChange?: (props: onChangeEventProps) => void\n\n /** will be called once the user stops dragging. Returns `{ event }`. */\n onDragStart?: (props: { event: MouseEvent | TouchEvent }) => void\n\n /** will be called once the user starts dragging. Returns `{ event }`. */\n onDragEnd?: (props: { event: MouseEvent | TouchEvent }) => void\n\n children?: React.ReactChild\n}>\n\nexport type SliderAllProps = SliderProps &\n SpacingProps &\n Omit<React.HTMLProps<HTMLElement>, keyof SliderProps>\n\nexport type ThumbStateEnums =\n | 'initial'\n | 'normal'\n | 'activated'\n | 'released'\n\nexport type SliderContextTypes = {\n isMulti: boolean\n isReverse: boolean\n isVertical: boolean\n shouldAnimate: boolean\n thumbState: ThumbStateEnums\n thumbIndex: React.RefObject<number>\n showStatus: boolean\n showButtons: boolean\n attributes: unknown\n allProps: SliderProps\n value: ValueTypes\n values: Array<number>\n setValue: (value: ValueTypes) => void\n setThumbState: (thumbState: ThumbStateEnums) => void\n setThumbIndex: (thumbIndex: number) => void\n emitChange: (emitEvent: MouseEvent | TouchEvent, value: number) => void\n trackRef: React.RefObject<HTMLElement>\n setShouldAnimate: (state: boolean) => void\n animationTimeout: React.RefObject<NodeJS.Timeout>\n}\n"],"mappings":""}
1
+ {"version":3,"file":"types.js","names":[],"sources":["../../../../src/components/slider/types.ts"],"sourcesContent":["import React from 'react'\n\nimport type { SuffixChildren } from '../../shared/helpers/Suffix'\nimport type {\n formatReturnType,\n formatOptionParams,\n} from '../number-format/NumberUtils'\nimport { IncludeSnakeCase } from '../../shared/helpers/withSnakeCaseProps'\nimport type { SpacingProps } from '../../shared/types'\nimport type { SkeletonShow } from '../Skeleton'\nimport type { GlobalStatusConfigObject } from '../GlobalStatus'\n\nexport type ValueTypes = number | Array<number>\nexport type NumberFormatTypes =\n | formatOptionParams\n | ((value: number) => unknown)\nexport type onChangeEventProps = {\n value: ValueTypes\n rawValue: number\n number?: formatReturnType | null\n event?: Event\n}\n\nexport type SliderExtensions = Record<\n string,\n { instance: React.ElementType; [key: string]: unknown }\n>\n\nexport type SliderProps = IncludeSnakeCase<{\n /** prepends the Form Label component. If no ID is provided, a random ID is created. */\n label?: React.ReactNode\n\n /** use `labelDirection=\"vertical\"` to change the label layout direction. Defaults to `horizontal`. */\n labelDirection?: 'vertical' | 'horizontal'\n\n /** use `true` to make the label only readable by screen readers. */\n labelSrOnly?: boolean\n\n /** text with a status message. The style defaults to an error message. You can use `true` to only get the status color, without a message. */\n status?: string | boolean\n\n /** defines the state of the status. Currently, there are two statuses `[error, info]`. Defaults to `error`. */\n statusState?: 'error' | 'info'\n\n /** use an object to define additional FormStatus properties. */\n statusProps?: Record<string, unknown>\n statusNoAnimation?: boolean\n\n /** the `status_id` used for the target [GlobalStatus](/uilib/components/global-status). */\n globalStatus?: GlobalStatusConfigObject\n\n /** text describing the content of the Slider more than the label. You can also send in a React component, so it gets wrapped inside the Slider component. */\n suffix?: SuffixChildren\n\n /** give the slider thumb button a title for accessibility reasons. Defaults to `null`. */\n thumbTitle?: string\n\n /** give the add button a title for accessibility reasons. Defaults to `+`. */\n addTitle?: string\n\n /** give the subtract button a title for accessibility reasons. Defaults to `−`. */\n subtractTitle?: string\n\n /** the minimum value. Defaults to `0`. */\n min?: number\n\n /** the maximum value. Defaults to `100`. */\n max?: number\n\n /** the `value` of the slider as a number. If an array with numbers is provided, each number will represent a thumb button (the `+` and `-` button will be hidden on multiple thumbs). */\n value?: ValueTypes\n\n /** the steps the slider takes on changing the value. Defaults to `null`. */\n step?: number\n\n /** makes it possible to display overlays with other functionality such as a marker on the slider marking a given value. */\n extensions: SliderExtensions\n\n /** show the slider vertically. Defaults to `false`. */\n vertical?: boolean\n\n /** show the slider reversed. Defaults to `false`. */\n reverse?: boolean\n\n /** if set to `true`, then the slider will be 100% in `width`. */\n stretch?: boolean\n\n /** provide a function callback or use the options from the [NumberFormat](/uilib/components/number-format/properties) component. It will show a formatted number in the Tooltip (`tooltip={true}`) and enhance the screen reader UX. It will also extend the `onChange` event return object with a formatted `number` property. */\n numberFormat?: NumberFormatTypes\n\n /** use `true` to show a tooltip on `mouseOver`, `touchStart` and `focus`, showing the current number (if `numberFormat` is given) or the raw value. Defaults to `null`. */\n tooltip: boolean\n\n /** use `true` to always show the tooltip, in addition to the `tooltip` property. */\n alwaysShowTooltip: boolean\n\n /** removes the helper buttons. Defaults to `false`. */\n hideButtons?: boolean\n\n /** use either `omit`, `push` or `swap`. This property only works for two (range) or more thumb buttons, while `omit` will stop the thumb from swapping, `push` will push its nearest thumb along. Defaults to `swap`. */\n multiThumbBehavior?: 'swap' | 'omit' | 'push'\n\n /** if set to `true`, an overlaying skeleton with animation will be shown. */\n skeleton?: SkeletonShow\n\n id?: string\n disabled?: boolean\n className?: string\n\n /** will be called on state changes made by the user. The callback `value` and `rawValue` is a number `{ value, rawValue, event }`. But if the prop `numberFormat` is given, then it will return an additional `number` with the given format `{ value, number, rawValue, event }`. */\n onChange?: (props: onChangeEventProps) => void\n\n /** will be called once the user stops dragging. Returns `{ event }`. */\n onDragStart?: (props: { event: MouseEvent | TouchEvent }) => void\n\n /** will be called once the user starts dragging. Returns `{ event }`. */\n onDragEnd?: (props: { event: MouseEvent | TouchEvent }) => void\n\n children?: React.ReactChild\n}>\n\nexport type SliderAllProps = SliderProps &\n SpacingProps &\n Omit<React.HTMLProps<HTMLElement>, keyof SliderProps>\n\nexport type ThumbStateEnums =\n | 'initial'\n | 'normal'\n | 'activated'\n | 'released'\n\nexport type SliderContextTypes = {\n isMulti: boolean\n isReverse: boolean\n isVertical: boolean\n shouldAnimate: boolean\n thumbState: ThumbStateEnums\n thumbIndex: React.RefObject<number>\n showStatus: boolean\n showButtons: boolean\n attributes: unknown\n allProps: SliderProps\n value: ValueTypes\n values: Array<number>\n setValue: (value: ValueTypes) => void\n setThumbState: (thumbState: ThumbStateEnums) => void\n setThumbIndex: (thumbIndex: number) => void\n emitChange: (emitEvent: MouseEvent | TouchEvent, value: number) => void\n trackRef: React.RefObject<HTMLElement>\n setShouldAnimate: (state: boolean) => void\n animationTimeout: React.RefObject<NodeJS.Timeout>\n}\n"],"mappings":""}
@@ -118,8 +118,9 @@ export function useTableAccordion(_ref) {
118
118
  setHadClick(false);
119
119
  }
120
120
  function toggleOpenTr(event) {
121
+ let allowInteractiveElement = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : false;
121
122
  const target = event.target;
122
- if (document.activeElement !== target && target.tagName !== 'INPUT' && target.tagName !== 'LABEL' && !hasSelectedText()) {
123
+ if ((document.activeElement !== target && target.tagName !== 'INPUT' && target.tagName !== 'LABEL' || allowInteractiveElement) && !hasSelectedText()) {
123
124
  setOpen(!trIsOpen);
124
125
  setHadClick(true);
125
126
  onClick === null || onClick === void 0 ? void 0 : onClick(event);
@@ -141,7 +142,7 @@ export function TableAccordionToggleButton() {
141
142
  tabIndex: -1,
142
143
  "aria-label": allProps === null || allProps === void 0 ? void 0 : allProps.accordionToggleButtonSR,
143
144
  "aria-expanded": Boolean(trContext === null || trContext === void 0 ? void 0 : trContext.trIsOpen),
144
- on_click: trContext === null || trContext === void 0 ? void 0 : trContext.toggleOpenTr
145
+ on_click: event => trContext === null || trContext === void 0 ? void 0 : trContext.toggleOpenTr(event, true)
145
146
  }));
146
147
  }
147
148
  function TableThAccordionIcon() {