@dnb/eufemia 10.6.0 → 10.7.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 (393) hide show
  1. package/CHANGELOG.md +19 -0
  2. package/cjs/components/autocomplete/Autocomplete.d.ts +1 -1
  3. package/cjs/components/button/style/dnb-button--tertiary.css +53 -37
  4. package/cjs/components/button/style/dnb-button--tertiary.min.css +5 -1
  5. package/cjs/components/button/style/dnb-button--tertiary.scss +28 -34
  6. package/cjs/components/button/style/themes/button-mixins.scss +5 -3
  7. package/cjs/components/button/style/themes/dnb-button-theme-eiendom.css +53 -37
  8. package/cjs/components/button/style/themes/dnb-button-theme-eiendom.min.css +5 -1
  9. package/cjs/components/button/style/themes/dnb-button-theme-sbanken.css +155 -136
  10. package/cjs/components/button/style/themes/dnb-button-theme-sbanken.min.css +12 -2
  11. package/cjs/components/button/style/themes/dnb-button-theme-sbanken.scss +81 -115
  12. package/cjs/components/button/style/themes/dnb-button-theme-ui.css +53 -37
  13. package/cjs/components/button/style/themes/dnb-button-theme-ui.min.css +5 -1
  14. package/cjs/components/form-label/style/dnb-form-label.css +0 -1
  15. package/cjs/components/form-label/style/dnb-form-label.min.css +1 -1
  16. package/cjs/components/form-label/style/dnb-form-label.scss +0 -1
  17. package/cjs/components/form-label/style/themes/dnb-form-label-theme-sbanken.css +10 -0
  18. package/cjs/components/form-label/style/themes/dnb-form-label-theme-sbanken.min.css +1 -0
  19. package/cjs/components/form-label/style/themes/dnb-form-label-theme-sbanken.scss +16 -0
  20. package/cjs/components/form-label/style/themes/dnb-form-label-theme-ui.css +3 -0
  21. package/cjs/components/form-label/style/themes/dnb-form-label-theme-ui.min.css +1 -1
  22. package/cjs/components/form-label/style/themes/dnb-form-label-theme-ui.scss +6 -2
  23. package/cjs/components/form-row/style/themes/dnb-form-row-theme-sbanken.css +4 -0
  24. package/cjs/components/form-row/style/themes/dnb-form-row-theme-sbanken.min.css +0 -0
  25. package/cjs/components/form-row/style/themes/dnb-form-row-theme-sbanken.scss +4 -0
  26. package/cjs/components/input/style/themes/dnb-input-theme-sbanken.css +20 -20
  27. package/cjs/components/input/style/themes/dnb-input-theme-sbanken.min.css +1 -1
  28. package/cjs/components/input/style/themes/dnb-input-theme-sbanken.scss +15 -23
  29. package/cjs/components/pagination/style/dnb-pagination.css +20 -0
  30. package/cjs/components/pagination/style/dnb-pagination.min.css +1 -1
  31. package/cjs/components/pagination/style/dnb-pagination.scss +24 -0
  32. package/cjs/components/pagination/style/themes/dnb-pagination-theme-sbanken.css +26 -0
  33. package/cjs/components/pagination/style/themes/dnb-pagination-theme-sbanken.min.css +1 -0
  34. package/cjs/components/pagination/style/themes/dnb-pagination-theme-sbanken.scss +35 -0
  35. package/cjs/components/pagination/style/themes/dnb-pagination-theme-ui.css +0 -24
  36. package/cjs/components/pagination/style/themes/dnb-pagination-theme-ui.min.css +1 -1
  37. package/cjs/components/pagination/style/themes/dnb-pagination-theme-ui.scss +0 -30
  38. package/cjs/components/section/Section.d.ts +5 -0
  39. package/cjs/components/section/Section.js +3 -2
  40. package/cjs/components/section/Section.js.map +1 -1
  41. package/cjs/components/section/style/themes/dnb-section-theme-sbanken.css +39 -0
  42. package/cjs/components/section/style/themes/dnb-section-theme-sbanken.min.css +1 -0
  43. package/cjs/components/section/style/themes/dnb-section-theme-sbanken.scss +57 -0
  44. package/cjs/components/section/style/themes/dnb-section-theme-ui.css +19 -13
  45. package/cjs/components/section/style/themes/dnb-section-theme-ui.min.css +1 -1
  46. package/cjs/components/section/style/themes/dnb-section-theme-ui.scss +14 -5
  47. package/cjs/components/table/style/themes/dnb-table-theme-sbanken.css +56 -7
  48. package/cjs/components/table/style/themes/dnb-table-theme-sbanken.min.css +1 -1
  49. package/cjs/components/table/style/themes/dnb-table-theme-sbanken.scss +21 -5
  50. package/cjs/extensions/forms/DataContext/Provider.js +9 -9
  51. package/cjs/extensions/forms/DataContext/Provider.js.map +1 -1
  52. package/cjs/extensions/forms/Field/Number.js +4 -3
  53. package/cjs/extensions/forms/Field/Number.js.map +1 -1
  54. package/cjs/extensions/forms/Field/PhoneNumber.d.ts +1 -1
  55. package/cjs/extensions/forms/Field/PhoneNumber.js +1 -1
  56. package/cjs/extensions/forms/Field/PhoneNumber.js.map +1 -1
  57. package/cjs/extensions/forms/Field/PostalCodeAndCity.d.ts +1 -1
  58. package/cjs/extensions/forms/Field/PostalCodeAndCity.js +1 -1
  59. package/cjs/extensions/forms/Field/PostalCodeAndCity.js.map +1 -1
  60. package/cjs/extensions/forms/Field/Selection.d.ts +1 -1
  61. package/cjs/extensions/forms/Field/Selection.js +1 -1
  62. package/cjs/extensions/forms/Field/Selection.js.map +1 -1
  63. package/cjs/extensions/forms/Field/String.js +6 -5
  64. package/cjs/extensions/forms/Field/String.js.map +1 -1
  65. package/cjs/extensions/forms/Field/style/dnb-phone-number.css +3 -0
  66. package/cjs/extensions/forms/Field/style/dnb-phone-number.min.css +1 -1
  67. package/cjs/extensions/forms/Field/style/dnb-phone-number.scss +4 -0
  68. package/cjs/extensions/forms/Field/style/index.d.ts +2 -1
  69. package/cjs/extensions/forms/Field/style/index.js +2 -1
  70. package/cjs/extensions/forms/Field/style/index.js.map +1 -1
  71. package/cjs/extensions/forms/Field/style/index.scss +0 -2
  72. package/cjs/extensions/forms/FieldBlock/FieldBlock.d.ts +4 -0
  73. package/cjs/extensions/forms/FieldBlock/FieldBlock.js +7 -2
  74. package/cjs/extensions/forms/FieldBlock/FieldBlock.js.map +1 -1
  75. package/cjs/extensions/forms/FieldBlock/style/dnb-field-block.css +15 -0
  76. package/cjs/extensions/forms/FieldBlock/style/dnb-field-block.min.css +1 -1
  77. package/cjs/extensions/forms/FieldBlock/style/dnb-field-block.scss +26 -0
  78. package/cjs/extensions/forms/Layout/FlexContainer.js +2 -1
  79. package/cjs/extensions/forms/Layout/FlexContainer.js.map +1 -1
  80. package/cjs/extensions/forms/Layout/SubHeading.js +2 -1
  81. package/cjs/extensions/forms/Layout/SubHeading.js.map +1 -1
  82. package/cjs/extensions/forms/style/dnb-forms.css +18 -24
  83. package/cjs/extensions/forms/style/dnb-forms.min.css +1 -1
  84. package/cjs/extensions/payment-card/PaymentCard.d.ts +6 -2
  85. package/cjs/extensions/payment-card/PaymentCard.js +13 -2
  86. package/cjs/extensions/payment-card/PaymentCard.js.map +1 -1
  87. package/cjs/extensions/payment-card/icons/CardIn.d.ts +2 -0
  88. package/cjs/extensions/payment-card/icons/CardIn.js +26 -0
  89. package/cjs/extensions/payment-card/icons/CardIn.js.map +1 -0
  90. package/cjs/extensions/payment-card/icons/index.js +4 -1
  91. package/cjs/extensions/payment-card/icons/index.js.map +1 -1
  92. package/cjs/extensions/payment-card/style/dnb-payment-card.css +3 -2
  93. package/cjs/extensions/payment-card/style/dnb-payment-card.min.css +1 -1
  94. package/cjs/extensions/payment-card/style/dnb-payment-card.scss +2 -2
  95. package/cjs/shared/Eufemia.d.ts +1 -1
  96. package/cjs/shared/Eufemia.js +2 -2
  97. package/cjs/shared/Eufemia.js.map +1 -1
  98. package/cjs/shared/locales/en-GB.d.ts +1 -0
  99. package/cjs/shared/locales/en-GB.js +2 -1
  100. package/cjs/shared/locales/en-GB.js.map +1 -1
  101. package/cjs/shared/locales/en-US.d.ts +1 -0
  102. package/cjs/shared/locales/index.d.ts +2 -0
  103. package/cjs/shared/locales/nb-NO.d.ts +1 -0
  104. package/cjs/shared/locales/nb-NO.js +2 -1
  105. package/cjs/shared/locales/nb-NO.js.map +1 -1
  106. package/cjs/style/dnb-ui-components.css +19 -1
  107. package/cjs/style/dnb-ui-components.min.css +1 -1
  108. package/cjs/style/dnb-ui-extensions.css +21 -26
  109. package/cjs/style/dnb-ui-extensions.min.css +1 -1
  110. package/cjs/style/themes/theme-eiendom/eiendom-theme-components.css +147 -111
  111. package/cjs/style/themes/theme-eiendom/eiendom-theme-components.min.css +5 -1
  112. package/cjs/style/themes/theme-eiendom/eiendom-theme-extensions.css +21 -26
  113. package/cjs/style/themes/theme-eiendom/eiendom-theme-extensions.min.css +1 -1
  114. package/cjs/style/themes/theme-sbanken/sbanken-theme-components.css +332 -364
  115. package/cjs/style/themes/theme-sbanken/sbanken-theme-components.min.css +12 -2
  116. package/cjs/style/themes/theme-sbanken/sbanken-theme-components.scss +4 -4
  117. package/cjs/style/themes/theme-sbanken/sbanken-theme-extensions.css +21 -26
  118. package/cjs/style/themes/theme-sbanken/sbanken-theme-extensions.min.css +1 -1
  119. package/cjs/style/themes/theme-ui/ui-theme-components.css +94 -74
  120. package/cjs/style/themes/theme-ui/ui-theme-components.min.css +5 -1
  121. package/cjs/style/themes/theme-ui/ui-theme-extensions.css +21 -26
  122. package/cjs/style/themes/theme-ui/ui-theme-extensions.min.css +1 -1
  123. package/components/autocomplete/Autocomplete.d.ts +1 -1
  124. package/components/button/style/dnb-button--tertiary.css +53 -37
  125. package/components/button/style/dnb-button--tertiary.min.css +5 -1
  126. package/components/button/style/dnb-button--tertiary.scss +28 -34
  127. package/components/button/style/themes/button-mixins.scss +5 -3
  128. package/components/button/style/themes/dnb-button-theme-eiendom.css +53 -37
  129. package/components/button/style/themes/dnb-button-theme-eiendom.min.css +5 -1
  130. package/components/button/style/themes/dnb-button-theme-sbanken.css +155 -136
  131. package/components/button/style/themes/dnb-button-theme-sbanken.min.css +12 -2
  132. package/components/button/style/themes/dnb-button-theme-sbanken.scss +81 -115
  133. package/components/button/style/themes/dnb-button-theme-ui.css +53 -37
  134. package/components/button/style/themes/dnb-button-theme-ui.min.css +5 -1
  135. package/components/form-label/style/dnb-form-label.css +0 -1
  136. package/components/form-label/style/dnb-form-label.min.css +1 -1
  137. package/components/form-label/style/dnb-form-label.scss +0 -1
  138. package/components/form-label/style/themes/dnb-form-label-theme-sbanken.css +10 -0
  139. package/components/form-label/style/themes/dnb-form-label-theme-sbanken.min.css +1 -0
  140. package/components/form-label/style/themes/dnb-form-label-theme-sbanken.scss +16 -0
  141. package/components/form-label/style/themes/dnb-form-label-theme-ui.css +3 -0
  142. package/components/form-label/style/themes/dnb-form-label-theme-ui.min.css +1 -1
  143. package/components/form-label/style/themes/dnb-form-label-theme-ui.scss +6 -2
  144. package/components/form-row/style/themes/dnb-form-row-theme-sbanken.css +4 -0
  145. package/components/form-row/style/themes/dnb-form-row-theme-sbanken.min.css +0 -0
  146. package/components/form-row/style/themes/dnb-form-row-theme-sbanken.scss +4 -0
  147. package/components/input/style/themes/dnb-input-theme-sbanken.css +20 -20
  148. package/components/input/style/themes/dnb-input-theme-sbanken.min.css +1 -1
  149. package/components/input/style/themes/dnb-input-theme-sbanken.scss +15 -23
  150. package/components/pagination/style/dnb-pagination.css +20 -0
  151. package/components/pagination/style/dnb-pagination.min.css +1 -1
  152. package/components/pagination/style/dnb-pagination.scss +24 -0
  153. package/components/pagination/style/themes/dnb-pagination-theme-sbanken.css +26 -0
  154. package/components/pagination/style/themes/dnb-pagination-theme-sbanken.min.css +1 -0
  155. package/components/pagination/style/themes/dnb-pagination-theme-sbanken.scss +35 -0
  156. package/components/pagination/style/themes/dnb-pagination-theme-ui.css +0 -24
  157. package/components/pagination/style/themes/dnb-pagination-theme-ui.min.css +1 -1
  158. package/components/pagination/style/themes/dnb-pagination-theme-ui.scss +0 -30
  159. package/components/section/Section.d.ts +5 -0
  160. package/components/section/Section.js +3 -2
  161. package/components/section/Section.js.map +1 -1
  162. package/components/section/style/themes/dnb-section-theme-sbanken.css +39 -0
  163. package/components/section/style/themes/dnb-section-theme-sbanken.min.css +1 -0
  164. package/components/section/style/themes/dnb-section-theme-sbanken.scss +57 -0
  165. package/components/section/style/themes/dnb-section-theme-ui.css +19 -13
  166. package/components/section/style/themes/dnb-section-theme-ui.min.css +1 -1
  167. package/components/section/style/themes/dnb-section-theme-ui.scss +14 -5
  168. package/components/table/style/themes/dnb-table-theme-sbanken.css +56 -7
  169. package/components/table/style/themes/dnb-table-theme-sbanken.min.css +1 -1
  170. package/components/table/style/themes/dnb-table-theme-sbanken.scss +21 -5
  171. package/es/components/autocomplete/Autocomplete.d.ts +1 -1
  172. package/es/components/button/style/dnb-button--tertiary.css +53 -37
  173. package/es/components/button/style/dnb-button--tertiary.min.css +5 -1
  174. package/es/components/button/style/dnb-button--tertiary.scss +28 -34
  175. package/es/components/button/style/themes/button-mixins.scss +5 -3
  176. package/es/components/button/style/themes/dnb-button-theme-eiendom.css +53 -37
  177. package/es/components/button/style/themes/dnb-button-theme-eiendom.min.css +5 -1
  178. package/es/components/button/style/themes/dnb-button-theme-sbanken.css +155 -136
  179. package/es/components/button/style/themes/dnb-button-theme-sbanken.min.css +12 -2
  180. package/es/components/button/style/themes/dnb-button-theme-sbanken.scss +81 -115
  181. package/es/components/button/style/themes/dnb-button-theme-ui.css +53 -37
  182. package/es/components/button/style/themes/dnb-button-theme-ui.min.css +5 -1
  183. package/es/components/form-label/style/dnb-form-label.css +0 -1
  184. package/es/components/form-label/style/dnb-form-label.min.css +1 -1
  185. package/es/components/form-label/style/dnb-form-label.scss +0 -1
  186. package/es/components/form-label/style/themes/dnb-form-label-theme-sbanken.css +10 -0
  187. package/es/components/form-label/style/themes/dnb-form-label-theme-sbanken.min.css +1 -0
  188. package/es/components/form-label/style/themes/dnb-form-label-theme-sbanken.scss +16 -0
  189. package/es/components/form-label/style/themes/dnb-form-label-theme-ui.css +3 -0
  190. package/es/components/form-label/style/themes/dnb-form-label-theme-ui.min.css +1 -1
  191. package/es/components/form-label/style/themes/dnb-form-label-theme-ui.scss +6 -2
  192. package/es/components/form-row/style/themes/dnb-form-row-theme-sbanken.css +4 -0
  193. package/es/components/form-row/style/themes/dnb-form-row-theme-sbanken.min.css +0 -0
  194. package/es/components/form-row/style/themes/dnb-form-row-theme-sbanken.scss +4 -0
  195. package/es/components/input/style/themes/dnb-input-theme-sbanken.css +20 -20
  196. package/es/components/input/style/themes/dnb-input-theme-sbanken.min.css +1 -1
  197. package/es/components/input/style/themes/dnb-input-theme-sbanken.scss +15 -23
  198. package/es/components/pagination/style/dnb-pagination.css +20 -0
  199. package/es/components/pagination/style/dnb-pagination.min.css +1 -1
  200. package/es/components/pagination/style/dnb-pagination.scss +24 -0
  201. package/es/components/pagination/style/themes/dnb-pagination-theme-sbanken.css +26 -0
  202. package/es/components/pagination/style/themes/dnb-pagination-theme-sbanken.min.css +1 -0
  203. package/es/components/pagination/style/themes/dnb-pagination-theme-sbanken.scss +35 -0
  204. package/es/components/pagination/style/themes/dnb-pagination-theme-ui.css +0 -24
  205. package/es/components/pagination/style/themes/dnb-pagination-theme-ui.min.css +1 -1
  206. package/es/components/pagination/style/themes/dnb-pagination-theme-ui.scss +0 -30
  207. package/es/components/section/Section.d.ts +5 -0
  208. package/es/components/section/Section.js +3 -2
  209. package/es/components/section/Section.js.map +1 -1
  210. package/es/components/section/style/themes/dnb-section-theme-sbanken.css +39 -0
  211. package/es/components/section/style/themes/dnb-section-theme-sbanken.min.css +1 -0
  212. package/es/components/section/style/themes/dnb-section-theme-sbanken.scss +57 -0
  213. package/es/components/section/style/themes/dnb-section-theme-ui.css +19 -13
  214. package/es/components/section/style/themes/dnb-section-theme-ui.min.css +1 -1
  215. package/es/components/section/style/themes/dnb-section-theme-ui.scss +14 -5
  216. package/es/components/table/style/themes/dnb-table-theme-sbanken.css +56 -7
  217. package/es/components/table/style/themes/dnb-table-theme-sbanken.min.css +1 -1
  218. package/es/components/table/style/themes/dnb-table-theme-sbanken.scss +21 -5
  219. package/es/extensions/forms/DataContext/Provider.js +9 -9
  220. package/es/extensions/forms/DataContext/Provider.js.map +1 -1
  221. package/es/extensions/forms/Field/Number.js +4 -3
  222. package/es/extensions/forms/Field/Number.js.map +1 -1
  223. package/es/extensions/forms/Field/PhoneNumber.d.ts +1 -1
  224. package/es/extensions/forms/Field/PhoneNumber.js +1 -1
  225. package/es/extensions/forms/Field/PhoneNumber.js.map +1 -1
  226. package/es/extensions/forms/Field/PostalCodeAndCity.d.ts +1 -1
  227. package/es/extensions/forms/Field/PostalCodeAndCity.js +1 -1
  228. package/es/extensions/forms/Field/PostalCodeAndCity.js.map +1 -1
  229. package/es/extensions/forms/Field/Selection.d.ts +1 -1
  230. package/es/extensions/forms/Field/Selection.js +1 -1
  231. package/es/extensions/forms/Field/Selection.js.map +1 -1
  232. package/es/extensions/forms/Field/String.js +6 -5
  233. package/es/extensions/forms/Field/String.js.map +1 -1
  234. package/es/extensions/forms/Field/style/dnb-phone-number.css +3 -0
  235. package/es/extensions/forms/Field/style/dnb-phone-number.min.css +1 -1
  236. package/es/extensions/forms/Field/style/dnb-phone-number.scss +4 -0
  237. package/es/extensions/forms/Field/style/index.d.ts +2 -1
  238. package/es/extensions/forms/Field/style/index.js +2 -1
  239. package/es/extensions/forms/Field/style/index.js.map +1 -1
  240. package/es/extensions/forms/Field/style/index.scss +0 -2
  241. package/es/extensions/forms/FieldBlock/FieldBlock.d.ts +4 -0
  242. package/es/extensions/forms/FieldBlock/FieldBlock.js +7 -2
  243. package/es/extensions/forms/FieldBlock/FieldBlock.js.map +1 -1
  244. package/es/extensions/forms/FieldBlock/style/dnb-field-block.css +15 -0
  245. package/es/extensions/forms/FieldBlock/style/dnb-field-block.min.css +1 -1
  246. package/es/extensions/forms/FieldBlock/style/dnb-field-block.scss +26 -0
  247. package/es/extensions/forms/Layout/FlexContainer.js +2 -1
  248. package/es/extensions/forms/Layout/FlexContainer.js.map +1 -1
  249. package/es/extensions/forms/Layout/SubHeading.js +2 -1
  250. package/es/extensions/forms/Layout/SubHeading.js.map +1 -1
  251. package/es/extensions/forms/style/dnb-forms.css +18 -24
  252. package/es/extensions/forms/style/dnb-forms.min.css +1 -1
  253. package/es/extensions/payment-card/PaymentCard.d.ts +6 -2
  254. package/es/extensions/payment-card/PaymentCard.js +13 -2
  255. package/es/extensions/payment-card/PaymentCard.js.map +1 -1
  256. package/es/extensions/payment-card/icons/CardIn.d.ts +2 -0
  257. package/es/extensions/payment-card/icons/CardIn.js +18 -0
  258. package/es/extensions/payment-card/icons/CardIn.js.map +1 -0
  259. package/es/extensions/payment-card/icons/index.js +4 -1
  260. package/es/extensions/payment-card/icons/index.js.map +1 -1
  261. package/es/extensions/payment-card/style/dnb-payment-card.css +3 -2
  262. package/es/extensions/payment-card/style/dnb-payment-card.min.css +1 -1
  263. package/es/extensions/payment-card/style/dnb-payment-card.scss +2 -2
  264. package/es/shared/Eufemia.d.ts +1 -1
  265. package/es/shared/Eufemia.js +2 -2
  266. package/es/shared/Eufemia.js.map +1 -1
  267. package/es/shared/locales/en-GB.d.ts +1 -0
  268. package/es/shared/locales/en-GB.js +2 -1
  269. package/es/shared/locales/en-GB.js.map +1 -1
  270. package/es/shared/locales/en-US.d.ts +1 -0
  271. package/es/shared/locales/index.d.ts +2 -0
  272. package/es/shared/locales/nb-NO.d.ts +1 -0
  273. package/es/shared/locales/nb-NO.js +2 -1
  274. package/es/shared/locales/nb-NO.js.map +1 -1
  275. package/es/style/dnb-ui-components.css +19 -1
  276. package/es/style/dnb-ui-components.min.css +1 -1
  277. package/es/style/dnb-ui-extensions.css +21 -26
  278. package/es/style/dnb-ui-extensions.min.css +1 -1
  279. package/es/style/themes/theme-eiendom/eiendom-theme-components.css +147 -111
  280. package/es/style/themes/theme-eiendom/eiendom-theme-components.min.css +5 -1
  281. package/es/style/themes/theme-eiendom/eiendom-theme-extensions.css +21 -26
  282. package/es/style/themes/theme-eiendom/eiendom-theme-extensions.min.css +1 -1
  283. package/es/style/themes/theme-sbanken/sbanken-theme-components.css +332 -364
  284. package/es/style/themes/theme-sbanken/sbanken-theme-components.min.css +12 -2
  285. package/es/style/themes/theme-sbanken/sbanken-theme-components.scss +4 -4
  286. package/es/style/themes/theme-sbanken/sbanken-theme-extensions.css +21 -26
  287. package/es/style/themes/theme-sbanken/sbanken-theme-extensions.min.css +1 -1
  288. package/es/style/themes/theme-ui/ui-theme-components.css +94 -74
  289. package/es/style/themes/theme-ui/ui-theme-components.min.css +5 -1
  290. package/es/style/themes/theme-ui/ui-theme-extensions.css +21 -26
  291. package/es/style/themes/theme-ui/ui-theme-extensions.min.css +1 -1
  292. package/esm/dnb-ui-basis.min.mjs +1 -1
  293. package/esm/dnb-ui-components.min.mjs +1 -1
  294. package/esm/dnb-ui-elements.min.mjs +1 -1
  295. package/esm/dnb-ui-extensions.min.mjs +2 -2
  296. package/esm/dnb-ui-lib.min.mjs +1 -1
  297. package/extensions/forms/DataContext/Provider.js +9 -9
  298. package/extensions/forms/DataContext/Provider.js.map +1 -1
  299. package/extensions/forms/Field/Number.js +4 -3
  300. package/extensions/forms/Field/Number.js.map +1 -1
  301. package/extensions/forms/Field/PhoneNumber.d.ts +1 -1
  302. package/extensions/forms/Field/PhoneNumber.js +1 -1
  303. package/extensions/forms/Field/PhoneNumber.js.map +1 -1
  304. package/extensions/forms/Field/PostalCodeAndCity.d.ts +1 -1
  305. package/extensions/forms/Field/PostalCodeAndCity.js +1 -1
  306. package/extensions/forms/Field/PostalCodeAndCity.js.map +1 -1
  307. package/extensions/forms/Field/Selection.d.ts +1 -1
  308. package/extensions/forms/Field/Selection.js +1 -1
  309. package/extensions/forms/Field/Selection.js.map +1 -1
  310. package/extensions/forms/Field/String.js +6 -5
  311. package/extensions/forms/Field/String.js.map +1 -1
  312. package/extensions/forms/Field/style/dnb-phone-number.css +3 -0
  313. package/extensions/forms/Field/style/dnb-phone-number.min.css +1 -1
  314. package/extensions/forms/Field/style/dnb-phone-number.scss +4 -0
  315. package/extensions/forms/Field/style/index.d.ts +2 -1
  316. package/extensions/forms/Field/style/index.js +2 -1
  317. package/extensions/forms/Field/style/index.js.map +1 -1
  318. package/extensions/forms/Field/style/index.scss +0 -2
  319. package/extensions/forms/FieldBlock/FieldBlock.d.ts +4 -0
  320. package/extensions/forms/FieldBlock/FieldBlock.js +7 -2
  321. package/extensions/forms/FieldBlock/FieldBlock.js.map +1 -1
  322. package/extensions/forms/FieldBlock/style/dnb-field-block.css +15 -0
  323. package/extensions/forms/FieldBlock/style/dnb-field-block.min.css +1 -1
  324. package/extensions/forms/FieldBlock/style/dnb-field-block.scss +26 -0
  325. package/extensions/forms/Layout/FlexContainer.js +2 -1
  326. package/extensions/forms/Layout/FlexContainer.js.map +1 -1
  327. package/extensions/forms/Layout/SubHeading.js +2 -1
  328. package/extensions/forms/Layout/SubHeading.js.map +1 -1
  329. package/extensions/forms/style/dnb-forms.css +18 -24
  330. package/extensions/forms/style/dnb-forms.min.css +1 -1
  331. package/extensions/payment-card/PaymentCard.d.ts +6 -2
  332. package/extensions/payment-card/PaymentCard.js +13 -2
  333. package/extensions/payment-card/PaymentCard.js.map +1 -1
  334. package/extensions/payment-card/icons/CardIn.d.ts +2 -0
  335. package/extensions/payment-card/icons/CardIn.js +18 -0
  336. package/extensions/payment-card/icons/CardIn.js.map +1 -0
  337. package/extensions/payment-card/icons/index.js +4 -1
  338. package/extensions/payment-card/icons/index.js.map +1 -1
  339. package/extensions/payment-card/style/dnb-payment-card.css +3 -2
  340. package/extensions/payment-card/style/dnb-payment-card.min.css +1 -1
  341. package/extensions/payment-card/style/dnb-payment-card.scss +2 -2
  342. package/package.json +1 -1
  343. package/shared/Eufemia.d.ts +1 -1
  344. package/shared/Eufemia.js +2 -2
  345. package/shared/Eufemia.js.map +1 -1
  346. package/shared/locales/en-GB.d.ts +1 -0
  347. package/shared/locales/en-GB.js +2 -1
  348. package/shared/locales/en-GB.js.map +1 -1
  349. package/shared/locales/en-US.d.ts +1 -0
  350. package/shared/locales/index.d.ts +2 -0
  351. package/shared/locales/nb-NO.d.ts +1 -0
  352. package/shared/locales/nb-NO.js +2 -1
  353. package/shared/locales/nb-NO.js.map +1 -1
  354. package/style/dnb-ui-components.css +19 -1
  355. package/style/dnb-ui-components.min.css +1 -1
  356. package/style/dnb-ui-extensions.css +21 -26
  357. package/style/dnb-ui-extensions.min.css +1 -1
  358. package/style/themes/theme-eiendom/eiendom-theme-components.css +147 -111
  359. package/style/themes/theme-eiendom/eiendom-theme-components.min.css +5 -1
  360. package/style/themes/theme-eiendom/eiendom-theme-extensions.css +21 -26
  361. package/style/themes/theme-eiendom/eiendom-theme-extensions.min.css +1 -1
  362. package/style/themes/theme-sbanken/sbanken-theme-components.css +332 -364
  363. package/style/themes/theme-sbanken/sbanken-theme-components.min.css +12 -2
  364. package/style/themes/theme-sbanken/sbanken-theme-components.scss +4 -4
  365. package/style/themes/theme-sbanken/sbanken-theme-extensions.css +21 -26
  366. package/style/themes/theme-sbanken/sbanken-theme-extensions.min.css +1 -1
  367. package/style/themes/theme-ui/ui-theme-components.css +94 -74
  368. package/style/themes/theme-ui/ui-theme-components.min.css +5 -1
  369. package/style/themes/theme-ui/ui-theme-extensions.css +21 -26
  370. package/style/themes/theme-ui/ui-theme-extensions.min.css +1 -1
  371. package/umd/dnb-ui-basis.min.js +1 -1
  372. package/umd/dnb-ui-components.min.js +1 -1
  373. package/umd/dnb-ui-elements.min.js +1 -1
  374. package/umd/dnb-ui-extensions.min.js +1 -1
  375. package/umd/dnb-ui-lib.min.js +1 -1
  376. package/cjs/extensions/forms/Field/style/dnb-number.css +0 -11
  377. package/cjs/extensions/forms/Field/style/dnb-number.min.css +0 -1
  378. package/cjs/extensions/forms/Field/style/dnb-number.scss +0 -19
  379. package/cjs/extensions/forms/Field/style/dnb-string.css +0 -11
  380. package/cjs/extensions/forms/Field/style/dnb-string.min.css +0 -1
  381. package/cjs/extensions/forms/Field/style/dnb-string.scss +0 -19
  382. package/es/extensions/forms/Field/style/dnb-number.css +0 -11
  383. package/es/extensions/forms/Field/style/dnb-number.min.css +0 -1
  384. package/es/extensions/forms/Field/style/dnb-number.scss +0 -19
  385. package/es/extensions/forms/Field/style/dnb-string.css +0 -11
  386. package/es/extensions/forms/Field/style/dnb-string.min.css +0 -1
  387. package/es/extensions/forms/Field/style/dnb-string.scss +0 -19
  388. package/extensions/forms/Field/style/dnb-number.css +0 -11
  389. package/extensions/forms/Field/style/dnb-number.min.css +0 -1
  390. package/extensions/forms/Field/style/dnb-number.scss +0 -19
  391. package/extensions/forms/Field/style/dnb-string.css +0 -11
  392. package/extensions/forms/Field/style/dnb-string.min.css +0 -1
  393. package/extensions/forms/Field/style/dnb-string.scss +0 -19
@@ -1 +1 @@
1
- .dnb-section--divider{color:var(--color-black-80)}.dnb-section--divider:after{box-shadow:99vw 0 0 0 currentcolor,198vw 0 0 0 currentcolor,297vw 0 0 0 currentcolor,396vw 0 0 0 currentcolor,0 .0625rem 0 0 var(--color-mint-green-50),99vw .0625rem 0 0 var(--color-mint-green-50),0 -.0625rem 0 0 var(--color-mint-green-50),99vw -.0625rem 0 0 var(--color-mint-green-50),198vw .0625rem 0 0 var(--color-mint-green-50),198vw -.0625rem 0 0 var(--color-mint-green-50);color:var(--color-white)}.dnb-section--transparent:after{color:transparent}.dnb-section--mint-green-12{color:var(--color-black-80)}.dnb-section--mint-green-12:after{color:var(--color-mint-green-12)}.dnb-section--white{color:var(--color-black-80)}.dnb-section--white:after{color:var(--color-white)}.dnb-section--mint-green{color:var(--color-black-80)}.dnb-section--mint-green:after{color:var(--color-mint-green)}.dnb-section--lavender{color:var(--color-black-80)}.dnb-section--lavender:after{color:var(--color-lavender)}.dnb-section--sand-yellow{color:var(--color-black-80)}.dnb-section--sand-yellow:after{color:var(--color-sand-yellow)}.dnb-section--pistachio{color:var(--color-black-80)}.dnb-section--pistachio:after{color:var(--color-pistachio)}.dnb-section--black-3{color:var(--color-black-80)}.dnb-section--black-3:after{color:var(--color-black-3)}.dnb-section--emerald-green{color:var(--color-mint-green)}.dnb-section--emerald-green:after{color:var(--color-emerald-green)}.dnb-section--sea-green{color:var(--color-white)}.dnb-section--sea-green:after{color:var(--color-sea-green)}.dnb-section--fire-red{color:var(--color-white)}.dnb-section--fire-red:after{color:var(--color-fire-red)}.dnb-section--fire-red-8{color:var(--color-black-80)}.dnb-section--fire-red-8:after{color:var(--color-fire-red-8)}.dnb-section--emerald-green .dnb-anchor,.dnb-section--fire-red .dnb-anchor,.dnb-section--sea-green .dnb-anchor{color:var(--color-white)}.dnb-section--emerald-green .dnb-anchor:hover,.dnb-section--fire-red .dnb-anchor:hover,.dnb-section--sea-green .dnb-anchor:hover{box-shadow:inset 100vw 100vw 0 0 var(--color-white),-.125em 0 0 0 var(--color-white),.125em 0 0 0 var(--color-white);color:var(--color-emerald-green)}.dnb-section--emerald-green .dnb-anchor:active,.dnb-section--fire-red .dnb-anchor:active,.dnb-section--sea-green .dnb-anchor:active{background-color:transparent;box-shadow:inset 100vw 100vw 0 0 transparent,-.125em 0 0 0 transparent,.125em 0 0 0 transparent;color:var(--color-white)}.dnb-section--emerald-green .dnb-anchor.focus-visible,.dnb-section--fire-red .dnb-anchor.focus-visible,.dnb-section--sea-green .dnb-anchor.focus-visible{--border-color:var(--color-white);--border-width:var(--focus-ring-width);background-color:transparent;border-color:transparent;box-shadow:0 0 0 var(--border-width) var(--border-color);color:var(--color-white);outline:none}.dnb-section--emerald-green .dnb-anchor:focus-visible,.dnb-section--fire-red .dnb-anchor:focus-visible,.dnb-section--sea-green .dnb-anchor:focus-visible{--border-color:var(--color-white);--border-width:var(--focus-ring-width);background-color:transparent;border-color:transparent;box-shadow:0 0 0 var(--border-width) var(--border-color);color:var(--color-white);outline:none}.dnb-section--emerald-green .dnb-button--tertiary,.dnb-section--emerald-green .dnb-button--tertiary:hover,.dnb-section--fire-red .dnb-button--tertiary,.dnb-section--fire-red .dnb-button--tertiary:hover,.dnb-section--sea-green .dnb-button--tertiary,.dnb-section--sea-green .dnb-button--tertiary:hover{color:var(--color-white)}.dnb-section--emerald-green .dnb-button--tertiary:hover .dnb-button__text:after,.dnb-section--fire-red .dnb-button--tertiary:hover .dnb-button__text:after,.dnb-section--sea-green .dnb-button--tertiary:hover .dnb-button__text:after{color:var(--color-white)!important}.dnb-section--emerald-green .dnb-button--tertiary:focus,.dnb-section--fire-red .dnb-button--tertiary:focus,.dnb-section--sea-green .dnb-button--tertiary:focus{color:var(--color-white)}.dnb-section--emerald-green .dnb-button--tertiary:focus:before,.dnb-section--fire-red .dnb-button--tertiary:focus:before,.dnb-section--sea-green .dnb-button--tertiary:focus:before{outline:none}html[data-whatinput=keyboard] .dnb-section--emerald-green .dnb-button--tertiary:focus:before,html[data-whatinput=keyboard] .dnb-section--fire-red .dnb-button--tertiary:focus:before,html[data-whatinput=keyboard] .dnb-section--sea-green .dnb-button--tertiary:focus:before{--border-color:var(--color-white);--border-width:var(--focus-ring-width);border-color:transparent;box-shadow:0 0 0 var(--border-width) var(--border-color)}.dnb-section--fire-red ::selection,.dnb-section--mint-green ::selection{background-color:var(--color-white)}
1
+ .dnb-section--divider{color:var(--color-black-80)}.dnb-section--divider:after{box-shadow:99vw 0 0 0 currentcolor,198vw 0 0 0 currentcolor,297vw 0 0 0 currentcolor,396vw 0 0 0 currentcolor,0 .0625rem 0 0 var(--color-mint-green-50),99vw .0625rem 0 0 var(--color-mint-green-50),0 -.0625rem 0 0 var(--color-mint-green-50),99vw -.0625rem 0 0 var(--color-mint-green-50),198vw .0625rem 0 0 var(--color-mint-green-50),198vw -.0625rem 0 0 var(--color-mint-green-50);color:var(--color-white)}.dnb-section--transparent:after{color:transparent}.dnb-section--default,.dnb-section--mint-green-12{color:var(--color-black-80)}.dnb-section--default:after,.dnb-section--mint-green-12:after{color:var(--color-mint-green-12)}.dnb-section--white{color:var(--color-black-80)}.dnb-section--white:after{color:var(--color-white)}.dnb-section--mint-green{color:var(--color-black-80)}.dnb-section--mint-green:after{color:var(--color-mint-green)}.dnb-section--lavender{color:var(--color-black-80)}.dnb-section--lavender:after{color:var(--color-lavender)}.dnb-section--sand-yellow,.dnb-section--warning{color:var(--color-black-80)}.dnb-section--sand-yellow:after,.dnb-section--warning:after{color:var(--color-sand-yellow)}.dnb-section--info,.dnb-section--pistachio{color:var(--color-black-80)}.dnb-section--info:after,.dnb-section--pistachio:after{color:var(--color-pistachio)}.dnb-section--black-3{color:var(--color-black-80)}.dnb-section--black-3:after{color:var(--color-black-3)}.dnb-section--emerald-green{color:var(--color-mint-green)}.dnb-section--emerald-green:after{color:var(--color-emerald-green)}.dnb-section--sea-green{color:var(--color-white)}.dnb-section--sea-green:after{color:var(--color-sea-green)}.dnb-section--fire-red{color:var(--color-white)}.dnb-section--fire-red:after{color:var(--color-fire-red)}.dnb-section--error,.dnb-section--fire-red-8{color:var(--color-black-80)}.dnb-section--error:after,.dnb-section--fire-red-8:after{color:var(--color-fire-red-8)}.dnb-section--success{color:var(--color-white)}.dnb-section--success:after{color:var(--color-success-green)}.dnb-section--emerald-green .dnb-anchor,.dnb-section--fire-red .dnb-anchor,.dnb-section--sea-green .dnb-anchor,.dnb-section--success .dnb-anchor{color:var(--color-white)}.dnb-section--emerald-green .dnb-anchor:hover,.dnb-section--fire-red .dnb-anchor:hover,.dnb-section--sea-green .dnb-anchor:hover,.dnb-section--success .dnb-anchor:hover{box-shadow:inset 100vw 100vw 0 0 var(--color-white),-.125em 0 0 0 var(--color-white),.125em 0 0 0 var(--color-white);color:var(--color-emerald-green)}.dnb-section--emerald-green .dnb-anchor:active,.dnb-section--fire-red .dnb-anchor:active,.dnb-section--sea-green .dnb-anchor:active,.dnb-section--success .dnb-anchor:active{background-color:transparent;box-shadow:inset 100vw 100vw 0 0 transparent,-.125em 0 0 0 transparent,.125em 0 0 0 transparent;color:var(--color-white)}.dnb-section--emerald-green .dnb-anchor.focus-visible,.dnb-section--fire-red .dnb-anchor.focus-visible,.dnb-section--sea-green .dnb-anchor.focus-visible,.dnb-section--success .dnb-anchor.focus-visible{--border-color:var(--color-white);--border-width:var(--focus-ring-width);background-color:transparent;border-color:transparent;box-shadow:0 0 0 var(--border-width) var(--border-color);color:var(--color-white);outline:none}.dnb-section--emerald-green .dnb-anchor:focus-visible,.dnb-section--fire-red .dnb-anchor:focus-visible,.dnb-section--sea-green .dnb-anchor:focus-visible,.dnb-section--success .dnb-anchor:focus-visible{--border-color:var(--color-white);--border-width:var(--focus-ring-width);background-color:transparent;border-color:transparent;box-shadow:0 0 0 var(--border-width) var(--border-color);color:var(--color-white);outline:none}.dnb-section--emerald-green .dnb-button--tertiary,.dnb-section--emerald-green .dnb-button--tertiary:hover,.dnb-section--fire-red .dnb-button--tertiary,.dnb-section--fire-red .dnb-button--tertiary:hover,.dnb-section--sea-green .dnb-button--tertiary,.dnb-section--sea-green .dnb-button--tertiary:hover{color:var(--color-white)}.dnb-section--emerald-green .dnb-button--tertiary:hover .dnb-button__text:after,.dnb-section--fire-red .dnb-button--tertiary:hover .dnb-button__text:after,.dnb-section--sea-green .dnb-button--tertiary:hover .dnb-button__text:after{color:var(--color-white)!important}.dnb-section--emerald-green .dnb-button--tertiary:focus,.dnb-section--fire-red .dnb-button--tertiary:focus,.dnb-section--sea-green .dnb-button--tertiary:focus{color:var(--color-white)}.dnb-section--emerald-green .dnb-button--tertiary:focus:before,.dnb-section--fire-red .dnb-button--tertiary:focus:before,.dnb-section--sea-green .dnb-button--tertiary:focus:before{outline:none}html[data-whatinput=keyboard] .dnb-section--emerald-green .dnb-button--tertiary:focus:before,html[data-whatinput=keyboard] .dnb-section--fire-red .dnb-button--tertiary:focus:before,html[data-whatinput=keyboard] .dnb-section--sea-green .dnb-button--tertiary:focus:before{--border-color:var(--color-white);--border-width:var(--focus-ring-width);border-color:transparent;box-shadow:0 0 0 var(--border-width) var(--border-color)}.dnb-section--fire-red ::selection,.dnb-section--mint-green ::selection{background-color:var(--color-white)}
@@ -28,7 +28,7 @@
28
28
  }
29
29
  }
30
30
 
31
- &--mint-green-12 {
31
+ &--mint-green-12, &--default {
32
32
  color: var(--color-black-80);
33
33
 
34
34
  &::after {
@@ -60,7 +60,7 @@
60
60
  }
61
61
  }
62
62
 
63
- &--sand-yellow {
63
+ &--sand-yellow, &--warning {
64
64
  color: var(--color-black-80);
65
65
 
66
66
  &::after {
@@ -68,7 +68,7 @@
68
68
  }
69
69
  }
70
70
 
71
- &--pistachio {
71
+ &--pistachio, &--info {
72
72
  color: var(--color-black-80);
73
73
 
74
74
  &::after {
@@ -108,7 +108,7 @@
108
108
  }
109
109
  }
110
110
 
111
- &--fire-red-8 {
111
+ &--fire-red-8, &--error {
112
112
  color: var(--color-black-80);
113
113
 
114
114
  &::after {
@@ -116,10 +116,19 @@
116
116
  }
117
117
  }
118
118
 
119
+ &--success {
120
+ color: var(--color-white);
121
+
122
+ &::after {
123
+ color: var(--color-success-green);
124
+ }
125
+ }
126
+
119
127
  // Contrast styles
120
128
  &--fire-red .dnb-anchor,
121
129
  &--emerald-green .dnb-anchor,
122
- &--sea-green .dnb-anchor {
130
+ &--sea-green .dnb-anchor,
131
+ &--success .dnb-anchor {
123
132
  @include useAnchorContrastStyle();
124
133
  }
125
134
 
@@ -5,6 +5,10 @@
5
5
  /*
6
6
  * Utilities
7
7
  */
8
+ /*
9
+ * Button mixins
10
+ *
11
+ */
8
12
  /*
9
13
  * Utilities
10
14
  */
@@ -50,19 +54,64 @@ html:not([data-whatintent=touch]) .dnb-table > thead > tr > th.dnb-table--sortab
50
54
  color: var(--sb-color-violet);
51
55
  }
52
56
  .dnb-table > thead > tr > th.dnb-table--sortable .dnb-table__sort-button.dnb-button:active:not([disabled])::before, html:not([data-whatintent=touch]) .dnb-table > thead > tr > th.dnb-table--sortable .dnb-table__sort-button.dnb-button:active:not([disabled])::before, .dnb-table .dnb-table__th.dnb-table--sortable .dnb-table__sort-button.dnb-button:active:not([disabled])::before, html:not([data-whatintent=touch]) .dnb-table .dnb-table__th.dnb-table--sortable .dnb-table__sort-button.dnb-button:active:not([disabled])::before {
53
- top: -0.1875rem;
54
- bottom: -0.0625rem;
57
+ content: "";
58
+ position: absolute;
59
+ z-index: 1;
60
+ top: 0;
61
+ left: -0.5rem;
62
+ bottom: 0;
63
+ right: -0.5rem;
64
+ height: inherit;
65
+ border-radius: inherit;
66
+ outline: none;
67
+ }
68
+ html[data-whatinput=mouse] .dnb-table > thead > tr > th.dnb-table--sortable .dnb-table__sort-button.dnb-button:active:not([disabled])::before, html[data-whatinput=mouse] html:not([data-whatintent=touch]) .dnb-table > thead > tr > th.dnb-table--sortable .dnb-table__sort-button.dnb-button:active:not([disabled])::before, html[data-whatinput=mouse] .dnb-table .dnb-table__th.dnb-table--sortable .dnb-table__sort-button.dnb-button:active:not([disabled])::before, html[data-whatinput=mouse] html:not([data-whatintent=touch]) .dnb-table .dnb-table__th.dnb-table--sortable .dnb-table__sort-button.dnb-button:active:not([disabled])::before {
69
+ --border-color: var(--focus-ring-color);
70
+ --border-width: var(--focus-ring-width);
71
+ box-shadow: inset 0 0 0 var(--border-width) var(--border-color);
72
+ border-color: transparent;
73
+ }
74
+ .dnb-table > thead > tr > th.dnb-table--sortable .dnb-table__sort-button.dnb-button:active:not([disabled])::before, html:not([data-whatintent=touch]) .dnb-table > thead > tr > th.dnb-table--sortable .dnb-table__sort-button.dnb-button:active:not([disabled])::before, .dnb-table .dnb-table__th.dnb-table--sortable .dnb-table__sort-button.dnb-button:active:not([disabled])::before, html:not([data-whatintent=touch]) .dnb-table .dnb-table__th.dnb-table--sortable .dnb-table__sort-button.dnb-button:active:not([disabled])::before {
75
+ content: "";
76
+ position: absolute;
77
+ z-index: 1;
78
+ top: 0;
55
79
  left: -0.5rem;
56
- right: -0.25rem;
80
+ bottom: 0;
81
+ right: -0.5rem;
82
+ height: inherit;
83
+ border-radius: inherit;
84
+ outline: none;
85
+ }
86
+ html[data-whatinput=touch] .dnb-table > thead > tr > th.dnb-table--sortable .dnb-table__sort-button.dnb-button:active:not([disabled])::before, html[data-whatinput=touch] html:not([data-whatintent=touch]) .dnb-table > thead > tr > th.dnb-table--sortable .dnb-table__sort-button.dnb-button:active:not([disabled])::before, html[data-whatinput=touch] .dnb-table .dnb-table__th.dnb-table--sortable .dnb-table__sort-button.dnb-button:active:not([disabled])::before, html[data-whatinput=touch] html:not([data-whatintent=touch]) .dnb-table .dnb-table__th.dnb-table--sortable .dnb-table__sort-button.dnb-button:active:not([disabled])::before {
87
+ --border-color: var(--focus-ring-color);
88
+ --border-width: var(--focus-ring-width);
89
+ box-shadow: inset 0 0 0 var(--border-width) var(--border-color);
90
+ border-color: transparent;
91
+ }
92
+ .dnb-table > thead > tr > th.dnb-table--sortable .dnb-table__sort-button.dnb-button:active:not([disabled])::before, html:not([data-whatintent=touch]) .dnb-table > thead > tr > th.dnb-table--sortable .dnb-table__sort-button.dnb-button:active:not([disabled])::before, .dnb-table .dnb-table__th.dnb-table--sortable .dnb-table__sort-button.dnb-button:active:not([disabled])::before, html:not([data-whatintent=touch]) .dnb-table .dnb-table__th.dnb-table--sortable .dnb-table__sort-button.dnb-button:active:not([disabled])::before {
93
+ top: -0.375rem;
94
+ bottom: -0.25rem;
95
+ left: -0.6875rem;
96
+ right: -0.4375rem;
57
97
  }
58
98
  .dnb-table > thead > tr > th.dnb-table--sortable .dnb-table__sort-button.dnb-button:focus[disabled], html:not([data-whatintent=touch]) .dnb-table > thead > tr > th.dnb-table--sortable .dnb-table__sort-button.dnb-button:focus[disabled], .dnb-table .dnb-table__th.dnb-table--sortable .dnb-table__sort-button.dnb-button:focus[disabled], html:not([data-whatintent=touch]) .dnb-table .dnb-table__th.dnb-table--sortable .dnb-table__sort-button.dnb-button:focus[disabled] {
59
99
  cursor: not-allowed;
60
100
  }
61
101
  .dnb-table > thead > tr > th.dnb-table--sortable .dnb-table__sort-button.dnb-button:focus:not([disabled])::before, html:not([data-whatintent=touch]) .dnb-table > thead > tr > th.dnb-table--sortable .dnb-table__sort-button.dnb-button:focus:not([disabled])::before, .dnb-table .dnb-table__th.dnb-table--sortable .dnb-table__sort-button.dnb-button:focus:not([disabled])::before, html:not([data-whatintent=touch]) .dnb-table .dnb-table__th.dnb-table--sortable .dnb-table__sort-button.dnb-button:focus:not([disabled])::before {
62
- top: -0.1875rem;
63
- bottom: -0.0625rem;
64
- left: -0.5rem;
65
- right: -0.25rem;
102
+ top: -0.375rem;
103
+ bottom: -0.25rem;
104
+ left: -0.6875rem;
105
+ right: -0.4375rem;
106
+ }
107
+ .dnb-table > thead > tr > th.dnb-table--sortable .dnb-table__sort-button.dnb-button:focus:not([disabled]).focus-visible, html:not([data-whatintent=touch]) .dnb-table > thead > tr > th.dnb-table--sortable .dnb-table__sort-button.dnb-button:focus:not([disabled]).focus-visible, .dnb-table .dnb-table__th.dnb-table--sortable .dnb-table__sort-button.dnb-button:focus:not([disabled]).focus-visible, html:not([data-whatintent=touch]) .dnb-table .dnb-table__th.dnb-table--sortable .dnb-table__sort-button.dnb-button:focus:not([disabled]).focus-visible {
108
+ color: var(--sb-color-blue-dark);
109
+ }
110
+ .dnb-table > thead > tr > th.dnb-table--sortable .dnb-table__sort-button.dnb-button:focus:not([disabled]):focus-visible, html:not([data-whatintent=touch]) .dnb-table > thead > tr > th.dnb-table--sortable .dnb-table__sort-button.dnb-button:focus:not([disabled]):focus-visible, .dnb-table .dnb-table__th.dnb-table--sortable .dnb-table__sort-button.dnb-button:focus:not([disabled]):focus-visible, html:not([data-whatintent=touch]) .dnb-table .dnb-table__th.dnb-table--sortable .dnb-table__sort-button.dnb-button:focus:not([disabled]):focus-visible {
111
+ color: var(--sb-color-blue-dark);
112
+ }
113
+ .dnb-table > thead > tr > th.dnb-table--sortable .dnb-table__sort-button.dnb-button:focus:not([disabled]):not(:active) .dnb-button__text::after, html:not([data-whatintent=touch]) .dnb-table > thead > tr > th.dnb-table--sortable .dnb-table__sort-button.dnb-button:focus:not([disabled]):not(:active) .dnb-button__text::after, .dnb-table .dnb-table__th.dnb-table--sortable .dnb-table__sort-button.dnb-button:focus:not([disabled]):not(:active) .dnb-button__text::after, html:not([data-whatintent=touch]) .dnb-table .dnb-table__th.dnb-table--sortable .dnb-table__sort-button.dnb-button:focus:not([disabled]):not(:active) .dnb-button__text::after {
114
+ visibility: hidden;
66
115
  }
67
116
  html:not([data-whatintent=touch]) .dnb-table > thead > tr > th.dnb-table--active .dnb-table__sort-button.dnb-button:hover[disabled], html:not([data-whatintent=touch]) .dnb-table .dnb-table__th.dnb-table--active .dnb-table__sort-button.dnb-button:hover[disabled] {
68
117
  cursor: not-allowed;
@@ -1 +1 @@
1
- .dnb-table{text-align:left}.dnb-table thead{border-bottom:var(--border)}.dnb-table thead th,.dnb-table__th{background-color:var(--sb-color-white);padding:.5rem 1.5rem .25rem}.dnb-table .dnb-table__tr--even{background-color:var(--sb-color-gray-light-3)}.dnb-table tbody .dnb-table__th,.dnb-table tbody td,.dnb-table tbody th,.dnb-table__td{padding:1rem 1.5rem}.dnb-table .dnb-table__th.dnb-table--sortable .dnb-table__sort-button.dnb-button,.dnb-table>thead>tr>th.dnb-table--sortable .dnb-table__sort-button.dnb-button{color:var(--sb-color-violet)}.dnb-table .dnb-table__th.dnb-table--sortable .dnb-table__sort-button.dnb-button .dnb-button__text:after,.dnb-table>thead>tr>th.dnb-table--sortable .dnb-table__sort-button.dnb-button .dnb-button__text:after{bottom:-.0625rem;color:var(--sb-color-violet);left:0;opacity:0}.dnb-table .dnb-table__th.dnb-table--sortable .dnb-table__sort-button.dnb-button:not(:focus) .dnb-button__text:after,.dnb-table>thead>tr>th.dnb-table--sortable .dnb-table__sort-button.dnb-button:not(:focus) .dnb-button__text:after{color:var(--sb-color-violet)}html:not([data-whatintent=touch]) .dnb-table .dnb-table__th.dnb-table--sortable .dnb-table__sort-button.dnb-button:hover[disabled],html:not([data-whatintent=touch]) .dnb-table>thead>tr>th.dnb-table--sortable .dnb-table__sort-button.dnb-button:hover[disabled]{cursor:not-allowed}html:not([data-whatintent=touch]) .dnb-table .dnb-table__th.dnb-table--sortable .dnb-table__sort-button.dnb-button:hover:not([disabled]),html:not([data-whatintent=touch]) .dnb-table>thead>tr>th.dnb-table--sortable .dnb-table__sort-button.dnb-button:hover:not([disabled]){color:var(--sb-color-violet)}.dnb-table .dnb-table__th.dnb-table--sortable .dnb-table__sort-button.dnb-button:active[disabled],.dnb-table>thead>tr>th.dnb-table--sortable .dnb-table__sort-button.dnb-button:active[disabled],html:not([data-whatintent=touch]) .dnb-table .dnb-table__th.dnb-table--sortable .dnb-table__sort-button.dnb-button:active[disabled],html:not([data-whatintent=touch]) .dnb-table>thead>tr>th.dnb-table--sortable .dnb-table__sort-button.dnb-button:active[disabled]{cursor:not-allowed}.dnb-table .dnb-table__th.dnb-table--sortable .dnb-table__sort-button.dnb-button:active:not([disabled]),.dnb-table>thead>tr>th.dnb-table--sortable .dnb-table__sort-button.dnb-button:active:not([disabled]),html:not([data-whatintent=touch]) .dnb-table .dnb-table__th.dnb-table--sortable .dnb-table__sort-button.dnb-button:active:not([disabled]),html:not([data-whatintent=touch]) .dnb-table>thead>tr>th.dnb-table--sortable .dnb-table__sort-button.dnb-button:active:not([disabled]){color:var(--sb-color-violet)}.dnb-table .dnb-table__th.dnb-table--sortable .dnb-table__sort-button.dnb-button:active:not([disabled]):before,.dnb-table>thead>tr>th.dnb-table--sortable .dnb-table__sort-button.dnb-button:active:not([disabled]):before,html:not([data-whatintent=touch]) .dnb-table .dnb-table__th.dnb-table--sortable .dnb-table__sort-button.dnb-button:active:not([disabled]):before,html:not([data-whatintent=touch]) .dnb-table>thead>tr>th.dnb-table--sortable .dnb-table__sort-button.dnb-button:active:not([disabled]):before{bottom:-.0625rem;left:-.5rem;right:-.25rem;top:-.1875rem}.dnb-table .dnb-table__th.dnb-table--sortable .dnb-table__sort-button.dnb-button:focus[disabled],.dnb-table>thead>tr>th.dnb-table--sortable .dnb-table__sort-button.dnb-button:focus[disabled],html:not([data-whatintent=touch]) .dnb-table .dnb-table__th.dnb-table--sortable .dnb-table__sort-button.dnb-button:focus[disabled],html:not([data-whatintent=touch]) .dnb-table>thead>tr>th.dnb-table--sortable .dnb-table__sort-button.dnb-button:focus[disabled]{cursor:not-allowed}.dnb-table .dnb-table__th.dnb-table--sortable .dnb-table__sort-button.dnb-button:focus:not([disabled]):before,.dnb-table>thead>tr>th.dnb-table--sortable .dnb-table__sort-button.dnb-button:focus:not([disabled]):before,html:not([data-whatintent=touch]) .dnb-table .dnb-table__th.dnb-table--sortable .dnb-table__sort-button.dnb-button:focus:not([disabled]):before,html:not([data-whatintent=touch]) .dnb-table>thead>tr>th.dnb-table--sortable .dnb-table__sort-button.dnb-button:focus:not([disabled]):before{bottom:-.0625rem;left:-.5rem;right:-.25rem;top:-.1875rem}html:not([data-whatintent=touch]) .dnb-table .dnb-table__th.dnb-table--active .dnb-table__sort-button.dnb-button:hover[disabled],html:not([data-whatintent=touch]) .dnb-table>thead>tr>th.dnb-table--active .dnb-table__sort-button.dnb-button:hover[disabled]{cursor:not-allowed}html:not([data-whatintent=touch]) .dnb-table .dnb-table__th.dnb-table--active .dnb-table__sort-button.dnb-button:hover:not([disabled]) .dnb-button__text:after,html:not([data-whatintent=touch]) .dnb-table>thead>tr>th.dnb-table--active .dnb-table__sort-button.dnb-button:hover:not([disabled]) .dnb-button__text:after{color:var(--sb-color-violet)}.dnb-table,.dnb-table__container{--border-width:0.0625rem;--outline-width:0.0625rem;--border:var(--border-width) solid var(--sb-color-gray-light-2);--outline:var(--outline-width) solid var(--sb-color-gray-light-2);background-color:var(--sb-color-white)}
1
+ .dnb-table{text-align:left}.dnb-table thead{border-bottom:var(--border)}.dnb-table thead th,.dnb-table__th{background-color:var(--sb-color-white);padding:.5rem 1.5rem .25rem}.dnb-table .dnb-table__tr--even{background-color:var(--sb-color-gray-light-3)}.dnb-table tbody .dnb-table__th,.dnb-table tbody td,.dnb-table tbody th,.dnb-table__td{padding:1rem 1.5rem}.dnb-table .dnb-table__th.dnb-table--sortable .dnb-table__sort-button.dnb-button,.dnb-table>thead>tr>th.dnb-table--sortable .dnb-table__sort-button.dnb-button{color:var(--sb-color-violet)}.dnb-table .dnb-table__th.dnb-table--sortable .dnb-table__sort-button.dnb-button .dnb-button__text:after,.dnb-table>thead>tr>th.dnb-table--sortable .dnb-table__sort-button.dnb-button .dnb-button__text:after{bottom:-.0625rem;color:var(--sb-color-violet);left:0;opacity:0}.dnb-table .dnb-table__th.dnb-table--sortable .dnb-table__sort-button.dnb-button:not(:focus) .dnb-button__text:after,.dnb-table>thead>tr>th.dnb-table--sortable .dnb-table__sort-button.dnb-button:not(:focus) .dnb-button__text:after{color:var(--sb-color-violet)}html:not([data-whatintent=touch]) .dnb-table .dnb-table__th.dnb-table--sortable .dnb-table__sort-button.dnb-button:hover[disabled],html:not([data-whatintent=touch]) .dnb-table>thead>tr>th.dnb-table--sortable .dnb-table__sort-button.dnb-button:hover[disabled]{cursor:not-allowed}html:not([data-whatintent=touch]) .dnb-table .dnb-table__th.dnb-table--sortable .dnb-table__sort-button.dnb-button:hover:not([disabled]),html:not([data-whatintent=touch]) .dnb-table>thead>tr>th.dnb-table--sortable .dnb-table__sort-button.dnb-button:hover:not([disabled]){color:var(--sb-color-violet)}.dnb-table .dnb-table__th.dnb-table--sortable .dnb-table__sort-button.dnb-button:active[disabled],.dnb-table>thead>tr>th.dnb-table--sortable .dnb-table__sort-button.dnb-button:active[disabled],html:not([data-whatintent=touch]) .dnb-table .dnb-table__th.dnb-table--sortable .dnb-table__sort-button.dnb-button:active[disabled],html:not([data-whatintent=touch]) .dnb-table>thead>tr>th.dnb-table--sortable .dnb-table__sort-button.dnb-button:active[disabled]{cursor:not-allowed}.dnb-table .dnb-table__th.dnb-table--sortable .dnb-table__sort-button.dnb-button:active:not([disabled]),.dnb-table>thead>tr>th.dnb-table--sortable .dnb-table__sort-button.dnb-button:active:not([disabled]),html:not([data-whatintent=touch]) .dnb-table .dnb-table__th.dnb-table--sortable .dnb-table__sort-button.dnb-button:active:not([disabled]),html:not([data-whatintent=touch]) .dnb-table>thead>tr>th.dnb-table--sortable .dnb-table__sort-button.dnb-button:active:not([disabled]){color:var(--sb-color-violet)}html[data-whatinput=mouse] .dnb-table .dnb-table__th.dnb-table--sortable .dnb-table__sort-button.dnb-button:active:not([disabled]):before,html[data-whatinput=mouse] .dnb-table>thead>tr>th.dnb-table--sortable .dnb-table__sort-button.dnb-button:active:not([disabled]):before,html[data-whatinput=mouse] html:not([data-whatintent=touch]) .dnb-table .dnb-table__th.dnb-table--sortable .dnb-table__sort-button.dnb-button:active:not([disabled]):before,html[data-whatinput=mouse] html:not([data-whatintent=touch]) .dnb-table>thead>tr>th.dnb-table--sortable .dnb-table__sort-button.dnb-button:active:not([disabled]):before{--border-color:var(--focus-ring-color);--border-width:var(--focus-ring-width);border-color:transparent;box-shadow:inset 0 0 0 var(--border-width) var(--border-color)}.dnb-table .dnb-table__th.dnb-table--sortable .dnb-table__sort-button.dnb-button:active:not([disabled]):before,.dnb-table>thead>tr>th.dnb-table--sortable .dnb-table__sort-button.dnb-button:active:not([disabled]):before,html:not([data-whatintent=touch]) .dnb-table .dnb-table__th.dnb-table--sortable .dnb-table__sort-button.dnb-button:active:not([disabled]):before,html:not([data-whatintent=touch]) .dnb-table>thead>tr>th.dnb-table--sortable .dnb-table__sort-button.dnb-button:active:not([disabled]):before{border-radius:inherit;bottom:0;content:"";height:inherit;left:-.5rem;outline:none;position:absolute;right:-.5rem;top:0;z-index:1}html[data-whatinput=touch] .dnb-table .dnb-table__th.dnb-table--sortable .dnb-table__sort-button.dnb-button:active:not([disabled]):before,html[data-whatinput=touch] .dnb-table>thead>tr>th.dnb-table--sortable .dnb-table__sort-button.dnb-button:active:not([disabled]):before,html[data-whatinput=touch] html:not([data-whatintent=touch]) .dnb-table .dnb-table__th.dnb-table--sortable .dnb-table__sort-button.dnb-button:active:not([disabled]):before,html[data-whatinput=touch] html:not([data-whatintent=touch]) .dnb-table>thead>tr>th.dnb-table--sortable .dnb-table__sort-button.dnb-button:active:not([disabled]):before{--border-color:var(--focus-ring-color);--border-width:var(--focus-ring-width);border-color:transparent;box-shadow:inset 0 0 0 var(--border-width) var(--border-color)}.dnb-table .dnb-table__th.dnb-table--sortable .dnb-table__sort-button.dnb-button:active:not([disabled]):before,.dnb-table>thead>tr>th.dnb-table--sortable .dnb-table__sort-button.dnb-button:active:not([disabled]):before,html:not([data-whatintent=touch]) .dnb-table .dnb-table__th.dnb-table--sortable .dnb-table__sort-button.dnb-button:active:not([disabled]):before,html:not([data-whatintent=touch]) .dnb-table>thead>tr>th.dnb-table--sortable .dnb-table__sort-button.dnb-button:active:not([disabled]):before{bottom:-.25rem;left:-.6875rem;right:-.4375rem;top:-.375rem}.dnb-table .dnb-table__th.dnb-table--sortable .dnb-table__sort-button.dnb-button:focus[disabled],.dnb-table>thead>tr>th.dnb-table--sortable .dnb-table__sort-button.dnb-button:focus[disabled],html:not([data-whatintent=touch]) .dnb-table .dnb-table__th.dnb-table--sortable .dnb-table__sort-button.dnb-button:focus[disabled],html:not([data-whatintent=touch]) .dnb-table>thead>tr>th.dnb-table--sortable .dnb-table__sort-button.dnb-button:focus[disabled]{cursor:not-allowed}.dnb-table .dnb-table__th.dnb-table--sortable .dnb-table__sort-button.dnb-button:focus:not([disabled]):before,.dnb-table>thead>tr>th.dnb-table--sortable .dnb-table__sort-button.dnb-button:focus:not([disabled]):before,html:not([data-whatintent=touch]) .dnb-table .dnb-table__th.dnb-table--sortable .dnb-table__sort-button.dnb-button:focus:not([disabled]):before,html:not([data-whatintent=touch]) .dnb-table>thead>tr>th.dnb-table--sortable .dnb-table__sort-button.dnb-button:focus:not([disabled]):before{bottom:-.25rem;left:-.6875rem;right:-.4375rem;top:-.375rem}.dnb-table .dnb-table__th.dnb-table--sortable .dnb-table__sort-button.dnb-button:focus:not([disabled]).focus-visible,.dnb-table>thead>tr>th.dnb-table--sortable .dnb-table__sort-button.dnb-button:focus:not([disabled]).focus-visible,html:not([data-whatintent=touch]) .dnb-table .dnb-table__th.dnb-table--sortable .dnb-table__sort-button.dnb-button:focus:not([disabled]).focus-visible,html:not([data-whatintent=touch]) .dnb-table>thead>tr>th.dnb-table--sortable .dnb-table__sort-button.dnb-button:focus:not([disabled]).focus-visible{color:var(--sb-color-blue-dark)}.dnb-table .dnb-table__th.dnb-table--sortable .dnb-table__sort-button.dnb-button:focus:not([disabled]):focus-visible,.dnb-table>thead>tr>th.dnb-table--sortable .dnb-table__sort-button.dnb-button:focus:not([disabled]):focus-visible,html:not([data-whatintent=touch]) .dnb-table .dnb-table__th.dnb-table--sortable .dnb-table__sort-button.dnb-button:focus:not([disabled]):focus-visible,html:not([data-whatintent=touch]) .dnb-table>thead>tr>th.dnb-table--sortable .dnb-table__sort-button.dnb-button:focus:not([disabled]):focus-visible{color:var(--sb-color-blue-dark)}.dnb-table .dnb-table__th.dnb-table--sortable .dnb-table__sort-button.dnb-button:focus:not([disabled]):not(:active) .dnb-button__text:after,.dnb-table>thead>tr>th.dnb-table--sortable .dnb-table__sort-button.dnb-button:focus:not([disabled]):not(:active) .dnb-button__text:after,html:not([data-whatintent=touch]) .dnb-table .dnb-table__th.dnb-table--sortable .dnb-table__sort-button.dnb-button:focus:not([disabled]):not(:active) .dnb-button__text:after,html:not([data-whatintent=touch]) .dnb-table>thead>tr>th.dnb-table--sortable .dnb-table__sort-button.dnb-button:focus:not([disabled]):not(:active) .dnb-button__text:after{visibility:hidden}html:not([data-whatintent=touch]) .dnb-table .dnb-table__th.dnb-table--active .dnb-table__sort-button.dnb-button:hover[disabled],html:not([data-whatintent=touch]) .dnb-table>thead>tr>th.dnb-table--active .dnb-table__sort-button.dnb-button:hover[disabled]{cursor:not-allowed}html:not([data-whatintent=touch]) .dnb-table .dnb-table__th.dnb-table--active .dnb-table__sort-button.dnb-button:hover:not([disabled]) .dnb-button__text:after,html:not([data-whatintent=touch]) .dnb-table>thead>tr>th.dnb-table--active .dnb-table__sort-button.dnb-button:hover:not([disabled]) .dnb-button__text:after{color:var(--sb-color-violet)}.dnb-table,.dnb-table__container{--border-width:0.0625rem;--outline-width:0.0625rem;--border:var(--border-width) solid var(--sb-color-gray-light-2);--outline:var(--outline-width) solid var(--sb-color-gray-light-2);background-color:var(--sb-color-white)}
@@ -4,14 +4,15 @@
4
4
  */
5
5
 
6
6
  @import '../../../../style/core/utilities.scss';
7
+ @import '../../../button/style/themes/button-mixins.scss';
7
8
  @import '../table-mixins.scss';
8
9
 
9
10
  @mixin tableFocusRing() {
10
11
  &::before {
11
- top: -0.1875rem;
12
- bottom: -0.0625rem;
13
- left: -0.5rem;
14
- right: -0.25rem;
12
+ top: -0.375rem;
13
+ bottom: -0.25rem;
14
+ left: -0.6875rem;
15
+ right: -0.4375rem;
15
16
  }
16
17
  }
17
18
 
@@ -60,10 +61,25 @@
60
61
  }
61
62
  @include active() {
62
63
  color: var(--sb-color-violet);
64
+ @include buttonFocusRing(
65
+ 'mouse',
66
+ inset
67
+ ); // also, make a mouse ring
68
+ @include buttonFocusRing(
69
+ 'touch',
70
+ inset
71
+ ); // also, make a touch ring
63
72
  @include tableFocusRing();
64
73
  }
65
74
  @include focus() {
66
75
  @include tableFocusRing();
76
+ &:focus-visible {
77
+ color: var(--sb-color-blue-dark);
78
+ }
79
+
80
+ &:not(:active) .dnb-button__text::after {
81
+ visibility: hidden;
82
+ }
67
83
  }
68
84
  }
69
85
  }
@@ -92,4 +108,4 @@
92
108
  --outline: var(--outline-width) solid var(--sb-color-gray-light-2);
93
109
 
94
110
  background-color: var(--sb-color-white);
95
- }
111
+ }
@@ -19,14 +19,14 @@ export default function Provider({
19
19
  children
20
20
  }) {
21
21
  const ajvSchemaValidator = useMemo(() => schema ? ajv.compile(schema) : undefined, [schema]);
22
- const internalData = useRef(externalData);
22
+ const [internalData, setInternalData] = useState(externalData);
23
23
  const mountedFieldPathsRef = useRef([]);
24
24
  const errorsRef = useRef({});
25
25
  const [showAllErrors, setShowAllErrors] = useState(false);
26
26
  const pathsWithErrorRef = useRef([]);
27
27
  const hasErrors = useCallback(() => Boolean(mountedFieldPathsRef.current.find(mountedFieldPath => errorsRef.current[mountedFieldPath] !== undefined || pathsWithErrorRef.current.includes(mountedFieldPath))), []);
28
28
  useEffect(() => {
29
- internalData.current = externalData;
29
+ setInternalData(externalData);
30
30
  }, [externalData]);
31
31
  const validateBySchema = useCallback(data => {
32
32
  if (!ajvSchemaValidator) {
@@ -47,15 +47,15 @@ export default function Provider({
47
47
  }, []);
48
48
  const handlePathChange = useCallback((path, value) => {
49
49
  onPathChange === null || onPathChange === void 0 ? void 0 : onPathChange(path, value);
50
- const newData = structuredClone(internalData.current);
50
+ const newData = structuredClone(internalData);
51
51
  if (path) {
52
52
  pointer.set(newData, path, value);
53
53
  }
54
54
  onChange === null || onChange === void 0 ? void 0 : onChange(newData);
55
55
  validateBySchemaAndUpdateState(newData);
56
- internalData.current = newData;
56
+ setInternalData(newData);
57
57
  setShowAllErrors(false);
58
- }, [onChange, onPathChange, validateBySchemaAndUpdateState]);
58
+ }, [internalData, onChange, onPathChange, validateBySchemaAndUpdateState]);
59
59
  const handleMountField = useCallback(path => {
60
60
  mountedFieldPathsRef.current = addListPath(mountedFieldPathsRef.current, path);
61
61
  }, []);
@@ -64,7 +64,7 @@ export default function Provider({
64
64
  }, []);
65
65
  const handleSubmit = useCallback(() => {
66
66
  if (!hasErrors()) {
67
- onSubmit === null || onSubmit === void 0 ? void 0 : onSubmit(internalData.current);
67
+ onSubmit === null || onSubmit === void 0 ? void 0 : onSubmit(internalData);
68
68
  if (scrollTopOnSubmit) {
69
69
  var _window;
70
70
  window && ((_window = window) === null || _window === void 0 ? void 0 : _window.scrollTo({
@@ -76,8 +76,8 @@ export default function Provider({
76
76
  setShowAllErrors(true);
77
77
  onSubmitRequest === null || onSubmitRequest === void 0 ? void 0 : onSubmitRequest();
78
78
  }
79
- return internalData.current;
80
- }, [scrollTopOnSubmit, hasErrors, onSubmit, onSubmitRequest]);
79
+ return internalData;
80
+ }, [internalData, scrollTopOnSubmit, hasErrors, onSubmit, onSubmitRequest]);
81
81
  useEffect(() => {
82
82
  if (externalData) {
83
83
  validateBySchemaAndUpdateState(externalData);
@@ -85,7 +85,7 @@ export default function Provider({
85
85
  }, []);
86
86
  return React.createElement(Context.Provider, {
87
87
  value: {
88
- data: internalData.current,
88
+ data: internalData,
89
89
  handlePathChange,
90
90
  handleSubmit,
91
91
  errors: errorsRef.current,
@@ -1 +1 @@
1
- {"version":3,"file":"Provider.js","names":["React","useEffect","useRef","useMemo","useCallback","useState","pointer","ajv","ajvErrorsToFormErrors","Context","addListPath","paths","path","includes","concat","removeListPath","filter","thisPath","Provider","data","externalData","schema","onChange","onPathChange","onSubmit","onSubmitRequest","scrollTopOnSubmit","children","ajvSchemaValidator","compile","undefined","internalData","mountedFieldPathsRef","errorsRef","showAllErrors","setShowAllErrors","pathsWithErrorRef","hasErrors","Boolean","current","find","mountedFieldPath","validateBySchema","errors","validateBySchemaAndUpdateState","setPathWithError","hasError","handlePathChange","value","newData","structuredClone","set","handleMountField","handleUnMountField","handleSubmit","_window","window","scrollTo","top","behavior","createElement","mountedFieldPaths"],"sources":["../../../../../src/extensions/forms/DataContext/Provider.tsx"],"sourcesContent":["import React, {\n useEffect,\n useRef,\n useMemo,\n useCallback,\n useState,\n} from 'react'\nimport pointer, { JsonObject } from 'json-pointer'\nimport { JSONSchema7 } from 'json-schema'\nimport ajv, { ajvErrorsToFormErrors } from '../utils/ajv'\nimport { FormError } from '../types'\nimport Context from './Context'\n\nexport interface Props<Data extends JsonObject> {\n data: Partial<Data>\n /** JSON Schema for validating the data, like during input or after attempting submit */\n schema?: JSONSchema7\n /** Change handler for the whole data set */\n onChange?: (data: Data) => void\n /** Change handler for each value */\n onPathChange?: (path: string, value: any) => void\n /** Submit called, data was valid (if validation available) */\n onSubmit?: (data: Data) => void\n /** Submit was requested, but data was invalid */\n onSubmitRequest?: () => void\n scrollTopOnSubmit?: boolean\n children: React.ReactNode\n}\n\ntype PathList = string[]\n\nfunction addListPath(paths: PathList, path: string): PathList {\n return paths.includes(path) ? paths : paths.concat(path)\n}\n\nfunction removeListPath(paths: PathList, path: string): PathList {\n return paths.filter((thisPath) => thisPath !== path)\n}\n\nexport default function Provider<Data extends JsonObject>({\n data: externalData,\n schema,\n onChange,\n onPathChange,\n onSubmit,\n onSubmitRequest,\n scrollTopOnSubmit,\n children,\n}: Props<Data>) {\n const ajvSchemaValidator = useMemo(\n () => (schema ? ajv.compile(schema) : undefined),\n [schema]\n )\n const internalData = useRef<Partial<Data>>(externalData)\n const mountedFieldPathsRef = useRef<string[]>([])\n\n // Errors from provider validation (the whole data set)\n const errorsRef = useRef<Record<string, FormError>>({})\n const [showAllErrors, setShowAllErrors] = useState<boolean>(false)\n // Errors reported by fields, based on their direct validation rules\n const pathsWithErrorRef = useRef<string[]>([])\n\n const hasErrors = useCallback(\n () =>\n Boolean(\n mountedFieldPathsRef.current.find(\n (mountedFieldPath) =>\n errorsRef.current[mountedFieldPath] !== undefined ||\n pathsWithErrorRef.current.includes(mountedFieldPath)\n )\n ),\n []\n )\n\n useEffect(() => {\n // When receivint the initial data, or receiving updated data by props, update the internal data (controlled state)\n internalData.current = externalData\n }, [externalData])\n\n const validateBySchema = useCallback(\n (data: Partial<Data>): Record<string, Error> | undefined => {\n if (!ajvSchemaValidator) {\n // No schema-based validator. Assume data is valid.\n return\n }\n\n if (!ajvSchemaValidator(data)) {\n // Errors found\n const errors = ajvErrorsToFormErrors(ajvSchemaValidator.errors)\n return errors\n } else {\n return\n }\n },\n [ajvSchemaValidator]\n )\n\n const validateBySchemaAndUpdateState = useCallback(\n (data: Partial<Data>) => {\n errorsRef.current = validateBySchema(data) ?? {}\n },\n [validateBySchema]\n )\n\n const setPathWithError = useCallback(\n (path: string, hasError: boolean) => {\n pathsWithErrorRef.current = hasError\n ? addListPath(pathsWithErrorRef.current, path)\n : removeListPath(pathsWithErrorRef.current, path)\n },\n []\n )\n\n const handlePathChange = useCallback(\n (path, value) => {\n onPathChange?.(path, value)\n // Update the data even if it contains errors. Submit/SubmitRequest will be called accordingly\n const newData = structuredClone(internalData.current) as Data\n if (path) {\n pointer.set(newData, path, value)\n }\n onChange?.(newData)\n\n validateBySchemaAndUpdateState(newData)\n\n internalData.current = newData\n\n setShowAllErrors(false)\n },\n [onChange, onPathChange, validateBySchemaAndUpdateState]\n )\n\n // Mounted fields\n const handleMountField = useCallback((path: string) => {\n mountedFieldPathsRef.current = addListPath(\n mountedFieldPathsRef.current,\n path\n )\n }, [])\n\n const handleUnMountField = useCallback((path: string) => {\n mountedFieldPathsRef.current = removeListPath(\n mountedFieldPathsRef.current,\n path\n )\n }, [])\n\n /**\n * Request to submit the whole form\n */\n const handleSubmit = useCallback(() => {\n if (!hasErrors()) {\n onSubmit?.(internalData.current as Data)\n if (scrollTopOnSubmit) {\n window && window?.scrollTo({ top: 0, behavior: 'smooth' })\n }\n } else {\n setShowAllErrors(true)\n onSubmitRequest?.()\n }\n return internalData.current\n }, [scrollTopOnSubmit, hasErrors, onSubmit, onSubmitRequest])\n\n useEffect(() => {\n // Mount procedure\n if (externalData) {\n // Validate the initial data to know if the user can submit, and to show errors if inputs are requested to with props\n validateBySchemaAndUpdateState(externalData)\n }\n // eslint-disable-next-line react-hooks/exhaustive-deps -- Only run for mount and unmount\n }, [])\n\n return (\n <Context.Provider\n value={{\n data: internalData.current,\n handlePathChange,\n handleSubmit,\n errors: errorsRef.current,\n showAllErrors,\n setShowAllErrors,\n mountedFieldPaths: mountedFieldPathsRef.current,\n handleMountField,\n handleUnMountField,\n hasErrors,\n setPathWithError,\n }}\n >\n {children}\n </Context.Provider>\n )\n}\n"],"mappings":"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"}
1
+ {"version":3,"file":"Provider.js","names":["React","useEffect","useRef","useMemo","useCallback","useState","pointer","ajv","ajvErrorsToFormErrors","Context","addListPath","paths","path","includes","concat","removeListPath","filter","thisPath","Provider","data","externalData","schema","onChange","onPathChange","onSubmit","onSubmitRequest","scrollTopOnSubmit","children","ajvSchemaValidator","compile","undefined","internalData","setInternalData","mountedFieldPathsRef","errorsRef","showAllErrors","setShowAllErrors","pathsWithErrorRef","hasErrors","Boolean","current","find","mountedFieldPath","validateBySchema","errors","validateBySchemaAndUpdateState","setPathWithError","hasError","handlePathChange","value","newData","structuredClone","set","handleMountField","handleUnMountField","handleSubmit","_window","window","scrollTo","top","behavior","createElement","mountedFieldPaths"],"sources":["../../../../../src/extensions/forms/DataContext/Provider.tsx"],"sourcesContent":["import React, {\n useEffect,\n useRef,\n useMemo,\n useCallback,\n useState,\n} from 'react'\nimport pointer, { JsonObject } from 'json-pointer'\nimport { JSONSchema7 } from 'json-schema'\nimport ajv, { ajvErrorsToFormErrors } from '../utils/ajv'\nimport { FormError } from '../types'\nimport Context from './Context'\n\nexport interface Props<Data extends JsonObject> {\n data: Partial<Data>\n /** JSON Schema for validating the data, like during input or after attempting submit */\n schema?: JSONSchema7\n /** Change handler for the whole data set */\n onChange?: (data: Data) => void\n /** Change handler for each value */\n onPathChange?: (path: string, value: any) => void\n /** Submit called, data was valid (if validation available) */\n onSubmit?: (data: Data) => void\n /** Submit was requested, but data was invalid */\n onSubmitRequest?: () => void\n scrollTopOnSubmit?: boolean\n children: React.ReactNode\n}\n\ntype PathList = string[]\n\nfunction addListPath(paths: PathList, path: string): PathList {\n return paths.includes(path) ? paths : paths.concat(path)\n}\n\nfunction removeListPath(paths: PathList, path: string): PathList {\n return paths.filter((thisPath) => thisPath !== path)\n}\n\nexport default function Provider<Data extends JsonObject>({\n data: externalData,\n schema,\n onChange,\n onPathChange,\n onSubmit,\n onSubmitRequest,\n scrollTopOnSubmit,\n children,\n}: Props<Data>) {\n const ajvSchemaValidator = useMemo(\n () => (schema ? ajv.compile(schema) : undefined),\n [schema]\n )\n const [internalData, setInternalData] =\n useState<Partial<Data>>(externalData)\n const mountedFieldPathsRef = useRef<string[]>([])\n\n // Errors from provider validation (the whole data set)\n const errorsRef = useRef<Record<string, FormError>>({})\n const [showAllErrors, setShowAllErrors] = useState<boolean>(false)\n // Errors reported by fields, based on their direct validation rules\n const pathsWithErrorRef = useRef<string[]>([])\n\n const hasErrors = useCallback(\n () =>\n Boolean(\n mountedFieldPathsRef.current.find(\n (mountedFieldPath) =>\n errorsRef.current[mountedFieldPath] !== undefined ||\n pathsWithErrorRef.current.includes(mountedFieldPath)\n )\n ),\n []\n )\n\n useEffect(() => {\n // When receivint the initial data, or receiving updated data by props, update the internal data (controlled state)\n setInternalData(externalData)\n }, [externalData])\n\n const validateBySchema = useCallback(\n (data: Partial<Data>): Record<string, Error> | undefined => {\n if (!ajvSchemaValidator) {\n // No schema-based validator. Assume data is valid.\n return\n }\n\n if (!ajvSchemaValidator(data)) {\n // Errors found\n const errors = ajvErrorsToFormErrors(ajvSchemaValidator.errors)\n return errors\n } else {\n return\n }\n },\n [ajvSchemaValidator]\n )\n\n const validateBySchemaAndUpdateState = useCallback(\n (data: Partial<Data>) => {\n errorsRef.current = validateBySchema(data) ?? {}\n },\n [validateBySchema]\n )\n\n const setPathWithError = useCallback(\n (path: string, hasError: boolean) => {\n pathsWithErrorRef.current = hasError\n ? addListPath(pathsWithErrorRef.current, path)\n : removeListPath(pathsWithErrorRef.current, path)\n },\n []\n )\n\n const handlePathChange = useCallback(\n (path, value) => {\n onPathChange?.(path, value)\n // Update the data even if it contains errors. Submit/SubmitRequest will be called accordingly\n const newData = structuredClone(internalData) as Data\n if (path) {\n pointer.set(newData, path, value)\n }\n onChange?.(newData)\n\n validateBySchemaAndUpdateState(newData)\n\n setInternalData(newData)\n\n setShowAllErrors(false)\n },\n [internalData, onChange, onPathChange, validateBySchemaAndUpdateState]\n )\n\n // Mounted fields\n const handleMountField = useCallback((path: string) => {\n mountedFieldPathsRef.current = addListPath(\n mountedFieldPathsRef.current,\n path\n )\n }, [])\n\n const handleUnMountField = useCallback((path: string) => {\n mountedFieldPathsRef.current = removeListPath(\n mountedFieldPathsRef.current,\n path\n )\n }, [])\n\n /**\n * Request to submit the whole form\n */\n const handleSubmit = useCallback(() => {\n if (!hasErrors()) {\n onSubmit?.(internalData as Data)\n if (scrollTopOnSubmit) {\n window && window?.scrollTo({ top: 0, behavior: 'smooth' })\n }\n } else {\n setShowAllErrors(true)\n onSubmitRequest?.()\n }\n return internalData\n }, [\n internalData,\n scrollTopOnSubmit,\n hasErrors,\n onSubmit,\n onSubmitRequest,\n ])\n\n useEffect(() => {\n // Mount procedure\n if (externalData) {\n // Validate the initial data to know if the user can submit, and to show errors if inputs are requested to with props\n validateBySchemaAndUpdateState(externalData)\n }\n // eslint-disable-next-line react-hooks/exhaustive-deps -- Only run for mount and unmount\n }, [])\n\n return (\n <Context.Provider\n value={{\n data: internalData,\n handlePathChange,\n handleSubmit,\n errors: errorsRef.current,\n showAllErrors,\n setShowAllErrors,\n mountedFieldPaths: mountedFieldPathsRef.current,\n handleMountField,\n handleUnMountField,\n hasErrors,\n setPathWithError,\n }}\n >\n {children}\n </Context.Provider>\n )\n}\n"],"mappings":"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"}
@@ -72,10 +72,11 @@ function NumberComponent(props) {
72
72
  labelSecondary: labelSecondary,
73
73
  info: info,
74
74
  warning: warning,
75
- error: error
75
+ error: error,
76
+ contentsWidth: width !== false ? width : undefined
76
77
  }, forwardSpaceProps(props)), React.createElement(InputMasked, {
77
78
  id: id,
78
- className: classnames('dnb-forms-field-number__input', inputClassName, width !== false && width !== 'stretch' && `dnb-forms-field-number__input--width-${width}`),
79
+ className: classnames('dnb-forms-field-number__input', inputClassName),
79
80
  placeholder: placeholder,
80
81
  value: value,
81
82
  as_number: true,
@@ -92,7 +93,7 @@ function NumberComponent(props) {
92
93
  on_blur: onBlur,
93
94
  on_change: onChange,
94
95
  disabled: disabled,
95
- stretch: width === 'stretch'
96
+ stretch: width !== undefined
96
97
  }));
97
98
  }
98
99
  NumberComponent._supportsEufemiaSpacingProps = true;
@@ -1 +1 @@
1
- {"version":3,"file":"Number.js","names":["React","InputMasked","classnames","forwardSpaceProps","FieldBlock","useField","NumberComponent","props","thousandSeparator","decimalSymbol","decimalLimit","prefix","suffix","rightAligned","preparedProps","_objectSpread","schema","type","minimum","maximum","exclusiveMinimum","exclusiveMaximum","multipleOf","toInput","external","undefined","fromInput","value","numberValue","emptyValue","width","id","className","inputClassName","layout","placeholder","label","labelDescription","labelSecondary","disabled","info","warning","error","onFocus","onBlur","onChange","createElement","_extends","forId","as_number","number_mask","includeThousandsSeparator","thousandsSeparatorSymbol","right","on_focus","on_blur","on_change","stretch","_supportsEufemiaSpacingProps"],"sources":["../../../../../src/extensions/forms/Field/Number.tsx"],"sourcesContent":["import React from 'react'\nimport { InputMasked } from '../../../components'\nimport classnames from 'classnames'\nimport { forwardSpaceProps } from '../utils'\nimport FieldBlock from '../FieldBlock'\nimport { useField } from './hooks'\nimport type { ComponentProps } from '../component-types'\nimport type { FieldProps } from '../field-types'\n\ninterface ErrorMessages {\n required?: string\n schema?: string\n minimum?: string\n maximum?: string\n exclusiveMinimum?: string\n exclusiveMaximum?: string\n multipleOf?: string\n}\n\nexport type Props = ComponentProps &\n FieldProps<number, undefined, ErrorMessages> & {\n inputClassName?: string\n // Formatting\n thousandSeparator?: string | true\n decimalSymbol?: string\n decimalLimit?: number\n prefix?: string\n suffix?: string\n // Validation\n minimum?: number // aka greater than or equal to\n maximum?: number // aka less than or equal to\n exclusiveMinimum?: number // aka greater than\n exclusiveMaximum?: number // aka less than\n multipleOf?: number\n // Styling\n width?: false | 'medium' | 'large' | 'stretch'\n rightAligned?: boolean\n }\n\nfunction NumberComponent(props: Props) {\n const {\n thousandSeparator,\n decimalSymbol = ',',\n decimalLimit = 12,\n prefix,\n suffix,\n rightAligned,\n } = props\n\n const preparedProps: Props = {\n ...props,\n schema: props.schema ?? {\n type: 'number',\n minimum: props.minimum,\n maximum: props.maximum,\n exclusiveMinimum: props.exclusiveMinimum,\n exclusiveMaximum: props.exclusiveMaximum,\n multipleOf: props.multipleOf,\n },\n toInput: (external: number | undefined) => {\n if (external === undefined) {\n return ''\n }\n return external\n },\n fromInput: ({\n value,\n numberValue,\n }: {\n value: string\n numberValue: number\n }) => {\n if (value === '') {\n return emptyValue\n }\n return numberValue\n },\n width: props.width ?? 'medium',\n }\n\n const {\n id,\n className,\n inputClassName,\n layout,\n placeholder,\n label,\n labelDescription,\n labelSecondary,\n value,\n disabled,\n info,\n warning,\n error,\n emptyValue,\n width,\n onFocus,\n onBlur,\n onChange,\n } = useField(preparedProps)\n\n return (\n <FieldBlock\n className={classnames('dnb-forms-field-number', className)}\n forId={id}\n layout={layout}\n label={label}\n labelDescription={labelDescription}\n labelSecondary={labelSecondary}\n info={info}\n warning={warning}\n error={error}\n {...forwardSpaceProps(props)}\n >\n <InputMasked\n id={id}\n className={classnames(\n 'dnb-forms-field-number__input',\n width !== false &&\n width !== 'stretch' &&\n `dnb-forms-field-number__input--width-${width}`,\n inputClassName\n )}\n placeholder={placeholder}\n value={value}\n as_number\n number_mask={{\n decimalLimit,\n decimalSymbol,\n includeThousandsSeparator: thousandSeparator !== undefined,\n thousandsSeparatorSymbol:\n thousandSeparator === true ? ' ' : thousandSeparator,\n prefix,\n suffix,\n }}\n right={rightAligned}\n on_focus={onFocus}\n on_blur={onBlur}\n on_change={onChange}\n disabled={disabled}\n stretch={width === 'stretch'}\n />\n </FieldBlock>\n )\n}\n\nNumberComponent._supportsEufemiaSpacingProps = true\nexport default NumberComponent\n"],"mappings":"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"}
1
+ {"version":3,"file":"Number.js","names":["React","InputMasked","classnames","forwardSpaceProps","FieldBlock","useField","NumberComponent","props","thousandSeparator","decimalSymbol","decimalLimit","prefix","suffix","rightAligned","preparedProps","_objectSpread","schema","type","minimum","maximum","exclusiveMinimum","exclusiveMaximum","multipleOf","toInput","external","undefined","fromInput","value","numberValue","emptyValue","width","id","className","inputClassName","layout","placeholder","label","labelDescription","labelSecondary","disabled","info","warning","error","onFocus","onBlur","onChange","createElement","_extends","forId","contentsWidth","as_number","number_mask","includeThousandsSeparator","thousandsSeparatorSymbol","right","on_focus","on_blur","on_change","stretch","_supportsEufemiaSpacingProps"],"sources":["../../../../../src/extensions/forms/Field/Number.tsx"],"sourcesContent":["import React from 'react'\nimport { InputMasked } from '../../../components'\nimport classnames from 'classnames'\nimport { forwardSpaceProps } from '../utils'\nimport FieldBlock from '../FieldBlock'\nimport { useField } from './hooks'\nimport type { ComponentProps } from '../component-types'\nimport type { FieldProps } from '../field-types'\n\ninterface ErrorMessages {\n required?: string\n schema?: string\n minimum?: string\n maximum?: string\n exclusiveMinimum?: string\n exclusiveMaximum?: string\n multipleOf?: string\n}\n\nexport type Props = ComponentProps &\n FieldProps<number, undefined, ErrorMessages> & {\n inputClassName?: string\n // Formatting\n thousandSeparator?: string | true\n decimalSymbol?: string\n decimalLimit?: number\n prefix?: string\n suffix?: string\n // Validation\n minimum?: number // aka greater than or equal to\n maximum?: number // aka less than or equal to\n exclusiveMinimum?: number // aka greater than\n exclusiveMaximum?: number // aka less than\n multipleOf?: number\n // Styling\n width?: false | 'medium' | 'large' | 'stretch'\n rightAligned?: boolean\n }\n\nfunction NumberComponent(props: Props) {\n const {\n thousandSeparator,\n decimalSymbol = ',',\n decimalLimit = 12,\n prefix,\n suffix,\n rightAligned,\n } = props\n\n const preparedProps: Props = {\n ...props,\n schema: props.schema ?? {\n type: 'number',\n minimum: props.minimum,\n maximum: props.maximum,\n exclusiveMinimum: props.exclusiveMinimum,\n exclusiveMaximum: props.exclusiveMaximum,\n multipleOf: props.multipleOf,\n },\n toInput: (external: number | undefined) => {\n if (external === undefined) {\n return ''\n }\n return external\n },\n fromInput: ({\n value,\n numberValue,\n }: {\n value: string\n numberValue: number\n }) => {\n if (value === '') {\n return emptyValue\n }\n return numberValue\n },\n width: props.width ?? 'medium',\n }\n\n const {\n id,\n className,\n inputClassName,\n layout,\n placeholder,\n label,\n labelDescription,\n labelSecondary,\n value,\n disabled,\n info,\n warning,\n error,\n emptyValue,\n width,\n onFocus,\n onBlur,\n onChange,\n } = useField(preparedProps)\n\n return (\n <FieldBlock\n className={classnames('dnb-forms-field-number', className)}\n forId={id}\n layout={layout}\n label={label}\n labelDescription={labelDescription}\n labelSecondary={labelSecondary}\n info={info}\n warning={warning}\n error={error}\n contentsWidth={width !== false ? width : undefined}\n {...forwardSpaceProps(props)}\n >\n <InputMasked\n id={id}\n className={classnames(\n 'dnb-forms-field-number__input',\n inputClassName\n )}\n placeholder={placeholder}\n value={value}\n as_number\n number_mask={{\n decimalLimit,\n decimalSymbol,\n includeThousandsSeparator: thousandSeparator !== undefined,\n thousandsSeparatorSymbol:\n thousandSeparator === true ? ' ' : thousandSeparator,\n prefix,\n suffix,\n }}\n right={rightAligned}\n on_focus={onFocus}\n on_blur={onBlur}\n on_change={onChange}\n disabled={disabled}\n stretch={width !== undefined}\n />\n </FieldBlock>\n )\n}\n\nNumberComponent._supportsEufemiaSpacingProps = true\nexport default NumberComponent\n"],"mappings":"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"}
@@ -3,7 +3,7 @@ import type { FieldProps } from '../field-types';
3
3
  export type Props = ComponentProps & FieldProps<string> & {
4
4
  countryCodeFieldClassName?: string;
5
5
  numberFieldClassName?: string;
6
- width?: false | 'medium' | 'large';
6
+ width?: 'medium' | 'large';
7
7
  };
8
8
  declare function PhoneNumber(props: Props): import("react/jsx-runtime").JSX.Element;
9
9
  declare namespace PhoneNumber {
@@ -58,7 +58,7 @@ function PhoneNumber(props) {
58
58
  onChange === null || onChange === void 0 ? void 0 : onChange([countryCode, value].filter(Boolean).join(' '));
59
59
  }, [countryCode, emptyValue, onChange]);
60
60
  return React.createElement(Div, _extends({
61
- className: classnames('dnb-forms-field-phone-number', className, width !== false && `dnb-forms-field-phone-number--width-${width}`)
61
+ className: classnames('dnb-forms-field-phone-number', className, width !== undefined && `dnb-forms-field-phone-number--width-${width}`)
62
62
  }, forwardSpaceProps(preparedProps)), React.createElement(Autocomplete, {
63
63
  className: classnames('dnb-forms-field-phone-number__country-code', countryCodeFieldClassName),
64
64
  label_direction: "vertical",
@@ -1 +1 @@
1
- {"version":3,"file":"PhoneNumber.js","names":["React","useContext","useCallback","useMemo","Div","Autocomplete","Input","classnames","countries","forwardSpaceProps","useField","SharedContext","PhoneNumber","props","_ref","sharedContext","preparedProps","_objectSpread","errorMessages","required","translation","Forms","phoneNumberErrorRequired","className","countryCodeFieldClassName","numberFieldClassName","placeholder","label","phoneNumberLabel","value","emptyValue","error","disabled","width","onFocus","onBlur","onChange","countryCode","phoneNumber","match","countriesDropdownData","map","country","selected_key","code","selected_value","iso","content","name","handleCountryCodeChange","data","changedData","trim","handleNumberChange","filter","Boolean","join","createElement","_extends","label_direction","countryCodeLabel","on_change","independent_width","on_focus","on_blur","status","message","type","_supportsEufemiaSpacingProps"],"sources":["../../../../../src/extensions/forms/Field/PhoneNumber.tsx"],"sourcesContent":["import React, { useContext, useCallback, useMemo } from 'react'\nimport { Div } from '../../../elements'\nimport { Autocomplete, Input } from '../../../components'\nimport classnames from 'classnames'\nimport countries from '../constants/countries'\nimport { forwardSpaceProps } from '../utils'\nimport { useField } from './hooks'\nimport type { ComponentProps } from '../component-types'\nimport type { FieldProps } from '../field-types'\nimport SharedContext from '../../../shared/Context'\n\nexport type Props = ComponentProps &\n FieldProps<string> & {\n countryCodeFieldClassName?: string\n numberFieldClassName?: string\n // Styling\n width?: false | 'medium' | 'large'\n }\n\nfunction PhoneNumber(props: Props) {\n const sharedContext = useContext(SharedContext)\n const preparedProps: Props = {\n ...props,\n errorMessages: {\n required: sharedContext?.translation.Forms.phoneNumberErrorRequired,\n ...props?.errorMessages,\n },\n }\n\n const {\n className,\n countryCodeFieldClassName,\n numberFieldClassName,\n placeholder,\n label = sharedContext?.translation.Forms.phoneNumberLabel,\n value,\n emptyValue,\n error,\n disabled,\n width = 'large',\n onFocus,\n onBlur,\n onChange,\n } = useField(preparedProps)\n\n // Split the value into country code and phone number correctly, even if one of them is not\n // filled in (avoiding number ending up in country code etc)\n const [, countryCode = '+47', phoneNumber = ''] =\n (value ?? '')?.match(/^(\\+[^ ]+)? ?(.*)$/) ?? []\n\n const countriesDropdownData = useMemo(\n () =>\n countries.map((country) => ({\n selected_key: `+${country.code}`,\n selected_value: `${country.iso} (+${country.code})`,\n content: `+${country.code} ${country.name}`,\n })),\n []\n )\n\n const handleCountryCodeChange = useCallback(\n ({ data: changedData }: { data: { selected_key: string } }) => {\n if (\n (!changedData || !changedData.selected_key.trim()) &&\n !phoneNumber.trim()\n ) {\n onChange?.(emptyValue)\n return\n }\n\n onChange?.(`${changedData?.selected_key || ''} ${phoneNumber}`)\n },\n [phoneNumber, emptyValue, onChange]\n )\n\n const handleNumberChange = useCallback(\n ({ value }: { value: string }) => {\n if (!value.trim() && !countryCode.trim()) {\n onChange?.(emptyValue)\n return\n }\n\n onChange?.([countryCode, value].filter(Boolean).join(' '))\n },\n [countryCode, emptyValue, onChange]\n )\n\n return (\n <Div\n className={classnames(\n 'dnb-forms-field-phone-number',\n width !== false && `dnb-forms-field-phone-number--width-${width}`,\n className\n )}\n {...forwardSpaceProps(preparedProps)}\n >\n <Autocomplete\n className={classnames(\n 'dnb-forms-field-phone-number__country-code',\n countryCodeFieldClassName\n )}\n label_direction=\"vertical\"\n label={sharedContext?.translation.Forms.countryCodeLabel}\n data={countriesDropdownData}\n value={countryCode ?? '+47'}\n disabled={disabled}\n on_change={handleCountryCodeChange}\n independent_width\n />\n <Input\n className={classnames(\n 'dnb-forms-field-phone-number__number',\n numberFieldClassName\n )}\n label_direction=\"vertical\"\n label={label ?? ' '}\n placeholder={placeholder ?? '00 00 00 00'}\n on_change={handleNumberChange}\n on_focus={onFocus}\n on_blur={onBlur}\n value={phoneNumber}\n status={error?.message}\n disabled={disabled}\n type=\"tel\"\n />\n </Div>\n )\n}\n\nPhoneNumber._supportsEufemiaSpacingProps = true\nexport default PhoneNumber\n"],"mappings":"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"}
1
+ {"version":3,"file":"PhoneNumber.js","names":["React","useContext","useCallback","useMemo","Div","Autocomplete","Input","classnames","countries","forwardSpaceProps","useField","SharedContext","PhoneNumber","props","_ref","sharedContext","preparedProps","_objectSpread","errorMessages","required","translation","Forms","phoneNumberErrorRequired","className","countryCodeFieldClassName","numberFieldClassName","placeholder","label","phoneNumberLabel","value","emptyValue","error","disabled","width","onFocus","onBlur","onChange","countryCode","phoneNumber","match","countriesDropdownData","map","country","selected_key","code","selected_value","iso","content","name","handleCountryCodeChange","data","changedData","trim","handleNumberChange","filter","Boolean","join","createElement","_extends","undefined","label_direction","countryCodeLabel","on_change","independent_width","on_focus","on_blur","status","message","type","_supportsEufemiaSpacingProps"],"sources":["../../../../../src/extensions/forms/Field/PhoneNumber.tsx"],"sourcesContent":["import React, { useContext, useCallback, useMemo } from 'react'\nimport { Div } from '../../../elements'\nimport { Autocomplete, Input } from '../../../components'\nimport classnames from 'classnames'\nimport countries from '../constants/countries'\nimport { forwardSpaceProps } from '../utils'\nimport { useField } from './hooks'\nimport type { ComponentProps } from '../component-types'\nimport type { FieldProps } from '../field-types'\nimport SharedContext from '../../../shared/Context'\n\nexport type Props = ComponentProps &\n FieldProps<string> & {\n countryCodeFieldClassName?: string\n numberFieldClassName?: string\n // Styling\n width?: 'medium' | 'large'\n }\n\nfunction PhoneNumber(props: Props) {\n const sharedContext = useContext(SharedContext)\n const preparedProps: Props = {\n ...props,\n errorMessages: {\n required: sharedContext?.translation.Forms.phoneNumberErrorRequired,\n ...props?.errorMessages,\n },\n }\n\n const {\n className,\n countryCodeFieldClassName,\n numberFieldClassName,\n placeholder,\n label = sharedContext?.translation.Forms.phoneNumberLabel,\n value,\n emptyValue,\n error,\n disabled,\n width = 'large',\n onFocus,\n onBlur,\n onChange,\n } = useField(preparedProps)\n\n // Split the value into country code and phone number correctly, even if one of them is not\n // filled in (avoiding number ending up in country code etc)\n const [, countryCode = '+47', phoneNumber = ''] =\n (value ?? '')?.match(/^(\\+[^ ]+)? ?(.*)$/) ?? []\n\n const countriesDropdownData = useMemo(\n () =>\n countries.map((country) => ({\n selected_key: `+${country.code}`,\n selected_value: `${country.iso} (+${country.code})`,\n content: `+${country.code} ${country.name}`,\n })),\n []\n )\n\n const handleCountryCodeChange = useCallback(\n ({ data: changedData }: { data: { selected_key: string } }) => {\n if (\n (!changedData || !changedData.selected_key.trim()) &&\n !phoneNumber.trim()\n ) {\n onChange?.(emptyValue)\n return\n }\n\n onChange?.(`${changedData?.selected_key || ''} ${phoneNumber}`)\n },\n [phoneNumber, emptyValue, onChange]\n )\n\n const handleNumberChange = useCallback(\n ({ value }: { value: string }) => {\n if (!value.trim() && !countryCode.trim()) {\n onChange?.(emptyValue)\n return\n }\n\n onChange?.([countryCode, value].filter(Boolean).join(' '))\n },\n [countryCode, emptyValue, onChange]\n )\n\n return (\n <Div\n className={classnames(\n 'dnb-forms-field-phone-number',\n width !== undefined &&\n `dnb-forms-field-phone-number--width-${width}`,\n className\n )}\n {...forwardSpaceProps(preparedProps)}\n >\n <Autocomplete\n className={classnames(\n 'dnb-forms-field-phone-number__country-code',\n countryCodeFieldClassName\n )}\n label_direction=\"vertical\"\n label={sharedContext?.translation.Forms.countryCodeLabel}\n data={countriesDropdownData}\n value={countryCode ?? '+47'}\n disabled={disabled}\n on_change={handleCountryCodeChange}\n independent_width\n />\n <Input\n className={classnames(\n 'dnb-forms-field-phone-number__number',\n numberFieldClassName\n )}\n label_direction=\"vertical\"\n label={label ?? ' '}\n placeholder={placeholder ?? '00 00 00 00'}\n on_change={handleNumberChange}\n on_focus={onFocus}\n on_blur={onBlur}\n value={phoneNumber}\n status={error?.message}\n disabled={disabled}\n type=\"tel\"\n />\n </Div>\n )\n}\n\nPhoneNumber._supportsEufemiaSpacingProps = true\nexport default PhoneNumber\n"],"mappings":"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"}
@@ -1,7 +1,7 @@
1
1
  import { Props as FieldGroupProps } from '../FieldGroup';
2
2
  import { Props as StringComponentProps } from './String';
3
3
  export type Props = Omit<FieldGroupProps, 'children'> & Record<'postalCode' | 'city', StringComponentProps> & {
4
- width?: false | 'medium' | 'large';
4
+ width?: 'medium' | 'large';
5
5
  };
6
6
  declare function PostalCodeAndCity(props: Props): import("react/jsx-runtime").JSX.Element;
7
7
  declare namespace PostalCodeAndCity {
@@ -20,7 +20,7 @@ function PostalCodeAndCity(props) {
20
20
  return React.createElement(FieldGroup, _extends({
21
21
  className: classnames('dnb-forms-field-postal-code-and-city', props.className)
22
22
  }, fieldGroupProps), React.createElement("div", {
23
- className: 'dnb-forms-field-postal-code-and-city__fields' + (width !== false ? ` dnb-forms-field-postal-code-and-city--width-${width}` : "")
23
+ className: 'dnb-forms-field-postal-code-and-city__fields' + (width !== undefined ? ` dnb-forms-field-postal-code-and-city--width-${width}` : "")
24
24
  }, React.createElement(StringComponent, _extends({}, postalCode, {
25
25
  pattern: postalCode.pattern ?? '^[0-9]{4}$',
26
26
  className: classnames('dnb-forms-field-postal-code-and-city__postal-code', postalCode.className),
@@ -1 +1 @@
1
- {"version":3,"file":"PostalCodeAndCity.js","names":["React","useContext","classnames","SharedContext","FieldGroup","StringComponent","PostalCodeAndCity","props","sharedContext","postalCode","city","width","fieldGroupProps","_objectWithoutProperties","_excluded","createElement","_extends","className","pattern","label","translation","Forms","postalCodeLabel","errorMessages","_objectSpread","required","postalCodeErrorRequired","postalCodeErrorPattern","placeholder","inputClassName","cityLabel","cityErrorRequired","_supportsEufemiaSpacingProps"],"sources":["../../../../../src/extensions/forms/Field/PostalCodeAndCity.tsx"],"sourcesContent":["import React, { useContext } from 'react'\nimport classnames from 'classnames'\nimport SharedContext from '../../../shared/Context'\nimport FieldGroup, { Props as FieldGroupProps } from '../FieldGroup'\nimport StringComponent, { Props as StringComponentProps } from './String'\n\nexport type Props = Omit<FieldGroupProps, 'children'> &\n Record<'postalCode' | 'city', StringComponentProps> & {\n width?: false | 'medium' | 'large'\n }\n\nfunction PostalCodeAndCity(props: Props) {\n const sharedContext = useContext(SharedContext)\n\n const {\n postalCode = {},\n city = {},\n width = 'large',\n ...fieldGroupProps\n } = props\n\n return (\n <FieldGroup\n className={classnames(\n 'dnb-forms-field-postal-code-and-city',\n props.className\n )}\n {...fieldGroupProps}\n >\n <div\n className={classnames(\n 'dnb-forms-field-postal-code-and-city__fields',\n width !== false &&\n `dnb-forms-field-postal-code-and-city--width-${width}`\n )}\n >\n <StringComponent\n {...postalCode}\n pattern={postalCode.pattern ?? '^[0-9]{4}$'}\n className={classnames(\n 'dnb-forms-field-postal-code-and-city__postal-code',\n postalCode.className\n )}\n label={\n postalCode.label ??\n sharedContext?.translation.Forms.postalCodeLabel\n }\n errorMessages={{\n required:\n sharedContext?.translation.Forms.postalCodeErrorRequired,\n pattern:\n sharedContext?.translation.Forms.postalCodeErrorPattern,\n ...postalCode.errorMessages,\n }}\n placeholder={postalCode.placeholder ?? '0000'}\n width={false}\n inputClassName=\"dnb-forms-field-postal-code-and-city__postal-code-input\"\n />\n <StringComponent\n {...city}\n className={classnames(\n 'dnb-forms-field-postal-code-and-city__city',\n city.className\n )}\n label={city.label ?? sharedContext?.translation.Forms.cityLabel}\n errorMessages={{\n required: sharedContext?.translation.Forms.cityErrorRequired,\n ...city.errorMessages,\n }}\n width=\"stretch\"\n />\n </div>\n </FieldGroup>\n )\n}\n\nPostalCodeAndCity._supportsEufemiaSpacingProps = true\nexport default PostalCodeAndCity\n"],"mappings":";;;;;;AAAA,OAAOA,KAAK,IAAIC,UAAU,QAAQ,OAAO;AACzC,OAAOC,UAAU,MAAM,YAAY;AACnC,OAAOC,aAAa,MAAM,yBAAyB;AACnD,OAAOC,UAAU,MAAoC,eAAe;AACpE,OAAOC,eAAe,MAAyC,UAAU;AAOzE,SAASC,iBAAiBA,CAACC,KAAY,EAAE;EACvC,MAAMC,aAAa,GAAGP,UAAU,CAACE,aAAa,CAAC;EAE/C,MAAM;MACJM,UAAU,GAAG,CAAC,CAAC;MACfC,IAAI,GAAG,CAAC,CAAC;MACTC,KAAK,GAAG;IAEV,CAAC,GAAGJ,KAAK;IADJK,eAAe,GAAAC,wBAAA,CAChBN,KAAK,EAAAO,SAAA;EAET,OACEd,KAAA,CAAAe,aAAA,CAACX,UAAU,EAAAY,QAAA;IACTC,SAAS,EAAEf,UAAU,CACnB,sCAAsC,EACtCK,KAAK,CAACU,SACR;EAAE,GACEL,eAAe,GAEnBZ,KAAA,CAAAe,aAAA;IACEE,SAAS,EACP,8CAA8C,IAC9CN,KAAK,KAAK,KAAK,mDACkCA,KAAM;EACvD,GAEFX,KAAA,CAAAe,aAAA,CAACV,eAAe,EAAAW,QAAA,KACVP,UAAU;IACdS,OAAO,EAAET,UAAU,CAACS,OAAO,IAAI,YAAa;IAC5CD,SAAS,EAAEf,UAAU,CACnB,mDAAmD,EACnDO,UAAU,CAACQ,SACb,CAAE;IACFE,KAAK,EACHV,UAAU,CAACU,KAAK,KAChBX,aAAa,aAAbA,aAAa,uBAAbA,aAAa,CAAEY,WAAW,CAACC,KAAK,CAACC,eAAe,CACjD;IACDC,aAAa,EAAAC,aAAA;MACXC,QAAQ,EACNjB,aAAa,aAAbA,aAAa,uBAAbA,aAAa,CAAEY,WAAW,CAACC,KAAK,CAACK,uBAAuB;MAC1DR,OAAO,EACLV,aAAa,aAAbA,aAAa,uBAAbA,aAAa,CAAEY,WAAW,CAACC,KAAK,CAACM;IAAsB,GACtDlB,UAAU,CAACc,aAAa,CAC3B;IACFK,WAAW,EAAEnB,UAAU,CAACmB,WAAW,IAAI,MAAO;IAC9CjB,KAAK,EAAE,KAAM;IACbkB,cAAc,EAAC;EAAyD,EACzE,CAAC,EACF7B,KAAA,CAAAe,aAAA,CAACV,eAAe,EAAAW,QAAA,KACVN,IAAI;IACRO,SAAS,EAAEf,UAAU,CACnB,4CAA4C,EAC5CQ,IAAI,CAACO,SACP,CAAE;IACFE,KAAK,EAAET,IAAI,CAACS,KAAK,KAAIX,aAAa,aAAbA,aAAa,uBAAbA,aAAa,CAAEY,WAAW,CAACC,KAAK,CAACS,SAAS,CAAC;IAChEP,aAAa,EAAAC,aAAA;MACXC,QAAQ,EAAEjB,aAAa,aAAbA,aAAa,uBAAbA,aAAa,CAAEY,WAAW,CAACC,KAAK,CAACU;IAAiB,GACzDrB,IAAI,CAACa,aAAa,CACrB;IACFZ,KAAK,EAAC;EAAS,EAChB,CACE,CACK,CAAC;AAEjB;AAEAL,iBAAiB,CAAC0B,4BAA4B,GAAG,IAAI;AACrD,eAAe1B,iBAAiB"}
1
+ {"version":3,"file":"PostalCodeAndCity.js","names":["React","useContext","classnames","SharedContext","FieldGroup","StringComponent","PostalCodeAndCity","props","sharedContext","postalCode","city","width","fieldGroupProps","_objectWithoutProperties","_excluded","createElement","_extends","className","undefined","pattern","label","translation","Forms","postalCodeLabel","errorMessages","_objectSpread","required","postalCodeErrorRequired","postalCodeErrorPattern","placeholder","inputClassName","cityLabel","cityErrorRequired","_supportsEufemiaSpacingProps"],"sources":["../../../../../src/extensions/forms/Field/PostalCodeAndCity.tsx"],"sourcesContent":["import React, { useContext } from 'react'\nimport classnames from 'classnames'\nimport SharedContext from '../../../shared/Context'\nimport FieldGroup, { Props as FieldGroupProps } from '../FieldGroup'\nimport StringComponent, { Props as StringComponentProps } from './String'\n\nexport type Props = Omit<FieldGroupProps, 'children'> &\n Record<'postalCode' | 'city', StringComponentProps> & {\n width?: 'medium' | 'large'\n }\n\nfunction PostalCodeAndCity(props: Props) {\n const sharedContext = useContext(SharedContext)\n\n const {\n postalCode = {},\n city = {},\n width = 'large',\n ...fieldGroupProps\n } = props\n\n return (\n <FieldGroup\n className={classnames(\n 'dnb-forms-field-postal-code-and-city',\n props.className\n )}\n {...fieldGroupProps}\n >\n <div\n className={classnames(\n 'dnb-forms-field-postal-code-and-city__fields',\n width !== undefined &&\n `dnb-forms-field-postal-code-and-city--width-${width}`\n )}\n >\n <StringComponent\n {...postalCode}\n pattern={postalCode.pattern ?? '^[0-9]{4}$'}\n className={classnames(\n 'dnb-forms-field-postal-code-and-city__postal-code',\n postalCode.className\n )}\n label={\n postalCode.label ??\n sharedContext?.translation.Forms.postalCodeLabel\n }\n errorMessages={{\n required:\n sharedContext?.translation.Forms.postalCodeErrorRequired,\n pattern:\n sharedContext?.translation.Forms.postalCodeErrorPattern,\n ...postalCode.errorMessages,\n }}\n placeholder={postalCode.placeholder ?? '0000'}\n width={false}\n inputClassName=\"dnb-forms-field-postal-code-and-city__postal-code-input\"\n />\n <StringComponent\n {...city}\n className={classnames(\n 'dnb-forms-field-postal-code-and-city__city',\n city.className\n )}\n label={city.label ?? sharedContext?.translation.Forms.cityLabel}\n errorMessages={{\n required: sharedContext?.translation.Forms.cityErrorRequired,\n ...city.errorMessages,\n }}\n width=\"stretch\"\n />\n </div>\n </FieldGroup>\n )\n}\n\nPostalCodeAndCity._supportsEufemiaSpacingProps = true\nexport default PostalCodeAndCity\n"],"mappings":";;;;;;AAAA,OAAOA,KAAK,IAAIC,UAAU,QAAQ,OAAO;AACzC,OAAOC,UAAU,MAAM,YAAY;AACnC,OAAOC,aAAa,MAAM,yBAAyB;AACnD,OAAOC,UAAU,MAAoC,eAAe;AACpE,OAAOC,eAAe,MAAyC,UAAU;AAOzE,SAASC,iBAAiBA,CAACC,KAAY,EAAE;EACvC,MAAMC,aAAa,GAAGP,UAAU,CAACE,aAAa,CAAC;EAE/C,MAAM;MACJM,UAAU,GAAG,CAAC,CAAC;MACfC,IAAI,GAAG,CAAC,CAAC;MACTC,KAAK,GAAG;IAEV,CAAC,GAAGJ,KAAK;IADJK,eAAe,GAAAC,wBAAA,CAChBN,KAAK,EAAAO,SAAA;EAET,OACEd,KAAA,CAAAe,aAAA,CAACX,UAAU,EAAAY,QAAA;IACTC,SAAS,EAAEf,UAAU,CACnB,sCAAsC,EACtCK,KAAK,CAACU,SACR;EAAE,GACEL,eAAe,GAEnBZ,KAAA,CAAAe,aAAA;IACEE,SAAS,EACP,8CAA8C,IAC9CN,KAAK,KAAKO,SAAS,mDAC8BP,KAAM;EACvD,GAEFX,KAAA,CAAAe,aAAA,CAACV,eAAe,EAAAW,QAAA,KACVP,UAAU;IACdU,OAAO,EAAEV,UAAU,CAACU,OAAO,IAAI,YAAa;IAC5CF,SAAS,EAAEf,UAAU,CACnB,mDAAmD,EACnDO,UAAU,CAACQ,SACb,CAAE;IACFG,KAAK,EACHX,UAAU,CAACW,KAAK,KAChBZ,aAAa,aAAbA,aAAa,uBAAbA,aAAa,CAAEa,WAAW,CAACC,KAAK,CAACC,eAAe,CACjD;IACDC,aAAa,EAAAC,aAAA;MACXC,QAAQ,EACNlB,aAAa,aAAbA,aAAa,uBAAbA,aAAa,CAAEa,WAAW,CAACC,KAAK,CAACK,uBAAuB;MAC1DR,OAAO,EACLX,aAAa,aAAbA,aAAa,uBAAbA,aAAa,CAAEa,WAAW,CAACC,KAAK,CAACM;IAAsB,GACtDnB,UAAU,CAACe,aAAa,CAC3B;IACFK,WAAW,EAAEpB,UAAU,CAACoB,WAAW,IAAI,MAAO;IAC9ClB,KAAK,EAAE,KAAM;IACbmB,cAAc,EAAC;EAAyD,EACzE,CAAC,EACF9B,KAAA,CAAAe,aAAA,CAACV,eAAe,EAAAW,QAAA,KACVN,IAAI;IACRO,SAAS,EAAEf,UAAU,CACnB,4CAA4C,EAC5CQ,IAAI,CAACO,SACP,CAAE;IACFG,KAAK,EAAEV,IAAI,CAACU,KAAK,KAAIZ,aAAa,aAAbA,aAAa,uBAAbA,aAAa,CAAEa,WAAW,CAACC,KAAK,CAACS,SAAS,CAAC;IAChEP,aAAa,EAAAC,aAAA;MACXC,QAAQ,EAAElB,aAAa,aAAbA,aAAa,uBAAbA,aAAa,CAAEa,WAAW,CAACC,KAAK,CAACU;IAAiB,GACzDtB,IAAI,CAACc,aAAa,CACrB;IACFb,KAAK,EAAC;EAAS,EAChB,CACE,CACK,CAAC;AAEjB;AAEAL,iBAAiB,CAAC2B,4BAA4B,GAAG,IAAI;AACrD,eAAe3B,iBAAiB"}
@@ -4,7 +4,7 @@ import type { FieldProps } from '../field-types';
4
4
  export type Props = ComponentProps & FieldProps<string | number> & {
5
5
  children?: React.ReactNode;
6
6
  variant?: 'dropdown' | 'radio' | 'checkbox';
7
- width?: false | 'medium' | 'large' | 'stretch';
7
+ width?: 'medium' | 'large' | 'stretch';
8
8
  };
9
9
  declare function Selection(props: Props): import("react/jsx-runtime").JSX.Element;
10
10
  declare namespace Selection {
@@ -83,7 +83,7 @@ function Selection(props) {
83
83
  };
84
84
  });
85
85
  return React.createElement(Dropdown, _extends({
86
- className: classnames('dnb-forms-field-selection', className, width !== false && width !== 'stretch' && `dnb-forms-field-selection--width-${width}`),
86
+ className: classnames('dnb-forms-field-selection', className, width !== 'stretch' && `dnb-forms-field-selection--width-${width}`),
87
87
  list_class: "dnb-forms-field-selection__list",
88
88
  portal_class: "dnb-forms-field-selection__portal",
89
89
  title: placeholder,