@dnb/eufemia 10.27.0 → 10.28.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 (303) hide show
  1. package/CHANGELOG.md +20 -0
  2. package/cjs/components/anchor/style/anchor-mixins.scss +14 -20
  3. package/cjs/components/anchor/style/dnb-anchor.css +20 -34
  4. package/cjs/components/anchor/style/dnb-anchor.min.css +1 -1
  5. package/cjs/components/anchor/style/themes/dnb-anchor-theme-sbanken.css +2 -2
  6. package/cjs/components/anchor/style/themes/dnb-anchor-theme-sbanken.min.css +1 -1
  7. package/cjs/components/anchor/style/themes/dnb-anchor-theme-sbanken.scss +1 -1
  8. package/cjs/components/breadcrumb/style/dnb-breadcrumb.css +2 -2
  9. package/cjs/components/breadcrumb/style/dnb-breadcrumb.min.css +1 -1
  10. package/cjs/components/breadcrumb/style/dnb-breadcrumb.scss +2 -2
  11. package/cjs/components/checkbox/CheckIcon.d.ts +5 -0
  12. package/cjs/components/checkbox/CheckIcon.js +39 -0
  13. package/cjs/components/checkbox/CheckIcon.js.map +1 -0
  14. package/cjs/components/checkbox/Checkbox.d.ts +90 -92
  15. package/cjs/components/checkbox/Checkbox.js +145 -248
  16. package/cjs/components/checkbox/Checkbox.js.map +1 -1
  17. package/cjs/components/tabs/style/dnb-tabs.css +1 -1
  18. package/cjs/components/tabs/style/dnb-tabs.min.css +1 -1
  19. package/cjs/components/tabs/style/dnb-tabs.scss +1 -1
  20. package/cjs/components/tabs/style/themes/dnb-tabs-theme-sbanken.css +1 -0
  21. package/cjs/components/tabs/style/themes/dnb-tabs-theme-sbanken.min.css +1 -1
  22. package/cjs/components/tabs/style/themes/dnb-tabs-theme-sbanken.scss +1 -0
  23. package/cjs/extensions/forms/Form/Visibility/VisibilityDocs.js +2 -2
  24. package/cjs/extensions/forms/Form/Visibility/VisibilityDocs.js.map +1 -1
  25. package/cjs/extensions/forms/Form/data-context/getData.d.ts +3 -2
  26. package/cjs/extensions/forms/Form/data-context/getData.js +9 -0
  27. package/cjs/extensions/forms/Form/data-context/getData.js.map +1 -1
  28. package/cjs/extensions/forms/Form/data-context/useData.d.ts +5 -2
  29. package/cjs/extensions/forms/Form/data-context/useData.js +15 -6
  30. package/cjs/extensions/forms/Form/data-context/useData.js.map +1 -1
  31. package/cjs/extensions/forms/Iterate/AnimatedContainer/ElementBlock.js +2 -2
  32. package/cjs/extensions/forms/Iterate/AnimatedContainer/ElementBlock.js.map +1 -1
  33. package/cjs/extensions/forms/Iterate/Array/Array.js +4 -2
  34. package/cjs/extensions/forms/Iterate/Array/Array.js.map +1 -1
  35. package/cjs/extensions/forms/Iterate/EditContainer/EditToolbarTools.js +7 -3
  36. package/cjs/extensions/forms/Iterate/EditContainer/EditToolbarTools.js.map +1 -1
  37. package/cjs/extensions/forms/Iterate/style/dnb-form-iterate.css +1 -1
  38. package/cjs/extensions/forms/Iterate/style/dnb-form-iterate.min.css +1 -1
  39. package/cjs/extensions/forms/Iterate/style/dnb-form-iterate.scss +3 -1
  40. package/cjs/extensions/forms/style/dnb-forms.css +1 -1
  41. package/cjs/extensions/forms/style/dnb-forms.min.css +1 -1
  42. package/cjs/extensions/payment-card/PaymentCard.d.ts +3 -1
  43. package/cjs/extensions/payment-card/icons/Credit.d.ts +3 -0
  44. package/cjs/extensions/payment-card/icons/Credit.js +23 -0
  45. package/cjs/extensions/payment-card/icons/Credit.js.map +1 -0
  46. package/cjs/extensions/payment-card/icons/Sbanken.d.ts +3 -0
  47. package/cjs/extensions/payment-card/icons/Sbanken.js +23 -0
  48. package/cjs/extensions/payment-card/icons/Sbanken.js.map +1 -0
  49. package/cjs/extensions/payment-card/icons/index.js +23 -8
  50. package/cjs/extensions/payment-card/icons/index.js.map +1 -1
  51. package/cjs/extensions/payment-card/style/dnb-payment-card.css +113 -1
  52. package/cjs/extensions/payment-card/style/dnb-payment-card.min.css +1 -1
  53. package/cjs/extensions/payment-card/style/dnb-payment-card.scss +22 -2
  54. package/cjs/extensions/payment-card/utils/CardDesigns.d.ts +38 -0
  55. package/cjs/extensions/payment-card/utils/CardDesigns.js +26 -2
  56. package/cjs/extensions/payment-card/utils/CardDesigns.js.map +1 -1
  57. package/cjs/extensions/payment-card/utils/Types.js +5 -2
  58. package/cjs/extensions/payment-card/utils/Types.js.map +1 -1
  59. package/cjs/extensions/payment-card/utils/cardProducts.js +24 -0
  60. package/cjs/extensions/payment-card/utils/cardProducts.js.map +1 -1
  61. package/cjs/shared/Context.d.ts +2 -0
  62. package/cjs/shared/Context.js.map +1 -1
  63. package/cjs/shared/Eufemia.d.ts +1 -1
  64. package/cjs/shared/Eufemia.js +2 -2
  65. package/cjs/shared/Eufemia.js.map +1 -1
  66. package/cjs/style/core/scopes.scss +1 -1
  67. package/cjs/style/dnb-ui-basis.css +1 -1
  68. package/cjs/style/dnb-ui-basis.min.css +1 -1
  69. package/cjs/style/dnb-ui-body.css +1 -1
  70. package/cjs/style/dnb-ui-body.min.css +1 -1
  71. package/cjs/style/dnb-ui-components.css +24 -38
  72. package/cjs/style/dnb-ui-components.min.css +3 -3
  73. package/cjs/style/dnb-ui-core.css +1 -1
  74. package/cjs/style/dnb-ui-core.min.css +1 -1
  75. package/cjs/style/dnb-ui-extensions.css +114 -2
  76. package/cjs/style/dnb-ui-extensions.min.css +1 -1
  77. package/cjs/style/dnb-ui-forms.css +1 -1
  78. package/cjs/style/dnb-ui-forms.min.css +1 -1
  79. package/cjs/style/themes/theme-eiendom/eiendom-theme-components.css +25 -39
  80. package/cjs/style/themes/theme-eiendom/eiendom-theme-components.min.css +3 -3
  81. package/cjs/style/themes/theme-eiendom/eiendom-theme-extensions.css +114 -2
  82. package/cjs/style/themes/theme-eiendom/eiendom-theme-extensions.min.css +1 -1
  83. package/cjs/style/themes/theme-eiendom/eiendom-theme-forms.css +1 -1
  84. package/cjs/style/themes/theme-eiendom/eiendom-theme-forms.min.css +1 -1
  85. package/cjs/style/themes/theme-sbanken/sbanken-theme-components.css +28 -41
  86. package/cjs/style/themes/theme-sbanken/sbanken-theme-components.min.css +4 -4
  87. package/cjs/style/themes/theme-sbanken/sbanken-theme-extensions.css +114 -2
  88. package/cjs/style/themes/theme-sbanken/sbanken-theme-extensions.min.css +1 -1
  89. package/cjs/style/themes/theme-sbanken/sbanken-theme-forms.css +1 -1
  90. package/cjs/style/themes/theme-sbanken/sbanken-theme-forms.min.css +1 -1
  91. package/cjs/style/themes/theme-ui/ui-theme-components.css +25 -39
  92. package/cjs/style/themes/theme-ui/ui-theme-components.min.css +3 -3
  93. package/cjs/style/themes/theme-ui/ui-theme-extensions.css +114 -2
  94. package/cjs/style/themes/theme-ui/ui-theme-extensions.min.css +1 -1
  95. package/cjs/style/themes/theme-ui/ui-theme-forms.css +1 -1
  96. package/cjs/style/themes/theme-ui/ui-theme-forms.min.css +1 -1
  97. package/cjs/style/themes/theme-ui/ui-theme-tags.css +10 -17
  98. package/cjs/style/themes/theme-ui/ui-theme-tags.min.css +1 -1
  99. package/components/anchor/style/anchor-mixins.scss +14 -20
  100. package/components/anchor/style/dnb-anchor.css +20 -34
  101. package/components/anchor/style/dnb-anchor.min.css +1 -1
  102. package/components/anchor/style/themes/dnb-anchor-theme-sbanken.css +2 -2
  103. package/components/anchor/style/themes/dnb-anchor-theme-sbanken.min.css +1 -1
  104. package/components/anchor/style/themes/dnb-anchor-theme-sbanken.scss +1 -1
  105. package/components/breadcrumb/style/dnb-breadcrumb.css +2 -2
  106. package/components/breadcrumb/style/dnb-breadcrumb.min.css +1 -1
  107. package/components/breadcrumb/style/dnb-breadcrumb.scss +2 -2
  108. package/components/checkbox/CheckIcon.d.ts +5 -0
  109. package/components/checkbox/CheckIcon.js +30 -0
  110. package/components/checkbox/CheckIcon.js.map +1 -0
  111. package/components/checkbox/Checkbox.d.ts +90 -92
  112. package/components/checkbox/Checkbox.js +141 -245
  113. package/components/checkbox/Checkbox.js.map +1 -1
  114. package/components/tabs/style/dnb-tabs.css +1 -1
  115. package/components/tabs/style/dnb-tabs.min.css +1 -1
  116. package/components/tabs/style/dnb-tabs.scss +1 -1
  117. package/components/tabs/style/themes/dnb-tabs-theme-sbanken.css +1 -0
  118. package/components/tabs/style/themes/dnb-tabs-theme-sbanken.min.css +1 -1
  119. package/components/tabs/style/themes/dnb-tabs-theme-sbanken.scss +1 -0
  120. package/es/components/anchor/style/anchor-mixins.scss +14 -20
  121. package/es/components/anchor/style/dnb-anchor.css +20 -34
  122. package/es/components/anchor/style/dnb-anchor.min.css +1 -1
  123. package/es/components/anchor/style/themes/dnb-anchor-theme-sbanken.css +2 -2
  124. package/es/components/anchor/style/themes/dnb-anchor-theme-sbanken.min.css +1 -1
  125. package/es/components/anchor/style/themes/dnb-anchor-theme-sbanken.scss +1 -1
  126. package/es/components/breadcrumb/style/dnb-breadcrumb.css +2 -2
  127. package/es/components/breadcrumb/style/dnb-breadcrumb.min.css +1 -1
  128. package/es/components/breadcrumb/style/dnb-breadcrumb.scss +2 -2
  129. package/es/components/checkbox/CheckIcon.d.ts +5 -0
  130. package/es/components/checkbox/CheckIcon.js +30 -0
  131. package/es/components/checkbox/CheckIcon.js.map +1 -0
  132. package/es/components/checkbox/Checkbox.d.ts +90 -92
  133. package/es/components/checkbox/Checkbox.js +141 -245
  134. package/es/components/checkbox/Checkbox.js.map +1 -1
  135. package/es/components/tabs/style/dnb-tabs.css +1 -1
  136. package/es/components/tabs/style/dnb-tabs.min.css +1 -1
  137. package/es/components/tabs/style/dnb-tabs.scss +1 -1
  138. package/es/components/tabs/style/themes/dnb-tabs-theme-sbanken.css +1 -0
  139. package/es/components/tabs/style/themes/dnb-tabs-theme-sbanken.min.css +1 -1
  140. package/es/components/tabs/style/themes/dnb-tabs-theme-sbanken.scss +1 -0
  141. package/es/extensions/forms/Form/Visibility/VisibilityDocs.js +2 -2
  142. package/es/extensions/forms/Form/Visibility/VisibilityDocs.js.map +1 -1
  143. package/es/extensions/forms/Form/data-context/getData.d.ts +3 -2
  144. package/es/extensions/forms/Form/data-context/getData.js +8 -0
  145. package/es/extensions/forms/Form/data-context/getData.js.map +1 -1
  146. package/es/extensions/forms/Form/data-context/useData.d.ts +5 -2
  147. package/es/extensions/forms/Form/data-context/useData.js +15 -6
  148. package/es/extensions/forms/Form/data-context/useData.js.map +1 -1
  149. package/es/extensions/forms/Iterate/AnimatedContainer/ElementBlock.js +2 -2
  150. package/es/extensions/forms/Iterate/AnimatedContainer/ElementBlock.js.map +1 -1
  151. package/es/extensions/forms/Iterate/Array/Array.js +4 -2
  152. package/es/extensions/forms/Iterate/Array/Array.js.map +1 -1
  153. package/es/extensions/forms/Iterate/EditContainer/EditToolbarTools.js +7 -3
  154. package/es/extensions/forms/Iterate/EditContainer/EditToolbarTools.js.map +1 -1
  155. package/es/extensions/forms/Iterate/style/dnb-form-iterate.css +1 -1
  156. package/es/extensions/forms/Iterate/style/dnb-form-iterate.min.css +1 -1
  157. package/es/extensions/forms/Iterate/style/dnb-form-iterate.scss +3 -1
  158. package/es/extensions/forms/style/dnb-forms.css +1 -1
  159. package/es/extensions/forms/style/dnb-forms.min.css +1 -1
  160. package/es/extensions/payment-card/PaymentCard.d.ts +3 -1
  161. package/es/extensions/payment-card/icons/Credit.d.ts +3 -0
  162. package/es/extensions/payment-card/icons/Credit.js +15 -0
  163. package/es/extensions/payment-card/icons/Credit.js.map +1 -0
  164. package/es/extensions/payment-card/icons/Sbanken.d.ts +3 -0
  165. package/es/extensions/payment-card/icons/Sbanken.js +15 -0
  166. package/es/extensions/payment-card/icons/Sbanken.js.map +1 -0
  167. package/es/extensions/payment-card/icons/index.js +19 -4
  168. package/es/extensions/payment-card/icons/index.js.map +1 -1
  169. package/es/extensions/payment-card/style/dnb-payment-card.css +113 -1
  170. package/es/extensions/payment-card/style/dnb-payment-card.min.css +1 -1
  171. package/es/extensions/payment-card/style/dnb-payment-card.scss +22 -2
  172. package/es/extensions/payment-card/utils/CardDesigns.d.ts +38 -0
  173. package/es/extensions/payment-card/utils/CardDesigns.js +24 -2
  174. package/es/extensions/payment-card/utils/CardDesigns.js.map +1 -1
  175. package/es/extensions/payment-card/utils/Types.js +5 -2
  176. package/es/extensions/payment-card/utils/Types.js.map +1 -1
  177. package/es/extensions/payment-card/utils/cardProducts.js +25 -1
  178. package/es/extensions/payment-card/utils/cardProducts.js.map +1 -1
  179. package/es/shared/Context.d.ts +2 -0
  180. package/es/shared/Context.js.map +1 -1
  181. package/es/shared/Eufemia.d.ts +1 -1
  182. package/es/shared/Eufemia.js +2 -2
  183. package/es/shared/Eufemia.js.map +1 -1
  184. package/es/style/core/scopes.scss +1 -1
  185. package/es/style/dnb-ui-basis.css +1 -1
  186. package/es/style/dnb-ui-basis.min.css +1 -1
  187. package/es/style/dnb-ui-body.css +1 -1
  188. package/es/style/dnb-ui-body.min.css +1 -1
  189. package/es/style/dnb-ui-components.css +24 -38
  190. package/es/style/dnb-ui-components.min.css +3 -3
  191. package/es/style/dnb-ui-core.css +1 -1
  192. package/es/style/dnb-ui-core.min.css +1 -1
  193. package/es/style/dnb-ui-extensions.css +114 -2
  194. package/es/style/dnb-ui-extensions.min.css +1 -1
  195. package/es/style/dnb-ui-forms.css +1 -1
  196. package/es/style/dnb-ui-forms.min.css +1 -1
  197. package/es/style/themes/theme-eiendom/eiendom-theme-components.css +25 -39
  198. package/es/style/themes/theme-eiendom/eiendom-theme-components.min.css +3 -3
  199. package/es/style/themes/theme-eiendom/eiendom-theme-extensions.css +114 -2
  200. package/es/style/themes/theme-eiendom/eiendom-theme-extensions.min.css +1 -1
  201. package/es/style/themes/theme-eiendom/eiendom-theme-forms.css +1 -1
  202. package/es/style/themes/theme-eiendom/eiendom-theme-forms.min.css +1 -1
  203. package/es/style/themes/theme-sbanken/sbanken-theme-components.css +28 -41
  204. package/es/style/themes/theme-sbanken/sbanken-theme-components.min.css +4 -4
  205. package/es/style/themes/theme-sbanken/sbanken-theme-extensions.css +114 -2
  206. package/es/style/themes/theme-sbanken/sbanken-theme-extensions.min.css +1 -1
  207. package/es/style/themes/theme-sbanken/sbanken-theme-forms.css +1 -1
  208. package/es/style/themes/theme-sbanken/sbanken-theme-forms.min.css +1 -1
  209. package/es/style/themes/theme-ui/ui-theme-components.css +25 -39
  210. package/es/style/themes/theme-ui/ui-theme-components.min.css +3 -3
  211. package/es/style/themes/theme-ui/ui-theme-extensions.css +114 -2
  212. package/es/style/themes/theme-ui/ui-theme-extensions.min.css +1 -1
  213. package/es/style/themes/theme-ui/ui-theme-forms.css +1 -1
  214. package/es/style/themes/theme-ui/ui-theme-forms.min.css +1 -1
  215. package/es/style/themes/theme-ui/ui-theme-tags.css +10 -17
  216. package/es/style/themes/theme-ui/ui-theme-tags.min.css +1 -1
  217. package/esm/dnb-ui-basis.min.mjs +1 -1
  218. package/esm/dnb-ui-components.min.mjs +1 -1
  219. package/esm/dnb-ui-elements.min.mjs +1 -1
  220. package/esm/dnb-ui-extensions.min.mjs +3 -3
  221. package/esm/dnb-ui-lib.min.mjs +1 -1
  222. package/extensions/forms/Form/Visibility/VisibilityDocs.js +2 -2
  223. package/extensions/forms/Form/Visibility/VisibilityDocs.js.map +1 -1
  224. package/extensions/forms/Form/data-context/getData.d.ts +3 -2
  225. package/extensions/forms/Form/data-context/getData.js +8 -0
  226. package/extensions/forms/Form/data-context/getData.js.map +1 -1
  227. package/extensions/forms/Form/data-context/useData.d.ts +5 -2
  228. package/extensions/forms/Form/data-context/useData.js +15 -6
  229. package/extensions/forms/Form/data-context/useData.js.map +1 -1
  230. package/extensions/forms/Iterate/AnimatedContainer/ElementBlock.js +2 -2
  231. package/extensions/forms/Iterate/AnimatedContainer/ElementBlock.js.map +1 -1
  232. package/extensions/forms/Iterate/Array/Array.js +4 -2
  233. package/extensions/forms/Iterate/Array/Array.js.map +1 -1
  234. package/extensions/forms/Iterate/EditContainer/EditToolbarTools.js +7 -3
  235. package/extensions/forms/Iterate/EditContainer/EditToolbarTools.js.map +1 -1
  236. package/extensions/forms/Iterate/style/dnb-form-iterate.css +1 -1
  237. package/extensions/forms/Iterate/style/dnb-form-iterate.min.css +1 -1
  238. package/extensions/forms/Iterate/style/dnb-form-iterate.scss +3 -1
  239. package/extensions/forms/style/dnb-forms.css +1 -1
  240. package/extensions/forms/style/dnb-forms.min.css +1 -1
  241. package/extensions/payment-card/PaymentCard.d.ts +3 -1
  242. package/extensions/payment-card/icons/Credit.d.ts +3 -0
  243. package/extensions/payment-card/icons/Credit.js +15 -0
  244. package/extensions/payment-card/icons/Credit.js.map +1 -0
  245. package/extensions/payment-card/icons/Sbanken.d.ts +3 -0
  246. package/extensions/payment-card/icons/Sbanken.js +15 -0
  247. package/extensions/payment-card/icons/Sbanken.js.map +1 -0
  248. package/extensions/payment-card/icons/index.js +19 -4
  249. package/extensions/payment-card/icons/index.js.map +1 -1
  250. package/extensions/payment-card/style/dnb-payment-card.css +113 -1
  251. package/extensions/payment-card/style/dnb-payment-card.min.css +1 -1
  252. package/extensions/payment-card/style/dnb-payment-card.scss +22 -2
  253. package/extensions/payment-card/utils/CardDesigns.d.ts +38 -0
  254. package/extensions/payment-card/utils/CardDesigns.js +24 -2
  255. package/extensions/payment-card/utils/CardDesigns.js.map +1 -1
  256. package/extensions/payment-card/utils/Types.js +5 -2
  257. package/extensions/payment-card/utils/Types.js.map +1 -1
  258. package/extensions/payment-card/utils/cardProducts.js +25 -1
  259. package/extensions/payment-card/utils/cardProducts.js.map +1 -1
  260. package/package.json +1 -1
  261. package/shared/Context.d.ts +2 -0
  262. package/shared/Context.js.map +1 -1
  263. package/shared/Eufemia.d.ts +1 -1
  264. package/shared/Eufemia.js +2 -2
  265. package/shared/Eufemia.js.map +1 -1
  266. package/style/core/scopes.scss +1 -1
  267. package/style/dnb-ui-basis.css +1 -1
  268. package/style/dnb-ui-basis.min.css +1 -1
  269. package/style/dnb-ui-body.css +1 -1
  270. package/style/dnb-ui-body.min.css +1 -1
  271. package/style/dnb-ui-components.css +24 -38
  272. package/style/dnb-ui-components.min.css +3 -3
  273. package/style/dnb-ui-core.css +1 -1
  274. package/style/dnb-ui-core.min.css +1 -1
  275. package/style/dnb-ui-extensions.css +114 -2
  276. package/style/dnb-ui-extensions.min.css +1 -1
  277. package/style/dnb-ui-forms.css +1 -1
  278. package/style/dnb-ui-forms.min.css +1 -1
  279. package/style/themes/theme-eiendom/eiendom-theme-components.css +25 -39
  280. package/style/themes/theme-eiendom/eiendom-theme-components.min.css +3 -3
  281. package/style/themes/theme-eiendom/eiendom-theme-extensions.css +114 -2
  282. package/style/themes/theme-eiendom/eiendom-theme-extensions.min.css +1 -1
  283. package/style/themes/theme-eiendom/eiendom-theme-forms.css +1 -1
  284. package/style/themes/theme-eiendom/eiendom-theme-forms.min.css +1 -1
  285. package/style/themes/theme-sbanken/sbanken-theme-components.css +28 -41
  286. package/style/themes/theme-sbanken/sbanken-theme-components.min.css +4 -4
  287. package/style/themes/theme-sbanken/sbanken-theme-extensions.css +114 -2
  288. package/style/themes/theme-sbanken/sbanken-theme-extensions.min.css +1 -1
  289. package/style/themes/theme-sbanken/sbanken-theme-forms.css +1 -1
  290. package/style/themes/theme-sbanken/sbanken-theme-forms.min.css +1 -1
  291. package/style/themes/theme-ui/ui-theme-components.css +25 -39
  292. package/style/themes/theme-ui/ui-theme-components.min.css +3 -3
  293. package/style/themes/theme-ui/ui-theme-extensions.css +114 -2
  294. package/style/themes/theme-ui/ui-theme-extensions.min.css +1 -1
  295. package/style/themes/theme-ui/ui-theme-forms.css +1 -1
  296. package/style/themes/theme-ui/ui-theme-forms.min.css +1 -1
  297. package/style/themes/theme-ui/ui-theme-tags.css +10 -17
  298. package/style/themes/theme-ui/ui-theme-tags.min.css +1 -1
  299. package/umd/dnb-ui-basis.min.js +1 -1
  300. package/umd/dnb-ui-components.min.js +1 -1
  301. package/umd/dnb-ui-elements.min.js +1 -1
  302. package/umd/dnb-ui-extensions.min.js +3 -3
  303. package/umd/dnb-ui-lib.min.js +1 -1
@@ -1,125 +1,158 @@
1
1
  "use client";
2
2
 
3
+ import _defineProperty from "@babel/runtime/helpers/esm/defineProperty";
3
4
  import _extends from "@babel/runtime/helpers/esm/extends";
4
5
  import _objectWithoutProperties from "@babel/runtime/helpers/esm/objectWithoutProperties";
5
- import _defineProperty from "@babel/runtime/helpers/esm/defineProperty";
6
6
  var _AlignmentHelper, _span;
7
- const _excluded = ["value", "status", "status_state", "status_props", "status_no_animation", "globalStatus", "suffix", "size", "label", "label_position", "label_sr_only", "title", "element", "disabled", "readOnly", "skeleton", "className", "class", "id", "checked", "children", "on_change", "on_state_update", "innerRef"],
8
- _excluded2 = ["size"];
7
+ const _excluded = ["value", "status", "statusState", "statusProps", "statusNoAnimation", "globalStatus", "suffix", "size", "label", "labelPosition", "labelSrOnly", "title", "element", "disabled", "readOnly", "skeleton", "className", "id", "checked", "onChange", "innerRef"];
9
8
  function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }
10
9
  function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys(Object(source), !0).forEach(function (key) { _defineProperty(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; }
11
- import React from 'react';
12
- import PropTypes from 'prop-types';
10
+ import React, { useCallback, useContext, useEffect, useRef, useState } from 'react';
13
11
  import classnames from 'classnames';
14
12
  import keycode from 'keycode';
15
- import { isTrue, makeUniqueId, extendPropsWithContextInClassComponent, validateDOMAttributes, getStatusState, combineDescribedBy, dispatchCustomElementEvent } from '../../shared/component-helper';
13
+ import { validateDOMAttributes, getStatusState, combineDescribedBy, extendPropsWithContext } from '../../shared/component-helper';
16
14
  import AlignmentHelper from '../../shared/AlignmentHelper';
17
- import { spacingPropTypes, createSpacingClasses } from '../space/SpacingHelper';
15
+ import { createSpacingClasses } from '../space/SpacingHelper';
18
16
  import { skeletonDOMAttributes, createSkeletonClass } from '../skeleton/SkeletonHelper';
19
- import { pickFormElementProps } from '../../shared/helpers/filterValidProps';
20
17
  import Context from '../../shared/Context';
21
18
  import Suffix from '../../shared/helpers/Suffix';
19
+ import useId from '../../shared/helpers/useId';
20
+ import { pickFormElementProps } from '../../shared/helpers/filterValidProps';
21
+ import { convertSnakeCaseProps } from '../../shared/helpers/withSnakeCaseProps';
22
22
  import FormLabel from '../form-label/FormLabel';
23
23
  import FormStatus from '../form-status/FormStatus';
24
- export default class Checkbox extends React.PureComponent {
25
- static getDerivedStateFromProps(props, state) {
26
- if (state._listenForPropChanges) {
27
- if (props.checked !== state._checked) {
28
- state.checked = Checkbox.parseChecked(props.checked);
29
- }
24
+ import CheckIcon from './CheckIcon';
25
+ const defaultProps = {
26
+ statusState: 'error'
27
+ };
28
+ function Checkbox(localProps) {
29
+ const context = useContext(Context);
30
+ const props = extractPropsFromContext();
31
+ const {
32
+ value,
33
+ status,
34
+ statusState,
35
+ statusProps,
36
+ statusNoAnimation,
37
+ globalStatus,
38
+ suffix,
39
+ size,
40
+ label,
41
+ labelPosition,
42
+ labelSrOnly,
43
+ title,
44
+ element,
45
+ disabled,
46
+ readOnly,
47
+ skeleton,
48
+ className,
49
+ id: idProp,
50
+ checked,
51
+ onChange,
52
+ innerRef
53
+ } = props,
54
+ rest = _objectWithoutProperties(props, _excluded);
55
+ const id = useId(idProp);
56
+ const isFn = typeof innerRef === 'function';
57
+ const refHook = useRef();
58
+ const ref = !isFn && innerRef || refHook;
59
+ useEffect(() => {
60
+ if (isFn) {
61
+ innerRef === null || innerRef === void 0 ? void 0 : innerRef(ref.current);
30
62
  }
31
- state._listenForPropChanges = true;
32
- if (state.checked !== state.__checked) {
33
- dispatchCustomElementEvent({
34
- props
35
- }, 'on_state_update', {
36
- checked: state.checked
37
- });
63
+ }, [innerRef, isFn, ref]);
64
+ const [isChecked, setIsChecked] = useState(checked !== null && checked !== void 0 ? checked : false);
65
+ const [prevChecked, setPrevChecked] = useState(checked);
66
+ useEffect(() => {
67
+ if (checked !== prevChecked) {
68
+ setIsChecked(!!checked);
69
+ setPrevChecked(!!checked);
38
70
  }
39
- state._checked = props.checked;
40
- state.__checked = state.checked;
41
- return state;
42
- }
43
- constructor(props) {
44
- super(props);
45
- _defineProperty(this, "onKeyDownHandler", event => {
46
- switch (keycode(event)) {
47
- case 'enter':
48
- this.onChangeHandler(event);
49
- break;
50
- }
51
- });
52
- _defineProperty(this, "onChangeHandler", event => {
53
- if (isTrue(this.props.readOnly)) {
54
- return event.preventDefault();
55
- }
56
- const checked = !this.state.checked;
57
- this.setState({
58
- checked,
59
- _listenForPropChanges: false
60
- });
61
- dispatchCustomElementEvent(this, 'on_change', {
62
- checked,
63
- event
64
- });
65
- if (this._refInput.current) {
66
- this._refInput.current.focus();
67
- }
71
+ }, [checked, prevChecked]);
72
+ const callOnChange = useCallback(args => {
73
+ onChange === null || onChange === void 0 ? void 0 : onChange(args);
74
+ }, [onChange]);
75
+ const onChangeHandler = useCallback(event => {
76
+ if (readOnly) {
77
+ return event.preventDefault();
78
+ }
79
+ const updatedCheck = !isChecked;
80
+ setIsChecked(updatedCheck);
81
+ callOnChange({
82
+ checked: updatedCheck,
83
+ event
68
84
  });
69
- this._refInput = React.createRef();
70
- this._id = props.id || makeUniqueId();
71
- this.state = {
72
- _listenForPropChanges: true
73
- };
74
- }
75
- componentDidMount() {
76
- if (this.props.innerRef) {
77
- typeof this.props.innerRef === 'function' ? this.props.innerRef(this._refInput.current) : this.props.innerRef.current = this._refInput.current;
85
+ if (ref.current) {
86
+ ref.current.focus();
78
87
  }
79
- }
80
- render() {
81
- var _this$context, _this$context2;
82
- const props = extendPropsWithContextInClassComponent(this.props, Checkbox.defaultProps, {
83
- skeleton: this.context && this.context.skeleton
84
- }, this.context.getTranslation(this.props).Checkbox, pickFormElementProps((_this$context = this.context) === null || _this$context === void 0 ? void 0 : _this$context.FormRow), pickFormElementProps((_this$context2 = this.context) === null || _this$context2 === void 0 ? void 0 : _this$context2.formElement), this.context.Checkbox);
85
- const {
86
- value,
87
- status,
88
- status_state,
89
- status_props,
90
- status_no_animation,
91
- globalStatus,
92
- suffix,
93
- size,
94
- label,
95
- label_position,
96
- label_sr_only,
97
- title,
98
- element,
99
- disabled,
100
- readOnly,
101
- skeleton,
102
- className,
103
- class: _className,
104
- id: _id,
105
- checked: _checked,
106
- children,
107
- on_change,
108
- on_state_update,
109
- innerRef
110
- } = props,
111
- rest = _objectWithoutProperties(props, _excluded);
112
- const {
113
- checked
114
- } = this.state;
115
- const id = this._id;
116
- const showStatus = getStatusState(status);
117
- const mainParams = {
118
- className: classnames("dnb-checkbox dnb-form-component", createSkeletonClass(null, skeleton), createSpacingClasses(props), className, _className, status && `dnb-checkbox__status--${status_state}`, size && `dnb-checkbox--${size}`, label && `dnb-checkbox--label-position-${label_position || 'right'}`)
119
- };
88
+ }, [callOnChange, isChecked, readOnly, ref]);
89
+ const onKeyDownHandler = useCallback(event => {
90
+ switch (keycode(event)) {
91
+ case 'enter':
92
+ onChangeHandler(event);
93
+ break;
94
+ }
95
+ }, [onChangeHandler]);
96
+ const mainParams = {
97
+ className: classnames("dnb-checkbox dnb-form-component", createSkeletonClass(null, skeleton), createSpacingClasses(props), className, status && `dnb-checkbox__status--${statusState}`, size && `dnb-checkbox--${size}`, label && `dnb-checkbox--label-position-${labelPosition || 'right'}`)
98
+ };
99
+ const showStatus = getStatusState(status);
100
+ const inputParams = handleInputAttributes();
101
+ const statusComp = React.createElement(FormStatus, _extends({
102
+ show: showStatus,
103
+ id: id + '-form-status',
104
+ globalStatus: globalStatus,
105
+ label: label,
106
+ text_id: id + '-status',
107
+ width_selector: id + ', ' + id + '-label',
108
+ text: status,
109
+ state: statusState,
110
+ no_animation: statusNoAnimation,
111
+ skeleton: skeleton
112
+ }, statusProps));
113
+ const Element = element || 'input';
114
+ return React.createElement("span", mainParams, React.createElement("span", {
115
+ className: "dnb-checkbox__order"
116
+ }, label && React.createElement(FormLabel, {
117
+ id: id + '-label',
118
+ forId: id,
119
+ text: label,
120
+ disabled: disabled,
121
+ skeleton: skeleton,
122
+ srOnly: labelSrOnly
123
+ }), React.createElement("span", {
124
+ className: "dnb-checkbox__inner"
125
+ }, _AlignmentHelper || (_AlignmentHelper = React.createElement(AlignmentHelper, null)), labelPosition === 'left' && statusComp, React.createElement("span", {
126
+ className: "dnb-checkbox__shell"
127
+ }, React.createElement(Element, _extends({
128
+ id: id,
129
+ name: id,
130
+ type: "checkbox",
131
+ title: title,
132
+ className: "dnb-checkbox__input",
133
+ value: isChecked ? value || '' : '',
134
+ disabled: disabled
135
+ }, inputParams, {
136
+ onChange: onChangeHandler,
137
+ onKeyDown: onKeyDownHandler,
138
+ ref: ref
139
+ })), React.createElement("span", {
140
+ className: classnames('dnb-checkbox__button', createSkeletonClass('shape', skeleton, context)),
141
+ "aria-hidden": true
142
+ }, _span || (_span = React.createElement("span", {
143
+ className: "dnb-checkbox__focus"
144
+ }))), React.createElement(CheckIcon, {
145
+ size: size
146
+ }))), suffix && React.createElement(Suffix, {
147
+ className: "dnb-checkbox__suffix",
148
+ id: id + '-suffix',
149
+ context: props
150
+ }, suffix)), (labelPosition === 'right' || !labelPosition) && statusComp);
151
+ function handleInputAttributes() {
120
152
  const inputParams = _objectSpread({
121
153
  disabled,
122
- checked
154
+ checked: isChecked,
155
+ readOnly
123
156
  }, rest);
124
157
  if (showStatus || suffix) {
125
158
  inputParams['aria-describedby'] = combineDescribedBy(inputParams, showStatus ? id + '-status' : null, suffix ? id + '-suffix' : null);
@@ -127,150 +160,13 @@ export default class Checkbox extends React.PureComponent {
127
160
  if (readOnly) {
128
161
  inputParams['aria-readonly'] = inputParams.readOnly = true;
129
162
  }
130
- skeletonDOMAttributes(inputParams, skeleton, this.context);
131
- validateDOMAttributes(this.props, inputParams);
132
- const statusComp = React.createElement(FormStatus, _extends({
133
- show: showStatus,
134
- id: id + '-form-status',
135
- globalStatus: globalStatus,
136
- label: label,
137
- text_id: id + '-status',
138
- width_selector: id + ', ' + id + '-label',
139
- text: status,
140
- state: status_state,
141
- no_animation: status_no_animation,
142
- skeleton: skeleton
143
- }, status_props));
144
- const Element = element || 'input';
145
- return React.createElement("span", mainParams, React.createElement("span", {
146
- className: "dnb-checkbox__order"
147
- }, label && React.createElement(FormLabel, {
148
- id: id + '-label',
149
- for_id: id,
150
- text: label,
151
- disabled: disabled,
152
- skeleton: skeleton,
153
- sr_only: label_sr_only
154
- }), React.createElement("span", {
155
- className: "dnb-checkbox__inner"
156
- }, _AlignmentHelper || (_AlignmentHelper = React.createElement(AlignmentHelper, null)), label_position === 'left' && statusComp, React.createElement("span", {
157
- className: "dnb-checkbox__shell"
158
- }, React.createElement(Element, _extends({
159
- id: id,
160
- name: id,
161
- type: "checkbox",
162
- title: title,
163
- className: "dnb-checkbox__input",
164
- value: checked ? value || '' : '',
165
- disabled: isTrue(disabled)
166
- }, inputParams, {
167
- onChange: this.onChangeHandler,
168
- onKeyDown: this.onKeyDownHandler,
169
- ref: this._refInput
170
- })), React.createElement("span", {
171
- className: classnames('dnb-checkbox__button', createSkeletonClass('shape', skeleton, this.context)),
172
- "aria-hidden": true
173
- }, _span || (_span = React.createElement("span", {
174
- className: "dnb-checkbox__focus"
175
- }))), React.createElement(CheckIcon, {
176
- size: size
177
- }))), suffix && React.createElement(Suffix, {
178
- className: "dnb-checkbox__suffix",
179
- id: id + '-suffix',
180
- context: props
181
- }, suffix)), (label_position === 'right' || !label_position) && statusComp);
163
+ return validateDOMAttributes(props, skeletonDOMAttributes(inputParams, skeleton, context));
182
164
  }
183
- }
184
- _defineProperty(Checkbox, "contextType", Context);
185
- _defineProperty(Checkbox, "defaultProps", {
186
- label: null,
187
- label_position: null,
188
- label_sr_only: null,
189
- title: null,
190
- element: 'input',
191
- checked: null,
192
- disabled: null,
193
- id: null,
194
- size: null,
195
- status: null,
196
- status_state: 'error',
197
- status_props: null,
198
- status_no_animation: null,
199
- globalStatus: null,
200
- suffix: null,
201
- value: null,
202
- attributes: null,
203
- readOnly: false,
204
- skeleton: null,
205
- class: null,
206
- className: null,
207
- children: null,
208
- on_change: null,
209
- on_state_update: null,
210
- innerRef: null
211
- });
212
- _defineProperty(Checkbox, "parseChecked", state => /true|on/.test(String(state)));
213
- process.env.NODE_ENV !== "production" ? Checkbox.propTypes = _objectSpread(_objectSpread({
214
- label: PropTypes.oneOfType([PropTypes.string, PropTypes.func, PropTypes.node]),
215
- label_position: PropTypes.oneOf(['left', 'right']),
216
- label_sr_only: PropTypes.bool,
217
- title: PropTypes.string,
218
- element: PropTypes.node,
219
- checked: PropTypes.oneOfType([PropTypes.string, PropTypes.bool]),
220
- disabled: PropTypes.oneOfType([PropTypes.string, PropTypes.bool]),
221
- id: PropTypes.string,
222
- size: PropTypes.oneOf(['default', 'medium', 'large']),
223
- status: PropTypes.oneOfType([PropTypes.string, PropTypes.bool, PropTypes.func, PropTypes.node]),
224
- status_state: PropTypes.string,
225
- status_props: PropTypes.object,
226
- status_no_animation: PropTypes.oneOfType([PropTypes.string, PropTypes.bool]),
227
- globalStatus: PropTypes.shape({
228
- id: PropTypes.string,
229
- message: PropTypes.oneOfType([PropTypes.string, PropTypes.node])
230
- }),
231
- suffix: PropTypes.oneOfType([PropTypes.string, PropTypes.func, PropTypes.node]),
232
- value: PropTypes.string,
233
- attributes: PropTypes.oneOfType([PropTypes.string, PropTypes.object]),
234
- readOnly: PropTypes.oneOfType([PropTypes.string, PropTypes.bool]),
235
- skeleton: PropTypes.oneOfType([PropTypes.string, PropTypes.bool]),
236
- class: PropTypes.string,
237
- innerRef: PropTypes.oneOfType([PropTypes.func, PropTypes.object])
238
- }, spacingPropTypes), {}, {
239
- className: PropTypes.string,
240
- children: PropTypes.oneOfType([PropTypes.string, PropTypes.func]),
241
- on_change: PropTypes.func,
242
- on_state_update: PropTypes.func
243
- }) : void 0;
244
- export const CheckIcon = _ref => {
245
- let {
246
- size
247
- } = _ref,
248
- props = _objectWithoutProperties(_ref, _excluded2);
249
- let vB = 16;
250
- if (size === 'large') {
251
- vB = 24;
165
+ function extractPropsFromContext() {
166
+ return extendPropsWithContext(convertSnakeCaseProps(localProps), defaultProps, context.Checkbox, {
167
+ skeleton: context === null || context === void 0 ? void 0 : context.Checkbox
168
+ }, pickFormElementProps(context === null || context === void 0 ? void 0 : context.FormRow), pickFormElementProps(context === null || context === void 0 ? void 0 : context.formElement));
252
169
  }
253
- return React.createElement("svg", _extends({
254
- width: vB,
255
- height: vB,
256
- viewBox: `0 0 ${vB} ${vB}`,
257
- fill: "none",
258
- className: "dnb-checkbox__gfx",
259
- "aria-hidden": true
260
- }, props), React.createElement("path", {
261
- d: size === 'large' ? 'M1.5 15L7.5 21L22.5 3' : 'M1 10L5 14L15 2',
262
- stroke: "currentColor",
263
- strokeWidth: "1.5",
264
- strokeLinecap: "round",
265
- strokeLinejoin: "round"
266
- }));
267
- };
268
- process.env.NODE_ENV !== "production" ? CheckIcon.propTypes = {
269
- size: PropTypes.string
270
- } : void 0;
271
- CheckIcon.defaultProps = {
272
- size: 'default'
273
- };
274
- CheckIcon._formElement = true;
275
- CheckIcon._supportsSpacingProps = true;
170
+ }
171
+ export default Checkbox;
276
172
  //# sourceMappingURL=Checkbox.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"Checkbox.js","names":["React","PropTypes","classnames","keycode","isTrue","makeUniqueId","extendPropsWithContextInClassComponent","validateDOMAttributes","getStatusState","combineDescribedBy","dispatchCustomElementEvent","AlignmentHelper","spacingPropTypes","createSpacingClasses","skeletonDOMAttributes","createSkeletonClass","pickFormElementProps","Context","Suffix","FormLabel","FormStatus","Checkbox","PureComponent","getDerivedStateFromProps","props","state","_listenForPropChanges","checked","_checked","parseChecked","__checked","constructor","_defineProperty","event","onChangeHandler","readOnly","preventDefault","setState","_refInput","current","focus","createRef","_id","id","componentDidMount","innerRef","render","_this$context","_this$context2","defaultProps","skeleton","context","getTranslation","FormRow","formElement","value","status","status_state","status_props","status_no_animation","globalStatus","suffix","size","label","label_position","label_sr_only","title","element","disabled","className","class","_className","children","on_change","on_state_update","rest","_objectWithoutProperties","_excluded","showStatus","mainParams","inputParams","_objectSpread","statusComp","createElement","_extends","show","text_id","width_selector","text","no_animation","Element","for_id","sr_only","_AlignmentHelper","name","type","onChange","onKeyDown","onKeyDownHandler","ref","_span","CheckIcon","attributes","test","String","process","env","NODE_ENV","propTypes","oneOfType","string","func","node","oneOf","bool","object","shape","message","_ref","_excluded2","vB","width","height","viewBox","fill","d","stroke","strokeWidth","strokeLinecap","strokeLinejoin","_formElement","_supportsSpacingProps"],"sources":["../../../../src/components/checkbox/Checkbox.js"],"sourcesContent":["/**\n * Web Checkbox Component\n *\n */\n\nimport React from 'react'\nimport PropTypes from 'prop-types'\nimport classnames from 'classnames'\nimport keycode from 'keycode'\nimport {\n isTrue,\n makeUniqueId,\n extendPropsWithContextInClassComponent,\n validateDOMAttributes,\n getStatusState,\n combineDescribedBy,\n dispatchCustomElementEvent,\n} from '../../shared/component-helper'\nimport AlignmentHelper from '../../shared/AlignmentHelper'\nimport {\n spacingPropTypes,\n createSpacingClasses,\n} from '../space/SpacingHelper'\nimport {\n skeletonDOMAttributes,\n createSkeletonClass,\n} from '../skeleton/SkeletonHelper'\nimport { pickFormElementProps } from '../../shared/helpers/filterValidProps'\n\nimport Context from '../../shared/Context'\nimport Suffix from '../../shared/helpers/Suffix'\nimport FormLabel from '../form-label/FormLabel'\nimport FormStatus from '../form-status/FormStatus'\n\n/**\n * The checkbox component is our enhancement of the classic checkbox button. It acts like a checkbox. Example: On/off, yes/no.\n */\nexport default class Checkbox extends React.PureComponent {\n static contextType = Context\n\n static propTypes = {\n label: PropTypes.oneOfType([\n PropTypes.string,\n PropTypes.func,\n PropTypes.node,\n ]),\n label_position: PropTypes.oneOf(['left', 'right']),\n label_sr_only: PropTypes.bool,\n title: PropTypes.string,\n element: PropTypes.node,\n checked: PropTypes.oneOfType([PropTypes.string, PropTypes.bool]),\n disabled: PropTypes.oneOfType([PropTypes.string, PropTypes.bool]),\n id: PropTypes.string,\n size: PropTypes.oneOf(['default', 'medium', 'large']),\n status: PropTypes.oneOfType([\n PropTypes.string,\n PropTypes.bool,\n PropTypes.func,\n PropTypes.node,\n ]),\n status_state: PropTypes.string,\n status_props: PropTypes.object,\n status_no_animation: PropTypes.oneOfType([\n PropTypes.string,\n PropTypes.bool,\n ]),\n globalStatus: PropTypes.shape({\n id: PropTypes.string,\n message: PropTypes.oneOfType([PropTypes.string, PropTypes.node]),\n }),\n suffix: PropTypes.oneOfType([\n PropTypes.string,\n PropTypes.func,\n PropTypes.node,\n ]),\n value: PropTypes.string,\n attributes: PropTypes.oneOfType([PropTypes.string, PropTypes.object]),\n readOnly: PropTypes.oneOfType([PropTypes.string, PropTypes.bool]),\n skeleton: PropTypes.oneOfType([PropTypes.string, PropTypes.bool]),\n class: PropTypes.string,\n innerRef: PropTypes.oneOfType([PropTypes.func, PropTypes.object]),\n\n ...spacingPropTypes,\n\n className: PropTypes.string,\n children: PropTypes.oneOfType([PropTypes.string, PropTypes.func]),\n\n on_change: PropTypes.func,\n on_state_update: PropTypes.func,\n }\n\n static defaultProps = {\n label: null,\n label_position: null,\n label_sr_only: null,\n title: null,\n element: 'input',\n checked: null,\n disabled: null,\n id: null,\n size: null,\n status: null,\n status_state: 'error',\n status_props: null,\n status_no_animation: null,\n globalStatus: null,\n suffix: null,\n value: null,\n attributes: null,\n readOnly: false,\n skeleton: null,\n class: null,\n\n className: null,\n children: null,\n\n on_change: null,\n on_state_update: null,\n\n innerRef: null,\n }\n\n static parseChecked = (state) => /true|on/.test(String(state))\n\n static getDerivedStateFromProps(props, state) {\n if (state._listenForPropChanges) {\n if (props.checked !== state._checked) {\n state.checked = Checkbox.parseChecked(props.checked)\n }\n }\n state._listenForPropChanges = true\n\n if (state.checked !== state.__checked) {\n dispatchCustomElementEvent({ props }, 'on_state_update', {\n checked: state.checked,\n })\n }\n\n state._checked = props.checked\n state.__checked = state.checked\n\n return state\n }\n\n constructor(props) {\n super(props)\n this._refInput = React.createRef()\n\n this._id = props.id || makeUniqueId() // cause we need an id anyway\n this.state = {\n _listenForPropChanges: true,\n }\n }\n\n componentDidMount() {\n if (this.props.innerRef) {\n typeof this.props.innerRef === 'function'\n ? this.props.innerRef(this._refInput.current)\n : (this.props.innerRef.current = this._refInput.current)\n }\n }\n\n onKeyDownHandler = (event) => {\n switch (keycode(event)) {\n case 'enter':\n this.onChangeHandler(event)\n break\n }\n }\n\n onChangeHandler = (event) => {\n if (isTrue(this.props.readOnly)) {\n return event.preventDefault()\n }\n const checked = !this.state.checked\n this.setState({ checked, _listenForPropChanges: false })\n dispatchCustomElementEvent(this, 'on_change', { checked, event })\n\n // help firefox and safari to have an correct state after a click\n if (this._refInput.current) {\n this._refInput.current.focus()\n }\n }\n\n render() {\n // use only the props from context, who are available here anyway\n const props = extendPropsWithContextInClassComponent(\n this.props,\n Checkbox.defaultProps,\n { skeleton: this.context && this.context.skeleton },\n this.context.getTranslation(this.props).Checkbox,\n // Deprecated – can be removed in v11\n pickFormElementProps(this.context?.FormRow),\n pickFormElementProps(this.context?.formElement),\n this.context.Checkbox\n )\n\n const {\n value,\n status,\n status_state,\n status_props,\n status_no_animation,\n globalStatus,\n suffix,\n size,\n label,\n label_position,\n label_sr_only,\n title,\n element,\n disabled,\n readOnly,\n skeleton,\n className,\n class: _className,\n\n id: _id, // eslint-disable-line\n checked: _checked, // eslint-disable-line\n children, // eslint-disable-line\n on_change, // eslint-disable-line\n on_state_update, // eslint-disable-line\n innerRef, // eslint-disable-line\n\n ...rest\n } = props\n\n const { checked } = this.state\n\n const id = this._id\n const showStatus = getStatusState(status)\n\n const mainParams = {\n className: classnames(\n 'dnb-checkbox',\n status && `dnb-checkbox__status--${status_state}`,\n size && `dnb-checkbox--${size}`,\n label &&\n `dnb-checkbox--label-position-${label_position || 'right'}`,\n 'dnb-form-component',\n createSkeletonClass(null, skeleton),\n createSpacingClasses(props),\n className,\n _className\n ),\n }\n\n const inputParams = {\n disabled,\n checked,\n ...rest,\n }\n\n if (showStatus || suffix) {\n inputParams['aria-describedby'] = combineDescribedBy(\n inputParams,\n showStatus ? id + '-status' : null,\n suffix ? id + '-suffix' : null\n )\n }\n if (readOnly) {\n inputParams['aria-readonly'] = inputParams.readOnly = true\n }\n\n skeletonDOMAttributes(inputParams, skeleton, this.context)\n\n // also used for code markup simulation\n validateDOMAttributes(this.props, inputParams)\n\n const statusComp = (\n <FormStatus\n show={showStatus}\n id={id + '-form-status'}\n globalStatus={globalStatus}\n label={label}\n text_id={id + '-status'} // used for \"aria-describedby\"\n width_selector={id + ', ' + id + '-label'}\n text={status}\n state={status_state}\n no_animation={status_no_animation}\n skeleton={skeleton}\n {...status_props}\n />\n )\n\n const Element = element || 'input'\n\n return (\n <span {...mainParams}>\n <span className=\"dnb-checkbox__order\">\n {label && (\n <FormLabel\n id={id + '-label'}\n for_id={id}\n text={label}\n disabled={disabled}\n skeleton={skeleton}\n sr_only={label_sr_only}\n />\n )}\n\n <span className=\"dnb-checkbox__inner\">\n <AlignmentHelper />\n {label_position === 'left' && statusComp}\n\n <span className=\"dnb-checkbox__shell\">\n <Element\n id={id}\n name={id}\n type=\"checkbox\"\n title={title}\n className=\"dnb-checkbox__input\"\n value={checked ? value || '' : ''}\n disabled={isTrue(disabled)}\n {...inputParams}\n onChange={this.onChangeHandler}\n onKeyDown={this.onKeyDownHandler}\n ref={this._refInput}\n />\n\n <span\n className={classnames(\n 'dnb-checkbox__button',\n createSkeletonClass('shape', skeleton, this.context)\n )}\n aria-hidden\n >\n <span className=\"dnb-checkbox__focus\" />\n </span>\n\n <CheckIcon size={size} />\n </span>\n </span>\n\n {suffix && (\n <Suffix\n className=\"dnb-checkbox__suffix\"\n id={id + '-suffix'} // used for \"aria-describedby\"\n context={props}\n >\n {suffix}\n </Suffix>\n )}\n </span>\n\n {(label_position === 'right' || !label_position) && statusComp}\n </span>\n )\n }\n}\n\n// The new checkbox has too low contrast, as it is too thin on web\nexport const CheckIcon = ({ size, ...props }) => {\n let vB = 16\n if (size === 'large') {\n vB = 24\n }\n return (\n <svg\n width={vB}\n height={vB}\n viewBox={`0 0 ${vB} ${vB}`}\n fill=\"none\"\n className=\"dnb-checkbox__gfx\"\n aria-hidden\n {...props}\n >\n <path\n d={size === 'large' ? 'M1.5 15L7.5 21L22.5 3' : 'M1 10L5 14L15 2'}\n stroke=\"currentColor\"\n strokeWidth=\"1.5\"\n strokeLinecap=\"round\"\n strokeLinejoin=\"round\"\n />\n </svg>\n )\n}\nCheckIcon.propTypes = {\n size: PropTypes.string,\n}\nCheckIcon.defaultProps = {\n size: 'default',\n}\n\nCheckIcon._formElement = true\nCheckIcon._supportsSpacingProps = true\n"],"mappings":"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"}
1
+ {"version":3,"file":"Checkbox.js","names":["React","useCallback","useContext","useEffect","useRef","useState","classnames","keycode","validateDOMAttributes","getStatusState","combineDescribedBy","extendPropsWithContext","AlignmentHelper","createSpacingClasses","skeletonDOMAttributes","createSkeletonClass","Context","Suffix","useId","pickFormElementProps","convertSnakeCaseProps","FormLabel","FormStatus","CheckIcon","defaultProps","statusState","Checkbox","localProps","context","props","extractPropsFromContext","value","status","statusProps","statusNoAnimation","globalStatus","suffix","size","label","labelPosition","labelSrOnly","title","element","disabled","readOnly","skeleton","className","id","idProp","checked","onChange","innerRef","rest","_objectWithoutProperties","_excluded","isFn","refHook","ref","current","isChecked","setIsChecked","prevChecked","setPrevChecked","callOnChange","args","onChangeHandler","event","preventDefault","updatedCheck","focus","onKeyDownHandler","mainParams","showStatus","inputParams","handleInputAttributes","statusComp","createElement","_extends","show","text_id","width_selector","text","state","no_animation","Element","forId","srOnly","_AlignmentHelper","name","type","onKeyDown","_span","_objectSpread","FormRow","formElement"],"sources":["../../../../src/components/checkbox/Checkbox.tsx"],"sourcesContent":["/**\n * Web Checkbox Component\n */\n\nimport React, {\n useCallback,\n useContext,\n useEffect,\n useRef,\n useState,\n} from 'react'\nimport classnames from 'classnames'\nimport keycode from 'keycode'\n\nimport {\n validateDOMAttributes,\n getStatusState,\n combineDescribedBy,\n extendPropsWithContext,\n} from '../../shared/component-helper'\nimport AlignmentHelper from '../../shared/AlignmentHelper'\nimport { createSpacingClasses } from '../space/SpacingHelper'\nimport {\n skeletonDOMAttributes,\n createSkeletonClass,\n} from '../skeleton/SkeletonHelper'\nimport Context from '../../shared/Context'\nimport Suffix from '../../shared/helpers/Suffix'\nimport useId from '../../shared/helpers/useId'\nimport type { SpacingProps } from '../space/types'\nimport { pickFormElementProps } from '../../shared/helpers/filterValidProps'\nimport { convertSnakeCaseProps } from '../../shared/helpers/withSnakeCaseProps'\n\nimport type {\n FormStatusProps,\n FormStatusState,\n FormStatusText,\n} from '../FormStatus'\nimport type { SkeletonShow } from '../Skeleton'\nimport type { GlobalStatusConfigObject } from '../GlobalStatus'\n\nimport FormLabel from '../form-label/FormLabel'\nimport FormStatus from '../form-status/FormStatus'\nimport CheckIcon from './CheckIcon'\n\nexport type CheckboxLabelPosition = 'left' | 'right'\nexport type CheckboxSize = 'default' | 'medium' | 'large'\nexport type CheckboxAttributes = string | Record<string, unknown>\nexport type OnChangeParams = {\n checked: boolean\n event: React.ChangeEvent<HTMLInputElement>\n}\n\nexport type CheckboxProps = {\n /**\n * Use either the `label` property or provide a custom one.\n */\n label?: React.ReactNode\n /**\n * Defines the position of the `label`. Use either `left` or `right`. Defaults to `right`.\n */\n labelPosition?: CheckboxLabelPosition\n /**\n * Use `true` to make the label only readable by screen readers.\n */\n labelSrOnly?: boolean\n /**\n * The `title` of the input - describing it a bit further for accessibility reasons.\n */\n title?: string\n /**\n * Determine whether the checkbox is checked or not. The default is `false`.\n */\n checked?: boolean | undefined | null\n /**\n * The size of the checkbox. For now there is \"medium\" (default) and \"large\".\n */\n size?: CheckboxSize\n /**\n * Text with a status message. The style defaults to an error message. You can use `true` to only get the status color, without a message.\n */\n status?: FormStatusText\n /**\n * Defines the state of the status. Currently, there are two statuses `[error, info]`. Defaults to `error`.\n */\n statusState?: FormStatusState\n /**\n * Use an object to define additional FormStatus properties. See [FormStatus](/uilib/components/form-status/properties/)\n */\n statusProps?: FormStatusProps\n statusNoAnimation?: boolean\n /**\n * The [configuration](/uilib/components/global-status/properties/#configuration-object) used for the target [GlobalStatus](/uilib/components/global-status)\n */\n globalStatus?: GlobalStatusConfigObject\n /**\n * Text describing the content of the Checkbox more than the label. You can also send in a React component, so it gets wrapped inside the Checkbox component.\n */\n suffix?: React.ReactNode\n value?: string\n element?: React.ElementType\n attributes?: CheckboxAttributes\n /**\n * If set to `true`, an overlaying skeleton with animation will be shown.\n */\n skeleton?: SkeletonShow\n /**\n * Will be called on state changes made by the user. Returns an boolean `{ checked, event }`.\n */\n onChange?: (args: OnChangeParams) => void\n /**\n * By providing a React.ref we can get the internally used input element (DOM). E.g. `innerRef={myRef}` by using `React.createRef()` or `React.useRef()`.\n */\n innerRef?:\n | React.MutableRefObject<HTMLInputElement>\n | ((elem: HTMLInputElement) => void)\n} & SpacingProps &\n Omit<\n React.HTMLProps<HTMLInputElement>,\n 'ref' | 'label' | 'size' | 'onChange'\n > &\n DeprecatedCheckboxProps\n\n// depracated, can be removed in v11\ntype DeprecatedCheckboxProps = {\n /** @deprecated use the `label` prop instead */\n children?: React.ReactNode\n /** @deprecated use `onComplete` */\n on_change?: (args: OnChangeParams) => void\n /** @deprecated use `labelPosition` */\n label_position?: CheckboxLabelPosition\n /** @deprecated use `labelSrOnly` */\n label_sr_only?: boolean\n /** @deprecated use `statusState` */\n status_state?: FormStatusState\n /** @deprecated use `statusProps` */\n status_props?: FormStatusProps\n /** @deprecated use `statusNoAnimation` */\n status_no_animation?: boolean\n}\n\nconst defaultProps: CheckboxProps = {\n statusState: 'error',\n}\n\nfunction Checkbox(localProps: CheckboxProps) {\n const context = useContext(Context)\n\n const props = extractPropsFromContext()\n\n const {\n value,\n status,\n statusState,\n statusProps,\n statusNoAnimation,\n globalStatus,\n suffix,\n size,\n label,\n labelPosition,\n labelSrOnly,\n title,\n element,\n disabled,\n readOnly,\n skeleton,\n className,\n id: idProp,\n checked,\n onChange,\n innerRef,\n ...rest\n } = props\n\n const id = useId(idProp)\n\n const isFn = typeof innerRef === 'function'\n const refHook = useRef<HTMLInputElement>()\n const ref = (!isFn && innerRef) || refHook\n\n useEffect(() => {\n if (isFn) {\n innerRef?.(ref.current)\n }\n }, [innerRef, isFn, ref])\n\n const [isChecked, setIsChecked] = useState<boolean>(checked ?? false)\n const [prevChecked, setPrevChecked] = useState<boolean>(checked)\n\n useEffect(() => {\n if (checked !== prevChecked) {\n setIsChecked(!!checked)\n setPrevChecked(!!checked)\n }\n }, [checked, prevChecked])\n\n const callOnChange = useCallback(\n (args: OnChangeParams) => {\n onChange?.(args)\n },\n [onChange]\n )\n\n const onChangeHandler = useCallback(\n (event) => {\n if (readOnly) {\n return event.preventDefault()\n }\n const updatedCheck = !isChecked\n\n setIsChecked(updatedCheck)\n callOnChange({ checked: updatedCheck, event })\n\n // help firefox and safari to have an correct state after a click\n if (ref.current) {\n ref.current.focus()\n }\n },\n [callOnChange, isChecked, readOnly, ref]\n )\n\n const onKeyDownHandler = useCallback(\n (event) => {\n switch (keycode(event)) {\n case 'enter':\n onChangeHandler(event)\n break\n }\n },\n [onChangeHandler]\n )\n\n const mainParams = {\n className: classnames(\n 'dnb-checkbox',\n status && `dnb-checkbox__status--${statusState}`,\n size && `dnb-checkbox--${size}`,\n label && `dnb-checkbox--label-position-${labelPosition || 'right'}`,\n 'dnb-form-component',\n createSkeletonClass(null, skeleton),\n createSpacingClasses(props),\n className\n ),\n }\n\n const showStatus = getStatusState(status)\n\n const inputParams = handleInputAttributes()\n\n const statusComp = (\n <FormStatus\n show={showStatus}\n id={id + '-form-status'}\n globalStatus={globalStatus}\n label={label}\n text_id={id + '-status'} // used for \"aria-describedby\"\n width_selector={id + ', ' + id + '-label'}\n text={status}\n state={statusState}\n no_animation={statusNoAnimation}\n skeleton={skeleton}\n {...statusProps}\n />\n )\n\n const Element = element || 'input'\n\n return (\n <span {...mainParams}>\n <span className=\"dnb-checkbox__order\">\n {label && (\n <FormLabel\n id={id + '-label'}\n forId={id}\n text={label}\n disabled={disabled}\n skeleton={skeleton}\n srOnly={labelSrOnly}\n />\n )}\n\n <span className=\"dnb-checkbox__inner\">\n <AlignmentHelper />\n {labelPosition === 'left' && statusComp}\n\n <span className=\"dnb-checkbox__shell\">\n <Element\n id={id}\n name={id}\n type=\"checkbox\"\n title={title}\n className=\"dnb-checkbox__input\"\n value={isChecked ? value || '' : ''}\n disabled={disabled}\n {...inputParams}\n onChange={onChangeHandler}\n onKeyDown={onKeyDownHandler}\n ref={ref}\n />\n\n <span\n className={classnames(\n 'dnb-checkbox__button',\n createSkeletonClass('shape', skeleton, context)\n )}\n aria-hidden\n >\n <span className=\"dnb-checkbox__focus\" />\n </span>\n\n <CheckIcon size={size} />\n </span>\n </span>\n\n {suffix && (\n <Suffix\n className=\"dnb-checkbox__suffix\"\n id={id + '-suffix'} // used for \"aria-describedby\"\n context={props}\n >\n {suffix}\n </Suffix>\n )}\n </span>\n\n {(labelPosition === 'right' || !labelPosition) && statusComp}\n </span>\n )\n\n /**\n * Adds aria attributes, calls validateDOMAttributes and skeletonDOMAttributes and returns the result\n */\n function handleInputAttributes() {\n const inputParams = {\n disabled,\n checked: isChecked,\n readOnly,\n ...rest,\n }\n\n if (showStatus || suffix) {\n inputParams['aria-describedby'] = combineDescribedBy(\n inputParams,\n showStatus ? id + '-status' : null,\n suffix ? id + '-suffix' : null\n )\n }\n if (readOnly) {\n inputParams['aria-readonly'] = inputParams.readOnly = true\n }\n\n // also used for code markup simulation\n return validateDOMAttributes(\n props,\n skeletonDOMAttributes(inputParams, skeleton, context)\n )\n }\n\n function extractPropsFromContext() {\n return extendPropsWithContext(\n convertSnakeCaseProps(localProps),\n defaultProps,\n context.Checkbox,\n {\n skeleton: context?.Checkbox,\n },\n // Deprecated – can be removed in v11\n pickFormElementProps(context?.FormRow),\n pickFormElementProps(context?.formElement)\n )\n }\n}\n\nexport default Checkbox\n"],"mappings":"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"}
@@ -249,7 +249,7 @@ html[data-whatinput=keyboard] .dnb-tabs__button:focus::before, html[data-whatinp
249
249
  right: -0.375rem;
250
250
  bottom: 0.5rem;
251
251
  border-radius: 1.5rem;
252
- background-color: var(--sb-color-blue-light-3);
252
+ background-color: var(--tab-focus-background-color, none);
253
253
  }
254
254
  .dnb-tabs__button:not([disabled]):active::after, .dnb-tabs__button:not([disabled]).selected::after, .dnb-core-style .dnb-tabs .dnb-tabs__button:not([disabled]):active::after, .dnb-core-style .dnb-tabs .dnb-tabs__button:not([disabled]).selected::after {
255
255
  height: 2px;
@@ -1 +1 @@
1
- .dnb-tabs{--tablist-border-color--default:grey;--tab-title-font-weight:var(--font-weight-regular);--tab-title-font-size:var(--font-size-basis);--tab-title-font-color:dimgray;--tab-title-background--hover:#a9a9a9;--tab-title-color--hover:inherit;--tab-title-border--hover:#000;--tab-title-background--disabled:inherit;--tab-title-color--disabled:#d3d3d3;--tab-title-border--active-selected:#000;--tab-title-color--active-selected:#000;--tab-title-font-weight--selected:var(--font-weight-medium)}.dnb-tabs__tabs{align-items:center;display:flex;position:relative;z-index:1}.dnb-tabs__tabs,.dnb-tabs__tabs.dnb-section--spacing{padding-bottom:0}.dnb-tabs__tabs__tablist{-webkit-overflow-scrolling:touch;-ms-overflow-style:auto;-ms-overflow-style:none;display:flex;flex:0 1 auto;overflow-x:auto;overscroll-behavior:contain;scrollbar-color:var(--scrollbar-thumb-color,#888) transparent;scrollbar-width:none}.dnb-tabs__tabs__tablist:focus{border-radius:.5rem;outline:none}html[data-whatinput=keyboard] .dnb-tabs__tabs__tablist:focus{--border-color:var(--focus-ring-color);--border-width:var(--focus-ring-width);border-color:transparent;box-shadow:0 0 0 var(--border-width) var(--border-color)}html:not([data-visual-test]) .dnb-tabs__tabs__tablist{scroll-behavior:smooth}@supports not (scrollbar-color:auto){.dnb-tabs__tabs__tablist::-webkit-scrollbar{background-color:var(--scrollbar-track-color,#eee);border-radius:var(--scrollbar-thumb-width,.5rem)}.dnb-tabs__tabs__tablist::-webkit-scrollbar:vertical{width:var(--scrollbar-track-width,.5rem)}.dnb-tabs__tabs__tablist::-webkit-scrollbar:horizontal{height:var(--scrollbar-track-width,.5rem)}.dnb-tabs__tabs__tablist::-webkit-scrollbar-thumb{background-color:var(--scrollbar-thumb-color,#888);border-radius:var(--scrollbar-thumb-width,.5rem)}.dnb-tabs__tabs__tablist::-webkit-scrollbar-thumb:hover{background-color:var(--scrollbar-thumb-hover-color,#666)}}.dnb-tabs__tabs__tablist::-webkit-scrollbar{display:none}.dnb-tabs__tabs--left .dnb-tabs__tabs__tablist{justify-content:flex-start}.dnb-tabs__tabs--right .dnb-tabs__tabs__tablist{flex:1;justify-content:flex-end}.dnb-tabs__tabs--center .dnb-tabs__tabs__tablist{justify-content:center}.dnb-tabs__tabs:before{bottom:0;content:"";height:1px;position:absolute;width:100%;z-index:-1}.dnb-tabs__tabs--no-border:before{content:none}.dnb-tabs__tabs--breakout:before{left:-100vw;width:100vw}.dnb-tabs__tabs:not(.dnb-section):before{background-color:var(--tablist-border-color--default);box-shadow:100vw 0 0 0 var(--tablist-border-color--default)}.dnb-tabs__scroll-nav-button{display:none;opacity:0;pointer-events:none;position:absolute;right:-2px;transition:opacity .6s ease-out;z-index:2}.dnb-tabs__scroll-nav-button:first-of-type{left:-2px;right:auto}.dnb-tabs__scroll-nav-button--visible{display:flex;opacity:1;pointer-events:auto}.dnb-tabs__scroll-nav-button--hide{opacity:0!important;pointer-events:none}.dnb-tabs--at-edge .dnb-tabs__scroll-nav-button:first-of-type{border-radius:0 50% 50% 0}.dnb-tabs--at-edge .dnb-tabs__scroll-nav-button:last-of-type{border-radius:50% 0 0 50%}.dnb-tabs--at-edge .dnb-tabs__tabs__tablist:focus{border-radius:0}.dnb-core-style .dnb-tabs .dnb-tabs__button,.dnb-tabs__button{background-color:transparent;border:none;cursor:pointer;font-size:var(--font-size-basis);line-height:var(--line-height-basis);margin:0;outline:none;padding:0 .125rem;position:relative;-webkit-text-decoration:none;text-decoration:none;transition:margin .4s ease-out;user-select:none;-webkit-user-select:none;white-space:nowrap;z-index:1}.dnb-core-style .dnb-tabs .dnb-tabs__button__title,.dnb-tabs__button__title{color:var(--tab-title-font-color);display:block;font-size:var(--tab-title-font-size);font-weight:var(--tab-title-font-weight);padding:.5rem 0 .25rem;text-align:center}html:not([data-whatintent=touch]) .dnb-core-style .dnb-tabs .dnb-tabs__button__title:hover[disabled],html:not([data-whatintent=touch]) .dnb-tabs__button__title:hover[disabled]{cursor:not-allowed}html:not([data-whatintent=touch]) .dnb-core-style .dnb-tabs .dnb-tabs__button__title:hover:not([disabled]),html:not([data-whatintent=touch]) .dnb-tabs__button__title:hover:not([disabled]){color:var(--tab-title-color--hover)}.dnb-core-style .dnb-tabs .dnb-tabs__button__title .dnb-icon,.dnb-tabs__button__title .dnb-icon{font-size:var(--font-size-small);transform:translateY(-.125rem)}html:not([data-whatintent=touch]) .dnb-core-style .dnb-tabs .dnb-tabs__button:hover[disabled],html:not([data-whatintent=touch]) .dnb-tabs__button:hover[disabled]{cursor:not-allowed}html:not([data-whatintent=touch]) .dnb-core-style .dnb-tabs .dnb-tabs__button:hover:not([disabled]),html:not([data-whatintent=touch]) .dnb-tabs__button:hover:not([disabled]){background-color:var(--tab-title-background--hover)}html:not([data-whatintent=touch]) .dnb-core-style .dnb-tabs .dnb-tabs__button:hover:not([disabled]):after,html:not([data-whatintent=touch]) .dnb-tabs__button:hover:not([disabled]):after{background-color:var(--tab-title-border--hover);border-radius:2px;height:2px}.dnb-core-style .dnb-tabs .dnb-tabs__button .dnb-dummy,.dnb-tabs__button .dnb-dummy{display:flex;flex-direction:column;height:0;margin-top:.25rem;overflow:hidden;visibility:hidden}.dnb-core-style .dnb-tabs .dnb-tabs__button:after,.dnb-tabs__button:after{bottom:0;content:"";height:1px;left:0;position:absolute;right:0;width:100%;z-index:-1}.dnb-core-style .dnb-tabs .dnb-tabs__button[disabled],.dnb-tabs__button[disabled]{background-color:var(--tab-title-background--disabled)}.dnb-core-style .dnb-tabs .dnb-tabs__button[disabled] .dnb-core-style .dnb-tabs .dnb-tabs__button__title,.dnb-core-style .dnb-tabs .dnb-tabs__button[disabled] .dnb-tabs__button__title,.dnb-tabs__button[disabled] .dnb-core-style .dnb-tabs .dnb-tabs__button__title,.dnb-tabs__button[disabled] .dnb-tabs__button__title{color:var(--tab-title-color--disabled)}.dnb-core-style .dnb-tabs .dnb-tabs__button span[hidden],.dnb-tabs__button span[hidden]{font-weight:var(--tab-title-font-weight--selected)}.dnb-core-style .dnb-tabs .dnb-tabs__button:focus,.dnb-tabs__button:focus{overflow:visible}.dnb-core-style .dnb-tabs .dnb-tabs__button:focus:before,.dnb-tabs__button:focus: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=keyboard] .dnb-core-style .dnb-tabs .dnb-tabs__button:focus:before,html[data-whatinput=keyboard] .dnb-tabs__button:focus:before{--border-color:var(--focus-ring-color);--border-width:var(--focus-ring-width);border-color:transparent;box-shadow:0 0 0 var(--border-width) var(--border-color)}.dnb-core-style .dnb-tabs .dnb-tabs__button:focus:before,.dnb-tabs__button:focus:before{background-color:var(--sb-color-blue-light-3);border-radius:1.5rem;bottom:.5rem;left:-.375rem;right:-.375rem;top:.5rem}.dnb-core-style .dnb-tabs .dnb-tabs__button:not([disabled]).selected:after,.dnb-core-style .dnb-tabs .dnb-tabs__button:not([disabled]):active:after,.dnb-tabs__button:not([disabled]).selected:after,.dnb-tabs__button:not([disabled]):active:after{background-color:var(--tab-title-border--active-selected);border-radius:2px;height:2px}.dnb-core-style .dnb-tabs .dnb-tabs__button:not([disabled]).selected .dnb-core-style .dnb-tabs .dnb-tabs__button__title,.dnb-core-style .dnb-tabs .dnb-tabs__button:not([disabled]).selected .dnb-tabs__button__title,.dnb-core-style .dnb-tabs .dnb-tabs__button:not([disabled]):active .dnb-core-style .dnb-tabs .dnb-tabs__button__title,.dnb-core-style .dnb-tabs .dnb-tabs__button:not([disabled]):active .dnb-tabs__button__title,.dnb-tabs__button:not([disabled]).selected .dnb-core-style .dnb-tabs .dnb-tabs__button__title,.dnb-tabs__button:not([disabled]).selected .dnb-tabs__button__title,.dnb-tabs__button:not([disabled]):active .dnb-core-style .dnb-tabs .dnb-tabs__button__title,.dnb-tabs__button:not([disabled]):active .dnb-tabs__button__title{color:var(--tab-title-color--active-selected)}.dnb-core-style .dnb-tabs .dnb-tabs__button:not([disabled]).selected .dnb-core-style .dnb-tabs .dnb-tabs__button__title,.dnb-core-style .dnb-tabs .dnb-tabs__button:not([disabled]).selected .dnb-tabs__button__title,.dnb-tabs__button:not([disabled]).selected .dnb-core-style .dnb-tabs .dnb-tabs__button__title,.dnb-tabs__button:not([disabled]).selected .dnb-tabs__button__title{font-weight:var(--tab-title-font-weight--selected)}.dnb-tabs__button__snap{display:flex;padding:0 1rem 0 1.5rem;transition:padding 1s var(--easing-default);will-change:padding}@media screen and (max-width:40em){.dnb-tabs__button__snap{padding:0 1rem}}.dnb-tabs__button__snap:first-of-type{padding-left:0}.dnb-tabs__button__snap:last-of-type{padding-right:.5rem}html[data-whatinput=keyboard] .dnb-tabs__button__snap:first-of-type.focus .dnb-tabs__button:focus{margin-left:.5rem}html[data-whatinput=keyboard] .dnb-tabs__button__snap:last-of-type.focus .dnb-tabs__button:focus{margin-right:.5rem}.dnb-tabs__cached{opacity:1;transition:opacity 1s var(--easing-default)}.dnb-tabs__cached--hidden{height:0!important;opacity:0;overflow:hidden;visibility:hidden}html[data-visual-test] .dnb-tabs .dnb-tabs__button,html[data-visual-test] .dnb-tabs .dnb-tabs__button__snap,html[data-visual-test] .dnb-tabs .dnb-tabs__cached,html[data-visual-test] .dnb-tabs .dnb-tabs__scroll-nav-button{transition:none!important}.dnb-tabs__content{padding-bottom:0}.dnb-tabs__content:focus{position:relative}.dnb-tabs__content:focus:before{border-radius:.5rem;bottom:-.5rem;content:"";left:-.5rem;max-width:100vw;outline:none;position:absolute;right:-.5rem;top:.125rem;z-index:-1}html[data-whatinput=keyboard] .dnb-tabs__content:focus:before{--border-color:var(--focus-ring-color);--border-width:var(--focus-ring-width);border-color:transparent;box-shadow:0 0 0 var(--border-width) var(--border-color)}
1
+ .dnb-tabs{--tablist-border-color--default:grey;--tab-title-font-weight:var(--font-weight-regular);--tab-title-font-size:var(--font-size-basis);--tab-title-font-color:dimgray;--tab-title-background--hover:#a9a9a9;--tab-title-color--hover:inherit;--tab-title-border--hover:#000;--tab-title-background--disabled:inherit;--tab-title-color--disabled:#d3d3d3;--tab-title-border--active-selected:#000;--tab-title-color--active-selected:#000;--tab-title-font-weight--selected:var(--font-weight-medium)}.dnb-tabs__tabs{align-items:center;display:flex;position:relative;z-index:1}.dnb-tabs__tabs,.dnb-tabs__tabs.dnb-section--spacing{padding-bottom:0}.dnb-tabs__tabs__tablist{-webkit-overflow-scrolling:touch;-ms-overflow-style:auto;-ms-overflow-style:none;display:flex;flex:0 1 auto;overflow-x:auto;overscroll-behavior:contain;scrollbar-color:var(--scrollbar-thumb-color,#888) transparent;scrollbar-width:none}.dnb-tabs__tabs__tablist:focus{border-radius:.5rem;outline:none}html[data-whatinput=keyboard] .dnb-tabs__tabs__tablist:focus{--border-color:var(--focus-ring-color);--border-width:var(--focus-ring-width);border-color:transparent;box-shadow:0 0 0 var(--border-width) var(--border-color)}html:not([data-visual-test]) .dnb-tabs__tabs__tablist{scroll-behavior:smooth}@supports not (scrollbar-color:auto){.dnb-tabs__tabs__tablist::-webkit-scrollbar{background-color:var(--scrollbar-track-color,#eee);border-radius:var(--scrollbar-thumb-width,.5rem)}.dnb-tabs__tabs__tablist::-webkit-scrollbar:vertical{width:var(--scrollbar-track-width,.5rem)}.dnb-tabs__tabs__tablist::-webkit-scrollbar:horizontal{height:var(--scrollbar-track-width,.5rem)}.dnb-tabs__tabs__tablist::-webkit-scrollbar-thumb{background-color:var(--scrollbar-thumb-color,#888);border-radius:var(--scrollbar-thumb-width,.5rem)}.dnb-tabs__tabs__tablist::-webkit-scrollbar-thumb:hover{background-color:var(--scrollbar-thumb-hover-color,#666)}}.dnb-tabs__tabs__tablist::-webkit-scrollbar{display:none}.dnb-tabs__tabs--left .dnb-tabs__tabs__tablist{justify-content:flex-start}.dnb-tabs__tabs--right .dnb-tabs__tabs__tablist{flex:1;justify-content:flex-end}.dnb-tabs__tabs--center .dnb-tabs__tabs__tablist{justify-content:center}.dnb-tabs__tabs:before{bottom:0;content:"";height:1px;position:absolute;width:100%;z-index:-1}.dnb-tabs__tabs--no-border:before{content:none}.dnb-tabs__tabs--breakout:before{left:-100vw;width:100vw}.dnb-tabs__tabs:not(.dnb-section):before{background-color:var(--tablist-border-color--default);box-shadow:100vw 0 0 0 var(--tablist-border-color--default)}.dnb-tabs__scroll-nav-button{display:none;opacity:0;pointer-events:none;position:absolute;right:-2px;transition:opacity .6s ease-out;z-index:2}.dnb-tabs__scroll-nav-button:first-of-type{left:-2px;right:auto}.dnb-tabs__scroll-nav-button--visible{display:flex;opacity:1;pointer-events:auto}.dnb-tabs__scroll-nav-button--hide{opacity:0!important;pointer-events:none}.dnb-tabs--at-edge .dnb-tabs__scroll-nav-button:first-of-type{border-radius:0 50% 50% 0}.dnb-tabs--at-edge .dnb-tabs__scroll-nav-button:last-of-type{border-radius:50% 0 0 50%}.dnb-tabs--at-edge .dnb-tabs__tabs__tablist:focus{border-radius:0}.dnb-core-style .dnb-tabs .dnb-tabs__button,.dnb-tabs__button{background-color:transparent;border:none;cursor:pointer;font-size:var(--font-size-basis);line-height:var(--line-height-basis);margin:0;outline:none;padding:0 .125rem;position:relative;-webkit-text-decoration:none;text-decoration:none;transition:margin .4s ease-out;user-select:none;-webkit-user-select:none;white-space:nowrap;z-index:1}.dnb-core-style .dnb-tabs .dnb-tabs__button__title,.dnb-tabs__button__title{color:var(--tab-title-font-color);display:block;font-size:var(--tab-title-font-size);font-weight:var(--tab-title-font-weight);padding:.5rem 0 .25rem;text-align:center}html:not([data-whatintent=touch]) .dnb-core-style .dnb-tabs .dnb-tabs__button__title:hover[disabled],html:not([data-whatintent=touch]) .dnb-tabs__button__title:hover[disabled]{cursor:not-allowed}html:not([data-whatintent=touch]) .dnb-core-style .dnb-tabs .dnb-tabs__button__title:hover:not([disabled]),html:not([data-whatintent=touch]) .dnb-tabs__button__title:hover:not([disabled]){color:var(--tab-title-color--hover)}.dnb-core-style .dnb-tabs .dnb-tabs__button__title .dnb-icon,.dnb-tabs__button__title .dnb-icon{font-size:var(--font-size-small);transform:translateY(-.125rem)}html:not([data-whatintent=touch]) .dnb-core-style .dnb-tabs .dnb-tabs__button:hover[disabled],html:not([data-whatintent=touch]) .dnb-tabs__button:hover[disabled]{cursor:not-allowed}html:not([data-whatintent=touch]) .dnb-core-style .dnb-tabs .dnb-tabs__button:hover:not([disabled]),html:not([data-whatintent=touch]) .dnb-tabs__button:hover:not([disabled]){background-color:var(--tab-title-background--hover)}html:not([data-whatintent=touch]) .dnb-core-style .dnb-tabs .dnb-tabs__button:hover:not([disabled]):after,html:not([data-whatintent=touch]) .dnb-tabs__button:hover:not([disabled]):after{background-color:var(--tab-title-border--hover);border-radius:2px;height:2px}.dnb-core-style .dnb-tabs .dnb-tabs__button .dnb-dummy,.dnb-tabs__button .dnb-dummy{display:flex;flex-direction:column;height:0;margin-top:.25rem;overflow:hidden;visibility:hidden}.dnb-core-style .dnb-tabs .dnb-tabs__button:after,.dnb-tabs__button:after{bottom:0;content:"";height:1px;left:0;position:absolute;right:0;width:100%;z-index:-1}.dnb-core-style .dnb-tabs .dnb-tabs__button[disabled],.dnb-tabs__button[disabled]{background-color:var(--tab-title-background--disabled)}.dnb-core-style .dnb-tabs .dnb-tabs__button[disabled] .dnb-core-style .dnb-tabs .dnb-tabs__button__title,.dnb-core-style .dnb-tabs .dnb-tabs__button[disabled] .dnb-tabs__button__title,.dnb-tabs__button[disabled] .dnb-core-style .dnb-tabs .dnb-tabs__button__title,.dnb-tabs__button[disabled] .dnb-tabs__button__title{color:var(--tab-title-color--disabled)}.dnb-core-style .dnb-tabs .dnb-tabs__button span[hidden],.dnb-tabs__button span[hidden]{font-weight:var(--tab-title-font-weight--selected)}.dnb-core-style .dnb-tabs .dnb-tabs__button:focus,.dnb-tabs__button:focus{overflow:visible}.dnb-core-style .dnb-tabs .dnb-tabs__button:focus:before,.dnb-tabs__button:focus: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=keyboard] .dnb-core-style .dnb-tabs .dnb-tabs__button:focus:before,html[data-whatinput=keyboard] .dnb-tabs__button:focus:before{--border-color:var(--focus-ring-color);--border-width:var(--focus-ring-width);border-color:transparent;box-shadow:0 0 0 var(--border-width) var(--border-color)}.dnb-core-style .dnb-tabs .dnb-tabs__button:focus:before,.dnb-tabs__button:focus:before{background-color:var(--tab-focus-background-color,none);border-radius:1.5rem;bottom:.5rem;left:-.375rem;right:-.375rem;top:.5rem}.dnb-core-style .dnb-tabs .dnb-tabs__button:not([disabled]).selected:after,.dnb-core-style .dnb-tabs .dnb-tabs__button:not([disabled]):active:after,.dnb-tabs__button:not([disabled]).selected:after,.dnb-tabs__button:not([disabled]):active:after{background-color:var(--tab-title-border--active-selected);border-radius:2px;height:2px}.dnb-core-style .dnb-tabs .dnb-tabs__button:not([disabled]).selected .dnb-core-style .dnb-tabs .dnb-tabs__button__title,.dnb-core-style .dnb-tabs .dnb-tabs__button:not([disabled]).selected .dnb-tabs__button__title,.dnb-core-style .dnb-tabs .dnb-tabs__button:not([disabled]):active .dnb-core-style .dnb-tabs .dnb-tabs__button__title,.dnb-core-style .dnb-tabs .dnb-tabs__button:not([disabled]):active .dnb-tabs__button__title,.dnb-tabs__button:not([disabled]).selected .dnb-core-style .dnb-tabs .dnb-tabs__button__title,.dnb-tabs__button:not([disabled]).selected .dnb-tabs__button__title,.dnb-tabs__button:not([disabled]):active .dnb-core-style .dnb-tabs .dnb-tabs__button__title,.dnb-tabs__button:not([disabled]):active .dnb-tabs__button__title{color:var(--tab-title-color--active-selected)}.dnb-core-style .dnb-tabs .dnb-tabs__button:not([disabled]).selected .dnb-core-style .dnb-tabs .dnb-tabs__button__title,.dnb-core-style .dnb-tabs .dnb-tabs__button:not([disabled]).selected .dnb-tabs__button__title,.dnb-tabs__button:not([disabled]).selected .dnb-core-style .dnb-tabs .dnb-tabs__button__title,.dnb-tabs__button:not([disabled]).selected .dnb-tabs__button__title{font-weight:var(--tab-title-font-weight--selected)}.dnb-tabs__button__snap{display:flex;padding:0 1rem 0 1.5rem;transition:padding 1s var(--easing-default);will-change:padding}@media screen and (max-width:40em){.dnb-tabs__button__snap{padding:0 1rem}}.dnb-tabs__button__snap:first-of-type{padding-left:0}.dnb-tabs__button__snap:last-of-type{padding-right:.5rem}html[data-whatinput=keyboard] .dnb-tabs__button__snap:first-of-type.focus .dnb-tabs__button:focus{margin-left:.5rem}html[data-whatinput=keyboard] .dnb-tabs__button__snap:last-of-type.focus .dnb-tabs__button:focus{margin-right:.5rem}.dnb-tabs__cached{opacity:1;transition:opacity 1s var(--easing-default)}.dnb-tabs__cached--hidden{height:0!important;opacity:0;overflow:hidden;visibility:hidden}html[data-visual-test] .dnb-tabs .dnb-tabs__button,html[data-visual-test] .dnb-tabs .dnb-tabs__button__snap,html[data-visual-test] .dnb-tabs .dnb-tabs__cached,html[data-visual-test] .dnb-tabs .dnb-tabs__scroll-nav-button{transition:none!important}.dnb-tabs__content{padding-bottom:0}.dnb-tabs__content:focus{position:relative}.dnb-tabs__content:focus:before{border-radius:.5rem;bottom:-.5rem;content:"";left:-.5rem;max-width:100vw;outline:none;position:absolute;right:-.5rem;top:.125rem;z-index:-1}html[data-whatinput=keyboard] .dnb-tabs__content:focus:before{--border-color:var(--focus-ring-color);--border-width:var(--focus-ring-width);border-color:transparent;box-shadow:0 0 0 var(--border-width) var(--border-color)}
@@ -234,7 +234,7 @@
234
234
  right: -0.375rem; // For overflow purposes
235
235
  bottom: 0.5rem;
236
236
  border-radius: 1.5rem;
237
- background-color: var(--sb-color-blue-light-3);
237
+ background-color: var(--tab-focus-background-color, none);
238
238
  }
239
239
  }
240
240
 
@@ -4,6 +4,7 @@
4
4
  */
5
5
  .dnb-tabs {
6
6
  --tablist-border-color--default: var(--sb-color-gray-light-2);
7
+ --tab-focus-background-color: var(--sb-color-blue-light-3);
7
8
  --tab-title-font-color: var(--sb-color-gray-dark-3);
8
9
  --tab-title-font-weight: var(--font-weight-regular);
9
10
  --tab-title-font-size: var(--font-size-basis);
@@ -1 +1 @@
1
- .dnb-tabs{--tablist-border-color--default:var(--sb-color-gray-light-2);--tab-title-font-color:var(--sb-color-gray-dark-3);--tab-title-font-weight:var(--font-weight-regular);--tab-title-font-size:var(--font-size-basis);--tab-title-background--hover:var(--sb-color-violet-light-4);--tab-title-color--hover:var(--sb-color-violet);--tab-title-border--hover:var(--sb-color-violet-light-4);--tab-title-background--disabled:var(--sb-color-gray-light-2);--tab-title-color--disabled:var(--sb-color-gray-dark-2);--tab-title-border--active-selected:var(--sb-color-violet);--tab-title-color--active-selected:var(--sb-color-violet)}.dnb-core-style .dnb-tabs .dnb-tabs__button,.dnb-tabs__button{padding:0 .5rem}.dnb-core-style .dnb-tabs .dnb-tabs__button:focus:before,.dnb-tabs__button:focus:before{z-index:-1}.dnb-core-style .dnb-tabs .dnb-tabs__button:focus .dnb-tabs__button__title,.dnb-core-style .dnb-tabs .dnb-tabs__button:not([disabled]).selected:focus .dnb-tabs__button__title,.dnb-tabs__button:focus .dnb-tabs__button__title,.dnb-tabs__button:not([disabled]).selected:focus .dnb-tabs__button__title{color:var(--sb-color-blue-dark)}
1
+ .dnb-tabs{--tablist-border-color--default:var(--sb-color-gray-light-2);--tab-focus-background-color:var(--sb-color-blue-light-3);--tab-title-font-color:var(--sb-color-gray-dark-3);--tab-title-font-weight:var(--font-weight-regular);--tab-title-font-size:var(--font-size-basis);--tab-title-background--hover:var(--sb-color-violet-light-4);--tab-title-color--hover:var(--sb-color-violet);--tab-title-border--hover:var(--sb-color-violet-light-4);--tab-title-background--disabled:var(--sb-color-gray-light-2);--tab-title-color--disabled:var(--sb-color-gray-dark-2);--tab-title-border--active-selected:var(--sb-color-violet);--tab-title-color--active-selected:var(--sb-color-violet)}.dnb-core-style .dnb-tabs .dnb-tabs__button,.dnb-tabs__button{padding:0 .5rem}.dnb-core-style .dnb-tabs .dnb-tabs__button:focus:before,.dnb-tabs__button:focus:before{z-index:-1}.dnb-core-style .dnb-tabs .dnb-tabs__button:focus .dnb-tabs__button__title,.dnb-core-style .dnb-tabs .dnb-tabs__button:not([disabled]).selected:focus .dnb-tabs__button__title,.dnb-tabs__button:focus .dnb-tabs__button__title,.dnb-tabs__button:not([disabled]).selected:focus .dnb-tabs__button__title{color:var(--sb-color-blue-dark)}
@@ -5,6 +5,7 @@
5
5
 
6
6
  .dnb-tabs {
7
7
  --tablist-border-color--default: var(--sb-color-gray-light-2);
8
+ --tab-focus-background-color: var(--sb-color-blue-light-3);
8
9
  --tab-title-font-color: var(--sb-color-gray-dark-3);
9
10
  --tab-title-font-weight: var(--font-weight-regular);
10
11
  --tab-title-font-size: var(--font-size-basis);