@dnb/eufemia 10.65.1 → 10.66.1

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 (483) hide show
  1. package/CHANGELOG.md +43 -0
  2. package/cjs/components/card/Card.js +1 -1
  3. package/cjs/components/card/Card.js.map +1 -1
  4. package/cjs/components/date-picker/DatePickerInput.d.ts +5 -0
  5. package/cjs/components/date-picker/DatePickerInput.js +103 -76
  6. package/cjs/components/date-picker/DatePickerInput.js.map +1 -1
  7. package/cjs/components/date-picker/DatePickerProvider.d.ts +4 -3
  8. package/cjs/components/date-picker/DatePickerProvider.js +7 -2
  9. package/cjs/components/date-picker/DatePickerProvider.js.map +1 -1
  10. package/cjs/components/date-picker/hooks/useDates.js.map +1 -1
  11. package/cjs/components/flex/Container.d.ts +2 -1
  12. package/cjs/components/flex/Container.js +31 -24
  13. package/cjs/components/flex/Container.js.map +1 -1
  14. package/cjs/components/flex/ContainerDocs.d.ts +2 -0
  15. package/cjs/components/flex/ContainerDocs.js +81 -0
  16. package/cjs/components/flex/ContainerDocs.js.map +1 -0
  17. package/cjs/components/flex/style/dnb-flex.css +36 -4
  18. package/cjs/components/flex/style/dnb-flex.min.css +1 -1
  19. package/cjs/components/flex/style/flex-container.scss +39 -4
  20. package/cjs/components/help-button/HelpButtonInline.d.ts +7 -0
  21. package/cjs/components/help-button/HelpButtonInline.js +53 -20
  22. package/cjs/components/help-button/HelpButtonInline.js.map +1 -1
  23. package/cjs/components/help-button/HelpButtonInstance.js +1 -1
  24. package/cjs/components/help-button/HelpButtonInstance.js.map +1 -1
  25. package/cjs/components/slider/SliderDocs.js +2 -2
  26. package/cjs/components/slider/SliderDocs.js.map +1 -1
  27. package/cjs/components/slider/SliderProvider.js +0 -2
  28. package/cjs/components/slider/SliderProvider.js.map +1 -1
  29. package/cjs/components/slider/types.d.ts +2 -2
  30. package/cjs/components/slider/types.js.map +1 -1
  31. package/cjs/components/step-indicator/StepIndicator.d.ts +6 -0
  32. package/cjs/components/step-indicator/StepIndicator.js.map +1 -1
  33. package/cjs/components/step-indicator/StepIndicatorContext.d.ts +2 -0
  34. package/cjs/components/step-indicator/StepIndicatorContext.js.map +1 -1
  35. package/cjs/components/step-indicator/StepIndicatorTriggerButton.js +4 -3
  36. package/cjs/components/step-indicator/StepIndicatorTriggerButton.js.map +1 -1
  37. package/cjs/components/toggle-button/ToggleButton.d.ts +9 -1
  38. package/cjs/components/toggle-button/ToggleButtonDocs.js +1 -0
  39. package/cjs/components/toggle-button/ToggleButtonDocs.js.map +1 -1
  40. package/cjs/components/upload/Upload.js +4 -5
  41. package/cjs/components/upload/Upload.js.map +1 -1
  42. package/cjs/components/upload/UploadFileInput.d.ts +4 -1
  43. package/cjs/components/upload/UploadFileInput.js +11 -3
  44. package/cjs/components/upload/UploadFileInput.js.map +1 -1
  45. package/cjs/components/upload/types.d.ts +1 -1
  46. package/cjs/components/upload/types.js.map +1 -1
  47. package/cjs/extensions/forms/DataContext/Context.d.ts +10 -4
  48. package/cjs/extensions/forms/DataContext/Context.js.map +1 -1
  49. package/cjs/extensions/forms/DataContext/Provider/Provider.d.ts +2 -2
  50. package/cjs/extensions/forms/DataContext/Provider/Provider.js +44 -40
  51. package/cjs/extensions/forms/DataContext/Provider/Provider.js.map +1 -1
  52. package/cjs/extensions/forms/DataContext/Provider/ProviderDocs.js +1 -1
  53. package/cjs/extensions/forms/DataContext/Provider/ProviderDocs.js.map +1 -1
  54. package/cjs/extensions/forms/Field/Composition/Composition.js +2 -1
  55. package/cjs/extensions/forms/Field/Composition/Composition.js.map +1 -1
  56. package/cjs/extensions/forms/Field/Date/Date.d.ts +1 -1
  57. package/cjs/extensions/forms/Field/Date/Date.js +1 -1
  58. package/cjs/extensions/forms/Field/Date/Date.js.map +1 -1
  59. package/cjs/extensions/forms/Field/Slider/Slider.js +13 -4
  60. package/cjs/extensions/forms/Field/Slider/Slider.js.map +1 -1
  61. package/cjs/extensions/forms/Field/Upload/Upload.js +2 -1
  62. package/cjs/extensions/forms/Field/Upload/Upload.js.map +1 -1
  63. package/cjs/extensions/forms/Field/Upload/style/dnb-upload.css +5 -0
  64. package/cjs/extensions/forms/Field/Upload/style/dnb-upload.min.css +1 -1
  65. package/cjs/extensions/forms/Field/Upload/style/dnb-upload.scss +6 -0
  66. package/cjs/extensions/forms/FieldBlock/FieldBlock.js +17 -13
  67. package/cjs/extensions/forms/FieldBlock/FieldBlock.js.map +1 -1
  68. package/cjs/extensions/forms/Value/Provider/useValueProvider.d.ts +1 -0
  69. package/cjs/extensions/forms/Value/ValueDocs.js +5 -0
  70. package/cjs/extensions/forms/Value/ValueDocs.js.map +1 -1
  71. package/cjs/extensions/forms/ValueBlock/ValueBlock.d.ts +14 -1
  72. package/cjs/extensions/forms/ValueBlock/ValueBlock.js +40 -10
  73. package/cjs/extensions/forms/ValueBlock/ValueBlock.js.map +1 -1
  74. package/cjs/extensions/forms/ValueBlock/style/dnb-value-block.css +17 -0
  75. package/cjs/extensions/forms/ValueBlock/style/dnb-value-block.min.css +1 -1
  76. package/cjs/extensions/forms/ValueBlock/style/dnb-value-block.scss +24 -0
  77. package/cjs/extensions/forms/Wizard/Container/DisplaySteps.d.ts +7 -0
  78. package/cjs/extensions/forms/Wizard/Container/DisplaySteps.js +78 -0
  79. package/cjs/extensions/forms/Wizard/Container/DisplaySteps.js.map +1 -0
  80. package/cjs/extensions/forms/Wizard/Container/IterateOverSteps.d.ts +3 -0
  81. package/cjs/extensions/forms/Wizard/Container/IterateOverSteps.js +94 -0
  82. package/cjs/extensions/forms/Wizard/Container/IterateOverSteps.js.map +1 -0
  83. package/cjs/extensions/forms/Wizard/Container/PrerenderFieldPropsOfOtherSteps.d.ts +4 -0
  84. package/cjs/extensions/forms/Wizard/Container/PrerenderFieldPropsOfOtherSteps.js +67 -0
  85. package/cjs/extensions/forms/Wizard/Container/PrerenderFieldPropsOfOtherSteps.js.map +1 -0
  86. package/cjs/extensions/forms/Wizard/Container/WizardContainer.d.ts +9 -1
  87. package/cjs/extensions/forms/Wizard/Container/WizardContainer.js +102 -206
  88. package/cjs/extensions/forms/Wizard/Container/WizardContainer.js.map +1 -1
  89. package/cjs/extensions/forms/Wizard/Container/WizardContainerDocs.js +10 -0
  90. package/cjs/extensions/forms/Wizard/Container/WizardContainerDocs.js.map +1 -1
  91. package/cjs/extensions/forms/Wizard/Context/WizardContext.d.ts +7 -23
  92. package/cjs/extensions/forms/Wizard/Context/WizardContext.js.map +1 -1
  93. package/cjs/extensions/forms/Wizard/Context/types.d.ts +35 -0
  94. package/cjs/extensions/forms/Wizard/Context/types.js +1 -0
  95. package/cjs/extensions/forms/Wizard/Context/types.js.map +1 -0
  96. package/cjs/extensions/forms/Wizard/EditButton/EditButton.d.ts +1 -1
  97. package/cjs/extensions/forms/Wizard/EditButton/EditButton.js.map +1 -1
  98. package/cjs/extensions/forms/Wizard/Step/Step.d.ts +4 -0
  99. package/cjs/extensions/forms/Wizard/Step/Step.js +28 -9
  100. package/cjs/extensions/forms/Wizard/Step/Step.js.map +1 -1
  101. package/cjs/extensions/forms/Wizard/Step/StepContext.d.ts +7 -0
  102. package/cjs/extensions/forms/Wizard/Step/StepContext.js +12 -0
  103. package/cjs/extensions/forms/Wizard/Step/StepContext.js.map +1 -0
  104. package/cjs/extensions/forms/Wizard/Step/StepDocs.js +5 -0
  105. package/cjs/extensions/forms/Wizard/Step/StepDocs.js.map +1 -1
  106. package/cjs/extensions/forms/Wizard/hooks/useStep.d.ts +2 -1
  107. package/cjs/extensions/forms/Wizard/hooks/useStep.js.map +1 -1
  108. package/cjs/extensions/forms/constants/locales/en-GB.d.ts +1 -0
  109. package/cjs/extensions/forms/constants/locales/en-GB.js +2 -1
  110. package/cjs/extensions/forms/constants/locales/en-GB.js.map +1 -1
  111. package/cjs/extensions/forms/constants/locales/en-US.d.ts +1 -0
  112. package/cjs/extensions/forms/constants/locales/index.d.ts +2 -0
  113. package/cjs/extensions/forms/constants/locales/nb-NO.d.ts +1 -0
  114. package/cjs/extensions/forms/constants/locales/nb-NO.js +2 -1
  115. package/cjs/extensions/forms/constants/locales/nb-NO.js.map +1 -1
  116. package/cjs/extensions/forms/hooks/useFieldProps.js +35 -17
  117. package/cjs/extensions/forms/hooks/useFieldProps.js.map +1 -1
  118. package/cjs/extensions/forms/style/dnb-forms.css +22 -0
  119. package/cjs/extensions/forms/style/dnb-forms.min.css +1 -1
  120. package/cjs/extensions/forms/types.d.ts +9 -1
  121. package/cjs/extensions/forms/types.js.map +1 -1
  122. package/cjs/fragments/drawer-list/DrawerList.d.ts +6 -1
  123. package/cjs/fragments/drawer-list/DrawerList.js +1 -0
  124. package/cjs/fragments/drawer-list/DrawerList.js.map +1 -1
  125. package/cjs/shared/Eufemia.d.ts +1 -1
  126. package/cjs/shared/Eufemia.js +2 -2
  127. package/cjs/shared/Eufemia.js.map +1 -1
  128. package/cjs/style/core/scopes.scss +1 -1
  129. package/cjs/style/dnb-ui-basis.css +1 -1
  130. package/cjs/style/dnb-ui-basis.min.css +1 -1
  131. package/cjs/style/dnb-ui-body.css +1 -1
  132. package/cjs/style/dnb-ui-body.min.css +1 -1
  133. package/cjs/style/dnb-ui-components.css +58 -4
  134. package/cjs/style/dnb-ui-components.min.css +2 -2
  135. package/cjs/style/dnb-ui-core.css +1 -1
  136. package/cjs/style/dnb-ui-core.min.css +1 -1
  137. package/cjs/style/dnb-ui-extensions.css +22 -0
  138. package/cjs/style/dnb-ui-extensions.min.css +1 -1
  139. package/cjs/style/dnb-ui-forms.css +22 -0
  140. package/cjs/style/dnb-ui-forms.min.css +1 -1
  141. package/cjs/style/themes/theme-eiendom/eiendom-theme-components.css +80 -4
  142. package/cjs/style/themes/theme-eiendom/eiendom-theme-components.min.css +2 -2
  143. package/cjs/style/themes/theme-eiendom/eiendom-theme-extensions.css +22 -0
  144. package/cjs/style/themes/theme-eiendom/eiendom-theme-extensions.min.css +1 -1
  145. package/cjs/style/themes/theme-eiendom/eiendom-theme-forms.css +22 -0
  146. package/cjs/style/themes/theme-eiendom/eiendom-theme-forms.min.css +1 -1
  147. package/cjs/style/themes/theme-sbanken/sbanken-theme-components.css +80 -4
  148. package/cjs/style/themes/theme-sbanken/sbanken-theme-components.min.css +2 -2
  149. package/cjs/style/themes/theme-sbanken/sbanken-theme-extensions.css +22 -0
  150. package/cjs/style/themes/theme-sbanken/sbanken-theme-extensions.min.css +1 -1
  151. package/cjs/style/themes/theme-sbanken/sbanken-theme-forms.css +22 -0
  152. package/cjs/style/themes/theme-sbanken/sbanken-theme-forms.min.css +1 -1
  153. package/cjs/style/themes/theme-ui/ui-theme-components.css +80 -4
  154. package/cjs/style/themes/theme-ui/ui-theme-components.min.css +2 -2
  155. package/cjs/style/themes/theme-ui/ui-theme-extensions.css +22 -0
  156. package/cjs/style/themes/theme-ui/ui-theme-extensions.min.css +1 -1
  157. package/cjs/style/themes/theme-ui/ui-theme-forms.css +22 -0
  158. package/cjs/style/themes/theme-ui/ui-theme-forms.min.css +1 -1
  159. package/components/card/Card.js +1 -1
  160. package/components/card/Card.js.map +1 -1
  161. package/components/date-picker/DatePickerInput.d.ts +5 -0
  162. package/components/date-picker/DatePickerInput.js +103 -76
  163. package/components/date-picker/DatePickerInput.js.map +1 -1
  164. package/components/date-picker/DatePickerProvider.d.ts +4 -3
  165. package/components/date-picker/DatePickerProvider.js +7 -2
  166. package/components/date-picker/DatePickerProvider.js.map +1 -1
  167. package/components/date-picker/hooks/useDates.js.map +1 -1
  168. package/components/flex/Container.d.ts +2 -1
  169. package/components/flex/Container.js +32 -25
  170. package/components/flex/Container.js.map +1 -1
  171. package/components/flex/ContainerDocs.d.ts +2 -0
  172. package/components/flex/ContainerDocs.js +74 -0
  173. package/components/flex/ContainerDocs.js.map +1 -0
  174. package/components/flex/style/dnb-flex.css +36 -4
  175. package/components/flex/style/dnb-flex.min.css +1 -1
  176. package/components/flex/style/flex-container.scss +39 -4
  177. package/components/help-button/HelpButtonInline.d.ts +7 -0
  178. package/components/help-button/HelpButtonInline.js +53 -20
  179. package/components/help-button/HelpButtonInline.js.map +1 -1
  180. package/components/help-button/HelpButtonInstance.js +1 -1
  181. package/components/help-button/HelpButtonInstance.js.map +1 -1
  182. package/components/slider/SliderDocs.js +2 -2
  183. package/components/slider/SliderDocs.js.map +1 -1
  184. package/components/slider/SliderProvider.js +0 -2
  185. package/components/slider/SliderProvider.js.map +1 -1
  186. package/components/slider/types.d.ts +2 -2
  187. package/components/slider/types.js.map +1 -1
  188. package/components/step-indicator/StepIndicator.d.ts +6 -0
  189. package/components/step-indicator/StepIndicator.js.map +1 -1
  190. package/components/step-indicator/StepIndicatorContext.d.ts +2 -0
  191. package/components/step-indicator/StepIndicatorContext.js.map +1 -1
  192. package/components/step-indicator/StepIndicatorTriggerButton.js +4 -3
  193. package/components/step-indicator/StepIndicatorTriggerButton.js.map +1 -1
  194. package/components/toggle-button/ToggleButton.d.ts +9 -1
  195. package/components/toggle-button/ToggleButtonDocs.js +1 -0
  196. package/components/toggle-button/ToggleButtonDocs.js.map +1 -1
  197. package/components/upload/Upload.js +3 -4
  198. package/components/upload/Upload.js.map +1 -1
  199. package/components/upload/UploadFileInput.d.ts +4 -1
  200. package/components/upload/UploadFileInput.js +10 -3
  201. package/components/upload/UploadFileInput.js.map +1 -1
  202. package/components/upload/types.d.ts +1 -1
  203. package/components/upload/types.js.map +1 -1
  204. package/es/components/card/Card.js +1 -1
  205. package/es/components/card/Card.js.map +1 -1
  206. package/es/components/date-picker/DatePickerInput.d.ts +5 -0
  207. package/es/components/date-picker/DatePickerInput.js +103 -76
  208. package/es/components/date-picker/DatePickerInput.js.map +1 -1
  209. package/es/components/date-picker/DatePickerProvider.d.ts +4 -3
  210. package/es/components/date-picker/DatePickerProvider.js +7 -2
  211. package/es/components/date-picker/DatePickerProvider.js.map +1 -1
  212. package/es/components/date-picker/hooks/useDates.js.map +1 -1
  213. package/es/components/flex/Container.d.ts +2 -1
  214. package/es/components/flex/Container.js +32 -25
  215. package/es/components/flex/Container.js.map +1 -1
  216. package/es/components/flex/ContainerDocs.d.ts +2 -0
  217. package/es/components/flex/ContainerDocs.js +74 -0
  218. package/es/components/flex/ContainerDocs.js.map +1 -0
  219. package/es/components/flex/style/dnb-flex.css +36 -4
  220. package/es/components/flex/style/dnb-flex.min.css +1 -1
  221. package/es/components/flex/style/flex-container.scss +39 -4
  222. package/es/components/help-button/HelpButtonInline.d.ts +7 -0
  223. package/es/components/help-button/HelpButtonInline.js +52 -19
  224. package/es/components/help-button/HelpButtonInline.js.map +1 -1
  225. package/es/components/help-button/HelpButtonInstance.js +1 -1
  226. package/es/components/help-button/HelpButtonInstance.js.map +1 -1
  227. package/es/components/slider/SliderDocs.js +2 -2
  228. package/es/components/slider/SliderDocs.js.map +1 -1
  229. package/es/components/slider/SliderProvider.js +0 -2
  230. package/es/components/slider/SliderProvider.js.map +1 -1
  231. package/es/components/slider/types.d.ts +2 -2
  232. package/es/components/slider/types.js.map +1 -1
  233. package/es/components/step-indicator/StepIndicator.d.ts +6 -0
  234. package/es/components/step-indicator/StepIndicator.js.map +1 -1
  235. package/es/components/step-indicator/StepIndicatorContext.d.ts +2 -0
  236. package/es/components/step-indicator/StepIndicatorContext.js.map +1 -1
  237. package/es/components/step-indicator/StepIndicatorTriggerButton.js +4 -3
  238. package/es/components/step-indicator/StepIndicatorTriggerButton.js.map +1 -1
  239. package/es/components/toggle-button/ToggleButton.d.ts +9 -1
  240. package/es/components/toggle-button/ToggleButtonDocs.js +1 -0
  241. package/es/components/toggle-button/ToggleButtonDocs.js.map +1 -1
  242. package/es/components/upload/Upload.js +3 -4
  243. package/es/components/upload/Upload.js.map +1 -1
  244. package/es/components/upload/UploadFileInput.d.ts +4 -1
  245. package/es/components/upload/UploadFileInput.js +10 -3
  246. package/es/components/upload/UploadFileInput.js.map +1 -1
  247. package/es/components/upload/types.d.ts +1 -1
  248. package/es/components/upload/types.js.map +1 -1
  249. package/es/extensions/forms/DataContext/Context.d.ts +10 -4
  250. package/es/extensions/forms/DataContext/Context.js.map +1 -1
  251. package/es/extensions/forms/DataContext/Provider/Provider.d.ts +2 -2
  252. package/es/extensions/forms/DataContext/Provider/Provider.js +34 -33
  253. package/es/extensions/forms/DataContext/Provider/Provider.js.map +1 -1
  254. package/es/extensions/forms/DataContext/Provider/ProviderDocs.js +1 -1
  255. package/es/extensions/forms/DataContext/Provider/ProviderDocs.js.map +1 -1
  256. package/es/extensions/forms/Field/Composition/Composition.js +2 -1
  257. package/es/extensions/forms/Field/Composition/Composition.js.map +1 -1
  258. package/es/extensions/forms/Field/Date/Date.d.ts +1 -1
  259. package/es/extensions/forms/Field/Date/Date.js +1 -1
  260. package/es/extensions/forms/Field/Date/Date.js.map +1 -1
  261. package/es/extensions/forms/Field/Slider/Slider.js +13 -4
  262. package/es/extensions/forms/Field/Slider/Slider.js.map +1 -1
  263. package/es/extensions/forms/Field/Upload/Upload.js +2 -1
  264. package/es/extensions/forms/Field/Upload/Upload.js.map +1 -1
  265. package/es/extensions/forms/Field/Upload/style/dnb-upload.css +5 -0
  266. package/es/extensions/forms/Field/Upload/style/dnb-upload.min.css +1 -1
  267. package/es/extensions/forms/Field/Upload/style/dnb-upload.scss +6 -0
  268. package/es/extensions/forms/FieldBlock/FieldBlock.js +17 -13
  269. package/es/extensions/forms/FieldBlock/FieldBlock.js.map +1 -1
  270. package/es/extensions/forms/Value/Provider/useValueProvider.d.ts +1 -0
  271. package/es/extensions/forms/Value/ValueDocs.js +5 -0
  272. package/es/extensions/forms/Value/ValueDocs.js.map +1 -1
  273. package/es/extensions/forms/ValueBlock/ValueBlock.d.ts +14 -1
  274. package/es/extensions/forms/ValueBlock/ValueBlock.js +40 -10
  275. package/es/extensions/forms/ValueBlock/ValueBlock.js.map +1 -1
  276. package/es/extensions/forms/ValueBlock/style/dnb-value-block.css +17 -0
  277. package/es/extensions/forms/ValueBlock/style/dnb-value-block.min.css +1 -1
  278. package/es/extensions/forms/ValueBlock/style/dnb-value-block.scss +24 -0
  279. package/es/extensions/forms/Wizard/Container/DisplaySteps.d.ts +7 -0
  280. package/es/extensions/forms/Wizard/Container/DisplaySteps.js +66 -0
  281. package/es/extensions/forms/Wizard/Container/DisplaySteps.js.map +1 -0
  282. package/es/extensions/forms/Wizard/Container/IterateOverSteps.d.ts +3 -0
  283. package/es/extensions/forms/Wizard/Container/IterateOverSteps.js +85 -0
  284. package/es/extensions/forms/Wizard/Container/IterateOverSteps.js.map +1 -0
  285. package/es/extensions/forms/Wizard/Container/PrerenderFieldPropsOfOtherSteps.d.ts +4 -0
  286. package/es/extensions/forms/Wizard/Container/PrerenderFieldPropsOfOtherSteps.js +54 -0
  287. package/es/extensions/forms/Wizard/Container/PrerenderFieldPropsOfOtherSteps.js.map +1 -0
  288. package/es/extensions/forms/Wizard/Container/WizardContainer.d.ts +9 -1
  289. package/es/extensions/forms/Wizard/Container/WizardContainer.js +97 -194
  290. package/es/extensions/forms/Wizard/Container/WizardContainer.js.map +1 -1
  291. package/es/extensions/forms/Wizard/Container/WizardContainerDocs.js +10 -0
  292. package/es/extensions/forms/Wizard/Container/WizardContainerDocs.js.map +1 -1
  293. package/es/extensions/forms/Wizard/Context/WizardContext.d.ts +7 -23
  294. package/es/extensions/forms/Wizard/Context/WizardContext.js.map +1 -1
  295. package/es/extensions/forms/Wizard/Context/types.d.ts +35 -0
  296. package/es/extensions/forms/Wizard/Context/types.js +1 -0
  297. package/es/extensions/forms/Wizard/Context/types.js.map +1 -0
  298. package/es/extensions/forms/Wizard/EditButton/EditButton.d.ts +1 -1
  299. package/es/extensions/forms/Wizard/EditButton/EditButton.js.map +1 -1
  300. package/es/extensions/forms/Wizard/Step/Step.d.ts +4 -0
  301. package/es/extensions/forms/Wizard/Step/Step.js +29 -10
  302. package/es/extensions/forms/Wizard/Step/Step.js.map +1 -1
  303. package/es/extensions/forms/Wizard/Step/StepContext.d.ts +7 -0
  304. package/es/extensions/forms/Wizard/Step/StepContext.js +4 -0
  305. package/es/extensions/forms/Wizard/Step/StepContext.js.map +1 -0
  306. package/es/extensions/forms/Wizard/Step/StepDocs.js +5 -0
  307. package/es/extensions/forms/Wizard/Step/StepDocs.js.map +1 -1
  308. package/es/extensions/forms/Wizard/hooks/useStep.d.ts +2 -1
  309. package/es/extensions/forms/Wizard/hooks/useStep.js.map +1 -1
  310. package/es/extensions/forms/constants/locales/en-GB.d.ts +1 -0
  311. package/es/extensions/forms/constants/locales/en-GB.js +2 -1
  312. package/es/extensions/forms/constants/locales/en-GB.js.map +1 -1
  313. package/es/extensions/forms/constants/locales/en-US.d.ts +1 -0
  314. package/es/extensions/forms/constants/locales/index.d.ts +2 -0
  315. package/es/extensions/forms/constants/locales/nb-NO.d.ts +1 -0
  316. package/es/extensions/forms/constants/locales/nb-NO.js +2 -1
  317. package/es/extensions/forms/constants/locales/nb-NO.js.map +1 -1
  318. package/es/extensions/forms/hooks/useFieldProps.js +36 -16
  319. package/es/extensions/forms/hooks/useFieldProps.js.map +1 -1
  320. package/es/extensions/forms/style/dnb-forms.css +22 -0
  321. package/es/extensions/forms/style/dnb-forms.min.css +1 -1
  322. package/es/extensions/forms/types.d.ts +9 -1
  323. package/es/extensions/forms/types.js.map +1 -1
  324. package/es/fragments/drawer-list/DrawerList.d.ts +6 -1
  325. package/es/fragments/drawer-list/DrawerList.js +1 -0
  326. package/es/fragments/drawer-list/DrawerList.js.map +1 -1
  327. package/es/shared/Eufemia.d.ts +1 -1
  328. package/es/shared/Eufemia.js +2 -2
  329. package/es/shared/Eufemia.js.map +1 -1
  330. package/es/style/core/scopes.scss +1 -1
  331. package/es/style/dnb-ui-basis.css +1 -1
  332. package/es/style/dnb-ui-basis.min.css +1 -1
  333. package/es/style/dnb-ui-body.css +1 -1
  334. package/es/style/dnb-ui-body.min.css +1 -1
  335. package/es/style/dnb-ui-components.css +58 -4
  336. package/es/style/dnb-ui-components.min.css +2 -2
  337. package/es/style/dnb-ui-core.css +1 -1
  338. package/es/style/dnb-ui-core.min.css +1 -1
  339. package/es/style/dnb-ui-extensions.css +22 -0
  340. package/es/style/dnb-ui-extensions.min.css +1 -1
  341. package/es/style/dnb-ui-forms.css +22 -0
  342. package/es/style/dnb-ui-forms.min.css +1 -1
  343. package/es/style/themes/theme-eiendom/eiendom-theme-components.css +80 -4
  344. package/es/style/themes/theme-eiendom/eiendom-theme-components.min.css +2 -2
  345. package/es/style/themes/theme-eiendom/eiendom-theme-extensions.css +22 -0
  346. package/es/style/themes/theme-eiendom/eiendom-theme-extensions.min.css +1 -1
  347. package/es/style/themes/theme-eiendom/eiendom-theme-forms.css +22 -0
  348. package/es/style/themes/theme-eiendom/eiendom-theme-forms.min.css +1 -1
  349. package/es/style/themes/theme-sbanken/sbanken-theme-components.css +80 -4
  350. package/es/style/themes/theme-sbanken/sbanken-theme-components.min.css +2 -2
  351. package/es/style/themes/theme-sbanken/sbanken-theme-extensions.css +22 -0
  352. package/es/style/themes/theme-sbanken/sbanken-theme-extensions.min.css +1 -1
  353. package/es/style/themes/theme-sbanken/sbanken-theme-forms.css +22 -0
  354. package/es/style/themes/theme-sbanken/sbanken-theme-forms.min.css +1 -1
  355. package/es/style/themes/theme-ui/ui-theme-components.css +80 -4
  356. package/es/style/themes/theme-ui/ui-theme-components.min.css +2 -2
  357. package/es/style/themes/theme-ui/ui-theme-extensions.css +22 -0
  358. package/es/style/themes/theme-ui/ui-theme-extensions.min.css +1 -1
  359. package/es/style/themes/theme-ui/ui-theme-forms.css +22 -0
  360. package/es/style/themes/theme-ui/ui-theme-forms.min.css +1 -1
  361. package/esm/dnb-ui-basis.min.mjs +1 -1
  362. package/esm/dnb-ui-components.min.mjs +1 -1
  363. package/esm/dnb-ui-elements.min.mjs +1 -1
  364. package/esm/dnb-ui-extensions.min.mjs +2 -2
  365. package/esm/dnb-ui-lib.min.mjs +1 -1
  366. package/extensions/forms/DataContext/Context.d.ts +10 -4
  367. package/extensions/forms/DataContext/Context.js.map +1 -1
  368. package/extensions/forms/DataContext/Provider/Provider.d.ts +2 -2
  369. package/extensions/forms/DataContext/Provider/Provider.js +44 -40
  370. package/extensions/forms/DataContext/Provider/Provider.js.map +1 -1
  371. package/extensions/forms/DataContext/Provider/ProviderDocs.js +1 -1
  372. package/extensions/forms/DataContext/Provider/ProviderDocs.js.map +1 -1
  373. package/extensions/forms/Field/Composition/Composition.js +2 -1
  374. package/extensions/forms/Field/Composition/Composition.js.map +1 -1
  375. package/extensions/forms/Field/Date/Date.d.ts +1 -1
  376. package/extensions/forms/Field/Date/Date.js +1 -1
  377. package/extensions/forms/Field/Date/Date.js.map +1 -1
  378. package/extensions/forms/Field/Slider/Slider.js +13 -4
  379. package/extensions/forms/Field/Slider/Slider.js.map +1 -1
  380. package/extensions/forms/Field/Upload/Upload.js +2 -1
  381. package/extensions/forms/Field/Upload/Upload.js.map +1 -1
  382. package/extensions/forms/Field/Upload/style/dnb-upload.css +5 -0
  383. package/extensions/forms/Field/Upload/style/dnb-upload.min.css +1 -1
  384. package/extensions/forms/Field/Upload/style/dnb-upload.scss +6 -0
  385. package/extensions/forms/FieldBlock/FieldBlock.js +17 -13
  386. package/extensions/forms/FieldBlock/FieldBlock.js.map +1 -1
  387. package/extensions/forms/Value/Provider/useValueProvider.d.ts +1 -0
  388. package/extensions/forms/Value/ValueDocs.js +5 -0
  389. package/extensions/forms/Value/ValueDocs.js.map +1 -1
  390. package/extensions/forms/ValueBlock/ValueBlock.d.ts +14 -1
  391. package/extensions/forms/ValueBlock/ValueBlock.js +40 -10
  392. package/extensions/forms/ValueBlock/ValueBlock.js.map +1 -1
  393. package/extensions/forms/ValueBlock/style/dnb-value-block.css +17 -0
  394. package/extensions/forms/ValueBlock/style/dnb-value-block.min.css +1 -1
  395. package/extensions/forms/ValueBlock/style/dnb-value-block.scss +24 -0
  396. package/extensions/forms/Wizard/Container/DisplaySteps.d.ts +7 -0
  397. package/extensions/forms/Wizard/Container/DisplaySteps.js +70 -0
  398. package/extensions/forms/Wizard/Container/DisplaySteps.js.map +1 -0
  399. package/extensions/forms/Wizard/Container/IterateOverSteps.d.ts +3 -0
  400. package/extensions/forms/Wizard/Container/IterateOverSteps.js +86 -0
  401. package/extensions/forms/Wizard/Container/IterateOverSteps.js.map +1 -0
  402. package/extensions/forms/Wizard/Container/PrerenderFieldPropsOfOtherSteps.d.ts +4 -0
  403. package/extensions/forms/Wizard/Container/PrerenderFieldPropsOfOtherSteps.js +57 -0
  404. package/extensions/forms/Wizard/Container/PrerenderFieldPropsOfOtherSteps.js.map +1 -0
  405. package/extensions/forms/Wizard/Container/WizardContainer.d.ts +9 -1
  406. package/extensions/forms/Wizard/Container/WizardContainer.js +103 -207
  407. package/extensions/forms/Wizard/Container/WizardContainer.js.map +1 -1
  408. package/extensions/forms/Wizard/Container/WizardContainerDocs.js +10 -0
  409. package/extensions/forms/Wizard/Container/WizardContainerDocs.js.map +1 -1
  410. package/extensions/forms/Wizard/Context/WizardContext.d.ts +7 -23
  411. package/extensions/forms/Wizard/Context/WizardContext.js.map +1 -1
  412. package/extensions/forms/Wizard/Context/types.d.ts +35 -0
  413. package/extensions/forms/Wizard/Context/types.js +1 -0
  414. package/extensions/forms/Wizard/Context/types.js.map +1 -0
  415. package/extensions/forms/Wizard/EditButton/EditButton.d.ts +1 -1
  416. package/extensions/forms/Wizard/EditButton/EditButton.js.map +1 -1
  417. package/extensions/forms/Wizard/Step/Step.d.ts +4 -0
  418. package/extensions/forms/Wizard/Step/Step.js +29 -10
  419. package/extensions/forms/Wizard/Step/Step.js.map +1 -1
  420. package/extensions/forms/Wizard/Step/StepContext.d.ts +7 -0
  421. package/extensions/forms/Wizard/Step/StepContext.js +4 -0
  422. package/extensions/forms/Wizard/Step/StepContext.js.map +1 -0
  423. package/extensions/forms/Wizard/Step/StepDocs.js +5 -0
  424. package/extensions/forms/Wizard/Step/StepDocs.js.map +1 -1
  425. package/extensions/forms/Wizard/hooks/useStep.d.ts +2 -1
  426. package/extensions/forms/Wizard/hooks/useStep.js.map +1 -1
  427. package/extensions/forms/constants/locales/en-GB.d.ts +1 -0
  428. package/extensions/forms/constants/locales/en-GB.js +2 -1
  429. package/extensions/forms/constants/locales/en-GB.js.map +1 -1
  430. package/extensions/forms/constants/locales/en-US.d.ts +1 -0
  431. package/extensions/forms/constants/locales/index.d.ts +2 -0
  432. package/extensions/forms/constants/locales/nb-NO.d.ts +1 -0
  433. package/extensions/forms/constants/locales/nb-NO.js +2 -1
  434. package/extensions/forms/constants/locales/nb-NO.js.map +1 -1
  435. package/extensions/forms/hooks/useFieldProps.js +35 -17
  436. package/extensions/forms/hooks/useFieldProps.js.map +1 -1
  437. package/extensions/forms/style/dnb-forms.css +22 -0
  438. package/extensions/forms/style/dnb-forms.min.css +1 -1
  439. package/extensions/forms/types.d.ts +9 -1
  440. package/extensions/forms/types.js.map +1 -1
  441. package/fragments/drawer-list/DrawerList.d.ts +6 -1
  442. package/fragments/drawer-list/DrawerList.js +1 -0
  443. package/fragments/drawer-list/DrawerList.js.map +1 -1
  444. package/package.json +1 -1
  445. package/shared/Eufemia.d.ts +1 -1
  446. package/shared/Eufemia.js +2 -2
  447. package/shared/Eufemia.js.map +1 -1
  448. package/style/core/scopes.scss +1 -1
  449. package/style/dnb-ui-basis.css +1 -1
  450. package/style/dnb-ui-basis.min.css +1 -1
  451. package/style/dnb-ui-body.css +1 -1
  452. package/style/dnb-ui-body.min.css +1 -1
  453. package/style/dnb-ui-components.css +58 -4
  454. package/style/dnb-ui-components.min.css +2 -2
  455. package/style/dnb-ui-core.css +1 -1
  456. package/style/dnb-ui-core.min.css +1 -1
  457. package/style/dnb-ui-extensions.css +22 -0
  458. package/style/dnb-ui-extensions.min.css +1 -1
  459. package/style/dnb-ui-forms.css +22 -0
  460. package/style/dnb-ui-forms.min.css +1 -1
  461. package/style/themes/theme-eiendom/eiendom-theme-components.css +80 -4
  462. package/style/themes/theme-eiendom/eiendom-theme-components.min.css +2 -2
  463. package/style/themes/theme-eiendom/eiendom-theme-extensions.css +22 -0
  464. package/style/themes/theme-eiendom/eiendom-theme-extensions.min.css +1 -1
  465. package/style/themes/theme-eiendom/eiendom-theme-forms.css +22 -0
  466. package/style/themes/theme-eiendom/eiendom-theme-forms.min.css +1 -1
  467. package/style/themes/theme-sbanken/sbanken-theme-components.css +80 -4
  468. package/style/themes/theme-sbanken/sbanken-theme-components.min.css +2 -2
  469. package/style/themes/theme-sbanken/sbanken-theme-extensions.css +22 -0
  470. package/style/themes/theme-sbanken/sbanken-theme-extensions.min.css +1 -1
  471. package/style/themes/theme-sbanken/sbanken-theme-forms.css +22 -0
  472. package/style/themes/theme-sbanken/sbanken-theme-forms.min.css +1 -1
  473. package/style/themes/theme-ui/ui-theme-components.css +80 -4
  474. package/style/themes/theme-ui/ui-theme-components.min.css +2 -2
  475. package/style/themes/theme-ui/ui-theme-extensions.css +22 -0
  476. package/style/themes/theme-ui/ui-theme-extensions.min.css +1 -1
  477. package/style/themes/theme-ui/ui-theme-forms.css +22 -0
  478. package/style/themes/theme-ui/ui-theme-forms.min.css +1 -1
  479. package/umd/dnb-ui-basis.min.js +1 -1
  480. package/umd/dnb-ui-components.min.js +1 -1
  481. package/umd/dnb-ui-elements.min.js +1 -1
  482. package/umd/dnb-ui-extensions.min.js +2 -2
  483. package/umd/dnb-ui-lib.min.js +1 -1
@@ -1,11 +1,13 @@
1
1
  .dnb-flex-container {
2
+ --gap: 0;
3
+ --horizontal-gap: 0;
2
4
  display: flex;
3
- row-gap: var(--gap, 0);
5
+ row-gap: var(--gap);
4
6
 
5
7
  &--direction {
6
8
  &-horizontal {
7
9
  flex-direction: row;
8
- margin-right: calc(var(--gap) * -1);
10
+ margin-right: calc(var(--horizontal-gap) * -1);
9
11
  }
10
12
 
11
13
  &-vertical {
@@ -88,8 +90,11 @@
88
90
  flex-wrap: wrap;
89
91
  }
90
92
 
91
- &--row-gap-off {
92
- --gap: 0;
93
+ &--row-gap-xx-small {
94
+ --gap: var(--spacing-xx-small);
95
+ }
96
+ &--row-gap-x-small {
97
+ --gap: var(--spacing-x-small);
93
98
  }
94
99
  &--row-gap-small {
95
100
  --gap: var(--spacing-small);
@@ -100,6 +105,36 @@
100
105
  &--row-gap-large {
101
106
  --gap: var(--spacing-large);
102
107
  }
108
+ &--row-gap-x-large {
109
+ --gap: var(--spacing-x-large);
110
+ }
111
+ &--row-gap-xx-large {
112
+ --gap: var(--spacing-xx-large);
113
+ }
114
+
115
+ &--spacing {
116
+ &-xx-small {
117
+ --horizontal-gap: var(--spacing-xx-small);
118
+ }
119
+ &-x-small {
120
+ --horizontal-gap: var(--spacing-x-small);
121
+ }
122
+ &-small {
123
+ --horizontal-gap: var(--spacing-small);
124
+ }
125
+ &-medium {
126
+ --horizontal-gap: var(--spacing-medium);
127
+ }
128
+ &-large {
129
+ --horizontal-gap: var(--spacing-large);
130
+ }
131
+ &-x-large {
132
+ --horizontal-gap: var(--spacing-x-large);
133
+ }
134
+ &-xx-large {
135
+ --horizontal-gap: var(--spacing-xx-large);
136
+ }
137
+ }
103
138
 
104
139
  &__hr.dnb-hr {
105
140
  width: 100%;
@@ -15,11 +15,16 @@ export type HelpProps = {
15
15
  export type HelpButtonInlineProps = HelpButtonProps & {
16
16
  contentId?: string;
17
17
  help?: HelpProps;
18
+ /**
19
+ * If set to `true`, the content will get focus when the help content is opened.
20
+ */
21
+ focusWhenOpen?: boolean;
18
22
  };
19
23
  export type HelpButtonInlineSharedStateDataProps = {
20
24
  isOpen: boolean;
21
25
  isUserIntent?: boolean;
22
26
  buttonRef?: React.RefObject<HTMLButtonElement>;
27
+ focusWhenOpen?: boolean;
23
28
  };
24
29
  declare function HelpButtonInline(props: HelpButtonInlineProps): import("react/jsx-runtime").JSX.Element;
25
30
  declare namespace HelpButtonInline {
@@ -33,6 +38,8 @@ export type HelpButtonInlineContentProps = SpacingProps & {
33
38
  help?: HelpProps;
34
39
  breakout?: boolean;
35
40
  outset?: boolean;
41
+ roundedCorner?: boolean;
42
+ focusWhenOpen?: boolean;
36
43
  };
37
44
  export declare function HelpButtonInlineContent(props: HelpButtonInlineContentProps): import("react/jsx-runtime").JSX.Element;
38
45
  export declare namespace HelpButtonInlineContent {
@@ -3,8 +3,8 @@
3
3
  import _extends from "@babel/runtime/helpers/esm/extends";
4
4
  import _objectWithoutProperties from "@babel/runtime/helpers/esm/objectWithoutProperties";
5
5
  var _QuestionIcon, _CloseIcon;
6
- const _excluded = ["contentId", "size", "help", "className", "children"],
7
- _excluded2 = ["contentId", "className", "children", "help", "breakout", "outset"];
6
+ const _excluded = ["contentId", "size", "help", "focusWhenOpen", "className", "children"],
7
+ _excluded2 = ["contentId", "className", "children", "help", "breakout", "outset", "roundedCorner", "focusWhenOpen"];
8
8
  import React, { useCallback, useContext, useEffect, useRef } from 'react';
9
9
  import classnames from 'classnames';
10
10
  import HelpButtonInstance from './HelpButtonInstance';
@@ -24,6 +24,7 @@ export default function HelpButtonInline(props) {
24
24
  contentId,
25
25
  size,
26
26
  help,
27
+ focusWhenOpen,
27
28
  className,
28
29
  children
29
30
  } = props,
@@ -41,31 +42,54 @@ export default function HelpButtonInline(props) {
41
42
  } = data || {};
42
43
  const wasOpenRef = useRef(undefined);
43
44
  const buttonRef = useRef(null);
44
- const onClickHandler = useCallback(({
45
- event
46
- }) => {
47
- event.preventDefault();
45
+ const toggleOpen = useCallback(() => {
48
46
  update({
49
47
  isOpen: !isOpen,
50
48
  isUserIntent: !isOpen,
51
- buttonRef
49
+ buttonRef,
50
+ focusWhenOpen
52
51
  });
53
52
  wasOpenRef.current = !isOpen;
54
- }, [isOpen, update]);
53
+ }, [focusWhenOpen, isOpen, update]);
54
+ const onClickHandler = useCallback(({
55
+ event
56
+ }) => {
57
+ event.preventDefault();
58
+ toggleOpen();
59
+ }, [toggleOpen]);
60
+ const onKeyDownHandler = useCallback(event => {
61
+ if (event.currentTarget === event.target) {
62
+ switch (event.key.trim() || event.code) {
63
+ case 'Escape':
64
+ if (isOpen) {
65
+ event.preventDefault();
66
+ window.requestAnimationFrame(() => {
67
+ toggleOpen();
68
+ });
69
+ }
70
+ break;
71
+ }
72
+ }
73
+ }, [isOpen, toggleOpen]);
74
+ const title = convertJsxToString(help === null || help === void 0 ? void 0 : help.title);
55
75
  return React.createElement(React.Fragment, null, React.createElement(HelpButtonInstance, _extends({
56
76
  bounding: true,
57
77
  size: size !== null && size !== void 0 ? size : 'small',
58
78
  icon: HelpButtonIcon,
59
- title: !isOpen && !wasOpenRef.current ? convertJsxToString(help === null || help === void 0 ? void 0 : help.title) : undefined
79
+ title: !isOpen && !wasOpenRef.current ? title : undefined
60
80
  }, rest, {
61
81
  id: controlId,
62
82
  className: classnames('dnb-help-button__inline', className, isOpen && 'dnb-help-button__inline--open', isUserIntent && 'dnb-help-button__inline--user-intent', typeof wasOpenRef.current === 'boolean' && 'dnb-help-button__inline--was-open'),
63
83
  "aria-controls": `${controlId}-content`,
84
+ "aria-expanded": isOpen,
85
+ "aria-label": title,
64
86
  on_click: onClickHandler,
87
+ onKeyDown: onKeyDownHandler,
65
88
  innerRef: buttonRef
66
89
  })), !contentId && React.createElement(HelpButtonInlineContent, {
67
90
  contentId: controlId,
68
- help: help
91
+ help: help,
92
+ focusWhenOpen: focusWhenOpen
69
93
  }, children));
70
94
  }
71
95
  export function HelpButtonInlineContent(props) {
@@ -76,7 +100,9 @@ export function HelpButtonInlineContent(props) {
76
100
  children,
77
101
  help: helpProp,
78
102
  breakout = true,
79
- outset = true
103
+ outset = true,
104
+ roundedCorner = true,
105
+ focusWhenOpen: focusWhenOpenProp
80
106
  } = props,
81
107
  rest = _objectWithoutProperties(props, _excluded2);
82
108
  const {
@@ -85,6 +111,7 @@ export function HelpButtonInlineContent(props) {
85
111
  } = useSharedState(contentId);
86
112
  const {
87
113
  isOpen,
114
+ focusWhenOpen = focusWhenOpenProp,
88
115
  isUserIntent,
89
116
  buttonRef
90
117
  } = data || {};
@@ -101,7 +128,7 @@ export function HelpButtonInlineContent(props) {
101
128
  const breakoutFromLayout = Boolean(cardContext) && breakout && breakoutProp;
102
129
  const outsetFromLayout = outset && outsetProp;
103
130
  useEffect(() => {
104
- if (isOpen && isUserIntent) {
131
+ if (isOpen && isUserIntent && focusWhenOpen) {
105
132
  window.requestAnimationFrame(() => {
106
133
  var _innerRef$current;
107
134
  (_innerRef$current = innerRef.current) === null || _innerRef$current === void 0 ? void 0 : _innerRef$current.focus({
@@ -109,7 +136,7 @@ export function HelpButtonInlineContent(props) {
109
136
  });
110
137
  });
111
138
  }
112
- }, [isOpen, isUserIntent]);
139
+ }, [focusWhenOpen, isOpen, isUserIntent]);
113
140
  const onClose = useCallback(() => {
114
141
  update({
115
142
  isOpen: false,
@@ -140,19 +167,25 @@ export function HelpButtonInlineContent(props) {
140
167
  onClose: onClose
141
168
  }, content, children);
142
169
  }
170
+ const focusParams = focusWhenOpen ? {
171
+ 'aria-label': convertJsxToString(title),
172
+ className: 'dnb-no-focus',
173
+ tabIndex: -1,
174
+ onKeyDown
175
+ } : {
176
+ 'aria-live': 'polite',
177
+ 'aria-atomic': 'true'
178
+ };
143
179
  return React.createElement(HeightAnimation, {
144
180
  className: classnames('dnb-help-button__content', className),
145
181
  open: (_ref = isOpen !== null && isOpen !== void 0 ? isOpen : open) !== null && _ref !== void 0 ? _ref : false
146
182
  }, React.createElement(Section, _extends({
147
- id: `${contentId}-content`,
148
- "aria-label": convertJsxToString(title),
149
- className: "dnb-no-focus",
150
- tabIndex: -1,
183
+ id: `${contentId}-content`
184
+ }, focusParams, {
151
185
  innerRef: innerRef,
152
- onKeyDown: onKeyDown,
153
186
  outset: outsetFromLayout,
154
187
  breakout: breakoutFromLayout,
155
- roundedCorner: !breakoutFromLayout,
188
+ roundedCorner: roundedCorner !== null && roundedCorner !== void 0 ? roundedCorner : !breakoutFromLayout,
156
189
  innerSpace: breakoutFromLayout ? {
157
190
  top: 'small',
158
191
  bottom: 'medium'
@@ -1 +1 @@
1
- {"version":3,"file":"HelpButtonInline.js","names":["React","useCallback","useContext","useEffect","useRef","classnames","HelpButtonInstance","HeightAnimation","useSharedState","convertJsxToString","useId","Section","P","Flex","CardContext","Dialog","question","QuestionIcon","close","CloseIcon","HelpButtonInline","props","_help$open","contentId","size","help","className","children","rest","_objectWithoutProperties","_excluded","controlId","data","update","isOpen","open","isUserIntent","wasOpenRef","undefined","buttonRef","onClickHandler","event","preventDefault","current","createElement","Fragment","_extends","bounding","icon","HelpButtonIcon","title","id","on_click","innerRef","HelpButtonInlineContent","_ref","helpProp","breakout","outset","_excluded2","content","renderAs","breakoutProp","outsetProp","cardContext","breakoutFromLayout","Boolean","outsetFromLayout","window","requestAnimationFrame","_innerRef$current","focus","preventScroll","onClose","onKeyDown","currentTarget","target","key","trim","code","_buttonRef$current","omitTriggerButton","openState","tabIndex","roundedCorner","innerSpace","top","bottom","left","right","backgroundColor","Vertical","gap","weight","_QuestionIcon","_CloseIcon","_supportsSpacingProps"],"sources":["../../../../src/components/help-button/HelpButtonInline.tsx"],"sourcesContent":["import React, { useCallback, useContext, useEffect, useRef } from 'react'\nimport classnames from 'classnames'\nimport { HelpButtonProps } from './HelpButton'\nimport HelpButtonInstance from './HelpButtonInstance'\nimport HeightAnimation from '../HeightAnimation'\nimport { useSharedState } from '../../shared/helpers/useSharedState'\nimport { convertJsxToString } from '../../shared/component-helper'\nimport useId from '../../shared/helpers/useId'\nimport Section from '../Section'\nimport { P } from '../../elements'\nimport Flex from '../Flex'\nimport CardContext from '../card/CardContext'\nimport { SpacingProps } from '../space/types'\nimport Dialog from '../Dialog'\nimport { question as QuestionIcon, close as CloseIcon } from '../../icons'\n\nexport type HelpProps = {\n title?: React.ReactNode\n content?: React.ReactNode\n renderAs?: 'inline' | 'dialog'\n /** Only for the \"inline\" variant */\n open?: boolean\n /** Only for the \"inline\" variant */\n breakout?: boolean\n /** Only for the \"inline\" variant */\n outset?: boolean\n}\n\nexport type HelpButtonInlineProps = HelpButtonProps & {\n contentId?: string\n help?: HelpProps\n}\n\nexport type HelpButtonInlineSharedStateDataProps = {\n isOpen: boolean\n isUserIntent?: boolean\n buttonRef?: React.RefObject<HTMLButtonElement>\n}\n\nexport default function HelpButtonInline(props: HelpButtonInlineProps) {\n const { contentId, size, help, className, children, ...rest } = props\n const controlId = useId(contentId)\n\n const { data, update } =\n useSharedState<HelpButtonInlineSharedStateDataProps>(controlId, {\n isOpen: help?.open ?? false,\n })\n const { isOpen, isUserIntent } = data || {}\n const wasOpenRef = useRef(undefined)\n const buttonRef = useRef<HTMLButtonElement>(null)\n\n const onClickHandler = useCallback(\n ({ event }: { event: React.MouseEvent<HTMLButtonElement> }) => {\n event.preventDefault() // Because when used inside a FormLabel\n update({ isOpen: !isOpen, isUserIntent: !isOpen, buttonRef })\n wasOpenRef.current = !isOpen\n },\n [isOpen, update]\n )\n\n return (\n <>\n <HelpButtonInstance\n bounding\n size={size ?? 'small'}\n icon={HelpButtonIcon}\n title={\n !isOpen && !wasOpenRef.current\n ? convertJsxToString(help?.title)\n : undefined\n }\n {...rest}\n id={controlId}\n className={classnames(\n 'dnb-help-button__inline',\n isOpen && 'dnb-help-button__inline--open',\n isUserIntent && 'dnb-help-button__inline--user-intent',\n typeof wasOpenRef.current === 'boolean' &&\n 'dnb-help-button__inline--was-open',\n className\n )}\n aria-controls={`${controlId}-content`}\n on_click={onClickHandler}\n innerRef={buttonRef}\n />\n\n {!contentId && (\n <HelpButtonInlineContent contentId={controlId} help={help}>\n {children}\n </HelpButtonInlineContent>\n )}\n </>\n )\n}\n\nexport type HelpButtonInlineContentProps = SpacingProps & {\n contentId: string\n className?: string\n children?: React.ReactNode\n help?: HelpProps\n breakout?: boolean\n outset?: boolean\n}\n\nexport function HelpButtonInlineContent(\n props: HelpButtonInlineContentProps\n) {\n const {\n contentId,\n className,\n children,\n help: helpProp,\n breakout = true,\n outset = true,\n ...rest\n } = props\n const { data, update } =\n useSharedState<HelpButtonInlineSharedStateDataProps>(contentId)\n const { isOpen, isUserIntent, buttonRef } = data || {}\n const {\n open,\n title,\n content,\n renderAs,\n breakout: breakoutProp = true,\n outset: outsetProp = true,\n } = helpProp || {}\n\n const innerRef = useRef<HTMLDivElement>(null)\n const cardContext = useContext(CardContext)\n const breakoutFromLayout =\n Boolean(cardContext) && breakout && breakoutProp\n const outsetFromLayout = outset && outsetProp\n\n useEffect(() => {\n if (isOpen && isUserIntent) {\n window.requestAnimationFrame(() => {\n innerRef.current?.focus({ preventScroll: true })\n })\n }\n }, [isOpen, isUserIntent])\n\n const onClose = useCallback(() => {\n update({ isOpen: false, isUserIntent: false })\n }, [update])\n\n const onKeyDown = useCallback(\n (event: React.KeyboardEvent<HTMLButtonElement>) => {\n if (event.currentTarget === event.target) {\n // Firefox returns a whitespace (\" \") on event.key when pressing space,\n // therefore using .trim() can help normalize this.\n // While userEvent.keyboard('{Space}') might return 'Unknown' on event.code,\n // making a direct comparison less reliable across all platforms.\n switch (event.key.trim() || event.code) {\n case 'Enter':\n case 'Space':\n case 'Escape':\n event.preventDefault()\n window.requestAnimationFrame(() => {\n onClose()\n buttonRef.current?.focus()\n })\n break\n }\n }\n },\n [buttonRef, onClose]\n )\n\n if (renderAs === 'dialog') {\n return (\n <Dialog\n title={title}\n omitTriggerButton\n openState={isOpen ?? open}\n onClose={onClose}\n >\n {content}\n {children}\n </Dialog>\n )\n }\n\n return (\n <HeightAnimation\n className={classnames('dnb-help-button__content', className)}\n open={isOpen ?? open ?? false}\n >\n <Section\n id={`${contentId}-content`}\n aria-label={convertJsxToString(title)}\n className=\"dnb-no-focus\"\n tabIndex={-1}\n innerRef={innerRef}\n onKeyDown={onKeyDown}\n outset={outsetFromLayout}\n breakout={breakoutFromLayout}\n roundedCorner={!breakoutFromLayout}\n innerSpace={\n breakoutFromLayout\n ? { top: 'small', bottom: 'medium' }\n : {\n top: 'small',\n bottom: 'medium',\n left: 'medium',\n right: 'x-small',\n }\n }\n backgroundColor=\"lavender\"\n {...rest}\n >\n <Flex.Vertical gap=\"x-small\">\n {title && <P weight=\"medium\">{title}</P>}\n {content && <P>{content}</P>}\n </Flex.Vertical>\n {children}\n </Section>\n </HeightAnimation>\n )\n}\n\nfunction HelpButtonIcon() {\n return (\n <>\n <QuestionIcon />\n <CloseIcon />\n </>\n )\n}\n\nHelpButtonInline._supportsSpacingProps = true\nHelpButtonInlineContent._supportsSpacingProps = true\n"],"mappings":"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"}
1
+ {"version":3,"file":"HelpButtonInline.js","names":["React","useCallback","useContext","useEffect","useRef","classnames","HelpButtonInstance","HeightAnimation","useSharedState","convertJsxToString","useId","Section","P","Flex","CardContext","Dialog","question","QuestionIcon","close","CloseIcon","HelpButtonInline","props","_help$open","contentId","size","help","focusWhenOpen","className","children","rest","_objectWithoutProperties","_excluded","controlId","data","update","isOpen","open","isUserIntent","wasOpenRef","undefined","buttonRef","toggleOpen","current","onClickHandler","event","preventDefault","onKeyDownHandler","currentTarget","target","key","trim","code","window","requestAnimationFrame","title","createElement","Fragment","_extends","bounding","icon","HelpButtonIcon","id","on_click","onKeyDown","innerRef","HelpButtonInlineContent","_ref","helpProp","breakout","outset","roundedCorner","focusWhenOpenProp","_excluded2","content","renderAs","breakoutProp","outsetProp","cardContext","breakoutFromLayout","Boolean","outsetFromLayout","_innerRef$current","focus","preventScroll","onClose","_buttonRef$current","omitTriggerButton","openState","focusParams","tabIndex","innerSpace","top","bottom","left","right","backgroundColor","Vertical","gap","weight","_QuestionIcon","_CloseIcon","_supportsSpacingProps"],"sources":["../../../../src/components/help-button/HelpButtonInline.tsx"],"sourcesContent":["import React, {\n AriaAttributes,\n useCallback,\n useContext,\n useEffect,\n useRef,\n} from 'react'\nimport classnames from 'classnames'\nimport { HelpButtonProps } from './HelpButton'\nimport HelpButtonInstance from './HelpButtonInstance'\nimport HeightAnimation from '../HeightAnimation'\nimport { useSharedState } from '../../shared/helpers/useSharedState'\nimport { convertJsxToString } from '../../shared/component-helper'\nimport useId from '../../shared/helpers/useId'\nimport Section from '../Section'\nimport { P } from '../../elements'\nimport Flex from '../Flex'\nimport CardContext from '../card/CardContext'\nimport { SpacingProps } from '../space/types'\nimport Dialog from '../Dialog'\nimport { question as QuestionIcon, close as CloseIcon } from '../../icons'\n\nexport type HelpProps = {\n title?: React.ReactNode\n content?: React.ReactNode\n renderAs?: 'inline' | 'dialog'\n /** Only for the \"inline\" variant */\n open?: boolean\n /** Only for the \"inline\" variant */\n breakout?: boolean\n /** Only for the \"inline\" variant */\n outset?: boolean\n}\n\nexport type HelpButtonInlineProps = HelpButtonProps & {\n contentId?: string\n help?: HelpProps\n\n /**\n * If set to `true`, the content will get focus when the help content is opened.\n */\n focusWhenOpen?: boolean\n}\n\nexport type HelpButtonInlineSharedStateDataProps = {\n isOpen: boolean\n isUserIntent?: boolean\n buttonRef?: React.RefObject<HTMLButtonElement>\n focusWhenOpen?: boolean\n}\n\nexport default function HelpButtonInline(props: HelpButtonInlineProps) {\n const {\n contentId,\n size,\n help,\n focusWhenOpen,\n className,\n children,\n ...rest\n } = props\n const controlId = useId(contentId)\n\n const { data, update } =\n useSharedState<HelpButtonInlineSharedStateDataProps>(controlId, {\n isOpen: help?.open ?? false,\n })\n const { isOpen, isUserIntent } = data || {}\n const wasOpenRef = useRef(undefined)\n const buttonRef = useRef<HTMLButtonElement>(null)\n\n const toggleOpen = useCallback(() => {\n update({\n isOpen: !isOpen,\n isUserIntent: !isOpen,\n buttonRef,\n focusWhenOpen,\n })\n wasOpenRef.current = !isOpen\n }, [focusWhenOpen, isOpen, update])\n\n const onClickHandler = useCallback(\n ({ event }: { event: React.MouseEvent<HTMLButtonElement> }) => {\n event.preventDefault() // Because when used inside a FormLabel\n toggleOpen()\n },\n [toggleOpen]\n )\n\n const onKeyDownHandler = useCallback(\n (event: React.KeyboardEvent<HTMLButtonElement>) => {\n if (event.currentTarget === event.target) {\n switch (event.key.trim() || event.code) {\n case 'Escape':\n if (isOpen) {\n event.preventDefault()\n window.requestAnimationFrame(() => {\n toggleOpen()\n })\n }\n break\n }\n }\n },\n [isOpen, toggleOpen]\n )\n\n const title = convertJsxToString(help?.title)\n\n return (\n <>\n <HelpButtonInstance\n bounding\n size={size ?? 'small'}\n icon={HelpButtonIcon}\n title={!isOpen && !wasOpenRef.current ? title : undefined}\n {...rest}\n id={controlId}\n className={classnames(\n 'dnb-help-button__inline',\n isOpen && 'dnb-help-button__inline--open',\n isUserIntent && 'dnb-help-button__inline--user-intent',\n typeof wasOpenRef.current === 'boolean' &&\n 'dnb-help-button__inline--was-open',\n className\n )}\n aria-controls={`${controlId}-content`}\n aria-expanded={isOpen}\n aria-label={title}\n on_click={onClickHandler}\n onKeyDown={onKeyDownHandler}\n innerRef={buttonRef}\n />\n\n {!contentId && (\n <HelpButtonInlineContent\n contentId={controlId}\n help={help}\n focusWhenOpen={focusWhenOpen}\n >\n {children}\n </HelpButtonInlineContent>\n )}\n </>\n )\n}\n\nexport type HelpButtonInlineContentProps = SpacingProps & {\n contentId: string\n className?: string\n children?: React.ReactNode\n help?: HelpProps\n breakout?: boolean\n outset?: boolean\n roundedCorner?: boolean\n focusWhenOpen?: boolean\n}\n\nexport function HelpButtonInlineContent(\n props: HelpButtonInlineContentProps\n) {\n const {\n contentId,\n className,\n children,\n help: helpProp,\n breakout = true,\n outset = true,\n roundedCorner = true,\n focusWhenOpen: focusWhenOpenProp,\n ...rest\n } = props\n const { data, update } =\n useSharedState<HelpButtonInlineSharedStateDataProps>(contentId)\n const {\n isOpen,\n focusWhenOpen = focusWhenOpenProp,\n isUserIntent,\n buttonRef,\n } = data || {}\n const {\n open,\n title,\n content,\n renderAs,\n breakout: breakoutProp = true,\n outset: outsetProp = true,\n } = helpProp || {}\n\n const innerRef = useRef<HTMLDivElement>(null)\n const cardContext = useContext(CardContext)\n const breakoutFromLayout =\n Boolean(cardContext) && breakout && breakoutProp\n const outsetFromLayout = outset && outsetProp\n\n useEffect(() => {\n if (isOpen && isUserIntent && focusWhenOpen) {\n window.requestAnimationFrame(() => {\n innerRef.current?.focus({ preventScroll: true })\n })\n }\n }, [focusWhenOpen, isOpen, isUserIntent])\n\n const onClose = useCallback(() => {\n update({ isOpen: false, isUserIntent: false })\n }, [update])\n\n const onKeyDown = useCallback(\n (event: React.KeyboardEvent<HTMLButtonElement>) => {\n if (event.currentTarget === event.target) {\n // Firefox returns a whitespace (\" \") on event.key when pressing space,\n // therefore using .trim() can help normalize this.\n // While userEvent.keyboard('{Space}') might return 'Unknown' on event.code,\n // making a direct comparison less reliable across all platforms.\n switch (event.key.trim() || event.code) {\n case 'Enter':\n case 'Space':\n case 'Escape':\n event.preventDefault()\n window.requestAnimationFrame(() => {\n onClose()\n buttonRef.current?.focus()\n })\n break\n }\n }\n },\n [buttonRef, onClose]\n )\n\n if (renderAs === 'dialog') {\n return (\n <Dialog\n title={title}\n omitTriggerButton\n openState={isOpen ?? open}\n onClose={onClose}\n >\n {content}\n {children}\n </Dialog>\n )\n }\n\n const focusParams = focusWhenOpen\n ? {\n 'aria-label': convertJsxToString(title),\n className: 'dnb-no-focus',\n tabIndex: -1,\n onKeyDown,\n }\n : ({\n 'aria-live': 'polite',\n 'aria-atomic': 'true',\n } as AriaAttributes)\n\n return (\n <HeightAnimation\n className={classnames('dnb-help-button__content', className)}\n open={isOpen ?? open ?? false}\n >\n <Section\n id={`${contentId}-content`}\n {...focusParams}\n innerRef={innerRef}\n outset={outsetFromLayout}\n breakout={breakoutFromLayout}\n roundedCorner={roundedCorner ?? !breakoutFromLayout}\n innerSpace={\n breakoutFromLayout\n ? { top: 'small', bottom: 'medium' }\n : {\n top: 'small',\n bottom: 'medium',\n left: 'medium',\n right: 'x-small',\n }\n }\n backgroundColor=\"lavender\"\n {...rest}\n >\n <Flex.Vertical gap=\"x-small\">\n {title && <P weight=\"medium\">{title}</P>}\n {content && <P>{content}</P>}\n </Flex.Vertical>\n {children}\n </Section>\n </HeightAnimation>\n )\n}\n\nfunction HelpButtonIcon() {\n return (\n <>\n <QuestionIcon />\n <CloseIcon />\n </>\n )\n}\n\nHelpButtonInline._supportsSpacingProps = true\nHelpButtonInlineContent._supportsSpacingProps = true\n"],"mappings":"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"}
@@ -41,7 +41,7 @@ export default function HelpButtonInstance(localProps) {
41
41
  params['aria-roledescription'] = context.getTranslation(props).HelpButton.aria_role;
42
42
  }
43
43
  }
44
- if (!params.text && !params['aria-label']) {
44
+ if (!params.text && typeof params['aria-label'] === 'undefined') {
45
45
  let ariaLabel = convertJsxToString(props.title || props.children);
46
46
  if (!ariaLabel) {
47
47
  ariaLabel = context.getTranslation(props).HelpButton.title;
@@ -1 +1 @@
1
- {"version":3,"file":"HelpButtonInstance.js","names":["React","classnames","convertJsxToString","extendPropsWithContext","Context","createSpacingClasses","Button","defaultProps","variant","icon_position","HelpButtonInstance","localProps","context","useContext","props","HelpButton","size","icon","on_click","className","rest","_objectWithoutProperties","_excluded","params","_objectSpread","isPotentialHelpButton","text","isHelpButton","includes","String","getTranslation","aria_role","ariaLabel","title","children","icon_size","tooltip","createElement","_extends"],"sources":["../../../../src/components/help-button/HelpButtonInstance.tsx"],"sourcesContent":["/**\n * Web HelpButton Component\n *\n */\n\nimport React from 'react'\nimport classnames from 'classnames'\nimport {\n convertJsxToString,\n extendPropsWithContext,\n} from '../../shared/component-helper'\nimport Context from '../../shared/Context'\nimport { createSpacingClasses } from '../space/SpacingHelper'\nimport Button, { ButtonProps } from '../button/Button'\n\nconst defaultProps = {\n variant: 'secondary',\n icon_position: 'left',\n}\n\nexport default function HelpButtonInstance(localProps: ButtonProps) {\n const context = React.useContext(Context)\n\n // use only the props from context, who are available here anyway\n const props = extendPropsWithContext(\n localProps,\n defaultProps,\n context.HelpButton\n )\n\n const { size, icon, on_click, className, ...rest } = props\n\n const params = {\n className: classnames(\n 'dnb-help-button',\n createSpacingClasses(props),\n className\n ),\n size,\n icon,\n ...rest,\n }\n\n const isPotentialHelpButton =\n !params.text || params.variant === 'tertiary'\n\n if (isPotentialHelpButton && !params.icon && params.icon !== false) {\n params.icon = 'question'\n }\n\n const isHelpButton =\n isPotentialHelpButton &&\n ['question', 'information'].includes(String(params.icon))\n\n if (isHelpButton) {\n if (!params['aria-roledescription']) {\n params['aria-roledescription'] =\n context.getTranslation(props).HelpButton.aria_role\n }\n }\n\n if (!params.text && !params['aria-label']) {\n let ariaLabel = convertJsxToString(props.title || props.children)\n if (!ariaLabel) {\n ariaLabel = context.getTranslation(props).HelpButton.title\n }\n params['aria-label'] = ariaLabel\n }\n\n if (icon === 'information' && !size) {\n params.icon_size = 'medium'\n }\n if (params.title && !params.tooltip && params.tooltip !== false) {\n params.tooltip = params.title\n }\n if (params.tooltip) {\n params.title = null\n }\n\n return <Button on_click={on_click} {...params} />\n}\n"],"mappings":";;;;;;;;AAKA,OAAOA,KAAK,MAAM,OAAO;AACzB,OAAOC,UAAU,MAAM,YAAY;AACnC,SACEC,kBAAkB,EAClBC,sBAAsB,QACjB,+BAA+B;AACtC,OAAOC,OAAO,MAAM,sBAAsB;AAC1C,SAASC,oBAAoB,QAAQ,wBAAwB;AAC7D,OAAOC,MAAM,MAAuB,kBAAkB;AAEtD,MAAMC,YAAY,GAAG;EACnBC,OAAO,EAAE,WAAW;EACpBC,aAAa,EAAE;AACjB,CAAC;AAED,eAAe,SAASC,kBAAkBA,CAACC,UAAuB,EAAE;EAClE,MAAMC,OAAO,GAAGZ,KAAK,CAACa,UAAU,CAACT,OAAO,CAAC;EAGzC,MAAMU,KAAK,GAAGX,sBAAsB,CAClCQ,UAAU,EACVJ,YAAY,EACZK,OAAO,CAACG,UACV,CAAC;EAED,MAAM;MAAEC,IAAI;MAAEC,IAAI;MAAEC,QAAQ;MAAEC;IAAmB,CAAC,GAAGL,KAAK;IAAdM,IAAI,GAAAC,wBAAA,CAAKP,KAAK,EAAAQ,SAAA;EAE1D,MAAMC,MAAM,GAAAC,aAAA;IACVL,SAAS,EAAElB,UAAU,CACnB,iBAAiB,EACjBI,oBAAoB,CAACS,KAAK,CAAC,EAC3BK,SACF,CAAC;IACDH,IAAI;IACJC;EAAI,GACDG,IAAI,CACR;EAED,MAAMK,qBAAqB,GACzB,CAACF,MAAM,CAACG,IAAI,IAAIH,MAAM,CAACf,OAAO,KAAK,UAAU;EAE/C,IAAIiB,qBAAqB,IAAI,CAACF,MAAM,CAACN,IAAI,IAAIM,MAAM,CAACN,IAAI,KAAK,KAAK,EAAE;IAClEM,MAAM,CAACN,IAAI,GAAG,UAAU;EAC1B;EAEA,MAAMU,YAAY,GAChBF,qBAAqB,IACrB,CAAC,UAAU,EAAE,aAAa,CAAC,CAACG,QAAQ,CAACC,MAAM,CAACN,MAAM,CAACN,IAAI,CAAC,CAAC;EAE3D,IAAIU,YAAY,EAAE;IAChB,IAAI,CAACJ,MAAM,CAAC,sBAAsB,CAAC,EAAE;MACnCA,MAAM,CAAC,sBAAsB,CAAC,GAC5BX,OAAO,CAACkB,cAAc,CAAChB,KAAK,CAAC,CAACC,UAAU,CAACgB,SAAS;IACtD;EACF;EAEA,IAAI,CAACR,MAAM,CAACG,IAAI,IAAI,CAACH,MAAM,CAAC,YAAY,CAAC,EAAE;IACzC,IAAIS,SAAS,GAAG9B,kBAAkB,CAACY,KAAK,CAACmB,KAAK,IAAInB,KAAK,CAACoB,QAAQ,CAAC;IACjE,IAAI,CAACF,SAAS,EAAE;MACdA,SAAS,GAAGpB,OAAO,CAACkB,cAAc,CAAChB,KAAK,CAAC,CAACC,UAAU,CAACkB,KAAK;IAC5D;IACAV,MAAM,CAAC,YAAY,CAAC,GAAGS,SAAS;EAClC;EAEA,IAAIf,IAAI,KAAK,aAAa,IAAI,CAACD,IAAI,EAAE;IACnCO,MAAM,CAACY,SAAS,GAAG,QAAQ;EAC7B;EACA,IAAIZ,MAAM,CAACU,KAAK,IAAI,CAACV,MAAM,CAACa,OAAO,IAAIb,MAAM,CAACa,OAAO,KAAK,KAAK,EAAE;IAC/Db,MAAM,CAACa,OAAO,GAAGb,MAAM,CAACU,KAAK;EAC/B;EACA,IAAIV,MAAM,CAACa,OAAO,EAAE;IAClBb,MAAM,CAACU,KAAK,GAAG,IAAI;EACrB;EAEA,OAAOjC,KAAA,CAAAqC,aAAA,CAAC/B,MAAM,EAAAgC,QAAA;IAACpB,QAAQ,EAAEA;EAAS,GAAKK,MAAM,CAAG,CAAC;AACnD"}
1
+ {"version":3,"file":"HelpButtonInstance.js","names":["React","classnames","convertJsxToString","extendPropsWithContext","Context","createSpacingClasses","Button","defaultProps","variant","icon_position","HelpButtonInstance","localProps","context","useContext","props","HelpButton","size","icon","on_click","className","rest","_objectWithoutProperties","_excluded","params","_objectSpread","isPotentialHelpButton","text","isHelpButton","includes","String","getTranslation","aria_role","ariaLabel","title","children","icon_size","tooltip","createElement","_extends"],"sources":["../../../../src/components/help-button/HelpButtonInstance.tsx"],"sourcesContent":["/**\n * Web HelpButton Component\n *\n */\n\nimport React from 'react'\nimport classnames from 'classnames'\nimport {\n convertJsxToString,\n extendPropsWithContext,\n} from '../../shared/component-helper'\nimport Context from '../../shared/Context'\nimport { createSpacingClasses } from '../space/SpacingHelper'\nimport Button, { ButtonProps } from '../button/Button'\n\nconst defaultProps = {\n variant: 'secondary',\n icon_position: 'left',\n}\n\nexport default function HelpButtonInstance(localProps: ButtonProps) {\n const context = React.useContext(Context)\n\n // use only the props from context, who are available here anyway\n const props = extendPropsWithContext(\n localProps,\n defaultProps,\n context.HelpButton\n )\n\n const { size, icon, on_click, className, ...rest } = props\n\n const params = {\n className: classnames(\n 'dnb-help-button',\n createSpacingClasses(props),\n className\n ),\n size,\n icon,\n ...rest,\n }\n\n const isPotentialHelpButton =\n !params.text || params.variant === 'tertiary'\n\n if (isPotentialHelpButton && !params.icon && params.icon !== false) {\n params.icon = 'question'\n }\n\n const isHelpButton =\n isPotentialHelpButton &&\n ['question', 'information'].includes(String(params.icon))\n\n if (isHelpButton) {\n if (!params['aria-roledescription']) {\n params['aria-roledescription'] =\n context.getTranslation(props).HelpButton.aria_role\n }\n }\n\n if (!params.text && typeof params['aria-label'] === 'undefined') {\n let ariaLabel = convertJsxToString(props.title || props.children)\n if (!ariaLabel) {\n ariaLabel = context.getTranslation(props).HelpButton.title\n }\n params['aria-label'] = ariaLabel\n }\n\n if (icon === 'information' && !size) {\n params.icon_size = 'medium'\n }\n if (params.title && !params.tooltip && params.tooltip !== false) {\n params.tooltip = params.title\n }\n if (params.tooltip) {\n params.title = null\n }\n\n return <Button on_click={on_click} {...params} />\n}\n"],"mappings":";;;;;;;;AAKA,OAAOA,KAAK,MAAM,OAAO;AACzB,OAAOC,UAAU,MAAM,YAAY;AACnC,SACEC,kBAAkB,EAClBC,sBAAsB,QACjB,+BAA+B;AACtC,OAAOC,OAAO,MAAM,sBAAsB;AAC1C,SAASC,oBAAoB,QAAQ,wBAAwB;AAC7D,OAAOC,MAAM,MAAuB,kBAAkB;AAEtD,MAAMC,YAAY,GAAG;EACnBC,OAAO,EAAE,WAAW;EACpBC,aAAa,EAAE;AACjB,CAAC;AAED,eAAe,SAASC,kBAAkBA,CAACC,UAAuB,EAAE;EAClE,MAAMC,OAAO,GAAGZ,KAAK,CAACa,UAAU,CAACT,OAAO,CAAC;EAGzC,MAAMU,KAAK,GAAGX,sBAAsB,CAClCQ,UAAU,EACVJ,YAAY,EACZK,OAAO,CAACG,UACV,CAAC;EAED,MAAM;MAAEC,IAAI;MAAEC,IAAI;MAAEC,QAAQ;MAAEC;IAAmB,CAAC,GAAGL,KAAK;IAAdM,IAAI,GAAAC,wBAAA,CAAKP,KAAK,EAAAQ,SAAA;EAE1D,MAAMC,MAAM,GAAAC,aAAA;IACVL,SAAS,EAAElB,UAAU,CACnB,iBAAiB,EACjBI,oBAAoB,CAACS,KAAK,CAAC,EAC3BK,SACF,CAAC;IACDH,IAAI;IACJC;EAAI,GACDG,IAAI,CACR;EAED,MAAMK,qBAAqB,GACzB,CAACF,MAAM,CAACG,IAAI,IAAIH,MAAM,CAACf,OAAO,KAAK,UAAU;EAE/C,IAAIiB,qBAAqB,IAAI,CAACF,MAAM,CAACN,IAAI,IAAIM,MAAM,CAACN,IAAI,KAAK,KAAK,EAAE;IAClEM,MAAM,CAACN,IAAI,GAAG,UAAU;EAC1B;EAEA,MAAMU,YAAY,GAChBF,qBAAqB,IACrB,CAAC,UAAU,EAAE,aAAa,CAAC,CAACG,QAAQ,CAACC,MAAM,CAACN,MAAM,CAACN,IAAI,CAAC,CAAC;EAE3D,IAAIU,YAAY,EAAE;IAChB,IAAI,CAACJ,MAAM,CAAC,sBAAsB,CAAC,EAAE;MACnCA,MAAM,CAAC,sBAAsB,CAAC,GAC5BX,OAAO,CAACkB,cAAc,CAAChB,KAAK,CAAC,CAACC,UAAU,CAACgB,SAAS;IACtD;EACF;EAEA,IAAI,CAACR,MAAM,CAACG,IAAI,IAAI,OAAOH,MAAM,CAAC,YAAY,CAAC,KAAK,WAAW,EAAE;IAC/D,IAAIS,SAAS,GAAG9B,kBAAkB,CAACY,KAAK,CAACmB,KAAK,IAAInB,KAAK,CAACoB,QAAQ,CAAC;IACjE,IAAI,CAACF,SAAS,EAAE;MACdA,SAAS,GAAGpB,OAAO,CAACkB,cAAc,CAAChB,KAAK,CAAC,CAACC,UAAU,CAACkB,KAAK;IAC5D;IACAV,MAAM,CAAC,YAAY,CAAC,GAAGS,SAAS;EAClC;EAEA,IAAIf,IAAI,KAAK,aAAa,IAAI,CAACD,IAAI,EAAE;IACnCO,MAAM,CAACY,SAAS,GAAG,QAAQ;EAC7B;EACA,IAAIZ,MAAM,CAACU,KAAK,IAAI,CAACV,MAAM,CAACa,OAAO,IAAIb,MAAM,CAACa,OAAO,KAAK,KAAK,EAAE;IAC/Db,MAAM,CAACa,OAAO,GAAGb,MAAM,CAACU,KAAK;EAC/B;EACA,IAAIV,MAAM,CAACa,OAAO,EAAE;IAClBb,MAAM,CAACU,KAAK,GAAG,IAAI;EACrB;EAEA,OAAOjC,KAAA,CAAAqC,aAAA,CAAC/B,MAAM,EAAAgC,QAAA;IAACpB,QAAQ,EAAEA;EAAS,GAAKK,MAAM,CAAG,CAAC;AACnD"}
@@ -50,12 +50,12 @@ export const SliderProperties = {
50
50
  status: 'optional'
51
51
  },
52
52
  subtractTitle: {
53
- doc: 'Give the subtract button a title for accessibility reasons. Defaults to `−`.',
53
+ doc: 'Give the subtract button a title for accessibility reasons. Defaults to `Decrease (%s)`.',
54
54
  type: 'string',
55
55
  status: 'optional'
56
56
  },
57
57
  addTitle: {
58
- doc: 'Give the add button a title for accessibility reasons. Defaults to `+`.',
58
+ doc: 'Give the add button a title for accessibility reasons. Defaults to `Increase (%s)`.',
59
59
  type: 'string',
60
60
  status: 'optional'
61
61
  },
@@ -1 +1 @@
1
- {"version":3,"file":"SliderDocs.js","names":["SliderProperties","value","doc","type","status","min","max","step","vertical","reverse","stretch","hideButtons","multiThumbBehavior","thumbTitle","subtractTitle","addTitle","numberFormat","tooltip","alwaysShowTooltip","label","labelDirection","labelSrOnly","statusState","statusProps","globalStatusId","suffix","skeleton","extensions","SliderEvents","onChange","onDragStart","onDragEnd"],"sources":["../../../../src/components/slider/SliderDocs.ts"],"sourcesContent":["import { PropertiesTableProps } from '../../shared/types'\n\nexport const SliderProperties: PropertiesTableProps = {\n value: {\n doc: 'The `value` of the slider as a number or an array. If an array with numbers is provided, each number will represent a thumb button (the `+` and `-` button will be hidden on multiple thumbs).',\n type: ['number', 'Array<number>'],\n status: 'required',\n },\n min: {\n doc: 'The minimum value. Can be a negative number as well. Defaults to `0`.',\n type: 'number',\n status: 'optional',\n },\n max: {\n doc: 'The maximum value. Defaults to `100`.',\n type: 'number',\n status: 'optional',\n },\n step: {\n doc: 'The steps the slider takes on changing the value. Defaults to `null`.',\n type: 'number',\n status: 'optional',\n },\n vertical: {\n doc: 'Show the slider vertically. Defaults to `false`.',\n type: 'boolean',\n status: 'optional',\n },\n reverse: {\n doc: 'Show the slider reversed. Defaults to `false`.',\n type: 'boolean',\n status: 'optional',\n },\n stretch: {\n doc: 'If set to `true`, then the slider will be 100% in `width`.',\n type: 'boolean',\n status: 'optional',\n },\n hideButtons: {\n doc: 'Removes the helper buttons. Defaults to `false`.',\n type: 'boolean',\n status: 'optional',\n },\n multiThumbBehavior: {\n doc: '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 type: 'string',\n status: 'optional',\n },\n thumbTitle: {\n doc: 'Give the slider thumb button a title for accessibility reasons. Defaults to `null`.',\n type: 'string',\n status: 'optional',\n },\n subtractTitle: {\n doc: 'Give the subtract button a title for accessibility reasons. Defaults to `−`.',\n type: 'string',\n status: 'optional',\n },\n addTitle: {\n doc: 'Give the add button a title for accessibility reasons. Defaults to `+`.',\n type: 'string',\n status: 'optional',\n },\n numberFormat: {\n doc: 'Will extend the return object with a `number` property (from `onChange` event). You can use all the options from the [NumberFormat](/uilib/components/number-format/properties) component. It also will use that formatted number in the increase/decrease buttons. If it has to represent a currency, then use e.g. `numberFormat={{ currency: true, decimals: 0 }}`',\n type: 'object',\n status: 'optional',\n },\n tooltip: {\n doc: 'Use `true` to show a tooltip on `mouseOver`, `touchStart` and `focus`, showing the current number (if `numberFormat` is given) or the raw value.',\n type: 'boolean',\n status: 'optional',\n },\n alwaysShowTooltip: {\n doc: 'Use `true` to always show the tooltip, in addition to the `tooltip` property.',\n type: 'boolean',\n status: 'optional',\n },\n label: {\n doc: 'Prepends the Form Label component. If no ID is provided, a random ID is created.',\n type: 'string',\n status: 'optional',\n },\n labelDirection: {\n doc: 'Use `labelDirection=\"vertical\"` to change the label layout direction. Defaults to `horizontal`.',\n type: 'string',\n status: 'optional',\n },\n labelSrOnly: {\n doc: 'Use `true` to make the label only readable by screen readers.',\n type: 'boolean',\n status: 'optional',\n },\n status: {\n doc: '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 type: 'string',\n status: 'optional',\n },\n statusState: {\n doc: 'Defines the state of the status. Currently, there are two statuses `[error, info]`. Defaults to `error`.',\n type: 'string',\n status: 'optional',\n },\n statusProps: {\n doc: 'Use an object to define additional FormStatus properties.',\n type: 'object',\n status: 'optional',\n },\n globalStatusId: {\n doc: 'The `status_id` used for the target [GlobalStatus](/uilib/components/global-status).',\n type: 'string',\n status: 'optional',\n },\n suffix: {\n doc: '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 type: 'string',\n status: 'optional',\n },\n skeleton: {\n doc: 'If set to `true`, an overlaying skeleton with animation will be shown.',\n type: 'boolean',\n status: 'optional',\n },\n extensions: {\n doc: 'Makes it possible to display overlays with other functionality such as a marker on the slider marking a given value.',\n type: 'object',\n status: 'optional',\n },\n '[Space](/uilib/layout/space/properties)': {\n doc: 'Spacing properties like `top` or `bottom` are supported.',\n type: ['string', 'object'],\n status: 'optional',\n },\n}\n\nexport const SliderEvents: PropertiesTableProps = {\n onChange: {\n doc: '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 type: 'function',\n status: 'optional',\n },\n onDragStart: {\n doc: 'will be called once the user stops dragging. Returns `{ event }`.',\n type: 'function',\n status: 'optional',\n },\n onDragEnd: {\n doc: 'will be called once the user starts dragging. Returns `{ event }`.',\n type: 'function',\n status: 'optional',\n },\n}\n"],"mappings":"AAEA,OAAO,MAAMA,gBAAsC,GAAG;EACpDC,KAAK,EAAE;IACLC,GAAG,EAAE,gMAAgM;IACrMC,IAAI,EAAE,CAAC,QAAQ,EAAE,eAAe,CAAC;IACjCC,MAAM,EAAE;EACV,CAAC;EACDC,GAAG,EAAE;IACHH,GAAG,EAAE,uEAAuE;IAC5EC,IAAI,EAAE,QAAQ;IACdC,MAAM,EAAE;EACV,CAAC;EACDE,GAAG,EAAE;IACHJ,GAAG,EAAE,uCAAuC;IAC5CC,IAAI,EAAE,QAAQ;IACdC,MAAM,EAAE;EACV,CAAC;EACDG,IAAI,EAAE;IACJL,GAAG,EAAE,uEAAuE;IAC5EC,IAAI,EAAE,QAAQ;IACdC,MAAM,EAAE;EACV,CAAC;EACDI,QAAQ,EAAE;IACRN,GAAG,EAAE,kDAAkD;IACvDC,IAAI,EAAE,SAAS;IACfC,MAAM,EAAE;EACV,CAAC;EACDK,OAAO,EAAE;IACPP,GAAG,EAAE,gDAAgD;IACrDC,IAAI,EAAE,SAAS;IACfC,MAAM,EAAE;EACV,CAAC;EACDM,OAAO,EAAE;IACPR,GAAG,EAAE,4DAA4D;IACjEC,IAAI,EAAE,SAAS;IACfC,MAAM,EAAE;EACV,CAAC;EACDO,WAAW,EAAE;IACXT,GAAG,EAAE,kDAAkD;IACvDC,IAAI,EAAE,SAAS;IACfC,MAAM,EAAE;EACV,CAAC;EACDQ,kBAAkB,EAAE;IAClBV,GAAG,EAAE,oNAAoN;IACzNC,IAAI,EAAE,QAAQ;IACdC,MAAM,EAAE;EACV,CAAC;EACDS,UAAU,EAAE;IACVX,GAAG,EAAE,qFAAqF;IAC1FC,IAAI,EAAE,QAAQ;IACdC,MAAM,EAAE;EACV,CAAC;EACDU,aAAa,EAAE;IACbZ,GAAG,EAAE,8EAA8E;IACnFC,IAAI,EAAE,QAAQ;IACdC,MAAM,EAAE;EACV,CAAC;EACDW,QAAQ,EAAE;IACRb,GAAG,EAAE,yEAAyE;IAC9EC,IAAI,EAAE,QAAQ;IACdC,MAAM,EAAE;EACV,CAAC;EACDY,YAAY,EAAE;IACZd,GAAG,EAAE,uWAAuW;IAC5WC,IAAI,EAAE,QAAQ;IACdC,MAAM,EAAE;EACV,CAAC;EACDa,OAAO,EAAE;IACPf,GAAG,EAAE,kJAAkJ;IACvJC,IAAI,EAAE,SAAS;IACfC,MAAM,EAAE;EACV,CAAC;EACDc,iBAAiB,EAAE;IACjBhB,GAAG,EAAE,+EAA+E;IACpFC,IAAI,EAAE,SAAS;IACfC,MAAM,EAAE;EACV,CAAC;EACDe,KAAK,EAAE;IACLjB,GAAG,EAAE,kFAAkF;IACvFC,IAAI,EAAE,QAAQ;IACdC,MAAM,EAAE;EACV,CAAC;EACDgB,cAAc,EAAE;IACdlB,GAAG,EAAE,iGAAiG;IACtGC,IAAI,EAAE,QAAQ;IACdC,MAAM,EAAE;EACV,CAAC;EACDiB,WAAW,EAAE;IACXnB,GAAG,EAAE,+DAA+D;IACpEC,IAAI,EAAE,SAAS;IACfC,MAAM,EAAE;EACV,CAAC;EACDA,MAAM,EAAE;IACNF,GAAG,EAAE,yIAAyI;IAC9IC,IAAI,EAAE,QAAQ;IACdC,MAAM,EAAE;EACV,CAAC;EACDkB,WAAW,EAAE;IACXpB,GAAG,EAAE,0GAA0G;IAC/GC,IAAI,EAAE,QAAQ;IACdC,MAAM,EAAE;EACV,CAAC;EACDmB,WAAW,EAAE;IACXrB,GAAG,EAAE,2DAA2D;IAChEC,IAAI,EAAE,QAAQ;IACdC,MAAM,EAAE;EACV,CAAC;EACDoB,cAAc,EAAE;IACdtB,GAAG,EAAE,sFAAsF;IAC3FC,IAAI,EAAE,QAAQ;IACdC,MAAM,EAAE;EACV,CAAC;EACDqB,MAAM,EAAE;IACNvB,GAAG,EAAE,wJAAwJ;IAC7JC,IAAI,EAAE,QAAQ;IACdC,MAAM,EAAE;EACV,CAAC;EACDsB,QAAQ,EAAE;IACRxB,GAAG,EAAE,wEAAwE;IAC7EC,IAAI,EAAE,SAAS;IACfC,MAAM,EAAE;EACV,CAAC;EACDuB,UAAU,EAAE;IACVzB,GAAG,EAAE,sHAAsH;IAC3HC,IAAI,EAAE,QAAQ;IACdC,MAAM,EAAE;EACV,CAAC;EACD,yCAAyC,EAAE;IACzCF,GAAG,EAAE,0DAA0D;IAC/DC,IAAI,EAAE,CAAC,QAAQ,EAAE,QAAQ,CAAC;IAC1BC,MAAM,EAAE;EACV;AACF,CAAC;AAED,OAAO,MAAMwB,YAAkC,GAAG;EAChDC,QAAQ,EAAE;IACR3B,GAAG,EAAE,iRAAiR;IACtRC,IAAI,EAAE,UAAU;IAChBC,MAAM,EAAE;EACV,CAAC;EACD0B,WAAW,EAAE;IACX5B,GAAG,EAAE,mEAAmE;IACxEC,IAAI,EAAE,UAAU;IAChBC,MAAM,EAAE;EACV,CAAC;EACD2B,SAAS,EAAE;IACT7B,GAAG,EAAE,oEAAoE;IACzEC,IAAI,EAAE,UAAU;IAChBC,MAAM,EAAE;EACV;AACF,CAAC"}
1
+ {"version":3,"file":"SliderDocs.js","names":["SliderProperties","value","doc","type","status","min","max","step","vertical","reverse","stretch","hideButtons","multiThumbBehavior","thumbTitle","subtractTitle","addTitle","numberFormat","tooltip","alwaysShowTooltip","label","labelDirection","labelSrOnly","statusState","statusProps","globalStatusId","suffix","skeleton","extensions","SliderEvents","onChange","onDragStart","onDragEnd"],"sources":["../../../../src/components/slider/SliderDocs.ts"],"sourcesContent":["import { PropertiesTableProps } from '../../shared/types'\n\nexport const SliderProperties: PropertiesTableProps = {\n value: {\n doc: 'The `value` of the slider as a number or an array. If an array with numbers is provided, each number will represent a thumb button (the `+` and `-` button will be hidden on multiple thumbs).',\n type: ['number', 'Array<number>'],\n status: 'required',\n },\n min: {\n doc: 'The minimum value. Can be a negative number as well. Defaults to `0`.',\n type: 'number',\n status: 'optional',\n },\n max: {\n doc: 'The maximum value. Defaults to `100`.',\n type: 'number',\n status: 'optional',\n },\n step: {\n doc: 'The steps the slider takes on changing the value. Defaults to `null`.',\n type: 'number',\n status: 'optional',\n },\n vertical: {\n doc: 'Show the slider vertically. Defaults to `false`.',\n type: 'boolean',\n status: 'optional',\n },\n reverse: {\n doc: 'Show the slider reversed. Defaults to `false`.',\n type: 'boolean',\n status: 'optional',\n },\n stretch: {\n doc: 'If set to `true`, then the slider will be 100% in `width`.',\n type: 'boolean',\n status: 'optional',\n },\n hideButtons: {\n doc: 'Removes the helper buttons. Defaults to `false`.',\n type: 'boolean',\n status: 'optional',\n },\n multiThumbBehavior: {\n doc: '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 type: 'string',\n status: 'optional',\n },\n thumbTitle: {\n doc: 'Give the slider thumb button a title for accessibility reasons. Defaults to `null`.',\n type: 'string',\n status: 'optional',\n },\n subtractTitle: {\n doc: 'Give the subtract button a title for accessibility reasons. Defaults to `Decrease (%s)`.',\n type: 'string',\n status: 'optional',\n },\n addTitle: {\n doc: 'Give the add button a title for accessibility reasons. Defaults to `Increase (%s)`.',\n type: 'string',\n status: 'optional',\n },\n numberFormat: {\n doc: 'Will extend the return object with a `number` property (from `onChange` event). You can use all the options from the [NumberFormat](/uilib/components/number-format/properties) component. It also will use that formatted number in the increase/decrease buttons. If it has to represent a currency, then use e.g. `numberFormat={{ currency: true, decimals: 0 }}`',\n type: 'object',\n status: 'optional',\n },\n tooltip: {\n doc: 'Use `true` to show a tooltip on `mouseOver`, `touchStart` and `focus`, showing the current number (if `numberFormat` is given) or the raw value.',\n type: 'boolean',\n status: 'optional',\n },\n alwaysShowTooltip: {\n doc: 'Use `true` to always show the tooltip, in addition to the `tooltip` property.',\n type: 'boolean',\n status: 'optional',\n },\n label: {\n doc: 'Prepends the Form Label component. If no ID is provided, a random ID is created.',\n type: 'string',\n status: 'optional',\n },\n labelDirection: {\n doc: 'Use `labelDirection=\"vertical\"` to change the label layout direction. Defaults to `horizontal`.',\n type: 'string',\n status: 'optional',\n },\n labelSrOnly: {\n doc: 'Use `true` to make the label only readable by screen readers.',\n type: 'boolean',\n status: 'optional',\n },\n status: {\n doc: '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 type: 'string',\n status: 'optional',\n },\n statusState: {\n doc: 'Defines the state of the status. Currently, there are two statuses `[error, info]`. Defaults to `error`.',\n type: 'string',\n status: 'optional',\n },\n statusProps: {\n doc: 'Use an object to define additional FormStatus properties.',\n type: 'object',\n status: 'optional',\n },\n globalStatusId: {\n doc: 'The `status_id` used for the target [GlobalStatus](/uilib/components/global-status).',\n type: 'string',\n status: 'optional',\n },\n suffix: {\n doc: '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 type: 'string',\n status: 'optional',\n },\n skeleton: {\n doc: 'If set to `true`, an overlaying skeleton with animation will be shown.',\n type: 'boolean',\n status: 'optional',\n },\n extensions: {\n doc: 'Makes it possible to display overlays with other functionality such as a marker on the slider marking a given value.',\n type: 'object',\n status: 'optional',\n },\n '[Space](/uilib/layout/space/properties)': {\n doc: 'Spacing properties like `top` or `bottom` are supported.',\n type: ['string', 'object'],\n status: 'optional',\n },\n}\n\nexport const SliderEvents: PropertiesTableProps = {\n onChange: {\n doc: '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 type: 'function',\n status: 'optional',\n },\n onDragStart: {\n doc: 'will be called once the user stops dragging. Returns `{ event }`.',\n type: 'function',\n status: 'optional',\n },\n onDragEnd: {\n doc: 'will be called once the user starts dragging. Returns `{ event }`.',\n type: 'function',\n status: 'optional',\n },\n}\n"],"mappings":"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"}
@@ -10,8 +10,6 @@ import { closestIndex, getFormattedNumber, getUpdatedValues, roundValue } from '
10
10
  import { convertSnakeCaseProps } from '../../shared/helpers/withSnakeCaseProps';
11
11
  const defaultProps = {
12
12
  statusState: 'error',
13
- addTitle: '+',
14
- subtractTitle: '−',
15
13
  min: 0,
16
14
  max: 100,
17
15
  value: -1,
@@ -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","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, min, max })\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","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","subtractTitle","addTitle","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 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, min, max })\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,GAAG,EAAE,CAAC;EACNC,GAAG,EAAE,GAAG;EACRC,KAAK,EAAE,CAAC,CAAC;EACTC,kBAAkB,EAAE;AACtB,CAAC;AAED,OAAO,MAAMC,aAAa,GAAGnB,KAAK,CAACoB,aAAa,CAAqB,IAAI,CAAC;AAE1E,OAAO,SAASC,cAAcA,CAACC,UAA0B,EAAE;EACzD,MAAMC,OAAO,GAAGvB,KAAK,CAACwB,UAAU,CAACjB,OAAO,CAAC;EACzC,MAAMkB,QAAQ,GAAGb,qBAAqB,CACpCN,sBAAsB,CACpBgB,UAAU,EACVT,YAAY,EACZ;IAAEa,QAAQ,EAAEH,OAAO,aAAPA,OAAO,uBAAPA,OAAO,CAAEG;EAAS,CAAC,EAC/BH,OAAO,aAAPA,OAAO,uBAAPA,OAAO,CAAEI,cAAc,CAACL,UAAU,CAAC,CAACM,MAAM,EAE1C3B,oBAAoB,CAClBsB,OAAO,aAAPA,OAAO,uBAAPA,OAAO,CAAEM,OAAO,EAKhB;IACEC,QAAQ,EAAE;EACZ,CACF,CAAC,EACD7B,oBAAoB,CAClBsB,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,GAAGhC,KAAK,CAACiC,QAAQ,CAAC9B,YAAY,CAAC;EAC1C,IAAI,CAACsB,QAAQ,CAACS,EAAE,EAAE;IAChBT,QAAQ,CAACS,EAAE,GAAGF,GAAG;EACnB;EAEA,MAAM;MACJG,IAAI;MACJC,KAAK;MACLC,cAAc;MACdC,WAAW;MACXC,MAAM;MACNzB,WAAW;MACX0B,WAAW;MACXC,iBAAiB;MACjBC,YAAY;MACZC,OAAO;MACPC,MAAM;MACNC,UAAU,EAAEC,KAAK;MACjBC,aAAa;MACbC,QAAQ;MACRC,WAAW;MACX/B,kBAAkB;MAClBgC,YAAY;MACZC,OAAO;MACPC,iBAAiB;MACjB1B,QAAQ;MACRV,GAAG;MACHD,GAAG;MACHsC,UAAU;MACVC,QAAQ;MACRC,SAAS;MACTrB,EAAE;MACFsB,QAAQ;MACRC,WAAW;MACXC,SAAS;MACT5B,QAAQ,EAAE6B,SAAS;MACnBC,OAAO,EAAEC,QAAQ;MACjB5C,KAAK,EAAE6C,MAAM;MACbC,QAAQ,EAAEC;IAGZ,CAAC,GAAGvC,QAAQ;IADPwC,UAAU,GAAAC,wBAAA,CACXzC,QAAQ,EAAA0C,SAAA;EAEZ,MAAM,CAAClD,KAAK,EAAEmD,QAAQ,CAAC,GAAGpE,KAAK,CAACiC,QAAQ,CAAa6B,MAAM,CAAC;EAC5D,MAAM,CAACO,WAAW,EAAEC,iBAAiB,CAAC,GACpCtE,KAAK,CAACiC,QAAQ,CAAa6B,MAAM,CAAC;EACpC,MAAMS,aAAa,GAAGvE,KAAK,CAACwE,MAAM,CAAaV,MAAM,CAAC;EACtD,MAAM,CAACW,UAAU,EAAEC,aAAa,CAAC,GAC/B1E,KAAK,CAACiC,QAAQ,CAAkB,SAAS,CAAC;EAC5C,MAAM0C,UAAU,GAAG3E,KAAK,CAACwE,MAAM,CAAS,CAAC,CAAC,CAAC;EAC3C,MAAM,CAACI,aAAa,EAAEC,kBAAkB,CAAC,GACvC7E,KAAK,CAACiC,QAAQ,CAAU,KAAK,CAAC;EAChC,MAAM,CAAC6C,UAAU,CAAC,GAAG9E,KAAK,CAACiC,QAAQ,CAAC/B,MAAM,CAACyD,SAAS,CAAC,CAAC;EACtD,MAAM,CAACoB,SAAS,CAAC,GAAG/E,KAAK,CAACiC,QAAQ,CAChC6C,UAAU,GAAG,CAAC5E,MAAM,CAAC2D,QAAQ,CAAC,GAAG3D,MAAM,CAAC2D,QAAQ,CAClD,CAAC;EACD,MAAMmB,OAAO,GAAGC,KAAK,CAACC,OAAO,CAACjE,KAAK,CAAC;EACpC,MAAMkE,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,EAAEvE,KAAsB,CAAC;MACjEkE,aAAa,CAACM,YAAY,CAAC;IAC7B;IAEA,OAAOA,YAAY;EACrB,CAAC;EAED,MAAMC,WAAW,GAAIzE,KAAiB,IAAK;IACzCmD,QAAQ,CAACnD,KAAK,CAAC;IACfsD,aAAa,CAACe,OAAO,GAAGrE,KAAK;EAC/B,CAAC;EAED,MAAM0E,UAAU,GAAGA,CACjBC,KAA8B,EAC9BC,QAAgB,KACb;IACH,IAAIvC,QAAQ,IAAIpD,MAAM,CAACwB,QAAQ,CAAC,EAAE;MAChC;IACF;IAEA,IAAIoE,WAAW,GAAGnF,UAAU,CAACkF,QAAQ,EAAE;MAAE1D,IAAI;MAAEpB,GAAG;MAAEC;IAAI,CAAC,CAAC;IAC1D,IAAI+E,WAAuB,GAAGD,WAAW;IAEzC,IAAIA,WAAW,IAAI/E,GAAG,EAAE;MACtB,IAAIiE,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,IAAIvE,kBAAkB,KAAK,MAAM,EAAE;UACjC,IAAI4E,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,CAC5BQ,kBAAkB,KAAK,MAAM,GACxBqD,aAAa,CAACe,OAAO,GACtBrE,KAAK,EACTwE,YAAY,EACZK,WACF,CAAC;QAED,IAAI5E,kBAAkB,KAAK,MAAM,EAAE;UACjC,IAAI,OAAO8E,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;UAC9BjF,KAAK,EAAE8E,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,CAACqB,QAAQ,EAAE,UAAU,EAAEyE,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,CAACkC,MAAM,CAAC;EACzC,MAAMyE,WAAW,GAAG,CAAChC,OAAO,IAAI,CAAC9E,MAAM,CAAC+C,WAAW,CAAC;EACpD,MAAMgE,MAAM,GAAIjC,OAAO,GAAG/D,KAAK,GAAG,CAACA,KAAK,CAAmB;EAE3D,OACEjB,KAAA,CAAAkH,aAAA,CAAC/F,aAAa,CAACgG,QAAQ;IACrBlG,KAAK,EAAE;MACL+D,OAAO;MACPD,SAAS;MACTD,UAAU;MACVF,aAAa;MACb3D,KAAK;MACLgG,MAAM;MACN7C,QAAQ;MACRH,UAAU;MACV8C,UAAU;MACVC,WAAW;MACXvC,UAAU;MACVC,aAAa;MACbC,UAAU;MACVQ,aAAa;MACbQ,UAAU;MACVlE,QAAQ;MACRgF,QAAQ;MACRE,gBAAgB;MAChBD;IACF;EAAE,GAEDpF,UAAU,CAACyC,QACU,CAAC;AAE7B"}
@@ -38,9 +38,9 @@ export type SliderProps = IncludeSnakeCase<{
38
38
  suffix?: SuffixChildren;
39
39
  /** give the slider thumb button a title for accessibility reasons. Defaults to `null`. */
40
40
  thumbTitle?: string;
41
- /** give the add button a title for accessibility reasons. Defaults to `+`. */
41
+ /** give the add button a title for accessibility reasons. Defaults to `Increase (%s)`. */
42
42
  addTitle?: string;
43
- /** give the subtract button a title for accessibility reasons. Defaults to `−`. */
43
+ /** give the subtract button a title for accessibility reasons. Defaults to `Decrease (%s)`. */
44
44
  subtractTitle?: string;
45
45
  /** the minimum value. Defaults to `0`. */
46
46
  min?: number;
@@ -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 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":""}
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 `Increase (%s)`. */\n addTitle?: string\n\n /** give the subtract button a title for accessibility reasons. Defaults to `Decrease (%s)`. */\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":""}
@@ -8,6 +8,7 @@ import { StepIndicatorContextValues } from './StepIndicatorContext';
8
8
  import type { SpacingProps } from '../../shared/types';
9
9
  import type { SkeletonShow } from '../Skeleton';
10
10
  import type { StepIndicatorItemProps, StepItemWrapper } from './StepIndicatorItem';
11
+ import { StepIndicatorTriggerButtonProps } from './StepIndicatorTriggerButton';
11
12
  export type StepIndicatorMode = 'static' | 'strict' | 'loose';
12
13
  export type StepIndicatorDataItem = Pick<StepIndicatorItemProps, 'title' | 'is_current' | 'inactive' | 'disabled' | 'status' | 'status_state' | 'on_click' | 'on_render'>;
13
14
  export type StepIndicatorData = string | string[] | StepIndicatorDataItem[];
@@ -78,6 +79,11 @@ export type StepIndicatorProps = Omit<React.HTMLProps<HTMLAnchorElement>, 'ref'
78
79
  * Will be called once the user visits actively a new step. Will be emitted only once. Returns an object `{ event, item, current_step, currentStep }`.
79
80
  */
80
81
  on_change?: ({ event, item, current_step, currentStep, }: StepIndicatorMouseEvent) => void;
82
+ /**
83
+ * The props for the trigger button.
84
+ * Used internally to pass the props such as a status to the trigger button.
85
+ */
86
+ triggerButtonProps?: StepIndicatorTriggerButtonProps;
81
87
  /**
82
88
  * If set to `true`, the height animation on the step items and the drawer button will be omitted. Defaults to `false`.
83
89
  */