@dnb/eufemia 10.15.0 → 10.16.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 (1159) hide show
  1. package/CHANGELOG.md +53 -0
  2. package/assets/icons/dnb/browser.svg +1 -0
  3. package/assets/icons/dnb/browser_medium.svg +1 -0
  4. package/assets/icons/dnb/coins_1.svg +1 -1
  5. package/assets/icons/dnb/coins_1_medium.svg +1 -1
  6. package/assets/icons/dnb/digipass_corporate.svg +1 -0
  7. package/assets/icons/dnb/digipass_corporate_medium.svg +1 -0
  8. package/assets/icons/dnb/digipass_private.svg +1 -0
  9. package/assets/icons/dnb/digipass_private_medium.svg +1 -0
  10. package/assets/icons/dnb/envelope_open.svg +1 -0
  11. package/assets/icons/dnb/envelope_open_medium.svg +1 -0
  12. package/assets/icons/dnb/eufemia-icons-xml-categorized.tgz +0 -0
  13. package/assets/icons/dnb/eufemia-icons-xml.tgz +0 -0
  14. package/assets/icons/dnb/laptop.svg +1 -0
  15. package/assets/icons/dnb/laptop_medium.svg +1 -0
  16. package/assets/icons/dnb/mobile.svg +1 -0
  17. package/assets/icons/dnb/mobile_medium.svg +1 -0
  18. package/assets/icons/dnb/money_left.svg +1 -0
  19. package/assets/icons/dnb/money_left_medium.svg +1 -0
  20. package/assets/icons/dnb/scan.svg +1 -1
  21. package/assets/icons/dnb/scan_medium.svg +1 -1
  22. package/assets/icons/dnb/teenager.svg +1 -0
  23. package/assets/icons/dnb/teenager_medium.svg +1 -0
  24. package/cjs/components/accordion/style/themes/dnb-accordion-theme-sbanken.css +0 -17
  25. package/cjs/components/accordion/style/themes/dnb-accordion-theme-sbanken.min.css +1 -1
  26. package/cjs/components/accordion/style/themes/dnb-accordion-theme-ui.css +0 -16
  27. package/cjs/components/accordion/style/themes/dnb-accordion-theme-ui.min.css +2 -2
  28. package/cjs/components/anchor/style/anchor-mixins.scss +8 -6
  29. package/cjs/components/anchor/style/dnb-anchor.css +45 -60
  30. package/cjs/components/anchor/style/dnb-anchor.min.css +1 -1
  31. package/cjs/components/anchor/style/themes/dnb-anchor-theme-eiendom.css +0 -6
  32. package/cjs/components/anchor/style/themes/dnb-anchor-theme-eiendom.min.css +1 -1
  33. package/cjs/components/anchor/style/themes/dnb-anchor-theme-sbanken.css +8 -52
  34. package/cjs/components/anchor/style/themes/dnb-anchor-theme-sbanken.min.css +1 -1
  35. package/cjs/components/anchor/style/themes/dnb-anchor-theme-ui.css +0 -6
  36. package/cjs/components/anchor/style/themes/dnb-anchor-theme-ui.min.css +1 -1
  37. package/cjs/components/autocomplete/style/dnb-autocomplete.css +1 -0
  38. package/cjs/components/autocomplete/style/dnb-autocomplete.min.css +1 -1
  39. package/cjs/components/breadcrumb/style/dnb-breadcrumb.css +0 -2
  40. package/cjs/components/breadcrumb/style/dnb-breadcrumb.min.css +1 -1
  41. package/cjs/components/button/style/dnb-button.css +1 -0
  42. package/cjs/components/button/style/dnb-button.min.css +1 -1
  43. package/cjs/components/button/style/themes/dnb-button-theme-eiendom.css +0 -25
  44. package/cjs/components/button/style/themes/dnb-button-theme-eiendom.min.css +1 -1
  45. package/cjs/components/button/style/themes/dnb-button-theme-sbanken.css +0 -72
  46. package/cjs/components/button/style/themes/dnb-button-theme-sbanken.min.css +3 -3
  47. package/cjs/components/button/style/themes/dnb-button-theme-ui.css +0 -25
  48. package/cjs/components/button/style/themes/dnb-button-theme-ui.min.css +1 -1
  49. package/cjs/components/card/Card.d.ts +1 -1
  50. package/cjs/components/card/Card.js +48 -9
  51. package/cjs/components/card/Card.js.map +1 -1
  52. package/cjs/components/card/style/dnb-card.css +0 -20
  53. package/cjs/components/card/style/dnb-card.min.css +1 -1
  54. package/cjs/components/card/style/dnb-card.scss +0 -20
  55. package/cjs/components/card/style/themes/dnb-card-theme-ui.css +26 -0
  56. package/cjs/components/card/style/themes/dnb-card-theme-ui.min.css +1 -0
  57. package/cjs/components/card/style/themes/dnb-card-theme-ui.scss +35 -0
  58. package/cjs/components/date-picker/DatePicker.d.ts +5 -1
  59. package/cjs/components/date-picker/DatePicker.js +4 -2
  60. package/cjs/components/date-picker/DatePicker.js.map +1 -1
  61. package/cjs/components/date-picker/DatePickerInput.js +20 -6
  62. package/cjs/components/date-picker/DatePickerInput.js.map +1 -1
  63. package/cjs/components/date-picker/DatePickerProvider.js +2 -2
  64. package/cjs/components/date-picker/DatePickerProvider.js.map +1 -1
  65. package/cjs/components/date-picker/style/dnb-date-picker.css +0 -1
  66. package/cjs/components/date-picker/style/dnb-date-picker.min.css +1 -1
  67. package/cjs/components/date-picker/style/themes/dnb-date-picker-theme-ui.css +3 -2
  68. package/cjs/components/date-picker/style/themes/dnb-date-picker-theme-ui.min.css +1 -1
  69. package/cjs/components/date-picker/style/themes/dnb-date-picker-theme-ui.scss +5 -17
  70. package/cjs/components/dialog/style/dnb-dialog.css +0 -1
  71. package/cjs/components/dialog/style/dnb-dialog.min.css +1 -1
  72. package/cjs/components/flex/Container.d.ts +2 -4
  73. package/cjs/components/flex/Container.js.map +1 -1
  74. package/cjs/components/flex/Item.d.ts +2 -3
  75. package/cjs/components/flex/Item.js +2 -1
  76. package/cjs/components/flex/Item.js.map +1 -1
  77. package/cjs/components/flex/style/dnb-flex.css +0 -1
  78. package/cjs/components/flex/style/dnb-flex.min.css +1 -1
  79. package/cjs/components/global-error/style/dnb-global-error.css +0 -4
  80. package/cjs/components/global-error/style/dnb-global-error.min.css +1 -1
  81. package/cjs/components/grid/style/dnb-grid.css +0 -2
  82. package/cjs/components/grid/style/dnb-grid.min.css +1 -1
  83. package/cjs/components/info-card/style/dnb-info-card.css +1 -4
  84. package/cjs/components/info-card/style/dnb-info-card.min.css +1 -1
  85. package/cjs/components/input/Input.d.ts +3 -2
  86. package/cjs/components/input/style/dnb-input.css +6 -0
  87. package/cjs/components/input/style/dnb-input.min.css +1 -1
  88. package/cjs/components/input/style/themes/dnb-input-theme-sbanken.css +0 -9
  89. package/cjs/components/input/style/themes/dnb-input-theme-sbanken.min.css +1 -1
  90. package/cjs/components/input-masked/InputMaskedHooks.js +5 -5
  91. package/cjs/components/input-masked/InputMaskedHooks.js.map +1 -1
  92. package/cjs/components/input-masked/InputMaskedUtils.d.ts +4 -2
  93. package/cjs/components/input-masked/InputMaskedUtils.js +9 -7
  94. package/cjs/components/input-masked/InputMaskedUtils.js.map +1 -1
  95. package/cjs/components/input-masked/MultiInputMask.d.ts +1 -1
  96. package/cjs/components/input-masked/MultiInputMask.js +4 -2
  97. package/cjs/components/input-masked/MultiInputMask.js.map +1 -1
  98. package/cjs/components/input-masked/TextMask.js +15 -4
  99. package/cjs/components/input-masked/TextMask.js.map +1 -1
  100. package/cjs/components/input-masked/style/dnb-input-masked.css +3 -1
  101. package/cjs/components/input-masked/style/dnb-input-masked.min.css +1 -1
  102. package/cjs/components/input-masked/style/dnb-input-masked.scss +5 -0
  103. package/cjs/components/input-masked/text-mask/InputModeNumber.d.ts +20 -0
  104. package/cjs/components/input-masked/text-mask/InputModeNumber.js +93 -0
  105. package/cjs/components/input-masked/text-mask/InputModeNumber.js.map +1 -0
  106. package/cjs/components/input-masked/text-mask/createTextMaskInputElement.js +1 -1
  107. package/cjs/components/input-masked/text-mask/createTextMaskInputElement.js.map +1 -1
  108. package/cjs/components/pagination/style/dnb-pagination.css +0 -1
  109. package/cjs/components/pagination/style/dnb-pagination.min.css +1 -1
  110. package/cjs/components/progress-indicator/style/dnb-progress-indicator.css +1 -4
  111. package/cjs/components/progress-indicator/style/dnb-progress-indicator.min.css +1 -1
  112. package/cjs/components/radio/RadioGroup.js +0 -1
  113. package/cjs/components/radio/RadioGroup.js.map +1 -1
  114. package/cjs/components/section/Section.d.ts +7 -0
  115. package/cjs/components/section/Section.js +11 -12
  116. package/cjs/components/section/Section.js.map +1 -1
  117. package/cjs/components/section/style/dnb-section.css +8 -8
  118. package/cjs/components/section/style/dnb-section.min.css +1 -1
  119. package/cjs/components/section/style/dnb-section.scss +8 -4
  120. package/cjs/components/section/style/themes/dnb-section-theme-ui.css +11 -10
  121. package/cjs/components/section/style/themes/dnb-section-theme-ui.min.css +1 -1
  122. package/cjs/components/skeleton/style/dnb-skeleton.css +0 -2
  123. package/cjs/components/skeleton/style/dnb-skeleton.min.css +1 -1
  124. package/cjs/components/skip-content/style/dnb-skip-content.css +1 -4
  125. package/cjs/components/skip-content/style/dnb-skip-content.min.css +1 -1
  126. package/cjs/components/table/style/dnb-table.css +1 -4
  127. package/cjs/components/table/style/dnb-table.min.css +1 -1
  128. package/cjs/components/table/style/themes/dnb-table-theme-sbanken.css +0 -3
  129. package/cjs/components/table/style/themes/dnb-table-theme-sbanken.min.css +1 -1
  130. package/cjs/components/tabs/style/dnb-tabs.css +1 -0
  131. package/cjs/components/tabs/style/dnb-tabs.min.css +1 -1
  132. package/cjs/components/tag/style/dnb-tag.css +0 -1
  133. package/cjs/components/tag/style/dnb-tag.min.css +1 -1
  134. package/cjs/components/textarea/Textarea.js +4 -9
  135. package/cjs/components/textarea/Textarea.js.map +1 -1
  136. package/cjs/components/textarea/style/dnb-textarea.css +5 -2
  137. package/cjs/components/textarea/style/dnb-textarea.min.css +1 -1
  138. package/cjs/components/textarea/style/dnb-textarea.scss +2 -2
  139. package/cjs/components/toggle-button/ToggleButtonGroup.js +0 -1
  140. package/cjs/components/toggle-button/ToggleButtonGroup.js.map +1 -1
  141. package/cjs/components/toggle-button/style/dnb-toggle-button.css +4 -6
  142. package/cjs/components/toggle-button/style/dnb-toggle-button.min.css +1 -1
  143. package/cjs/components/toggle-button/style/dnb-toggle-button.scss +4 -10
  144. package/cjs/components/tooltip/style/dnb-tooltip.css +1 -0
  145. package/cjs/components/tooltip/style/dnb-tooltip.min.css +1 -1
  146. package/cjs/components/tooltip/style/dnb-tooltip.scss +2 -0
  147. package/cjs/components/upload/style/dnb-upload.css +3 -12
  148. package/cjs/components/upload/style/dnb-upload.min.css +1 -1
  149. package/cjs/components/upload/types.d.ts +1 -1
  150. package/cjs/components/upload/types.js.map +1 -1
  151. package/cjs/extensions/forms/DataContext/Context.d.ts +1 -0
  152. package/cjs/extensions/forms/DataContext/Context.js +1 -0
  153. package/cjs/extensions/forms/DataContext/Context.js.map +1 -1
  154. package/cjs/extensions/forms/DataContext/Provider/Provider.d.ts +6 -1
  155. package/cjs/extensions/forms/DataContext/Provider/Provider.js +37 -13
  156. package/cjs/extensions/forms/DataContext/Provider/Provider.js.map +1 -1
  157. package/cjs/extensions/forms/Field/ArraySelection/style/dnb-array-selection.css +0 -2
  158. package/cjs/extensions/forms/Field/ArraySelection/style/dnb-array-selection.min.css +1 -1
  159. package/cjs/extensions/forms/Field/BankAccountNumber/BankAccountNumber.js +2 -1
  160. package/cjs/extensions/forms/Field/BankAccountNumber/BankAccountNumber.js.map +1 -1
  161. package/cjs/extensions/forms/Field/Date/Date.js +3 -1
  162. package/cjs/extensions/forms/Field/Date/Date.js.map +1 -1
  163. package/cjs/extensions/forms/Field/Email/Email.js +7 -5
  164. package/cjs/extensions/forms/Field/Email/Email.js.map +1 -1
  165. package/cjs/extensions/forms/Field/Expiry/Expiry.js +26 -4
  166. package/cjs/extensions/forms/Field/Expiry/Expiry.js.map +1 -1
  167. package/cjs/extensions/forms/Field/NationalIdentityNumber/NationalIdentityNumber.js +2 -1
  168. package/cjs/extensions/forms/Field/NationalIdentityNumber/NationalIdentityNumber.js.map +1 -1
  169. package/cjs/extensions/forms/Field/OrganizationNumber/OrganizationNumber.js +2 -1
  170. package/cjs/extensions/forms/Field/OrganizationNumber/OrganizationNumber.js.map +1 -1
  171. package/cjs/extensions/forms/Field/PhoneNumber/PhoneNumber.js +69 -30
  172. package/cjs/extensions/forms/Field/PhoneNumber/PhoneNumber.js.map +1 -1
  173. package/cjs/extensions/forms/Field/PhoneNumber/style/dnb-phone-number.css +3 -0
  174. package/cjs/extensions/forms/Field/PhoneNumber/style/dnb-phone-number.min.css +1 -1
  175. package/cjs/extensions/forms/Field/PhoneNumber/style/dnb-phone-number.scss +4 -0
  176. package/cjs/extensions/forms/Field/PostalCodeAndCity/PostalCodeAndCity.js +3 -1
  177. package/cjs/extensions/forms/Field/PostalCodeAndCity/PostalCodeAndCity.js.map +1 -1
  178. package/cjs/extensions/forms/Field/PostalCodeAndCity/style/dnb-postal-code-and-city.css +0 -1
  179. package/cjs/extensions/forms/Field/PostalCodeAndCity/style/dnb-postal-code-and-city.min.css +1 -1
  180. package/cjs/extensions/forms/Field/Selection/Selection.js +59 -50
  181. package/cjs/extensions/forms/Field/Selection/Selection.js.map +1 -1
  182. package/cjs/extensions/forms/Field/Selection/style/dnb-selection.css +6 -6
  183. package/cjs/extensions/forms/Field/Selection/style/dnb-selection.min.css +1 -1
  184. package/cjs/extensions/forms/Field/Selection/style/dnb-selection.scss +15 -10
  185. package/cjs/extensions/forms/Field/String/String.d.ts +1 -0
  186. package/cjs/extensions/forms/Field/String/String.js +13 -8
  187. package/cjs/extensions/forms/Field/String/String.js.map +1 -1
  188. package/cjs/extensions/forms/FieldBlock/FieldBlock.js +2 -2
  189. package/cjs/extensions/forms/FieldBlock/FieldBlock.js.map +1 -1
  190. package/cjs/extensions/forms/FieldBlock/style/dnb-field-block.css +1 -1
  191. package/cjs/extensions/forms/FieldBlock/style/dnb-field-block.min.css +1 -1
  192. package/cjs/extensions/forms/FieldBlock/style/dnb-field-block.scss +1 -1
  193. package/cjs/extensions/forms/Form/ButtonRow/style/dnb-form-button-row.css +8 -1
  194. package/cjs/extensions/forms/Form/ButtonRow/style/dnb-form-button-row.min.css +1 -1
  195. package/cjs/extensions/forms/Form/ButtonRow/style/dnb-form-button-row.scss +10 -0
  196. package/cjs/extensions/forms/Form/Handler/Handler.js +2 -2
  197. package/cjs/extensions/forms/Form/Handler/Handler.js.map +1 -1
  198. package/cjs/extensions/forms/Form/MainHeading/style/dnb-form-main-heading.css +7 -8
  199. package/cjs/extensions/forms/Form/MainHeading/style/dnb-form-main-heading.min.css +1 -1
  200. package/cjs/extensions/forms/Form/MainHeading/style/dnb-form-main-heading.scss +6 -1
  201. package/cjs/extensions/forms/Form/SubHeading/style/dnb-form-sub-heading.css +3 -3
  202. package/cjs/extensions/forms/Form/SubHeading/style/dnb-form-sub-heading.min.css +1 -1
  203. package/cjs/extensions/forms/Form/SubHeading/style/dnb-form-sub-heading.scss +2 -0
  204. package/cjs/extensions/forms/StepsLayout/NextButton/NextButton.js +3 -2
  205. package/cjs/extensions/forms/StepsLayout/NextButton/NextButton.js.map +1 -1
  206. package/cjs/extensions/forms/StepsLayout/PreviousButton/PreviousButton.js +3 -2
  207. package/cjs/extensions/forms/StepsLayout/PreviousButton/PreviousButton.js.map +1 -1
  208. package/cjs/extensions/forms/StepsLayout/StepsLayout.js +1 -1
  209. package/cjs/extensions/forms/StepsLayout/StepsLayout.js.map +1 -1
  210. package/cjs/extensions/forms/StepsLayout/style/dnb-steps-layout.css +14 -17
  211. package/cjs/extensions/forms/StepsLayout/style/dnb-steps-layout.min.css +1 -1
  212. package/cjs/extensions/forms/StepsLayout/style/dnb-steps-layout.scss +15 -16
  213. package/cjs/extensions/forms/constants/countries.js +4 -2
  214. package/cjs/extensions/forms/constants/countries.js.map +1 -1
  215. package/cjs/extensions/forms/hooks/useDataValue.d.ts +3 -0
  216. package/cjs/extensions/forms/hooks/useDataValue.js +98 -48
  217. package/cjs/extensions/forms/hooks/useDataValue.js.map +1 -1
  218. package/cjs/extensions/forms/style/dnb-forms.css +42 -39
  219. package/cjs/extensions/forms/style/dnb-forms.min.css +1 -1
  220. package/cjs/extensions/forms/types.d.ts +12 -2
  221. package/cjs/extensions/forms/types.js +1 -1
  222. package/cjs/extensions/forms/types.js.map +1 -1
  223. package/cjs/extensions/payment-card/style/dnb-payment-card.css +0 -2
  224. package/cjs/extensions/payment-card/style/dnb-payment-card.min.css +1 -1
  225. package/cjs/icons/browser.d.ts +3 -0
  226. package/cjs/icons/browser.js +11 -0
  227. package/cjs/icons/browser.js.map +1 -0
  228. package/cjs/icons/browser_medium.d.ts +3 -0
  229. package/cjs/icons/browser_medium.js +11 -0
  230. package/cjs/icons/browser_medium.js.map +1 -0
  231. package/cjs/icons/digipass_corporate.d.ts +3 -0
  232. package/cjs/icons/digipass_corporate.js +11 -0
  233. package/cjs/icons/digipass_corporate.js.map +1 -0
  234. package/cjs/icons/digipass_corporate_medium.d.ts +3 -0
  235. package/cjs/icons/digipass_corporate_medium.js +11 -0
  236. package/cjs/icons/digipass_corporate_medium.js.map +1 -0
  237. package/cjs/icons/digipass_private.d.ts +3 -0
  238. package/cjs/icons/digipass_private.js +11 -0
  239. package/cjs/icons/digipass_private.js.map +1 -0
  240. package/cjs/icons/digipass_private_medium.d.ts +3 -0
  241. package/cjs/icons/digipass_private_medium.js +11 -0
  242. package/cjs/icons/digipass_private_medium.js.map +1 -0
  243. package/cjs/icons/dnb/browser.d.ts +3 -0
  244. package/cjs/icons/dnb/browser.js +25 -0
  245. package/cjs/icons/dnb/browser.js.map +1 -0
  246. package/cjs/icons/dnb/browser_medium.d.ts +3 -0
  247. package/cjs/icons/dnb/browser_medium.js +25 -0
  248. package/cjs/icons/dnb/browser_medium.js.map +1 -0
  249. package/cjs/icons/dnb/coins_1.js +1 -1
  250. package/cjs/icons/dnb/coins_1.js.map +1 -1
  251. package/cjs/icons/dnb/coins_1_medium.js +1 -1
  252. package/cjs/icons/dnb/coins_1_medium.js.map +1 -1
  253. package/cjs/icons/dnb/digipass_corporate.d.ts +3 -0
  254. package/cjs/icons/dnb/digipass_corporate.js +25 -0
  255. package/cjs/icons/dnb/digipass_corporate.js.map +1 -0
  256. package/cjs/icons/dnb/digipass_corporate_medium.d.ts +3 -0
  257. package/cjs/icons/dnb/digipass_corporate_medium.js +25 -0
  258. package/cjs/icons/dnb/digipass_corporate_medium.js.map +1 -0
  259. package/cjs/icons/dnb/digipass_private.d.ts +3 -0
  260. package/cjs/icons/dnb/digipass_private.js +25 -0
  261. package/cjs/icons/dnb/digipass_private.js.map +1 -0
  262. package/cjs/icons/dnb/digipass_private_medium.d.ts +3 -0
  263. package/cjs/icons/dnb/digipass_private_medium.js +25 -0
  264. package/cjs/icons/dnb/digipass_private_medium.js.map +1 -0
  265. package/cjs/icons/dnb/envelope_open.d.ts +3 -0
  266. package/cjs/icons/dnb/envelope_open.js +26 -0
  267. package/cjs/icons/dnb/envelope_open.js.map +1 -0
  268. package/cjs/icons/dnb/envelope_open_medium.d.ts +3 -0
  269. package/cjs/icons/dnb/envelope_open_medium.js +26 -0
  270. package/cjs/icons/dnb/envelope_open_medium.js.map +1 -0
  271. package/cjs/icons/dnb/icons-meta.json +230 -20
  272. package/cjs/icons/dnb/icons-svg.lock +1272 -1064
  273. package/cjs/icons/dnb/index.d.ts +17 -1
  274. package/cjs/icons/dnb/index.js +112 -0
  275. package/cjs/icons/dnb/index.js.map +1 -1
  276. package/cjs/icons/dnb/laptop.d.ts +3 -0
  277. package/cjs/icons/dnb/laptop.js +26 -0
  278. package/cjs/icons/dnb/laptop.js.map +1 -0
  279. package/cjs/icons/dnb/laptop_medium.d.ts +3 -0
  280. package/cjs/icons/dnb/laptop_medium.js +26 -0
  281. package/cjs/icons/dnb/laptop_medium.js.map +1 -0
  282. package/cjs/icons/dnb/mobile.d.ts +3 -0
  283. package/cjs/icons/dnb/mobile.js +23 -0
  284. package/cjs/icons/dnb/mobile.js.map +1 -0
  285. package/cjs/icons/dnb/mobile_medium.d.ts +3 -0
  286. package/cjs/icons/dnb/mobile_medium.js +23 -0
  287. package/cjs/icons/dnb/mobile_medium.js.map +1 -0
  288. package/cjs/icons/dnb/money_left.d.ts +3 -0
  289. package/cjs/icons/dnb/money_left.js +25 -0
  290. package/cjs/icons/dnb/money_left.js.map +1 -0
  291. package/cjs/icons/dnb/money_left_medium.d.ts +3 -0
  292. package/cjs/icons/dnb/money_left_medium.js +26 -0
  293. package/cjs/icons/dnb/money_left_medium.js.map +1 -0
  294. package/cjs/icons/dnb/scan.js +5 -2
  295. package/cjs/icons/dnb/scan.js.map +1 -1
  296. package/cjs/icons/dnb/scan_medium.js +8 -12
  297. package/cjs/icons/dnb/scan_medium.js.map +1 -1
  298. package/cjs/icons/dnb/secondary_icons.d.ts +9 -1
  299. package/cjs/icons/dnb/secondary_icons.js +56 -0
  300. package/cjs/icons/dnb/secondary_icons.js.map +1 -1
  301. package/cjs/icons/dnb/secondary_icons_medium.d.ts +9 -1
  302. package/cjs/icons/dnb/secondary_icons_medium.js +56 -0
  303. package/cjs/icons/dnb/secondary_icons_medium.js.map +1 -1
  304. package/cjs/icons/dnb/teenager.d.ts +3 -0
  305. package/cjs/icons/dnb/teenager.js +26 -0
  306. package/cjs/icons/dnb/teenager.js.map +1 -0
  307. package/cjs/icons/dnb/teenager_medium.d.ts +3 -0
  308. package/cjs/icons/dnb/teenager_medium.js +26 -0
  309. package/cjs/icons/dnb/teenager_medium.js.map +1 -0
  310. package/cjs/icons/envelope_open.d.ts +3 -0
  311. package/cjs/icons/envelope_open.js +11 -0
  312. package/cjs/icons/envelope_open.js.map +1 -0
  313. package/cjs/icons/envelope_open_medium.d.ts +3 -0
  314. package/cjs/icons/envelope_open_medium.js +11 -0
  315. package/cjs/icons/envelope_open_medium.js.map +1 -0
  316. package/cjs/icons/index.d.ts +17 -1
  317. package/cjs/icons/index.js +112 -0
  318. package/cjs/icons/index.js.map +1 -1
  319. package/cjs/icons/laptop.d.ts +3 -0
  320. package/cjs/icons/laptop.js +11 -0
  321. package/cjs/icons/laptop.js.map +1 -0
  322. package/cjs/icons/laptop_medium.d.ts +3 -0
  323. package/cjs/icons/laptop_medium.js +11 -0
  324. package/cjs/icons/laptop_medium.js.map +1 -0
  325. package/cjs/icons/mobile.d.ts +3 -0
  326. package/cjs/icons/mobile.js +11 -0
  327. package/cjs/icons/mobile.js.map +1 -0
  328. package/cjs/icons/mobile_medium.d.ts +3 -0
  329. package/cjs/icons/mobile_medium.js +11 -0
  330. package/cjs/icons/mobile_medium.js.map +1 -0
  331. package/cjs/icons/money_left.d.ts +3 -0
  332. package/cjs/icons/money_left.js +11 -0
  333. package/cjs/icons/money_left.js.map +1 -0
  334. package/cjs/icons/money_left_medium.d.ts +3 -0
  335. package/cjs/icons/money_left_medium.js +11 -0
  336. package/cjs/icons/money_left_medium.js.map +1 -0
  337. package/cjs/icons/teenager.d.ts +3 -0
  338. package/cjs/icons/teenager.js +11 -0
  339. package/cjs/icons/teenager.js.map +1 -0
  340. package/cjs/icons/teenager_medium.d.ts +3 -0
  341. package/cjs/icons/teenager_medium.js +11 -0
  342. package/cjs/icons/teenager_medium.js.map +1 -0
  343. package/cjs/shared/Eufemia.d.ts +1 -1
  344. package/cjs/shared/Eufemia.js +2 -2
  345. package/cjs/shared/Eufemia.js.map +1 -1
  346. package/cjs/shared/component-helper.d.ts +1 -0
  347. package/cjs/shared/component-helper.js +6 -1
  348. package/cjs/shared/component-helper.js.map +1 -1
  349. package/cjs/style/dnb-ui-basis.css +3 -0
  350. package/cjs/style/dnb-ui-basis.min.css +1 -1
  351. package/cjs/style/dnb-ui-body.css +3 -1
  352. package/cjs/style/dnb-ui-body.min.css +1 -1
  353. package/cjs/style/dnb-ui-components.css +124 -179
  354. package/cjs/style/dnb-ui-components.min.css +3 -3
  355. package/cjs/style/dnb-ui-core.css +4 -1
  356. package/cjs/style/dnb-ui-core.min.css +1 -1
  357. package/cjs/style/dnb-ui-elements.css +2 -4
  358. package/cjs/style/dnb-ui-elements.min.css +1 -1
  359. package/cjs/style/dnb-ui-extensions.css +42 -41
  360. package/cjs/style/dnb-ui-extensions.min.css +1 -1
  361. package/cjs/style/dnb-ui-forms.css +42 -39
  362. package/cjs/style/dnb-ui-forms.min.css +1 -1
  363. package/cjs/style/themes/theme-eiendom/eiendom-theme-basis.css +16 -16
  364. package/cjs/style/themes/theme-eiendom/eiendom-theme-basis.min.css +1 -1
  365. package/cjs/style/themes/theme-eiendom/eiendom-theme-components.css +207 -278
  366. package/cjs/style/themes/theme-eiendom/eiendom-theme-components.min.css +7 -7
  367. package/cjs/style/themes/theme-eiendom/eiendom-theme-components.scss +1 -0
  368. package/cjs/style/themes/theme-eiendom/eiendom-theme-elements.css +16 -16
  369. package/cjs/style/themes/theme-eiendom/eiendom-theme-elements.min.css +1 -1
  370. package/cjs/style/themes/theme-eiendom/eiendom-theme-extensions.css +42 -41
  371. package/cjs/style/themes/theme-eiendom/eiendom-theme-extensions.min.css +1 -1
  372. package/cjs/style/themes/theme-eiendom/eiendom-theme-forms.css +42 -39
  373. package/cjs/style/themes/theme-eiendom/eiendom-theme-forms.min.css +1 -1
  374. package/cjs/style/themes/theme-sbanken/sbanken-theme-basis.css +2 -4
  375. package/cjs/style/themes/theme-sbanken/sbanken-theme-basis.min.css +1 -1
  376. package/cjs/style/themes/theme-sbanken/sbanken-theme-components.css +204 -392
  377. package/cjs/style/themes/theme-sbanken/sbanken-theme-components.min.css +7 -7
  378. package/cjs/style/themes/theme-sbanken/sbanken-theme-components.scss +1 -0
  379. package/cjs/style/themes/theme-sbanken/sbanken-theme-elements.css +2 -4
  380. package/cjs/style/themes/theme-sbanken/sbanken-theme-elements.min.css +1 -1
  381. package/cjs/style/themes/theme-sbanken/sbanken-theme-extensions.css +42 -41
  382. package/cjs/style/themes/theme-sbanken/sbanken-theme-extensions.min.css +1 -1
  383. package/cjs/style/themes/theme-sbanken/sbanken-theme-forms.css +42 -39
  384. package/cjs/style/themes/theme-sbanken/sbanken-theme-forms.min.css +1 -1
  385. package/cjs/style/themes/theme-ui/ui-theme-basis.css +16 -16
  386. package/cjs/style/themes/theme-ui/ui-theme-basis.min.css +1 -1
  387. package/cjs/style/themes/theme-ui/ui-theme-components.css +207 -277
  388. package/cjs/style/themes/theme-ui/ui-theme-components.min.css +8 -8
  389. package/cjs/style/themes/theme-ui/ui-theme-components.scss +1 -0
  390. package/cjs/style/themes/theme-ui/ui-theme-elements.css +16 -16
  391. package/cjs/style/themes/theme-ui/ui-theme-elements.min.css +1 -1
  392. package/cjs/style/themes/theme-ui/ui-theme-extensions.css +42 -41
  393. package/cjs/style/themes/theme-ui/ui-theme-extensions.min.css +1 -1
  394. package/cjs/style/themes/theme-ui/ui-theme-forms.css +42 -39
  395. package/cjs/style/themes/theme-ui/ui-theme-forms.min.css +1 -1
  396. package/cjs/style/themes/theme-ui/ui-theme-tags.css +11 -25
  397. package/cjs/style/themes/theme-ui/ui-theme-tags.min.css +1 -1
  398. package/components/accordion/style/themes/dnb-accordion-theme-sbanken.css +0 -17
  399. package/components/accordion/style/themes/dnb-accordion-theme-sbanken.min.css +1 -1
  400. package/components/accordion/style/themes/dnb-accordion-theme-ui.css +0 -16
  401. package/components/accordion/style/themes/dnb-accordion-theme-ui.min.css +2 -2
  402. package/components/anchor/style/anchor-mixins.scss +8 -6
  403. package/components/anchor/style/dnb-anchor.css +45 -60
  404. package/components/anchor/style/dnb-anchor.min.css +1 -1
  405. package/components/anchor/style/themes/dnb-anchor-theme-eiendom.css +0 -6
  406. package/components/anchor/style/themes/dnb-anchor-theme-eiendom.min.css +1 -1
  407. package/components/anchor/style/themes/dnb-anchor-theme-sbanken.css +8 -52
  408. package/components/anchor/style/themes/dnb-anchor-theme-sbanken.min.css +1 -1
  409. package/components/anchor/style/themes/dnb-anchor-theme-ui.css +0 -6
  410. package/components/anchor/style/themes/dnb-anchor-theme-ui.min.css +1 -1
  411. package/components/autocomplete/style/dnb-autocomplete.css +1 -0
  412. package/components/autocomplete/style/dnb-autocomplete.min.css +1 -1
  413. package/components/breadcrumb/style/dnb-breadcrumb.css +0 -2
  414. package/components/breadcrumb/style/dnb-breadcrumb.min.css +1 -1
  415. package/components/button/style/dnb-button.css +1 -0
  416. package/components/button/style/dnb-button.min.css +1 -1
  417. package/components/button/style/themes/dnb-button-theme-eiendom.css +0 -25
  418. package/components/button/style/themes/dnb-button-theme-eiendom.min.css +1 -1
  419. package/components/button/style/themes/dnb-button-theme-sbanken.css +0 -72
  420. package/components/button/style/themes/dnb-button-theme-sbanken.min.css +3 -3
  421. package/components/button/style/themes/dnb-button-theme-ui.css +0 -25
  422. package/components/button/style/themes/dnb-button-theme-ui.min.css +1 -1
  423. package/components/card/Card.d.ts +1 -1
  424. package/components/card/Card.js +46 -9
  425. package/components/card/Card.js.map +1 -1
  426. package/components/card/style/dnb-card.css +0 -20
  427. package/components/card/style/dnb-card.min.css +1 -1
  428. package/components/card/style/dnb-card.scss +0 -20
  429. package/components/card/style/themes/dnb-card-theme-ui.css +26 -0
  430. package/components/card/style/themes/dnb-card-theme-ui.min.css +1 -0
  431. package/components/card/style/themes/dnb-card-theme-ui.scss +35 -0
  432. package/components/date-picker/DatePicker.d.ts +5 -1
  433. package/components/date-picker/DatePicker.js +4 -2
  434. package/components/date-picker/DatePicker.js.map +1 -1
  435. package/components/date-picker/DatePickerInput.js +20 -6
  436. package/components/date-picker/DatePickerInput.js.map +1 -1
  437. package/components/date-picker/DatePickerProvider.js +2 -2
  438. package/components/date-picker/DatePickerProvider.js.map +1 -1
  439. package/components/date-picker/style/dnb-date-picker.css +0 -1
  440. package/components/date-picker/style/dnb-date-picker.min.css +1 -1
  441. package/components/date-picker/style/themes/dnb-date-picker-theme-ui.css +3 -2
  442. package/components/date-picker/style/themes/dnb-date-picker-theme-ui.min.css +1 -1
  443. package/components/date-picker/style/themes/dnb-date-picker-theme-ui.scss +5 -17
  444. package/components/dialog/style/dnb-dialog.css +0 -1
  445. package/components/dialog/style/dnb-dialog.min.css +1 -1
  446. package/components/flex/Container.d.ts +2 -4
  447. package/components/flex/Container.js.map +1 -1
  448. package/components/flex/Item.d.ts +2 -3
  449. package/components/flex/Item.js +2 -1
  450. package/components/flex/Item.js.map +1 -1
  451. package/components/flex/style/dnb-flex.css +0 -1
  452. package/components/flex/style/dnb-flex.min.css +1 -1
  453. package/components/global-error/style/dnb-global-error.css +0 -4
  454. package/components/global-error/style/dnb-global-error.min.css +1 -1
  455. package/components/grid/style/dnb-grid.css +0 -2
  456. package/components/grid/style/dnb-grid.min.css +1 -1
  457. package/components/info-card/style/dnb-info-card.css +1 -4
  458. package/components/info-card/style/dnb-info-card.min.css +1 -1
  459. package/components/input/Input.d.ts +3 -2
  460. package/components/input/style/dnb-input.css +6 -0
  461. package/components/input/style/dnb-input.min.css +1 -1
  462. package/components/input/style/themes/dnb-input-theme-sbanken.css +0 -9
  463. package/components/input/style/themes/dnb-input-theme-sbanken.min.css +1 -1
  464. package/components/input-masked/InputMaskedHooks.js +6 -6
  465. package/components/input-masked/InputMaskedHooks.js.map +1 -1
  466. package/components/input-masked/InputMaskedUtils.d.ts +4 -2
  467. package/components/input-masked/InputMaskedUtils.js +9 -7
  468. package/components/input-masked/InputMaskedUtils.js.map +1 -1
  469. package/components/input-masked/MultiInputMask.d.ts +1 -1
  470. package/components/input-masked/MultiInputMask.js +4 -2
  471. package/components/input-masked/MultiInputMask.js.map +1 -1
  472. package/components/input-masked/TextMask.js +15 -4
  473. package/components/input-masked/TextMask.js.map +1 -1
  474. package/components/input-masked/style/dnb-input-masked.css +3 -1
  475. package/components/input-masked/style/dnb-input-masked.min.css +1 -1
  476. package/components/input-masked/style/dnb-input-masked.scss +5 -0
  477. package/components/input-masked/text-mask/InputModeNumber.d.ts +20 -0
  478. package/components/input-masked/text-mask/InputModeNumber.js +84 -0
  479. package/components/input-masked/text-mask/InputModeNumber.js.map +1 -0
  480. package/components/input-masked/text-mask/createTextMaskInputElement.js +1 -1
  481. package/components/input-masked/text-mask/createTextMaskInputElement.js.map +1 -1
  482. package/components/pagination/style/dnb-pagination.css +0 -1
  483. package/components/pagination/style/dnb-pagination.min.css +1 -1
  484. package/components/progress-indicator/style/dnb-progress-indicator.css +1 -4
  485. package/components/progress-indicator/style/dnb-progress-indicator.min.css +1 -1
  486. package/components/radio/RadioGroup.js +0 -1
  487. package/components/radio/RadioGroup.js.map +1 -1
  488. package/components/section/Section.d.ts +7 -0
  489. package/components/section/Section.js +10 -12
  490. package/components/section/Section.js.map +1 -1
  491. package/components/section/style/dnb-section.css +8 -8
  492. package/components/section/style/dnb-section.min.css +1 -1
  493. package/components/section/style/dnb-section.scss +8 -4
  494. package/components/section/style/themes/dnb-section-theme-ui.css +11 -10
  495. package/components/section/style/themes/dnb-section-theme-ui.min.css +1 -1
  496. package/components/skeleton/style/dnb-skeleton.css +0 -2
  497. package/components/skeleton/style/dnb-skeleton.min.css +1 -1
  498. package/components/skip-content/style/dnb-skip-content.css +1 -4
  499. package/components/skip-content/style/dnb-skip-content.min.css +1 -1
  500. package/components/table/style/dnb-table.css +1 -4
  501. package/components/table/style/dnb-table.min.css +1 -1
  502. package/components/table/style/themes/dnb-table-theme-sbanken.css +0 -3
  503. package/components/table/style/themes/dnb-table-theme-sbanken.min.css +1 -1
  504. package/components/tabs/style/dnb-tabs.css +1 -0
  505. package/components/tabs/style/dnb-tabs.min.css +1 -1
  506. package/components/tag/style/dnb-tag.css +0 -1
  507. package/components/tag/style/dnb-tag.min.css +1 -1
  508. package/components/textarea/Textarea.js +4 -9
  509. package/components/textarea/Textarea.js.map +1 -1
  510. package/components/textarea/style/dnb-textarea.css +5 -2
  511. package/components/textarea/style/dnb-textarea.min.css +1 -1
  512. package/components/textarea/style/dnb-textarea.scss +2 -2
  513. package/components/toggle-button/ToggleButtonGroup.js +0 -1
  514. package/components/toggle-button/ToggleButtonGroup.js.map +1 -1
  515. package/components/toggle-button/style/dnb-toggle-button.css +4 -6
  516. package/components/toggle-button/style/dnb-toggle-button.min.css +1 -1
  517. package/components/toggle-button/style/dnb-toggle-button.scss +4 -10
  518. package/components/tooltip/style/dnb-tooltip.css +1 -0
  519. package/components/tooltip/style/dnb-tooltip.min.css +1 -1
  520. package/components/tooltip/style/dnb-tooltip.scss +2 -0
  521. package/components/upload/style/dnb-upload.css +3 -12
  522. package/components/upload/style/dnb-upload.min.css +1 -1
  523. package/components/upload/types.d.ts +1 -1
  524. package/components/upload/types.js.map +1 -1
  525. package/es/components/accordion/style/themes/dnb-accordion-theme-sbanken.css +0 -17
  526. package/es/components/accordion/style/themes/dnb-accordion-theme-sbanken.min.css +1 -1
  527. package/es/components/accordion/style/themes/dnb-accordion-theme-ui.css +0 -16
  528. package/es/components/accordion/style/themes/dnb-accordion-theme-ui.min.css +2 -2
  529. package/es/components/anchor/style/anchor-mixins.scss +8 -6
  530. package/es/components/anchor/style/dnb-anchor.css +45 -60
  531. package/es/components/anchor/style/dnb-anchor.min.css +1 -1
  532. package/es/components/anchor/style/themes/dnb-anchor-theme-eiendom.css +0 -6
  533. package/es/components/anchor/style/themes/dnb-anchor-theme-eiendom.min.css +1 -1
  534. package/es/components/anchor/style/themes/dnb-anchor-theme-sbanken.css +8 -52
  535. package/es/components/anchor/style/themes/dnb-anchor-theme-sbanken.min.css +1 -1
  536. package/es/components/anchor/style/themes/dnb-anchor-theme-ui.css +0 -6
  537. package/es/components/anchor/style/themes/dnb-anchor-theme-ui.min.css +1 -1
  538. package/es/components/autocomplete/style/dnb-autocomplete.css +1 -0
  539. package/es/components/autocomplete/style/dnb-autocomplete.min.css +1 -1
  540. package/es/components/breadcrumb/style/dnb-breadcrumb.css +0 -2
  541. package/es/components/breadcrumb/style/dnb-breadcrumb.min.css +1 -1
  542. package/es/components/button/style/dnb-button.css +1 -0
  543. package/es/components/button/style/dnb-button.min.css +1 -1
  544. package/es/components/button/style/themes/dnb-button-theme-eiendom.css +0 -25
  545. package/es/components/button/style/themes/dnb-button-theme-eiendom.min.css +1 -1
  546. package/es/components/button/style/themes/dnb-button-theme-sbanken.css +0 -72
  547. package/es/components/button/style/themes/dnb-button-theme-sbanken.min.css +3 -3
  548. package/es/components/button/style/themes/dnb-button-theme-ui.css +0 -25
  549. package/es/components/button/style/themes/dnb-button-theme-ui.min.css +1 -1
  550. package/es/components/card/Card.d.ts +1 -1
  551. package/es/components/card/Card.js +46 -9
  552. package/es/components/card/Card.js.map +1 -1
  553. package/es/components/card/style/dnb-card.css +0 -20
  554. package/es/components/card/style/dnb-card.min.css +1 -1
  555. package/es/components/card/style/dnb-card.scss +0 -20
  556. package/es/components/card/style/themes/dnb-card-theme-ui.css +26 -0
  557. package/es/components/card/style/themes/dnb-card-theme-ui.min.css +1 -0
  558. package/es/components/card/style/themes/dnb-card-theme-ui.scss +35 -0
  559. package/es/components/date-picker/DatePicker.d.ts +5 -1
  560. package/es/components/date-picker/DatePicker.js +4 -2
  561. package/es/components/date-picker/DatePicker.js.map +1 -1
  562. package/es/components/date-picker/DatePickerInput.js +20 -6
  563. package/es/components/date-picker/DatePickerInput.js.map +1 -1
  564. package/es/components/date-picker/DatePickerProvider.js +2 -2
  565. package/es/components/date-picker/DatePickerProvider.js.map +1 -1
  566. package/es/components/date-picker/style/dnb-date-picker.css +0 -1
  567. package/es/components/date-picker/style/dnb-date-picker.min.css +1 -1
  568. package/es/components/date-picker/style/themes/dnb-date-picker-theme-ui.css +3 -2
  569. package/es/components/date-picker/style/themes/dnb-date-picker-theme-ui.min.css +1 -1
  570. package/es/components/date-picker/style/themes/dnb-date-picker-theme-ui.scss +5 -17
  571. package/es/components/dialog/style/dnb-dialog.css +0 -1
  572. package/es/components/dialog/style/dnb-dialog.min.css +1 -1
  573. package/es/components/flex/Container.d.ts +2 -4
  574. package/es/components/flex/Container.js.map +1 -1
  575. package/es/components/flex/Item.d.ts +2 -3
  576. package/es/components/flex/Item.js +2 -1
  577. package/es/components/flex/Item.js.map +1 -1
  578. package/es/components/flex/style/dnb-flex.css +0 -1
  579. package/es/components/flex/style/dnb-flex.min.css +1 -1
  580. package/es/components/global-error/style/dnb-global-error.css +0 -4
  581. package/es/components/global-error/style/dnb-global-error.min.css +1 -1
  582. package/es/components/grid/style/dnb-grid.css +0 -2
  583. package/es/components/grid/style/dnb-grid.min.css +1 -1
  584. package/es/components/info-card/style/dnb-info-card.css +1 -4
  585. package/es/components/info-card/style/dnb-info-card.min.css +1 -1
  586. package/es/components/input/Input.d.ts +3 -2
  587. package/es/components/input/style/dnb-input.css +6 -0
  588. package/es/components/input/style/dnb-input.min.css +1 -1
  589. package/es/components/input/style/themes/dnb-input-theme-sbanken.css +0 -9
  590. package/es/components/input/style/themes/dnb-input-theme-sbanken.min.css +1 -1
  591. package/es/components/input-masked/InputMaskedHooks.js +6 -6
  592. package/es/components/input-masked/InputMaskedHooks.js.map +1 -1
  593. package/es/components/input-masked/InputMaskedUtils.d.ts +4 -2
  594. package/es/components/input-masked/InputMaskedUtils.js +9 -7
  595. package/es/components/input-masked/InputMaskedUtils.js.map +1 -1
  596. package/es/components/input-masked/MultiInputMask.d.ts +1 -1
  597. package/es/components/input-masked/MultiInputMask.js +4 -2
  598. package/es/components/input-masked/MultiInputMask.js.map +1 -1
  599. package/es/components/input-masked/TextMask.js +15 -4
  600. package/es/components/input-masked/TextMask.js.map +1 -1
  601. package/es/components/input-masked/style/dnb-input-masked.css +3 -1
  602. package/es/components/input-masked/style/dnb-input-masked.min.css +1 -1
  603. package/es/components/input-masked/style/dnb-input-masked.scss +5 -0
  604. package/es/components/input-masked/text-mask/InputModeNumber.d.ts +20 -0
  605. package/es/components/input-masked/text-mask/InputModeNumber.js +84 -0
  606. package/es/components/input-masked/text-mask/InputModeNumber.js.map +1 -0
  607. package/es/components/input-masked/text-mask/createTextMaskInputElement.js +1 -1
  608. package/es/components/input-masked/text-mask/createTextMaskInputElement.js.map +1 -1
  609. package/es/components/pagination/style/dnb-pagination.css +0 -1
  610. package/es/components/pagination/style/dnb-pagination.min.css +1 -1
  611. package/es/components/progress-indicator/style/dnb-progress-indicator.css +1 -4
  612. package/es/components/progress-indicator/style/dnb-progress-indicator.min.css +1 -1
  613. package/es/components/radio/RadioGroup.js +0 -1
  614. package/es/components/radio/RadioGroup.js.map +1 -1
  615. package/es/components/section/Section.d.ts +7 -0
  616. package/es/components/section/Section.js +10 -12
  617. package/es/components/section/Section.js.map +1 -1
  618. package/es/components/section/style/dnb-section.css +8 -8
  619. package/es/components/section/style/dnb-section.min.css +1 -1
  620. package/es/components/section/style/dnb-section.scss +8 -4
  621. package/es/components/section/style/themes/dnb-section-theme-ui.css +11 -10
  622. package/es/components/section/style/themes/dnb-section-theme-ui.min.css +1 -1
  623. package/es/components/skeleton/style/dnb-skeleton.css +0 -2
  624. package/es/components/skeleton/style/dnb-skeleton.min.css +1 -1
  625. package/es/components/skip-content/style/dnb-skip-content.css +1 -4
  626. package/es/components/skip-content/style/dnb-skip-content.min.css +1 -1
  627. package/es/components/table/style/dnb-table.css +1 -4
  628. package/es/components/table/style/dnb-table.min.css +1 -1
  629. package/es/components/table/style/themes/dnb-table-theme-sbanken.css +0 -3
  630. package/es/components/table/style/themes/dnb-table-theme-sbanken.min.css +1 -1
  631. package/es/components/tabs/style/dnb-tabs.css +1 -0
  632. package/es/components/tabs/style/dnb-tabs.min.css +1 -1
  633. package/es/components/tag/style/dnb-tag.css +0 -1
  634. package/es/components/tag/style/dnb-tag.min.css +1 -1
  635. package/es/components/textarea/Textarea.js +4 -9
  636. package/es/components/textarea/Textarea.js.map +1 -1
  637. package/es/components/textarea/style/dnb-textarea.css +5 -2
  638. package/es/components/textarea/style/dnb-textarea.min.css +1 -1
  639. package/es/components/textarea/style/dnb-textarea.scss +2 -2
  640. package/es/components/toggle-button/ToggleButtonGroup.js +0 -1
  641. package/es/components/toggle-button/ToggleButtonGroup.js.map +1 -1
  642. package/es/components/toggle-button/style/dnb-toggle-button.css +4 -6
  643. package/es/components/toggle-button/style/dnb-toggle-button.min.css +1 -1
  644. package/es/components/toggle-button/style/dnb-toggle-button.scss +4 -10
  645. package/es/components/tooltip/style/dnb-tooltip.css +1 -0
  646. package/es/components/tooltip/style/dnb-tooltip.min.css +1 -1
  647. package/es/components/tooltip/style/dnb-tooltip.scss +2 -0
  648. package/es/components/upload/style/dnb-upload.css +3 -12
  649. package/es/components/upload/style/dnb-upload.min.css +1 -1
  650. package/es/components/upload/types.d.ts +1 -1
  651. package/es/components/upload/types.js.map +1 -1
  652. package/es/extensions/forms/DataContext/Context.d.ts +1 -0
  653. package/es/extensions/forms/DataContext/Context.js +1 -0
  654. package/es/extensions/forms/DataContext/Context.js.map +1 -1
  655. package/es/extensions/forms/DataContext/Provider/Provider.d.ts +6 -1
  656. package/es/extensions/forms/DataContext/Provider/Provider.js +37 -13
  657. package/es/extensions/forms/DataContext/Provider/Provider.js.map +1 -1
  658. package/es/extensions/forms/Field/ArraySelection/style/dnb-array-selection.css +0 -2
  659. package/es/extensions/forms/Field/ArraySelection/style/dnb-array-selection.min.css +1 -1
  660. package/es/extensions/forms/Field/BankAccountNumber/BankAccountNumber.js +2 -1
  661. package/es/extensions/forms/Field/BankAccountNumber/BankAccountNumber.js.map +1 -1
  662. package/es/extensions/forms/Field/Date/Date.js +3 -1
  663. package/es/extensions/forms/Field/Date/Date.js.map +1 -1
  664. package/es/extensions/forms/Field/Email/Email.js +7 -5
  665. package/es/extensions/forms/Field/Email/Email.js.map +1 -1
  666. package/es/extensions/forms/Field/Expiry/Expiry.js +26 -4
  667. package/es/extensions/forms/Field/Expiry/Expiry.js.map +1 -1
  668. package/es/extensions/forms/Field/NationalIdentityNumber/NationalIdentityNumber.js +2 -1
  669. package/es/extensions/forms/Field/NationalIdentityNumber/NationalIdentityNumber.js.map +1 -1
  670. package/es/extensions/forms/Field/OrganizationNumber/OrganizationNumber.js +2 -1
  671. package/es/extensions/forms/Field/OrganizationNumber/OrganizationNumber.js.map +1 -1
  672. package/es/extensions/forms/Field/PhoneNumber/PhoneNumber.js +59 -21
  673. package/es/extensions/forms/Field/PhoneNumber/PhoneNumber.js.map +1 -1
  674. package/es/extensions/forms/Field/PhoneNumber/style/dnb-phone-number.css +3 -0
  675. package/es/extensions/forms/Field/PhoneNumber/style/dnb-phone-number.min.css +1 -1
  676. package/es/extensions/forms/Field/PhoneNumber/style/dnb-phone-number.scss +4 -0
  677. package/es/extensions/forms/Field/PostalCodeAndCity/PostalCodeAndCity.js +3 -1
  678. package/es/extensions/forms/Field/PostalCodeAndCity/PostalCodeAndCity.js.map +1 -1
  679. package/es/extensions/forms/Field/PostalCodeAndCity/style/dnb-postal-code-and-city.css +0 -1
  680. package/es/extensions/forms/Field/PostalCodeAndCity/style/dnb-postal-code-and-city.min.css +1 -1
  681. package/es/extensions/forms/Field/Selection/Selection.js +58 -50
  682. package/es/extensions/forms/Field/Selection/Selection.js.map +1 -1
  683. package/es/extensions/forms/Field/Selection/style/dnb-selection.css +6 -6
  684. package/es/extensions/forms/Field/Selection/style/dnb-selection.min.css +1 -1
  685. package/es/extensions/forms/Field/Selection/style/dnb-selection.scss +15 -10
  686. package/es/extensions/forms/Field/String/String.d.ts +1 -0
  687. package/es/extensions/forms/Field/String/String.js +13 -7
  688. package/es/extensions/forms/Field/String/String.js.map +1 -1
  689. package/es/extensions/forms/FieldBlock/FieldBlock.js +2 -2
  690. package/es/extensions/forms/FieldBlock/FieldBlock.js.map +1 -1
  691. package/es/extensions/forms/FieldBlock/style/dnb-field-block.css +1 -1
  692. package/es/extensions/forms/FieldBlock/style/dnb-field-block.min.css +1 -1
  693. package/es/extensions/forms/FieldBlock/style/dnb-field-block.scss +1 -1
  694. package/es/extensions/forms/Form/ButtonRow/style/dnb-form-button-row.css +8 -1
  695. package/es/extensions/forms/Form/ButtonRow/style/dnb-form-button-row.min.css +1 -1
  696. package/es/extensions/forms/Form/ButtonRow/style/dnb-form-button-row.scss +10 -0
  697. package/es/extensions/forms/Form/Handler/Handler.js +2 -2
  698. package/es/extensions/forms/Form/Handler/Handler.js.map +1 -1
  699. package/es/extensions/forms/Form/MainHeading/style/dnb-form-main-heading.css +7 -8
  700. package/es/extensions/forms/Form/MainHeading/style/dnb-form-main-heading.min.css +1 -1
  701. package/es/extensions/forms/Form/MainHeading/style/dnb-form-main-heading.scss +6 -1
  702. package/es/extensions/forms/Form/SubHeading/style/dnb-form-sub-heading.css +3 -3
  703. package/es/extensions/forms/Form/SubHeading/style/dnb-form-sub-heading.min.css +1 -1
  704. package/es/extensions/forms/Form/SubHeading/style/dnb-form-sub-heading.scss +2 -0
  705. package/es/extensions/forms/StepsLayout/NextButton/NextButton.js +3 -2
  706. package/es/extensions/forms/StepsLayout/NextButton/NextButton.js.map +1 -1
  707. package/es/extensions/forms/StepsLayout/PreviousButton/PreviousButton.js +3 -2
  708. package/es/extensions/forms/StepsLayout/PreviousButton/PreviousButton.js.map +1 -1
  709. package/es/extensions/forms/StepsLayout/StepsLayout.js +1 -1
  710. package/es/extensions/forms/StepsLayout/StepsLayout.js.map +1 -1
  711. package/es/extensions/forms/StepsLayout/style/dnb-steps-layout.css +14 -17
  712. package/es/extensions/forms/StepsLayout/style/dnb-steps-layout.min.css +1 -1
  713. package/es/extensions/forms/StepsLayout/style/dnb-steps-layout.scss +15 -16
  714. package/es/extensions/forms/constants/countries.js +4 -2
  715. package/es/extensions/forms/constants/countries.js.map +1 -1
  716. package/es/extensions/forms/hooks/useDataValue.d.ts +3 -0
  717. package/es/extensions/forms/hooks/useDataValue.js +94 -45
  718. package/es/extensions/forms/hooks/useDataValue.js.map +1 -1
  719. package/es/extensions/forms/style/dnb-forms.css +42 -39
  720. package/es/extensions/forms/style/dnb-forms.min.css +1 -1
  721. package/es/extensions/forms/types.d.ts +12 -2
  722. package/es/extensions/forms/types.js +1 -1
  723. package/es/extensions/forms/types.js.map +1 -1
  724. package/es/extensions/payment-card/style/dnb-payment-card.css +0 -2
  725. package/es/extensions/payment-card/style/dnb-payment-card.min.css +1 -1
  726. package/es/icons/browser.d.ts +3 -0
  727. package/es/icons/browser.js +3 -0
  728. package/es/icons/browser.js.map +1 -0
  729. package/es/icons/browser_medium.d.ts +3 -0
  730. package/es/icons/browser_medium.js +3 -0
  731. package/es/icons/browser_medium.js.map +1 -0
  732. package/es/icons/digipass_corporate.d.ts +3 -0
  733. package/es/icons/digipass_corporate.js +3 -0
  734. package/es/icons/digipass_corporate.js.map +1 -0
  735. package/es/icons/digipass_corporate_medium.d.ts +3 -0
  736. package/es/icons/digipass_corporate_medium.js +3 -0
  737. package/es/icons/digipass_corporate_medium.js.map +1 -0
  738. package/es/icons/digipass_private.d.ts +3 -0
  739. package/es/icons/digipass_private.js +3 -0
  740. package/es/icons/digipass_private.js.map +1 -0
  741. package/es/icons/digipass_private_medium.d.ts +3 -0
  742. package/es/icons/digipass_private_medium.js +3 -0
  743. package/es/icons/digipass_private_medium.js.map +1 -0
  744. package/es/icons/dnb/browser.d.ts +3 -0
  745. package/es/icons/dnb/browser.js +17 -0
  746. package/es/icons/dnb/browser.js.map +1 -0
  747. package/es/icons/dnb/browser_medium.d.ts +3 -0
  748. package/es/icons/dnb/browser_medium.js +17 -0
  749. package/es/icons/dnb/browser_medium.js.map +1 -0
  750. package/es/icons/dnb/coins_1.js +1 -1
  751. package/es/icons/dnb/coins_1.js.map +1 -1
  752. package/es/icons/dnb/coins_1_medium.js +1 -1
  753. package/es/icons/dnb/coins_1_medium.js.map +1 -1
  754. package/es/icons/dnb/digipass_corporate.d.ts +3 -0
  755. package/es/icons/dnb/digipass_corporate.js +17 -0
  756. package/es/icons/dnb/digipass_corporate.js.map +1 -0
  757. package/es/icons/dnb/digipass_corporate_medium.d.ts +3 -0
  758. package/es/icons/dnb/digipass_corporate_medium.js +17 -0
  759. package/es/icons/dnb/digipass_corporate_medium.js.map +1 -0
  760. package/es/icons/dnb/digipass_private.d.ts +3 -0
  761. package/es/icons/dnb/digipass_private.js +17 -0
  762. package/es/icons/dnb/digipass_private.js.map +1 -0
  763. package/es/icons/dnb/digipass_private_medium.d.ts +3 -0
  764. package/es/icons/dnb/digipass_private_medium.js +17 -0
  765. package/es/icons/dnb/digipass_private_medium.js.map +1 -0
  766. package/es/icons/dnb/envelope_open.d.ts +3 -0
  767. package/es/icons/dnb/envelope_open.js +18 -0
  768. package/es/icons/dnb/envelope_open.js.map +1 -0
  769. package/es/icons/dnb/envelope_open_medium.d.ts +3 -0
  770. package/es/icons/dnb/envelope_open_medium.js +18 -0
  771. package/es/icons/dnb/envelope_open_medium.js.map +1 -0
  772. package/es/icons/dnb/icons-meta.json +230 -20
  773. package/es/icons/dnb/icons-svg.lock +1272 -1064
  774. package/es/icons/dnb/index.d.ts +17 -1
  775. package/es/icons/dnb/index.js +17 -1
  776. package/es/icons/dnb/index.js.map +1 -1
  777. package/es/icons/dnb/laptop.d.ts +3 -0
  778. package/es/icons/dnb/laptop.js +18 -0
  779. package/es/icons/dnb/laptop.js.map +1 -0
  780. package/es/icons/dnb/laptop_medium.d.ts +3 -0
  781. package/es/icons/dnb/laptop_medium.js +18 -0
  782. package/es/icons/dnb/laptop_medium.js.map +1 -0
  783. package/es/icons/dnb/mobile.d.ts +3 -0
  784. package/es/icons/dnb/mobile.js +15 -0
  785. package/es/icons/dnb/mobile.js.map +1 -0
  786. package/es/icons/dnb/mobile_medium.d.ts +3 -0
  787. package/es/icons/dnb/mobile_medium.js +15 -0
  788. package/es/icons/dnb/mobile_medium.js.map +1 -0
  789. package/es/icons/dnb/money_left.d.ts +3 -0
  790. package/es/icons/dnb/money_left.js +17 -0
  791. package/es/icons/dnb/money_left.js.map +1 -0
  792. package/es/icons/dnb/money_left_medium.d.ts +3 -0
  793. package/es/icons/dnb/money_left_medium.js +18 -0
  794. package/es/icons/dnb/money_left_medium.js.map +1 -0
  795. package/es/icons/dnb/scan.js +5 -2
  796. package/es/icons/dnb/scan.js.map +1 -1
  797. package/es/icons/dnb/scan_medium.js +8 -12
  798. package/es/icons/dnb/scan_medium.js.map +1 -1
  799. package/es/icons/dnb/secondary_icons.d.ts +9 -1
  800. package/es/icons/dnb/secondary_icons.js +9 -1
  801. package/es/icons/dnb/secondary_icons.js.map +1 -1
  802. package/es/icons/dnb/secondary_icons_medium.d.ts +9 -1
  803. package/es/icons/dnb/secondary_icons_medium.js +9 -1
  804. package/es/icons/dnb/secondary_icons_medium.js.map +1 -1
  805. package/es/icons/dnb/teenager.d.ts +3 -0
  806. package/es/icons/dnb/teenager.js +18 -0
  807. package/es/icons/dnb/teenager.js.map +1 -0
  808. package/es/icons/dnb/teenager_medium.d.ts +3 -0
  809. package/es/icons/dnb/teenager_medium.js +18 -0
  810. package/es/icons/dnb/teenager_medium.js.map +1 -0
  811. package/es/icons/envelope_open.d.ts +3 -0
  812. package/es/icons/envelope_open.js +3 -0
  813. package/es/icons/envelope_open.js.map +1 -0
  814. package/es/icons/envelope_open_medium.d.ts +3 -0
  815. package/es/icons/envelope_open_medium.js +3 -0
  816. package/es/icons/envelope_open_medium.js.map +1 -0
  817. package/es/icons/index.d.ts +17 -1
  818. package/es/icons/index.js +17 -1
  819. package/es/icons/index.js.map +1 -1
  820. package/es/icons/laptop.d.ts +3 -0
  821. package/es/icons/laptop.js +3 -0
  822. package/es/icons/laptop.js.map +1 -0
  823. package/es/icons/laptop_medium.d.ts +3 -0
  824. package/es/icons/laptop_medium.js +3 -0
  825. package/es/icons/laptop_medium.js.map +1 -0
  826. package/es/icons/mobile.d.ts +3 -0
  827. package/es/icons/mobile.js +3 -0
  828. package/es/icons/mobile.js.map +1 -0
  829. package/es/icons/mobile_medium.d.ts +3 -0
  830. package/es/icons/mobile_medium.js +3 -0
  831. package/es/icons/mobile_medium.js.map +1 -0
  832. package/es/icons/money_left.d.ts +3 -0
  833. package/es/icons/money_left.js +3 -0
  834. package/es/icons/money_left.js.map +1 -0
  835. package/es/icons/money_left_medium.d.ts +3 -0
  836. package/es/icons/money_left_medium.js +3 -0
  837. package/es/icons/money_left_medium.js.map +1 -0
  838. package/es/icons/teenager.d.ts +3 -0
  839. package/es/icons/teenager.js +3 -0
  840. package/es/icons/teenager.js.map +1 -0
  841. package/es/icons/teenager_medium.d.ts +3 -0
  842. package/es/icons/teenager_medium.js +3 -0
  843. package/es/icons/teenager_medium.js.map +1 -0
  844. package/es/shared/Eufemia.d.ts +1 -1
  845. package/es/shared/Eufemia.js +2 -2
  846. package/es/shared/Eufemia.js.map +1 -1
  847. package/es/shared/component-helper.d.ts +1 -0
  848. package/es/shared/component-helper.js +3 -0
  849. package/es/shared/component-helper.js.map +1 -1
  850. package/es/style/dnb-ui-basis.css +3 -0
  851. package/es/style/dnb-ui-basis.min.css +1 -1
  852. package/es/style/dnb-ui-body.css +3 -1
  853. package/es/style/dnb-ui-body.min.css +1 -1
  854. package/es/style/dnb-ui-components.css +124 -179
  855. package/es/style/dnb-ui-components.min.css +3 -3
  856. package/es/style/dnb-ui-core.css +4 -1
  857. package/es/style/dnb-ui-core.min.css +1 -1
  858. package/es/style/dnb-ui-elements.css +2 -4
  859. package/es/style/dnb-ui-elements.min.css +1 -1
  860. package/es/style/dnb-ui-extensions.css +42 -41
  861. package/es/style/dnb-ui-extensions.min.css +1 -1
  862. package/es/style/dnb-ui-forms.css +42 -39
  863. package/es/style/dnb-ui-forms.min.css +1 -1
  864. package/es/style/themes/theme-eiendom/eiendom-theme-basis.css +16 -16
  865. package/es/style/themes/theme-eiendom/eiendom-theme-basis.min.css +1 -1
  866. package/es/style/themes/theme-eiendom/eiendom-theme-components.css +207 -278
  867. package/es/style/themes/theme-eiendom/eiendom-theme-components.min.css +7 -7
  868. package/es/style/themes/theme-eiendom/eiendom-theme-components.scss +1 -0
  869. package/es/style/themes/theme-eiendom/eiendom-theme-elements.css +16 -16
  870. package/es/style/themes/theme-eiendom/eiendom-theme-elements.min.css +1 -1
  871. package/es/style/themes/theme-eiendom/eiendom-theme-extensions.css +42 -41
  872. package/es/style/themes/theme-eiendom/eiendom-theme-extensions.min.css +1 -1
  873. package/es/style/themes/theme-eiendom/eiendom-theme-forms.css +42 -39
  874. package/es/style/themes/theme-eiendom/eiendom-theme-forms.min.css +1 -1
  875. package/es/style/themes/theme-sbanken/sbanken-theme-basis.css +2 -4
  876. package/es/style/themes/theme-sbanken/sbanken-theme-basis.min.css +1 -1
  877. package/es/style/themes/theme-sbanken/sbanken-theme-components.css +204 -392
  878. package/es/style/themes/theme-sbanken/sbanken-theme-components.min.css +7 -7
  879. package/es/style/themes/theme-sbanken/sbanken-theme-components.scss +1 -0
  880. package/es/style/themes/theme-sbanken/sbanken-theme-elements.css +2 -4
  881. package/es/style/themes/theme-sbanken/sbanken-theme-elements.min.css +1 -1
  882. package/es/style/themes/theme-sbanken/sbanken-theme-extensions.css +42 -41
  883. package/es/style/themes/theme-sbanken/sbanken-theme-extensions.min.css +1 -1
  884. package/es/style/themes/theme-sbanken/sbanken-theme-forms.css +42 -39
  885. package/es/style/themes/theme-sbanken/sbanken-theme-forms.min.css +1 -1
  886. package/es/style/themes/theme-ui/ui-theme-basis.css +16 -16
  887. package/es/style/themes/theme-ui/ui-theme-basis.min.css +1 -1
  888. package/es/style/themes/theme-ui/ui-theme-components.css +207 -277
  889. package/es/style/themes/theme-ui/ui-theme-components.min.css +8 -8
  890. package/es/style/themes/theme-ui/ui-theme-components.scss +1 -0
  891. package/es/style/themes/theme-ui/ui-theme-elements.css +16 -16
  892. package/es/style/themes/theme-ui/ui-theme-elements.min.css +1 -1
  893. package/es/style/themes/theme-ui/ui-theme-extensions.css +42 -41
  894. package/es/style/themes/theme-ui/ui-theme-extensions.min.css +1 -1
  895. package/es/style/themes/theme-ui/ui-theme-forms.css +42 -39
  896. package/es/style/themes/theme-ui/ui-theme-forms.min.css +1 -1
  897. package/es/style/themes/theme-ui/ui-theme-tags.css +11 -25
  898. package/es/style/themes/theme-ui/ui-theme-tags.min.css +1 -1
  899. package/esm/dnb-ui-basis.min.mjs +1 -1
  900. package/esm/dnb-ui-components.min.mjs +1 -1
  901. package/esm/dnb-ui-elements.min.mjs +1 -1
  902. package/esm/dnb-ui-extensions.min.mjs +3 -3
  903. package/esm/dnb-ui-lib.min.mjs +1 -1
  904. package/extensions/forms/DataContext/Context.d.ts +1 -0
  905. package/extensions/forms/DataContext/Context.js +1 -0
  906. package/extensions/forms/DataContext/Context.js.map +1 -1
  907. package/extensions/forms/DataContext/Provider/Provider.d.ts +6 -1
  908. package/extensions/forms/DataContext/Provider/Provider.js +37 -13
  909. package/extensions/forms/DataContext/Provider/Provider.js.map +1 -1
  910. package/extensions/forms/Field/ArraySelection/style/dnb-array-selection.css +0 -2
  911. package/extensions/forms/Field/ArraySelection/style/dnb-array-selection.min.css +1 -1
  912. package/extensions/forms/Field/BankAccountNumber/BankAccountNumber.js +2 -1
  913. package/extensions/forms/Field/BankAccountNumber/BankAccountNumber.js.map +1 -1
  914. package/extensions/forms/Field/Date/Date.js +3 -1
  915. package/extensions/forms/Field/Date/Date.js.map +1 -1
  916. package/extensions/forms/Field/Email/Email.js +7 -5
  917. package/extensions/forms/Field/Email/Email.js.map +1 -1
  918. package/extensions/forms/Field/Expiry/Expiry.js +26 -4
  919. package/extensions/forms/Field/Expiry/Expiry.js.map +1 -1
  920. package/extensions/forms/Field/NationalIdentityNumber/NationalIdentityNumber.js +2 -1
  921. package/extensions/forms/Field/NationalIdentityNumber/NationalIdentityNumber.js.map +1 -1
  922. package/extensions/forms/Field/OrganizationNumber/OrganizationNumber.js +2 -1
  923. package/extensions/forms/Field/OrganizationNumber/OrganizationNumber.js.map +1 -1
  924. package/extensions/forms/Field/PhoneNumber/PhoneNumber.js +70 -31
  925. package/extensions/forms/Field/PhoneNumber/PhoneNumber.js.map +1 -1
  926. package/extensions/forms/Field/PhoneNumber/style/dnb-phone-number.css +3 -0
  927. package/extensions/forms/Field/PhoneNumber/style/dnb-phone-number.min.css +1 -1
  928. package/extensions/forms/Field/PhoneNumber/style/dnb-phone-number.scss +4 -0
  929. package/extensions/forms/Field/PostalCodeAndCity/PostalCodeAndCity.js +3 -1
  930. package/extensions/forms/Field/PostalCodeAndCity/PostalCodeAndCity.js.map +1 -1
  931. package/extensions/forms/Field/PostalCodeAndCity/style/dnb-postal-code-and-city.css +0 -1
  932. package/extensions/forms/Field/PostalCodeAndCity/style/dnb-postal-code-and-city.min.css +1 -1
  933. package/extensions/forms/Field/Selection/Selection.js +58 -50
  934. package/extensions/forms/Field/Selection/Selection.js.map +1 -1
  935. package/extensions/forms/Field/Selection/style/dnb-selection.css +6 -6
  936. package/extensions/forms/Field/Selection/style/dnb-selection.min.css +1 -1
  937. package/extensions/forms/Field/Selection/style/dnb-selection.scss +15 -10
  938. package/extensions/forms/Field/String/String.d.ts +1 -0
  939. package/extensions/forms/Field/String/String.js +13 -8
  940. package/extensions/forms/Field/String/String.js.map +1 -1
  941. package/extensions/forms/FieldBlock/FieldBlock.js +2 -2
  942. package/extensions/forms/FieldBlock/FieldBlock.js.map +1 -1
  943. package/extensions/forms/FieldBlock/style/dnb-field-block.css +1 -1
  944. package/extensions/forms/FieldBlock/style/dnb-field-block.min.css +1 -1
  945. package/extensions/forms/FieldBlock/style/dnb-field-block.scss +1 -1
  946. package/extensions/forms/Form/ButtonRow/style/dnb-form-button-row.css +8 -1
  947. package/extensions/forms/Form/ButtonRow/style/dnb-form-button-row.min.css +1 -1
  948. package/extensions/forms/Form/ButtonRow/style/dnb-form-button-row.scss +10 -0
  949. package/extensions/forms/Form/Handler/Handler.js +2 -2
  950. package/extensions/forms/Form/Handler/Handler.js.map +1 -1
  951. package/extensions/forms/Form/MainHeading/style/dnb-form-main-heading.css +7 -8
  952. package/extensions/forms/Form/MainHeading/style/dnb-form-main-heading.min.css +1 -1
  953. package/extensions/forms/Form/MainHeading/style/dnb-form-main-heading.scss +6 -1
  954. package/extensions/forms/Form/SubHeading/style/dnb-form-sub-heading.css +3 -3
  955. package/extensions/forms/Form/SubHeading/style/dnb-form-sub-heading.min.css +1 -1
  956. package/extensions/forms/Form/SubHeading/style/dnb-form-sub-heading.scss +2 -0
  957. package/extensions/forms/StepsLayout/NextButton/NextButton.js +3 -2
  958. package/extensions/forms/StepsLayout/NextButton/NextButton.js.map +1 -1
  959. package/extensions/forms/StepsLayout/PreviousButton/PreviousButton.js +3 -2
  960. package/extensions/forms/StepsLayout/PreviousButton/PreviousButton.js.map +1 -1
  961. package/extensions/forms/StepsLayout/StepsLayout.js +1 -1
  962. package/extensions/forms/StepsLayout/StepsLayout.js.map +1 -1
  963. package/extensions/forms/StepsLayout/style/dnb-steps-layout.css +14 -17
  964. package/extensions/forms/StepsLayout/style/dnb-steps-layout.min.css +1 -1
  965. package/extensions/forms/StepsLayout/style/dnb-steps-layout.scss +15 -16
  966. package/extensions/forms/constants/countries.js +4 -2
  967. package/extensions/forms/constants/countries.js.map +1 -1
  968. package/extensions/forms/hooks/useDataValue.d.ts +3 -0
  969. package/extensions/forms/hooks/useDataValue.js +99 -49
  970. package/extensions/forms/hooks/useDataValue.js.map +1 -1
  971. package/extensions/forms/style/dnb-forms.css +42 -39
  972. package/extensions/forms/style/dnb-forms.min.css +1 -1
  973. package/extensions/forms/types.d.ts +12 -2
  974. package/extensions/forms/types.js +1 -1
  975. package/extensions/forms/types.js.map +1 -1
  976. package/extensions/payment-card/style/dnb-payment-card.css +0 -2
  977. package/extensions/payment-card/style/dnb-payment-card.min.css +1 -1
  978. package/icons/browser.d.ts +3 -0
  979. package/icons/browser.js +3 -0
  980. package/icons/browser.js.map +1 -0
  981. package/icons/browser_medium.d.ts +3 -0
  982. package/icons/browser_medium.js +3 -0
  983. package/icons/browser_medium.js.map +1 -0
  984. package/icons/digipass_corporate.d.ts +3 -0
  985. package/icons/digipass_corporate.js +3 -0
  986. package/icons/digipass_corporate.js.map +1 -0
  987. package/icons/digipass_corporate_medium.d.ts +3 -0
  988. package/icons/digipass_corporate_medium.js +3 -0
  989. package/icons/digipass_corporate_medium.js.map +1 -0
  990. package/icons/digipass_private.d.ts +3 -0
  991. package/icons/digipass_private.js +3 -0
  992. package/icons/digipass_private.js.map +1 -0
  993. package/icons/digipass_private_medium.d.ts +3 -0
  994. package/icons/digipass_private_medium.js +3 -0
  995. package/icons/digipass_private_medium.js.map +1 -0
  996. package/icons/dnb/browser.d.ts +3 -0
  997. package/icons/dnb/browser.js +17 -0
  998. package/icons/dnb/browser.js.map +1 -0
  999. package/icons/dnb/browser_medium.d.ts +3 -0
  1000. package/icons/dnb/browser_medium.js +17 -0
  1001. package/icons/dnb/browser_medium.js.map +1 -0
  1002. package/icons/dnb/coins_1.js +1 -1
  1003. package/icons/dnb/coins_1.js.map +1 -1
  1004. package/icons/dnb/coins_1_medium.js +1 -1
  1005. package/icons/dnb/coins_1_medium.js.map +1 -1
  1006. package/icons/dnb/digipass_corporate.d.ts +3 -0
  1007. package/icons/dnb/digipass_corporate.js +17 -0
  1008. package/icons/dnb/digipass_corporate.js.map +1 -0
  1009. package/icons/dnb/digipass_corporate_medium.d.ts +3 -0
  1010. package/icons/dnb/digipass_corporate_medium.js +17 -0
  1011. package/icons/dnb/digipass_corporate_medium.js.map +1 -0
  1012. package/icons/dnb/digipass_private.d.ts +3 -0
  1013. package/icons/dnb/digipass_private.js +17 -0
  1014. package/icons/dnb/digipass_private.js.map +1 -0
  1015. package/icons/dnb/digipass_private_medium.d.ts +3 -0
  1016. package/icons/dnb/digipass_private_medium.js +17 -0
  1017. package/icons/dnb/digipass_private_medium.js.map +1 -0
  1018. package/icons/dnb/envelope_open.d.ts +3 -0
  1019. package/icons/dnb/envelope_open.js +18 -0
  1020. package/icons/dnb/envelope_open.js.map +1 -0
  1021. package/icons/dnb/envelope_open_medium.d.ts +3 -0
  1022. package/icons/dnb/envelope_open_medium.js +18 -0
  1023. package/icons/dnb/envelope_open_medium.js.map +1 -0
  1024. package/icons/dnb/icons-meta.json +230 -20
  1025. package/icons/dnb/icons-svg.lock +1272 -1064
  1026. package/icons/dnb/index.d.ts +17 -1
  1027. package/icons/dnb/index.js +17 -1
  1028. package/icons/dnb/index.js.map +1 -1
  1029. package/icons/dnb/laptop.d.ts +3 -0
  1030. package/icons/dnb/laptop.js +18 -0
  1031. package/icons/dnb/laptop.js.map +1 -0
  1032. package/icons/dnb/laptop_medium.d.ts +3 -0
  1033. package/icons/dnb/laptop_medium.js +18 -0
  1034. package/icons/dnb/laptop_medium.js.map +1 -0
  1035. package/icons/dnb/mobile.d.ts +3 -0
  1036. package/icons/dnb/mobile.js +15 -0
  1037. package/icons/dnb/mobile.js.map +1 -0
  1038. package/icons/dnb/mobile_medium.d.ts +3 -0
  1039. package/icons/dnb/mobile_medium.js +15 -0
  1040. package/icons/dnb/mobile_medium.js.map +1 -0
  1041. package/icons/dnb/money_left.d.ts +3 -0
  1042. package/icons/dnb/money_left.js +17 -0
  1043. package/icons/dnb/money_left.js.map +1 -0
  1044. package/icons/dnb/money_left_medium.d.ts +3 -0
  1045. package/icons/dnb/money_left_medium.js +18 -0
  1046. package/icons/dnb/money_left_medium.js.map +1 -0
  1047. package/icons/dnb/scan.js +5 -2
  1048. package/icons/dnb/scan.js.map +1 -1
  1049. package/icons/dnb/scan_medium.js +8 -12
  1050. package/icons/dnb/scan_medium.js.map +1 -1
  1051. package/icons/dnb/secondary_icons.d.ts +9 -1
  1052. package/icons/dnb/secondary_icons.js +9 -1
  1053. package/icons/dnb/secondary_icons.js.map +1 -1
  1054. package/icons/dnb/secondary_icons_medium.d.ts +9 -1
  1055. package/icons/dnb/secondary_icons_medium.js +9 -1
  1056. package/icons/dnb/secondary_icons_medium.js.map +1 -1
  1057. package/icons/dnb/teenager.d.ts +3 -0
  1058. package/icons/dnb/teenager.js +18 -0
  1059. package/icons/dnb/teenager.js.map +1 -0
  1060. package/icons/dnb/teenager_medium.d.ts +3 -0
  1061. package/icons/dnb/teenager_medium.js +18 -0
  1062. package/icons/dnb/teenager_medium.js.map +1 -0
  1063. package/icons/envelope_open.d.ts +3 -0
  1064. package/icons/envelope_open.js +3 -0
  1065. package/icons/envelope_open.js.map +1 -0
  1066. package/icons/envelope_open_medium.d.ts +3 -0
  1067. package/icons/envelope_open_medium.js +3 -0
  1068. package/icons/envelope_open_medium.js.map +1 -0
  1069. package/icons/index.d.ts +17 -1
  1070. package/icons/index.js +17 -1
  1071. package/icons/index.js.map +1 -1
  1072. package/icons/laptop.d.ts +3 -0
  1073. package/icons/laptop.js +3 -0
  1074. package/icons/laptop.js.map +1 -0
  1075. package/icons/laptop_medium.d.ts +3 -0
  1076. package/icons/laptop_medium.js +3 -0
  1077. package/icons/laptop_medium.js.map +1 -0
  1078. package/icons/mobile.d.ts +3 -0
  1079. package/icons/mobile.js +3 -0
  1080. package/icons/mobile.js.map +1 -0
  1081. package/icons/mobile_medium.d.ts +3 -0
  1082. package/icons/mobile_medium.js +3 -0
  1083. package/icons/mobile_medium.js.map +1 -0
  1084. package/icons/money_left.d.ts +3 -0
  1085. package/icons/money_left.js +3 -0
  1086. package/icons/money_left.js.map +1 -0
  1087. package/icons/money_left_medium.d.ts +3 -0
  1088. package/icons/money_left_medium.js +3 -0
  1089. package/icons/money_left_medium.js.map +1 -0
  1090. package/icons/teenager.d.ts +3 -0
  1091. package/icons/teenager.js +3 -0
  1092. package/icons/teenager.js.map +1 -0
  1093. package/icons/teenager_medium.d.ts +3 -0
  1094. package/icons/teenager_medium.js +3 -0
  1095. package/icons/teenager_medium.js.map +1 -0
  1096. package/package.json +1 -1
  1097. package/shared/Eufemia.d.ts +1 -1
  1098. package/shared/Eufemia.js +2 -2
  1099. package/shared/Eufemia.js.map +1 -1
  1100. package/shared/component-helper.d.ts +1 -0
  1101. package/shared/component-helper.js +3 -0
  1102. package/shared/component-helper.js.map +1 -1
  1103. package/style/dnb-ui-basis.css +3 -0
  1104. package/style/dnb-ui-basis.min.css +1 -1
  1105. package/style/dnb-ui-body.css +3 -1
  1106. package/style/dnb-ui-body.min.css +1 -1
  1107. package/style/dnb-ui-components.css +124 -179
  1108. package/style/dnb-ui-components.min.css +3 -3
  1109. package/style/dnb-ui-core.css +4 -1
  1110. package/style/dnb-ui-core.min.css +1 -1
  1111. package/style/dnb-ui-elements.css +2 -4
  1112. package/style/dnb-ui-elements.min.css +1 -1
  1113. package/style/dnb-ui-extensions.css +42 -41
  1114. package/style/dnb-ui-extensions.min.css +1 -1
  1115. package/style/dnb-ui-forms.css +42 -39
  1116. package/style/dnb-ui-forms.min.css +1 -1
  1117. package/style/themes/theme-eiendom/eiendom-theme-basis.css +16 -16
  1118. package/style/themes/theme-eiendom/eiendom-theme-basis.min.css +1 -1
  1119. package/style/themes/theme-eiendom/eiendom-theme-components.css +207 -278
  1120. package/style/themes/theme-eiendom/eiendom-theme-components.min.css +7 -7
  1121. package/style/themes/theme-eiendom/eiendom-theme-components.scss +1 -0
  1122. package/style/themes/theme-eiendom/eiendom-theme-elements.css +16 -16
  1123. package/style/themes/theme-eiendom/eiendom-theme-elements.min.css +1 -1
  1124. package/style/themes/theme-eiendom/eiendom-theme-extensions.css +42 -41
  1125. package/style/themes/theme-eiendom/eiendom-theme-extensions.min.css +1 -1
  1126. package/style/themes/theme-eiendom/eiendom-theme-forms.css +42 -39
  1127. package/style/themes/theme-eiendom/eiendom-theme-forms.min.css +1 -1
  1128. package/style/themes/theme-sbanken/sbanken-theme-basis.css +2 -4
  1129. package/style/themes/theme-sbanken/sbanken-theme-basis.min.css +1 -1
  1130. package/style/themes/theme-sbanken/sbanken-theme-components.css +204 -392
  1131. package/style/themes/theme-sbanken/sbanken-theme-components.min.css +7 -7
  1132. package/style/themes/theme-sbanken/sbanken-theme-components.scss +1 -0
  1133. package/style/themes/theme-sbanken/sbanken-theme-elements.css +2 -4
  1134. package/style/themes/theme-sbanken/sbanken-theme-elements.min.css +1 -1
  1135. package/style/themes/theme-sbanken/sbanken-theme-extensions.css +42 -41
  1136. package/style/themes/theme-sbanken/sbanken-theme-extensions.min.css +1 -1
  1137. package/style/themes/theme-sbanken/sbanken-theme-forms.css +42 -39
  1138. package/style/themes/theme-sbanken/sbanken-theme-forms.min.css +1 -1
  1139. package/style/themes/theme-ui/ui-theme-basis.css +16 -16
  1140. package/style/themes/theme-ui/ui-theme-basis.min.css +1 -1
  1141. package/style/themes/theme-ui/ui-theme-components.css +207 -277
  1142. package/style/themes/theme-ui/ui-theme-components.min.css +8 -8
  1143. package/style/themes/theme-ui/ui-theme-components.scss +1 -0
  1144. package/style/themes/theme-ui/ui-theme-elements.css +16 -16
  1145. package/style/themes/theme-ui/ui-theme-elements.min.css +1 -1
  1146. package/style/themes/theme-ui/ui-theme-extensions.css +42 -41
  1147. package/style/themes/theme-ui/ui-theme-extensions.min.css +1 -1
  1148. package/style/themes/theme-ui/ui-theme-forms.css +42 -39
  1149. package/style/themes/theme-ui/ui-theme-forms.min.css +1 -1
  1150. package/style/themes/theme-ui/ui-theme-tags.css +11 -25
  1151. package/style/themes/theme-ui/ui-theme-tags.min.css +1 -1
  1152. package/umd/dnb-ui-basis.min.js +1 -1
  1153. package/umd/dnb-ui-components.min.js +1 -1
  1154. package/umd/dnb-ui-elements.min.js +1 -1
  1155. package/umd/dnb-ui-extensions.min.js +3 -3
  1156. package/umd/dnb-ui-lib.min.js +1 -1
  1157. package/cjs/icons/icons-meta.json +0 -3748
  1158. package/es/icons/icons-meta.json +0 -3748
  1159. package/icons/icons-meta.json +0 -3748
@@ -1,14 +1,15 @@
1
1
  "use client";
2
2
 
3
3
  import _extends from "@babel/runtime/helpers/esm/extends";
4
+ import _objectWithoutProperties from "@babel/runtime/helpers/esm/objectWithoutProperties";
4
5
  import _defineProperty from "@babel/runtime/helpers/esm/defineProperty";
5
6
  var _em;
7
+ const _excluded = ["value", "error", "title", "children"],
8
+ _excluded2 = ["value", "title", "status"];
6
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; }
7
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; }
8
11
  import React, { useMemo, useContext, useCallback } from 'react';
9
12
  import { ToggleButton, Dropdown, Radio, HelpButton } from '../../../../components';
10
- import ButtonRow from '../../Form/ButtonRow';
11
- import FieldBlock from '../../FieldBlock';
12
13
  import classnames from 'classnames';
13
14
  import { makeUniqueId } from '../../../../shared/component-helper';
14
15
  import SharedContext from '../../../../shared/Context';
@@ -16,7 +17,7 @@ import Option from '../Option';
16
17
  import { useDataValue } from '../../hooks';
17
18
  import { FormError } from '../../types';
18
19
  import { pickSpacingProps } from '../../../../components/flex/utils';
19
- import ToggleButtonGroupContext from '../../../../components/toggle-button/ToggleButtonGroupContext';
20
+ import FieldBlock from '../../FieldBlock';
20
21
  function Selection(props) {
21
22
  const sharedContext = useContext(SharedContext);
22
23
  const clearValue = useMemo(() => `clear-option-${makeUniqueId()}`, []);
@@ -50,7 +51,7 @@ function Selection(props) {
50
51
  }) => {
51
52
  handleChange === null || handleChange === void 0 ? void 0 : handleChange(!selectedKey || selectedKey === clearValue ? emptyValue : selectedKey);
52
53
  }, [handleChange, emptyValue, clearValue]);
53
- const handleRadioChange = useCallback(({
54
+ const onChangeHandler = useCallback(({
54
55
  value
55
56
  }) => {
56
57
  handleChange === null || handleChange === void 0 ? void 0 : handleChange(value === undefined ? emptyValue : value);
@@ -65,7 +66,7 @@ function Selection(props) {
65
66
  }) => {
66
67
  setHasFocus(false, data === null || data === void 0 ? void 0 : data.selectedKey);
67
68
  }, [setHasFocus]);
68
- const cn = classnames('dnb-forms-field-selection', className);
69
+ const cn = classnames(`dnb-forms-field-selection dnb-forms-field-selection__variant--${variant} dnb-forms-field-selection__options-layout--${optionsLayout}`, className);
69
70
  const fieldBlockProps = _objectSpread(_objectSpread({
70
71
  forId: id,
71
72
  className: cn
@@ -78,50 +79,57 @@ function Selection(props) {
78
79
  labelDescription,
79
80
  labelSecondary
80
81
  });
82
+ const getStatus = useCallback(error => {
83
+ var _error$message;
84
+ return (_error$message = error === null || error === void 0 ? void 0 : error.message) !== null && _error$message !== void 0 ? _error$message : warning instanceof Error && warning.message || warning instanceof FormError && warning.message || (warning === null || warning === void 0 ? void 0 : warning.toString()) || info instanceof Error && info.message || info instanceof FormError && info.message || (info === null || info === void 0 ? void 0 : info.toString());
85
+ }, [info, warning]);
81
86
  const options = useMemo(() => React.Children.toArray(children).filter(child => React.isValidElement(child) && child.type === Option).map(option => {
82
- var _option$props$title;
83
- return {
84
- title: (_option$props$title = option.props.title) !== null && _option$props$title !== void 0 ? _option$props$title : option.props.children,
85
- value: option.props.value,
86
- handleSelect: () => {
87
- const selected = option.props.value;
88
- handleChange === null || handleChange === void 0 ? void 0 : handleChange(selected === value ? emptyValue : selected);
89
- }
90
- };
91
- }), [children, value, emptyValue, handleChange]);
87
+ const _option$props = option.props,
88
+ {
89
+ value: v,
90
+ error,
91
+ title,
92
+ children
93
+ } = _option$props,
94
+ rest = _objectWithoutProperties(_option$props, _excluded);
95
+ const status = getStatus(error);
96
+ return _objectSpread({
97
+ title: title !== null && title !== void 0 ? title : children,
98
+ value: v,
99
+ status
100
+ }, rest);
101
+ }), [children, getStatus]);
102
+ const status = getStatus(error);
92
103
  switch (variant) {
93
104
  case 'radio':
94
- return React.createElement(Radio.Group, _extends({
95
- className: cn,
96
- label: label,
97
- layout_direction: optionsLayout === 'horizontal' ? 'row' : 'column',
98
- vertical: layout === 'vertical',
99
- on_change: handleRadioChange,
100
- value: String(value !== null && value !== void 0 ? value : '')
101
- }, pickSpacingProps(props)), options.map((option, i) => {
102
- var _option$value;
103
- return React.createElement(Radio, {
104
- key: `option-${i}-${option.value}`,
105
- label: option.title,
106
- value: String((_option$value = option.value) !== null && _option$value !== void 0 ? _option$value : '')
107
- });
108
- }));
109
105
  case 'button':
110
- return React.createElement(FieldBlock, fieldBlockProps, React.createElement(ButtonRow, null, React.createElement(ToggleButtonGroupContext.Provider, {
111
- value: {
112
- status: error ? 'error' : undefined,
113
- disabled
114
- }
115
- }, options.map((option, i) => React.createElement(ToggleButton, {
116
- id: options.length > 0 ? id : undefined,
117
- key: `option-${i}-${option.value}`,
118
- text: option.title,
119
- on_change: option.handleSelect,
120
- checked: option.value === value
121
- })))));
106
+ {
107
+ const Component = variant === 'radio' ? Radio : ToggleButton;
108
+ return React.createElement(FieldBlock, fieldBlockProps, React.createElement(Component.Group, {
109
+ className: cn,
110
+ layout_direction: optionsLayout === 'horizontal' ? 'row' : 'column',
111
+ disabled: disabled,
112
+ on_change: onChangeHandler,
113
+ value: String(value !== null && value !== void 0 ? value : '')
114
+ }, options.map((option, i) => {
115
+ const {
116
+ value,
117
+ title,
118
+ status
119
+ } = option,
120
+ rest = _objectWithoutProperties(option, _excluded2);
121
+ return React.createElement(Component, _extends({
122
+ id: options.length === 1 ? id : undefined,
123
+ key: `option-${i}-${value}`,
124
+ label: variant === 'radio' ? title : undefined,
125
+ text: variant === 'button' ? title : undefined,
126
+ value: String(value !== null && value !== void 0 ? value : ''),
127
+ status: status
128
+ }, rest));
129
+ })));
130
+ }
122
131
  case 'dropdown':
123
132
  {
124
- var _error$message;
125
133
  const optionsData = React.Children.map(children, child => {
126
134
  if (React.isValidElement(child) && child.type === Option) {
127
135
  var _child$props$value, _ref, _child$props$children, _child$props$children2;
@@ -141,15 +149,15 @@ function Selection(props) {
141
149
  selectedKey: clearValue,
142
150
  content: React.createElement("em", null, sharedContext === null || sharedContext === void 0 ? void 0 : sharedContext.translation.Forms.selectionClearSelected)
143
151
  } : undefined, ...(optionsData !== null && optionsData !== void 0 ? optionsData : [])].filter(Boolean);
144
- return React.createElement(Dropdown, _extends({
145
- className: classnames('dnb-forms-field-selection', className, width !== 'stretch' && `dnb-forms-field-selection--width-${width}`),
152
+ return React.createElement(FieldBlock, _extends({}, fieldBlockProps, {
153
+ width: width
154
+ }), React.createElement(Dropdown, _extends({
155
+ id: id,
146
156
  list_class: "dnb-forms-field-selection__list",
147
157
  portal_class: "dnb-forms-field-selection__portal",
148
158
  title: placeholder,
149
159
  value: String(value !== null && value !== void 0 ? value : ''),
150
- label: label,
151
- label_direction: layout,
152
- status: (_error$message = error === null || error === void 0 ? void 0 : error.message) !== null && _error$message !== void 0 ? _error$message : warning instanceof Error && warning.message || warning instanceof FormError && warning.message || (warning === null || warning === void 0 ? void 0 : warning.toString()) || info instanceof Error && info.message || info instanceof FormError && info.message || (info === null || info === void 0 ? void 0 : info.toString()),
160
+ status: status && 'error',
153
161
  disabled: disabled,
154
162
  data: data,
155
163
  suffix: help ? React.createElement(HelpButton, {
@@ -159,8 +167,8 @@ function Selection(props) {
159
167
  on_show: handleShow,
160
168
  on_hide: handleHide
161
169
  }, pickSpacingProps(props), {
162
- stretch: width === 'stretch'
163
- }));
170
+ stretch: true
171
+ })));
164
172
  }
165
173
  }
166
174
  }
@@ -1 +1 @@
1
- {"version":3,"file":"Selection.js","names":["React","useMemo","useContext","useCallback","ToggleButton","Dropdown","Radio","HelpButton","ButtonRow","FieldBlock","classnames","makeUniqueId","SharedContext","Option","useDataValue","FormError","pickSpacingProps","ToggleButtonGroupContext","Selection","props","sharedContext","clearValue","id","className","variant","clear","label","labelDescription","labelSecondary","layout","optionsLayout","placeholder","value","info","warning","error","disabled","help","emptyValue","width","setHasFocus","handleChange","children","handleDropdownChange","data","selectedKey","handleRadioChange","undefined","handleShow","handleHide","cn","fieldBlockProps","_objectSpread","forId","options","Children","toArray","filter","child","isValidElement","type","map","option","_option$props$title","title","handleSelect","selected","createElement","Group","_extends","layout_direction","vertical","on_change","String","i","_option$value","key","Provider","status","length","text","checked","_error$message","optionsData","_child$props$value","_ref","_child$props$children","_child$props$children2","content","_em","translation","Forms","selectionClearSelected","Boolean","list_class","portal_class","label_direction","message","Error","toString","suffix","contents","on_show","on_hide","stretch","_supportsSpacingProps"],"sources":["../../../../../../src/extensions/forms/Field/Selection/Selection.tsx"],"sourcesContent":["import React, { useMemo, useContext, useCallback } from 'react'\nimport {\n ToggleButton,\n Dropdown,\n Radio,\n HelpButton,\n} from '../../../../components'\nimport ButtonRow from '../../Form/ButtonRow'\nimport FieldBlock from '../../FieldBlock'\nimport classnames from 'classnames'\nimport { makeUniqueId } from '../../../../shared/component-helper'\nimport SharedContext from '../../../../shared/Context'\nimport Option from '../Option'\nimport { useDataValue } from '../../hooks'\nimport { FormError, FieldProps, FieldHelpProps } from '../../types'\nimport { pickSpacingProps } from '../../../../components/flex/utils'\nimport ToggleButtonGroupContext from '../../../../components/toggle-button/ToggleButtonGroupContext'\n\ninterface IOption {\n title: string | React.ReactNode\n value: number | string\n handleSelect: () => void\n}\n\nexport type Props = FieldHelpProps &\n FieldProps<string | number> & {\n children?: React.ReactNode\n variant?: 'dropdown' | 'radio' | 'button'\n clear?: boolean\n optionsLayout?: 'horizontal' | 'vertical'\n width?: 'small' | 'medium' | 'large' | 'stretch'\n }\n\nfunction Selection(props: Props) {\n const sharedContext = useContext(SharedContext)\n const clearValue = useMemo(() => `clear-option-${makeUniqueId()}`, [])\n\n const {\n id,\n className,\n variant = 'dropdown',\n clear,\n label,\n labelDescription,\n labelSecondary,\n layout = 'vertical',\n optionsLayout = 'vertical',\n placeholder,\n value,\n info,\n warning,\n error,\n disabled,\n help,\n emptyValue,\n width = 'large',\n setHasFocus,\n handleChange,\n children,\n } = useDataValue(props)\n\n const handleDropdownChange = useCallback(\n ({ data: { selectedKey } }) => {\n handleChange?.(\n !selectedKey || selectedKey === clearValue\n ? emptyValue\n : selectedKey\n )\n },\n [handleChange, emptyValue, clearValue]\n )\n\n const handleRadioChange = useCallback(\n ({ value }) => {\n handleChange?.(value === undefined ? emptyValue : value)\n },\n [handleChange, emptyValue]\n )\n\n // Specific handleShow and handleHide because Dropdown preserve the initially received callbacks, so changes\n // due to `useCallback` usage will have no effect, leading to useDataValues handleFocus and handleBlur sending out old\n // copies of value as arguments.\n const handleShow = useCallback(\n ({ data }) => {\n setHasFocus(true, data?.selectedKey)\n },\n [setHasFocus]\n )\n\n const handleHide = useCallback(\n ({ data }) => {\n setHasFocus(false, data?.selectedKey)\n },\n [setHasFocus]\n )\n\n const cn = classnames('dnb-forms-field-selection', className)\n\n const fieldBlockProps = {\n forId: id,\n className: cn,\n ...pickSpacingProps(props),\n info,\n warning,\n error,\n layout,\n label,\n labelDescription,\n labelSecondary,\n }\n\n const options: IOption[] = useMemo(\n () =>\n React.Children.toArray(children)\n .filter(\n (child) => React.isValidElement(child) && child.type === Option\n )\n .map((option: React.ReactElement) => ({\n title: option.props.title ?? option.props.children,\n value: option.props.value,\n handleSelect: () => {\n const selected = option.props.value\n\n handleChange?.(selected === value ? emptyValue : selected)\n },\n })),\n [children, value, emptyValue, handleChange]\n )\n\n switch (variant) {\n case 'radio':\n return (\n <Radio.Group\n className={cn}\n label={label}\n layout_direction={\n optionsLayout === 'horizontal' ? 'row' : 'column'\n }\n vertical={layout === 'vertical'}\n on_change={handleRadioChange}\n value={String(value ?? '')}\n {...pickSpacingProps(props)}\n >\n {options.map((option, i) => (\n <Radio\n key={`option-${i}-${option.value}`}\n label={option.title}\n value={String(option.value ?? '')}\n />\n ))}\n </Radio.Group>\n )\n case 'button':\n return (\n <FieldBlock {...fieldBlockProps}>\n <ButtonRow>\n <ToggleButtonGroupContext.Provider\n value={{\n status: error ? 'error' : undefined,\n disabled,\n }}\n >\n {options.map((option, i) => (\n <ToggleButton\n id={options.length > 0 ? id : undefined}\n key={`option-${i}-${option.value}`}\n text={option.title}\n on_change={option.handleSelect}\n checked={option.value === value}\n />\n ))}\n </ToggleButtonGroupContext.Provider>\n </ButtonRow>\n </FieldBlock>\n )\n case 'dropdown': {\n const optionsData = React.Children.map(children, (child) => {\n if (React.isValidElement(child) && child.type === Option) {\n // Option components\n return child.props.text\n ? {\n selectedKey: String(child.props.value ?? ''),\n content: [\n child.props.children ?? child.props.title ?? (\n <em>Untitled</em>\n ),\n child.props.text,\n ],\n }\n : {\n selectedKey: child.props.value,\n content: child.props.children ?? child.props.title,\n }\n }\n\n // For other children, just show them as content\n return {\n content: child,\n }\n })\n const data = [\n clear\n ? {\n selectedKey: clearValue,\n content: (\n <em>\n {sharedContext?.translation.Forms.selectionClearSelected}\n </em>\n ),\n }\n : undefined,\n ...(optionsData ?? []),\n ].filter(Boolean)\n\n return (\n <Dropdown\n className={classnames(\n 'dnb-forms-field-selection',\n width !== 'stretch' &&\n `dnb-forms-field-selection--width-${width}`,\n className\n )}\n list_class=\"dnb-forms-field-selection__list\"\n portal_class=\"dnb-forms-field-selection__portal\"\n title={placeholder}\n value={String(value ?? '')}\n label={label}\n label_direction={layout}\n status={\n error?.message ??\n ((warning instanceof Error && warning.message) ||\n (warning instanceof FormError && warning.message) ||\n warning?.toString() ||\n (info instanceof Error && info.message) ||\n (info instanceof FormError && info.message) ||\n info?.toString())\n }\n disabled={disabled}\n data={data}\n suffix={\n help ? (\n <HelpButton title={help.title}>{help.contents}</HelpButton>\n ) : undefined\n }\n on_change={handleDropdownChange}\n on_show={handleShow}\n on_hide={handleHide}\n {...pickSpacingProps(props)}\n stretch={width === 'stretch'}\n />\n )\n }\n }\n}\n\nSelection._supportsSpacingProps = true\nexport default Selection\n"],"mappings":"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"}
1
+ {"version":3,"file":"Selection.js","names":["React","useMemo","useContext","useCallback","ToggleButton","Dropdown","Radio","HelpButton","classnames","makeUniqueId","SharedContext","Option","useDataValue","FormError","pickSpacingProps","FieldBlock","Selection","props","sharedContext","clearValue","id","className","variant","clear","label","labelDescription","labelSecondary","layout","optionsLayout","placeholder","value","info","warning","error","disabled","help","emptyValue","width","setHasFocus","handleChange","children","handleDropdownChange","data","selectedKey","onChangeHandler","undefined","handleShow","handleHide","cn","fieldBlockProps","_objectSpread","forId","getStatus","_error$message","message","Error","toString","options","Children","toArray","filter","child","isValidElement","type","map","option","_option$props","v","title","rest","_objectWithoutProperties","_excluded","status","Component","createElement","Group","layout_direction","on_change","String","i","_excluded2","_extends","length","key","text","optionsData","_child$props$value","_ref","_child$props$children","_child$props$children2","content","_em","translation","Forms","selectionClearSelected","Boolean","list_class","portal_class","suffix","contents","on_show","on_hide","stretch","_supportsSpacingProps"],"sources":["../../../../../../src/extensions/forms/Field/Selection/Selection.tsx"],"sourcesContent":["import React, { useMemo, useContext, useCallback } from 'react'\nimport {\n ToggleButton,\n Dropdown,\n Radio,\n HelpButton,\n} from '../../../../components'\nimport classnames from 'classnames'\nimport { makeUniqueId } from '../../../../shared/component-helper'\nimport SharedContext from '../../../../shared/Context'\nimport Option from '../Option'\nimport { useDataValue } from '../../hooks'\nimport { FormError, FieldProps, FieldHelpProps } from '../../types'\nimport { pickSpacingProps } from '../../../../components/flex/utils'\nimport type { FormStatusText } from '../../../../components/FormStatus'\nimport FieldBlock from '../../FieldBlock'\n\ninterface IOption {\n title: string | React.ReactNode\n value: number | string\n status: FormStatusText\n}\n\nexport type Props = FieldHelpProps &\n FieldProps<string | number> & {\n children?: React.ReactNode\n variant?: 'dropdown' | 'radio' | 'button'\n clear?: boolean\n optionsLayout?: 'horizontal' | 'vertical'\n width?: 'small' | 'medium' | 'large' | 'stretch'\n }\n\nfunction Selection(props: Props) {\n const sharedContext = useContext(SharedContext)\n const clearValue = useMemo(() => `clear-option-${makeUniqueId()}`, [])\n\n const {\n id,\n className,\n variant = 'dropdown',\n clear,\n label,\n labelDescription,\n labelSecondary,\n layout = 'vertical',\n optionsLayout = 'vertical',\n placeholder,\n value,\n info,\n warning,\n error,\n disabled,\n help,\n emptyValue,\n width = 'large',\n setHasFocus,\n handleChange,\n children,\n } = useDataValue(props)\n\n const handleDropdownChange = useCallback(\n ({ data: { selectedKey } }) => {\n handleChange?.(\n !selectedKey || selectedKey === clearValue\n ? emptyValue\n : selectedKey\n )\n },\n [handleChange, emptyValue, clearValue]\n )\n\n const onChangeHandler = useCallback(\n ({ value }) => {\n handleChange?.(value === undefined ? emptyValue : value)\n },\n [handleChange, emptyValue]\n )\n\n // Specific handleShow and handleHide because Dropdown preserve the initially received callbacks, so changes\n // due to `useCallback` usage will have no effect, leading to useDataValues handleFocus and handleBlur sending out old\n // copies of value as arguments.\n const handleShow = useCallback(\n ({ data }) => {\n setHasFocus(true, data?.selectedKey)\n },\n [setHasFocus]\n )\n\n const handleHide = useCallback(\n ({ data }) => {\n setHasFocus(false, data?.selectedKey)\n },\n [setHasFocus]\n )\n\n const cn = classnames(\n 'dnb-forms-field-selection',\n `dnb-forms-field-selection__variant--${variant}`,\n `dnb-forms-field-selection__options-layout--${optionsLayout}`,\n className\n )\n\n const fieldBlockProps = {\n forId: id,\n className: cn,\n ...pickSpacingProps(props),\n info,\n warning,\n error,\n layout,\n label,\n labelDescription,\n labelSecondary,\n }\n\n const getStatus = useCallback(\n (error: Error | FormError | undefined) => {\n return (\n error?.message ??\n ((warning instanceof Error && warning.message) ||\n (warning instanceof FormError && warning.message) ||\n warning?.toString() ||\n (info instanceof Error && info.message) ||\n (info instanceof FormError && info.message) ||\n info?.toString())\n )\n },\n [info, warning]\n )\n\n const options: IOption[] = useMemo(\n () =>\n React.Children.toArray(children)\n .filter(\n (child) => React.isValidElement(child) && child.type === Option\n )\n .map((option: React.ReactElement) => {\n const {\n value: v,\n error,\n title,\n children,\n ...rest\n } = option.props\n\n const status = getStatus(error)\n\n return {\n title: title ?? children,\n value: v,\n status,\n ...rest,\n }\n }),\n [children, getStatus]\n )\n\n const status = getStatus(error)\n\n switch (variant) {\n case 'radio':\n case 'button': {\n const Component = (\n variant === 'radio' ? Radio : ToggleButton\n ) as typeof Radio & typeof ToggleButton\n\n return (\n <FieldBlock {...fieldBlockProps}>\n <Component.Group\n className={cn}\n layout_direction={\n optionsLayout === 'horizontal' ? 'row' : 'column'\n }\n disabled={disabled}\n on_change={onChangeHandler}\n value={String(value ?? '')}\n >\n {options.map((option, i) => {\n const { value, title, status, ...rest } = option\n return (\n <Component\n id={options.length === 1 ? id : undefined}\n key={`option-${i}-${value}`}\n label={variant === 'radio' ? title : undefined}\n text={variant === 'button' ? title : undefined}\n value={String(value ?? '')}\n status={status}\n {...rest}\n />\n )\n })}\n </Component.Group>\n </FieldBlock>\n )\n }\n\n case 'dropdown': {\n const optionsData = React.Children.map(children, (child) => {\n if (React.isValidElement(child) && child.type === Option) {\n // Option components\n return child.props.text\n ? {\n selectedKey: String(child.props.value ?? ''),\n content: [\n child.props.children ?? child.props.title ?? (\n <em>Untitled</em>\n ),\n child.props.text,\n ],\n }\n : {\n selectedKey: child.props.value,\n content: child.props.children ?? child.props.title,\n }\n }\n\n // For other children, just show them as content\n return {\n content: child,\n }\n })\n const data = [\n clear\n ? {\n selectedKey: clearValue,\n content: (\n <em>\n {sharedContext?.translation.Forms.selectionClearSelected}\n </em>\n ),\n }\n : undefined,\n ...(optionsData ?? []),\n ].filter(Boolean)\n\n return (\n <FieldBlock {...fieldBlockProps} width={width}>\n <Dropdown\n id={id}\n list_class=\"dnb-forms-field-selection__list\"\n portal_class=\"dnb-forms-field-selection__portal\"\n title={placeholder}\n value={String(value ?? '')}\n status={status && 'error'}\n disabled={disabled}\n data={data}\n suffix={\n help ? (\n <HelpButton title={help.title}>{help.contents}</HelpButton>\n ) : undefined\n }\n on_change={handleDropdownChange}\n on_show={handleShow}\n on_hide={handleHide}\n {...pickSpacingProps(props)}\n stretch\n />\n </FieldBlock>\n )\n }\n }\n}\n\nSelection._supportsSpacingProps = true\nexport default Selection\n"],"mappings":";;;;;;;;;;AAAA,OAAOA,KAAK,IAAIC,OAAO,EAAEC,UAAU,EAAEC,WAAW,QAAQ,OAAO;AAC/D,SACEC,YAAY,EACZC,QAAQ,EACRC,KAAK,EACLC,UAAU,QACL,wBAAwB;AAC/B,OAAOC,UAAU,MAAM,YAAY;AACnC,SAASC,YAAY,QAAQ,qCAAqC;AAClE,OAAOC,aAAa,MAAM,4BAA4B;AACtD,OAAOC,MAAM,MAAM,WAAW;AAC9B,SAASC,YAAY,QAAQ,aAAa;AAC1C,SAASC,SAAS,QAAoC,aAAa;AACnE,SAASC,gBAAgB,QAAQ,mCAAmC;AAEpE,OAAOC,UAAU,MAAM,kBAAkB;AAiBzC,SAASC,SAASA,CAACC,KAAY,EAAE;EAC/B,MAAMC,aAAa,GAAGhB,UAAU,CAACQ,aAAa,CAAC;EAC/C,MAAMS,UAAU,GAAGlB,OAAO,CAAC,MAAO,gBAAeQ,YAAY,CAAC,CAAE,EAAC,EAAE,EAAE,CAAC;EAEtE,MAAM;IACJW,EAAE;IACFC,SAAS;IACTC,OAAO,GAAG,UAAU;IACpBC,KAAK;IACLC,KAAK;IACLC,gBAAgB;IAChBC,cAAc;IACdC,MAAM,GAAG,UAAU;IACnBC,aAAa,GAAG,UAAU;IAC1BC,WAAW;IACXC,KAAK;IACLC,IAAI;IACJC,OAAO;IACPC,KAAK;IACLC,QAAQ;IACRC,IAAI;IACJC,UAAU;IACVC,KAAK,GAAG,OAAO;IACfC,WAAW;IACXC,YAAY;IACZC;EACF,CAAC,GAAG5B,YAAY,CAACK,KAAK,CAAC;EAEvB,MAAMwB,oBAAoB,GAAGtC,WAAW,CACtC,CAAC;IAAEuC,IAAI,EAAE;MAAEC;IAAY;EAAE,CAAC,KAAK;IAC7BJ,YAAY,aAAZA,YAAY,uBAAZA,YAAY,CACV,CAACI,WAAW,IAAIA,WAAW,KAAKxB,UAAU,GACtCiB,UAAU,GACVO,WACN,CAAC;EACH,CAAC,EACD,CAACJ,YAAY,EAAEH,UAAU,EAAEjB,UAAU,CACvC,CAAC;EAED,MAAMyB,eAAe,GAAGzC,WAAW,CACjC,CAAC;IAAE2B;EAAM,CAAC,KAAK;IACbS,YAAY,aAAZA,YAAY,uBAAZA,YAAY,CAAGT,KAAK,KAAKe,SAAS,GAAGT,UAAU,GAAGN,KAAK,CAAC;EAC1D,CAAC,EACD,CAACS,YAAY,EAAEH,UAAU,CAC3B,CAAC;EAKD,MAAMU,UAAU,GAAG3C,WAAW,CAC5B,CAAC;IAAEuC;EAAK,CAAC,KAAK;IACZJ,WAAW,CAAC,IAAI,EAAEI,IAAI,aAAJA,IAAI,uBAAJA,IAAI,CAAEC,WAAW,CAAC;EACtC,CAAC,EACD,CAACL,WAAW,CACd,CAAC;EAED,MAAMS,UAAU,GAAG5C,WAAW,CAC5B,CAAC;IAAEuC;EAAK,CAAC,KAAK;IACZJ,WAAW,CAAC,KAAK,EAAEI,IAAI,aAAJA,IAAI,uBAAJA,IAAI,CAAEC,WAAW,CAAC;EACvC,CAAC,EACD,CAACL,WAAW,CACd,CAAC;EAED,MAAMU,EAAE,GAAGxC,UAAU,kEAEoBc,OAAO,+CACAM,aAAc,IAC5DP,SACF,CAAC;EAED,MAAM4B,eAAe,GAAAC,aAAA,CAAAA,aAAA;IACnBC,KAAK,EAAE/B,EAAE;IACTC,SAAS,EAAE2B;EAAE,GACVlC,gBAAgB,CAACG,KAAK,CAAC;IAC1Bc,IAAI;IACJC,OAAO;IACPC,KAAK;IACLN,MAAM;IACNH,KAAK;IACLC,gBAAgB;IAChBC;EAAc,EACf;EAED,MAAM0B,SAAS,GAAGjD,WAAW,CAC1B8B,KAAoC,IAAK;IAAA,IAAAoB,cAAA;IACxC,QAAAA,cAAA,GACEpB,KAAK,aAALA,KAAK,uBAALA,KAAK,CAAEqB,OAAO,cAAAD,cAAA,cAAAA,cAAA,GACZrB,OAAO,YAAYuB,KAAK,IAAIvB,OAAO,CAACsB,OAAO,IAC1CtB,OAAO,YAAYnB,SAAS,IAAImB,OAAO,CAACsB,OAAQ,KACjDtB,OAAO,aAAPA,OAAO,uBAAPA,OAAO,CAAEwB,QAAQ,CAAC,CAAC,KAClBzB,IAAI,YAAYwB,KAAK,IAAIxB,IAAI,CAACuB,OAAQ,IACtCvB,IAAI,YAAYlB,SAAS,IAAIkB,IAAI,CAACuB,OAAQ,KAC3CvB,IAAI,aAAJA,IAAI,uBAAJA,IAAI,CAAEyB,QAAQ,CAAC,CAAC;EAEtB,CAAC,EACD,CAACzB,IAAI,EAAEC,OAAO,CAChB,CAAC;EAED,MAAMyB,OAAkB,GAAGxD,OAAO,CAChC,MACED,KAAK,CAAC0D,QAAQ,CAACC,OAAO,CAACnB,QAAQ,CAAC,CAC7BoB,MAAM,CACJC,KAAK,IAAK7D,KAAK,CAAC8D,cAAc,CAACD,KAAK,CAAC,IAAIA,KAAK,CAACE,IAAI,KAAKpD,MAC3D,CAAC,CACAqD,GAAG,CAAEC,MAA0B,IAAK;IACnC,MAAAC,aAAA,GAMID,MAAM,CAAChD,KAAK;MANV;QACJa,KAAK,EAAEqC,CAAC;QACRlC,KAAK;QACLmC,KAAK;QACL5B;MAEF,CAAC,GAAA0B,aAAA;MADIG,IAAI,GAAAC,wBAAA,CAAAJ,aAAA,EAAAK,SAAA;IAGT,MAAMC,MAAM,GAAGpB,SAAS,CAACnB,KAAK,CAAC;IAE/B,OAAAiB,aAAA;MACEkB,KAAK,EAAEA,KAAK,aAALA,KAAK,cAALA,KAAK,GAAI5B,QAAQ;MACxBV,KAAK,EAAEqC,CAAC;MACRK;IAAM,GACHH,IAAI;EAEX,CAAC,CAAC,EACN,CAAC7B,QAAQ,EAAEY,SAAS,CACtB,CAAC;EAED,MAAMoB,MAAM,GAAGpB,SAAS,CAACnB,KAAK,CAAC;EAE/B,QAAQX,OAAO;IACb,KAAK,OAAO;IACZ,KAAK,QAAQ;MAAE;QACb,MAAMmD,SAAS,GACbnD,OAAO,KAAK,OAAO,GAAGhB,KAAK,GAAGF,YACO;QAEvC,OACEJ,KAAA,CAAA0E,aAAA,CAAC3D,UAAU,EAAKkC,eAAe,EAC7BjD,KAAA,CAAA0E,aAAA,CAACD,SAAS,CAACE,KAAK;UACdtD,SAAS,EAAE2B,EAAG;UACd4B,gBAAgB,EACdhD,aAAa,KAAK,YAAY,GAAG,KAAK,GAAG,QAC1C;UACDM,QAAQ,EAAEA,QAAS;UACnB2C,SAAS,EAAEjC,eAAgB;UAC3Bd,KAAK,EAAEgD,MAAM,CAAChD,KAAK,aAALA,KAAK,cAALA,KAAK,GAAI,EAAE;QAAE,GAE1B2B,OAAO,CAACO,GAAG,CAAC,CAACC,MAAM,EAAEc,CAAC,KAAK;UAC1B,MAAM;cAAEjD,KAAK;cAAEsC,KAAK;cAAEI;YAAgB,CAAC,GAAGP,MAAM;YAAfI,IAAI,GAAAC,wBAAA,CAAKL,MAAM,EAAAe,UAAA;UAChD,OACEhF,KAAA,CAAA0E,aAAA,CAACD,SAAS,EAAAQ,QAAA;YACR7D,EAAE,EAAEqC,OAAO,CAACyB,MAAM,KAAK,CAAC,GAAG9D,EAAE,GAAGyB,SAAU;YAC1CsC,GAAG,EAAG,UAASJ,CAAE,IAAGjD,KAAM,EAAE;YAC5BN,KAAK,EAAEF,OAAO,KAAK,OAAO,GAAG8C,KAAK,GAAGvB,SAAU;YAC/CuC,IAAI,EAAE9D,OAAO,KAAK,QAAQ,GAAG8C,KAAK,GAAGvB,SAAU;YAC/Cf,KAAK,EAAEgD,MAAM,CAAChD,KAAK,aAALA,KAAK,cAALA,KAAK,GAAI,EAAE,CAAE;YAC3B0C,MAAM,EAAEA;UAAO,GACXH,IAAI,CACT,CAAC;QAEN,CAAC,CACc,CACP,CAAC;MAEjB;IAEA,KAAK,UAAU;MAAE;QACf,MAAMgB,WAAW,GAAGrF,KAAK,CAAC0D,QAAQ,CAACM,GAAG,CAACxB,QAAQ,EAAGqB,KAAK,IAAK;UAC1D,IAAI7D,KAAK,CAAC8D,cAAc,CAACD,KAAK,CAAC,IAAIA,KAAK,CAACE,IAAI,KAAKpD,MAAM,EAAE;YAAA,IAAA2E,kBAAA,EAAAC,IAAA,EAAAC,qBAAA,EAAAC,sBAAA;YAExD,OAAO5B,KAAK,CAAC5C,KAAK,CAACmE,IAAI,GACnB;cACEzC,WAAW,EAAEmC,MAAM,EAAAQ,kBAAA,GAACzB,KAAK,CAAC5C,KAAK,CAACa,KAAK,cAAAwD,kBAAA,cAAAA,kBAAA,GAAI,EAAE,CAAC;cAC5CI,OAAO,EAAE,EAAAH,IAAA,IAAAC,qBAAA,GACP3B,KAAK,CAAC5C,KAAK,CAACuB,QAAQ,cAAAgD,qBAAA,cAAAA,qBAAA,GAAI3B,KAAK,CAAC5C,KAAK,CAACmD,KAAK,cAAAmB,IAAA,cAAAA,IAAA,GAAAI,GAAA,KAAAA,GAAA,GACvC3F,KAAA,CAAA0E,aAAA,aAAI,UAAY,CAAC,GAEnBb,KAAK,CAAC5C,KAAK,CAACmE,IAAI;YAEpB,CAAC,GACD;cACEzC,WAAW,EAAEkB,KAAK,CAAC5C,KAAK,CAACa,KAAK;cAC9B4D,OAAO,GAAAD,sBAAA,GAAE5B,KAAK,CAAC5C,KAAK,CAACuB,QAAQ,cAAAiD,sBAAA,cAAAA,sBAAA,GAAI5B,KAAK,CAAC5C,KAAK,CAACmD;YAC/C,CAAC;UACP;UAGA,OAAO;YACLsB,OAAO,EAAE7B;UACX,CAAC;QACH,CAAC,CAAC;QACF,MAAMnB,IAAI,GAAG,CACXnB,KAAK,GACD;UACEoB,WAAW,EAAExB,UAAU;UACvBuE,OAAO,EACL1F,KAAA,CAAA0E,aAAA,aACGxD,aAAa,aAAbA,aAAa,uBAAbA,aAAa,CAAE0E,WAAW,CAACC,KAAK,CAACC,sBAChC;QAER,CAAC,GACDjD,SAAS,EACb,IAAIwC,WAAW,aAAXA,WAAW,cAAXA,WAAW,GAAI,EAAE,CAAC,CACvB,CAACzB,MAAM,CAACmC,OAAO,CAAC;QAEjB,OACE/F,KAAA,CAAA0E,aAAA,CAAC3D,UAAU,EAAAkE,QAAA,KAAKhC,eAAe;UAAEZ,KAAK,EAAEA;QAAM,IAC5CrC,KAAA,CAAA0E,aAAA,CAACrE,QAAQ,EAAA4E,QAAA;UACP7D,EAAE,EAAEA,EAAG;UACP4E,UAAU,EAAC,iCAAiC;UAC5CC,YAAY,EAAC,mCAAmC;UAChD7B,KAAK,EAAEvC,WAAY;UACnBC,KAAK,EAAEgD,MAAM,CAAChD,KAAK,aAALA,KAAK,cAALA,KAAK,GAAI,EAAE,CAAE;UAC3B0C,MAAM,EAAEA,MAAM,IAAI,OAAQ;UAC1BtC,QAAQ,EAAEA,QAAS;UACnBQ,IAAI,EAAEA,IAAK;UACXwD,MAAM,EACJ/D,IAAI,GACFnC,KAAA,CAAA0E,aAAA,CAACnE,UAAU;YAAC6D,KAAK,EAAEjC,IAAI,CAACiC;UAAM,GAAEjC,IAAI,CAACgE,QAAqB,CAAC,GACzDtD,SACL;UACDgC,SAAS,EAAEpC,oBAAqB;UAChC2D,OAAO,EAAEtD,UAAW;UACpBuD,OAAO,EAAEtD;QAAW,GAChBjC,gBAAgB,CAACG,KAAK,CAAC;UAC3BqF,OAAO;QAAA,EACR,CACS,CAAC;MAEjB;EACF;AACF;AAEAtF,SAAS,CAACuF,qBAAqB,GAAG,IAAI;AACtC,eAAevF,SAAS"}
@@ -1,9 +1,9 @@
1
- .dnb-forms-field-selection--width-large .dnb-dropdown__shell {
2
- width: var(--forms-field-width--large);
1
+ .dnb-forms-field-selection__variant--dropdown .dnb-forms-field-block--layout-horizontal .dnb-form-label {
2
+ align-self: center;
3
3
  }
4
- .dnb-forms-field-selection--width-medium .dnb-dropdown__shell {
5
- width: var(--forms-field-width--medium);
4
+ .dnb-forms-field-selection__variant--dropdown .dnb-forms-field-block--layout-horizontal .dnb-form-label, .dnb-forms-field-selection__options-layout--horizontal .dnb-forms-field-block--layout-horizontal .dnb-form-label {
5
+ margin-bottom: 0;
6
6
  }
7
- .dnb-forms-field-selection--width-small .dnb-dropdown__shell {
8
- width: var(--forms-field-width--small);
7
+ .dnb-forms-field-selection__variant--button .dnb-forms-field-block--layout-horizontal .dnb-form-label {
8
+ line-height: 2.5rem;
9
9
  }
@@ -1 +1 @@
1
- .dnb-forms-field-selection--width-large .dnb-dropdown__shell{width:var(--forms-field-width--large)}.dnb-forms-field-selection--width-medium .dnb-dropdown__shell{width:var(--forms-field-width--medium)}.dnb-forms-field-selection--width-small .dnb-dropdown__shell{width:var(--forms-field-width--small)}
1
+ .dnb-forms-field-selection__variant--dropdown .dnb-forms-field-block--layout-horizontal .dnb-form-label{align-self:center}.dnb-forms-field-selection__options-layout--horizontal .dnb-forms-field-block--layout-horizontal .dnb-form-label,.dnb-forms-field-selection__variant--dropdown .dnb-forms-field-block--layout-horizontal .dnb-form-label{margin-bottom:0}.dnb-forms-field-selection__variant--button .dnb-forms-field-block--layout-horizontal .dnb-form-label{line-height:2.5rem}
@@ -1,18 +1,23 @@
1
1
  .dnb-forms-field-selection {
2
- &--width {
3
- &-large {
4
- .dnb-dropdown__shell {
5
- width: var(--forms-field-width--large);
2
+ &__variant--dropdown {
3
+ .dnb-forms-field-block {
4
+ &--layout-horizontal .dnb-form-label {
5
+ align-self: center;
6
6
  }
7
7
  }
8
- &-medium {
9
- .dnb-dropdown__shell {
10
- width: var(--forms-field-width--medium);
8
+ }
9
+ &__variant--dropdown,
10
+ &__options-layout--horizontal {
11
+ .dnb-forms-field-block {
12
+ &--layout-horizontal .dnb-form-label {
13
+ margin-bottom: 0;
11
14
  }
12
15
  }
13
- &-small {
14
- .dnb-dropdown__shell {
15
- width: var(--forms-field-width--small);
16
+ }
17
+ &__variant--button {
18
+ .dnb-forms-field-block {
19
+ &--layout-horizontal .dnb-form-label {
20
+ line-height: 2.5rem;
16
21
  }
17
22
  }
18
23
  }
@@ -19,6 +19,7 @@ export type Props = FieldHelpProps & FieldProps<string, undefined | string, Erro
19
19
  clear?: boolean;
20
20
  autoresize?: boolean;
21
21
  autoComplete?: HTMLInputElement['autocomplete'];
22
+ inputMode?: React.HTMLAttributes<HTMLInputElement>['inputMode'];
22
23
  autoresizeMaxRows?: number;
23
24
  characterCounter?: boolean;
24
25
  mask?: InputMaskedProps['mask'];
@@ -31,14 +31,17 @@ function StringComponent(props) {
31
31
  pattern: props.pattern
32
32
  };
33
33
  }, [props.schema, props.minLength, props.maxLength, props.pattern]);
34
- const fromInput = useCallback(({
35
- value,
36
- cleanedValue
37
- }) => {
38
- if (value === '') {
34
+ const fromInput = useCallback(event => {
35
+ var _event, _event$cleanedValue, _event2, _event3;
36
+ if (typeof event === 'string') {
37
+ event = {
38
+ value: event
39
+ };
40
+ }
41
+ if (((_event = event) === null || _event === void 0 ? void 0 : _event.value) === '') {
39
42
  return props.emptyValue;
40
43
  }
41
- return cleanedValue !== null && cleanedValue !== void 0 ? cleanedValue : value;
44
+ return (_event$cleanedValue = (_event2 = event) === null || _event2 === void 0 ? void 0 : _event2.cleanedValue) !== null && _event$cleanedValue !== void 0 ? _event$cleanedValue : (_event3 = event) === null || _event3 === void 0 ? void 0 : _event3.value;
42
45
  }, [props.emptyValue]);
43
46
  const preparedProps = _objectSpread(_objectSpread({}, props), {}, {
44
47
  errorMessages,
@@ -51,6 +54,7 @@ function StringComponent(props) {
51
54
  name,
52
55
  className,
53
56
  autoComplete,
57
+ inputMode,
54
58
  innerRef,
55
59
  inputClassName,
56
60
  layout,
@@ -63,6 +67,7 @@ function StringComponent(props) {
63
67
  info,
64
68
  warning,
65
69
  error,
70
+ hasError,
66
71
  disabled,
67
72
  help,
68
73
  multiline,
@@ -84,6 +89,7 @@ function StringComponent(props) {
84
89
  id,
85
90
  name,
86
91
  autoComplete,
92
+ inputMode,
87
93
  className: cn,
88
94
  placeholder: placeholder,
89
95
  suffix: help ? React.createElement(HelpButton, {
@@ -95,7 +101,7 @@ function StringComponent(props) {
95
101
  disabled: disabled,
96
102
  stretch: width !== undefined,
97
103
  inner_ref: innerRef,
98
- status: error ? 'error' : undefined,
104
+ status: error || hasError ? 'error' : undefined,
99
105
  value: (_value$toString = value === null || value === void 0 ? void 0 : value.toString()) !== null && _value$toString !== void 0 ? _value$toString : ''
100
106
  };
101
107
  return React.createElement(FieldBlock, _extends({
@@ -1 +1 @@
1
- {"version":3,"file":"String.js","names":["React","useContext","useMemo","useCallback","classnames","HelpButton","Input","Textarea","InputMasked","SharedContext","FieldBlock","useDataValue","pickSpacingProps","StringComponent","props","_props$width","_value$length","_value$length2","_value$toString","sharedContext","tr","translation","Forms","errorMessages","_objectSpread","required","inputErrorRequired","minLength","stringInputErrorMinLength","maxLength","stringInputErrorMaxLength","pattern","inputErrorPattern","schema","_props$schema","type","fromInput","value","cleanedValue","emptyValue","preparedProps","width","id","name","className","autoComplete","innerRef","inputClassName","layout","placeholder","label","labelDescription","labelSecondary","info","warning","error","disabled","help","multiline","leftIcon","rightIcon","clear","autoresize","autoresizeMaxRows","characterCounter","mask","handleFocus","handleBlur","handleChange","characterCounterElement","length","undefined","cn","sharedProps","suffix","createElement","title","contents","on_focus","on_blur","on_change","stretch","inner_ref","status","toString","_extends","forId","contentsWidth","autoresize_max_rows","icon","icon_position","_supportsSpacingProps"],"sources":["../../../../../../src/extensions/forms/Field/String/String.tsx"],"sourcesContent":["import React, { useContext, useMemo, useCallback } from 'react'\nimport classnames from 'classnames'\nimport { JSONSchema7 } from 'json-schema'\nimport { HelpButton, Input, Textarea } from '../../../../components'\nimport { InputProps } from '../../../../components/input/Input'\nimport InputMasked, {\n InputMaskedProps,\n} from '../../../../components/InputMasked'\nimport SharedContext from '../../../../shared/Context'\nimport FieldBlock from '../../FieldBlock'\nimport { useDataValue } from '../../hooks'\nimport { FieldProps, FieldHelpProps } from '../../types'\nimport { pickSpacingProps } from '../../../../components/flex/utils'\n\ninterface ErrorMessages {\n required?: string\n schema?: string\n minLength?: string\n maxLength?: string\n pattern?: string\n}\nexport type Props = FieldHelpProps &\n FieldProps<string, undefined | string, ErrorMessages> & {\n type?: InputProps['type']\n multiline?: boolean\n leftIcon?: string\n rightIcon?: string\n inputClassName?: string\n innerRef?: React.RefObject<HTMLInputElement | HTMLTextAreaElement>\n clear?: boolean\n autoresize?: boolean\n autoComplete?: HTMLInputElement['autocomplete']\n autoresizeMaxRows?: number\n characterCounter?: boolean\n mask?: InputMaskedProps['mask']\n // Validation\n minLength?: number\n maxLength?: number\n pattern?: string\n // Styling\n width?: false | 'small' | 'medium' | 'large' | 'stretch'\n }\n\nfunction StringComponent(props: Props) {\n const sharedContext = useContext(SharedContext)\n const tr = sharedContext?.translation.Forms\n\n const errorMessages = useMemo(\n () => ({\n required: tr.inputErrorRequired,\n minLength: tr.stringInputErrorMinLength,\n maxLength: tr.stringInputErrorMaxLength,\n pattern: tr.inputErrorPattern,\n ...props.errorMessages,\n }),\n [tr, props.errorMessages]\n )\n const schema = useMemo<JSONSchema7>(\n () =>\n props.schema ?? {\n type: 'string',\n minLength: props.minLength,\n maxLength: props.maxLength,\n pattern: props.pattern,\n },\n [props.schema, props.minLength, props.maxLength, props.pattern]\n )\n const fromInput = useCallback(\n ({ value, cleanedValue }: { value: string; cleanedValue: string }) => {\n if (value === '') {\n return props.emptyValue\n }\n // Cleaned value for masked\n return cleanedValue ?? value\n },\n [props.emptyValue]\n )\n\n const preparedProps: Props = {\n ...props,\n errorMessages,\n schema,\n fromInput,\n width: props.width ?? 'large',\n }\n\n const {\n id,\n name,\n className,\n autoComplete,\n innerRef,\n inputClassName,\n layout,\n type,\n placeholder,\n label,\n labelDescription,\n labelSecondary,\n value,\n info,\n warning,\n error,\n disabled,\n help,\n multiline,\n leftIcon,\n rightIcon,\n clear,\n autoresize = true,\n autoresizeMaxRows = 6,\n characterCounter,\n mask,\n width,\n handleFocus,\n handleBlur,\n handleChange,\n } = useDataValue(preparedProps)\n\n const characterCounterElement = characterCounter\n ? props.maxLength\n ? `${value?.length ?? '0'}/${props.maxLength}`\n : `${value?.length ?? '0'}`\n : undefined\n const cn = classnames('dnb-forms-field-string__input', inputClassName)\n\n const sharedProps = {\n id,\n name,\n autoComplete,\n className: cn,\n placeholder: placeholder,\n suffix: help ? (\n <HelpButton title={help.title}>{help.contents}</HelpButton>\n ) : undefined,\n on_focus: handleFocus,\n on_blur: handleBlur,\n on_change: handleChange,\n disabled: disabled,\n stretch: width !== undefined,\n inner_ref: innerRef,\n status: error ? 'error' : undefined,\n value: value?.toString() ?? '',\n }\n\n return (\n <FieldBlock\n className={classnames('dnb-forms-field-string', className)}\n forId={id}\n layout={layout}\n label={label}\n labelDescription={labelDescription}\n labelSecondary={labelSecondary ?? characterCounterElement}\n info={info}\n warning={warning}\n disabled={disabled}\n error={error}\n width={width === 'stretch' ? width : undefined}\n contentsWidth={width !== false ? width : undefined}\n {...pickSpacingProps(props)}\n >\n {multiline ? (\n <Textarea\n {...sharedProps}\n autoresize={autoresize}\n autoresize_max_rows={autoresizeMaxRows}\n />\n ) : mask ? (\n <InputMasked\n {...sharedProps}\n mask={mask}\n icon={leftIcon ?? rightIcon}\n icon_position={rightIcon && !leftIcon ? 'right' : undefined}\n />\n ) : (\n <Input\n {...sharedProps}\n type={type}\n icon={leftIcon ?? rightIcon}\n icon_position={rightIcon && !leftIcon ? 'right' : undefined}\n clear={clear}\n />\n )}\n </FieldBlock>\n )\n}\n\nStringComponent._supportsSpacingProps = true\nexport default StringComponent\n"],"mappings":"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"}
1
+ {"version":3,"file":"String.js","names":["React","useContext","useMemo","useCallback","classnames","HelpButton","Input","Textarea","InputMasked","SharedContext","FieldBlock","useDataValue","pickSpacingProps","StringComponent","props","_props$width","_value$length","_value$length2","_value$toString","sharedContext","tr","translation","Forms","errorMessages","_objectSpread","required","inputErrorRequired","minLength","stringInputErrorMinLength","maxLength","stringInputErrorMaxLength","pattern","inputErrorPattern","schema","_props$schema","type","fromInput","event","_event","_event$cleanedValue","_event2","_event3","value","emptyValue","cleanedValue","preparedProps","width","id","name","className","autoComplete","inputMode","innerRef","inputClassName","layout","placeholder","label","labelDescription","labelSecondary","info","warning","error","hasError","disabled","help","multiline","leftIcon","rightIcon","clear","autoresize","autoresizeMaxRows","characterCounter","mask","handleFocus","handleBlur","handleChange","characterCounterElement","length","undefined","cn","sharedProps","suffix","createElement","title","contents","on_focus","on_blur","on_change","stretch","inner_ref","status","toString","_extends","forId","contentsWidth","autoresize_max_rows","icon","icon_position","_supportsSpacingProps"],"sources":["../../../../../../src/extensions/forms/Field/String/String.tsx"],"sourcesContent":["import React, { useContext, useMemo, useCallback } from 'react'\nimport classnames from 'classnames'\nimport { JSONSchema7 } from 'json-schema'\nimport { HelpButton, Input, Textarea } from '../../../../components'\nimport { InputProps } from '../../../../components/input/Input'\nimport InputMasked, {\n InputMaskedProps,\n} from '../../../../components/InputMasked'\nimport SharedContext from '../../../../shared/Context'\nimport FieldBlock from '../../FieldBlock'\nimport { useDataValue } from '../../hooks'\nimport { FieldProps, FieldHelpProps } from '../../types'\nimport { pickSpacingProps } from '../../../../components/flex/utils'\n\ninterface ErrorMessages {\n required?: string\n schema?: string\n minLength?: string\n maxLength?: string\n pattern?: string\n}\nexport type Props = FieldHelpProps &\n FieldProps<string, undefined | string, ErrorMessages> & {\n type?: InputProps['type']\n multiline?: boolean\n leftIcon?: string\n rightIcon?: string\n inputClassName?: string\n innerRef?: React.RefObject<HTMLInputElement | HTMLTextAreaElement>\n clear?: boolean\n autoresize?: boolean\n autoComplete?: HTMLInputElement['autocomplete']\n inputMode?: React.HTMLAttributes<HTMLInputElement>['inputMode']\n autoresizeMaxRows?: number\n characterCounter?: boolean\n mask?: InputMaskedProps['mask']\n // Validation\n minLength?: number\n maxLength?: number\n pattern?: string\n // Styling\n width?: false | 'small' | 'medium' | 'large' | 'stretch'\n }\n\nfunction StringComponent(props: Props) {\n const sharedContext = useContext(SharedContext)\n const tr = sharedContext?.translation.Forms\n\n const errorMessages = useMemo(\n () => ({\n required: tr.inputErrorRequired,\n minLength: tr.stringInputErrorMinLength,\n maxLength: tr.stringInputErrorMaxLength,\n pattern: tr.inputErrorPattern,\n ...props.errorMessages,\n }),\n [tr, props.errorMessages]\n )\n const schema = useMemo<JSONSchema7>(\n () =>\n props.schema ?? {\n type: 'string',\n minLength: props.minLength,\n maxLength: props.maxLength,\n pattern: props.pattern,\n },\n [props.schema, props.minLength, props.maxLength, props.pattern]\n )\n const fromInput = useCallback(\n (event: { value: string; cleanedValue?: string }) => {\n if (typeof event === 'string') {\n event = { value: event }\n }\n if (event?.value === '') {\n return props.emptyValue\n }\n // Cleaned value for masked\n return event?.cleanedValue ?? event?.value\n },\n [props.emptyValue]\n )\n\n const preparedProps: Props = {\n ...props,\n errorMessages,\n schema,\n fromInput,\n width: props.width ?? 'large',\n }\n\n const {\n id,\n name,\n className,\n autoComplete,\n inputMode,\n innerRef,\n inputClassName,\n layout,\n type,\n placeholder,\n label,\n labelDescription,\n labelSecondary,\n value,\n info,\n warning,\n error,\n hasError,\n disabled,\n help,\n multiline,\n leftIcon,\n rightIcon,\n clear,\n autoresize = true,\n autoresizeMaxRows = 6,\n characterCounter,\n mask,\n width,\n handleFocus,\n handleBlur,\n handleChange,\n } = useDataValue(preparedProps)\n\n const characterCounterElement = characterCounter\n ? props.maxLength\n ? `${value?.length ?? '0'}/${props.maxLength}`\n : `${value?.length ?? '0'}`\n : undefined\n const cn = classnames('dnb-forms-field-string__input', inputClassName)\n\n const sharedProps = {\n id,\n name,\n autoComplete,\n inputMode,\n className: cn,\n placeholder: placeholder,\n suffix: help ? (\n <HelpButton title={help.title}>{help.contents}</HelpButton>\n ) : undefined,\n on_focus: handleFocus,\n on_blur: handleBlur,\n on_change: handleChange,\n disabled: disabled,\n stretch: width !== undefined,\n inner_ref: innerRef,\n status: error || hasError ? 'error' : undefined,\n value: value?.toString() ?? '',\n }\n\n return (\n <FieldBlock\n className={classnames('dnb-forms-field-string', className)}\n forId={id}\n layout={layout}\n label={label}\n labelDescription={labelDescription}\n labelSecondary={labelSecondary ?? characterCounterElement}\n info={info}\n warning={warning}\n disabled={disabled}\n error={error}\n width={width === 'stretch' ? width : undefined}\n contentsWidth={width !== false ? width : undefined}\n {...pickSpacingProps(props)}\n >\n {multiline ? (\n <Textarea\n {...sharedProps}\n autoresize={autoresize}\n autoresize_max_rows={autoresizeMaxRows}\n />\n ) : mask ? (\n <InputMasked\n {...sharedProps}\n mask={mask}\n icon={leftIcon ?? rightIcon}\n icon_position={rightIcon && !leftIcon ? 'right' : undefined}\n />\n ) : (\n <Input\n {...sharedProps}\n type={type}\n icon={leftIcon ?? rightIcon}\n icon_position={rightIcon && !leftIcon ? 'right' : undefined}\n clear={clear}\n />\n )}\n </FieldBlock>\n )\n}\n\nStringComponent._supportsSpacingProps = true\nexport default StringComponent\n"],"mappings":"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"}
@@ -148,7 +148,7 @@ function useEnableFieldset({
148
148
  let count = 0;
149
149
  findElementInChildren(children, child => {
150
150
  var _child$props, _child$type;
151
- if (typeof (child === null || child === void 0 ? void 0 : (_child$props = child.props) === null || _child$props === void 0 ? void 0 : _child$props.label) !== 'undefined' || (child === null || child === void 0 ? void 0 : (_child$type = child.type) === null || _child$type === void 0 ? void 0 : _child$type['_formElement']) === true) {
151
+ if (child !== null && child !== void 0 && (_child$props = child.props) !== null && _child$props !== void 0 && _child$props.label || (child === null || child === void 0 ? void 0 : (_child$type = child.type) === null || _child$type === void 0 ? void 0 : _child$type['_formElement']) === true) {
152
152
  count++;
153
153
  }
154
154
  if (count > 1) {
@@ -157,7 +157,7 @@ function useEnableFieldset({
157
157
  });
158
158
  }
159
159
  return Boolean(result);
160
- }, [children]);
160
+ }, [asFieldset, children, label, nestedFieldBlockContext]);
161
161
  }
162
162
  FieldBlock._supportsSpacingProps = true;
163
163
  export default FieldBlock;
@@ -1 +1 @@
1
- {"version":3,"file":"FieldBlock.js","names":["React","useMemo","useContext","useState","useCallback","classnames","Space","FormLabel","FormStatus","FormError","FieldBlockContext","findElementInChildren","FieldBlock","props","nestedFieldBlockContext","className","forId","layout","label","labelDescription","labelSecondary","asFieldset","info","warning","error","errorProp","disabled","width","contentsWidth","size","contentClassName","children","rest","_objectWithoutProperties","_excluded","fieldErrorRecord","setFieldErrorRecord","showFieldErrorRecord","setShowFieldErrorRecord","setError","identifier","existing","_objectSpread","removed","newRecord","map","_toPropertyKey","setShowError","show","errors","Object","entries","filter","length","Error","message","join","undefined","mainClasses","gridClasses","enableFieldset","useEnableFieldset","state","stateStatus","Label","createElement","element","space","top","bottom","Provider","value","_extends","Fragment","id","text","toString","result","count","child","_child$props","_child$type","type","Boolean","_supportsSpacingProps"],"sources":["../../../../../src/extensions/forms/FieldBlock/FieldBlock.tsx"],"sourcesContent":["import React, { useMemo, useContext, useState, useCallback } from 'react'\nimport classnames from 'classnames'\nimport { Space, FormLabel, FormStatus } from '../../../components'\nimport { FormError, ComponentProps, FieldProps } from '../types'\nimport FieldBlockContext from './FieldBlockContext'\nimport { findElementInChildren } from '../../../shared/component-helper'\n\nexport type Props = Pick<\n FieldProps,\n | keyof ComponentProps\n | 'layout'\n | 'label'\n | 'labelDescription'\n | 'labelSecondary'\n | 'info'\n | 'warning'\n | 'error'\n | 'disabled'\n> & {\n forId?: string\n contentClassName?: string\n children: React.ReactNode\n /** Use true if you have more than one form element */\n asFieldset?: boolean\n /** Width of outer block element */\n width?: false | 'small' | 'medium' | 'large' | 'stretch'\n /** Width of contents block, while label etc can be wider if space is available */\n contentsWidth?: 'small' | 'medium' | 'large' | 'stretch'\n /** Typography size */\n size?: 'medium' | 'large'\n} & React.HTMLAttributes<HTMLDivElement>\n\nfunction FieldBlock(props: Props) {\n const nestedFieldBlockContext = useContext(FieldBlockContext)\n\n const {\n className,\n forId,\n layout = 'vertical',\n label,\n labelDescription,\n labelSecondary,\n asFieldset,\n info,\n warning,\n error: errorProp,\n disabled,\n width,\n contentsWidth,\n size,\n contentClassName,\n children,\n ...rest\n } = props\n\n const [fieldErrorRecord, setFieldErrorRecord] = useState<\n Record<string, FormError>\n >({})\n const [showFieldErrorRecord, setShowFieldErrorRecord] = useState<\n Record<string, boolean>\n >({})\n\n const setError = useCallback(\n (identifier, error) => {\n if (nestedFieldBlockContext) {\n // If this FieldBlock is inside another one, forward the call to the outer one\n nestedFieldBlockContext.setError(identifier, error)\n return\n }\n\n setFieldErrorRecord((existing) => {\n if (error) {\n return {\n ...existing,\n [identifier]: error,\n }\n } else {\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\n const { [identifier]: removed, ...newRecord } = existing\n return newRecord\n }\n })\n },\n [nestedFieldBlockContext]\n )\n\n const setShowError = useCallback(\n (identifier, show) => {\n if (nestedFieldBlockContext) {\n // If this FieldBlock is inside another one, forward the call to the outer one\n nestedFieldBlockContext.setShowError(identifier, show)\n return\n }\n\n setShowFieldErrorRecord((existing) => {\n if (show) {\n return {\n ...existing,\n [identifier]: true,\n }\n } else {\n const { [identifier]: removed, ...newRecord } = existing\n return newRecord\n }\n })\n },\n [nestedFieldBlockContext]\n )\n\n const error = useMemo(() => {\n if (errorProp) {\n return errorProp\n }\n const errors = Object.entries(fieldErrorRecord)\n .filter(([identifier]) => showFieldErrorRecord[identifier] === true)\n .map(([, error]) => error)\n return errors.length > 0\n ? new Error(errors.map((error) => error.message).join(' | '))\n : undefined\n }, [errorProp, fieldErrorRecord, showFieldErrorRecord])\n\n const mainClasses = classnames(\n 'dnb-forms-field-block',\n width !== undefined && `dnb-forms-field-block--width-${width}`,\n className\n )\n const gridClasses = classnames(\n 'dnb-forms-field-block__grid',\n `dnb-forms-field-block--layout-${layout}`\n )\n\n // A child component with a label was found, use fieldset/legend instead of div/label\n const enableFieldset = useEnableFieldset({\n label,\n asFieldset,\n children,\n nestedFieldBlockContext,\n })\n\n const state = error || warning || info\n const stateStatus = error\n ? 'error'\n : warning\n ? 'warn'\n : info\n ? 'info'\n : null\n\n const Label = ({ children }) => {\n return (\n <FormLabel\n element={enableFieldset ? 'legend' : 'label'}\n forId={enableFieldset ? undefined : forId}\n space={{ top: 0, bottom: 'x-small' }}\n size={size}\n disabled={disabled}\n >\n {children}\n </FormLabel>\n )\n }\n\n return (\n <FieldBlockContext.Provider\n value={{\n setError,\n setShowError,\n }}\n >\n <Space\n element={enableFieldset ? 'fieldset' : 'div'} // use fieldset and legend to enhance a11y\n className={mainClasses}\n {...rest}\n >\n <div className={gridClasses}>\n {labelDescription || labelSecondary ? (\n <div className=\"dnb-forms-field-block__label\">\n {label || labelDescription ? (\n <Label>\n {label}\n {labelDescription && (\n <span className=\"dnb-forms-field-block__label-description\">\n {labelDescription}\n </span>\n )}\n </Label>\n ) : (\n <>&nbsp;</>\n )}\n {labelSecondary && (\n <span className=\"dnb-forms-field-block__label-secondary\">\n {labelSecondary}\n </span>\n )}\n </div>\n ) : (\n label && <Label>{label}</Label>\n )}\n\n <div\n className={classnames(\n 'dnb-forms-field-block__contents',\n contentsWidth !== undefined &&\n `dnb-forms-field-block__contents--width-${contentsWidth}`,\n contentClassName\n )}\n >\n {children}\n </div>\n\n {stateStatus && (\n <div className=\"dnb-forms-field-block__status\">\n <FormStatus\n state={stateStatus}\n id={forId ? `${forId}-form-status` : undefined}\n text={\n error?.message ||\n (state instanceof Error && state.message) ||\n (state instanceof FormError && state.message) ||\n state?.toString()\n }\n label={label as string}\n space={{ top: 'x-small' }}\n />\n </div>\n )}\n </div>\n </Space>\n </FieldBlockContext.Provider>\n )\n}\n\nfunction useEnableFieldset({\n label,\n asFieldset,\n children,\n nestedFieldBlockContext,\n}) {\n return useMemo(() => {\n let result = asFieldset\n\n if (label && !result && !nestedFieldBlockContext) {\n let count = 0\n\n findElementInChildren(children, (child: React.ReactElement) => {\n if (\n typeof child?.props?.label !== 'undefined' ||\n child?.type?.['_formElement'] === true\n ) {\n count++\n }\n if (count > 1) {\n return (result = true)\n }\n })\n }\n\n return Boolean(result)\n }, [children])\n}\n\nFieldBlock._supportsSpacingProps = true\nexport default FieldBlock\n"],"mappings":"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"}
1
+ {"version":3,"file":"FieldBlock.js","names":["React","useMemo","useContext","useState","useCallback","classnames","Space","FormLabel","FormStatus","FormError","FieldBlockContext","findElementInChildren","FieldBlock","props","nestedFieldBlockContext","className","forId","layout","label","labelDescription","labelSecondary","asFieldset","info","warning","error","errorProp","disabled","width","contentsWidth","size","contentClassName","children","rest","_objectWithoutProperties","_excluded","fieldErrorRecord","setFieldErrorRecord","showFieldErrorRecord","setShowFieldErrorRecord","setError","identifier","existing","_objectSpread","removed","newRecord","map","_toPropertyKey","setShowError","show","errors","Object","entries","filter","length","Error","message","join","undefined","mainClasses","gridClasses","enableFieldset","useEnableFieldset","state","stateStatus","Label","createElement","element","space","top","bottom","Provider","value","_extends","Fragment","id","text","toString","result","count","child","_child$props","_child$type","type","Boolean","_supportsSpacingProps"],"sources":["../../../../../src/extensions/forms/FieldBlock/FieldBlock.tsx"],"sourcesContent":["import React, { useMemo, useContext, useState, useCallback } from 'react'\nimport classnames from 'classnames'\nimport { Space, FormLabel, FormStatus } from '../../../components'\nimport { FormError, ComponentProps, FieldProps } from '../types'\nimport FieldBlockContext from './FieldBlockContext'\nimport { findElementInChildren } from '../../../shared/component-helper'\n\nexport type Props = Pick<\n FieldProps,\n | keyof ComponentProps\n | 'layout'\n | 'label'\n | 'labelDescription'\n | 'labelSecondary'\n | 'info'\n | 'warning'\n | 'error'\n | 'disabled'\n> & {\n forId?: string\n contentClassName?: string\n children: React.ReactNode\n /** Use true if you have more than one form element */\n asFieldset?: boolean\n /** Width of outer block element */\n width?: false | 'small' | 'medium' | 'large' | 'stretch'\n /** Width of contents block, while label etc can be wider if space is available */\n contentsWidth?: 'small' | 'medium' | 'large' | 'stretch'\n /** Typography size */\n size?: 'medium' | 'large'\n} & React.HTMLAttributes<HTMLDivElement>\n\nfunction FieldBlock(props: Props) {\n const nestedFieldBlockContext = useContext(FieldBlockContext)\n\n const {\n className,\n forId,\n layout = 'vertical',\n label,\n labelDescription,\n labelSecondary,\n asFieldset,\n info,\n warning,\n error: errorProp,\n disabled,\n width,\n contentsWidth,\n size,\n contentClassName,\n children,\n ...rest\n } = props\n\n const [fieldErrorRecord, setFieldErrorRecord] = useState<\n Record<string, FormError>\n >({})\n const [showFieldErrorRecord, setShowFieldErrorRecord] = useState<\n Record<string, boolean>\n >({})\n\n const setError = useCallback(\n (identifier, error) => {\n if (nestedFieldBlockContext) {\n // If this FieldBlock is inside another one, forward the call to the outer one\n nestedFieldBlockContext.setError(identifier, error)\n return\n }\n\n setFieldErrorRecord((existing) => {\n if (error) {\n return {\n ...existing,\n [identifier]: error,\n }\n } else {\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\n const { [identifier]: removed, ...newRecord } = existing\n return newRecord\n }\n })\n },\n [nestedFieldBlockContext]\n )\n\n const setShowError = useCallback(\n (identifier, show) => {\n if (nestedFieldBlockContext) {\n // If this FieldBlock is inside another one, forward the call to the outer one\n nestedFieldBlockContext.setShowError(identifier, show)\n return\n }\n\n setShowFieldErrorRecord((existing) => {\n if (show) {\n return {\n ...existing,\n [identifier]: true,\n }\n } else {\n const { [identifier]: removed, ...newRecord } = existing\n return newRecord\n }\n })\n },\n [nestedFieldBlockContext]\n )\n\n const error = useMemo(() => {\n if (errorProp) {\n return errorProp\n }\n const errors = Object.entries(fieldErrorRecord)\n .filter(([identifier]) => showFieldErrorRecord[identifier] === true)\n .map(([, error]) => error)\n return errors.length > 0\n ? new Error(errors.map((error) => error.message).join(' | '))\n : undefined\n }, [errorProp, fieldErrorRecord, showFieldErrorRecord])\n\n const mainClasses = classnames(\n 'dnb-forms-field-block',\n width !== undefined && `dnb-forms-field-block--width-${width}`,\n className\n )\n const gridClasses = classnames(\n 'dnb-forms-field-block__grid',\n `dnb-forms-field-block--layout-${layout}`\n )\n\n // A child component with a label was found, use fieldset/legend instead of div/label\n const enableFieldset = useEnableFieldset({\n label,\n asFieldset,\n children,\n nestedFieldBlockContext,\n })\n\n const state = error || warning || info\n const stateStatus = error\n ? 'error'\n : warning\n ? 'warn'\n : info\n ? 'info'\n : null\n\n const Label = ({ children }) => {\n return (\n <FormLabel\n element={enableFieldset ? 'legend' : 'label'}\n forId={enableFieldset ? undefined : forId}\n space={{ top: 0, bottom: 'x-small' }}\n size={size}\n disabled={disabled}\n >\n {children}\n </FormLabel>\n )\n }\n\n return (\n <FieldBlockContext.Provider\n value={{\n setError,\n setShowError,\n }}\n >\n <Space\n element={enableFieldset ? 'fieldset' : 'div'} // use fieldset and legend to enhance a11y\n className={mainClasses}\n {...rest}\n >\n <div className={gridClasses}>\n {labelDescription || labelSecondary ? (\n <div className=\"dnb-forms-field-block__label\">\n {label || labelDescription ? (\n <Label>\n {label}\n {labelDescription && (\n <span className=\"dnb-forms-field-block__label-description\">\n {labelDescription}\n </span>\n )}\n </Label>\n ) : (\n <>&nbsp;</>\n )}\n {labelSecondary && (\n <span className=\"dnb-forms-field-block__label-secondary\">\n {labelSecondary}\n </span>\n )}\n </div>\n ) : (\n label && <Label>{label}</Label>\n )}\n\n <div\n className={classnames(\n 'dnb-forms-field-block__contents',\n contentsWidth !== undefined &&\n `dnb-forms-field-block__contents--width-${contentsWidth}`,\n contentClassName\n )}\n >\n {children}\n </div>\n\n {stateStatus && (\n <div className=\"dnb-forms-field-block__status\">\n <FormStatus\n state={stateStatus}\n id={forId ? `${forId}-form-status` : undefined}\n text={\n error?.message ||\n (state instanceof Error && state.message) ||\n (state instanceof FormError && state.message) ||\n state?.toString()\n }\n label={label as string}\n space={{ top: 'x-small' }}\n />\n </div>\n )}\n </div>\n </Space>\n </FieldBlockContext.Provider>\n )\n}\n\nfunction useEnableFieldset({\n label,\n asFieldset,\n children,\n nestedFieldBlockContext,\n}) {\n return useMemo(() => {\n let result = asFieldset\n\n if (label && !result && !nestedFieldBlockContext) {\n let count = 0\n\n findElementInChildren(children, (child: React.ReactElement) => {\n if (\n child?.props?.label ||\n child?.type?.['_formElement'] === true\n ) {\n count++\n }\n if (count > 1) {\n return (result = true)\n }\n })\n }\n\n return Boolean(result)\n }, [asFieldset, children, label, nestedFieldBlockContext])\n}\n\nFieldBlock._supportsSpacingProps = true\nexport default FieldBlock\n"],"mappings":"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"}
@@ -32,7 +32,7 @@ fieldset.dnb-forms-field-block:not([class*=space__left]) {
32
32
  grid-template-areas: "label" "contents" "status";
33
33
  }
34
34
  .dnb-forms-field-block--layout-horizontal {
35
- grid-template-columns: var(--forms-field-width--medium) auto;
35
+ grid-template-columns: fit-content(100%) auto;
36
36
  grid-template-areas: "label contents" "status status";
37
37
  }
38
38
  .dnb-forms-field-block--width-stretch {
@@ -1 +1 @@
1
- :root{--forms-field-width--small:5rem;--forms-field-width--medium:11rem;--forms-field-width--large:21rem}fieldset.dnb-forms-field-block{border:none;padding:0}fieldset.dnb-forms-field-block:not([class*=space__top]){margin-top:0}fieldset.dnb-forms-field-block:not([class*=space__right]){margin-right:0}fieldset.dnb-forms-field-block:not([class*=space__bottom]){margin-bottom:0}fieldset.dnb-forms-field-block:not([class*=space__left]){margin-left:0}.dnb-forms-field-block__grid{display:grid}.dnb-forms-field-block--layout-vertical{grid-template-areas:"label" "contents" "status";grid-template-columns:auto}.dnb-forms-field-block--layout-horizontal{grid-template-areas:"label contents" "status status";grid-template-columns:var(--forms-field-width--medium) auto}.dnb-forms-field-block--width-stretch{flex-grow:1}@media screen and (min-width:30em){.dnb-forms-field-block--width-small{width:var(--forms-field-width--small)}.dnb-forms-field-block--width-medium{width:var(--forms-field-width--medium)}.dnb-forms-field-block--width-large{width:var(--forms-field-width--large)}}.dnb-forms-field-block__label{align-items:center;display:flex;flex-flow:row;grid-area:label;justify-content:space-between}.dnb-forms-field-block__label-description{margin-left:.3em}.dnb-forms-field-block__label-description,.dnb-forms-field-block__label-secondary{color:var(--color-black-55);font-size:var(--font-size-small)}.dnb-forms-field-block__status{grid-area:status}.dnb-forms-field-block__contents{grid-area:contents}.dnb-forms-field-block__contents--width-stretch{width:100%}@media screen and (min-width:30em){.dnb-forms-field-block__contents--width-small{width:var(--forms-field-width--small)}.dnb-forms-field-block__contents--width-medium{width:var(--forms-field-width--medium)}.dnb-forms-field-block__contents--width-large{width:var(--forms-field-width--large)}}
1
+ :root{--forms-field-width--small:5rem;--forms-field-width--medium:11rem;--forms-field-width--large:21rem}fieldset.dnb-forms-field-block{border:none;padding:0}fieldset.dnb-forms-field-block:not([class*=space__top]){margin-top:0}fieldset.dnb-forms-field-block:not([class*=space__right]){margin-right:0}fieldset.dnb-forms-field-block:not([class*=space__bottom]){margin-bottom:0}fieldset.dnb-forms-field-block:not([class*=space__left]){margin-left:0}.dnb-forms-field-block__grid{display:grid}.dnb-forms-field-block--layout-vertical{grid-template-areas:"label" "contents" "status";grid-template-columns:auto}.dnb-forms-field-block--layout-horizontal{grid-template-areas:"label contents" "status status";grid-template-columns:fit-content(100%) auto}.dnb-forms-field-block--width-stretch{flex-grow:1}@media screen and (min-width:30em){.dnb-forms-field-block--width-small{width:var(--forms-field-width--small)}.dnb-forms-field-block--width-medium{width:var(--forms-field-width--medium)}.dnb-forms-field-block--width-large{width:var(--forms-field-width--large)}}.dnb-forms-field-block__label{align-items:center;display:flex;flex-flow:row;grid-area:label;justify-content:space-between}.dnb-forms-field-block__label-description{margin-left:.3em}.dnb-forms-field-block__label-description,.dnb-forms-field-block__label-secondary{color:var(--color-black-55);font-size:var(--font-size-small)}.dnb-forms-field-block__status{grid-area:status}.dnb-forms-field-block__contents{grid-area:contents}.dnb-forms-field-block__contents--width-stretch{width:100%}@media screen and (min-width:30em){.dnb-forms-field-block__contents--width-small{width:var(--forms-field-width--small)}.dnb-forms-field-block__contents--width-medium{width:var(--forms-field-width--medium)}.dnb-forms-field-block__contents--width-large{width:var(--forms-field-width--large)}}
@@ -19,7 +19,7 @@ fieldset.dnb-forms-field-block {
19
19
  'status';
20
20
  }
21
21
  &-horizontal {
22
- grid-template-columns: var(--forms-field-width--medium) auto;
22
+ grid-template-columns: fit-content(100%) auto;
23
23
  grid-template-areas:
24
24
  'label contents'
25
25
  'status status';
@@ -1,7 +1,14 @@
1
+ /*
2
+ * Utilities
3
+ */
1
4
  .dnb-forms-button-row {
2
5
  display: flex;
3
6
  flex-flow: row;
4
- grid-column-gap: var(--spacing-small);
5
7
  -moz-column-gap: var(--spacing-small);
6
8
  column-gap: var(--spacing-small);
9
+ }
10
+ @media screen and (min-width: 40em) {
11
+ .dnb-card + .dnb-forms-button-row:not([class*=space__left]) {
12
+ margin-left: var(--spacing-medium);
13
+ }
7
14
  }
@@ -1 +1 @@
1
- .dnb-forms-button-row{grid-column-gap:var(--spacing-small);-moz-column-gap:var(--spacing-small);column-gap:var(--spacing-small);display:flex;flex-flow:row}
1
+ .dnb-forms-button-row{-moz-column-gap:var(--spacing-small);column-gap:var(--spacing-small);display:flex;flex-flow:row}@media screen and (min-width:40em){.dnb-card+.dnb-forms-button-row:not([class*=space__left]){margin-left:var(--spacing-medium)}}
@@ -1,5 +1,15 @@
1
+ @import '../../../../../style/core/utilities.scss';
2
+
1
3
  .dnb-forms-button-row {
2
4
  display: flex;
3
5
  flex-flow: row;
4
6
  column-gap: var(--spacing-small);
7
+
8
+ .dnb-card + & {
9
+ &:not([class*='space__left']) {
10
+ @include allAbove(small) {
11
+ margin-left: var(--spacing-medium);
12
+ }
13
+ }
14
+ }
5
15
  }
@@ -26,9 +26,9 @@ export default function FormHandler(_ref) {
26
26
  schema,
27
27
  onChange,
28
28
  onPathChange,
29
- onSubmit: data => {
29
+ onSubmit: (...args) => {
30
30
  if (typeof onSubmit === 'function') {
31
- onSubmit(data);
31
+ onSubmit(...args);
32
32
  }
33
33
  },
34
34
  onSubmitRequest,