@dnb/eufemia 10.28.0 → 10.29.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 (651) hide show
  1. package/CHANGELOG.md +31 -0
  2. package/cjs/components/aria-live/useAriaLive.d.ts +1 -1
  3. package/cjs/components/autocomplete/Autocomplete.d.ts +19 -5
  4. package/cjs/components/dropdown/Dropdown.d.ts +22 -5
  5. package/cjs/components/height-animation/HeightAnimationInstance.js +5 -0
  6. package/cjs/components/height-animation/HeightAnimationInstance.js.map +1 -1
  7. package/cjs/components/icon/style/dnb-icon.css +1 -0
  8. package/cjs/components/icon/style/dnb-icon.min.css +1 -1
  9. package/cjs/components/icon/style/dnb-icon.scss +1 -0
  10. package/cjs/components/progress-indicator/ProgressIndicator.d.ts +2 -52
  11. package/cjs/components/progress-indicator/ProgressIndicator.js +27 -14
  12. package/cjs/components/progress-indicator/ProgressIndicator.js.map +1 -1
  13. package/cjs/components/progress-indicator/ProgressIndicatorCircular.d.ts +2 -23
  14. package/cjs/components/progress-indicator/ProgressIndicatorCircular.js +63 -27
  15. package/cjs/components/progress-indicator/ProgressIndicatorCircular.js.map +1 -1
  16. package/cjs/components/progress-indicator/ProgressIndicatorDocs.d.ts +1 -0
  17. package/cjs/components/progress-indicator/ProgressIndicatorDocs.js +45 -11
  18. package/cjs/components/progress-indicator/ProgressIndicatorDocs.js.map +1 -1
  19. package/cjs/components/progress-indicator/ProgressIndicatorLinear.d.ts +2 -22
  20. package/cjs/components/progress-indicator/ProgressIndicatorLinear.js +18 -10
  21. package/cjs/components/progress-indicator/ProgressIndicatorLinear.js.map +1 -1
  22. package/cjs/components/progress-indicator/style/dnb-progress-indicator.css +52 -55
  23. package/cjs/components/progress-indicator/style/dnb-progress-indicator.min.css +1 -1
  24. package/cjs/components/progress-indicator/style/dnb-progress-indicator.scss +65 -69
  25. package/cjs/components/progress-indicator/types.d.ts +95 -0
  26. package/cjs/components/progress-indicator/types.js +11 -0
  27. package/cjs/components/progress-indicator/types.js.map +1 -0
  28. package/cjs/extensions/forms/DataContext/Context.d.ts +5 -1
  29. package/cjs/extensions/forms/DataContext/Context.js +0 -1
  30. package/cjs/extensions/forms/DataContext/Context.js.map +1 -1
  31. package/cjs/extensions/forms/DataContext/Provider/Provider.d.ts +17 -5
  32. package/cjs/extensions/forms/DataContext/Provider/Provider.js +60 -30
  33. package/cjs/extensions/forms/DataContext/Provider/Provider.js.map +1 -1
  34. package/cjs/extensions/forms/DataContext/Provider/ProviderDocs.js +12 -2
  35. package/cjs/extensions/forms/DataContext/Provider/ProviderDocs.js.map +1 -1
  36. package/cjs/extensions/forms/Field/ArraySelection/ArraySelection.js +1 -1
  37. package/cjs/extensions/forms/Field/ArraySelection/ArraySelection.js.map +1 -1
  38. package/cjs/extensions/forms/Field/ArraySelection/style/dnb-array-selection.css +5 -2
  39. package/cjs/extensions/forms/Field/ArraySelection/style/dnb-array-selection.min.css +1 -1
  40. package/cjs/extensions/forms/Field/ArraySelection/style/dnb-array-selection.scss +5 -2
  41. package/cjs/extensions/forms/Field/Name/Name.d.ts +10 -0
  42. package/cjs/extensions/forms/Field/Name/Name.js +73 -0
  43. package/cjs/extensions/forms/Field/Name/Name.js.map +1 -0
  44. package/cjs/extensions/forms/Field/Name/NameDocs.d.ts +2 -0
  45. package/cjs/extensions/forms/Field/Name/NameDocs.js +15 -0
  46. package/cjs/extensions/forms/Field/Name/NameDocs.js.map +1 -0
  47. package/cjs/extensions/forms/Field/Name/index.d.ts +2 -0
  48. package/cjs/extensions/forms/Field/Name/index.js +27 -0
  49. package/cjs/extensions/forms/Field/Name/index.js.map +1 -0
  50. package/cjs/extensions/forms/Field/Number/Number.d.ts +2 -2
  51. package/cjs/extensions/forms/Field/Number/Number.js.map +1 -1
  52. package/cjs/extensions/forms/Field/Option/Option.d.ts +2 -0
  53. package/cjs/extensions/forms/Field/Option/Option.js +21 -0
  54. package/cjs/extensions/forms/Field/Option/Option.js.map +1 -1
  55. package/cjs/extensions/forms/Field/PostalCodeAndCity/PostalCodeAndCityDocs.d.ts +2 -0
  56. package/cjs/extensions/forms/Field/PostalCodeAndCity/PostalCodeAndCityDocs.js +25 -0
  57. package/cjs/extensions/forms/Field/PostalCodeAndCity/PostalCodeAndCityDocs.js.map +1 -0
  58. package/cjs/extensions/forms/Field/SelectCountry/SelectCountry.d.ts +2 -2
  59. package/cjs/extensions/forms/Field/SelectCountry/SelectCountry.js.map +1 -1
  60. package/cjs/extensions/forms/Field/Selection/Selection.d.ts +11 -4
  61. package/cjs/extensions/forms/Field/Selection/Selection.js +20 -32
  62. package/cjs/extensions/forms/Field/Selection/Selection.js.map +1 -1
  63. package/cjs/extensions/forms/Field/Selection/SelectionDocs.d.ts +2 -0
  64. package/cjs/extensions/forms/Field/Selection/SelectionDocs.js +45 -0
  65. package/cjs/extensions/forms/Field/Selection/SelectionDocs.js.map +1 -0
  66. package/cjs/extensions/forms/Field/String/String.d.ts +2 -2
  67. package/cjs/extensions/forms/Field/String/String.js.map +1 -1
  68. package/cjs/extensions/forms/Field/index.d.ts +1 -0
  69. package/cjs/extensions/forms/Field/index.js +7 -0
  70. package/cjs/extensions/forms/Field/index.js.map +1 -1
  71. package/cjs/extensions/forms/FieldBlock/FieldBlock.d.ts +3 -3
  72. package/cjs/extensions/forms/FieldBlock/FieldBlock.js.map +1 -1
  73. package/cjs/extensions/forms/Form/Handler/Handler.d.ts +1 -1
  74. package/cjs/extensions/forms/Form/Handler/Handler.js +8 -2
  75. package/cjs/extensions/forms/Form/Handler/Handler.js.map +1 -1
  76. package/cjs/extensions/forms/Form/MainHeading/MainHeading.js +1 -1
  77. package/cjs/extensions/forms/Form/MainHeading/MainHeading.js.map +1 -1
  78. package/cjs/extensions/forms/Form/MainHeading/style/dnb-form-main-heading.css +3 -3
  79. package/cjs/extensions/forms/Form/MainHeading/style/dnb-form-main-heading.min.css +1 -1
  80. package/cjs/extensions/forms/Form/MainHeading/style/dnb-form-main-heading.scss +1 -1
  81. package/cjs/extensions/forms/Form/SubHeading/SubHeading.js +1 -1
  82. package/cjs/extensions/forms/Form/SubHeading/SubHeading.js.map +1 -1
  83. package/cjs/extensions/forms/Form/SubHeading/style/dnb-form-sub-heading.css +2 -2
  84. package/cjs/extensions/forms/Form/SubHeading/style/dnb-form-sub-heading.min.css +1 -1
  85. package/cjs/extensions/forms/Form/SubHeading/style/dnb-form-sub-heading.scss +1 -1
  86. package/cjs/extensions/forms/Form/SubmitIndicator/SubmitIndicator.js +2 -2
  87. package/cjs/extensions/forms/Form/SubmitIndicator/SubmitIndicator.js.map +1 -1
  88. package/cjs/extensions/forms/Form/SubmitIndicator/style/dnb-form-submit-indicator.css +13 -13
  89. package/cjs/extensions/forms/Form/SubmitIndicator/style/dnb-form-submit-indicator.min.css +1 -1
  90. package/cjs/extensions/forms/Form/SubmitIndicator/style/dnb-form-submit-indicator.scss +1 -1
  91. package/cjs/extensions/forms/Iterate/AnimatedContainer/ElementBlock.js +4 -4
  92. package/cjs/extensions/forms/Iterate/AnimatedContainer/ElementBlock.js.map +1 -1
  93. package/cjs/extensions/forms/Iterate/Array/Array.js +2 -2
  94. package/cjs/extensions/forms/Iterate/Array/Array.js.map +1 -1
  95. package/cjs/extensions/forms/Iterate/EditContainer/EditContainer.js +1 -1
  96. package/cjs/extensions/forms/Iterate/EditContainer/EditContainer.js.map +1 -1
  97. package/cjs/extensions/forms/Iterate/PushButton/PushButton.js +1 -1
  98. package/cjs/extensions/forms/Iterate/PushButton/PushButton.js.map +1 -1
  99. package/cjs/extensions/forms/Iterate/RemoveButton/RemoveButton.js +1 -1
  100. package/cjs/extensions/forms/Iterate/RemoveButton/RemoveButton.js.map +1 -1
  101. package/cjs/extensions/forms/Iterate/Toolbar/Toolbar.js +1 -1
  102. package/cjs/extensions/forms/Iterate/Toolbar/Toolbar.js.map +1 -1
  103. package/cjs/extensions/forms/Iterate/ViewContainer/ViewContainer.js +1 -1
  104. package/cjs/extensions/forms/Iterate/ViewContainer/ViewContainer.js.map +1 -1
  105. package/cjs/extensions/forms/Iterate/style/dnb-form-iterate.css +14 -14
  106. package/cjs/extensions/forms/Iterate/style/dnb-form-iterate.min.css +1 -1
  107. package/cjs/extensions/forms/Iterate/style/dnb-form-iterate.scss +1 -1
  108. package/cjs/extensions/forms/Value/Boolean/Boolean.js +8 -3
  109. package/cjs/extensions/forms/Value/Boolean/Boolean.js.map +1 -1
  110. package/cjs/extensions/forms/Value/Name/Name.d.ts +10 -0
  111. package/cjs/extensions/forms/Value/Name/Name.js +50 -0
  112. package/cjs/extensions/forms/Value/Name/Name.js.map +1 -0
  113. package/cjs/extensions/forms/Value/Name/index.d.ts +2 -0
  114. package/cjs/extensions/forms/Value/Name/index.js +27 -0
  115. package/cjs/extensions/forms/Value/Name/index.js.map +1 -0
  116. package/cjs/extensions/forms/Value/OrganizationNumber/OrganizationNumber.d.ts +7 -0
  117. package/cjs/extensions/forms/Value/OrganizationNumber/OrganizationNumber.js +36 -0
  118. package/cjs/extensions/forms/Value/OrganizationNumber/OrganizationNumber.js.map +1 -0
  119. package/cjs/extensions/forms/Value/OrganizationNumber/index.d.ts +2 -0
  120. package/cjs/extensions/forms/Value/OrganizationNumber/index.js +27 -0
  121. package/cjs/extensions/forms/Value/OrganizationNumber/index.js.map +1 -0
  122. package/cjs/extensions/forms/Value/PostalCodeAndCity/PostalCodeAndCity.d.ts +7 -0
  123. package/cjs/extensions/forms/Value/PostalCodeAndCity/PostalCodeAndCity.js +41 -0
  124. package/cjs/extensions/forms/Value/PostalCodeAndCity/PostalCodeAndCity.js.map +1 -0
  125. package/cjs/extensions/forms/Value/PostalCodeAndCity/PostalCodeAndCityDocs.d.ts +2 -0
  126. package/cjs/extensions/forms/Value/PostalCodeAndCity/PostalCodeAndCityDocs.js +20 -0
  127. package/cjs/extensions/forms/Value/PostalCodeAndCity/PostalCodeAndCityDocs.js.map +1 -0
  128. package/cjs/extensions/forms/Value/PostalCodeAndCity/index.d.ts +2 -0
  129. package/cjs/extensions/forms/Value/PostalCodeAndCity/index.js +27 -0
  130. package/cjs/extensions/forms/Value/PostalCodeAndCity/index.js.map +1 -0
  131. package/cjs/extensions/forms/Value/String/String.js +8 -3
  132. package/cjs/extensions/forms/Value/String/String.js.map +1 -1
  133. package/cjs/extensions/forms/Value/SummaryList/SummaryList.js +1 -1
  134. package/cjs/extensions/forms/Value/SummaryList/SummaryList.js.map +1 -1
  135. package/cjs/extensions/forms/Value/ValueDocs.js +6 -1
  136. package/cjs/extensions/forms/Value/ValueDocs.js.map +1 -1
  137. package/cjs/extensions/forms/Value/index.d.ts +3 -0
  138. package/cjs/extensions/forms/Value/index.js +21 -0
  139. package/cjs/extensions/forms/Value/index.js.map +1 -1
  140. package/cjs/extensions/forms/ValueBlock/ValueBlock.js +2 -1
  141. package/cjs/extensions/forms/ValueBlock/ValueBlock.js.map +1 -1
  142. package/cjs/extensions/forms/ValueBlock/style/dnb-value-block.css +11 -6
  143. package/cjs/extensions/forms/ValueBlock/style/dnb-value-block.min.css +1 -1
  144. package/cjs/extensions/forms/ValueBlock/style/dnb-value-block.scss +11 -3
  145. package/cjs/extensions/forms/Wizard/Container/WizardContainer.js +17 -52
  146. package/cjs/extensions/forms/Wizard/Container/WizardContainer.js.map +1 -1
  147. package/cjs/extensions/forms/Wizard/Container/useHandleLayoutEffect.d.ts +9 -0
  148. package/cjs/extensions/forms/Wizard/Container/useHandleLayoutEffect.js +53 -0
  149. package/cjs/extensions/forms/Wizard/Container/useHandleLayoutEffect.js.map +1 -0
  150. package/cjs/extensions/forms/Wizard/Container/useStepAnimation.d.ts +4 -0
  151. package/cjs/extensions/forms/Wizard/Container/useStepAnimation.js +37 -0
  152. package/cjs/extensions/forms/Wizard/Container/useStepAnimation.js.map +1 -0
  153. package/cjs/extensions/forms/Wizard/Step/Step.js +13 -1
  154. package/cjs/extensions/forms/Wizard/Step/Step.js.map +1 -1
  155. package/cjs/extensions/forms/Wizard/hooks/useStep.js +5 -2
  156. package/cjs/extensions/forms/Wizard/hooks/useStep.js.map +1 -1
  157. package/cjs/extensions/forms/Wizard/style/dnb-wizard-layout.css +29 -2
  158. package/cjs/extensions/forms/Wizard/style/dnb-wizard-layout.min.css +1 -1
  159. package/cjs/extensions/forms/Wizard/style/dnb-wizard-layout.scss +35 -2
  160. package/cjs/extensions/forms/constants/locales/en-GB.d.ts +9 -0
  161. package/cjs/extensions/forms/constants/locales/en-GB.js +12 -3
  162. package/cjs/extensions/forms/constants/locales/en-GB.js.map +1 -1
  163. package/cjs/extensions/forms/constants/locales/en-US.d.ts +9 -0
  164. package/cjs/extensions/forms/constants/locales/index.d.ts +18 -0
  165. package/cjs/extensions/forms/constants/locales/nb-NO.d.ts +9 -0
  166. package/cjs/extensions/forms/constants/locales/nb-NO.js +11 -2
  167. package/cjs/extensions/forms/constants/locales/nb-NO.js.map +1 -1
  168. package/cjs/extensions/forms/style/dnb-forms.css +77 -43
  169. package/cjs/extensions/forms/style/dnb-forms.min.css +1 -1
  170. package/cjs/extensions/forms/types.d.ts +3 -2
  171. package/cjs/extensions/forms/types.js.map +1 -1
  172. package/cjs/fragments/drawer-list/DrawerList.d.ts +8 -4
  173. package/cjs/shared/Context.d.ts +2 -4
  174. package/cjs/shared/Context.js.map +1 -1
  175. package/cjs/shared/Eufemia.d.ts +1 -1
  176. package/cjs/shared/Eufemia.js +2 -2
  177. package/cjs/shared/Eufemia.js.map +1 -1
  178. package/cjs/shared/component-helper.js +1 -1
  179. package/cjs/shared/component-helper.js.map +1 -1
  180. package/cjs/style/core/scopes.scss +1 -1
  181. package/cjs/style/dnb-ui-basis.css +1 -1
  182. package/cjs/style/dnb-ui-basis.min.css +1 -1
  183. package/cjs/style/dnb-ui-body.css +1 -1
  184. package/cjs/style/dnb-ui-body.min.css +1 -1
  185. package/cjs/style/dnb-ui-components.css +129 -98
  186. package/cjs/style/dnb-ui-components.min.css +2 -2
  187. package/cjs/style/dnb-ui-core.css +1 -1
  188. package/cjs/style/dnb-ui-core.min.css +1 -1
  189. package/cjs/style/dnb-ui-extensions.css +77 -43
  190. package/cjs/style/dnb-ui-extensions.min.css +1 -1
  191. package/cjs/style/dnb-ui-forms.css +77 -43
  192. package/cjs/style/dnb-ui-forms.min.css +1 -1
  193. package/cjs/style/dnb-ui-forms.scss +1 -1
  194. package/cjs/style/themes/theme-eiendom/eiendom-theme-components.css +205 -141
  195. package/cjs/style/themes/theme-eiendom/eiendom-theme-components.min.css +2 -2
  196. package/cjs/style/themes/theme-eiendom/eiendom-theme-extensions.css +77 -43
  197. package/cjs/style/themes/theme-eiendom/eiendom-theme-extensions.min.css +1 -1
  198. package/cjs/style/themes/theme-eiendom/eiendom-theme-forms.css +77 -43
  199. package/cjs/style/themes/theme-eiendom/eiendom-theme-forms.min.css +1 -1
  200. package/cjs/style/themes/theme-sbanken/sbanken-theme-components.css +205 -141
  201. package/cjs/style/themes/theme-sbanken/sbanken-theme-components.min.css +2 -2
  202. package/cjs/style/themes/theme-sbanken/sbanken-theme-extensions.css +77 -43
  203. package/cjs/style/themes/theme-sbanken/sbanken-theme-extensions.min.css +1 -1
  204. package/cjs/style/themes/theme-sbanken/sbanken-theme-forms.css +77 -43
  205. package/cjs/style/themes/theme-sbanken/sbanken-theme-forms.min.css +1 -1
  206. package/cjs/style/themes/theme-ui/ui-theme-components.css +205 -141
  207. package/cjs/style/themes/theme-ui/ui-theme-components.min.css +2 -2
  208. package/cjs/style/themes/theme-ui/ui-theme-extensions.css +77 -43
  209. package/cjs/style/themes/theme-ui/ui-theme-extensions.min.css +1 -1
  210. package/cjs/style/themes/theme-ui/ui-theme-forms.css +77 -43
  211. package/cjs/style/themes/theme-ui/ui-theme-forms.min.css +1 -1
  212. package/components/aria-live/useAriaLive.d.ts +1 -1
  213. package/components/autocomplete/Autocomplete.d.ts +19 -5
  214. package/components/dropdown/Dropdown.d.ts +22 -5
  215. package/components/height-animation/HeightAnimationInstance.js +5 -0
  216. package/components/height-animation/HeightAnimationInstance.js.map +1 -1
  217. package/components/icon/style/dnb-icon.css +1 -0
  218. package/components/icon/style/dnb-icon.min.css +1 -1
  219. package/components/icon/style/dnb-icon.scss +1 -0
  220. package/components/progress-indicator/ProgressIndicator.d.ts +2 -52
  221. package/components/progress-indicator/ProgressIndicator.js +27 -14
  222. package/components/progress-indicator/ProgressIndicator.js.map +1 -1
  223. package/components/progress-indicator/ProgressIndicatorCircular.d.ts +2 -23
  224. package/components/progress-indicator/ProgressIndicatorCircular.js +63 -27
  225. package/components/progress-indicator/ProgressIndicatorCircular.js.map +1 -1
  226. package/components/progress-indicator/ProgressIndicatorDocs.d.ts +1 -0
  227. package/components/progress-indicator/ProgressIndicatorDocs.js +43 -10
  228. package/components/progress-indicator/ProgressIndicatorDocs.js.map +1 -1
  229. package/components/progress-indicator/ProgressIndicatorLinear.d.ts +2 -22
  230. package/components/progress-indicator/ProgressIndicatorLinear.js +18 -10
  231. package/components/progress-indicator/ProgressIndicatorLinear.js.map +1 -1
  232. package/components/progress-indicator/style/dnb-progress-indicator.css +52 -55
  233. package/components/progress-indicator/style/dnb-progress-indicator.min.css +1 -1
  234. package/components/progress-indicator/style/dnb-progress-indicator.scss +65 -69
  235. package/components/progress-indicator/types.d.ts +95 -0
  236. package/components/progress-indicator/types.js +5 -0
  237. package/components/progress-indicator/types.js.map +1 -0
  238. package/es/components/aria-live/useAriaLive.d.ts +1 -1
  239. package/es/components/autocomplete/Autocomplete.d.ts +19 -5
  240. package/es/components/dropdown/Dropdown.d.ts +22 -5
  241. package/es/components/height-animation/HeightAnimationInstance.js +5 -0
  242. package/es/components/height-animation/HeightAnimationInstance.js.map +1 -1
  243. package/es/components/icon/style/dnb-icon.css +1 -0
  244. package/es/components/icon/style/dnb-icon.min.css +1 -1
  245. package/es/components/icon/style/dnb-icon.scss +1 -0
  246. package/es/components/progress-indicator/ProgressIndicator.d.ts +2 -52
  247. package/es/components/progress-indicator/ProgressIndicator.js +27 -14
  248. package/es/components/progress-indicator/ProgressIndicator.js.map +1 -1
  249. package/es/components/progress-indicator/ProgressIndicatorCircular.d.ts +2 -23
  250. package/es/components/progress-indicator/ProgressIndicatorCircular.js +62 -27
  251. package/es/components/progress-indicator/ProgressIndicatorCircular.js.map +1 -1
  252. package/es/components/progress-indicator/ProgressIndicatorDocs.d.ts +1 -0
  253. package/es/components/progress-indicator/ProgressIndicatorDocs.js +43 -10
  254. package/es/components/progress-indicator/ProgressIndicatorDocs.js.map +1 -1
  255. package/es/components/progress-indicator/ProgressIndicatorLinear.d.ts +2 -22
  256. package/es/components/progress-indicator/ProgressIndicatorLinear.js +18 -10
  257. package/es/components/progress-indicator/ProgressIndicatorLinear.js.map +1 -1
  258. package/es/components/progress-indicator/style/dnb-progress-indicator.css +52 -55
  259. package/es/components/progress-indicator/style/dnb-progress-indicator.min.css +1 -1
  260. package/es/components/progress-indicator/style/dnb-progress-indicator.scss +65 -69
  261. package/es/components/progress-indicator/types.d.ts +95 -0
  262. package/es/components/progress-indicator/types.js +5 -0
  263. package/es/components/progress-indicator/types.js.map +1 -0
  264. package/es/extensions/forms/DataContext/Context.d.ts +5 -1
  265. package/es/extensions/forms/DataContext/Context.js +0 -1
  266. package/es/extensions/forms/DataContext/Context.js.map +1 -1
  267. package/es/extensions/forms/DataContext/Provider/Provider.d.ts +17 -5
  268. package/es/extensions/forms/DataContext/Provider/Provider.js +58 -29
  269. package/es/extensions/forms/DataContext/Provider/Provider.js.map +1 -1
  270. package/es/extensions/forms/DataContext/Provider/ProviderDocs.js +12 -2
  271. package/es/extensions/forms/DataContext/Provider/ProviderDocs.js.map +1 -1
  272. package/es/extensions/forms/Field/ArraySelection/ArraySelection.js +1 -1
  273. package/es/extensions/forms/Field/ArraySelection/ArraySelection.js.map +1 -1
  274. package/es/extensions/forms/Field/ArraySelection/style/dnb-array-selection.css +5 -2
  275. package/es/extensions/forms/Field/ArraySelection/style/dnb-array-selection.min.css +1 -1
  276. package/es/extensions/forms/Field/ArraySelection/style/dnb-array-selection.scss +5 -2
  277. package/es/extensions/forms/Field/Name/Name.d.ts +10 -0
  278. package/es/extensions/forms/Field/Name/Name.js +63 -0
  279. package/es/extensions/forms/Field/Name/Name.js.map +1 -0
  280. package/es/extensions/forms/Field/Name/NameDocs.d.ts +2 -0
  281. package/es/extensions/forms/Field/Name/NameDocs.js +8 -0
  282. package/es/extensions/forms/Field/Name/NameDocs.js.map +1 -0
  283. package/es/extensions/forms/Field/Name/index.d.ts +2 -0
  284. package/es/extensions/forms/Field/Name/index.js +3 -0
  285. package/es/extensions/forms/Field/Name/index.js.map +1 -0
  286. package/es/extensions/forms/Field/Number/Number.d.ts +2 -2
  287. package/es/extensions/forms/Field/Number/Number.js.map +1 -1
  288. package/es/extensions/forms/Field/Option/Option.d.ts +2 -0
  289. package/es/extensions/forms/Field/Option/Option.js +20 -0
  290. package/es/extensions/forms/Field/Option/Option.js.map +1 -1
  291. package/es/extensions/forms/Field/PostalCodeAndCity/PostalCodeAndCityDocs.d.ts +2 -0
  292. package/es/extensions/forms/Field/PostalCodeAndCity/PostalCodeAndCityDocs.js +18 -0
  293. package/es/extensions/forms/Field/PostalCodeAndCity/PostalCodeAndCityDocs.js.map +1 -0
  294. package/es/extensions/forms/Field/SelectCountry/SelectCountry.d.ts +2 -2
  295. package/es/extensions/forms/Field/SelectCountry/SelectCountry.js.map +1 -1
  296. package/es/extensions/forms/Field/Selection/Selection.d.ts +11 -4
  297. package/es/extensions/forms/Field/Selection/Selection.js +20 -32
  298. package/es/extensions/forms/Field/Selection/Selection.js.map +1 -1
  299. package/es/extensions/forms/Field/Selection/SelectionDocs.d.ts +2 -0
  300. package/es/extensions/forms/Field/Selection/SelectionDocs.js +38 -0
  301. package/es/extensions/forms/Field/Selection/SelectionDocs.js.map +1 -0
  302. package/es/extensions/forms/Field/String/String.d.ts +2 -2
  303. package/es/extensions/forms/Field/String/String.js.map +1 -1
  304. package/es/extensions/forms/Field/index.d.ts +1 -0
  305. package/es/extensions/forms/Field/index.js +1 -0
  306. package/es/extensions/forms/Field/index.js.map +1 -1
  307. package/es/extensions/forms/FieldBlock/FieldBlock.d.ts +3 -3
  308. package/es/extensions/forms/FieldBlock/FieldBlock.js.map +1 -1
  309. package/es/extensions/forms/Form/Handler/Handler.d.ts +1 -1
  310. package/es/extensions/forms/Form/Handler/Handler.js +8 -2
  311. package/es/extensions/forms/Form/Handler/Handler.js.map +1 -1
  312. package/es/extensions/forms/Form/MainHeading/MainHeading.js +1 -1
  313. package/es/extensions/forms/Form/MainHeading/MainHeading.js.map +1 -1
  314. package/es/extensions/forms/Form/MainHeading/style/dnb-form-main-heading.css +3 -3
  315. package/es/extensions/forms/Form/MainHeading/style/dnb-form-main-heading.min.css +1 -1
  316. package/es/extensions/forms/Form/MainHeading/style/dnb-form-main-heading.scss +1 -1
  317. package/es/extensions/forms/Form/SubHeading/SubHeading.js +1 -1
  318. package/es/extensions/forms/Form/SubHeading/SubHeading.js.map +1 -1
  319. package/es/extensions/forms/Form/SubHeading/style/dnb-form-sub-heading.css +2 -2
  320. package/es/extensions/forms/Form/SubHeading/style/dnb-form-sub-heading.min.css +1 -1
  321. package/es/extensions/forms/Form/SubHeading/style/dnb-form-sub-heading.scss +1 -1
  322. package/es/extensions/forms/Form/SubmitIndicator/SubmitIndicator.js +2 -2
  323. package/es/extensions/forms/Form/SubmitIndicator/SubmitIndicator.js.map +1 -1
  324. package/es/extensions/forms/Form/SubmitIndicator/style/dnb-form-submit-indicator.css +13 -13
  325. package/es/extensions/forms/Form/SubmitIndicator/style/dnb-form-submit-indicator.min.css +1 -1
  326. package/es/extensions/forms/Form/SubmitIndicator/style/dnb-form-submit-indicator.scss +1 -1
  327. package/es/extensions/forms/Iterate/AnimatedContainer/ElementBlock.js +4 -4
  328. package/es/extensions/forms/Iterate/AnimatedContainer/ElementBlock.js.map +1 -1
  329. package/es/extensions/forms/Iterate/Array/Array.js +2 -2
  330. package/es/extensions/forms/Iterate/Array/Array.js.map +1 -1
  331. package/es/extensions/forms/Iterate/EditContainer/EditContainer.js +1 -1
  332. package/es/extensions/forms/Iterate/EditContainer/EditContainer.js.map +1 -1
  333. package/es/extensions/forms/Iterate/PushButton/PushButton.js +1 -1
  334. package/es/extensions/forms/Iterate/PushButton/PushButton.js.map +1 -1
  335. package/es/extensions/forms/Iterate/RemoveButton/RemoveButton.js +1 -1
  336. package/es/extensions/forms/Iterate/RemoveButton/RemoveButton.js.map +1 -1
  337. package/es/extensions/forms/Iterate/Toolbar/Toolbar.js +1 -1
  338. package/es/extensions/forms/Iterate/Toolbar/Toolbar.js.map +1 -1
  339. package/es/extensions/forms/Iterate/ViewContainer/ViewContainer.js +1 -1
  340. package/es/extensions/forms/Iterate/ViewContainer/ViewContainer.js.map +1 -1
  341. package/es/extensions/forms/Iterate/style/dnb-form-iterate.css +14 -14
  342. package/es/extensions/forms/Iterate/style/dnb-form-iterate.min.css +1 -1
  343. package/es/extensions/forms/Iterate/style/dnb-form-iterate.scss +1 -1
  344. package/es/extensions/forms/Value/Boolean/Boolean.js +8 -3
  345. package/es/extensions/forms/Value/Boolean/Boolean.js.map +1 -1
  346. package/es/extensions/forms/Value/Name/Name.d.ts +10 -0
  347. package/es/extensions/forms/Value/Name/Name.js +40 -0
  348. package/es/extensions/forms/Value/Name/Name.js.map +1 -0
  349. package/es/extensions/forms/Value/Name/index.d.ts +2 -0
  350. package/es/extensions/forms/Value/Name/index.js +3 -0
  351. package/es/extensions/forms/Value/Name/index.js.map +1 -0
  352. package/es/extensions/forms/Value/OrganizationNumber/OrganizationNumber.d.ts +7 -0
  353. package/es/extensions/forms/Value/OrganizationNumber/OrganizationNumber.js +24 -0
  354. package/es/extensions/forms/Value/OrganizationNumber/OrganizationNumber.js.map +1 -0
  355. package/es/extensions/forms/Value/OrganizationNumber/index.d.ts +2 -0
  356. package/es/extensions/forms/Value/OrganizationNumber/index.js +3 -0
  357. package/es/extensions/forms/Value/OrganizationNumber/index.js.map +1 -0
  358. package/es/extensions/forms/Value/PostalCodeAndCity/PostalCodeAndCity.d.ts +7 -0
  359. package/es/extensions/forms/Value/PostalCodeAndCity/PostalCodeAndCity.js +31 -0
  360. package/es/extensions/forms/Value/PostalCodeAndCity/PostalCodeAndCity.js.map +1 -0
  361. package/es/extensions/forms/Value/PostalCodeAndCity/PostalCodeAndCityDocs.d.ts +2 -0
  362. package/es/extensions/forms/Value/PostalCodeAndCity/PostalCodeAndCityDocs.js +13 -0
  363. package/es/extensions/forms/Value/PostalCodeAndCity/PostalCodeAndCityDocs.js.map +1 -0
  364. package/es/extensions/forms/Value/PostalCodeAndCity/index.d.ts +2 -0
  365. package/es/extensions/forms/Value/PostalCodeAndCity/index.js +3 -0
  366. package/es/extensions/forms/Value/PostalCodeAndCity/index.js.map +1 -0
  367. package/es/extensions/forms/Value/String/String.js +8 -3
  368. package/es/extensions/forms/Value/String/String.js.map +1 -1
  369. package/es/extensions/forms/Value/SummaryList/SummaryList.js +1 -1
  370. package/es/extensions/forms/Value/SummaryList/SummaryList.js.map +1 -1
  371. package/es/extensions/forms/Value/ValueDocs.js +6 -1
  372. package/es/extensions/forms/Value/ValueDocs.js.map +1 -1
  373. package/es/extensions/forms/Value/index.d.ts +3 -0
  374. package/es/extensions/forms/Value/index.js +3 -0
  375. package/es/extensions/forms/Value/index.js.map +1 -1
  376. package/es/extensions/forms/ValueBlock/ValueBlock.js +2 -1
  377. package/es/extensions/forms/ValueBlock/ValueBlock.js.map +1 -1
  378. package/es/extensions/forms/ValueBlock/style/dnb-value-block.css +11 -6
  379. package/es/extensions/forms/ValueBlock/style/dnb-value-block.min.css +1 -1
  380. package/es/extensions/forms/ValueBlock/style/dnb-value-block.scss +11 -3
  381. package/es/extensions/forms/Wizard/Container/WizardContainer.js +17 -51
  382. package/es/extensions/forms/Wizard/Container/WizardContainer.js.map +1 -1
  383. package/es/extensions/forms/Wizard/Container/useHandleLayoutEffect.d.ts +9 -0
  384. package/es/extensions/forms/Wizard/Container/useHandleLayoutEffect.js +46 -0
  385. package/es/extensions/forms/Wizard/Container/useHandleLayoutEffect.js.map +1 -0
  386. package/es/extensions/forms/Wizard/Container/useStepAnimation.d.ts +4 -0
  387. package/es/extensions/forms/Wizard/Container/useStepAnimation.js +29 -0
  388. package/es/extensions/forms/Wizard/Container/useStepAnimation.js.map +1 -0
  389. package/es/extensions/forms/Wizard/Step/Step.js +14 -2
  390. package/es/extensions/forms/Wizard/Step/Step.js.map +1 -1
  391. package/es/extensions/forms/Wizard/hooks/useStep.js +3 -2
  392. package/es/extensions/forms/Wizard/hooks/useStep.js.map +1 -1
  393. package/es/extensions/forms/Wizard/style/dnb-wizard-layout.css +29 -2
  394. package/es/extensions/forms/Wizard/style/dnb-wizard-layout.min.css +1 -1
  395. package/es/extensions/forms/Wizard/style/dnb-wizard-layout.scss +35 -2
  396. package/es/extensions/forms/constants/locales/en-GB.d.ts +9 -0
  397. package/es/extensions/forms/constants/locales/en-GB.js +12 -3
  398. package/es/extensions/forms/constants/locales/en-GB.js.map +1 -1
  399. package/es/extensions/forms/constants/locales/en-US.d.ts +9 -0
  400. package/es/extensions/forms/constants/locales/index.d.ts +18 -0
  401. package/es/extensions/forms/constants/locales/nb-NO.d.ts +9 -0
  402. package/es/extensions/forms/constants/locales/nb-NO.js +11 -2
  403. package/es/extensions/forms/constants/locales/nb-NO.js.map +1 -1
  404. package/es/extensions/forms/style/dnb-forms.css +77 -43
  405. package/es/extensions/forms/style/dnb-forms.min.css +1 -1
  406. package/es/extensions/forms/types.d.ts +3 -2
  407. package/es/extensions/forms/types.js.map +1 -1
  408. package/es/fragments/drawer-list/DrawerList.d.ts +8 -4
  409. package/es/shared/Context.d.ts +2 -4
  410. package/es/shared/Context.js.map +1 -1
  411. package/es/shared/Eufemia.d.ts +1 -1
  412. package/es/shared/Eufemia.js +2 -2
  413. package/es/shared/Eufemia.js.map +1 -1
  414. package/es/shared/component-helper.js +1 -1
  415. package/es/shared/component-helper.js.map +1 -1
  416. package/es/style/core/scopes.scss +1 -1
  417. package/es/style/dnb-ui-basis.css +1 -1
  418. package/es/style/dnb-ui-basis.min.css +1 -1
  419. package/es/style/dnb-ui-body.css +1 -1
  420. package/es/style/dnb-ui-body.min.css +1 -1
  421. package/es/style/dnb-ui-components.css +129 -98
  422. package/es/style/dnb-ui-components.min.css +2 -2
  423. package/es/style/dnb-ui-core.css +1 -1
  424. package/es/style/dnb-ui-core.min.css +1 -1
  425. package/es/style/dnb-ui-extensions.css +77 -43
  426. package/es/style/dnb-ui-extensions.min.css +1 -1
  427. package/es/style/dnb-ui-forms.css +77 -43
  428. package/es/style/dnb-ui-forms.min.css +1 -1
  429. package/es/style/dnb-ui-forms.scss +1 -1
  430. package/es/style/themes/theme-eiendom/eiendom-theme-components.css +205 -141
  431. package/es/style/themes/theme-eiendom/eiendom-theme-components.min.css +2 -2
  432. package/es/style/themes/theme-eiendom/eiendom-theme-extensions.css +77 -43
  433. package/es/style/themes/theme-eiendom/eiendom-theme-extensions.min.css +1 -1
  434. package/es/style/themes/theme-eiendom/eiendom-theme-forms.css +77 -43
  435. package/es/style/themes/theme-eiendom/eiendom-theme-forms.min.css +1 -1
  436. package/es/style/themes/theme-sbanken/sbanken-theme-components.css +205 -141
  437. package/es/style/themes/theme-sbanken/sbanken-theme-components.min.css +2 -2
  438. package/es/style/themes/theme-sbanken/sbanken-theme-extensions.css +77 -43
  439. package/es/style/themes/theme-sbanken/sbanken-theme-extensions.min.css +1 -1
  440. package/es/style/themes/theme-sbanken/sbanken-theme-forms.css +77 -43
  441. package/es/style/themes/theme-sbanken/sbanken-theme-forms.min.css +1 -1
  442. package/es/style/themes/theme-ui/ui-theme-components.css +205 -141
  443. package/es/style/themes/theme-ui/ui-theme-components.min.css +2 -2
  444. package/es/style/themes/theme-ui/ui-theme-extensions.css +77 -43
  445. package/es/style/themes/theme-ui/ui-theme-extensions.min.css +1 -1
  446. package/es/style/themes/theme-ui/ui-theme-forms.css +77 -43
  447. package/es/style/themes/theme-ui/ui-theme-forms.min.css +1 -1
  448. package/esm/dnb-ui-basis.min.mjs +1 -1
  449. package/esm/dnb-ui-components.min.mjs +1 -1
  450. package/esm/dnb-ui-elements.min.mjs +1 -1
  451. package/esm/dnb-ui-extensions.min.mjs +3 -3
  452. package/esm/dnb-ui-lib.min.mjs +1 -1
  453. package/extensions/forms/DataContext/Context.d.ts +5 -1
  454. package/extensions/forms/DataContext/Context.js +0 -1
  455. package/extensions/forms/DataContext/Context.js.map +1 -1
  456. package/extensions/forms/DataContext/Provider/Provider.d.ts +17 -5
  457. package/extensions/forms/DataContext/Provider/Provider.js +60 -30
  458. package/extensions/forms/DataContext/Provider/Provider.js.map +1 -1
  459. package/extensions/forms/DataContext/Provider/ProviderDocs.js +12 -2
  460. package/extensions/forms/DataContext/Provider/ProviderDocs.js.map +1 -1
  461. package/extensions/forms/Field/ArraySelection/ArraySelection.js +1 -1
  462. package/extensions/forms/Field/ArraySelection/ArraySelection.js.map +1 -1
  463. package/extensions/forms/Field/ArraySelection/style/dnb-array-selection.css +5 -2
  464. package/extensions/forms/Field/ArraySelection/style/dnb-array-selection.min.css +1 -1
  465. package/extensions/forms/Field/ArraySelection/style/dnb-array-selection.scss +5 -2
  466. package/extensions/forms/Field/Name/Name.d.ts +10 -0
  467. package/extensions/forms/Field/Name/Name.js +63 -0
  468. package/extensions/forms/Field/Name/Name.js.map +1 -0
  469. package/extensions/forms/Field/Name/NameDocs.d.ts +2 -0
  470. package/extensions/forms/Field/Name/NameDocs.js +8 -0
  471. package/extensions/forms/Field/Name/NameDocs.js.map +1 -0
  472. package/extensions/forms/Field/Name/index.d.ts +2 -0
  473. package/extensions/forms/Field/Name/index.js +3 -0
  474. package/extensions/forms/Field/Name/index.js.map +1 -0
  475. package/extensions/forms/Field/Number/Number.d.ts +2 -2
  476. package/extensions/forms/Field/Number/Number.js.map +1 -1
  477. package/extensions/forms/Field/Option/Option.d.ts +2 -0
  478. package/extensions/forms/Field/Option/Option.js +20 -0
  479. package/extensions/forms/Field/Option/Option.js.map +1 -1
  480. package/extensions/forms/Field/PostalCodeAndCity/PostalCodeAndCityDocs.d.ts +2 -0
  481. package/extensions/forms/Field/PostalCodeAndCity/PostalCodeAndCityDocs.js +18 -0
  482. package/extensions/forms/Field/PostalCodeAndCity/PostalCodeAndCityDocs.js.map +1 -0
  483. package/extensions/forms/Field/SelectCountry/SelectCountry.d.ts +2 -2
  484. package/extensions/forms/Field/SelectCountry/SelectCountry.js.map +1 -1
  485. package/extensions/forms/Field/Selection/Selection.d.ts +11 -4
  486. package/extensions/forms/Field/Selection/Selection.js +20 -32
  487. package/extensions/forms/Field/Selection/Selection.js.map +1 -1
  488. package/extensions/forms/Field/Selection/SelectionDocs.d.ts +2 -0
  489. package/extensions/forms/Field/Selection/SelectionDocs.js +38 -0
  490. package/extensions/forms/Field/Selection/SelectionDocs.js.map +1 -0
  491. package/extensions/forms/Field/String/String.d.ts +2 -2
  492. package/extensions/forms/Field/String/String.js.map +1 -1
  493. package/extensions/forms/Field/index.d.ts +1 -0
  494. package/extensions/forms/Field/index.js +1 -0
  495. package/extensions/forms/Field/index.js.map +1 -1
  496. package/extensions/forms/FieldBlock/FieldBlock.d.ts +3 -3
  497. package/extensions/forms/FieldBlock/FieldBlock.js.map +1 -1
  498. package/extensions/forms/Form/Handler/Handler.d.ts +1 -1
  499. package/extensions/forms/Form/Handler/Handler.js +8 -2
  500. package/extensions/forms/Form/Handler/Handler.js.map +1 -1
  501. package/extensions/forms/Form/MainHeading/MainHeading.js +1 -1
  502. package/extensions/forms/Form/MainHeading/MainHeading.js.map +1 -1
  503. package/extensions/forms/Form/MainHeading/style/dnb-form-main-heading.css +3 -3
  504. package/extensions/forms/Form/MainHeading/style/dnb-form-main-heading.min.css +1 -1
  505. package/extensions/forms/Form/MainHeading/style/dnb-form-main-heading.scss +1 -1
  506. package/extensions/forms/Form/SubHeading/SubHeading.js +1 -1
  507. package/extensions/forms/Form/SubHeading/SubHeading.js.map +1 -1
  508. package/extensions/forms/Form/SubHeading/style/dnb-form-sub-heading.css +2 -2
  509. package/extensions/forms/Form/SubHeading/style/dnb-form-sub-heading.min.css +1 -1
  510. package/extensions/forms/Form/SubHeading/style/dnb-form-sub-heading.scss +1 -1
  511. package/extensions/forms/Form/SubmitIndicator/SubmitIndicator.js +2 -2
  512. package/extensions/forms/Form/SubmitIndicator/SubmitIndicator.js.map +1 -1
  513. package/extensions/forms/Form/SubmitIndicator/style/dnb-form-submit-indicator.css +13 -13
  514. package/extensions/forms/Form/SubmitIndicator/style/dnb-form-submit-indicator.min.css +1 -1
  515. package/extensions/forms/Form/SubmitIndicator/style/dnb-form-submit-indicator.scss +1 -1
  516. package/extensions/forms/Iterate/AnimatedContainer/ElementBlock.js +4 -4
  517. package/extensions/forms/Iterate/AnimatedContainer/ElementBlock.js.map +1 -1
  518. package/extensions/forms/Iterate/Array/Array.js +2 -2
  519. package/extensions/forms/Iterate/Array/Array.js.map +1 -1
  520. package/extensions/forms/Iterate/EditContainer/EditContainer.js +1 -1
  521. package/extensions/forms/Iterate/EditContainer/EditContainer.js.map +1 -1
  522. package/extensions/forms/Iterate/PushButton/PushButton.js +1 -1
  523. package/extensions/forms/Iterate/PushButton/PushButton.js.map +1 -1
  524. package/extensions/forms/Iterate/RemoveButton/RemoveButton.js +1 -1
  525. package/extensions/forms/Iterate/RemoveButton/RemoveButton.js.map +1 -1
  526. package/extensions/forms/Iterate/Toolbar/Toolbar.js +1 -1
  527. package/extensions/forms/Iterate/Toolbar/Toolbar.js.map +1 -1
  528. package/extensions/forms/Iterate/ViewContainer/ViewContainer.js +1 -1
  529. package/extensions/forms/Iterate/ViewContainer/ViewContainer.js.map +1 -1
  530. package/extensions/forms/Iterate/style/dnb-form-iterate.css +14 -14
  531. package/extensions/forms/Iterate/style/dnb-form-iterate.min.css +1 -1
  532. package/extensions/forms/Iterate/style/dnb-form-iterate.scss +1 -1
  533. package/extensions/forms/Value/Boolean/Boolean.js +8 -3
  534. package/extensions/forms/Value/Boolean/Boolean.js.map +1 -1
  535. package/extensions/forms/Value/Name/Name.d.ts +10 -0
  536. package/extensions/forms/Value/Name/Name.js +40 -0
  537. package/extensions/forms/Value/Name/Name.js.map +1 -0
  538. package/extensions/forms/Value/Name/index.d.ts +2 -0
  539. package/extensions/forms/Value/Name/index.js +3 -0
  540. package/extensions/forms/Value/Name/index.js.map +1 -0
  541. package/extensions/forms/Value/OrganizationNumber/OrganizationNumber.d.ts +7 -0
  542. package/extensions/forms/Value/OrganizationNumber/OrganizationNumber.js +24 -0
  543. package/extensions/forms/Value/OrganizationNumber/OrganizationNumber.js.map +1 -0
  544. package/extensions/forms/Value/OrganizationNumber/index.d.ts +2 -0
  545. package/extensions/forms/Value/OrganizationNumber/index.js +3 -0
  546. package/extensions/forms/Value/OrganizationNumber/index.js.map +1 -0
  547. package/extensions/forms/Value/PostalCodeAndCity/PostalCodeAndCity.d.ts +7 -0
  548. package/extensions/forms/Value/PostalCodeAndCity/PostalCodeAndCity.js +31 -0
  549. package/extensions/forms/Value/PostalCodeAndCity/PostalCodeAndCity.js.map +1 -0
  550. package/extensions/forms/Value/PostalCodeAndCity/PostalCodeAndCityDocs.d.ts +2 -0
  551. package/extensions/forms/Value/PostalCodeAndCity/PostalCodeAndCityDocs.js +13 -0
  552. package/extensions/forms/Value/PostalCodeAndCity/PostalCodeAndCityDocs.js.map +1 -0
  553. package/extensions/forms/Value/PostalCodeAndCity/index.d.ts +2 -0
  554. package/extensions/forms/Value/PostalCodeAndCity/index.js +3 -0
  555. package/extensions/forms/Value/PostalCodeAndCity/index.js.map +1 -0
  556. package/extensions/forms/Value/String/String.js +8 -3
  557. package/extensions/forms/Value/String/String.js.map +1 -1
  558. package/extensions/forms/Value/SummaryList/SummaryList.js +1 -1
  559. package/extensions/forms/Value/SummaryList/SummaryList.js.map +1 -1
  560. package/extensions/forms/Value/ValueDocs.js +6 -1
  561. package/extensions/forms/Value/ValueDocs.js.map +1 -1
  562. package/extensions/forms/Value/index.d.ts +3 -0
  563. package/extensions/forms/Value/index.js +3 -0
  564. package/extensions/forms/Value/index.js.map +1 -1
  565. package/extensions/forms/ValueBlock/ValueBlock.js +2 -1
  566. package/extensions/forms/ValueBlock/ValueBlock.js.map +1 -1
  567. package/extensions/forms/ValueBlock/style/dnb-value-block.css +11 -6
  568. package/extensions/forms/ValueBlock/style/dnb-value-block.min.css +1 -1
  569. package/extensions/forms/ValueBlock/style/dnb-value-block.scss +11 -3
  570. package/extensions/forms/Wizard/Container/WizardContainer.js +17 -52
  571. package/extensions/forms/Wizard/Container/WizardContainer.js.map +1 -1
  572. package/extensions/forms/Wizard/Container/useHandleLayoutEffect.d.ts +9 -0
  573. package/extensions/forms/Wizard/Container/useHandleLayoutEffect.js +47 -0
  574. package/extensions/forms/Wizard/Container/useHandleLayoutEffect.js.map +1 -0
  575. package/extensions/forms/Wizard/Container/useStepAnimation.d.ts +4 -0
  576. package/extensions/forms/Wizard/Container/useStepAnimation.js +30 -0
  577. package/extensions/forms/Wizard/Container/useStepAnimation.js.map +1 -0
  578. package/extensions/forms/Wizard/Step/Step.js +14 -2
  579. package/extensions/forms/Wizard/Step/Step.js.map +1 -1
  580. package/extensions/forms/Wizard/hooks/useStep.js +3 -2
  581. package/extensions/forms/Wizard/hooks/useStep.js.map +1 -1
  582. package/extensions/forms/Wizard/style/dnb-wizard-layout.css +29 -2
  583. package/extensions/forms/Wizard/style/dnb-wizard-layout.min.css +1 -1
  584. package/extensions/forms/Wizard/style/dnb-wizard-layout.scss +35 -2
  585. package/extensions/forms/constants/locales/en-GB.d.ts +9 -0
  586. package/extensions/forms/constants/locales/en-GB.js +12 -3
  587. package/extensions/forms/constants/locales/en-GB.js.map +1 -1
  588. package/extensions/forms/constants/locales/en-US.d.ts +9 -0
  589. package/extensions/forms/constants/locales/index.d.ts +18 -0
  590. package/extensions/forms/constants/locales/nb-NO.d.ts +9 -0
  591. package/extensions/forms/constants/locales/nb-NO.js +11 -2
  592. package/extensions/forms/constants/locales/nb-NO.js.map +1 -1
  593. package/extensions/forms/style/dnb-forms.css +77 -43
  594. package/extensions/forms/style/dnb-forms.min.css +1 -1
  595. package/extensions/forms/types.d.ts +3 -2
  596. package/extensions/forms/types.js.map +1 -1
  597. package/fragments/drawer-list/DrawerList.d.ts +8 -4
  598. package/package.json +1 -1
  599. package/shared/Context.d.ts +2 -4
  600. package/shared/Context.js.map +1 -1
  601. package/shared/Eufemia.d.ts +1 -1
  602. package/shared/Eufemia.js +2 -2
  603. package/shared/Eufemia.js.map +1 -1
  604. package/shared/component-helper.js +1 -1
  605. package/shared/component-helper.js.map +1 -1
  606. package/style/core/scopes.scss +1 -1
  607. package/style/dnb-ui-basis.css +1 -1
  608. package/style/dnb-ui-basis.min.css +1 -1
  609. package/style/dnb-ui-body.css +1 -1
  610. package/style/dnb-ui-body.min.css +1 -1
  611. package/style/dnb-ui-components.css +129 -98
  612. package/style/dnb-ui-components.min.css +2 -2
  613. package/style/dnb-ui-core.css +1 -1
  614. package/style/dnb-ui-core.min.css +1 -1
  615. package/style/dnb-ui-extensions.css +77 -43
  616. package/style/dnb-ui-extensions.min.css +1 -1
  617. package/style/dnb-ui-forms.css +77 -43
  618. package/style/dnb-ui-forms.min.css +1 -1
  619. package/style/dnb-ui-forms.scss +1 -1
  620. package/style/themes/theme-eiendom/eiendom-theme-components.css +205 -141
  621. package/style/themes/theme-eiendom/eiendom-theme-components.min.css +2 -2
  622. package/style/themes/theme-eiendom/eiendom-theme-extensions.css +77 -43
  623. package/style/themes/theme-eiendom/eiendom-theme-extensions.min.css +1 -1
  624. package/style/themes/theme-eiendom/eiendom-theme-forms.css +77 -43
  625. package/style/themes/theme-eiendom/eiendom-theme-forms.min.css +1 -1
  626. package/style/themes/theme-sbanken/sbanken-theme-components.css +205 -141
  627. package/style/themes/theme-sbanken/sbanken-theme-components.min.css +2 -2
  628. package/style/themes/theme-sbanken/sbanken-theme-extensions.css +77 -43
  629. package/style/themes/theme-sbanken/sbanken-theme-extensions.min.css +1 -1
  630. package/style/themes/theme-sbanken/sbanken-theme-forms.css +77 -43
  631. package/style/themes/theme-sbanken/sbanken-theme-forms.min.css +1 -1
  632. package/style/themes/theme-ui/ui-theme-components.css +205 -141
  633. package/style/themes/theme-ui/ui-theme-components.min.css +2 -2
  634. package/style/themes/theme-ui/ui-theme-extensions.css +77 -43
  635. package/style/themes/theme-ui/ui-theme-extensions.min.css +1 -1
  636. package/style/themes/theme-ui/ui-theme-forms.css +77 -43
  637. package/style/themes/theme-ui/ui-theme-forms.min.css +1 -1
  638. package/umd/dnb-ui-basis.min.js +1 -1
  639. package/umd/dnb-ui-components.min.js +1 -1
  640. package/umd/dnb-ui-elements.min.js +1 -1
  641. package/umd/dnb-ui-extensions.min.js +3 -3
  642. package/umd/dnb-ui-lib.min.js +1 -1
  643. /package/cjs/extensions/forms/Form/Element/style/{dnb-forms-element.css → dnb-form-element.css} +0 -0
  644. /package/cjs/extensions/forms/Form/Element/style/{dnb-forms-element.min.css → dnb-form-element.min.css} +0 -0
  645. /package/cjs/extensions/forms/Form/Element/style/{dnb-forms-element.scss → dnb-form-element.scss} +0 -0
  646. /package/es/extensions/forms/Form/Element/style/{dnb-forms-element.css → dnb-form-element.css} +0 -0
  647. /package/es/extensions/forms/Form/Element/style/{dnb-forms-element.min.css → dnb-form-element.min.css} +0 -0
  648. /package/es/extensions/forms/Form/Element/style/{dnb-forms-element.scss → dnb-form-element.scss} +0 -0
  649. /package/extensions/forms/Form/Element/style/{dnb-forms-element.css → dnb-form-element.css} +0 -0
  650. /package/extensions/forms/Form/Element/style/{dnb-forms-element.min.css → dnb-form-element.min.css} +0 -0
  651. /package/extensions/forms/Form/Element/style/{dnb-forms-element.scss → dnb-form-element.scss} +0 -0
@@ -1 +1 @@
1
- {"version":3,"file":"ProviderDocs.js","names":["ProviderProperties","defaultData","doc","type","status","data","schema","errorMessages","minimumAsyncBehaviorTime","asyncSubmitTimeout","scrollTopOnSubmit","sessionStorageId","ajvInstance","filterData","globalStatusId","children","ProviderEvents","onChange","onPathChange","onSubmit","onSubmitRequest","onSubmitComplete"],"sources":["../../../../../../src/extensions/forms/DataContext/Provider/ProviderDocs.ts"],"sourcesContent":["import { PropertiesTableProps } from '../../../../shared/types'\n\nexport const ProviderProperties: PropertiesTableProps = {\n defaultData: {\n doc: 'Default source data, only used if no other source is available, and not leading to updates if changed after mount.',\n type: 'object',\n status: 'required',\n },\n data: {\n doc: 'Dynamic source data used as both initial data, and updates internal data if changed after mount.',\n type: 'object',\n status: 'required',\n },\n schema: {\n doc: 'JSON Schema for validation of the data set.',\n type: 'object',\n status: 'optional',\n },\n errorMessages: {\n doc: 'Object containing error messages by either type of JSON Pointer path and type.',\n type: 'object',\n status: 'optional',\n },\n minimumAsyncBehaviorTime: {\n doc: 'Minimum time to display the submit indicator. Default is 1s.',\n type: 'boolean',\n status: 'optional',\n },\n asyncSubmitTimeout: {\n doc: 'The maximum time to display the submit indicator before it changes back to normal. In case something went wrong during submission. Default is 30s.',\n type: 'boolean',\n status: 'optional',\n },\n scrollTopOnSubmit: {\n doc: 'True for the UI to scroll to the top of the page when data is submitted.',\n type: 'boolean',\n status: 'optional',\n },\n sessionStorageId: {\n doc: 'Key for saving active data to session storage and loading it on mount.',\n type: 'string',\n status: 'optional',\n },\n ajvInstance: {\n doc: 'Provide your own custom Ajv instance. More info in the <a href=\"/uilib/extensions/forms/Form/schema-validation/#custom-ajv-instance-and-keywords\">Schema validation</a> section.',\n type: 'ajv',\n status: 'optional',\n },\n filterData: {\n doc: 'Filter the internal data context based on your criteria: `(path, value, props, internal) => !props?.disabled`. It will iterate on each data entry.',\n type: 'function',\n status: 'optional',\n },\n globalStatusId: {\n doc: 'If needed, you can define a custom [GlobalStatus](/uilib/components/global-status) id. Defaults to `main`.',\n type: 'string',\n status: 'optional',\n },\n children: {\n doc: 'Contents.',\n type: 'React.Node',\n status: 'required',\n },\n}\n\nexport const ProviderEvents: PropertiesTableProps = {\n onChange: {\n doc: \"Will be called when a value of a field was changed by the user, with the data set (including the changed value) as argument. When an async function is provided, it will show an indicator on the current label during a field change. Related props: `minimumAsyncBehaviorTime` and `asyncSubmitTimeout`. You can return an error or an object with these keys `{ info: 'Info message', warning: 'Warning message', error: Error('My error') } as const` in addition to { success: 'saved' } indicate the field was saved. Will emit unvalidated by default and validated when an async function is provided (like `onSubmit`).\",\n type: 'function',\n status: 'optional',\n },\n onPathChange: {\n doc: 'Will be called when a value of a field was changed by the user, with the `path` (JSON Pointer) and new `value` as arguments. Can be an async function. Will emit unvalidated by default and validated when `onChange` is an async function.',\n type: 'function',\n status: 'optional',\n },\n onSubmit: {\n doc: \"Will be called (on validation success) when the user submit the form (i.e by clicking a [SubmitButton](/uilib/extensions/forms/Form/SubmitButton) component inside), with the data set as argument. When an async function is provided, it will show an indicator on the submit button during the form submission. All form elements will be disabled during the submit. The indicator will be shown for minimum 1 second. Related props: `minimumAsyncBehaviorTime` and `asyncSubmitTimeout`. You can return an error or an object with these keys `{ status: 'pending', info: 'Info message', warning: 'Warning message', error: Error('My error') } as const` to be shown in a [FormStatus](/uilib/components/form-status). Will only emit when every validation has passed.\",\n type: 'function',\n status: 'optional',\n },\n onSubmitRequest: {\n doc: 'Will be called when the user tries to submit, but errors stop the data from being submitted.',\n type: 'function',\n status: 'optional',\n },\n onSubmitComplete: {\n doc: 'Will be called after onSubmit has finished and had not errors. It supports the same return values as `onSubmit` and will be merged together.',\n type: 'function',\n status: 'optional',\n },\n}\n"],"mappings":"AAEA,OAAO,MAAMA,kBAAwC,GAAG;EACtDC,WAAW,EAAE;IACXC,GAAG,EAAE,oHAAoH;IACzHC,IAAI,EAAE,QAAQ;IACdC,MAAM,EAAE;EACV,CAAC;EACDC,IAAI,EAAE;IACJH,GAAG,EAAE,kGAAkG;IACvGC,IAAI,EAAE,QAAQ;IACdC,MAAM,EAAE;EACV,CAAC;EACDE,MAAM,EAAE;IACNJ,GAAG,EAAE,6CAA6C;IAClDC,IAAI,EAAE,QAAQ;IACdC,MAAM,EAAE;EACV,CAAC;EACDG,aAAa,EAAE;IACbL,GAAG,EAAE,gFAAgF;IACrFC,IAAI,EAAE,QAAQ;IACdC,MAAM,EAAE;EACV,CAAC;EACDI,wBAAwB,EAAE;IACxBN,GAAG,EAAE,8DAA8D;IACnEC,IAAI,EAAE,SAAS;IACfC,MAAM,EAAE;EACV,CAAC;EACDK,kBAAkB,EAAE;IAClBP,GAAG,EAAE,oJAAoJ;IACzJC,IAAI,EAAE,SAAS;IACfC,MAAM,EAAE;EACV,CAAC;EACDM,iBAAiB,EAAE;IACjBR,GAAG,EAAE,0EAA0E;IAC/EC,IAAI,EAAE,SAAS;IACfC,MAAM,EAAE;EACV,CAAC;EACDO,gBAAgB,EAAE;IAChBT,GAAG,EAAE,wEAAwE;IAC7EC,IAAI,EAAE,QAAQ;IACdC,MAAM,EAAE;EACV,CAAC;EACDQ,WAAW,EAAE;IACXV,GAAG,EAAE,kLAAkL;IACvLC,IAAI,EAAE,KAAK;IACXC,MAAM,EAAE;EACV,CAAC;EACDS,UAAU,EAAE;IACVX,GAAG,EAAE,oJAAoJ;IACzJC,IAAI,EAAE,UAAU;IAChBC,MAAM,EAAE;EACV,CAAC;EACDU,cAAc,EAAE;IACdZ,GAAG,EAAE,4GAA4G;IACjHC,IAAI,EAAE,QAAQ;IACdC,MAAM,EAAE;EACV,CAAC;EACDW,QAAQ,EAAE;IACRb,GAAG,EAAE,WAAW;IAChBC,IAAI,EAAE,YAAY;IAClBC,MAAM,EAAE;EACV;AACF,CAAC;AAED,OAAO,MAAMY,cAAoC,GAAG;EAClDC,QAAQ,EAAE;IACRf,GAAG,EAAE,kmBAAkmB;IACvmBC,IAAI,EAAE,UAAU;IAChBC,MAAM,EAAE;EACV,CAAC;EACDc,YAAY,EAAE;IACZhB,GAAG,EAAE,6OAA6O;IAClPC,IAAI,EAAE,UAAU;IAChBC,MAAM,EAAE;EACV,CAAC;EACDe,QAAQ,EAAE;IACRjB,GAAG,EAAE,ivBAAivB;IACtvBC,IAAI,EAAE,UAAU;IAChBC,MAAM,EAAE;EACV,CAAC;EACDgB,eAAe,EAAE;IACflB,GAAG,EAAE,8FAA8F;IACnGC,IAAI,EAAE,UAAU;IAChBC,MAAM,EAAE;EACV,CAAC;EACDiB,gBAAgB,EAAE;IAChBnB,GAAG,EAAE,8IAA8I;IACnJC,IAAI,EAAE,UAAU;IAChBC,MAAM,EAAE;EACV;AACF,CAAC"}
1
+ {"version":3,"file":"ProviderDocs.js","names":["ProviderProperties","defaultData","doc","type","status","data","schema","errorMessages","minimumAsyncBehaviorTime","asyncSubmitTimeout","scrollTopOnSubmit","sessionStorageId","ajvInstance","transformIn","transformOut","filterSubmitData","globalStatusId","children","ProviderEvents","onChange","onPathChange","onSubmit","onSubmitRequest","onSubmitComplete"],"sources":["../../../../../../src/extensions/forms/DataContext/Provider/ProviderDocs.ts"],"sourcesContent":["import { PropertiesTableProps } from '../../../../shared/types'\n\nexport const ProviderProperties: PropertiesTableProps = {\n defaultData: {\n doc: 'Default source data, only used if no other source is available, and not leading to updates if changed after mount.',\n type: 'object',\n status: 'required',\n },\n data: {\n doc: 'Dynamic source data used as both initial data, and updates internal data if changed after mount.',\n type: 'object',\n status: 'required',\n },\n schema: {\n doc: 'JSON Schema for validation of the data set.',\n type: 'object',\n status: 'optional',\n },\n errorMessages: {\n doc: 'Object containing error messages by either type of JSON Pointer path and type.',\n type: 'object',\n status: 'optional',\n },\n minimumAsyncBehaviorTime: {\n doc: 'Minimum time to display the submit indicator. Default is 1s.',\n type: 'boolean',\n status: 'optional',\n },\n asyncSubmitTimeout: {\n doc: 'The maximum time to display the submit indicator before it changes back to normal. In case something went wrong during submission. Default is 30s.',\n type: 'boolean',\n status: 'optional',\n },\n scrollTopOnSubmit: {\n doc: 'True for the UI to scroll to the top of the page when data is submitted.',\n type: 'boolean',\n status: 'optional',\n },\n sessionStorageId: {\n doc: 'Key for saving active data to session storage and loading it on mount.',\n type: 'string',\n status: 'optional',\n },\n ajvInstance: {\n doc: 'Provide your own custom Ajv instance. More info in the <a href=\"/uilib/extensions/forms/Form/schema-validation/#custom-ajv-instance-and-keywords\">Schema validation</a> section.',\n type: 'ajv',\n status: 'optional',\n },\n transformIn: {\n doc: \"Mutate the data context (internally as well) based on your criteria: `(path, value, props, internal) => 'new value'`. It will iterate on each data entry (/path).\",\n type: 'function',\n status: 'optional',\n },\n transformOut: {\n doc: \"Mutate the data before it enters onSubmit or onChange based on your criteria: `(path, value, props, internal) => 'new value'`. It will iterate on each data entry (/path).\",\n type: 'function',\n status: 'optional',\n },\n filterSubmitData: {\n doc: 'Filter the `onSubmit` output data, based on your criteria: `(path, value, props, internal) => !props?.disabled`. It will iterate on each data entry (/path). Return false to exclude the entry.',\n type: 'function',\n status: 'optional',\n },\n globalStatusId: {\n doc: 'If needed, you can define a custom [GlobalStatus](/uilib/components/global-status) id. Defaults to `main`.',\n type: 'string',\n status: 'optional',\n },\n children: {\n doc: 'Contents.',\n type: 'React.Node',\n status: 'required',\n },\n}\n\nexport const ProviderEvents: PropertiesTableProps = {\n onChange: {\n doc: \"Will be called when a value of a field was changed by the user, with the data set (including the changed value) as argument. When an async function is provided, it will show an indicator on the current label during a field change. Related props: `minimumAsyncBehaviorTime` and `asyncSubmitTimeout`. You can return an error or an object with these keys `{ info: 'Info message', warning: 'Warning message', error: Error('My error') } as const` in addition to { success: 'saved' } indicate the field was saved. Will emit unvalidated by default and validated when an async function is provided (like `onSubmit`).\",\n type: 'function',\n status: 'optional',\n },\n onPathChange: {\n doc: 'Will be called when a value of a field was changed by the user, with the `path` (JSON Pointer) and new `value` as arguments. Can be an async function. Will emit unvalidated by default and validated when `onChange` is an async function.',\n type: 'function',\n status: 'optional',\n },\n onSubmit: {\n doc: \"Will be called (on validation success) when the user submit the form (i.e by clicking a [SubmitButton](/uilib/extensions/forms/Form/SubmitButton) component inside), with the data set as argument. When an async function is provided, it will show an indicator on the submit button during the form submission. All form elements will be disabled during the submit. The indicator will be shown for minimum 1 second. Related props: `minimumAsyncBehaviorTime` and `asyncSubmitTimeout`. You can return an error or an object with these keys `{ status: 'pending', info: 'Info message', warning: 'Warning message', error: Error('My error') } as const` to be shown in a [FormStatus](/uilib/components/form-status). Will only emit when every validation has passed.\",\n type: 'function',\n status: 'optional',\n },\n onSubmitRequest: {\n doc: 'Will be called when the user tries to submit, but errors stop the data from being submitted.',\n type: 'function',\n status: 'optional',\n },\n onSubmitComplete: {\n doc: 'Will be called after onSubmit has finished and had not errors. It supports the same return values as `onSubmit` and will be merged together.',\n type: 'function',\n status: 'optional',\n },\n}\n"],"mappings":"AAEA,OAAO,MAAMA,kBAAwC,GAAG;EACtDC,WAAW,EAAE;IACXC,GAAG,EAAE,oHAAoH;IACzHC,IAAI,EAAE,QAAQ;IACdC,MAAM,EAAE;EACV,CAAC;EACDC,IAAI,EAAE;IACJH,GAAG,EAAE,kGAAkG;IACvGC,IAAI,EAAE,QAAQ;IACdC,MAAM,EAAE;EACV,CAAC;EACDE,MAAM,EAAE;IACNJ,GAAG,EAAE,6CAA6C;IAClDC,IAAI,EAAE,QAAQ;IACdC,MAAM,EAAE;EACV,CAAC;EACDG,aAAa,EAAE;IACbL,GAAG,EAAE,gFAAgF;IACrFC,IAAI,EAAE,QAAQ;IACdC,MAAM,EAAE;EACV,CAAC;EACDI,wBAAwB,EAAE;IACxBN,GAAG,EAAE,8DAA8D;IACnEC,IAAI,EAAE,SAAS;IACfC,MAAM,EAAE;EACV,CAAC;EACDK,kBAAkB,EAAE;IAClBP,GAAG,EAAE,oJAAoJ;IACzJC,IAAI,EAAE,SAAS;IACfC,MAAM,EAAE;EACV,CAAC;EACDM,iBAAiB,EAAE;IACjBR,GAAG,EAAE,0EAA0E;IAC/EC,IAAI,EAAE,SAAS;IACfC,MAAM,EAAE;EACV,CAAC;EACDO,gBAAgB,EAAE;IAChBT,GAAG,EAAE,wEAAwE;IAC7EC,IAAI,EAAE,QAAQ;IACdC,MAAM,EAAE;EACV,CAAC;EACDQ,WAAW,EAAE;IACXV,GAAG,EAAE,kLAAkL;IACvLC,IAAI,EAAE,KAAK;IACXC,MAAM,EAAE;EACV,CAAC;EACDS,WAAW,EAAE;IACXX,GAAG,EAAE,mKAAmK;IACxKC,IAAI,EAAE,UAAU;IAChBC,MAAM,EAAE;EACV,CAAC;EACDU,YAAY,EAAE;IACZZ,GAAG,EAAE,4KAA4K;IACjLC,IAAI,EAAE,UAAU;IAChBC,MAAM,EAAE;EACV,CAAC;EACDW,gBAAgB,EAAE;IAChBb,GAAG,EAAE,iMAAiM;IACtMC,IAAI,EAAE,UAAU;IAChBC,MAAM,EAAE;EACV,CAAC;EACDY,cAAc,EAAE;IACdd,GAAG,EAAE,4GAA4G;IACjHC,IAAI,EAAE,QAAQ;IACdC,MAAM,EAAE;EACV,CAAC;EACDa,QAAQ,EAAE;IACRf,GAAG,EAAE,WAAW;IAChBC,IAAI,EAAE,YAAY;IAClBC,MAAM,EAAE;EACV;AACF,CAAC;AAED,OAAO,MAAMc,cAAoC,GAAG;EAClDC,QAAQ,EAAE;IACRjB,GAAG,EAAE,kmBAAkmB;IACvmBC,IAAI,EAAE,UAAU;IAChBC,MAAM,EAAE;EACV,CAAC;EACDgB,YAAY,EAAE;IACZlB,GAAG,EAAE,6OAA6O;IAClPC,IAAI,EAAE,UAAU;IAChBC,MAAM,EAAE;EACV,CAAC;EACDiB,QAAQ,EAAE;IACRnB,GAAG,EAAE,ivBAAivB;IACtvBC,IAAI,EAAE,UAAU;IAChBC,MAAM,EAAE;EACV,CAAC;EACDkB,eAAe,EAAE;IACfpB,GAAG,EAAE,8FAA8F;IACnGC,IAAI,EAAE,UAAU;IAChBC,MAAM,EAAE;EACV,CAAC;EACDmB,gBAAgB,EAAE;IAChBrB,GAAG,EAAE,8IAA8I;IACnJC,IAAI,EAAE,UAAU;IAChBC,MAAM,EAAE;EACV;AACF,CAAC"}
@@ -30,7 +30,7 @@ function ArraySelection(props) {
30
30
  } = useFieldProps(props);
31
31
  const fieldBlockProps = _objectSpread({
32
32
  forId: id,
33
- className: classnames(`dnb-forms-field-array-selection dnb-forms-field-array-selection--layout-${optionsLayout}`, className),
33
+ className: classnames(`dnb-forms-field-array-selection dnb-forms-field-array-selection--layout-${layout} dnb-forms-field-array-selection--options-layout-${optionsLayout}`, className),
34
34
  contentClassName: 'dnb-forms-field-array-selection__options',
35
35
  info,
36
36
  warning,
@@ -1 +1 @@
1
- {"version":3,"file":"ArraySelection.js","names":["React","useMemo","Checkbox","ToggleButton","classnames","OptionField","FieldBlock","useFieldProps","pickSpacingProps","ToggleButtonGroupContext","ArraySelection","props","id","className","variant","layout","optionsLayout","label","labelDescription","value","error","hasError","info","warning","disabled","emptyValue","handleChange","children","fieldBlockProps","_objectSpread","forId","contentClassName","options","Children","toArray","filter","child","isValidElement","type","map","option","_option$props$title","title","handleSelect","selected","newValue","includes","length","createElement","Provider","status","undefined","i","key","text","checked","on_change","_supportsSpacingProps"],"sources":["../../../../../../src/extensions/forms/Field/ArraySelection/ArraySelection.tsx"],"sourcesContent":["import React, { useMemo } from 'react'\nimport { Checkbox, ToggleButton } from '../../../../components'\nimport classnames from 'classnames'\nimport OptionField from '../Option'\nimport FieldBlock from '../../FieldBlock'\nimport { useFieldProps } from '../../hooks'\nimport { FieldProps } from '../../types'\nimport { pickSpacingProps } from '../../../../components/flex/utils'\nimport ToggleButtonGroupContext from '../../../../components/toggle-button/ToggleButtonGroupContext'\n\ninterface IOption {\n title: string\n value: number | string\n handleSelect: () => void\n}\n\nexport type Props = FieldProps<Array<string | number>> & {\n children?: React.ReactNode\n variant?: 'checkbox' | 'button'\n optionsLayout?: 'horizontal' | 'vertical'\n}\n\nfunction ArraySelection(props: Props) {\n const {\n id,\n className,\n variant = 'checkbox',\n layout = 'vertical',\n optionsLayout = 'vertical',\n label,\n labelDescription,\n value,\n error,\n hasError,\n info,\n warning,\n disabled,\n emptyValue,\n handleChange,\n children,\n } = useFieldProps(props)\n\n const fieldBlockProps = {\n forId: id,\n className: classnames(\n 'dnb-forms-field-array-selection',\n `dnb-forms-field-array-selection--layout-${optionsLayout}`,\n className\n ),\n contentClassName: 'dnb-forms-field-array-selection__options',\n info,\n warning,\n error,\n layout,\n label,\n labelDescription,\n ...pickSpacingProps(props),\n }\n\n const options: IOption[] = useMemo(\n () =>\n React.Children.toArray(children)\n .filter(\n (child) =>\n React.isValidElement(child) && child.type === OptionField\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 const newValue = value?.includes(selected)\n ? value.filter((value) => value !== selected)\n : [...(value ?? []), selected]\n\n handleChange?.(newValue.length === 0 ? emptyValue : newValue)\n },\n })),\n [children, value, emptyValue, handleChange]\n )\n\n switch (variant) {\n case 'button':\n return (\n <FieldBlock {...fieldBlockProps}>\n <ToggleButtonGroupContext.Provider\n value={{\n status: hasError ? 'error' : undefined,\n disabled,\n }}\n >\n {options.map((option, i) => (\n <ToggleButton\n key={`option-${i}-${option.value}`}\n text={option.title}\n checked={value?.includes(option.value)}\n on_change={option.handleSelect}\n />\n ))}\n </ToggleButtonGroupContext.Provider>\n </FieldBlock>\n )\n case 'checkbox':\n return (\n <FieldBlock {...fieldBlockProps}>\n {options.map((option, i) => (\n <Checkbox\n key={`option-${i}-${option.value}`}\n className=\"dnb-forms-field-array-selection__checkbox\"\n label={option.title}\n checked={value?.includes(option.value)}\n disabled={disabled}\n on_change={option.handleSelect}\n status={hasError ? 'error' : undefined}\n />\n ))}\n </FieldBlock>\n )\n }\n}\n\nArraySelection._supportsSpacingProps = true\nexport default ArraySelection\n"],"mappings":"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"}
1
+ {"version":3,"file":"ArraySelection.js","names":["React","useMemo","Checkbox","ToggleButton","classnames","OptionField","FieldBlock","useFieldProps","pickSpacingProps","ToggleButtonGroupContext","ArraySelection","props","id","className","variant","layout","optionsLayout","label","labelDescription","value","error","hasError","info","warning","disabled","emptyValue","handleChange","children","fieldBlockProps","_objectSpread","forId","contentClassName","options","Children","toArray","filter","child","isValidElement","type","map","option","_option$props$title","title","handleSelect","selected","newValue","includes","length","createElement","Provider","status","undefined","i","key","text","checked","on_change","_supportsSpacingProps"],"sources":["../../../../../../src/extensions/forms/Field/ArraySelection/ArraySelection.tsx"],"sourcesContent":["import React, { useMemo } from 'react'\nimport { Checkbox, ToggleButton } from '../../../../components'\nimport classnames from 'classnames'\nimport OptionField from '../Option'\nimport FieldBlock from '../../FieldBlock'\nimport { useFieldProps } from '../../hooks'\nimport { FieldProps } from '../../types'\nimport { pickSpacingProps } from '../../../../components/flex/utils'\nimport ToggleButtonGroupContext from '../../../../components/toggle-button/ToggleButtonGroupContext'\n\ninterface IOption {\n title: string\n value: number | string\n handleSelect: () => void\n}\n\nexport type Props = FieldProps<Array<string | number>> & {\n children?: React.ReactNode\n variant?: 'checkbox' | 'button'\n optionsLayout?: 'horizontal' | 'vertical'\n}\n\nfunction ArraySelection(props: Props) {\n const {\n id,\n className,\n variant = 'checkbox',\n layout = 'vertical',\n optionsLayout = 'vertical',\n label,\n labelDescription,\n value,\n error,\n hasError,\n info,\n warning,\n disabled,\n emptyValue,\n handleChange,\n children,\n } = useFieldProps(props)\n\n const fieldBlockProps = {\n forId: id,\n className: classnames(\n 'dnb-forms-field-array-selection',\n `dnb-forms-field-array-selection--layout-${layout}`,\n `dnb-forms-field-array-selection--options-layout-${optionsLayout}`,\n className\n ),\n contentClassName: 'dnb-forms-field-array-selection__options',\n info,\n warning,\n error,\n layout,\n label,\n labelDescription,\n ...pickSpacingProps(props),\n }\n\n const options: IOption[] = useMemo(\n () =>\n React.Children.toArray(children)\n .filter(\n (child) =>\n React.isValidElement(child) && child.type === OptionField\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 const newValue = value?.includes(selected)\n ? value.filter((value) => value !== selected)\n : [...(value ?? []), selected]\n\n handleChange?.(newValue.length === 0 ? emptyValue : newValue)\n },\n })),\n [children, value, emptyValue, handleChange]\n )\n\n switch (variant) {\n case 'button':\n return (\n <FieldBlock {...fieldBlockProps}>\n <ToggleButtonGroupContext.Provider\n value={{\n status: hasError ? 'error' : undefined,\n disabled,\n }}\n >\n {options.map((option, i) => (\n <ToggleButton\n key={`option-${i}-${option.value}`}\n text={option.title}\n checked={value?.includes(option.value)}\n on_change={option.handleSelect}\n />\n ))}\n </ToggleButtonGroupContext.Provider>\n </FieldBlock>\n )\n case 'checkbox':\n return (\n <FieldBlock {...fieldBlockProps}>\n {options.map((option, i) => (\n <Checkbox\n key={`option-${i}-${option.value}`}\n className=\"dnb-forms-field-array-selection__checkbox\"\n label={option.title}\n checked={value?.includes(option.value)}\n disabled={disabled}\n on_change={option.handleSelect}\n status={hasError ? 'error' : undefined}\n />\n ))}\n </FieldBlock>\n )\n }\n}\n\nArraySelection._supportsSpacingProps = true\nexport default ArraySelection\n"],"mappings":"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"}
@@ -1,12 +1,15 @@
1
1
  /*
2
2
  * Utilities
3
3
  */
4
- .dnb-forms-field-array-selection--layout-vertical .dnb-forms-field-array-selection__options {
4
+ .dnb-forms-field-array-selection--options-layout-vertical .dnb-forms-field-array-selection__options {
5
5
  display: flex;
6
6
  flex-flow: column;
7
7
  row-gap: var(--spacing-x-small);
8
8
  }
9
- .dnb-forms-field-array-selection--layout-horizontal .dnb-forms-field-array-selection__options {
9
+ .dnb-forms-field-array-selection--options-layout-vertical.dnb-forms-field-array-selection--layout-horizontal .dnb-forms-field-array-selection__options {
10
+ row-gap: 0;
11
+ }
12
+ .dnb-forms-field-array-selection--options-layout-horizontal .dnb-forms-field-array-selection__options {
10
13
  display: flex;
11
14
  flex-flow: row wrap;
12
15
  -moz-column-gap: var(--spacing-small);
@@ -1 +1 @@
1
- .dnb-forms-field-array-selection--layout-vertical .dnb-forms-field-array-selection__options{display:flex;flex-flow:column;row-gap:var(--spacing-x-small)}.dnb-forms-field-array-selection--layout-horizontal .dnb-forms-field-array-selection__options{-moz-column-gap:var(--spacing-small);column-gap:var(--spacing-small);display:flex;flex-flow:row wrap;row-gap:var(--spacing-x-small)}@media screen and (min-width:40em){.dnb-forms-field-array-selection .dnb-forms-field-block--layout-horizontal .dnb-form-label{line-height:2.5rem;margin-bottom:0}}
1
+ .dnb-forms-field-array-selection--options-layout-vertical .dnb-forms-field-array-selection__options{display:flex;flex-flow:column;row-gap:var(--spacing-x-small)}.dnb-forms-field-array-selection--options-layout-vertical.dnb-forms-field-array-selection--layout-horizontal .dnb-forms-field-array-selection__options{row-gap:0}.dnb-forms-field-array-selection--options-layout-horizontal .dnb-forms-field-array-selection__options{-moz-column-gap:var(--spacing-small);column-gap:var(--spacing-small);display:flex;flex-flow:row wrap;row-gap:var(--spacing-x-small)}@media screen and (min-width:40em){.dnb-forms-field-array-selection .dnb-forms-field-block--layout-horizontal .dnb-form-label{line-height:2.5rem;margin-bottom:0}}
@@ -1,13 +1,16 @@
1
1
  @import '../../../../../style/core/utilities.scss';
2
2
 
3
3
  .dnb-forms-field-array-selection {
4
- &--layout-vertical &__options {
4
+ &--options-layout-vertical &__options {
5
5
  display: flex;
6
6
  flex-flow: column;
7
7
  row-gap: var(--spacing-x-small);
8
8
  }
9
+ &--options-layout-vertical#{&}--layout-horizontal &__options {
10
+ row-gap: 0;
11
+ }
9
12
 
10
- &--layout-horizontal &__options {
13
+ &--options-layout-horizontal &__options {
11
14
  display: flex;
12
15
  flex-flow: row wrap;
13
16
  column-gap: var(--spacing-small);
@@ -0,0 +1,10 @@
1
+ import { Props as StringFieldProps } from '../String';
2
+ export type Props = StringFieldProps;
3
+ declare function Name(props: Props): import("react/jsx-runtime").JSX.Element;
4
+ declare namespace Name {
5
+ var _supportsSpacingProps: boolean;
6
+ var First: (props: StringFieldProps) => import("react/jsx-runtime").JSX.Element;
7
+ var Last: (props: StringFieldProps) => import("react/jsx-runtime").JSX.Element;
8
+ var Company: (props: StringFieldProps) => import("react/jsx-runtime").JSX.Element;
9
+ }
10
+ export default Name;
@@ -0,0 +1,63 @@
1
+ import _defineProperty from "@babel/runtime/helpers/esm/defineProperty";
2
+ 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; }
3
+ 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; }
4
+ import React from 'react';
5
+ import StringField from '../String';
6
+ import useErrorMessage from '../../hooks/useErrorMessage';
7
+ import useTranslation from '../../hooks/useTranslation';
8
+ function Name(props) {
9
+ const StringFieldProps = _objectSpread({
10
+ trim: true,
11
+ autoComplete: 'name',
12
+ pattern: '^[\\p{L}\\p{M} \\-]+$'
13
+ }, props);
14
+ return React.createElement(StringField, StringFieldProps);
15
+ }
16
+ Name._supportsSpacingProps = true;
17
+ Name.First = function FirstName(props) {
18
+ const translations = useTranslation().FirstName;
19
+ const errorMessages = useErrorMessage(props.path, props.errorMessages, {
20
+ required: translations.errorRequired,
21
+ pattern: translations.errorPattern
22
+ });
23
+ const nameProps = _objectSpread(_objectSpread({
24
+ label: translations.label,
25
+ autoComplete: 'given-name'
26
+ }, props), {}, {
27
+ errorMessages
28
+ });
29
+ return React.createElement(Name, nameProps);
30
+ };
31
+ Name.First['_supportsSpacingProps'] = true;
32
+ Name.Last = function LastName(props) {
33
+ const translations = useTranslation().LastName;
34
+ const errorMessages = useErrorMessage(props.path, props.errorMessages, {
35
+ required: translations.errorRequired,
36
+ pattern: translations.errorPattern
37
+ });
38
+ const nameProps = _objectSpread(_objectSpread({
39
+ label: translations.label,
40
+ autoComplete: 'family-name'
41
+ }, props), {}, {
42
+ errorMessages
43
+ });
44
+ return React.createElement(Name, nameProps);
45
+ };
46
+ Name.First['_supportsSpacingProps'] = true;
47
+ Name.Company = function CompanyName(props) {
48
+ const translations = useTranslation().CompanyName;
49
+ const errorMessages = useErrorMessage(props.path, props.errorMessages, {
50
+ required: translations.errorRequired
51
+ });
52
+ const StringFieldProps = _objectSpread(_objectSpread({
53
+ label: translations.label,
54
+ pattern: undefined,
55
+ autoComplete: 'organization'
56
+ }, props), {}, {
57
+ errorMessages
58
+ });
59
+ return React.createElement(Name, StringFieldProps);
60
+ };
61
+ Name.First['_supportsSpacingProps'] = true;
62
+ export default Name;
63
+ //# sourceMappingURL=Name.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Name.js","names":["React","StringField","useErrorMessage","useTranslation","Name","props","StringFieldProps","_objectSpread","trim","autoComplete","pattern","createElement","_supportsSpacingProps","First","FirstName","translations","errorMessages","path","required","errorRequired","errorPattern","nameProps","label","Last","LastName","Company","CompanyName","undefined"],"sources":["../../../../../../src/extensions/forms/Field/Name/Name.tsx"],"sourcesContent":["import React from 'react'\nimport StringField, { Props as StringFieldProps } from '../String'\nimport useErrorMessage from '../../hooks/useErrorMessage'\nimport useTranslation from '../../hooks/useTranslation'\n\nexport type Props = StringFieldProps\n\nfunction Name(props: Props) {\n const StringFieldProps: Props = {\n trim: true,\n autoComplete: 'name',\n pattern: '^[\\\\p{L}\\\\p{M} \\\\-]+$',\n ...props,\n }\n\n return <StringField {...StringFieldProps} />\n}\nName._supportsSpacingProps = true\n\nName.First = function FirstName(props: Props) {\n const translations = useTranslation().FirstName\n const errorMessages = useErrorMessage(props.path, props.errorMessages, {\n required: translations.errorRequired,\n pattern: translations.errorPattern,\n })\n\n const nameProps: Props = {\n label: translations.label,\n autoComplete: 'given-name',\n ...props,\n errorMessages,\n }\n\n return <Name {...nameProps} />\n}\nName.First['_supportsSpacingProps'] = true\n\nName.Last = function LastName(props: Props) {\n const translations = useTranslation().LastName\n const errorMessages = useErrorMessage(props.path, props.errorMessages, {\n required: translations.errorRequired,\n pattern: translations.errorPattern,\n })\n\n const nameProps: Props = {\n label: translations.label,\n autoComplete: 'family-name',\n ...props,\n errorMessages,\n }\n\n return <Name {...nameProps} />\n}\nName.First['_supportsSpacingProps'] = true\n\nName.Company = function CompanyName(props: Props) {\n const translations = useTranslation().CompanyName\n const errorMessages = useErrorMessage(props.path, props.errorMessages, {\n required: translations.errorRequired,\n })\n\n const StringFieldProps: Props = {\n label: translations.label,\n pattern: undefined,\n autoComplete: 'organization',\n ...props,\n errorMessages,\n }\n\n return <Name {...StringFieldProps} />\n}\nName.First['_supportsSpacingProps'] = true\n\nexport default Name\n"],"mappings":";;;AAAA,OAAOA,KAAK,MAAM,OAAO;AACzB,OAAOC,WAAW,MAAqC,WAAW;AAClE,OAAOC,eAAe,MAAM,6BAA6B;AACzD,OAAOC,cAAc,MAAM,4BAA4B;AAIvD,SAASC,IAAIA,CAACC,KAAY,EAAE;EAC1B,MAAMC,gBAAuB,GAAAC,aAAA;IAC3BC,IAAI,EAAE,IAAI;IACVC,YAAY,EAAE,MAAM;IACpBC,OAAO,EAAE;EAAuB,GAC7BL,KAAK,CACT;EAED,OAAOL,KAAA,CAAAW,aAAA,CAACV,WAAW,EAAKK,gBAAmB,CAAC;AAC9C;AACAF,IAAI,CAACQ,qBAAqB,GAAG,IAAI;AAEjCR,IAAI,CAACS,KAAK,GAAG,SAASC,SAASA,CAACT,KAAY,EAAE;EAC5C,MAAMU,YAAY,GAAGZ,cAAc,CAAC,CAAC,CAACW,SAAS;EAC/C,MAAME,aAAa,GAAGd,eAAe,CAACG,KAAK,CAACY,IAAI,EAAEZ,KAAK,CAACW,aAAa,EAAE;IACrEE,QAAQ,EAAEH,YAAY,CAACI,aAAa;IACpCT,OAAO,EAAEK,YAAY,CAACK;EACxB,CAAC,CAAC;EAEF,MAAMC,SAAgB,GAAAd,aAAA,CAAAA,aAAA;IACpBe,KAAK,EAAEP,YAAY,CAACO,KAAK;IACzBb,YAAY,EAAE;EAAY,GACvBJ,KAAK;IACRW;EAAa,EACd;EAED,OAAOhB,KAAA,CAAAW,aAAA,CAACP,IAAI,EAAKiB,SAAY,CAAC;AAChC,CAAC;AACDjB,IAAI,CAACS,KAAK,CAAC,uBAAuB,CAAC,GAAG,IAAI;AAE1CT,IAAI,CAACmB,IAAI,GAAG,SAASC,QAAQA,CAACnB,KAAY,EAAE;EAC1C,MAAMU,YAAY,GAAGZ,cAAc,CAAC,CAAC,CAACqB,QAAQ;EAC9C,MAAMR,aAAa,GAAGd,eAAe,CAACG,KAAK,CAACY,IAAI,EAAEZ,KAAK,CAACW,aAAa,EAAE;IACrEE,QAAQ,EAAEH,YAAY,CAACI,aAAa;IACpCT,OAAO,EAAEK,YAAY,CAACK;EACxB,CAAC,CAAC;EAEF,MAAMC,SAAgB,GAAAd,aAAA,CAAAA,aAAA;IACpBe,KAAK,EAAEP,YAAY,CAACO,KAAK;IACzBb,YAAY,EAAE;EAAa,GACxBJ,KAAK;IACRW;EAAa,EACd;EAED,OAAOhB,KAAA,CAAAW,aAAA,CAACP,IAAI,EAAKiB,SAAY,CAAC;AAChC,CAAC;AACDjB,IAAI,CAACS,KAAK,CAAC,uBAAuB,CAAC,GAAG,IAAI;AAE1CT,IAAI,CAACqB,OAAO,GAAG,SAASC,WAAWA,CAACrB,KAAY,EAAE;EAChD,MAAMU,YAAY,GAAGZ,cAAc,CAAC,CAAC,CAACuB,WAAW;EACjD,MAAMV,aAAa,GAAGd,eAAe,CAACG,KAAK,CAACY,IAAI,EAAEZ,KAAK,CAACW,aAAa,EAAE;IACrEE,QAAQ,EAAEH,YAAY,CAACI;EACzB,CAAC,CAAC;EAEF,MAAMb,gBAAuB,GAAAC,aAAA,CAAAA,aAAA;IAC3Be,KAAK,EAAEP,YAAY,CAACO,KAAK;IACzBZ,OAAO,EAAEiB,SAAS;IAClBlB,YAAY,EAAE;EAAc,GACzBJ,KAAK;IACRW;EAAa,EACd;EAED,OAAOhB,KAAA,CAAAW,aAAA,CAACP,IAAI,EAAKE,gBAAmB,CAAC;AACvC,CAAC;AACDF,IAAI,CAACS,KAAK,CAAC,uBAAuB,CAAC,GAAG,IAAI;AAE1C,eAAeT,IAAI"}
@@ -0,0 +1,2 @@
1
+ import { PropertiesTableProps } from '../../../../shared/types';
2
+ export declare const NameProperties: PropertiesTableProps;
@@ -0,0 +1,8 @@
1
+ export const NameProperties = {
2
+ capitalize: {
3
+ doc: 'Will capitalize the first letter of every word, transforming the rest to lowercase. Is enabled by default for first name and last name.',
4
+ type: 'boolean',
5
+ status: 'optional'
6
+ }
7
+ };
8
+ //# sourceMappingURL=NameDocs.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"NameDocs.js","names":["NameProperties","capitalize","doc","type","status"],"sources":["../../../../../../src/extensions/forms/Field/Name/NameDocs.ts"],"sourcesContent":["import { PropertiesTableProps } from '../../../../shared/types'\n\nexport const NameProperties: PropertiesTableProps = {\n capitalize: {\n doc: 'Will capitalize the first letter of every word, transforming the rest to lowercase. Is enabled by default for first name and last name.',\n type: 'boolean',\n status: 'optional',\n },\n}\n"],"mappings":"AAEA,OAAO,MAAMA,cAAoC,GAAG;EAClDC,UAAU,EAAE;IACVC,GAAG,EAAE,yIAAyI;IAC9IC,IAAI,EAAE,SAAS;IACfC,MAAM,EAAE;EACV;AACF,CAAC"}
@@ -0,0 +1,2 @@
1
+ export { default } from './Name';
2
+ export * from './Name';
@@ -0,0 +1,3 @@
1
+ export { default } from './Name';
2
+ export * from './Name';
3
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","names":["default"],"sources":["../../../../../../src/extensions/forms/Field/Name/index.ts"],"sourcesContent":["export { default } from './Name'\nexport * from './Name'\n"],"mappings":"AAAA,SAASA,OAAO,QAAQ,QAAQ;AAChC,cAAc,QAAQ"}
@@ -1,6 +1,6 @@
1
1
  import { InputMaskedProps } from '../../../../components/InputMasked';
2
2
  import type { InputAlign, InputSize } from '../../../../components/Input';
3
- import { FieldProps, FieldHelpProps, CustomErrorMessages } from '../../types';
3
+ import { FieldProps, FieldHelpProps, CustomErrorMessages, FieldBlockWidth } from '../../types';
4
4
  interface ErrorMessages extends CustomErrorMessages {
5
5
  required?: string;
6
6
  schema?: string;
@@ -26,7 +26,7 @@ export type Props = FieldHelpProps & FieldProps<number, undefined, ErrorMessages
26
26
  exclusiveMaximum?: number;
27
27
  multipleOf?: number;
28
28
  size?: InputSize;
29
- width?: false | 'small' | 'medium' | 'large' | 'stretch';
29
+ width?: FieldBlockWidth;
30
30
  align?: InputAlign;
31
31
  showStepControls?: boolean;
32
32
  };
@@ -1 +1 @@
1
- {"version":3,"file":"Number.js","names":["React","useContext","useMemo","useCallback","InputMasked","HelpButton","Button","SharedContext","FieldBlockContext","classnames","FieldBlock","useFieldProps","pickSpacingProps","clamp","useErrorMessage","useTranslation","NumberComponent","props","_props$width","_sharedContext$transl","_sharedContext$transl2","fieldBlockContext","sharedContext","translations","currency","currencyDisplay","percent","mask","step","decimalLimit","prefix","suffix","showStepControls","errorMessages","path","required","Field","errorRequired","minimum","NumberField","errorMinimum","maximum","errorMaximum","exclusiveMinimum","errorExclusiveMinimum","exclusiveMaximum","errorExclusiveMaximum","multipleOf","errorMultipleOf","schema","_props$schema","type","toInput","external","undefined","fromInput","_ref","value","numberValue","emptyValue","transformValue","currentValue","Number","MAX_SAFE_INTEGER","MIN_SAFE_INTEGER","maskProps","mask_options","as_currency","currency_mask","as_percent","as_number","number_mask","_objectSpread","preparedProps","width","composition","id","name","className","inputClassName","autoComplete","layout","placeholder","label","labelDescription","disabled","htmlAttributes","info","warning","error","hasError","help","size","align","handleFocus","handleBlur","handleChange","onKeyDownHandler","_ref2","key","event","persist","preventDefault","fieldBlockProps","contentClassName","forId","contentWidth","increaseProps","variant","icon","tabIndex","onClick","title","translation","Slider","addTitle","replace","String","decreaseProps","subtractTitle","ariaParams","role","inputProps","onKeyDown","onFocus","onBlur","onChange","status","stretch","Boolean","createElement","content","_extends","asFieldset","left","_supportsSpacingProps"],"sources":["../../../../../../src/extensions/forms/Field/Number/Number.tsx"],"sourcesContent":["import React, { useContext, useMemo, useCallback } from 'react'\nimport { InputMasked, HelpButton, Button } from '../../../../components'\nimport { InputMaskedProps } from '../../../../components/InputMasked'\nimport type { InputAlign, InputSize } from '../../../../components/Input'\nimport SharedContext from '../../../../shared/Context'\nimport FieldBlockContext from '../../FieldBlock/FieldBlockContext'\nimport classnames from 'classnames'\nimport FieldBlock from '../../FieldBlock'\nimport { useFieldProps } from '../../hooks'\nimport {\n FieldProps,\n FieldHelpProps,\n AllJSONSchemaVersions,\n CustomErrorMessages,\n} from '../../types'\nimport { pickSpacingProps } from '../../../../components/flex/utils'\nimport { ButtonProps, ButtonSize } from '../../../../components/Button'\nimport { clamp } from '../../../../components/slider/SliderHelpers'\nimport useErrorMessage from '../../hooks/useErrorMessage'\nimport useTranslation from '../../hooks/useTranslation'\n\ninterface ErrorMessages extends CustomErrorMessages {\n required?: string\n schema?: string\n minimum?: string\n maximum?: string\n exclusiveMinimum?: string\n exclusiveMaximum?: string\n multipleOf?: string\n}\n\nexport type Props = FieldHelpProps &\n FieldProps<number, undefined, ErrorMessages> & {\n inputClassName?: string\n currency?: InputMaskedProps['as_currency']\n currencyDisplay?: 'code' | 'symbol' | 'narrowSymbol' | 'name'\n percent?: InputMaskedProps['as_percent']\n mask?: InputMaskedProps['mask']\n step?: number\n // Formatting\n decimalLimit?: number\n prefix?: string\n suffix?: string\n // Validation\n minimum?: number // aka greater than or equal to\n maximum?: number // aka less than or equal to\n exclusiveMinimum?: number // aka greater than\n exclusiveMaximum?: number // aka less than\n multipleOf?: number\n // Styling\n size?: InputSize\n width?: false | 'small' | 'medium' | 'large' | 'stretch'\n align?: InputAlign\n showStepControls?: boolean\n }\n\nfunction NumberComponent(props: Props) {\n const fieldBlockContext = useContext(FieldBlockContext)\n const sharedContext = useContext(SharedContext)\n const translations = useTranslation()\n\n const {\n currency,\n currencyDisplay,\n percent,\n mask,\n step = 1,\n decimalLimit = 12,\n prefix,\n suffix,\n showStepControls,\n } = props\n\n const errorMessages = useErrorMessage(props.path, props.errorMessages, {\n required: translations.Field.errorRequired,\n minimum: translations.NumberField.errorMinimum,\n maximum: translations.NumberField.errorMaximum,\n exclusiveMinimum: translations.NumberField.errorExclusiveMinimum,\n exclusiveMaximum: translations.NumberField.errorExclusiveMaximum,\n multipleOf: translations.NumberField.errorMultipleOf,\n })\n\n const schema = useMemo<AllJSONSchemaVersions>(\n () =>\n props.schema ?? {\n type: 'number',\n minimum: props.minimum,\n maximum: props.maximum,\n exclusiveMinimum: props.exclusiveMinimum,\n exclusiveMaximum: props.exclusiveMaximum,\n multipleOf: props.multipleOf,\n },\n [\n props.schema,\n props.minimum,\n props.maximum,\n props.exclusiveMinimum,\n props.exclusiveMaximum,\n props.multipleOf,\n ]\n )\n\n const toInput = useCallback((external: number | undefined) => {\n if (external === undefined) {\n return ''\n }\n return external\n }, [])\n const fromInput = useCallback(\n ({ value, numberValue }: { value: string; numberValue: number }) => {\n if (value === '') {\n return props.emptyValue\n }\n return numberValue\n },\n [props.emptyValue]\n )\n const transformValue = useCallback(\n (value: number, currentValue: number) => {\n if (\n value > Number.MAX_SAFE_INTEGER ||\n value < Number.MIN_SAFE_INTEGER\n ) {\n return currentValue\n }\n\n return value\n },\n []\n )\n\n const maskProps: Partial<InputMaskedProps> = useMemo(() => {\n const mask_options = { prefix, suffix, decimalLimit }\n\n if (currency) {\n return {\n as_currency: currency,\n mask_options,\n currency_mask: {\n currencyDisplay,\n },\n }\n }\n\n if (percent) {\n return {\n as_percent: percent,\n mask_options,\n }\n }\n\n // Custom mask based on props\n return {\n as_number: true,\n mask,\n number_mask: {\n ...mask_options,\n },\n }\n }, [\n currency,\n currencyDisplay,\n decimalLimit,\n mask,\n percent,\n prefix,\n suffix,\n ])\n\n const preparedProps: Props = {\n ...props,\n errorMessages,\n schema,\n toInput,\n fromInput,\n transformValue,\n width:\n props.width ??\n (fieldBlockContext?.composition ? 'stretch' : 'medium'),\n }\n\n const {\n id,\n name,\n className,\n inputClassName,\n autoComplete,\n layout,\n placeholder,\n label,\n labelDescription,\n value,\n minimum = Number.MIN_SAFE_INTEGER,\n maximum = Number.MAX_SAFE_INTEGER,\n disabled,\n htmlAttributes,\n info,\n warning,\n error,\n hasError,\n help,\n size,\n width,\n align,\n handleFocus,\n handleBlur,\n handleChange,\n } = useFieldProps(preparedProps)\n\n const onKeyDownHandler = useCallback(\n ({ key, event }) => {\n if (!showStepControls) {\n return\n }\n\n let numberValue = null\n\n switch (key) {\n case 'ArrowUp':\n numberValue = clamp((value as number) + step, minimum, maximum)\n break\n case 'ArrowDown':\n numberValue = clamp((value as number) - step, minimum, maximum)\n break\n }\n\n if (numberValue !== null) {\n event.persist()\n event.preventDefault()\n handleChange({ numberValue })\n }\n },\n [handleChange, maximum, minimum, showStepControls, step, value]\n )\n\n const fieldBlockProps = {\n className: classnames(\n 'dnb-forms-field-number',\n 'dnb-input__border--tokens', // Used by \"dnb-input__border\"\n className\n ),\n contentClassName: classnames(\n 'dnb-forms-field-number__contents',\n showStepControls && 'dnb-forms-field-number__contents--has-controls',\n hasError && 'dnb-input__status--error', // Also used by \"dnb-input__border\"\n disabled && 'dnb-input--disabled' // Also used by \"dnb-input__border\"\n ),\n forId: id,\n layout,\n label,\n labelDescription,\n info,\n warning,\n error,\n disabled,\n width:\n width === 'stretch' || fieldBlockContext?.composition\n ? width\n : undefined,\n contentWidth: width !== false ? width : undefined,\n ...pickSpacingProps(props),\n }\n\n const increaseProps: ButtonProps = showStepControls && {\n 'aria-hidden': true,\n className: 'dnb-button--control-after',\n variant: 'secondary',\n icon: 'add',\n size: (size || 'small') as ButtonSize,\n tabIndex: -1,\n disabled: disabled || value >= maximum,\n onClick: () => {\n handleChange({\n numberValue: clamp((value as number) + step, minimum, maximum),\n })\n },\n title: sharedContext?.translation.Slider.addTitle?.replace(\n '%s',\n String(value + step)\n ),\n }\n\n const decreaseProps: ButtonProps = showStepControls && {\n ...increaseProps,\n className: 'dnb-button--control-before',\n icon: 'subtract',\n size: (size || 'small') as ButtonSize,\n disabled: disabled || value <= minimum,\n onClick: () => {\n handleChange({\n numberValue: clamp((value as number) - step, minimum, maximum),\n })\n },\n title: sharedContext?.translation.Slider.subtractTitle?.replace(\n '%s',\n String(value - step)\n ),\n }\n\n const ariaParams = showStepControls && {\n role: 'spinbutton',\n 'aria-valuemin': String(minimum),\n 'aria-valuemax': String(maximum),\n 'aria-valuenow': String(value), // without it, VO will read an invalid value\n 'aria-valuetext': String(value), // without it, VO will read %\n }\n\n const inputProps = {\n id,\n name,\n autoComplete,\n className: classnames(\n 'dnb-forms-field-number__input',\n `dnb-input--${size}`,\n inputClassName\n ),\n step: showStepControls ? step : undefined,\n placeholder,\n value,\n align: showStepControls ? 'center' : align,\n ...maskProps,\n onKeyDown: onKeyDownHandler,\n onFocus: handleFocus,\n onBlur: handleBlur,\n onChange: handleChange,\n disabled,\n ...htmlAttributes,\n status: hasError ? 'error' : undefined,\n stretch: Boolean(\n width !== undefined || fieldBlockContext?.composition\n ),\n suffix:\n help && !showStepControls ? (\n <HelpButton title={help.title}>{help.content}</HelpButton>\n ) : undefined,\n ...ariaParams,\n }\n\n if (showStepControls) {\n return (\n <FieldBlock {...fieldBlockProps} asFieldset={false}>\n <span className=\"dnb-input__border dnb-input__border--root\">\n {<Button {...decreaseProps} />}\n <InputMasked {...inputProps} />\n {<Button {...increaseProps} />}\n </span>\n {help && (\n <HelpButton left=\"x-small\" title={help.title}>\n {help.content}\n </HelpButton>\n )}\n </FieldBlock>\n )\n }\n\n return (\n <FieldBlock {...fieldBlockProps} asFieldset={false}>\n <InputMasked {...inputProps} />\n </FieldBlock>\n )\n}\n\nNumberComponent._supportsSpacingProps = true\nexport default NumberComponent\n"],"mappings":"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"}
1
+ {"version":3,"file":"Number.js","names":["React","useContext","useMemo","useCallback","InputMasked","HelpButton","Button","SharedContext","FieldBlockContext","classnames","FieldBlock","useFieldProps","pickSpacingProps","clamp","useErrorMessage","useTranslation","NumberComponent","props","_props$width","_sharedContext$transl","_sharedContext$transl2","fieldBlockContext","sharedContext","translations","currency","currencyDisplay","percent","mask","step","decimalLimit","prefix","suffix","showStepControls","errorMessages","path","required","Field","errorRequired","minimum","NumberField","errorMinimum","maximum","errorMaximum","exclusiveMinimum","errorExclusiveMinimum","exclusiveMaximum","errorExclusiveMaximum","multipleOf","errorMultipleOf","schema","_props$schema","type","toInput","external","undefined","fromInput","_ref","value","numberValue","emptyValue","transformValue","currentValue","Number","MAX_SAFE_INTEGER","MIN_SAFE_INTEGER","maskProps","mask_options","as_currency","currency_mask","as_percent","as_number","number_mask","_objectSpread","preparedProps","width","composition","id","name","className","inputClassName","autoComplete","layout","placeholder","label","labelDescription","disabled","htmlAttributes","info","warning","error","hasError","help","size","align","handleFocus","handleBlur","handleChange","onKeyDownHandler","_ref2","key","event","persist","preventDefault","fieldBlockProps","contentClassName","forId","contentWidth","increaseProps","variant","icon","tabIndex","onClick","title","translation","Slider","addTitle","replace","String","decreaseProps","subtractTitle","ariaParams","role","inputProps","onKeyDown","onFocus","onBlur","onChange","status","stretch","Boolean","createElement","content","_extends","asFieldset","left","_supportsSpacingProps"],"sources":["../../../../../../src/extensions/forms/Field/Number/Number.tsx"],"sourcesContent":["import React, { useContext, useMemo, useCallback } from 'react'\nimport { InputMasked, HelpButton, Button } from '../../../../components'\nimport { InputMaskedProps } from '../../../../components/InputMasked'\nimport type { InputAlign, InputSize } from '../../../../components/Input'\nimport SharedContext from '../../../../shared/Context'\nimport FieldBlockContext from '../../FieldBlock/FieldBlockContext'\nimport classnames from 'classnames'\nimport FieldBlock from '../../FieldBlock'\nimport { useFieldProps } from '../../hooks'\nimport {\n FieldProps,\n FieldHelpProps,\n AllJSONSchemaVersions,\n CustomErrorMessages,\n FieldBlockWidth,\n} from '../../types'\nimport { pickSpacingProps } from '../../../../components/flex/utils'\nimport { ButtonProps, ButtonSize } from '../../../../components/Button'\nimport { clamp } from '../../../../components/slider/SliderHelpers'\nimport useErrorMessage from '../../hooks/useErrorMessage'\nimport useTranslation from '../../hooks/useTranslation'\n\ninterface ErrorMessages extends CustomErrorMessages {\n required?: string\n schema?: string\n minimum?: string\n maximum?: string\n exclusiveMinimum?: string\n exclusiveMaximum?: string\n multipleOf?: string\n}\n\nexport type Props = FieldHelpProps &\n FieldProps<number, undefined, ErrorMessages> & {\n inputClassName?: string\n currency?: InputMaskedProps['as_currency']\n currencyDisplay?: 'code' | 'symbol' | 'narrowSymbol' | 'name'\n percent?: InputMaskedProps['as_percent']\n mask?: InputMaskedProps['mask']\n step?: number\n // Formatting\n decimalLimit?: number\n prefix?: string\n suffix?: string\n // Validation\n minimum?: number // aka greater than or equal to\n maximum?: number // aka less than or equal to\n exclusiveMinimum?: number // aka greater than\n exclusiveMaximum?: number // aka less than\n multipleOf?: number\n // Styling\n size?: InputSize\n width?: FieldBlockWidth\n align?: InputAlign\n showStepControls?: boolean\n }\n\nfunction NumberComponent(props: Props) {\n const fieldBlockContext = useContext(FieldBlockContext)\n const sharedContext = useContext(SharedContext)\n const translations = useTranslation()\n\n const {\n currency,\n currencyDisplay,\n percent,\n mask,\n step = 1,\n decimalLimit = 12,\n prefix,\n suffix,\n showStepControls,\n } = props\n\n const errorMessages = useErrorMessage(props.path, props.errorMessages, {\n required: translations.Field.errorRequired,\n minimum: translations.NumberField.errorMinimum,\n maximum: translations.NumberField.errorMaximum,\n exclusiveMinimum: translations.NumberField.errorExclusiveMinimum,\n exclusiveMaximum: translations.NumberField.errorExclusiveMaximum,\n multipleOf: translations.NumberField.errorMultipleOf,\n })\n\n const schema = useMemo<AllJSONSchemaVersions>(\n () =>\n props.schema ?? {\n type: 'number',\n minimum: props.minimum,\n maximum: props.maximum,\n exclusiveMinimum: props.exclusiveMinimum,\n exclusiveMaximum: props.exclusiveMaximum,\n multipleOf: props.multipleOf,\n },\n [\n props.schema,\n props.minimum,\n props.maximum,\n props.exclusiveMinimum,\n props.exclusiveMaximum,\n props.multipleOf,\n ]\n )\n\n const toInput = useCallback((external: number | undefined) => {\n if (external === undefined) {\n return ''\n }\n return external\n }, [])\n const fromInput = useCallback(\n ({ value, numberValue }: { value: string; numberValue: number }) => {\n if (value === '') {\n return props.emptyValue\n }\n return numberValue\n },\n [props.emptyValue]\n )\n const transformValue = useCallback(\n (value: number, currentValue: number) => {\n if (\n value > Number.MAX_SAFE_INTEGER ||\n value < Number.MIN_SAFE_INTEGER\n ) {\n return currentValue\n }\n\n return value\n },\n []\n )\n\n const maskProps: Partial<InputMaskedProps> = useMemo(() => {\n const mask_options = { prefix, suffix, decimalLimit }\n\n if (currency) {\n return {\n as_currency: currency,\n mask_options,\n currency_mask: {\n currencyDisplay,\n },\n }\n }\n\n if (percent) {\n return {\n as_percent: percent,\n mask_options,\n }\n }\n\n // Custom mask based on props\n return {\n as_number: true,\n mask,\n number_mask: {\n ...mask_options,\n },\n }\n }, [\n currency,\n currencyDisplay,\n decimalLimit,\n mask,\n percent,\n prefix,\n suffix,\n ])\n\n const preparedProps: Props = {\n ...props,\n errorMessages,\n schema,\n toInput,\n fromInput,\n transformValue,\n width:\n props.width ??\n (fieldBlockContext?.composition ? 'stretch' : 'medium'),\n }\n\n const {\n id,\n name,\n className,\n inputClassName,\n autoComplete,\n layout,\n placeholder,\n label,\n labelDescription,\n value,\n minimum = Number.MIN_SAFE_INTEGER,\n maximum = Number.MAX_SAFE_INTEGER,\n disabled,\n htmlAttributes,\n info,\n warning,\n error,\n hasError,\n help,\n size,\n width,\n align,\n handleFocus,\n handleBlur,\n handleChange,\n } = useFieldProps(preparedProps)\n\n const onKeyDownHandler = useCallback(\n ({ key, event }) => {\n if (!showStepControls) {\n return\n }\n\n let numberValue = null\n\n switch (key) {\n case 'ArrowUp':\n numberValue = clamp((value as number) + step, minimum, maximum)\n break\n case 'ArrowDown':\n numberValue = clamp((value as number) - step, minimum, maximum)\n break\n }\n\n if (numberValue !== null) {\n event.persist()\n event.preventDefault()\n handleChange({ numberValue })\n }\n },\n [handleChange, maximum, minimum, showStepControls, step, value]\n )\n\n const fieldBlockProps = {\n className: classnames(\n 'dnb-forms-field-number',\n 'dnb-input__border--tokens', // Used by \"dnb-input__border\"\n className\n ),\n contentClassName: classnames(\n 'dnb-forms-field-number__contents',\n showStepControls && 'dnb-forms-field-number__contents--has-controls',\n hasError && 'dnb-input__status--error', // Also used by \"dnb-input__border\"\n disabled && 'dnb-input--disabled' // Also used by \"dnb-input__border\"\n ),\n forId: id,\n layout,\n label,\n labelDescription,\n info,\n warning,\n error,\n disabled,\n width:\n width === 'stretch' || fieldBlockContext?.composition\n ? width\n : undefined,\n contentWidth: width !== false ? width : undefined,\n ...pickSpacingProps(props),\n }\n\n const increaseProps: ButtonProps = showStepControls && {\n 'aria-hidden': true,\n className: 'dnb-button--control-after',\n variant: 'secondary',\n icon: 'add',\n size: (size || 'small') as ButtonSize,\n tabIndex: -1,\n disabled: disabled || value >= maximum,\n onClick: () => {\n handleChange({\n numberValue: clamp((value as number) + step, minimum, maximum),\n })\n },\n title: sharedContext?.translation.Slider.addTitle?.replace(\n '%s',\n String(value + step)\n ),\n }\n\n const decreaseProps: ButtonProps = showStepControls && {\n ...increaseProps,\n className: 'dnb-button--control-before',\n icon: 'subtract',\n size: (size || 'small') as ButtonSize,\n disabled: disabled || value <= minimum,\n onClick: () => {\n handleChange({\n numberValue: clamp((value as number) - step, minimum, maximum),\n })\n },\n title: sharedContext?.translation.Slider.subtractTitle?.replace(\n '%s',\n String(value - step)\n ),\n }\n\n const ariaParams = showStepControls && {\n role: 'spinbutton',\n 'aria-valuemin': String(minimum),\n 'aria-valuemax': String(maximum),\n 'aria-valuenow': String(value), // without it, VO will read an invalid value\n 'aria-valuetext': String(value), // without it, VO will read %\n }\n\n const inputProps = {\n id,\n name,\n autoComplete,\n className: classnames(\n 'dnb-forms-field-number__input',\n `dnb-input--${size}`,\n inputClassName\n ),\n step: showStepControls ? step : undefined,\n placeholder,\n value,\n align: showStepControls ? 'center' : align,\n ...maskProps,\n onKeyDown: onKeyDownHandler,\n onFocus: handleFocus,\n onBlur: handleBlur,\n onChange: handleChange,\n disabled,\n ...htmlAttributes,\n status: hasError ? 'error' : undefined,\n stretch: Boolean(\n width !== undefined || fieldBlockContext?.composition\n ),\n suffix:\n help && !showStepControls ? (\n <HelpButton title={help.title}>{help.content}</HelpButton>\n ) : undefined,\n ...ariaParams,\n }\n\n if (showStepControls) {\n return (\n <FieldBlock {...fieldBlockProps} asFieldset={false}>\n <span className=\"dnb-input__border dnb-input__border--root\">\n {<Button {...decreaseProps} />}\n <InputMasked {...inputProps} />\n {<Button {...increaseProps} />}\n </span>\n {help && (\n <HelpButton left=\"x-small\" title={help.title}>\n {help.content}\n </HelpButton>\n )}\n </FieldBlock>\n )\n }\n\n return (\n <FieldBlock {...fieldBlockProps} asFieldset={false}>\n <InputMasked {...inputProps} />\n </FieldBlock>\n )\n}\n\nNumberComponent._supportsSpacingProps = true\nexport default NumberComponent\n"],"mappings":"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"}
@@ -1,8 +1,10 @@
1
1
  import React from 'react';
2
2
  import type { FieldProps } from '../../types';
3
+ import { DrawerListProps } from '../../../../fragments/DrawerList';
3
4
  export type Props = FieldProps<number | string> & {
4
5
  title?: string;
5
6
  text?: string;
6
7
  children?: React.ReactNode;
7
8
  };
8
9
  export default function Option({ className, title, text, children, }: Props): import("react/jsx-runtime").JSX.Element;
10
+ export declare function makeOptions<T = DrawerListProps['data']>(children: React.ReactNode): T;
@@ -1,3 +1,4 @@
1
+ var _em;
1
2
  import React from 'react';
2
3
  import classnames from 'classnames';
3
4
  export default function Option(_ref) {
@@ -12,4 +13,23 @@ export default function Option(_ref) {
12
13
  role: "option"
13
14
  }, children !== null && children !== void 0 ? children : title, text);
14
15
  }
16
+ export function makeOptions(children) {
17
+ return React.Children.map(children, child => {
18
+ if (React.isValidElement(child) && child.type === Option) {
19
+ var _child$props$value, _ref2, _child$props$children, _child$props$children2;
20
+ return child.props.text ? {
21
+ selectedKey: String((_child$props$value = child.props.value) !== null && _child$props$value !== void 0 ? _child$props$value : ''),
22
+ content: [(_ref2 = (_child$props$children = child.props.children) !== null && _child$props$children !== void 0 ? _child$props$children : child.props.title) !== null && _ref2 !== void 0 ? _ref2 : _em || (_em = React.createElement("em", null, "Untitled")), child.props.text]
23
+ } : {
24
+ selectedKey: child.props.value,
25
+ content: (_child$props$children2 = child.props.children) !== null && _child$props$children2 !== void 0 ? _child$props$children2 : child.props.title
26
+ };
27
+ }
28
+ if (child) {
29
+ return {
30
+ content: child
31
+ };
32
+ }
33
+ }).filter(Boolean);
34
+ }
15
35
  //# sourceMappingURL=Option.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"Option.js","names":["React","classnames","Option","_ref","className","title","text","children","createElement","role"],"sources":["../../../../../../src/extensions/forms/Field/Option/Option.tsx"],"sourcesContent":["import React from 'react'\nimport classnames from 'classnames'\nimport type { FieldProps } from '../../types'\n\nexport type Props = FieldProps<number | string> & {\n title?: string\n text?: string\n children?: React.ReactNode\n}\n\nexport default function Option({\n className,\n title,\n text,\n children,\n}: Props) {\n return (\n <span\n className={classnames('dnb-forms-field-option', className)}\n // eslint-disable-next-line jsx-a11y/role-has-required-aria-props\n role=\"option\"\n >\n {children ?? title}\n {text}\n </span>\n )\n}\n"],"mappings":"AAAA,OAAOA,KAAK,MAAM,OAAO;AACzB,OAAOC,UAAU,MAAM,YAAY;AASnC,eAAe,SAASC,MAAMA,CAAAC,IAAA,EAKpB;EAAA,IALqB;IAC7BC,SAAS;IACTC,KAAK;IACLC,IAAI;IACJC;EACK,CAAC,GAAAJ,IAAA;EACN,OACEH,KAAA,CAAAQ,aAAA;IACEJ,SAAS,EAAEH,UAAU,CAAC,wBAAwB,EAAEG,SAAS,CAAE;IAE3DK,IAAI,EAAC;EAAQ,GAEZF,QAAQ,aAARA,QAAQ,cAARA,QAAQ,GAAIF,KAAK,EACjBC,IACG,CAAC;AAEX"}
1
+ {"version":3,"file":"Option.js","names":["React","classnames","Option","_ref","className","title","text","children","createElement","role","makeOptions","Children","map","child","isValidElement","type","_child$props$value","_ref2","_child$props$children","_child$props$children2","props","selectedKey","String","value","content","_em","filter","Boolean"],"sources":["../../../../../../src/extensions/forms/Field/Option/Option.tsx"],"sourcesContent":["import React from 'react'\nimport classnames from 'classnames'\nimport type { FieldProps } from '../../types'\nimport { DrawerListProps } from '../../../../fragments/DrawerList'\n\nexport type Props = FieldProps<number | string> & {\n title?: string\n text?: string\n children?: React.ReactNode\n}\n\nexport default function Option({\n className,\n title,\n text,\n children,\n}: Props) {\n return (\n <span\n className={classnames('dnb-forms-field-option', className)}\n // eslint-disable-next-line jsx-a11y/role-has-required-aria-props\n role=\"option\"\n >\n {children ?? title}\n {text}\n </span>\n )\n}\n\nexport function makeOptions<T = DrawerListProps['data']>(\n children: React.ReactNode\n): T {\n return 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 if (child) {\n // For other children, just show them as content\n return {\n content: child,\n }\n }\n }).filter(Boolean) as T\n}\n"],"mappings":";AAAA,OAAOA,KAAK,MAAM,OAAO;AACzB,OAAOC,UAAU,MAAM,YAAY;AAUnC,eAAe,SAASC,MAAMA,CAAAC,IAAA,EAKpB;EAAA,IALqB;IAC7BC,SAAS;IACTC,KAAK;IACLC,IAAI;IACJC;EACK,CAAC,GAAAJ,IAAA;EACN,OACEH,KAAA,CAAAQ,aAAA;IACEJ,SAAS,EAAEH,UAAU,CAAC,wBAAwB,EAAEG,SAAS,CAAE;IAE3DK,IAAI,EAAC;EAAQ,GAEZF,QAAQ,aAARA,QAAQ,cAARA,QAAQ,GAAIF,KAAK,EACjBC,IACG,CAAC;AAEX;AAEA,OAAO,SAASI,WAAWA,CACzBH,QAAyB,EACtB;EACH,OAAOP,KAAK,CAACW,QAAQ,CAACC,GAAG,CAACL,QAAQ,EAAGM,KAAK,IAAK;IAC7C,IAAIb,KAAK,CAACc,cAAc,CAACD,KAAK,CAAC,IAAIA,KAAK,CAACE,IAAI,KAAKb,MAAM,EAAE;MAAA,IAAAc,kBAAA,EAAAC,KAAA,EAAAC,qBAAA,EAAAC,sBAAA;MAExD,OAAON,KAAK,CAACO,KAAK,CAACd,IAAI,GACnB;QACEe,WAAW,EAAEC,MAAM,EAAAN,kBAAA,GAACH,KAAK,CAACO,KAAK,CAACG,KAAK,cAAAP,kBAAA,cAAAA,kBAAA,GAAI,EAAE,CAAC;QAC5CQ,OAAO,EAAE,EAAAP,KAAA,IAAAC,qBAAA,GACPL,KAAK,CAACO,KAAK,CAACb,QAAQ,cAAAW,qBAAA,cAAAA,qBAAA,GAAIL,KAAK,CAACO,KAAK,CAACf,KAAK,cAAAY,KAAA,cAAAA,KAAA,GAAAQ,GAAA,KAAAA,GAAA,GACvCzB,KAAA,CAAAQ,aAAA,aAAI,UAAY,CAAC,GAEnBK,KAAK,CAACO,KAAK,CAACd,IAAI;MAEpB,CAAC,GACD;QACEe,WAAW,EAAER,KAAK,CAACO,KAAK,CAACG,KAAK;QAC9BC,OAAO,GAAAL,sBAAA,GAAEN,KAAK,CAACO,KAAK,CAACb,QAAQ,cAAAY,sBAAA,cAAAA,sBAAA,GAAIN,KAAK,CAACO,KAAK,CAACf;MAC/C,CAAC;IACP;IAEA,IAAIQ,KAAK,EAAE;MAET,OAAO;QACLW,OAAO,EAAEX;MACX,CAAC;IACH;EACF,CAAC,CAAC,CAACa,MAAM,CAACC,OAAO,CAAC;AACpB"}
@@ -0,0 +1,2 @@
1
+ import { PropertiesTableProps } from '../../../../shared/types';
2
+ export declare const PostalCodeAndCityProperties: PropertiesTableProps;
@@ -0,0 +1,18 @@
1
+ export const PostalCodeAndCityProperties = {
2
+ postalCode: {
3
+ doc: 'Properties for the [Field.String](/uilib/extensions/forms/base-fields/String/) component for postcode.',
4
+ type: 'object',
5
+ status: 'required'
6
+ },
7
+ city: {
8
+ doc: 'Properties for the [Field.String](/uilib/extensions/forms/base-fields/String/) component for city.',
9
+ type: 'object',
10
+ status: 'required'
11
+ },
12
+ help: {
13
+ doc: 'Provide a help button. Object consisting of `title` and `content`.',
14
+ type: 'object',
15
+ status: 'optional'
16
+ }
17
+ };
18
+ //# sourceMappingURL=PostalCodeAndCityDocs.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"PostalCodeAndCityDocs.js","names":["PostalCodeAndCityProperties","postalCode","doc","type","status","city","help"],"sources":["../../../../../../src/extensions/forms/Field/PostalCodeAndCity/PostalCodeAndCityDocs.ts"],"sourcesContent":["import { PropertiesTableProps } from '../../../../shared/types'\n\nexport const PostalCodeAndCityProperties: PropertiesTableProps = {\n postalCode: {\n doc: 'Properties for the [Field.String](/uilib/extensions/forms/base-fields/String/) component for postcode.',\n type: 'object',\n status: 'required',\n },\n city: {\n doc: 'Properties for the [Field.String](/uilib/extensions/forms/base-fields/String/) component for city.',\n type: 'object',\n status: 'required',\n },\n help: {\n doc: 'Provide a help button. Object consisting of `title` and `content`.',\n type: 'object',\n status: 'optional',\n },\n}\n"],"mappings":"AAEA,OAAO,MAAMA,2BAAiD,GAAG;EAC/DC,UAAU,EAAE;IACVC,GAAG,EAAE,wGAAwG;IAC7GC,IAAI,EAAE,QAAQ;IACdC,MAAM,EAAE;EACV,CAAC;EACDC,IAAI,EAAE;IACJH,GAAG,EAAE,oGAAoG;IACzGC,IAAI,EAAE,QAAQ;IACdC,MAAM,EAAE;EACV,CAAC;EACDE,IAAI,EAAE;IACJJ,GAAG,EAAE,oEAAoE;IACzEC,IAAI,EAAE,QAAQ;IACdC,MAAM,EAAE;EACV;AACF,CAAC"}
@@ -1,9 +1,9 @@
1
1
  import { type CountryType, type CountryLang } from '../../constants/countries';
2
- import { FieldHelpProps, FieldProps } from '../../types';
2
+ import { FieldBlockWidth, FieldHelpProps, FieldProps } from '../../types';
3
3
  export type CountryFilterSet = 'Scandinavia' | 'Nordic' | 'Europe' | 'Prioritized';
4
4
  export type Props = FieldHelpProps & FieldProps<string, undefined | string> & {
5
5
  countries?: CountryFilterSet;
6
- width?: false | 'small' | 'medium' | 'large' | 'stretch';
6
+ width?: FieldBlockWidth;
7
7
  /**
8
8
  * For internal use only.
9
9
  *
@@ -1 +1 @@
1
- {"version":3,"file":"SelectCountry.js","names":["React","useCallback","useContext","useMemo","classnames","SharedContext","Autocomplete","HelpButton","pickSpacingProps","countries","prioritizedCountries","useFieldProps","FieldBlock","useErrorMessage","useTranslation","SelectCountry","props","_sharedContext$locale","sharedContext","translations","lang","locale","split","errorMessages","path","required","errorRequired","defaultProps","preparedProps","_objectSpread","className","placeholder","label","ccFilter","info","warning","error","hasError","disabled","value","width","help","htmlAttributes","handleFocus","handleBlur","handleChange","updateValue","forceUpdate","filterCountries","makeCountryFilterSet","undefined","dataRef","useRef","langRef","wasFilled","isLangChange","current","getCountryData","filter","country","iso","sort","window","requestAnimationFrame","handleCountryChange","_ref","data","newValue","selectedKey","find","_ref2","fillData","onFocusHandler","_ref3","updateData","onTypeHandler","_ref4","_event$nativeEvent","currentValue","setHidden","event","nativeEvent","search","toLowerCase","_ref5","i18n","Object","values","some","s","includes","createElement","_extends","label_direction","input_icon","on_show","on_focus","on_blur","on_change","on_type","stretch","status","show_submit_button","suffix","title","content","autoComplete","no_animation","noAnimation","makeObject","_country$i18n$lang","en","arguments","length","_ref6","_ref7","a","b","indexA","indexOf","indexB","priorityA","priorityB","localeCompare","map","_country$regions","regions","continent","_supportsSpacingProps"],"sources":["../../../../../../src/extensions/forms/Field/SelectCountry/SelectCountry.tsx"],"sourcesContent":["import React, { useCallback, useContext, useMemo } from 'react'\nimport classnames from 'classnames'\nimport SharedContext from '../../../../shared/Context'\nimport { Autocomplete, HelpButton } from '../../../../components'\nimport { pickSpacingProps } from '../../../../components/flex/utils'\nimport countries, {\n prioritizedCountries,\n type CountryType,\n type CountryLang,\n} from '../../constants/countries'\nimport { useFieldProps } from '../../hooks'\nimport { FieldHelpProps, FieldProps } from '../../types'\nimport FieldBlock from '../../FieldBlock'\nimport useErrorMessage from '../../hooks/useErrorMessage'\nimport useTranslation from '../../hooks/useTranslation'\n\nexport type CountryFilterSet =\n | 'Scandinavia'\n | 'Nordic'\n | 'Europe'\n | 'Prioritized'\n\nexport type Props = FieldHelpProps &\n FieldProps<string, undefined | string> & {\n countries?: CountryFilterSet\n\n // Styling\n width?: false | 'small' | 'medium' | 'large' | 'stretch'\n\n /**\n * For internal use only.\n *\n * @param country\n * @returns boolean\n */\n filterCountries?: (country: CountryType) => boolean\n\n /**\n * For internal testing purposes\n */\n noAnimation?: boolean\n }\n\nfunction SelectCountry(props: Props) {\n const sharedContext = useContext(SharedContext)\n const translations = useTranslation().SelectCountry\n const lang = sharedContext.locale?.split('-')[0] as CountryLang\n\n const errorMessages = useErrorMessage(props.path, props.errorMessages, {\n required: translations.errorRequired,\n })\n\n const defaultProps: Partial<Props> = {\n errorMessages,\n }\n const preparedProps: Props = {\n ...defaultProps,\n ...props,\n }\n\n const {\n className,\n placeholder = translations.placeholder,\n label = translations.label,\n countries: ccFilter = 'Prioritized',\n info,\n warning,\n error,\n hasError,\n disabled,\n value,\n width = 'large',\n help,\n htmlAttributes,\n handleFocus,\n handleBlur,\n handleChange,\n updateValue,\n forceUpdate,\n filterCountries = ccFilter !== 'Prioritized'\n ? makeCountryFilterSet(ccFilter)\n : undefined,\n } = useFieldProps(preparedProps)\n\n const dataRef = React.useRef(null)\n const langRef = React.useRef(lang)\n const wasFilled = React.useRef(false)\n\n /**\n * We do not process the whole country list at the first render.\n * Only when the Autocomplete opens (focus).\n * To achieve this, we use memo instead of effect to update refs in sync.\n *\n * We set or update the data list depending on if the countrycode changes or lang changes.\n * We then update data set when value changes.\n */\n useMemo(() => {\n const isLangChange = lang !== langRef.current\n\n if (isLangChange || !wasFilled.current) {\n langRef.current = lang\n dataRef.current = getCountryData({\n lang,\n filter: !wasFilled.current\n ? (country) => country.iso === props.value\n : filterCountries,\n sort: ccFilter as Extract<CountryFilterSet, 'Prioritized'>,\n })\n\n // To force Autocomplete to re-evaluate the internal data\n if (isLangChange && props.value && typeof window !== 'undefined') {\n updateValue(null)\n window.requestAnimationFrame(() => {\n updateValue(props.value)\n })\n }\n }\n }, [lang, filterCountries, ccFilter, updateValue, props.value])\n\n const handleCountryChange = useCallback(\n ({ data }: { data: { selectedKey: string } }) => {\n const newValue = data?.selectedKey\n const country = countries.find(({ iso }) => newValue === iso)\n if (country?.iso) {\n handleChange(country.iso, country)\n }\n },\n [handleChange]\n )\n\n const fillData = useCallback(() => {\n if (!wasFilled.current) {\n wasFilled.current = true\n dataRef.current = getCountryData({\n lang: langRef.current,\n filter: filterCountries,\n sort: ccFilter as Extract<CountryFilterSet, 'Prioritized'>,\n })\n forceUpdate()\n }\n }, [ccFilter, filterCountries, forceUpdate])\n\n const onFocusHandler = useCallback(\n ({ updateData }) => {\n fillData()\n updateData(dataRef.current)\n handleFocus()\n },\n [fillData, handleFocus]\n )\n\n const onTypeHandler = useCallback(\n ({ value: currentValue, setHidden, event }) => {\n // Handle browser autofill/autocomplete\n if (typeof event?.nativeEvent?.data === 'undefined') {\n const search = currentValue.toLowerCase()\n const country = countries.find(({ i18n }) =>\n Object.values(i18n).some((s) => s.toLowerCase().includes(search))\n )\n if (country?.iso) {\n setHidden()\n handleChange(country.iso, country)\n }\n }\n },\n [handleChange]\n )\n\n return (\n <FieldBlock\n className={classnames('dnb-forms-field-select-country', className)}\n width={width}\n info={info}\n warning={warning}\n error={error}\n {...pickSpacingProps(props)}\n >\n <Autocomplete\n placeholder={placeholder}\n label_direction=\"vertical\"\n label={label}\n input_icon={false}\n data={dataRef.current}\n value={value}\n disabled={disabled}\n on_show={fillData}\n on_focus={onFocusHandler}\n on_blur={handleBlur}\n on_change={handleCountryChange}\n on_type={onTypeHandler}\n stretch\n status={hasError ? 'error' : undefined}\n show_submit_button\n suffix={\n help ? (\n <HelpButton title={help.title}>{help.content}</HelpButton>\n ) : undefined\n }\n autoComplete=\"country-name\"\n no_animation={props.noAnimation}\n {...htmlAttributes}\n />\n </FieldBlock>\n )\n}\n\ntype GetCountryData = {\n lang?: CountryLang\n filter?: Props['filterCountries']\n sort?: Extract<CountryFilterSet, 'Prioritized'>\n makeObject?: (\n country: CountryType,\n lang: string\n ) => {\n selectedKey: string\n selected_value?: string\n content: string\n }\n}\n\nexport function getCountryData({\n lang = 'nb',\n filter = null,\n sort = null,\n makeObject = (country: CountryType, lang: string) => {\n const content = country.i18n[lang] ?? country.i18n.en\n return {\n selectedKey: country.iso,\n content,\n }\n },\n}: GetCountryData = {}) {\n return countries\n .filter((country) => {\n if (typeof filter === 'function') {\n return filter(country)\n }\n\n return !filter\n })\n .sort(({ i18n: a }, { i18n: b }) => {\n if (sort === 'Prioritized') {\n const indexA = prioritizedCountries.indexOf(a['en'])\n const indexB = prioritizedCountries.indexOf(b['en'])\n\n const priorityA = indexA !== -1\n const priorityB = indexB !== -1\n\n if (priorityA && priorityB) {\n return indexA - indexB\n } else if (priorityA) {\n return -1\n } else if (priorityB) {\n return 1\n }\n }\n\n return a[lang].localeCompare(b[lang])\n })\n .map((country) => makeObject(country, lang))\n}\n\nexport function makeCountryFilterSet(ccFilter: CountryFilterSet) {\n return (country: CountryType) => {\n switch (ccFilter) {\n case 'Scandinavia':\n case 'Nordic':\n return country.regions?.includes(ccFilter)\n case 'Europe':\n return country.continent.includes(ccFilter)\n }\n return true\n }\n}\n\nSelectCountry._supportsSpacingProps = true\nexport default SelectCountry\n"],"mappings":";;;;;;AAAA,OAAOA,KAAK,IAAIC,WAAW,EAAEC,UAAU,EAAEC,OAAO,QAAQ,OAAO;AAC/D,OAAOC,UAAU,MAAM,YAAY;AACnC,OAAOC,aAAa,MAAM,4BAA4B;AACtD,SAASC,YAAY,EAAEC,UAAU,QAAQ,wBAAwB;AACjE,SAASC,gBAAgB,QAAQ,mCAAmC;AACpE,OAAOC,SAAS,IACdC,oBAAoB,QAGf,2BAA2B;AAClC,SAASC,aAAa,QAAQ,aAAa;AAE3C,OAAOC,UAAU,MAAM,kBAAkB;AACzC,OAAOC,eAAe,MAAM,6BAA6B;AACzD,OAAOC,cAAc,MAAM,4BAA4B;AA6BvD,SAASC,aAAaA,CAACC,KAAY,EAAE;EAAA,IAAAC,qBAAA;EACnC,MAAMC,aAAa,GAAGhB,UAAU,CAACG,aAAa,CAAC;EAC/C,MAAMc,YAAY,GAAGL,cAAc,CAAC,CAAC,CAACC,aAAa;EACnD,MAAMK,IAAI,IAAAH,qBAAA,GAAGC,aAAa,CAACG,MAAM,cAAAJ,qBAAA,uBAApBA,qBAAA,CAAsBK,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAgB;EAE/D,MAAMC,aAAa,GAAGV,eAAe,CAACG,KAAK,CAACQ,IAAI,EAAER,KAAK,CAACO,aAAa,EAAE;IACrEE,QAAQ,EAAEN,YAAY,CAACO;EACzB,CAAC,CAAC;EAEF,MAAMC,YAA4B,GAAG;IACnCJ;EACF,CAAC;EACD,MAAMK,aAAoB,GAAAC,aAAA,CAAAA,aAAA,KACrBF,YAAY,GACZX,KAAK,CACT;EAED,MAAM;IACJc,SAAS;IACTC,WAAW,GAAGZ,YAAY,CAACY,WAAW;IACtCC,KAAK,GAAGb,YAAY,CAACa,KAAK;IAC1BvB,SAAS,EAAEwB,QAAQ,GAAG,aAAa;IACnCC,IAAI;IACJC,OAAO;IACPC,KAAK;IACLC,QAAQ;IACRC,QAAQ;IACRC,KAAK;IACLC,KAAK,GAAG,OAAO;IACfC,IAAI;IACJC,cAAc;IACdC,WAAW;IACXC,UAAU;IACVC,YAAY;IACZC,WAAW;IACXC,WAAW;IACXC,eAAe,GAAGf,QAAQ,KAAK,aAAa,GACxCgB,oBAAoB,CAAChB,QAAQ,CAAC,GAC9BiB;EACN,CAAC,GAAGvC,aAAa,CAACiB,aAAa,CAAC;EAEhC,MAAMuB,OAAO,GAAGnD,KAAK,CAACoD,MAAM,CAAC,IAAI,CAAC;EAClC,MAAMC,OAAO,GAAGrD,KAAK,CAACoD,MAAM,CAAChC,IAAI,CAAC;EAClC,MAAMkC,SAAS,GAAGtD,KAAK,CAACoD,MAAM,CAAC,KAAK,CAAC;EAUrCjD,OAAO,CAAC,MAAM;IACZ,MAAMoD,YAAY,GAAGnC,IAAI,KAAKiC,OAAO,CAACG,OAAO;IAE7C,IAAID,YAAY,IAAI,CAACD,SAAS,CAACE,OAAO,EAAE;MACtCH,OAAO,CAACG,OAAO,GAAGpC,IAAI;MACtB+B,OAAO,CAACK,OAAO,GAAGC,cAAc,CAAC;QAC/BrC,IAAI;QACJsC,MAAM,EAAE,CAACJ,SAAS,CAACE,OAAO,GACrBG,OAAO,IAAKA,OAAO,CAACC,GAAG,KAAK5C,KAAK,CAACuB,KAAK,GACxCS,eAAe;QACnBa,IAAI,EAAE5B;MACR,CAAC,CAAC;MAGF,IAAIsB,YAAY,IAAIvC,KAAK,CAACuB,KAAK,IAAI,OAAOuB,MAAM,KAAK,WAAW,EAAE;QAChEhB,WAAW,CAAC,IAAI,CAAC;QACjBgB,MAAM,CAACC,qBAAqB,CAAC,MAAM;UACjCjB,WAAW,CAAC9B,KAAK,CAACuB,KAAK,CAAC;QAC1B,CAAC,CAAC;MACJ;IACF;EACF,CAAC,EAAE,CAACnB,IAAI,EAAE4B,eAAe,EAAEf,QAAQ,EAAEa,WAAW,EAAE9B,KAAK,CAACuB,KAAK,CAAC,CAAC;EAE/D,MAAMyB,mBAAmB,GAAG/D,WAAW,CACrCgE,IAAA,IAAiD;IAAA,IAAhD;MAAEC;IAAwC,CAAC,GAAAD,IAAA;IAC1C,MAAME,QAAQ,GAAGD,IAAI,aAAJA,IAAI,uBAAJA,IAAI,CAAEE,WAAW;IAClC,MAAMT,OAAO,GAAGlD,SAAS,CAAC4D,IAAI,CAACC,KAAA;MAAA,IAAC;QAAEV;MAAI,CAAC,GAAAU,KAAA;MAAA,OAAKH,QAAQ,KAAKP,GAAG;IAAA,EAAC;IAC7D,IAAID,OAAO,aAAPA,OAAO,eAAPA,OAAO,CAAEC,GAAG,EAAE;MAChBf,YAAY,CAACc,OAAO,CAACC,GAAG,EAAED,OAAO,CAAC;IACpC;EACF,CAAC,EACD,CAACd,YAAY,CACf,CAAC;EAED,MAAM0B,QAAQ,GAAGtE,WAAW,CAAC,MAAM;IACjC,IAAI,CAACqD,SAAS,CAACE,OAAO,EAAE;MACtBF,SAAS,CAACE,OAAO,GAAG,IAAI;MACxBL,OAAO,CAACK,OAAO,GAAGC,cAAc,CAAC;QAC/BrC,IAAI,EAAEiC,OAAO,CAACG,OAAO;QACrBE,MAAM,EAAEV,eAAe;QACvBa,IAAI,EAAE5B;MACR,CAAC,CAAC;MACFc,WAAW,CAAC,CAAC;IACf;EACF,CAAC,EAAE,CAACd,QAAQ,EAAEe,eAAe,EAAED,WAAW,CAAC,CAAC;EAE5C,MAAMyB,cAAc,GAAGvE,WAAW,CAChCwE,KAAA,IAAoB;IAAA,IAAnB;MAAEC;IAAW,CAAC,GAAAD,KAAA;IACbF,QAAQ,CAAC,CAAC;IACVG,UAAU,CAACvB,OAAO,CAACK,OAAO,CAAC;IAC3Bb,WAAW,CAAC,CAAC;EACf,CAAC,EACD,CAAC4B,QAAQ,EAAE5B,WAAW,CACxB,CAAC;EAED,MAAMgC,aAAa,GAAG1E,WAAW,CAC/B2E,KAAA,IAA+C;IAAA,IAAAC,kBAAA;IAAA,IAA9C;MAAEtC,KAAK,EAAEuC,YAAY;MAAEC,SAAS;MAAEC;IAAM,CAAC,GAAAJ,KAAA;IAExC,IAAI,QAAOI,KAAK,aAALA,KAAK,wBAAAH,kBAAA,GAALG,KAAK,CAAEC,WAAW,cAAAJ,kBAAA,uBAAlBA,kBAAA,CAAoBX,IAAI,MAAK,WAAW,EAAE;MACnD,MAAMgB,MAAM,GAAGJ,YAAY,CAACK,WAAW,CAAC,CAAC;MACzC,MAAMxB,OAAO,GAAGlD,SAAS,CAAC4D,IAAI,CAACe,KAAA;QAAA,IAAC;UAAEC;QAAK,CAAC,GAAAD,KAAA;QAAA,OACtCE,MAAM,CAACC,MAAM,CAACF,IAAI,CAAC,CAACG,IAAI,CAAEC,CAAC,IAAKA,CAAC,CAACN,WAAW,CAAC,CAAC,CAACO,QAAQ,CAACR,MAAM,CAAC,CAAC;MAAA,CACnE,CAAC;MACD,IAAIvB,OAAO,aAAPA,OAAO,eAAPA,OAAO,CAAEC,GAAG,EAAE;QAChBmB,SAAS,CAAC,CAAC;QACXlC,YAAY,CAACc,OAAO,CAACC,GAAG,EAAED,OAAO,CAAC;MACpC;IACF;EACF,CAAC,EACD,CAACd,YAAY,CACf,CAAC;EAED,OACE7C,KAAA,CAAA2F,aAAA,CAAC/E,UAAU,EAAAgF,QAAA;IACT9D,SAAS,EAAE1B,UAAU,CAAC,gCAAgC,EAAE0B,SAAS,CAAE;IACnEU,KAAK,EAAEA,KAAM;IACbN,IAAI,EAAEA,IAAK;IACXC,OAAO,EAAEA,OAAQ;IACjBC,KAAK,EAAEA;EAAM,GACT5B,gBAAgB,CAACQ,KAAK,CAAC,GAE3BhB,KAAA,CAAA2F,aAAA,CAACrF,YAAY,EAAAsF,QAAA;IACX7D,WAAW,EAAEA,WAAY;IACzB8D,eAAe,EAAC,UAAU;IAC1B7D,KAAK,EAAEA,KAAM;IACb8D,UAAU,EAAE,KAAM;IAClB5B,IAAI,EAAEf,OAAO,CAACK,OAAQ;IACtBjB,KAAK,EAAEA,KAAM;IACbD,QAAQ,EAAEA,QAAS;IACnByD,OAAO,EAAExB,QAAS;IAClByB,QAAQ,EAAExB,cAAe;IACzByB,OAAO,EAAErD,UAAW;IACpBsD,SAAS,EAAElC,mBAAoB;IAC/BmC,OAAO,EAAExB,aAAc;IACvByB,OAAO;IACPC,MAAM,EAAEhE,QAAQ,GAAG,OAAO,GAAGa,SAAU;IACvCoD,kBAAkB;IAClBC,MAAM,EACJ9D,IAAI,GACFzC,KAAA,CAAA2F,aAAA,CAACpF,UAAU;MAACiG,KAAK,EAAE/D,IAAI,CAAC+D;IAAM,GAAE/D,IAAI,CAACgE,OAAoB,CAAC,GACxDvD,SACL;IACDwD,YAAY,EAAC,cAAc;IAC3BC,YAAY,EAAE3F,KAAK,CAAC4F;EAAY,GAC5BlE,cAAc,CACnB,CACS,CAAC;AAEjB;AAgBA,OAAO,SAASe,cAAcA,CAAA,EAWN;EAAA,IAXO;IAC7BrC,IAAI,GAAG,IAAI;IACXsC,MAAM,GAAG,IAAI;IACbG,IAAI,GAAG,IAAI;IACXgD,UAAU,GAAGA,CAAClD,OAAoB,EAAEvC,IAAY,KAAK;MAAA,IAAA0F,kBAAA;MACnD,MAAML,OAAO,IAAAK,kBAAA,GAAGnD,OAAO,CAAC0B,IAAI,CAACjE,IAAI,CAAC,cAAA0F,kBAAA,cAAAA,kBAAA,GAAInD,OAAO,CAAC0B,IAAI,CAAC0B,EAAE;MACrD,OAAO;QACL3C,WAAW,EAAET,OAAO,CAACC,GAAG;QACxB6C;MACF,CAAC;IACH;EACc,CAAC,GAAAO,SAAA,CAAAC,MAAA,QAAAD,SAAA,QAAA9D,SAAA,GAAA8D,SAAA,MAAG,CAAC,CAAC;EACpB,OAAOvG,SAAS,CACbiD,MAAM,CAAEC,OAAO,IAAK;IACnB,IAAI,OAAOD,MAAM,KAAK,UAAU,EAAE;MAChC,OAAOA,MAAM,CAACC,OAAO,CAAC;IACxB;IAEA,OAAO,CAACD,MAAM;EAChB,CAAC,CAAC,CACDG,IAAI,CAAC,CAAAqD,KAAA,EAAAC,KAAA,KAA8B;IAAA,IAA7B;MAAE9B,IAAI,EAAE+B;IAAE,CAAC,GAAAF,KAAA;IAAA,IAAE;MAAE7B,IAAI,EAAEgC;IAAE,CAAC,GAAAF,KAAA;IAC7B,IAAItD,IAAI,KAAK,aAAa,EAAE;MAC1B,MAAMyD,MAAM,GAAG5G,oBAAoB,CAAC6G,OAAO,CAACH,CAAC,CAAC,IAAI,CAAC,CAAC;MACpD,MAAMI,MAAM,GAAG9G,oBAAoB,CAAC6G,OAAO,CAACF,CAAC,CAAC,IAAI,CAAC,CAAC;MAEpD,MAAMI,SAAS,GAAGH,MAAM,KAAK,CAAC,CAAC;MAC/B,MAAMI,SAAS,GAAGF,MAAM,KAAK,CAAC,CAAC;MAE/B,IAAIC,SAAS,IAAIC,SAAS,EAAE;QAC1B,OAAOJ,MAAM,GAAGE,MAAM;MACxB,CAAC,MAAM,IAAIC,SAAS,EAAE;QACpB,OAAO,CAAC,CAAC;MACX,CAAC,MAAM,IAAIC,SAAS,EAAE;QACpB,OAAO,CAAC;MACV;IACF;IAEA,OAAON,CAAC,CAAChG,IAAI,CAAC,CAACuG,aAAa,CAACN,CAAC,CAACjG,IAAI,CAAC,CAAC;EACvC,CAAC,CAAC,CACDwG,GAAG,CAAEjE,OAAO,IAAKkD,UAAU,CAAClD,OAAO,EAAEvC,IAAI,CAAC,CAAC;AAChD;AAEA,OAAO,SAAS6B,oBAAoBA,CAAChB,QAA0B,EAAE;EAC/D,OAAQ0B,OAAoB,IAAK;IAAA,IAAAkE,gBAAA;IAC/B,QAAQ5F,QAAQ;MACd,KAAK,aAAa;MAClB,KAAK,QAAQ;QACX,QAAA4F,gBAAA,GAAOlE,OAAO,CAACmE,OAAO,cAAAD,gBAAA,uBAAfA,gBAAA,CAAiBnC,QAAQ,CAACzD,QAAQ,CAAC;MAC5C,KAAK,QAAQ;QACX,OAAO0B,OAAO,CAACoE,SAAS,CAACrC,QAAQ,CAACzD,QAAQ,CAAC;IAC/C;IACA,OAAO,IAAI;EACb,CAAC;AACH;AAEAlB,aAAa,CAACiH,qBAAqB,GAAG,IAAI;AAC1C,eAAejH,aAAa"}
1
+ {"version":3,"file":"SelectCountry.js","names":["React","useCallback","useContext","useMemo","classnames","SharedContext","Autocomplete","HelpButton","pickSpacingProps","countries","prioritizedCountries","useFieldProps","FieldBlock","useErrorMessage","useTranslation","SelectCountry","props","_sharedContext$locale","sharedContext","translations","lang","locale","split","errorMessages","path","required","errorRequired","defaultProps","preparedProps","_objectSpread","className","placeholder","label","ccFilter","info","warning","error","hasError","disabled","value","width","help","htmlAttributes","handleFocus","handleBlur","handleChange","updateValue","forceUpdate","filterCountries","makeCountryFilterSet","undefined","dataRef","useRef","langRef","wasFilled","isLangChange","current","getCountryData","filter","country","iso","sort","window","requestAnimationFrame","handleCountryChange","_ref","data","newValue","selectedKey","find","_ref2","fillData","onFocusHandler","_ref3","updateData","onTypeHandler","_ref4","_event$nativeEvent","currentValue","setHidden","event","nativeEvent","search","toLowerCase","_ref5","i18n","Object","values","some","s","includes","createElement","_extends","label_direction","input_icon","on_show","on_focus","on_blur","on_change","on_type","stretch","status","show_submit_button","suffix","title","content","autoComplete","no_animation","noAnimation","makeObject","_country$i18n$lang","en","arguments","length","_ref6","_ref7","a","b","indexA","indexOf","indexB","priorityA","priorityB","localeCompare","map","_country$regions","regions","continent","_supportsSpacingProps"],"sources":["../../../../../../src/extensions/forms/Field/SelectCountry/SelectCountry.tsx"],"sourcesContent":["import React, { useCallback, useContext, useMemo } from 'react'\nimport classnames from 'classnames'\nimport SharedContext from '../../../../shared/Context'\nimport { Autocomplete, HelpButton } from '../../../../components'\nimport { pickSpacingProps } from '../../../../components/flex/utils'\nimport countries, {\n prioritizedCountries,\n type CountryType,\n type CountryLang,\n} from '../../constants/countries'\nimport { useFieldProps } from '../../hooks'\nimport { FieldBlockWidth, FieldHelpProps, FieldProps } from '../../types'\nimport FieldBlock from '../../FieldBlock'\nimport useErrorMessage from '../../hooks/useErrorMessage'\nimport useTranslation from '../../hooks/useTranslation'\n\nexport type CountryFilterSet =\n | 'Scandinavia'\n | 'Nordic'\n | 'Europe'\n | 'Prioritized'\n\nexport type Props = FieldHelpProps &\n FieldProps<string, undefined | string> & {\n countries?: CountryFilterSet\n\n // Styling\n width?: FieldBlockWidth\n\n /**\n * For internal use only.\n *\n * @param country\n * @returns boolean\n */\n filterCountries?: (country: CountryType) => boolean\n\n /**\n * For internal testing purposes\n */\n noAnimation?: boolean\n }\n\nfunction SelectCountry(props: Props) {\n const sharedContext = useContext(SharedContext)\n const translations = useTranslation().SelectCountry\n const lang = sharedContext.locale?.split('-')[0] as CountryLang\n\n const errorMessages = useErrorMessage(props.path, props.errorMessages, {\n required: translations.errorRequired,\n })\n\n const defaultProps: Partial<Props> = {\n errorMessages,\n }\n const preparedProps: Props = {\n ...defaultProps,\n ...props,\n }\n\n const {\n className,\n placeholder = translations.placeholder,\n label = translations.label,\n countries: ccFilter = 'Prioritized',\n info,\n warning,\n error,\n hasError,\n disabled,\n value,\n width = 'large',\n help,\n htmlAttributes,\n handleFocus,\n handleBlur,\n handleChange,\n updateValue,\n forceUpdate,\n filterCountries = ccFilter !== 'Prioritized'\n ? makeCountryFilterSet(ccFilter)\n : undefined,\n } = useFieldProps(preparedProps)\n\n const dataRef = React.useRef(null)\n const langRef = React.useRef(lang)\n const wasFilled = React.useRef(false)\n\n /**\n * We do not process the whole country list at the first render.\n * Only when the Autocomplete opens (focus).\n * To achieve this, we use memo instead of effect to update refs in sync.\n *\n * We set or update the data list depending on if the countrycode changes or lang changes.\n * We then update data set when value changes.\n */\n useMemo(() => {\n const isLangChange = lang !== langRef.current\n\n if (isLangChange || !wasFilled.current) {\n langRef.current = lang\n dataRef.current = getCountryData({\n lang,\n filter: !wasFilled.current\n ? (country) => country.iso === props.value\n : filterCountries,\n sort: ccFilter as Extract<CountryFilterSet, 'Prioritized'>,\n })\n\n // To force Autocomplete to re-evaluate the internal data\n if (isLangChange && props.value && typeof window !== 'undefined') {\n updateValue(null)\n window.requestAnimationFrame(() => {\n updateValue(props.value)\n })\n }\n }\n }, [lang, filterCountries, ccFilter, updateValue, props.value])\n\n const handleCountryChange = useCallback(\n ({ data }: { data: { selectedKey: string } }) => {\n const newValue = data?.selectedKey\n const country = countries.find(({ iso }) => newValue === iso)\n if (country?.iso) {\n handleChange(country.iso, country)\n }\n },\n [handleChange]\n )\n\n const fillData = useCallback(() => {\n if (!wasFilled.current) {\n wasFilled.current = true\n dataRef.current = getCountryData({\n lang: langRef.current,\n filter: filterCountries,\n sort: ccFilter as Extract<CountryFilterSet, 'Prioritized'>,\n })\n forceUpdate()\n }\n }, [ccFilter, filterCountries, forceUpdate])\n\n const onFocusHandler = useCallback(\n ({ updateData }) => {\n fillData()\n updateData(dataRef.current)\n handleFocus()\n },\n [fillData, handleFocus]\n )\n\n const onTypeHandler = useCallback(\n ({ value: currentValue, setHidden, event }) => {\n // Handle browser autofill/autocomplete\n if (typeof event?.nativeEvent?.data === 'undefined') {\n const search = currentValue.toLowerCase()\n const country = countries.find(({ i18n }) =>\n Object.values(i18n).some((s) => s.toLowerCase().includes(search))\n )\n if (country?.iso) {\n setHidden()\n handleChange(country.iso, country)\n }\n }\n },\n [handleChange]\n )\n\n return (\n <FieldBlock\n className={classnames('dnb-forms-field-select-country', className)}\n width={width}\n info={info}\n warning={warning}\n error={error}\n {...pickSpacingProps(props)}\n >\n <Autocomplete\n placeholder={placeholder}\n label_direction=\"vertical\"\n label={label}\n input_icon={false}\n data={dataRef.current}\n value={value}\n disabled={disabled}\n on_show={fillData}\n on_focus={onFocusHandler}\n on_blur={handleBlur}\n on_change={handleCountryChange}\n on_type={onTypeHandler}\n stretch\n status={hasError ? 'error' : undefined}\n show_submit_button\n suffix={\n help ? (\n <HelpButton title={help.title}>{help.content}</HelpButton>\n ) : undefined\n }\n autoComplete=\"country-name\"\n no_animation={props.noAnimation}\n {...htmlAttributes}\n />\n </FieldBlock>\n )\n}\n\ntype GetCountryData = {\n lang?: CountryLang\n filter?: Props['filterCountries']\n sort?: Extract<CountryFilterSet, 'Prioritized'>\n makeObject?: (\n country: CountryType,\n lang: string\n ) => {\n selectedKey: string\n selected_value?: string\n content: string\n }\n}\n\nexport function getCountryData({\n lang = 'nb',\n filter = null,\n sort = null,\n makeObject = (country: CountryType, lang: string) => {\n const content = country.i18n[lang] ?? country.i18n.en\n return {\n selectedKey: country.iso,\n content,\n }\n },\n}: GetCountryData = {}) {\n return countries\n .filter((country) => {\n if (typeof filter === 'function') {\n return filter(country)\n }\n\n return !filter\n })\n .sort(({ i18n: a }, { i18n: b }) => {\n if (sort === 'Prioritized') {\n const indexA = prioritizedCountries.indexOf(a['en'])\n const indexB = prioritizedCountries.indexOf(b['en'])\n\n const priorityA = indexA !== -1\n const priorityB = indexB !== -1\n\n if (priorityA && priorityB) {\n return indexA - indexB\n } else if (priorityA) {\n return -1\n } else if (priorityB) {\n return 1\n }\n }\n\n return a[lang].localeCompare(b[lang])\n })\n .map((country) => makeObject(country, lang))\n}\n\nexport function makeCountryFilterSet(ccFilter: CountryFilterSet) {\n return (country: CountryType) => {\n switch (ccFilter) {\n case 'Scandinavia':\n case 'Nordic':\n return country.regions?.includes(ccFilter)\n case 'Europe':\n return country.continent.includes(ccFilter)\n }\n return true\n }\n}\n\nSelectCountry._supportsSpacingProps = true\nexport default SelectCountry\n"],"mappings":"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"}
@@ -1,16 +1,23 @@
1
1
  import React from 'react';
2
- import { FieldProps, FieldHelpProps } from '../../types';
2
+ import { FieldProps, FieldHelpProps, FieldBlockWidth } from '../../types';
3
3
  import type { FormStatusText } from '../../../../components/FormStatus';
4
+ import type { AutocompleteAllProps, AutocompleteProps } from '../../../../components/Autocomplete';
5
+ import type { DropdownAllProps, DropdownProps } from '../../../../components/Dropdown';
6
+ import { ToCamelCase } from '../../../../shared/helpers/withCamelCaseProps';
4
7
  interface IOption {
5
8
  title: string | React.ReactNode;
6
9
  value: number | string;
7
10
  status: FormStatusText;
8
11
  }
12
+ export type Data = AutocompleteAllProps['data'] | DropdownAllProps['data'];
9
13
  export type Props = FieldHelpProps & FieldProps<IOption['value']> & {
10
- children?: React.ReactNode;
11
- variant?: 'dropdown' | 'radio' | 'button';
14
+ variant?: 'dropdown' | 'autocomplete' | 'radio' | 'button';
12
15
  optionsLayout?: 'horizontal' | 'vertical';
13
- width?: 'small' | 'medium' | 'large' | 'stretch';
16
+ children?: React.ReactNode;
17
+ autocompleteProps?: ToCamelCase<AutocompleteProps>;
18
+ dropdownProps?: ToCamelCase<DropdownProps>;
19
+ data?: Data;
20
+ width?: FieldBlockWidth;
14
21
  };
15
22
  declare function Selection(props: Props): import("react/jsx-runtime").JSX.Element;
16
23
  declare namespace Selection {