@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,13 +1,14 @@
1
- import _objectWithoutProperties from "@babel/runtime/helpers/esm/objectWithoutProperties";
1
+ "use client";
2
+
2
3
  import _extends from "@babel/runtime/helpers/esm/extends";
4
+ import _objectWithoutProperties from "@babel/runtime/helpers/esm/objectWithoutProperties";
3
5
  import _defineProperty from "@babel/runtime/helpers/esm/defineProperty";
4
- const _excluded = ["id", "title", "submitAttributes", "isRange", "maskOrder", "maskPlaceholder", "separatorRexExp", "onChange", "onFocus", "onSubmit", "onBlur", "selectedDateTitle", "showInput", "input_element", "locale", "disabled", "skeleton", "opened", "size", "status", "status_state", "status_props"],
5
- _excluded2 = ["className", "value"];
6
6
  var _span;
7
+ const _excluded = ["isRange", "maskOrder", "separatorRexExp", "id", "title", "submitAttributes", "maskPlaceholder", "onFocus", "onBlur", "onChange", "onSubmit", "selectedDateTitle", "showInput", "input_element", "lang", "disabled", "skeleton", "opened", "size", "status", "status_state", "status_props"],
8
+ _excluded2 = ["className", "value"];
7
9
  function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }
8
10
  function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys(Object(source), !0).forEach(function (key) { _defineProperty(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; }
9
- import React from 'react';
10
- import PropTypes from 'prop-types';
11
+ import React, { useCallback, useContext, useMemo, useRef, useState } from 'react';
11
12
  import addDays from 'date-fns/addDays';
12
13
  import addMonths from 'date-fns/addMonths';
13
14
  import addYears from 'date-fns/addYears';
@@ -17,469 +18,526 @@ import classnames from 'classnames';
17
18
  import TextMask from '../input-masked/TextMask';
18
19
  import Button from '../button/Button';
19
20
  import Input, { SubmitButton } from '../input/Input';
20
- import { warn, validateDOMAttributes, dispatchCustomElementEvent, keycode } from '../../shared/component-helper';
21
+ import { warn, validateDOMAttributes } from '../../shared/component-helper';
21
22
  import { convertStringToDate } from './DatePickerCalc';
22
23
  import DatePickerContext from './DatePickerContext';
23
- export default class DatePickerInput extends React.PureComponent {
24
- constructor(props) {
25
- super(props);
26
- _defineProperty(this, "state", {
27
- _listenForPropChanges: true,
28
- focusState: 'virgin',
29
- partialStartDate: '',
30
- partialEndDate: ''
31
- });
32
- _defineProperty(this, "shortcutHandler", async e => {
33
- if (this.focusMode) {
34
- const success = (e.clipboardData || typeof window !== 'undefined' && window.clipboardData).getData('text');
35
- if (success) {
36
- e.preventDefault();
37
- try {
38
- const separators = ['.', '/'];
39
- const possibleFormats = ['yyyy-MM-dd'];
40
- possibleFormats.forEach(date => {
41
- separators.forEach(sep => {
42
- possibleFormats.push(date.replace(/-/g, sep));
43
- });
44
- });
45
- possibleFormats.forEach(date => {
46
- possibleFormats.push(date.split('').reverse().join(''));
47
- });
48
- let date;
49
- for (let i = 0, l = possibleFormats.length; i < l; ++i) {
50
- date = convertStringToDate(success, {
51
- date_format: possibleFormats[i]
52
- });
53
- if (date) {
54
- break;
55
- }
56
- }
57
- const mode = this.focusMode === 'start' ? 'startDate' : 'endDate';
58
- if (date && !this.state[mode]) {
59
- this.context.setState({
60
- [mode]: date
61
- });
62
- }
63
- } catch (e) {
64
- warn(e);
65
- }
66
- }
67
- }
68
- });
69
- _defineProperty(this, "callOnChangeAsInvalid", state => {
70
- this.context.updateState({
71
- hoverDate: null
72
- }, () => {
73
- if (this.context.hasHadValidDate) {
74
- const {
75
- startDate,
76
- endDate,
77
- event
78
- } = _objectSpread(_objectSpread({}, this.context), state);
79
- this.context.callOnChangeHandler({
80
- startDate,
81
- endDate,
82
- event
83
- });
84
- }
85
- });
86
- });
87
- _defineProperty(this, "callOnChange", _ref => {
88
- let {
89
- startDate,
90
- endDate,
91
- event
92
- } = _ref;
93
- const state = {
94
- changeMonthViews: true
95
- };
96
- if (typeof startDate !== 'undefined' && isValid(startDate)) {
97
- state.startDate = startDate;
98
- }
99
- if (!this.props.isRange) {
100
- endDate = startDate;
24
+ import { useTranslation } from '../../shared';
25
+ const defaultProps = {
26
+ maskOrder: 'dd/mm/yyyy',
27
+ maskPlaceholder: 'dd/mm/åååå',
28
+ separatorRexExp: /[-/ ]/g,
29
+ status_state: 'error',
30
+ opened: false
31
+ };
32
+ function DatePickerInput(externalProps) {
33
+ const props = _objectSpread(_objectSpread({}, defaultProps), externalProps);
34
+ const {
35
+ isRange,
36
+ maskOrder,
37
+ separatorRexExp,
38
+ id,
39
+ title,
40
+ submitAttributes,
41
+ maskPlaceholder,
42
+ onFocus,
43
+ onBlur,
44
+ onChange,
45
+ onSubmit,
46
+ selectedDateTitle,
47
+ showInput,
48
+ input_element,
49
+ lang,
50
+ disabled,
51
+ skeleton,
52
+ opened,
53
+ size,
54
+ status,
55
+ status_state,
56
+ status_props
57
+ } = props,
58
+ attributes = _objectWithoutProperties(props, _excluded);
59
+ const [focusState, setFocusState] = useState('virgin');
60
+ const [partialDates, setPartialDates] = useState({
61
+ partialStartDate: '',
62
+ partialEndDate: ''
63
+ });
64
+ const {
65
+ updateDates,
66
+ callOnChangeHandler,
67
+ hasHadValidDate,
68
+ getReturnObject,
69
+ __startDay,
70
+ __startMonth,
71
+ __startYear,
72
+ __endDay,
73
+ __endMonth,
74
+ __endYear,
75
+ startDate,
76
+ endDate,
77
+ props: {
78
+ on_type,
79
+ label
80
+ }
81
+ } = useContext(DatePickerContext);
82
+ const translation = useTranslation().DatePicker;
83
+ const modeDate = useMemo(() => ({
84
+ startDate,
85
+ endDate
86
+ }), [startDate, endDate]);
87
+ const inputDates = useMemo(() => ({
88
+ __startDay,
89
+ __startMonth,
90
+ __startYear,
91
+ __endDay,
92
+ __endMonth,
93
+ __endYear
94
+ }), [__startDay, __startMonth, __startYear, __endDay, __endMonth, __endYear]);
95
+ const startDayRef = useRef();
96
+ const startMonthRef = useRef();
97
+ const startYearRef = useRef();
98
+ const endDayRef = useRef();
99
+ const endMonthRef = useRef();
100
+ const endYearRef = useRef();
101
+ const inputRefs = useMemo(() => ({
102
+ startDayRef,
103
+ startMonthRef,
104
+ startYearRef,
105
+ endDayRef,
106
+ endMonthRef,
107
+ endYearRef
108
+ }), []);
109
+ const startDayDateRef = useRef();
110
+ const endDayDateRef = useRef();
111
+ const startMonthDateRef = useRef();
112
+ const endMonthDateRef = useRef();
113
+ const startYearDateRef = useRef();
114
+ const endYearDateRef = useRef();
115
+ const dateRefs = useMemo(() => ({
116
+ startDay: startDayDateRef,
117
+ startMonth: endDayDateRef,
118
+ startYear: startMonthDateRef,
119
+ endDay: endMonthDateRef,
120
+ endMonth: startYearDateRef,
121
+ endYear: endYearDateRef
122
+ }), []);
123
+ const startDateRef = useRef();
124
+ const endDateRef = useRef();
125
+ const temporaryDates = useMemo(() => ({
126
+ startDate: startDateRef,
127
+ endDate: endDateRef
128
+ }), []);
129
+ const refList = useRef();
130
+ const focusMode = useRef();
131
+ const maskList = useMemo(() => {
132
+ const separators = maskOrder.match(separatorRexExp);
133
+ return maskOrder.split(separatorRexExp).reduce((acc, cur) => {
134
+ if (!cur) {
135
+ return acc;
101
136
  }
102
- if (typeof endDate !== 'undefined' && isValid(endDate)) {
103
- state.endDate = endDate;
137
+ acc.push(cur);
138
+ if (separators.length > 0) {
139
+ acc.push(separators.shift());
104
140
  }
105
- this.context.updateState(state, () => {
106
- if (typeof startDate !== 'undefined' && isValid(startDate) || typeof endDate !== 'undefined' && isValid(endDate)) {
107
- this.context.callOnChangeHandler({
108
- event
109
- });
110
- }
141
+ return acc;
142
+ }, []);
143
+ }, [maskOrder, separatorRexExp]);
144
+ const pasteHandler = useCallback(async event => {
145
+ if (!focusMode.current) {
146
+ return;
147
+ }
148
+ const success = (event.clipboardData || typeof window !== 'undefined' && window['clipboardData']).getData('text');
149
+ if (!success) {
150
+ return;
151
+ }
152
+ event.preventDefault();
153
+ try {
154
+ const separators = ['.', '/'];
155
+ const possibleFormats = ['yyyy-MM-dd'];
156
+ possibleFormats.forEach(date => {
157
+ separators.forEach(sep => {
158
+ possibleFormats.push(date.replace(/-/g, sep));
159
+ });
111
160
  });
112
- });
113
- _defineProperty(this, "callOnType", _ref2 => {
114
- let {
115
- event
116
- } = _ref2;
117
- const getDates = () => ['start', 'end'].reduce((acc, mode) => {
118
- acc[`${mode}Date`] = [this[`_${mode}Year`] || this.context[`__${mode}Year`] || 'yyyy', this[`_${mode}Month`] || this.context[`__${mode}Month`] || 'mm', this[`_${mode}Day`] || this.context[`__${mode}Day`] || 'dd'].join('-');
119
- return acc;
120
- }, {});
121
- let {
122
- startDate,
123
- endDate
124
- } = getDates();
125
- const partialStartDate = startDate;
126
- const partialEndDate = endDate;
127
- this.setState({
128
- partialStartDate,
129
- partialEndDate
161
+ possibleFormats.forEach(date => {
162
+ possibleFormats.push(date.split('').reverse().join(''));
130
163
  });
131
- startDate = parseISO(startDate);
132
- endDate = parseISO(endDate);
133
- if (!isValid(startDate)) {
134
- startDate = null;
164
+ let date;
165
+ let index = 0;
166
+ for (index; index < possibleFormats.length; ++index) {
167
+ date = convertStringToDate(success, {
168
+ date_format: possibleFormats[index]
169
+ });
170
+ if (date) {
171
+ break;
172
+ }
135
173
  }
136
- if (!isValid(endDate)) {
137
- endDate = null;
174
+ const mode = focusMode.current === 'start' ? 'startDate' : 'endDate';
175
+ if (date) {
176
+ updateDates({
177
+ [mode]: date
178
+ });
138
179
  }
139
- let returnObject = this.context.getReturnObject({
140
- startDate,
141
- endDate,
142
- event,
143
- partialStartDate,
144
- partialEndDate
145
- });
146
- if (returnObject.is_valid === false || returnObject.is_valid_start_date === false || returnObject.is_valid_end_date === false) {
180
+ } catch (error) {
181
+ warn(error);
182
+ }
183
+ }, [updateDates]);
184
+ const callOnChangeAsInvalid = useCallback(state => {
185
+ updateDates({
186
+ hoverDate: null
187
+ }, dates => {
188
+ if (hasHadValidDate) {
147
189
  const {
148
190
  startDate,
149
- endDate
150
- } = getDates();
151
- const typedDates = this.props.isRange ? {
152
- start_date: startDate,
153
- end_date: endDate
154
- } : {
155
- date: startDate
156
- };
157
- returnObject = _objectSpread(_objectSpread({}, returnObject), typedDates);
158
- }
159
- dispatchCustomElementEvent(this.context, 'on_type', returnObject);
160
- });
161
- _defineProperty(this, "prepareCounting", async _ref3 => {
162
- let {
163
- keyCode,
164
- target,
165
- event
166
- } = _ref3;
167
- try {
168
- const isDate = target.getAttribute('class').match(/__input--([day|month|year]+)($|\s)/)[1];
169
- const isInRange = target.getAttribute('id').match(/-([start|end]+)-/)[1];
170
- let date = isInRange === 'start' ? this.context.startDate : this.context.endDate;
171
- if (!date) {
172
- return;
173
- }
174
- const count = keyCode === 'up' ? 1 : -1;
175
- if (keyCode === 'up' || keyCode === 'down') {
176
- switch (isDate) {
177
- case 'day':
178
- date = addDays(date, count);
179
- break;
180
- case 'month':
181
- date = addMonths(date, count);
182
- break;
183
- case 'year':
184
- date = addYears(date, count);
185
- break;
186
- }
187
- }
188
- this.callOnChange({
189
- [isInRange === 'start' ? 'startDate' : 'endDate']: date,
191
+ endDate,
192
+ event
193
+ } = _objectSpread(_objectSpread({}, state), dates);
194
+ callOnChangeHandler({
195
+ startDate,
196
+ endDate,
190
197
  event
191
198
  });
192
- await wait(1);
193
- selectAll(target);
194
- } catch (e) {
195
- warn(e);
196
199
  }
197
200
  });
198
- _defineProperty(this, "selectStart", target => {
199
- target.focus();
200
- target.setSelectionRange(0, 0);
201
- });
202
- _defineProperty(this, "onFocusHandler", event => {
203
- try {
204
- selectAll(event.target);
205
- } catch (e) {
206
- warn(e);
207
- }
208
- this.setState({
209
- focusState: 'focus',
210
- _listenForPropChanges: false
211
- });
212
- if (this.props.onFocus) {
213
- this.props.onFocus(_objectSpread(_objectSpread({}, event), this.context.getReturnObject({
201
+ }, [updateDates, callOnChangeHandler, hasHadValidDate]);
202
+ const callOnChange = useCallback(_ref => {
203
+ let {
204
+ startDate,
205
+ endDate,
206
+ event
207
+ } = _ref;
208
+ const state = {};
209
+ if (typeof startDate !== 'undefined' && isValid(startDate)) {
210
+ state['startDate'] = startDate;
211
+ }
212
+ if (!isRange) {
213
+ endDate = startDate;
214
+ }
215
+ if (typeof endDate !== 'undefined' && isValid(endDate)) {
216
+ state['endDate'] = endDate;
217
+ }
218
+ updateDates(state, dates => {
219
+ if (typeof startDate !== 'undefined' && isValid(startDate) || typeof endDate !== 'undefined' && isValid(endDate)) {
220
+ callOnChangeHandler(_objectSpread({
214
221
  event
215
- })));
222
+ }, dates));
216
223
  }
217
224
  });
218
- _defineProperty(this, "onBlurHandler", event => {
219
- const {
220
- partialStartDate,
221
- partialEndDate
222
- } = this.state;
223
- this.focusMode = null;
224
- this.setState({
225
- focusState: 'blur',
226
- _listenForPropChanges: false
227
- });
228
- if (this.props.onBlur) {
229
- this.props.onBlur(_objectSpread(_objectSpread({}, event), this.context.getReturnObject({
230
- event,
231
- partialStartDate,
232
- partialEndDate
233
- })));
234
- }
225
+ }, [updateDates, callOnChangeHandler, isRange]);
226
+ const callOnType = useCallback(_ref2 => {
227
+ let {
228
+ event
229
+ } = _ref2;
230
+ const getDates = () => ['start', 'end'].reduce((acc, mode) => {
231
+ acc[`${mode}Date`] = [dateRefs[`${mode}Year`].current || inputDates[`__${mode}Year`] || 'yyyy', dateRefs[`${mode}Month`].current || inputDates[`__${mode}Month`] || 'mm', dateRefs[`${mode}Day`].current || inputDates[`__${mode}Day`] || 'dd'].join('-');
232
+ return acc;
233
+ }, {
234
+ startDate: undefined,
235
+ endDate: undefined
235
236
  });
236
- _defineProperty(this, "onKeyDownHandler", async event => {
237
- const keyCode = keycode(event);
238
- const target = event.target;
239
- if (target.selectionStart !== target.selectionEnd) {
240
- this.selectStart(target);
241
- }
242
- switch (keyCode) {
243
- case 'up':
244
- case 'down':
245
- event.persist();
246
- event.preventDefault();
247
- this.prepareCounting({
248
- event,
249
- keyCode,
250
- target
251
- });
252
- return false;
253
- case 'tab':
254
- return false;
237
+ let {
238
+ startDate,
239
+ endDate
240
+ } = getDates();
241
+ const partialStartDate = startDate;
242
+ const partialEndDate = endDate;
243
+ setPartialDates({
244
+ partialStartDate,
245
+ partialEndDate
246
+ });
247
+ startDate = parseISO(startDate);
248
+ endDate = parseISO(endDate);
249
+ if (!isValid(startDate)) {
250
+ startDate = null;
251
+ }
252
+ if (!isValid(endDate)) {
253
+ endDate = null;
254
+ }
255
+ let returnObject = getReturnObject({
256
+ startDate,
257
+ endDate,
258
+ event,
259
+ partialStartDate,
260
+ partialEndDate
261
+ });
262
+ if (returnObject.is_valid === false || returnObject.is_valid_start_date === false || returnObject.is_valid_end_date === false) {
263
+ const {
264
+ startDate,
265
+ endDate
266
+ } = getDates();
267
+ const typedDates = isRange ? {
268
+ start_date: startDate,
269
+ end_date: endDate
270
+ } : {
271
+ date: startDate
272
+ };
273
+ returnObject = _objectSpread(_objectSpread({}, returnObject), typedDates);
274
+ }
275
+ on_type === null || on_type === void 0 ? void 0 : on_type(_objectSpread({}, returnObject));
276
+ }, [isRange, dateRefs, getReturnObject, inputDates, on_type]);
277
+ const prepareCounting = useCallback(async _ref3 => {
278
+ let {
279
+ keyCode,
280
+ target,
281
+ event
282
+ } = _ref3;
283
+ try {
284
+ const isDate = target.getAttribute('class').match(/__input--([day|month|year]+)($|\s)/)[1];
285
+ const isInRange = target.getAttribute('id').match(/-([start|end]+)-/)[1];
286
+ let date = isInRange === 'start' ? startDate : endDate;
287
+ if (!date) {
288
+ return;
255
289
  }
256
- const size = parseFloat(target.getAttribute('size'));
257
- const firstSelectionStart = target.selectionStart;
258
- await wait(1);
259
- const secondSelectionStart = target.selectionStart;
260
- const isValid = /[0-9]/.test(keyCode);
261
- const index = this.refList.findIndex(_ref4 => {
262
- let {
263
- current
264
- } = _ref4;
265
- return current === target;
266
- });
267
- if (index < this.refList.length - 1 && (secondSelectionStart === size && isValid && keyCode !== 'left' && keyCode !== 'backspace' || firstSelectionStart === size && keyCode === 'right')) {
268
- try {
269
- if (!this.refList[index + 1].current) {
270
- return;
271
- }
272
- const nextSibling = this.refList[index + 1].current;
273
- if (nextSibling) {
274
- nextSibling.focus();
275
- nextSibling.setSelectionRange(0, 0);
276
- }
277
- } catch (e) {
278
- warn(e);
279
- }
280
- } else if (firstSelectionStart === 0 && index > 0) {
281
- switch (keyCode) {
282
- case 'left':
283
- case 'backspace':
284
- try {
285
- const prevSibling = this.refList[index - 1].current;
286
- if (prevSibling) {
287
- const endPos = prevSibling.value.length;
288
- prevSibling.focus();
289
- prevSibling.setSelectionRange(endPos, endPos);
290
- }
291
- } catch (e) {
292
- warn(e);
293
- }
290
+ const count = keyCode === 'ArrowUp' ? 1 : -1;
291
+ if (keyCode === 'ArrowUp' || keyCode === 'ArrowDown') {
292
+ switch (isDate) {
293
+ case 'day':
294
+ date = addDays(date, count);
295
+ break;
296
+ case 'month':
297
+ date = addMonths(date, count);
298
+ break;
299
+ case 'year':
300
+ date = addYears(date, count);
294
301
  break;
295
302
  }
296
303
  }
304
+ callOnChange({
305
+ [isInRange === 'start' ? 'startDate' : 'endDate']: date,
306
+ event
307
+ });
308
+ await wait(1);
309
+ selectAll(target);
310
+ } catch (e) {
311
+ warn(e);
312
+ }
313
+ }, [startDate, endDate, callOnChange]);
314
+ const selectStart = useCallback(target => {
315
+ target.focus();
316
+ target.setSelectionRange(0, 0);
317
+ }, []);
318
+ const onFocusHandler = useCallback(event => {
319
+ try {
320
+ selectAll(event.target);
321
+ } catch (e) {
322
+ warn(e);
323
+ }
324
+ setFocusState('focus');
325
+ onFocus === null || onFocus === void 0 ? void 0 : onFocus(_objectSpread(_objectSpread({}, event), getReturnObject({
326
+ event
327
+ })));
328
+ }, [getReturnObject, onFocus]);
329
+ const onBlurHandler = useCallback(event => {
330
+ focusMode.current = null;
331
+ setFocusState('blur');
332
+ onBlur === null || onBlur === void 0 ? void 0 : onBlur(_objectSpread(_objectSpread(_objectSpread({}, event), getReturnObject({
333
+ event
334
+ })), partialDates));
335
+ }, [onBlur, getReturnObject, partialDates]);
336
+ const onKeyDownHandler = useCallback(async event => {
337
+ const keyCode = event.key;
338
+ const target = event.target;
339
+ if (target.selectionStart !== target.selectionEnd) {
340
+ selectStart(target);
341
+ }
342
+ switch (keyCode) {
343
+ case 'ArrowUp':
344
+ case 'ArrowDown':
345
+ event.persist();
346
+ event.preventDefault();
347
+ prepareCounting({
348
+ event,
349
+ keyCode,
350
+ target
351
+ });
352
+ return false;
353
+ case 'Tab':
354
+ return false;
355
+ }
356
+ const size = parseFloat(target.getAttribute('size'));
357
+ const firstSelectionStart = target.selectionStart;
358
+ await wait(1);
359
+ const secondSelectionStart = target.selectionStart;
360
+ const isValid = /[0-9]/g.test(keyCode);
361
+ const refListArray = refList.current;
362
+ const index = refListArray.findIndex(_ref4 => {
363
+ let {
364
+ current
365
+ } = _ref4;
366
+ return current === target;
297
367
  });
298
- _defineProperty(this, "set_startDay", event => {
299
- this.setDate(event, 'start', 'Day');
300
- });
301
- _defineProperty(this, "set_startMonth", event => {
302
- this.setDate(event, 'start', 'Month');
303
- });
304
- _defineProperty(this, "set_startYear", event => {
305
- this.setDate(event, 'start', 'Year');
306
- });
307
- _defineProperty(this, "set_endDay", event => {
308
- this.setDate(event, 'end', 'Day');
309
- });
310
- _defineProperty(this, "set_endMonth", event => {
311
- this.setDate(event, 'end', 'Month');
312
- });
313
- _defineProperty(this, "set_endYear", event => {
314
- this.setDate(event, 'end', 'Year');
315
- });
316
- _defineProperty(this, "setDate", (event, mode, type) => {
317
- event.persist();
318
- const value = event.target.value;
319
- this[`_${mode}${type}`] = value;
320
- if (this.context[`${mode}Date`]) {
321
- this[`tmp_${mode}Date`] = this.context[`${mode}Date`];
368
+ if (index < refListArray.length - 1 && (secondSelectionStart === size && isValid && keyCode !== 'ArrowLeft' && keyCode !== 'Backspace' || firstSelectionStart === size && keyCode === 'ArrowRight')) {
369
+ try {
370
+ if (!refListArray[index + 1].current) {
371
+ return;
372
+ }
373
+ const nextSibling = refListArray[index + 1].current;
374
+ if (nextSibling) {
375
+ nextSibling.focus();
376
+ nextSibling.setSelectionRange(0, 0);
377
+ }
378
+ } catch (e) {
379
+ warn(e);
322
380
  }
323
- const fallback = this[`tmp_${mode}Date`];
324
- const year = this[`_${mode}Year`] || fallback && fallback.getFullYear();
325
- const month = this[`_${mode}Month`] || fallback && fallback.getMonth() + 1;
326
- const day = this[`_${mode}Day`] || fallback && fallback.getDate();
327
- const date = new Date(parseFloat(year), parseFloat(month) - 1, parseFloat(day));
328
- const isValidDate = !/[^0-9]/.test(day) && !/[^0-9]/.test(month) && !/[^0-9]/.test(year) && isValid(date) && date.getDate() == parseFloat(day) && date.getMonth() + 1 == parseFloat(month) && date.getFullYear() == parseFloat(year);
329
- if (isValidDate) {
330
- this.callOnChange({
331
- [`${mode}Date`]: date,
332
- event
333
- });
334
- } else {
335
- this.context.updateState({
336
- [`${mode}Date`]: null
337
- });
338
- this.context.updateState({
339
- [`__${mode}${type}`]: value
340
- });
341
- this.callOnChangeAsInvalid({
342
- [`${mode}Date`]: null,
343
- event
344
- });
381
+ } else if (firstSelectionStart === 0 && index > 0) {
382
+ switch (keyCode) {
383
+ case 'ArrowLeft':
384
+ case 'Backspace':
385
+ try {
386
+ const prevSibling = refListArray[index - 1].current;
387
+ if (prevSibling) {
388
+ const endPos = prevSibling.value.length;
389
+ prevSibling.focus();
390
+ prevSibling.setSelectionRange(endPos, endPos);
391
+ }
392
+ } catch (e) {
393
+ warn(e);
394
+ }
395
+ break;
345
396
  }
346
- this.callOnType({
397
+ }
398
+ }, [prepareCounting, selectStart]);
399
+ const setDate = useCallback((event, mode, type) => {
400
+ var _dateRefs, _dateRefs2, _dateRefs3;
401
+ event.persist();
402
+ const value = event.target.value;
403
+ dateRefs[`${mode}${type}`].current = value;
404
+ if (modeDate[`${mode}Date`]) {
405
+ temporaryDates[`${mode}Date`].current = modeDate[`${mode}Date`];
406
+ }
407
+ const fallback = temporaryDates[`${mode}Date`].current;
408
+ const year = ((_dateRefs = dateRefs[`${mode}Year`]) === null || _dateRefs === void 0 ? void 0 : _dateRefs.current) || fallback && fallback.getFullYear();
409
+ const month = ((_dateRefs2 = dateRefs[`${mode}Month`]) === null || _dateRefs2 === void 0 ? void 0 : _dateRefs2.current) || fallback && fallback.getMonth() + 1;
410
+ const day = ((_dateRefs3 = dateRefs[`${mode}Day`]) === null || _dateRefs3 === void 0 ? void 0 : _dateRefs3.current) || fallback && fallback.getDate();
411
+ const date = new Date(parseFloat(String(year)), parseFloat(String(month)) - 1, parseFloat(String(day)));
412
+ const isValidDate = !/[^0-9]/.test(String(day)) && !/[^0-9]/.test(String(month)) && !/[^0-9]/.test(String(year)) && isValid(date) && date.getDate() == parseFloat(String(day)) && date.getMonth() + 1 == parseFloat(String(month)) && date.getFullYear() == parseFloat(String(year));
413
+ if (isValidDate) {
414
+ callOnChange({
415
+ [`${mode}Date`]: date,
347
416
  event
348
417
  });
418
+ } else {
419
+ updateDates({
420
+ [`${mode}Date`]: null,
421
+ [`__${mode}${type}`]: value
422
+ });
423
+ callOnChangeAsInvalid({
424
+ [`${mode}Date`]: null,
425
+ event
426
+ });
427
+ }
428
+ callOnType({
429
+ event
349
430
  });
350
- _defineProperty(this, "renderInputElement", params => {
351
- const {
352
- id,
353
- isRange
354
- } = this.props;
355
- this.refList = [];
356
- const startDateList = this.generateDateList(params, 'start');
357
- const endDateList = this.generateDateList(params, 'end');
358
- return React.createElement("span", {
359
- id: `${id}-input`,
360
- className: "dnb-date-picker__input__wrapper"
361
- }, startDateList, isRange && (_span || (_span = React.createElement("span", {
362
- className: "dnb-date-picker--separator",
363
- "aria-hidden": true
364
- }, ' – '))), isRange && endDateList);
365
- });
366
- const _separators = props.maskOrder.match(props.separatorRexExp);
367
- this.maskList = props.maskOrder.split(props.separatorRexExp).reduce((acc, cur) => {
368
- if (cur) {
369
- acc.push(cur);
370
- if (_separators.length > 0) {
371
- acc.push(_separators.shift());
372
- }
373
- }
374
- return acc;
375
- }, []);
376
- this._startDayRef = React.createRef();
377
- this._startMonthRef = React.createRef();
378
- this._startYearRef = React.createRef();
379
- this._endDayRef = React.createRef();
380
- this._endMonthRef = React.createRef();
381
- this._endYearRef = React.createRef();
382
- }
383
- componentWillUnmount() {
384
- if (this._shortcuts) {
385
- this._shortcuts.remove(this.osShortcut);
431
+ }, [updateDates, callOnChange, callOnChangeAsInvalid, callOnType, modeDate, dateRefs, temporaryDates]);
432
+ const dateSetters = useMemo(() => ({
433
+ set_startDay: event => {
434
+ setDate(event, 'start', 'Day');
435
+ },
436
+ set_startMonth: event => {
437
+ setDate(event, 'start', 'Month');
438
+ },
439
+ set_startYear: event => {
440
+ setDate(event, 'start', 'Year');
441
+ },
442
+ set_endDay: event => {
443
+ setDate(event, 'end', 'Day');
444
+ },
445
+ set_endMonth: event => {
446
+ setDate(event, 'end', 'Month');
447
+ },
448
+ set_endYear: event => {
449
+ setDate(event, 'end', 'Year');
386
450
  }
387
- }
388
- getPlaceholderChar(value) {
389
- const index = this.props.maskOrder.indexOf(value);
390
- return this.props.maskPlaceholder[index];
391
- }
392
- generateDateList(params, mode) {
393
- return this.maskList.map((value, i) => {
451
+ }), [setDate]);
452
+ const getPlaceholderChar = useCallback(value => {
453
+ const index = maskOrder.indexOf(value);
454
+ return maskPlaceholder[index];
455
+ }, [maskOrder, maskPlaceholder]);
456
+ const generateDateList = useCallback((element, mode) => {
457
+ return maskList.map((value, i) => {
394
458
  const state = value.slice(0, 1);
395
- const placeholderChar = this.getPlaceholderChar(value);
396
- const {
397
- input_element,
398
- separatorRexExp,
399
- isRange,
400
- size
401
- } = this.props;
459
+ const placeholderChar = getPlaceholderChar(value);
402
460
  const {
403
461
  day,
404
462
  month,
405
463
  year
406
- } = this.context.translation.DatePicker;
407
- const isRangeLabel = isRange ? `${this.context.translation.DatePicker[mode]} ` : '';
464
+ } = translation;
465
+ const isRangeLabel = isRange ? `${translation[mode]} ` : '';
408
466
  if (!separatorRexExp.test(value)) {
409
467
  if (!input_element) {
410
- params = _objectSpread(_objectSpread({}, params), {}, {
411
- onKeyDown: this.onKeyDownHandler,
412
- onPaste: this.shortcutHandler,
468
+ element = _objectSpread(_objectSpread({}, element), {}, {
469
+ onKeyDown: onKeyDownHandler,
470
+ onPaste: pasteHandler,
413
471
  onFocus: e => {
414
- this.focusMode = mode;
415
- this.onFocusHandler(e);
472
+ focusMode.current = mode;
473
+ onFocusHandler(e);
416
474
  },
417
- onBlur: this.onBlurHandler,
475
+ onBlur: onBlurHandler,
418
476
  placeholderChar
419
477
  });
420
478
  }
421
- const DateField = input_element && React.isValidElement(input_element) ? input_element : InputElement;
479
+ const DateField = input_element && React.isValidElement(input_element) ? input_element.type : InputElement;
422
480
  const inputSizeClassName = size && `dnb-date-picker__input--${size}`;
423
481
  switch (state) {
424
482
  case 'd':
425
- this.refList.push(this[`_${mode}DayRef`]);
483
+ refList.current.push(inputRefs[`${mode}DayRef`]);
426
484
  return React.createElement(React.Fragment, {
427
485
  key: 'dd' + i
428
- }, React.createElement(DateField, _extends({}, params, {
429
- id: `${this.props.id}-${mode}-day`,
486
+ }, React.createElement(DateField, _extends({}, element, {
487
+ id: `${id}-${mode}-day`,
430
488
  key: 'di' + i,
431
- className: classnames("dnb-date-picker__input dnb-date-picker__input--day", params.className, inputSizeClassName),
432
- size: "2",
489
+ className: classnames("dnb-date-picker__input dnb-date-picker__input--day", element.className, inputSizeClassName),
490
+ size: 2,
433
491
  mask: [/[0-3]/, /[0-9]/],
434
- inputRef: this[`_${mode}DayRef`],
435
- onChange: this[`set_${mode}Day`],
436
- value: this.context[`__${mode}Day`] || '',
437
- "aria-labelledby": `${this.props.id}-${mode}-day-label`
492
+ inputRef: inputRefs[`${mode}DayRef`],
493
+ onChange: dateSetters[`set_${mode}Day`],
494
+ value: inputDates[`__${mode}Day`] || '',
495
+ "aria-labelledby": `${id}-${mode}-day-label`
438
496
  })), React.createElement("label", {
439
497
  key: 'dl' + i,
440
498
  hidden: true,
441
- id: `${this.props.id}-${mode}-day-label`,
442
- htmlFor: `${this.props.id}-${mode}-day`
499
+ id: `${id}-${mode}-day-label`,
500
+ htmlFor: `${id}-${mode}-day`
443
501
  }, isRangeLabel + day));
444
502
  case 'm':
445
- this.refList.push(this[`_${mode}MonthRef`]);
503
+ refList.current.push(inputRefs[`${mode}MonthRef`]);
446
504
  return React.createElement(React.Fragment, {
447
505
  key: 'mm' + i
448
- }, React.createElement(DateField, _extends({}, params, {
449
- id: `${this.props.id}-${mode}-month`,
506
+ }, React.createElement(DateField, _extends({}, element, {
507
+ id: `${id}-${mode}-month`,
450
508
  key: 'mi' + i,
451
- className: classnames("dnb-date-picker__input dnb-date-picker__input--month", params.className, inputSizeClassName),
452
- size: "2",
509
+ className: classnames("dnb-date-picker__input dnb-date-picker__input--month", element.className, inputSizeClassName),
510
+ size: 2,
453
511
  mask: [/[0-1]/, /[0-9]/],
454
- inputRef: this[`_${mode}MonthRef`],
455
- onChange: this[`set_${mode}Month`],
456
- value: this.context[`__${mode}Month`] || '',
457
- "aria-labelledby": `${this.props.id}-${mode}-month-label`
512
+ inputRef: inputRefs[`${mode}MonthRef`],
513
+ onChange: dateSetters[`set_${mode}Month`],
514
+ value: inputDates[`__${mode}Month`] || '',
515
+ "aria-labelledby": `${id}-${mode}-month-label`
458
516
  })), React.createElement("label", {
459
517
  key: 'ml' + i,
460
518
  hidden: true,
461
- id: `${this.props.id}-${mode}-month-label`,
462
- htmlFor: `${this.props.id}-${mode}-month`
519
+ id: `${id}-${mode}-month-label`,
520
+ htmlFor: `${id}-${mode}-month`
463
521
  }, isRangeLabel + month));
464
522
  case 'y':
465
- this.refList.push(this[`_${mode}YearRef`]);
523
+ refList.current.push(inputRefs[`${mode}YearRef`]);
466
524
  return React.createElement(React.Fragment, {
467
525
  key: 'yy' + i
468
- }, React.createElement(DateField, _extends({}, params, {
469
- id: `${this.props.id}-${mode}-year`,
526
+ }, React.createElement(DateField, _extends({}, element, {
527
+ id: `${id}-${mode}-year`,
470
528
  key: 'yi' + i,
471
- className: classnames("dnb-date-picker__input dnb-date-picker__input--year", params.className, inputSizeClassName),
472
- size: "4",
529
+ className: classnames("dnb-date-picker__input dnb-date-picker__input--year", element.className, inputSizeClassName),
530
+ size: 4,
473
531
  mask: [/[1-2]/, /[0-9]/, /[0-9]/, /[0-9]/],
474
- inputRef: this[`_${mode}YearRef`],
475
- onChange: this[`set_${mode}Year`],
476
- value: this.context[`__${mode}Year`] || '',
477
- "aria-labelledby": `${this.props.id}-${mode}-year-label`
532
+ inputRef: inputRefs[`${mode}YearRef`],
533
+ onChange: dateSetters[`set_${mode}Year`],
534
+ value: inputDates[`__${mode}Year`] || '',
535
+ "aria-labelledby": `${id}-${mode}-year-label`
478
536
  })), React.createElement("label", {
479
537
  key: 'yl' + i,
480
538
  hidden: true,
481
- id: `${this.props.id}-${mode}-year-label`,
482
- htmlFor: `${this.props.id}-${mode}-year`
539
+ id: `${id}-${mode}-year-label`,
540
+ htmlFor: `${id}-${mode}-year`
483
541
  }, isRangeLabel + year));
484
542
  }
485
543
  }
@@ -489,142 +547,67 @@ export default class DatePickerInput extends React.PureComponent {
489
547
  "aria-hidden": true
490
548
  }, placeholderChar);
491
549
  });
550
+ }, [id, input_element, isRange, size, translation, separatorRexExp, dateSetters, inputRefs, maskList, onBlurHandler, onFocusHandler, getPlaceholderChar, pasteHandler, onKeyDownHandler, inputDates]);
551
+ const renderInputElement = useCallback(element => {
552
+ refList.current = [];
553
+ const startDateList = generateDateList(element, 'start');
554
+ const endDateList = generateDateList(element, 'end');
555
+ return React.createElement("span", {
556
+ id: `${id}-input`,
557
+ className: "dnb-date-picker__input__wrapper"
558
+ }, startDateList, isRange && (_span || (_span = React.createElement("span", {
559
+ className: "dnb-date-picker--separator",
560
+ "aria-hidden": true
561
+ }, ' – '))), isRange && endDateList);
562
+ }, [id, isRange, generateDateList]);
563
+ const formatDate = useMemo(() => selectedDateTitle ? `${selectedDateTitle}, ${translation.open_picker_text}` : translation.open_picker_text, [selectedDateTitle, translation]);
564
+ validateDOMAttributes(props, attributes);
565
+ validateDOMAttributes(null, submitAttributes);
566
+ const SubmitElement = useMemo(() => showInput ? SubmitButton : Button, [showInput]);
567
+ if (!showInput) {
568
+ submitAttributes.innerRef = submitAttributes.ref;
569
+ submitAttributes.ref = null;
492
570
  }
493
- formatDate() {
494
- const {
495
- open_picker_text
496
- } = this.context.translation.DatePicker;
497
- const {
498
- selectedDateTitle
499
- } = this.props;
500
- return selectedDateTitle ? `${selectedDateTitle}, ${open_picker_text}` : open_picker_text;
501
- }
502
- render() {
503
- const _this$props = this.props,
504
- {
505
- id,
506
- title,
507
- submitAttributes,
508
- isRange,
509
- maskOrder,
510
- maskPlaceholder,
511
- separatorRexExp,
512
- onChange,
513
- onFocus,
514
- onSubmit,
515
- onBlur,
516
- selectedDateTitle,
517
- showInput,
518
- input_element,
519
- locale,
520
- disabled,
521
- skeleton,
522
- opened,
523
- size,
524
- status,
525
- status_state,
526
- status_props
527
- } = _this$props,
528
- attributes = _objectWithoutProperties(_this$props, _excluded);
529
- const {
530
- focusState
531
- } = this.state;
532
- validateDOMAttributes(this.props, attributes);
533
- validateDOMAttributes(null, submitAttributes);
534
- const UsedButton = showInput ? SubmitButton : Button;
535
- if (!showInput) {
536
- submitAttributes.innerRef = submitAttributes.ref;
537
- submitAttributes.ref = null;
538
- }
539
- return React.createElement("fieldset", {
540
- className: "dnb-date-picker__fieldset",
541
- lang: locale === null || locale === void 0 ? void 0 : locale.code
542
- }, this.context.props.label && React.createElement("legend", {
543
- className: "dnb-sr-only"
544
- }, this.context.props.label), React.createElement(Input, _extends({
545
- id: `${id}__input`,
546
- input_state: disabled ? 'disabled' : focusState,
547
- input_element: input_element && typeof input_element !== 'string' ? typeof input_element === 'function' ? input_element(this.props) : input_element : this.renderInputElement,
548
- disabled: disabled || skeleton,
571
+ return React.createElement("fieldset", {
572
+ className: "dnb-date-picker__fieldset",
573
+ lang: lang
574
+ }, label && React.createElement("legend", {
575
+ className: "dnb-sr-only"
576
+ }, label), React.createElement(Input, _extends({
577
+ id: `${id}__input`,
578
+ input_state: disabled ? 'disabled' : focusState,
579
+ input_element: input_element && typeof input_element !== 'string' ? typeof input_element === 'function' ? input_element(props) : input_element : renderInputElement,
580
+ disabled: disabled || skeleton,
581
+ skeleton: skeleton,
582
+ size: size,
583
+ status: !opened ? status : null,
584
+ status_state: status_state
585
+ }, status_props, {
586
+ submit_element: React.createElement(SubmitElement, _extends({
587
+ id: id,
588
+ disabled: disabled,
549
589
  skeleton: skeleton,
590
+ className: classnames(showInput && 'dnb-button--input-button', opened && 'dnb-button--active'),
591
+ "aria-label": formatDate,
592
+ title: title,
550
593
  size: size,
551
- status: !opened ? status : null,
552
- status_state: status_state
553
- }, status_props, {
554
- submit_element: React.createElement(UsedButton, _extends({
555
- id: id,
556
- disabled: disabled,
557
- skeleton: skeleton,
558
- className: classnames(showInput && 'dnb-button--input-button', opened && 'dnb-button--active'),
559
- "aria-label": this.formatDate(),
560
- title: title,
561
- size: size,
562
- status: status,
563
- status_state: status_state,
564
- type: "button",
565
- icon: "calendar",
566
- variant: "secondary",
567
- on_submit: onSubmit,
568
- on_click: onSubmit
569
- }, submitAttributes, status_props)),
570
- lang: locale === null || locale === void 0 ? void 0 : locale.code
571
- }, attributes)));
572
- }
594
+ status: status,
595
+ status_state: status_state,
596
+ type: "button",
597
+ icon: "calendar",
598
+ variant: "secondary",
599
+ on_submit: onSubmit,
600
+ on_click: onSubmit
601
+ }, submitAttributes, status_props)),
602
+ lang: lang
603
+ }, attributes)));
573
604
  }
574
- _defineProperty(DatePickerInput, "contextType", DatePickerContext);
575
- _defineProperty(DatePickerInput, "defaultProps", {
576
- id: null,
577
- title: null,
578
- selectedDateTitle: null,
579
- maskOrder: 'dd/mm/yyyy',
580
- maskPlaceholder: 'dd/mm/åååå',
581
- separatorRexExp: /[-/ ]/g,
582
- submitAttributes: null,
583
- isRange: null,
584
- size: null,
585
- status: null,
586
- status_state: 'error',
587
- status_props: null,
588
- input_element: null,
589
- disabled: null,
590
- locale: null,
591
- skeleton: null,
592
- opened: false,
593
- showInput: null,
594
- onChange: null,
595
- onSubmit: null,
596
- onFocus: null,
597
- onBlur: null
598
- });
599
- process.env.NODE_ENV !== "production" ? DatePickerInput.propTypes = {
600
- id: PropTypes.string,
601
- title: PropTypes.string,
602
- selectedDateTitle: PropTypes.string,
603
- maskOrder: PropTypes.string,
604
- maskPlaceholder: PropTypes.string,
605
- separatorRexExp: PropTypes.instanceOf(RegExp),
606
- submitAttributes: PropTypes.object,
607
- isRange: PropTypes.bool,
608
- size: PropTypes.oneOf(['default', 'small', 'medium', 'large']),
609
- status: PropTypes.oneOfType([PropTypes.string, PropTypes.bool, PropTypes.func, PropTypes.node]),
610
- status_state: PropTypes.string,
611
- status_props: PropTypes.object,
612
- input_element: PropTypes.oneOfType([PropTypes.string, PropTypes.func, PropTypes.node]),
613
- locale: PropTypes.object,
614
- disabled: PropTypes.bool,
615
- skeleton: PropTypes.bool,
616
- opened: PropTypes.bool,
617
- showInput: PropTypes.bool,
618
- onChange: PropTypes.func,
619
- onSubmit: PropTypes.func,
620
- onFocus: PropTypes.func,
621
- onBlur: PropTypes.func
622
- } : void 0;
623
- const selectAll = target => {
605
+ export default DatePickerInput;
606
+ function selectAll(target) {
624
607
  target.focus();
625
608
  target.select();
626
- };
627
- const InputElement = _ref5 => {
609
+ }
610
+ function InputElement(_ref5) {
628
611
  let {
629
612
  className,
630
613
  value
@@ -638,9 +621,9 @@ const InputElement = _ref5 => {
638
621
  autoCapitalize: "none",
639
622
  spellCheck: false,
640
623
  autoCorrect: "off",
641
- className: classnames(className, /\d+/.test(value) && 'dnb-date-picker__input--highlight'),
624
+ className: classnames(className, /\d+/.test(String(value)) && 'dnb-date-picker__input--highlight'),
642
625
  value: value
643
626
  }, props));
644
- };
645
- const wait = t => new Promise(r => setTimeout(r, t));
627
+ }
628
+ const wait = duration => new Promise(r => setTimeout(r, duration));
646
629
  //# sourceMappingURL=DatePickerInput.js.map