@dnb/eufemia 10.37.0 → 10.38.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 (345) hide show
  1. package/CHANGELOG.md +21 -0
  2. package/cjs/components/accordion/Accordion.d.ts +13 -3
  3. package/cjs/components/accordion/Accordion.js +14 -9
  4. package/cjs/components/accordion/Accordion.js.map +1 -1
  5. package/cjs/components/accordion/AccordionContext.d.ts +2 -0
  6. package/cjs/components/accordion/AccordionContext.js.map +1 -1
  7. package/cjs/components/accordion/AccordionDocs.js +5 -0
  8. package/cjs/components/accordion/AccordionDocs.js.map +1 -1
  9. package/cjs/components/accordion/AccordionGroup.js +6 -3
  10. package/cjs/components/accordion/AccordionGroup.js.map +1 -1
  11. package/cjs/components/accordion/AccordionProviderContext.d.ts +2 -0
  12. package/cjs/components/accordion/AccordionProviderContext.js.map +1 -1
  13. package/cjs/components/accordion/AccordionStore.d.ts +2 -0
  14. package/cjs/components/accordion/AccordionStore.js +1 -1
  15. package/cjs/components/accordion/AccordionStore.js.map +1 -1
  16. package/cjs/components/accordion/style/themes/dnb-accordion-theme-ui.css +1 -0
  17. package/cjs/components/accordion/style/themes/dnb-accordion-theme-ui.min.css +1 -1
  18. package/cjs/components/accordion/style/themes/dnb-accordion-theme-ui.scss +3 -0
  19. package/cjs/components/button/Button.d.ts +1 -1
  20. package/cjs/components/card/Card.js +4 -3
  21. package/cjs/components/card/Card.js.map +1 -1
  22. package/cjs/components/card/style/dnb-card.css +16 -0
  23. package/cjs/components/card/style/dnb-card.min.css +1 -1
  24. package/cjs/components/card/style/dnb-card.scss +17 -0
  25. package/cjs/components/card/style/themes/dnb-card-theme-sbanken.css +4 -4
  26. package/cjs/components/card/style/themes/dnb-card-theme-sbanken.min.css +1 -1
  27. package/cjs/components/card/style/themes/dnb-card-theme-sbanken.scss +3 -5
  28. package/cjs/components/card/style/themes/dnb-card-theme-ui.css +4 -7
  29. package/cjs/components/card/style/themes/dnb-card-theme-ui.min.css +1 -1
  30. package/cjs/components/card/style/themes/dnb-card-theme-ui.scss +3 -7
  31. package/cjs/components/checkbox/style/dnb-checkbox.scss +1 -1
  32. package/cjs/components/height-animation/HeightAnimation.d.ts +1 -1
  33. package/cjs/components/height-animation/HeightAnimation.js +6 -2
  34. package/cjs/components/height-animation/HeightAnimation.js.map +1 -1
  35. package/cjs/components/height-animation/HeightAnimationDocs.d.ts +3 -0
  36. package/cjs/components/height-animation/HeightAnimationDocs.js +83 -0
  37. package/cjs/components/height-animation/HeightAnimationDocs.js.map +1 -0
  38. package/cjs/components/height-animation/style/dnb-height-animation.css +3 -2
  39. package/cjs/components/height-animation/style/dnb-height-animation.min.css +1 -1
  40. package/cjs/components/height-animation/style/dnb-height-animation.scss +3 -2
  41. package/cjs/components/height-animation/useHeightAnimation.d.ts +6 -1
  42. package/cjs/components/height-animation/useHeightAnimation.js +36 -6
  43. package/cjs/components/height-animation/useHeightAnimation.js.map +1 -1
  44. package/cjs/components/radio/RadioGroup.js +4 -2
  45. package/cjs/components/radio/RadioGroup.js.map +1 -1
  46. package/cjs/components/radio/style/dnb-radio.css +8 -5
  47. package/cjs/components/radio/style/dnb-radio.min.css +1 -1
  48. package/cjs/components/radio/style/dnb-radio.scss +11 -13
  49. package/cjs/components/section/Section.js +3 -0
  50. package/cjs/components/section/Section.js.map +1 -1
  51. package/cjs/components/section/style/dnb-section.scss +2 -0
  52. package/cjs/components/toggle-button/ToggleButtonGroup.js +6 -3
  53. package/cjs/components/toggle-button/ToggleButtonGroup.js.map +1 -1
  54. package/cjs/components/toggle-button/style/dnb-toggle-button.css +3 -3
  55. package/cjs/components/toggle-button/style/dnb-toggle-button.min.css +1 -1
  56. package/cjs/components/toggle-button/style/dnb-toggle-button.scss +6 -2
  57. package/cjs/extensions/forms/Field/ArraySelection/ArraySelection.d.ts +14 -0
  58. package/cjs/extensions/forms/Field/ArraySelection/ArraySelection.js +90 -31
  59. package/cjs/extensions/forms/Field/ArraySelection/ArraySelection.js.map +1 -1
  60. package/cjs/extensions/forms/Field/ArraySelection/style/dnb-array-selection.css +12 -3
  61. package/cjs/extensions/forms/Field/ArraySelection/style/dnb-array-selection.min.css +1 -1
  62. package/cjs/extensions/forms/Field/ArraySelection/style/dnb-array-selection.scss +14 -3
  63. package/cjs/extensions/forms/Field/Selection/Selection.d.ts +15 -3
  64. package/cjs/extensions/forms/Field/Selection/Selection.js +71 -42
  65. package/cjs/extensions/forms/Field/Selection/Selection.js.map +1 -1
  66. package/cjs/extensions/forms/Field/Selection/style/dnb-selection.css +9 -0
  67. package/cjs/extensions/forms/Field/Selection/style/dnb-selection.min.css +1 -1
  68. package/cjs/extensions/forms/Field/Selection/style/dnb-selection.scss +16 -0
  69. package/cjs/extensions/forms/Form/Visibility/Visibility.d.ts +3 -1
  70. package/cjs/extensions/forms/Form/Visibility/Visibility.js +4 -2
  71. package/cjs/extensions/forms/Form/Visibility/Visibility.js.map +1 -1
  72. package/cjs/extensions/forms/Form/Visibility/VisibilityDocs.js +5 -0
  73. package/cjs/extensions/forms/Form/Visibility/VisibilityDocs.js.map +1 -1
  74. package/cjs/extensions/forms/style/dnb-forms.css +21 -3
  75. package/cjs/extensions/forms/style/dnb-forms.min.css +1 -1
  76. package/cjs/extensions/forms/types.d.ts +1 -1
  77. package/cjs/extensions/forms/types.js.map +1 -1
  78. package/cjs/shared/Eufemia.d.ts +1 -1
  79. package/cjs/shared/Eufemia.js +2 -2
  80. package/cjs/shared/Eufemia.js.map +1 -1
  81. package/cjs/style/core/scopes.scss +1 -1
  82. package/cjs/style/dnb-ui-basis.css +1 -1
  83. package/cjs/style/dnb-ui-basis.min.css +1 -1
  84. package/cjs/style/dnb-ui-body.css +1 -1
  85. package/cjs/style/dnb-ui-body.min.css +1 -1
  86. package/cjs/style/dnb-ui-components.css +51 -13
  87. package/cjs/style/dnb-ui-components.min.css +3 -3
  88. package/cjs/style/dnb-ui-core.css +1 -1
  89. package/cjs/style/dnb-ui-core.min.css +1 -1
  90. package/cjs/style/dnb-ui-extensions.css +21 -3
  91. package/cjs/style/dnb-ui-extensions.min.css +1 -1
  92. package/cjs/style/dnb-ui-forms.css +21 -3
  93. package/cjs/style/dnb-ui-forms.min.css +1 -1
  94. package/cjs/style/themes/theme-eiendom/eiendom-theme-components.css +77 -23
  95. package/cjs/style/themes/theme-eiendom/eiendom-theme-components.min.css +5 -5
  96. package/cjs/style/themes/theme-eiendom/eiendom-theme-extensions.css +21 -3
  97. package/cjs/style/themes/theme-eiendom/eiendom-theme-extensions.min.css +1 -1
  98. package/cjs/style/themes/theme-eiendom/eiendom-theme-forms.css +21 -3
  99. package/cjs/style/themes/theme-eiendom/eiendom-theme-forms.min.css +1 -1
  100. package/cjs/style/themes/theme-sbanken/fonts.scss +1 -1
  101. package/cjs/style/themes/theme-sbanken/sbanken-theme-components.css +76 -20
  102. package/cjs/style/themes/theme-sbanken/sbanken-theme-components.min.css +4 -4
  103. package/cjs/style/themes/theme-sbanken/sbanken-theme-extensions.css +21 -3
  104. package/cjs/style/themes/theme-sbanken/sbanken-theme-extensions.min.css +1 -1
  105. package/cjs/style/themes/theme-sbanken/sbanken-theme-forms.css +21 -3
  106. package/cjs/style/themes/theme-sbanken/sbanken-theme-forms.min.css +1 -1
  107. package/cjs/style/themes/theme-ui/ui-theme-components.css +77 -23
  108. package/cjs/style/themes/theme-ui/ui-theme-components.min.css +5 -5
  109. package/cjs/style/themes/theme-ui/ui-theme-extensions.css +21 -3
  110. package/cjs/style/themes/theme-ui/ui-theme-extensions.min.css +1 -1
  111. package/cjs/style/themes/theme-ui/ui-theme-forms.css +21 -3
  112. package/cjs/style/themes/theme-ui/ui-theme-forms.min.css +1 -1
  113. package/components/accordion/Accordion.d.ts +13 -3
  114. package/components/accordion/Accordion.js +15 -10
  115. package/components/accordion/Accordion.js.map +1 -1
  116. package/components/accordion/AccordionContext.d.ts +2 -0
  117. package/components/accordion/AccordionContext.js.map +1 -1
  118. package/components/accordion/AccordionDocs.js +5 -0
  119. package/components/accordion/AccordionDocs.js.map +1 -1
  120. package/components/accordion/AccordionGroup.js +6 -3
  121. package/components/accordion/AccordionGroup.js.map +1 -1
  122. package/components/accordion/AccordionProviderContext.d.ts +2 -0
  123. package/components/accordion/AccordionProviderContext.js.map +1 -1
  124. package/components/accordion/AccordionStore.d.ts +2 -0
  125. package/components/accordion/AccordionStore.js +1 -1
  126. package/components/accordion/AccordionStore.js.map +1 -1
  127. package/components/accordion/style/themes/dnb-accordion-theme-ui.css +1 -0
  128. package/components/accordion/style/themes/dnb-accordion-theme-ui.min.css +1 -1
  129. package/components/accordion/style/themes/dnb-accordion-theme-ui.scss +3 -0
  130. package/components/button/Button.d.ts +1 -1
  131. package/components/card/Card.js +4 -3
  132. package/components/card/Card.js.map +1 -1
  133. package/components/card/style/dnb-card.css +16 -0
  134. package/components/card/style/dnb-card.min.css +1 -1
  135. package/components/card/style/dnb-card.scss +17 -0
  136. package/components/card/style/themes/dnb-card-theme-sbanken.css +4 -4
  137. package/components/card/style/themes/dnb-card-theme-sbanken.min.css +1 -1
  138. package/components/card/style/themes/dnb-card-theme-sbanken.scss +3 -5
  139. package/components/card/style/themes/dnb-card-theme-ui.css +4 -7
  140. package/components/card/style/themes/dnb-card-theme-ui.min.css +1 -1
  141. package/components/card/style/themes/dnb-card-theme-ui.scss +3 -7
  142. package/components/checkbox/style/dnb-checkbox.scss +1 -1
  143. package/components/height-animation/HeightAnimation.d.ts +1 -1
  144. package/components/height-animation/HeightAnimation.js +6 -2
  145. package/components/height-animation/HeightAnimation.js.map +1 -1
  146. package/components/height-animation/HeightAnimationDocs.d.ts +3 -0
  147. package/components/height-animation/HeightAnimationDocs.js +75 -0
  148. package/components/height-animation/HeightAnimationDocs.js.map +1 -0
  149. package/components/height-animation/style/dnb-height-animation.css +3 -2
  150. package/components/height-animation/style/dnb-height-animation.min.css +1 -1
  151. package/components/height-animation/style/dnb-height-animation.scss +3 -2
  152. package/components/height-animation/useHeightAnimation.d.ts +6 -1
  153. package/components/height-animation/useHeightAnimation.js +37 -7
  154. package/components/height-animation/useHeightAnimation.js.map +1 -1
  155. package/components/radio/RadioGroup.js +4 -2
  156. package/components/radio/RadioGroup.js.map +1 -1
  157. package/components/radio/style/dnb-radio.css +8 -5
  158. package/components/radio/style/dnb-radio.min.css +1 -1
  159. package/components/radio/style/dnb-radio.scss +11 -13
  160. package/components/section/Section.js +3 -0
  161. package/components/section/Section.js.map +1 -1
  162. package/components/section/style/dnb-section.scss +2 -0
  163. package/components/toggle-button/ToggleButtonGroup.js +6 -3
  164. package/components/toggle-button/ToggleButtonGroup.js.map +1 -1
  165. package/components/toggle-button/style/dnb-toggle-button.css +3 -3
  166. package/components/toggle-button/style/dnb-toggle-button.min.css +1 -1
  167. package/components/toggle-button/style/dnb-toggle-button.scss +6 -2
  168. package/es/components/accordion/Accordion.d.ts +13 -3
  169. package/es/components/accordion/Accordion.js +15 -10
  170. package/es/components/accordion/Accordion.js.map +1 -1
  171. package/es/components/accordion/AccordionContext.d.ts +2 -0
  172. package/es/components/accordion/AccordionContext.js.map +1 -1
  173. package/es/components/accordion/AccordionDocs.js +5 -0
  174. package/es/components/accordion/AccordionDocs.js.map +1 -1
  175. package/es/components/accordion/AccordionGroup.js +6 -3
  176. package/es/components/accordion/AccordionGroup.js.map +1 -1
  177. package/es/components/accordion/AccordionProviderContext.d.ts +2 -0
  178. package/es/components/accordion/AccordionProviderContext.js.map +1 -1
  179. package/es/components/accordion/AccordionStore.d.ts +2 -0
  180. package/es/components/accordion/AccordionStore.js +1 -1
  181. package/es/components/accordion/AccordionStore.js.map +1 -1
  182. package/es/components/accordion/style/themes/dnb-accordion-theme-ui.css +1 -0
  183. package/es/components/accordion/style/themes/dnb-accordion-theme-ui.min.css +1 -1
  184. package/es/components/accordion/style/themes/dnb-accordion-theme-ui.scss +3 -0
  185. package/es/components/button/Button.d.ts +1 -1
  186. package/es/components/card/Card.js +4 -3
  187. package/es/components/card/Card.js.map +1 -1
  188. package/es/components/card/style/dnb-card.css +16 -0
  189. package/es/components/card/style/dnb-card.min.css +1 -1
  190. package/es/components/card/style/dnb-card.scss +17 -0
  191. package/es/components/card/style/themes/dnb-card-theme-sbanken.css +4 -4
  192. package/es/components/card/style/themes/dnb-card-theme-sbanken.min.css +1 -1
  193. package/es/components/card/style/themes/dnb-card-theme-sbanken.scss +3 -5
  194. package/es/components/card/style/themes/dnb-card-theme-ui.css +4 -7
  195. package/es/components/card/style/themes/dnb-card-theme-ui.min.css +1 -1
  196. package/es/components/card/style/themes/dnb-card-theme-ui.scss +3 -7
  197. package/es/components/checkbox/style/dnb-checkbox.scss +1 -1
  198. package/es/components/height-animation/HeightAnimation.d.ts +1 -1
  199. package/es/components/height-animation/HeightAnimation.js +6 -2
  200. package/es/components/height-animation/HeightAnimation.js.map +1 -1
  201. package/es/components/height-animation/HeightAnimationDocs.d.ts +3 -0
  202. package/es/components/height-animation/HeightAnimationDocs.js +75 -0
  203. package/es/components/height-animation/HeightAnimationDocs.js.map +1 -0
  204. package/es/components/height-animation/style/dnb-height-animation.css +3 -2
  205. package/es/components/height-animation/style/dnb-height-animation.min.css +1 -1
  206. package/es/components/height-animation/style/dnb-height-animation.scss +3 -2
  207. package/es/components/height-animation/useHeightAnimation.d.ts +6 -1
  208. package/es/components/height-animation/useHeightAnimation.js +37 -7
  209. package/es/components/height-animation/useHeightAnimation.js.map +1 -1
  210. package/es/components/radio/RadioGroup.js +4 -2
  211. package/es/components/radio/RadioGroup.js.map +1 -1
  212. package/es/components/radio/style/dnb-radio.css +8 -5
  213. package/es/components/radio/style/dnb-radio.min.css +1 -1
  214. package/es/components/radio/style/dnb-radio.scss +11 -13
  215. package/es/components/section/Section.js +3 -0
  216. package/es/components/section/Section.js.map +1 -1
  217. package/es/components/section/style/dnb-section.scss +2 -0
  218. package/es/components/toggle-button/ToggleButtonGroup.js +6 -3
  219. package/es/components/toggle-button/ToggleButtonGroup.js.map +1 -1
  220. package/es/components/toggle-button/style/dnb-toggle-button.css +3 -3
  221. package/es/components/toggle-button/style/dnb-toggle-button.min.css +1 -1
  222. package/es/components/toggle-button/style/dnb-toggle-button.scss +6 -2
  223. package/es/extensions/forms/Field/ArraySelection/ArraySelection.d.ts +14 -0
  224. package/es/extensions/forms/Field/ArraySelection/ArraySelection.js +87 -29
  225. package/es/extensions/forms/Field/ArraySelection/ArraySelection.js.map +1 -1
  226. package/es/extensions/forms/Field/ArraySelection/style/dnb-array-selection.css +12 -3
  227. package/es/extensions/forms/Field/ArraySelection/style/dnb-array-selection.min.css +1 -1
  228. package/es/extensions/forms/Field/ArraySelection/style/dnb-array-selection.scss +14 -3
  229. package/es/extensions/forms/Field/Selection/Selection.d.ts +15 -3
  230. package/es/extensions/forms/Field/Selection/Selection.js +68 -42
  231. package/es/extensions/forms/Field/Selection/Selection.js.map +1 -1
  232. package/es/extensions/forms/Field/Selection/style/dnb-selection.css +9 -0
  233. package/es/extensions/forms/Field/Selection/style/dnb-selection.min.css +1 -1
  234. package/es/extensions/forms/Field/Selection/style/dnb-selection.scss +16 -0
  235. package/es/extensions/forms/Form/Visibility/Visibility.d.ts +3 -1
  236. package/es/extensions/forms/Form/Visibility/Visibility.js +4 -2
  237. package/es/extensions/forms/Form/Visibility/Visibility.js.map +1 -1
  238. package/es/extensions/forms/Form/Visibility/VisibilityDocs.js +5 -0
  239. package/es/extensions/forms/Form/Visibility/VisibilityDocs.js.map +1 -1
  240. package/es/extensions/forms/style/dnb-forms.css +21 -3
  241. package/es/extensions/forms/style/dnb-forms.min.css +1 -1
  242. package/es/extensions/forms/types.d.ts +1 -1
  243. package/es/extensions/forms/types.js.map +1 -1
  244. package/es/shared/Eufemia.d.ts +1 -1
  245. package/es/shared/Eufemia.js +2 -2
  246. package/es/shared/Eufemia.js.map +1 -1
  247. package/es/style/core/scopes.scss +1 -1
  248. package/es/style/dnb-ui-basis.css +1 -1
  249. package/es/style/dnb-ui-basis.min.css +1 -1
  250. package/es/style/dnb-ui-body.css +1 -1
  251. package/es/style/dnb-ui-body.min.css +1 -1
  252. package/es/style/dnb-ui-components.css +51 -13
  253. package/es/style/dnb-ui-components.min.css +3 -3
  254. package/es/style/dnb-ui-core.css +1 -1
  255. package/es/style/dnb-ui-core.min.css +1 -1
  256. package/es/style/dnb-ui-extensions.css +21 -3
  257. package/es/style/dnb-ui-extensions.min.css +1 -1
  258. package/es/style/dnb-ui-forms.css +21 -3
  259. package/es/style/dnb-ui-forms.min.css +1 -1
  260. package/es/style/themes/theme-eiendom/eiendom-theme-components.css +77 -23
  261. package/es/style/themes/theme-eiendom/eiendom-theme-components.min.css +5 -5
  262. package/es/style/themes/theme-eiendom/eiendom-theme-extensions.css +21 -3
  263. package/es/style/themes/theme-eiendom/eiendom-theme-extensions.min.css +1 -1
  264. package/es/style/themes/theme-eiendom/eiendom-theme-forms.css +21 -3
  265. package/es/style/themes/theme-eiendom/eiendom-theme-forms.min.css +1 -1
  266. package/es/style/themes/theme-sbanken/fonts.scss +1 -1
  267. package/es/style/themes/theme-sbanken/sbanken-theme-components.css +76 -20
  268. package/es/style/themes/theme-sbanken/sbanken-theme-components.min.css +4 -4
  269. package/es/style/themes/theme-sbanken/sbanken-theme-extensions.css +21 -3
  270. package/es/style/themes/theme-sbanken/sbanken-theme-extensions.min.css +1 -1
  271. package/es/style/themes/theme-sbanken/sbanken-theme-forms.css +21 -3
  272. package/es/style/themes/theme-sbanken/sbanken-theme-forms.min.css +1 -1
  273. package/es/style/themes/theme-ui/ui-theme-components.css +77 -23
  274. package/es/style/themes/theme-ui/ui-theme-components.min.css +5 -5
  275. package/es/style/themes/theme-ui/ui-theme-extensions.css +21 -3
  276. package/es/style/themes/theme-ui/ui-theme-extensions.min.css +1 -1
  277. package/es/style/themes/theme-ui/ui-theme-forms.css +21 -3
  278. package/es/style/themes/theme-ui/ui-theme-forms.min.css +1 -1
  279. package/esm/dnb-ui-basis.min.mjs +1 -1
  280. package/esm/dnb-ui-components.min.mjs +1 -1
  281. package/esm/dnb-ui-elements.min.mjs +1 -1
  282. package/esm/dnb-ui-extensions.min.mjs +2 -2
  283. package/esm/dnb-ui-lib.min.mjs +1 -1
  284. package/extensions/forms/Field/ArraySelection/ArraySelection.d.ts +14 -0
  285. package/extensions/forms/Field/ArraySelection/ArraySelection.js +88 -29
  286. package/extensions/forms/Field/ArraySelection/ArraySelection.js.map +1 -1
  287. package/extensions/forms/Field/ArraySelection/style/dnb-array-selection.css +12 -3
  288. package/extensions/forms/Field/ArraySelection/style/dnb-array-selection.min.css +1 -1
  289. package/extensions/forms/Field/ArraySelection/style/dnb-array-selection.scss +14 -3
  290. package/extensions/forms/Field/Selection/Selection.d.ts +15 -3
  291. package/extensions/forms/Field/Selection/Selection.js +69 -42
  292. package/extensions/forms/Field/Selection/Selection.js.map +1 -1
  293. package/extensions/forms/Field/Selection/style/dnb-selection.css +9 -0
  294. package/extensions/forms/Field/Selection/style/dnb-selection.min.css +1 -1
  295. package/extensions/forms/Field/Selection/style/dnb-selection.scss +16 -0
  296. package/extensions/forms/Form/Visibility/Visibility.d.ts +3 -1
  297. package/extensions/forms/Form/Visibility/Visibility.js +4 -2
  298. package/extensions/forms/Form/Visibility/Visibility.js.map +1 -1
  299. package/extensions/forms/Form/Visibility/VisibilityDocs.js +5 -0
  300. package/extensions/forms/Form/Visibility/VisibilityDocs.js.map +1 -1
  301. package/extensions/forms/style/dnb-forms.css +21 -3
  302. package/extensions/forms/style/dnb-forms.min.css +1 -1
  303. package/extensions/forms/types.d.ts +1 -1
  304. package/extensions/forms/types.js.map +1 -1
  305. package/package.json +1 -1
  306. package/shared/Eufemia.d.ts +1 -1
  307. package/shared/Eufemia.js +2 -2
  308. package/shared/Eufemia.js.map +1 -1
  309. package/style/core/scopes.scss +1 -1
  310. package/style/dnb-ui-basis.css +1 -1
  311. package/style/dnb-ui-basis.min.css +1 -1
  312. package/style/dnb-ui-body.css +1 -1
  313. package/style/dnb-ui-body.min.css +1 -1
  314. package/style/dnb-ui-components.css +51 -13
  315. package/style/dnb-ui-components.min.css +3 -3
  316. package/style/dnb-ui-core.css +1 -1
  317. package/style/dnb-ui-core.min.css +1 -1
  318. package/style/dnb-ui-extensions.css +21 -3
  319. package/style/dnb-ui-extensions.min.css +1 -1
  320. package/style/dnb-ui-forms.css +21 -3
  321. package/style/dnb-ui-forms.min.css +1 -1
  322. package/style/themes/theme-eiendom/eiendom-theme-components.css +77 -23
  323. package/style/themes/theme-eiendom/eiendom-theme-components.min.css +5 -5
  324. package/style/themes/theme-eiendom/eiendom-theme-extensions.css +21 -3
  325. package/style/themes/theme-eiendom/eiendom-theme-extensions.min.css +1 -1
  326. package/style/themes/theme-eiendom/eiendom-theme-forms.css +21 -3
  327. package/style/themes/theme-eiendom/eiendom-theme-forms.min.css +1 -1
  328. package/style/themes/theme-sbanken/fonts.scss +1 -1
  329. package/style/themes/theme-sbanken/sbanken-theme-components.css +76 -20
  330. package/style/themes/theme-sbanken/sbanken-theme-components.min.css +4 -4
  331. package/style/themes/theme-sbanken/sbanken-theme-extensions.css +21 -3
  332. package/style/themes/theme-sbanken/sbanken-theme-extensions.min.css +1 -1
  333. package/style/themes/theme-sbanken/sbanken-theme-forms.css +21 -3
  334. package/style/themes/theme-sbanken/sbanken-theme-forms.min.css +1 -1
  335. package/style/themes/theme-ui/ui-theme-components.css +77 -23
  336. package/style/themes/theme-ui/ui-theme-components.min.css +5 -5
  337. package/style/themes/theme-ui/ui-theme-extensions.css +21 -3
  338. package/style/themes/theme-ui/ui-theme-extensions.min.css +1 -1
  339. package/style/themes/theme-ui/ui-theme-forms.css +21 -3
  340. package/style/themes/theme-ui/ui-theme-forms.min.css +1 -1
  341. package/umd/dnb-ui-basis.min.js +1 -1
  342. package/umd/dnb-ui-components.min.js +1 -1
  343. package/umd/dnb-ui-elements.min.js +1 -1
  344. package/umd/dnb-ui-extensions.min.js +3 -3
  345. package/umd/dnb-ui-lib.min.js +1 -1
@@ -1,7 +1,5 @@
1
1
  .dnb-card {
2
- &.dnb-section {
3
- --outline-color: var(--border-color, var(--sb-color-gray-light));
4
- --outline-width: 0.0625rem;
5
- --background-color: var(--sb-color-white);
6
- }
2
+ --card-outline-color: var(--border-color, var(--sb-color-gray-light));
3
+ --card-outline-width: 0.0625rem;
4
+ --card-background-color: var(--sb-color-white);
7
5
  }
@@ -1,8 +1,5 @@
1
- /*
2
- * Utilities
3
- */
4
- .dnb-card.dnb-section {
5
- --outline-color: var(--border-color, var(--color-lavender));
6
- --outline-width: 0.25rem;
7
- --background-color: var(--color-white);
1
+ .dnb-card {
2
+ --card-outline-color: var(--border-color, var(--color-lavender));
3
+ --card-outline-width: 0.25rem;
4
+ --card-background-color: var(--color-white);
8
5
  }
@@ -1 +1 @@
1
- .dnb-card.dnb-section{--outline-color:var(--border-color,var(--color-lavender));--outline-width:0.25rem;--background-color:var(--color-white)}
1
+ .dnb-card{--card-outline-color:var(--border-color,var(--color-lavender));--card-outline-width:0.25rem;--card-background-color:var(--color-white)}
@@ -1,9 +1,5 @@
1
- @import '../../../../style/core/utilities.scss';
2
-
3
1
  .dnb-card {
4
- &.dnb-section {
5
- --outline-color: var(--border-color, var(--color-lavender));
6
- --outline-width: 0.25rem;
7
- --background-color: var(--color-white);
8
- }
2
+ --card-outline-color: var(--border-color, var(--color-lavender));
3
+ --card-outline-width: 0.25rem;
4
+ --card-background-color: var(--color-white);
9
5
  }
@@ -243,7 +243,7 @@
243
243
  */
244
244
 
245
245
  // stylelint-disable no-descending-specificity
246
- // We prioritise categorisation and readability over specificity here
246
+ // We prioritize categorisation and readability over specificity here
247
247
 
248
248
  /** Normal state **/
249
249
 
@@ -34,7 +34,7 @@ export type HeightAnimationProps = {
34
34
  innerRef?: React.RefObject<HTMLElement>;
35
35
  } & useHeightAnimationOptions;
36
36
  export type HeightAnimationAllProps = HeightAnimationProps & SpacingProps & Omit<React.HTMLProps<HTMLElement>, 'ref'>;
37
- declare function HeightAnimation({ open, animate, keepInDOM, showOverflow, element, duration, delay, className, innerRef, children, onInit, onOpen, onAnimationStart, onAnimationEnd, ...rest }: HeightAnimationAllProps): import("react/jsx-runtime").JSX.Element;
37
+ declare function HeightAnimation({ open, animate, keepInDOM, showOverflow, element, duration, delay, className, innerRef, children, compensateForGap, onInit, onOpen, onAnimationStart, onAnimationEnd, ...rest }: HeightAnimationAllProps): import("react/jsx-runtime").JSX.Element;
38
38
  declare namespace HeightAnimation {
39
39
  var _supportsSpacingProps: string;
40
40
  }
@@ -3,7 +3,7 @@
3
3
  import _extends from "@babel/runtime/helpers/esm/extends";
4
4
  import _defineProperty from "@babel/runtime/helpers/esm/defineProperty";
5
5
  import _objectWithoutProperties from "@babel/runtime/helpers/esm/objectWithoutProperties";
6
- const _excluded = ["open", "animate", "keepInDOM", "showOverflow", "element", "duration", "delay", "className", "innerRef", "children", "onInit", "onOpen", "onAnimationStart", "onAnimationEnd"];
6
+ const _excluded = ["open", "animate", "keepInDOM", "showOverflow", "element", "duration", "delay", "className", "innerRef", "children", "compensateForGap", "onInit", "onOpen", "onAnimationStart", "onAnimationEnd"];
7
7
  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; }
8
8
  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; }
9
9
  import React, { useRef } from 'react';
@@ -22,6 +22,7 @@ function HeightAnimation(_ref) {
22
22
  className,
23
23
  innerRef,
24
24
  children,
25
+ compensateForGap,
25
26
  onInit = null,
26
27
  onOpen = null,
27
28
  onAnimationStart = null,
@@ -40,6 +41,7 @@ function HeightAnimation(_ref) {
40
41
  open,
41
42
  animate,
42
43
  children,
44
+ compensateForGap,
43
45
  onInit,
44
46
  onOpen,
45
47
  onAnimationStart,
@@ -60,7 +62,9 @@ function HeightAnimation(_ref) {
60
62
  className: classnames('dnb-height-animation', className, isVisible ? 'dnb-height-animation--is-visible' : !isAnimating && !open && 'dnb-height-animation--hidden', isInDOM && 'dnb-height-animation--is-in-dom', animate && isVisibleParallax && 'dnb-height-animation--parallax', isAnimating && 'dnb-height-animation--animating', showOverflow && 'dnb-height-animation--show-overflow'),
61
63
  style: _objectSpread(_objectSpread({}, firstPaintStyle), rest === null || rest === void 0 ? void 0 : rest.style),
62
64
  "aria-hidden": keepInDOM ? !open : undefined
63
- }, rest), children);
65
+ }, rest), compensateForGap ? React.createElement("div", {
66
+ className: "compensateForGap"
67
+ }, children) : children);
64
68
  }
65
69
  HeightAnimation._supportsSpacingProps = 'children';
66
70
  export default HeightAnimation;
@@ -1 +1 @@
1
- {"version":3,"file":"HeightAnimation.js","names":["React","useRef","classnames","useHeightAnimation","Space","HeightAnimation","_ref","open","animate","keepInDOM","showOverflow","element","duration","delay","className","innerRef","children","onInit","onOpen","onAnimationStart","onAnimationEnd","rest","_objectWithoutProperties","_excluded","elementRef","targetRef","isInDOM","isVisible","isVisibleParallax","isAnimating","firstPaintStyle","createElement","_extends","style","_objectSpread","undefined","_supportsSpacingProps"],"sources":["../../../../src/components/height-animation/HeightAnimation.tsx"],"sourcesContent":["import React, { useRef } from 'react'\nimport classnames from 'classnames'\nimport {\n useHeightAnimation,\n useHeightAnimationOptions,\n} from './useHeightAnimation'\nimport Space from '../space/Space'\n\nimport type { DynamicElement, SpacingProps } from '../../shared/types'\n\nexport type HeightAnimationProps = {\n /**\n * Whether the nested children content should be kept in the DOM or not.\n * Default: false\n */\n keepInDOM?: boolean\n\n /**\n * Set to `true` to omit the usage of \"overflow: hidden;\"\n * Default: false\n */\n showOverflow?: boolean\n\n /**\n * Defines the duration of the animation in milliseconds.\n * Default: 400\n */\n duration?: number\n\n /**\n * Defines the delay of the animation in milliseconds.\n * Default: 0\n */\n delay?: number\n\n /**\n * Define a custom HTML Element.\n * Default: div\n */\n element?: DynamicElement\n\n /**\n * Send along a custom React Ref.\n * Default: null\n */\n innerRef?: React.RefObject<HTMLElement>\n} & useHeightAnimationOptions\n\nexport type HeightAnimationAllProps = HeightAnimationProps &\n SpacingProps &\n Omit<React.HTMLProps<HTMLElement>, 'ref'>\n\nfunction HeightAnimation({\n open = true,\n animate = true,\n keepInDOM = false,\n showOverflow = false,\n element,\n duration,\n delay,\n className,\n innerRef,\n children,\n onInit = null,\n onOpen = null,\n onAnimationStart = null,\n onAnimationEnd = null,\n ...rest\n}: HeightAnimationAllProps) {\n const elementRef = useRef<HTMLElement>()\n const targetRef = innerRef || elementRef\n\n const {\n isInDOM,\n isVisible,\n isVisibleParallax,\n isAnimating,\n firstPaintStyle,\n } = useHeightAnimation(targetRef, {\n open,\n animate,\n children,\n onInit,\n onOpen,\n onAnimationStart,\n onAnimationEnd,\n })\n\n if (!keepInDOM && !isInDOM && !isAnimating) {\n return null\n }\n\n if (duration) {\n firstPaintStyle['--duration'] = `${duration}ms`\n }\n if (delay) {\n firstPaintStyle['--delay'] = `${delay}ms`\n }\n\n return (\n <Space\n innerRef={targetRef}\n element={element || 'div'}\n className={classnames(\n 'dnb-height-animation',\n isInDOM && 'dnb-height-animation--is-in-dom',\n isVisible && 'dnb-height-animation--is-visible',\n animate && isVisibleParallax && 'dnb-height-animation--parallax',\n isAnimating && 'dnb-height-animation--animating',\n !isVisible &&\n !isAnimating &&\n !open &&\n 'dnb-height-animation--hidden',\n showOverflow && 'dnb-height-animation--show-overflow',\n className\n )}\n style={{ ...firstPaintStyle, ...rest?.style }}\n aria-hidden={keepInDOM ? !open : undefined}\n {...rest}\n >\n {children}\n </Space>\n )\n}\n\nHeightAnimation._supportsSpacingProps = 'children'\n\nexport default HeightAnimation\n"],"mappings":";;;;;;;;AAAA,OAAOA,KAAK,IAAIC,MAAM,QAAQ,OAAO;AACrC,OAAOC,UAAU,MAAM,YAAY;AACnC,SACEC,kBAAkB,QAEb,sBAAsB;AAC7B,OAAOC,KAAK,MAAM,gBAAgB;AA8ClC,SAASC,eAAeA,CAAAC,IAAA,EAgBI;EAAA,IAhBH;MACvBC,IAAI,GAAG,IAAI;MACXC,OAAO,GAAG,IAAI;MACdC,SAAS,GAAG,KAAK;MACjBC,YAAY,GAAG,KAAK;MACpBC,OAAO;MACPC,QAAQ;MACRC,KAAK;MACLC,SAAS;MACTC,QAAQ;MACRC,QAAQ;MACRC,MAAM,GAAG,IAAI;MACbC,MAAM,GAAG,IAAI;MACbC,gBAAgB,GAAG,IAAI;MACvBC,cAAc,GAAG;IAEM,CAAC,GAAAd,IAAA;IADrBe,IAAI,GAAAC,wBAAA,CAAAhB,IAAA,EAAAiB,SAAA;EAEP,MAAMC,UAAU,GAAGvB,MAAM,CAAc,CAAC;EACxC,MAAMwB,SAAS,GAAGV,QAAQ,IAAIS,UAAU;EAExC,MAAM;IACJE,OAAO;IACPC,SAAS;IACTC,iBAAiB;IACjBC,WAAW;IACXC;EACF,CAAC,GAAG3B,kBAAkB,CAACsB,SAAS,EAAE;IAChClB,IAAI;IACJC,OAAO;IACPQ,QAAQ;IACRC,MAAM;IACNC,MAAM;IACNC,gBAAgB;IAChBC;EACF,CAAC,CAAC;EAEF,IAAI,CAACX,SAAS,IAAI,CAACiB,OAAO,IAAI,CAACG,WAAW,EAAE;IAC1C,OAAO,IAAI;EACb;EAEA,IAAIjB,QAAQ,EAAE;IACZkB,eAAe,CAAC,YAAY,CAAC,GAAI,GAAElB,QAAS,IAAG;EACjD;EACA,IAAIC,KAAK,EAAE;IACTiB,eAAe,CAAC,SAAS,CAAC,GAAI,GAAEjB,KAAM,IAAG;EAC3C;EAEA,OACEb,KAAA,CAAA+B,aAAA,CAAC3B,KAAK,EAAA4B,QAAA;IACJjB,QAAQ,EAAEU,SAAU;IACpBd,OAAO,EAAEA,OAAO,IAAI,KAAM;IAC1BG,SAAS,EAAEZ,UAAU,CACnB,sBAAsB,EAUtBY,SAAS,EARTa,SAAS,GAAI,kCAAkC,GAI7C,CAACE,WAAW,IACZ,CAACtB,IAAI,IACL,8BAA8B,EAPhCmB,OAAO,IAAI,iCAAiC,EAE5ClB,OAAO,IAAIoB,iBAAiB,IAAI,gCAAgC,EAChEC,WAAW,IAAI,iCAAiC,EAKhDnB,YAAY,IAAI,qCAElB,CAAE;IACFuB,KAAK,EAAAC,aAAA,CAAAA,aAAA,KAAOJ,eAAe,GAAKT,IAAI,aAAJA,IAAI,uBAAJA,IAAI,CAAEY,KAAK,CAAG;IAC9C,eAAaxB,SAAS,GAAG,CAACF,IAAI,GAAG4B;EAAU,GACvCd,IAAI,GAEPL,QACI,CAAC;AAEZ;AAEAX,eAAe,CAAC+B,qBAAqB,GAAG,UAAU;AAElD,eAAe/B,eAAe"}
1
+ {"version":3,"file":"HeightAnimation.js","names":["React","useRef","classnames","useHeightAnimation","Space","HeightAnimation","_ref","open","animate","keepInDOM","showOverflow","element","duration","delay","className","innerRef","children","compensateForGap","onInit","onOpen","onAnimationStart","onAnimationEnd","rest","_objectWithoutProperties","_excluded","elementRef","targetRef","isInDOM","isVisible","isVisibleParallax","isAnimating","firstPaintStyle","createElement","_extends","style","_objectSpread","undefined","_supportsSpacingProps"],"sources":["../../../../src/components/height-animation/HeightAnimation.tsx"],"sourcesContent":["import React, { useRef } from 'react'\nimport classnames from 'classnames'\nimport {\n useHeightAnimation,\n useHeightAnimationOptions,\n} from './useHeightAnimation'\nimport Space from '../space/Space'\n\nimport type { DynamicElement, SpacingProps } from '../../shared/types'\n\nexport type HeightAnimationProps = {\n /**\n * Whether the nested children content should be kept in the DOM or not.\n * Default: false\n */\n keepInDOM?: boolean\n\n /**\n * Set to `true` to omit the usage of \"overflow: hidden;\"\n * Default: false\n */\n showOverflow?: boolean\n\n /**\n * Defines the duration of the animation in milliseconds.\n * Default: 400\n */\n duration?: number\n\n /**\n * Defines the delay of the animation in milliseconds.\n * Default: 0\n */\n delay?: number\n\n /**\n * Define a custom HTML Element.\n * Default: div\n */\n element?: DynamicElement\n\n /**\n * Send along a custom React Ref.\n * Default: null\n */\n innerRef?: React.RefObject<HTMLElement>\n} & useHeightAnimationOptions\n\nexport type HeightAnimationAllProps = HeightAnimationProps &\n SpacingProps &\n Omit<React.HTMLProps<HTMLElement>, 'ref'>\n\nfunction HeightAnimation({\n open = true,\n animate = true,\n keepInDOM = false,\n showOverflow = false,\n element,\n duration,\n delay,\n className,\n innerRef,\n children,\n compensateForGap,\n onInit = null,\n onOpen = null,\n onAnimationStart = null,\n onAnimationEnd = null,\n ...rest\n}: HeightAnimationAllProps) {\n const elementRef = useRef<HTMLElement>()\n const targetRef = innerRef || elementRef\n\n const {\n isInDOM,\n isVisible,\n isVisibleParallax,\n isAnimating,\n firstPaintStyle,\n } = useHeightAnimation(targetRef, {\n open,\n animate,\n children,\n compensateForGap,\n onInit,\n onOpen,\n onAnimationStart,\n onAnimationEnd,\n })\n\n if (!keepInDOM && !isInDOM && !isAnimating) {\n return null\n }\n\n if (duration) {\n firstPaintStyle['--duration'] = `${duration}ms`\n }\n if (delay) {\n firstPaintStyle['--delay'] = `${delay}ms`\n }\n\n return (\n <Space\n innerRef={targetRef}\n element={element || 'div'}\n className={classnames(\n 'dnb-height-animation',\n isInDOM && 'dnb-height-animation--is-in-dom',\n isVisible && 'dnb-height-animation--is-visible',\n animate && isVisibleParallax && 'dnb-height-animation--parallax',\n isAnimating && 'dnb-height-animation--animating',\n !isVisible &&\n !isAnimating &&\n !open &&\n 'dnb-height-animation--hidden',\n showOverflow && 'dnb-height-animation--show-overflow',\n className\n )}\n style={{ ...firstPaintStyle, ...rest?.style }}\n aria-hidden={keepInDOM ? !open : undefined}\n {...rest}\n >\n {compensateForGap ? (\n <div className=\"compensateForGap\">{children}</div>\n ) : (\n children\n )}\n </Space>\n )\n}\n\nHeightAnimation._supportsSpacingProps = 'children'\n\nexport default HeightAnimation\n"],"mappings":";;;;;;;;AAAA,OAAOA,KAAK,IAAIC,MAAM,QAAQ,OAAO;AACrC,OAAOC,UAAU,MAAM,YAAY;AACnC,SACEC,kBAAkB,QAEb,sBAAsB;AAC7B,OAAOC,KAAK,MAAM,gBAAgB;AA8ClC,SAASC,eAAeA,CAAAC,IAAA,EAiBI;EAAA,IAjBH;MACvBC,IAAI,GAAG,IAAI;MACXC,OAAO,GAAG,IAAI;MACdC,SAAS,GAAG,KAAK;MACjBC,YAAY,GAAG,KAAK;MACpBC,OAAO;MACPC,QAAQ;MACRC,KAAK;MACLC,SAAS;MACTC,QAAQ;MACRC,QAAQ;MACRC,gBAAgB;MAChBC,MAAM,GAAG,IAAI;MACbC,MAAM,GAAG,IAAI;MACbC,gBAAgB,GAAG,IAAI;MACvBC,cAAc,GAAG;IAEM,CAAC,GAAAf,IAAA;IADrBgB,IAAI,GAAAC,wBAAA,CAAAjB,IAAA,EAAAkB,SAAA;EAEP,MAAMC,UAAU,GAAGxB,MAAM,CAAc,CAAC;EACxC,MAAMyB,SAAS,GAAGX,QAAQ,IAAIU,UAAU;EAExC,MAAM;IACJE,OAAO;IACPC,SAAS;IACTC,iBAAiB;IACjBC,WAAW;IACXC;EACF,CAAC,GAAG5B,kBAAkB,CAACuB,SAAS,EAAE;IAChCnB,IAAI;IACJC,OAAO;IACPQ,QAAQ;IACRC,gBAAgB;IAChBC,MAAM;IACNC,MAAM;IACNC,gBAAgB;IAChBC;EACF,CAAC,CAAC;EAEF,IAAI,CAACZ,SAAS,IAAI,CAACkB,OAAO,IAAI,CAACG,WAAW,EAAE;IAC1C,OAAO,IAAI;EACb;EAEA,IAAIlB,QAAQ,EAAE;IACZmB,eAAe,CAAC,YAAY,CAAC,GAAI,GAAEnB,QAAS,IAAG;EACjD;EACA,IAAIC,KAAK,EAAE;IACTkB,eAAe,CAAC,SAAS,CAAC,GAAI,GAAElB,KAAM,IAAG;EAC3C;EAEA,OACEb,KAAA,CAAAgC,aAAA,CAAC5B,KAAK,EAAA6B,QAAA;IACJlB,QAAQ,EAAEW,SAAU;IACpBf,OAAO,EAAEA,OAAO,IAAI,KAAM;IAC1BG,SAAS,EAAEZ,UAAU,CACnB,sBAAsB,EAUtBY,SAAS,EARTc,SAAS,GAAI,kCAAkC,GAI7C,CAACE,WAAW,IACZ,CAACvB,IAAI,IACL,8BAA8B,EAPhCoB,OAAO,IAAI,iCAAiC,EAE5CnB,OAAO,IAAIqB,iBAAiB,IAAI,gCAAgC,EAChEC,WAAW,IAAI,iCAAiC,EAKhDpB,YAAY,IAAI,qCAElB,CAAE;IACFwB,KAAK,EAAAC,aAAA,CAAAA,aAAA,KAAOJ,eAAe,GAAKT,IAAI,aAAJA,IAAI,uBAAJA,IAAI,CAAEY,KAAK,CAAG;IAC9C,eAAazB,SAAS,GAAG,CAACF,IAAI,GAAG6B;EAAU,GACvCd,IAAI,GAEPL,gBAAgB,GACfjB,KAAA,CAAAgC,aAAA;IAAKlB,SAAS,EAAC;EAAkB,GAAEE,QAAc,CAAC,GAElDA,QAEG,CAAC;AAEZ;AAEAX,eAAe,CAACgC,qBAAqB,GAAG,UAAU;AAElD,eAAehC,eAAe"}
@@ -0,0 +1,3 @@
1
+ import { PropertiesTableProps } from '../../shared/types';
2
+ export declare const HeightAnimationProperties: PropertiesTableProps;
3
+ export declare const HeightAnimationEvents: PropertiesTableProps;
@@ -0,0 +1,75 @@
1
+ export const HeightAnimationProperties = {
2
+ open: {
3
+ doc: 'Set to `true` on second re-render when the view should animate from 0px to auto. Defaults to `true`.',
4
+ type: 'boolean',
5
+ status: 'optional'
6
+ },
7
+ animate: {
8
+ doc: 'Set to `false` to omit the animation. Defaults to `true`.',
9
+ type: 'boolean',
10
+ status: 'optional'
11
+ },
12
+ keepInDOM: {
13
+ doc: 'Set to `true` ensure the nested children content will be kept in the DOM. Defaults to `false`.',
14
+ type: 'boolean',
15
+ status: 'optional'
16
+ },
17
+ compensateForGap: {
18
+ doc: 'To compensate for CSS gap between the rows, so animation does not jump during the animation. Provide a CSS unit or `auto`. Defaults to `null`.',
19
+ type: 'string',
20
+ status: 'optional'
21
+ },
22
+ showOverflow: {
23
+ doc: 'Set to `true` to omit the usage of "overflow: hidden;". Defaults to `false`.',
24
+ type: 'boolean',
25
+ status: 'optional'
26
+ },
27
+ duration: {
28
+ doc: 'Custom duration of the animation in milliseconds. Defaults to `400ms`.',
29
+ type: 'number',
30
+ status: 'optional'
31
+ },
32
+ delay: {
33
+ doc: 'Custom delay of the animation in milliseconds. Defaults to `0ms`.',
34
+ type: 'number',
35
+ status: 'optional'
36
+ },
37
+ element: {
38
+ doc: 'Custom HTML element for the component. Defaults to `div` HTML Element.',
39
+ type: 'string',
40
+ status: 'optional'
41
+ },
42
+ innerRef: {
43
+ doc: 'Send along a custom React Ref.',
44
+ type: 'React.RefObject',
45
+ status: 'optional'
46
+ },
47
+ '[Space](/uilib/layout/space/properties)': {
48
+ doc: 'spacing properties like `top` or `bottom` are supported.',
49
+ type: ['string', 'object'],
50
+ status: 'optional'
51
+ }
52
+ };
53
+ export const HeightAnimationEvents = {
54
+ onOpen: {
55
+ doc: 'Is called when fully opened or closed. Returns `true` or `false` depending on the state.',
56
+ type: 'function',
57
+ status: 'optional'
58
+ },
59
+ onAnimationStart: {
60
+ doc: 'Is called when animation has started.',
61
+ type: 'function',
62
+ status: 'optional'
63
+ },
64
+ onAnimationEnd: {
65
+ doc: 'Is called when animation is done and the full height is reached.',
66
+ type: 'function',
67
+ status: 'optional'
68
+ },
69
+ onInit: {
70
+ doc: 'Is called once before mounting the component (useLayoutEffect). Returns the instance of the internal animation class.',
71
+ type: 'function',
72
+ status: 'optional'
73
+ }
74
+ };
75
+ //# sourceMappingURL=HeightAnimationDocs.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"HeightAnimationDocs.js","names":["HeightAnimationProperties","open","doc","type","status","animate","keepInDOM","compensateForGap","showOverflow","duration","delay","element","innerRef","HeightAnimationEvents","onOpen","onAnimationStart","onAnimationEnd","onInit"],"sources":["../../../../src/components/height-animation/HeightAnimationDocs.ts"],"sourcesContent":["import { PropertiesTableProps } from '../../shared/types'\n\nexport const HeightAnimationProperties: PropertiesTableProps = {\n open: {\n doc: 'Set to `true` on second re-render when the view should animate from 0px to auto. Defaults to `true`.',\n type: 'boolean',\n status: 'optional',\n },\n animate: {\n doc: 'Set to `false` to omit the animation. Defaults to `true`.',\n type: 'boolean',\n status: 'optional',\n },\n keepInDOM: {\n doc: 'Set to `true` ensure the nested children content will be kept in the DOM. Defaults to `false`.',\n type: 'boolean',\n status: 'optional',\n },\n compensateForGap: {\n doc: 'To compensate for CSS gap between the rows, so animation does not jump during the animation. Provide a CSS unit or `auto`. Defaults to `null`.',\n type: 'string',\n status: 'optional',\n },\n showOverflow: {\n doc: 'Set to `true` to omit the usage of \"overflow: hidden;\". Defaults to `false`.',\n type: 'boolean',\n status: 'optional',\n },\n duration: {\n doc: 'Custom duration of the animation in milliseconds. Defaults to `400ms`.',\n type: 'number',\n status: 'optional',\n },\n delay: {\n doc: 'Custom delay of the animation in milliseconds. Defaults to `0ms`.',\n type: 'number',\n status: 'optional',\n },\n element: {\n doc: 'Custom HTML element for the component. Defaults to `div` HTML Element.',\n type: 'string',\n status: 'optional',\n },\n innerRef: {\n doc: 'Send along a custom React Ref.',\n type: 'React.RefObject',\n status: 'optional',\n },\n '[Space](/uilib/layout/space/properties)': {\n doc: 'spacing properties like `top` or `bottom` are supported.',\n type: ['string', 'object'],\n status: 'optional',\n },\n}\n\nexport const HeightAnimationEvents: PropertiesTableProps = {\n onOpen: {\n doc: 'Is called when fully opened or closed. Returns `true` or `false` depending on the state.',\n type: 'function',\n status: 'optional',\n },\n onAnimationStart: {\n doc: 'Is called when animation has started.',\n type: 'function',\n status: 'optional',\n },\n onAnimationEnd: {\n doc: 'Is called when animation is done and the full height is reached.',\n type: 'function',\n status: 'optional',\n },\n onInit: {\n doc: 'Is called once before mounting the component (useLayoutEffect). Returns the instance of the internal animation class.',\n type: 'function',\n status: 'optional',\n },\n}\n"],"mappings":"AAEA,OAAO,MAAMA,yBAA+C,GAAG;EAC7DC,IAAI,EAAE;IACJC,GAAG,EAAE,sGAAsG;IAC3GC,IAAI,EAAE,SAAS;IACfC,MAAM,EAAE;EACV,CAAC;EACDC,OAAO,EAAE;IACPH,GAAG,EAAE,2DAA2D;IAChEC,IAAI,EAAE,SAAS;IACfC,MAAM,EAAE;EACV,CAAC;EACDE,SAAS,EAAE;IACTJ,GAAG,EAAE,gGAAgG;IACrGC,IAAI,EAAE,SAAS;IACfC,MAAM,EAAE;EACV,CAAC;EACDG,gBAAgB,EAAE;IAChBL,GAAG,EAAE,gJAAgJ;IACrJC,IAAI,EAAE,QAAQ;IACdC,MAAM,EAAE;EACV,CAAC;EACDI,YAAY,EAAE;IACZN,GAAG,EAAE,8EAA8E;IACnFC,IAAI,EAAE,SAAS;IACfC,MAAM,EAAE;EACV,CAAC;EACDK,QAAQ,EAAE;IACRP,GAAG,EAAE,wEAAwE;IAC7EC,IAAI,EAAE,QAAQ;IACdC,MAAM,EAAE;EACV,CAAC;EACDM,KAAK,EAAE;IACLR,GAAG,EAAE,mEAAmE;IACxEC,IAAI,EAAE,QAAQ;IACdC,MAAM,EAAE;EACV,CAAC;EACDO,OAAO,EAAE;IACPT,GAAG,EAAE,wEAAwE;IAC7EC,IAAI,EAAE,QAAQ;IACdC,MAAM,EAAE;EACV,CAAC;EACDQ,QAAQ,EAAE;IACRV,GAAG,EAAE,gCAAgC;IACrCC,IAAI,EAAE,iBAAiB;IACvBC,MAAM,EAAE;EACV,CAAC;EACD,yCAAyC,EAAE;IACzCF,GAAG,EAAE,0DAA0D;IAC/DC,IAAI,EAAE,CAAC,QAAQ,EAAE,QAAQ,CAAC;IAC1BC,MAAM,EAAE;EACV;AACF,CAAC;AAED,OAAO,MAAMS,qBAA2C,GAAG;EACzDC,MAAM,EAAE;IACNZ,GAAG,EAAE,0FAA0F;IAC/FC,IAAI,EAAE,UAAU;IAChBC,MAAM,EAAE;EACV,CAAC;EACDW,gBAAgB,EAAE;IAChBb,GAAG,EAAE,uCAAuC;IAC5CC,IAAI,EAAE,UAAU;IAChBC,MAAM,EAAE;EACV,CAAC;EACDY,cAAc,EAAE;IACdd,GAAG,EAAE,kEAAkE;IACvEC,IAAI,EAAE,UAAU;IAChBC,MAAM,EAAE;EACV,CAAC;EACDa,MAAM,EAAE;IACNf,GAAG,EAAE,uHAAuH;IAC5HC,IAAI,EAAE,UAAU;IAChBC,MAAM,EAAE;EACV;AACF,CAAC"}
@@ -6,8 +6,9 @@
6
6
  * Utilities
7
7
  */
8
8
  .dnb-height-animation {
9
- --height-animation: height var(--duration, 400ms) var(--easing-default)
10
- var(--delay, 0ms);
9
+ --height-animation-duration: var(--duration, 400ms);
10
+ --height-animation: height var(--height-animation-duration)
11
+ var(--easing-default) var(--delay, 0ms);
11
12
  will-change: height;
12
13
  transition: var(--height-animation);
13
14
  }
@@ -1 +1 @@
1
- .dnb-height-animation{--height-animation:height var(--duration,400ms) var(--easing-default) var(--delay,0ms);transition:var(--height-animation);will-change:height}html[data-visual-test] .dnb-height-animation,html[data-visual-test] .dnb-height-animation *{transition:none!important}.dnb-height-animation--animating{overflow-y:hidden}@supports (overflow-y:clip){.dnb-height-animation--animating{overflow-y:clip}}.dnb-height-animation--hidden{display:none}.dnb-height-animation--show-overflow{overflow:visible}
1
+ .dnb-height-animation{--height-animation-duration:var(--duration,400ms);--height-animation:height var(--height-animation-duration) var(--easing-default) var(--delay,0ms);transition:var(--height-animation);will-change:height}html[data-visual-test] .dnb-height-animation,html[data-visual-test] .dnb-height-animation *{transition:none!important}.dnb-height-animation--animating{overflow-y:hidden}@supports (overflow-y:clip){.dnb-height-animation--animating{overflow-y:clip}}.dnb-height-animation--hidden{display:none}.dnb-height-animation--show-overflow{overflow:visible}
@@ -6,8 +6,9 @@
6
6
  @import '../../../style/core/utilities.scss';
7
7
 
8
8
  .dnb-height-animation {
9
- --height-animation: height var(--duration, 400ms) var(--easing-default)
10
- var(--delay, 0ms);
9
+ --height-animation-duration: var(--duration, 400ms);
10
+ --height-animation: height var(--height-animation-duration)
11
+ var(--easing-default) var(--delay, 0ms);
11
12
 
12
13
  will-change: height;
13
14
  transition: var(--height-animation);
@@ -11,6 +11,11 @@ export type useHeightAnimationOptions = {
11
11
  * Default: true
12
12
  */
13
13
  animate?: boolean;
14
+ /**
15
+ * To compensate for CSS gap between the rows, so animation does not jump during the animation.
16
+ * Provide a CSS unit or `var(--row-gap)`.
17
+ */
18
+ compensateForGap?: string | 'auto';
14
19
  /**
15
20
  * In order to let the Hook know when children has changed
16
21
  */
@@ -34,7 +39,7 @@ export type useHeightAnimationOptions = {
34
39
  };
35
40
  export type HeightAnimationOnStartTypes = 'opening' | 'closing' | 'adjusting';
36
41
  export type HeightAnimationOnEndTypes = 'opened' | 'closed' | 'adjusted';
37
- export declare function useHeightAnimation(targetRef: React.RefObject<HTMLElement>, { open, animate, children, onInit, onOpen, onAnimationStart, onAnimationEnd, }?: useHeightAnimationOptions): {
42
+ export declare function useHeightAnimation(targetRef: React.RefObject<HTMLElement>, { open, animate, children, compensateForGap, onInit, onOpen, onAnimationStart, onAnimationEnd, }?: useHeightAnimationOptions): {
38
43
  open: boolean;
39
44
  isOpen: boolean;
40
45
  isInDOM: boolean;
@@ -1,6 +1,6 @@
1
1
  "use client";
2
2
 
3
- import React, { useMemo, useRef, useState } from 'react';
3
+ import React, { useCallback, useMemo, useRef, useState } from 'react';
4
4
  import HeightAnimationInstance from './HeightAnimationInstance';
5
5
  const useLayoutEffect = typeof window === 'undefined' ? React.useEffect : React.useLayoutEffect;
6
6
  export function useHeightAnimation(targetRef) {
@@ -9,6 +9,7 @@ export function useHeightAnimation(targetRef) {
9
9
  open = true,
10
10
  animate = true,
11
11
  children = null,
12
+ compensateForGap,
12
13
  onInit = null,
13
14
  onOpen = null,
14
15
  onAnimationStart = null,
@@ -20,9 +21,20 @@ export function useHeightAnimation(targetRef) {
20
21
  const [isVisible, setIsVisible] = useState(false);
21
22
  const [isAnimating, setIsAnimating] = useState(false);
22
23
  const [isVisibleParallax, setParallax] = useState(open);
24
+ const eventsRef = useRef({
25
+ onInit,
26
+ onAnimationEnd,
27
+ onAnimationStart,
28
+ onOpen
29
+ });
30
+ eventsRef.current.onInit = onInit;
31
+ eventsRef.current.onAnimationEnd = onAnimationEnd;
32
+ eventsRef.current.onAnimationStart = onAnimationStart;
33
+ eventsRef.current.onOpen = onOpen;
23
34
  useLayoutEffect(() => {
35
+ var _eventsRef$current$on, _eventsRef$current;
24
36
  instRef.current = new HeightAnimationInstance();
25
- onInit === null || onInit === void 0 ? void 0 : onInit(instRef.current);
37
+ (_eventsRef$current$on = (_eventsRef$current = eventsRef.current).onInit) === null || _eventsRef$current$on === void 0 ? void 0 : _eventsRef$current$on.call(_eventsRef$current, instRef.current);
26
38
  return () => {
27
39
  var _instRef$current;
28
40
  (_instRef$current = instRef.current) === null || _instRef$current === void 0 ? void 0 : _instRef$current.remove();
@@ -39,10 +51,25 @@ export function useHeightAnimation(targetRef) {
39
51
  });
40
52
  }
41
53
  }, [animate]);
54
+ const handleCompensateForGap = useCallback(() => {
55
+ if (compensateForGap) {
56
+ let gap = compensateForGap;
57
+ const {
58
+ elem
59
+ } = instRef.current;
60
+ if (compensateForGap === 'auto') {
61
+ gap = window.getComputedStyle(elem.parentElement).getPropertyValue('row-gap');
62
+ }
63
+ elem.style.marginTop = `calc(${gap} * -1)`;
64
+ const inner = elem.querySelector('.compensateForGap');
65
+ inner.style.marginTop = gap;
66
+ }
67
+ }, [compensateForGap]);
42
68
  useLayoutEffect(() => {
43
69
  instRef.current.onStart(state => {
44
70
  switch (state) {
45
71
  case 'opening':
72
+ handleCompensateForGap();
46
73
  setIsVisible(true);
47
74
  setParallax(true);
48
75
  setIsAnimating(true);
@@ -56,33 +83,36 @@ export function useHeightAnimation(targetRef) {
56
83
  break;
57
84
  }
58
85
  if (!isInitialRenderRef.current) {
59
- onAnimationStart === null || onAnimationStart === void 0 ? void 0 : onAnimationStart(state);
86
+ var _eventsRef$current$on2, _eventsRef$current2;
87
+ (_eventsRef$current$on2 = (_eventsRef$current2 = eventsRef.current).onAnimationStart) === null || _eventsRef$current$on2 === void 0 ? void 0 : _eventsRef$current$on2.call(_eventsRef$current2, state);
60
88
  }
61
89
  });
62
90
  instRef.current.onEnd(state => {
91
+ var _eventsRef$current$on3, _eventsRef$current3, _eventsRef$current$on4, _eventsRef$current4;
63
92
  switch (state) {
64
93
  case 'opened':
65
94
  setIsVisible(true);
66
95
  setIsOpen(true);
67
96
  setIsAnimating(false);
68
- onOpen === null || onOpen === void 0 ? void 0 : onOpen(true);
97
+ (_eventsRef$current$on3 = (_eventsRef$current3 = eventsRef.current).onOpen) === null || _eventsRef$current$on3 === void 0 ? void 0 : _eventsRef$current$on3.call(_eventsRef$current3, true);
69
98
  break;
70
99
  case 'closed':
71
100
  setIsVisible(false);
72
101
  setIsOpen(false);
73
102
  setParallax(false);
74
103
  setIsAnimating(false);
75
- onOpen === null || onOpen === void 0 ? void 0 : onOpen(false);
104
+ (_eventsRef$current$on4 = (_eventsRef$current4 = eventsRef.current).onOpen) === null || _eventsRef$current$on4 === void 0 ? void 0 : _eventsRef$current$on4.call(_eventsRef$current4, false);
76
105
  break;
77
106
  case 'adjusted':
78
107
  setIsAnimating(false);
79
108
  break;
80
109
  }
81
110
  if (!isInitialRenderRef.current) {
82
- onAnimationEnd === null || onAnimationEnd === void 0 ? void 0 : onAnimationEnd(state);
111
+ var _eventsRef$current$on5, _eventsRef$current5;
112
+ (_eventsRef$current$on5 = (_eventsRef$current5 = eventsRef.current).onAnimationEnd) === null || _eventsRef$current$on5 === void 0 ? void 0 : _eventsRef$current$on5.call(_eventsRef$current5, state);
83
113
  }
84
114
  });
85
- }, []);
115
+ }, [compensateForGap, handleCompensateForGap]);
86
116
  useOpenClose({
87
117
  open,
88
118
  instRef,
@@ -1 +1 @@
1
- {"version":3,"file":"useHeightAnimation.js","names":["React","useMemo","useRef","useState","HeightAnimationInstance","useLayoutEffect","window","useEffect","useHeightAnimation","targetRef","_instRef$current2","open","animate","children","onInit","onOpen","onAnimationStart","onAnimationEnd","arguments","length","undefined","instRef","isInitialRenderRef","globalThis","readjustTime","isOpen","setIsOpen","isVisible","setIsVisible","isAnimating","setIsAnimating","isVisibleParallax","setParallax","current","_instRef$current","remove","setOptions","global","IS_TEST","onStart","state","onEnd","useOpenClose","useAdjust","firstPaintStyle","isInDOM","_ref","isTest","process","env","NODE_ENV","setElement","setAsOpen","setAsClosed","close","_targetRef$current","event","CustomEvent","dispatchEvent","run","bypassTime","_window$requestAnimat","_window","requestAnimationFrame","call","_ref2","fromHeight","timer","Date","now","shouldAdjust","_instRef$current3","_instRef$current4","getHeight","elem","style","height","toHeight","adjustTo"],"sources":["../../../../src/components/height-animation/useHeightAnimation.tsx"],"sourcesContent":["import React, { useMemo, useRef, useState } from 'react'\nimport HeightAnimationInstance from './HeightAnimationInstance'\n\n// SSR warning fix: https://gist.github.com/gaearon/e7d97cdf38a2907924ea12e4ebdf3c85\nconst useLayoutEffect =\n typeof window === 'undefined' ? React.useEffect : React.useLayoutEffect\n\nexport type useHeightAnimationOptions = {\n /**\n * Set to `true`, when initially `false` was given, to animate from 0px to auto.\n * Default: true\n */\n open?: boolean\n\n /**\n * Set to `false` to omit the animation.\n * Default: true\n */\n animate?: boolean\n\n /**\n * In order to let the Hook know when children has changed\n */\n children?: React.ReactNode | HTMLElement\n\n /**\n * Is called once before mounting the component (useLayoutEffect)\n */\n onInit?: (instance: HeightAnimationInstance) => void\n\n /**\n * Is called when fully opened or closed\n */\n onOpen?: (isOpen: boolean) => void\n\n /**\n * Is called when animation has started.\n */\n onAnimationStart?: (state: HeightAnimationOnStartTypes) => void\n\n /**\n * Is called when animation is done and the full height is reached.\n */\n onAnimationEnd?: (state: HeightAnimationOnEndTypes) => void\n}\n\nexport type HeightAnimationOnStartTypes =\n | 'opening'\n | 'closing'\n | 'adjusting'\n\nexport type HeightAnimationOnEndTypes = 'opened' | 'closed' | 'adjusted'\n\nexport function useHeightAnimation(\n targetRef: React.RefObject<HTMLElement>,\n {\n open = true,\n animate = true,\n children = null,\n onInit = null,\n onOpen = null,\n onAnimationStart = null,\n onAnimationEnd = null,\n }: useHeightAnimationOptions = {}\n) {\n const instRef = useRef<HeightAnimationInstance>(null)\n const isInitialRenderRef = useRef(\n typeof globalThis !== 'undefined'\n ? globalThis.readjustTime !== -1\n : true\n )\n\n const [isOpen, setIsOpen] = useState(open)\n const [isVisible, setIsVisible] = useState(false)\n const [isAnimating, setIsAnimating] = useState(false)\n const [isVisibleParallax, setParallax] = useState(open)\n\n useLayoutEffect(() => {\n instRef.current = new HeightAnimationInstance()\n onInit?.(instRef.current)\n return () => {\n instRef.current?.remove()\n instRef.current = null\n }\n }, []) // eslint-disable-line react-hooks/exhaustive-deps\n\n useLayoutEffect(() => {\n instRef.current.setOptions({ animate })\n\n if (typeof global !== 'undefined' && globalThis.IS_TEST) {\n instRef.current.setOptions({ animate: false })\n }\n }, [animate])\n\n useLayoutEffect(() => {\n instRef.current.onStart((state: HeightAnimationOnStartTypes) => {\n switch (state) {\n case 'opening':\n setIsVisible(true)\n setParallax(true)\n setIsAnimating(true)\n break\n\n case 'closing':\n setParallax(false)\n setIsAnimating(true)\n break\n\n case 'adjusting':\n setIsAnimating(true)\n break\n }\n\n if (!isInitialRenderRef.current) {\n onAnimationStart?.(state)\n }\n })\n\n instRef.current.onEnd((state: HeightAnimationOnEndTypes) => {\n switch (state) {\n case 'opened':\n setIsVisible(true)\n setIsOpen(true)\n setIsAnimating(false)\n onOpen?.(true)\n break\n\n case 'closed':\n setIsVisible(false)\n setIsOpen(false)\n setParallax(false)\n setIsAnimating(false)\n onOpen?.(false)\n break\n\n case 'adjusted':\n setIsAnimating(false)\n break\n }\n\n if (!isInitialRenderRef.current) {\n onAnimationEnd?.(state)\n }\n })\n }, []) // eslint-disable-line react-hooks/exhaustive-deps\n\n useOpenClose({ open, instRef, isInitialRenderRef, targetRef })\n useAdjust({ children, instRef, isInitialRenderRef, targetRef })\n\n /**\n * Returns the first paint style, to be used for the initial render,\n * to avoid flickering.\n */\n const firstPaintStyle:\n | typeof instRef.current.firstPaintStyle\n | Record<string, never> =\n (open &&\n !isVisible &&\n !isAnimating &&\n instRef.current?.firstPaintStyle) ||\n {}\n const isInDOM = open || isVisible\n\n return {\n open,\n isOpen,\n isInDOM,\n isVisible,\n isVisibleParallax,\n isAnimating,\n firstPaintStyle,\n }\n}\n\nfunction useOpenClose({ open, instRef, isInitialRenderRef, targetRef }) {\n const isTest =\n typeof process !== 'undefined' &&\n process.env.NODE_ENV === 'test' &&\n typeof globalThis.IS_TEST === 'undefined'\n\n useLayoutEffect(() => {\n instRef.current.setElement(targetRef.current)\n\n if (\n !targetRef.current ||\n (instRef.current.state === 'init' && isInitialRenderRef.current)\n ) {\n if (open) {\n instRef.current.setAsOpen()\n } else {\n instRef.current.setAsClosed()\n }\n } else {\n if (open) {\n instRef.current.open()\n } else {\n instRef.current.close()\n }\n }\n\n // For testing purposes, we need to trigger the transitionend event\n if (isTest) {\n const event = new CustomEvent('transitionend')\n targetRef.current?.dispatchEvent(event)\n }\n }, [open, targetRef, instRef, isInitialRenderRef, isTest])\n\n useLayoutEffect(() => {\n const run = () => {\n isInitialRenderRef.current = false\n }\n if (globalThis.bypassTime === -1 || isTest) {\n run()\n } else {\n window.requestAnimationFrame?.(run)\n }\n }, [isInitialRenderRef, isTest])\n}\n\nfunction useAdjust({ children, instRef, isInitialRenderRef, targetRef }) {\n const fromHeight = useRef(0)\n\n const [timer] = useState(() => Date.now())\n\n /**\n * Wait for some criteria and a certain time, before we adjust the height,\n * so it will not run when a open/close animation is running.\n */\n const shouldAdjust = () => {\n switch (instRef.current?.state) {\n case 'opened':\n case 'adjusted':\n case 'adjusting':\n return (\n !isInitialRenderRef.current &&\n Date.now() - timer > (globalThis.readjustTime || 100)\n )\n }\n\n return false\n }\n\n useMemo(() => {\n if (shouldAdjust()) {\n fromHeight.current = instRef.current?.getHeight()\n }\n }, [children]) // eslint-disable-line react-hooks/exhaustive-deps\n\n useLayoutEffect(() => {\n if (shouldAdjust()) {\n /**\n * In certain cases, the targetRef.current is outdated, so we need to set it again.\n * E.g. in Tabs.js, when we switch tabs, the targetRef.current is not updated.\n */\n instRef.current.setElement(targetRef.current)\n\n /**\n * Ensure we don't have height, while we get the \"toHeight\" again.\n * We may move this inside of the HeightAnimationInstance class later,\n * but the \"GlobalStatus\" is currently relying on \"getUnknownHeight\" inside of adjustTo.\n */\n instRef.current.elem.style.height = ''\n\n /**\n * Use getHeight instead of getUnknownHeight because of the additional,\n * disturbing DOM manipulation.\n */\n const toHeight = instRef.current.getHeight()\n\n instRef.current.adjustTo(fromHeight.current, toHeight)\n }\n }, [children]) // eslint-disable-line react-hooks/exhaustive-deps\n}\n"],"mappings":"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"}
1
+ {"version":3,"file":"useHeightAnimation.js","names":["React","useCallback","useMemo","useRef","useState","HeightAnimationInstance","useLayoutEffect","window","useEffect","useHeightAnimation","targetRef","_instRef$current2","open","animate","children","compensateForGap","onInit","onOpen","onAnimationStart","onAnimationEnd","arguments","length","undefined","instRef","isInitialRenderRef","globalThis","readjustTime","isOpen","setIsOpen","isVisible","setIsVisible","isAnimating","setIsAnimating","isVisibleParallax","setParallax","eventsRef","current","_eventsRef$current$on","_eventsRef$current","call","_instRef$current","remove","setOptions","global","IS_TEST","handleCompensateForGap","gap","elem","getComputedStyle","parentElement","getPropertyValue","style","marginTop","inner","querySelector","onStart","state","_eventsRef$current$on2","_eventsRef$current2","onEnd","_eventsRef$current$on3","_eventsRef$current3","_eventsRef$current$on4","_eventsRef$current4","_eventsRef$current$on5","_eventsRef$current5","useOpenClose","useAdjust","firstPaintStyle","isInDOM","_ref","isTest","process","env","NODE_ENV","setElement","setAsOpen","setAsClosed","close","_targetRef$current","event","CustomEvent","dispatchEvent","run","bypassTime","_window$requestAnimat","_window","requestAnimationFrame","_ref2","fromHeight","timer","Date","now","shouldAdjust","_instRef$current3","_instRef$current4","getHeight","height","toHeight","adjustTo"],"sources":["../../../../src/components/height-animation/useHeightAnimation.tsx"],"sourcesContent":["import React, { useCallback, useMemo, useRef, useState } from 'react'\nimport HeightAnimationInstance from './HeightAnimationInstance'\n\n// SSR warning fix: https://gist.github.com/gaearon/e7d97cdf38a2907924ea12e4ebdf3c85\nconst useLayoutEffect =\n typeof window === 'undefined' ? React.useEffect : React.useLayoutEffect\n\nexport type useHeightAnimationOptions = {\n /**\n * Set to `true`, when initially `false` was given, to animate from 0px to auto.\n * Default: true\n */\n open?: boolean\n\n /**\n * Set to `false` to omit the animation.\n * Default: true\n */\n animate?: boolean\n\n /**\n * To compensate for CSS gap between the rows, so animation does not jump during the animation.\n * Provide a CSS unit or `var(--row-gap)`.\n */\n compensateForGap?: string | 'auto'\n\n /**\n * In order to let the Hook know when children has changed\n */\n children?: React.ReactNode | HTMLElement\n\n /**\n * Is called once before mounting the component (useLayoutEffect)\n */\n onInit?: (instance: HeightAnimationInstance) => void\n\n /**\n * Is called when fully opened or closed\n */\n onOpen?: (isOpen: boolean) => void\n\n /**\n * Is called when animation has started.\n */\n onAnimationStart?: (state: HeightAnimationOnStartTypes) => void\n\n /**\n * Is called when animation is done and the full height is reached.\n */\n onAnimationEnd?: (state: HeightAnimationOnEndTypes) => void\n}\n\nexport type HeightAnimationOnStartTypes =\n | 'opening'\n | 'closing'\n | 'adjusting'\n\nexport type HeightAnimationOnEndTypes = 'opened' | 'closed' | 'adjusted'\n\nexport function useHeightAnimation(\n targetRef: React.RefObject<HTMLElement>,\n {\n open = true,\n animate = true,\n children = null,\n compensateForGap,\n onInit = null,\n onOpen = null,\n onAnimationStart = null,\n onAnimationEnd = null,\n }: useHeightAnimationOptions = {}\n) {\n const instRef = useRef<HeightAnimationInstance>(null)\n const isInitialRenderRef = useRef(\n typeof globalThis !== 'undefined'\n ? globalThis.readjustTime !== -1\n : true\n )\n\n const [isOpen, setIsOpen] = useState(open)\n const [isVisible, setIsVisible] = useState(false)\n const [isAnimating, setIsAnimating] = useState(false)\n const [isVisibleParallax, setParallax] = useState(open)\n\n const eventsRef = useRef({\n onInit,\n onAnimationEnd,\n onAnimationStart,\n onOpen,\n })\n eventsRef.current.onInit = onInit\n eventsRef.current.onAnimationEnd = onAnimationEnd\n eventsRef.current.onAnimationStart = onAnimationStart\n eventsRef.current.onOpen = onOpen\n\n useLayoutEffect(() => {\n instRef.current = new HeightAnimationInstance()\n eventsRef.current.onInit?.(instRef.current)\n return () => {\n instRef.current?.remove()\n instRef.current = null\n }\n }, [])\n\n useLayoutEffect(() => {\n instRef.current.setOptions({ animate })\n\n if (typeof global !== 'undefined' && globalThis.IS_TEST) {\n instRef.current.setOptions({ animate: false })\n }\n }, [animate])\n\n const handleCompensateForGap = useCallback(() => {\n if (compensateForGap) {\n let gap = compensateForGap\n const { elem } = instRef.current\n if (compensateForGap === 'auto') {\n gap = window\n .getComputedStyle(elem.parentElement)\n .getPropertyValue('row-gap')\n }\n elem.style.marginTop = `calc(${gap} * -1)`\n const inner = elem.querySelector('.compensateForGap') as HTMLElement\n inner.style.marginTop = gap\n }\n }, [compensateForGap])\n\n useLayoutEffect(() => {\n instRef.current.onStart((state: HeightAnimationOnStartTypes) => {\n switch (state) {\n case 'opening':\n handleCompensateForGap()\n setIsVisible(true)\n setParallax(true)\n setIsAnimating(true)\n break\n\n case 'closing':\n setParallax(false)\n setIsAnimating(true)\n break\n\n case 'adjusting':\n setIsAnimating(true)\n break\n }\n\n if (!isInitialRenderRef.current) {\n eventsRef.current.onAnimationStart?.(state)\n }\n })\n\n instRef.current.onEnd((state: HeightAnimationOnEndTypes) => {\n switch (state) {\n case 'opened':\n setIsVisible(true)\n setIsOpen(true)\n setIsAnimating(false)\n eventsRef.current.onOpen?.(true)\n break\n\n case 'closed':\n setIsVisible(false)\n setIsOpen(false)\n setParallax(false)\n setIsAnimating(false)\n eventsRef.current.onOpen?.(false)\n break\n\n case 'adjusted':\n setIsAnimating(false)\n break\n }\n\n if (!isInitialRenderRef.current) {\n eventsRef.current.onAnimationEnd?.(state)\n }\n })\n }, [compensateForGap, handleCompensateForGap])\n\n useOpenClose({ open, instRef, isInitialRenderRef, targetRef })\n useAdjust({ children, instRef, isInitialRenderRef, targetRef })\n\n /**\n * Returns the first paint style, to be used for the initial render,\n * to avoid flickering.\n */\n const firstPaintStyle:\n | typeof instRef.current.firstPaintStyle\n | Record<string, never> =\n (open &&\n !isVisible &&\n !isAnimating &&\n instRef.current?.firstPaintStyle) ||\n {}\n const isInDOM = open || isVisible\n\n return {\n open,\n isOpen,\n isInDOM,\n isVisible,\n isVisibleParallax,\n isAnimating,\n firstPaintStyle,\n }\n}\n\nfunction useOpenClose({ open, instRef, isInitialRenderRef, targetRef }) {\n const isTest =\n typeof process !== 'undefined' &&\n process.env.NODE_ENV === 'test' &&\n typeof globalThis.IS_TEST === 'undefined'\n\n useLayoutEffect(() => {\n instRef.current.setElement(targetRef.current)\n\n if (\n !targetRef.current ||\n (instRef.current.state === 'init' && isInitialRenderRef.current)\n ) {\n if (open) {\n instRef.current.setAsOpen()\n } else {\n instRef.current.setAsClosed()\n }\n } else {\n if (open) {\n instRef.current.open()\n } else {\n instRef.current.close()\n }\n }\n\n // For testing purposes, we need to trigger the transitionend event\n if (isTest) {\n const event = new CustomEvent('transitionend')\n targetRef.current?.dispatchEvent(event)\n }\n }, [open, targetRef, instRef, isInitialRenderRef, isTest])\n\n useLayoutEffect(() => {\n const run = () => {\n isInitialRenderRef.current = false\n }\n if (globalThis.bypassTime === -1 || isTest) {\n run()\n } else {\n window.requestAnimationFrame?.(run)\n }\n }, [isInitialRenderRef, isTest])\n}\n\nfunction useAdjust({ children, instRef, isInitialRenderRef, targetRef }) {\n const fromHeight = useRef(0)\n\n const [timer] = useState(() => Date.now())\n\n /**\n * Wait for some criteria and a certain time, before we adjust the height,\n * so it will not run when a open/close animation is running.\n */\n const shouldAdjust = () => {\n switch (instRef.current?.state) {\n case 'opened':\n case 'adjusted':\n case 'adjusting':\n return (\n !isInitialRenderRef.current &&\n Date.now() - timer > (globalThis.readjustTime || 100)\n )\n }\n\n return false\n }\n\n useMemo(() => {\n if (shouldAdjust()) {\n fromHeight.current = instRef.current?.getHeight()\n }\n }, [children]) // eslint-disable-line react-hooks/exhaustive-deps\n\n useLayoutEffect(() => {\n if (shouldAdjust()) {\n /**\n * In certain cases, the targetRef.current is outdated, so we need to set it again.\n * E.g. in Tabs.js, when we switch tabs, the targetRef.current is not updated.\n */\n instRef.current.setElement(targetRef.current)\n\n /**\n * Ensure we don't have height, while we get the \"toHeight\" again.\n * We may move this inside of the HeightAnimationInstance class later,\n * but the \"GlobalStatus\" is currently relying on \"getUnknownHeight\" inside of adjustTo.\n */\n instRef.current.elem.style.height = ''\n\n /**\n * Use getHeight instead of getUnknownHeight because of the additional,\n * disturbing DOM manipulation.\n */\n const toHeight = instRef.current.getHeight()\n\n instRef.current.adjustTo(fromHeight.current, toHeight)\n }\n }, [children]) // eslint-disable-line react-hooks/exhaustive-deps\n}\n"],"mappings":"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"}
@@ -111,9 +111,11 @@ export default class RadioGroup extends React.PureComponent {
111
111
  value: context
112
112
  }, React.createElement("div", {
113
113
  className: classes
114
- }, _AlignmentHelper || (_AlignmentHelper = React.createElement(AlignmentHelper, null)), React.createElement(Fieldset, null, React.createElement(Flex.Container, {
114
+ }, _AlignmentHelper || (_AlignmentHelper = React.createElement(AlignmentHelper, null)), React.createElement(Fieldset, {
115
+ className: "dnb-toggle-button-group__fieldset"
116
+ }, React.createElement(Flex.Container, {
115
117
  direction: vertical || label_direction === 'vertical' ? 'vertical' : 'horizontal',
116
- spacing: vertical ? 'x-small' : 'small'
118
+ gap: vertical ? 'x-small' : 'small'
117
119
  }, label && React.createElement(FormLabel, {
118
120
  element: "legend",
119
121
  id: id + '-label',
@@ -1 +1 @@
1
- {"version":3,"file":"RadioGroup.js","names":["React","PropTypes","classnames","extendPropsWithContextInClassComponent","makeUniqueId","validateDOMAttributes","getStatusState","combineDescribedBy","combineLabelledBy","dispatchCustomElementEvent","pickFormElementProps","spacingPropTypes","createSpacingClasses","AlignmentHelper","Space","FormLabel","FormStatus","Flex","Context","Suffix","RadioGroupContext","RadioGroup","PureComponent","getDerivedStateFromProps","props","state","_listenForPropChanges","value","_value","constructor","_defineProperty","_ref","event","setState","_refInput","createRef","_id","id","_name","name","render","_this$context","_this$context2","defaultProps","context","FormRow","formElement","status","status_state","status_props","status_no_animation","globalStatus","suffix","label","label_direction","label_sr_only","label_position","vertical","layout_direction","size","disabled","skeleton","className","children","on_change","rest","_objectWithoutProperties","_excluded","showStatus","classes","params","_objectSpread","onChange","onChangeHandler","Fieldset","createElement","Provider","_AlignmentHelper","Container","direction","spacing","element","srOnly","_extends","role","show","text","text_id","width_selector","no_animation","title","undefined","attributes","test","String","process","env","NODE_ENV","propTypes","oneOfType","string","func","node","oneOf","bool","object","shape","message","_supportsSpacingProps"],"sources":["../../../../src/components/radio/RadioGroup.js"],"sourcesContent":["/**\n * Web RadioGroup Component\n *\n * This is a legacy component.\n * For referencing while developing new features, please use a Functional component.\n */\n\nimport React from 'react'\nimport PropTypes from 'prop-types'\nimport classnames from 'classnames'\nimport {\n extendPropsWithContextInClassComponent,\n makeUniqueId,\n validateDOMAttributes,\n getStatusState,\n combineDescribedBy,\n combineLabelledBy,\n dispatchCustomElementEvent,\n} from '../../shared/component-helper'\nimport { pickFormElementProps } from '../../shared/helpers/filterValidProps'\nimport {\n spacingPropTypes,\n createSpacingClasses,\n} from '../space/SpacingHelper'\nimport AlignmentHelper from '../../shared/AlignmentHelper'\nimport Space from '../Space'\nimport FormLabel from '../FormLabel'\nimport FormStatus from '../FormStatus'\nimport Flex from '../Flex'\nimport Context from '../../shared/Context'\nimport Suffix from '../../shared/helpers/Suffix'\nimport RadioGroupContext from './RadioGroupContext'\n\n/**\n * The radio component is our enhancement of the classic radio button. It acts like a radio. Example: On/off, yes/no.\n */\nexport default class RadioGroup 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_direction: PropTypes.oneOf(['horizontal', 'vertical']),\n label_sr_only: PropTypes.oneOfType([PropTypes.string, PropTypes.bool]),\n label_position: PropTypes.oneOf(['left', 'right']),\n title: PropTypes.string,\n disabled: PropTypes.oneOfType([PropTypes.string, PropTypes.bool]),\n skeleton: PropTypes.oneOfType([PropTypes.string, PropTypes.bool]),\n id: PropTypes.string,\n name: 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 layout_direction: PropTypes.oneOf(['column', 'row']),\n vertical: PropTypes.oneOfType([PropTypes.string, PropTypes.bool]),\n value: PropTypes.string,\n attributes: PropTypes.oneOfType([PropTypes.string, PropTypes.object]),\n\n ...spacingPropTypes,\n\n className: PropTypes.string,\n children: PropTypes.oneOfType([\n PropTypes.string,\n PropTypes.func,\n PropTypes.node,\n ]),\n\n on_change: PropTypes.func,\n }\n\n static defaultProps = {\n label: null,\n label_direction: null,\n label_sr_only: null,\n label_position: null,\n title: null,\n disabled: null,\n skeleton: null,\n id: null,\n name: 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 vertical: null,\n layout_direction: 'row',\n value: undefined,\n attributes: null,\n\n className: null,\n children: null,\n\n on_change: 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.value !== state._value) {\n state.value = props.value\n }\n if (typeof props.value !== 'undefined') {\n state._value = props.value\n }\n }\n state._listenForPropChanges = true\n\n return state\n }\n\n constructor(props) {\n super(props)\n this._refInput = React.createRef()\n this._id = props.id || makeUniqueId() // cause we need an id anyway\n this._name = props.name || this._id\n this.state = {\n _listenForPropChanges: true,\n }\n }\n\n onChangeHandler = ({ value, event }) => {\n this.setState({ value, _listenForPropChanges: false })\n dispatchCustomElementEvent(this, 'on_change', {\n value,\n event,\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 RadioGroup.defaultProps,\n // Deprecated – can be removed in v11\n pickFormElementProps(this.context?.FormRow),\n pickFormElementProps(this.context?.formElement),\n this.context.RadioGroup\n )\n\n const {\n status,\n status_state,\n status_props,\n status_no_animation,\n globalStatus,\n suffix,\n label,\n label_direction,\n label_sr_only,\n label_position,\n vertical,\n layout_direction,\n size,\n disabled,\n skeleton,\n className,\n\n id: _id, // eslint-disable-line\n name: _name, // eslint-disable-line\n value: _value, // eslint-disable-line\n children, // eslint-disable-line\n on_change, // eslint-disable-line\n\n ...rest\n } = props\n\n const { value } = this.state\n\n const id = this._id\n const showStatus = getStatusState(status)\n\n const classes = classnames(\n 'dnb-radio-group',\n status && `dnb-radio-group__status--${status_state}`,\n `dnb-radio-group--${layout_direction}`,\n 'dnb-form-component',\n createSpacingClasses(props),\n className\n )\n\n const params = {\n ...rest,\n }\n\n if (showStatus || suffix) {\n params['aria-describedby'] = combineDescribedBy(\n params,\n showStatus ? id + '-status' : null,\n suffix ? id + '-suffix' : null\n )\n }\n if (label) {\n params['aria-labelledby'] = combineLabelledBy(params, id + '-label')\n }\n\n // also used for code markup simulation\n validateDOMAttributes(this.props, params)\n\n const context = {\n name: this._name,\n value,\n size,\n disabled,\n label_position,\n onChange: this.onChangeHandler,\n }\n\n const Fieldset = label ? 'fieldset' : 'div'\n\n return (\n <RadioGroupContext.Provider value={context}>\n <div className={classes}>\n <AlignmentHelper />\n <Fieldset>\n <Flex.Container\n // align=\"baseline\"\n direction={\n vertical || label_direction === 'vertical'\n ? 'vertical'\n : 'horizontal'\n }\n spacing={vertical ? 'x-small' : 'small'}\n >\n {label && (\n <FormLabel\n element=\"legend\"\n id={id + '-label'}\n srOnly={label_sr_only}\n >\n {label}\n </FormLabel>\n )}\n\n <Space\n element=\"span\"\n id={id}\n className=\"dnb-radio-group__shell\"\n role=\"radiogroup\"\n {...params}\n >\n {children}\n\n {suffix && (\n <Suffix\n className=\"dnb-radio-group__suffix\"\n id={id + '-suffix'} // used for \"aria-describedby\"\n context={props}\n >\n {suffix}\n </Suffix>\n )}\n\n <FormStatus\n show={showStatus}\n id={id + '-form-status'}\n globalStatus={globalStatus}\n label={label}\n text={status}\n state={status_state}\n text_id={id + '-status'} // used for \"aria-describedby\"\n width_selector={id + ', ' + id + '-label'}\n no_animation={status_no_animation}\n skeleton={skeleton}\n {...status_props}\n />\n </Space>\n </Flex.Container>\n </Fieldset>\n </div>\n </RadioGroupContext.Provider>\n )\n }\n}\n\nRadioGroup._supportsSpacingProps = true\n"],"mappings":";;;;;;;;;AAOA,OAAOA,KAAK,MAAM,OAAO;AACzB,OAAOC,SAAS,MAAM,YAAY;AAClC,OAAOC,UAAU,MAAM,YAAY;AACnC,SACEC,sCAAsC,EACtCC,YAAY,EACZC,qBAAqB,EACrBC,cAAc,EACdC,kBAAkB,EAClBC,iBAAiB,EACjBC,0BAA0B,QACrB,+BAA+B;AACtC,SAASC,oBAAoB,QAAQ,uCAAuC;AAC5E,SACEC,gBAAgB,EAChBC,oBAAoB,QACf,wBAAwB;AAC/B,OAAOC,eAAe,MAAM,8BAA8B;AAC1D,OAAOC,KAAK,MAAM,UAAU;AAC5B,OAAOC,SAAS,MAAM,cAAc;AACpC,OAAOC,UAAU,MAAM,eAAe;AACtC,OAAOC,IAAI,MAAM,SAAS;AAC1B,OAAOC,OAAO,MAAM,sBAAsB;AAC1C,OAAOC,MAAM,MAAM,6BAA6B;AAChD,OAAOC,iBAAiB,MAAM,qBAAqB;AAKnD,eAAe,MAAMC,UAAU,SAASrB,KAAK,CAACsB,aAAa,CAAC;EAsF1D,OAAOC,wBAAwBA,CAACC,KAAK,EAAEC,KAAK,EAAE;IAC5C,IAAIA,KAAK,CAACC,qBAAqB,EAAE;MAC/B,IAAIF,KAAK,CAACG,KAAK,KAAKF,KAAK,CAACG,MAAM,EAAE;QAChCH,KAAK,CAACE,KAAK,GAAGH,KAAK,CAACG,KAAK;MAC3B;MACA,IAAI,OAAOH,KAAK,CAACG,KAAK,KAAK,WAAW,EAAE;QACtCF,KAAK,CAACG,MAAM,GAAGJ,KAAK,CAACG,KAAK;MAC5B;IACF;IACAF,KAAK,CAACC,qBAAqB,GAAG,IAAI;IAElC,OAAOD,KAAK;EACd;EAEAI,WAAWA,CAACL,KAAK,EAAE;IACjB,KAAK,CAACA,KAAK,CAAC;IAAAM,eAAA,0BASIC,IAAA,IAAsB;MAAA,IAArB;QAAEJ,KAAK;QAAEK;MAAM,CAAC,GAAAD,IAAA;MACjC,IAAI,CAACE,QAAQ,CAAC;QAAEN,KAAK;QAAED,qBAAqB,EAAE;MAAM,CAAC,CAAC;MACtDjB,0BAA0B,CAAC,IAAI,EAAE,WAAW,EAAE;QAC5CkB,KAAK;QACLK;MACF,CAAC,CAAC;IACJ,CAAC;IAdC,IAAI,CAACE,SAAS,GAAGlC,KAAK,CAACmC,SAAS,CAAC,CAAC;IAClC,IAAI,CAACC,GAAG,GAAGZ,KAAK,CAACa,EAAE,IAAIjC,YAAY,CAAC,CAAC;IACrC,IAAI,CAACkC,KAAK,GAAGd,KAAK,CAACe,IAAI,IAAI,IAAI,CAACH,GAAG;IACnC,IAAI,CAACX,KAAK,GAAG;MACXC,qBAAqB,EAAE;IACzB,CAAC;EACH;EAUAc,MAAMA,CAAA,EAAG;IAAA,IAAAC,aAAA,EAAAC,cAAA;IAEP,MAAMlB,KAAK,GAAGrB,sCAAsC,CAClD,IAAI,CAACqB,KAAK,EACVH,UAAU,CAACsB,YAAY,EAEvBjC,oBAAoB,EAAA+B,aAAA,GAAC,IAAI,CAACG,OAAO,cAAAH,aAAA,uBAAZA,aAAA,CAAcI,OAAO,CAAC,EAC3CnC,oBAAoB,EAAAgC,cAAA,GAAC,IAAI,CAACE,OAAO,cAAAF,cAAA,uBAAZA,cAAA,CAAcI,WAAW,CAAC,EAC/C,IAAI,CAACF,OAAO,CAACvB,UACf,CAAC;IAED,MAAM;QACJ0B,MAAM;QACNC,YAAY;QACZC,YAAY;QACZC,mBAAmB;QACnBC,YAAY;QACZC,MAAM;QACNC,KAAK;QACLC,eAAe;QACfC,aAAa;QACbC,cAAc;QACdC,QAAQ;QACRC,gBAAgB;QAChBC,IAAI;QACJC,QAAQ;QACRC,QAAQ;QACRC,SAAS;QAETzB,EAAE,EAAED,GAAG;QACPG,IAAI,EAAED,KAAK;QACXX,KAAK,EAAEC,MAAM;QACbmC,QAAQ;QACRC;MAGF,CAAC,GAAGxC,KAAK;MADJyC,IAAI,GAAAC,wBAAA,CACL1C,KAAK,EAAA2C,SAAA;IAET,MAAM;MAAExC;IAAM,CAAC,GAAG,IAAI,CAACF,KAAK;IAE5B,MAAMY,EAAE,GAAG,IAAI,CAACD,GAAG;IACnB,MAAMgC,UAAU,GAAG9D,cAAc,CAACyC,MAAM,CAAC;IAEzC,MAAMsB,OAAO,GAAGnE,UAAU,qCAGJwD,gBAAgB,uBAEpC9C,oBAAoB,CAACY,KAAK,CAAC,EAC3BsC,SAAS,EAJTf,MAAM,IAAK,4BAA2BC,YAAa,EAKrD,CAAC;IAED,MAAMsB,MAAM,GAAAC,aAAA,KACPN,IAAI,CACR;IAED,IAAIG,UAAU,IAAIhB,MAAM,EAAE;MACxBkB,MAAM,CAAC,kBAAkB,CAAC,GAAG/D,kBAAkB,CAC7C+D,MAAM,EACNF,UAAU,GAAG/B,EAAE,GAAG,SAAS,GAAG,IAAI,EAClCe,MAAM,GAAGf,EAAE,GAAG,SAAS,GAAG,IAC5B,CAAC;IACH;IACA,IAAIgB,KAAK,EAAE;MACTiB,MAAM,CAAC,iBAAiB,CAAC,GAAG9D,iBAAiB,CAAC8D,MAAM,EAAEjC,EAAE,GAAG,QAAQ,CAAC;IACtE;IAGAhC,qBAAqB,CAAC,IAAI,CAACmB,KAAK,EAAE8C,MAAM,CAAC;IAEzC,MAAM1B,OAAO,GAAG;MACdL,IAAI,EAAE,IAAI,CAACD,KAAK;MAChBX,KAAK;MACLgC,IAAI;MACJC,QAAQ;MACRJ,cAAc;MACdgB,QAAQ,EAAE,IAAI,CAACC;IACjB,CAAC;IAED,MAAMC,QAAQ,GAAGrB,KAAK,GAAG,UAAU,GAAG,KAAK;IAE3C,OACErD,KAAA,CAAA2E,aAAA,CAACvD,iBAAiB,CAACwD,QAAQ;MAACjD,KAAK,EAAEiB;IAAQ,GACzC5C,KAAA,CAAA2E,aAAA;MAAKb,SAAS,EAAEO;IAAQ,GAAAQ,gBAAA,KAAAA,gBAAA,GACtB7E,KAAA,CAAA2E,aAAA,CAAC9D,eAAe,MAAE,CAAC,GACnBb,KAAA,CAAA2E,aAAA,CAACD,QAAQ,QACP1E,KAAA,CAAA2E,aAAA,CAAC1D,IAAI,CAAC6D,SAAS;MAEbC,SAAS,EACPtB,QAAQ,IAAIH,eAAe,KAAK,UAAU,GACtC,UAAU,GACV,YACL;MACD0B,OAAO,EAAEvB,QAAQ,GAAG,SAAS,GAAG;IAAQ,GAEvCJ,KAAK,IACJrD,KAAA,CAAA2E,aAAA,CAAC5D,SAAS;MACRkE,OAAO,EAAC,QAAQ;MAChB5C,EAAE,EAAEA,EAAE,GAAG,QAAS;MAClB6C,MAAM,EAAE3B;IAAc,GAErBF,KACQ,CACZ,EAEDrD,KAAA,CAAA2E,aAAA,CAAC7D,KAAK,EAAAqE,QAAA;MACJF,OAAO,EAAC,MAAM;MACd5C,EAAE,EAAEA,EAAG;MACPyB,SAAS,EAAC,wBAAwB;MAClCsB,IAAI,EAAC;IAAY,GACbd,MAAM,GAETP,QAAQ,EAERX,MAAM,IACLpD,KAAA,CAAA2E,aAAA,CAACxD,MAAM;MACL2C,SAAS,EAAC,yBAAyB;MACnCzB,EAAE,EAAEA,EAAE,GAAG,SAAU;MACnBO,OAAO,EAAEpB;IAAM,GAEd4B,MACK,CACT,EAEDpD,KAAA,CAAA2E,aAAA,CAAC3D,UAAU,EAAAmE,QAAA;MACTE,IAAI,EAAEjB,UAAW;MACjB/B,EAAE,EAAEA,EAAE,GAAG,cAAe;MACxBc,YAAY,EAAEA,YAAa;MAC3BE,KAAK,EAAEA,KAAM;MACbiC,IAAI,EAAEvC,MAAO;MACbtB,KAAK,EAAEuB,YAAa;MACpBuC,OAAO,EAAElD,EAAE,GAAG,SAAU;MACxBmD,cAAc,EAAEnD,EAAE,GAAG,IAAI,GAAGA,EAAE,GAAG,QAAS;MAC1CoD,YAAY,EAAEvC,mBAAoB;MAClCW,QAAQ,EAAEA;IAAS,GACfZ,YAAY,CACjB,CACI,CACO,CACR,CACP,CACqB,CAAC;EAEjC;AACF;AAACnB,eAAA,CAtQoBT,UAAU,iBACRH,OAAO;AAAAY,eAAA,CADTT,UAAU,kBAwDP;EACpBgC,KAAK,EAAE,IAAI;EACXC,eAAe,EAAE,IAAI;EACrBC,aAAa,EAAE,IAAI;EACnBC,cAAc,EAAE,IAAI;EACpBkC,KAAK,EAAE,IAAI;EACX9B,QAAQ,EAAE,IAAI;EACdC,QAAQ,EAAE,IAAI;EACdxB,EAAE,EAAE,IAAI;EACRE,IAAI,EAAE,IAAI;EACVoB,IAAI,EAAE,IAAI;EACVZ,MAAM,EAAE,IAAI;EACZC,YAAY,EAAE,OAAO;EACrBC,YAAY,EAAE,IAAI;EAClBC,mBAAmB,EAAE,IAAI;EACzBC,YAAY,EAAE,IAAI;EAClBC,MAAM,EAAE,IAAI;EACZK,QAAQ,EAAE,IAAI;EACdC,gBAAgB,EAAE,KAAK;EACvB/B,KAAK,EAAEgE,SAAS;EAChBC,UAAU,EAAE,IAAI;EAEhB9B,SAAS,EAAE,IAAI;EACfC,QAAQ,EAAE,IAAI;EAEdC,SAAS,EAAE;AACb,CAAC;AAAAlC,eAAA,CAlFkBT,UAAU,kBAoFNI,KAAK,IAAK,SAAS,CAACoE,IAAI,CAACC,MAAM,CAACrE,KAAK,CAAC,CAAC;AAAAsE,OAAA,CAAAC,GAAA,CAAAC,QAAA,oBApF3C5E,UAAU,CAGtB6E,SAAS,GAAA3B,aAAA,CAAAA,aAAA;EACdlB,KAAK,EAAEpD,SAAS,CAACkG,SAAS,CAAC,CACzBlG,SAAS,CAACmG,MAAM,EAChBnG,SAAS,CAACoG,IAAI,EACdpG,SAAS,CAACqG,IAAI,CACf,CAAC;EACFhD,eAAe,EAAErD,SAAS,CAACsG,KAAK,CAAC,CAAC,YAAY,EAAE,UAAU,CAAC,CAAC;EAC5DhD,aAAa,EAAEtD,SAAS,CAACkG,SAAS,CAAC,CAAClG,SAAS,CAACmG,MAAM,EAAEnG,SAAS,CAACuG,IAAI,CAAC,CAAC;EACtEhD,cAAc,EAAEvD,SAAS,CAACsG,KAAK,CAAC,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;EAClDb,KAAK,EAAEzF,SAAS,CAACmG,MAAM;EACvBxC,QAAQ,EAAE3D,SAAS,CAACkG,SAAS,CAAC,CAAClG,SAAS,CAACmG,MAAM,EAAEnG,SAAS,CAACuG,IAAI,CAAC,CAAC;EACjE3C,QAAQ,EAAE5D,SAAS,CAACkG,SAAS,CAAC,CAAClG,SAAS,CAACmG,MAAM,EAAEnG,SAAS,CAACuG,IAAI,CAAC,CAAC;EACjEnE,EAAE,EAAEpC,SAAS,CAACmG,MAAM;EACpB7D,IAAI,EAAEtC,SAAS,CAACmG,MAAM;EACtBzC,IAAI,EAAE1D,SAAS,CAACsG,KAAK,CAAC,CAAC,SAAS,EAAE,QAAQ,EAAE,OAAO,CAAC,CAAC;EACrDxD,MAAM,EAAE9C,SAAS,CAACkG,SAAS,CAAC,CAC1BlG,SAAS,CAACmG,MAAM,EAChBnG,SAAS,CAACuG,IAAI,EACdvG,SAAS,CAACoG,IAAI,EACdpG,SAAS,CAACqG,IAAI,CACf,CAAC;EACFtD,YAAY,EAAE/C,SAAS,CAACmG,MAAM;EAC9BnD,YAAY,EAAEhD,SAAS,CAACwG,MAAM;EAC9BvD,mBAAmB,EAAEjD,SAAS,CAACkG,SAAS,CAAC,CACvClG,SAAS,CAACmG,MAAM,EAChBnG,SAAS,CAACuG,IAAI,CACf,CAAC;EACFrD,YAAY,EAAElD,SAAS,CAACyG,KAAK,CAAC;IAC5BrE,EAAE,EAAEpC,SAAS,CAACmG,MAAM;IACpBO,OAAO,EAAE1G,SAAS,CAACkG,SAAS,CAAC,CAAClG,SAAS,CAACmG,MAAM,EAAEnG,SAAS,CAACqG,IAAI,CAAC;EACjE,CAAC,CAAC;EACFlD,MAAM,EAAEnD,SAAS,CAACkG,SAAS,CAAC,CAC1BlG,SAAS,CAACmG,MAAM,EAChBnG,SAAS,CAACoG,IAAI,EACdpG,SAAS,CAACqG,IAAI,CACf,CAAC;EACF5C,gBAAgB,EAAEzD,SAAS,CAACsG,KAAK,CAAC,CAAC,QAAQ,EAAE,KAAK,CAAC,CAAC;EACpD9C,QAAQ,EAAExD,SAAS,CAACkG,SAAS,CAAC,CAAClG,SAAS,CAACmG,MAAM,EAAEnG,SAAS,CAACuG,IAAI,CAAC,CAAC;EACjE7E,KAAK,EAAE1B,SAAS,CAACmG,MAAM;EACvBR,UAAU,EAAE3F,SAAS,CAACkG,SAAS,CAAC,CAAClG,SAAS,CAACmG,MAAM,EAAEnG,SAAS,CAACwG,MAAM,CAAC;AAAC,GAElE9F,gBAAgB;EAEnBmD,SAAS,EAAE7D,SAAS,CAACmG,MAAM;EAC3BrC,QAAQ,EAAE9D,SAAS,CAACkG,SAAS,CAAC,CAC5BlG,SAAS,CAACmG,MAAM,EAChBnG,SAAS,CAACoG,IAAI,EACdpG,SAAS,CAACqG,IAAI,CACf,CAAC;EAEFtC,SAAS,EAAE/D,SAAS,CAACoG;AAAI;AAmN7BhF,UAAU,CAACuF,qBAAqB,GAAG,IAAI"}
1
+ {"version":3,"file":"RadioGroup.js","names":["React","PropTypes","classnames","extendPropsWithContextInClassComponent","makeUniqueId","validateDOMAttributes","getStatusState","combineDescribedBy","combineLabelledBy","dispatchCustomElementEvent","pickFormElementProps","spacingPropTypes","createSpacingClasses","AlignmentHelper","Space","FormLabel","FormStatus","Flex","Context","Suffix","RadioGroupContext","RadioGroup","PureComponent","getDerivedStateFromProps","props","state","_listenForPropChanges","value","_value","constructor","_defineProperty","_ref","event","setState","_refInput","createRef","_id","id","_name","name","render","_this$context","_this$context2","defaultProps","context","FormRow","formElement","status","status_state","status_props","status_no_animation","globalStatus","suffix","label","label_direction","label_sr_only","label_position","vertical","layout_direction","size","disabled","skeleton","className","children","on_change","rest","_objectWithoutProperties","_excluded","showStatus","classes","params","_objectSpread","onChange","onChangeHandler","Fieldset","createElement","Provider","_AlignmentHelper","Container","direction","gap","element","srOnly","_extends","role","show","text","text_id","width_selector","no_animation","title","undefined","attributes","test","String","process","env","NODE_ENV","propTypes","oneOfType","string","func","node","oneOf","bool","object","shape","message","_supportsSpacingProps"],"sources":["../../../../src/components/radio/RadioGroup.js"],"sourcesContent":["/**\n * Web RadioGroup Component\n *\n * This is a legacy component.\n * For referencing while developing new features, please use a Functional component.\n */\n\nimport React from 'react'\nimport PropTypes from 'prop-types'\nimport classnames from 'classnames'\nimport {\n extendPropsWithContextInClassComponent,\n makeUniqueId,\n validateDOMAttributes,\n getStatusState,\n combineDescribedBy,\n combineLabelledBy,\n dispatchCustomElementEvent,\n} from '../../shared/component-helper'\nimport { pickFormElementProps } from '../../shared/helpers/filterValidProps'\nimport {\n spacingPropTypes,\n createSpacingClasses,\n} from '../space/SpacingHelper'\nimport AlignmentHelper from '../../shared/AlignmentHelper'\nimport Space from '../Space'\nimport FormLabel from '../FormLabel'\nimport FormStatus from '../FormStatus'\nimport Flex from '../Flex'\nimport Context from '../../shared/Context'\nimport Suffix from '../../shared/helpers/Suffix'\nimport RadioGroupContext from './RadioGroupContext'\n\n/**\n * The radio component is our enhancement of the classic radio button. It acts like a radio. Example: On/off, yes/no.\n */\nexport default class RadioGroup 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_direction: PropTypes.oneOf(['horizontal', 'vertical']),\n label_sr_only: PropTypes.oneOfType([PropTypes.string, PropTypes.bool]),\n label_position: PropTypes.oneOf(['left', 'right']),\n title: PropTypes.string,\n disabled: PropTypes.oneOfType([PropTypes.string, PropTypes.bool]),\n skeleton: PropTypes.oneOfType([PropTypes.string, PropTypes.bool]),\n id: PropTypes.string,\n name: 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 layout_direction: PropTypes.oneOf(['column', 'row']),\n vertical: PropTypes.oneOfType([PropTypes.string, PropTypes.bool]),\n value: PropTypes.string,\n attributes: PropTypes.oneOfType([PropTypes.string, PropTypes.object]),\n\n ...spacingPropTypes,\n\n className: PropTypes.string,\n children: PropTypes.oneOfType([\n PropTypes.string,\n PropTypes.func,\n PropTypes.node,\n ]),\n\n on_change: PropTypes.func,\n }\n\n static defaultProps = {\n label: null,\n label_direction: null,\n label_sr_only: null,\n label_position: null,\n title: null,\n disabled: null,\n skeleton: null,\n id: null,\n name: 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 vertical: null,\n layout_direction: 'row',\n value: undefined,\n attributes: null,\n\n className: null,\n children: null,\n\n on_change: 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.value !== state._value) {\n state.value = props.value\n }\n if (typeof props.value !== 'undefined') {\n state._value = props.value\n }\n }\n state._listenForPropChanges = true\n\n return state\n }\n\n constructor(props) {\n super(props)\n this._refInput = React.createRef()\n this._id = props.id || makeUniqueId() // cause we need an id anyway\n this._name = props.name || this._id\n this.state = {\n _listenForPropChanges: true,\n }\n }\n\n onChangeHandler = ({ value, event }) => {\n this.setState({ value, _listenForPropChanges: false })\n dispatchCustomElementEvent(this, 'on_change', {\n value,\n event,\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 RadioGroup.defaultProps,\n // Deprecated – can be removed in v11\n pickFormElementProps(this.context?.FormRow),\n pickFormElementProps(this.context?.formElement),\n this.context.RadioGroup\n )\n\n const {\n status,\n status_state,\n status_props,\n status_no_animation,\n globalStatus,\n suffix,\n label,\n label_direction,\n label_sr_only,\n label_position,\n vertical,\n layout_direction,\n size,\n disabled,\n skeleton,\n className,\n\n id: _id, // eslint-disable-line\n name: _name, // eslint-disable-line\n value: _value, // eslint-disable-line\n children, // eslint-disable-line\n on_change, // eslint-disable-line\n\n ...rest\n } = props\n\n const { value } = this.state\n\n const id = this._id\n const showStatus = getStatusState(status)\n\n const classes = classnames(\n 'dnb-radio-group',\n status && `dnb-radio-group__status--${status_state}`,\n `dnb-radio-group--${layout_direction}`,\n 'dnb-form-component',\n createSpacingClasses(props),\n className\n )\n\n const params = {\n ...rest,\n }\n\n if (showStatus || suffix) {\n params['aria-describedby'] = combineDescribedBy(\n params,\n showStatus ? id + '-status' : null,\n suffix ? id + '-suffix' : null\n )\n }\n if (label) {\n params['aria-labelledby'] = combineLabelledBy(params, id + '-label')\n }\n\n // also used for code markup simulation\n validateDOMAttributes(this.props, params)\n\n const context = {\n name: this._name,\n value,\n size,\n disabled,\n label_position,\n onChange: this.onChangeHandler,\n }\n\n const Fieldset = label ? 'fieldset' : 'div'\n\n return (\n <RadioGroupContext.Provider value={context}>\n <div className={classes}>\n <AlignmentHelper />\n <Fieldset className=\"dnb-toggle-button-group__fieldset\">\n <Flex.Container\n direction={\n vertical || label_direction === 'vertical'\n ? 'vertical'\n : 'horizontal'\n }\n gap={vertical ? 'x-small' : 'small'}\n >\n {label && (\n <FormLabel\n element=\"legend\"\n id={id + '-label'}\n srOnly={label_sr_only}\n >\n {label}\n </FormLabel>\n )}\n\n <Space\n element=\"span\"\n id={id}\n className=\"dnb-radio-group__shell\"\n role=\"radiogroup\"\n {...params}\n >\n {children}\n\n {suffix && (\n <Suffix\n className=\"dnb-radio-group__suffix\"\n id={id + '-suffix'} // used for \"aria-describedby\"\n context={props}\n >\n {suffix}\n </Suffix>\n )}\n\n <FormStatus\n show={showStatus}\n id={id + '-form-status'}\n globalStatus={globalStatus}\n label={label}\n text={status}\n state={status_state}\n text_id={id + '-status'} // used for \"aria-describedby\"\n width_selector={id + ', ' + id + '-label'}\n no_animation={status_no_animation}\n skeleton={skeleton}\n {...status_props}\n />\n </Space>\n </Flex.Container>\n </Fieldset>\n </div>\n </RadioGroupContext.Provider>\n )\n }\n}\n\nRadioGroup._supportsSpacingProps = true\n"],"mappings":"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"}
@@ -200,10 +200,13 @@ html[data-whatinput=keyboard] .dnb-radio__focus {
200
200
  transform: translateY(0.25rem); /* 4/16 */
201
201
  }
202
202
  .dnb-radio-group {
203
- --radio-group-margin-bottom: 0.5rem;
204
- --radio-group-margin-right: 1rem;
203
+ --radio-group-row-gap: 0.5rem;
204
+ --radio-group-column-gap: 1rem;
205
205
  display: inline-flex;
206
206
  }
207
+ .dnb-radio-group, .dnb-radio-group__fieldset, .dnb-radio-group__shell {
208
+ flex-grow: 1;
209
+ }
207
210
  .dnb-radio-group fieldset {
208
211
  margin: 0;
209
212
  padding: 0;
@@ -219,9 +222,9 @@ html[data-whatinput=keyboard] .dnb-radio__focus {
219
222
  .dnb-radio-group [role=radiogroup], .dnb-radio-group__shell {
220
223
  display: flex;
221
224
  flex-wrap: wrap;
222
- -moz-column-gap: var(--radio-group-margin-right);
223
- column-gap: var(--radio-group-margin-right);
224
- row-gap: var(--radio-group-margin-bottom);
225
+ -moz-column-gap: var(--radio-group-column-gap);
226
+ column-gap: var(--radio-group-column-gap);
227
+ row-gap: var(--radio-group-row-gap);
225
228
  }
226
229
  .dnb-radio-group__shell > .dnb-form-status {
227
230
  margin-top: 0;