@dnb/eufemia 10.30.2 → 10.32.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 (717) hide show
  1. package/CHANGELOG.md +55 -0
  2. package/cjs/components/anchor/Anchor.d.ts +8 -1
  3. package/cjs/components/anchor/Anchor.js.map +1 -1
  4. package/cjs/components/card/Card.js +3 -2
  5. package/cjs/components/card/Card.js.map +1 -1
  6. package/cjs/components/card/style/dnb-card.css +1 -2
  7. package/cjs/components/card/style/dnb-card.min.css +1 -1
  8. package/cjs/components/card/style/themes/dnb-card-theme-sbanken.css +5 -0
  9. package/cjs/components/card/style/themes/dnb-card-theme-sbanken.min.css +1 -0
  10. package/cjs/components/card/style/themes/dnb-card-theme-sbanken.scss +7 -0
  11. package/cjs/components/checkbox/CheckIcon.d.ts +1 -1
  12. package/cjs/components/checkbox/CheckIcon.js +4 -9
  13. package/cjs/components/checkbox/CheckIcon.js.map +1 -1
  14. package/cjs/components/checkbox/Checkbox.d.ts +4 -0
  15. package/cjs/components/checkbox/Checkbox.js +9 -3
  16. package/cjs/components/checkbox/Checkbox.js.map +1 -1
  17. package/cjs/components/checkbox/CheckboxDocs.js +10 -5
  18. package/cjs/components/checkbox/CheckboxDocs.js.map +1 -1
  19. package/cjs/components/checkbox/style/dnb-checkbox.css +95 -15
  20. package/cjs/components/checkbox/style/dnb-checkbox.min.css +1 -1
  21. package/cjs/components/checkbox/style/dnb-checkbox.scss +156 -21
  22. package/cjs/components/checkbox/style/themes/dnb-checkbox-theme-sbanken.css +22 -2
  23. package/cjs/components/checkbox/style/themes/dnb-checkbox-theme-sbanken.min.css +4 -2
  24. package/cjs/components/checkbox/style/themes/dnb-checkbox-theme-sbanken.scss +28 -2
  25. package/cjs/components/checkbox/style/themes/dnb-checkbox-theme-ui.css +20 -2
  26. package/cjs/components/checkbox/style/themes/dnb-checkbox-theme-ui.min.css +5 -1
  27. package/cjs/components/checkbox/style/themes/dnb-checkbox-theme-ui.scss +25 -2
  28. package/cjs/components/flex/Container.d.ts +4 -1
  29. package/cjs/components/flex/Container.js +10 -7
  30. package/cjs/components/flex/Container.js.map +1 -1
  31. package/cjs/components/flex/Stack.js +3 -3
  32. package/cjs/components/flex/Stack.js.map +1 -1
  33. package/cjs/components/flex/utils.js +7 -7
  34. package/cjs/components/flex/utils.js.map +1 -1
  35. package/cjs/components/height-animation/HeightAnimationInstance.js +6 -1
  36. package/cjs/components/height-animation/HeightAnimationInstance.js.map +1 -1
  37. package/cjs/components/modal/Modal.d.ts +2 -0
  38. package/cjs/components/modal/Modal.js +10 -3
  39. package/cjs/components/modal/Modal.js.map +1 -1
  40. package/cjs/components/skeleton/style/dnb-skeleton.css +4 -8
  41. package/cjs/components/skeleton/style/dnb-skeleton.min.css +1 -1
  42. package/cjs/components/space/SpacingUtils.d.ts +1 -1
  43. package/cjs/components/space/SpacingUtils.js +1 -1
  44. package/cjs/components/space/SpacingUtils.js.map +1 -1
  45. package/cjs/components/step-indicator/style/themes/dnb-step-indicator-theme-sbanken.css +70 -0
  46. package/cjs/components/step-indicator/style/themes/dnb-step-indicator-theme-sbanken.min.css +1 -0
  47. package/cjs/components/step-indicator/style/themes/dnb-step-indicator-theme-sbanken.scss +97 -0
  48. package/cjs/components/switch/style/themes/dnb-switch-theme-ui.css +1 -2
  49. package/cjs/components/switch/style/themes/dnb-switch-theme-ui.min.css +1 -1
  50. package/cjs/components/table/style/dnb-table.css +5 -10
  51. package/cjs/components/table/style/dnb-table.min.css +1 -1
  52. package/cjs/components/visually-hidden/style/dnb-visually-hidden.css +1 -2
  53. package/cjs/components/visually-hidden/style/dnb-visually-hidden.min.css +1 -1
  54. package/cjs/extensions/forms/DataContext/Context.d.ts +20 -9
  55. package/cjs/extensions/forms/DataContext/Context.js +2 -3
  56. package/cjs/extensions/forms/DataContext/Context.js.map +1 -1
  57. package/cjs/extensions/forms/DataContext/Provider/Provider.d.ts +3 -3
  58. package/cjs/extensions/forms/DataContext/Provider/Provider.js +69 -32
  59. package/cjs/extensions/forms/DataContext/Provider/Provider.js.map +1 -1
  60. package/cjs/extensions/forms/DataContext/Provider/ProviderDocs.js +3 -3
  61. package/cjs/extensions/forms/DataContext/Provider/ProviderDocs.js.map +1 -1
  62. package/cjs/extensions/forms/Field/Boolean/Boolean.d.ts +12 -2
  63. package/cjs/extensions/forms/Field/Boolean/Boolean.js +2 -1
  64. package/cjs/extensions/forms/Field/Boolean/Boolean.js.map +1 -1
  65. package/cjs/extensions/forms/Field/Boolean/BooleanDocs.d.ts +2 -0
  66. package/cjs/extensions/forms/Field/Boolean/BooleanDocs.js +25 -0
  67. package/cjs/extensions/forms/Field/Boolean/BooleanDocs.js.map +1 -0
  68. package/cjs/extensions/forms/Field/FieldDocs.js +1 -1
  69. package/cjs/extensions/forms/Field/FieldDocs.js.map +1 -1
  70. package/cjs/extensions/forms/Field/Indeterminate/Indeterminate.d.ts +16 -0
  71. package/cjs/extensions/forms/Field/Indeterminate/Indeterminate.js +53 -0
  72. package/cjs/extensions/forms/Field/Indeterminate/Indeterminate.js.map +1 -0
  73. package/cjs/extensions/forms/Field/Indeterminate/IndeterminateDocs.d.ts +2 -0
  74. package/cjs/extensions/forms/Field/Indeterminate/IndeterminateDocs.js +38 -0
  75. package/cjs/extensions/forms/Field/Indeterminate/IndeterminateDocs.js.map +1 -0
  76. package/cjs/extensions/forms/Field/Indeterminate/index.d.ts +2 -0
  77. package/cjs/extensions/forms/Field/Indeterminate/index.js +27 -0
  78. package/cjs/extensions/forms/Field/Indeterminate/index.js.map +1 -0
  79. package/cjs/extensions/forms/Field/Indeterminate/useDependencePaths.d.ts +6 -0
  80. package/cjs/extensions/forms/Field/Indeterminate/useDependencePaths.js +81 -0
  81. package/cjs/extensions/forms/Field/Indeterminate/useDependencePaths.js.map +1 -0
  82. package/cjs/extensions/forms/Field/Name/NameDocs.js +1 -7
  83. package/cjs/extensions/forms/Field/Name/NameDocs.js.map +1 -1
  84. package/cjs/extensions/forms/Field/Number/Number.js +3 -1
  85. package/cjs/extensions/forms/Field/Number/Number.js.map +1 -1
  86. package/cjs/extensions/forms/Field/PhoneNumber/PhoneNumber.js +1 -1
  87. package/cjs/extensions/forms/Field/PhoneNumber/PhoneNumber.js.map +1 -1
  88. package/cjs/extensions/forms/Field/String/String.js.map +1 -1
  89. package/cjs/extensions/forms/Field/Toggle/Toggle.d.ts +2 -1
  90. package/cjs/extensions/forms/Field/Toggle/Toggle.js +2 -2
  91. package/cjs/extensions/forms/Field/Toggle/Toggle.js.map +1 -1
  92. package/cjs/extensions/forms/Field/Toggle/ToggleDocs.d.ts +2 -0
  93. package/cjs/extensions/forms/Field/Toggle/ToggleDocs.js +35 -0
  94. package/cjs/extensions/forms/Field/Toggle/ToggleDocs.js.map +1 -0
  95. package/cjs/extensions/forms/Field/index.d.ts +1 -0
  96. package/cjs/extensions/forms/Field/index.js +7 -0
  97. package/cjs/extensions/forms/Field/index.js.map +1 -1
  98. package/cjs/extensions/forms/FieldBlock/FieldBlock.js +5 -0
  99. package/cjs/extensions/forms/FieldBlock/FieldBlock.js.map +1 -1
  100. package/cjs/extensions/forms/FieldBlock/FieldBlockDocs.d.ts +1 -0
  101. package/cjs/extensions/forms/FieldBlock/FieldBlockDocs.js +24 -16
  102. package/cjs/extensions/forms/FieldBlock/FieldBlockDocs.js.map +1 -1
  103. package/cjs/extensions/forms/FieldBlock/style/dnb-field-block.css +1 -3
  104. package/cjs/extensions/forms/FieldBlock/style/dnb-field-block.min.css +1 -1
  105. package/cjs/extensions/forms/FieldBlock/style/dnb-field-block.scss +1 -2
  106. package/cjs/extensions/forms/Form/Element/Element.js +1 -1
  107. package/cjs/extensions/forms/Form/Element/Element.js.map +1 -1
  108. package/cjs/extensions/forms/Form/Handler/Handler.js +2 -2
  109. package/cjs/extensions/forms/Form/Handler/Handler.js.map +1 -1
  110. package/cjs/extensions/forms/Form/Handler/HandlerDocs.js +5 -0
  111. package/cjs/extensions/forms/Form/Handler/HandlerDocs.js.map +1 -1
  112. package/cjs/extensions/forms/Form/SubmitButton/SubmitButton.js +3 -3
  113. package/cjs/extensions/forms/Form/SubmitButton/SubmitButton.js.map +1 -1
  114. package/cjs/extensions/forms/Form/Tools/GenerateSchema.d.ts +8 -0
  115. package/cjs/extensions/forms/Form/Tools/GenerateSchema.js +100 -0
  116. package/cjs/extensions/forms/Form/Tools/GenerateSchema.js.map +1 -0
  117. package/cjs/extensions/forms/Form/Tools/index.d.ts +1 -0
  118. package/cjs/extensions/forms/Form/Tools/index.js +14 -0
  119. package/cjs/extensions/forms/Form/Tools/index.js.map +1 -0
  120. package/cjs/extensions/forms/Form/Visibility/Visibility.d.ts +19 -5
  121. package/cjs/extensions/forms/Form/Visibility/Visibility.js +41 -10
  122. package/cjs/extensions/forms/Form/Visibility/Visibility.js.map +1 -1
  123. package/cjs/extensions/forms/Form/Visibility/VisibilityDocs.js +11 -6
  124. package/cjs/extensions/forms/Form/Visibility/VisibilityDocs.js.map +1 -1
  125. package/cjs/extensions/forms/Form/data-context/useData.d.ts +1 -1
  126. package/cjs/extensions/forms/Form/data-context/useData.js +2 -2
  127. package/cjs/extensions/forms/Form/data-context/useData.js.map +1 -1
  128. package/cjs/extensions/forms/Form/data-context/useError.d.ts +1 -0
  129. package/cjs/extensions/forms/Form/data-context/useError.js +5 -3
  130. package/cjs/extensions/forms/Form/data-context/useError.js.map +1 -1
  131. package/cjs/extensions/forms/Form/index.d.ts +1 -0
  132. package/cjs/extensions/forms/Form/index.js +5 -0
  133. package/cjs/extensions/forms/Form/index.js.map +1 -1
  134. package/cjs/extensions/forms/Iterate/AnimatedContainer/ElementBlock.d.ts +8 -1
  135. package/cjs/extensions/forms/Iterate/AnimatedContainer/ElementBlock.js +4 -3
  136. package/cjs/extensions/forms/Iterate/AnimatedContainer/ElementBlock.js.map +1 -1
  137. package/cjs/extensions/forms/Iterate/EditContainer/EditContainer.d.ts +2 -1
  138. package/cjs/extensions/forms/Iterate/EditContainer/EditContainer.js.map +1 -1
  139. package/cjs/extensions/forms/Iterate/EditContainer/EditContainerDocs.js +5 -0
  140. package/cjs/extensions/forms/Iterate/EditContainer/EditContainerDocs.js.map +1 -1
  141. package/cjs/extensions/forms/Iterate/EditContainer/EditToolbarTools.js +1 -1
  142. package/cjs/extensions/forms/Iterate/EditContainer/EditToolbarTools.js.map +1 -1
  143. package/cjs/extensions/forms/Iterate/Toolbar/Toolbar.js +1 -1
  144. package/cjs/extensions/forms/Iterate/Toolbar/Toolbar.js.map +1 -1
  145. package/cjs/extensions/forms/Iterate/ViewContainer/ViewContainer.d.ts +2 -1
  146. package/cjs/extensions/forms/Iterate/ViewContainer/ViewContainer.js.map +1 -1
  147. package/cjs/extensions/forms/Iterate/ViewContainer/ViewContainerDocs.js +5 -0
  148. package/cjs/extensions/forms/Iterate/ViewContainer/ViewContainerDocs.js.map +1 -1
  149. package/cjs/extensions/forms/Iterate/ViewContainer/ViewToolbarTools.js +1 -1
  150. package/cjs/extensions/forms/Iterate/ViewContainer/ViewToolbarTools.js.map +1 -1
  151. package/cjs/extensions/forms/Iterate/style/dnb-form-iterate.css +3 -1
  152. package/cjs/extensions/forms/Iterate/style/dnb-form-iterate.min.css +1 -1
  153. package/cjs/extensions/forms/Iterate/style/dnb-form-iterate.scss +4 -1
  154. package/cjs/extensions/forms/ValueBlock/ValueBlock.js +4 -2
  155. package/cjs/extensions/forms/ValueBlock/ValueBlock.js.map +1 -1
  156. package/cjs/extensions/forms/Wizard/Container/WizardContainer.d.ts +31 -2
  157. package/cjs/extensions/forms/Wizard/Container/WizardContainer.js +105 -31
  158. package/cjs/extensions/forms/Wizard/Container/WizardContainer.js.map +1 -1
  159. package/cjs/extensions/forms/Wizard/Context/WizardContext.d.ts +4 -0
  160. package/cjs/extensions/forms/Wizard/Context/WizardContext.js.map +1 -1
  161. package/cjs/extensions/forms/Wizard/Step/Step.d.ts +10 -1
  162. package/cjs/extensions/forms/Wizard/Step/Step.js +15 -6
  163. package/cjs/extensions/forms/Wizard/Step/Step.js.map +1 -1
  164. package/cjs/extensions/forms/Wizard/Step/StepDocs.js +5 -0
  165. package/cjs/extensions/forms/Wizard/Step/StepDocs.js.map +1 -1
  166. package/cjs/extensions/forms/Wizard/style/dnb-wizard-layout.css +0 -1
  167. package/cjs/extensions/forms/Wizard/style/dnb-wizard-layout.min.css +1 -1
  168. package/cjs/extensions/forms/Wizard/style/dnb-wizard-layout.scss +0 -1
  169. package/cjs/extensions/forms/Wizard/style/themes/dnb-wizard-layout-theme-sbanken.css +1 -0
  170. package/cjs/extensions/forms/Wizard/style/themes/dnb-wizard-layout-theme-sbanken.min.css +0 -0
  171. package/cjs/extensions/forms/Wizard/style/themes/dnb-wizard-layout-theme-sbanken.scss +1 -0
  172. package/cjs/extensions/forms/Wizard/style/themes/dnb-wizard-layout-theme-ui.css +3 -0
  173. package/cjs/extensions/forms/Wizard/style/themes/dnb-wizard-layout-theme-ui.min.css +1 -0
  174. package/cjs/extensions/forms/Wizard/style/themes/dnb-wizard-layout-theme-ui.scss +7 -0
  175. package/cjs/extensions/forms/hooks/useFieldProps.js +71 -32
  176. package/cjs/extensions/forms/hooks/useFieldProps.js.map +1 -1
  177. package/cjs/extensions/forms/style/dnb-forms.css +4 -5
  178. package/cjs/extensions/forms/style/dnb-forms.min.css +1 -1
  179. package/cjs/extensions/forms/types.d.ts +9 -0
  180. package/cjs/extensions/forms/types.js.map +1 -1
  181. package/cjs/fragments/drawer-list/DrawerListHelpers.js +5 -2
  182. package/cjs/fragments/drawer-list/DrawerListHelpers.js.map +1 -1
  183. package/cjs/shared/Eufemia.d.ts +1 -1
  184. package/cjs/shared/Eufemia.js +2 -2
  185. package/cjs/shared/Eufemia.js.map +1 -1
  186. package/cjs/shared/MediaQuery.js +19 -1
  187. package/cjs/shared/MediaQuery.js.map +1 -1
  188. package/cjs/shared/MediaQueryUtils.d.ts +12 -34
  189. package/cjs/shared/MediaQueryUtils.js +22 -12
  190. package/cjs/shared/MediaQueryUtils.js.map +1 -1
  191. package/cjs/shared/component-helper.d.ts +1 -1
  192. package/cjs/shared/component-helper.js +5 -1
  193. package/cjs/shared/component-helper.js.map +1 -1
  194. package/cjs/shared/useMedia.d.ts +7 -2
  195. package/cjs/shared/useMedia.js +16 -11
  196. package/cjs/shared/useMedia.js.map +1 -1
  197. package/cjs/shared/useMediaQuery.js +30 -9
  198. package/cjs/shared/useMediaQuery.js.map +1 -1
  199. package/cjs/style/core/scopes.scss +1 -1
  200. package/cjs/style/dnb-ui-basis.css +2 -3
  201. package/cjs/style/dnb-ui-basis.min.css +1 -1
  202. package/cjs/style/dnb-ui-body.css +1 -1
  203. package/cjs/style/dnb-ui-body.min.css +1 -1
  204. package/cjs/style/dnb-ui-components.css +110 -42
  205. package/cjs/style/dnb-ui-components.min.css +3 -3
  206. package/cjs/style/dnb-ui-core.css +2 -3
  207. package/cjs/style/dnb-ui-core.min.css +1 -1
  208. package/cjs/style/dnb-ui-extensions.css +4 -5
  209. package/cjs/style/dnb-ui-extensions.min.css +1 -1
  210. package/cjs/style/dnb-ui-forms.css +4 -5
  211. package/cjs/style/dnb-ui-forms.min.css +1 -1
  212. package/cjs/style/themes/theme-eiendom/eiendom-theme-components.css +139 -51
  213. package/cjs/style/themes/theme-eiendom/eiendom-theme-components.min.css +10 -6
  214. package/cjs/style/themes/theme-eiendom/eiendom-theme-extensions.css +8 -5
  215. package/cjs/style/themes/theme-eiendom/eiendom-theme-extensions.min.css +2 -2
  216. package/cjs/style/themes/theme-eiendom/eiendom-theme-extensions.scss +1 -0
  217. package/cjs/style/themes/theme-eiendom/eiendom-theme-forms.css +8 -5
  218. package/cjs/style/themes/theme-eiendom/eiendom-theme-forms.min.css +2 -2
  219. package/cjs/style/themes/theme-eiendom/eiendom-theme-forms.scss +1 -0
  220. package/cjs/style/themes/theme-sbanken/sbanken-theme-components.css +214 -127
  221. package/cjs/style/themes/theme-sbanken/sbanken-theme-components.min.css +9 -7
  222. package/cjs/style/themes/theme-sbanken/sbanken-theme-components.scss +2 -2
  223. package/cjs/style/themes/theme-sbanken/sbanken-theme-extensions.css +5 -5
  224. package/cjs/style/themes/theme-sbanken/sbanken-theme-extensions.min.css +1 -1
  225. package/cjs/style/themes/theme-sbanken/sbanken-theme-extensions.scss +1 -0
  226. package/cjs/style/themes/theme-sbanken/sbanken-theme-forms.css +5 -5
  227. package/cjs/style/themes/theme-sbanken/sbanken-theme-forms.min.css +1 -1
  228. package/cjs/style/themes/theme-sbanken/sbanken-theme-forms.scss +1 -0
  229. package/cjs/style/themes/theme-ui/ui-theme-components.css +139 -51
  230. package/cjs/style/themes/theme-ui/ui-theme-components.min.css +10 -6
  231. package/cjs/style/themes/theme-ui/ui-theme-extensions.css +8 -5
  232. package/cjs/style/themes/theme-ui/ui-theme-extensions.min.css +2 -2
  233. package/cjs/style/themes/theme-ui/ui-theme-extensions.scss +1 -0
  234. package/cjs/style/themes/theme-ui/ui-theme-forms.css +8 -5
  235. package/cjs/style/themes/theme-ui/ui-theme-forms.min.css +2 -2
  236. package/cjs/style/themes/theme-ui/ui-theme-forms.scss +1 -0
  237. package/components/anchor/Anchor.d.ts +8 -1
  238. package/components/anchor/Anchor.js.map +1 -1
  239. package/components/card/Card.js +3 -2
  240. package/components/card/Card.js.map +1 -1
  241. package/components/card/style/dnb-card.css +1 -2
  242. package/components/card/style/dnb-card.min.css +1 -1
  243. package/components/card/style/themes/dnb-card-theme-sbanken.css +5 -0
  244. package/components/card/style/themes/dnb-card-theme-sbanken.min.css +1 -0
  245. package/components/card/style/themes/dnb-card-theme-sbanken.scss +7 -0
  246. package/components/checkbox/CheckIcon.d.ts +1 -1
  247. package/components/checkbox/CheckIcon.js +4 -8
  248. package/components/checkbox/CheckIcon.js.map +1 -1
  249. package/components/checkbox/Checkbox.d.ts +4 -0
  250. package/components/checkbox/Checkbox.js +9 -3
  251. package/components/checkbox/Checkbox.js.map +1 -1
  252. package/components/checkbox/CheckboxDocs.js +10 -5
  253. package/components/checkbox/CheckboxDocs.js.map +1 -1
  254. package/components/checkbox/style/dnb-checkbox.css +95 -15
  255. package/components/checkbox/style/dnb-checkbox.min.css +1 -1
  256. package/components/checkbox/style/dnb-checkbox.scss +156 -21
  257. package/components/checkbox/style/themes/dnb-checkbox-theme-sbanken.css +22 -2
  258. package/components/checkbox/style/themes/dnb-checkbox-theme-sbanken.min.css +4 -2
  259. package/components/checkbox/style/themes/dnb-checkbox-theme-sbanken.scss +28 -2
  260. package/components/checkbox/style/themes/dnb-checkbox-theme-ui.css +20 -2
  261. package/components/checkbox/style/themes/dnb-checkbox-theme-ui.min.css +5 -1
  262. package/components/checkbox/style/themes/dnb-checkbox-theme-ui.scss +25 -2
  263. package/components/flex/Container.d.ts +4 -1
  264. package/components/flex/Container.js +10 -7
  265. package/components/flex/Container.js.map +1 -1
  266. package/components/flex/Stack.js +3 -3
  267. package/components/flex/Stack.js.map +1 -1
  268. package/components/flex/utils.js +8 -8
  269. package/components/flex/utils.js.map +1 -1
  270. package/components/height-animation/HeightAnimationInstance.js +6 -1
  271. package/components/height-animation/HeightAnimationInstance.js.map +1 -1
  272. package/components/modal/Modal.d.ts +2 -0
  273. package/components/modal/Modal.js +10 -3
  274. package/components/modal/Modal.js.map +1 -1
  275. package/components/skeleton/style/dnb-skeleton.css +4 -8
  276. package/components/skeleton/style/dnb-skeleton.min.css +1 -1
  277. package/components/space/SpacingUtils.d.ts +1 -1
  278. package/components/space/SpacingUtils.js +1 -1
  279. package/components/space/SpacingUtils.js.map +1 -1
  280. package/components/step-indicator/style/themes/dnb-step-indicator-theme-sbanken.css +70 -0
  281. package/components/step-indicator/style/themes/dnb-step-indicator-theme-sbanken.min.css +1 -0
  282. package/components/step-indicator/style/themes/dnb-step-indicator-theme-sbanken.scss +97 -0
  283. package/components/switch/style/themes/dnb-switch-theme-ui.css +1 -2
  284. package/components/switch/style/themes/dnb-switch-theme-ui.min.css +1 -1
  285. package/components/table/style/dnb-table.css +5 -10
  286. package/components/table/style/dnb-table.min.css +1 -1
  287. package/components/visually-hidden/style/dnb-visually-hidden.css +1 -2
  288. package/components/visually-hidden/style/dnb-visually-hidden.min.css +1 -1
  289. package/es/components/anchor/Anchor.d.ts +8 -1
  290. package/es/components/anchor/Anchor.js.map +1 -1
  291. package/es/components/card/Card.js +3 -2
  292. package/es/components/card/Card.js.map +1 -1
  293. package/es/components/card/style/dnb-card.css +1 -2
  294. package/es/components/card/style/dnb-card.min.css +1 -1
  295. package/es/components/card/style/themes/dnb-card-theme-sbanken.css +5 -0
  296. package/es/components/card/style/themes/dnb-card-theme-sbanken.min.css +1 -0
  297. package/es/components/card/style/themes/dnb-card-theme-sbanken.scss +7 -0
  298. package/es/components/checkbox/CheckIcon.d.ts +1 -1
  299. package/es/components/checkbox/CheckIcon.js +5 -10
  300. package/es/components/checkbox/CheckIcon.js.map +1 -1
  301. package/es/components/checkbox/Checkbox.d.ts +4 -0
  302. package/es/components/checkbox/Checkbox.js +9 -3
  303. package/es/components/checkbox/Checkbox.js.map +1 -1
  304. package/es/components/checkbox/CheckboxDocs.js +10 -5
  305. package/es/components/checkbox/CheckboxDocs.js.map +1 -1
  306. package/es/components/checkbox/style/dnb-checkbox.css +95 -15
  307. package/es/components/checkbox/style/dnb-checkbox.min.css +1 -1
  308. package/es/components/checkbox/style/dnb-checkbox.scss +156 -21
  309. package/es/components/checkbox/style/themes/dnb-checkbox-theme-sbanken.css +22 -2
  310. package/es/components/checkbox/style/themes/dnb-checkbox-theme-sbanken.min.css +4 -2
  311. package/es/components/checkbox/style/themes/dnb-checkbox-theme-sbanken.scss +28 -2
  312. package/es/components/checkbox/style/themes/dnb-checkbox-theme-ui.css +20 -2
  313. package/es/components/checkbox/style/themes/dnb-checkbox-theme-ui.min.css +5 -1
  314. package/es/components/checkbox/style/themes/dnb-checkbox-theme-ui.scss +25 -2
  315. package/es/components/flex/Container.d.ts +4 -1
  316. package/es/components/flex/Container.js +10 -7
  317. package/es/components/flex/Container.js.map +1 -1
  318. package/es/components/flex/Stack.js +3 -3
  319. package/es/components/flex/Stack.js.map +1 -1
  320. package/es/components/flex/utils.js +8 -8
  321. package/es/components/flex/utils.js.map +1 -1
  322. package/es/components/height-animation/HeightAnimationInstance.js +6 -1
  323. package/es/components/height-animation/HeightAnimationInstance.js.map +1 -1
  324. package/es/components/modal/Modal.d.ts +2 -0
  325. package/es/components/modal/Modal.js +10 -3
  326. package/es/components/modal/Modal.js.map +1 -1
  327. package/es/components/skeleton/style/dnb-skeleton.css +4 -8
  328. package/es/components/skeleton/style/dnb-skeleton.min.css +1 -1
  329. package/es/components/space/SpacingUtils.d.ts +1 -1
  330. package/es/components/space/SpacingUtils.js +1 -1
  331. package/es/components/space/SpacingUtils.js.map +1 -1
  332. package/es/components/step-indicator/style/themes/dnb-step-indicator-theme-sbanken.css +70 -0
  333. package/es/components/step-indicator/style/themes/dnb-step-indicator-theme-sbanken.min.css +1 -0
  334. package/es/components/step-indicator/style/themes/dnb-step-indicator-theme-sbanken.scss +97 -0
  335. package/es/components/switch/style/themes/dnb-switch-theme-ui.css +1 -2
  336. package/es/components/switch/style/themes/dnb-switch-theme-ui.min.css +1 -1
  337. package/es/components/table/style/dnb-table.css +5 -10
  338. package/es/components/table/style/dnb-table.min.css +1 -1
  339. package/es/components/visually-hidden/style/dnb-visually-hidden.css +1 -2
  340. package/es/components/visually-hidden/style/dnb-visually-hidden.min.css +1 -1
  341. package/es/extensions/forms/DataContext/Context.d.ts +20 -9
  342. package/es/extensions/forms/DataContext/Context.js +2 -3
  343. package/es/extensions/forms/DataContext/Context.js.map +1 -1
  344. package/es/extensions/forms/DataContext/Provider/Provider.d.ts +3 -3
  345. package/es/extensions/forms/DataContext/Provider/Provider.js +66 -30
  346. package/es/extensions/forms/DataContext/Provider/Provider.js.map +1 -1
  347. package/es/extensions/forms/DataContext/Provider/ProviderDocs.js +3 -3
  348. package/es/extensions/forms/DataContext/Provider/ProviderDocs.js.map +1 -1
  349. package/es/extensions/forms/Field/Boolean/Boolean.d.ts +12 -2
  350. package/es/extensions/forms/Field/Boolean/Boolean.js +2 -1
  351. package/es/extensions/forms/Field/Boolean/Boolean.js.map +1 -1
  352. package/es/extensions/forms/Field/Boolean/BooleanDocs.d.ts +2 -0
  353. package/es/extensions/forms/Field/Boolean/BooleanDocs.js +18 -0
  354. package/es/extensions/forms/Field/Boolean/BooleanDocs.js.map +1 -0
  355. package/es/extensions/forms/Field/FieldDocs.js +2 -2
  356. package/es/extensions/forms/Field/FieldDocs.js.map +1 -1
  357. package/es/extensions/forms/Field/Indeterminate/Indeterminate.d.ts +16 -0
  358. package/es/extensions/forms/Field/Indeterminate/Indeterminate.js +43 -0
  359. package/es/extensions/forms/Field/Indeterminate/Indeterminate.js.map +1 -0
  360. package/es/extensions/forms/Field/Indeterminate/IndeterminateDocs.d.ts +2 -0
  361. package/es/extensions/forms/Field/Indeterminate/IndeterminateDocs.js +29 -0
  362. package/es/extensions/forms/Field/Indeterminate/IndeterminateDocs.js.map +1 -0
  363. package/es/extensions/forms/Field/Indeterminate/index.d.ts +2 -0
  364. package/es/extensions/forms/Field/Indeterminate/index.js +3 -0
  365. package/es/extensions/forms/Field/Indeterminate/index.js.map +1 -0
  366. package/es/extensions/forms/Field/Indeterminate/useDependencePaths.d.ts +6 -0
  367. package/es/extensions/forms/Field/Indeterminate/useDependencePaths.js +74 -0
  368. package/es/extensions/forms/Field/Indeterminate/useDependencePaths.js.map +1 -0
  369. package/es/extensions/forms/Field/Name/NameDocs.js +1 -8
  370. package/es/extensions/forms/Field/Name/NameDocs.js.map +1 -1
  371. package/es/extensions/forms/Field/Number/Number.js +3 -1
  372. package/es/extensions/forms/Field/Number/Number.js.map +1 -1
  373. package/es/extensions/forms/Field/PhoneNumber/PhoneNumber.js +1 -1
  374. package/es/extensions/forms/Field/PhoneNumber/PhoneNumber.js.map +1 -1
  375. package/es/extensions/forms/Field/String/String.js.map +1 -1
  376. package/es/extensions/forms/Field/Toggle/Toggle.d.ts +2 -1
  377. package/es/extensions/forms/Field/Toggle/Toggle.js +2 -2
  378. package/es/extensions/forms/Field/Toggle/Toggle.js.map +1 -1
  379. package/es/extensions/forms/Field/Toggle/ToggleDocs.d.ts +2 -0
  380. package/es/extensions/forms/Field/Toggle/ToggleDocs.js +28 -0
  381. package/es/extensions/forms/Field/Toggle/ToggleDocs.js.map +1 -0
  382. package/es/extensions/forms/Field/index.d.ts +1 -0
  383. package/es/extensions/forms/Field/index.js +1 -0
  384. package/es/extensions/forms/Field/index.js.map +1 -1
  385. package/es/extensions/forms/FieldBlock/FieldBlock.js +5 -0
  386. package/es/extensions/forms/FieldBlock/FieldBlock.js.map +1 -1
  387. package/es/extensions/forms/FieldBlock/FieldBlockDocs.d.ts +1 -0
  388. package/es/extensions/forms/FieldBlock/FieldBlockDocs.js +20 -15
  389. package/es/extensions/forms/FieldBlock/FieldBlockDocs.js.map +1 -1
  390. package/es/extensions/forms/FieldBlock/style/dnb-field-block.css +1 -3
  391. package/es/extensions/forms/FieldBlock/style/dnb-field-block.min.css +1 -1
  392. package/es/extensions/forms/FieldBlock/style/dnb-field-block.scss +1 -2
  393. package/es/extensions/forms/Form/Element/Element.js +1 -1
  394. package/es/extensions/forms/Form/Element/Element.js.map +1 -1
  395. package/es/extensions/forms/Form/Handler/Handler.js +2 -2
  396. package/es/extensions/forms/Form/Handler/Handler.js.map +1 -1
  397. package/es/extensions/forms/Form/Handler/HandlerDocs.js +5 -0
  398. package/es/extensions/forms/Form/Handler/HandlerDocs.js.map +1 -1
  399. package/es/extensions/forms/Form/SubmitButton/SubmitButton.js +3 -3
  400. package/es/extensions/forms/Form/SubmitButton/SubmitButton.js.map +1 -1
  401. package/es/extensions/forms/Form/Tools/GenerateSchema.d.ts +8 -0
  402. package/es/extensions/forms/Form/Tools/GenerateSchema.js +89 -0
  403. package/es/extensions/forms/Form/Tools/GenerateSchema.js.map +1 -0
  404. package/es/extensions/forms/Form/Tools/index.d.ts +1 -0
  405. package/es/extensions/forms/Form/Tools/index.js +1 -0
  406. package/es/extensions/forms/Form/Tools/index.js.map +1 -0
  407. package/es/extensions/forms/Form/Visibility/Visibility.d.ts +19 -5
  408. package/es/extensions/forms/Form/Visibility/Visibility.js +41 -10
  409. package/es/extensions/forms/Form/Visibility/Visibility.js.map +1 -1
  410. package/es/extensions/forms/Form/Visibility/VisibilityDocs.js +11 -6
  411. package/es/extensions/forms/Form/Visibility/VisibilityDocs.js.map +1 -1
  412. package/es/extensions/forms/Form/data-context/useData.d.ts +1 -1
  413. package/es/extensions/forms/Form/data-context/useData.js +1 -2
  414. package/es/extensions/forms/Form/data-context/useData.js.map +1 -1
  415. package/es/extensions/forms/Form/data-context/useError.d.ts +1 -0
  416. package/es/extensions/forms/Form/data-context/useError.js +5 -3
  417. package/es/extensions/forms/Form/data-context/useError.js.map +1 -1
  418. package/es/extensions/forms/Form/index.d.ts +1 -0
  419. package/es/extensions/forms/Form/index.js +1 -0
  420. package/es/extensions/forms/Form/index.js.map +1 -1
  421. package/es/extensions/forms/Iterate/AnimatedContainer/ElementBlock.d.ts +8 -1
  422. package/es/extensions/forms/Iterate/AnimatedContainer/ElementBlock.js +4 -3
  423. package/es/extensions/forms/Iterate/AnimatedContainer/ElementBlock.js.map +1 -1
  424. package/es/extensions/forms/Iterate/EditContainer/EditContainer.d.ts +2 -1
  425. package/es/extensions/forms/Iterate/EditContainer/EditContainer.js.map +1 -1
  426. package/es/extensions/forms/Iterate/EditContainer/EditContainerDocs.js +5 -0
  427. package/es/extensions/forms/Iterate/EditContainer/EditContainerDocs.js.map +1 -1
  428. package/es/extensions/forms/Iterate/EditContainer/EditToolbarTools.js +1 -1
  429. package/es/extensions/forms/Iterate/EditContainer/EditToolbarTools.js.map +1 -1
  430. package/es/extensions/forms/Iterate/Toolbar/Toolbar.js +1 -1
  431. package/es/extensions/forms/Iterate/Toolbar/Toolbar.js.map +1 -1
  432. package/es/extensions/forms/Iterate/ViewContainer/ViewContainer.d.ts +2 -1
  433. package/es/extensions/forms/Iterate/ViewContainer/ViewContainer.js.map +1 -1
  434. package/es/extensions/forms/Iterate/ViewContainer/ViewContainerDocs.js +5 -0
  435. package/es/extensions/forms/Iterate/ViewContainer/ViewContainerDocs.js.map +1 -1
  436. package/es/extensions/forms/Iterate/ViewContainer/ViewToolbarTools.js +1 -1
  437. package/es/extensions/forms/Iterate/ViewContainer/ViewToolbarTools.js.map +1 -1
  438. package/es/extensions/forms/Iterate/style/dnb-form-iterate.css +3 -1
  439. package/es/extensions/forms/Iterate/style/dnb-form-iterate.min.css +1 -1
  440. package/es/extensions/forms/Iterate/style/dnb-form-iterate.scss +4 -1
  441. package/es/extensions/forms/ValueBlock/ValueBlock.js +4 -2
  442. package/es/extensions/forms/ValueBlock/ValueBlock.js.map +1 -1
  443. package/es/extensions/forms/Wizard/Container/WizardContainer.d.ts +31 -2
  444. package/es/extensions/forms/Wizard/Container/WizardContainer.js +101 -31
  445. package/es/extensions/forms/Wizard/Container/WizardContainer.js.map +1 -1
  446. package/es/extensions/forms/Wizard/Context/WizardContext.d.ts +4 -0
  447. package/es/extensions/forms/Wizard/Context/WizardContext.js.map +1 -1
  448. package/es/extensions/forms/Wizard/Step/Step.d.ts +10 -1
  449. package/es/extensions/forms/Wizard/Step/Step.js +15 -6
  450. package/es/extensions/forms/Wizard/Step/Step.js.map +1 -1
  451. package/es/extensions/forms/Wizard/Step/StepDocs.js +5 -0
  452. package/es/extensions/forms/Wizard/Step/StepDocs.js.map +1 -1
  453. package/es/extensions/forms/Wizard/style/dnb-wizard-layout.css +0 -1
  454. package/es/extensions/forms/Wizard/style/dnb-wizard-layout.min.css +1 -1
  455. package/es/extensions/forms/Wizard/style/dnb-wizard-layout.scss +0 -1
  456. package/es/extensions/forms/Wizard/style/themes/dnb-wizard-layout-theme-sbanken.css +1 -0
  457. package/es/extensions/forms/Wizard/style/themes/dnb-wizard-layout-theme-sbanken.min.css +0 -0
  458. package/es/extensions/forms/Wizard/style/themes/dnb-wizard-layout-theme-sbanken.scss +1 -0
  459. package/es/extensions/forms/Wizard/style/themes/dnb-wizard-layout-theme-ui.css +3 -0
  460. package/es/extensions/forms/Wizard/style/themes/dnb-wizard-layout-theme-ui.min.css +1 -0
  461. package/es/extensions/forms/Wizard/style/themes/dnb-wizard-layout-theme-ui.scss +7 -0
  462. package/es/extensions/forms/hooks/useFieldProps.js +68 -29
  463. package/es/extensions/forms/hooks/useFieldProps.js.map +1 -1
  464. package/es/extensions/forms/style/dnb-forms.css +4 -5
  465. package/es/extensions/forms/style/dnb-forms.min.css +1 -1
  466. package/es/extensions/forms/types.d.ts +9 -0
  467. package/es/extensions/forms/types.js.map +1 -1
  468. package/es/fragments/drawer-list/DrawerListHelpers.js +5 -2
  469. package/es/fragments/drawer-list/DrawerListHelpers.js.map +1 -1
  470. package/es/shared/Eufemia.d.ts +1 -1
  471. package/es/shared/Eufemia.js +2 -2
  472. package/es/shared/Eufemia.js.map +1 -1
  473. package/es/shared/MediaQuery.js +19 -1
  474. package/es/shared/MediaQuery.js.map +1 -1
  475. package/es/shared/MediaQueryUtils.d.ts +12 -34
  476. package/es/shared/MediaQueryUtils.js +22 -17
  477. package/es/shared/MediaQueryUtils.js.map +1 -1
  478. package/es/shared/component-helper.d.ts +1 -1
  479. package/es/shared/component-helper.js +5 -2
  480. package/es/shared/component-helper.js.map +1 -1
  481. package/es/shared/useMedia.d.ts +7 -2
  482. package/es/shared/useMedia.js +14 -11
  483. package/es/shared/useMedia.js.map +1 -1
  484. package/es/shared/useMediaQuery.js +28 -9
  485. package/es/shared/useMediaQuery.js.map +1 -1
  486. package/es/style/core/scopes.scss +1 -1
  487. package/es/style/dnb-ui-basis.css +2 -3
  488. package/es/style/dnb-ui-basis.min.css +1 -1
  489. package/es/style/dnb-ui-body.css +1 -1
  490. package/es/style/dnb-ui-body.min.css +1 -1
  491. package/es/style/dnb-ui-components.css +110 -42
  492. package/es/style/dnb-ui-components.min.css +3 -3
  493. package/es/style/dnb-ui-core.css +2 -3
  494. package/es/style/dnb-ui-core.min.css +1 -1
  495. package/es/style/dnb-ui-extensions.css +4 -5
  496. package/es/style/dnb-ui-extensions.min.css +1 -1
  497. package/es/style/dnb-ui-forms.css +4 -5
  498. package/es/style/dnb-ui-forms.min.css +1 -1
  499. package/es/style/themes/theme-eiendom/eiendom-theme-components.css +139 -51
  500. package/es/style/themes/theme-eiendom/eiendom-theme-components.min.css +10 -6
  501. package/es/style/themes/theme-eiendom/eiendom-theme-extensions.css +8 -5
  502. package/es/style/themes/theme-eiendom/eiendom-theme-extensions.min.css +2 -2
  503. package/es/style/themes/theme-eiendom/eiendom-theme-extensions.scss +1 -0
  504. package/es/style/themes/theme-eiendom/eiendom-theme-forms.css +8 -5
  505. package/es/style/themes/theme-eiendom/eiendom-theme-forms.min.css +2 -2
  506. package/es/style/themes/theme-eiendom/eiendom-theme-forms.scss +1 -0
  507. package/es/style/themes/theme-sbanken/sbanken-theme-components.css +214 -127
  508. package/es/style/themes/theme-sbanken/sbanken-theme-components.min.css +9 -7
  509. package/es/style/themes/theme-sbanken/sbanken-theme-components.scss +2 -2
  510. package/es/style/themes/theme-sbanken/sbanken-theme-extensions.css +5 -5
  511. package/es/style/themes/theme-sbanken/sbanken-theme-extensions.min.css +1 -1
  512. package/es/style/themes/theme-sbanken/sbanken-theme-extensions.scss +1 -0
  513. package/es/style/themes/theme-sbanken/sbanken-theme-forms.css +5 -5
  514. package/es/style/themes/theme-sbanken/sbanken-theme-forms.min.css +1 -1
  515. package/es/style/themes/theme-sbanken/sbanken-theme-forms.scss +1 -0
  516. package/es/style/themes/theme-ui/ui-theme-components.css +139 -51
  517. package/es/style/themes/theme-ui/ui-theme-components.min.css +10 -6
  518. package/es/style/themes/theme-ui/ui-theme-extensions.css +8 -5
  519. package/es/style/themes/theme-ui/ui-theme-extensions.min.css +2 -2
  520. package/es/style/themes/theme-ui/ui-theme-extensions.scss +1 -0
  521. package/es/style/themes/theme-ui/ui-theme-forms.css +8 -5
  522. package/es/style/themes/theme-ui/ui-theme-forms.min.css +2 -2
  523. package/es/style/themes/theme-ui/ui-theme-forms.scss +1 -0
  524. package/esm/dnb-ui-basis.min.mjs +1 -1
  525. package/esm/dnb-ui-components.min.mjs +1 -1
  526. package/esm/dnb-ui-elements.min.mjs +1 -1
  527. package/esm/dnb-ui-extensions.min.mjs +3 -3
  528. package/esm/dnb-ui-lib.min.mjs +1 -1
  529. package/extensions/forms/DataContext/Context.d.ts +20 -9
  530. package/extensions/forms/DataContext/Context.js +2 -3
  531. package/extensions/forms/DataContext/Context.js.map +1 -1
  532. package/extensions/forms/DataContext/Provider/Provider.d.ts +3 -3
  533. package/extensions/forms/DataContext/Provider/Provider.js +69 -32
  534. package/extensions/forms/DataContext/Provider/Provider.js.map +1 -1
  535. package/extensions/forms/DataContext/Provider/ProviderDocs.js +3 -3
  536. package/extensions/forms/DataContext/Provider/ProviderDocs.js.map +1 -1
  537. package/extensions/forms/Field/Boolean/Boolean.d.ts +12 -2
  538. package/extensions/forms/Field/Boolean/Boolean.js +2 -1
  539. package/extensions/forms/Field/Boolean/Boolean.js.map +1 -1
  540. package/extensions/forms/Field/Boolean/BooleanDocs.d.ts +2 -0
  541. package/extensions/forms/Field/Boolean/BooleanDocs.js +18 -0
  542. package/extensions/forms/Field/Boolean/BooleanDocs.js.map +1 -0
  543. package/extensions/forms/Field/FieldDocs.js +2 -2
  544. package/extensions/forms/Field/FieldDocs.js.map +1 -1
  545. package/extensions/forms/Field/Indeterminate/Indeterminate.d.ts +16 -0
  546. package/extensions/forms/Field/Indeterminate/Indeterminate.js +43 -0
  547. package/extensions/forms/Field/Indeterminate/Indeterminate.js.map +1 -0
  548. package/extensions/forms/Field/Indeterminate/IndeterminateDocs.d.ts +2 -0
  549. package/extensions/forms/Field/Indeterminate/IndeterminateDocs.js +29 -0
  550. package/extensions/forms/Field/Indeterminate/IndeterminateDocs.js.map +1 -0
  551. package/extensions/forms/Field/Indeterminate/index.d.ts +2 -0
  552. package/extensions/forms/Field/Indeterminate/index.js +3 -0
  553. package/extensions/forms/Field/Indeterminate/index.js.map +1 -0
  554. package/extensions/forms/Field/Indeterminate/useDependencePaths.d.ts +6 -0
  555. package/extensions/forms/Field/Indeterminate/useDependencePaths.js +75 -0
  556. package/extensions/forms/Field/Indeterminate/useDependencePaths.js.map +1 -0
  557. package/extensions/forms/Field/Name/NameDocs.js +1 -8
  558. package/extensions/forms/Field/Name/NameDocs.js.map +1 -1
  559. package/extensions/forms/Field/Number/Number.js +3 -1
  560. package/extensions/forms/Field/Number/Number.js.map +1 -1
  561. package/extensions/forms/Field/PhoneNumber/PhoneNumber.js +1 -1
  562. package/extensions/forms/Field/PhoneNumber/PhoneNumber.js.map +1 -1
  563. package/extensions/forms/Field/String/String.js.map +1 -1
  564. package/extensions/forms/Field/Toggle/Toggle.d.ts +2 -1
  565. package/extensions/forms/Field/Toggle/Toggle.js +2 -2
  566. package/extensions/forms/Field/Toggle/Toggle.js.map +1 -1
  567. package/extensions/forms/Field/Toggle/ToggleDocs.d.ts +2 -0
  568. package/extensions/forms/Field/Toggle/ToggleDocs.js +28 -0
  569. package/extensions/forms/Field/Toggle/ToggleDocs.js.map +1 -0
  570. package/extensions/forms/Field/index.d.ts +1 -0
  571. package/extensions/forms/Field/index.js +1 -0
  572. package/extensions/forms/Field/index.js.map +1 -1
  573. package/extensions/forms/FieldBlock/FieldBlock.js +5 -0
  574. package/extensions/forms/FieldBlock/FieldBlock.js.map +1 -1
  575. package/extensions/forms/FieldBlock/FieldBlockDocs.d.ts +1 -0
  576. package/extensions/forms/FieldBlock/FieldBlockDocs.js +20 -15
  577. package/extensions/forms/FieldBlock/FieldBlockDocs.js.map +1 -1
  578. package/extensions/forms/FieldBlock/style/dnb-field-block.css +1 -3
  579. package/extensions/forms/FieldBlock/style/dnb-field-block.min.css +1 -1
  580. package/extensions/forms/FieldBlock/style/dnb-field-block.scss +1 -2
  581. package/extensions/forms/Form/Element/Element.js +1 -1
  582. package/extensions/forms/Form/Element/Element.js.map +1 -1
  583. package/extensions/forms/Form/Handler/Handler.js +2 -2
  584. package/extensions/forms/Form/Handler/Handler.js.map +1 -1
  585. package/extensions/forms/Form/Handler/HandlerDocs.js +5 -0
  586. package/extensions/forms/Form/Handler/HandlerDocs.js.map +1 -1
  587. package/extensions/forms/Form/SubmitButton/SubmitButton.js +3 -3
  588. package/extensions/forms/Form/SubmitButton/SubmitButton.js.map +1 -1
  589. package/extensions/forms/Form/Tools/GenerateSchema.d.ts +8 -0
  590. package/extensions/forms/Form/Tools/GenerateSchema.js +90 -0
  591. package/extensions/forms/Form/Tools/GenerateSchema.js.map +1 -0
  592. package/extensions/forms/Form/Tools/index.d.ts +1 -0
  593. package/extensions/forms/Form/Tools/index.js +1 -0
  594. package/extensions/forms/Form/Tools/index.js.map +1 -0
  595. package/extensions/forms/Form/Visibility/Visibility.d.ts +19 -5
  596. package/extensions/forms/Form/Visibility/Visibility.js +41 -10
  597. package/extensions/forms/Form/Visibility/Visibility.js.map +1 -1
  598. package/extensions/forms/Form/Visibility/VisibilityDocs.js +11 -6
  599. package/extensions/forms/Form/Visibility/VisibilityDocs.js.map +1 -1
  600. package/extensions/forms/Form/data-context/useData.d.ts +1 -1
  601. package/extensions/forms/Form/data-context/useData.js +2 -2
  602. package/extensions/forms/Form/data-context/useData.js.map +1 -1
  603. package/extensions/forms/Form/data-context/useError.d.ts +1 -0
  604. package/extensions/forms/Form/data-context/useError.js +5 -3
  605. package/extensions/forms/Form/data-context/useError.js.map +1 -1
  606. package/extensions/forms/Form/index.d.ts +1 -0
  607. package/extensions/forms/Form/index.js +2 -0
  608. package/extensions/forms/Form/index.js.map +1 -1
  609. package/extensions/forms/Iterate/AnimatedContainer/ElementBlock.d.ts +8 -1
  610. package/extensions/forms/Iterate/AnimatedContainer/ElementBlock.js +4 -3
  611. package/extensions/forms/Iterate/AnimatedContainer/ElementBlock.js.map +1 -1
  612. package/extensions/forms/Iterate/EditContainer/EditContainer.d.ts +2 -1
  613. package/extensions/forms/Iterate/EditContainer/EditContainer.js.map +1 -1
  614. package/extensions/forms/Iterate/EditContainer/EditContainerDocs.js +5 -0
  615. package/extensions/forms/Iterate/EditContainer/EditContainerDocs.js.map +1 -1
  616. package/extensions/forms/Iterate/EditContainer/EditToolbarTools.js +1 -1
  617. package/extensions/forms/Iterate/EditContainer/EditToolbarTools.js.map +1 -1
  618. package/extensions/forms/Iterate/Toolbar/Toolbar.js +1 -1
  619. package/extensions/forms/Iterate/Toolbar/Toolbar.js.map +1 -1
  620. package/extensions/forms/Iterate/ViewContainer/ViewContainer.d.ts +2 -1
  621. package/extensions/forms/Iterate/ViewContainer/ViewContainer.js.map +1 -1
  622. package/extensions/forms/Iterate/ViewContainer/ViewContainerDocs.js +5 -0
  623. package/extensions/forms/Iterate/ViewContainer/ViewContainerDocs.js.map +1 -1
  624. package/extensions/forms/Iterate/ViewContainer/ViewToolbarTools.js +1 -1
  625. package/extensions/forms/Iterate/ViewContainer/ViewToolbarTools.js.map +1 -1
  626. package/extensions/forms/Iterate/style/dnb-form-iterate.css +3 -1
  627. package/extensions/forms/Iterate/style/dnb-form-iterate.min.css +1 -1
  628. package/extensions/forms/Iterate/style/dnb-form-iterate.scss +4 -1
  629. package/extensions/forms/ValueBlock/ValueBlock.js +4 -2
  630. package/extensions/forms/ValueBlock/ValueBlock.js.map +1 -1
  631. package/extensions/forms/Wizard/Container/WizardContainer.d.ts +31 -2
  632. package/extensions/forms/Wizard/Container/WizardContainer.js +105 -31
  633. package/extensions/forms/Wizard/Container/WizardContainer.js.map +1 -1
  634. package/extensions/forms/Wizard/Context/WizardContext.d.ts +4 -0
  635. package/extensions/forms/Wizard/Context/WizardContext.js.map +1 -1
  636. package/extensions/forms/Wizard/Step/Step.d.ts +10 -1
  637. package/extensions/forms/Wizard/Step/Step.js +15 -6
  638. package/extensions/forms/Wizard/Step/Step.js.map +1 -1
  639. package/extensions/forms/Wizard/Step/StepDocs.js +5 -0
  640. package/extensions/forms/Wizard/Step/StepDocs.js.map +1 -1
  641. package/extensions/forms/Wizard/style/dnb-wizard-layout.css +0 -1
  642. package/extensions/forms/Wizard/style/dnb-wizard-layout.min.css +1 -1
  643. package/extensions/forms/Wizard/style/dnb-wizard-layout.scss +0 -1
  644. package/extensions/forms/Wizard/style/themes/dnb-wizard-layout-theme-sbanken.css +1 -0
  645. package/extensions/forms/Wizard/style/themes/dnb-wizard-layout-theme-sbanken.min.css +0 -0
  646. package/extensions/forms/Wizard/style/themes/dnb-wizard-layout-theme-sbanken.scss +1 -0
  647. package/extensions/forms/Wizard/style/themes/dnb-wizard-layout-theme-ui.css +3 -0
  648. package/extensions/forms/Wizard/style/themes/dnb-wizard-layout-theme-ui.min.css +1 -0
  649. package/extensions/forms/Wizard/style/themes/dnb-wizard-layout-theme-ui.scss +7 -0
  650. package/extensions/forms/hooks/useFieldProps.js +71 -32
  651. package/extensions/forms/hooks/useFieldProps.js.map +1 -1
  652. package/extensions/forms/style/dnb-forms.css +4 -5
  653. package/extensions/forms/style/dnb-forms.min.css +1 -1
  654. package/extensions/forms/types.d.ts +9 -0
  655. package/extensions/forms/types.js.map +1 -1
  656. package/fragments/drawer-list/DrawerListHelpers.js +5 -2
  657. package/fragments/drawer-list/DrawerListHelpers.js.map +1 -1
  658. package/package.json +1 -1
  659. package/shared/Eufemia.d.ts +1 -1
  660. package/shared/Eufemia.js +2 -2
  661. package/shared/Eufemia.js.map +1 -1
  662. package/shared/MediaQuery.js +19 -1
  663. package/shared/MediaQuery.js.map +1 -1
  664. package/shared/MediaQueryUtils.d.ts +12 -34
  665. package/shared/MediaQueryUtils.js +22 -12
  666. package/shared/MediaQueryUtils.js.map +1 -1
  667. package/shared/component-helper.d.ts +1 -1
  668. package/shared/component-helper.js +5 -1
  669. package/shared/component-helper.js.map +1 -1
  670. package/shared/useMedia.d.ts +7 -2
  671. package/shared/useMedia.js +14 -11
  672. package/shared/useMedia.js.map +1 -1
  673. package/shared/useMediaQuery.js +28 -9
  674. package/shared/useMediaQuery.js.map +1 -1
  675. package/style/core/scopes.scss +1 -1
  676. package/style/dnb-ui-basis.css +2 -3
  677. package/style/dnb-ui-basis.min.css +1 -1
  678. package/style/dnb-ui-body.css +1 -1
  679. package/style/dnb-ui-body.min.css +1 -1
  680. package/style/dnb-ui-components.css +110 -42
  681. package/style/dnb-ui-components.min.css +3 -3
  682. package/style/dnb-ui-core.css +2 -3
  683. package/style/dnb-ui-core.min.css +1 -1
  684. package/style/dnb-ui-extensions.css +4 -5
  685. package/style/dnb-ui-extensions.min.css +1 -1
  686. package/style/dnb-ui-forms.css +4 -5
  687. package/style/dnb-ui-forms.min.css +1 -1
  688. package/style/themes/theme-eiendom/eiendom-theme-components.css +139 -51
  689. package/style/themes/theme-eiendom/eiendom-theme-components.min.css +10 -6
  690. package/style/themes/theme-eiendom/eiendom-theme-extensions.css +8 -5
  691. package/style/themes/theme-eiendom/eiendom-theme-extensions.min.css +2 -2
  692. package/style/themes/theme-eiendom/eiendom-theme-extensions.scss +1 -0
  693. package/style/themes/theme-eiendom/eiendom-theme-forms.css +8 -5
  694. package/style/themes/theme-eiendom/eiendom-theme-forms.min.css +2 -2
  695. package/style/themes/theme-eiendom/eiendom-theme-forms.scss +1 -0
  696. package/style/themes/theme-sbanken/sbanken-theme-components.css +214 -127
  697. package/style/themes/theme-sbanken/sbanken-theme-components.min.css +9 -7
  698. package/style/themes/theme-sbanken/sbanken-theme-components.scss +2 -2
  699. package/style/themes/theme-sbanken/sbanken-theme-extensions.css +5 -5
  700. package/style/themes/theme-sbanken/sbanken-theme-extensions.min.css +1 -1
  701. package/style/themes/theme-sbanken/sbanken-theme-extensions.scss +1 -0
  702. package/style/themes/theme-sbanken/sbanken-theme-forms.css +5 -5
  703. package/style/themes/theme-sbanken/sbanken-theme-forms.min.css +1 -1
  704. package/style/themes/theme-sbanken/sbanken-theme-forms.scss +1 -0
  705. package/style/themes/theme-ui/ui-theme-components.css +139 -51
  706. package/style/themes/theme-ui/ui-theme-components.min.css +10 -6
  707. package/style/themes/theme-ui/ui-theme-extensions.css +8 -5
  708. package/style/themes/theme-ui/ui-theme-extensions.min.css +2 -2
  709. package/style/themes/theme-ui/ui-theme-extensions.scss +1 -0
  710. package/style/themes/theme-ui/ui-theme-forms.css +8 -5
  711. package/style/themes/theme-ui/ui-theme-forms.min.css +2 -2
  712. package/style/themes/theme-ui/ui-theme-forms.scss +1 -0
  713. package/umd/dnb-ui-basis.min.js +1 -1
  714. package/umd/dnb-ui-components.min.js +1 -1
  715. package/umd/dnb-ui-elements.min.js +1 -1
  716. package/umd/dnb-ui-extensions.min.js +3 -3
  717. package/umd/dnb-ui-lib.min.js +1 -1
@@ -4,19 +4,22 @@
4
4
  */
5
5
 
6
6
  .dnb-checkbox {
7
+ --checkbox-border-width: 0.125rem;
8
+ --checkbox-border-width--hover: 0.125rem;
7
9
  // Normal state
8
10
  --checkbox-color-gfx-on: var(--sb-color-violet-light);
9
- --checkbox-color-gfx-off: var(--sb-color-violet-light);
11
+ --checkbox-color-gfx-off: var(--sb-color-white);
10
12
  --checkbox-color-background-on: var(--sb-color-white);
11
13
  --checkbox-color-background-off: var(--sb-color-white);
12
14
  --checkbox-color-border-on: var(--sb-color-violet);
13
15
  --checkbox-color-border-off: var(--sb-color-violet);
14
16
  // Disabled state
15
17
  --checkbox-color-gfx--disabled: var(--sb-color-gray-dark);
16
- --checkbox-color-background-on--disabled: var(--sb-color-gray-light);
17
18
  --checkbox-color-background-off--disabled: var(--sb-color-gray-light);
19
+ --checkbox-color-background-on--disabled: var(--sb-color-gray-light);
18
20
  --checkbox-color-border-on--disabled: var(--sb-color-gray-dark);
19
21
  --checkbox-color-border-off--disabled: var(--sb-color-gray-dark);
22
+ --checkbox-color-gfx__indeterminate--disabled: var(--sb-color-gray-dark);
20
23
  // Active state
21
24
  --checkbox-color-background--active: var(--sb-color-white);
22
25
  --checkbox-color-border--active: var(--sb-color-gray);
@@ -36,4 +39,27 @@
36
39
  --sb-color-magenta-light-2
37
40
  );
38
41
  --checkbox-color-border--error: var(--sb-color-magenta);
42
+ // Error Hover state
43
+ --checkbox-color-gfx--error--hover: var(--sb-color-magenta);
44
+ --checkbox-color-background--error--hover: var(
45
+ --sb-color-magenta-light-3
46
+ );
47
+ --checkbox-color-border--error--hover: transparent;
48
+ // Indeterminate state
49
+ --checkbox-color-background-indeterminate: var(--sb-color-white);
50
+ --checkbox-color-gfx-indeterminate: var(--sb-color-violet);
51
+ // Indeterminate Active state
52
+ --checkbox-color-background-indeterminate--active: var(--color-white);
53
+ --checkbox-color-border-indeterminate--active: var(--sb-color-gray);
54
+ --checkbox-color-gfx-indeterminate--active: var(--sb-color-violet);
55
+
56
+ // Indeterminate Error state
57
+ --checkbox-color-gfx-indeterminate--error: var(--sb-color-magenta);
58
+ // Indeterminate shape
59
+ --checkbox-gfx-width__indeterminate: 0.875rem;
60
+ --checkbox-gfx-height__indeterminate: 0.125rem;
61
+ --checkbox-gfx-height__indeterminate--large: 0.25rem;
62
+ --checkbox-gfx-width__indeterminate--large: 1.5rem;
63
+ --checkbox-border-radius: 0.125rem;
64
+ --checkbox-gfx-border-radius__indeterminate: 0rem;
39
65
  }
@@ -4,7 +4,7 @@
4
4
  */
5
5
  .dnb-checkbox {
6
6
  --checkbox-color-gfx-on: var(--color-white);
7
- --checkbox-color-gfx-off: var(--color-sea-green);
7
+ --checkbox-color-gfx-off: var(--color-white);
8
8
  --checkbox-color-background-on: var(--color-sea-green);
9
9
  --checkbox-color-background-off: var(--color-white);
10
10
  --checkbox-color-border-on: transparent;
@@ -14,17 +14,35 @@
14
14
  --checkbox-color-background-off--disabled: var(--color-white);
15
15
  --checkbox-color-border-on--disabled: transparent;
16
16
  --checkbox-color-border-off--disabled: var(--color-mint-green-50);
17
+ --checkbox-color-gfx__indeterminate--disabled: var(
18
+ --color-mint-green-50
19
+ );
17
20
  --checkbox-color-background--active: var(--color-mint-green-50);
18
21
  --checkbox-color-border--active: transparent;
19
22
  --checkbox-color-gfx--hover: var(--color-sea-green);
20
23
  --checkbox-color-background--hover: var(--color-mint-green-50);
21
24
  --checkbox-color-border-on--hover: transparent;
22
25
  --checkbox-color-border-off--hover: var(--color-sea-green);
23
- --checkbox-color-gfx--focus: var(--color-sea-green);
26
+ --checkbox-color-gfx--focus: var(--color-emerald-green);
24
27
  --checkbox-color-background--focus: var(--color-mint-green-50);
25
28
  --checkbox-color-gfx--error: var(--color-fire-red-8);
26
29
  --checkbox-color-gfx--error-contrast: var(--color-fire-red);
27
30
  --checkbox-color-background-on--error: var(--color-fire-red);
28
31
  --checkbox-color-background--error-contrast: var(--color-fire-red-8);
29
32
  --checkbox-color-border--error: var(--color-fire-red);
33
+ --checkbox-color-gfx--error--hover: var(--color-fire-red);
34
+ --checkbox-color-background--error--hover: var(--color-fire-red-8);
35
+ --checkbox-color-border--error--hover: var(--color-fire-red);
36
+ --checkbox-color-background-indeterminate: var(--color-white);
37
+ --checkbox-color-gfx-indeterminate: var(--color-sea-green);
38
+ --checkbox-color-background-indeterminate--active: var(--color-white);
39
+ --checkbox-color-border-indeterminate--active: var(
40
+ --color-mint-green-50
41
+ );
42
+ --checkbox-color-gfx-indeterminate--active: var(--color-mint-green-50);
43
+ --checkbox-color-gfx-indeterminate--error: var(--color-fire-red);
44
+ --checkbox-gfx-height__indeterminate: 0.625rem;
45
+ --checkbox-gfx-width__indeterminate: 0.625rem;
46
+ --checkbox-gfx-height__indeterminate--large: 0.875rem;
47
+ --checkbox-gfx-width__indeterminate--large: 0.875rem;
30
48
  }
@@ -1 +1,5 @@
1
- .dnb-checkbox{--checkbox-color-gfx-on:var(--color-white);--checkbox-color-gfx-off:var(--color-sea-green);--checkbox-color-background-on:var(--color-sea-green);--checkbox-color-background-off:var(--color-white);--checkbox-color-border-on:transparent;--checkbox-color-border-off:var(--color-sea-green);--checkbox-color-gfx--disabled:var(--checkbox-color-gfx-on);--checkbox-color-background-on--disabled:var(--color-sea-green-30);--checkbox-color-background-off--disabled:var(--color-white);--checkbox-color-border-on--disabled:transparent;--checkbox-color-border-off--disabled:var(--color-mint-green-50);--checkbox-color-background--active:var(--color-mint-green-50);--checkbox-color-border--active:transparent;--checkbox-color-gfx--hover:var(--color-sea-green);--checkbox-color-background--hover:var(--color-mint-green-50);--checkbox-color-border-on--hover:transparent;--checkbox-color-border-off--hover:var(--color-sea-green);--checkbox-color-gfx--focus:var(--color-sea-green);--checkbox-color-background--focus:var(--color-mint-green-50);--checkbox-color-gfx--error:var(--color-fire-red-8);--checkbox-color-gfx--error-contrast:var(--color-fire-red);--checkbox-color-background-on--error:var(--color-fire-red);--checkbox-color-background--error-contrast:var(--color-fire-red-8);--checkbox-color-border--error:var(--color-fire-red)}
1
+ .dnb-checkbox{--checkbox-color-gfx-on:var(--color-white);--checkbox-color-gfx-off:var(--color-white);--checkbox-color-background-on:var(--color-sea-green);--checkbox-color-background-off:var(--color-white);--checkbox-color-border-on:transparent;--checkbox-color-border-off:var(--color-sea-green);--checkbox-color-gfx--disabled:var(--checkbox-color-gfx-on);--checkbox-color-background-on--disabled:var(--color-sea-green-30);--checkbox-color-background-off--disabled:var(--color-white);--checkbox-color-border-on--disabled:transparent;--checkbox-color-border-off--disabled:var(--color-mint-green-50);--checkbox-color-gfx__indeterminate--disabled:var(
2
+ --color-mint-green-50
3
+ );--checkbox-color-background--active:var(--color-mint-green-50);--checkbox-color-border--active:transparent;--checkbox-color-gfx--hover:var(--color-sea-green);--checkbox-color-background--hover:var(--color-mint-green-50);--checkbox-color-border-on--hover:transparent;--checkbox-color-border-off--hover:var(--color-sea-green);--checkbox-color-gfx--focus:var(--color-emerald-green);--checkbox-color-background--focus:var(--color-mint-green-50);--checkbox-color-gfx--error:var(--color-fire-red-8);--checkbox-color-gfx--error-contrast:var(--color-fire-red);--checkbox-color-background-on--error:var(--color-fire-red);--checkbox-color-background--error-contrast:var(--color-fire-red-8);--checkbox-color-border--error:var(--color-fire-red);--checkbox-color-gfx--error--hover:var(--color-fire-red);--checkbox-color-background--error--hover:var(--color-fire-red-8);--checkbox-color-border--error--hover:var(--color-fire-red);--checkbox-color-background-indeterminate:var(--color-white);--checkbox-color-gfx-indeterminate:var(--color-sea-green);--checkbox-color-background-indeterminate--active:var(--color-white);--checkbox-color-border-indeterminate--active:var(
4
+ --color-mint-green-50
5
+ );--checkbox-color-gfx-indeterminate--active:var(--color-mint-green-50);--checkbox-color-gfx-indeterminate--error:var(--color-fire-red);--checkbox-gfx-height__indeterminate:0.625rem;--checkbox-gfx-width__indeterminate:0.625rem;--checkbox-gfx-height__indeterminate--large:0.875rem;--checkbox-gfx-width__indeterminate--large:0.875rem}
@@ -6,7 +6,7 @@
6
6
  .dnb-checkbox {
7
7
  // Normal state
8
8
  --checkbox-color-gfx-on: var(--color-white);
9
- --checkbox-color-gfx-off: var(--color-sea-green);
9
+ --checkbox-color-gfx-off: var(--color-white);
10
10
  --checkbox-color-background-on: var(--color-sea-green);
11
11
  --checkbox-color-background-off: var(--color-white);
12
12
  --checkbox-color-border-on: transparent;
@@ -17,6 +17,9 @@
17
17
  --checkbox-color-background-off--disabled: var(--color-white);
18
18
  --checkbox-color-border-on--disabled: transparent;
19
19
  --checkbox-color-border-off--disabled: var(--color-mint-green-50);
20
+ --checkbox-color-gfx__indeterminate--disabled: var(
21
+ --color-mint-green-50
22
+ );
20
23
  // Active state
21
24
  --checkbox-color-background--active: var(--color-mint-green-50);
22
25
  --checkbox-color-border--active: transparent;
@@ -26,7 +29,7 @@
26
29
  --checkbox-color-border-on--hover: transparent;
27
30
  --checkbox-color-border-off--hover: var(--color-sea-green);
28
31
  // Focus state
29
- --checkbox-color-gfx--focus: var(--color-sea-green);
32
+ --checkbox-color-gfx--focus: var(--color-emerald-green);
30
33
  --checkbox-color-background--focus: var(--color-mint-green-50);
31
34
  // Error state
32
35
  --checkbox-color-gfx--error: var(--color-fire-red-8);
@@ -34,4 +37,24 @@
34
37
  --checkbox-color-background-on--error: var(--color-fire-red);
35
38
  --checkbox-color-background--error-contrast: var(--color-fire-red-8);
36
39
  --checkbox-color-border--error: var(--color-fire-red);
40
+ // Error Hover state
41
+ --checkbox-color-gfx--error--hover: var(--color-fire-red);
42
+ --checkbox-color-background--error--hover: var(--color-fire-red-8);
43
+ --checkbox-color-border--error--hover: var(--color-fire-red);
44
+ // Indeterminate state
45
+ --checkbox-color-background-indeterminate: var(--color-white);
46
+ --checkbox-color-gfx-indeterminate: var(--color-sea-green);
47
+ // Indeterminate Active state
48
+ --checkbox-color-background-indeterminate--active: var(--color-white);
49
+ --checkbox-color-border-indeterminate--active: var(
50
+ --color-mint-green-50
51
+ );
52
+ --checkbox-color-gfx-indeterminate--active: var(--color-mint-green-50);
53
+ // Indeterminate Error state
54
+ --checkbox-color-gfx-indeterminate--error: var(--color-fire-red);
55
+ // Indeterminate shape
56
+ --checkbox-gfx-height__indeterminate: 0.625rem;
57
+ --checkbox-gfx-width__indeterminate: 0.625rem;
58
+ --checkbox-gfx-height__indeterminate--large: 0.875rem;
59
+ --checkbox-gfx-width__indeterminate--large: 0.875rem;
37
60
  }
@@ -2,6 +2,7 @@ import React from 'react';
2
2
  import { SpaceProps } from '../space/Space';
3
3
  import type { MediaQueryBreakpoints } from '../../shared/MediaQueryUtils';
4
4
  import type { UseMediaQueries } from '../../shared/useMedia';
5
+ type Gap = false | 'xx-small' | 'x-small' | 'small' | 'medium' | 'large' | 'x-large' | 'xx-large';
5
6
  export type BasicProps = {
6
7
  direction?: 'horizontal' | 'vertical';
7
8
  wrap?: boolean;
@@ -14,7 +15,9 @@ export type BasicProps = {
14
15
  /** When "line-framed" is used, a line will be shown between items and above the first and below the last item */
15
16
  divider?: 'space' | 'line' | 'line-framed';
16
17
  /** Spacing between items inside */
17
- spacing?: false | 'xx-small' | 'x-small' | 'small' | 'medium' | 'large' | 'x-large' | 'xx-large';
18
+ gap?: Gap;
19
+ /** @deprecated Use `gap` instead */
20
+ spacing?: Gap;
18
21
  breakpoints?: MediaQueryBreakpoints;
19
22
  queries?: UseMediaQueries;
20
23
  };
@@ -3,7 +3,7 @@
3
3
  import _extends from "@babel/runtime/helpers/esm/extends";
4
4
  import _objectWithoutProperties from "@babel/runtime/helpers/esm/objectWithoutProperties";
5
5
  import _defineProperty from "@babel/runtime/helpers/esm/defineProperty";
6
- const _excluded = ["className", "style", "children", "element", "direction", "wrap", "sizeCount", "rowGap", "justify", "align", "alignSelf", "divider", "spacing", "breakpoints", "queries"];
6
+ const _excluded = ["className", "style", "children", "element", "direction", "wrap", "sizeCount", "rowGap", "justify", "align", "alignSelf", "divider", "gap", "spacing", "breakpoints", "queries"];
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, { useCallback } from 'react';
@@ -12,11 +12,12 @@ import Space from '../space/Space';
12
12
  import { Hr } from '../../elements';
13
13
  import useMedia from '../../shared/useMedia';
14
14
  import { getSpaceValue, isHeadingElement, renderWithSpacing } from './utils';
15
- const propNames = ['direction', 'wrap', 'justify', 'align', 'divider', 'spacing'];
15
+ const propNames = ['direction', 'wrap', 'justify', 'align', 'divider', 'spacing', 'gap'];
16
16
  export function pickFlexContainerProps(props, defaults = {}, skip = []) {
17
17
  return _objectSpread(_objectSpread({}, defaults), Object.fromEntries(Object.entries(props !== null && props !== void 0 ? props : {}).filter(([key]) => propNames.includes(key) && !skip.includes(key))));
18
18
  }
19
19
  function FlexContainer(props) {
20
+ var _ref;
20
21
  const {
21
22
  className,
22
23
  style,
@@ -30,11 +31,13 @@ function FlexContainer(props) {
30
31
  align = 'flex-start',
31
32
  alignSelf,
32
33
  divider = 'space',
33
- spacing = 'small',
34
+ gap,
35
+ spacing: spacingProp,
34
36
  breakpoints,
35
37
  queries
36
38
  } = props,
37
39
  rest = _objectWithoutProperties(props, _excluded);
40
+ const spacing = (_ref = spacingProp !== null && spacingProp !== void 0 ? spacingProp : gap) !== null && _ref !== void 0 ? _ref : 'small';
38
41
  const childrenArray = wrapChildren(props, children);
39
42
  const hasHeading = childrenArray.some((child, i) => {
40
43
  const previousChild = childrenArray === null || childrenArray === void 0 ? void 0 : childrenArray[i - 1];
@@ -62,9 +65,9 @@ function FlexContainer(props) {
62
65
  const endSpacing = 0;
63
66
  let startSpacing = null;
64
67
  if (!isHeading && (divider === 'line' && !isFirst || divider === 'line-framed')) {
65
- var _getSpaceValue, _getSpaceValue2;
68
+ var _getSpaceValue, _ref2, _getSpaceValue2;
66
69
  const spaceAboveLine = (_getSpaceValue = getSpaceValue(end, previousChild)) !== null && _getSpaceValue !== void 0 ? _getSpaceValue : spacing;
67
- startSpacing = (_getSpaceValue2 = getSpaceValue(start, child)) !== null && _getSpaceValue2 !== void 0 ? _getSpaceValue2 : spacing;
70
+ startSpacing = (_ref2 = (_getSpaceValue2 = getSpaceValue(start, child)) !== null && _getSpaceValue2 !== void 0 ? _getSpaceValue2 : gap) !== null && _ref2 !== void 0 ? _ref2 : spacing;
68
71
  return React.createElement(React.Fragment, {
69
72
  key: `element-${i}`
70
73
  }, React.createElement(Hr, {
@@ -85,8 +88,8 @@ function FlexContainer(props) {
85
88
  if (isFirst && direction !== 'horizontal') {
86
89
  startSpacing = 0;
87
90
  } else {
88
- var _ref, _getSpaceValue3;
89
- startSpacing = (_ref = (_getSpaceValue3 = getSpaceValue(start, child)) !== null && _getSpaceValue3 !== void 0 ? _getSpaceValue3 : getSpaceValue(end, previousChild)) !== null && _ref !== void 0 ? _ref : spacing;
91
+ var _ref3, _ref4, _getSpaceValue3;
92
+ startSpacing = (_ref3 = (_ref4 = (_getSpaceValue3 = getSpaceValue(start, child)) !== null && _getSpaceValue3 !== void 0 ? _getSpaceValue3 : getSpaceValue(end, previousChild)) !== null && _ref4 !== void 0 ? _ref4 : gap) !== null && _ref3 !== void 0 ? _ref3 : spacing;
90
93
  }
91
94
  if (React.isValidElement(previousChild) && (previousChild === null || previousChild === void 0 ? void 0 : (_previousChild$type = previousChild.type) === null || _previousChild$type === void 0 ? void 0 : _previousChild$type['_supportsSpacingProps']) === false) {
92
95
  startSpacing = 0;
@@ -1 +1 @@
1
- {"version":3,"file":"Container.js","names":["React","useCallback","classnames","Space","Hr","useMedia","getSpaceValue","isHeadingElement","renderWithSpacing","propNames","pickFlexContainerProps","props","defaults","skip","_objectSpread","Object","fromEntries","entries","filter","key","includes","FlexContainer","className","style","children","element","direction","wrap","sizeCount","rowGap","justify","align","alignSelf","divider","spacing","breakpoints","queries","rest","_objectWithoutProperties","_excluded","childrenArray","wrapChildren","hasHeading","some","child","i","previousChild","hasSizeProp","_child$props","size","mediaKey","disabled","content","map","_previousChild$type","isFirst","isLast","length","isHeading","start","end","endSpacing","startSpacing","_getSpaceValue","_getSpaceValue2","spaceAboveLine","createElement","Fragment","top","space","_ref","_getSpaceValue3","isValidElement","type","n","getRowGapClass","cn","_extends","Children","toArray","cloneElement","_supportsSpacingProps"],"sources":["../../../../src/components/flex/Container.tsx"],"sourcesContent":["import React, { useCallback } from 'react'\nimport classnames from 'classnames'\nimport Space, { SpaceProps } from '../space/Space'\nimport { Hr } from '../../elements'\nimport useMedia from '../../shared/useMedia'\nimport {\n getSpaceValue,\n isHeadingElement,\n renderWithSpacing,\n} from './utils'\n\nimport type { MediaQueryBreakpoints } from '../../shared/MediaQueryUtils'\nimport type { SpaceType } from '../space/types'\nimport type { UseMediaQueries } from '../../shared/useMedia'\nimport type { End, Start } from './types'\n\nexport type BasicProps = {\n direction?: 'horizontal' | 'vertical'\n wrap?: boolean\n rowGap?: 'small' | 'medium' | 'large' | boolean\n sizeCount?: number\n justify?:\n | 'flex-start'\n | 'flex-end'\n | 'center'\n | 'space-between'\n | 'space-around'\n | 'space-evenly'\n align?: 'flex-start' | 'flex-end' | 'center' | 'stretch' | 'baseline'\n /** For when used as a flex item in an outer container in addition to being a container: */\n alignSelf?: 'flex-start' | 'flex-end' | 'center' | 'baseline' | 'stretch'\n /** When \"line-framed\" is used, a line will be shown between items and above the first and below the last item */\n divider?: 'space' | 'line' | 'line-framed'\n /** Spacing between items inside */\n spacing?:\n | false\n | 'xx-small'\n | 'x-small'\n | 'small'\n | 'medium'\n | 'large'\n | 'x-large'\n | 'xx-large'\n breakpoints?: MediaQueryBreakpoints\n queries?: UseMediaQueries\n}\n\nexport type Props = BasicProps &\n SpaceProps &\n Omit<\n React.HTMLAttributes<HTMLDivElement>,\n 'ref' | 'wrap' | 'value' | 'label' | 'title' | 'placeholder'\n >\n\nconst propNames: Array<keyof Props> = [\n 'direction',\n 'wrap',\n 'justify',\n 'align',\n 'divider',\n 'spacing',\n]\n\nexport function pickFlexContainerProps<T extends Props>(\n props: T,\n defaults: Partial<Props> = {},\n skip: Array<keyof Props> = []\n): Omit<Props, 'children'> {\n return {\n ...defaults,\n ...Object.fromEntries(\n Object.entries(props ?? {}).filter(\n ([key]) =>\n propNames.includes(key as keyof Props) &&\n !skip.includes(key as keyof Props)\n )\n ),\n }\n}\n\nfunction FlexContainer(props: Props) {\n const {\n className,\n style,\n children,\n element = 'div',\n direction = 'horizontal',\n wrap = true,\n sizeCount = 12,\n rowGap,\n justify = 'flex-start',\n align = 'flex-start',\n alignSelf,\n divider = 'space',\n spacing = 'small',\n breakpoints,\n queries,\n ...rest\n } = props\n\n const childrenArray = wrapChildren(props, children)\n const hasHeading = childrenArray.some((child, i) => {\n const previousChild = childrenArray?.[i - 1]\n return (\n isHeadingElement(child) || (i > 0 && isHeadingElement(previousChild))\n )\n })\n const hasSizeProp =\n !hasHeading &&\n direction === 'horizontal' &&\n childrenArray.some((child) => child['props']?.size)\n\n const { key: mediaKey } = useMedia({\n disabled: !hasSizeProp,\n breakpoints,\n queries,\n })\n\n const content = childrenArray.map((child, i) => {\n // Set spacing on child components by props (instead of CSS) to be able to dynamically override by props on each child. The default\n // is the spacing-props that controls space between children. Then override with props sent to the children, including both top\n // and bottom when th\n const isFirst = i === 0\n const isLast = i >= childrenArray.length - 1\n const previousChild = childrenArray?.[i - 1]\n const isHeading = hasHeading && isHeadingElement(previousChild)\n\n // Always set spacing between elements in the vertical layout on the top props, and 0 on bottom, to avoid\n // having to divide spacing between both with smaller values.\n const start: Start = direction === 'horizontal' ? 'left' : 'top'\n const end: End = direction === 'horizontal' ? 'right' : 'bottom'\n // const start: Start | End = direction === 'horizontal' ? 'right' : 'top'\n // const end: Start | End = direction === 'horizontal' ? 'left' : 'bottom'\n const endSpacing = 0\n let startSpacing = null\n\n if (\n // No line above heading\n !isHeading &&\n ((divider === 'line' && !isFirst) || divider === 'line-framed')\n ) {\n const spaceAboveLine = getSpaceValue(end, previousChild) ?? spacing\n startSpacing = (getSpaceValue(start, child) ?? spacing) as SpaceType\n\n return (\n <React.Fragment key={`element-${i}`}>\n <Hr\n top={!isFirst ? spaceAboveLine : 0}\n space={0}\n className=\"dnb-flex-container__hr\"\n />\n\n {renderWithSpacing(child, {\n space: { [start]: startSpacing, [end]: endSpacing },\n })}\n\n {divider === 'line-framed' && isLast && (\n <Hr\n top={spaceAboveLine}\n space={0}\n className=\"dnb-flex-container__hr\"\n />\n )}\n </React.Fragment>\n )\n }\n\n // No space above first element.\n if (isFirst && direction !== 'horizontal') {\n startSpacing = 0\n } else {\n // Since top space of current and bottom space of previous component is the same\n startSpacing =\n getSpaceValue(start, child) ??\n getSpaceValue(end, previousChild) ??\n spacing\n }\n\n if (\n React.isValidElement(previousChild) &&\n previousChild?.type?.['_supportsSpacingProps'] === false\n ) {\n startSpacing = 0\n }\n\n const space =\n direction === 'horizontal'\n ? { [start]: endSpacing, [end]: startSpacing }\n : { [start]: startSpacing, [end]: endSpacing }\n\n return renderWithSpacing(child, {\n key: child?.['key'] || `element-${i}`,\n space,\n })\n })\n\n const n = 'dnb-flex-container'\n const getRowGapClass = useCallback(() => {\n if (rowGap === false) {\n return `${n}--row-gap-off`\n }\n\n if (\n rowGap === true ||\n (!rowGap && wrap && direction === 'horizontal')\n ) {\n return `${n}--row-gap-small`\n }\n\n if (hasSizeProp && spacing) {\n return `${n}--row-gap-${spacing}`\n }\n\n if (rowGap) {\n return `${n}--row-gap-${rowGap}`\n }\n }, [direction, hasSizeProp, rowGap, spacing, wrap])\n\n const cn = classnames(\n 'dnb-flex-container',\n direction && `${n}--direction-${direction}`,\n justify && `${n}--justify-${justify}`,\n align && `${n}--align-${align}`,\n alignSelf && `${n}--align-self-${alignSelf}`,\n spacing && `${n}--spacing-${spacing}`,\n wrap && `${n}--wrap`,\n getRowGapClass(),\n hasSizeProp && `${n}--has-size`,\n divider && `${n}--divider-${divider}`,\n className\n )\n\n return (\n <Space\n element={element}\n className={cn}\n data-media-key={mediaKey}\n style={\n hasSizeProp\n ? ({ '--sizeCount': sizeCount, ...style } as React.CSSProperties)\n : style\n }\n {...rest}\n >\n {content}\n </Space>\n )\n}\n\nfunction wrapChildren(props: Props, children: React.ReactNode) {\n return React.Children.toArray(children).map((child) => {\n if (\n React.isValidElement(child) &&\n child.type['_supportsSpacingProps'] === 'children'\n ) {\n return React.cloneElement(\n child,\n child.props,\n <FlexContainer {...props}>{child.props.children}</FlexContainer>\n )\n }\n\n return child\n })\n}\n\nFlexContainer._supportsSpacingProps = true\n\nexport default FlexContainer\n"],"mappings":"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"}
1
+ {"version":3,"file":"Container.js","names":["React","useCallback","classnames","Space","Hr","useMedia","getSpaceValue","isHeadingElement","renderWithSpacing","propNames","pickFlexContainerProps","props","defaults","skip","_objectSpread","Object","fromEntries","entries","filter","key","includes","FlexContainer","_ref","className","style","children","element","direction","wrap","sizeCount","rowGap","justify","align","alignSelf","divider","gap","spacing","spacingProp","breakpoints","queries","rest","_objectWithoutProperties","_excluded","childrenArray","wrapChildren","hasHeading","some","child","i","previousChild","hasSizeProp","_child$props","size","mediaKey","disabled","content","map","_previousChild$type","isFirst","isLast","length","isHeading","start","end","endSpacing","startSpacing","_getSpaceValue","_ref2","_getSpaceValue2","spaceAboveLine","createElement","Fragment","top","space","_ref3","_ref4","_getSpaceValue3","isValidElement","type","n","getRowGapClass","cn","_extends","Children","toArray","cloneElement","_supportsSpacingProps"],"sources":["../../../../src/components/flex/Container.tsx"],"sourcesContent":["import React, { useCallback } from 'react'\nimport classnames from 'classnames'\nimport Space, { SpaceProps } from '../space/Space'\nimport { Hr } from '../../elements'\nimport useMedia from '../../shared/useMedia'\nimport {\n getSpaceValue,\n isHeadingElement,\n renderWithSpacing,\n} from './utils'\n\nimport type { MediaQueryBreakpoints } from '../../shared/MediaQueryUtils'\nimport type { SpaceType } from '../space/types'\nimport type { UseMediaQueries } from '../../shared/useMedia'\nimport type { End, Start } from './types'\n\ntype Gap =\n | false\n | 'xx-small'\n | 'x-small'\n | 'small'\n | 'medium'\n | 'large'\n | 'x-large'\n | 'xx-large'\n\nexport type BasicProps = {\n direction?: 'horizontal' | 'vertical'\n wrap?: boolean\n rowGap?: 'small' | 'medium' | 'large' | boolean\n sizeCount?: number\n justify?:\n | 'flex-start'\n | 'flex-end'\n | 'center'\n | 'space-between'\n | 'space-around'\n | 'space-evenly'\n align?: 'flex-start' | 'flex-end' | 'center' | 'stretch' | 'baseline'\n /** For when used as a flex item in an outer container in addition to being a container: */\n alignSelf?: 'flex-start' | 'flex-end' | 'center' | 'baseline' | 'stretch'\n /** When \"line-framed\" is used, a line will be shown between items and above the first and below the last item */\n divider?: 'space' | 'line' | 'line-framed'\n /** Spacing between items inside */\n gap?: Gap\n /** @deprecated Use `gap` instead */\n spacing?: Gap\n breakpoints?: MediaQueryBreakpoints\n queries?: UseMediaQueries\n}\n\nexport type Props = BasicProps &\n SpaceProps &\n Omit<\n React.HTMLAttributes<HTMLDivElement>,\n 'ref' | 'wrap' | 'value' | 'label' | 'title' | 'placeholder'\n >\n\nconst propNames: Array<keyof Props> = [\n 'direction',\n 'wrap',\n 'justify',\n 'align',\n 'divider',\n 'spacing',\n 'gap',\n]\n\nexport function pickFlexContainerProps<T extends Props>(\n props: T,\n defaults: Partial<Props> = {},\n skip: Array<keyof Props> = []\n): Omit<Props, 'children'> {\n return {\n ...defaults,\n ...Object.fromEntries(\n Object.entries(props ?? {}).filter(\n ([key]) =>\n propNames.includes(key as keyof Props) &&\n !skip.includes(key as keyof Props)\n )\n ),\n }\n}\n\nfunction FlexContainer(props: Props) {\n const {\n className,\n style,\n children,\n element = 'div',\n direction = 'horizontal',\n wrap = true,\n sizeCount = 12,\n rowGap,\n justify = 'flex-start',\n align = 'flex-start',\n alignSelf,\n divider = 'space',\n gap,\n spacing: spacingProp,\n breakpoints,\n queries,\n ...rest\n } = props\n\n const spacing = spacingProp ?? gap ?? 'small'\n\n const childrenArray = wrapChildren(props, children)\n const hasHeading = childrenArray.some((child, i) => {\n const previousChild = childrenArray?.[i - 1]\n return (\n isHeadingElement(child) || (i > 0 && isHeadingElement(previousChild))\n )\n })\n const hasSizeProp =\n !hasHeading &&\n direction === 'horizontal' &&\n childrenArray.some((child) => child['props']?.size)\n\n const { key: mediaKey } = useMedia({\n disabled: !hasSizeProp,\n breakpoints,\n queries,\n })\n\n const content = childrenArray.map((child, i) => {\n // Set spacing on child components by props (instead of CSS) to be able to dynamically override by props on each child. The default\n // is the spacing-props that controls space between children. Then override with props sent to the children, including both top\n // and bottom when th\n const isFirst = i === 0\n const isLast = i >= childrenArray.length - 1\n const previousChild = childrenArray?.[i - 1]\n const isHeading = hasHeading && isHeadingElement(previousChild)\n\n // Always set spacing between elements in the vertical layout on the top props, and 0 on bottom, to avoid\n // having to divide spacing between both with smaller values.\n const start: Start = direction === 'horizontal' ? 'left' : 'top'\n const end: End = direction === 'horizontal' ? 'right' : 'bottom'\n // const start: Start | End = direction === 'horizontal' ? 'right' : 'top'\n // const end: Start | End = direction === 'horizontal' ? 'left' : 'bottom'\n const endSpacing = 0\n let startSpacing = null\n\n if (\n // No line above heading\n !isHeading &&\n ((divider === 'line' && !isFirst) || divider === 'line-framed')\n ) {\n const spaceAboveLine = getSpaceValue(end, previousChild) ?? spacing\n startSpacing = (getSpaceValue(start, child) ??\n gap ??\n spacing) as SpaceType\n\n return (\n <React.Fragment key={`element-${i}`}>\n <Hr\n top={!isFirst ? spaceAboveLine : 0}\n space={0}\n className=\"dnb-flex-container__hr\"\n />\n\n {renderWithSpacing(child, {\n space: { [start]: startSpacing, [end]: endSpacing },\n })}\n\n {divider === 'line-framed' && isLast && (\n <Hr\n top={spaceAboveLine}\n space={0}\n className=\"dnb-flex-container__hr\"\n />\n )}\n </React.Fragment>\n )\n }\n\n // No space above first element.\n if (isFirst && direction !== 'horizontal') {\n startSpacing = 0\n } else {\n // Since top space of current and bottom space of previous component is the same\n startSpacing =\n getSpaceValue(start, child) ??\n getSpaceValue(end, previousChild) ??\n gap ??\n spacing\n }\n\n if (\n React.isValidElement(previousChild) &&\n previousChild?.type?.['_supportsSpacingProps'] === false\n ) {\n startSpacing = 0\n }\n\n const space =\n direction === 'horizontal'\n ? { [start]: endSpacing, [end]: startSpacing }\n : { [start]: startSpacing, [end]: endSpacing }\n\n return renderWithSpacing(child, {\n key: child?.['key'] || `element-${i}`,\n space,\n })\n })\n\n const n = 'dnb-flex-container'\n const getRowGapClass = useCallback(() => {\n if (rowGap === false) {\n return `${n}--row-gap-off`\n }\n\n if (\n rowGap === true ||\n (!rowGap && wrap && direction === 'horizontal')\n ) {\n return `${n}--row-gap-small`\n }\n\n if (hasSizeProp && spacing) {\n return `${n}--row-gap-${spacing}`\n }\n\n if (rowGap) {\n return `${n}--row-gap-${rowGap}`\n }\n }, [direction, hasSizeProp, rowGap, spacing, wrap])\n\n const cn = classnames(\n 'dnb-flex-container',\n direction && `${n}--direction-${direction}`,\n justify && `${n}--justify-${justify}`,\n align && `${n}--align-${align}`,\n alignSelf && `${n}--align-self-${alignSelf}`,\n spacing && `${n}--spacing-${spacing}`,\n wrap && `${n}--wrap`,\n getRowGapClass(),\n hasSizeProp && `${n}--has-size`,\n divider && `${n}--divider-${divider}`,\n className\n )\n\n return (\n <Space\n element={element}\n className={cn}\n data-media-key={mediaKey}\n style={\n hasSizeProp\n ? ({ '--sizeCount': sizeCount, ...style } as React.CSSProperties)\n : style\n }\n {...rest}\n >\n {content}\n </Space>\n )\n}\n\nfunction wrapChildren(props: Props, children: React.ReactNode) {\n return React.Children.toArray(children).map((child) => {\n if (\n React.isValidElement(child) &&\n child.type['_supportsSpacingProps'] === 'children'\n ) {\n return React.cloneElement(\n child,\n child.props,\n <FlexContainer {...props}>{child.props.children}</FlexContainer>\n )\n }\n\n return child\n })\n}\n\nFlexContainer._supportsSpacingProps = true\n\nexport default FlexContainer\n"],"mappings":"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"}
@@ -1,6 +1,6 @@
1
1
  import _extends from "@babel/runtime/helpers/esm/extends";
2
2
  import _objectWithoutProperties from "@babel/runtime/helpers/esm/objectWithoutProperties";
3
- const _excluded = ["className", "direction", "alignSelf", "align", "spacing", "children"];
3
+ const _excluded = ["className", "direction", "alignSelf", "align", "gap", "children"];
4
4
  import React from 'react';
5
5
  import classnames from 'classnames';
6
6
  import Container from './Container';
@@ -10,7 +10,7 @@ function Stack(props) {
10
10
  direction = 'vertical',
11
11
  alignSelf = 'stretch',
12
12
  align = 'stretch',
13
- spacing = props.divider !== 'line' && props.divider !== 'line-framed' ? 'medium' : 'small',
13
+ gap = props.divider !== 'line' && props.divider !== 'line-framed' ? 'medium' : 'small',
14
14
  children
15
15
  } = props,
16
16
  rest = _objectWithoutProperties(props, _excluded);
@@ -20,7 +20,7 @@ function Stack(props) {
20
20
  direction: direction,
21
21
  alignSelf: alignSelf,
22
22
  align: align,
23
- spacing: spacing
23
+ gap: gap
24
24
  }, rest), children);
25
25
  }
26
26
  Stack._supportsSpacingProps = true;
@@ -1 +1 @@
1
- {"version":3,"file":"Stack.js","names":["React","classnames","Container","Stack","props","className","direction","alignSelf","align","spacing","divider","children","rest","_objectWithoutProperties","_excluded","createElement","_extends","element","_supportsSpacingProps"],"sources":["../../../../src/components/flex/Stack.tsx"],"sourcesContent":["import React from 'react'\nimport classnames from 'classnames'\nimport Container from './Container'\nimport type { Props as FlexContainerProps } from './Container'\n\nexport type Props = FlexContainerProps\n\nfunction Stack(props: Props) {\n const {\n className,\n direction = 'vertical',\n alignSelf = 'stretch',\n align = 'stretch',\n spacing = props.divider !== 'line' && props.divider !== 'line-framed'\n ? 'medium'\n : 'small',\n children,\n ...rest\n } = props\n\n return (\n <Container\n element=\"section\"\n className={classnames('dnb-flex-stack', className)}\n direction={direction}\n alignSelf={alignSelf}\n align={align}\n spacing={spacing}\n {...rest}\n >\n {children}\n </Container>\n )\n}\n\nStack._supportsSpacingProps = true\n\nexport default Stack\n"],"mappings":";;;AAAA,OAAOA,KAAK,MAAM,OAAO;AACzB,OAAOC,UAAU,MAAM,YAAY;AACnC,OAAOC,SAAS,MAAM,aAAa;AAKnC,SAASC,KAAKA,CAACC,KAAY,EAAE;EAC3B,MAAM;MACJC,SAAS;MACTC,SAAS,GAAG,UAAU;MACtBC,SAAS,GAAG,SAAS;MACrBC,KAAK,GAAG,SAAS;MACjBC,OAAO,GAAGL,KAAK,CAACM,OAAO,KAAK,MAAM,IAAIN,KAAK,CAACM,OAAO,KAAK,aAAa,GACjE,QAAQ,GACR,OAAO;MACXC;IAEF,CAAC,GAAGP,KAAK;IADJQ,IAAI,GAAAC,wBAAA,CACLT,KAAK,EAAAU,SAAA;EAET,OACEd,KAAA,CAAAe,aAAA,CAACb,SAAS,EAAAc,QAAA;IACRC,OAAO,EAAC,SAAS;IACjBZ,SAAS,EAAEJ,UAAU,CAAC,gBAAgB,EAAEI,SAAS,CAAE;IACnDC,SAAS,EAAEA,SAAU;IACrBC,SAAS,EAAEA,SAAU;IACrBC,KAAK,EAAEA,KAAM;IACbC,OAAO,EAAEA;EAAQ,GACbG,IAAI,GAEPD,QACQ,CAAC;AAEhB;AAEAR,KAAK,CAACe,qBAAqB,GAAG,IAAI;AAElC,eAAef,KAAK"}
1
+ {"version":3,"file":"Stack.js","names":["React","classnames","Container","Stack","props","className","direction","alignSelf","align","gap","divider","children","rest","_objectWithoutProperties","_excluded","createElement","_extends","element","_supportsSpacingProps"],"sources":["../../../../src/components/flex/Stack.tsx"],"sourcesContent":["import React from 'react'\nimport classnames from 'classnames'\nimport Container from './Container'\nimport type { Props as FlexContainerProps } from './Container'\n\nexport type Props = FlexContainerProps\n\nfunction Stack(props: Props) {\n const {\n className,\n direction = 'vertical',\n alignSelf = 'stretch',\n align = 'stretch',\n gap = props.divider !== 'line' && props.divider !== 'line-framed'\n ? 'medium'\n : 'small',\n children,\n ...rest\n } = props\n\n return (\n <Container\n element=\"section\"\n className={classnames('dnb-flex-stack', className)}\n direction={direction}\n alignSelf={alignSelf}\n align={align}\n gap={gap}\n {...rest}\n >\n {children}\n </Container>\n )\n}\n\nStack._supportsSpacingProps = true\n\nexport default Stack\n"],"mappings":";;;AAAA,OAAOA,KAAK,MAAM,OAAO;AACzB,OAAOC,UAAU,MAAM,YAAY;AACnC,OAAOC,SAAS,MAAM,aAAa;AAKnC,SAASC,KAAKA,CAACC,KAAY,EAAE;EAC3B,MAAM;MACJC,SAAS;MACTC,SAAS,GAAG,UAAU;MACtBC,SAAS,GAAG,SAAS;MACrBC,KAAK,GAAG,SAAS;MACjBC,GAAG,GAAGL,KAAK,CAACM,OAAO,KAAK,MAAM,IAAIN,KAAK,CAACM,OAAO,KAAK,aAAa,GAC7D,QAAQ,GACR,OAAO;MACXC;IAEF,CAAC,GAAGP,KAAK;IADJQ,IAAI,GAAAC,wBAAA,CACLT,KAAK,EAAAU,SAAA;EAET,OACEd,KAAA,CAAAe,aAAA,CAACb,SAAS,EAAAc,QAAA;IACRC,OAAO,EAAC,SAAS;IACjBZ,SAAS,EAAEJ,UAAU,CAAC,gBAAgB,EAAEI,SAAS,CAAE;IACnDC,SAAS,EAAEA,SAAU;IACrBC,SAAS,EAAEA,SAAU;IACrBC,KAAK,EAAEA,KAAM;IACbC,GAAG,EAAEA;EAAI,GACLG,IAAI,GAEPD,QACQ,CAAC;AAEhB;AAEAR,KAAK,CAACe,qBAAqB,GAAG,IAAI;AAElC,eAAef,KAAK"}
@@ -3,16 +3,16 @@ function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (O
3
3
  function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys(Object(source), !0).forEach(function (key) { _defineProperty(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; }
4
4
  import React, { Fragment } from 'react';
5
5
  import Space from '../space/Space';
6
- import { removeSpaceProps } from '../space/SpacingUtils';
6
+ import { isValidSpaceProp, removeSpaceProps } from '../space/SpacingUtils';
7
7
  export const omitSpacingProps = removeSpaceProps;
8
8
  export function pickSpacingProps(props) {
9
- return {
10
- space: props === null || props === void 0 ? void 0 : props.space,
11
- top: props === null || props === void 0 ? void 0 : props.top,
12
- bottom: props === null || props === void 0 ? void 0 : props.bottom,
13
- left: props === null || props === void 0 ? void 0 : props.left,
14
- right: props === null || props === void 0 ? void 0 : props.right
15
- };
9
+ const obj = {};
10
+ for (const key in props) {
11
+ if (isValidSpaceProp(key) && typeof props[key] !== 'undefined') {
12
+ obj[key] = props[key];
13
+ }
14
+ }
15
+ return obj;
16
16
  }
17
17
  export function getSpaceValue(type, element) {
18
18
  var _element$props$type, _element$props, _element$props2;
@@ -1 +1 @@
1
- {"version":3,"file":"utils.js","names":["React","Fragment","Space","removeSpaceProps","omitSpacingProps","pickSpacingProps","props","space","top","bottom","left","right","getSpaceValue","type","element","_element$props$type","_element$props","_element$props2","isValidElement","undefined","isHeadingElement","_element$type","getSpaceVariant","_element$type2","_element$props3","check","keys","some","key","renderWithSpacing","spaceProps","variant","Children","toArray","map","child","_child$props","children","i","cloneElement","_objectSpread","wrapWithSpace","createElement"],"sources":["../../../../src/components/flex/utils.tsx"],"sourcesContent":["import React, { Fragment } from 'react'\nimport { SpaceType, SpacingProps } from '../../shared/types'\nimport Space from '../space/Space'\nimport { removeSpaceProps } from '../space/SpacingUtils'\nimport { End, Start } from './types'\n\nexport const omitSpacingProps = removeSpaceProps\n\n/**\n * Picks the spacing props from the given props object.\n * @template Props - The type of the props object.\n * @param {Props} props - The props object.\n * @returns {SpacingProps} - The spacing props object.\n */\nexport function pickSpacingProps<Props extends SpacingProps>(\n props: Props\n): SpacingProps {\n return {\n space: props?.space,\n top: props?.top,\n bottom: props?.bottom,\n left: props?.left,\n right: props?.right,\n }\n}\n\n/**\n * Retrieves the space value of a Flex component based on the specified type and element.\n * @param type - The type of space value to retrieve (Start or End).\n * @param element - The React element to extract the space value from.\n * @returns The space value of the element, or undefined if it cannot be determined.\n */\nexport function getSpaceValue(\n type: Start | End,\n element: React.ReactNode\n): SpaceType | undefined {\n if (!React.isValidElement(element)) {\n return\n }\n\n return (\n element.props?.[type] ??\n (typeof element.props?.space === 'object'\n ? element.props.space[type]\n : undefined)\n )\n}\n\n/**\n * Checks if the provided element is a heading element.\n * @param element - The element to check.\n * @returns `true` if the element is a heading element, `false` otherwise.\n */\nexport function isHeadingElement(\n element: React.ReactNode & { _isHeadingElement?: boolean }\n): boolean {\n return (\n React.isValidElement(element) &&\n element?.type?.['_isHeadingElement'] === true\n )\n}\n\n/**\n * Determines the spacing variant of a React node element.\n * @param element - The React node element to check.\n * @returns The spacing variant (true, false or \"children\") of the element, or undefined if it does not support spacing props.\n */\nexport function getSpaceVariant(element: React.ReactNode) {\n if (React.isValidElement(element)) {\n if (element?.type === Fragment) {\n return 'children'\n }\n\n const check = element?.type?.['_supportsSpacingProps']\n if (typeof check !== 'undefined') {\n return check\n }\n\n const keys = ['space', 'top', 'right', 'bottom', 'left']\n const props = element?.props ?? {}\n if (keys.some((key) => key in props)) {\n return true\n }\n }\n\n return undefined\n}\n\n/**\n * Renders an element with spacing props applied.\n * If the element is a component that accepts spacing props, the props are directly applied.\n * If the element is a component that has children and accepts spacing props, the props are applied to the children.\n * If the element does not accept spacing props, the element is returned as is.\n *\n * @param element - The element to render with spacing props.\n * @param spaceProps - The spacing props to apply.\n * @returns The rendered element with spacing props applied.\n */\nexport function renderWithSpacing(\n element: React.ReactNode,\n spaceProps: SpacingProps & { key?: string; className?: string }\n) {\n const variant = getSpaceVariant(element)\n\n if (variant === false) {\n return element\n }\n\n if (variant === 'children') {\n return React.Children.toArray(element).map(\n (child: React.ReactElement) => {\n const children = child?.props?.children\n\n return React.Children.toArray(children).map((element, i) => {\n return React.cloneElement(\n child,\n { key: i, ...child?.props },\n wrapWithSpace({ element, spaceProps })\n )\n })\n }\n )\n }\n\n return wrapWithSpace({ element, spaceProps, variant })\n}\n\nfunction wrapWithSpace({ element, spaceProps, variant = null }) {\n return variant ?? getSpaceVariant(element) === true ? (\n React.cloneElement(element as React.ReactElement, spaceProps)\n ) : (\n <Space {...spaceProps}>{element}</Space>\n )\n}\n"],"mappings":"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"}
1
+ {"version":3,"file":"utils.js","names":["React","Fragment","Space","isValidSpaceProp","removeSpaceProps","omitSpacingProps","pickSpacingProps","props","obj","key","getSpaceValue","type","element","_element$props$type","_element$props","_element$props2","isValidElement","space","undefined","isHeadingElement","_element$type","getSpaceVariant","_element$type2","_element$props3","check","keys","some","renderWithSpacing","spaceProps","variant","Children","toArray","map","child","_child$props","children","i","cloneElement","_objectSpread","wrapWithSpace","createElement"],"sources":["../../../../src/components/flex/utils.tsx"],"sourcesContent":["import React, { Fragment } from 'react'\nimport { SpaceType, SpacingProps } from '../../shared/types'\nimport Space from '../space/Space'\nimport { isValidSpaceProp, removeSpaceProps } from '../space/SpacingUtils'\nimport { End, Start } from './types'\n\nexport const omitSpacingProps = removeSpaceProps\n\n/**\n * Picks the spacing props from the given props object.\n * @template Props - The type of the props object.\n * @param {Props} props - The props object.\n * @returns {SpacingProps} - The spacing props object.\n */\nexport function pickSpacingProps<Props extends SpacingProps>(\n props: Props\n): SpacingProps {\n const obj: SpacingProps = {}\n for (const key in props as SpacingProps) {\n if (isValidSpaceProp(key) && typeof props[key] !== 'undefined') {\n obj[key] = props[key]\n }\n }\n return obj\n}\n\n/**\n * Retrieves the space value of a Flex component based on the specified type and element.\n * @param type - The type of space value to retrieve (Start or End).\n * @param element - The React element to extract the space value from.\n * @returns The space value of the element, or undefined if it cannot be determined.\n */\nexport function getSpaceValue(\n type: Start | End,\n element: React.ReactNode\n): SpaceType | undefined {\n if (!React.isValidElement(element)) {\n return\n }\n\n return (\n element.props?.[type] ??\n (typeof element.props?.space === 'object'\n ? element.props.space[type]\n : undefined)\n )\n}\n\n/**\n * Checks if the provided element is a heading element.\n * @param element - The element to check.\n * @returns `true` if the element is a heading element, `false` otherwise.\n */\nexport function isHeadingElement(\n element: React.ReactNode & { _isHeadingElement?: boolean }\n): boolean {\n return (\n React.isValidElement(element) &&\n element?.type?.['_isHeadingElement'] === true\n )\n}\n\n/**\n * Determines the spacing variant of a React node element.\n * @param element - The React node element to check.\n * @returns The spacing variant (true, false or \"children\") of the element, or undefined if it does not support spacing props.\n */\nexport function getSpaceVariant(element: React.ReactNode) {\n if (React.isValidElement(element)) {\n if (element?.type === Fragment) {\n return 'children'\n }\n\n const check = element?.type?.['_supportsSpacingProps']\n if (typeof check !== 'undefined') {\n return check\n }\n\n const keys = ['space', 'top', 'right', 'bottom', 'left']\n const props = element?.props ?? {}\n if (keys.some((key) => key in props)) {\n return true\n }\n }\n\n return undefined\n}\n\n/**\n * Renders an element with spacing props applied.\n * If the element is a component that accepts spacing props, the props are directly applied.\n * If the element is a component that has children and accepts spacing props, the props are applied to the children.\n * If the element does not accept spacing props, the element is returned as is.\n *\n * @param element - The element to render with spacing props.\n * @param spaceProps - The spacing props to apply.\n * @returns The rendered element with spacing props applied.\n */\nexport function renderWithSpacing(\n element: React.ReactNode,\n spaceProps: SpacingProps & { key?: string; className?: string }\n) {\n const variant = getSpaceVariant(element)\n\n if (variant === false) {\n return element\n }\n\n if (variant === 'children') {\n return React.Children.toArray(element).map(\n (child: React.ReactElement) => {\n const children = child?.props?.children\n\n return React.Children.toArray(children).map((element, i) => {\n return React.cloneElement(\n child,\n { key: i, ...child?.props },\n wrapWithSpace({ element, spaceProps })\n )\n })\n }\n )\n }\n\n return wrapWithSpace({ element, spaceProps, variant })\n}\n\nfunction wrapWithSpace({ element, spaceProps, variant = null }) {\n return variant ?? getSpaceVariant(element) === true ? (\n React.cloneElement(element as React.ReactElement, spaceProps)\n ) : (\n <Space {...spaceProps}>{element}</Space>\n )\n}\n"],"mappings":"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"}
@@ -150,7 +150,12 @@ export default class HeightAnimation {
150
150
  }
151
151
  clonedElem.style.position = 'absolute';
152
152
  (_this$elem$parentNode = this.elem.parentNode) === null || _this$elem$parentNode === void 0 ? void 0 : _this$elem$parentNode.insertBefore(clonedElem, this.elem.nextSibling);
153
- const height = parseFloat(String(clonedElem.clientHeight)) || parseFloat(clonedElem.getAttribute('data-height')) || null;
153
+ const elemWidth = this.elem.clientWidth;
154
+ const clonedWidth = clonedElem.clientWidth || parseFloat(clonedElem.getAttribute('data-width')) || 0;
155
+ if (clonedWidth > elemWidth) {
156
+ clonedElem.style.width = `${elemWidth}px`;
157
+ }
158
+ const height = clonedElem.clientHeight || parseFloat(clonedElem.getAttribute('data-height')) || null;
154
159
  (_clonedElem$parentNod = clonedElem.parentNode) === null || _clonedElem$parentNod === void 0 ? void 0 : _clonedElem$parentNod.removeChild(clonedElem);
155
160
  if (height) {
156
161
  this.__currentHeight = height;
@@ -1 +1 @@
1
- {"version":3,"file":"HeightAnimationInstance.js","names":["HeightAnimation","constructor","opts","_defineProperty","animate","visibility","opacity","height","isInBrowser","window","setState","setOptions","callAnimationStart","startTime","Date","now","firstTime","onStartStack","forEach","fn","state","callAnimationEnd","isAnimating","__currentHeight","removeEndEvents","onEndStack","addEndEvent","listener","_this$elem","_this$elem$addEventLi","handleTransitionEnd","e","canFinish","delay","duration","timeouts","push","setTimeout","events","elem","addEventListener","call","_this$elem2","_this$elem2$removeEve","removeEventListener","setElement","_this$elem3","_globalThis$animation","document","createElement","String","nodeName","toLowerCase","parentElement","globalThis","animationDuration","parseFloat","getComputedStyle","transitionDuration","Object","freeze","_objectSpread","getOptions","remove","stop","undefined","setAsOpen","setAsClosed","getHeight","_this$elem4","clientHeight","getUnknownHeight","_this$elem$parentNode","_clonedElem$parentNod","clonedElem","cloneNode","inputs","querySelectorAll","input","removeAttribute","key","firstPaintStyle","style","position","parentNode","insertBefore","nextSibling","getAttribute","removeChild","onStart","onEnd","start","fromHeight","toHeight","requestAnimationFrame","reqId1","reqId2","id","clearTimeout","cancelAnimationFrame","open","shouldBypassAnimation","target","currentTarget","overflowY","readjust","close","adjustTo","endHeight","newHeight","_globalThis$animation2","Boolean","_globalThis$bypassTim","IS_TEST","bypassTime"],"sources":["../../../../src/components/height-animation/HeightAnimationInstance.ts"],"sourcesContent":["export type HeightAnimationOnStartStates =\n | 'opening'\n | 'closing'\n | 'adjusting'\nexport type HeightAnimationOnEndStates = 'opened' | 'closed' | 'adjusted'\nexport type HeightAnimationStates =\n | HeightAnimationOnStartStates\n | HeightAnimationOnEndStates\n | 'init'\nexport type HeightAnimationOptions = {\n animate?: boolean\n}\nexport type HeightAnimationOnStartCallback = (\n state: HeightAnimationStates\n) => void\nexport type HeightAnimationOnEndCallback = (\n state: HeightAnimationStates\n) => void\nexport type HeightAnimationOnStartStack =\n Array<HeightAnimationOnStartCallback>\nexport type HeightAnimationOnEndStack = Array<HeightAnimationOnEndCallback>\nexport type HeightAnimationEventListener = (e: Event) => void\nexport type HeightAnimationEvents = Array<HeightAnimationEventListener>\nexport type HeightAnimationElement = HTMLElement\nexport type HeightAnimationContainer = HTMLElement\nexport type HeightAnimationFromHeight = number\nexport type HeightAnimationToHeight = number\n\nexport default class HeightAnimation {\n private state: Readonly<HeightAnimationStates>\n isInBrowser: boolean\n onStartStack: HeightAnimationOnStartStack = []\n onEndStack: HeightAnimationOnEndStack = []\n events: HeightAnimationEvents = []\n opts: HeightAnimationOptions = { animate: true }\n elem: HeightAnimationElement\n reqId1: number\n reqId2: number\n resizeTimeout: NodeJS.Timeout\n timeouts: NodeJS.Timeout[] = []\n firstTime?: number = 0\n startTime?: number = 0\n duration?: number = 0\n isAnimating: boolean\n __currentHeight: number\n\n firstPaintStyle = {\n visibility: 'hidden',\n opacity: '0', // prevents before/after elements to be visible\n height: 'auto',\n }\n\n constructor(opts: HeightAnimationOptions = {}) {\n this.isInBrowser = typeof window !== 'undefined'\n this.setState('init')\n this.setOptions(opts)\n }\n\n callAnimationStart() {\n this.startTime = Date.now()\n if (!this.firstTime) {\n this.firstTime = this.startTime\n }\n if (this.onStartStack) {\n this.onStartStack.forEach((fn) => {\n if (typeof fn === 'function') {\n fn(this.state)\n }\n })\n }\n }\n callAnimationEnd() {\n this.isAnimating = false\n\n if (this.state !== 'opened') {\n delete this.__currentHeight\n }\n\n this.removeEndEvents()\n\n if (this.onEndStack) {\n this.onEndStack.forEach((fn) => {\n if (typeof fn === 'function') {\n fn(this.state)\n }\n })\n }\n }\n addEndEvent(listener: HeightAnimationEventListener) {\n this.removeEndEvents() // also, remove events on every open (but not on close!)\n\n const handleTransitionEnd = (e) => {\n if (this.canFinish()) {\n listener(e)\n } else {\n const delay = this.duration - (Date.now() - this.startTime)\n\n if (delay === -1) {\n listener(e)\n } else {\n this.timeouts.push(setTimeout(() => listener(e), delay))\n }\n }\n }\n\n this.events.push(handleTransitionEnd)\n this.elem?.addEventListener?.('transitionend', handleTransitionEnd)\n }\n removeEndEvents() {\n this.events.forEach((listener) => {\n this.elem?.removeEventListener?.('transitionend', listener)\n })\n this.events = []\n }\n\n // Public methods\n setElement(elem: HeightAnimationElement) {\n this.elem =\n elem ||\n (typeof document !== 'undefined' && document.createElement('div'))\n\n // TODO: remove when responsive tables are supported\n if (String(this.elem?.nodeName).toLowerCase() === 'td') {\n this.elem = this.elem.parentElement\n }\n\n this.duration =\n globalThis.animationDuration ??\n (parseFloat(window.getComputedStyle(this.elem).transitionDuration) *\n 1000 ||\n 400) // The default duration\n }\n setState(state: HeightAnimationStates) {\n this.state = Object.freeze(state)\n }\n setOptions(opts: HeightAnimationOptions) {\n this.opts = Object.freeze({ ...this.opts, ...opts })\n }\n getOptions() {\n return this.opts\n }\n remove() {\n this.stop()\n this.removeEndEvents()\n this.setState('init')\n this.isAnimating = false\n this.onEndStack = []\n this.onStartStack = []\n this.__currentHeight = undefined\n this.elem = undefined\n }\n setAsOpen() {\n if (this.state === 'opened') {\n return\n }\n this.setState('opening')\n this.callAnimationStart()\n this.setState('opened')\n this.callAnimationEnd()\n }\n setAsClosed() {\n if (this.state === 'closed') {\n return\n }\n this.setState('closing')\n this.callAnimationStart()\n this.setState('closed')\n this.callAnimationEnd()\n }\n getHeight() {\n return parseFloat(String(this.elem?.clientHeight)) || null\n }\n getUnknownHeight() {\n if (!this.elem) {\n return null\n }\n\n if (this.isAnimating && typeof this.__currentHeight !== 'undefined') {\n return this.__currentHeight\n }\n\n const clonedElem = this.elem.cloneNode(true) as HTMLElement\n const inputs = clonedElem.querySelectorAll('input')\n inputs.forEach((input) => {\n input.removeAttribute('name') // because type=\"radio\" will be else effected negatively\n input.removeAttribute('id') // don't put IDs twice in the DOM\n })\n\n // Hide the cloned element\n for (const key in this.firstPaintStyle) {\n clonedElem.style[key] = this.firstPaintStyle[key]\n }\n clonedElem.style.position = 'absolute' // not a part of the \"firstPaintStyle\"\n\n this.elem.parentNode?.insertBefore(clonedElem, this.elem.nextSibling)\n\n const height =\n parseFloat(String(clonedElem.clientHeight)) ||\n // data-height is used for mockup testing with \"mockHeight\"\n parseFloat(clonedElem.getAttribute('data-height')) ||\n null\n\n clonedElem.parentNode?.removeChild(clonedElem)\n\n if (height) {\n this.__currentHeight = height\n }\n\n return height\n }\n onStart(fn: HeightAnimationOnStartCallback) {\n this.onStartStack.push(fn)\n }\n onEnd(fn: HeightAnimationOnEndCallback) {\n this.onEndStack.push(fn)\n }\n start(\n fromHeight: HeightAnimationFromHeight,\n toHeight: HeightAnimationToHeight\n ) {\n if (\n !this.elem ||\n !(\n this.isInBrowser &&\n typeof window.requestAnimationFrame === 'function'\n )\n ) {\n return\n }\n\n const opts = this.getOptions()\n if (opts.animate === false) {\n return\n }\n\n this.stop()\n this.isAnimating = true\n\n // make the animation\n this.reqId1 = window.requestAnimationFrame(() => {\n if (!this.elem) {\n return\n }\n\n this.elem.style.height = `${fromHeight}px`\n\n this.reqId2 = window.requestAnimationFrame(() => {\n if (!this.elem) {\n return\n }\n\n this.elem.style.height = `${toHeight}px`\n })\n })\n }\n stop() {\n this.timeouts.forEach((id) => clearTimeout(id))\n this.timeouts = []\n\n if (\n this.isInBrowser &&\n typeof window.requestAnimationFrame === 'function'\n ) {\n window.cancelAnimationFrame(this.reqId1)\n window.cancelAnimationFrame(this.reqId2)\n }\n }\n open() {\n if (\n this.state === 'opened' ||\n this.state === 'opening' ||\n this.shouldBypassAnimation()\n ) {\n this.setAsOpen()\n return\n }\n\n this.setState('opening')\n this.callAnimationStart()\n\n const toHeight = this.getUnknownHeight()\n\n this.addEndEvent((e) => {\n if (e.target === e.currentTarget || !e.currentTarget) {\n if (this.elem) {\n this.elem.style.overflowY = ''\n }\n this.setState('opened')\n this.readjust()\n }\n })\n\n this.start(0, toHeight)\n }\n close() {\n if (\n this.state === 'closed' ||\n this.state === 'closing' ||\n this.shouldBypassAnimation()\n ) {\n this.setAsClosed()\n return\n }\n\n this.setState('closing')\n this.callAnimationStart()\n\n const fromHeight = this.getHeight()\n\n this.addEndEvent((e) => {\n if (e.target === e.currentTarget || !e.currentTarget) {\n if (this.elem) {\n this.elem.style.visibility = 'hidden'\n this.elem.style.overflowY = 'clip'\n }\n this.setState('closed')\n this.callAnimationEnd()\n }\n })\n\n this.start(fromHeight, 0)\n }\n adjustTo(\n fromHeight: HeightAnimationFromHeight = null,\n toHeight: HeightAnimationToHeight = null\n ) {\n const opts = this.getOptions()\n\n if (\n !this.elem ||\n opts.animate === false ||\n this.state === 'opening' ||\n this.state === 'closing'\n ) {\n return\n }\n\n if (fromHeight === 0 || fromHeight === null) {\n fromHeight = this.getHeight()\n }\n if (toHeight === null) {\n toHeight = this.getUnknownHeight()\n }\n\n if (fromHeight === toHeight) {\n this.setState('adjusted')\n return\n }\n\n this.setState('adjusting')\n this.callAnimationStart()\n\n this.addEndEvent((e) => {\n if (\n this.state === 'adjusting' &&\n (e.target === e.currentTarget || !e.currentTarget)\n ) {\n if (this.elem) {\n this.elem.style.height = 'auto'\n }\n this.setState('adjusted')\n this.callAnimationEnd()\n }\n })\n\n this.start(fromHeight, toHeight)\n }\n readjust() {\n const endHeight = this.getHeight()\n\n if (this.elem) {\n this.elem.style.height = 'auto'\n }\n\n this.__currentHeight = undefined\n const newHeight = this.getUnknownHeight()\n\n // If the height has changed during the animation, we need to adjust it\n if (endHeight !== newHeight) {\n this.adjustTo(endHeight, newHeight)\n } else {\n this.callAnimationEnd()\n }\n }\n /**\n * Determines whether the animation can finish.\n * Check for certain states and if the time passed is too short.\n * With a so short first state change, we do not call animation end.\n */\n canFinish() {\n return Boolean(\n this.startTime &&\n Date.now() - this.startTime >\n (globalThis.animationDuration ?? this.duration)\n )\n }\n /**\n * Determines whether the animation should be bypassed.\n * Check for certain states and if the time passed is too short to be correct.\n * With a very short first state change, we skip animation.\n */\n shouldBypassAnimation() {\n const opts = this.getOptions()\n\n if (!this.elem || opts.animate === false) {\n return true\n }\n\n if (\n this.isInBrowser &&\n (globalThis.IS_TEST || globalThis.bypassTime === -1)\n ) {\n return false\n }\n\n return Boolean(\n this.firstTime &&\n Date.now() - this.firstTime < (globalThis.bypassTime ?? 100)\n )\n }\n}\n"],"mappings":"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"}
1
+ {"version":3,"file":"HeightAnimationInstance.js","names":["HeightAnimation","constructor","opts","_defineProperty","animate","visibility","opacity","height","isInBrowser","window","setState","setOptions","callAnimationStart","startTime","Date","now","firstTime","onStartStack","forEach","fn","state","callAnimationEnd","isAnimating","__currentHeight","removeEndEvents","onEndStack","addEndEvent","listener","_this$elem","_this$elem$addEventLi","handleTransitionEnd","e","canFinish","delay","duration","timeouts","push","setTimeout","events","elem","addEventListener","call","_this$elem2","_this$elem2$removeEve","removeEventListener","setElement","_this$elem3","_globalThis$animation","document","createElement","String","nodeName","toLowerCase","parentElement","globalThis","animationDuration","parseFloat","getComputedStyle","transitionDuration","Object","freeze","_objectSpread","getOptions","remove","stop","undefined","setAsOpen","setAsClosed","getHeight","_this$elem4","clientHeight","getUnknownHeight","_this$elem$parentNode","_clonedElem$parentNod","clonedElem","cloneNode","inputs","querySelectorAll","input","removeAttribute","key","firstPaintStyle","style","position","parentNode","insertBefore","nextSibling","elemWidth","clientWidth","clonedWidth","getAttribute","width","removeChild","onStart","onEnd","start","fromHeight","toHeight","requestAnimationFrame","reqId1","reqId2","id","clearTimeout","cancelAnimationFrame","open","shouldBypassAnimation","target","currentTarget","overflowY","readjust","close","adjustTo","endHeight","newHeight","_globalThis$animation2","Boolean","_globalThis$bypassTim","IS_TEST","bypassTime"],"sources":["../../../../src/components/height-animation/HeightAnimationInstance.ts"],"sourcesContent":["export type HeightAnimationOnStartStates =\n | 'opening'\n | 'closing'\n | 'adjusting'\nexport type HeightAnimationOnEndStates = 'opened' | 'closed' | 'adjusted'\nexport type HeightAnimationStates =\n | HeightAnimationOnStartStates\n | HeightAnimationOnEndStates\n | 'init'\nexport type HeightAnimationOptions = {\n animate?: boolean\n}\nexport type HeightAnimationOnStartCallback = (\n state: HeightAnimationStates\n) => void\nexport type HeightAnimationOnEndCallback = (\n state: HeightAnimationStates\n) => void\nexport type HeightAnimationOnStartStack =\n Array<HeightAnimationOnStartCallback>\nexport type HeightAnimationOnEndStack = Array<HeightAnimationOnEndCallback>\nexport type HeightAnimationEventListener = (e: Event) => void\nexport type HeightAnimationEvents = Array<HeightAnimationEventListener>\nexport type HeightAnimationElement = HTMLElement\nexport type HeightAnimationContainer = HTMLElement\nexport type HeightAnimationFromHeight = number\nexport type HeightAnimationToHeight = number\n\nexport default class HeightAnimation {\n private state: Readonly<HeightAnimationStates>\n isInBrowser: boolean\n onStartStack: HeightAnimationOnStartStack = []\n onEndStack: HeightAnimationOnEndStack = []\n events: HeightAnimationEvents = []\n opts: HeightAnimationOptions = { animate: true }\n elem: HeightAnimationElement\n reqId1: number\n reqId2: number\n resizeTimeout: NodeJS.Timeout\n timeouts: NodeJS.Timeout[] = []\n firstTime?: number = 0\n startTime?: number = 0\n duration?: number = 0\n isAnimating: boolean\n __currentHeight: number\n\n firstPaintStyle = {\n visibility: 'hidden',\n opacity: '0', // prevents before/after elements to be visible\n height: 'auto',\n }\n\n constructor(opts: HeightAnimationOptions = {}) {\n this.isInBrowser = typeof window !== 'undefined'\n this.setState('init')\n this.setOptions(opts)\n }\n\n callAnimationStart() {\n this.startTime = Date.now()\n if (!this.firstTime) {\n this.firstTime = this.startTime\n }\n if (this.onStartStack) {\n this.onStartStack.forEach((fn) => {\n if (typeof fn === 'function') {\n fn(this.state)\n }\n })\n }\n }\n callAnimationEnd() {\n this.isAnimating = false\n\n if (this.state !== 'opened') {\n delete this.__currentHeight\n }\n\n this.removeEndEvents()\n\n if (this.onEndStack) {\n this.onEndStack.forEach((fn) => {\n if (typeof fn === 'function') {\n fn(this.state)\n }\n })\n }\n }\n addEndEvent(listener: HeightAnimationEventListener) {\n this.removeEndEvents() // also, remove events on every open (but not on close!)\n\n const handleTransitionEnd = (e) => {\n if (this.canFinish()) {\n listener(e)\n } else {\n const delay = this.duration - (Date.now() - this.startTime)\n\n if (delay === -1) {\n listener(e)\n } else {\n this.timeouts.push(setTimeout(() => listener(e), delay))\n }\n }\n }\n\n this.events.push(handleTransitionEnd)\n this.elem?.addEventListener?.('transitionend', handleTransitionEnd)\n }\n removeEndEvents() {\n this.events.forEach((listener) => {\n this.elem?.removeEventListener?.('transitionend', listener)\n })\n this.events = []\n }\n\n // Public methods\n setElement(elem: HeightAnimationElement) {\n this.elem =\n elem ||\n (typeof document !== 'undefined' && document.createElement('div'))\n\n // TODO: remove when responsive tables are supported\n if (String(this.elem?.nodeName).toLowerCase() === 'td') {\n this.elem = this.elem.parentElement\n }\n\n this.duration =\n globalThis.animationDuration ??\n (parseFloat(window.getComputedStyle(this.elem).transitionDuration) *\n 1000 ||\n 400) // The default duration\n }\n setState(state: HeightAnimationStates) {\n this.state = Object.freeze(state)\n }\n setOptions(opts: HeightAnimationOptions) {\n this.opts = Object.freeze({ ...this.opts, ...opts })\n }\n getOptions() {\n return this.opts\n }\n remove() {\n this.stop()\n this.removeEndEvents()\n this.setState('init')\n this.isAnimating = false\n this.onEndStack = []\n this.onStartStack = []\n this.__currentHeight = undefined\n this.elem = undefined\n }\n setAsOpen() {\n if (this.state === 'opened') {\n return\n }\n this.setState('opening')\n this.callAnimationStart()\n this.setState('opened')\n this.callAnimationEnd()\n }\n setAsClosed() {\n if (this.state === 'closed') {\n return\n }\n this.setState('closing')\n this.callAnimationStart()\n this.setState('closed')\n this.callAnimationEnd()\n }\n getHeight() {\n return parseFloat(String(this.elem?.clientHeight)) || null\n }\n getUnknownHeight() {\n if (!this.elem) {\n return null\n }\n\n if (this.isAnimating && typeof this.__currentHeight !== 'undefined') {\n return this.__currentHeight\n }\n\n const clonedElem = this.elem.cloneNode(true) as HTMLElement\n const inputs = clonedElem.querySelectorAll('input')\n inputs.forEach((input) => {\n input.removeAttribute('name') // because type=\"radio\" will be else effected negatively\n input.removeAttribute('id') // don't put IDs twice in the DOM\n })\n\n // Hide the cloned element\n for (const key in this.firstPaintStyle) {\n clonedElem.style[key] = this.firstPaintStyle[key]\n }\n clonedElem.style.position = 'absolute' // not a part of the \"firstPaintStyle\"\n\n this.elem.parentNode?.insertBefore(clonedElem, this.elem.nextSibling)\n\n // When text is wrapped, we get different widths,\n // so we need to set the width to the original width\n const elemWidth = this.elem.clientWidth\n const clonedWidth =\n clonedElem.clientWidth ||\n // data-width is used for mockup testing with \"mockHeight\"\n parseFloat(clonedElem.getAttribute('data-width')) ||\n 0\n\n if (clonedWidth > elemWidth) {\n clonedElem.style.width = `${elemWidth}px`\n }\n\n const height =\n clonedElem.clientHeight ||\n // data-height is used for mockup testing with \"mockHeight\"\n parseFloat(clonedElem.getAttribute('data-height')) ||\n null\n\n clonedElem.parentNode?.removeChild(clonedElem)\n\n if (height) {\n this.__currentHeight = height\n }\n\n return height\n }\n onStart(fn: HeightAnimationOnStartCallback) {\n this.onStartStack.push(fn)\n }\n onEnd(fn: HeightAnimationOnEndCallback) {\n this.onEndStack.push(fn)\n }\n start(\n fromHeight: HeightAnimationFromHeight,\n toHeight: HeightAnimationToHeight\n ) {\n if (\n !this.elem ||\n !(\n this.isInBrowser &&\n typeof window.requestAnimationFrame === 'function'\n )\n ) {\n return\n }\n\n const opts = this.getOptions()\n if (opts.animate === false) {\n return\n }\n\n this.stop()\n this.isAnimating = true\n\n // make the animation\n this.reqId1 = window.requestAnimationFrame(() => {\n if (!this.elem) {\n return\n }\n\n this.elem.style.height = `${fromHeight}px`\n\n this.reqId2 = window.requestAnimationFrame(() => {\n if (!this.elem) {\n return\n }\n\n this.elem.style.height = `${toHeight}px`\n })\n })\n }\n stop() {\n this.timeouts.forEach((id) => clearTimeout(id))\n this.timeouts = []\n\n if (\n this.isInBrowser &&\n typeof window.requestAnimationFrame === 'function'\n ) {\n window.cancelAnimationFrame(this.reqId1)\n window.cancelAnimationFrame(this.reqId2)\n }\n }\n open() {\n if (\n this.state === 'opened' ||\n this.state === 'opening' ||\n this.shouldBypassAnimation()\n ) {\n this.setAsOpen()\n return\n }\n\n this.setState('opening')\n this.callAnimationStart()\n\n const toHeight = this.getUnknownHeight()\n\n this.addEndEvent((e) => {\n if (e.target === e.currentTarget || !e.currentTarget) {\n if (this.elem) {\n this.elem.style.overflowY = ''\n }\n this.setState('opened')\n this.readjust()\n }\n })\n\n this.start(0, toHeight)\n }\n close() {\n if (\n this.state === 'closed' ||\n this.state === 'closing' ||\n this.shouldBypassAnimation()\n ) {\n this.setAsClosed()\n return\n }\n\n this.setState('closing')\n this.callAnimationStart()\n\n const fromHeight = this.getHeight()\n\n this.addEndEvent((e) => {\n if (e.target === e.currentTarget || !e.currentTarget) {\n if (this.elem) {\n this.elem.style.visibility = 'hidden'\n this.elem.style.overflowY = 'clip'\n }\n this.setState('closed')\n this.callAnimationEnd()\n }\n })\n\n this.start(fromHeight, 0)\n }\n adjustTo(\n fromHeight: HeightAnimationFromHeight = null,\n toHeight: HeightAnimationToHeight = null\n ) {\n const opts = this.getOptions()\n\n if (\n !this.elem ||\n opts.animate === false ||\n this.state === 'opening' ||\n this.state === 'closing'\n ) {\n return\n }\n\n if (fromHeight === 0 || fromHeight === null) {\n fromHeight = this.getHeight()\n }\n if (toHeight === null) {\n toHeight = this.getUnknownHeight()\n }\n\n if (fromHeight === toHeight) {\n this.setState('adjusted')\n return\n }\n\n this.setState('adjusting')\n this.callAnimationStart()\n\n this.addEndEvent((e) => {\n if (\n this.state === 'adjusting' &&\n (e.target === e.currentTarget || !e.currentTarget)\n ) {\n if (this.elem) {\n this.elem.style.height = 'auto'\n }\n this.setState('adjusted')\n this.callAnimationEnd()\n }\n })\n\n this.start(fromHeight, toHeight)\n }\n readjust() {\n const endHeight = this.getHeight()\n\n if (this.elem) {\n this.elem.style.height = 'auto'\n }\n\n this.__currentHeight = undefined\n const newHeight = this.getUnknownHeight()\n\n // If the height has changed during the animation, we need to adjust it\n if (endHeight !== newHeight) {\n this.adjustTo(endHeight, newHeight)\n } else {\n this.callAnimationEnd()\n }\n }\n /**\n * Determines whether the animation can finish.\n * Check for certain states and if the time passed is too short.\n * With a so short first state change, we do not call animation end.\n */\n canFinish() {\n return Boolean(\n this.startTime &&\n Date.now() - this.startTime >\n (globalThis.animationDuration ?? this.duration)\n )\n }\n /**\n * Determines whether the animation should be bypassed.\n * Check for certain states and if the time passed is too short to be correct.\n * With a very short first state change, we skip animation.\n */\n shouldBypassAnimation() {\n const opts = this.getOptions()\n\n if (!this.elem || opts.animate === false) {\n return true\n }\n\n if (\n this.isInBrowser &&\n (globalThis.IS_TEST || globalThis.bypassTime === -1)\n ) {\n return false\n }\n\n return Boolean(\n this.firstTime &&\n Date.now() - this.firstTime < (globalThis.bypassTime ?? 100)\n )\n }\n}\n"],"mappings":"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"}
@@ -17,6 +17,7 @@ export declare const ANIMATION_DURATION = 300;
17
17
  interface ModalState {
18
18
  hide: boolean;
19
19
  modalActive: boolean;
20
+ preventAutoFocus: boolean;
20
21
  }
21
22
  export type ModalPropTypes = ModalProps & SpacingProps & Omit<ScrollViewAllProps, 'children'>;
22
23
  declare class Modal extends React.PureComponent<ModalPropTypes & ToCamelCasePartial<ModalPropTypes>, ModalState> {
@@ -38,6 +39,7 @@ declare class Modal extends React.PureComponent<ModalPropTypes & ToCamelCasePart
38
39
  state: {
39
40
  hide: boolean;
40
41
  modalActive: boolean;
42
+ preventAutoFocus: boolean;
41
43
  };
42
44
  static defaultProps: {
43
45
  id: any;