@dnb/eufemia 10.63.3 → 10.64.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 (859) hide show
  1. package/CHANGELOG.md +50 -0
  2. package/assets/icons/dnb/calendar_add.svg +1 -0
  3. package/assets/icons/dnb/calendar_add_medium.svg +1 -0
  4. package/assets/icons/dnb/cog_medium.svg +1 -1
  5. package/assets/icons/dnb/digipass_corporate.svg +1 -1
  6. package/assets/icons/dnb/digipass_corporate_medium.svg +1 -1
  7. package/assets/icons/dnb/digipass_private.svg +1 -1
  8. package/assets/icons/dnb/digipass_private_medium.svg +1 -1
  9. package/assets/icons/dnb/digitpass_private_corporate.svg +1 -0
  10. package/assets/icons/dnb/digitpass_private_corporate_medium.svg +1 -0
  11. package/assets/icons/dnb/eufemia-icons-xml-categorized.tgz +0 -0
  12. package/assets/icons/dnb/eufemia-icons-xml.tgz +0 -0
  13. package/assets/icons/dnb/goal.svg +1 -0
  14. package/assets/icons/dnb/goal_medium.svg +1 -0
  15. package/assets/icons/dnb/information.svg +1 -1
  16. package/assets/icons/dnb/investor.svg +1 -0
  17. package/assets/icons/dnb/investor_medium.svg +1 -0
  18. package/assets/icons/dnb/layout_grid.svg +1 -0
  19. package/assets/icons/dnb/layout_grid_medium.svg +1 -0
  20. package/assets/icons/dnb/question.svg +1 -1
  21. package/assets/icons/dnb/question_circled.svg +1 -1
  22. package/assets/icons/dnb/question_medium.svg +1 -1
  23. package/assets/icons/dnb/return_1_medium.svg +1 -1
  24. package/assets/icons/dnb/show_pin.svg +1 -0
  25. package/assets/icons/dnb/show_pin_medium.svg +1 -0
  26. package/assets/icons/dnb/table.svg +1 -0
  27. package/assets/icons/dnb/table_medium.svg +1 -0
  28. package/cjs/components/button/style/themes/dnb-button-theme-ui.scss +1 -1
  29. package/cjs/components/date-picker/DatePickerCalc.js +1 -1
  30. package/cjs/components/date-picker/DatePickerCalc.js.map +1 -1
  31. package/cjs/components/drawer/style/dnb-drawer.css +4 -4
  32. package/cjs/components/drawer/style/dnb-drawer.min.css +1 -1
  33. package/cjs/components/drawer/style/dnb-drawer.scss +4 -4
  34. package/cjs/components/dropdown/Dropdown.d.ts +1 -1
  35. package/cjs/components/form-status/FormStatus.js +3 -2
  36. package/cjs/components/form-status/FormStatus.js.map +1 -1
  37. package/cjs/components/heading/HeadingCounter.js +4 -4
  38. package/cjs/components/heading/HeadingCounter.js.map +1 -1
  39. package/cjs/components/input/Input.js +1 -1
  40. package/cjs/components/input/Input.js.map +1 -1
  41. package/cjs/components/radio/Radio.d.ts +1 -1
  42. package/cjs/components/radio/RadioGroup.d.ts +1 -1
  43. package/cjs/components/section/Section.d.ts +1 -1
  44. package/cjs/components/section/Section.js.map +1 -1
  45. package/cjs/components/section/SectionDocs.js +1 -1
  46. package/cjs/components/section/SectionDocs.js.map +1 -1
  47. package/cjs/components/textarea/Textarea.js +8 -1
  48. package/cjs/components/textarea/Textarea.js.map +1 -1
  49. package/cjs/elements/lists/style/lists-mixins.scss +1 -1
  50. package/cjs/extensions/forms/Connectors/Bring/index.d.ts +1 -0
  51. package/cjs/extensions/forms/Connectors/Bring/index.js +11 -0
  52. package/cjs/extensions/forms/Connectors/Bring/index.js.map +1 -0
  53. package/cjs/extensions/forms/Connectors/Bring/postalCode.d.ts +25 -0
  54. package/cjs/extensions/forms/Connectors/Bring/postalCode.js +164 -0
  55. package/cjs/extensions/forms/Connectors/Bring/postalCode.js.map +1 -0
  56. package/cjs/extensions/forms/Connectors/createContext.d.ts +58 -0
  57. package/cjs/extensions/forms/Connectors/createContext.js +130 -0
  58. package/cjs/extensions/forms/Connectors/createContext.js.map +1 -0
  59. package/cjs/extensions/forms/Connectors/index.d.ts +2 -0
  60. package/cjs/extensions/forms/Connectors/index.js +26 -0
  61. package/cjs/extensions/forms/Connectors/index.js.map +1 -0
  62. package/cjs/extensions/forms/DataContext/Context.d.ts +4 -1
  63. package/cjs/extensions/forms/DataContext/Context.js.map +1 -1
  64. package/cjs/extensions/forms/DataContext/Provider/Provider.js +30 -16
  65. package/cjs/extensions/forms/DataContext/Provider/Provider.js.map +1 -1
  66. package/cjs/extensions/forms/Field/Address/Address.d.ts +9 -0
  67. package/cjs/extensions/forms/Field/Address/Address.js +63 -0
  68. package/cjs/extensions/forms/Field/Address/Address.js.map +1 -0
  69. package/cjs/extensions/forms/Field/Address/AddressDocs.d.ts +2 -0
  70. package/cjs/extensions/forms/Field/Address/AddressDocs.js +15 -0
  71. package/cjs/extensions/forms/Field/Address/AddressDocs.js.map +1 -0
  72. package/cjs/extensions/forms/Field/Address/index.d.ts +2 -0
  73. package/cjs/extensions/forms/Field/Address/index.js +27 -0
  74. package/cjs/extensions/forms/Field/Address/index.js.map +1 -0
  75. package/cjs/extensions/forms/Field/Email/EmailDocs.d.ts +2 -0
  76. package/cjs/extensions/forms/Field/Email/EmailDocs.js +15 -0
  77. package/cjs/extensions/forms/Field/Email/EmailDocs.js.map +1 -0
  78. package/cjs/extensions/forms/Field/Expiry/Expiry.js +83 -32
  79. package/cjs/extensions/forms/Field/Expiry/Expiry.js.map +1 -1
  80. package/cjs/extensions/forms/Field/Name/Name.js +2 -2
  81. package/cjs/extensions/forms/Field/Name/Name.js.map +1 -1
  82. package/cjs/extensions/forms/Field/NationalIdentityNumber/NationalIdentityNumber.d.ts +1 -0
  83. package/cjs/extensions/forms/Field/NationalIdentityNumber/NationalIdentityNumber.js +10 -0
  84. package/cjs/extensions/forms/Field/NationalIdentityNumber/NationalIdentityNumber.js.map +1 -1
  85. package/cjs/extensions/forms/Field/Password/PasswordDocs.d.ts +2 -0
  86. package/cjs/extensions/forms/Field/Password/PasswordDocs.js +30 -0
  87. package/cjs/extensions/forms/Field/Password/PasswordDocs.js.map +1 -0
  88. package/cjs/extensions/forms/Field/PostalCodeAndCity/PostalCodeAndCity.d.ts +10 -0
  89. package/cjs/extensions/forms/Field/PostalCodeAndCity/PostalCodeAndCity.js +23 -10
  90. package/cjs/extensions/forms/Field/PostalCodeAndCity/PostalCodeAndCity.js.map +1 -1
  91. package/cjs/extensions/forms/Field/PostalCodeAndCity/PostalCodeAndCityDocs.js +3 -3
  92. package/cjs/extensions/forms/Field/PostalCodeAndCity/PostalCodeAndCityDocs.js.map +1 -1
  93. package/cjs/extensions/forms/Field/Provider/useFieldProvider.d.ts +4 -4
  94. package/cjs/extensions/forms/Field/index.d.ts +1 -0
  95. package/cjs/extensions/forms/Field/index.js +7 -0
  96. package/cjs/extensions/forms/Field/index.js.map +1 -1
  97. package/cjs/extensions/forms/FieldBlock/FieldBlock.js +0 -1
  98. package/cjs/extensions/forms/FieldBlock/FieldBlock.js.map +1 -1
  99. package/cjs/extensions/forms/FieldBlock/style/dnb-field-block.css +4 -0
  100. package/cjs/extensions/forms/FieldBlock/style/dnb-field-block.min.css +1 -1
  101. package/cjs/extensions/forms/FieldBlock/style/dnb-field-block.scss +5 -0
  102. package/cjs/extensions/forms/Iterate/Array/Array.js +7 -2
  103. package/cjs/extensions/forms/Iterate/Array/Array.js.map +1 -1
  104. package/cjs/extensions/forms/Iterate/Array/ArrayDocs.js +5 -0
  105. package/cjs/extensions/forms/Iterate/Array/ArrayDocs.js.map +1 -1
  106. package/cjs/extensions/forms/Iterate/Array/types.d.ts +1 -0
  107. package/cjs/extensions/forms/Iterate/Array/types.js.map +1 -1
  108. package/cjs/extensions/forms/Iterate/PushContainer/PushContainer.d.ts +4 -0
  109. package/cjs/extensions/forms/Iterate/PushContainer/PushContainer.js +3 -2
  110. package/cjs/extensions/forms/Iterate/PushContainer/PushContainer.js.map +1 -1
  111. package/cjs/extensions/forms/Iterate/PushContainer/PushContainerDocs.js +5 -0
  112. package/cjs/extensions/forms/Iterate/PushContainer/PushContainerDocs.js.map +1 -1
  113. package/cjs/extensions/forms/Value/Address/Address.d.ts +9 -0
  114. package/cjs/extensions/forms/Value/Address/Address.js +41 -0
  115. package/cjs/extensions/forms/Value/Address/Address.js.map +1 -0
  116. package/cjs/extensions/forms/Value/Address/index.d.ts +2 -0
  117. package/cjs/extensions/forms/Value/Address/index.js +27 -0
  118. package/cjs/extensions/forms/Value/Address/index.js.map +1 -0
  119. package/cjs/extensions/forms/Value/PostalCodeAndCity/PostalCodeAndCityDocs.js +1 -1
  120. package/cjs/extensions/forms/Value/PostalCodeAndCity/PostalCodeAndCityDocs.js.map +1 -1
  121. package/cjs/extensions/forms/Value/index.d.ts +1 -0
  122. package/cjs/extensions/forms/Value/index.js +7 -0
  123. package/cjs/extensions/forms/Value/index.js.map +1 -1
  124. package/cjs/extensions/forms/Wizard/Step/Step.js +2 -2
  125. package/cjs/extensions/forms/Wizard/Step/Step.js.map +1 -1
  126. package/cjs/extensions/forms/constants/locales/en-GB.d.ts +13 -0
  127. package/cjs/extensions/forms/constants/locales/en-GB.js +20 -7
  128. package/cjs/extensions/forms/constants/locales/en-GB.js.map +1 -1
  129. package/cjs/extensions/forms/constants/locales/en-US.d.ts +13 -0
  130. package/cjs/extensions/forms/constants/locales/index.d.ts +26 -0
  131. package/cjs/extensions/forms/constants/locales/nb-NO.d.ts +13 -0
  132. package/cjs/extensions/forms/constants/locales/nb-NO.js +16 -3
  133. package/cjs/extensions/forms/constants/locales/nb-NO.js.map +1 -1
  134. package/cjs/extensions/forms/hooks/DataValueWritePropsDocs.js +3 -3
  135. package/cjs/extensions/forms/hooks/DataValueWritePropsDocs.js.map +1 -1
  136. package/cjs/extensions/forms/hooks/useFieldProps.d.ts +8 -4
  137. package/cjs/extensions/forms/hooks/useFieldProps.js +39 -19
  138. package/cjs/extensions/forms/hooks/useFieldProps.js.map +1 -1
  139. package/cjs/extensions/forms/index.d.ts +1 -0
  140. package/cjs/extensions/forms/index.js +4 -1
  141. package/cjs/extensions/forms/index.js.map +1 -1
  142. package/cjs/extensions/forms/style/dnb-forms.css +4 -0
  143. package/cjs/extensions/forms/style/dnb-forms.min.css +1 -1
  144. package/cjs/extensions/forms/types.d.ts +34 -10
  145. package/cjs/extensions/forms/types.js.map +1 -1
  146. package/cjs/extensions/forms/utils/json-pointer/json-pointer.js +1 -1
  147. package/cjs/extensions/forms/utils/json-pointer/json-pointer.js.map +1 -1
  148. package/cjs/icons/calendar_add.d.ts +3 -0
  149. package/cjs/icons/calendar_add.js +11 -0
  150. package/cjs/icons/calendar_add.js.map +1 -0
  151. package/cjs/icons/calendar_add_medium.d.ts +3 -0
  152. package/cjs/icons/calendar_add_medium.js +11 -0
  153. package/cjs/icons/calendar_add_medium.js.map +1 -0
  154. package/cjs/icons/digitpass_private_corporate.d.ts +3 -0
  155. package/cjs/icons/digitpass_private_corporate.js +11 -0
  156. package/cjs/icons/digitpass_private_corporate.js.map +1 -0
  157. package/cjs/icons/digitpass_private_corporate_medium.d.ts +3 -0
  158. package/cjs/icons/digitpass_private_corporate_medium.js +11 -0
  159. package/cjs/icons/digitpass_private_corporate_medium.js.map +1 -0
  160. package/cjs/icons/dnb/calendar_add.d.ts +3 -0
  161. package/cjs/icons/dnb/calendar_add.js +31 -0
  162. package/cjs/icons/dnb/calendar_add.js.map +1 -0
  163. package/cjs/icons/dnb/calendar_add_medium.d.ts +3 -0
  164. package/cjs/icons/dnb/calendar_add_medium.js +25 -0
  165. package/cjs/icons/dnb/calendar_add_medium.js.map +1 -0
  166. package/cjs/icons/dnb/cog_medium.js +1 -1
  167. package/cjs/icons/dnb/cog_medium.js.map +1 -1
  168. package/cjs/icons/dnb/digipass_corporate.js +3 -3
  169. package/cjs/icons/dnb/digipass_corporate.js.map +1 -1
  170. package/cjs/icons/dnb/digipass_corporate_medium.js +3 -3
  171. package/cjs/icons/dnb/digipass_corporate_medium.js.map +1 -1
  172. package/cjs/icons/dnb/digipass_private.js +3 -3
  173. package/cjs/icons/dnb/digipass_private.js.map +1 -1
  174. package/cjs/icons/dnb/digipass_private_medium.js +3 -3
  175. package/cjs/icons/dnb/digipass_private_medium.js.map +1 -1
  176. package/cjs/icons/dnb/digitpass_private_corporate.d.ts +3 -0
  177. package/cjs/icons/dnb/digitpass_private_corporate.js +25 -0
  178. package/cjs/icons/dnb/digitpass_private_corporate.js.map +1 -0
  179. package/cjs/icons/dnb/digitpass_private_corporate_medium.d.ts +3 -0
  180. package/cjs/icons/dnb/digitpass_private_corporate_medium.js +25 -0
  181. package/cjs/icons/dnb/digitpass_private_corporate_medium.js.map +1 -0
  182. package/cjs/icons/dnb/goal.d.ts +3 -0
  183. package/cjs/icons/dnb/goal.js +26 -0
  184. package/cjs/icons/dnb/goal.js.map +1 -0
  185. package/cjs/icons/dnb/goal_medium.d.ts +3 -0
  186. package/cjs/icons/dnb/goal_medium.js +26 -0
  187. package/cjs/icons/dnb/goal_medium.js.map +1 -0
  188. package/cjs/icons/dnb/icons-meta.json +132 -4
  189. package/cjs/icons/dnb/icons-svg.lock +1278 -1096
  190. package/cjs/icons/dnb/index.d.ts +15 -1
  191. package/cjs/icons/dnb/index.js +98 -0
  192. package/cjs/icons/dnb/index.js.map +1 -1
  193. package/cjs/icons/dnb/information.js +1 -1
  194. package/cjs/icons/dnb/information.js.map +1 -1
  195. package/cjs/icons/dnb/investor.d.ts +3 -0
  196. package/cjs/icons/dnb/investor.js +33 -0
  197. package/cjs/icons/dnb/investor.js.map +1 -0
  198. package/cjs/icons/dnb/investor_medium.d.ts +3 -0
  199. package/cjs/icons/dnb/investor_medium.js +33 -0
  200. package/cjs/icons/dnb/investor_medium.js.map +1 -0
  201. package/cjs/icons/dnb/layout_grid.d.ts +3 -0
  202. package/cjs/icons/dnb/layout_grid.js +34 -0
  203. package/cjs/icons/dnb/layout_grid.js.map +1 -0
  204. package/cjs/icons/dnb/layout_grid_medium.d.ts +3 -0
  205. package/cjs/icons/dnb/layout_grid_medium.js +34 -0
  206. package/cjs/icons/dnb/layout_grid_medium.js.map +1 -0
  207. package/cjs/icons/dnb/question.js +1 -1
  208. package/cjs/icons/dnb/question.js.map +1 -1
  209. package/cjs/icons/dnb/question_circled.js +1 -1
  210. package/cjs/icons/dnb/question_circled.js.map +1 -1
  211. package/cjs/icons/dnb/question_medium.js +1 -1
  212. package/cjs/icons/dnb/question_medium.js.map +1 -1
  213. package/cjs/icons/dnb/return_1_medium.js +1 -1
  214. package/cjs/icons/dnb/return_1_medium.js.map +1 -1
  215. package/cjs/icons/dnb/secondary_icons.d.ts +8 -1
  216. package/cjs/icons/dnb/secondary_icons.js +49 -0
  217. package/cjs/icons/dnb/secondary_icons.js.map +1 -1
  218. package/cjs/icons/dnb/secondary_icons_medium.d.ts +8 -1
  219. package/cjs/icons/dnb/secondary_icons_medium.js +49 -0
  220. package/cjs/icons/dnb/secondary_icons_medium.js.map +1 -1
  221. package/cjs/icons/dnb/show_pin.d.ts +3 -0
  222. package/cjs/icons/dnb/show_pin.js +23 -0
  223. package/cjs/icons/dnb/show_pin.js.map +1 -0
  224. package/cjs/icons/dnb/show_pin_medium.d.ts +3 -0
  225. package/cjs/icons/dnb/show_pin_medium.js +23 -0
  226. package/cjs/icons/dnb/show_pin_medium.js.map +1 -0
  227. package/cjs/icons/dnb/table.d.ts +3 -0
  228. package/cjs/icons/dnb/table.js +33 -0
  229. package/cjs/icons/dnb/table.js.map +1 -0
  230. package/cjs/icons/dnb/table_medium.d.ts +3 -0
  231. package/cjs/icons/dnb/table_medium.js +26 -0
  232. package/cjs/icons/dnb/table_medium.js.map +1 -0
  233. package/cjs/icons/goal.d.ts +3 -0
  234. package/cjs/icons/goal.js +11 -0
  235. package/cjs/icons/goal.js.map +1 -0
  236. package/cjs/icons/goal_medium.d.ts +3 -0
  237. package/cjs/icons/goal_medium.js +11 -0
  238. package/cjs/icons/goal_medium.js.map +1 -0
  239. package/cjs/icons/index.d.ts +15 -1
  240. package/cjs/icons/index.js +98 -0
  241. package/cjs/icons/index.js.map +1 -1
  242. package/cjs/icons/investor.d.ts +3 -0
  243. package/cjs/icons/investor.js +11 -0
  244. package/cjs/icons/investor.js.map +1 -0
  245. package/cjs/icons/investor_medium.d.ts +3 -0
  246. package/cjs/icons/investor_medium.js +11 -0
  247. package/cjs/icons/investor_medium.js.map +1 -0
  248. package/cjs/icons/layout_grid.d.ts +3 -0
  249. package/cjs/icons/layout_grid.js +11 -0
  250. package/cjs/icons/layout_grid.js.map +1 -0
  251. package/cjs/icons/layout_grid_medium.d.ts +3 -0
  252. package/cjs/icons/layout_grid_medium.js +11 -0
  253. package/cjs/icons/layout_grid_medium.js.map +1 -0
  254. package/cjs/icons/show_pin.d.ts +3 -0
  255. package/cjs/icons/show_pin.js +11 -0
  256. package/cjs/icons/show_pin.js.map +1 -0
  257. package/cjs/icons/show_pin_medium.d.ts +3 -0
  258. package/cjs/icons/show_pin_medium.js +11 -0
  259. package/cjs/icons/show_pin_medium.js.map +1 -0
  260. package/cjs/icons/table.d.ts +3 -0
  261. package/cjs/icons/table.js +11 -0
  262. package/cjs/icons/table.js.map +1 -0
  263. package/cjs/icons/table_medium.d.ts +3 -0
  264. package/cjs/icons/table_medium.js +11 -0
  265. package/cjs/icons/table_medium.js.map +1 -0
  266. package/cjs/shared/Eufemia.d.ts +1 -1
  267. package/cjs/shared/Eufemia.js +2 -2
  268. package/cjs/shared/Eufemia.js.map +1 -1
  269. package/cjs/style/core/reset.scss +3 -9
  270. package/cjs/style/core/scopes.scss +1 -1
  271. package/cjs/style/dnb-ui-basis.css +4 -8
  272. package/cjs/style/dnb-ui-basis.min.css +1 -1
  273. package/cjs/style/dnb-ui-body.css +4 -8
  274. package/cjs/style/dnb-ui-body.min.css +1 -1
  275. package/cjs/style/dnb-ui-components.css +8 -4
  276. package/cjs/style/dnb-ui-components.min.css +2 -2
  277. package/cjs/style/dnb-ui-core.css +4 -8
  278. package/cjs/style/dnb-ui-core.min.css +1 -1
  279. package/cjs/style/dnb-ui-extensions.css +4 -0
  280. package/cjs/style/dnb-ui-extensions.min.css +1 -1
  281. package/cjs/style/dnb-ui-forms.css +4 -0
  282. package/cjs/style/dnb-ui-forms.min.css +1 -1
  283. package/cjs/style/themes/theme-eiendom/eiendom-theme-components.css +12 -4
  284. package/cjs/style/themes/theme-eiendom/eiendom-theme-components.min.css +2 -2
  285. package/cjs/style/themes/theme-eiendom/eiendom-theme-extensions.css +4 -0
  286. package/cjs/style/themes/theme-eiendom/eiendom-theme-extensions.min.css +1 -1
  287. package/cjs/style/themes/theme-eiendom/eiendom-theme-forms.css +4 -0
  288. package/cjs/style/themes/theme-eiendom/eiendom-theme-forms.min.css +1 -1
  289. package/cjs/style/themes/theme-sbanken/sbanken-theme-components.css +12 -4
  290. package/cjs/style/themes/theme-sbanken/sbanken-theme-components.min.css +2 -2
  291. package/cjs/style/themes/theme-sbanken/sbanken-theme-extensions.css +4 -0
  292. package/cjs/style/themes/theme-sbanken/sbanken-theme-extensions.min.css +1 -1
  293. package/cjs/style/themes/theme-sbanken/sbanken-theme-forms.css +4 -0
  294. package/cjs/style/themes/theme-sbanken/sbanken-theme-forms.min.css +1 -1
  295. package/cjs/style/themes/theme-ui/ui-theme-components.css +12 -4
  296. package/cjs/style/themes/theme-ui/ui-theme-components.min.css +2 -2
  297. package/cjs/style/themes/theme-ui/ui-theme-extensions.css +4 -0
  298. package/cjs/style/themes/theme-ui/ui-theme-extensions.min.css +1 -1
  299. package/cjs/style/themes/theme-ui/ui-theme-forms.css +4 -0
  300. package/cjs/style/themes/theme-ui/ui-theme-forms.min.css +1 -1
  301. package/components/button/style/themes/dnb-button-theme-ui.scss +1 -1
  302. package/components/date-picker/DatePickerCalc.js +1 -1
  303. package/components/date-picker/DatePickerCalc.js.map +1 -1
  304. package/components/drawer/style/dnb-drawer.css +4 -4
  305. package/components/drawer/style/dnb-drawer.min.css +1 -1
  306. package/components/drawer/style/dnb-drawer.scss +4 -4
  307. package/components/dropdown/Dropdown.d.ts +1 -1
  308. package/components/form-status/FormStatus.js +3 -2
  309. package/components/form-status/FormStatus.js.map +1 -1
  310. package/components/heading/HeadingCounter.js +4 -4
  311. package/components/heading/HeadingCounter.js.map +1 -1
  312. package/components/input/Input.js +1 -1
  313. package/components/input/Input.js.map +1 -1
  314. package/components/radio/Radio.d.ts +1 -1
  315. package/components/radio/RadioGroup.d.ts +1 -1
  316. package/components/section/Section.d.ts +1 -1
  317. package/components/section/Section.js.map +1 -1
  318. package/components/section/SectionDocs.js +1 -1
  319. package/components/section/SectionDocs.js.map +1 -1
  320. package/components/textarea/Textarea.js +8 -1
  321. package/components/textarea/Textarea.js.map +1 -1
  322. package/elements/lists/style/lists-mixins.scss +1 -1
  323. package/es/components/button/style/themes/dnb-button-theme-ui.scss +1 -1
  324. package/es/components/date-picker/DatePickerCalc.js +1 -1
  325. package/es/components/date-picker/DatePickerCalc.js.map +1 -1
  326. package/es/components/drawer/style/dnb-drawer.css +4 -4
  327. package/es/components/drawer/style/dnb-drawer.min.css +1 -1
  328. package/es/components/drawer/style/dnb-drawer.scss +4 -4
  329. package/es/components/dropdown/Dropdown.d.ts +1 -1
  330. package/es/components/form-status/FormStatus.js +3 -2
  331. package/es/components/form-status/FormStatus.js.map +1 -1
  332. package/es/components/heading/HeadingCounter.js +4 -4
  333. package/es/components/heading/HeadingCounter.js.map +1 -1
  334. package/es/components/input/Input.js +1 -1
  335. package/es/components/input/Input.js.map +1 -1
  336. package/es/components/radio/Radio.d.ts +1 -1
  337. package/es/components/radio/RadioGroup.d.ts +1 -1
  338. package/es/components/section/Section.d.ts +1 -1
  339. package/es/components/section/Section.js.map +1 -1
  340. package/es/components/section/SectionDocs.js +1 -1
  341. package/es/components/section/SectionDocs.js.map +1 -1
  342. package/es/components/textarea/Textarea.js +8 -1
  343. package/es/components/textarea/Textarea.js.map +1 -1
  344. package/es/elements/lists/style/lists-mixins.scss +1 -1
  345. package/es/extensions/forms/Connectors/Bring/index.d.ts +1 -0
  346. package/es/extensions/forms/Connectors/Bring/index.js +1 -0
  347. package/es/extensions/forms/Connectors/Bring/index.js.map +1 -0
  348. package/es/extensions/forms/Connectors/Bring/postalCode.d.ts +25 -0
  349. package/es/extensions/forms/Connectors/Bring/postalCode.js +150 -0
  350. package/es/extensions/forms/Connectors/Bring/postalCode.js.map +1 -0
  351. package/es/extensions/forms/Connectors/createContext.d.ts +58 -0
  352. package/es/extensions/forms/Connectors/createContext.js +116 -0
  353. package/es/extensions/forms/Connectors/createContext.js.map +1 -0
  354. package/es/extensions/forms/Connectors/index.d.ts +2 -0
  355. package/es/extensions/forms/Connectors/index.js +3 -0
  356. package/es/extensions/forms/Connectors/index.js.map +1 -0
  357. package/es/extensions/forms/DataContext/Context.d.ts +4 -1
  358. package/es/extensions/forms/DataContext/Context.js.map +1 -1
  359. package/es/extensions/forms/DataContext/Provider/Provider.js +25 -14
  360. package/es/extensions/forms/DataContext/Provider/Provider.js.map +1 -1
  361. package/es/extensions/forms/Field/Address/Address.d.ts +9 -0
  362. package/es/extensions/forms/Field/Address/Address.js +51 -0
  363. package/es/extensions/forms/Field/Address/Address.js.map +1 -0
  364. package/es/extensions/forms/Field/Address/AddressDocs.d.ts +2 -0
  365. package/es/extensions/forms/Field/Address/AddressDocs.js +8 -0
  366. package/es/extensions/forms/Field/Address/AddressDocs.js.map +1 -0
  367. package/es/extensions/forms/Field/Address/index.d.ts +2 -0
  368. package/es/extensions/forms/Field/Address/index.js +3 -0
  369. package/es/extensions/forms/Field/Address/index.js.map +1 -0
  370. package/es/extensions/forms/Field/Email/EmailDocs.d.ts +2 -0
  371. package/es/extensions/forms/Field/Email/EmailDocs.js +8 -0
  372. package/es/extensions/forms/Field/Email/EmailDocs.js.map +1 -0
  373. package/es/extensions/forms/Field/Expiry/Expiry.js +82 -31
  374. package/es/extensions/forms/Field/Expiry/Expiry.js.map +1 -1
  375. package/es/extensions/forms/Field/Name/Name.js +2 -2
  376. package/es/extensions/forms/Field/Name/Name.js.map +1 -1
  377. package/es/extensions/forms/Field/NationalIdentityNumber/NationalIdentityNumber.d.ts +1 -0
  378. package/es/extensions/forms/Field/NationalIdentityNumber/NationalIdentityNumber.js +9 -0
  379. package/es/extensions/forms/Field/NationalIdentityNumber/NationalIdentityNumber.js.map +1 -1
  380. package/es/extensions/forms/Field/Password/PasswordDocs.d.ts +2 -0
  381. package/es/extensions/forms/Field/Password/PasswordDocs.js +23 -0
  382. package/es/extensions/forms/Field/Password/PasswordDocs.js.map +1 -0
  383. package/es/extensions/forms/Field/PostalCodeAndCity/PostalCodeAndCity.d.ts +10 -0
  384. package/es/extensions/forms/Field/PostalCodeAndCity/PostalCodeAndCity.js +23 -10
  385. package/es/extensions/forms/Field/PostalCodeAndCity/PostalCodeAndCity.js.map +1 -1
  386. package/es/extensions/forms/Field/PostalCodeAndCity/PostalCodeAndCityDocs.js +3 -3
  387. package/es/extensions/forms/Field/PostalCodeAndCity/PostalCodeAndCityDocs.js.map +1 -1
  388. package/es/extensions/forms/Field/Provider/useFieldProvider.d.ts +4 -4
  389. package/es/extensions/forms/Field/index.d.ts +1 -0
  390. package/es/extensions/forms/Field/index.js +1 -0
  391. package/es/extensions/forms/Field/index.js.map +1 -1
  392. package/es/extensions/forms/FieldBlock/FieldBlock.js +0 -1
  393. package/es/extensions/forms/FieldBlock/FieldBlock.js.map +1 -1
  394. package/es/extensions/forms/FieldBlock/style/dnb-field-block.css +4 -0
  395. package/es/extensions/forms/FieldBlock/style/dnb-field-block.min.css +1 -1
  396. package/es/extensions/forms/FieldBlock/style/dnb-field-block.scss +5 -0
  397. package/es/extensions/forms/Iterate/Array/Array.js +7 -2
  398. package/es/extensions/forms/Iterate/Array/Array.js.map +1 -1
  399. package/es/extensions/forms/Iterate/Array/ArrayDocs.js +5 -0
  400. package/es/extensions/forms/Iterate/Array/ArrayDocs.js.map +1 -1
  401. package/es/extensions/forms/Iterate/Array/types.d.ts +1 -0
  402. package/es/extensions/forms/Iterate/Array/types.js.map +1 -1
  403. package/es/extensions/forms/Iterate/PushContainer/PushContainer.d.ts +4 -0
  404. package/es/extensions/forms/Iterate/PushContainer/PushContainer.js +3 -2
  405. package/es/extensions/forms/Iterate/PushContainer/PushContainer.js.map +1 -1
  406. package/es/extensions/forms/Iterate/PushContainer/PushContainerDocs.js +5 -0
  407. package/es/extensions/forms/Iterate/PushContainer/PushContainerDocs.js.map +1 -1
  408. package/es/extensions/forms/Value/Address/Address.d.ts +9 -0
  409. package/es/extensions/forms/Value/Address/Address.js +31 -0
  410. package/es/extensions/forms/Value/Address/Address.js.map +1 -0
  411. package/es/extensions/forms/Value/Address/index.d.ts +2 -0
  412. package/es/extensions/forms/Value/Address/index.js +3 -0
  413. package/es/extensions/forms/Value/Address/index.js.map +1 -0
  414. package/es/extensions/forms/Value/PostalCodeAndCity/PostalCodeAndCityDocs.js +1 -1
  415. package/es/extensions/forms/Value/PostalCodeAndCity/PostalCodeAndCityDocs.js.map +1 -1
  416. package/es/extensions/forms/Value/index.d.ts +1 -0
  417. package/es/extensions/forms/Value/index.js +1 -0
  418. package/es/extensions/forms/Value/index.js.map +1 -1
  419. package/es/extensions/forms/Wizard/Step/Step.js +2 -2
  420. package/es/extensions/forms/Wizard/Step/Step.js.map +1 -1
  421. package/es/extensions/forms/constants/locales/en-GB.d.ts +13 -0
  422. package/es/extensions/forms/constants/locales/en-GB.js +20 -7
  423. package/es/extensions/forms/constants/locales/en-GB.js.map +1 -1
  424. package/es/extensions/forms/constants/locales/en-US.d.ts +13 -0
  425. package/es/extensions/forms/constants/locales/index.d.ts +26 -0
  426. package/es/extensions/forms/constants/locales/nb-NO.d.ts +13 -0
  427. package/es/extensions/forms/constants/locales/nb-NO.js +16 -3
  428. package/es/extensions/forms/constants/locales/nb-NO.js.map +1 -1
  429. package/es/extensions/forms/hooks/DataValueWritePropsDocs.js +3 -3
  430. package/es/extensions/forms/hooks/DataValueWritePropsDocs.js.map +1 -1
  431. package/es/extensions/forms/hooks/useFieldProps.d.ts +8 -4
  432. package/es/extensions/forms/hooks/useFieldProps.js +39 -18
  433. package/es/extensions/forms/hooks/useFieldProps.js.map +1 -1
  434. package/es/extensions/forms/index.d.ts +1 -0
  435. package/es/extensions/forms/index.js +1 -0
  436. package/es/extensions/forms/index.js.map +1 -1
  437. package/es/extensions/forms/style/dnb-forms.css +4 -0
  438. package/es/extensions/forms/style/dnb-forms.min.css +1 -1
  439. package/es/extensions/forms/types.d.ts +34 -10
  440. package/es/extensions/forms/types.js.map +1 -1
  441. package/es/extensions/forms/utils/json-pointer/json-pointer.js +1 -1
  442. package/es/extensions/forms/utils/json-pointer/json-pointer.js.map +1 -1
  443. package/es/icons/calendar_add.d.ts +3 -0
  444. package/es/icons/calendar_add.js +3 -0
  445. package/es/icons/calendar_add.js.map +1 -0
  446. package/es/icons/calendar_add_medium.d.ts +3 -0
  447. package/es/icons/calendar_add_medium.js +3 -0
  448. package/es/icons/calendar_add_medium.js.map +1 -0
  449. package/es/icons/digitpass_private_corporate.d.ts +3 -0
  450. package/es/icons/digitpass_private_corporate.js +3 -0
  451. package/es/icons/digitpass_private_corporate.js.map +1 -0
  452. package/es/icons/digitpass_private_corporate_medium.d.ts +3 -0
  453. package/es/icons/digitpass_private_corporate_medium.js +3 -0
  454. package/es/icons/digitpass_private_corporate_medium.js.map +1 -0
  455. package/es/icons/dnb/calendar_add.d.ts +3 -0
  456. package/es/icons/dnb/calendar_add.js +23 -0
  457. package/es/icons/dnb/calendar_add.js.map +1 -0
  458. package/es/icons/dnb/calendar_add_medium.d.ts +3 -0
  459. package/es/icons/dnb/calendar_add_medium.js +17 -0
  460. package/es/icons/dnb/calendar_add_medium.js.map +1 -0
  461. package/es/icons/dnb/cog_medium.js +1 -1
  462. package/es/icons/dnb/cog_medium.js.map +1 -1
  463. package/es/icons/dnb/digipass_corporate.js +3 -3
  464. package/es/icons/dnb/digipass_corporate.js.map +1 -1
  465. package/es/icons/dnb/digipass_corporate_medium.js +3 -3
  466. package/es/icons/dnb/digipass_corporate_medium.js.map +1 -1
  467. package/es/icons/dnb/digipass_private.js +3 -3
  468. package/es/icons/dnb/digipass_private.js.map +1 -1
  469. package/es/icons/dnb/digipass_private_medium.js +3 -3
  470. package/es/icons/dnb/digipass_private_medium.js.map +1 -1
  471. package/es/icons/dnb/digitpass_private_corporate.d.ts +3 -0
  472. package/es/icons/dnb/digitpass_private_corporate.js +17 -0
  473. package/es/icons/dnb/digitpass_private_corporate.js.map +1 -0
  474. package/es/icons/dnb/digitpass_private_corporate_medium.d.ts +3 -0
  475. package/es/icons/dnb/digitpass_private_corporate_medium.js +17 -0
  476. package/es/icons/dnb/digitpass_private_corporate_medium.js.map +1 -0
  477. package/es/icons/dnb/goal.d.ts +3 -0
  478. package/es/icons/dnb/goal.js +18 -0
  479. package/es/icons/dnb/goal.js.map +1 -0
  480. package/es/icons/dnb/goal_medium.d.ts +3 -0
  481. package/es/icons/dnb/goal_medium.js +18 -0
  482. package/es/icons/dnb/goal_medium.js.map +1 -0
  483. package/es/icons/dnb/icons-meta.json +132 -4
  484. package/es/icons/dnb/icons-svg.lock +1278 -1096
  485. package/es/icons/dnb/index.d.ts +15 -1
  486. package/es/icons/dnb/index.js +15 -1
  487. package/es/icons/dnb/index.js.map +1 -1
  488. package/es/icons/dnb/information.js +1 -1
  489. package/es/icons/dnb/information.js.map +1 -1
  490. package/es/icons/dnb/investor.d.ts +3 -0
  491. package/es/icons/dnb/investor.js +25 -0
  492. package/es/icons/dnb/investor.js.map +1 -0
  493. package/es/icons/dnb/investor_medium.d.ts +3 -0
  494. package/es/icons/dnb/investor_medium.js +25 -0
  495. package/es/icons/dnb/investor_medium.js.map +1 -0
  496. package/es/icons/dnb/layout_grid.d.ts +3 -0
  497. package/es/icons/dnb/layout_grid.js +26 -0
  498. package/es/icons/dnb/layout_grid.js.map +1 -0
  499. package/es/icons/dnb/layout_grid_medium.d.ts +3 -0
  500. package/es/icons/dnb/layout_grid_medium.js +26 -0
  501. package/es/icons/dnb/layout_grid_medium.js.map +1 -0
  502. package/es/icons/dnb/question.js +1 -1
  503. package/es/icons/dnb/question.js.map +1 -1
  504. package/es/icons/dnb/question_circled.js +1 -1
  505. package/es/icons/dnb/question_circled.js.map +1 -1
  506. package/es/icons/dnb/question_medium.js +1 -1
  507. package/es/icons/dnb/question_medium.js.map +1 -1
  508. package/es/icons/dnb/return_1_medium.js +1 -1
  509. package/es/icons/dnb/return_1_medium.js.map +1 -1
  510. package/es/icons/dnb/secondary_icons.d.ts +8 -1
  511. package/es/icons/dnb/secondary_icons.js +8 -1
  512. package/es/icons/dnb/secondary_icons.js.map +1 -1
  513. package/es/icons/dnb/secondary_icons_medium.d.ts +8 -1
  514. package/es/icons/dnb/secondary_icons_medium.js +8 -1
  515. package/es/icons/dnb/secondary_icons_medium.js.map +1 -1
  516. package/es/icons/dnb/show_pin.d.ts +3 -0
  517. package/es/icons/dnb/show_pin.js +15 -0
  518. package/es/icons/dnb/show_pin.js.map +1 -0
  519. package/es/icons/dnb/show_pin_medium.d.ts +3 -0
  520. package/es/icons/dnb/show_pin_medium.js +15 -0
  521. package/es/icons/dnb/show_pin_medium.js.map +1 -0
  522. package/es/icons/dnb/table.d.ts +3 -0
  523. package/es/icons/dnb/table.js +25 -0
  524. package/es/icons/dnb/table.js.map +1 -0
  525. package/es/icons/dnb/table_medium.d.ts +3 -0
  526. package/es/icons/dnb/table_medium.js +18 -0
  527. package/es/icons/dnb/table_medium.js.map +1 -0
  528. package/es/icons/goal.d.ts +3 -0
  529. package/es/icons/goal.js +3 -0
  530. package/es/icons/goal.js.map +1 -0
  531. package/es/icons/goal_medium.d.ts +3 -0
  532. package/es/icons/goal_medium.js +3 -0
  533. package/es/icons/goal_medium.js.map +1 -0
  534. package/es/icons/index.d.ts +15 -1
  535. package/es/icons/index.js +15 -1
  536. package/es/icons/index.js.map +1 -1
  537. package/es/icons/investor.d.ts +3 -0
  538. package/es/icons/investor.js +3 -0
  539. package/es/icons/investor.js.map +1 -0
  540. package/es/icons/investor_medium.d.ts +3 -0
  541. package/es/icons/investor_medium.js +3 -0
  542. package/es/icons/investor_medium.js.map +1 -0
  543. package/es/icons/layout_grid.d.ts +3 -0
  544. package/es/icons/layout_grid.js +3 -0
  545. package/es/icons/layout_grid.js.map +1 -0
  546. package/es/icons/layout_grid_medium.d.ts +3 -0
  547. package/es/icons/layout_grid_medium.js +3 -0
  548. package/es/icons/layout_grid_medium.js.map +1 -0
  549. package/es/icons/show_pin.d.ts +3 -0
  550. package/es/icons/show_pin.js +3 -0
  551. package/es/icons/show_pin.js.map +1 -0
  552. package/es/icons/show_pin_medium.d.ts +3 -0
  553. package/es/icons/show_pin_medium.js +3 -0
  554. package/es/icons/show_pin_medium.js.map +1 -0
  555. package/es/icons/table.d.ts +3 -0
  556. package/es/icons/table.js +3 -0
  557. package/es/icons/table.js.map +1 -0
  558. package/es/icons/table_medium.d.ts +3 -0
  559. package/es/icons/table_medium.js +3 -0
  560. package/es/icons/table_medium.js.map +1 -0
  561. package/es/shared/Eufemia.d.ts +1 -1
  562. package/es/shared/Eufemia.js +2 -2
  563. package/es/shared/Eufemia.js.map +1 -1
  564. package/es/style/core/reset.scss +3 -9
  565. package/es/style/core/scopes.scss +1 -1
  566. package/es/style/dnb-ui-basis.css +4 -8
  567. package/es/style/dnb-ui-basis.min.css +1 -1
  568. package/es/style/dnb-ui-body.css +4 -8
  569. package/es/style/dnb-ui-body.min.css +1 -1
  570. package/es/style/dnb-ui-components.css +8 -4
  571. package/es/style/dnb-ui-components.min.css +2 -2
  572. package/es/style/dnb-ui-core.css +4 -8
  573. package/es/style/dnb-ui-core.min.css +1 -1
  574. package/es/style/dnb-ui-extensions.css +4 -0
  575. package/es/style/dnb-ui-extensions.min.css +1 -1
  576. package/es/style/dnb-ui-forms.css +4 -0
  577. package/es/style/dnb-ui-forms.min.css +1 -1
  578. package/es/style/themes/theme-eiendom/eiendom-theme-components.css +12 -4
  579. package/es/style/themes/theme-eiendom/eiendom-theme-components.min.css +2 -2
  580. package/es/style/themes/theme-eiendom/eiendom-theme-extensions.css +4 -0
  581. package/es/style/themes/theme-eiendom/eiendom-theme-extensions.min.css +1 -1
  582. package/es/style/themes/theme-eiendom/eiendom-theme-forms.css +4 -0
  583. package/es/style/themes/theme-eiendom/eiendom-theme-forms.min.css +1 -1
  584. package/es/style/themes/theme-sbanken/sbanken-theme-components.css +12 -4
  585. package/es/style/themes/theme-sbanken/sbanken-theme-components.min.css +2 -2
  586. package/es/style/themes/theme-sbanken/sbanken-theme-extensions.css +4 -0
  587. package/es/style/themes/theme-sbanken/sbanken-theme-extensions.min.css +1 -1
  588. package/es/style/themes/theme-sbanken/sbanken-theme-forms.css +4 -0
  589. package/es/style/themes/theme-sbanken/sbanken-theme-forms.min.css +1 -1
  590. package/es/style/themes/theme-ui/ui-theme-components.css +12 -4
  591. package/es/style/themes/theme-ui/ui-theme-components.min.css +2 -2
  592. package/es/style/themes/theme-ui/ui-theme-extensions.css +4 -0
  593. package/es/style/themes/theme-ui/ui-theme-extensions.min.css +1 -1
  594. package/es/style/themes/theme-ui/ui-theme-forms.css +4 -0
  595. package/es/style/themes/theme-ui/ui-theme-forms.min.css +1 -1
  596. package/esm/dnb-ui-basis.min.mjs +1 -1
  597. package/esm/dnb-ui-components.min.mjs +1 -1
  598. package/esm/dnb-ui-elements.min.mjs +1 -1
  599. package/esm/dnb-ui-extensions.min.mjs +3 -3
  600. package/esm/dnb-ui-icons.min.mjs +1 -1
  601. package/esm/dnb-ui-lib.min.mjs +1 -1
  602. package/extensions/forms/Connectors/Bring/index.d.ts +1 -0
  603. package/extensions/forms/Connectors/Bring/index.js +3 -0
  604. package/extensions/forms/Connectors/Bring/index.js.map +1 -0
  605. package/extensions/forms/Connectors/Bring/postalCode.d.ts +25 -0
  606. package/extensions/forms/Connectors/Bring/postalCode.js +151 -0
  607. package/extensions/forms/Connectors/Bring/postalCode.js.map +1 -0
  608. package/extensions/forms/Connectors/createContext.d.ts +58 -0
  609. package/extensions/forms/Connectors/createContext.js +119 -0
  610. package/extensions/forms/Connectors/createContext.js.map +1 -0
  611. package/extensions/forms/Connectors/index.d.ts +2 -0
  612. package/extensions/forms/Connectors/index.js +4 -0
  613. package/extensions/forms/Connectors/index.js.map +1 -0
  614. package/extensions/forms/DataContext/Context.d.ts +4 -1
  615. package/extensions/forms/DataContext/Context.js.map +1 -1
  616. package/extensions/forms/DataContext/Provider/Provider.js +30 -16
  617. package/extensions/forms/DataContext/Provider/Provider.js.map +1 -1
  618. package/extensions/forms/Field/Address/Address.d.ts +9 -0
  619. package/extensions/forms/Field/Address/Address.js +51 -0
  620. package/extensions/forms/Field/Address/Address.js.map +1 -0
  621. package/extensions/forms/Field/Address/AddressDocs.d.ts +2 -0
  622. package/extensions/forms/Field/Address/AddressDocs.js +8 -0
  623. package/extensions/forms/Field/Address/AddressDocs.js.map +1 -0
  624. package/extensions/forms/Field/Address/index.d.ts +2 -0
  625. package/extensions/forms/Field/Address/index.js +3 -0
  626. package/extensions/forms/Field/Address/index.js.map +1 -0
  627. package/extensions/forms/Field/Email/EmailDocs.d.ts +2 -0
  628. package/extensions/forms/Field/Email/EmailDocs.js +8 -0
  629. package/extensions/forms/Field/Email/EmailDocs.js.map +1 -0
  630. package/extensions/forms/Field/Expiry/Expiry.js +82 -31
  631. package/extensions/forms/Field/Expiry/Expiry.js.map +1 -1
  632. package/extensions/forms/Field/Name/Name.js +2 -2
  633. package/extensions/forms/Field/Name/Name.js.map +1 -1
  634. package/extensions/forms/Field/NationalIdentityNumber/NationalIdentityNumber.d.ts +1 -0
  635. package/extensions/forms/Field/NationalIdentityNumber/NationalIdentityNumber.js +9 -0
  636. package/extensions/forms/Field/NationalIdentityNumber/NationalIdentityNumber.js.map +1 -1
  637. package/extensions/forms/Field/Password/PasswordDocs.d.ts +2 -0
  638. package/extensions/forms/Field/Password/PasswordDocs.js +23 -0
  639. package/extensions/forms/Field/Password/PasswordDocs.js.map +1 -0
  640. package/extensions/forms/Field/PostalCodeAndCity/PostalCodeAndCity.d.ts +10 -0
  641. package/extensions/forms/Field/PostalCodeAndCity/PostalCodeAndCity.js +23 -10
  642. package/extensions/forms/Field/PostalCodeAndCity/PostalCodeAndCity.js.map +1 -1
  643. package/extensions/forms/Field/PostalCodeAndCity/PostalCodeAndCityDocs.js +3 -3
  644. package/extensions/forms/Field/PostalCodeAndCity/PostalCodeAndCityDocs.js.map +1 -1
  645. package/extensions/forms/Field/Provider/useFieldProvider.d.ts +4 -4
  646. package/extensions/forms/Field/index.d.ts +1 -0
  647. package/extensions/forms/Field/index.js +1 -0
  648. package/extensions/forms/Field/index.js.map +1 -1
  649. package/extensions/forms/FieldBlock/FieldBlock.js +0 -1
  650. package/extensions/forms/FieldBlock/FieldBlock.js.map +1 -1
  651. package/extensions/forms/FieldBlock/style/dnb-field-block.css +4 -0
  652. package/extensions/forms/FieldBlock/style/dnb-field-block.min.css +1 -1
  653. package/extensions/forms/FieldBlock/style/dnb-field-block.scss +5 -0
  654. package/extensions/forms/Iterate/Array/Array.js +7 -2
  655. package/extensions/forms/Iterate/Array/Array.js.map +1 -1
  656. package/extensions/forms/Iterate/Array/ArrayDocs.js +5 -0
  657. package/extensions/forms/Iterate/Array/ArrayDocs.js.map +1 -1
  658. package/extensions/forms/Iterate/Array/types.d.ts +1 -0
  659. package/extensions/forms/Iterate/Array/types.js.map +1 -1
  660. package/extensions/forms/Iterate/PushContainer/PushContainer.d.ts +4 -0
  661. package/extensions/forms/Iterate/PushContainer/PushContainer.js +3 -2
  662. package/extensions/forms/Iterate/PushContainer/PushContainer.js.map +1 -1
  663. package/extensions/forms/Iterate/PushContainer/PushContainerDocs.js +5 -0
  664. package/extensions/forms/Iterate/PushContainer/PushContainerDocs.js.map +1 -1
  665. package/extensions/forms/Value/Address/Address.d.ts +9 -0
  666. package/extensions/forms/Value/Address/Address.js +31 -0
  667. package/extensions/forms/Value/Address/Address.js.map +1 -0
  668. package/extensions/forms/Value/Address/index.d.ts +2 -0
  669. package/extensions/forms/Value/Address/index.js +3 -0
  670. package/extensions/forms/Value/Address/index.js.map +1 -0
  671. package/extensions/forms/Value/PostalCodeAndCity/PostalCodeAndCityDocs.js +1 -1
  672. package/extensions/forms/Value/PostalCodeAndCity/PostalCodeAndCityDocs.js.map +1 -1
  673. package/extensions/forms/Value/index.d.ts +1 -0
  674. package/extensions/forms/Value/index.js +1 -0
  675. package/extensions/forms/Value/index.js.map +1 -1
  676. package/extensions/forms/Wizard/Step/Step.js +2 -2
  677. package/extensions/forms/Wizard/Step/Step.js.map +1 -1
  678. package/extensions/forms/constants/locales/en-GB.d.ts +13 -0
  679. package/extensions/forms/constants/locales/en-GB.js +20 -7
  680. package/extensions/forms/constants/locales/en-GB.js.map +1 -1
  681. package/extensions/forms/constants/locales/en-US.d.ts +13 -0
  682. package/extensions/forms/constants/locales/index.d.ts +26 -0
  683. package/extensions/forms/constants/locales/nb-NO.d.ts +13 -0
  684. package/extensions/forms/constants/locales/nb-NO.js +16 -3
  685. package/extensions/forms/constants/locales/nb-NO.js.map +1 -1
  686. package/extensions/forms/hooks/DataValueWritePropsDocs.js +3 -3
  687. package/extensions/forms/hooks/DataValueWritePropsDocs.js.map +1 -1
  688. package/extensions/forms/hooks/useFieldProps.d.ts +8 -4
  689. package/extensions/forms/hooks/useFieldProps.js +39 -19
  690. package/extensions/forms/hooks/useFieldProps.js.map +1 -1
  691. package/extensions/forms/index.d.ts +1 -0
  692. package/extensions/forms/index.js +2 -0
  693. package/extensions/forms/index.js.map +1 -1
  694. package/extensions/forms/style/dnb-forms.css +4 -0
  695. package/extensions/forms/style/dnb-forms.min.css +1 -1
  696. package/extensions/forms/types.d.ts +34 -10
  697. package/extensions/forms/types.js.map +1 -1
  698. package/extensions/forms/utils/json-pointer/json-pointer.js +1 -1
  699. package/extensions/forms/utils/json-pointer/json-pointer.js.map +1 -1
  700. package/icons/calendar_add.d.ts +3 -0
  701. package/icons/calendar_add.js +3 -0
  702. package/icons/calendar_add.js.map +1 -0
  703. package/icons/calendar_add_medium.d.ts +3 -0
  704. package/icons/calendar_add_medium.js +3 -0
  705. package/icons/calendar_add_medium.js.map +1 -0
  706. package/icons/digitpass_private_corporate.d.ts +3 -0
  707. package/icons/digitpass_private_corporate.js +3 -0
  708. package/icons/digitpass_private_corporate.js.map +1 -0
  709. package/icons/digitpass_private_corporate_medium.d.ts +3 -0
  710. package/icons/digitpass_private_corporate_medium.js +3 -0
  711. package/icons/digitpass_private_corporate_medium.js.map +1 -0
  712. package/icons/dnb/calendar_add.d.ts +3 -0
  713. package/icons/dnb/calendar_add.js +23 -0
  714. package/icons/dnb/calendar_add.js.map +1 -0
  715. package/icons/dnb/calendar_add_medium.d.ts +3 -0
  716. package/icons/dnb/calendar_add_medium.js +17 -0
  717. package/icons/dnb/calendar_add_medium.js.map +1 -0
  718. package/icons/dnb/cog_medium.js +1 -1
  719. package/icons/dnb/cog_medium.js.map +1 -1
  720. package/icons/dnb/digipass_corporate.js +3 -3
  721. package/icons/dnb/digipass_corporate.js.map +1 -1
  722. package/icons/dnb/digipass_corporate_medium.js +3 -3
  723. package/icons/dnb/digipass_corporate_medium.js.map +1 -1
  724. package/icons/dnb/digipass_private.js +3 -3
  725. package/icons/dnb/digipass_private.js.map +1 -1
  726. package/icons/dnb/digipass_private_medium.js +3 -3
  727. package/icons/dnb/digipass_private_medium.js.map +1 -1
  728. package/icons/dnb/digitpass_private_corporate.d.ts +3 -0
  729. package/icons/dnb/digitpass_private_corporate.js +17 -0
  730. package/icons/dnb/digitpass_private_corporate.js.map +1 -0
  731. package/icons/dnb/digitpass_private_corporate_medium.d.ts +3 -0
  732. package/icons/dnb/digitpass_private_corporate_medium.js +17 -0
  733. package/icons/dnb/digitpass_private_corporate_medium.js.map +1 -0
  734. package/icons/dnb/goal.d.ts +3 -0
  735. package/icons/dnb/goal.js +18 -0
  736. package/icons/dnb/goal.js.map +1 -0
  737. package/icons/dnb/goal_medium.d.ts +3 -0
  738. package/icons/dnb/goal_medium.js +18 -0
  739. package/icons/dnb/goal_medium.js.map +1 -0
  740. package/icons/dnb/icons-meta.json +132 -4
  741. package/icons/dnb/icons-svg.lock +1278 -1096
  742. package/icons/dnb/index.d.ts +15 -1
  743. package/icons/dnb/index.js +15 -1
  744. package/icons/dnb/index.js.map +1 -1
  745. package/icons/dnb/information.js +1 -1
  746. package/icons/dnb/information.js.map +1 -1
  747. package/icons/dnb/investor.d.ts +3 -0
  748. package/icons/dnb/investor.js +25 -0
  749. package/icons/dnb/investor.js.map +1 -0
  750. package/icons/dnb/investor_medium.d.ts +3 -0
  751. package/icons/dnb/investor_medium.js +25 -0
  752. package/icons/dnb/investor_medium.js.map +1 -0
  753. package/icons/dnb/layout_grid.d.ts +3 -0
  754. package/icons/dnb/layout_grid.js +26 -0
  755. package/icons/dnb/layout_grid.js.map +1 -0
  756. package/icons/dnb/layout_grid_medium.d.ts +3 -0
  757. package/icons/dnb/layout_grid_medium.js +26 -0
  758. package/icons/dnb/layout_grid_medium.js.map +1 -0
  759. package/icons/dnb/question.js +1 -1
  760. package/icons/dnb/question.js.map +1 -1
  761. package/icons/dnb/question_circled.js +1 -1
  762. package/icons/dnb/question_circled.js.map +1 -1
  763. package/icons/dnb/question_medium.js +1 -1
  764. package/icons/dnb/question_medium.js.map +1 -1
  765. package/icons/dnb/return_1_medium.js +1 -1
  766. package/icons/dnb/return_1_medium.js.map +1 -1
  767. package/icons/dnb/secondary_icons.d.ts +8 -1
  768. package/icons/dnb/secondary_icons.js +8 -1
  769. package/icons/dnb/secondary_icons.js.map +1 -1
  770. package/icons/dnb/secondary_icons_medium.d.ts +8 -1
  771. package/icons/dnb/secondary_icons_medium.js +8 -1
  772. package/icons/dnb/secondary_icons_medium.js.map +1 -1
  773. package/icons/dnb/show_pin.d.ts +3 -0
  774. package/icons/dnb/show_pin.js +15 -0
  775. package/icons/dnb/show_pin.js.map +1 -0
  776. package/icons/dnb/show_pin_medium.d.ts +3 -0
  777. package/icons/dnb/show_pin_medium.js +15 -0
  778. package/icons/dnb/show_pin_medium.js.map +1 -0
  779. package/icons/dnb/table.d.ts +3 -0
  780. package/icons/dnb/table.js +25 -0
  781. package/icons/dnb/table.js.map +1 -0
  782. package/icons/dnb/table_medium.d.ts +3 -0
  783. package/icons/dnb/table_medium.js +18 -0
  784. package/icons/dnb/table_medium.js.map +1 -0
  785. package/icons/goal.d.ts +3 -0
  786. package/icons/goal.js +3 -0
  787. package/icons/goal.js.map +1 -0
  788. package/icons/goal_medium.d.ts +3 -0
  789. package/icons/goal_medium.js +3 -0
  790. package/icons/goal_medium.js.map +1 -0
  791. package/icons/index.d.ts +15 -1
  792. package/icons/index.js +15 -1
  793. package/icons/index.js.map +1 -1
  794. package/icons/investor.d.ts +3 -0
  795. package/icons/investor.js +3 -0
  796. package/icons/investor.js.map +1 -0
  797. package/icons/investor_medium.d.ts +3 -0
  798. package/icons/investor_medium.js +3 -0
  799. package/icons/investor_medium.js.map +1 -0
  800. package/icons/layout_grid.d.ts +3 -0
  801. package/icons/layout_grid.js +3 -0
  802. package/icons/layout_grid.js.map +1 -0
  803. package/icons/layout_grid_medium.d.ts +3 -0
  804. package/icons/layout_grid_medium.js +3 -0
  805. package/icons/layout_grid_medium.js.map +1 -0
  806. package/icons/show_pin.d.ts +3 -0
  807. package/icons/show_pin.js +3 -0
  808. package/icons/show_pin.js.map +1 -0
  809. package/icons/show_pin_medium.d.ts +3 -0
  810. package/icons/show_pin_medium.js +3 -0
  811. package/icons/show_pin_medium.js.map +1 -0
  812. package/icons/table.d.ts +3 -0
  813. package/icons/table.js +3 -0
  814. package/icons/table.js.map +1 -0
  815. package/icons/table_medium.d.ts +3 -0
  816. package/icons/table_medium.js +3 -0
  817. package/icons/table_medium.js.map +1 -0
  818. package/package.json +1 -1
  819. package/shared/Eufemia.d.ts +1 -1
  820. package/shared/Eufemia.js +2 -2
  821. package/shared/Eufemia.js.map +1 -1
  822. package/style/core/reset.scss +3 -9
  823. package/style/core/scopes.scss +1 -1
  824. package/style/dnb-ui-basis.css +4 -8
  825. package/style/dnb-ui-basis.min.css +1 -1
  826. package/style/dnb-ui-body.css +4 -8
  827. package/style/dnb-ui-body.min.css +1 -1
  828. package/style/dnb-ui-components.css +8 -4
  829. package/style/dnb-ui-components.min.css +2 -2
  830. package/style/dnb-ui-core.css +4 -8
  831. package/style/dnb-ui-core.min.css +1 -1
  832. package/style/dnb-ui-extensions.css +4 -0
  833. package/style/dnb-ui-extensions.min.css +1 -1
  834. package/style/dnb-ui-forms.css +4 -0
  835. package/style/dnb-ui-forms.min.css +1 -1
  836. package/style/themes/theme-eiendom/eiendom-theme-components.css +12 -4
  837. package/style/themes/theme-eiendom/eiendom-theme-components.min.css +2 -2
  838. package/style/themes/theme-eiendom/eiendom-theme-extensions.css +4 -0
  839. package/style/themes/theme-eiendom/eiendom-theme-extensions.min.css +1 -1
  840. package/style/themes/theme-eiendom/eiendom-theme-forms.css +4 -0
  841. package/style/themes/theme-eiendom/eiendom-theme-forms.min.css +1 -1
  842. package/style/themes/theme-sbanken/sbanken-theme-components.css +12 -4
  843. package/style/themes/theme-sbanken/sbanken-theme-components.min.css +2 -2
  844. package/style/themes/theme-sbanken/sbanken-theme-extensions.css +4 -0
  845. package/style/themes/theme-sbanken/sbanken-theme-extensions.min.css +1 -1
  846. package/style/themes/theme-sbanken/sbanken-theme-forms.css +4 -0
  847. package/style/themes/theme-sbanken/sbanken-theme-forms.min.css +1 -1
  848. package/style/themes/theme-ui/ui-theme-components.css +12 -4
  849. package/style/themes/theme-ui/ui-theme-components.min.css +2 -2
  850. package/style/themes/theme-ui/ui-theme-extensions.css +4 -0
  851. package/style/themes/theme-ui/ui-theme-extensions.min.css +1 -1
  852. package/style/themes/theme-ui/ui-theme-forms.css +4 -0
  853. package/style/themes/theme-ui/ui-theme-forms.min.css +1 -1
  854. package/umd/dnb-ui-basis.min.js +1 -1
  855. package/umd/dnb-ui-components.min.js +1 -1
  856. package/umd/dnb-ui-elements.min.js +1 -1
  857. package/umd/dnb-ui-extensions.min.js +1 -1
  858. package/umd/dnb-ui-icons.min.js +1 -1
  859. package/umd/dnb-ui-lib.min.js +1 -1
@@ -1 +1 @@
1
- {"version":3,"file":"Section.js","names":["React","classnames","Context","isTrue","extendPropsWithContext","Space","defaultProps","element","Section","localProps","createElement","SectionParams","context","useContext","props","variant","breakout","outset","roundedCorner","textColor","backgroundColor","dropShadow","outline","innerRef","className","children","spacing","style_type","inner_ref","attributes","_objectWithoutProperties","_excluded","internalRef","useRef","elementRef","Object","freeze","_objectSpread","style","computeStyle","value","getColor","String","includes","test","undefined","property","name","valueCallback","media","small","medium","large","result","size","_media","_media2","_name","_supportsSpacingProps"],"sources":["../../../../src/components/section/Section.tsx"],"sourcesContent":["/**\n * Web Section Component\n *\n */\n\nimport React from 'react'\nimport classnames from 'classnames'\nimport Context from '../../shared/Context'\nimport {\n isTrue,\n extendPropsWithContext,\n} from '../../shared/component-helper'\nimport type {\n DynamicElement,\n ResponsiveProp,\n SpacingProps,\n} from '../../shared/types'\nimport Space from '../space/Space'\n\nexport type SectionVariants = 'error' | 'info' | 'warning' | 'success'\n\nexport type SectionStyleTypes =\n | 'divider'\n | 'white'\n | 'transparent'\n\n /** @deprecated in v11 use \"variant\" or \"backgroundColor\" prop instead */\n | 'lavender'\n /** @deprecated in v11 use \"variant\" or \"backgroundColor\" prop instead */\n | 'pistachio'\n /** @deprecated in v11 use \"variant\" or \"backgroundColor\" prop instead */\n | 'emerald-green'\n /** @deprecated in v11 use \"variant\" or \"backgroundColor\" prop instead */\n | 'sea-green'\n /** @deprecated in v11 use \"variant\" or \"backgroundColor\" prop instead */\n | 'fire-red'\n /** @deprecated in v11 use \"variant\" or \"backgroundColor\" prop instead */\n | 'fire-red-8'\n /** @deprecated in v11 use \"variant\" or \"backgroundColor\" prop instead */\n | 'sand-yellow'\n /** @deprecated in v11 use \"variant\" or \"backgroundColor\" prop instead */\n | 'black-3'\n /** @deprecated in v11 use \"variant\" or \"backgroundColor\" prop instead */\n | 'mint-green'\n /** @deprecated in v11 use \"variant\" or \"backgroundColor\" prop instead */\n | 'mint-green-12'\n\nexport type SectionSpacing =\n | boolean\n | 'x-small'\n | 'small'\n | 'medium'\n | 'large'\n | 'x-large'\n | 'xx-large'\n\nexport type TextColor = string\nexport type OutlineColor = string | boolean\nexport type BackgroundColor = string\nexport type DropShadow = boolean\n\nexport type SectionProps = {\n /**\n * Defines the semantic purpose and subsequently the style of the visual helper. Will take precedence over the style_type prop\n */\n variant?: SectionVariants | string\n\n /**\n * Define if the background color should break-out to a fullscreen view. Defaults to `true`.\n */\n breakout?: boolean | ResponsiveProp<boolean>\n\n /**\n * Define if the Card should break out negatively on larger screens. You can not use `breakout` and `outset` together.\n * Defaults to `false`\n */\n outset?: boolean | ResponsiveProp<boolean>\n\n /**\n * Define if the section should have rounded corners. Defaults to `false`.\n */\n roundedCorner?: boolean | ResponsiveProp<boolean>\n\n /**\n * Define a custom border color. Use a Eufemia color.\n */\n outline?: OutlineColor | ResponsiveProp<OutlineColor>\n\n /**\n * Define a custom text color to compliment the backgroundColor. Use a Eufemia color.\n */\n textColor?: TextColor | ResponsiveProp<TextColor>\n\n /**\n * Define a custom background color, instead of a variant. Use a Eufemia color.\n */\n backgroundColor?: BackgroundColor | ResponsiveProp<BackgroundColor>\n\n /**\n * Define a custom drop-shadow.\n */\n dropShadow?: DropShadow | ResponsiveProp<DropShadow>\n\n /**\n * Define what HTML element should be used. Defaults to `<section>`.\n */\n element?: DynamicElement\n\n /**\n * Define a React.Ref.\n */\n innerRef?: React.RefObject<HTMLElement>\n\n /**\n * @deprecated in v11 use \"innerSpace\" prop instead\n */\n spacing?: SectionSpacing | ResponsiveProp<SectionSpacing>\n /**\n * @deprecated in v11 use \"background\" prop instead\n */\n style_type?: SectionStyleTypes | string\n /**\n * @deprecated in v11 use \"innerRef\" prop instead\n */\n inner_ref?: React.RefObject<HTMLElement>\n}\n\nexport type SectionAllProps = SectionProps &\n SpacingProps &\n Omit<React.HTMLProps<HTMLElement>, 'ref'>\n\ntype SectionReturnParams = Record<string, unknown> & {\n className: string\n innerRef: React.RefObject<HTMLElement>\n children: React.ReactNode\n style: React.CSSProperties\n}\n\nconst defaultProps = {\n element: 'section',\n}\n\nexport default function Section(localProps: SectionAllProps) {\n return <Space {...SectionParams(localProps)} />\n}\n\nexport function SectionParams(\n localProps: SectionAllProps\n): SectionReturnParams {\n const context = React.useContext(Context)\n\n // use only the props from context, who are available here anyway\n const props = extendPropsWithContext(\n localProps,\n defaultProps,\n context.Section\n )\n\n const {\n variant,\n breakout = !props.outset,\n outset,\n roundedCorner,\n textColor,\n backgroundColor,\n dropShadow,\n outline,\n innerRef,\n\n className,\n children,\n\n spacing,\n style_type,\n inner_ref,\n\n ...attributes\n } = props\n\n const internalRef = React.useRef<HTMLElement>()\n const elementRef = innerRef || inner_ref || internalRef\n\n return Object.freeze({\n ...attributes,\n className: classnames(\n 'dnb-section',\n `dnb-section--${variant ? variant : style_type || 'default'}`,\n spacing &&\n `dnb-section--spacing-${isTrue(spacing) ? 'large' : spacing}`,\n className\n ),\n style: {\n ...computeStyle(\n breakout,\n 'breakout',\n (value) => `var(--breakout--${value ? 'on' : 'off'})`\n ),\n ...computeStyle(outset, 'outset', (value) => (value ? '1' : '0')),\n ...computeStyle(\n roundedCorner,\n 'rounded-corner',\n (value) => value && 'var(--rounded-corner--value)'\n ),\n ...computeStyle(textColor, 'text-color', (value) => getColor(value)),\n ...computeStyle(backgroundColor, 'background-color', (value) =>\n getColor(value)\n ),\n ...computeStyle(\n dropShadow,\n 'drop-shadow',\n (value) => value && 'var(--shadow-default)'\n ),\n ...computeStyle(outline, 'outline-color', (value) =>\n String(value) === 'true'\n ? 'var(--outline-color--value)'\n : getColor(value)\n ),\n ...attributes?.style,\n } as React.CSSProperties,\n innerRef: elementRef,\n children,\n })\n}\n\nfunction getColor(value: string) {\n if (String(value).includes('--')) {\n return value\n }\n return value\n ? !/#|var/.test(value)\n ? `var(--color-${value})`\n : value\n : undefined\n}\n\nfunction computeStyle(\n property: ResponsiveProp<unknown> | boolean | string,\n name: string,\n valueCallback: (value: string) => string | undefined\n) {\n let media = property as ResponsiveProp<unknown>\n\n if (media !== null && typeof media !== 'object') {\n media = {\n small: property,\n medium: property,\n large: property,\n } as ResponsiveProp<unknown>\n }\n\n const result = {}\n\n for (const size in media as ResponsiveProp<unknown>) {\n if (typeof media?.[size] !== 'undefined') {\n const value = valueCallback(media?.[size])\n if (typeof value === 'string') {\n result[`--${name}--${size}`] = value\n }\n }\n }\n\n return result\n}\n\nSection._name = 'Section'\nSection._supportsSpacingProps = true\n"],"mappings":"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"}
1
+ {"version":3,"file":"Section.js","names":["React","classnames","Context","isTrue","extendPropsWithContext","Space","defaultProps","element","Section","localProps","createElement","SectionParams","context","useContext","props","variant","breakout","outset","roundedCorner","textColor","backgroundColor","dropShadow","outline","innerRef","className","children","spacing","style_type","inner_ref","attributes","_objectWithoutProperties","_excluded","internalRef","useRef","elementRef","Object","freeze","_objectSpread","style","computeStyle","value","getColor","String","includes","test","undefined","property","name","valueCallback","media","small","medium","large","result","size","_media","_media2","_name","_supportsSpacingProps"],"sources":["../../../../src/components/section/Section.tsx"],"sourcesContent":["/**\n * Web Section Component\n *\n */\n\nimport React from 'react'\nimport classnames from 'classnames'\nimport Context from '../../shared/Context'\nimport {\n isTrue,\n extendPropsWithContext,\n} from '../../shared/component-helper'\nimport type {\n DynamicElement,\n ResponsiveProp,\n SpacingProps,\n} from '../../shared/types'\nimport Space from '../space/Space'\n\nexport type SectionVariants = 'error' | 'info' | 'warning' | 'success'\n\nexport type SectionStyleTypes =\n | 'divider'\n | 'white'\n | 'transparent'\n\n /** @deprecated in v11 use \"variant\" or \"backgroundColor\" prop instead */\n | 'lavender'\n /** @deprecated in v11 use \"variant\" or \"backgroundColor\" prop instead */\n | 'pistachio'\n /** @deprecated in v11 use \"variant\" or \"backgroundColor\" prop instead */\n | 'emerald-green'\n /** @deprecated in v11 use \"variant\" or \"backgroundColor\" prop instead */\n | 'sea-green'\n /** @deprecated in v11 use \"variant\" or \"backgroundColor\" prop instead */\n | 'fire-red'\n /** @deprecated in v11 use \"variant\" or \"backgroundColor\" prop instead */\n | 'fire-red-8'\n /** @deprecated in v11 use \"variant\" or \"backgroundColor\" prop instead */\n | 'sand-yellow'\n /** @deprecated in v11 use \"variant\" or \"backgroundColor\" prop instead */\n | 'black-3'\n /** @deprecated in v11 use \"variant\" or \"backgroundColor\" prop instead */\n | 'mint-green'\n /** @deprecated in v11 use \"variant\" or \"backgroundColor\" prop instead */\n | 'mint-green-12'\n\nexport type SectionSpacing =\n | boolean\n | 'x-small'\n | 'small'\n | 'medium'\n | 'large'\n | 'x-large'\n | 'xx-large'\n\nexport type TextColor = string\nexport type OutlineColor = string | boolean\nexport type BackgroundColor = string\nexport type DropShadow = boolean\n\nexport type SectionProps = {\n /**\n * Defines the semantic purpose and subsequently the style of the visual helper. Will take precedence over the style_type prop\n */\n variant?: SectionVariants | string\n\n /**\n * Define if the background color should break-out to a fullscreen view. Defaults to `true`.\n */\n breakout?: boolean | ResponsiveProp<boolean>\n\n /**\n * Define if the Card should break out negatively on larger screens. You cannot use `breakout` and `outset` together.\n * Defaults to `false`\n */\n outset?: boolean | ResponsiveProp<boolean>\n\n /**\n * Define if the section should have rounded corners. Defaults to `false`.\n */\n roundedCorner?: boolean | ResponsiveProp<boolean>\n\n /**\n * Define a custom border color. Use a Eufemia color.\n */\n outline?: OutlineColor | ResponsiveProp<OutlineColor>\n\n /**\n * Define a custom text color to compliment the backgroundColor. Use a Eufemia color.\n */\n textColor?: TextColor | ResponsiveProp<TextColor>\n\n /**\n * Define a custom background color, instead of a variant. Use a Eufemia color.\n */\n backgroundColor?: BackgroundColor | ResponsiveProp<BackgroundColor>\n\n /**\n * Define a custom drop-shadow.\n */\n dropShadow?: DropShadow | ResponsiveProp<DropShadow>\n\n /**\n * Define what HTML element should be used. Defaults to `<section>`.\n */\n element?: DynamicElement\n\n /**\n * Define a React.Ref.\n */\n innerRef?: React.RefObject<HTMLElement>\n\n /**\n * @deprecated in v11 use \"innerSpace\" prop instead\n */\n spacing?: SectionSpacing | ResponsiveProp<SectionSpacing>\n /**\n * @deprecated in v11 use \"background\" prop instead\n */\n style_type?: SectionStyleTypes | string\n /**\n * @deprecated in v11 use \"innerRef\" prop instead\n */\n inner_ref?: React.RefObject<HTMLElement>\n}\n\nexport type SectionAllProps = SectionProps &\n SpacingProps &\n Omit<React.HTMLProps<HTMLElement>, 'ref'>\n\ntype SectionReturnParams = Record<string, unknown> & {\n className: string\n innerRef: React.RefObject<HTMLElement>\n children: React.ReactNode\n style: React.CSSProperties\n}\n\nconst defaultProps = {\n element: 'section',\n}\n\nexport default function Section(localProps: SectionAllProps) {\n return <Space {...SectionParams(localProps)} />\n}\n\nexport function SectionParams(\n localProps: SectionAllProps\n): SectionReturnParams {\n const context = React.useContext(Context)\n\n // use only the props from context, who are available here anyway\n const props = extendPropsWithContext(\n localProps,\n defaultProps,\n context.Section\n )\n\n const {\n variant,\n breakout = !props.outset,\n outset,\n roundedCorner,\n textColor,\n backgroundColor,\n dropShadow,\n outline,\n innerRef,\n\n className,\n children,\n\n spacing,\n style_type,\n inner_ref,\n\n ...attributes\n } = props\n\n const internalRef = React.useRef<HTMLElement>()\n const elementRef = innerRef || inner_ref || internalRef\n\n return Object.freeze({\n ...attributes,\n className: classnames(\n 'dnb-section',\n `dnb-section--${variant ? variant : style_type || 'default'}`,\n spacing &&\n `dnb-section--spacing-${isTrue(spacing) ? 'large' : spacing}`,\n className\n ),\n style: {\n ...computeStyle(\n breakout,\n 'breakout',\n (value) => `var(--breakout--${value ? 'on' : 'off'})`\n ),\n ...computeStyle(outset, 'outset', (value) => (value ? '1' : '0')),\n ...computeStyle(\n roundedCorner,\n 'rounded-corner',\n (value) => value && 'var(--rounded-corner--value)'\n ),\n ...computeStyle(textColor, 'text-color', (value) => getColor(value)),\n ...computeStyle(backgroundColor, 'background-color', (value) =>\n getColor(value)\n ),\n ...computeStyle(\n dropShadow,\n 'drop-shadow',\n (value) => value && 'var(--shadow-default)'\n ),\n ...computeStyle(outline, 'outline-color', (value) =>\n String(value) === 'true'\n ? 'var(--outline-color--value)'\n : getColor(value)\n ),\n ...attributes?.style,\n } as React.CSSProperties,\n innerRef: elementRef,\n children,\n })\n}\n\nfunction getColor(value: string) {\n if (String(value).includes('--')) {\n return value\n }\n return value\n ? !/#|var/.test(value)\n ? `var(--color-${value})`\n : value\n : undefined\n}\n\nfunction computeStyle(\n property: ResponsiveProp<unknown> | boolean | string,\n name: string,\n valueCallback: (value: string) => string | undefined\n) {\n let media = property as ResponsiveProp<unknown>\n\n if (media !== null && typeof media !== 'object') {\n media = {\n small: property,\n medium: property,\n large: property,\n } as ResponsiveProp<unknown>\n }\n\n const result = {}\n\n for (const size in media as ResponsiveProp<unknown>) {\n if (typeof media?.[size] !== 'undefined') {\n const value = valueCallback(media?.[size])\n if (typeof value === 'string') {\n result[`--${name}--${size}`] = value\n }\n }\n }\n\n return result\n}\n\nSection._name = 'Section'\nSection._supportsSpacingProps = true\n"],"mappings":"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"}
@@ -10,7 +10,7 @@ export const SectionProperties = {
10
10
  status: 'optional'
11
11
  },
12
12
  outset: {
13
- doc: 'Define if the Card should break out negatively on larger screens. You can not use `breakout` and `outset` together. Defaults to `false`.',
13
+ doc: 'Define if the Card should break out negatively on larger screens. You cannot use `breakout` and `outset` together. Defaults to `false`.',
14
14
  type: 'boolean',
15
15
  status: 'optional'
16
16
  },
@@ -1 +1 @@
1
- {"version":3,"file":"SectionDocs.js","names":["SectionProperties","variant","doc","type","status","breakout","outset","outline","roundedCorner","backgroundColor","dropShadow","textColor","innerSpace","innerRef"],"sources":["../../../../src/components/section/SectionDocs.ts"],"sourcesContent":["import { PropertiesTableProps } from '../../shared/types'\n\nexport const SectionProperties: PropertiesTableProps = {\n variant: {\n doc: 'Defines the semantic purpose and subsequently the style of the visual helper. Will take precedence over the style_type property.',\n type: 'string',\n status: 'optional',\n },\n breakout: {\n doc: 'Use `true` to enable a fullscreen breakout look. Supports also media query breakpoints like `{ small: boolean }`. Defaults to `true`.',\n type: 'boolean',\n status: 'optional',\n },\n outset: {\n doc: 'Define if the Card should break out negatively on larger screens. You can not use `breakout` and `outset` together. Defaults to `false`.',\n type: 'boolean',\n status: 'optional',\n },\n outline: {\n doc: \"Define a custom border color. If `true` is given, `color-black-8` is used. Use a Eufemia color. Supports also media query breakpoints like `{ small: 'black-8' }`.\",\n type: 'string',\n status: 'optional',\n },\n roundedCorner: {\n doc: 'Use `true` to enable rounded corners (border-radius). Supports also media query breakpoints like `{ small: boolean }`. Defaults to `false`.',\n type: 'boolean',\n status: 'optional',\n },\n backgroundColor: {\n doc: \"Define a custom background color, instead of a variant. Use a Eufemia color. Supports also media query breakpoints like `{ small: 'white' }`.\",\n type: 'string',\n status: 'optional',\n },\n dropShadow: {\n doc: 'Use `true` to show the default Eufemia DropShadow. Supports also media query breakpoints like `{ small: true }`.',\n type: 'boolean',\n status: 'optional',\n },\n textColor: {\n doc: \"Define a custom text color to compliment the backgroundColor. Use a Eufemia color. Supports also media query breakpoints like `{ small: 'black-80' }`.\",\n type: 'string',\n status: 'optional',\n },\n innerSpace: {\n doc: \"Will add a padding around the content. Supports also media query breakpoints like `{small: { top: 'medium' }}`.\",\n type: 'string',\n status: 'optional',\n },\n innerRef: {\n doc: 'By providing a React Ref we can get the internally used element (DOM). E.g. `inner_ref={myRef}` by using `React.createRef()` or `React.useRef()`.',\n type: 'React.Ref',\n status: 'optional',\n },\n '[Space](/uilib/layout/space/properties)': {\n doc: 'Spacing properties like `top` or `bottom` are supported.',\n type: ['string', 'object'],\n status: 'optional',\n },\n}\n"],"mappings":"AAEA,OAAO,MAAMA,iBAAuC,GAAG;EACrDC,OAAO,EAAE;IACPC,GAAG,EAAE,kIAAkI;IACvIC,IAAI,EAAE,QAAQ;IACdC,MAAM,EAAE;EACV,CAAC;EACDC,QAAQ,EAAE;IACRH,GAAG,EAAE,uIAAuI;IAC5IC,IAAI,EAAE,SAAS;IACfC,MAAM,EAAE;EACV,CAAC;EACDE,MAAM,EAAE;IACNJ,GAAG,EAAE,0IAA0I;IAC/IC,IAAI,EAAE,SAAS;IACfC,MAAM,EAAE;EACV,CAAC;EACDG,OAAO,EAAE;IACPL,GAAG,EAAE,oKAAoK;IACzKC,IAAI,EAAE,QAAQ;IACdC,MAAM,EAAE;EACV,CAAC;EACDI,aAAa,EAAE;IACbN,GAAG,EAAE,6IAA6I;IAClJC,IAAI,EAAE,SAAS;IACfC,MAAM,EAAE;EACV,CAAC;EACDK,eAAe,EAAE;IACfP,GAAG,EAAE,+IAA+I;IACpJC,IAAI,EAAE,QAAQ;IACdC,MAAM,EAAE;EACV,CAAC;EACDM,UAAU,EAAE;IACVR,GAAG,EAAE,kHAAkH;IACvHC,IAAI,EAAE,SAAS;IACfC,MAAM,EAAE;EACV,CAAC;EACDO,SAAS,EAAE;IACTT,GAAG,EAAE,wJAAwJ;IAC7JC,IAAI,EAAE,QAAQ;IACdC,MAAM,EAAE;EACV,CAAC;EACDQ,UAAU,EAAE;IACVV,GAAG,EAAE,iHAAiH;IACtHC,IAAI,EAAE,QAAQ;IACdC,MAAM,EAAE;EACV,CAAC;EACDS,QAAQ,EAAE;IACRX,GAAG,EAAE,mJAAmJ;IACxJC,IAAI,EAAE,WAAW;IACjBC,MAAM,EAAE;EACV,CAAC;EACD,yCAAyC,EAAE;IACzCF,GAAG,EAAE,0DAA0D;IAC/DC,IAAI,EAAE,CAAC,QAAQ,EAAE,QAAQ,CAAC;IAC1BC,MAAM,EAAE;EACV;AACF,CAAC"}
1
+ {"version":3,"file":"SectionDocs.js","names":["SectionProperties","variant","doc","type","status","breakout","outset","outline","roundedCorner","backgroundColor","dropShadow","textColor","innerSpace","innerRef"],"sources":["../../../../src/components/section/SectionDocs.ts"],"sourcesContent":["import { PropertiesTableProps } from '../../shared/types'\n\nexport const SectionProperties: PropertiesTableProps = {\n variant: {\n doc: 'Defines the semantic purpose and subsequently the style of the visual helper. Will take precedence over the style_type property.',\n type: 'string',\n status: 'optional',\n },\n breakout: {\n doc: 'Use `true` to enable a fullscreen breakout look. Supports also media query breakpoints like `{ small: boolean }`. Defaults to `true`.',\n type: 'boolean',\n status: 'optional',\n },\n outset: {\n doc: 'Define if the Card should break out negatively on larger screens. You cannot use `breakout` and `outset` together. Defaults to `false`.',\n type: 'boolean',\n status: 'optional',\n },\n outline: {\n doc: \"Define a custom border color. If `true` is given, `color-black-8` is used. Use a Eufemia color. Supports also media query breakpoints like `{ small: 'black-8' }`.\",\n type: 'string',\n status: 'optional',\n },\n roundedCorner: {\n doc: 'Use `true` to enable rounded corners (border-radius). Supports also media query breakpoints like `{ small: boolean }`. Defaults to `false`.',\n type: 'boolean',\n status: 'optional',\n },\n backgroundColor: {\n doc: \"Define a custom background color, instead of a variant. Use a Eufemia color. Supports also media query breakpoints like `{ small: 'white' }`.\",\n type: 'string',\n status: 'optional',\n },\n dropShadow: {\n doc: 'Use `true` to show the default Eufemia DropShadow. Supports also media query breakpoints like `{ small: true }`.',\n type: 'boolean',\n status: 'optional',\n },\n textColor: {\n doc: \"Define a custom text color to compliment the backgroundColor. Use a Eufemia color. Supports also media query breakpoints like `{ small: 'black-80' }`.\",\n type: 'string',\n status: 'optional',\n },\n innerSpace: {\n doc: \"Will add a padding around the content. Supports also media query breakpoints like `{small: { top: 'medium' }}`.\",\n type: 'string',\n status: 'optional',\n },\n innerRef: {\n doc: 'By providing a React Ref we can get the internally used element (DOM). E.g. `inner_ref={myRef}` by using `React.createRef()` or `React.useRef()`.',\n type: 'React.Ref',\n status: 'optional',\n },\n '[Space](/uilib/layout/space/properties)': {\n doc: 'Spacing properties like `top` or `bottom` are supported.',\n type: ['string', 'object'],\n status: 'optional',\n },\n}\n"],"mappings":"AAEA,OAAO,MAAMA,iBAAuC,GAAG;EACrDC,OAAO,EAAE;IACPC,GAAG,EAAE,kIAAkI;IACvIC,IAAI,EAAE,QAAQ;IACdC,MAAM,EAAE;EACV,CAAC;EACDC,QAAQ,EAAE;IACRH,GAAG,EAAE,uIAAuI;IAC5IC,IAAI,EAAE,SAAS;IACfC,MAAM,EAAE;EACV,CAAC;EACDE,MAAM,EAAE;IACNJ,GAAG,EAAE,yIAAyI;IAC9IC,IAAI,EAAE,SAAS;IACfC,MAAM,EAAE;EACV,CAAC;EACDG,OAAO,EAAE;IACPL,GAAG,EAAE,oKAAoK;IACzKC,IAAI,EAAE,QAAQ;IACdC,MAAM,EAAE;EACV,CAAC;EACDI,aAAa,EAAE;IACbN,GAAG,EAAE,6IAA6I;IAClJC,IAAI,EAAE,SAAS;IACfC,MAAM,EAAE;EACV,CAAC;EACDK,eAAe,EAAE;IACfP,GAAG,EAAE,+IAA+I;IACpJC,IAAI,EAAE,QAAQ;IACdC,MAAM,EAAE;EACV,CAAC;EACDM,UAAU,EAAE;IACVR,GAAG,EAAE,kHAAkH;IACvHC,IAAI,EAAE,SAAS;IACfC,MAAM,EAAE;EACV,CAAC;EACDO,SAAS,EAAE;IACTT,GAAG,EAAE,wJAAwJ;IAC7JC,IAAI,EAAE,QAAQ;IACdC,MAAM,EAAE;EACV,CAAC;EACDQ,UAAU,EAAE;IACVV,GAAG,EAAE,iHAAiH;IACtHC,IAAI,EAAE,QAAQ;IACdC,MAAM,EAAE;EACV,CAAC;EACDS,QAAQ,EAAE;IACRX,GAAG,EAAE,mJAAmJ;IACxJC,IAAI,EAAE,WAAW;IACjBC,MAAM,EAAE;EACV,CAAC;EACD,yCAAyC,EAAE;IACzCF,GAAG,EAAE,0DAA0D;IAC/DC,IAAI,EAAE,CAAC,QAAQ,EAAE,QAAQ,CAAC;IAC1BC,MAAM,EAAE;EACV;AACF,CAAC"}
@@ -185,7 +185,14 @@ export default class Textarea extends React.PureComponent {
185
185
  if (isTrue(props.autoresize) && typeof window !== 'undefined') {
186
186
  this.setAutosize();
187
187
  try {
188
- this.resizeObserver = new ResizeObserver(this.setAutosize);
188
+ this.resizeObserver = new ResizeObserver(entries => {
189
+ window.requestAnimationFrame(() => {
190
+ if (!Array.isArray(entries) || !entries.length) {
191
+ return;
192
+ }
193
+ this.setAutosize();
194
+ });
195
+ });
189
196
  this.resizeObserver.observe(document.body);
190
197
  } catch (e) {
191
198
  window.addEventListener('resize', this.setAutosize);
@@ -1 +1 @@
1
- {"version":3,"file":"Textarea.js","names":["React","PropTypes","classnames","FormLabel","FormStatus","TextCounter","isTrue","makeUniqueId","extendPropsWithContextInClassComponent","validateDOMAttributes","processChildren","getStatusState","combineDescribedBy","warn","dispatchCustomElementEvent","convertJsxToString","pickFormElementProps","AlignmentHelper","spacingPropTypes","createSpacingClasses","skeletonDOMAttributes","createSkeletonClass","Context","Suffix","Textarea","PureComponent","getDerivedStateFromProps","props","state","value","getValue","_value","on_state_update","textarea_state","textareaState","hasValue","String","length","constructor","_defineProperty","event","_ref","current","setState","target","getProps","autoresize","prepareAutosize","rows","getRows","ret","setAutosize","elem","style","height","e","_heightOffset","offsetHeight","clientHeight","lineHeight","getLineHeight","newHeight","scrollHeight","maxRows","parseFloat","autoresize_max_rows","maxHeight","createRef","_id","id","navigator","resizeModifier","test","userAgent","platform","error","console","componentDidMount","inner_ref","window","resizeObserver","ResizeObserver","observe","document","body","addEventListener","componentWillUnmount","disconnect","removeEventListener","Math","floor","getComputedStyle","_this$context","_this$context2","_this$context3","defaultProps","skeleton","context","getTranslation","FormRow","formElement","render","label","label_direction","label_sr_only","status","status_state","status_props","status_no_animation","globalStatus","suffix","disabled","stretch","placeholder","keepPlaceholder","align","size","textarea_class","readOnly","textarea_attributes","className","characterCounter","children","textarea_element","_textarea_element","attributes","_objectWithoutProperties","_excluded","showStatus","TextareaElement","textareaAttributes","JSON","parse","textareaParams","_objectSpread","role","name","undefined","onChange","onChangeHandler","onFocus","onFocusHandler","onBlur","onBlurHandler","onKeyDown","onKeyDownHandler","mainParams","innerParams","shellParams","placeholderStyle","createElement","forId","text","labelDirection","srOnly","_AlignmentHelper","_extends","show","text_id","no_animation","ref","_span","top","max","lang","locale","cols","on_change","on_focus","on_blur","on_key_down","process","env","NODE_ENV","propTypes","string","oneOfType","func","node","oneOf","bool","object","shape","message","number","variant","_formElement","_supportsSpacingProps"],"sources":["../../../../src/components/textarea/Textarea.js"],"sourcesContent":["/**\n * Web Textarea Component\n *\n * This is a legacy component.\n * For referencing while developing new features, please use a Functional component.\n */\n\nimport React from 'react'\nimport PropTypes from 'prop-types'\nimport classnames from 'classnames'\nimport FormLabel from '../form-label/FormLabel'\nimport FormStatus from '../form-status/FormStatus'\nimport TextCounter from '../../fragments/text-counter/TextCounter'\nimport {\n isTrue,\n makeUniqueId,\n extendPropsWithContextInClassComponent,\n validateDOMAttributes,\n processChildren,\n getStatusState,\n combineDescribedBy,\n warn,\n dispatchCustomElementEvent,\n convertJsxToString,\n} from '../../shared/component-helper'\nimport { pickFormElementProps } from '../../shared/helpers/filterValidProps'\nimport AlignmentHelper from '../../shared/AlignmentHelper'\nimport {\n spacingPropTypes,\n createSpacingClasses,\n} from '../space/SpacingHelper'\nimport {\n skeletonDOMAttributes,\n createSkeletonClass,\n} from '../skeleton/SkeletonHelper'\n\nimport Context from '../../shared/Context'\nimport Suffix from '../../shared/helpers/Suffix'\n\n/**\n * The textarea component is an umbrella component for all textareas which share the same style as the classic `text` textarea field.\n */\nexport default class Textarea extends React.PureComponent {\n static contextType = Context\n\n static propTypes = {\n value: PropTypes.string,\n id: PropTypes.string,\n label: PropTypes.oneOfType([\n PropTypes.string,\n PropTypes.func,\n PropTypes.node,\n ]),\n label_direction: PropTypes.oneOf(['horizontal', 'vertical']),\n label_sr_only: PropTypes.oneOfType([PropTypes.string, PropTypes.bool]),\n status: PropTypes.oneOfType([\n PropTypes.string,\n PropTypes.bool,\n PropTypes.func,\n PropTypes.node,\n ]),\n textarea_state: PropTypes.string,\n status_state: PropTypes.string,\n status_props: PropTypes.object,\n status_no_animation: PropTypes.oneOfType([\n PropTypes.string,\n PropTypes.bool,\n ]),\n globalStatus: PropTypes.shape({\n id: PropTypes.string,\n message: PropTypes.oneOfType([PropTypes.string, PropTypes.node]),\n }),\n suffix: PropTypes.oneOfType([\n PropTypes.string,\n PropTypes.func,\n PropTypes.node,\n ]),\n placeholder: PropTypes.node,\n keepPlaceholder: PropTypes.bool,\n align: PropTypes.oneOf(['left', 'right']),\n size: PropTypes.oneOf(['small', 'medium', 'large']),\n stretch: PropTypes.oneOfType([PropTypes.string, PropTypes.bool]),\n disabled: PropTypes.oneOfType([PropTypes.string, PropTypes.bool]),\n skeleton: PropTypes.oneOfType([PropTypes.string, PropTypes.bool]),\n characterCounter: PropTypes.oneOfType([\n PropTypes.shape({\n max: PropTypes.number,\n variant: PropTypes.oneOf(['down', 'up']),\n }),\n PropTypes.number,\n ]),\n autoresize: PropTypes.oneOfType([PropTypes.string, PropTypes.bool]),\n autoresize_max_rows: PropTypes.oneOfType([\n PropTypes.string,\n PropTypes.number,\n ]),\n textarea_class: PropTypes.string,\n textarea_attributes: PropTypes.oneOfType([\n PropTypes.string,\n PropTypes.object,\n ]),\n readOnly: PropTypes.oneOfType([PropTypes.string, PropTypes.bool]),\n rows: PropTypes.oneOfType([PropTypes.number, PropTypes.string]),\n cols: PropTypes.oneOfType([PropTypes.number, PropTypes.string]),\n inner_ref: PropTypes.oneOfType([PropTypes.func, PropTypes.object]),\n\n ...spacingPropTypes,\n\n className: PropTypes.string,\n textarea_element: PropTypes.oneOfType([\n PropTypes.func,\n PropTypes.node,\n ]),\n children: PropTypes.oneOfType([PropTypes.node, PropTypes.func]),\n\n on_change: PropTypes.func,\n on_focus: PropTypes.func,\n on_blur: PropTypes.func,\n on_key_down: PropTypes.func,\n on_state_update: PropTypes.func,\n }\n\n static defaultProps = {\n value: 'initval',\n id: null,\n label: null,\n label_direction: null,\n label_sr_only: null,\n status: null,\n textarea_state: null,\n status_state: 'error',\n status_props: null,\n status_no_animation: null,\n globalStatus: null,\n suffix: null,\n placeholder: null,\n keepPlaceholder: null,\n align: null,\n size: null,\n stretch: null,\n disabled: null,\n skeleton: null,\n autoresize: null,\n autoresize_max_rows: null,\n characterCounter: null,\n textarea_class: null,\n textarea_attributes: null,\n readOnly: false,\n rows: null,\n cols: null,\n inner_ref: null,\n\n className: null,\n textarea_element: null,\n children: null,\n\n on_change: null,\n on_focus: null,\n on_blur: null,\n on_key_down: null,\n on_state_update: null,\n }\n\n static getDerivedStateFromProps(props, state) {\n const value = Textarea.getValue(props)\n if (\n value !== 'initval' &&\n value !== state.value &&\n value !== state._value\n ) {\n if (\n value !== state.value &&\n typeof props.on_state_update === 'function'\n ) {\n dispatchCustomElementEvent({ props }, 'on_state_update', { value })\n }\n state.value = value\n }\n if (props.textarea_state) {\n state.textareaState = props.textarea_state\n }\n state._value = props.value\n return state\n }\n\n static hasValue(value) {\n return (\n ((typeof value === 'string' || typeof value === 'number') &&\n String(value).length > 0) ||\n false\n )\n }\n\n static getValue(props) {\n const value = processChildren(props)\n if (value === '' || Textarea.hasValue(value)) {\n return value\n }\n return props.value\n }\n\n state = {\n textareaState: 'virgin',\n value: null,\n _value: null,\n }\n\n constructor(props) {\n super(props)\n\n this._ref = React.createRef()\n this._id = props.id || makeUniqueId() // cause we need an id anyway\n\n if (props.textarea_state) {\n this.state.textareaState = props.textarea_state\n }\n\n try {\n if (typeof navigator !== 'undefined') {\n this.resizeModifier =\n /Firefox|Edg/.test(navigator.userAgent) ||\n (/Chrome/.test(navigator.userAgent) &&\n /Win/.test(navigator.platform))\n ? 'large'\n : false\n\n if (!this.resizeModifier) {\n this.resizeModifier =\n /Safari|Chrome/.test(navigator.userAgent) &&\n /Mac/.test(navigator.platform)\n ? 'medium'\n : false\n }\n }\n } catch (error) {\n console.error(error)\n }\n }\n componentDidMount() {\n const props = this.getProps()\n if (props.inner_ref) {\n typeof props.inner_ref === 'function'\n ? props.inner_ref(this._ref.current)\n : (props.inner_ref.current = this._ref.current)\n }\n\n if (isTrue(props.autoresize) && typeof window !== 'undefined') {\n this.setAutosize()\n try {\n this.resizeObserver = new ResizeObserver(this.setAutosize)\n this.resizeObserver.observe(document.body)\n } catch (e) {\n window.addEventListener('resize', this.setAutosize)\n }\n }\n }\n componentWillUnmount() {\n if (this.resizeObserver) {\n this.resizeObserver.disconnect()\n this.resizeObserver = null\n }\n if (typeof window !== 'undefined') {\n window.removeEventListener('resize', this.setAutosize)\n }\n }\n onFocusHandler = (event) => {\n const { value } = this._ref.current\n this.setState({\n value,\n textareaState: 'focus',\n })\n dispatchCustomElementEvent(this, 'on_focus', { value, event })\n }\n onBlurHandler = (event) => {\n const { value } = event.target\n this.setState({\n value,\n textareaState: Textarea.hasValue(value) ? 'dirty' : 'initial',\n })\n dispatchCustomElementEvent(this, 'on_blur', { value, event })\n }\n onChangeHandler = (event) => {\n const { value } = event.target\n\n const props = this.getProps()\n const autoresize = isTrue(props.autoresize)\n\n if (autoresize) {\n this.prepareAutosize()\n }\n\n const rows = this.getRows(value)\n\n const ret = dispatchCustomElementEvent(this, 'on_change', {\n value,\n rows,\n event,\n })\n if (ret !== false) {\n this.setState({ value })\n if (autoresize) {\n this.setAutosize(rows)\n }\n }\n }\n onKeyDownHandler = (event) => {\n const rows = this.getRows()\n const { value } = event.target\n dispatchCustomElementEvent(this, 'on_key_down', {\n value,\n rows,\n event,\n })\n }\n prepareAutosize = () => {\n const elem = this._ref.current\n if (!elem) {\n return // stop here if no element was gotten\n }\n try {\n elem.style.height = 'auto'\n } catch (e) {\n warn(e)\n }\n }\n setAutosize = (rows = null) => {\n const elem = this._ref.current\n if (!elem) {\n return // stop here if no element was gotten\n }\n try {\n if (typeof this._heightOffset === 'undefined') {\n this._heightOffset = elem.offsetHeight - elem.clientHeight\n }\n\n elem.style.height = 'auto'\n\n // get rows after we set height to auto, this way we get 100% correct rows\n const lineHeight = this.getLineHeight()\n let newHeight = elem.scrollHeight + this._heightOffset\n if (!rows) {\n rows = this.getRows()\n }\n\n if (rows === 1) {\n if (newHeight > lineHeight) {\n newHeight = lineHeight\n }\n }\n\n const props = this.getProps()\n const maxRows = parseFloat(props.autoresize_max_rows)\n if (maxRows > 0) {\n const maxHeight = maxRows * lineHeight\n\n if (rows > maxRows || newHeight > maxHeight) {\n newHeight = maxHeight\n }\n }\n\n elem.style.height = newHeight + 'px'\n } catch (e) {\n warn(e)\n }\n }\n getRows() {\n return (\n Math.floor(this._ref.current.scrollHeight / this.getLineHeight()) ||\n 1\n )\n }\n getLineHeight() {\n return parseFloat(getComputedStyle(this._ref.current).lineHeight) || 0\n }\n getProps() {\n return extendPropsWithContextInClassComponent(\n this.props,\n Textarea.defaultProps,\n { skeleton: this.context?.skeleton },\n this.context.getTranslation(this.props).Textarea,\n // Deprecated – can be removed in v11\n pickFormElementProps(this.context?.FormRow),\n pickFormElementProps(this.context?.formElement),\n this.context.Textarea\n )\n }\n render() {\n // use only the props from context, who are available here anyway\n const props = this.getProps()\n\n const {\n label,\n label_direction,\n label_sr_only,\n status,\n status_state,\n status_props,\n status_no_animation,\n globalStatus,\n suffix,\n disabled,\n skeleton,\n stretch,\n placeholder,\n keepPlaceholder,\n align,\n size,\n textarea_class,\n readOnly,\n textarea_attributes,\n className,\n autoresize,\n characterCounter,\n autoresize_max_rows, //eslint-disable-line\n id: _id, //eslint-disable-line\n children, //eslint-disable-line\n value: _value, //eslint-disable-line\n textarea_element: _textarea_element, //eslint-disable-line\n\n ...attributes\n } = props\n\n const { value, textareaState } = this.state\n\n const id = this._id\n const showStatus = getStatusState(status)\n const hasValue = Textarea.hasValue(value)\n\n // pass along all props we wish to have as params\n let { textarea_element: TextareaElement } = props\n\n const textareaAttributes = textarea_attributes\n ? typeof textarea_attributes === 'string'\n ? JSON.parse(textarea_attributes)\n : textarea_attributes\n : {}\n\n const textareaParams = {\n className: classnames(\n 'dnb-textarea__textarea',\n 'dnb-input__border',\n textarea_class\n ),\n role: 'textbox',\n value: hasValue ? value : '',\n id,\n name: id,\n disabled: isTrue(disabled) || isTrue(skeleton),\n 'aria-placeholder': placeholder\n ? convertJsxToString(placeholder)\n : undefined,\n ...attributes,\n ...textareaAttributes,\n onChange: this.onChangeHandler,\n onFocus: this.onFocusHandler,\n onBlur: this.onBlurHandler,\n // onPaste: this.onChangeHandler,\n onKeyDown: this.onKeyDownHandler,\n }\n\n // we may consider using: aria-details\n if (showStatus || suffix) {\n textareaParams['aria-describedby'] = combineDescribedBy(\n textareaParams,\n showStatus ? id + '-status' : null,\n suffix ? id + '-suffix' : null\n )\n }\n if (readOnly) {\n textareaParams['aria-readonly'] = textareaParams.readOnly = true\n }\n\n const mainParams = {\n className: classnames(\n 'dnb-textarea',\n `dnb-textarea--${textareaState}`,\n disabled && 'dnb-textarea--disabled',\n hasValue && 'dnb-textarea--has-content',\n align && `dnb-textarea__align--${align}`,\n size && `dnb-textarea__size--${size}`,\n status && `dnb-textarea__status--${status_state}`,\n autoresize && 'dnb-textarea__autoresize',\n !autoresize &&\n this.resizeModifier &&\n `dnb-textarea__resize--${this.resizeModifier}`,\n label_direction && `dnb-textarea--${label_direction}`,\n isTrue(stretch) && `dnb-textarea--stretch`,\n isTrue(keepPlaceholder) && `dnb-textarea--keep-placeholder`,\n 'dnb-form-component',\n createSkeletonClass(null, skeleton),\n createSpacingClasses(props),\n className\n ),\n }\n\n const innerParams = {\n className: classnames(\n 'dnb-textarea__inner',\n createSkeletonClass('shape', skeleton, this.context)\n ),\n }\n\n const shellParams = {\n className: classnames('dnb-textarea__shell'),\n }\n\n if (isTrue(disabled) || isTrue(skeleton)) {\n shellParams['aria-disabled'] = true\n }\n\n // to show the ending dots on a placeholder, if the text is longer\n const placeholderStyle =\n parseFloat(props.rows) > 0\n ? {\n '--textarea-rows': parseFloat(props.rows),\n }\n : null\n\n skeletonDOMAttributes(innerParams, skeleton, this.context)\n\n // also used for code markup simulation\n validateDOMAttributes(this.props, textareaParams)\n validateDOMAttributes(null, innerParams)\n validateDOMAttributes(null, shellParams)\n\n if (TextareaElement && typeof TextareaElement === 'function') {\n TextareaElement = TextareaElement(textareaParams, this._ref)\n } else if (!TextareaElement && _textarea_element) {\n TextareaElement = _textarea_element\n }\n\n return (\n <span {...mainParams}>\n {label && (\n <FormLabel\n id={id + '-label'}\n forId={id}\n text={label}\n labelDirection={label_direction}\n srOnly={label_sr_only}\n disabled={disabled}\n skeleton={skeleton}\n />\n )}\n\n <span {...innerParams}>\n <AlignmentHelper />\n\n <FormStatus\n show={showStatus}\n id={id + '-form-status'}\n globalStatus={globalStatus}\n label={label}\n text_id={id + '-status'} // used for \"aria-describedby\"\n text={status}\n state={status_state}\n no_animation={status_no_animation}\n skeleton={skeleton}\n {...status_props}\n />\n\n <span className=\"dnb-textarea__row\">\n <span {...shellParams}>\n {TextareaElement || (\n <textarea ref={this._ref} {...textareaParams} />\n )}\n\n {!hasValue &&\n placeholder &&\n (textareaState !== 'focus' || keepPlaceholder) && (\n <span\n className={classnames(\n 'dnb-textarea__placeholder',\n align ? `dnb-textarea__align--${align}` : null\n )}\n style={placeholderStyle}\n aria-hidden\n >\n {placeholder}\n </span>\n )}\n\n <span className=\"dnb-textarea__state\" />\n </span>\n\n {suffix && (\n <Suffix\n className=\"dnb-textarea__suffix\"\n id={id + '-suffix'} // used for \"aria-describedby\"\n context={props}\n >\n {suffix}\n </Suffix>\n )}\n </span>\n\n {characterCounter && (\n <TextCounter\n top=\"x-small\"\n text={value}\n max={characterCounter}\n lang={props.lang}\n locale={props.locale}\n {...characterCounter}\n />\n )}\n </span>\n </span>\n )\n }\n}\n\nTextarea._formElement = true\nTextarea._supportsSpacingProps = true\n"],"mappings":";;;;;;;;;AAOA,OAAOA,KAAK,MAAM,OAAO;AACzB,OAAOC,SAAS,MAAM,YAAY;AAClC,OAAOC,UAAU,MAAM,YAAY;AACnC,OAAOC,SAAS,MAAM,yBAAyB;AAC/C,OAAOC,UAAU,MAAM,2BAA2B;AAClD,OAAOC,WAAW,MAAM,0CAA0C;AAClE,SACEC,MAAM,EACNC,YAAY,EACZC,sCAAsC,EACtCC,qBAAqB,EACrBC,eAAe,EACfC,cAAc,EACdC,kBAAkB,EAClBC,IAAI,EACJC,0BAA0B,EAC1BC,kBAAkB,QACb,+BAA+B;AACtC,SAASC,oBAAoB,QAAQ,uCAAuC;AAC5E,OAAOC,eAAe,MAAM,8BAA8B;AAC1D,SACEC,gBAAgB,EAChBC,oBAAoB,QACf,wBAAwB;AAC/B,SACEC,qBAAqB,EACrBC,mBAAmB,QACd,4BAA4B;AAEnC,OAAOC,OAAO,MAAM,sBAAsB;AAC1C,OAAOC,MAAM,MAAM,6BAA6B;AAKhD,eAAe,MAAMC,QAAQ,SAASxB,KAAK,CAACyB,aAAa,CAAC;EAyHxD,OAAOC,wBAAwBA,CAACC,KAAK,EAAEC,KAAK,EAAE;IAC5C,MAAMC,KAAK,GAAGL,QAAQ,CAACM,QAAQ,CAACH,KAAK,CAAC;IACtC,IACEE,KAAK,KAAK,SAAS,IACnBA,KAAK,KAAKD,KAAK,CAACC,KAAK,IACrBA,KAAK,KAAKD,KAAK,CAACG,MAAM,EACtB;MACA,IACEF,KAAK,KAAKD,KAAK,CAACC,KAAK,IACrB,OAAOF,KAAK,CAACK,eAAe,KAAK,UAAU,EAC3C;QACAlB,0BAA0B,CAAC;UAAEa;QAAM,CAAC,EAAE,iBAAiB,EAAE;UAAEE;QAAM,CAAC,CAAC;MACrE;MACAD,KAAK,CAACC,KAAK,GAAGA,KAAK;IACrB;IACA,IAAIF,KAAK,CAACM,cAAc,EAAE;MACxBL,KAAK,CAACM,aAAa,GAAGP,KAAK,CAACM,cAAc;IAC5C;IACAL,KAAK,CAACG,MAAM,GAAGJ,KAAK,CAACE,KAAK;IAC1B,OAAOD,KAAK;EACd;EAEA,OAAOO,QAAQA,CAACN,KAAK,EAAE;IACrB,OACG,CAAC,OAAOA,KAAK,KAAK,QAAQ,IAAI,OAAOA,KAAK,KAAK,QAAQ,KACtDO,MAAM,CAACP,KAAK,CAAC,CAACQ,MAAM,GAAG,CAAC,IAC1B,KAAK;EAET;EAEA,OAAOP,QAAQA,CAACH,KAAK,EAAE;IACrB,MAAME,KAAK,GAAGnB,eAAe,CAACiB,KAAK,CAAC;IACpC,IAAIE,KAAK,KAAK,EAAE,IAAIL,QAAQ,CAACW,QAAQ,CAACN,KAAK,CAAC,EAAE;MAC5C,OAAOA,KAAK;IACd;IACA,OAAOF,KAAK,CAACE,KAAK;EACpB;EAQAS,WAAWA,CAACX,MAAK,EAAE;IACjB,KAAK,CAACA,MAAK,CAAC;IAAAY,eAAA,gBAPN;MACNL,aAAa,EAAE,QAAQ;MACvBL,KAAK,EAAE,IAAI;MACXE,MAAM,EAAE;IACV,CAAC;IAAAQ,eAAA,yBA4DiBC,KAAK,IAAK;MAC1B,MAAM;QAAEX;MAAM,CAAC,GAAG,IAAI,CAACY,IAAI,CAACC,OAAO;MACnC,IAAI,CAACC,QAAQ,CAAC;QACZd,KAAK;QACLK,aAAa,EAAE;MACjB,CAAC,CAAC;MACFpB,0BAA0B,CAAC,IAAI,EAAE,UAAU,EAAE;QAAEe,KAAK;QAAEW;MAAM,CAAC,CAAC;IAChE,CAAC;IAAAD,eAAA,wBACgBC,KAAK,IAAK;MACzB,MAAM;QAAEX;MAAM,CAAC,GAAGW,KAAK,CAACI,MAAM;MAC9B,IAAI,CAACD,QAAQ,CAAC;QACZd,KAAK;QACLK,aAAa,EAAEV,QAAQ,CAACW,QAAQ,CAACN,KAAK,CAAC,GAAG,OAAO,GAAG;MACtD,CAAC,CAAC;MACFf,0BAA0B,CAAC,IAAI,EAAE,SAAS,EAAE;QAAEe,KAAK;QAAEW;MAAM,CAAC,CAAC;IAC/D,CAAC;IAAAD,eAAA,0BACkBC,KAAK,IAAK;MAC3B,MAAM;QAAEX;MAAM,CAAC,GAAGW,KAAK,CAACI,MAAM;MAE9B,MAAMjB,KAAK,GAAG,IAAI,CAACkB,QAAQ,CAAC,CAAC;MAC7B,MAAMC,UAAU,GAAGxC,MAAM,CAACqB,KAAK,CAACmB,UAAU,CAAC;MAE3C,IAAIA,UAAU,EAAE;QACd,IAAI,CAACC,eAAe,CAAC,CAAC;MACxB;MAEA,MAAMC,IAAI,GAAG,IAAI,CAACC,OAAO,CAACpB,KAAK,CAAC;MAEhC,MAAMqB,GAAG,GAAGpC,0BAA0B,CAAC,IAAI,EAAE,WAAW,EAAE;QACxDe,KAAK;QACLmB,IAAI;QACJR;MACF,CAAC,CAAC;MACF,IAAIU,GAAG,KAAK,KAAK,EAAE;QACjB,IAAI,CAACP,QAAQ,CAAC;UAAEd;QAAM,CAAC,CAAC;QACxB,IAAIiB,UAAU,EAAE;UACd,IAAI,CAACK,WAAW,CAACH,IAAI,CAAC;QACxB;MACF;IACF,CAAC;IAAAT,eAAA,2BACmBC,KAAK,IAAK;MAC5B,MAAMQ,IAAI,GAAG,IAAI,CAACC,OAAO,CAAC,CAAC;MAC3B,MAAM;QAAEpB;MAAM,CAAC,GAAGW,KAAK,CAACI,MAAM;MAC9B9B,0BAA0B,CAAC,IAAI,EAAE,aAAa,EAAE;QAC9Ce,KAAK;QACLmB,IAAI;QACJR;MACF,CAAC,CAAC;IACJ,CAAC;IAAAD,eAAA,0BACiB,MAAM;MACtB,MAAMa,IAAI,GAAG,IAAI,CAACX,IAAI,CAACC,OAAO;MAC9B,IAAI,CAACU,IAAI,EAAE;QACT;MACF;MACA,IAAI;QACFA,IAAI,CAACC,KAAK,CAACC,MAAM,GAAG,MAAM;MAC5B,CAAC,CAAC,OAAOC,CAAC,EAAE;QACV1C,IAAI,CAAC0C,CAAC,CAAC;MACT;IACF,CAAC;IAAAhB,eAAA,sBACa,CAACS,IAAI,GAAG,IAAI,KAAK;MAC7B,MAAMI,IAAI,GAAG,IAAI,CAACX,IAAI,CAACC,OAAO;MAC9B,IAAI,CAACU,IAAI,EAAE;QACT;MACF;MACA,IAAI;QACF,IAAI,OAAO,IAAI,CAACI,aAAa,KAAK,WAAW,EAAE;UAC7C,IAAI,CAACA,aAAa,GAAGJ,IAAI,CAACK,YAAY,GAAGL,IAAI,CAACM,YAAY;QAC5D;QAEAN,IAAI,CAACC,KAAK,CAACC,MAAM,GAAG,MAAM;QAG1B,MAAMK,UAAU,GAAG,IAAI,CAACC,aAAa,CAAC,CAAC;QACvC,IAAIC,SAAS,GAAGT,IAAI,CAACU,YAAY,GAAG,IAAI,CAACN,aAAa;QACtD,IAAI,CAACR,IAAI,EAAE;UACTA,IAAI,GAAG,IAAI,CAACC,OAAO,CAAC,CAAC;QACvB;QAEA,IAAID,IAAI,KAAK,CAAC,EAAE;UACd,IAAIa,SAAS,GAAGF,UAAU,EAAE;YAC1BE,SAAS,GAAGF,UAAU;UACxB;QACF;QAEA,MAAMhC,KAAK,GAAG,IAAI,CAACkB,QAAQ,CAAC,CAAC;QAC7B,MAAMkB,OAAO,GAAGC,UAAU,CAACrC,KAAK,CAACsC,mBAAmB,CAAC;QACrD,IAAIF,OAAO,GAAG,CAAC,EAAE;UACf,MAAMG,SAAS,GAAGH,OAAO,GAAGJ,UAAU;UAEtC,IAAIX,IAAI,GAAGe,OAAO,IAAIF,SAAS,GAAGK,SAAS,EAAE;YAC3CL,SAAS,GAAGK,SAAS;UACvB;QACF;QAEAd,IAAI,CAACC,KAAK,CAACC,MAAM,GAAGO,SAAS,GAAG,IAAI;MACtC,CAAC,CAAC,OAAON,CAAC,EAAE;QACV1C,IAAI,CAAC0C,CAAC,CAAC;MACT;IACF,CAAC;IA1JC,IAAI,CAACd,IAAI,GAAGzC,KAAK,CAACmE,SAAS,CAAC,CAAC;IAC7B,IAAI,CAACC,GAAG,GAAGzC,MAAK,CAAC0C,EAAE,IAAI9D,YAAY,CAAC,CAAC;IAErC,IAAIoB,MAAK,CAACM,cAAc,EAAE;MACxB,IAAI,CAACL,KAAK,CAACM,aAAa,GAAGP,MAAK,CAACM,cAAc;IACjD;IAEA,IAAI;MACF,IAAI,OAAOqC,SAAS,KAAK,WAAW,EAAE;QACpC,IAAI,CAACC,cAAc,GACjB,aAAa,CAACC,IAAI,CAACF,SAAS,CAACG,SAAS,CAAC,IACtC,QAAQ,CAACD,IAAI,CAACF,SAAS,CAACG,SAAS,CAAC,IACjC,KAAK,CAACD,IAAI,CAACF,SAAS,CAACI,QAAQ,CAAE,GAC7B,OAAO,GACP,KAAK;QAEX,IAAI,CAAC,IAAI,CAACH,cAAc,EAAE;UACxB,IAAI,CAACA,cAAc,GACjB,eAAe,CAACC,IAAI,CAACF,SAAS,CAACG,SAAS,CAAC,IACzC,KAAK,CAACD,IAAI,CAACF,SAAS,CAACI,QAAQ,CAAC,GAC1B,QAAQ,GACR,KAAK;QACb;MACF;IACF,CAAC,CAAC,OAAOC,KAAK,EAAE;MACdC,OAAO,CAACD,KAAK,CAACA,KAAK,CAAC;IACtB;EACF;EACAE,iBAAiBA,CAAA,EAAG;IAClB,MAAMlD,KAAK,GAAG,IAAI,CAACkB,QAAQ,CAAC,CAAC;IAC7B,IAAIlB,KAAK,CAACmD,SAAS,EAAE;MACnB,OAAOnD,KAAK,CAACmD,SAAS,KAAK,UAAU,GACjCnD,KAAK,CAACmD,SAAS,CAAC,IAAI,CAACrC,IAAI,CAACC,OAAO,CAAC,GACjCf,KAAK,CAACmD,SAAS,CAACpC,OAAO,GAAG,IAAI,CAACD,IAAI,CAACC,OAAQ;IACnD;IAEA,IAAIpC,MAAM,CAACqB,KAAK,CAACmB,UAAU,CAAC,IAAI,OAAOiC,MAAM,KAAK,WAAW,EAAE;MAC7D,IAAI,CAAC5B,WAAW,CAAC,CAAC;MAClB,IAAI;QACF,IAAI,CAAC6B,cAAc,GAAG,IAAIC,cAAc,CAAC,IAAI,CAAC9B,WAAW,CAAC;QAC1D,IAAI,CAAC6B,cAAc,CAACE,OAAO,CAACC,QAAQ,CAACC,IAAI,CAAC;MAC5C,CAAC,CAAC,OAAO7B,CAAC,EAAE;QACVwB,MAAM,CAACM,gBAAgB,CAAC,QAAQ,EAAE,IAAI,CAAClC,WAAW,CAAC;MACrD;IACF;EACF;EACAmC,oBAAoBA,CAAA,EAAG;IACrB,IAAI,IAAI,CAACN,cAAc,EAAE;MACvB,IAAI,CAACA,cAAc,CAACO,UAAU,CAAC,CAAC;MAChC,IAAI,CAACP,cAAc,GAAG,IAAI;IAC5B;IACA,IAAI,OAAOD,MAAM,KAAK,WAAW,EAAE;MACjCA,MAAM,CAACS,mBAAmB,CAAC,QAAQ,EAAE,IAAI,CAACrC,WAAW,CAAC;IACxD;EACF;EAqGAF,OAAOA,CAAA,EAAG;IACR,OACEwC,IAAI,CAACC,KAAK,CAAC,IAAI,CAACjD,IAAI,CAACC,OAAO,CAACoB,YAAY,GAAG,IAAI,CAACF,aAAa,CAAC,CAAC,CAAC,IACjE,CAAC;EAEL;EACAA,aAAaA,CAAA,EAAG;IACd,OAAOI,UAAU,CAAC2B,gBAAgB,CAAC,IAAI,CAAClD,IAAI,CAACC,OAAO,CAAC,CAACiB,UAAU,CAAC,IAAI,CAAC;EACxE;EACAd,QAAQA,CAAA,EAAG;IAAA,IAAA+C,aAAA,EAAAC,cAAA,EAAAC,cAAA;IACT,OAAOtF,sCAAsC,CAC3C,IAAI,CAACmB,KAAK,EACVH,QAAQ,CAACuE,YAAY,EACrB;MAAEC,QAAQ,GAAAJ,aAAA,GAAE,IAAI,CAACK,OAAO,cAAAL,aAAA,uBAAZA,aAAA,CAAcI;IAAS,CAAC,EACpC,IAAI,CAACC,OAAO,CAACC,cAAc,CAAC,IAAI,CAACvE,KAAK,CAAC,CAACH,QAAQ,EAEhDR,oBAAoB,EAAA6E,cAAA,GAAC,IAAI,CAACI,OAAO,cAAAJ,cAAA,uBAAZA,cAAA,CAAcM,OAAO,CAAC,EAC3CnF,oBAAoB,EAAA8E,cAAA,GAAC,IAAI,CAACG,OAAO,cAAAH,cAAA,uBAAZA,cAAA,CAAcM,WAAW,CAAC,EAC/C,IAAI,CAACH,OAAO,CAACzE,QACf,CAAC;EACH;EACA6E,MAAMA,CAAA,EAAG;IAEP,MAAM1E,KAAK,GAAG,IAAI,CAACkB,QAAQ,CAAC,CAAC;IAE7B,MAAM;QACJyD,KAAK;QACLC,eAAe;QACfC,aAAa;QACbC,MAAM;QACNC,YAAY;QACZC,YAAY;QACZC,mBAAmB;QACnBC,YAAY;QACZC,MAAM;QACNC,QAAQ;QACRf,QAAQ;QACRgB,OAAO;QACPC,WAAW;QACXC,eAAe;QACfC,KAAK;QACLC,IAAI;QACJC,cAAc;QACdC,QAAQ;QACRC,mBAAmB;QACnBC,SAAS;QACT1E,UAAU;QACV2E,gBAAgB;QAChBxD,mBAAmB;QACnBI,EAAE,EAAED,GAAG;QACPsD,QAAQ;QACR7F,KAAK,EAAEE,MAAM;QACb4F,gBAAgB,EAAEC;MAGpB,CAAC,GAAGjG,KAAK;MADJkG,UAAU,GAAAC,wBAAA,CACXnG,KAAK,EAAAoG,SAAA;IAET,MAAM;MAAElG,KAAK;MAAEK;IAAc,CAAC,GAAG,IAAI,CAACN,KAAK;IAE3C,MAAMyC,EAAE,GAAG,IAAI,CAACD,GAAG;IACnB,MAAM4D,UAAU,GAAGrH,cAAc,CAAC8F,MAAM,CAAC;IACzC,MAAMtE,QAAQ,GAAGX,QAAQ,CAACW,QAAQ,CAACN,KAAK,CAAC;IAGzC,IAAI;MAAE8F,gBAAgB,EAAEM;IAAgB,CAAC,GAAGtG,KAAK;IAEjD,MAAMuG,kBAAkB,GAAGX,mBAAmB,GAC1C,OAAOA,mBAAmB,KAAK,QAAQ,GACrCY,IAAI,CAACC,KAAK,CAACb,mBAAmB,CAAC,GAC/BA,mBAAmB,GACrB,CAAC,CAAC;IAEN,MAAMc,cAAc,GAAAC,aAAA,CAAAA,aAAA,CAAAA,aAAA;MAClBd,SAAS,EAAEtH,UAAU,6CAGnBmH,cACF,CAAC;MACDkB,IAAI,EAAE,SAAS;MACf1G,KAAK,EAAEM,QAAQ,GAAGN,KAAK,GAAG,EAAE;MAC5BwC,EAAE;MACFmE,IAAI,EAAEnE,EAAE;MACR0C,QAAQ,EAAEzG,MAAM,CAACyG,QAAQ,CAAC,IAAIzG,MAAM,CAAC0F,QAAQ,CAAC;MAC9C,kBAAkB,EAAEiB,WAAW,GAC3BlG,kBAAkB,CAACkG,WAAW,CAAC,GAC/BwB;IAAS,GACVZ,UAAU,GACVK,kBAAkB;MACrBQ,QAAQ,EAAE,IAAI,CAACC,eAAe;MAC9BC,OAAO,EAAE,IAAI,CAACC,cAAc;MAC5BC,MAAM,EAAE,IAAI,CAACC,aAAa;MAE1BC,SAAS,EAAE,IAAI,CAACC;IAAgB,EACjC;IAGD,IAAIjB,UAAU,IAAIlB,MAAM,EAAE;MACxBuB,cAAc,CAAC,kBAAkB,CAAC,GAAGzH,kBAAkB,CACrDyH,cAAc,EACdL,UAAU,GAAG3D,EAAE,GAAG,SAAS,GAAG,IAAI,EAClCyC,MAAM,GAAGzC,EAAE,GAAG,SAAS,GAAG,IAC5B,CAAC;IACH;IACA,IAAIiD,QAAQ,EAAE;MACZe,cAAc,CAAC,eAAe,CAAC,GAAGA,cAAc,CAACf,QAAQ,GAAG,IAAI;IAClE;IAEA,MAAM4B,UAAU,GAAG;MACjB1B,SAAS,EAAEtH,UAAU,+BAEFgC,aAAa,uBAc9Bb,mBAAmB,CAAC,IAAI,EAAE2E,QAAQ,CAAC,EACnC7E,oBAAoB,CAACQ,KAAK,CAAC,EAC3B6F,SAAS,EAVT1E,UAAU,GAAI,0BAA0B,GAEtC,IAAI,CAACyB,cAAc,IAClB,yBAAwB,IAAI,CAACA,cAAe,EAAC,EARhDwC,QAAQ,IAAI,wBAAwB,EACpC5E,QAAQ,IAAI,2BAA2B,EACvCgF,KAAK,IAAK,wBAAuBA,KAAM,EAAC,EACxCC,IAAI,IAAK,uBAAsBA,IAAK,EAAC,EACrCX,MAAM,IAAK,yBAAwBC,YAAa,EAAC,EAKjDH,eAAe,IAAK,iBAAgBA,eAAgB,EAAC,EACrDjG,MAAM,CAAC0G,OAAO,CAAC,IAAK,uBAAsB,EAC1C1G,MAAM,CAAC4G,eAAe,CAAC,IAAK,gCAK9B;IACF,CAAC;IAED,MAAMiC,WAAW,GAAG;MAClB3B,SAAS,EAAEtH,UAAU,CACnB,qBAAqB,EACrBmB,mBAAmB,CAAC,OAAO,EAAE2E,QAAQ,EAAE,IAAI,CAACC,OAAO,CACrD;IACF,CAAC;IAED,MAAMmD,WAAW,GAAG;MAClB5B,SAAS,EAAa;IACxB,CAAC;IAED,IAAIlH,MAAM,CAACyG,QAAQ,CAAC,IAAIzG,MAAM,CAAC0F,QAAQ,CAAC,EAAE;MACxCoD,WAAW,CAAC,eAAe,CAAC,GAAG,IAAI;IACrC;IAGA,MAAMC,gBAAgB,GACpBrF,UAAU,CAACrC,KAAK,CAACqB,IAAI,CAAC,GAAG,CAAC,GACtB;MACE,iBAAiB,EAAEgB,UAAU,CAACrC,KAAK,CAACqB,IAAI;IAC1C,CAAC,GACD,IAAI;IAEV5B,qBAAqB,CAAC+H,WAAW,EAAEnD,QAAQ,EAAE,IAAI,CAACC,OAAO,CAAC;IAG1DxF,qBAAqB,CAAC,IAAI,CAACkB,KAAK,EAAE0G,cAAc,CAAC;IACjD5H,qBAAqB,CAAC,IAAI,EAAE0I,WAAW,CAAC;IACxC1I,qBAAqB,CAAC,IAAI,EAAE2I,WAAW,CAAC;IAExC,IAAInB,eAAe,IAAI,OAAOA,eAAe,KAAK,UAAU,EAAE;MAC5DA,eAAe,GAAGA,eAAe,CAACI,cAAc,EAAE,IAAI,CAAC5F,IAAI,CAAC;IAC9D,CAAC,MAAM,IAAI,CAACwF,eAAe,IAAIL,iBAAiB,EAAE;MAChDK,eAAe,GAAGL,iBAAiB;IACrC;IAEA,OACE5H,KAAA,CAAAsJ,aAAA,SAAUJ,UAAU,EACjB5C,KAAK,IACJtG,KAAA,CAAAsJ,aAAA,CAACnJ,SAAS;MACRkE,EAAE,EAAEA,EAAE,GAAG,QAAS;MAClBkF,KAAK,EAAElF,EAAG;MACVmF,IAAI,EAAElD,KAAM;MACZmD,cAAc,EAAElD,eAAgB;MAChCmD,MAAM,EAAElD,aAAc;MACtBO,QAAQ,EAAEA,QAAS;MACnBf,QAAQ,EAAEA;IAAS,CACpB,CACF,EAEDhG,KAAA,CAAAsJ,aAAA,SAAUH,WAAW,EAAAQ,gBAAA,KAAAA,gBAAA,GACnB3J,KAAA,CAAAsJ,aAAA,CAACrI,eAAe,MAAE,CAAC,GAEnBjB,KAAA,CAAAsJ,aAAA,CAAClJ,UAAU,EAAAwJ,QAAA;MACTC,IAAI,EAAE7B,UAAW;MACjB3D,EAAE,EAAEA,EAAE,GAAG,cAAe;MACxBwC,YAAY,EAAEA,YAAa;MAC3BP,KAAK,EAAEA,KAAM;MACbwD,OAAO,EAAEzF,EAAE,GAAG,SAAU;MACxBmF,IAAI,EAAE/C,MAAO;MACb7E,KAAK,EAAE8E,YAAa;MACpBqD,YAAY,EAAEnD,mBAAoB;MAClCZ,QAAQ,EAAEA;IAAS,GACfW,YAAY,CACjB,CAAC,EAEF3G,KAAA,CAAAsJ,aAAA;MAAM9B,SAAS,EAAC;IAAmB,GACjCxH,KAAA,CAAAsJ,aAAA,SAAUF,WAAW,EAClBnB,eAAe,IACdjI,KAAA,CAAAsJ,aAAA,aAAAM,QAAA;MAAUI,GAAG,EAAE,IAAI,CAACvH;IAAK,GAAK4F,cAAc,CAAG,CAChD,EAEA,CAAClG,QAAQ,IACR8E,WAAW,KACV/E,aAAa,KAAK,OAAO,IAAIgF,eAAe,CAAC,IAC5ClH,KAAA,CAAAsJ,aAAA;MACE9B,SAAS,EACP,2BAA2B,IAC3BL,KAAK,4BAA2BA,KAAM,QACtC;MACF9D,KAAK,EAAEgG,gBAAiB;MACxB;IAAW,GAEVpC,WACG,CACP,EAAAgD,KAAA,KAAAA,KAAA,GAEHjK,KAAA,CAAAsJ,aAAA;MAAM9B,SAAS,EAAC;IAAqB,CAAE,CAAC,CACpC,CAAC,EAENV,MAAM,IACL9G,KAAA,CAAAsJ,aAAA,CAAC/H,MAAM;MACLiG,SAAS,EAAC,sBAAsB;MAChCnD,EAAE,EAAEA,EAAE,GAAG,SAAU;MACnB4B,OAAO,EAAEtE;IAAM,GAEdmF,MACK,CAEN,CAAC,EAENW,gBAAgB,IACfzH,KAAA,CAAAsJ,aAAA,CAACjJ,WAAW,EAAAuJ,QAAA;MACVM,GAAG,EAAC,SAAS;MACbV,IAAI,EAAE3H,KAAM;MACZsI,GAAG,EAAE1C,gBAAiB;MACtB2C,IAAI,EAAEzI,KAAK,CAACyI,IAAK;MACjBC,MAAM,EAAE1I,KAAK,CAAC0I;IAAO,GACjB5C,gBAAgB,CACrB,CAEC,CACF,CAAC;EAEX;AACF;AAAClF,eAAA,CAxjBoBf,QAAQ,iBACNF,OAAO;AAAAiB,eAAA,CADTf,QAAQ,kBAgFL;EACpBK,KAAK,EAAE,SAAS;EAChBwC,EAAE,EAAE,IAAI;EACRiC,KAAK,EAAE,IAAI;EACXC,eAAe,EAAE,IAAI;EACrBC,aAAa,EAAE,IAAI;EACnBC,MAAM,EAAE,IAAI;EACZxE,cAAc,EAAE,IAAI;EACpByE,YAAY,EAAE,OAAO;EACrBC,YAAY,EAAE,IAAI;EAClBC,mBAAmB,EAAE,IAAI;EACzBC,YAAY,EAAE,IAAI;EAClBC,MAAM,EAAE,IAAI;EACZG,WAAW,EAAE,IAAI;EACjBC,eAAe,EAAE,IAAI;EACrBC,KAAK,EAAE,IAAI;EACXC,IAAI,EAAE,IAAI;EACVJ,OAAO,EAAE,IAAI;EACbD,QAAQ,EAAE,IAAI;EACdf,QAAQ,EAAE,IAAI;EACdlD,UAAU,EAAE,IAAI;EAChBmB,mBAAmB,EAAE,IAAI;EACzBwD,gBAAgB,EAAE,IAAI;EACtBJ,cAAc,EAAE,IAAI;EACpBE,mBAAmB,EAAE,IAAI;EACzBD,QAAQ,EAAE,KAAK;EACftE,IAAI,EAAE,IAAI;EACVsH,IAAI,EAAE,IAAI;EACVxF,SAAS,EAAE,IAAI;EAEf0C,SAAS,EAAE,IAAI;EACfG,gBAAgB,EAAE,IAAI;EACtBD,QAAQ,EAAE,IAAI;EAEd6C,SAAS,EAAE,IAAI;EACfC,QAAQ,EAAE,IAAI;EACdC,OAAO,EAAE,IAAI;EACbC,WAAW,EAAE,IAAI;EACjB1I,eAAe,EAAE;AACnB,CAAC;AAAA2I,OAAA,CAAAC,GAAA,CAAAC,QAAA,oBAvHkBrJ,QAAQ,CAGpBsJ,SAAS,GAAAxC,aAAA,CAAAA,aAAA;EACdzG,KAAK,EAAE5B,SAAS,CAAC8K,MAAM;EACvB1G,EAAE,EAAEpE,SAAS,CAAC8K,MAAM;EACpBzE,KAAK,EAAErG,SAAS,CAAC+K,SAAS,CAAC,CACzB/K,SAAS,CAAC8K,MAAM,EAChB9K,SAAS,CAACgL,IAAI,EACdhL,SAAS,CAACiL,IAAI,CACf,CAAC;EACF3E,eAAe,EAAEtG,SAAS,CAACkL,KAAK,CAAC,CAAC,YAAY,EAAE,UAAU,CAAC,CAAC;EAC5D3E,aAAa,EAAEvG,SAAS,CAAC+K,SAAS,CAAC,CAAC/K,SAAS,CAAC8K,MAAM,EAAE9K,SAAS,CAACmL,IAAI,CAAC,CAAC;EACtE3E,MAAM,EAAExG,SAAS,CAAC+K,SAAS,CAAC,CAC1B/K,SAAS,CAAC8K,MAAM,EAChB9K,SAAS,CAACmL,IAAI,EACdnL,SAAS,CAACgL,IAAI,EACdhL,SAAS,CAACiL,IAAI,CACf,CAAC;EACFjJ,cAAc,EAAEhC,SAAS,CAAC8K,MAAM;EAChCrE,YAAY,EAAEzG,SAAS,CAAC8K,MAAM;EAC9BpE,YAAY,EAAE1G,SAAS,CAACoL,MAAM;EAC9BzE,mBAAmB,EAAE3G,SAAS,CAAC+K,SAAS,CAAC,CACvC/K,SAAS,CAAC8K,MAAM,EAChB9K,SAAS,CAACmL,IAAI,CACf,CAAC;EACFvE,YAAY,EAAE5G,SAAS,CAACqL,KAAK,CAAC;IAC5BjH,EAAE,EAAEpE,SAAS,CAAC8K,MAAM;IACpBQ,OAAO,EAAEtL,SAAS,CAAC+K,SAAS,CAAC,CAAC/K,SAAS,CAAC8K,MAAM,EAAE9K,SAAS,CAACiL,IAAI,CAAC;EACjE,CAAC,CAAC;EACFpE,MAAM,EAAE7G,SAAS,CAAC+K,SAAS,CAAC,CAC1B/K,SAAS,CAAC8K,MAAM,EAChB9K,SAAS,CAACgL,IAAI,EACdhL,SAAS,CAACiL,IAAI,CACf,CAAC;EACFjE,WAAW,EAAEhH,SAAS,CAACiL,IAAI;EAC3BhE,eAAe,EAAEjH,SAAS,CAACmL,IAAI;EAC/BjE,KAAK,EAAElH,SAAS,CAACkL,KAAK,CAAC,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;EACzC/D,IAAI,EAAEnH,SAAS,CAACkL,KAAK,CAAC,CAAC,OAAO,EAAE,QAAQ,EAAE,OAAO,CAAC,CAAC;EACnDnE,OAAO,EAAE/G,SAAS,CAAC+K,SAAS,CAAC,CAAC/K,SAAS,CAAC8K,MAAM,EAAE9K,SAAS,CAACmL,IAAI,CAAC,CAAC;EAChErE,QAAQ,EAAE9G,SAAS,CAAC+K,SAAS,CAAC,CAAC/K,SAAS,CAAC8K,MAAM,EAAE9K,SAAS,CAACmL,IAAI,CAAC,CAAC;EACjEpF,QAAQ,EAAE/F,SAAS,CAAC+K,SAAS,CAAC,CAAC/K,SAAS,CAAC8K,MAAM,EAAE9K,SAAS,CAACmL,IAAI,CAAC,CAAC;EACjE3D,gBAAgB,EAAExH,SAAS,CAAC+K,SAAS,CAAC,CACpC/K,SAAS,CAACqL,KAAK,CAAC;IACdnB,GAAG,EAAElK,SAAS,CAACuL,MAAM;IACrBC,OAAO,EAAExL,SAAS,CAACkL,KAAK,CAAC,CAAC,MAAM,EAAE,IAAI,CAAC;EACzC,CAAC,CAAC,EACFlL,SAAS,CAACuL,MAAM,CACjB,CAAC;EACF1I,UAAU,EAAE7C,SAAS,CAAC+K,SAAS,CAAC,CAAC/K,SAAS,CAAC8K,MAAM,EAAE9K,SAAS,CAACmL,IAAI,CAAC,CAAC;EACnEnH,mBAAmB,EAAEhE,SAAS,CAAC+K,SAAS,CAAC,CACvC/K,SAAS,CAAC8K,MAAM,EAChB9K,SAAS,CAACuL,MAAM,CACjB,CAAC;EACFnE,cAAc,EAAEpH,SAAS,CAAC8K,MAAM;EAChCxD,mBAAmB,EAAEtH,SAAS,CAAC+K,SAAS,CAAC,CACvC/K,SAAS,CAAC8K,MAAM,EAChB9K,SAAS,CAACoL,MAAM,CACjB,CAAC;EACF/D,QAAQ,EAAErH,SAAS,CAAC+K,SAAS,CAAC,CAAC/K,SAAS,CAAC8K,MAAM,EAAE9K,SAAS,CAACmL,IAAI,CAAC,CAAC;EACjEpI,IAAI,EAAE/C,SAAS,CAAC+K,SAAS,CAAC,CAAC/K,SAAS,CAACuL,MAAM,EAAEvL,SAAS,CAAC8K,MAAM,CAAC,CAAC;EAC/DT,IAAI,EAAErK,SAAS,CAAC+K,SAAS,CAAC,CAAC/K,SAAS,CAACuL,MAAM,EAAEvL,SAAS,CAAC8K,MAAM,CAAC,CAAC;EAC/DjG,SAAS,EAAE7E,SAAS,CAAC+K,SAAS,CAAC,CAAC/K,SAAS,CAACgL,IAAI,EAAEhL,SAAS,CAACoL,MAAM,CAAC;AAAC,GAE/DnK,gBAAgB;EAEnBsG,SAAS,EAAEvH,SAAS,CAAC8K,MAAM;EAC3BpD,gBAAgB,EAAE1H,SAAS,CAAC+K,SAAS,CAAC,CACpC/K,SAAS,CAACgL,IAAI,EACdhL,SAAS,CAACiL,IAAI,CACf,CAAC;EACFxD,QAAQ,EAAEzH,SAAS,CAAC+K,SAAS,CAAC,CAAC/K,SAAS,CAACiL,IAAI,EAAEjL,SAAS,CAACgL,IAAI,CAAC,CAAC;EAE/DV,SAAS,EAAEtK,SAAS,CAACgL,IAAI;EACzBT,QAAQ,EAAEvK,SAAS,CAACgL,IAAI;EACxBR,OAAO,EAAExK,SAAS,CAACgL,IAAI;EACvBP,WAAW,EAAEzK,SAAS,CAACgL,IAAI;EAC3BjJ,eAAe,EAAE/B,SAAS,CAACgL;AAAI;AA6enCzJ,QAAQ,CAACkK,YAAY,GAAG,IAAI;AAC5BlK,QAAQ,CAACmK,qBAAqB,GAAG,IAAI"}
1
+ {"version":3,"file":"Textarea.js","names":["React","PropTypes","classnames","FormLabel","FormStatus","TextCounter","isTrue","makeUniqueId","extendPropsWithContextInClassComponent","validateDOMAttributes","processChildren","getStatusState","combineDescribedBy","warn","dispatchCustomElementEvent","convertJsxToString","pickFormElementProps","AlignmentHelper","spacingPropTypes","createSpacingClasses","skeletonDOMAttributes","createSkeletonClass","Context","Suffix","Textarea","PureComponent","getDerivedStateFromProps","props","state","value","getValue","_value","on_state_update","textarea_state","textareaState","hasValue","String","length","constructor","_defineProperty","event","_ref","current","setState","target","getProps","autoresize","prepareAutosize","rows","getRows","ret","setAutosize","elem","style","height","e","_heightOffset","offsetHeight","clientHeight","lineHeight","getLineHeight","newHeight","scrollHeight","maxRows","parseFloat","autoresize_max_rows","maxHeight","createRef","_id","id","navigator","resizeModifier","test","userAgent","platform","error","console","componentDidMount","inner_ref","window","resizeObserver","ResizeObserver","entries","requestAnimationFrame","Array","isArray","observe","document","body","addEventListener","componentWillUnmount","disconnect","removeEventListener","Math","floor","getComputedStyle","_this$context","_this$context2","_this$context3","defaultProps","skeleton","context","getTranslation","FormRow","formElement","render","label","label_direction","label_sr_only","status","status_state","status_props","status_no_animation","globalStatus","suffix","disabled","stretch","placeholder","keepPlaceholder","align","size","textarea_class","readOnly","textarea_attributes","className","characterCounter","children","textarea_element","_textarea_element","attributes","_objectWithoutProperties","_excluded","showStatus","TextareaElement","textareaAttributes","JSON","parse","textareaParams","_objectSpread","role","name","undefined","onChange","onChangeHandler","onFocus","onFocusHandler","onBlur","onBlurHandler","onKeyDown","onKeyDownHandler","mainParams","innerParams","shellParams","placeholderStyle","createElement","forId","text","labelDirection","srOnly","_AlignmentHelper","_extends","show","text_id","no_animation","ref","_span","top","max","lang","locale","cols","on_change","on_focus","on_blur","on_key_down","process","env","NODE_ENV","propTypes","string","oneOfType","func","node","oneOf","bool","object","shape","message","number","variant","_formElement","_supportsSpacingProps"],"sources":["../../../../src/components/textarea/Textarea.js"],"sourcesContent":["/**\n * Web Textarea Component\n *\n * This is a legacy component.\n * For referencing while developing new features, please use a Functional component.\n */\n\nimport React from 'react'\nimport PropTypes from 'prop-types'\nimport classnames from 'classnames'\nimport FormLabel from '../form-label/FormLabel'\nimport FormStatus from '../form-status/FormStatus'\nimport TextCounter from '../../fragments/text-counter/TextCounter'\nimport {\n isTrue,\n makeUniqueId,\n extendPropsWithContextInClassComponent,\n validateDOMAttributes,\n processChildren,\n getStatusState,\n combineDescribedBy,\n warn,\n dispatchCustomElementEvent,\n convertJsxToString,\n} from '../../shared/component-helper'\nimport { pickFormElementProps } from '../../shared/helpers/filterValidProps'\nimport AlignmentHelper from '../../shared/AlignmentHelper'\nimport {\n spacingPropTypes,\n createSpacingClasses,\n} from '../space/SpacingHelper'\nimport {\n skeletonDOMAttributes,\n createSkeletonClass,\n} from '../skeleton/SkeletonHelper'\n\nimport Context from '../../shared/Context'\nimport Suffix from '../../shared/helpers/Suffix'\n\n/**\n * The textarea component is an umbrella component for all textareas which share the same style as the classic `text` textarea field.\n */\nexport default class Textarea extends React.PureComponent {\n static contextType = Context\n\n static propTypes = {\n value: PropTypes.string,\n id: PropTypes.string,\n label: PropTypes.oneOfType([\n PropTypes.string,\n PropTypes.func,\n PropTypes.node,\n ]),\n label_direction: PropTypes.oneOf(['horizontal', 'vertical']),\n label_sr_only: PropTypes.oneOfType([PropTypes.string, PropTypes.bool]),\n status: PropTypes.oneOfType([\n PropTypes.string,\n PropTypes.bool,\n PropTypes.func,\n PropTypes.node,\n ]),\n textarea_state: PropTypes.string,\n status_state: PropTypes.string,\n status_props: PropTypes.object,\n status_no_animation: PropTypes.oneOfType([\n PropTypes.string,\n PropTypes.bool,\n ]),\n globalStatus: PropTypes.shape({\n id: PropTypes.string,\n message: PropTypes.oneOfType([PropTypes.string, PropTypes.node]),\n }),\n suffix: PropTypes.oneOfType([\n PropTypes.string,\n PropTypes.func,\n PropTypes.node,\n ]),\n placeholder: PropTypes.node,\n keepPlaceholder: PropTypes.bool,\n align: PropTypes.oneOf(['left', 'right']),\n size: PropTypes.oneOf(['small', 'medium', 'large']),\n stretch: PropTypes.oneOfType([PropTypes.string, PropTypes.bool]),\n disabled: PropTypes.oneOfType([PropTypes.string, PropTypes.bool]),\n skeleton: PropTypes.oneOfType([PropTypes.string, PropTypes.bool]),\n characterCounter: PropTypes.oneOfType([\n PropTypes.shape({\n max: PropTypes.number,\n variant: PropTypes.oneOf(['down', 'up']),\n }),\n PropTypes.number,\n ]),\n autoresize: PropTypes.oneOfType([PropTypes.string, PropTypes.bool]),\n autoresize_max_rows: PropTypes.oneOfType([\n PropTypes.string,\n PropTypes.number,\n ]),\n textarea_class: PropTypes.string,\n textarea_attributes: PropTypes.oneOfType([\n PropTypes.string,\n PropTypes.object,\n ]),\n readOnly: PropTypes.oneOfType([PropTypes.string, PropTypes.bool]),\n rows: PropTypes.oneOfType([PropTypes.number, PropTypes.string]),\n cols: PropTypes.oneOfType([PropTypes.number, PropTypes.string]),\n inner_ref: PropTypes.oneOfType([PropTypes.func, PropTypes.object]),\n\n ...spacingPropTypes,\n\n className: PropTypes.string,\n textarea_element: PropTypes.oneOfType([\n PropTypes.func,\n PropTypes.node,\n ]),\n children: PropTypes.oneOfType([PropTypes.node, PropTypes.func]),\n\n on_change: PropTypes.func,\n on_focus: PropTypes.func,\n on_blur: PropTypes.func,\n on_key_down: PropTypes.func,\n on_state_update: PropTypes.func,\n }\n\n static defaultProps = {\n value: 'initval',\n id: null,\n label: null,\n label_direction: null,\n label_sr_only: null,\n status: null,\n textarea_state: null,\n status_state: 'error',\n status_props: null,\n status_no_animation: null,\n globalStatus: null,\n suffix: null,\n placeholder: null,\n keepPlaceholder: null,\n align: null,\n size: null,\n stretch: null,\n disabled: null,\n skeleton: null,\n autoresize: null,\n autoresize_max_rows: null,\n characterCounter: null,\n textarea_class: null,\n textarea_attributes: null,\n readOnly: false,\n rows: null,\n cols: null,\n inner_ref: null,\n\n className: null,\n textarea_element: null,\n children: null,\n\n on_change: null,\n on_focus: null,\n on_blur: null,\n on_key_down: null,\n on_state_update: null,\n }\n\n static getDerivedStateFromProps(props, state) {\n const value = Textarea.getValue(props)\n if (\n value !== 'initval' &&\n value !== state.value &&\n value !== state._value\n ) {\n if (\n value !== state.value &&\n typeof props.on_state_update === 'function'\n ) {\n dispatchCustomElementEvent({ props }, 'on_state_update', { value })\n }\n state.value = value\n }\n if (props.textarea_state) {\n state.textareaState = props.textarea_state\n }\n state._value = props.value\n return state\n }\n\n static hasValue(value) {\n return (\n ((typeof value === 'string' || typeof value === 'number') &&\n String(value).length > 0) ||\n false\n )\n }\n\n static getValue(props) {\n const value = processChildren(props)\n if (value === '' || Textarea.hasValue(value)) {\n return value\n }\n return props.value\n }\n\n state = {\n textareaState: 'virgin',\n value: null,\n _value: null,\n }\n\n constructor(props) {\n super(props)\n\n this._ref = React.createRef()\n this._id = props.id || makeUniqueId() // cause we need an id anyway\n\n if (props.textarea_state) {\n this.state.textareaState = props.textarea_state\n }\n\n try {\n if (typeof navigator !== 'undefined') {\n this.resizeModifier =\n /Firefox|Edg/.test(navigator.userAgent) ||\n (/Chrome/.test(navigator.userAgent) &&\n /Win/.test(navigator.platform))\n ? 'large'\n : false\n\n if (!this.resizeModifier) {\n this.resizeModifier =\n /Safari|Chrome/.test(navigator.userAgent) &&\n /Mac/.test(navigator.platform)\n ? 'medium'\n : false\n }\n }\n } catch (error) {\n console.error(error)\n }\n }\n componentDidMount() {\n const props = this.getProps()\n if (props.inner_ref) {\n typeof props.inner_ref === 'function'\n ? props.inner_ref(this._ref.current)\n : (props.inner_ref.current = this._ref.current)\n }\n\n if (isTrue(props.autoresize) && typeof window !== 'undefined') {\n this.setAutosize()\n try {\n this.resizeObserver = new ResizeObserver((entries) => {\n window.requestAnimationFrame(() => {\n if (!Array.isArray(entries) || !entries.length) {\n return\n }\n this.setAutosize()\n })\n })\n this.resizeObserver.observe(document.body)\n } catch (e) {\n window.addEventListener('resize', this.setAutosize)\n }\n }\n }\n componentWillUnmount() {\n if (this.resizeObserver) {\n this.resizeObserver.disconnect()\n this.resizeObserver = null\n }\n if (typeof window !== 'undefined') {\n window.removeEventListener('resize', this.setAutosize)\n }\n }\n onFocusHandler = (event) => {\n const { value } = this._ref.current\n this.setState({\n value,\n textareaState: 'focus',\n })\n dispatchCustomElementEvent(this, 'on_focus', { value, event })\n }\n onBlurHandler = (event) => {\n const { value } = event.target\n this.setState({\n value,\n textareaState: Textarea.hasValue(value) ? 'dirty' : 'initial',\n })\n dispatchCustomElementEvent(this, 'on_blur', { value, event })\n }\n onChangeHandler = (event) => {\n const { value } = event.target\n\n const props = this.getProps()\n const autoresize = isTrue(props.autoresize)\n\n if (autoresize) {\n this.prepareAutosize()\n }\n\n const rows = this.getRows(value)\n\n const ret = dispatchCustomElementEvent(this, 'on_change', {\n value,\n rows,\n event,\n })\n if (ret !== false) {\n this.setState({ value })\n if (autoresize) {\n this.setAutosize(rows)\n }\n }\n }\n onKeyDownHandler = (event) => {\n const rows = this.getRows()\n const { value } = event.target\n dispatchCustomElementEvent(this, 'on_key_down', {\n value,\n rows,\n event,\n })\n }\n prepareAutosize = () => {\n const elem = this._ref.current\n if (!elem) {\n return // stop here if no element was gotten\n }\n try {\n elem.style.height = 'auto'\n } catch (e) {\n warn(e)\n }\n }\n setAutosize = (rows = null) => {\n const elem = this._ref.current\n if (!elem) {\n return // stop here if no element was gotten\n }\n try {\n if (typeof this._heightOffset === 'undefined') {\n this._heightOffset = elem.offsetHeight - elem.clientHeight\n }\n\n elem.style.height = 'auto'\n\n // get rows after we set height to auto, this way we get 100% correct rows\n const lineHeight = this.getLineHeight()\n let newHeight = elem.scrollHeight + this._heightOffset\n if (!rows) {\n rows = this.getRows()\n }\n\n if (rows === 1) {\n if (newHeight > lineHeight) {\n newHeight = lineHeight\n }\n }\n\n const props = this.getProps()\n const maxRows = parseFloat(props.autoresize_max_rows)\n if (maxRows > 0) {\n const maxHeight = maxRows * lineHeight\n\n if (rows > maxRows || newHeight > maxHeight) {\n newHeight = maxHeight\n }\n }\n\n elem.style.height = newHeight + 'px'\n } catch (e) {\n warn(e)\n }\n }\n getRows() {\n return (\n Math.floor(this._ref.current.scrollHeight / this.getLineHeight()) ||\n 1\n )\n }\n getLineHeight() {\n return parseFloat(getComputedStyle(this._ref.current).lineHeight) || 0\n }\n getProps() {\n return extendPropsWithContextInClassComponent(\n this.props,\n Textarea.defaultProps,\n { skeleton: this.context?.skeleton },\n this.context.getTranslation(this.props).Textarea,\n // Deprecated – can be removed in v11\n pickFormElementProps(this.context?.FormRow),\n pickFormElementProps(this.context?.formElement),\n this.context.Textarea\n )\n }\n render() {\n // use only the props from context, who are available here anyway\n const props = this.getProps()\n\n const {\n label,\n label_direction,\n label_sr_only,\n status,\n status_state,\n status_props,\n status_no_animation,\n globalStatus,\n suffix,\n disabled,\n skeleton,\n stretch,\n placeholder,\n keepPlaceholder,\n align,\n size,\n textarea_class,\n readOnly,\n textarea_attributes,\n className,\n autoresize,\n characterCounter,\n autoresize_max_rows, //eslint-disable-line\n id: _id, //eslint-disable-line\n children, //eslint-disable-line\n value: _value, //eslint-disable-line\n textarea_element: _textarea_element, //eslint-disable-line\n\n ...attributes\n } = props\n\n const { value, textareaState } = this.state\n\n const id = this._id\n const showStatus = getStatusState(status)\n const hasValue = Textarea.hasValue(value)\n\n // pass along all props we wish to have as params\n let { textarea_element: TextareaElement } = props\n\n const textareaAttributes = textarea_attributes\n ? typeof textarea_attributes === 'string'\n ? JSON.parse(textarea_attributes)\n : textarea_attributes\n : {}\n\n const textareaParams = {\n className: classnames(\n 'dnb-textarea__textarea',\n 'dnb-input__border',\n textarea_class\n ),\n role: 'textbox',\n value: hasValue ? value : '',\n id,\n name: id,\n disabled: isTrue(disabled) || isTrue(skeleton),\n 'aria-placeholder': placeholder\n ? convertJsxToString(placeholder)\n : undefined,\n ...attributes,\n ...textareaAttributes,\n onChange: this.onChangeHandler,\n onFocus: this.onFocusHandler,\n onBlur: this.onBlurHandler,\n // onPaste: this.onChangeHandler,\n onKeyDown: this.onKeyDownHandler,\n }\n\n // we may consider using: aria-details\n if (showStatus || suffix) {\n textareaParams['aria-describedby'] = combineDescribedBy(\n textareaParams,\n showStatus ? id + '-status' : null,\n suffix ? id + '-suffix' : null\n )\n }\n if (readOnly) {\n textareaParams['aria-readonly'] = textareaParams.readOnly = true\n }\n\n const mainParams = {\n className: classnames(\n 'dnb-textarea',\n `dnb-textarea--${textareaState}`,\n disabled && 'dnb-textarea--disabled',\n hasValue && 'dnb-textarea--has-content',\n align && `dnb-textarea__align--${align}`,\n size && `dnb-textarea__size--${size}`,\n status && `dnb-textarea__status--${status_state}`,\n autoresize && 'dnb-textarea__autoresize',\n !autoresize &&\n this.resizeModifier &&\n `dnb-textarea__resize--${this.resizeModifier}`,\n label_direction && `dnb-textarea--${label_direction}`,\n isTrue(stretch) && `dnb-textarea--stretch`,\n isTrue(keepPlaceholder) && `dnb-textarea--keep-placeholder`,\n 'dnb-form-component',\n createSkeletonClass(null, skeleton),\n createSpacingClasses(props),\n className\n ),\n }\n\n const innerParams = {\n className: classnames(\n 'dnb-textarea__inner',\n createSkeletonClass('shape', skeleton, this.context)\n ),\n }\n\n const shellParams = {\n className: classnames('dnb-textarea__shell'),\n }\n\n if (isTrue(disabled) || isTrue(skeleton)) {\n shellParams['aria-disabled'] = true\n }\n\n // to show the ending dots on a placeholder, if the text is longer\n const placeholderStyle =\n parseFloat(props.rows) > 0\n ? {\n '--textarea-rows': parseFloat(props.rows),\n }\n : null\n\n skeletonDOMAttributes(innerParams, skeleton, this.context)\n\n // also used for code markup simulation\n validateDOMAttributes(this.props, textareaParams)\n validateDOMAttributes(null, innerParams)\n validateDOMAttributes(null, shellParams)\n\n if (TextareaElement && typeof TextareaElement === 'function') {\n TextareaElement = TextareaElement(textareaParams, this._ref)\n } else if (!TextareaElement && _textarea_element) {\n TextareaElement = _textarea_element\n }\n\n return (\n <span {...mainParams}>\n {label && (\n <FormLabel\n id={id + '-label'}\n forId={id}\n text={label}\n labelDirection={label_direction}\n srOnly={label_sr_only}\n disabled={disabled}\n skeleton={skeleton}\n />\n )}\n\n <span {...innerParams}>\n <AlignmentHelper />\n\n <FormStatus\n show={showStatus}\n id={id + '-form-status'}\n globalStatus={globalStatus}\n label={label}\n text_id={id + '-status'} // used for \"aria-describedby\"\n text={status}\n state={status_state}\n no_animation={status_no_animation}\n skeleton={skeleton}\n {...status_props}\n />\n\n <span className=\"dnb-textarea__row\">\n <span {...shellParams}>\n {TextareaElement || (\n <textarea ref={this._ref} {...textareaParams} />\n )}\n\n {!hasValue &&\n placeholder &&\n (textareaState !== 'focus' || keepPlaceholder) && (\n <span\n className={classnames(\n 'dnb-textarea__placeholder',\n align ? `dnb-textarea__align--${align}` : null\n )}\n style={placeholderStyle}\n aria-hidden\n >\n {placeholder}\n </span>\n )}\n\n <span className=\"dnb-textarea__state\" />\n </span>\n\n {suffix && (\n <Suffix\n className=\"dnb-textarea__suffix\"\n id={id + '-suffix'} // used for \"aria-describedby\"\n context={props}\n >\n {suffix}\n </Suffix>\n )}\n </span>\n\n {characterCounter && (\n <TextCounter\n top=\"x-small\"\n text={value}\n max={characterCounter}\n lang={props.lang}\n locale={props.locale}\n {...characterCounter}\n />\n )}\n </span>\n </span>\n )\n }\n}\n\nTextarea._formElement = true\nTextarea._supportsSpacingProps = true\n"],"mappings":"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"}
@@ -151,7 +151,7 @@
151
151
  --dt-max-width: 40%;
152
152
  --dd-max-width: calc(60% - 1rem); // minus margin-right and the gap
153
153
 
154
- // We can not use gap: 0.5rem because of our wrapper "__item"
154
+ // We cannot use gap: 0.5rem because of our wrapper "__item"
155
155
  display: flex;
156
156
  flex-wrap: wrap;
157
157
  max-width: 60ch; // to enhance readability
@@ -0,0 +1 @@
1
+ export * as postalCode from './postalCode';
@@ -0,0 +1 @@
1
+ export * as postalCode from './postalCode';
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","names":["postalCode"],"sources":["../../../../../../src/extensions/forms/Connectors/Bring/index.ts"],"sourcesContent":["export * as postalCode from './postalCode'\n"],"mappings":"AAAA,OAAO,KAAKA,UAAU,MAAM,cAAc"}
@@ -0,0 +1,25 @@
1
+ import type { UseFieldProps } from '../../types';
2
+ import { GeneralConfig, HandlerConfig, PreResponseResolver, ResponseResolver } from '../createContext';
3
+ export declare const supportedCountryCodes: string[];
4
+ export declare const unsupportedCountryCodeMessage = "Postal code verification is not supported for {countryCode}.";
5
+ export type PostalCodeResolverData = {
6
+ postal_codes: {
7
+ postal_code: string;
8
+ city: string;
9
+ }[];
10
+ };
11
+ export type PostalCodeResolverPayload = {
12
+ city: string;
13
+ };
14
+ export declare const preResponseResolver: PreResponseResolver;
15
+ export declare const responseResolver: ResponseResolver<PostalCodeResolverData, PostalCodeResolverPayload>;
16
+ export declare function autofill(generalConfig: GeneralConfig, handlerConfig?: HandlerConfig & {
17
+ cityPath: string;
18
+ }): UseFieldProps<string>['onChange'];
19
+ export declare function validator(generalConfig: GeneralConfig, handlerConfig?: HandlerConfig): UseFieldProps<string>['onChangeValidator'] | UseFieldProps<string>['onBlurValidator'];
20
+ export declare function getMockData(countryCode?: string): {
21
+ postal_codes: {
22
+ city: string;
23
+ postal_code: string;
24
+ }[];
25
+ };
@@ -0,0 +1,150 @@
1
+ import { FormError } from '../../utils';
2
+ import { fetchData, getCountryCodeValue, handleCountryPath } from '../createContext';
3
+ export const supportedCountryCodes = ['NO', 'DK', 'SE', 'FI', 'NL', 'DE', 'US', 'BE', 'FO', 'GL', 'IS', 'SJ'];
4
+ export const unsupportedCountryCodeMessage = 'Postal code verification is not supported for {countryCode}.';
5
+ export const preResponseResolver = ({
6
+ value
7
+ }) => {
8
+ if (!value) {
9
+ return {
10
+ postal_codes: []
11
+ };
12
+ }
13
+ };
14
+ export const responseResolver = (data, handlerConfig) => {
15
+ var _data$postal_codes;
16
+ const resolver = handlerConfig === null || handlerConfig === void 0 ? void 0 : handlerConfig.responseResolver;
17
+ if (typeof resolver === 'function') {
18
+ return resolver(data);
19
+ }
20
+ const {
21
+ postal_code,
22
+ city
23
+ } = (data === null || data === void 0 ? void 0 : (_data$postal_codes = data.postal_codes) === null || _data$postal_codes === void 0 ? void 0 : _data$postal_codes[0]) || {};
24
+ return {
25
+ matcher: value => value === postal_code,
26
+ payload: {
27
+ city
28
+ }
29
+ };
30
+ };
31
+ export function autofill(generalConfig, handlerConfig) {
32
+ const abortControllerRef = {
33
+ current: null
34
+ };
35
+ return async function autofillHandler(value, additionalArgs) {
36
+ if (!(typeof value === 'string' && value.length >= 4)) {
37
+ return;
38
+ }
39
+ const {
40
+ countryCode
41
+ } = handleCountryPath({
42
+ value,
43
+ additionalArgs,
44
+ handler: autofillHandler
45
+ });
46
+ if (countryCode && !supportedCountryCodes.includes(countryCode)) {
47
+ return;
48
+ }
49
+ try {
50
+ var _handlerConfig$preRes;
51
+ const parameters = {
52
+ countryCode: String(countryCode).toLowerCase()
53
+ };
54
+ const {
55
+ data
56
+ } = await fetchData(value, {
57
+ generalConfig,
58
+ parameters,
59
+ abortControllerRef,
60
+ preResponseResolver: (_handlerConfig$preRes = handlerConfig === null || handlerConfig === void 0 ? void 0 : handlerConfig.preResponseResolver) !== null && _handlerConfig$preRes !== void 0 ? _handlerConfig$preRes : preResponseResolver
61
+ });
62
+ const onMatch = payload => {
63
+ const {
64
+ cityPath
65
+ } = handlerConfig || {};
66
+ if (cityPath) {
67
+ if (!additionalArgs.dataContext) {
68
+ throw new Error('No data context found in the postalCode connector');
69
+ }
70
+ additionalArgs.dataContext.handlePathChangeUnvalidated(cityPath, payload.city);
71
+ }
72
+ };
73
+ const {
74
+ matcher,
75
+ payload
76
+ } = responseResolver(data, handlerConfig);
77
+ const match = matcher(value);
78
+ if (match) {
79
+ return onMatch(payload);
80
+ }
81
+ } catch (error) {
82
+ return error;
83
+ }
84
+ };
85
+ }
86
+ export function validator(generalConfig, handlerConfig) {
87
+ const abortControllerRef = {
88
+ current: null
89
+ };
90
+ return async function validatorHandler(value, additionalArgs) {
91
+ if (!(typeof value === 'string' && value.length >= 4)) {
92
+ return;
93
+ }
94
+ const {
95
+ countryCode
96
+ } = getCountryCodeValue({
97
+ additionalArgs
98
+ });
99
+ if (countryCode && !supportedCountryCodes.includes(countryCode)) {
100
+ return new Error(unsupportedCountryCodeMessage.replace('{countryCode}', countryCode));
101
+ }
102
+ try {
103
+ var _handlerConfig$preRes2;
104
+ const parameters = {
105
+ countryCode: String(countryCode).toLowerCase()
106
+ };
107
+ const {
108
+ data,
109
+ status
110
+ } = await fetchData(value, {
111
+ generalConfig,
112
+ parameters,
113
+ abortControllerRef,
114
+ preResponseResolver: (_handlerConfig$preRes2 = handlerConfig === null || handlerConfig === void 0 ? void 0 : handlerConfig.preResponseResolver) !== null && _handlerConfig$preRes2 !== void 0 ? _handlerConfig$preRes2 : preResponseResolver
115
+ });
116
+ const onMatch = () => {
117
+ return new FormError('PostalCodeAndCity.invalidCode');
118
+ };
119
+ const {
120
+ matcher
121
+ } = responseResolver(data, handlerConfig);
122
+ const match = matcher(value);
123
+ if (status !== 400 && !match) {
124
+ return onMatch();
125
+ }
126
+ } catch (error) {
127
+ return error;
128
+ }
129
+ };
130
+ }
131
+ export function getMockData(countryCode) {
132
+ switch (String(countryCode).toUpperCase()) {
133
+ case 'SE':
134
+ return {
135
+ postal_codes: [{
136
+ city: 'Stockholm',
137
+ postal_code: '11432'
138
+ }]
139
+ };
140
+ case 'NO':
141
+ default:
142
+ return {
143
+ postal_codes: [{
144
+ city: 'Vollen',
145
+ postal_code: '1391'
146
+ }]
147
+ };
148
+ }
149
+ }
150
+ //# sourceMappingURL=postalCode.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"postalCode.js","names":["FormError","fetchData","getCountryCodeValue","handleCountryPath","supportedCountryCodes","unsupportedCountryCodeMessage","preResponseResolver","value","postal_codes","responseResolver","data","handlerConfig","_data$postal_codes","resolver","postal_code","city","matcher","payload","autofill","generalConfig","abortControllerRef","current","autofillHandler","additionalArgs","length","countryCode","handler","includes","_handlerConfig$preRes","parameters","String","toLowerCase","onMatch","cityPath","dataContext","Error","handlePathChangeUnvalidated","match","error","validator","validatorHandler","replace","_handlerConfig$preRes2","status","getMockData","toUpperCase"],"sources":["../../../../../../src/extensions/forms/Connectors/Bring/postalCode.ts"],"sourcesContent":["import type { UseFieldProps } from '../../types'\nimport { FormError } from '../../utils'\nimport {\n GeneralConfig,\n HandlerConfig,\n PreResponseResolver,\n ResponseResolver,\n fetchData,\n getCountryCodeValue,\n handleCountryPath,\n} from '../createContext'\n\nexport const supportedCountryCodes = [\n 'NO', // Norway\n 'DK', // Denmark\n 'SE', // Sweden\n 'FI', // Finland\n 'NL', // Netherlands\n 'DE', // Germany\n 'US', // United States\n 'BE', // Belgium\n 'FO', // Faroe Islands\n 'GL', // Greenland\n 'IS', // Iceland\n 'SJ', // Svalbard and Jan Mayen\n]\n\nexport const unsupportedCountryCodeMessage =\n 'Postal code verification is not supported for {countryCode}.'\n\nexport type PostalCodeResolverData = {\n postal_codes: { postal_code: string; city: string }[]\n}\nexport type PostalCodeResolverPayload = {\n city: string\n}\n\nexport const preResponseResolver: PreResponseResolver = ({ value }) => {\n if (!value) {\n return { postal_codes: [] }\n }\n}\n\nexport const responseResolver: ResponseResolver<\n PostalCodeResolverData,\n PostalCodeResolverPayload\n> = (data, handlerConfig) => {\n const resolver = handlerConfig?.responseResolver\n if (typeof resolver === 'function') {\n return resolver(data) as ReturnType<typeof resolver> & {\n payload: PostalCodeResolverPayload\n }\n }\n\n const { postal_code, city } = data?.postal_codes?.[0] || {}\n\n return {\n matcher: (value) => value === postal_code,\n payload: { city },\n }\n}\n\nexport function autofill(\n generalConfig: GeneralConfig,\n handlerConfig?: HandlerConfig & { cityPath: string }\n): UseFieldProps<string>['onChange'] {\n const abortControllerRef = { current: null }\n\n return async function autofillHandler(value, additionalArgs) {\n if (!(typeof value === 'string' && value.length >= 4)) {\n return // stop here\n }\n\n const { countryCode } = handleCountryPath({\n value,\n additionalArgs,\n handler: autofillHandler,\n })\n\n if (countryCode && !supportedCountryCodes.includes(countryCode)) {\n return // stop here\n }\n\n try {\n const parameters = {\n countryCode: String(countryCode).toLowerCase(),\n }\n const { data } = await fetchData<PostalCodeResolverData>(value, {\n generalConfig,\n parameters,\n abortControllerRef,\n preResponseResolver:\n handlerConfig?.preResponseResolver ?? preResponseResolver,\n })\n\n const onMatch = (payload: PostalCodeResolverPayload) => {\n const { cityPath } = handlerConfig || {}\n if (cityPath) {\n if (!additionalArgs.dataContext) {\n throw new Error(\n 'No data context found in the postalCode connector'\n )\n }\n additionalArgs.dataContext.handlePathChangeUnvalidated(\n cityPath,\n payload.city\n )\n }\n }\n\n const { matcher, payload } = responseResolver(data, handlerConfig)\n const match = matcher(value)\n\n if (match) {\n return onMatch(payload)\n }\n } catch (error) {\n return error\n }\n }\n}\n\nexport function validator(\n generalConfig: GeneralConfig,\n handlerConfig?: HandlerConfig\n):\n | UseFieldProps<string>['onChangeValidator']\n | UseFieldProps<string>['onBlurValidator'] {\n const abortControllerRef = { current: null }\n\n return async function validatorHandler(value, additionalArgs) {\n if (!(typeof value === 'string' && value.length >= 4)) {\n return // stop here\n }\n\n const { countryCode } = getCountryCodeValue({ additionalArgs })\n\n if (countryCode && !supportedCountryCodes.includes(countryCode)) {\n return new Error(\n unsupportedCountryCodeMessage.replace('{countryCode}', countryCode)\n )\n }\n\n try {\n const parameters = {\n countryCode: String(countryCode).toLowerCase(),\n }\n const { data, status } = await fetchData<PostalCodeResolverData>(\n value,\n {\n generalConfig,\n parameters,\n abortControllerRef,\n preResponseResolver:\n handlerConfig?.preResponseResolver ?? preResponseResolver,\n }\n )\n\n const onMatch = () => {\n return new FormError('PostalCodeAndCity.invalidCode')\n }\n\n const { matcher } = responseResolver(data, handlerConfig)\n const match = matcher(value)\n\n if (status !== 400 && !match) {\n return onMatch()\n }\n } catch (error) {\n return error\n }\n }\n}\n\nexport function getMockData(countryCode?: string) {\n switch (String(countryCode).toUpperCase()) {\n case 'SE':\n return {\n postal_codes: [\n {\n city: 'Stockholm',\n postal_code: '11432',\n },\n ],\n }\n case 'NO':\n default:\n return {\n postal_codes: [\n {\n city: 'Vollen',\n postal_code: '1391',\n },\n ],\n }\n }\n}\n"],"mappings":"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"}
@@ -0,0 +1,58 @@
1
+ import { ReceiveAdditionalEventArgs } from '../types';
2
+ export type UrlSecondParameter = {
3
+ countryCode: string;
4
+ };
5
+ export type GeneralConfig = {
6
+ fetchConfig?: {
7
+ url: string | ((value: string, { countryCode }: UrlSecondParameter) => string | Promise<string>);
8
+ headers?: HeadersInit;
9
+ };
10
+ };
11
+ export declare function createContext<GeneralConfigGeneric = GeneralConfig>(generalConfig?: GeneralConfigGeneric): {
12
+ withConfig<HandlerMethod extends (generalConfig: GeneralConfigGeneric, handlerConfig: unknown) => ReturnType<HandlerMethod>>(fn: HandlerMethod, handlerConfig?: Parameters<HandlerMethod>[1]): ReturnType<HandlerMethod>;
13
+ };
14
+ export type HandlerConfig = {
15
+ preResponseResolver?: PreResponseResolver;
16
+ responseResolver?: ResponseResolver;
17
+ };
18
+ export type PreResponseResolver = (fromField: {
19
+ value: string;
20
+ }) => unknown;
21
+ export type ResponseResolver<Response = unknown, Payload = Record<string, unknown>> = (response: Response, handlerConfig?: HandlerConfig) => {
22
+ /**
23
+ * The matcher to be used to determine if and how the connector,
24
+ * such as an validator for `onChangeValidator` or `onBlurValidator`,
25
+ * should validate the field value.
26
+ */
27
+ matcher?: (value: string) => boolean;
28
+ /**
29
+ * The payload to be returned and used by the connector.
30
+ */
31
+ payload?: Payload;
32
+ };
33
+ export type FetchDataFromAPIOptions = {
34
+ generalConfig: GeneralConfig;
35
+ parameters?: UrlSecondParameter;
36
+ abortControllerRef?: {
37
+ current: null | AbortController;
38
+ };
39
+ preResponseResolver?: PreResponseResolver;
40
+ };
41
+ export type FetchDataReturnValue<Data = unknown> = {
42
+ data: Data;
43
+ status: number;
44
+ };
45
+ export declare function fetchData<Data = unknown>(value: string, options: FetchDataFromAPIOptions): Promise<FetchDataReturnValue<Data>>;
46
+ export declare function getCountryCodeValue({ additionalArgs, }: {
47
+ additionalArgs: ReceiveAdditionalEventArgs<unknown>;
48
+ }): {
49
+ countryCode: string;
50
+ countryCodeValue: any;
51
+ };
52
+ export declare function handleCountryPath({ value, additionalArgs, handler, }: {
53
+ value: string;
54
+ additionalArgs: ReceiveAdditionalEventArgs<unknown>;
55
+ handler: (value: string, additionalArgs: ReceiveAdditionalEventArgs<unknown>) => void;
56
+ }): {
57
+ countryCode: string;
58
+ };