@dnb/eufemia 10.54.0 → 10.55.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (1121) hide show
  1. package/CHANGELOG.md +48 -0
  2. package/cjs/components/ListFormat.d.ts +12 -0
  3. package/cjs/components/ListFormat.js +24 -0
  4. package/cjs/components/ListFormat.js.map +1 -0
  5. package/cjs/components/anchor/Anchor.js +1 -1
  6. package/cjs/components/anchor/Anchor.js.map +1 -1
  7. package/cjs/components/autocomplete/Autocomplete.js +3 -3
  8. package/cjs/components/autocomplete/Autocomplete.js.map +1 -1
  9. package/cjs/components/card/Card.js +14 -5
  10. package/cjs/components/card/Card.js.map +1 -1
  11. package/cjs/components/card/CardContext.d.ts +6 -0
  12. package/cjs/components/card/CardContext.js +12 -0
  13. package/cjs/components/card/CardContext.js.map +1 -0
  14. package/cjs/components/card/CardDocs.js +2 -2
  15. package/cjs/components/card/CardDocs.js.map +1 -1
  16. package/cjs/components/card/style/dnb-card.css +3 -0
  17. package/cjs/components/card/style/dnb-card.min.css +1 -1
  18. package/cjs/components/card/style/dnb-card.scss +5 -0
  19. package/cjs/components/card/style/themes/dnb-card-theme-sbanken.css +3 -0
  20. package/cjs/components/card/style/themes/dnb-card-theme-sbanken.min.css +1 -1
  21. package/cjs/components/card/style/themes/dnb-card-theme-sbanken.scss +5 -0
  22. package/cjs/components/card/style/themes/dnb-card-theme-ui.css +5 -0
  23. package/cjs/components/card/style/themes/dnb-card-theme-ui.min.css +1 -1
  24. package/cjs/components/card/style/themes/dnb-card-theme-ui.scss +7 -0
  25. package/cjs/components/country-flag/CountryFlagDocs.js +5 -0
  26. package/cjs/components/country-flag/CountryFlagDocs.js.map +1 -1
  27. package/cjs/components/date-picker/DatePicker.d.ts +261 -291
  28. package/cjs/components/date-picker/DatePicker.js +346 -482
  29. package/cjs/components/date-picker/DatePicker.js.map +1 -1
  30. package/cjs/components/date-picker/DatePickerAddon.d.ts +21 -20
  31. package/cjs/components/date-picker/DatePickerAddon.js +66 -84
  32. package/cjs/components/date-picker/DatePickerAddon.js.map +1 -1
  33. package/cjs/components/date-picker/DatePickerCalc.d.ts +19 -21
  34. package/cjs/components/date-picker/DatePickerCalc.js +44 -44
  35. package/cjs/components/date-picker/DatePickerCalc.js.map +1 -1
  36. package/cjs/components/date-picker/DatePickerCalendar.d.ts +73 -39
  37. package/cjs/components/date-picker/DatePickerCalendar.js +391 -535
  38. package/cjs/components/date-picker/DatePickerCalendar.js.map +1 -1
  39. package/cjs/components/date-picker/DatePickerContext.d.ts +26 -2
  40. package/cjs/components/date-picker/DatePickerContext.js.map +1 -1
  41. package/cjs/components/date-picker/DatePickerFooter.d.ts +20 -18
  42. package/cjs/components/date-picker/DatePickerFooter.js +92 -117
  43. package/cjs/components/date-picker/DatePickerFooter.js.map +1 -1
  44. package/cjs/components/date-picker/DatePickerInput.d.ts +56 -64
  45. package/cjs/components/date-picker/DatePickerInput.js +515 -533
  46. package/cjs/components/date-picker/DatePickerInput.js.map +1 -1
  47. package/cjs/components/date-picker/DatePickerOld.d.ts +334 -0
  48. package/cjs/components/date-picker/DatePickerOld.js +538 -0
  49. package/cjs/components/date-picker/DatePickerOld.js.map +1 -0
  50. package/cjs/components/date-picker/DatePickerProvider.d.ts +40 -17
  51. package/cjs/components/date-picker/DatePickerProvider.js +125 -236
  52. package/cjs/components/date-picker/DatePickerProvider.js.map +1 -1
  53. package/cjs/components/date-picker/DatePickerRange.d.ts +22 -20
  54. package/cjs/components/date-picker/DatePickerRange.js +61 -144
  55. package/cjs/components/date-picker/DatePickerRange.js.map +1 -1
  56. package/cjs/components/date-picker/hooks/useDates.d.ts +45 -0
  57. package/cjs/components/date-picker/hooks/useDates.js +182 -0
  58. package/cjs/components/date-picker/hooks/useDates.js.map +1 -0
  59. package/cjs/components/date-picker/hooks/useLastEventCallCache.d.ts +9 -0
  60. package/cjs/components/date-picker/hooks/useLastEventCallCache.js +16 -0
  61. package/cjs/components/date-picker/hooks/useLastEventCallCache.js.map +1 -0
  62. package/cjs/components/date-picker/hooks/useViews.d.ts +20 -0
  63. package/cjs/components/date-picker/hooks/useViews.js +84 -0
  64. package/cjs/components/date-picker/hooks/useViews.js.map +1 -0
  65. package/cjs/components/date-picker/style/dnb-date-picker.css +12 -1
  66. package/cjs/components/date-picker/style/dnb-date-picker.min.css +1 -1
  67. package/cjs/components/dropdown/Dropdown.js +3 -3
  68. package/cjs/components/dropdown/Dropdown.js.map +1 -1
  69. package/cjs/components/flex/StackDocs.d.ts +2 -0
  70. package/cjs/components/flex/StackDocs.js +30 -0
  71. package/cjs/components/flex/StackDocs.js.map +1 -0
  72. package/cjs/components/form-row/FormRow.js +3 -3
  73. package/cjs/components/form-row/FormRow.js.map +1 -1
  74. package/cjs/components/form-row/style/dnb-form-row.css +12 -1
  75. package/cjs/components/form-row/style/dnb-form-row.min.css +1 -1
  76. package/cjs/components/form-status/FormStatus.d.ts +4 -1
  77. package/cjs/components/icon/style/dnb-icon.scss +1 -1
  78. package/cjs/components/index.d.ts +2 -1
  79. package/cjs/components/index.js +7 -0
  80. package/cjs/components/index.js.map +1 -1
  81. package/cjs/components/input-masked/TextMask.d.ts +2 -1
  82. package/cjs/components/input-masked/style/dnb-input-masked.css +12 -1
  83. package/cjs/components/input-masked/style/dnb-input-masked.min.css +1 -1
  84. package/cjs/components/lib.d.ts +3 -1
  85. package/cjs/components/lib.js +8 -0
  86. package/cjs/components/lib.js.map +1 -1
  87. package/cjs/components/list-format/ListFormat.d.ts +40 -0
  88. package/cjs/components/list-format/ListFormat.js +122 -0
  89. package/cjs/components/list-format/ListFormat.js.map +1 -0
  90. package/cjs/components/list-format/ListFormatDocs.d.ts +2 -0
  91. package/cjs/components/list-format/ListFormatDocs.js +35 -0
  92. package/cjs/components/list-format/ListFormatDocs.js.map +1 -0
  93. package/cjs/components/list-format/index.d.ts +7 -0
  94. package/cjs/components/list-format/index.js +24 -0
  95. package/cjs/components/list-format/index.js.map +1 -0
  96. package/cjs/components/number-format/NumberUtils.js +1 -1
  97. package/cjs/components/number-format/NumberUtils.js.map +1 -1
  98. package/cjs/components/radio/style/dnb-radio.css +12 -1
  99. package/cjs/components/radio/style/dnb-radio.min.css +1 -1
  100. package/cjs/components/step-indicator/StepIndicatorTriggerButton.js +1 -1
  101. package/cjs/components/step-indicator/StepIndicatorTriggerButton.js.map +1 -1
  102. package/cjs/components/textarea/Textarea.js +3 -3
  103. package/cjs/components/textarea/Textarea.js.map +1 -1
  104. package/cjs/components/toggle-button/ToggleButton.js +3 -3
  105. package/cjs/components/toggle-button/ToggleButton.js.map +1 -1
  106. package/cjs/components/toggle-button/style/dnb-toggle-button.css +12 -1
  107. package/cjs/components/toggle-button/style/dnb-toggle-button.min.css +1 -1
  108. package/cjs/components/upload/Upload.js +2 -1
  109. package/cjs/components/upload/Upload.js.map +1 -1
  110. package/cjs/components/upload/UploadContext.d.ts +1 -0
  111. package/cjs/components/upload/UploadContext.js +2 -1
  112. package/cjs/components/upload/UploadContext.js.map +1 -1
  113. package/cjs/components/upload/UploadDocs.js +5 -0
  114. package/cjs/components/upload/UploadDocs.js.map +1 -1
  115. package/cjs/components/upload/UploadDropzone.js.map +1 -1
  116. package/cjs/components/upload/UploadFileList.js +3 -1
  117. package/cjs/components/upload/UploadFileList.js.map +1 -1
  118. package/cjs/components/upload/UploadFileListCell.d.ts +22 -3
  119. package/cjs/components/upload/UploadFileListCell.js +17 -8
  120. package/cjs/components/upload/UploadFileListCell.js.map +1 -1
  121. package/cjs/components/upload/UploadInfo.js +7 -4
  122. package/cjs/components/upload/UploadInfo.js.map +1 -1
  123. package/cjs/components/upload/UploadVerify.d.ts +2 -2
  124. package/cjs/components/upload/UploadVerify.js.map +1 -1
  125. package/cjs/components/upload/style/dnb-upload.css +1 -1
  126. package/cjs/components/upload/style/dnb-upload.min.css +1 -1
  127. package/cjs/components/upload/style/dnb-upload.scss +1 -1
  128. package/cjs/components/upload/types.d.ts +11 -5
  129. package/cjs/components/upload/types.js.map +1 -1
  130. package/cjs/components/upload/useUpload.d.ts +6 -6
  131. package/cjs/components/upload/useUpload.js.map +1 -1
  132. package/cjs/elements/lists/style/lists-mixins.scss +1 -0
  133. package/cjs/extensions/forms/DataContext/FieldBoundary/FieldBoundaryProvider.js +1 -1
  134. package/cjs/extensions/forms/DataContext/FieldBoundary/FieldBoundaryProvider.js.map +1 -1
  135. package/cjs/extensions/forms/Field/ArraySelection/ArraySelection.js +11 -14
  136. package/cjs/extensions/forms/Field/ArraySelection/ArraySelection.js.map +1 -1
  137. package/cjs/extensions/forms/Field/ArraySelection/style/dnb-array-selection.css +3 -4
  138. package/cjs/extensions/forms/Field/ArraySelection/style/dnb-array-selection.min.css +1 -1
  139. package/cjs/extensions/forms/Field/ArraySelection/style/dnb-array-selection.scss +4 -4
  140. package/cjs/extensions/forms/Field/Boolean/Boolean.d.ts +3 -2
  141. package/cjs/extensions/forms/Field/Boolean/Boolean.js.map +1 -1
  142. package/cjs/extensions/forms/Field/Composition/CompositionDocs.js +1 -1
  143. package/cjs/extensions/forms/Field/Composition/CompositionDocs.js.map +1 -1
  144. package/cjs/extensions/forms/Field/Date/Date.js +4 -12
  145. package/cjs/extensions/forms/Field/Date/Date.js.map +1 -1
  146. package/cjs/extensions/forms/Field/Expiry/Expiry.js +6 -14
  147. package/cjs/extensions/forms/Field/Expiry/Expiry.js.map +1 -1
  148. package/cjs/extensions/forms/Field/FieldDocs.d.ts +2 -2
  149. package/cjs/extensions/forms/Field/FieldDocs.js +10 -10
  150. package/cjs/extensions/forms/Field/FieldDocs.js.map +1 -1
  151. package/cjs/extensions/forms/Field/Number/Number.d.ts +2 -1
  152. package/cjs/extensions/forms/Field/Number/Number.js +7 -19
  153. package/cjs/extensions/forms/Field/Number/Number.js.map +1 -1
  154. package/cjs/extensions/forms/Field/Number/style/dnb-number.css +0 -3
  155. package/cjs/extensions/forms/Field/Number/style/dnb-number.min.css +1 -1
  156. package/cjs/extensions/forms/Field/Number/style/dnb-number.scss +0 -2
  157. package/cjs/extensions/forms/Field/PhoneNumber/PhoneNumber.d.ts +2 -2
  158. package/cjs/extensions/forms/Field/PhoneNumber/PhoneNumber.js +9 -10
  159. package/cjs/extensions/forms/Field/PhoneNumber/PhoneNumber.js.map +1 -1
  160. package/cjs/extensions/forms/Field/PhoneNumber/PhoneNumberDocs.d.ts +1 -1
  161. package/cjs/extensions/forms/Field/PhoneNumber/PhoneNumberDocs.js +3 -3
  162. package/cjs/extensions/forms/Field/PhoneNumber/PhoneNumberDocs.js.map +1 -1
  163. package/cjs/extensions/forms/Field/Provider/FieldProviderDocs.js +6 -3
  164. package/cjs/extensions/forms/Field/Provider/FieldProviderDocs.js.map +1 -1
  165. package/cjs/extensions/forms/Field/Provider/useFieldProvider.d.ts +10 -3
  166. package/cjs/extensions/forms/Field/SelectCountry/SelectCountry.d.ts +2 -1
  167. package/cjs/extensions/forms/Field/SelectCountry/SelectCountry.js +14 -12
  168. package/cjs/extensions/forms/Field/SelectCountry/SelectCountry.js.map +1 -1
  169. package/cjs/extensions/forms/Field/Selection/Selection.d.ts +2 -1
  170. package/cjs/extensions/forms/Field/Selection/Selection.js +5 -13
  171. package/cjs/extensions/forms/Field/Selection/Selection.js.map +1 -1
  172. package/cjs/extensions/forms/Field/Slider/Slider.d.ts +2 -1
  173. package/cjs/extensions/forms/Field/Slider/Slider.js +0 -13
  174. package/cjs/extensions/forms/Field/Slider/Slider.js.map +1 -1
  175. package/cjs/extensions/forms/Field/String/String.d.ts +2 -1
  176. package/cjs/extensions/forms/Field/String/String.js +7 -20
  177. package/cjs/extensions/forms/Field/String/String.js.map +1 -1
  178. package/cjs/extensions/forms/Field/Toggle/Toggle.d.ts +1 -1
  179. package/cjs/extensions/forms/Field/Toggle/Toggle.js +6 -18
  180. package/cjs/extensions/forms/Field/Toggle/Toggle.js.map +1 -1
  181. package/cjs/extensions/forms/Field/Upload/Upload.d.ts +4 -3
  182. package/cjs/extensions/forms/Field/Upload/Upload.js +2 -12
  183. package/cjs/extensions/forms/Field/Upload/Upload.js.map +1 -1
  184. package/cjs/extensions/forms/FieldBlock/FieldBlock.d.ts +45 -6
  185. package/cjs/extensions/forms/FieldBlock/FieldBlock.js +39 -20
  186. package/cjs/extensions/forms/FieldBlock/FieldBlock.js.map +1 -1
  187. package/cjs/extensions/forms/FieldBlock/FieldBlockContext.d.ts +1 -0
  188. package/cjs/extensions/forms/FieldBlock/FieldBlockContext.js.map +1 -1
  189. package/cjs/extensions/forms/FieldBlock/FieldBlockDocs.d.ts +3 -2
  190. package/cjs/extensions/forms/FieldBlock/FieldBlockDocs.js +20 -5
  191. package/cjs/extensions/forms/FieldBlock/FieldBlockDocs.js.map +1 -1
  192. package/cjs/extensions/forms/FieldBlock/style/dnb-field-block.css +34 -11
  193. package/cjs/extensions/forms/FieldBlock/style/dnb-field-block.min.css +1 -1
  194. package/cjs/extensions/forms/FieldBlock/style/dnb-field-block.scss +56 -13
  195. package/cjs/extensions/forms/FieldBlock/style/themes/dnb-field-block-theme-sbanken.css +7 -0
  196. package/cjs/extensions/forms/FieldBlock/style/themes/dnb-field-block-theme-sbanken.min.css +1 -0
  197. package/cjs/extensions/forms/FieldBlock/style/themes/dnb-field-block-theme-sbanken.scss +10 -0
  198. package/cjs/extensions/forms/Form/Section/EditContainer/CancelButton.d.ts +1 -0
  199. package/cjs/extensions/forms/Form/Section/EditContainer/{EditToolbarTools.js → CancelButton.js} +15 -41
  200. package/cjs/extensions/forms/Form/Section/EditContainer/CancelButton.js.map +1 -0
  201. package/cjs/extensions/forms/Form/Section/EditContainer/DoneButton.d.ts +1 -0
  202. package/cjs/extensions/forms/Form/Section/EditContainer/DoneButton.js +52 -0
  203. package/cjs/extensions/forms/Form/Section/EditContainer/DoneButton.js.map +1 -0
  204. package/cjs/extensions/forms/Form/Section/EditContainer/EditContainer.d.ts +2 -0
  205. package/cjs/extensions/forms/Form/Section/EditContainer/EditContainer.js +11 -4
  206. package/cjs/extensions/forms/Form/Section/EditContainer/EditContainer.js.map +1 -1
  207. package/cjs/extensions/forms/Form/Section/EditContainer/EditContainerDocs.js +1 -1
  208. package/cjs/extensions/forms/Form/Section/EditContainer/EditContainerDocs.js.map +1 -1
  209. package/cjs/extensions/forms/Form/Section/Section.d.ts +4 -2
  210. package/cjs/extensions/forms/Form/Section/Section.js +2 -0
  211. package/cjs/extensions/forms/Form/Section/Section.js.map +1 -1
  212. package/cjs/extensions/forms/Form/Section/Toolbar/Toolbar.d.ts +7 -0
  213. package/cjs/extensions/forms/Form/Section/Toolbar/Toolbar.js +68 -0
  214. package/cjs/extensions/forms/Form/Section/Toolbar/Toolbar.js.map +1 -0
  215. package/cjs/extensions/forms/Form/Section/Toolbar/ToolbarContext.d.ts +9 -0
  216. package/cjs/extensions/forms/Form/Section/Toolbar/ToolbarContext.js +12 -0
  217. package/cjs/extensions/forms/Form/Section/Toolbar/ToolbarContext.js.map +1 -0
  218. package/cjs/extensions/forms/Form/Section/Toolbar/ToolbarDocs.d.ts +3 -0
  219. package/cjs/extensions/forms/Form/Section/Toolbar/ToolbarDocs.js +11 -0
  220. package/cjs/extensions/forms/Form/Section/Toolbar/ToolbarDocs.js.map +1 -0
  221. package/cjs/extensions/forms/Form/Section/Toolbar/index.d.ts +2 -0
  222. package/cjs/extensions/forms/Form/Section/Toolbar/index.js +27 -0
  223. package/cjs/extensions/forms/Form/Section/Toolbar/index.js.map +1 -0
  224. package/cjs/extensions/forms/Form/Section/ViewContainer/EditButton.d.ts +1 -0
  225. package/cjs/extensions/forms/Form/Section/ViewContainer/{ViewToolbarTools.js → EditButton.js} +12 -13
  226. package/cjs/extensions/forms/Form/Section/ViewContainer/EditButton.js.map +1 -0
  227. package/cjs/extensions/forms/Form/Section/ViewContainer/ViewContainer.d.ts +1 -0
  228. package/cjs/extensions/forms/Form/Section/ViewContainer/ViewContainer.js +9 -4
  229. package/cjs/extensions/forms/Form/Section/ViewContainer/ViewContainer.js.map +1 -1
  230. package/cjs/extensions/forms/Form/Section/ViewContainer/ViewContainerDocs.js +1 -1
  231. package/cjs/extensions/forms/Form/Section/ViewContainer/ViewContainerDocs.js.map +1 -1
  232. package/cjs/extensions/forms/Form/Section/containers/SectionContainer.js +3 -2
  233. package/cjs/extensions/forms/Form/Section/containers/SectionContainer.js.map +1 -1
  234. package/cjs/extensions/forms/Form/Section/style/dnb-form-section.css +6 -13
  235. package/cjs/extensions/forms/Form/Section/style/dnb-form-section.min.css +1 -1
  236. package/cjs/extensions/forms/Form/Section/style/dnb-form-section.scss +11 -24
  237. package/cjs/extensions/forms/Iterate/Array/ArrayDocs.js +5 -5
  238. package/cjs/extensions/forms/Iterate/Array/ArrayDocs.js.map +1 -1
  239. package/cjs/extensions/forms/Iterate/Array/ArrayItemArea.js +3 -2
  240. package/cjs/extensions/forms/Iterate/Array/ArrayItemArea.js.map +1 -1
  241. package/cjs/extensions/forms/Iterate/EditContainer/CancelButton.d.ts +1 -1
  242. package/cjs/extensions/forms/Iterate/EditContainer/CancelButton.js +2 -2
  243. package/cjs/extensions/forms/Iterate/EditContainer/CancelButton.js.map +1 -1
  244. package/cjs/extensions/forms/Iterate/EditContainer/EditContainerDocs.js +1 -1
  245. package/cjs/extensions/forms/Iterate/EditContainer/EditContainerDocs.js.map +1 -1
  246. package/cjs/extensions/forms/Iterate/ViewContainer/EditButton.d.ts +1 -1
  247. package/cjs/extensions/forms/Iterate/ViewContainer/EditButton.js +2 -2
  248. package/cjs/extensions/forms/Iterate/ViewContainer/EditButton.js.map +1 -1
  249. package/cjs/extensions/forms/Iterate/ViewContainer/ViewContainerDocs.js +1 -1
  250. package/cjs/extensions/forms/Iterate/ViewContainer/ViewContainerDocs.js.map +1 -1
  251. package/cjs/extensions/forms/Value/ArraySelection/ArraySelection.d.ts +2 -25
  252. package/cjs/extensions/forms/Value/ArraySelection/ArraySelection.js +16 -49
  253. package/cjs/extensions/forms/Value/ArraySelection/ArraySelection.js.map +1 -1
  254. package/cjs/extensions/forms/Value/ArraySelection/ArraySelectionDocs.js +7 -17
  255. package/cjs/extensions/forms/Value/ArraySelection/ArraySelectionDocs.js.map +1 -1
  256. package/cjs/extensions/forms/Value/Composition/CompositionDocs.js +3 -1
  257. package/cjs/extensions/forms/Value/Composition/CompositionDocs.js.map +1 -1
  258. package/cjs/extensions/forms/Value/Provider/useValueProvider.d.ts +1 -1
  259. package/cjs/extensions/forms/Value/SummaryList/SummaryListDocs.js +5 -5
  260. package/cjs/extensions/forms/Value/SummaryList/SummaryListDocs.js.map +1 -1
  261. package/cjs/extensions/forms/Value/Upload/Upload.d.ts +11 -0
  262. package/cjs/extensions/forms/Value/Upload/Upload.js +99 -0
  263. package/cjs/extensions/forms/Value/Upload/Upload.js.map +1 -0
  264. package/cjs/extensions/forms/Value/Upload/UploadDocs.d.ts +2 -0
  265. package/cjs/extensions/forms/Value/Upload/UploadDocs.js +26 -0
  266. package/cjs/extensions/forms/Value/Upload/UploadDocs.js.map +1 -0
  267. package/cjs/extensions/forms/Value/Upload/index.d.ts +2 -0
  268. package/cjs/extensions/forms/Value/Upload/index.js +27 -0
  269. package/cjs/extensions/forms/Value/Upload/index.js.map +1 -0
  270. package/cjs/extensions/forms/Value/index.d.ts +1 -0
  271. package/cjs/extensions/forms/Value/index.js +7 -0
  272. package/cjs/extensions/forms/Value/index.js.map +1 -1
  273. package/cjs/extensions/forms/ValueBlock/ValueBlock.js +8 -3
  274. package/cjs/extensions/forms/ValueBlock/ValueBlock.js.map +1 -1
  275. package/cjs/extensions/forms/ValueBlock/style/dnb-value-block.css +0 -7
  276. package/cjs/extensions/forms/ValueBlock/style/dnb-value-block.min.css +1 -1
  277. package/cjs/extensions/forms/ValueBlock/style/dnb-value-block.scss +0 -10
  278. package/cjs/extensions/forms/Wizard/Step/StepDocs.js +1 -1
  279. package/cjs/extensions/forms/Wizard/Step/StepDocs.js.map +1 -1
  280. package/cjs/extensions/forms/blocks/ChildrenWithAge/ChildrenWithAge.js +2 -0
  281. package/cjs/extensions/forms/blocks/ChildrenWithAge/ChildrenWithAge.js.map +1 -1
  282. package/cjs/extensions/forms/hooks/DataValueWritePropsDocs.d.ts +3 -0
  283. package/cjs/extensions/forms/hooks/{DataValueDocs.js → DataValueWritePropsDocs.js} +6 -6
  284. package/cjs/extensions/forms/hooks/DataValueWritePropsDocs.js.map +1 -0
  285. package/cjs/extensions/forms/hooks/useDataValue.js +6 -1
  286. package/cjs/extensions/forms/hooks/useDataValue.js.map +1 -1
  287. package/cjs/extensions/forms/hooks/useFieldProps.js +8 -3
  288. package/cjs/extensions/forms/hooks/useFieldProps.js.map +1 -1
  289. package/cjs/extensions/forms/hooks/useValueProps.js +1 -6
  290. package/cjs/extensions/forms/hooks/useValueProps.js.map +1 -1
  291. package/cjs/extensions/forms/style/dnb-forms.css +45 -38
  292. package/cjs/extensions/forms/style/dnb-forms.min.css +1 -1
  293. package/cjs/extensions/forms/types.d.ts +6 -28
  294. package/cjs/extensions/forms/types.js.map +1 -1
  295. package/cjs/extensions/forms/utils/TestElement/style/dnb-test-element.css +2 -0
  296. package/cjs/extensions/forms/utils/TestElement/style/dnb-test-element.min.css +1 -1
  297. package/cjs/extensions/forms/utils/TestElement/style/dnb-test-element.scss +2 -0
  298. package/cjs/index.d.ts +2 -1
  299. package/cjs/index.js +7 -0
  300. package/cjs/index.js.map +1 -1
  301. package/cjs/shared/Context.d.ts +4 -0
  302. package/cjs/shared/Context.js.map +1 -1
  303. package/cjs/shared/Eufemia.d.ts +1 -1
  304. package/cjs/shared/Eufemia.js +2 -2
  305. package/cjs/shared/Eufemia.js.map +1 -1
  306. package/cjs/shared/component-helper.d.ts +1 -1
  307. package/cjs/shared/component-helper.js.map +1 -1
  308. package/cjs/style/core/reset.scss +0 -8
  309. package/cjs/style/core/scopes.scss +1 -1
  310. package/cjs/style/core/utilities.scss +12 -16
  311. package/cjs/style/dnb-ui-basis.css +1 -7
  312. package/cjs/style/dnb-ui-basis.min.css +1 -1
  313. package/cjs/style/dnb-ui-body.css +1 -7
  314. package/cjs/style/dnb-ui-body.min.css +1 -1
  315. package/cjs/style/dnb-ui-components.css +109 -43
  316. package/cjs/style/dnb-ui-components.min.css +3 -3
  317. package/cjs/style/dnb-ui-core.css +1 -8
  318. package/cjs/style/dnb-ui-core.min.css +1 -1
  319. package/cjs/style/dnb-ui-elements.css +1 -0
  320. package/cjs/style/dnb-ui-elements.min.css +1 -1
  321. package/cjs/style/dnb-ui-extensions.css +45 -38
  322. package/cjs/style/dnb-ui-extensions.min.css +1 -1
  323. package/cjs/style/dnb-ui-forms.css +45 -38
  324. package/cjs/style/dnb-ui-forms.min.css +1 -1
  325. package/cjs/style/themes/theme-eiendom/eiendom-theme-basis.css +1 -0
  326. package/cjs/style/themes/theme-eiendom/eiendom-theme-basis.min.css +1 -1
  327. package/cjs/style/themes/theme-eiendom/eiendom-theme-components.css +159 -80
  328. package/cjs/style/themes/theme-eiendom/eiendom-theme-components.min.css +4 -4
  329. package/cjs/style/themes/theme-eiendom/eiendom-theme-elements.css +1 -0
  330. package/cjs/style/themes/theme-eiendom/eiendom-theme-elements.min.css +1 -1
  331. package/cjs/style/themes/theme-eiendom/eiendom-theme-extensions.css +45 -38
  332. package/cjs/style/themes/theme-eiendom/eiendom-theme-extensions.min.css +1 -1
  333. package/cjs/style/themes/theme-eiendom/eiendom-theme-forms.css +45 -38
  334. package/cjs/style/themes/theme-eiendom/eiendom-theme-forms.min.css +1 -1
  335. package/cjs/style/themes/theme-sbanken/sbanken-theme-basis.css +1 -0
  336. package/cjs/style/themes/theme-sbanken/sbanken-theme-basis.min.css +1 -1
  337. package/cjs/style/themes/theme-sbanken/sbanken-theme-components.css +164 -83
  338. package/cjs/style/themes/theme-sbanken/sbanken-theme-components.min.css +5 -5
  339. package/cjs/style/themes/theme-sbanken/sbanken-theme-elements.css +1 -0
  340. package/cjs/style/themes/theme-sbanken/sbanken-theme-elements.min.css +1 -1
  341. package/cjs/style/themes/theme-sbanken/sbanken-theme-extensions.css +50 -41
  342. package/cjs/style/themes/theme-sbanken/sbanken-theme-extensions.min.css +2 -2
  343. package/cjs/style/themes/theme-sbanken/sbanken-theme-extensions.scss +1 -1
  344. package/cjs/style/themes/theme-sbanken/sbanken-theme-forms.css +52 -41
  345. package/cjs/style/themes/theme-sbanken/sbanken-theme-forms.min.css +2 -2
  346. package/cjs/style/themes/theme-sbanken/sbanken-theme-forms.scss +1 -1
  347. package/cjs/style/themes/theme-ui/ui-theme-basis.css +1 -0
  348. package/cjs/style/themes/theme-ui/ui-theme-basis.min.css +1 -1
  349. package/cjs/style/themes/theme-ui/ui-theme-components.css +159 -80
  350. package/cjs/style/themes/theme-ui/ui-theme-components.min.css +4 -4
  351. package/cjs/style/themes/theme-ui/ui-theme-elements.css +1 -0
  352. package/cjs/style/themes/theme-ui/ui-theme-elements.min.css +1 -1
  353. package/cjs/style/themes/theme-ui/ui-theme-extensions.css +45 -38
  354. package/cjs/style/themes/theme-ui/ui-theme-extensions.min.css +1 -1
  355. package/cjs/style/themes/theme-ui/ui-theme-forms.css +45 -38
  356. package/cjs/style/themes/theme-ui/ui-theme-forms.min.css +1 -1
  357. package/cjs/style/themes/theme-ui/ui-theme-tags.css +1 -0
  358. package/cjs/style/themes/theme-ui/ui-theme-tags.min.css +1 -1
  359. package/components/ListFormat.d.ts +12 -0
  360. package/components/ListFormat.js +4 -0
  361. package/components/ListFormat.js.map +1 -0
  362. package/components/anchor/Anchor.js +1 -1
  363. package/components/anchor/Anchor.js.map +1 -1
  364. package/components/autocomplete/Autocomplete.js +3 -3
  365. package/components/autocomplete/Autocomplete.js.map +1 -1
  366. package/components/card/Card.js +13 -5
  367. package/components/card/Card.js.map +1 -1
  368. package/components/card/CardContext.d.ts +6 -0
  369. package/components/card/CardContext.js +4 -0
  370. package/components/card/CardContext.js.map +1 -0
  371. package/components/card/CardDocs.js +2 -2
  372. package/components/card/CardDocs.js.map +1 -1
  373. package/components/card/style/dnb-card.css +3 -0
  374. package/components/card/style/dnb-card.min.css +1 -1
  375. package/components/card/style/dnb-card.scss +5 -0
  376. package/components/card/style/themes/dnb-card-theme-sbanken.css +3 -0
  377. package/components/card/style/themes/dnb-card-theme-sbanken.min.css +1 -1
  378. package/components/card/style/themes/dnb-card-theme-sbanken.scss +5 -0
  379. package/components/card/style/themes/dnb-card-theme-ui.css +5 -0
  380. package/components/card/style/themes/dnb-card-theme-ui.min.css +1 -1
  381. package/components/card/style/themes/dnb-card-theme-ui.scss +7 -0
  382. package/components/country-flag/CountryFlagDocs.js +5 -0
  383. package/components/country-flag/CountryFlagDocs.js.map +1 -1
  384. package/components/date-picker/DatePicker.d.ts +261 -291
  385. package/components/date-picker/DatePicker.js +343 -481
  386. package/components/date-picker/DatePicker.js.map +1 -1
  387. package/components/date-picker/DatePickerAddon.d.ts +21 -20
  388. package/components/date-picker/DatePickerAddon.js +64 -81
  389. package/components/date-picker/DatePickerAddon.js.map +1 -1
  390. package/components/date-picker/DatePickerCalc.d.ts +19 -21
  391. package/components/date-picker/DatePickerCalc.js +35 -34
  392. package/components/date-picker/DatePickerCalc.js.map +1 -1
  393. package/components/date-picker/DatePickerCalendar.d.ts +73 -39
  394. package/components/date-picker/DatePickerCalendar.js +389 -534
  395. package/components/date-picker/DatePickerCalendar.js.map +1 -1
  396. package/components/date-picker/DatePickerContext.d.ts +26 -2
  397. package/components/date-picker/DatePickerContext.js.map +1 -1
  398. package/components/date-picker/DatePickerFooter.d.ts +20 -18
  399. package/components/date-picker/DatePickerFooter.js +90 -116
  400. package/components/date-picker/DatePickerFooter.js.map +1 -1
  401. package/components/date-picker/DatePickerInput.d.ts +56 -64
  402. package/components/date-picker/DatePickerInput.js +515 -532
  403. package/components/date-picker/DatePickerInput.js.map +1 -1
  404. package/components/date-picker/DatePickerOld.d.ts +334 -0
  405. package/components/date-picker/DatePickerOld.js +528 -0
  406. package/components/date-picker/DatePickerOld.js.map +1 -0
  407. package/components/date-picker/DatePickerProvider.d.ts +40 -17
  408. package/components/date-picker/DatePickerProvider.js +123 -235
  409. package/components/date-picker/DatePickerProvider.js.map +1 -1
  410. package/components/date-picker/DatePickerRange.d.ts +22 -20
  411. package/components/date-picker/DatePickerRange.js +58 -140
  412. package/components/date-picker/DatePickerRange.js.map +1 -1
  413. package/components/date-picker/hooks/useDates.d.ts +45 -0
  414. package/components/date-picker/hooks/useDates.js +173 -0
  415. package/components/date-picker/hooks/useDates.js.map +1 -0
  416. package/components/date-picker/hooks/useLastEventCallCache.d.ts +9 -0
  417. package/components/date-picker/hooks/useLastEventCallCache.js +11 -0
  418. package/components/date-picker/hooks/useLastEventCallCache.js.map +1 -0
  419. package/components/date-picker/hooks/useViews.d.ts +20 -0
  420. package/components/date-picker/hooks/useViews.js +74 -0
  421. package/components/date-picker/hooks/useViews.js.map +1 -0
  422. package/components/date-picker/style/dnb-date-picker.css +12 -1
  423. package/components/date-picker/style/dnb-date-picker.min.css +1 -1
  424. package/components/dropdown/Dropdown.js +3 -3
  425. package/components/dropdown/Dropdown.js.map +1 -1
  426. package/components/flex/StackDocs.d.ts +2 -0
  427. package/components/flex/StackDocs.js +23 -0
  428. package/components/flex/StackDocs.js.map +1 -0
  429. package/components/form-row/FormRow.js +3 -3
  430. package/components/form-row/FormRow.js.map +1 -1
  431. package/components/form-row/style/dnb-form-row.css +12 -1
  432. package/components/form-row/style/dnb-form-row.min.css +1 -1
  433. package/components/form-status/FormStatus.d.ts +4 -1
  434. package/components/icon/style/dnb-icon.scss +1 -1
  435. package/components/index.d.ts +2 -1
  436. package/components/index.js +2 -1
  437. package/components/index.js.map +1 -1
  438. package/components/input-masked/TextMask.d.ts +2 -1
  439. package/components/input-masked/style/dnb-input-masked.css +12 -1
  440. package/components/input-masked/style/dnb-input-masked.min.css +1 -1
  441. package/components/lib.d.ts +3 -1
  442. package/components/lib.js +3 -1
  443. package/components/lib.js.map +1 -1
  444. package/components/list-format/ListFormat.d.ts +40 -0
  445. package/components/list-format/ListFormat.js +112 -0
  446. package/components/list-format/ListFormat.js.map +1 -0
  447. package/components/list-format/ListFormatDocs.d.ts +2 -0
  448. package/components/list-format/ListFormatDocs.js +28 -0
  449. package/components/list-format/ListFormatDocs.js.map +1 -0
  450. package/components/list-format/index.d.ts +7 -0
  451. package/components/list-format/index.js +4 -0
  452. package/components/list-format/index.js.map +1 -0
  453. package/components/number-format/NumberUtils.js +1 -1
  454. package/components/number-format/NumberUtils.js.map +1 -1
  455. package/components/radio/style/dnb-radio.css +12 -1
  456. package/components/radio/style/dnb-radio.min.css +1 -1
  457. package/components/step-indicator/StepIndicatorTriggerButton.js +1 -1
  458. package/components/step-indicator/StepIndicatorTriggerButton.js.map +1 -1
  459. package/components/textarea/Textarea.js +3 -3
  460. package/components/textarea/Textarea.js.map +1 -1
  461. package/components/toggle-button/ToggleButton.js +3 -3
  462. package/components/toggle-button/ToggleButton.js.map +1 -1
  463. package/components/toggle-button/style/dnb-toggle-button.css +12 -1
  464. package/components/toggle-button/style/dnb-toggle-button.min.css +1 -1
  465. package/components/upload/Upload.js +2 -1
  466. package/components/upload/Upload.js.map +1 -1
  467. package/components/upload/UploadContext.d.ts +1 -0
  468. package/components/upload/UploadContext.js +2 -1
  469. package/components/upload/UploadContext.js.map +1 -1
  470. package/components/upload/UploadDocs.js +5 -0
  471. package/components/upload/UploadDocs.js.map +1 -1
  472. package/components/upload/UploadDropzone.js.map +1 -1
  473. package/components/upload/UploadFileList.js +3 -1
  474. package/components/upload/UploadFileList.js.map +1 -1
  475. package/components/upload/UploadFileListCell.d.ts +22 -3
  476. package/components/upload/UploadFileListCell.js +16 -8
  477. package/components/upload/UploadFileListCell.js.map +1 -1
  478. package/components/upload/UploadInfo.js +7 -4
  479. package/components/upload/UploadInfo.js.map +1 -1
  480. package/components/upload/UploadVerify.d.ts +2 -2
  481. package/components/upload/UploadVerify.js.map +1 -1
  482. package/components/upload/style/dnb-upload.css +1 -1
  483. package/components/upload/style/dnb-upload.min.css +1 -1
  484. package/components/upload/style/dnb-upload.scss +1 -1
  485. package/components/upload/types.d.ts +11 -5
  486. package/components/upload/types.js.map +1 -1
  487. package/components/upload/useUpload.d.ts +6 -6
  488. package/components/upload/useUpload.js.map +1 -1
  489. package/elements/lists/style/lists-mixins.scss +1 -0
  490. package/es/components/ListFormat.d.ts +12 -0
  491. package/es/components/ListFormat.js +4 -0
  492. package/es/components/ListFormat.js.map +1 -0
  493. package/es/components/anchor/Anchor.js +1 -1
  494. package/es/components/anchor/Anchor.js.map +1 -1
  495. package/es/components/autocomplete/Autocomplete.js +3 -3
  496. package/es/components/autocomplete/Autocomplete.js.map +1 -1
  497. package/es/components/card/Card.js +13 -5
  498. package/es/components/card/Card.js.map +1 -1
  499. package/es/components/card/CardContext.d.ts +6 -0
  500. package/es/components/card/CardContext.js +4 -0
  501. package/es/components/card/CardContext.js.map +1 -0
  502. package/es/components/card/CardDocs.js +2 -2
  503. package/es/components/card/CardDocs.js.map +1 -1
  504. package/es/components/card/style/dnb-card.css +3 -0
  505. package/es/components/card/style/dnb-card.min.css +1 -1
  506. package/es/components/card/style/dnb-card.scss +5 -0
  507. package/es/components/card/style/themes/dnb-card-theme-sbanken.css +3 -0
  508. package/es/components/card/style/themes/dnb-card-theme-sbanken.min.css +1 -1
  509. package/es/components/card/style/themes/dnb-card-theme-sbanken.scss +5 -0
  510. package/es/components/card/style/themes/dnb-card-theme-ui.css +5 -0
  511. package/es/components/card/style/themes/dnb-card-theme-ui.min.css +1 -1
  512. package/es/components/card/style/themes/dnb-card-theme-ui.scss +7 -0
  513. package/es/components/country-flag/CountryFlagDocs.js +5 -0
  514. package/es/components/country-flag/CountryFlagDocs.js.map +1 -1
  515. package/es/components/date-picker/DatePicker.d.ts +261 -291
  516. package/es/components/date-picker/DatePicker.js +342 -481
  517. package/es/components/date-picker/DatePicker.js.map +1 -1
  518. package/es/components/date-picker/DatePickerAddon.d.ts +21 -20
  519. package/es/components/date-picker/DatePickerAddon.js +65 -82
  520. package/es/components/date-picker/DatePickerAddon.js.map +1 -1
  521. package/es/components/date-picker/DatePickerCalc.d.ts +19 -21
  522. package/es/components/date-picker/DatePickerCalc.js +38 -37
  523. package/es/components/date-picker/DatePickerCalc.js.map +1 -1
  524. package/es/components/date-picker/DatePickerCalendar.d.ts +73 -39
  525. package/es/components/date-picker/DatePickerCalendar.js +387 -531
  526. package/es/components/date-picker/DatePickerCalendar.js.map +1 -1
  527. package/es/components/date-picker/DatePickerContext.d.ts +26 -2
  528. package/es/components/date-picker/DatePickerContext.js.map +1 -1
  529. package/es/components/date-picker/DatePickerFooter.d.ts +20 -18
  530. package/es/components/date-picker/DatePickerFooter.js +89 -116
  531. package/es/components/date-picker/DatePickerFooter.js.map +1 -1
  532. package/es/components/date-picker/DatePickerInput.d.ts +56 -64
  533. package/es/components/date-picker/DatePickerInput.js +508 -525
  534. package/es/components/date-picker/DatePickerInput.js.map +1 -1
  535. package/es/components/date-picker/DatePickerOld.d.ts +334 -0
  536. package/es/components/date-picker/DatePickerOld.js +528 -0
  537. package/es/components/date-picker/DatePickerOld.js.map +1 -0
  538. package/es/components/date-picker/DatePickerProvider.d.ts +40 -17
  539. package/es/components/date-picker/DatePickerProvider.js +122 -230
  540. package/es/components/date-picker/DatePickerProvider.js.map +1 -1
  541. package/es/components/date-picker/DatePickerRange.d.ts +22 -20
  542. package/es/components/date-picker/DatePickerRange.js +57 -138
  543. package/es/components/date-picker/DatePickerRange.js.map +1 -1
  544. package/es/components/date-picker/hooks/useDates.d.ts +45 -0
  545. package/es/components/date-picker/hooks/useDates.js +169 -0
  546. package/es/components/date-picker/hooks/useDates.js.map +1 -0
  547. package/es/components/date-picker/hooks/useLastEventCallCache.d.ts +9 -0
  548. package/es/components/date-picker/hooks/useLastEventCallCache.js +11 -0
  549. package/es/components/date-picker/hooks/useLastEventCallCache.js.map +1 -0
  550. package/es/components/date-picker/hooks/useViews.d.ts +20 -0
  551. package/es/components/date-picker/hooks/useViews.js +72 -0
  552. package/es/components/date-picker/hooks/useViews.js.map +1 -0
  553. package/es/components/date-picker/style/dnb-date-picker.css +12 -1
  554. package/es/components/date-picker/style/dnb-date-picker.min.css +1 -1
  555. package/es/components/dropdown/Dropdown.js +3 -3
  556. package/es/components/dropdown/Dropdown.js.map +1 -1
  557. package/es/components/flex/StackDocs.d.ts +2 -0
  558. package/es/components/flex/StackDocs.js +23 -0
  559. package/es/components/flex/StackDocs.js.map +1 -0
  560. package/es/components/form-row/FormRow.js +3 -3
  561. package/es/components/form-row/FormRow.js.map +1 -1
  562. package/es/components/form-row/style/dnb-form-row.css +12 -1
  563. package/es/components/form-row/style/dnb-form-row.min.css +1 -1
  564. package/es/components/form-status/FormStatus.d.ts +4 -1
  565. package/es/components/icon/style/dnb-icon.scss +1 -1
  566. package/es/components/index.d.ts +2 -1
  567. package/es/components/index.js +2 -1
  568. package/es/components/index.js.map +1 -1
  569. package/es/components/input-masked/TextMask.d.ts +2 -1
  570. package/es/components/input-masked/style/dnb-input-masked.css +12 -1
  571. package/es/components/input-masked/style/dnb-input-masked.min.css +1 -1
  572. package/es/components/lib.d.ts +3 -1
  573. package/es/components/lib.js +3 -1
  574. package/es/components/lib.js.map +1 -1
  575. package/es/components/list-format/ListFormat.d.ts +40 -0
  576. package/es/components/list-format/ListFormat.js +111 -0
  577. package/es/components/list-format/ListFormat.js.map +1 -0
  578. package/es/components/list-format/ListFormatDocs.d.ts +2 -0
  579. package/es/components/list-format/ListFormatDocs.js +28 -0
  580. package/es/components/list-format/ListFormatDocs.js.map +1 -0
  581. package/es/components/list-format/index.d.ts +7 -0
  582. package/es/components/list-format/index.js +4 -0
  583. package/es/components/list-format/index.js.map +1 -0
  584. package/es/components/number-format/NumberUtils.js +1 -1
  585. package/es/components/number-format/NumberUtils.js.map +1 -1
  586. package/es/components/radio/style/dnb-radio.css +12 -1
  587. package/es/components/radio/style/dnb-radio.min.css +1 -1
  588. package/es/components/step-indicator/StepIndicatorTriggerButton.js +1 -1
  589. package/es/components/step-indicator/StepIndicatorTriggerButton.js.map +1 -1
  590. package/es/components/textarea/Textarea.js +3 -3
  591. package/es/components/textarea/Textarea.js.map +1 -1
  592. package/es/components/toggle-button/ToggleButton.js +3 -3
  593. package/es/components/toggle-button/ToggleButton.js.map +1 -1
  594. package/es/components/toggle-button/style/dnb-toggle-button.css +12 -1
  595. package/es/components/toggle-button/style/dnb-toggle-button.min.css +1 -1
  596. package/es/components/upload/Upload.js +2 -1
  597. package/es/components/upload/Upload.js.map +1 -1
  598. package/es/components/upload/UploadContext.d.ts +1 -0
  599. package/es/components/upload/UploadContext.js +2 -1
  600. package/es/components/upload/UploadContext.js.map +1 -1
  601. package/es/components/upload/UploadDocs.js +5 -0
  602. package/es/components/upload/UploadDocs.js.map +1 -1
  603. package/es/components/upload/UploadDropzone.js.map +1 -1
  604. package/es/components/upload/UploadFileList.js +3 -1
  605. package/es/components/upload/UploadFileList.js.map +1 -1
  606. package/es/components/upload/UploadFileListCell.d.ts +22 -3
  607. package/es/components/upload/UploadFileListCell.js +16 -8
  608. package/es/components/upload/UploadFileListCell.js.map +1 -1
  609. package/es/components/upload/UploadInfo.js +7 -4
  610. package/es/components/upload/UploadInfo.js.map +1 -1
  611. package/es/components/upload/UploadVerify.d.ts +2 -2
  612. package/es/components/upload/UploadVerify.js.map +1 -1
  613. package/es/components/upload/style/dnb-upload.css +1 -1
  614. package/es/components/upload/style/dnb-upload.min.css +1 -1
  615. package/es/components/upload/style/dnb-upload.scss +1 -1
  616. package/es/components/upload/types.d.ts +11 -5
  617. package/es/components/upload/types.js.map +1 -1
  618. package/es/components/upload/useUpload.d.ts +6 -6
  619. package/es/components/upload/useUpload.js.map +1 -1
  620. package/es/elements/lists/style/lists-mixins.scss +1 -0
  621. package/es/extensions/forms/DataContext/FieldBoundary/FieldBoundaryProvider.js +1 -1
  622. package/es/extensions/forms/DataContext/FieldBoundary/FieldBoundaryProvider.js.map +1 -1
  623. package/es/extensions/forms/Field/ArraySelection/ArraySelection.js +11 -14
  624. package/es/extensions/forms/Field/ArraySelection/ArraySelection.js.map +1 -1
  625. package/es/extensions/forms/Field/ArraySelection/style/dnb-array-selection.css +3 -4
  626. package/es/extensions/forms/Field/ArraySelection/style/dnb-array-selection.min.css +1 -1
  627. package/es/extensions/forms/Field/ArraySelection/style/dnb-array-selection.scss +4 -4
  628. package/es/extensions/forms/Field/Boolean/Boolean.d.ts +3 -2
  629. package/es/extensions/forms/Field/Boolean/Boolean.js.map +1 -1
  630. package/es/extensions/forms/Field/Composition/CompositionDocs.js +2 -2
  631. package/es/extensions/forms/Field/Composition/CompositionDocs.js.map +1 -1
  632. package/es/extensions/forms/Field/Date/Date.js +4 -12
  633. package/es/extensions/forms/Field/Date/Date.js.map +1 -1
  634. package/es/extensions/forms/Field/Expiry/Expiry.js +6 -14
  635. package/es/extensions/forms/Field/Expiry/Expiry.js.map +1 -1
  636. package/es/extensions/forms/Field/FieldDocs.d.ts +2 -2
  637. package/es/extensions/forms/Field/FieldDocs.js +8 -8
  638. package/es/extensions/forms/Field/FieldDocs.js.map +1 -1
  639. package/es/extensions/forms/Field/Number/Number.d.ts +2 -1
  640. package/es/extensions/forms/Field/Number/Number.js +8 -19
  641. package/es/extensions/forms/Field/Number/Number.js.map +1 -1
  642. package/es/extensions/forms/Field/Number/style/dnb-number.css +0 -3
  643. package/es/extensions/forms/Field/Number/style/dnb-number.min.css +1 -1
  644. package/es/extensions/forms/Field/Number/style/dnb-number.scss +0 -2
  645. package/es/extensions/forms/Field/PhoneNumber/PhoneNumber.d.ts +2 -2
  646. package/es/extensions/forms/Field/PhoneNumber/PhoneNumber.js +9 -10
  647. package/es/extensions/forms/Field/PhoneNumber/PhoneNumber.js.map +1 -1
  648. package/es/extensions/forms/Field/PhoneNumber/PhoneNumberDocs.d.ts +1 -1
  649. package/es/extensions/forms/Field/PhoneNumber/PhoneNumberDocs.js +1 -1
  650. package/es/extensions/forms/Field/PhoneNumber/PhoneNumberDocs.js.map +1 -1
  651. package/es/extensions/forms/Field/Provider/FieldProviderDocs.js +6 -3
  652. package/es/extensions/forms/Field/Provider/FieldProviderDocs.js.map +1 -1
  653. package/es/extensions/forms/Field/Provider/useFieldProvider.d.ts +10 -3
  654. package/es/extensions/forms/Field/SelectCountry/SelectCountry.d.ts +2 -1
  655. package/es/extensions/forms/Field/SelectCountry/SelectCountry.js +14 -12
  656. package/es/extensions/forms/Field/SelectCountry/SelectCountry.js.map +1 -1
  657. package/es/extensions/forms/Field/Selection/Selection.d.ts +2 -1
  658. package/es/extensions/forms/Field/Selection/Selection.js +5 -13
  659. package/es/extensions/forms/Field/Selection/Selection.js.map +1 -1
  660. package/es/extensions/forms/Field/Slider/Slider.d.ts +2 -1
  661. package/es/extensions/forms/Field/Slider/Slider.js +0 -13
  662. package/es/extensions/forms/Field/Slider/Slider.js.map +1 -1
  663. package/es/extensions/forms/Field/String/String.d.ts +2 -1
  664. package/es/extensions/forms/Field/String/String.js +7 -20
  665. package/es/extensions/forms/Field/String/String.js.map +1 -1
  666. package/es/extensions/forms/Field/Toggle/Toggle.d.ts +1 -1
  667. package/es/extensions/forms/Field/Toggle/Toggle.js +6 -18
  668. package/es/extensions/forms/Field/Toggle/Toggle.js.map +1 -1
  669. package/es/extensions/forms/Field/Upload/Upload.d.ts +4 -3
  670. package/es/extensions/forms/Field/Upload/Upload.js +2 -12
  671. package/es/extensions/forms/Field/Upload/Upload.js.map +1 -1
  672. package/es/extensions/forms/FieldBlock/FieldBlock.d.ts +45 -6
  673. package/es/extensions/forms/FieldBlock/FieldBlock.js +39 -20
  674. package/es/extensions/forms/FieldBlock/FieldBlock.js.map +1 -1
  675. package/es/extensions/forms/FieldBlock/FieldBlockContext.d.ts +1 -0
  676. package/es/extensions/forms/FieldBlock/FieldBlockContext.js.map +1 -1
  677. package/es/extensions/forms/FieldBlock/FieldBlockDocs.d.ts +3 -2
  678. package/es/extensions/forms/FieldBlock/FieldBlockDocs.js +17 -2
  679. package/es/extensions/forms/FieldBlock/FieldBlockDocs.js.map +1 -1
  680. package/es/extensions/forms/FieldBlock/style/dnb-field-block.css +34 -11
  681. package/es/extensions/forms/FieldBlock/style/dnb-field-block.min.css +1 -1
  682. package/es/extensions/forms/FieldBlock/style/dnb-field-block.scss +56 -13
  683. package/es/extensions/forms/FieldBlock/style/themes/dnb-field-block-theme-sbanken.css +7 -0
  684. package/es/extensions/forms/FieldBlock/style/themes/dnb-field-block-theme-sbanken.min.css +1 -0
  685. package/es/extensions/forms/FieldBlock/style/themes/dnb-field-block-theme-sbanken.scss +10 -0
  686. package/es/extensions/forms/Form/Section/EditContainer/CancelButton.d.ts +1 -0
  687. package/es/extensions/forms/Form/Section/EditContainer/CancelButton.js +51 -0
  688. package/es/extensions/forms/Form/Section/EditContainer/CancelButton.js.map +1 -0
  689. package/es/extensions/forms/Form/Section/EditContainer/DoneButton.d.ts +1 -0
  690. package/es/extensions/forms/Form/Section/EditContainer/DoneButton.js +44 -0
  691. package/es/extensions/forms/Form/Section/EditContainer/DoneButton.js.map +1 -0
  692. package/es/extensions/forms/Form/Section/EditContainer/EditContainer.d.ts +2 -0
  693. package/es/extensions/forms/Form/Section/EditContainer/EditContainer.js +11 -4
  694. package/es/extensions/forms/Form/Section/EditContainer/EditContainer.js.map +1 -1
  695. package/es/extensions/forms/Form/Section/EditContainer/EditContainerDocs.js +1 -1
  696. package/es/extensions/forms/Form/Section/EditContainer/EditContainerDocs.js.map +1 -1
  697. package/es/extensions/forms/Form/Section/Section.d.ts +4 -2
  698. package/es/extensions/forms/Form/Section/Section.js +2 -0
  699. package/es/extensions/forms/Form/Section/Section.js.map +1 -1
  700. package/es/extensions/forms/Form/Section/Toolbar/Toolbar.d.ts +7 -0
  701. package/es/extensions/forms/Form/Section/Toolbar/Toolbar.js +59 -0
  702. package/es/extensions/forms/Form/Section/Toolbar/Toolbar.js.map +1 -0
  703. package/es/extensions/forms/Form/Section/Toolbar/ToolbarContext.d.ts +9 -0
  704. package/es/extensions/forms/Form/Section/Toolbar/ToolbarContext.js +4 -0
  705. package/es/extensions/forms/Form/Section/Toolbar/ToolbarContext.js.map +1 -0
  706. package/es/extensions/forms/Form/Section/Toolbar/ToolbarDocs.d.ts +3 -0
  707. package/es/extensions/forms/Form/Section/Toolbar/ToolbarDocs.js +3 -0
  708. package/es/extensions/forms/Form/Section/Toolbar/ToolbarDocs.js.map +1 -0
  709. package/es/extensions/forms/Form/Section/Toolbar/index.d.ts +2 -0
  710. package/es/extensions/forms/Form/Section/Toolbar/index.js +3 -0
  711. package/es/extensions/forms/Form/Section/Toolbar/index.js.map +1 -0
  712. package/es/extensions/forms/Form/Section/ViewContainer/EditButton.d.ts +1 -0
  713. package/es/extensions/forms/Form/Section/ViewContainer/{ViewToolbarTools.js → EditButton.js} +10 -11
  714. package/es/extensions/forms/Form/Section/ViewContainer/EditButton.js.map +1 -0
  715. package/es/extensions/forms/Form/Section/ViewContainer/ViewContainer.d.ts +1 -0
  716. package/es/extensions/forms/Form/Section/ViewContainer/ViewContainer.js +9 -4
  717. package/es/extensions/forms/Form/Section/ViewContainer/ViewContainer.js.map +1 -1
  718. package/es/extensions/forms/Form/Section/ViewContainer/ViewContainerDocs.js +1 -1
  719. package/es/extensions/forms/Form/Section/ViewContainer/ViewContainerDocs.js.map +1 -1
  720. package/es/extensions/forms/Form/Section/containers/SectionContainer.js +4 -3
  721. package/es/extensions/forms/Form/Section/containers/SectionContainer.js.map +1 -1
  722. package/es/extensions/forms/Form/Section/style/dnb-form-section.css +6 -13
  723. package/es/extensions/forms/Form/Section/style/dnb-form-section.min.css +1 -1
  724. package/es/extensions/forms/Form/Section/style/dnb-form-section.scss +11 -24
  725. package/es/extensions/forms/Iterate/Array/ArrayDocs.js +5 -5
  726. package/es/extensions/forms/Iterate/Array/ArrayDocs.js.map +1 -1
  727. package/es/extensions/forms/Iterate/Array/ArrayItemArea.js +4 -3
  728. package/es/extensions/forms/Iterate/Array/ArrayItemArea.js.map +1 -1
  729. package/es/extensions/forms/Iterate/EditContainer/CancelButton.d.ts +1 -1
  730. package/es/extensions/forms/Iterate/EditContainer/CancelButton.js +1 -1
  731. package/es/extensions/forms/Iterate/EditContainer/CancelButton.js.map +1 -1
  732. package/es/extensions/forms/Iterate/EditContainer/EditContainerDocs.js +1 -1
  733. package/es/extensions/forms/Iterate/EditContainer/EditContainerDocs.js.map +1 -1
  734. package/es/extensions/forms/Iterate/ViewContainer/EditButton.d.ts +1 -1
  735. package/es/extensions/forms/Iterate/ViewContainer/EditButton.js +1 -1
  736. package/es/extensions/forms/Iterate/ViewContainer/EditButton.js.map +1 -1
  737. package/es/extensions/forms/Iterate/ViewContainer/ViewContainerDocs.js +1 -1
  738. package/es/extensions/forms/Iterate/ViewContainer/ViewContainerDocs.js.map +1 -1
  739. package/es/extensions/forms/Value/ArraySelection/ArraySelection.d.ts +2 -25
  740. package/es/extensions/forms/Value/ArraySelection/ArraySelection.js +14 -45
  741. package/es/extensions/forms/Value/ArraySelection/ArraySelection.js.map +1 -1
  742. package/es/extensions/forms/Value/ArraySelection/ArraySelectionDocs.js +5 -17
  743. package/es/extensions/forms/Value/ArraySelection/ArraySelectionDocs.js.map +1 -1
  744. package/es/extensions/forms/Value/Composition/CompositionDocs.js +3 -1
  745. package/es/extensions/forms/Value/Composition/CompositionDocs.js.map +1 -1
  746. package/es/extensions/forms/Value/Provider/useValueProvider.d.ts +1 -1
  747. package/es/extensions/forms/Value/SummaryList/SummaryListDocs.js +5 -5
  748. package/es/extensions/forms/Value/SummaryList/SummaryListDocs.js.map +1 -1
  749. package/es/extensions/forms/Value/Upload/Upload.d.ts +11 -0
  750. package/es/extensions/forms/Value/Upload/Upload.js +88 -0
  751. package/es/extensions/forms/Value/Upload/Upload.js.map +1 -0
  752. package/es/extensions/forms/Value/Upload/UploadDocs.d.ts +2 -0
  753. package/es/extensions/forms/Value/Upload/UploadDocs.js +17 -0
  754. package/es/extensions/forms/Value/Upload/UploadDocs.js.map +1 -0
  755. package/es/extensions/forms/Value/Upload/index.d.ts +2 -0
  756. package/es/extensions/forms/Value/Upload/index.js +3 -0
  757. package/es/extensions/forms/Value/Upload/index.js.map +1 -0
  758. package/es/extensions/forms/Value/index.d.ts +1 -0
  759. package/es/extensions/forms/Value/index.js +1 -0
  760. package/es/extensions/forms/Value/index.js.map +1 -1
  761. package/es/extensions/forms/ValueBlock/ValueBlock.js +8 -3
  762. package/es/extensions/forms/ValueBlock/ValueBlock.js.map +1 -1
  763. package/es/extensions/forms/ValueBlock/style/dnb-value-block.css +0 -7
  764. package/es/extensions/forms/ValueBlock/style/dnb-value-block.min.css +1 -1
  765. package/es/extensions/forms/ValueBlock/style/dnb-value-block.scss +0 -10
  766. package/es/extensions/forms/Wizard/Step/StepDocs.js +1 -1
  767. package/es/extensions/forms/Wizard/Step/StepDocs.js.map +1 -1
  768. package/es/extensions/forms/blocks/ChildrenWithAge/ChildrenWithAge.js +2 -0
  769. package/es/extensions/forms/blocks/ChildrenWithAge/ChildrenWithAge.js.map +1 -1
  770. package/es/extensions/forms/hooks/DataValueWritePropsDocs.d.ts +3 -0
  771. package/es/extensions/forms/hooks/{DataValueDocs.js → DataValueWritePropsDocs.js} +3 -3
  772. package/es/extensions/forms/hooks/DataValueWritePropsDocs.js.map +1 -0
  773. package/es/extensions/forms/hooks/useDataValue.js +6 -1
  774. package/es/extensions/forms/hooks/useDataValue.js.map +1 -1
  775. package/es/extensions/forms/hooks/useFieldProps.js +8 -3
  776. package/es/extensions/forms/hooks/useFieldProps.js.map +1 -1
  777. package/es/extensions/forms/hooks/useValueProps.js +1 -6
  778. package/es/extensions/forms/hooks/useValueProps.js.map +1 -1
  779. package/es/extensions/forms/style/dnb-forms.css +45 -38
  780. package/es/extensions/forms/style/dnb-forms.min.css +1 -1
  781. package/es/extensions/forms/types.d.ts +6 -28
  782. package/es/extensions/forms/types.js.map +1 -1
  783. package/es/extensions/forms/utils/TestElement/style/dnb-test-element.css +2 -0
  784. package/es/extensions/forms/utils/TestElement/style/dnb-test-element.min.css +1 -1
  785. package/es/extensions/forms/utils/TestElement/style/dnb-test-element.scss +2 -0
  786. package/es/index.d.ts +2 -1
  787. package/es/index.js +2 -1
  788. package/es/index.js.map +1 -1
  789. package/es/shared/Context.d.ts +4 -0
  790. package/es/shared/Context.js.map +1 -1
  791. package/es/shared/Eufemia.d.ts +1 -1
  792. package/es/shared/Eufemia.js +2 -2
  793. package/es/shared/Eufemia.js.map +1 -1
  794. package/es/shared/component-helper.d.ts +1 -1
  795. package/es/shared/component-helper.js.map +1 -1
  796. package/es/style/core/reset.scss +0 -8
  797. package/es/style/core/scopes.scss +1 -1
  798. package/es/style/core/utilities.scss +12 -16
  799. package/es/style/dnb-ui-basis.css +1 -7
  800. package/es/style/dnb-ui-basis.min.css +1 -1
  801. package/es/style/dnb-ui-body.css +1 -7
  802. package/es/style/dnb-ui-body.min.css +1 -1
  803. package/es/style/dnb-ui-components.css +109 -43
  804. package/es/style/dnb-ui-components.min.css +3 -3
  805. package/es/style/dnb-ui-core.css +1 -8
  806. package/es/style/dnb-ui-core.min.css +1 -1
  807. package/es/style/dnb-ui-elements.css +1 -0
  808. package/es/style/dnb-ui-elements.min.css +1 -1
  809. package/es/style/dnb-ui-extensions.css +45 -38
  810. package/es/style/dnb-ui-extensions.min.css +1 -1
  811. package/es/style/dnb-ui-forms.css +45 -38
  812. package/es/style/dnb-ui-forms.min.css +1 -1
  813. package/es/style/themes/theme-eiendom/eiendom-theme-basis.css +1 -0
  814. package/es/style/themes/theme-eiendom/eiendom-theme-basis.min.css +1 -1
  815. package/es/style/themes/theme-eiendom/eiendom-theme-components.css +159 -80
  816. package/es/style/themes/theme-eiendom/eiendom-theme-components.min.css +4 -4
  817. package/es/style/themes/theme-eiendom/eiendom-theme-elements.css +1 -0
  818. package/es/style/themes/theme-eiendom/eiendom-theme-elements.min.css +1 -1
  819. package/es/style/themes/theme-eiendom/eiendom-theme-extensions.css +45 -38
  820. package/es/style/themes/theme-eiendom/eiendom-theme-extensions.min.css +1 -1
  821. package/es/style/themes/theme-eiendom/eiendom-theme-forms.css +45 -38
  822. package/es/style/themes/theme-eiendom/eiendom-theme-forms.min.css +1 -1
  823. package/es/style/themes/theme-sbanken/sbanken-theme-basis.css +1 -0
  824. package/es/style/themes/theme-sbanken/sbanken-theme-basis.min.css +1 -1
  825. package/es/style/themes/theme-sbanken/sbanken-theme-components.css +164 -83
  826. package/es/style/themes/theme-sbanken/sbanken-theme-components.min.css +5 -5
  827. package/es/style/themes/theme-sbanken/sbanken-theme-elements.css +1 -0
  828. package/es/style/themes/theme-sbanken/sbanken-theme-elements.min.css +1 -1
  829. package/es/style/themes/theme-sbanken/sbanken-theme-extensions.css +50 -41
  830. package/es/style/themes/theme-sbanken/sbanken-theme-extensions.min.css +2 -2
  831. package/es/style/themes/theme-sbanken/sbanken-theme-extensions.scss +1 -1
  832. package/es/style/themes/theme-sbanken/sbanken-theme-forms.css +52 -41
  833. package/es/style/themes/theme-sbanken/sbanken-theme-forms.min.css +2 -2
  834. package/es/style/themes/theme-sbanken/sbanken-theme-forms.scss +1 -1
  835. package/es/style/themes/theme-ui/ui-theme-basis.css +1 -0
  836. package/es/style/themes/theme-ui/ui-theme-basis.min.css +1 -1
  837. package/es/style/themes/theme-ui/ui-theme-components.css +159 -80
  838. package/es/style/themes/theme-ui/ui-theme-components.min.css +4 -4
  839. package/es/style/themes/theme-ui/ui-theme-elements.css +1 -0
  840. package/es/style/themes/theme-ui/ui-theme-elements.min.css +1 -1
  841. package/es/style/themes/theme-ui/ui-theme-extensions.css +45 -38
  842. package/es/style/themes/theme-ui/ui-theme-extensions.min.css +1 -1
  843. package/es/style/themes/theme-ui/ui-theme-forms.css +45 -38
  844. package/es/style/themes/theme-ui/ui-theme-forms.min.css +1 -1
  845. package/es/style/themes/theme-ui/ui-theme-tags.css +1 -0
  846. package/es/style/themes/theme-ui/ui-theme-tags.min.css +1 -1
  847. package/esm/dnb-ui-basis.min.mjs +1 -1
  848. package/esm/dnb-ui-components.min.mjs +1 -1
  849. package/esm/dnb-ui-elements.min.mjs +1 -1
  850. package/esm/dnb-ui-extensions.min.mjs +3 -3
  851. package/esm/dnb-ui-lib.min.mjs +1 -1
  852. package/extensions/forms/DataContext/FieldBoundary/FieldBoundaryProvider.js +1 -1
  853. package/extensions/forms/DataContext/FieldBoundary/FieldBoundaryProvider.js.map +1 -1
  854. package/extensions/forms/Field/ArraySelection/ArraySelection.js +11 -14
  855. package/extensions/forms/Field/ArraySelection/ArraySelection.js.map +1 -1
  856. package/extensions/forms/Field/ArraySelection/style/dnb-array-selection.css +3 -4
  857. package/extensions/forms/Field/ArraySelection/style/dnb-array-selection.min.css +1 -1
  858. package/extensions/forms/Field/ArraySelection/style/dnb-array-selection.scss +4 -4
  859. package/extensions/forms/Field/Boolean/Boolean.d.ts +3 -2
  860. package/extensions/forms/Field/Boolean/Boolean.js.map +1 -1
  861. package/extensions/forms/Field/Composition/CompositionDocs.js +2 -2
  862. package/extensions/forms/Field/Composition/CompositionDocs.js.map +1 -1
  863. package/extensions/forms/Field/Date/Date.js +4 -12
  864. package/extensions/forms/Field/Date/Date.js.map +1 -1
  865. package/extensions/forms/Field/Expiry/Expiry.js +6 -14
  866. package/extensions/forms/Field/Expiry/Expiry.js.map +1 -1
  867. package/extensions/forms/Field/FieldDocs.d.ts +2 -2
  868. package/extensions/forms/Field/FieldDocs.js +8 -8
  869. package/extensions/forms/Field/FieldDocs.js.map +1 -1
  870. package/extensions/forms/Field/Number/Number.d.ts +2 -1
  871. package/extensions/forms/Field/Number/Number.js +7 -19
  872. package/extensions/forms/Field/Number/Number.js.map +1 -1
  873. package/extensions/forms/Field/Number/style/dnb-number.css +0 -3
  874. package/extensions/forms/Field/Number/style/dnb-number.min.css +1 -1
  875. package/extensions/forms/Field/Number/style/dnb-number.scss +0 -2
  876. package/extensions/forms/Field/PhoneNumber/PhoneNumber.d.ts +2 -2
  877. package/extensions/forms/Field/PhoneNumber/PhoneNumber.js +9 -10
  878. package/extensions/forms/Field/PhoneNumber/PhoneNumber.js.map +1 -1
  879. package/extensions/forms/Field/PhoneNumber/PhoneNumberDocs.d.ts +1 -1
  880. package/extensions/forms/Field/PhoneNumber/PhoneNumberDocs.js +1 -1
  881. package/extensions/forms/Field/PhoneNumber/PhoneNumberDocs.js.map +1 -1
  882. package/extensions/forms/Field/Provider/FieldProviderDocs.js +6 -3
  883. package/extensions/forms/Field/Provider/FieldProviderDocs.js.map +1 -1
  884. package/extensions/forms/Field/Provider/useFieldProvider.d.ts +10 -3
  885. package/extensions/forms/Field/SelectCountry/SelectCountry.d.ts +2 -1
  886. package/extensions/forms/Field/SelectCountry/SelectCountry.js +14 -12
  887. package/extensions/forms/Field/SelectCountry/SelectCountry.js.map +1 -1
  888. package/extensions/forms/Field/Selection/Selection.d.ts +2 -1
  889. package/extensions/forms/Field/Selection/Selection.js +5 -13
  890. package/extensions/forms/Field/Selection/Selection.js.map +1 -1
  891. package/extensions/forms/Field/Slider/Slider.d.ts +2 -1
  892. package/extensions/forms/Field/Slider/Slider.js +0 -13
  893. package/extensions/forms/Field/Slider/Slider.js.map +1 -1
  894. package/extensions/forms/Field/String/String.d.ts +2 -1
  895. package/extensions/forms/Field/String/String.js +7 -20
  896. package/extensions/forms/Field/String/String.js.map +1 -1
  897. package/extensions/forms/Field/Toggle/Toggle.d.ts +1 -1
  898. package/extensions/forms/Field/Toggle/Toggle.js +6 -18
  899. package/extensions/forms/Field/Toggle/Toggle.js.map +1 -1
  900. package/extensions/forms/Field/Upload/Upload.d.ts +4 -3
  901. package/extensions/forms/Field/Upload/Upload.js +2 -12
  902. package/extensions/forms/Field/Upload/Upload.js.map +1 -1
  903. package/extensions/forms/FieldBlock/FieldBlock.d.ts +45 -6
  904. package/extensions/forms/FieldBlock/FieldBlock.js +39 -20
  905. package/extensions/forms/FieldBlock/FieldBlock.js.map +1 -1
  906. package/extensions/forms/FieldBlock/FieldBlockContext.d.ts +1 -0
  907. package/extensions/forms/FieldBlock/FieldBlockContext.js.map +1 -1
  908. package/extensions/forms/FieldBlock/FieldBlockDocs.d.ts +3 -2
  909. package/extensions/forms/FieldBlock/FieldBlockDocs.js +17 -2
  910. package/extensions/forms/FieldBlock/FieldBlockDocs.js.map +1 -1
  911. package/extensions/forms/FieldBlock/style/dnb-field-block.css +34 -11
  912. package/extensions/forms/FieldBlock/style/dnb-field-block.min.css +1 -1
  913. package/extensions/forms/FieldBlock/style/dnb-field-block.scss +56 -13
  914. package/extensions/forms/FieldBlock/style/themes/dnb-field-block-theme-sbanken.css +7 -0
  915. package/extensions/forms/FieldBlock/style/themes/dnb-field-block-theme-sbanken.min.css +1 -0
  916. package/extensions/forms/FieldBlock/style/themes/dnb-field-block-theme-sbanken.scss +10 -0
  917. package/extensions/forms/Form/Section/EditContainer/CancelButton.d.ts +1 -0
  918. package/extensions/forms/Form/Section/EditContainer/CancelButton.js +51 -0
  919. package/extensions/forms/Form/Section/EditContainer/CancelButton.js.map +1 -0
  920. package/extensions/forms/Form/Section/EditContainer/DoneButton.d.ts +1 -0
  921. package/extensions/forms/Form/Section/EditContainer/DoneButton.js +44 -0
  922. package/extensions/forms/Form/Section/EditContainer/DoneButton.js.map +1 -0
  923. package/extensions/forms/Form/Section/EditContainer/EditContainer.d.ts +2 -0
  924. package/extensions/forms/Form/Section/EditContainer/EditContainer.js +11 -4
  925. package/extensions/forms/Form/Section/EditContainer/EditContainer.js.map +1 -1
  926. package/extensions/forms/Form/Section/EditContainer/EditContainerDocs.js +1 -1
  927. package/extensions/forms/Form/Section/EditContainer/EditContainerDocs.js.map +1 -1
  928. package/extensions/forms/Form/Section/Section.d.ts +4 -2
  929. package/extensions/forms/Form/Section/Section.js +2 -0
  930. package/extensions/forms/Form/Section/Section.js.map +1 -1
  931. package/extensions/forms/Form/Section/Toolbar/Toolbar.d.ts +7 -0
  932. package/extensions/forms/Form/Section/Toolbar/Toolbar.js +59 -0
  933. package/extensions/forms/Form/Section/Toolbar/Toolbar.js.map +1 -0
  934. package/extensions/forms/Form/Section/Toolbar/ToolbarContext.d.ts +9 -0
  935. package/extensions/forms/Form/Section/Toolbar/ToolbarContext.js +4 -0
  936. package/extensions/forms/Form/Section/Toolbar/ToolbarContext.js.map +1 -0
  937. package/extensions/forms/Form/Section/Toolbar/ToolbarDocs.d.ts +3 -0
  938. package/extensions/forms/Form/Section/Toolbar/ToolbarDocs.js +3 -0
  939. package/extensions/forms/Form/Section/Toolbar/ToolbarDocs.js.map +1 -0
  940. package/extensions/forms/Form/Section/Toolbar/index.d.ts +2 -0
  941. package/extensions/forms/Form/Section/Toolbar/index.js +3 -0
  942. package/extensions/forms/Form/Section/Toolbar/index.js.map +1 -0
  943. package/extensions/forms/Form/Section/ViewContainer/EditButton.d.ts +1 -0
  944. package/extensions/forms/Form/Section/ViewContainer/{ViewToolbarTools.js → EditButton.js} +10 -11
  945. package/extensions/forms/Form/Section/ViewContainer/EditButton.js.map +1 -0
  946. package/extensions/forms/Form/Section/ViewContainer/ViewContainer.d.ts +1 -0
  947. package/extensions/forms/Form/Section/ViewContainer/ViewContainer.js +9 -4
  948. package/extensions/forms/Form/Section/ViewContainer/ViewContainer.js.map +1 -1
  949. package/extensions/forms/Form/Section/ViewContainer/ViewContainerDocs.js +1 -1
  950. package/extensions/forms/Form/Section/ViewContainer/ViewContainerDocs.js.map +1 -1
  951. package/extensions/forms/Form/Section/containers/SectionContainer.js +4 -3
  952. package/extensions/forms/Form/Section/containers/SectionContainer.js.map +1 -1
  953. package/extensions/forms/Form/Section/style/dnb-form-section.css +6 -13
  954. package/extensions/forms/Form/Section/style/dnb-form-section.min.css +1 -1
  955. package/extensions/forms/Form/Section/style/dnb-form-section.scss +11 -24
  956. package/extensions/forms/Iterate/Array/ArrayDocs.js +5 -5
  957. package/extensions/forms/Iterate/Array/ArrayDocs.js.map +1 -1
  958. package/extensions/forms/Iterate/Array/ArrayItemArea.js +4 -3
  959. package/extensions/forms/Iterate/Array/ArrayItemArea.js.map +1 -1
  960. package/extensions/forms/Iterate/EditContainer/CancelButton.d.ts +1 -1
  961. package/extensions/forms/Iterate/EditContainer/CancelButton.js +1 -1
  962. package/extensions/forms/Iterate/EditContainer/CancelButton.js.map +1 -1
  963. package/extensions/forms/Iterate/EditContainer/EditContainerDocs.js +1 -1
  964. package/extensions/forms/Iterate/EditContainer/EditContainerDocs.js.map +1 -1
  965. package/extensions/forms/Iterate/ViewContainer/EditButton.d.ts +1 -1
  966. package/extensions/forms/Iterate/ViewContainer/EditButton.js +1 -1
  967. package/extensions/forms/Iterate/ViewContainer/EditButton.js.map +1 -1
  968. package/extensions/forms/Iterate/ViewContainer/ViewContainerDocs.js +1 -1
  969. package/extensions/forms/Iterate/ViewContainer/ViewContainerDocs.js.map +1 -1
  970. package/extensions/forms/Value/ArraySelection/ArraySelection.d.ts +2 -25
  971. package/extensions/forms/Value/ArraySelection/ArraySelection.js +14 -46
  972. package/extensions/forms/Value/ArraySelection/ArraySelection.js.map +1 -1
  973. package/extensions/forms/Value/ArraySelection/ArraySelectionDocs.js +5 -17
  974. package/extensions/forms/Value/ArraySelection/ArraySelectionDocs.js.map +1 -1
  975. package/extensions/forms/Value/Composition/CompositionDocs.js +3 -1
  976. package/extensions/forms/Value/Composition/CompositionDocs.js.map +1 -1
  977. package/extensions/forms/Value/Provider/useValueProvider.d.ts +1 -1
  978. package/extensions/forms/Value/SummaryList/SummaryListDocs.js +5 -5
  979. package/extensions/forms/Value/SummaryList/SummaryListDocs.js.map +1 -1
  980. package/extensions/forms/Value/Upload/Upload.d.ts +11 -0
  981. package/extensions/forms/Value/Upload/Upload.js +88 -0
  982. package/extensions/forms/Value/Upload/Upload.js.map +1 -0
  983. package/extensions/forms/Value/Upload/UploadDocs.d.ts +2 -0
  984. package/extensions/forms/Value/Upload/UploadDocs.js +17 -0
  985. package/extensions/forms/Value/Upload/UploadDocs.js.map +1 -0
  986. package/extensions/forms/Value/Upload/index.d.ts +2 -0
  987. package/extensions/forms/Value/Upload/index.js +3 -0
  988. package/extensions/forms/Value/Upload/index.js.map +1 -0
  989. package/extensions/forms/Value/index.d.ts +1 -0
  990. package/extensions/forms/Value/index.js +1 -0
  991. package/extensions/forms/Value/index.js.map +1 -1
  992. package/extensions/forms/ValueBlock/ValueBlock.js +8 -3
  993. package/extensions/forms/ValueBlock/ValueBlock.js.map +1 -1
  994. package/extensions/forms/ValueBlock/style/dnb-value-block.css +0 -7
  995. package/extensions/forms/ValueBlock/style/dnb-value-block.min.css +1 -1
  996. package/extensions/forms/ValueBlock/style/dnb-value-block.scss +0 -10
  997. package/extensions/forms/Wizard/Step/StepDocs.js +1 -1
  998. package/extensions/forms/Wizard/Step/StepDocs.js.map +1 -1
  999. package/extensions/forms/blocks/ChildrenWithAge/ChildrenWithAge.js +2 -0
  1000. package/extensions/forms/blocks/ChildrenWithAge/ChildrenWithAge.js.map +1 -1
  1001. package/extensions/forms/hooks/DataValueWritePropsDocs.d.ts +3 -0
  1002. package/extensions/forms/hooks/{DataValueDocs.js → DataValueWritePropsDocs.js} +3 -3
  1003. package/extensions/forms/hooks/DataValueWritePropsDocs.js.map +1 -0
  1004. package/extensions/forms/hooks/useDataValue.js +6 -1
  1005. package/extensions/forms/hooks/useDataValue.js.map +1 -1
  1006. package/extensions/forms/hooks/useFieldProps.js +8 -3
  1007. package/extensions/forms/hooks/useFieldProps.js.map +1 -1
  1008. package/extensions/forms/hooks/useValueProps.js +1 -6
  1009. package/extensions/forms/hooks/useValueProps.js.map +1 -1
  1010. package/extensions/forms/style/dnb-forms.css +45 -38
  1011. package/extensions/forms/style/dnb-forms.min.css +1 -1
  1012. package/extensions/forms/types.d.ts +6 -28
  1013. package/extensions/forms/types.js.map +1 -1
  1014. package/extensions/forms/utils/TestElement/style/dnb-test-element.css +2 -0
  1015. package/extensions/forms/utils/TestElement/style/dnb-test-element.min.css +1 -1
  1016. package/extensions/forms/utils/TestElement/style/dnb-test-element.scss +2 -0
  1017. package/index.d.ts +2 -1
  1018. package/index.js +2 -1
  1019. package/index.js.map +1 -1
  1020. package/package.json +1 -1
  1021. package/shared/Context.d.ts +4 -0
  1022. package/shared/Context.js.map +1 -1
  1023. package/shared/Eufemia.d.ts +1 -1
  1024. package/shared/Eufemia.js +2 -2
  1025. package/shared/Eufemia.js.map +1 -1
  1026. package/shared/component-helper.d.ts +1 -1
  1027. package/shared/component-helper.js.map +1 -1
  1028. package/style/core/reset.scss +0 -8
  1029. package/style/core/scopes.scss +1 -1
  1030. package/style/core/utilities.scss +12 -16
  1031. package/style/dnb-ui-basis.css +1 -7
  1032. package/style/dnb-ui-basis.min.css +1 -1
  1033. package/style/dnb-ui-body.css +1 -7
  1034. package/style/dnb-ui-body.min.css +1 -1
  1035. package/style/dnb-ui-components.css +109 -43
  1036. package/style/dnb-ui-components.min.css +3 -3
  1037. package/style/dnb-ui-core.css +1 -8
  1038. package/style/dnb-ui-core.min.css +1 -1
  1039. package/style/dnb-ui-elements.css +1 -0
  1040. package/style/dnb-ui-elements.min.css +1 -1
  1041. package/style/dnb-ui-extensions.css +45 -38
  1042. package/style/dnb-ui-extensions.min.css +1 -1
  1043. package/style/dnb-ui-forms.css +45 -38
  1044. package/style/dnb-ui-forms.min.css +1 -1
  1045. package/style/themes/theme-eiendom/eiendom-theme-basis.css +1 -0
  1046. package/style/themes/theme-eiendom/eiendom-theme-basis.min.css +1 -1
  1047. package/style/themes/theme-eiendom/eiendom-theme-components.css +159 -80
  1048. package/style/themes/theme-eiendom/eiendom-theme-components.min.css +4 -4
  1049. package/style/themes/theme-eiendom/eiendom-theme-elements.css +1 -0
  1050. package/style/themes/theme-eiendom/eiendom-theme-elements.min.css +1 -1
  1051. package/style/themes/theme-eiendom/eiendom-theme-extensions.css +45 -38
  1052. package/style/themes/theme-eiendom/eiendom-theme-extensions.min.css +1 -1
  1053. package/style/themes/theme-eiendom/eiendom-theme-forms.css +45 -38
  1054. package/style/themes/theme-eiendom/eiendom-theme-forms.min.css +1 -1
  1055. package/style/themes/theme-sbanken/sbanken-theme-basis.css +1 -0
  1056. package/style/themes/theme-sbanken/sbanken-theme-basis.min.css +1 -1
  1057. package/style/themes/theme-sbanken/sbanken-theme-components.css +164 -83
  1058. package/style/themes/theme-sbanken/sbanken-theme-components.min.css +5 -5
  1059. package/style/themes/theme-sbanken/sbanken-theme-elements.css +1 -0
  1060. package/style/themes/theme-sbanken/sbanken-theme-elements.min.css +1 -1
  1061. package/style/themes/theme-sbanken/sbanken-theme-extensions.css +50 -41
  1062. package/style/themes/theme-sbanken/sbanken-theme-extensions.min.css +2 -2
  1063. package/style/themes/theme-sbanken/sbanken-theme-extensions.scss +1 -1
  1064. package/style/themes/theme-sbanken/sbanken-theme-forms.css +52 -41
  1065. package/style/themes/theme-sbanken/sbanken-theme-forms.min.css +2 -2
  1066. package/style/themes/theme-sbanken/sbanken-theme-forms.scss +1 -1
  1067. package/style/themes/theme-ui/ui-theme-basis.css +1 -0
  1068. package/style/themes/theme-ui/ui-theme-basis.min.css +1 -1
  1069. package/style/themes/theme-ui/ui-theme-components.css +159 -80
  1070. package/style/themes/theme-ui/ui-theme-components.min.css +4 -4
  1071. package/style/themes/theme-ui/ui-theme-elements.css +1 -0
  1072. package/style/themes/theme-ui/ui-theme-elements.min.css +1 -1
  1073. package/style/themes/theme-ui/ui-theme-extensions.css +45 -38
  1074. package/style/themes/theme-ui/ui-theme-extensions.min.css +1 -1
  1075. package/style/themes/theme-ui/ui-theme-forms.css +45 -38
  1076. package/style/themes/theme-ui/ui-theme-forms.min.css +1 -1
  1077. package/style/themes/theme-ui/ui-theme-tags.css +1 -0
  1078. package/style/themes/theme-ui/ui-theme-tags.min.css +1 -1
  1079. package/umd/dnb-ui-basis.min.js +1 -1
  1080. package/umd/dnb-ui-components.min.js +1 -1
  1081. package/umd/dnb-ui-elements.min.js +1 -1
  1082. package/umd/dnb-ui-extensions.min.js +3 -3
  1083. package/umd/dnb-ui-lib.min.js +1 -1
  1084. package/cjs/extensions/forms/FieldBlock/style/themes/dnb-field-block-sbanken.css +0 -4
  1085. package/cjs/extensions/forms/FieldBlock/style/themes/dnb-field-block-sbanken.min.css +0 -1
  1086. package/cjs/extensions/forms/FieldBlock/style/themes/dnb-field-block-sbanken.scss +0 -6
  1087. package/cjs/extensions/forms/Form/Section/EditContainer/EditToolbarTools.d.ts +0 -5
  1088. package/cjs/extensions/forms/Form/Section/EditContainer/EditToolbarTools.js.map +0 -1
  1089. package/cjs/extensions/forms/Form/Section/ViewContainer/ViewToolbarTools.d.ts +0 -4
  1090. package/cjs/extensions/forms/Form/Section/ViewContainer/ViewToolbarTools.js.map +0 -1
  1091. package/cjs/extensions/forms/Form/Section/containers/Toolbar.d.ts +0 -7
  1092. package/cjs/extensions/forms/Form/Section/containers/Toolbar.js +0 -35
  1093. package/cjs/extensions/forms/Form/Section/containers/Toolbar.js.map +0 -1
  1094. package/cjs/extensions/forms/hooks/DataValueDocs.d.ts +0 -3
  1095. package/cjs/extensions/forms/hooks/DataValueDocs.js.map +0 -1
  1096. package/es/extensions/forms/FieldBlock/style/themes/dnb-field-block-sbanken.css +0 -4
  1097. package/es/extensions/forms/FieldBlock/style/themes/dnb-field-block-sbanken.min.css +0 -1
  1098. package/es/extensions/forms/FieldBlock/style/themes/dnb-field-block-sbanken.scss +0 -6
  1099. package/es/extensions/forms/Form/Section/EditContainer/EditToolbarTools.d.ts +0 -5
  1100. package/es/extensions/forms/Form/Section/EditContainer/EditToolbarTools.js +0 -77
  1101. package/es/extensions/forms/Form/Section/EditContainer/EditToolbarTools.js.map +0 -1
  1102. package/es/extensions/forms/Form/Section/ViewContainer/ViewToolbarTools.d.ts +0 -4
  1103. package/es/extensions/forms/Form/Section/ViewContainer/ViewToolbarTools.js.map +0 -1
  1104. package/es/extensions/forms/Form/Section/containers/Toolbar.d.ts +0 -7
  1105. package/es/extensions/forms/Form/Section/containers/Toolbar.js +0 -27
  1106. package/es/extensions/forms/Form/Section/containers/Toolbar.js.map +0 -1
  1107. package/es/extensions/forms/hooks/DataValueDocs.d.ts +0 -3
  1108. package/es/extensions/forms/hooks/DataValueDocs.js.map +0 -1
  1109. package/extensions/forms/FieldBlock/style/themes/dnb-field-block-sbanken.css +0 -4
  1110. package/extensions/forms/FieldBlock/style/themes/dnb-field-block-sbanken.min.css +0 -1
  1111. package/extensions/forms/FieldBlock/style/themes/dnb-field-block-sbanken.scss +0 -6
  1112. package/extensions/forms/Form/Section/EditContainer/EditToolbarTools.d.ts +0 -5
  1113. package/extensions/forms/Form/Section/EditContainer/EditToolbarTools.js +0 -77
  1114. package/extensions/forms/Form/Section/EditContainer/EditToolbarTools.js.map +0 -1
  1115. package/extensions/forms/Form/Section/ViewContainer/ViewToolbarTools.d.ts +0 -4
  1116. package/extensions/forms/Form/Section/ViewContainer/ViewToolbarTools.js.map +0 -1
  1117. package/extensions/forms/Form/Section/containers/Toolbar.d.ts +0 -7
  1118. package/extensions/forms/Form/Section/containers/Toolbar.js +0 -27
  1119. package/extensions/forms/Form/Section/containers/Toolbar.js.map +0 -1
  1120. package/extensions/forms/hooks/DataValueDocs.d.ts +0 -3
  1121. package/extensions/forms/hooks/DataValueDocs.js.map +0 -1
@@ -1 +1 @@
1
- {"version":3,"file":"NumberUtils.js","names":["React","Context","LOCALE","CURRENCY","CURRENCY_DISPLAY","warn","isTrue","slugify","escapeRegexChars","getOffsetTop","getOffsetLeft","getSelectedElement","copyToClipboard","IS_MAC","IS_WIN","locales","NUMBER_CHARS","format","value","locale","clean","compact","phone","org","ban","nin","percent","currency","currency_display","currency_position","omit_currency_sign","clean_copy_value","decimals","omit_rounding","rounding","options","returnAria","display","aria","type","window","navigator","language","e","cleanNumber","opts","JSON","parse","parseFloat","formatDecimals","maximumFractionDigits","number","_number","_aria","formatPhone","formatBAN","formatNIN","formatORG","countDecimals","style","formatNumber","handleCompactBeforeDisplay","cleanedNumber","currencyDisplay","getFallbackCurrencyDisplay","minimumFractionDigits","String","indexOf","formatter","undefined","item","test","currencySuffix","currencyPositionFormatter","alignCurrencySymbol","trim","prepareMinus","handleCompactBeforeAria","_objectSpread","enhanceSR","cleanedValue","thousandsSeparator","getThousandsSeparator","replace","RegExp","NumberFormat","not_available","includes","decimalPlaces","factor","Math","pow","trunc","roundHalfEven","decimalSeparator","_String$split$","floor","valueOf","split","length","existingFormatter","callback","position","count","countCurrency","first","second","reg","output","abs","getGroupFormatter","formatToParts","map","reduce","acc","Number","toLocaleString","stringify","replaceNaNWithDash","code","substring","startsWith","filter","s","join","num","prefix","suffix","endsWith","decimal","thousands","thousandReg","decimalReg","decimalBackup","runIOSSelectionFix","selection","getSelection","range","document","createRange","removeAllRanges","addRange","copyWithEffect","label","positionElement","success","fx","showSelectionNotice","run","timeout","id","getElementById","elem","content","root","querySelector","createElement","setAttribute","arrow","appendChild","SelectionFx","remove","removeChild","hide","classList","add","pE","top","left","innerHTML","HTMLElement","width","offsetWidth","offsetHeight","setTimeout","useCopyWithNotice","translation","clipboard_copy","useContext","copy","getDecimalSeparator","_formatToParts$find","separator","find","_formatToParts$map$fi","getCurrencySymbol","_formatToParts$find2","separatorSymbol","Intl","inst","canHandleCompact","parseInt","notation","compactDisplay","maximumSignificantDigits","isNaN","ref","multiplier","adjustedNum","floored","diff","ceil"],"sources":["../../../../src/components/number-format/NumberUtils.js"],"sourcesContent":["import React from 'react'\nimport Context from '../../shared/Context'\n\n/**\n * Web NumberFormat Helpers\n *\n */\n\nimport { LOCALE, CURRENCY, CURRENCY_DISPLAY } from '../../shared/defaults'\nimport {\n warn,\n isTrue,\n slugify,\n escapeRegexChars,\n} from '../../shared/component-helper'\nimport {\n getOffsetTop,\n getOffsetLeft,\n getSelectedElement,\n copyToClipboard,\n IS_MAC,\n IS_WIN,\n} from '../../shared/helpers'\nimport locales from '../../shared/locales'\n\nconst NUMBER_CHARS = '\\\\-0-9,.'\n\n/**\n * Format a number to a streamlined format based on the given locale\n *\n * @param {string|number} value any number\n * @type {object} string or object { when: { min: 'small' } } that describes the media query\n * @property {string} locale - media queries\n * @property {boolean} clean - if true, clean the number for unwanted decimal separators\n * @property {string|boolean} compact - shortens any number or currency including an abbreviation. You can combine `compact` with `currency`. It gives you zero decimal by default `decimals={0}`. Use either a boolean, or a string with \"short\" or \"long\"\n * @property {boolean} phone - if true, it formats to a phone number\n * @property {boolean} org - if true, it formats to a Organization Number\n * @property {boolean} ban - if true, it formats to a Bank Account Number\n * @property {boolean} nin - if true, it formats to a National Identification Number\n * @property {boolean} percent - if true, it formats with a percent\n * @property {string|boolean} currency - currency code (ISO 4217) or `true` to use the default, `NOK`\n * @property {string} currency_display - use false or empty string to hide the sign or \"code\", \"name\", \"symbol\" or \"narrowSymbol\" – supports the API from number.toLocaleString\n * @property {string} currency_position - can be \"before\" or \"after\"\n * @property {string} omit_currency_sign - hides currency sign if true is given\n * @property {number} decimals - defines how many decimals should be added\n * @property {boolean} omit_rounding - @deprecated Use `rounding: \"omit\"` instead.\n * @property {string} rounding - if `omit`, the decimal will NOT be rounded. If `half-even`, the value will be rounded to the nearest even number. If set to `half-up`, the fractional part is 0.5 or greater, the number is rounded up. If the fractional part is less than 0.5, the number is rounded down. Defaults to `half-up`.\n * @property {object} options - accepts all number.toLocaleString API options\n * @property {boolean} returnAria - if true, this function returns an object that includes an aria property with a special aria formatting\n * @returns a formatted number as a string or as an object if \"returnAria\" is true\n */\nexport const format = (\n value,\n {\n locale = null, // can be \"auto\"\n clean = false,\n compact = null,\n phone = null,\n org = null,\n ban = null,\n nin = null,\n percent = null,\n currency = null,\n currency_display = null,\n currency_position = null,\n omit_currency_sign = null,\n clean_copy_value = null,\n decimals = null,\n omit_rounding = null, // @deprecated – can be removed in v11\n rounding = null,\n options = null,\n returnAria = false,\n } = {}\n) => {\n let display = value\n let aria = null\n let type = 'number'\n\n // because we are using context comparison\n if (!locale) {\n locale = LOCALE\n } else if (locale === 'auto') {\n try {\n locale = window.navigator.language\n } catch (e) {\n warn(e)\n }\n }\n\n if (isTrue(clean)) {\n value = cleanNumber(value)\n }\n\n const opts =\n (typeof options === 'string' && options[0] === '{'\n ? JSON.parse(options)\n : options) || {}\n\n if (parseFloat(decimals) >= 0) {\n value = formatDecimals(\n value,\n decimals,\n rounding ?? omit_rounding,\n opts\n )\n } else if (\n typeof opts.maximumFractionDigits === 'undefined' &&\n !isTrue(percent) &&\n !isTrue(currency)\n ) {\n // if no decimals are set, opts.maximumFractionDigits is set\n // why do we this? because the \".toLocaleString\" will else use 3 as the default\n opts.maximumFractionDigits = 20\n }\n\n if (isTrue(phone)) {\n type = 'phone'\n const { number: _number, aria: _aria } = formatPhone(value, locale)\n\n if (clean === null) {\n value = cleanNumber(value) // clean, because of +47 and ++47\n }\n display = _number\n aria = _aria\n } else if (isTrue(ban)) {\n type = 'ban' // Bank Account Number\n const { number: _number, aria: _aria } = formatBAN(value, locale)\n\n display = _number\n aria = _aria\n } else if (isTrue(nin)) {\n type = 'nin' // National Identification Number\n const { number: _number, aria: _aria } = formatNIN(value, locale)\n\n display = _number\n aria = _aria\n } else if (isTrue(org)) {\n type = 'org' // organization number\n\n const { number: _number, aria: _aria } = formatORG(value, locale)\n\n display = _number\n aria = _aria\n } else if (isTrue(percent)) {\n if (decimals === null) {\n if (typeof opts.maximumFractionDigits === 'undefined') {\n decimals = countDecimals(value)\n }\n value = formatDecimals(\n value,\n decimals,\n rounding ?? omit_rounding,\n opts\n )\n }\n\n if (!opts.style) {\n opts.style = 'percent'\n }\n\n display = formatNumber(value / 100, locale, opts)\n } else if (isTrue(currency) || typeof currency === 'string') {\n type = 'currency'\n\n opts.currency =\n opts.currency || (isTrue(currency) ? CURRENCY : currency)\n\n handleCompactBeforeDisplay({ value, locale, compact, decimals, opts })\n\n if (decimals === null) {\n decimals = 2\n value = formatDecimals(\n value,\n decimals,\n rounding ?? omit_rounding,\n opts\n )\n }\n\n // cleanup, but only if it not got cleaned up already\n let cleanedNumber =\n decimals >= 0 ? value : clean ? cleanNumber(value) : value\n\n if (currency_display === false || currency_display === '') {\n omit_currency_sign = true\n }\n\n opts.style = 'currency'\n opts.currencyDisplay = getFallbackCurrencyDisplay(\n locale,\n opts.currencyDisplay || currency_display\n )\n\n // if currency has no decimal, then go ahead and remove it\n if (\n typeof opts.minimumFractionDigits === 'undefined' &&\n String(value).indexOf('.') === -1 &&\n cleanedNumber % 1 === 0\n ) {\n opts.minimumFractionDigits = 0 // to enforce Norwegian style\n }\n\n let formatter = undefined\n\n if (isTrue(omit_currency_sign)) {\n formatter = (item) => {\n switch (item.type) {\n case 'literal':\n item.value = item.value === ' ' ? '' : item.value\n return item\n\n case 'currency':\n item.value = ''\n return item\n\n default:\n return item\n }\n }\n }\n\n /**\n * Make exception – if locale is Norwegian, and position is not defined, then use position \"after\"\n */\n if (!currency_position && locale && /(no|nb|nn)$/i.test(locale)) {\n currency_position = 'after'\n }\n\n let currencySuffix = null\n if (currency_position) {\n formatter = currencyPositionFormatter(\n formatter,\n ({ value }) => {\n return (currencySuffix = alignCurrencySymbol(\n value.trim(),\n currency_display\n ))\n },\n currency_position\n )\n }\n\n display = formatNumber(cleanedNumber, locale, opts, formatter)\n display = prepareMinus(display, locale)\n\n if (currency_position && currencySuffix) {\n if (currency_position === 'after') {\n display = `${display.trim()} ${currencySuffix}`\n } else if (currency_position === 'before') {\n display = `${currencySuffix} ${display.trim()}`\n }\n }\n\n handleCompactBeforeAria({ value, compact, opts })\n\n // aria options\n aria = formatNumber(cleanedNumber, locale, {\n minimumFractionDigits: 0,\n maximumFractionDigits: 2,\n ...opts,\n currencyDisplay: 'name',\n })\n aria = enhanceSR(cleanedNumber, aria, locale) // also calls prepareMinus\n\n // get only the currency name\n // const num = aria.replace(/([^0-9])+$/g, '')\n // const name = aria.replace(num, '')\n // aria = cleanedNumber + name\n } else {\n handleCompactBeforeDisplay({ value, locale, compact, decimals, opts })\n\n display = formatNumber(value, locale, opts)\n display = prepareMinus(display, locale)\n\n handleCompactBeforeAria({ value, compact, opts })\n\n // fix for NVDA to make sure we read the number, we add a minimum fraction digit (decimal)\n // NVDA fix\n aria = formatNumber(value, locale, opts)\n aria = enhanceSR(value, aria, locale) // also calls prepareMinus\n }\n\n if (aria === null) {\n aria = display\n }\n\n if (returnAria) {\n let cleanedValue\n\n if (clean_copy_value) {\n cleanedValue = formatNumber(\n opts.style === 'percent' ? value / 100 : value,\n locale,\n opts,\n (item) => {\n switch (item.type) {\n case 'group':\n case 'literal':\n case 'currency':\n case 'percentSign':\n item.value = ''\n return item\n default:\n return item\n }\n }\n )\n } else {\n const thousandsSeparator = getThousandsSeparator(locale)\n cleanedValue = String(display).replace(\n new RegExp(`${thousandsSeparator}(?=\\\\d{3})`, 'g'),\n ''\n )\n }\n\n if (value === 'invalid') {\n aria = locales[locale].NumberFormat.not_available || 'N/A'\n }\n\n // return \"locale\" as well value,l, since we have to \"auto\" option\n return { value, cleanedValue, number: display, aria, locale, type }\n }\n\n return display\n}\n\n/**\n * Fill format decimals\n *\n * @param {number|string} value\n * @param {number} decimals how many decimals\n * @param {boolean} defines what rounding method to use for decimals\n * @param {boolean} clean whether the value should be cleaned or not\n * @param {object} opts immutable object\n * @returns a decimal prepared number\n */\nexport const formatDecimals = (value, decimals, rounding, opts = {}) => {\n decimals = parseFloat(decimals)\n\n // Mutate the given options\n if (decimals >= 0) {\n opts.minimumFractionDigits = decimals\n opts.maximumFractionDigits = decimals\n }\n\n if (String(value).includes('.')) {\n const decimalPlaces = decimals || opts.maximumFractionDigits\n if (rounding === 'omit' || rounding === true) {\n const factor = Math.pow(10, decimalPlaces)\n value = Math.trunc(value * factor) / factor\n } else {\n switch (rounding) {\n case 'half-even': {\n value = roundHalfEven(value, decimalPlaces)\n\n break\n }\n }\n }\n }\n\n return value\n}\n\n/**\n * Find the amount of decimals\n *\n * @param {number|string} value any number\n * @param {string} decimalSeparator a dot or comma\n * @returns amount of decimals\n */\nexport const countDecimals = (value, decimalSeparator = '.') => {\n if (Math.floor(value.valueOf()) === value.valueOf()) {\n return 0\n }\n return String(value).split(decimalSeparator)[1]?.length || 0\n}\n\n/**\n * Changes the currency sign position\n *\n * For Norway, the position defaults to \"after\"\n *\n * @param {function} existingFormatter an existing number formatter or undefined\n * @param {function} callback function that will emitted with the currency\n * @param {string} position blank, before or after\n * @returns {function} number formatter\n */\nconst currencyPositionFormatter = (\n existingFormatter,\n callback,\n position = null\n) => {\n let count = 0\n let countCurrency = -1\n\n return (item) => {\n // Ensure we do not overwrite a given formatter, but run it as well\n if (typeof existingFormatter === 'function') {\n item = existingFormatter(item)\n }\n\n count++\n\n switch (item.type) {\n case 'currency': {\n if (position === 'after' || (position === 'before' && count > 2)) {\n countCurrency = count\n callback(item)\n item.value = ''\n }\n return item\n }\n\n case 'literal': {\n // Remove the literal after currency\n if (count === countCurrency + 1) {\n item.value = ''\n }\n return item\n }\n\n default:\n return item\n }\n }\n}\n\n/**\n * When e.g. a currency number is given with a minus,\n * this function transforms the minus to be moved before the number\n * instead of the symbol.\n *\n * It only cleans if locale is Norwegian\n *\n * form -NOK 1 234 to NOK -1 234\n *\n * @param {string} display currency number that includes either a minus or not\n * @param {string} locale locale as a string\n * @returns {string} number\n */\nconst prepareMinus = (display, locale) => {\n /**\n * Make exception – if locale is NOT Norwegian,\n * we skip the cleanup\n */\n if (!(locale && /(no|nb|nn)$/i.test(locale))) {\n return display\n }\n\n // check for first and second char\n const first = display[0]\n const second = display[1]\n\n // Seems to be the invalid replacement\n if (first === '-' && second === '-') {\n return display\n }\n\n // change the position of minus if it's first\n // check for two minus - −\n // check also for hyphen ‐\n // check also for dashes ‒ – — ―\n const reg = '^(-|−|‐|‒|–|—|―)'\n\n if (new RegExp(reg).test(first)) {\n // if second is number\n if (parseFloat(second) > 0) {\n // then do not swap\n display = display.replace(new RegExp(reg + '(.*)'), '-$2')\n } else {\n // then first has to be currency\n display = display.replace(new RegExp(reg + '([^0-9]+)(.*)'), '$2-$3')\n }\n }\n\n return display\n}\n\n/**\n * Aligns the currency symbol in the output based on the currency display option.\n * \"norske kroner\" (\"Norwegian kroner\") will be changed to \"kroner\" if the currency display option is set to \"name\".\n *\n * @param {string} output - The output string containing the currency symbol.\n * @param {string} currencyDisplay - The currency display option ('name' or 'symbol').\n * @returns {string} The aligned output string.\n */\nfunction alignCurrencySymbol(output, currencyDisplay) {\n if (typeof output === 'string' && currencyDisplay === 'name') {\n output = output.replace(/(nor[^\\s]+?)\\s(\\w+)/i, '$2')\n }\n return output\n}\n\n/**\n * Enhance VoiceOver support on mobile devices\n * Numbers under 99.999 are read out correctly, but only if we remove the spaces\n * Potential we could also check for locale: && /no|nb|nn/.test(locale)\n * but leave it for now without this extra check\n *\n * @param {string|number} value any number\n * @param {string} aria aria formatted number\n * @param {string} locale locale as a string\n * @returns aria number\n */\nconst enhanceSR = (value, aria, locale) => {\n if (IS_MAC && Math.abs(parseFloat(value)) <= 99999) {\n aria = String(aria).replace(/\\s([0-9])/g, '$1')\n }\n\n aria = prepareMinus(aria, locale)\n\n return aria\n}\n\n/**\n * The main number formatter function\n * This function is used to call the browsers/Node.js \"Intl.NumberFormat\" or \"Number.toLocaleString\" APIs\n *\n * @param {string|number} number any number\n * @param {string} locale locale as a string\n * @param {string} options formatting options based on the toLocaleString API\n * @param {string} formatter optional, a custom formatter can be given\n * @returns formatted number\n */\nexport const formatNumber = (\n number,\n locale,\n options = {},\n formatter = null\n) => {\n try {\n if (options.currencyDisplay) {\n options.currencyDisplay = getFallbackCurrencyDisplay(\n locale,\n options.currencyDisplay\n )\n }\n\n // remove unsupported decimals\n delete options.decimals\n\n if (locale && /(en|gb)$/i.test(locale)) {\n formatter = getGroupFormatter(locale, null, formatter)\n }\n\n if (formatter) {\n number = formatToParts({ number, locale, options })\n .map(formatter)\n .reduce((acc, { value }) => acc + value, '')\n } else if (\n typeof Number !== 'undefined' &&\n typeof Number.toLocaleString === 'function'\n ) {\n number = parseFloat(number).toLocaleString(locale, options)\n }\n } catch (e) {\n warn(\n `Number could not be formatted: ${JSON.stringify([\n number,\n locale,\n options,\n ])}`,\n e\n )\n }\n\n return replaceNaNWithDash(\n alignCurrencySymbol(number, options.currencyDisplay)\n )\n}\n\nfunction replaceNaNWithDash(number) {\n return String(number).replace(/NaN/, '–')\n}\n\n/**\n * Use this function to format phone numbers\n *\n * @param {string|number} number a phone number\n * @param {string} locale locale as a string\n * @returns a formatted phone number\n */\nexport const formatPhone = (number, locale = null) => {\n let display = number\n let aria = null\n\n switch (locale) {\n default: {\n // cleanup\n number = String(number).replace(/[^+0-9]/g, '')\n\n let code = ''\n if (\n number.length > 8 &&\n number.substring(0, 2) !== '00' &&\n !number.startsWith('+')\n ) {\n number = '+' + number\n }\n\n if (number[0] === '+') {\n code = number.substring(0, 3) + ' '\n number = number.substring(3)\n } else if (number.substring(0, 2) === '00') {\n code = number.substring(0, 4) + ' '\n number = number.substring(4)\n }\n code = code.replace(/^00/, '+')\n const length = number.length\n\n // get 800 22 222\n if (length === 8 && number[0] === '8') {\n display =\n code +\n number\n .split(/([0-9]{3})([0-9]{2})/)\n .filter((s) => s)\n .join(' ')\n } else {\n // get 02000\n if (length < 6) {\n display = code + number\n } else {\n // get 6 or 8 formatting\n display =\n code +\n number\n .split(\n length === 6\n ? /^(\\+[0-9]{2})|([0-9]{3})/\n : /^(\\+[0-9]{2})|([0-9]{2})/\n )\n .filter((s) => s)\n .join(' ')\n }\n }\n\n aria =\n code +\n number\n .split(/([0-9]{2})/)\n .filter((s) => s)\n .join(' ')\n }\n }\n\n if (aria === null) {\n aria = display\n }\n\n return { number: display, aria }\n}\n\n/**\n * Use this function to format Bank Account Numbers\n *\n * @param {string|number} number a Bank Account Number\n * @param {string} locale locale as a string\n * @returns a formatted Bank Account Number\n */\nexport const formatBAN = (number, locale = null) => {\n // cleanup\n number = String(number).replace(/[^0-9]/g, '')\n\n let display = number\n let aria = null\n\n switch (locale) {\n default: {\n // get 2000 12 34567\n display = number\n .split(/([0-9]{4})([0-9]{2})([0-9]{1,})/)\n .filter((s) => s)\n .join(' ')\n\n aria = number\n .split(/([0-9]{2})/)\n .filter((s) => s)\n .join(' ')\n }\n }\n\n if (aria === null) {\n aria = display\n }\n\n return { number: display, aria }\n}\n\n/**\n * Use this function to format Organization Numbers\n *\n * @param {string|number} number a Organization Number\n * @param {string} locale locale as a string\n * @returns a formatted Organization Number\n */\nexport const formatORG = (number, locale = null) => {\n // cleanup\n number = String(number).replace(/[^0-9]/g, '')\n\n let display = number\n let aria = null\n\n switch (locale) {\n default: {\n // get 123 456 789\n display = number\n .split(/([0-9]{3})/)\n .filter((s) => s)\n .join(' ')\n\n aria = number\n .split(/([0-9]{1})/)\n .filter((s) => s)\n .join(' ')\n }\n }\n\n if (aria === null) {\n aria = display\n }\n\n return { number: display, aria }\n}\n\n/**\n * Use this function to format National Identification Numbers\n *\n * @param {string|number} number a National Identification Number\n * @param {string} locale locale as a string\n * @returns a formatted National Identification Number\n */\nexport const formatNIN = (number, locale = null) => {\n // cleanup\n number = String(number).replace(/[^0-9]/g, '')\n\n let display = number\n let aria = null\n\n switch (locale) {\n default: {\n // get 180892 12345\n display = number\n .split(/([0-9]{6})/)\n .filter((s) => s)\n .join(' ')\n\n // correct nin for screen readers\n aria = display\n .split(\n /([0-9]{2})([0-9]{2})([0-9]{2}) ([0-9]{1})([0-9]{1})([0-9]{1})([0-9]{1})([0-9]{1})/\n )\n .filter((s) => s)\n .join(IS_WIN ? '. ' : ' ') // NVDA fix with a dot to not read date on FF\n }\n }\n\n if (aria === null) {\n aria = display\n }\n\n return { number: display, aria }\n}\n\n/**\n * This function cleans numbers for separators\n * https://en.wikipedia.org/wiki/Decimal_separator\n *\n * @param {string|number} num any number\n * @returns a number that contains valid number separators\n */\nexport function cleanNumber(\n num,\n {\n decimalSeparator = null,\n thousandsSeparator = null,\n prefix = null,\n suffix = null,\n } = {}\n) {\n if (typeof num === 'number') {\n return num\n }\n\n num = String(num).trim()\n\n if (typeof prefix === 'string' && num.startsWith(prefix)) {\n num = num.substring(prefix.length, num.length)\n }\n if (typeof suffix === 'string' && num.endsWith(suffix)) {\n num = num.substring(0, num.length - suffix.length)\n }\n\n // 1. Remove invalid chars on the beginning (not a number)\n if (/^[^0-9-]/.test(num)) {\n num = num.replace(/^(^[^0-9-]+)/, '')\n }\n\n let decimal = decimalSeparator\n let thousands = thousandsSeparator\n\n // -12 345,678\n if (/(\\s)([0-9]{3})/.test(num)) {\n thousands = thousands || '\\\\s'\n decimal = decimal || ','\n }\n\n // -12.345,678\n else if (\n /(\\.)([0-9]{3})/.test(num) &&\n !/([,'][0-9]{3})(\\.)([0-9]{3})/.test(num) // just an additional check, for support with more\n ) {\n thousands = thousands || '\\\\.'\n decimal = decimal || \",|·|'\" // also support Spain and CH\n }\n\n // -1,234,567.891\n else if (/(,)([0-9]{3})/.test(num)) {\n thousands = thousands || ','\n decimal = decimal || '\\\\.|·' // also support Spain\n }\n\n // -1'234'567.891, only used in CH\n else if (/(')([0-9]{3})/.test(num)) {\n thousands = thousands || \"'\"\n decimal = decimal || '\\\\.|,'\n } else {\n thousands = ','\n decimal = '\\\\.'\n }\n\n // 3. Remove invalid thousand separators\n const thousandReg = thousandsSeparator\n ? new RegExp(\n `([0-9]|)(${escapeRegexChars(thousandsSeparator)})([0-9]{3})`,\n 'g'\n )\n : new RegExp(`([0-9]|)(${thousands})([0-9]{3})`, 'g')\n if (thousandReg.test(num)) {\n num = num.replace(thousandReg, '$1$3')\n }\n\n // 2. Rename invalid decimal separator\n // Make sure that there are only two digits after the comma, then we clean that up.\n // else we don't, because it can be a US number\n // therefore, check first, is there a chance of being a decimal?\n // const decimalReg = new RegExp(`(${decimal})([0-9]{1,2})`, 'g')\n const decimalReg = decimalSeparator\n ? new RegExp(`(${escapeRegexChars(decimalSeparator)})([0-9]{0,})`, 'g')\n : new RegExp(`(${decimal})([0-9]{1,2})`, 'g')\n if (decimalReg.test(num)) {\n num = num.replace(decimalReg, '.$2')\n }\n\n // Edge case, if we have more than 2 decimals, replace these decimals\n if (!decimalSeparator) {\n const decimalBackup = new RegExp(`(${decimal})([0-9]{3,})`, 'g')\n if (decimalBackup.test(num)) {\n num = num.replace(decimalBackup, '.$2')\n }\n }\n\n // Remove all invalid chars\n return num.replace(new RegExp(`([^${NUMBER_CHARS}])`, 'g'), '')\n}\n\n/**\n * So iOS v13 can select something on the first try, we run this add range trick.\n * NB: This hack may be removed in future iOS versions.\n */\nexport function runIOSSelectionFix() {\n try {\n const selection = window.getSelection()\n const range = document.createRange()\n selection.removeAllRanges()\n selection.addRange(range)\n } catch (e) {\n //\n }\n}\n\n/**\n * A function that tries to copy to the clipboard\n * at the same time it shows the copy result in a tooltip\n *\n * NB: This function is not documented.\n * It should not be used!\n *\n * @param {string} value any number\n * @param {*} label\n * @param {*} positionElement\n * @returns\n */\nexport async function copyWithEffect(\n value,\n label,\n positionElement = null\n) {\n let success = null\n\n if (value) {\n try {\n const fx = showSelectionNotice({ value, label })\n success = await copyToClipboard(value)\n if (success === true) {\n fx.run(positionElement)\n }\n } catch (e) {\n warn(e)\n success = e\n }\n }\n\n return success\n}\n\n/**\n * This function add a tooltip looking\n *\n * @type {object} object with property\n * @property {string} value any value\n * @property {string} label any additional label that gets added as a suffix\n * @property {number} timeout how long the tooltip should be visible (3 sec)\n * @returns {object} { run, hide, remove } call the \"run\" function when the effect should be shown\n */\nexport function showSelectionNotice({ value, label, timeout = 3e3 }) {\n const id = 'id-' + slugify(value)\n if (typeof document !== 'undefined' && document.getElementById(id)) {\n return { run: () => {} }\n }\n\n let elem, content, root\n\n try {\n root = document.querySelector('.dnb-tooltip__portal, body')\n\n // create that portal element\n elem = document.createElement('span')\n elem.setAttribute('id', id)\n elem.setAttribute('class', 'dnb-tooltip')\n elem.setAttribute('role', 'tooltip')\n\n const arrow = document.createElement('span')\n arrow.setAttribute(\n 'class',\n 'dnb-tooltip__arrow dnb-tooltip__arrow__position--top'\n )\n content = document.createElement('span')\n content.setAttribute('class', 'dnb-tooltip__content')\n content.setAttribute('aria-live', 'assertive')\n elem.appendChild(arrow)\n elem.appendChild(content)\n } catch (e) {\n warn(e)\n }\n\n return new (class SelectionFx {\n remove() {\n try {\n root.removeChild(elem)\n elem = null\n content = null\n } catch (e) {\n //\n }\n }\n hide() {\n try {\n elem.classList.add('dnb-tooltip--hide')\n } catch (e) {\n //\n }\n }\n run(pE = getSelectedElement()) {\n try {\n root.appendChild(elem)\n\n const top = getOffsetTop(pE)\n const left = getOffsetLeft(pE)\n\n content.innerHTML =\n String(label) +\n (pE instanceof HTMLElement\n ? `<span class=\"dnb-sr-only\">: ${\n (\n (pE &&\n pE.querySelector('.dnb-number-format__selection')) ||\n pE\n ).innerHTML\n }</span>`\n : '')\n\n const width =\n (\n (pE && pE.querySelector('.dnb-number-format__visible')) ||\n pE ||\n {}\n ).offsetWidth || 0\n\n elem.style.top = `${top - elem.offsetHeight}px`\n elem.style.left = `${left + width / 2 - elem.offsetWidth / 2}px`\n elem.classList.add('dnb-tooltip--active')\n\n setTimeout(this.hide, timeout)\n setTimeout(this.remove, timeout + 600)\n } catch (e) {\n warn(e)\n }\n }\n })()\n}\n\n/**\n * React Hook\n * It returns \"copyWithEffect\" but with a translated string\n *\n * @returns copyWithEffect function inside object { copy }\n */\nexport function useCopyWithNotice() {\n const {\n translation: {\n NumberFormat: { clipboard_copy },\n },\n } = React.useContext(Context)\n\n const copy = (value, positionElement) => {\n copyWithEffect(value, clipboard_copy, positionElement)\n }\n\n return { copy }\n}\n\n/**\n * Will return currency display value based on navigator/browser and locale\n *\n * @property {string} currencyDisplay (optional) code, name, symbol or narrowSymbol\n * @property {string} locale (optional) the locale to use, defaults to nb-NO\n * @returns {string} a separator symbol\n */\nexport function getFallbackCurrencyDisplay(\n locale = null,\n currencyDisplay = null\n) {\n // If currencyDisplay is not defined and locale is \"no\", use narrowSymbol\n if (!currencyDisplay && (!locale || /(no|nb|nn)$/i.test(locale))) {\n currencyDisplay = 'narrowSymbol'\n }\n\n return currencyDisplay || CURRENCY_DISPLAY // code, name, symbol\n}\n\n/**\n * This function returns a decimal separator symbol based on the given locale\n *\n * @property {string} locale (optional) the locale to use, defaults to nb-NO\n * @returns {string} a separator symbol\n */\nexport function getDecimalSeparator(locale = null) {\n const separator =\n formatToParts({\n number: 1.1,\n locale,\n }).find(({ type }) => type === 'decimal')?.value || ',' // defaults to nb-NO\n\n return separator\n}\n\n/**\n * This function returns a thousands separator symbol based on the given locale\n *\n * @property {string} locale (optional) the locale to use, defaults to nb-NO\n * @returns {string} a separator symbol\n */\nexport function getThousandsSeparator(locale = null) {\n const formatter = getGroupFormatter(locale)\n\n return (\n formatToParts({\n number: 1000,\n locale,\n })\n .map(formatter)\n .find(({ type }) => type === 'group')?.value || ' '\n ) // defaults to nb-NO\n}\n\n/**\n * This function returns a currency symbol based on the given locale\n *\n * @property {string} locale (optional) the locale to use, defaults to nb-NO\n * @property {string} currency (optional) a given currency\n * @property {string} display (optional) what currency display\n * @property {number} number (optional) only to define if it should be formatted in singular or plural\n * @returns {string} a currency symbol\n */\nexport function getCurrencySymbol(\n locale = null,\n currency = null,\n display = null,\n number = 2\n) {\n if (!currency) {\n currency = CURRENCY\n }\n\n const currencyDisplay = getFallbackCurrencyDisplay(locale, display)\n\n return alignCurrencySymbol(\n formatToParts({\n number,\n locale,\n options: {\n style: 'currency',\n currency,\n currencyDisplay,\n },\n }).find(({ type }) => type === 'currency')?.value || currency,\n currencyDisplay\n )\n}\n\nfunction getGroupFormatter(\n locale = null,\n separatorSymbol = null,\n existingFormatter = null\n) {\n /**\n * We change the thousand separator to be a non-breaking space\n *\n * Effected locales:\n * - en-GB\n * - en\n */\n if (locale && /(en|gb)$/i.test(locale)) {\n separatorSymbol = ' ' // non-breaking space\n }\n\n return (item) => {\n // Ensure we do not overwrite a given formatter, but run it as well\n if (typeof existingFormatter === 'function') {\n item = existingFormatter(item)\n }\n\n if (item.type === 'group') {\n item.value = separatorSymbol || item.value\n }\n\n return item\n }\n}\n\n/**\n * For internal usage\n *\n * @type {object}\n * @property {string} number - a number\n * @property {string} locale - locale as a string. Defaults to the global LOCALE constant\n * @property {object} options - NumberFormat options\n * @returns {array} that contains all the parts of the given number [{ value: x, type: 'type' }]\n */\nfunction formatToParts({ number, locale = null, options = null }) {\n if (\n typeof Intl !== 'undefined' &&\n typeof Intl.NumberFormat === 'function'\n ) {\n try {\n const inst = Intl.NumberFormat(locale || LOCALE, options || {})\n if (typeof inst.formatToParts === 'function') {\n return inst.formatToParts(number)\n } else {\n return [{ value: inst.format(number) }]\n }\n } catch (e) {\n warn(e)\n }\n }\n\n return [{ value: number }]\n}\n\n/**\n * Helper for getting a consistent compact format\n * Mutates a given \"opts\" object.\n *\n * @param {object}\n * @property {string} value any number\n * @property {string} locale a given locale\n * @property {string|boolean} compact \"short\" or \"long\" if true is given, \"short\" is used\n * @property {number} decimals the amount of decimals\n * @property {object} opts the options object – it gets mutated\n */\nfunction handleCompactBeforeDisplay({\n value,\n locale,\n compact,\n decimals = 0,\n opts,\n} = {}) {\n if (!canHandleCompact({ value, compact })) {\n return // stop here\n }\n\n value = parseInt(Math.abs(value))\n opts.notation = 'compact'\n\n // For numbers under 1M we do\n if (isTrue(compact) && locale && /(no|nb|nn)$/i.test(locale)) {\n opts.compactDisplay = Math.abs(value) < 1000000 ? 'long' : 'short'\n } else {\n opts.compactDisplay = !isTrue(compact) ? compact : 'short'\n }\n\n if (typeof opts.maximumSignificantDigits === 'undefined') {\n if (isNaN(parseFloat(decimals))) {\n decimals = 0\n } else {\n decimals = parseFloat(decimals)\n }\n\n // This formula ensures we always get the same amount decimals\n const ref = String(value).length % 3\n if (ref === 2) {\n decimals += 1\n } else if (ref === 0) {\n decimals += 2\n }\n\n // The result of this formula would be equal to this:\n // if (value >= 100000000000000) {\n // decimals += 2\n // } else if (value >= 10000000000000) {\n // decimals += 1\n // } else if (value >= 1000000000000) {\n // decimals += 0\n // } else if (value >= 100000000000) {\n // decimals += 2\n // } else if (value >= 10000000000) {\n // decimals += 1\n // } else if (value >= 1000000000) {\n // decimals += 0\n // } else if (value >= 100000000) {\n // decimals += 2\n // } else if (value >= 10000000) {\n // decimals += 1\n // } else if (value >= 1000000) {\n // decimals += 0\n // } else if (value >= 100000) {\n // decimals += 2\n // } else if (value >= 10000) {\n // decimals += 1\n // }\n\n // Firefox issue?\n // If we do not define \"maximumSignificantDigits\" Firefox does not show any decimals at all\n opts.maximumSignificantDigits = decimals + 1\n }\n}\n\n/**\n * Helper for getting a consistent compact format\n * Mutates a given \"opts\" object.\n *\n * @param {object}\n * @property {string|boolean} compact \"short\" or \"long\" if true is given, \"short\" is used\n * @property {object} opts the options object – it gets mutated\n */\nfunction handleCompactBeforeAria({ value, compact, opts }) {\n if (!canHandleCompact({ value, compact })) {\n return // stop here\n }\n\n opts.compactDisplay = 'long'\n}\n\n/**\n * Checks if we should/can handle the compact format\n *\n * @param {object}\n * @property {string|number} value any number\n * @property {string|boolean} compact \"short\" or \"long\" if true is given, \"short\" is used\n */\nfunction canHandleCompact({ value, compact }) {\n if (compact && Math.abs(value) >= 1000) {\n return true\n }\n\n return false\n}\n\n/**\n * Rounds the number to the nearest even number\n *\n * @param {number} num the number to round\n * @param {number} decimalPlaces the number of decimal places to round to\n * @returns {number} the rounded number\n */\nexport function roundHalfEven(num, decimalPlaces = 2) {\n const multiplier = Math.pow(10, decimalPlaces)\n const adjustedNum = num * multiplier\n const floored = Math.floor(adjustedNum)\n const diff = adjustedNum - floored\n\n if (diff > 0.5) {\n return Math.ceil(adjustedNum) / multiplier\n } else if (diff < 0.5) {\n return Math.floor(adjustedNum) / multiplier\n }\n\n // If exactly halfway, round to the nearest even number\n return floored % 2 === 0\n ? floored / multiplier\n : Math.ceil(adjustedNum) / multiplier\n}\n"],"mappings":"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"}
1
+ {"version":3,"file":"NumberUtils.js","names":["React","Context","LOCALE","CURRENCY","CURRENCY_DISPLAY","warn","isTrue","slugify","escapeRegexChars","getOffsetTop","getOffsetLeft","getSelectedElement","copyToClipboard","IS_MAC","IS_WIN","locales","NUMBER_CHARS","format","value","locale","clean","compact","phone","org","ban","nin","percent","currency","currency_display","currency_position","omit_currency_sign","clean_copy_value","decimals","omit_rounding","rounding","options","returnAria","display","aria","type","window","navigator","language","e","cleanNumber","opts","JSON","parse","parseFloat","formatDecimals","maximumFractionDigits","number","_number","_aria","formatPhone","formatBAN","formatNIN","formatORG","countDecimals","style","formatNumber","handleCompactBeforeDisplay","cleanedNumber","currencyDisplay","getFallbackCurrencyDisplay","minimumFractionDigits","String","indexOf","formatter","undefined","item","test","currencySuffix","currencyPositionFormatter","alignCurrencySymbol","trim","prepareMinus","handleCompactBeforeAria","_objectSpread","enhanceSR","cleanedValue","thousandsSeparator","getThousandsSeparator","replace","RegExp","NumberFormat","not_available","includes","decimalPlaces","factor","Math","pow","trunc","roundHalfEven","decimalSeparator","_String$split$","floor","valueOf","split","length","existingFormatter","callback","position","count","countCurrency","first","second","reg","output","abs","getGroupFormatter","formatToParts","map","reduce","acc","Number","toLocaleString","stringify","replaceNaNWithDash","code","substring","startsWith","filter","s","join","num","prefix","suffix","endsWith","decimal","thousands","thousandReg","decimalReg","decimalBackup","runIOSSelectionFix","selection","getSelection","range","document","createRange","removeAllRanges","addRange","copyWithEffect","label","positionElement","success","fx","showSelectionNotice","run","timeout","id","getElementById","elem","content","root","querySelector","createElement","setAttribute","arrow","appendChild","SelectionFx","remove","removeChild","hide","classList","add","pE","top","left","innerHTML","HTMLElement","width","offsetWidth","offsetHeight","setTimeout","useCopyWithNotice","translation","clipboard_copy","useContext","copy","getDecimalSeparator","_formatToParts$find","separator","find","_formatToParts$map$fi","getCurrencySymbol","_formatToParts$find2","separatorSymbol","Intl","inst","canHandleCompact","parseInt","notation","compactDisplay","maximumSignificantDigits","isNaN","ref","multiplier","adjustedNum","floored","diff","ceil"],"sources":["../../../../src/components/number-format/NumberUtils.js"],"sourcesContent":["import React from 'react'\nimport Context from '../../shared/Context'\n\n/**\n * Web NumberFormat Helpers\n *\n */\n\nimport { LOCALE, CURRENCY, CURRENCY_DISPLAY } from '../../shared/defaults'\nimport {\n warn,\n isTrue,\n slugify,\n escapeRegexChars,\n} from '../../shared/component-helper'\nimport {\n getOffsetTop,\n getOffsetLeft,\n getSelectedElement,\n copyToClipboard,\n IS_MAC,\n IS_WIN,\n} from '../../shared/helpers'\nimport locales from '../../shared/locales'\n\nconst NUMBER_CHARS = '\\\\-0-9,.'\n\n/**\n * Format a number to a streamlined format based on the given locale\n *\n * @param {string|number} value any number\n * @type {object} string or object { when: { min: 'small' } } that describes the media query\n * @property {string} locale - media queries\n * @property {boolean} clean - if true, clean the number for unwanted decimal separators\n * @property {string|boolean} compact - shortens any number or currency including an abbreviation. You can combine `compact` with `currency`. It gives you zero decimal by default `decimals={0}`. Use either a boolean, or a string with \"short\" or \"long\"\n * @property {boolean} phone - if true, it formats to a phone number\n * @property {boolean} org - if true, it formats to a Organization Number\n * @property {boolean} ban - if true, it formats to a Bank Account Number\n * @property {boolean} nin - if true, it formats to a National Identification Number\n * @property {boolean} percent - if true, it formats with a percent\n * @property {string|boolean} currency - currency code (ISO 4217) or `true` to use the default, `NOK`\n * @property {string} currency_display - use false or empty string to hide the sign or \"code\", \"name\", \"symbol\" or \"narrowSymbol\" – supports the API from number.toLocaleString\n * @property {string} currency_position - can be \"before\" or \"after\"\n * @property {string} omit_currency_sign - hides currency sign if true is given\n * @property {number} decimals - defines how many decimals should be added\n * @property {boolean} omit_rounding - @deprecated Use `rounding: \"omit\"` instead.\n * @property {string} rounding - if `omit`, the decimal will NOT be rounded. If `half-even`, the value will be rounded to the nearest even number. If set to `half-up`, the fractional part is 0.5 or greater, the number is rounded up. If the fractional part is less than 0.5, the number is rounded down. Defaults to `half-up`.\n * @property {object} options - accepts all number.toLocaleString API options\n * @property {boolean} returnAria - if true, this function returns an object that includes an aria property with a special aria formatting\n * @returns a formatted number as a string or as an object if \"returnAria\" is true\n */\nexport const format = (\n value,\n {\n locale = null, // can be \"auto\"\n clean = false,\n compact = null,\n phone = null,\n org = null,\n ban = null,\n nin = null,\n percent = null,\n currency = null,\n currency_display = null,\n currency_position = null,\n omit_currency_sign = null,\n clean_copy_value = null,\n decimals = null,\n omit_rounding = null, // @deprecated – can be removed in v11\n rounding = null,\n options = null,\n returnAria = false,\n } = {}\n) => {\n let display = value\n let aria = null\n let type = 'number'\n\n // because we are using context comparison\n if (!locale) {\n locale = LOCALE\n } else if (locale === 'auto') {\n try {\n locale = window.navigator.language\n } catch (e) {\n warn(e)\n }\n }\n\n if (isTrue(clean)) {\n value = cleanNumber(value)\n }\n\n const opts =\n (typeof options === 'string' && options[0] === '{'\n ? JSON.parse(options)\n : options) || {}\n\n if (parseFloat(decimals) >= 0) {\n value = formatDecimals(\n value,\n decimals,\n rounding ?? omit_rounding,\n opts\n )\n } else if (\n typeof opts.maximumFractionDigits === 'undefined' &&\n !isTrue(percent) &&\n !isTrue(currency)\n ) {\n // if no decimals are set, opts.maximumFractionDigits is set\n // why do we this? because the \".toLocaleString\" will else use 3 as the default\n opts.maximumFractionDigits = 20\n }\n\n if (isTrue(phone)) {\n type = 'phone'\n const { number: _number, aria: _aria } = formatPhone(value, locale)\n\n if (clean === null) {\n value = cleanNumber(value) // clean, because of +47 and ++47\n }\n display = _number\n aria = _aria\n } else if (isTrue(ban)) {\n type = 'ban' // Bank Account Number\n const { number: _number, aria: _aria } = formatBAN(value, locale)\n\n display = _number\n aria = _aria\n } else if (isTrue(nin)) {\n type = 'nin' // National Identification Number\n const { number: _number, aria: _aria } = formatNIN(value, locale)\n\n display = _number\n aria = _aria\n } else if (isTrue(org)) {\n type = 'org' // organization number\n\n const { number: _number, aria: _aria } = formatORG(value, locale)\n\n display = _number\n aria = _aria\n } else if (isTrue(percent)) {\n if (decimals === null) {\n if (typeof opts.maximumFractionDigits === 'undefined') {\n decimals = countDecimals(value)\n }\n value = formatDecimals(\n value,\n decimals,\n rounding ?? omit_rounding,\n opts\n )\n }\n\n if (!opts.style) {\n opts.style = 'percent'\n }\n\n display = formatNumber(value / 100, locale, opts)\n } else if (isTrue(currency) || typeof currency === 'string') {\n type = 'currency'\n\n opts.currency =\n opts.currency || (isTrue(currency) ? CURRENCY : currency)\n\n handleCompactBeforeDisplay({ value, locale, compact, decimals, opts })\n\n if (decimals === null) {\n decimals = 2\n value = formatDecimals(\n value,\n decimals,\n rounding ?? omit_rounding,\n opts\n )\n }\n\n // cleanup, but only if it not got cleaned up already\n let cleanedNumber =\n decimals >= 0 ? value : clean ? cleanNumber(value) : value\n\n if (currency_display === false || currency_display === '') {\n omit_currency_sign = true\n }\n\n opts.style = 'currency'\n opts.currencyDisplay = getFallbackCurrencyDisplay(\n locale,\n opts.currencyDisplay || currency_display\n )\n\n // if currency has no decimal, then go ahead and remove it\n if (\n typeof opts.minimumFractionDigits === 'undefined' &&\n String(value).indexOf('.') === -1 &&\n cleanedNumber % 1 === 0\n ) {\n opts.minimumFractionDigits = 0 // to enforce Norwegian style\n }\n\n let formatter = undefined\n\n if (isTrue(omit_currency_sign)) {\n formatter = (item) => {\n switch (item.type) {\n case 'literal':\n item.value = item.value === ' ' ? '' : item.value\n return item\n\n case 'currency':\n item.value = ''\n return item\n\n default:\n return item\n }\n }\n }\n\n /**\n * Make exception – if locale is Norwegian, and position is not defined, then use position \"after\"\n */\n if (!currency_position && locale && /(no|nb|nn)$/i.test(locale)) {\n currency_position = 'after'\n }\n\n let currencySuffix = null\n if (currency_position) {\n formatter = currencyPositionFormatter(\n formatter,\n ({ value }) => {\n return (currencySuffix = alignCurrencySymbol(\n value.trim(),\n currency_display\n ))\n },\n currency_position\n )\n }\n\n display = formatNumber(cleanedNumber, locale, opts, formatter)\n display = prepareMinus(display, locale)\n\n if (currency_position && currencySuffix) {\n if (currency_position === 'after') {\n display = `${display.trim()} ${currencySuffix}`\n } else if (currency_position === 'before') {\n display = `${currencySuffix} ${display.trim()}`\n }\n }\n\n handleCompactBeforeAria({ value, compact, opts })\n\n // aria options\n aria = formatNumber(cleanedNumber, locale, {\n minimumFractionDigits: 0,\n maximumFractionDigits: 2,\n ...opts,\n currencyDisplay: 'name',\n })\n aria = enhanceSR(cleanedNumber, aria, locale) // also calls prepareMinus\n\n // get only the currency name\n // const num = aria.replace(/([^0-9])+$/g, '')\n // const name = aria.replace(num, '')\n // aria = cleanedNumber + name\n } else {\n handleCompactBeforeDisplay({ value, locale, compact, decimals, opts })\n\n display = formatNumber(value, locale, opts)\n display = prepareMinus(display, locale)\n\n handleCompactBeforeAria({ value, compact, opts })\n\n // fix for NVDA to make sure we read the number, we add a minimum fraction digit (decimal)\n // NVDA fix\n aria = formatNumber(value, locale, opts)\n aria = enhanceSR(value, aria, locale) // also calls prepareMinus\n }\n\n if (aria === null) {\n aria = display\n }\n\n if (returnAria) {\n let cleanedValue\n\n if (clean_copy_value) {\n cleanedValue = formatNumber(\n opts.style === 'percent' ? value / 100 : value,\n locale,\n opts,\n (item) => {\n switch (item.type) {\n case 'group':\n case 'literal':\n case 'currency':\n case 'percentSign':\n item.value = ''\n return item\n default:\n return item\n }\n }\n )\n } else {\n const thousandsSeparator = getThousandsSeparator(locale)\n cleanedValue = String(display).replace(\n new RegExp(`${thousandsSeparator}(?=\\\\d{3})`, 'g'),\n ''\n )\n }\n\n if (value === 'invalid') {\n aria = locales[locale].NumberFormat.not_available || 'N/A'\n }\n\n // return \"locale\" as well value,l, since we have to \"auto\" option\n return { value, cleanedValue, number: display, aria, locale, type }\n }\n\n return display\n}\n\n/**\n * Fill format decimals\n *\n * @param {number|string} value\n * @param {number} decimals how many decimals\n * @param {boolean} defines what rounding method to use for decimals\n * @param {boolean} clean whether the value should be cleaned or not\n * @param {object} opts immutable object\n * @returns a decimal prepared number\n */\nexport const formatDecimals = (value, decimals, rounding, opts = {}) => {\n decimals = parseFloat(decimals)\n\n // Mutate the given options\n if (decimals >= 0) {\n opts.minimumFractionDigits = decimals\n opts.maximumFractionDigits = decimals\n }\n\n if (String(value).includes('.')) {\n const decimalPlaces = decimals || opts.maximumFractionDigits\n if (rounding === 'omit' || rounding === true) {\n const factor = Math.pow(10, decimalPlaces)\n value = Math.trunc(value * factor) / factor\n } else {\n switch (rounding) {\n case 'half-even': {\n value = roundHalfEven(value, decimalPlaces)\n\n break\n }\n }\n }\n }\n\n return value\n}\n\n/**\n * Find the amount of decimals\n *\n * @param {number|string} value any number\n * @param {string} decimalSeparator a dot or comma\n * @returns amount of decimals\n */\nexport const countDecimals = (value, decimalSeparator = '.') => {\n if (\n typeof value === 'number' &&\n Math.floor(value.valueOf()) === value.valueOf()\n ) {\n return 0\n }\n return String(value).split(decimalSeparator)[1]?.length || 0\n}\n\n/**\n * Changes the currency sign position\n *\n * For Norway, the position defaults to \"after\"\n *\n * @param {function} existingFormatter an existing number formatter or undefined\n * @param {function} callback function that will emitted with the currency\n * @param {string} position blank, before or after\n * @returns {function} number formatter\n */\nconst currencyPositionFormatter = (\n existingFormatter,\n callback,\n position = null\n) => {\n let count = 0\n let countCurrency = -1\n\n return (item) => {\n // Ensure we do not overwrite a given formatter, but run it as well\n if (typeof existingFormatter === 'function') {\n item = existingFormatter(item)\n }\n\n count++\n\n switch (item.type) {\n case 'currency': {\n if (position === 'after' || (position === 'before' && count > 2)) {\n countCurrency = count\n callback(item)\n item.value = ''\n }\n return item\n }\n\n case 'literal': {\n // Remove the literal after currency\n if (count === countCurrency + 1) {\n item.value = ''\n }\n return item\n }\n\n default:\n return item\n }\n }\n}\n\n/**\n * When e.g. a currency number is given with a minus,\n * this function transforms the minus to be moved before the number\n * instead of the symbol.\n *\n * It only cleans if locale is Norwegian\n *\n * form -NOK 1 234 to NOK -1 234\n *\n * @param {string} display currency number that includes either a minus or not\n * @param {string} locale locale as a string\n * @returns {string} number\n */\nconst prepareMinus = (display, locale) => {\n /**\n * Make exception – if locale is NOT Norwegian,\n * we skip the cleanup\n */\n if (!(locale && /(no|nb|nn)$/i.test(locale))) {\n return display\n }\n\n // check for first and second char\n const first = display[0]\n const second = display[1]\n\n // Seems to be the invalid replacement\n if (first === '-' && second === '-') {\n return display\n }\n\n // change the position of minus if it's first\n // check for two minus - −\n // check also for hyphen ‐\n // check also for dashes ‒ – — ―\n const reg = '^(-|−|‐|‒|–|—|―)'\n\n if (new RegExp(reg).test(first)) {\n // if second is number\n if (parseFloat(second) > 0) {\n // then do not swap\n display = display.replace(new RegExp(reg + '(.*)'), '-$2')\n } else {\n // then first has to be currency\n display = display.replace(new RegExp(reg + '([^0-9]+)(.*)'), '$2-$3')\n }\n }\n\n return display\n}\n\n/**\n * Aligns the currency symbol in the output based on the currency display option.\n * \"norske kroner\" (\"Norwegian kroner\") will be changed to \"kroner\" if the currency display option is set to \"name\".\n *\n * @param {string} output - The output string containing the currency symbol.\n * @param {string} currencyDisplay - The currency display option ('name' or 'symbol').\n * @returns {string} The aligned output string.\n */\nfunction alignCurrencySymbol(output, currencyDisplay) {\n if (typeof output === 'string' && currencyDisplay === 'name') {\n output = output.replace(/(nor[^\\s]+?)\\s(\\w+)/i, '$2')\n }\n return output\n}\n\n/**\n * Enhance VoiceOver support on mobile devices\n * Numbers under 99.999 are read out correctly, but only if we remove the spaces\n * Potential we could also check for locale: && /no|nb|nn/.test(locale)\n * but leave it for now without this extra check\n *\n * @param {string|number} value any number\n * @param {string} aria aria formatted number\n * @param {string} locale locale as a string\n * @returns aria number\n */\nconst enhanceSR = (value, aria, locale) => {\n if (IS_MAC && Math.abs(parseFloat(value)) <= 99999) {\n aria = String(aria).replace(/\\s([0-9])/g, '$1')\n }\n\n aria = prepareMinus(aria, locale)\n\n return aria\n}\n\n/**\n * The main number formatter function\n * This function is used to call the browsers/Node.js \"Intl.NumberFormat\" or \"Number.toLocaleString\" APIs\n *\n * @param {string|number} number any number\n * @param {string} locale locale as a string\n * @param {string} options formatting options based on the toLocaleString API\n * @param {string} formatter optional, a custom formatter can be given\n * @returns formatted number\n */\nexport const formatNumber = (\n number,\n locale,\n options = {},\n formatter = null\n) => {\n try {\n if (options.currencyDisplay) {\n options.currencyDisplay = getFallbackCurrencyDisplay(\n locale,\n options.currencyDisplay\n )\n }\n\n // remove unsupported decimals\n delete options.decimals\n\n if (locale && /(en|gb)$/i.test(locale)) {\n formatter = getGroupFormatter(locale, null, formatter)\n }\n\n if (formatter) {\n number = formatToParts({ number, locale, options })\n .map(formatter)\n .reduce((acc, { value }) => acc + value, '')\n } else if (\n typeof Number !== 'undefined' &&\n typeof Number.toLocaleString === 'function'\n ) {\n number = parseFloat(number).toLocaleString(locale, options)\n }\n } catch (e) {\n warn(\n `Number could not be formatted: ${JSON.stringify([\n number,\n locale,\n options,\n ])}`,\n e\n )\n }\n\n return replaceNaNWithDash(\n alignCurrencySymbol(number, options.currencyDisplay)\n )\n}\n\nfunction replaceNaNWithDash(number) {\n return String(number).replace(/NaN/, '–')\n}\n\n/**\n * Use this function to format phone numbers\n *\n * @param {string|number} number a phone number\n * @param {string} locale locale as a string\n * @returns a formatted phone number\n */\nexport const formatPhone = (number, locale = null) => {\n let display = number\n let aria = null\n\n switch (locale) {\n default: {\n // cleanup\n number = String(number).replace(/[^+0-9]/g, '')\n\n let code = ''\n if (\n number.length > 8 &&\n number.substring(0, 2) !== '00' &&\n !number.startsWith('+')\n ) {\n number = '+' + number\n }\n\n if (number[0] === '+') {\n code = number.substring(0, 3) + ' '\n number = number.substring(3)\n } else if (number.substring(0, 2) === '00') {\n code = number.substring(0, 4) + ' '\n number = number.substring(4)\n }\n code = code.replace(/^00/, '+')\n const length = number.length\n\n // get 800 22 222\n if (length === 8 && number[0] === '8') {\n display =\n code +\n number\n .split(/([0-9]{3})([0-9]{2})/)\n .filter((s) => s)\n .join(' ')\n } else {\n // get 02000\n if (length < 6) {\n display = code + number\n } else {\n // get 6 or 8 formatting\n display =\n code +\n number\n .split(\n length === 6\n ? /^(\\+[0-9]{2})|([0-9]{3})/\n : /^(\\+[0-9]{2})|([0-9]{2})/\n )\n .filter((s) => s)\n .join(' ')\n }\n }\n\n aria =\n code +\n number\n .split(/([0-9]{2})/)\n .filter((s) => s)\n .join(' ')\n }\n }\n\n if (aria === null) {\n aria = display\n }\n\n return { number: display, aria }\n}\n\n/**\n * Use this function to format Bank Account Numbers\n *\n * @param {string|number} number a Bank Account Number\n * @param {string} locale locale as a string\n * @returns a formatted Bank Account Number\n */\nexport const formatBAN = (number, locale = null) => {\n // cleanup\n number = String(number).replace(/[^0-9]/g, '')\n\n let display = number\n let aria = null\n\n switch (locale) {\n default: {\n // get 2000 12 34567\n display = number\n .split(/([0-9]{4})([0-9]{2})([0-9]{1,})/)\n .filter((s) => s)\n .join(' ')\n\n aria = number\n .split(/([0-9]{2})/)\n .filter((s) => s)\n .join(' ')\n }\n }\n\n if (aria === null) {\n aria = display\n }\n\n return { number: display, aria }\n}\n\n/**\n * Use this function to format Organization Numbers\n *\n * @param {string|number} number a Organization Number\n * @param {string} locale locale as a string\n * @returns a formatted Organization Number\n */\nexport const formatORG = (number, locale = null) => {\n // cleanup\n number = String(number).replace(/[^0-9]/g, '')\n\n let display = number\n let aria = null\n\n switch (locale) {\n default: {\n // get 123 456 789\n display = number\n .split(/([0-9]{3})/)\n .filter((s) => s)\n .join(' ')\n\n aria = number\n .split(/([0-9]{1})/)\n .filter((s) => s)\n .join(' ')\n }\n }\n\n if (aria === null) {\n aria = display\n }\n\n return { number: display, aria }\n}\n\n/**\n * Use this function to format National Identification Numbers\n *\n * @param {string|number} number a National Identification Number\n * @param {string} locale locale as a string\n * @returns a formatted National Identification Number\n */\nexport const formatNIN = (number, locale = null) => {\n // cleanup\n number = String(number).replace(/[^0-9]/g, '')\n\n let display = number\n let aria = null\n\n switch (locale) {\n default: {\n // get 180892 12345\n display = number\n .split(/([0-9]{6})/)\n .filter((s) => s)\n .join(' ')\n\n // correct nin for screen readers\n aria = display\n .split(\n /([0-9]{2})([0-9]{2})([0-9]{2}) ([0-9]{1})([0-9]{1})([0-9]{1})([0-9]{1})([0-9]{1})/\n )\n .filter((s) => s)\n .join(IS_WIN ? '. ' : ' ') // NVDA fix with a dot to not read date on FF\n }\n }\n\n if (aria === null) {\n aria = display\n }\n\n return { number: display, aria }\n}\n\n/**\n * This function cleans numbers for separators\n * https://en.wikipedia.org/wiki/Decimal_separator\n *\n * @param {string|number} num any number\n * @returns a number that contains valid number separators\n */\nexport function cleanNumber(\n num,\n {\n decimalSeparator = null,\n thousandsSeparator = null,\n prefix = null,\n suffix = null,\n } = {}\n) {\n if (typeof num === 'number') {\n return num\n }\n\n num = String(num).trim()\n\n if (typeof prefix === 'string' && num.startsWith(prefix)) {\n num = num.substring(prefix.length, num.length)\n }\n if (typeof suffix === 'string' && num.endsWith(suffix)) {\n num = num.substring(0, num.length - suffix.length)\n }\n\n // 1. Remove invalid chars on the beginning (not a number)\n if (/^[^0-9-]/.test(num)) {\n num = num.replace(/^(^[^0-9-]+)/, '')\n }\n\n let decimal = decimalSeparator\n let thousands = thousandsSeparator\n\n // -12 345,678\n if (/(\\s)([0-9]{3})/.test(num)) {\n thousands = thousands || '\\\\s'\n decimal = decimal || ','\n }\n\n // -12.345,678\n else if (\n /(\\.)([0-9]{3})/.test(num) &&\n !/([,'][0-9]{3})(\\.)([0-9]{3})/.test(num) // just an additional check, for support with more\n ) {\n thousands = thousands || '\\\\.'\n decimal = decimal || \",|·|'\" // also support Spain and CH\n }\n\n // -1,234,567.891\n else if (/(,)([0-9]{3})/.test(num)) {\n thousands = thousands || ','\n decimal = decimal || '\\\\.|·' // also support Spain\n }\n\n // -1'234'567.891, only used in CH\n else if (/(')([0-9]{3})/.test(num)) {\n thousands = thousands || \"'\"\n decimal = decimal || '\\\\.|,'\n } else {\n thousands = ','\n decimal = '\\\\.'\n }\n\n // 3. Remove invalid thousand separators\n const thousandReg = thousandsSeparator\n ? new RegExp(\n `([0-9]|)(${escapeRegexChars(thousandsSeparator)})([0-9]{3})`,\n 'g'\n )\n : new RegExp(`([0-9]|)(${thousands})([0-9]{3})`, 'g')\n if (thousandReg.test(num)) {\n num = num.replace(thousandReg, '$1$3')\n }\n\n // 2. Rename invalid decimal separator\n // Make sure that there are only two digits after the comma, then we clean that up.\n // else we don't, because it can be a US number\n // therefore, check first, is there a chance of being a decimal?\n // const decimalReg = new RegExp(`(${decimal})([0-9]{1,2})`, 'g')\n const decimalReg = decimalSeparator\n ? new RegExp(`(${escapeRegexChars(decimalSeparator)})([0-9]{0,})`, 'g')\n : new RegExp(`(${decimal})([0-9]{1,2})`, 'g')\n if (decimalReg.test(num)) {\n num = num.replace(decimalReg, '.$2')\n }\n\n // Edge case, if we have more than 2 decimals, replace these decimals\n if (!decimalSeparator) {\n const decimalBackup = new RegExp(`(${decimal})([0-9]{3,})`, 'g')\n if (decimalBackup.test(num)) {\n num = num.replace(decimalBackup, '.$2')\n }\n }\n\n // Remove all invalid chars\n return num.replace(new RegExp(`([^${NUMBER_CHARS}])`, 'g'), '')\n}\n\n/**\n * So iOS v13 can select something on the first try, we run this add range trick.\n * NB: This hack may be removed in future iOS versions.\n */\nexport function runIOSSelectionFix() {\n try {\n const selection = window.getSelection()\n const range = document.createRange()\n selection.removeAllRanges()\n selection.addRange(range)\n } catch (e) {\n //\n }\n}\n\n/**\n * A function that tries to copy to the clipboard\n * at the same time it shows the copy result in a tooltip\n *\n * NB: This function is not documented.\n * It should not be used!\n *\n * @param {string} value any number\n * @param {*} label\n * @param {*} positionElement\n * @returns\n */\nexport async function copyWithEffect(\n value,\n label,\n positionElement = null\n) {\n let success = null\n\n if (value) {\n try {\n const fx = showSelectionNotice({ value, label })\n success = await copyToClipboard(value)\n if (success === true) {\n fx.run(positionElement)\n }\n } catch (e) {\n warn(e)\n success = e\n }\n }\n\n return success\n}\n\n/**\n * This function add a tooltip looking\n *\n * @type {object} object with property\n * @property {string} value any value\n * @property {string} label any additional label that gets added as a suffix\n * @property {number} timeout how long the tooltip should be visible (3 sec)\n * @returns {object} { run, hide, remove } call the \"run\" function when the effect should be shown\n */\nexport function showSelectionNotice({ value, label, timeout = 3e3 }) {\n const id = 'id-' + slugify(value)\n if (typeof document !== 'undefined' && document.getElementById(id)) {\n return { run: () => {} }\n }\n\n let elem, content, root\n\n try {\n root = document.querySelector('.dnb-tooltip__portal, body')\n\n // create that portal element\n elem = document.createElement('span')\n elem.setAttribute('id', id)\n elem.setAttribute('class', 'dnb-tooltip')\n elem.setAttribute('role', 'tooltip')\n\n const arrow = document.createElement('span')\n arrow.setAttribute(\n 'class',\n 'dnb-tooltip__arrow dnb-tooltip__arrow__position--top'\n )\n content = document.createElement('span')\n content.setAttribute('class', 'dnb-tooltip__content')\n content.setAttribute('aria-live', 'assertive')\n elem.appendChild(arrow)\n elem.appendChild(content)\n } catch (e) {\n warn(e)\n }\n\n return new (class SelectionFx {\n remove() {\n try {\n root.removeChild(elem)\n elem = null\n content = null\n } catch (e) {\n //\n }\n }\n hide() {\n try {\n elem.classList.add('dnb-tooltip--hide')\n } catch (e) {\n //\n }\n }\n run(pE = getSelectedElement()) {\n try {\n root.appendChild(elem)\n\n const top = getOffsetTop(pE)\n const left = getOffsetLeft(pE)\n\n content.innerHTML =\n String(label) +\n (pE instanceof HTMLElement\n ? `<span class=\"dnb-sr-only\">: ${\n (\n (pE &&\n pE.querySelector('.dnb-number-format__selection')) ||\n pE\n ).innerHTML\n }</span>`\n : '')\n\n const width =\n (\n (pE && pE.querySelector('.dnb-number-format__visible')) ||\n pE ||\n {}\n ).offsetWidth || 0\n\n elem.style.top = `${top - elem.offsetHeight}px`\n elem.style.left = `${left + width / 2 - elem.offsetWidth / 2}px`\n elem.classList.add('dnb-tooltip--active')\n\n setTimeout(this.hide, timeout)\n setTimeout(this.remove, timeout + 600)\n } catch (e) {\n warn(e)\n }\n }\n })()\n}\n\n/**\n * React Hook\n * It returns \"copyWithEffect\" but with a translated string\n *\n * @returns copyWithEffect function inside object { copy }\n */\nexport function useCopyWithNotice() {\n const {\n translation: {\n NumberFormat: { clipboard_copy },\n },\n } = React.useContext(Context)\n\n const copy = (value, positionElement) => {\n copyWithEffect(value, clipboard_copy, positionElement)\n }\n\n return { copy }\n}\n\n/**\n * Will return currency display value based on navigator/browser and locale\n *\n * @property {string} currencyDisplay (optional) code, name, symbol or narrowSymbol\n * @property {string} locale (optional) the locale to use, defaults to nb-NO\n * @returns {string} a separator symbol\n */\nexport function getFallbackCurrencyDisplay(\n locale = null,\n currencyDisplay = null\n) {\n // If currencyDisplay is not defined and locale is \"no\", use narrowSymbol\n if (!currencyDisplay && (!locale || /(no|nb|nn)$/i.test(locale))) {\n currencyDisplay = 'narrowSymbol'\n }\n\n return currencyDisplay || CURRENCY_DISPLAY // code, name, symbol\n}\n\n/**\n * This function returns a decimal separator symbol based on the given locale\n *\n * @property {string} locale (optional) the locale to use, defaults to nb-NO\n * @returns {string} a separator symbol\n */\nexport function getDecimalSeparator(locale = null) {\n const separator =\n formatToParts({\n number: 1.1,\n locale,\n }).find(({ type }) => type === 'decimal')?.value || ',' // defaults to nb-NO\n\n return separator\n}\n\n/**\n * This function returns a thousands separator symbol based on the given locale\n *\n * @property {string} locale (optional) the locale to use, defaults to nb-NO\n * @returns {string} a separator symbol\n */\nexport function getThousandsSeparator(locale = null) {\n const formatter = getGroupFormatter(locale)\n\n return (\n formatToParts({\n number: 1000,\n locale,\n })\n .map(formatter)\n .find(({ type }) => type === 'group')?.value || ' '\n ) // defaults to nb-NO\n}\n\n/**\n * This function returns a currency symbol based on the given locale\n *\n * @property {string} locale (optional) the locale to use, defaults to nb-NO\n * @property {string} currency (optional) a given currency\n * @property {string} display (optional) what currency display\n * @property {number} number (optional) only to define if it should be formatted in singular or plural\n * @returns {string} a currency symbol\n */\nexport function getCurrencySymbol(\n locale = null,\n currency = null,\n display = null,\n number = 2\n) {\n if (!currency) {\n currency = CURRENCY\n }\n\n const currencyDisplay = getFallbackCurrencyDisplay(locale, display)\n\n return alignCurrencySymbol(\n formatToParts({\n number,\n locale,\n options: {\n style: 'currency',\n currency,\n currencyDisplay,\n },\n }).find(({ type }) => type === 'currency')?.value || currency,\n currencyDisplay\n )\n}\n\nfunction getGroupFormatter(\n locale = null,\n separatorSymbol = null,\n existingFormatter = null\n) {\n /**\n * We change the thousand separator to be a non-breaking space\n *\n * Effected locales:\n * - en-GB\n * - en\n */\n if (locale && /(en|gb)$/i.test(locale)) {\n separatorSymbol = ' ' // non-breaking space\n }\n\n return (item) => {\n // Ensure we do not overwrite a given formatter, but run it as well\n if (typeof existingFormatter === 'function') {\n item = existingFormatter(item)\n }\n\n if (item.type === 'group') {\n item.value = separatorSymbol || item.value\n }\n\n return item\n }\n}\n\n/**\n * For internal usage\n *\n * @type {object}\n * @property {string} number - a number\n * @property {string} locale - locale as a string. Defaults to the global LOCALE constant\n * @property {object} options - NumberFormat options\n * @returns {array} that contains all the parts of the given number [{ value: x, type: 'type' }]\n */\nfunction formatToParts({ number, locale = null, options = null }) {\n if (\n typeof Intl !== 'undefined' &&\n typeof Intl.NumberFormat === 'function'\n ) {\n try {\n const inst = Intl.NumberFormat(locale || LOCALE, options || {})\n if (typeof inst.formatToParts === 'function') {\n return inst.formatToParts(number)\n } else {\n return [{ value: inst.format(number) }]\n }\n } catch (e) {\n warn(e)\n }\n }\n\n return [{ value: number }]\n}\n\n/**\n * Helper for getting a consistent compact format\n * Mutates a given \"opts\" object.\n *\n * @param {object}\n * @property {string} value any number\n * @property {string} locale a given locale\n * @property {string|boolean} compact \"short\" or \"long\" if true is given, \"short\" is used\n * @property {number} decimals the amount of decimals\n * @property {object} opts the options object – it gets mutated\n */\nfunction handleCompactBeforeDisplay({\n value,\n locale,\n compact,\n decimals = 0,\n opts,\n} = {}) {\n if (!canHandleCompact({ value, compact })) {\n return // stop here\n }\n\n value = parseInt(Math.abs(value))\n opts.notation = 'compact'\n\n // For numbers under 1M we do\n if (isTrue(compact) && locale && /(no|nb|nn)$/i.test(locale)) {\n opts.compactDisplay = Math.abs(value) < 1000000 ? 'long' : 'short'\n } else {\n opts.compactDisplay = !isTrue(compact) ? compact : 'short'\n }\n\n if (typeof opts.maximumSignificantDigits === 'undefined') {\n if (isNaN(parseFloat(decimals))) {\n decimals = 0\n } else {\n decimals = parseFloat(decimals)\n }\n\n // This formula ensures we always get the same amount decimals\n const ref = String(value).length % 3\n if (ref === 2) {\n decimals += 1\n } else if (ref === 0) {\n decimals += 2\n }\n\n // The result of this formula would be equal to this:\n // if (value >= 100000000000000) {\n // decimals += 2\n // } else if (value >= 10000000000000) {\n // decimals += 1\n // } else if (value >= 1000000000000) {\n // decimals += 0\n // } else if (value >= 100000000000) {\n // decimals += 2\n // } else if (value >= 10000000000) {\n // decimals += 1\n // } else if (value >= 1000000000) {\n // decimals += 0\n // } else if (value >= 100000000) {\n // decimals += 2\n // } else if (value >= 10000000) {\n // decimals += 1\n // } else if (value >= 1000000) {\n // decimals += 0\n // } else if (value >= 100000) {\n // decimals += 2\n // } else if (value >= 10000) {\n // decimals += 1\n // }\n\n // Firefox issue?\n // If we do not define \"maximumSignificantDigits\" Firefox does not show any decimals at all\n opts.maximumSignificantDigits = decimals + 1\n }\n}\n\n/**\n * Helper for getting a consistent compact format\n * Mutates a given \"opts\" object.\n *\n * @param {object}\n * @property {string|boolean} compact \"short\" or \"long\" if true is given, \"short\" is used\n * @property {object} opts the options object – it gets mutated\n */\nfunction handleCompactBeforeAria({ value, compact, opts }) {\n if (!canHandleCompact({ value, compact })) {\n return // stop here\n }\n\n opts.compactDisplay = 'long'\n}\n\n/**\n * Checks if we should/can handle the compact format\n *\n * @param {object}\n * @property {string|number} value any number\n * @property {string|boolean} compact \"short\" or \"long\" if true is given, \"short\" is used\n */\nfunction canHandleCompact({ value, compact }) {\n if (compact && Math.abs(value) >= 1000) {\n return true\n }\n\n return false\n}\n\n/**\n * Rounds the number to the nearest even number\n *\n * @param {number} num the number to round\n * @param {number} decimalPlaces the number of decimal places to round to\n * @returns {number} the rounded number\n */\nexport function roundHalfEven(num, decimalPlaces = 2) {\n const multiplier = Math.pow(10, decimalPlaces)\n const adjustedNum = num * multiplier\n const floored = Math.floor(adjustedNum)\n const diff = adjustedNum - floored\n\n if (diff > 0.5) {\n return Math.ceil(adjustedNum) / multiplier\n } else if (diff < 0.5) {\n return Math.floor(adjustedNum) / multiplier\n }\n\n // If exactly halfway, round to the nearest even number\n return floored % 2 === 0\n ? floored / multiplier\n : Math.ceil(adjustedNum) / multiplier\n}\n"],"mappings":"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"}
@@ -208,10 +208,21 @@ html[data-whatinput=keyboard] .dnb-radio__focus {
208
208
  flex-grow: 1;
209
209
  }
210
210
  .dnb-radio-group fieldset {
211
- margin: 0;
212
211
  padding: 0;
213
212
  border: none;
214
213
  }
214
+ .dnb-radio-group fieldset:not([class*=space__top]) {
215
+ margin-top: 0;
216
+ }
217
+ .dnb-radio-group fieldset:not([class*=space__right]) {
218
+ margin-right: 0;
219
+ }
220
+ .dnb-radio-group fieldset:not([class*=space__bottom]) {
221
+ margin-bottom: 0;
222
+ }
223
+ .dnb-radio-group fieldset:not([class*=space__left]) {
224
+ margin-left: 0;
225
+ }
215
226
  .dnb-radio-group--column .dnb-radio {
216
227
  display: flex;
217
228
  margin-right: 0;
@@ -1 +1 @@
1
- :root{--radio-width--medium:1.5rem;--radio-height--medium:1.5rem}.dnb-radio{--radio-dot--medium:0.75rem;--radio-dot--large:1.125rem;--radio-width--large:2rem;--radio-height--large:2rem;--radio-border-width:0.09375rem;--radio-color-dot-on:#000;--radio-color-background-on:#fff;--radio-color-border-on:#000;--radio-color-background-off:#fff;--radio-color-border-off:#000;--radio-border-width--disabled:0.125rem;--radio-color-dot-on--disabled:#d3d3d3;--radio-color-background--disabled:#fff;--radio-color-border-on--disabled:#d3d3d3;--radio-color-border-off--disabled:#d3d3d3;--radio-color-dot-on--active:#d3d3d3;--radio-color-border-on--active:#d3d3d3;--radio-color-background-off--active:#d3d3d3;--radio-color-border-off--active:transparent;--radio-border-width--hover:0.125rem;--radio-border-width-on--hover:0.125rem;--radio-color-dot-on--hover:#d3d3d3;--radio-color-background-on--hover:#d3d3d3;--radio-color-background-off--hover:#d3d3d3;--radio-border-width--focus:0.125rem;--radio-color-background-on--focus:var(--color-white);--radio-color-background-off--focus:#d3d3d3;--radio-color-dot-on--error:red;--radio-color-border-on--error:red;--radio-color-border--error-hover:red;--radio-color-background-off--error-hover:#fff0f5;--radio-color-background-on--error-hover:#fff0f5;--radio-color-dot-on--error-hover:#fff0f5;--radio-focus-ring-width--error:var(--focus-ring-width);--radio-bounding--medium:1.75,1.5;--radio-bounding--large:1.25,1.12;font-size:var(--font-size-small);line-height:var(--line-height-basis)}.dnb-radio,.dnb-radio__inner{display:inline-flex;flex-direction:column}.dnb-radio__inner{align-self:center}.dnb-radio__shell{align-items:center;display:flex;flex-shrink:0;height:var(--radio-height--medium);justify-content:center;position:relative;-webkit-user-select:none;user-select:none;width:var(--radio-width--medium)}.dnb-radio__button,.dnb-radio__dot,.dnb-radio__focus{position:absolute;z-index:4}.dnb-radio__button{border:var(--radio-border-width) solid transparent}.dnb-radio__focus{display:none;outline:none}html[data-whatinput=keyboard] .dnb-radio__focus{--border-color:var(--focus-ring-color);--border-width:var(--focus-ring-width);border-color:transparent;box-shadow:0 0 0 var(--border-width) var(--border-color)}.dnb-radio__button,.dnb-radio__focus{border-radius:50%;height:calc(var(--radio-height--medium) - .25rem);width:calc(var(--radio-width--medium) - .25rem)}.dnb-radio--large .dnb-radio__button,.dnb-radio--large .dnb-radio__focus{height:var(--radio-height--large);width:var(--radio-width--large)}.dnb-radio__dot{background-color:var(--radio-color-dot-on);border-radius:50%;height:var(--radio-dot--medium);transition:opacity .2s ease-out,transform .2s ease-out;width:var(--radio-dot--medium)}.dnb-radio--large .dnb-radio__dot{height:var(--radio-dot--large);width:var(--radio-dot--large)}.dnb-radio__input{border:0;height:var(--radio-height--medium);left:auto;margin:0;opacity:0;padding:0;position:absolute;top:auto;transform:scale(var(--radio-bounding--medium));width:var(--radio-width--medium);z-index:5}.dnb-radio--large .dnb-radio__input{height:var(--radio-height--large);transform:scale(var(--radio-bounding--large));width:var(--radio-width--large)}.dnb-radio__input:not([disabled]){cursor:pointer}.dnb-radio__order{align-items:baseline;display:inline-flex}.dnb-radio-group--column .dnb-radio__order{display:flex}.dnb-radio__row{display:inline-flex}.dnb-radio__suffix{order:3}.dnb-radio__suffix .dnb-modal__trigger{margin-bottom:-.25rem;margin-top:-.25rem}.dnb-radio-group__suffix{font-size:var(--font-size-basis)}.dnb-radio--large,.dnb-radio--large .dnb-radio__suffix{line-height:var(--radio-height--large)}.dnb-radio--large .dnb-radio__shell{height:var(--radio-height--large);width:var(--radio-width--large)}.dnb-radio .dnb-form-label{margin-bottom:0;margin-left:0;margin-right:0}.dnb-radio--label-position-left .dnb-radio__order .dnb-radio__inner{order:2}.dnb-radio--label-position-left .dnb-radio__order .dnb-form-label{order:1;padding-right:.5rem}.dnb-radio--label-position-right .dnb-radio__order .dnb-radio__inner{order:1}.dnb-radio--label-position-right .dnb-radio__order .dnb-form-label{order:2;padding-left:.5rem}:not(.dnb-radio-group)>.dnb-form-label+.dnb-radio{vertical-align:top}.dnb-radio .dnb-form-status{margin-bottom:0;margin-top:.375rem;order:4}.dnb-radio+.dnb-form-status{margin-bottom:1rem;margin-top:.5rem}.dnb-radio>.dnb-form-status{transform:translateY(.25rem)}.dnb-radio-group{--radio-group-row-gap:0.5rem;--radio-group-column-gap:1rem;display:inline-flex}.dnb-radio-group,.dnb-radio-group__fieldset,.dnb-radio-group__shell{flex-grow:1}.dnb-radio-group fieldset{border:none;margin:0;padding:0}.dnb-radio-group--column .dnb-radio{display:flex;margin-right:0}.dnb-radio-group .dnb-radio:last-of-type{margin-right:0}.dnb-radio-group [role=radiogroup],.dnb-radio-group__shell{-moz-column-gap:var(--radio-group-column-gap);column-gap:var(--radio-group-column-gap);display:flex;flex-wrap:wrap;row-gap:var(--radio-group-row-gap)}.dnb-radio-group__shell>.dnb-form-status{margin-bottom:0;margin-top:0}.dnb-radio-group--column .dnb-radio-group__shell{flex-direction:column}.dnb-radio__input:checked~.dnb-radio__button,.dnb-radio__input[data-checked=true]~.dnb-radio__button{background-color:var(--radio-color-background-on);border-color:var(--radio-color-border-on)}.dnb-radio__input:checked~.dnb-radio__dot,.dnb-radio__input[data-checked=true]~.dnb-radio__dot{opacity:1;transform:scale(1)}.dnb-radio__input:not(:checked):not([data-checked=true])~.dnb-radio__dot{opacity:0;transform:scale(.8)}.dnb-radio__input:not(:checked):not([data-checked=true])~.dnb-radio__button{background-color:var(--radio-color-background-off);border-color:var(--radio-color-border-off)}.dnb-radio__input[disabled]~.dnb-radio__button{border-width:var(--radio-border-width--disabled)}.dnb-radio__input[disabled]:checked~.dnb-radio__button,.dnb-radio__input[disabled][data-checked=true]~.dnb-radio__button{background-color:var(--radio-color-background--disabled);border-color:var(--radio-color-border-on--disabled)}.dnb-radio__input[disabled]:checked~.dnb-radio__dot,.dnb-radio__input[disabled][data-checked=true]~.dnb-radio__dot{background-color:var(--radio-color-dot-on--disabled)}.dnb-radio__input[disabled]:not(:checked):not([data-checked=true])~.dnb-radio__button:not(.dnb-skeleton){background-color:var(--radio-color-background--disabled);border-color:var(--radio-color-border-off--disabled)}.dnb-radio__input[disabled]~.dnb-radio__button.dnb-skeleton{border-color:var(--skeleton-color)}.dnb-radio__input[disabled]~.dnb-radio__button.dnb-skeleton:before{border-radius:0}.dnb-radio__input:not([disabled]):checked:active~.dnb-radio__button,.dnb-radio__input:not([disabled])[data-checked=true]:active~.dnb-radio__button{border-color:var(--radio-color-border-on--active)}.dnb-radio__input:not([disabled]):checked:active~.dnb-radio__dot,.dnb-radio__input:not([disabled])[data-checked=true]:active~.dnb-radio__dot{background-color:var(--radio-color-dot-on--active)}.dnb-radio__input:not([disabled]):not(:checked):not([data-checked=true]):active~.dnb-radio__button{background-color:var(--radio-color-background-off--active);border-color:var(--radio-color-border-off--active)}.dnb-radio__input:not([disabled]):not(:focus):checked:hover~.dnb-radio__dot,.dnb-radio__input:not([disabled]):not(:focus)[data-checked=true]:hover~.dnb-radio__dot{background-color:var(--radio-color-dot-on--hover)}.dnb-radio__input:not([disabled]):not(:focus):checked:hover~.dnb-radio__button,.dnb-radio__input:not([disabled]):not(:focus)[data-checked=true]:hover~.dnb-radio__button{background-color:var(--radio-color-background-on--hover);border-width:var(--radio-border-width-on--hover)}.dnb-radio__input:not([disabled]):not(:focus):not(:checked):not([data-checked=true]):hover~.dnb-radio__button{background-color:var(--radio-color-background-off--hover);border-width:var(--radio-border-width--hover)}html[data-whatinput=keyboard] .dnb-radio__input:not([disabled]):focus~.dnb-radio__button{border:none}.dnb-radio__input:not([disabled]):active~.dnb-radio__focus,.dnb-radio__input:not([disabled]):focus~.dnb-radio__focus{display:block}html[data-whatinput=keyboard] .dnb-radio__input:not([disabled]):not(:active):not(:hover):checked:focus~.dnb-radio__button,html[data-whatinput=keyboard] .dnb-radio__input:not([disabled]):not(:active):not(:hover)[data-checked=true]:focus~.dnb-radio__button{background-color:var(--radio-color-background-on--focus)}html[data-whatinput=keyboard] .dnb-radio__input:not([disabled]):not(:active):not(:hover):checked:focus~.dnb-radio__dot,html[data-whatinput=keyboard] .dnb-radio__input:not([disabled]):not(:active):not(:hover)[data-checked=true]:focus~.dnb-radio__dot{background-color:var(--radio-color-dot-on--focus,var(--focus-ring-color))}html[data-whatinput=keyboard] .dnb-radio__input:not([disabled]):not(:checked):not([data-checked=true]):focus~.dnb-radio__button{background-color:var(--radio-color-background-off--focus)}.dnb-radio__status--error .dnb-radio__input:not([disabled]):not(:focus):not(:active)~.dnb-radio__button{border:none}.dnb-radio__status--error .dnb-radio__input:not([disabled]):not(:focus):not(:active)~.dnb-radio__focus{--border-color:var(--radio-color-border-on--error);--border-width:var(--radio-focus-ring-width--error);border-color:transparent;box-shadow:0 0 0 var(--border-width) var(--border-color);display:block}.dnb-radio__status--error .dnb-radio__input:not([disabled]):not(:focus):not(:active):hover~.dnb-radio__focus{--border-color:var(--radio-color-border--error-hover);--border-width:var(--radio-focus-ring-width--error);border-color:transparent;box-shadow:0 0 0 var(--border-width) var(--border-color)}.dnb-radio__status--error .dnb-radio__input:not([disabled]):not(:focus):not(:active):not(:hover):checked~.dnb-radio__dot,.dnb-radio__status--error .dnb-radio__input:not([disabled]):not(:focus):not(:active):not(:hover)[data-checked=true]~.dnb-radio__dot{background-color:var(--radio-color-dot-on--error)}.dnb-radio__status--error .dnb-radio__input:not([disabled]):not(:focus):not(:active):checked:hover~.dnb-radio__dot,.dnb-radio__status--error .dnb-radio__input:not([disabled]):not(:focus):not(:active)[data-checked=true]:hover~.dnb-radio__dot{background-color:var(--radio-color-dot-on--error-hover)}.dnb-radio__status--error .dnb-radio__input:not([disabled]):not(:focus):not(:active):checked:hover~.dnb-radio__button,.dnb-radio__status--error .dnb-radio__input:not([disabled]):not(:focus):not(:active)[data-checked=true]:hover~.dnb-radio__button{background-color:var(--radio-color-background-on--error-hover)}.dnb-radio__status--error .dnb-radio__input:not([disabled]):not(:focus):not(:checked):not([data-checked=true]):hover~.dnb-radio__button{background-color:var(--radio-color-background-off--error-hover)}
1
+ :root{--radio-width--medium:1.5rem;--radio-height--medium:1.5rem}.dnb-radio{--radio-dot--medium:0.75rem;--radio-dot--large:1.125rem;--radio-width--large:2rem;--radio-height--large:2rem;--radio-border-width:0.09375rem;--radio-color-dot-on:#000;--radio-color-background-on:#fff;--radio-color-border-on:#000;--radio-color-background-off:#fff;--radio-color-border-off:#000;--radio-border-width--disabled:0.125rem;--radio-color-dot-on--disabled:#d3d3d3;--radio-color-background--disabled:#fff;--radio-color-border-on--disabled:#d3d3d3;--radio-color-border-off--disabled:#d3d3d3;--radio-color-dot-on--active:#d3d3d3;--radio-color-border-on--active:#d3d3d3;--radio-color-background-off--active:#d3d3d3;--radio-color-border-off--active:transparent;--radio-border-width--hover:0.125rem;--radio-border-width-on--hover:0.125rem;--radio-color-dot-on--hover:#d3d3d3;--radio-color-background-on--hover:#d3d3d3;--radio-color-background-off--hover:#d3d3d3;--radio-border-width--focus:0.125rem;--radio-color-background-on--focus:var(--color-white);--radio-color-background-off--focus:#d3d3d3;--radio-color-dot-on--error:red;--radio-color-border-on--error:red;--radio-color-border--error-hover:red;--radio-color-background-off--error-hover:#fff0f5;--radio-color-background-on--error-hover:#fff0f5;--radio-color-dot-on--error-hover:#fff0f5;--radio-focus-ring-width--error:var(--focus-ring-width);--radio-bounding--medium:1.75,1.5;--radio-bounding--large:1.25,1.12;font-size:var(--font-size-small);line-height:var(--line-height-basis)}.dnb-radio,.dnb-radio__inner{display:inline-flex;flex-direction:column}.dnb-radio__inner{align-self:center}.dnb-radio__shell{align-items:center;display:flex;flex-shrink:0;height:var(--radio-height--medium);justify-content:center;position:relative;-webkit-user-select:none;user-select:none;width:var(--radio-width--medium)}.dnb-radio__button,.dnb-radio__dot,.dnb-radio__focus{position:absolute;z-index:4}.dnb-radio__button{border:var(--radio-border-width) solid transparent}.dnb-radio__focus{display:none;outline:none}html[data-whatinput=keyboard] .dnb-radio__focus{--border-color:var(--focus-ring-color);--border-width:var(--focus-ring-width);border-color:transparent;box-shadow:0 0 0 var(--border-width) var(--border-color)}.dnb-radio__button,.dnb-radio__focus{border-radius:50%;height:calc(var(--radio-height--medium) - .25rem);width:calc(var(--radio-width--medium) - .25rem)}.dnb-radio--large .dnb-radio__button,.dnb-radio--large .dnb-radio__focus{height:var(--radio-height--large);width:var(--radio-width--large)}.dnb-radio__dot{background-color:var(--radio-color-dot-on);border-radius:50%;height:var(--radio-dot--medium);transition:opacity .2s ease-out,transform .2s ease-out;width:var(--radio-dot--medium)}.dnb-radio--large .dnb-radio__dot{height:var(--radio-dot--large);width:var(--radio-dot--large)}.dnb-radio__input{border:0;height:var(--radio-height--medium);left:auto;margin:0;opacity:0;padding:0;position:absolute;top:auto;transform:scale(var(--radio-bounding--medium));width:var(--radio-width--medium);z-index:5}.dnb-radio--large .dnb-radio__input{height:var(--radio-height--large);transform:scale(var(--radio-bounding--large));width:var(--radio-width--large)}.dnb-radio__input:not([disabled]){cursor:pointer}.dnb-radio__order{align-items:baseline;display:inline-flex}.dnb-radio-group--column .dnb-radio__order{display:flex}.dnb-radio__row{display:inline-flex}.dnb-radio__suffix{order:3}.dnb-radio__suffix .dnb-modal__trigger{margin-bottom:-.25rem;margin-top:-.25rem}.dnb-radio-group__suffix{font-size:var(--font-size-basis)}.dnb-radio--large,.dnb-radio--large .dnb-radio__suffix{line-height:var(--radio-height--large)}.dnb-radio--large .dnb-radio__shell{height:var(--radio-height--large);width:var(--radio-width--large)}.dnb-radio .dnb-form-label{margin-bottom:0;margin-left:0;margin-right:0}.dnb-radio--label-position-left .dnb-radio__order .dnb-radio__inner{order:2}.dnb-radio--label-position-left .dnb-radio__order .dnb-form-label{order:1;padding-right:.5rem}.dnb-radio--label-position-right .dnb-radio__order .dnb-radio__inner{order:1}.dnb-radio--label-position-right .dnb-radio__order .dnb-form-label{order:2;padding-left:.5rem}:not(.dnb-radio-group)>.dnb-form-label+.dnb-radio{vertical-align:top}.dnb-radio .dnb-form-status{margin-bottom:0;margin-top:.375rem;order:4}.dnb-radio+.dnb-form-status{margin-bottom:1rem;margin-top:.5rem}.dnb-radio>.dnb-form-status{transform:translateY(.25rem)}.dnb-radio-group{--radio-group-row-gap:0.5rem;--radio-group-column-gap:1rem;display:inline-flex}.dnb-radio-group,.dnb-radio-group__fieldset,.dnb-radio-group__shell{flex-grow:1}.dnb-radio-group fieldset{border:none;padding:0}.dnb-radio-group fieldset:not([class*=space__top]){margin-top:0}.dnb-radio-group fieldset:not([class*=space__right]){margin-right:0}.dnb-radio-group fieldset:not([class*=space__bottom]){margin-bottom:0}.dnb-radio-group fieldset:not([class*=space__left]){margin-left:0}.dnb-radio-group--column .dnb-radio{display:flex;margin-right:0}.dnb-radio-group .dnb-radio:last-of-type{margin-right:0}.dnb-radio-group [role=radiogroup],.dnb-radio-group__shell{-moz-column-gap:var(--radio-group-column-gap);column-gap:var(--radio-group-column-gap);display:flex;flex-wrap:wrap;row-gap:var(--radio-group-row-gap)}.dnb-radio-group__shell>.dnb-form-status{margin-bottom:0;margin-top:0}.dnb-radio-group--column .dnb-radio-group__shell{flex-direction:column}.dnb-radio__input:checked~.dnb-radio__button,.dnb-radio__input[data-checked=true]~.dnb-radio__button{background-color:var(--radio-color-background-on);border-color:var(--radio-color-border-on)}.dnb-radio__input:checked~.dnb-radio__dot,.dnb-radio__input[data-checked=true]~.dnb-radio__dot{opacity:1;transform:scale(1)}.dnb-radio__input:not(:checked):not([data-checked=true])~.dnb-radio__dot{opacity:0;transform:scale(.8)}.dnb-radio__input:not(:checked):not([data-checked=true])~.dnb-radio__button{background-color:var(--radio-color-background-off);border-color:var(--radio-color-border-off)}.dnb-radio__input[disabled]~.dnb-radio__button{border-width:var(--radio-border-width--disabled)}.dnb-radio__input[disabled]:checked~.dnb-radio__button,.dnb-radio__input[disabled][data-checked=true]~.dnb-radio__button{background-color:var(--radio-color-background--disabled);border-color:var(--radio-color-border-on--disabled)}.dnb-radio__input[disabled]:checked~.dnb-radio__dot,.dnb-radio__input[disabled][data-checked=true]~.dnb-radio__dot{background-color:var(--radio-color-dot-on--disabled)}.dnb-radio__input[disabled]:not(:checked):not([data-checked=true])~.dnb-radio__button:not(.dnb-skeleton){background-color:var(--radio-color-background--disabled);border-color:var(--radio-color-border-off--disabled)}.dnb-radio__input[disabled]~.dnb-radio__button.dnb-skeleton{border-color:var(--skeleton-color)}.dnb-radio__input[disabled]~.dnb-radio__button.dnb-skeleton:before{border-radius:0}.dnb-radio__input:not([disabled]):checked:active~.dnb-radio__button,.dnb-radio__input:not([disabled])[data-checked=true]:active~.dnb-radio__button{border-color:var(--radio-color-border-on--active)}.dnb-radio__input:not([disabled]):checked:active~.dnb-radio__dot,.dnb-radio__input:not([disabled])[data-checked=true]:active~.dnb-radio__dot{background-color:var(--radio-color-dot-on--active)}.dnb-radio__input:not([disabled]):not(:checked):not([data-checked=true]):active~.dnb-radio__button{background-color:var(--radio-color-background-off--active);border-color:var(--radio-color-border-off--active)}.dnb-radio__input:not([disabled]):not(:focus):checked:hover~.dnb-radio__dot,.dnb-radio__input:not([disabled]):not(:focus)[data-checked=true]:hover~.dnb-radio__dot{background-color:var(--radio-color-dot-on--hover)}.dnb-radio__input:not([disabled]):not(:focus):checked:hover~.dnb-radio__button,.dnb-radio__input:not([disabled]):not(:focus)[data-checked=true]:hover~.dnb-radio__button{background-color:var(--radio-color-background-on--hover);border-width:var(--radio-border-width-on--hover)}.dnb-radio__input:not([disabled]):not(:focus):not(:checked):not([data-checked=true]):hover~.dnb-radio__button{background-color:var(--radio-color-background-off--hover);border-width:var(--radio-border-width--hover)}html[data-whatinput=keyboard] .dnb-radio__input:not([disabled]):focus~.dnb-radio__button{border:none}.dnb-radio__input:not([disabled]):active~.dnb-radio__focus,.dnb-radio__input:not([disabled]):focus~.dnb-radio__focus{display:block}html[data-whatinput=keyboard] .dnb-radio__input:not([disabled]):not(:active):not(:hover):checked:focus~.dnb-radio__button,html[data-whatinput=keyboard] .dnb-radio__input:not([disabled]):not(:active):not(:hover)[data-checked=true]:focus~.dnb-radio__button{background-color:var(--radio-color-background-on--focus)}html[data-whatinput=keyboard] .dnb-radio__input:not([disabled]):not(:active):not(:hover):checked:focus~.dnb-radio__dot,html[data-whatinput=keyboard] .dnb-radio__input:not([disabled]):not(:active):not(:hover)[data-checked=true]:focus~.dnb-radio__dot{background-color:var(--radio-color-dot-on--focus,var(--focus-ring-color))}html[data-whatinput=keyboard] .dnb-radio__input:not([disabled]):not(:checked):not([data-checked=true]):focus~.dnb-radio__button{background-color:var(--radio-color-background-off--focus)}.dnb-radio__status--error .dnb-radio__input:not([disabled]):not(:focus):not(:active)~.dnb-radio__button{border:none}.dnb-radio__status--error .dnb-radio__input:not([disabled]):not(:focus):not(:active)~.dnb-radio__focus{--border-color:var(--radio-color-border-on--error);--border-width:var(--radio-focus-ring-width--error);border-color:transparent;box-shadow:0 0 0 var(--border-width) var(--border-color);display:block}.dnb-radio__status--error .dnb-radio__input:not([disabled]):not(:focus):not(:active):hover~.dnb-radio__focus{--border-color:var(--radio-color-border--error-hover);--border-width:var(--radio-focus-ring-width--error);border-color:transparent;box-shadow:0 0 0 var(--border-width) var(--border-color)}.dnb-radio__status--error .dnb-radio__input:not([disabled]):not(:focus):not(:active):not(:hover):checked~.dnb-radio__dot,.dnb-radio__status--error .dnb-radio__input:not([disabled]):not(:focus):not(:active):not(:hover)[data-checked=true]~.dnb-radio__dot{background-color:var(--radio-color-dot-on--error)}.dnb-radio__status--error .dnb-radio__input:not([disabled]):not(:focus):not(:active):checked:hover~.dnb-radio__dot,.dnb-radio__status--error .dnb-radio__input:not([disabled]):not(:focus):not(:active)[data-checked=true]:hover~.dnb-radio__dot{background-color:var(--radio-color-dot-on--error-hover)}.dnb-radio__status--error .dnb-radio__input:not([disabled]):not(:focus):not(:active):checked:hover~.dnb-radio__button,.dnb-radio__status--error .dnb-radio__input:not([disabled]):not(:focus):not(:active)[data-checked=true]:hover~.dnb-radio__button{background-color:var(--radio-color-background-on--error-hover)}.dnb-radio__status--error .dnb-radio__input:not([disabled]):not(:focus):not(:checked):not([data-checked=true]):hover~.dnb-radio__button{background-color:var(--radio-color-background-off--error-hover)}
@@ -46,7 +46,7 @@ function StepIndicatorTriggerButton(props) {
46
46
  id: context.sidebar_id + '-overview'
47
47
  }, context.overview_title), React.createElement(FormLabel, {
48
48
  "aria-describedby": context.sidebar_id,
49
- for_id: context.sidebar_id,
49
+ forId: context.sidebar_id,
50
50
  className: "dnb-step-indicator__label"
51
51
  }, label), React.createElement(Button, _extends({}, buttonParams, {
52
52
  id: context.sidebar_id,
@@ -1 +1 @@
1
- {"version":3,"file":"StepIndicatorTriggerButton.js","names":["classnames","React","useContext","useRef","Button","chevron_icon","validateDOMAttributes","combineDescribedBy","HeightAnimation","createSpacingClasses","FormLabel","StepIndicatorContext","StepItemWrapper","skeletonDOMAttributes","createSkeletonClass","StepIndicatorTriggerButton","props","context","buttonRef","inner_ref","item","data","activeStep","label","stepsLabel","contextWithoutData","_objectWithoutProperties","_excluded","triggerParams","_objectSpread","className","skeleton","buttonParams","sidebar_id","Object","keys","forEach","key","filterAttributes","includes","createElement","id","overview_title","for_id","_extends","wrap","stretch","variant","icon","icon_size","icon_position","number","hide_numbers","title"],"sources":["../../../../src/components/step-indicator/StepIndicatorTriggerButton.tsx"],"sourcesContent":["/**\n * Web StepIndicator Component\n *\n */\n\nimport classnames from 'classnames'\nimport React, { useContext, useRef } from 'react'\nimport Button, { ButtonProps } from '../button/Button'\nimport chevron_icon from '../../icons/chevron_right_medium'\nimport {\n validateDOMAttributes,\n combineDescribedBy,\n} from '../../shared/component-helper'\nimport HeightAnimation from '../height-animation/HeightAnimation'\nimport { createSpacingClasses } from '../space/SpacingHelper'\nimport FormLabel from '../form-label/FormLabel'\nimport StepIndicatorContext from './StepIndicatorContext'\nimport { StepItemWrapper } from './StepIndicatorItem'\nimport {\n skeletonDOMAttributes,\n createSkeletonClass,\n} from '../skeleton/SkeletonHelper'\n\nexport type StepIndicatorTriggerButtonProps = ButtonProps & {\n /**\n * <em>(required)</em> a unique string-based ID in order to bind together the main component and the sidebar (`<StepIndicator.Sidebar />`). Both have to get the same ID.\n */\n sidebar_id?: string\n className?: string\n inner_ref?: React.RefObject<HTMLElement>\n}\nfunction StepIndicatorTriggerButton(\n props: StepIndicatorTriggerButtonProps\n) {\n const context = useContext(StepIndicatorContext)\n\n const buttonRef = useRef(props?.inner_ref || null)\n\n const item = context.data[context.activeStep || 0]\n const label = context.stepsLabel\n\n const {\n data, // eslint-disable-line\n ...contextWithoutData\n } = context\n\n const triggerParams = {\n ...contextWithoutData,\n className: classnames(\n 'dnb-step-indicator__trigger',\n createSkeletonClass('font', context.skeleton),\n createSpacingClasses(context)\n ),\n 'aria-live': 'polite',\n } as React.HTMLProps<HTMLElement>\n\n const buttonParams = {\n ...props,\n className: classnames(\n 'dnb-step-indicator__trigger__button',\n props.className\n ),\n }\n\n buttonParams['aria-describedby'] = combineDescribedBy(\n buttonParams,\n context.sidebar_id + '-overview'\n )\n\n Object.keys(triggerParams).forEach((key) => {\n if (context.filterAttributes.includes(key)) {\n delete triggerParams[key]\n }\n })\n\n skeletonDOMAttributes(triggerParams, context.skeleton)\n\n // also used for code markup simulation\n validateDOMAttributes(context, triggerParams)\n\n return (\n <div {...(triggerParams as React.HTMLProps<HTMLDivElement>)}>\n <span className=\"dnb-sr-only\" id={context.sidebar_id + '-overview'}>\n {context.overview_title}\n </span>\n <FormLabel\n aria-describedby={context.sidebar_id}\n for_id={context.sidebar_id}\n className=\"dnb-step-indicator__label\"\n >\n {label}\n </FormLabel>\n <Button\n {...buttonParams}\n id={context.sidebar_id}\n wrap\n stretch\n variant=\"secondary\"\n icon={chevron_icon}\n icon_size=\"medium\"\n icon_position=\"right\"\n inner_ref={buttonRef}\n >\n <StepItemWrapper\n number={(context.activeStep || 0) + 1}\n hide_numbers={context.hide_numbers}\n >\n <HeightAnimation>\n {(typeof item === 'string' ? item : item && item.title) || ''}\n </HeightAnimation>\n </StepItemWrapper>\n </Button>\n </div>\n )\n}\n\nexport default StepIndicatorTriggerButton\n"],"mappings":";;;;;;;;AAKA,OAAOA,UAAU,MAAM,YAAY;AACnC,OAAOC,KAAK,IAAIC,UAAU,EAAEC,MAAM,QAAQ,OAAO;AACjD,OAAOC,MAAM,MAAuB,kBAAkB;AACtD,OAAOC,YAAY,MAAM,kCAAkC;AAC3D,SACEC,qBAAqB,EACrBC,kBAAkB,QACb,+BAA+B;AACtC,OAAOC,eAAe,MAAM,qCAAqC;AACjE,SAASC,oBAAoB,QAAQ,wBAAwB;AAC7D,OAAOC,SAAS,MAAM,yBAAyB;AAC/C,OAAOC,oBAAoB,MAAM,wBAAwB;AACzD,SAASC,eAAe,QAAQ,qBAAqB;AACrD,SACEC,qBAAqB,EACrBC,mBAAmB,QACd,4BAA4B;AAUnC,SAASC,0BAA0BA,CACjCC,KAAsC,EACtC;EACA,MAAMC,OAAO,GAAGf,UAAU,CAACS,oBAAoB,CAAC;EAEhD,MAAMO,SAAS,GAAGf,MAAM,CAAC,CAAAa,KAAK,aAALA,KAAK,uBAALA,KAAK,CAAEG,SAAS,KAAI,IAAI,CAAC;EAElD,MAAMC,IAAI,GAAGH,OAAO,CAACI,IAAI,CAACJ,OAAO,CAACK,UAAU,IAAI,CAAC,CAAC;EAClD,MAAMC,KAAK,GAAGN,OAAO,CAACO,UAAU;EAEhC,MAAM;MACJH;IAEF,CAAC,GAAGJ,OAAO;IADNQ,kBAAkB,GAAAC,wBAAA,CACnBT,OAAO,EAAAU,SAAA;EAEX,MAAMC,aAAa,GAAAC,aAAA,CAAAA,aAAA,KACdJ,kBAAkB;IACrBK,SAAS,EAAE9B,UAAU,CACnB,6BAA6B,EAC7Bc,mBAAmB,CAAC,MAAM,EAAEG,OAAO,CAACc,QAAQ,CAAC,EAC7CtB,oBAAoB,CAACQ,OAAO,CAC9B,CAAC;IACD,WAAW,EAAE;EAAQ,EACU;EAEjC,MAAMe,YAAY,GAAAH,aAAA,CAAAA,aAAA,KACbb,KAAK;IACRc,SAAS,EAAE9B,UAAU,CACnB,qCAAqC,EACrCgB,KAAK,CAACc,SACR;EAAC,EACF;EAEDE,YAAY,CAAC,kBAAkB,CAAC,GAAGzB,kBAAkB,CACnDyB,YAAY,EACZf,OAAO,CAACgB,UAAU,GAAG,WACvB,CAAC;EAEDC,MAAM,CAACC,IAAI,CAACP,aAAa,CAAC,CAACQ,OAAO,CAAEC,GAAG,IAAK;IAC1C,IAAIpB,OAAO,CAACqB,gBAAgB,CAACC,QAAQ,CAACF,GAAG,CAAC,EAAE;MAC1C,OAAOT,aAAa,CAACS,GAAG,CAAC;IAC3B;EACF,CAAC,CAAC;EAEFxB,qBAAqB,CAACe,aAAa,EAAEX,OAAO,CAACc,QAAQ,CAAC;EAGtDzB,qBAAqB,CAACW,OAAO,EAAEW,aAAa,CAAC;EAE7C,OACE3B,KAAA,CAAAuC,aAAA,QAAUZ,aAAa,EACrB3B,KAAA,CAAAuC,aAAA;IAAMV,SAAS,EAAC,aAAa;IAACW,EAAE,EAAExB,OAAO,CAACgB,UAAU,GAAG;EAAY,GAChEhB,OAAO,CAACyB,cACL,CAAC,EACPzC,KAAA,CAAAuC,aAAA,CAAC9B,SAAS;IACR,oBAAkBO,OAAO,CAACgB,UAAW;IACrCU,MAAM,EAAE1B,OAAO,CAACgB,UAAW;IAC3BH,SAAS,EAAC;EAA2B,GAEpCP,KACQ,CAAC,EACZtB,KAAA,CAAAuC,aAAA,CAACpC,MAAM,EAAAwC,QAAA,KACDZ,YAAY;IAChBS,EAAE,EAAExB,OAAO,CAACgB,UAAW;IACvBY,IAAI;IACJC,OAAO;IACPC,OAAO,EAAC,WAAW;IACnBC,IAAI,EAAE3C,YAAa;IACnB4C,SAAS,EAAC,QAAQ;IAClBC,aAAa,EAAC,OAAO;IACrB/B,SAAS,EAAED;EAAU,IAErBjB,KAAA,CAAAuC,aAAA,CAAC5B,eAAe;IACduC,MAAM,EAAE,CAAClC,OAAO,CAACK,UAAU,IAAI,CAAC,IAAI,CAAE;IACtC8B,YAAY,EAAEnC,OAAO,CAACmC;EAAa,GAEnCnD,KAAA,CAAAuC,aAAA,CAAChC,eAAe,QACb,CAAC,OAAOY,IAAI,KAAK,QAAQ,GAAGA,IAAI,GAAGA,IAAI,IAAIA,IAAI,CAACiC,KAAK,KAAK,EAC5C,CACF,CACX,CACL,CAAC;AAEV;AAEA,eAAetC,0BAA0B"}
1
+ {"version":3,"file":"StepIndicatorTriggerButton.js","names":["classnames","React","useContext","useRef","Button","chevron_icon","validateDOMAttributes","combineDescribedBy","HeightAnimation","createSpacingClasses","FormLabel","StepIndicatorContext","StepItemWrapper","skeletonDOMAttributes","createSkeletonClass","StepIndicatorTriggerButton","props","context","buttonRef","inner_ref","item","data","activeStep","label","stepsLabel","contextWithoutData","_objectWithoutProperties","_excluded","triggerParams","_objectSpread","className","skeleton","buttonParams","sidebar_id","Object","keys","forEach","key","filterAttributes","includes","createElement","id","overview_title","forId","_extends","wrap","stretch","variant","icon","icon_size","icon_position","number","hide_numbers","title"],"sources":["../../../../src/components/step-indicator/StepIndicatorTriggerButton.tsx"],"sourcesContent":["/**\n * Web StepIndicator Component\n *\n */\n\nimport classnames from 'classnames'\nimport React, { useContext, useRef } from 'react'\nimport Button, { ButtonProps } from '../button/Button'\nimport chevron_icon from '../../icons/chevron_right_medium'\nimport {\n validateDOMAttributes,\n combineDescribedBy,\n} from '../../shared/component-helper'\nimport HeightAnimation from '../height-animation/HeightAnimation'\nimport { createSpacingClasses } from '../space/SpacingHelper'\nimport FormLabel from '../form-label/FormLabel'\nimport StepIndicatorContext from './StepIndicatorContext'\nimport { StepItemWrapper } from './StepIndicatorItem'\nimport {\n skeletonDOMAttributes,\n createSkeletonClass,\n} from '../skeleton/SkeletonHelper'\n\nexport type StepIndicatorTriggerButtonProps = ButtonProps & {\n /**\n * <em>(required)</em> a unique string-based ID in order to bind together the main component and the sidebar (`<StepIndicator.Sidebar />`). Both have to get the same ID.\n */\n sidebar_id?: string\n className?: string\n inner_ref?: React.RefObject<HTMLElement>\n}\nfunction StepIndicatorTriggerButton(\n props: StepIndicatorTriggerButtonProps\n) {\n const context = useContext(StepIndicatorContext)\n\n const buttonRef = useRef(props?.inner_ref || null)\n\n const item = context.data[context.activeStep || 0]\n const label = context.stepsLabel\n\n const {\n data, // eslint-disable-line\n ...contextWithoutData\n } = context\n\n const triggerParams = {\n ...contextWithoutData,\n className: classnames(\n 'dnb-step-indicator__trigger',\n createSkeletonClass('font', context.skeleton),\n createSpacingClasses(context)\n ),\n 'aria-live': 'polite',\n } as React.HTMLProps<HTMLElement>\n\n const buttonParams = {\n ...props,\n className: classnames(\n 'dnb-step-indicator__trigger__button',\n props.className\n ),\n }\n\n buttonParams['aria-describedby'] = combineDescribedBy(\n buttonParams,\n context.sidebar_id + '-overview'\n )\n\n Object.keys(triggerParams).forEach((key) => {\n if (context.filterAttributes.includes(key)) {\n delete triggerParams[key]\n }\n })\n\n skeletonDOMAttributes(triggerParams, context.skeleton)\n\n // also used for code markup simulation\n validateDOMAttributes(context, triggerParams)\n\n return (\n <div {...(triggerParams as React.HTMLProps<HTMLDivElement>)}>\n <span className=\"dnb-sr-only\" id={context.sidebar_id + '-overview'}>\n {context.overview_title}\n </span>\n <FormLabel\n aria-describedby={context.sidebar_id}\n forId={context.sidebar_id}\n className=\"dnb-step-indicator__label\"\n >\n {label}\n </FormLabel>\n <Button\n {...buttonParams}\n id={context.sidebar_id}\n wrap\n stretch\n variant=\"secondary\"\n icon={chevron_icon}\n icon_size=\"medium\"\n icon_position=\"right\"\n inner_ref={buttonRef}\n >\n <StepItemWrapper\n number={(context.activeStep || 0) + 1}\n hide_numbers={context.hide_numbers}\n >\n <HeightAnimation>\n {(typeof item === 'string' ? item : item && item.title) || ''}\n </HeightAnimation>\n </StepItemWrapper>\n </Button>\n </div>\n )\n}\n\nexport default StepIndicatorTriggerButton\n"],"mappings":"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"}
@@ -302,10 +302,10 @@ export default class Textarea extends React.PureComponent {
302
302
  }
303
303
  return React.createElement("span", mainParams, label && React.createElement(FormLabel, {
304
304
  id: id + '-label',
305
- for_id: id,
305
+ forId: id,
306
306
  text: label,
307
- label_direction: label_direction,
308
- sr_only: label_sr_only,
307
+ labelDirection: label_direction,
308
+ srOnly: label_sr_only,
309
309
  disabled: disabled,
310
310
  skeleton: skeleton
311
311
  }), React.createElement("span", innerParams, _AlignmentHelper || (_AlignmentHelper = React.createElement(AlignmentHelper, null)), React.createElement(FormStatus, _extends({