@dnb/eufemia 10.35.0 → 10.37.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 (464) hide show
  1. package/CHANGELOG.md +40 -0
  2. package/cjs/components/accordion/Accordion.d.ts +15 -3
  3. package/cjs/components/accordion/Accordion.js +7 -0
  4. package/cjs/components/accordion/Accordion.js.map +1 -1
  5. package/cjs/components/accordion/AccordionDocs.d.ts +4 -0
  6. package/cjs/components/accordion/AccordionDocs.js +161 -0
  7. package/cjs/components/accordion/AccordionDocs.js.map +1 -0
  8. package/cjs/components/accordion/AccordionGroup.js +13 -3
  9. package/cjs/components/accordion/AccordionGroup.js.map +1 -1
  10. package/cjs/components/accordion/AccordionHeader.d.ts +5 -5
  11. package/cjs/components/accordion/AccordionHeader.js +3 -2
  12. package/cjs/components/accordion/AccordionHeader.js.map +1 -1
  13. package/cjs/components/accordion/AccordionProviderContext.d.ts +2 -0
  14. package/cjs/components/accordion/AccordionProviderContext.js.map +1 -1
  15. package/cjs/components/anchor/Anchor.d.ts +20 -0
  16. package/cjs/components/anchor/Anchor.js +13 -4
  17. package/cjs/components/anchor/Anchor.js.map +1 -1
  18. package/cjs/components/anchor/AnchorDocs.d.ts +3 -0
  19. package/cjs/components/anchor/AnchorDocs.js +82 -0
  20. package/cjs/components/anchor/AnchorDocs.js.map +1 -0
  21. package/cjs/components/autocomplete/Autocomplete.js +18 -4
  22. package/cjs/components/autocomplete/Autocomplete.js.map +1 -1
  23. package/cjs/components/breadcrumb/BreadcrumbItem.js.map +1 -1
  24. package/cjs/components/height-animation/HeightAnimationInstance.d.ts +3 -3
  25. package/cjs/components/height-animation/HeightAnimationInstance.js.map +1 -1
  26. package/cjs/components/height-animation/useHeightAnimation.d.ts +5 -1
  27. package/cjs/components/height-animation/useHeightAnimation.js.map +1 -1
  28. package/cjs/components/icon/Icon.d.ts +493 -61
  29. package/cjs/components/icon/Icon.js +97 -134
  30. package/cjs/components/icon/Icon.js.map +1 -1
  31. package/cjs/components/icon/IconHelpers.d.ts +2 -1
  32. package/cjs/components/icon/IconHelpers.js +1 -1
  33. package/cjs/components/icon/IconHelpers.js.map +1 -1
  34. package/cjs/components/icon/IconPrimary.d.ts +2 -2
  35. package/cjs/components/icon/IconPrimary.js.map +1 -1
  36. package/cjs/components/icon-primary/IconPrimary.d.ts +8 -11
  37. package/cjs/components/icon-primary/IconPrimary.js +37 -38
  38. package/cjs/components/icon-primary/IconPrimary.js.map +1 -1
  39. package/cjs/components/step-indicator/StepIndicatorContext.js +66 -59
  40. package/cjs/components/step-indicator/StepIndicatorContext.js.map +1 -1
  41. package/cjs/components/step-indicator/StepIndicatorItem.js +15 -23
  42. package/cjs/components/step-indicator/StepIndicatorItem.js.map +1 -1
  43. package/cjs/components/step-indicator/StepIndicatorModal.js +5 -5
  44. package/cjs/components/step-indicator/StepIndicatorModal.js.map +1 -1
  45. package/cjs/components/step-indicator/StepIndicatorSidebar.js +10 -9
  46. package/cjs/components/step-indicator/StepIndicatorSidebar.js.map +1 -1
  47. package/cjs/components/step-indicator/StepIndicatorTriggerButton.js.map +1 -1
  48. package/cjs/components/table/Table.d.ts +1 -1
  49. package/cjs/components/table/Table.js.map +1 -1
  50. package/cjs/components/table/TableContext.d.ts +12 -2
  51. package/cjs/components/table/TableContext.js +1 -3
  52. package/cjs/components/table/TableContext.js.map +1 -1
  53. package/cjs/components/table/TableDocs.d.ts +7 -0
  54. package/cjs/components/table/TableDocs.js +202 -0
  55. package/cjs/components/table/TableDocs.js.map +1 -0
  56. package/cjs/components/table/TableTd.d.ts +3 -3
  57. package/cjs/components/table/TableTd.js +2 -2
  58. package/cjs/components/table/TableTd.js.map +1 -1
  59. package/cjs/components/table/TableTr.d.ts +9 -5
  60. package/cjs/components/table/TableTr.js +4 -4
  61. package/cjs/components/table/TableTr.js.map +1 -1
  62. package/cjs/components/table/table-accordion/TableAccordionContent.d.ts +15 -0
  63. package/cjs/components/table/{TableAccordionTd.js → table-accordion/TableAccordionContent.js} +52 -17
  64. package/cjs/components/table/table-accordion/TableAccordionContent.js.map +1 -0
  65. package/cjs/components/table/table-accordion/TableAccordionContext.d.ts +16 -0
  66. package/cjs/components/table/table-accordion/TableAccordionContext.js +11 -0
  67. package/cjs/components/table/table-accordion/TableAccordionContext.js.map +1 -0
  68. package/cjs/components/table/table-accordion/TableAccordionHead.d.ts +8 -0
  69. package/cjs/components/table/{TableAccordion.js → table-accordion/TableAccordionHead.js} +17 -18
  70. package/cjs/components/table/table-accordion/TableAccordionHead.js.map +1 -0
  71. package/{es/components/table → cjs/components/table/table-accordion}/useTableAnimationHandler.d.ts +7 -3
  72. package/cjs/components/table/{useTableAnimationHandler.js → table-accordion/useTableAnimationHandler.js} +4 -4
  73. package/cjs/components/table/table-accordion/useTableAnimationHandler.js.map +1 -0
  74. package/cjs/components/tabs/Tabs.d.ts +0 -3
  75. package/cjs/components/tabs/TabsDocs.d.ts +1 -0
  76. package/cjs/components/tabs/TabsDocs.js +32 -4
  77. package/cjs/components/tabs/TabsDocs.js.map +1 -1
  78. package/cjs/components/toggle-button/ToggleButtonGroup.js +2 -2
  79. package/cjs/components/toggle-button/ToggleButtonGroup.js.map +1 -1
  80. package/cjs/components/toggle-button/style/dnb-toggle-button.css +15 -6
  81. package/cjs/components/toggle-button/style/dnb-toggle-button.min.css +1 -1
  82. package/cjs/components/toggle-button/style/dnb-toggle-button.scss +16 -9
  83. package/cjs/extensions/forms/DataContext/Provider/Provider.js +1 -1
  84. package/cjs/extensions/forms/DataContext/Provider/Provider.js.map +1 -1
  85. package/cjs/extensions/forms/Form/Visibility/Visibility.d.ts +2 -2
  86. package/cjs/extensions/forms/Form/Visibility/Visibility.js +20 -72
  87. package/cjs/extensions/forms/Form/Visibility/Visibility.js.map +1 -1
  88. package/cjs/extensions/forms/Form/Visibility/useVisibility.d.ts +5 -0
  89. package/cjs/extensions/forms/Form/Visibility/useVisibility.js +101 -0
  90. package/cjs/extensions/forms/Form/Visibility/useVisibility.js.map +1 -0
  91. package/cjs/extensions/forms/Value/Date/Date.d.ts +5 -1
  92. package/cjs/extensions/forms/Value/Date/Date.js +26 -3
  93. package/cjs/extensions/forms/Value/Date/Date.js.map +1 -1
  94. package/cjs/extensions/forms/Value/Date/DateDocs.d.ts +2 -0
  95. package/cjs/extensions/forms/Value/Date/DateDocs.js +20 -0
  96. package/cjs/extensions/forms/Value/Date/DateDocs.js.map +1 -0
  97. package/cjs/extensions/forms/Wizard/Container/WizardContainer.js +15 -9
  98. package/cjs/extensions/forms/Wizard/Container/WizardContainer.js.map +1 -1
  99. package/cjs/extensions/forms/Wizard/Context/WizardContext.d.ts +4 -0
  100. package/cjs/extensions/forms/Wizard/Context/WizardContext.js.map +1 -1
  101. package/cjs/extensions/forms/Wizard/Step/Step.d.ts +5 -0
  102. package/cjs/extensions/forms/Wizard/Step/Step.js +6 -2
  103. package/cjs/extensions/forms/Wizard/Step/Step.js.map +1 -1
  104. package/cjs/extensions/forms/Wizard/Step/StepDocs.js +5 -0
  105. package/cjs/extensions/forms/Wizard/Step/StepDocs.js.map +1 -1
  106. package/cjs/extensions/forms/Wizard/hooks/useNextRouter.js +1 -1
  107. package/cjs/extensions/forms/Wizard/hooks/useNextRouter.js.map +1 -1
  108. package/cjs/extensions/forms/Wizard/hooks/useQueryLocator.js +1 -1
  109. package/cjs/extensions/forms/Wizard/hooks/useQueryLocator.js.map +1 -1
  110. package/cjs/extensions/forms/Wizard/hooks/useReachRouter.js +1 -1
  111. package/cjs/extensions/forms/Wizard/hooks/useReachRouter.js.map +1 -1
  112. package/cjs/extensions/forms/Wizard/hooks/useReactRouter.js +1 -1
  113. package/cjs/extensions/forms/Wizard/hooks/useReactRouter.js.map +1 -1
  114. package/cjs/extensions/forms/constants/locales/en-GB.d.ts +7 -9
  115. package/cjs/extensions/forms/constants/locales/en-GB.js +7 -9
  116. package/cjs/extensions/forms/constants/locales/en-GB.js.map +1 -1
  117. package/cjs/extensions/forms/constants/locales/en-US.d.ts +7 -9
  118. package/cjs/extensions/forms/constants/locales/index.d.ts +14 -18
  119. package/cjs/extensions/forms/constants/locales/nb-NO.d.ts +7 -9
  120. package/cjs/extensions/forms/constants/locales/nb-NO.js +7 -9
  121. package/cjs/extensions/forms/constants/locales/nb-NO.js.map +1 -1
  122. package/cjs/shared/Context.d.ts +4 -0
  123. package/cjs/shared/Context.js.map +1 -1
  124. package/cjs/shared/Eufemia.d.ts +1 -1
  125. package/cjs/shared/Eufemia.js +2 -2
  126. package/cjs/shared/Eufemia.js.map +1 -1
  127. package/cjs/shared/component-helper.js +1 -1
  128. package/cjs/shared/component-helper.js.map +1 -1
  129. package/cjs/style/core/scopes.scss +1 -1
  130. package/cjs/style/dnb-ui-basis.css +1 -1
  131. package/cjs/style/dnb-ui-basis.min.css +1 -1
  132. package/cjs/style/dnb-ui-body.css +1 -1
  133. package/cjs/style/dnb-ui-body.min.css +1 -1
  134. package/cjs/style/dnb-ui-components.css +15 -6
  135. package/cjs/style/dnb-ui-components.min.css +1 -1
  136. package/cjs/style/dnb-ui-core.css +1 -1
  137. package/cjs/style/dnb-ui-core.min.css +1 -1
  138. package/cjs/style/themes/theme-eiendom/eiendom-theme-components.css +15 -6
  139. package/cjs/style/themes/theme-eiendom/eiendom-theme-components.min.css +1 -1
  140. package/cjs/style/themes/theme-sbanken/sbanken-theme-components.css +15 -6
  141. package/cjs/style/themes/theme-sbanken/sbanken-theme-components.min.css +1 -1
  142. package/cjs/style/themes/theme-ui/ui-theme-components.css +15 -6
  143. package/cjs/style/themes/theme-ui/ui-theme-components.min.css +1 -1
  144. package/components/accordion/Accordion.d.ts +15 -3
  145. package/components/accordion/Accordion.js +7 -0
  146. package/components/accordion/Accordion.js.map +1 -1
  147. package/components/accordion/AccordionDocs.d.ts +4 -0
  148. package/components/accordion/AccordionDocs.js +152 -0
  149. package/components/accordion/AccordionDocs.js.map +1 -0
  150. package/components/accordion/AccordionGroup.js +14 -4
  151. package/components/accordion/AccordionGroup.js.map +1 -1
  152. package/components/accordion/AccordionHeader.d.ts +5 -5
  153. package/components/accordion/AccordionHeader.js +3 -2
  154. package/components/accordion/AccordionHeader.js.map +1 -1
  155. package/components/accordion/AccordionProviderContext.d.ts +2 -0
  156. package/components/accordion/AccordionProviderContext.js.map +1 -1
  157. package/components/anchor/Anchor.d.ts +20 -0
  158. package/components/anchor/Anchor.js +13 -4
  159. package/components/anchor/Anchor.js.map +1 -1
  160. package/components/anchor/AnchorDocs.d.ts +3 -0
  161. package/components/anchor/AnchorDocs.js +74 -0
  162. package/components/anchor/AnchorDocs.js.map +1 -0
  163. package/components/autocomplete/Autocomplete.js +19 -5
  164. package/components/autocomplete/Autocomplete.js.map +1 -1
  165. package/components/breadcrumb/BreadcrumbItem.js.map +1 -1
  166. package/components/height-animation/HeightAnimationInstance.d.ts +3 -3
  167. package/components/height-animation/HeightAnimationInstance.js.map +1 -1
  168. package/components/height-animation/useHeightAnimation.d.ts +5 -1
  169. package/components/height-animation/useHeightAnimation.js.map +1 -1
  170. package/components/icon/Icon.d.ts +493 -61
  171. package/components/icon/Icon.js +89 -127
  172. package/components/icon/Icon.js.map +1 -1
  173. package/components/icon/IconHelpers.d.ts +2 -1
  174. package/components/icon/IconHelpers.js +1 -1
  175. package/components/icon/IconHelpers.js.map +1 -1
  176. package/components/icon/IconPrimary.d.ts +2 -2
  177. package/components/icon/IconPrimary.js.map +1 -1
  178. package/components/icon-primary/IconPrimary.d.ts +8 -11
  179. package/components/icon-primary/IconPrimary.js +25 -31
  180. package/components/icon-primary/IconPrimary.js.map +1 -1
  181. package/components/step-indicator/StepIndicatorContext.js +67 -60
  182. package/components/step-indicator/StepIndicatorContext.js.map +1 -1
  183. package/components/step-indicator/StepIndicatorItem.js +16 -24
  184. package/components/step-indicator/StepIndicatorItem.js.map +1 -1
  185. package/components/step-indicator/StepIndicatorModal.js +6 -6
  186. package/components/step-indicator/StepIndicatorModal.js.map +1 -1
  187. package/components/step-indicator/StepIndicatorSidebar.js +11 -10
  188. package/components/step-indicator/StepIndicatorSidebar.js.map +1 -1
  189. package/components/step-indicator/StepIndicatorTriggerButton.js.map +1 -1
  190. package/components/table/Table.d.ts +1 -1
  191. package/components/table/Table.js.map +1 -1
  192. package/components/table/TableContext.d.ts +12 -2
  193. package/components/table/TableContext.js +0 -1
  194. package/components/table/TableContext.js.map +1 -1
  195. package/components/table/TableDocs.d.ts +7 -0
  196. package/components/table/TableDocs.js +190 -0
  197. package/components/table/TableDocs.js.map +1 -0
  198. package/components/table/TableTd.d.ts +3 -3
  199. package/components/table/TableTd.js +2 -2
  200. package/components/table/TableTd.js.map +1 -1
  201. package/components/table/TableTr.d.ts +9 -5
  202. package/components/table/TableTr.js +4 -4
  203. package/components/table/TableTr.js.map +1 -1
  204. package/components/table/table-accordion/TableAccordionContent.d.ts +15 -0
  205. package/components/table/table-accordion/TableAccordionContent.js +95 -0
  206. package/components/table/table-accordion/TableAccordionContent.js.map +1 -0
  207. package/components/table/table-accordion/TableAccordionContext.d.ts +16 -0
  208. package/components/table/table-accordion/TableAccordionContext.js +3 -0
  209. package/components/table/table-accordion/TableAccordionContext.js.map +1 -0
  210. package/components/table/table-accordion/TableAccordionHead.d.ts +8 -0
  211. package/components/table/{TableAccordion.js → table-accordion/TableAccordionHead.js} +14 -15
  212. package/components/table/table-accordion/TableAccordionHead.js.map +1 -0
  213. package/{cjs/components/table → components/table/table-accordion}/useTableAnimationHandler.d.ts +7 -3
  214. package/components/table/{useTableAnimationHandler.js → table-accordion/useTableAnimationHandler.js} +3 -3
  215. package/components/table/table-accordion/useTableAnimationHandler.js.map +1 -0
  216. package/components/tabs/Tabs.d.ts +0 -3
  217. package/components/tabs/TabsDocs.d.ts +1 -0
  218. package/components/tabs/TabsDocs.js +30 -3
  219. package/components/tabs/TabsDocs.js.map +1 -1
  220. package/components/toggle-button/ToggleButtonGroup.js +2 -2
  221. package/components/toggle-button/ToggleButtonGroup.js.map +1 -1
  222. package/components/toggle-button/style/dnb-toggle-button.css +15 -6
  223. package/components/toggle-button/style/dnb-toggle-button.min.css +1 -1
  224. package/components/toggle-button/style/dnb-toggle-button.scss +16 -9
  225. package/es/components/accordion/Accordion.d.ts +15 -3
  226. package/es/components/accordion/Accordion.js +7 -0
  227. package/es/components/accordion/Accordion.js.map +1 -1
  228. package/es/components/accordion/AccordionDocs.d.ts +4 -0
  229. package/es/components/accordion/AccordionDocs.js +152 -0
  230. package/es/components/accordion/AccordionDocs.js.map +1 -0
  231. package/es/components/accordion/AccordionGroup.js +14 -4
  232. package/es/components/accordion/AccordionGroup.js.map +1 -1
  233. package/es/components/accordion/AccordionHeader.d.ts +5 -5
  234. package/es/components/accordion/AccordionHeader.js +3 -2
  235. package/es/components/accordion/AccordionHeader.js.map +1 -1
  236. package/es/components/accordion/AccordionProviderContext.d.ts +2 -0
  237. package/es/components/accordion/AccordionProviderContext.js.map +1 -1
  238. package/es/components/anchor/Anchor.d.ts +20 -0
  239. package/es/components/anchor/Anchor.js +13 -4
  240. package/es/components/anchor/Anchor.js.map +1 -1
  241. package/es/components/anchor/AnchorDocs.d.ts +3 -0
  242. package/es/components/anchor/AnchorDocs.js +74 -0
  243. package/es/components/anchor/AnchorDocs.js.map +1 -0
  244. package/es/components/autocomplete/Autocomplete.js +19 -5
  245. package/es/components/autocomplete/Autocomplete.js.map +1 -1
  246. package/es/components/breadcrumb/BreadcrumbItem.js.map +1 -1
  247. package/es/components/height-animation/HeightAnimationInstance.d.ts +3 -3
  248. package/es/components/height-animation/HeightAnimationInstance.js.map +1 -1
  249. package/es/components/height-animation/useHeightAnimation.d.ts +5 -1
  250. package/es/components/height-animation/useHeightAnimation.js.map +1 -1
  251. package/es/components/icon/Icon.d.ts +493 -61
  252. package/es/components/icon/Icon.js +82 -116
  253. package/es/components/icon/Icon.js.map +1 -1
  254. package/es/components/icon/IconHelpers.d.ts +2 -1
  255. package/es/components/icon/IconHelpers.js +1 -1
  256. package/es/components/icon/IconHelpers.js.map +1 -1
  257. package/es/components/icon/IconPrimary.d.ts +2 -2
  258. package/es/components/icon/IconPrimary.js.map +1 -1
  259. package/es/components/icon-primary/IconPrimary.d.ts +8 -11
  260. package/es/components/icon-primary/IconPrimary.js +25 -31
  261. package/es/components/icon-primary/IconPrimary.js.map +1 -1
  262. package/es/components/step-indicator/StepIndicatorContext.js +67 -60
  263. package/es/components/step-indicator/StepIndicatorContext.js.map +1 -1
  264. package/es/components/step-indicator/StepIndicatorItem.js +17 -25
  265. package/es/components/step-indicator/StepIndicatorItem.js.map +1 -1
  266. package/es/components/step-indicator/StepIndicatorModal.js +6 -6
  267. package/es/components/step-indicator/StepIndicatorModal.js.map +1 -1
  268. package/es/components/step-indicator/StepIndicatorSidebar.js +11 -10
  269. package/es/components/step-indicator/StepIndicatorSidebar.js.map +1 -1
  270. package/es/components/step-indicator/StepIndicatorTriggerButton.js.map +1 -1
  271. package/es/components/table/Table.d.ts +1 -1
  272. package/es/components/table/Table.js.map +1 -1
  273. package/es/components/table/TableContext.d.ts +12 -2
  274. package/es/components/table/TableContext.js +0 -1
  275. package/es/components/table/TableContext.js.map +1 -1
  276. package/es/components/table/TableDocs.d.ts +7 -0
  277. package/es/components/table/TableDocs.js +190 -0
  278. package/es/components/table/TableDocs.js.map +1 -0
  279. package/es/components/table/TableTd.d.ts +3 -3
  280. package/es/components/table/TableTd.js +2 -2
  281. package/es/components/table/TableTd.js.map +1 -1
  282. package/es/components/table/TableTr.d.ts +9 -5
  283. package/es/components/table/TableTr.js +4 -4
  284. package/es/components/table/TableTr.js.map +1 -1
  285. package/es/components/table/table-accordion/TableAccordionContent.d.ts +15 -0
  286. package/es/components/table/table-accordion/TableAccordionContent.js +92 -0
  287. package/es/components/table/table-accordion/TableAccordionContent.js.map +1 -0
  288. package/es/components/table/table-accordion/TableAccordionContext.d.ts +16 -0
  289. package/es/components/table/table-accordion/TableAccordionContext.js +3 -0
  290. package/es/components/table/table-accordion/TableAccordionContext.js.map +1 -0
  291. package/es/components/table/table-accordion/TableAccordionHead.d.ts +8 -0
  292. package/es/components/table/{TableAccordion.js → table-accordion/TableAccordionHead.js} +14 -15
  293. package/es/components/table/table-accordion/TableAccordionHead.js.map +1 -0
  294. package/{components/table → es/components/table/table-accordion}/useTableAnimationHandler.d.ts +7 -3
  295. package/es/components/table/{useTableAnimationHandler.js → table-accordion/useTableAnimationHandler.js} +3 -3
  296. package/es/components/table/table-accordion/useTableAnimationHandler.js.map +1 -0
  297. package/es/components/tabs/Tabs.d.ts +0 -3
  298. package/es/components/tabs/TabsDocs.d.ts +1 -0
  299. package/es/components/tabs/TabsDocs.js +30 -3
  300. package/es/components/tabs/TabsDocs.js.map +1 -1
  301. package/es/components/toggle-button/ToggleButtonGroup.js +2 -2
  302. package/es/components/toggle-button/ToggleButtonGroup.js.map +1 -1
  303. package/es/components/toggle-button/style/dnb-toggle-button.css +15 -6
  304. package/es/components/toggle-button/style/dnb-toggle-button.min.css +1 -1
  305. package/es/components/toggle-button/style/dnb-toggle-button.scss +16 -9
  306. package/es/extensions/forms/DataContext/Provider/Provider.js +1 -1
  307. package/es/extensions/forms/DataContext/Provider/Provider.js.map +1 -1
  308. package/es/extensions/forms/Form/Visibility/Visibility.d.ts +2 -2
  309. package/es/extensions/forms/Form/Visibility/Visibility.js +20 -71
  310. package/es/extensions/forms/Form/Visibility/Visibility.js.map +1 -1
  311. package/es/extensions/forms/Form/Visibility/useVisibility.d.ts +5 -0
  312. package/es/extensions/forms/Form/Visibility/useVisibility.js +94 -0
  313. package/es/extensions/forms/Form/Visibility/useVisibility.js.map +1 -0
  314. package/es/extensions/forms/Value/Date/Date.d.ts +5 -1
  315. package/es/extensions/forms/Value/Date/Date.js +25 -3
  316. package/es/extensions/forms/Value/Date/Date.js.map +1 -1
  317. package/es/extensions/forms/Value/Date/DateDocs.d.ts +2 -0
  318. package/es/extensions/forms/Value/Date/DateDocs.js +13 -0
  319. package/es/extensions/forms/Value/Date/DateDocs.js.map +1 -0
  320. package/es/extensions/forms/Wizard/Container/WizardContainer.js +15 -9
  321. package/es/extensions/forms/Wizard/Container/WizardContainer.js.map +1 -1
  322. package/es/extensions/forms/Wizard/Context/WizardContext.d.ts +4 -0
  323. package/es/extensions/forms/Wizard/Context/WizardContext.js.map +1 -1
  324. package/es/extensions/forms/Wizard/Step/Step.d.ts +5 -0
  325. package/es/extensions/forms/Wizard/Step/Step.js +6 -2
  326. package/es/extensions/forms/Wizard/Step/Step.js.map +1 -1
  327. package/es/extensions/forms/Wizard/Step/StepDocs.js +5 -0
  328. package/es/extensions/forms/Wizard/Step/StepDocs.js.map +1 -1
  329. package/es/extensions/forms/Wizard/hooks/useNextRouter.js +1 -1
  330. package/es/extensions/forms/Wizard/hooks/useNextRouter.js.map +1 -1
  331. package/es/extensions/forms/Wizard/hooks/useQueryLocator.js +1 -1
  332. package/es/extensions/forms/Wizard/hooks/useQueryLocator.js.map +1 -1
  333. package/es/extensions/forms/Wizard/hooks/useReachRouter.js +1 -1
  334. package/es/extensions/forms/Wizard/hooks/useReachRouter.js.map +1 -1
  335. package/es/extensions/forms/Wizard/hooks/useReactRouter.js +1 -1
  336. package/es/extensions/forms/Wizard/hooks/useReactRouter.js.map +1 -1
  337. package/es/extensions/forms/constants/locales/en-GB.d.ts +7 -9
  338. package/es/extensions/forms/constants/locales/en-GB.js +7 -9
  339. package/es/extensions/forms/constants/locales/en-GB.js.map +1 -1
  340. package/es/extensions/forms/constants/locales/en-US.d.ts +7 -9
  341. package/es/extensions/forms/constants/locales/index.d.ts +14 -18
  342. package/es/extensions/forms/constants/locales/nb-NO.d.ts +7 -9
  343. package/es/extensions/forms/constants/locales/nb-NO.js +7 -9
  344. package/es/extensions/forms/constants/locales/nb-NO.js.map +1 -1
  345. package/es/shared/Context.d.ts +4 -0
  346. package/es/shared/Context.js.map +1 -1
  347. package/es/shared/Eufemia.d.ts +1 -1
  348. package/es/shared/Eufemia.js +2 -2
  349. package/es/shared/Eufemia.js.map +1 -1
  350. package/es/shared/component-helper.js +1 -1
  351. package/es/shared/component-helper.js.map +1 -1
  352. package/es/style/core/scopes.scss +1 -1
  353. package/es/style/dnb-ui-basis.css +1 -1
  354. package/es/style/dnb-ui-basis.min.css +1 -1
  355. package/es/style/dnb-ui-body.css +1 -1
  356. package/es/style/dnb-ui-body.min.css +1 -1
  357. package/es/style/dnb-ui-components.css +15 -6
  358. package/es/style/dnb-ui-components.min.css +1 -1
  359. package/es/style/dnb-ui-core.css +1 -1
  360. package/es/style/dnb-ui-core.min.css +1 -1
  361. package/es/style/themes/theme-eiendom/eiendom-theme-components.css +15 -6
  362. package/es/style/themes/theme-eiendom/eiendom-theme-components.min.css +1 -1
  363. package/es/style/themes/theme-sbanken/sbanken-theme-components.css +15 -6
  364. package/es/style/themes/theme-sbanken/sbanken-theme-components.min.css +1 -1
  365. package/es/style/themes/theme-ui/ui-theme-components.css +15 -6
  366. package/es/style/themes/theme-ui/ui-theme-components.min.css +1 -1
  367. package/esm/dnb-ui-basis.min.mjs +1 -1
  368. package/esm/dnb-ui-components.min.mjs +1 -1
  369. package/esm/dnb-ui-elements.min.mjs +1 -1
  370. package/esm/dnb-ui-extensions.min.mjs +5 -5
  371. package/esm/dnb-ui-lib.min.mjs +1 -1
  372. package/extensions/forms/DataContext/Provider/Provider.js +1 -1
  373. package/extensions/forms/DataContext/Provider/Provider.js.map +1 -1
  374. package/extensions/forms/Form/Visibility/Visibility.d.ts +2 -2
  375. package/extensions/forms/Form/Visibility/Visibility.js +20 -71
  376. package/extensions/forms/Form/Visibility/Visibility.js.map +1 -1
  377. package/extensions/forms/Form/Visibility/useVisibility.d.ts +5 -0
  378. package/extensions/forms/Form/Visibility/useVisibility.js +95 -0
  379. package/extensions/forms/Form/Visibility/useVisibility.js.map +1 -0
  380. package/extensions/forms/Value/Date/Date.d.ts +5 -1
  381. package/extensions/forms/Value/Date/Date.js +25 -3
  382. package/extensions/forms/Value/Date/Date.js.map +1 -1
  383. package/extensions/forms/Value/Date/DateDocs.d.ts +2 -0
  384. package/extensions/forms/Value/Date/DateDocs.js +13 -0
  385. package/extensions/forms/Value/Date/DateDocs.js.map +1 -0
  386. package/extensions/forms/Wizard/Container/WizardContainer.js +15 -9
  387. package/extensions/forms/Wizard/Container/WizardContainer.js.map +1 -1
  388. package/extensions/forms/Wizard/Context/WizardContext.d.ts +4 -0
  389. package/extensions/forms/Wizard/Context/WizardContext.js.map +1 -1
  390. package/extensions/forms/Wizard/Step/Step.d.ts +5 -0
  391. package/extensions/forms/Wizard/Step/Step.js +6 -2
  392. package/extensions/forms/Wizard/Step/Step.js.map +1 -1
  393. package/extensions/forms/Wizard/Step/StepDocs.js +5 -0
  394. package/extensions/forms/Wizard/Step/StepDocs.js.map +1 -1
  395. package/extensions/forms/Wizard/hooks/useNextRouter.js +1 -1
  396. package/extensions/forms/Wizard/hooks/useNextRouter.js.map +1 -1
  397. package/extensions/forms/Wizard/hooks/useQueryLocator.js +1 -1
  398. package/extensions/forms/Wizard/hooks/useQueryLocator.js.map +1 -1
  399. package/extensions/forms/Wizard/hooks/useReachRouter.js +1 -1
  400. package/extensions/forms/Wizard/hooks/useReachRouter.js.map +1 -1
  401. package/extensions/forms/Wizard/hooks/useReactRouter.js +1 -1
  402. package/extensions/forms/Wizard/hooks/useReactRouter.js.map +1 -1
  403. package/extensions/forms/constants/locales/en-GB.d.ts +7 -9
  404. package/extensions/forms/constants/locales/en-GB.js +7 -9
  405. package/extensions/forms/constants/locales/en-GB.js.map +1 -1
  406. package/extensions/forms/constants/locales/en-US.d.ts +7 -9
  407. package/extensions/forms/constants/locales/index.d.ts +14 -18
  408. package/extensions/forms/constants/locales/nb-NO.d.ts +7 -9
  409. package/extensions/forms/constants/locales/nb-NO.js +7 -9
  410. package/extensions/forms/constants/locales/nb-NO.js.map +1 -1
  411. package/package.json +1 -1
  412. package/shared/Context.d.ts +4 -0
  413. package/shared/Context.js.map +1 -1
  414. package/shared/Eufemia.d.ts +1 -1
  415. package/shared/Eufemia.js +2 -2
  416. package/shared/Eufemia.js.map +1 -1
  417. package/shared/component-helper.js +1 -1
  418. package/shared/component-helper.js.map +1 -1
  419. package/style/core/scopes.scss +1 -1
  420. package/style/dnb-ui-basis.css +1 -1
  421. package/style/dnb-ui-basis.min.css +1 -1
  422. package/style/dnb-ui-body.css +1 -1
  423. package/style/dnb-ui-body.min.css +1 -1
  424. package/style/dnb-ui-components.css +15 -6
  425. package/style/dnb-ui-components.min.css +1 -1
  426. package/style/dnb-ui-core.css +1 -1
  427. package/style/dnb-ui-core.min.css +1 -1
  428. package/style/themes/theme-eiendom/eiendom-theme-components.css +15 -6
  429. package/style/themes/theme-eiendom/eiendom-theme-components.min.css +1 -1
  430. package/style/themes/theme-sbanken/sbanken-theme-components.css +15 -6
  431. package/style/themes/theme-sbanken/sbanken-theme-components.min.css +1 -1
  432. package/style/themes/theme-ui/ui-theme-components.css +15 -6
  433. package/style/themes/theme-ui/ui-theme-components.min.css +1 -1
  434. package/umd/dnb-ui-basis.min.js +1 -1
  435. package/umd/dnb-ui-components.min.js +1 -1
  436. package/umd/dnb-ui-elements.min.js +1 -1
  437. package/umd/dnb-ui-extensions.min.js +5 -5
  438. package/umd/dnb-ui-lib.min.js +1 -1
  439. package/cjs/components/table/TableAccordion.d.ts +0 -8
  440. package/cjs/components/table/TableAccordion.js.map +0 -1
  441. package/cjs/components/table/TableAccordionTd.d.ts +0 -9
  442. package/cjs/components/table/TableAccordionTd.js.map +0 -1
  443. package/cjs/components/table/TableAccordionTr.d.ts +0 -13
  444. package/cjs/components/table/TableAccordionTr.js +0 -61
  445. package/cjs/components/table/TableAccordionTr.js.map +0 -1
  446. package/cjs/components/table/useTableAnimationHandler.js.map +0 -1
  447. package/components/table/TableAccordion.d.ts +0 -8
  448. package/components/table/TableAccordion.js.map +0 -1
  449. package/components/table/TableAccordionTd.d.ts +0 -9
  450. package/components/table/TableAccordionTd.js +0 -61
  451. package/components/table/TableAccordionTd.js.map +0 -1
  452. package/components/table/TableAccordionTr.d.ts +0 -13
  453. package/components/table/TableAccordionTr.js +0 -51
  454. package/components/table/TableAccordionTr.js.map +0 -1
  455. package/components/table/useTableAnimationHandler.js.map +0 -1
  456. package/es/components/table/TableAccordion.d.ts +0 -8
  457. package/es/components/table/TableAccordion.js.map +0 -1
  458. package/es/components/table/TableAccordionTd.d.ts +0 -9
  459. package/es/components/table/TableAccordionTd.js +0 -61
  460. package/es/components/table/TableAccordionTd.js.map +0 -1
  461. package/es/components/table/TableAccordionTr.d.ts +0 -13
  462. package/es/components/table/TableAccordionTr.js +0 -51
  463. package/es/components/table/TableAccordionTr.js.map +0 -1
  464. package/es/components/table/useTableAnimationHandler.js.map +0 -1
@@ -0,0 +1,3 @@
1
+ import React from 'react';
2
+ export const TableAccordionContext = React.createContext(null);
3
+ //# sourceMappingURL=TableAccordionContext.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"TableAccordionContext.js","names":["React","TableAccordionContext","createContext"],"sources":["../../../../../src/components/table/table-accordion/TableAccordionContext.tsx"],"sourcesContent":["/**\n * Web TableContext Context\n *\n */\n\nimport React from 'react'\nimport type { TableTrProps } from '../TableTr'\n\ntype TableAccordionContextProps = {\n toggleOpenTr: (\n event: React.SyntheticEvent,\n allowInteractiveElement?: boolean\n ) => void\n trIsOpen: boolean\n countTds: number\n noAnimation: TableTrProps['noAnimation']\n onOpened: TableTrProps['onOpened']\n onClosed: TableTrProps['onClosed']\n}\n\nexport const TableAccordionContext =\n React.createContext<TableAccordionContextProps>(null)\n"],"mappings":"AAKA,OAAOA,KAAK,MAAM,OAAO;AAezB,OAAO,MAAMC,qBAAqB,GAChCD,KAAK,CAACE,aAAa,CAA6B,IAAI,CAAC"}
@@ -0,0 +1,8 @@
1
+ import React from 'react';
2
+ import type { TableTrProps } from '../TableTr';
3
+ export type TableAccordionHeadProps = {
4
+ /** The row number */
5
+ count: number;
6
+ } & TableTrProps & React.TableHTMLAttributes<HTMLTableRowElement>;
7
+ export declare function TableAccordionHead(allProps: TableAccordionHeadProps): import("react/jsx-runtime").JSX.Element;
8
+ export declare function TableAccordionToggleButton(): import("react/jsx-runtime").JSX.Element;
@@ -6,16 +6,16 @@ var _Td;
6
6
  const _excluded = ["children", "className", "expanded", "disabled", "noAnimation", "onClick", "onOpened", "onClosed", "count"];
7
7
  import React, { useEffect } from 'react';
8
8
  import classnames from 'classnames';
9
- import Button from '../button/Button';
10
- import IconPrimary from '../icon/IconPrimary';
11
- import Th from './TableTh';
12
- import Td from './TableTd';
13
- import { TableAccordionContext, TableContext } from './TableContext';
14
9
  import keycode from 'keycode';
15
- import { hasSelectedText } from '../../shared/helpers';
16
- import TableAccordionTd from './TableAccordionTd';
17
- import TableAccordionTr from './TableAccordionTr';
18
- export function TableAccordion(allProps) {
10
+ import { hasSelectedText } from '../../../shared/helpers';
11
+ import Button from '../../button/Button';
12
+ import IconPrimary from '../../icon/IconPrimary';
13
+ import Th from '../TableTh';
14
+ import Td from '../TableTd';
15
+ import { TableContext } from '../TableContext';
16
+ import { TableAccordionContext } from './TableAccordionContext';
17
+ import { TableAccordionContentSingle, TableAccordionContentRow } from './TableAccordionContent';
18
+ export function TableAccordionHead(allProps) {
19
19
  const {
20
20
  children,
21
21
  className,
@@ -93,7 +93,6 @@ export function TableAccordion(allProps) {
93
93
  trIsOpen,
94
94
  noAnimation,
95
95
  countTds,
96
- hasAccordionContent,
97
96
  onOpened,
98
97
  onClosed
99
98
  }
@@ -135,8 +134,8 @@ export function TableAccordion(allProps) {
135
134
  export function TableAccordionToggleButton() {
136
135
  var _React$useContext;
137
136
  const tableAccordionContext = React.useContext(TableAccordionContext);
138
- const allProps = (_React$useContext = React.useContext(TableContext)) === null || _React$useContext === void 0 ? void 0 : _React$useContext.allProps;
139
- const iconSize = allProps.size === 'medium' || allProps.size === 'small' ? 'basis' : 'medium';
137
+ const tableContextAllProps = (_React$useContext = React.useContext(TableContext)) === null || _React$useContext === void 0 ? void 0 : _React$useContext.allProps;
138
+ const iconSize = (tableContextAllProps === null || tableContextAllProps === void 0 ? void 0 : tableContextAllProps.size) === 'medium' || (tableContextAllProps === null || tableContextAllProps === void 0 ? void 0 : tableContextAllProps.size) === 'small' ? 'basis' : 'medium';
140
139
  return React.createElement("span", {
141
140
  className: "dnb-table__toggle-button"
142
141
  }, React.createElement(IconPrimary, {
@@ -145,11 +144,11 @@ export function TableAccordionToggleButton() {
145
144
  }), React.createElement(Button, {
146
145
  className: "dnb-sr-only",
147
146
  tabIndex: -1,
148
- "aria-label": allProps === null || allProps === void 0 ? void 0 : allProps.accordionToggleButtonSR,
147
+ "aria-label": tableContextAllProps === null || tableContextAllProps === void 0 ? void 0 : tableContextAllProps.accordionToggleButtonSR,
149
148
  "aria-expanded": Boolean(tableAccordionContext === null || tableAccordionContext === void 0 ? void 0 : tableAccordionContext.trIsOpen),
150
149
  on_click: event => tableAccordionContext === null || tableAccordionContext === void 0 ? void 0 : tableAccordionContext.toggleOpenTr(event, true)
151
150
  }));
152
151
  }
153
- const isAccordionElement = element => element.type === TableAccordionTd || element.type === TableAccordionTr;
152
+ const isAccordionElement = element => element.type === TableAccordionContentSingle || element.type === TableAccordionContentRow;
154
153
  const isTableHead = children => children.some(element => element.type === Th);
155
- //# sourceMappingURL=TableAccordion.js.map
154
+ //# sourceMappingURL=TableAccordionHead.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"TableAccordionHead.js","names":["React","useEffect","classnames","keycode","hasSelectedText","Button","IconPrimary","Th","Td","TableContext","TableAccordionContext","TableAccordionContentSingle","TableAccordionContentRow","TableAccordionHead","allProps","children","className","expanded","disabled","noAnimation","onClick","onOpened","onClosed","count","props","_objectWithoutProperties","_excluded","tableContext","useContext","trIsOpen","setOpen","useState","location","id","hash","trIsHover","setHover","trHadClick","setHadClick","headerContent","Children","toArray","addExpandIcon","icon","accordionChevronPlacement","push","unshift","accordionContent","filter","element","isAccordionElement","hasAccordionContent","length","every","isValidElement","_tableContext$collaps","collapseTrCallbacks","current","trParams","toggleOpenTr","onMouseEnter","onMouseEnterHandler","onMouseLeave","onMouseLeaveHandler","onKeyDown","onKeydownHandler","_Td","createElement","key","TableAccordionToggleButton","isTableHead","_tableContext$allProp","accordionToggleButtonSR","countTds","type","Provider","value","_extends","tabIndex","undefined","event","nativeEvent","target","document","activeElement","tagName","preventDefault","allowInteractiveElement","arguments","_React$useContext","tableAccordionContext","tableContextAllProps","iconSize","size","Boolean","on_click","some"],"sources":["../../../../../src/components/table/table-accordion/TableAccordionHead.tsx"],"sourcesContent":["import React, { useEffect } from 'react'\nimport classnames from 'classnames'\nimport keycode from 'keycode'\nimport { hasSelectedText } from '../../../shared/helpers'\nimport Button from '../../button/Button'\nimport IconPrimary from '../../icon/IconPrimary'\nimport Th from '../TableTh'\nimport Td from '../TableTd'\nimport { TableContext } from '../TableContext'\nimport { TableAccordionContext } from './TableAccordionContext'\nimport {\n TableAccordionContentSingle,\n TableAccordionContentRow,\n} from './TableAccordionContent'\n\nimport type {\n TableAccordionContentSingleProps,\n TableAccordionContentRowProps,\n} from './TableAccordionContent'\nimport type { TableTrProps } from '../TableTr'\n\nexport type TableAccordionHeadProps = {\n /** The row number */\n count: number\n} & TableTrProps &\n React.TableHTMLAttributes<HTMLTableRowElement>\n\nexport function TableAccordionHead(allProps: TableAccordionHeadProps) {\n const {\n children,\n className,\n expanded,\n disabled,\n noAnimation,\n onClick,\n onOpened,\n onClosed,\n count,\n ...props\n } = allProps\n const tableContext = React.useContext(TableContext)\n\n const [trIsOpen, setOpen] = React.useState(() => {\n if (typeof expanded === 'boolean') {\n return expanded\n } else if (typeof location !== 'undefined') {\n const id = props?.id\n if (id && '#' + id === location.hash) {\n return true\n }\n }\n\n return false\n })\n const [trIsHover, setHover] = React.useState(false)\n const [trHadClick, setHadClick] = React.useState(false)\n\n let headerContent = React.Children.toArray(children)\n\n const addExpandIcon = (icon) => {\n if (tableContext.allProps.accordionChevronPlacement === 'end') {\n headerContent.push(icon)\n } else {\n headerContent.unshift(icon)\n }\n }\n /**\n * Handle Accordion Content\n */\n const accordionContent = headerContent.filter(\n (element: React.ReactElement) => {\n return isAccordionElement(element)\n }\n ) as React.ReactElement<\n TableAccordionContentSingleProps | TableAccordionContentRowProps\n >[]\n\n const hasAccordionContent =\n accordionContent.length !== 0 &&\n accordionContent.every((element) => React.isValidElement(element))\n\n useEffect(() => {\n if (\n hasAccordionContent &&\n tableContext?.collapseTrCallbacks?.current &&\n count\n ) {\n tableContext.collapseTrCallbacks.current[count] = () => {\n setOpen(false)\n }\n }\n }, [count, tableContext?.collapseTrCallbacks, hasAccordionContent])\n\n const trParams =\n !disabled && hasAccordionContent\n ? {\n onClick: toggleOpenTr,\n onMouseEnter: onMouseEnterHandler,\n onMouseLeave: onMouseLeaveHandler,\n onKeyDown: onKeydownHandler,\n }\n : {}\n\n if (hasAccordionContent) {\n // Remove the AccordionContent, and use it outside of the tr\n headerContent = headerContent.filter((element: React.ReactElement) => {\n return !isAccordionElement(element)\n })\n\n addExpandIcon(\n <Td className=\"dnb-table__td__accordion-icon\" key=\"td-icon\">\n <TableAccordionToggleButton />\n </Td>\n )\n } else if (isTableHead(headerContent)) {\n addExpandIcon(\n <Th\n aria-hidden\n className=\"dnb-table__th__accordion-icon\"\n key=\"th-icon\"\n >\n <div>{tableContext?.allProps?.accordionToggleButtonSR}</div>\n </Th>\n )\n }\n\n const countTds = hasAccordionContent\n ? headerContent.filter((element: React.ReactElement) => {\n return element.type === Td // TODO: We may need to include this in future --> || component.type === Td.MainCell\n }).length\n : null\n\n return (\n <TableAccordionContext.Provider\n value={{\n toggleOpenTr,\n trIsOpen,\n noAnimation,\n countTds,\n onOpened,\n onClosed,\n }}\n >\n <tr\n tabIndex={accordionContent && !disabled ? 0 : undefined}\n className={classnames(\n className,\n hasAccordionContent && 'dnb-table__tr--has-accordion-content',\n trIsOpen && 'dnb-table__tr--expanded',\n disabled && 'dnb-table__tr--disabled',\n noAnimation && 'dnb-table__tr--no-animation',\n trIsHover && trHadClick && 'dnb-table__tr--hover'\n )}\n {...trParams}\n {...props}\n >\n {headerContent}\n </tr>\n {accordionContent}\n </TableAccordionContext.Provider>\n )\n\n function onKeydownHandler(event: React.SyntheticEvent) {\n switch (keycode(event.nativeEvent)) {\n case 'space':\n case 'enter':\n {\n const target = event.target as HTMLElement\n if (\n document.activeElement !== target ||\n target.tagName === 'TR'\n ) {\n setOpen(!trIsOpen)\n event.preventDefault()\n }\n }\n break\n }\n }\n function onMouseEnterHandler() {\n setHover(true)\n }\n function onMouseLeaveHandler() {\n setHover(false)\n setHadClick(false)\n }\n function toggleOpenTr(\n event: React.SyntheticEvent,\n allowInteractiveElement = false\n ) {\n const target = event.target as HTMLElement\n if (\n /**\n * Do not toggle if user clicked an interactive element (input, button, etc.).\n * Interactive to set activeElement on mouseDown, we we can check against it.\n */\n ((document.activeElement !== target &&\n /**\n * Safari on macOS needs this extra check:\n *\n * > For example, on macOS systems, elements that aren't text input elements are not typically focusable by default.\n * https://developer.mozilla.org/en-US/docs/Web/API/Document/activeElement\n */\n target.tagName !== 'INPUT' &&\n target.tagName !== 'LABEL') ||\n allowInteractiveElement) &&\n /**\n * Let the user select text,\n * without triggering the accordion.\n */\n !hasSelectedText()\n ) {\n setOpen(!trIsOpen)\n setHadClick(true)\n\n onClick?.(event)\n }\n }\n}\n\nexport function TableAccordionToggleButton() {\n const tableAccordionContext = React.useContext(TableAccordionContext)\n const tableContextAllProps = React.useContext(TableContext)?.allProps\n const iconSize =\n tableContextAllProps?.size === 'medium' ||\n tableContextAllProps?.size === 'small'\n ? 'basis'\n : 'medium'\n\n return (\n <span className=\"dnb-table__toggle-button\">\n <IconPrimary icon=\"chevron_down\" size={iconSize} />\n <Button\n className=\"dnb-sr-only\"\n tabIndex={-1}\n aria-label={tableContextAllProps?.accordionToggleButtonSR}\n aria-expanded={Boolean(tableAccordionContext?.trIsOpen)}\n on_click={(event) =>\n tableAccordionContext?.toggleOpenTr(event, true)\n }\n />\n </span>\n )\n}\n\nconst isAccordionElement = (element: React.ReactElement) =>\n element.type === TableAccordionContentSingle ||\n element.type === TableAccordionContentRow\n\nconst isTableHead = (children: React.ReactNode[]) =>\n children.some((element: React.ReactElement) => element.type === Th)\n"],"mappings":"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"}
@@ -1,5 +1,5 @@
1
1
  import React from 'react';
2
- import { TableAccordionTrProps } from './TableAccordionTr';
2
+ import type { TableAccordionContentRowProps } from './TableAccordionContent';
3
3
  export type useTableAnimationHandlerProps = {
4
4
  /**
5
5
  * Ref to <div> inside the <tr> element being expanded/collapsed
@@ -10,11 +10,15 @@ export type useTableAnimationHandlerProps = {
10
10
  */
11
11
  trRef: React.MutableRefObject<HTMLTableRowElement>;
12
12
  };
13
- export declare function useTableAnimationHandler({ innerRef, trRef, expanded, noAnimation, }: useTableAnimationHandlerProps & TableAccordionTrProps): {
13
+ export declare function useTableAnimationHandler({ innerRef, trRef, expanded, noAnimation, }: useTableAnimationHandlerProps & TableAccordionContentRowProps): {
14
14
  ariaLive: any;
15
15
  isInDOM: boolean;
16
16
  isAnimating: boolean;
17
17
  isVisibleParallax: boolean;
18
- firstPaintStyle: React.CSSProperties;
18
+ firstPaintStyle: {
19
+ readonly visibility: "hidden";
20
+ readonly opacity: "0";
21
+ readonly height: "auto";
22
+ } | Record<string, never>;
19
23
  };
20
24
  export default useTableAnimationHandler;
@@ -1,7 +1,7 @@
1
1
  import React, { useCallback } from 'react';
2
- import { getClosestScrollViewElement } from '../../shared/component-helper';
3
- import { useHeightAnimation } from '../height-animation/useHeightAnimation';
4
- import { TableAccordionContext } from './TableContext';
2
+ import { getClosestScrollViewElement } from '../../../shared/component-helper';
3
+ import { useHeightAnimation } from '../../height-animation/useHeightAnimation';
4
+ import { TableAccordionContext } from './TableAccordionContext';
5
5
  export function useTableAnimationHandler(_ref) {
6
6
  let {
7
7
  innerRef,
@@ -0,0 +1 @@
1
+ {"version":3,"file":"useTableAnimationHandler.js","names":["React","useCallback","getClosestScrollViewElement","useHeightAnimation","TableAccordionContext","useTableAnimationHandler","_ref","innerRef","trRef","expanded","noAnimation","tableAccordionContext","useContext","ariaLive","setAriaLive","useState","open","Boolean","trIsOpen","scrollViewHandler","clip","scrollView","current","HTMLElement","style","overflowY","onOpen","state","onAnimationStart","onAnimationEnd","_tableAccordionContex","_tableAccordionContex2","event","target","onOpened","call","onClosed","isInDOM","isAnimating","isVisibleParallax","firstPaintStyle","animate"],"sources":["../../../../../src/components/table/table-accordion/useTableAnimationHandler.tsx"],"sourcesContent":["import React, { useCallback } from 'react'\nimport { getClosestScrollViewElement } from '../../../shared/component-helper'\nimport { useHeightAnimation } from '../../height-animation/useHeightAnimation'\nimport { TableAccordionContext } from './TableAccordionContext'\nimport type { TableAccordionContentRowProps } from './TableAccordionContent'\n\nexport type useTableAnimationHandlerProps = {\n /**\n * Ref to <div> inside the <tr> element being expanded/collapsed\n */\n innerRef: React.MutableRefObject<HTMLDivElement>\n /**\n * Ref to the <tr> element being clicked\n */\n trRef: React.MutableRefObject<HTMLTableRowElement>\n}\n\nexport function useTableAnimationHandler({\n innerRef,\n trRef,\n expanded,\n noAnimation,\n}: useTableAnimationHandlerProps & TableAccordionContentRowProps) {\n const tableAccordionContext = React.useContext(TableAccordionContext)\n const [ariaLive, setAriaLive] = React.useState(null)\n const open = Boolean(expanded || tableAccordionContext?.trIsOpen)\n\n const scrollViewHandler = useCallback(\n (clip: boolean) => {\n const scrollView = getClosestScrollViewElement(\n trRef.current\n ) as HTMLElement\n if (scrollView instanceof HTMLElement) {\n scrollView.style.overflowY = clip ? 'clip' : ''\n }\n },\n [trRef]\n )\n\n const onOpen = useCallback((state) => {\n setAriaLive(state ? true : null)\n }, [])\n\n const onAnimationStart = useCallback(() => {\n scrollViewHandler(true)\n }, [scrollViewHandler])\n\n const onAnimationEnd = useCallback(\n (state) => {\n const event = { target: trRef.current }\n switch (state) {\n case 'opened':\n tableAccordionContext.onOpened?.(event)\n break\n\n case 'closed':\n tableAccordionContext.onClosed?.(event)\n break\n }\n\n scrollViewHandler(false)\n },\n [scrollViewHandler, tableAccordionContext, trRef]\n )\n\n const { isInDOM, isAnimating, isVisibleParallax, firstPaintStyle } =\n useHeightAnimation(innerRef, {\n open,\n animate: Boolean(\n !noAnimation && !tableAccordionContext?.noAnimation\n ),\n onOpen,\n onAnimationStart,\n onAnimationEnd,\n })\n\n return {\n ariaLive,\n isInDOM,\n isAnimating,\n isVisibleParallax,\n firstPaintStyle,\n }\n}\n\nexport default useTableAnimationHandler\n"],"mappings":"AAAA,OAAOA,KAAK,IAAIC,WAAW,QAAQ,OAAO;AAC1C,SAASC,2BAA2B,QAAQ,kCAAkC;AAC9E,SAASC,kBAAkB,QAAQ,2CAA2C;AAC9E,SAASC,qBAAqB,QAAQ,yBAAyB;AAc/D,OAAO,SAASC,wBAAwBA,CAAAC,IAAA,EAK0B;EAAA,IALzB;IACvCC,QAAQ;IACRC,KAAK;IACLC,QAAQ;IACRC;EAC6D,CAAC,GAAAJ,IAAA;EAC9D,MAAMK,qBAAqB,GAAGX,KAAK,CAACY,UAAU,CAACR,qBAAqB,CAAC;EACrE,MAAM,CAACS,QAAQ,EAAEC,WAAW,CAAC,GAAGd,KAAK,CAACe,QAAQ,CAAC,IAAI,CAAC;EACpD,MAAMC,IAAI,GAAGC,OAAO,CAACR,QAAQ,KAAIE,qBAAqB,aAArBA,qBAAqB,uBAArBA,qBAAqB,CAAEO,QAAQ,EAAC;EAEjE,MAAMC,iBAAiB,GAAGlB,WAAW,CAClCmB,IAAa,IAAK;IACjB,MAAMC,UAAU,GAAGnB,2BAA2B,CAC5CM,KAAK,CAACc,OACR,CAAgB;IAChB,IAAID,UAAU,YAAYE,WAAW,EAAE;MACrCF,UAAU,CAACG,KAAK,CAACC,SAAS,GAAGL,IAAI,GAAG,MAAM,GAAG,EAAE;IACjD;EACF,CAAC,EACD,CAACZ,KAAK,CACR,CAAC;EAED,MAAMkB,MAAM,GAAGzB,WAAW,CAAE0B,KAAK,IAAK;IACpCb,WAAW,CAACa,KAAK,GAAG,IAAI,GAAG,IAAI,CAAC;EAClC,CAAC,EAAE,EAAE,CAAC;EAEN,MAAMC,gBAAgB,GAAG3B,WAAW,CAAC,MAAM;IACzCkB,iBAAiB,CAAC,IAAI,CAAC;EACzB,CAAC,EAAE,CAACA,iBAAiB,CAAC,CAAC;EAEvB,MAAMU,cAAc,GAAG5B,WAAW,CAC/B0B,KAAK,IAAK;IAAA,IAAAG,qBAAA,EAAAC,sBAAA;IACT,MAAMC,KAAK,GAAG;MAAEC,MAAM,EAAEzB,KAAK,CAACc;IAAQ,CAAC;IACvC,QAAQK,KAAK;MACX,KAAK,QAAQ;QACX,CAAAG,qBAAA,GAAAnB,qBAAqB,CAACuB,QAAQ,cAAAJ,qBAAA,uBAA9BA,qBAAA,CAAAK,IAAA,CAAAxB,qBAAqB,EAAYqB,KAAK,CAAC;QACvC;MAEF,KAAK,QAAQ;QACX,CAAAD,sBAAA,GAAApB,qBAAqB,CAACyB,QAAQ,cAAAL,sBAAA,uBAA9BA,sBAAA,CAAAI,IAAA,CAAAxB,qBAAqB,EAAYqB,KAAK,CAAC;QACvC;IACJ;IAEAb,iBAAiB,CAAC,KAAK,CAAC;EAC1B,CAAC,EACD,CAACA,iBAAiB,EAAER,qBAAqB,EAAEH,KAAK,CAClD,CAAC;EAED,MAAM;IAAE6B,OAAO;IAAEC,WAAW;IAAEC,iBAAiB;IAAEC;EAAgB,CAAC,GAChErC,kBAAkB,CAACI,QAAQ,EAAE;IAC3BS,IAAI;IACJyB,OAAO,EAAExB,OAAO,CACd,CAACP,WAAW,IAAI,EAACC,qBAAqB,aAArBA,qBAAqB,eAArBA,qBAAqB,CAAED,WAAW,CACrD,CAAC;IACDgB,MAAM;IACNE,gBAAgB;IAChBC;EACF,CAAC,CAAC;EAEJ,OAAO;IACLhB,QAAQ;IACRwB,OAAO;IACPC,WAAW;IACXC,iBAAiB;IACjBC;EACF,CAAC;AACH;AAEA,eAAenC,wBAAwB"}
@@ -33,9 +33,6 @@ export type TabsChildren =
33
33
  export interface TabsProps
34
34
  extends Omit<React.HTMLProps<HTMLElement>, 'ref'>,
35
35
  SpacingProps {
36
- /**
37
- * defines the data structure to load as a JSON. e.g. `[{title: '...', content: 'Current tab', key: '...', hash: '...'}]`
38
- */
39
36
  data?: TabsData;
40
37
  /**
41
38
  * the content to render. Can be a function, returning the current tab content `(key) => ('Current tab')`, a React Component or an object with the keys and content `{key1: 'Current tab'}`.
@@ -1,3 +1,4 @@
1
1
  import { PropertiesTableProps } from '../../shared/types';
2
2
  export declare const TabsProperties: PropertiesTableProps;
3
+ export declare const TabsDataObject: PropertiesTableProps;
3
4
  export declare const TabsEvents: PropertiesTableProps;
@@ -34,9 +34,9 @@ export const TabsProperties = {
34
34
  type: 'React.ReactNode',
35
35
  status: 'optional'
36
36
  },
37
- data: {
38
- doc: "defines the data structure to load as a JSON. e.g. `[{title: '...', content: 'Current tab', key: '...', hash: '...'}]`",
39
- type: ['string', '{title: string | React.ReactNode, key: string | number, selected?: boolean, disabled?: boolean}'],
37
+ '[data](/uilib/components/tabs/properties/#data-object)': {
38
+ doc: 'defines the data structure to load as an object.',
39
+ type: 'object',
40
40
  status: 'required'
41
41
  },
42
42
  children: {
@@ -90,6 +90,33 @@ export const TabsProperties = {
90
90
  status: 'optional'
91
91
  }
92
92
  };
93
+ export const TabsDataObject = {
94
+ title: {
95
+ doc: 'The title of the tab.',
96
+ type: ['string', 'React.ReactNode'],
97
+ status: 'required'
98
+ },
99
+ key: {
100
+ doc: 'The unique key of the tab.',
101
+ type: ['string', 'number'],
102
+ status: 'required'
103
+ },
104
+ content: {
105
+ doc: 'The content of the tab.',
106
+ type: 'React.ReactNode',
107
+ status: 'optional'
108
+ },
109
+ selected: {
110
+ doc: 'If set to `true`, the tab will be selected.',
111
+ type: 'boolean',
112
+ status: 'optional'
113
+ },
114
+ disabled: {
115
+ doc: 'If set to `true`, the tab will be disabled.',
116
+ type: 'boolean',
117
+ status: 'optional'
118
+ }
119
+ };
93
120
  export const TabsEvents = {
94
121
  on_change: {
95
122
  doc: '(preferred) this event gets triggered once the tab changes its selected key. Returns `{ key, selected_key, focus_key, event }`.',
@@ -1 +1 @@
1
- {"version":3,"file":"TabsDocs.js","names":["TabsProperties","selected_key","doc","type","status","align","content_style","content_spacing","tabs_style","tabs_spacing","tab_element","data","children","content","prerender","prevent_rerender","scroll","no_border","nav_button_edge","skeleton","breakout","TabsEvents","on_change","on_click","on_focus","on_mouse_enter"],"sources":["../../../../src/components/tabs/TabsDocs.ts"],"sourcesContent":["import { PropertiesTableProps } from '../../shared/types'\n\nexport const TabsProperties: PropertiesTableProps = {\n selected_key: {\n doc: 'In case one of the tabs should be opened by a `key`.',\n type: ['string', 'number'],\n status: 'optional',\n },\n align: {\n doc: 'To align the tab list on the right side `align=\"right\"`. Defaults to `left`.',\n type: ['left', 'center', 'right'],\n status: 'optional',\n },\n content_style: {\n doc: 'To enable the visual helper `.dnb-section` on to the content wrapper. Use a supported modifier from the [Section component](/uilib/components/section/properties). Defaults to `null`.',\n type: ['divider', 'white', 'transparent'],\n status: 'optional',\n },\n content_spacing: {\n doc: 'To modify the `spacing` onto the content wrapper. Use a supported modifier from the [Section component](/uilib/components/section/properties). Defaults to `large`.',\n type: [\n 'boolean',\n 'x-small',\n 'small',\n 'medium',\n 'large',\n 'x-large',\n 'xx-large',\n ],\n status: 'optional',\n },\n tabs_style: {\n doc: 'To enable the visual helper `.dnb-section` inside the tabs list. Use a supported modifier from the [Section component](/uilib/components/section/properties). Defaults to `null`.',\n type: ['divider', 'white', 'transparent'],\n status: 'optional',\n },\n tabs_spacing: {\n doc: 'To modify the `spacing` inside the tab list. Defaults to `null`.',\n type: 'boolean',\n status: 'optional',\n },\n tab_element: {\n doc: \"Define what HTML element should be used. You can provide e.g. `tab_element={GatsbyLink}` – you may then provide the `to` property inside every entry (`data={[{ to: ';url';, ... }]}`). Defaults to `<button>`.\",\n type: 'React.ReactNode',\n status: 'optional',\n },\n data: {\n doc: \"defines the data structure to load as a JSON. e.g. `[{title: '...', content: 'Current tab', key: '...', hash: '...'}]`\",\n type: [\n 'string',\n '{title: string | React.ReactNode, key: string | number, selected?: boolean, disabled?: boolean}',\n ],\n status: 'required',\n },\n children: {\n doc: \"the content to render. Can be a function, returning the current tab content `(key) => ('Current tab')`, a React Component or an object with the keys and content `{key1: 'Current tab'}`.\",\n type: ['React.ReactNode', 'object'],\n status: 'required',\n },\n content: {\n doc: \"the content to render. Can be a function, returning the current tab content `(key) => ('Current tab')`, a React Component or an object with the keys and content `{key1: 'Current tab'}`.\",\n type: ['React.ReactNode', 'object'],\n status: 'required',\n },\n prerender: {\n doc: 'If set to `true`, the Tabs content will pre-render all contents. The visibility will be handled by using the `hidden` and `aria-hidden` HTML attributes. Defaults to `false`.',\n type: 'boolean',\n status: 'optional',\n },\n prevent_rerender: {\n doc: 'If set to `true`, the Tabs content will stay in the DOM. The visibility will be handled by using the `hidden` and `aria-hidden` HTML attributes. Similar to `prerender`, but in contrast, the content will render once the user is activating a tab. Defaults to `false`.',\n type: 'boolean',\n status: 'optional',\n },\n scroll: {\n doc: 'If set to `true`, the content will scroll on tab change, until all tabs will be visible on the upper side of the browser window view. Defaults to `false`.',\n type: 'boolean',\n status: 'optional',\n },\n no_border: {\n doc: 'If set to `true`, the default horizontal border line under the tablist will be removed. Defaults to `false`.',\n type: 'boolean',\n status: 'optional',\n },\n nav_button_edge: {\n doc: 'If set to `true`, the navigation icons will have a straight border at their outside. This feature is meant to be used when the Tabs component goes all the way to the browser window. Defaults to `false`.',\n type: 'boolean',\n status: 'optional',\n },\n skeleton: {\n doc: 'If set to `true`, an overlaying skeleton with animation will be shown.',\n type: 'boolean',\n status: 'optional',\n },\n breakout: {\n doc: 'If set to `false`, the default horizontal border line under the tablist remains inside the parent boundaries. Defaults to `true`.',\n type: 'boolean',\n status: 'optional',\n },\n '[Space](/uilib/layout/space/properties)': {\n doc: 'Spacing properties like `top` or `bottom` are supported.',\n type: ['string', 'object'],\n status: 'optional',\n },\n}\n\nexport const TabsEvents: PropertiesTableProps = {\n on_change: {\n doc: '(preferred) this event gets triggered once the tab changes its selected key. Returns `{ key, selected_key, focus_key, event }`.',\n type: 'function',\n status: 'optional',\n },\n on_click: {\n doc: 'This event gets triggered once the tab gets clicked. Returns `{ key, selected_key, focus_key, event }`.',\n type: 'function',\n status: 'optional',\n },\n on_focus: {\n doc: 'This event gets triggered once the tab changes its focus key. Returns `{ key, selected_key, focus_key, event }`.',\n type: 'function',\n status: 'optional',\n },\n on_mouse_enter: {\n doc: \"This event gets triggered once the user';s mouse enters a tab (hover). Returns `{ key, selected_key, focus_key, event }`.\",\n type: 'function',\n status: 'optional',\n },\n}\n"],"mappings":"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"}
1
+ {"version":3,"file":"TabsDocs.js","names":["TabsProperties","selected_key","doc","type","status","align","content_style","content_spacing","tabs_style","tabs_spacing","tab_element","children","content","prerender","prevent_rerender","scroll","no_border","nav_button_edge","skeleton","breakout","TabsDataObject","title","key","selected","disabled","TabsEvents","on_change","on_click","on_focus","on_mouse_enter"],"sources":["../../../../src/components/tabs/TabsDocs.ts"],"sourcesContent":["import { PropertiesTableProps } from '../../shared/types'\n\nexport const TabsProperties: PropertiesTableProps = {\n selected_key: {\n doc: 'In case one of the tabs should be opened by a `key`.',\n type: ['string', 'number'],\n status: 'optional',\n },\n align: {\n doc: 'To align the tab list on the right side `align=\"right\"`. Defaults to `left`.',\n type: ['left', 'center', 'right'],\n status: 'optional',\n },\n content_style: {\n doc: 'To enable the visual helper `.dnb-section` on to the content wrapper. Use a supported modifier from the [Section component](/uilib/components/section/properties). Defaults to `null`.',\n type: ['divider', 'white', 'transparent'],\n status: 'optional',\n },\n content_spacing: {\n doc: 'To modify the `spacing` onto the content wrapper. Use a supported modifier from the [Section component](/uilib/components/section/properties). Defaults to `large`.',\n type: [\n 'boolean',\n 'x-small',\n 'small',\n 'medium',\n 'large',\n 'x-large',\n 'xx-large',\n ],\n status: 'optional',\n },\n tabs_style: {\n doc: 'To enable the visual helper `.dnb-section` inside the tabs list. Use a supported modifier from the [Section component](/uilib/components/section/properties). Defaults to `null`.',\n type: ['divider', 'white', 'transparent'],\n status: 'optional',\n },\n tabs_spacing: {\n doc: 'To modify the `spacing` inside the tab list. Defaults to `null`.',\n type: 'boolean',\n status: 'optional',\n },\n tab_element: {\n doc: \"Define what HTML element should be used. You can provide e.g. `tab_element={GatsbyLink}` – you may then provide the `to` property inside every entry (`data={[{ to: ';url';, ... }]}`). Defaults to `<button>`.\",\n type: 'React.ReactNode',\n status: 'optional',\n },\n '[data](/uilib/components/tabs/properties/#data-object)': {\n doc: 'defines the data structure to load as an object.',\n type: 'object',\n status: 'required',\n },\n children: {\n doc: \"the content to render. Can be a function, returning the current tab content `(key) => ('Current tab')`, a React Component or an object with the keys and content `{key1: 'Current tab'}`.\",\n type: ['React.ReactNode', 'object'],\n status: 'required',\n },\n content: {\n doc: \"the content to render. Can be a function, returning the current tab content `(key) => ('Current tab')`, a React Component or an object with the keys and content `{key1: 'Current tab'}`.\",\n type: ['React.ReactNode', 'object'],\n status: 'required',\n },\n prerender: {\n doc: 'If set to `true`, the Tabs content will pre-render all contents. The visibility will be handled by using the `hidden` and `aria-hidden` HTML attributes. Defaults to `false`.',\n type: 'boolean',\n status: 'optional',\n },\n prevent_rerender: {\n doc: 'If set to `true`, the Tabs content will stay in the DOM. The visibility will be handled by using the `hidden` and `aria-hidden` HTML attributes. Similar to `prerender`, but in contrast, the content will render once the user is activating a tab. Defaults to `false`.',\n type: 'boolean',\n status: 'optional',\n },\n scroll: {\n doc: 'If set to `true`, the content will scroll on tab change, until all tabs will be visible on the upper side of the browser window view. Defaults to `false`.',\n type: 'boolean',\n status: 'optional',\n },\n no_border: {\n doc: 'If set to `true`, the default horizontal border line under the tablist will be removed. Defaults to `false`.',\n type: 'boolean',\n status: 'optional',\n },\n nav_button_edge: {\n doc: 'If set to `true`, the navigation icons will have a straight border at their outside. This feature is meant to be used when the Tabs component goes all the way to the browser window. Defaults to `false`.',\n type: 'boolean',\n status: 'optional',\n },\n skeleton: {\n doc: 'If set to `true`, an overlaying skeleton with animation will be shown.',\n type: 'boolean',\n status: 'optional',\n },\n breakout: {\n doc: 'If set to `false`, the default horizontal border line under the tablist remains inside the parent boundaries. Defaults to `true`.',\n type: 'boolean',\n status: 'optional',\n },\n '[Space](/uilib/layout/space/properties)': {\n doc: 'Spacing properties like `top` or `bottom` are supported.',\n type: ['string', 'object'],\n status: 'optional',\n },\n}\n\nexport const TabsDataObject: PropertiesTableProps = {\n title: {\n doc: 'The title of the tab.',\n type: ['string', 'React.ReactNode'],\n status: 'required',\n },\n key: {\n doc: 'The unique key of the tab.',\n type: ['string', 'number'],\n status: 'required',\n },\n content: {\n doc: 'The content of the tab.',\n type: 'React.ReactNode',\n status: 'optional',\n },\n selected: {\n doc: 'If set to `true`, the tab will be selected.',\n type: 'boolean',\n status: 'optional',\n },\n disabled: {\n doc: 'If set to `true`, the tab will be disabled.',\n type: 'boolean',\n status: 'optional',\n },\n}\n\nexport const TabsEvents: PropertiesTableProps = {\n on_change: {\n doc: '(preferred) this event gets triggered once the tab changes its selected key. Returns `{ key, selected_key, focus_key, event }`.',\n type: 'function',\n status: 'optional',\n },\n on_click: {\n doc: 'This event gets triggered once the tab gets clicked. Returns `{ key, selected_key, focus_key, event }`.',\n type: 'function',\n status: 'optional',\n },\n on_focus: {\n doc: 'This event gets triggered once the tab changes its focus key. Returns `{ key, selected_key, focus_key, event }`.',\n type: 'function',\n status: 'optional',\n },\n on_mouse_enter: {\n doc: \"This event gets triggered once the user';s mouse enters a tab (hover). Returns `{ key, selected_key, focus_key, event }`.\",\n type: 'function',\n status: 'optional',\n },\n}\n"],"mappings":"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"}
@@ -147,7 +147,7 @@ export default class ToggleButtonGroup extends React.PureComponent {
147
147
  }, _AlignmentHelper || (_AlignmentHelper = React.createElement(AlignmentHelper, null)), React.createElement(Fieldset, null, React.createElement(Flex.Container, {
148
148
  align: "baseline",
149
149
  direction: vertical || label_direction === 'vertical' ? 'vertical' : 'horizontal',
150
- spacing: vertical ? 'x-small' : 'small'
150
+ gap: vertical ? 'x-small' : 'small'
151
151
  }, label && React.createElement(FormLabel, {
152
152
  element: "legend",
153
153
  id: id + '-label',
@@ -167,7 +167,7 @@ export default class ToggleButtonGroup extends React.PureComponent {
167
167
  no_animation: status_no_animation,
168
168
  skeleton: skeleton
169
169
  }, status_props)), React.createElement("span", {
170
- className: "dnb-toggle-button-group__children"
170
+ className: `dnb-toggle-button-group__shell__children dnb-toggle-button-group__shell__children--${layout_direction}`
171
171
  }, children, suffix && React.createElement(Suffix, {
172
172
  className: "dnb-toggle-button-group__suffix",
173
173
  id: id + '-suffix',
@@ -1 +1 @@
1
- {"version":3,"file":"ToggleButtonGroup.js","names":["React","PropTypes","classnames","isTrue","makeUniqueId","extendPropsWithContextInClassComponent","validateDOMAttributes","getStatusState","combineDescribedBy","combineLabelledBy","dispatchCustomElementEvent","spacingPropTypes","createSpacingClasses","AlignmentHelper","FormLabel","FormStatus","Flex","Context","Suffix","ToggleButtonGroupContext","pickFormElementProps","ToggleButtonGroup","PureComponent","getDerivedStateFromProps","props","state","_listenForPropChanges","value","values","getValues","JSON","parse","constructor","_defineProperty","_ref","event","multiselect","includes","push","splice","indexOf","setState","_refInput","createRef","_id","id","_name","name","render","_this$context","_this$context2","defaultProps","context","getTranslation","ToggleButton","FormRow","formElement","status","status_state","status_props","status_no_animation","globalStatus","suffix","label_direction","label_sr_only","vertical","layout_direction","label","variant","left_component","disabled","skeleton","className","_value","_values","children","on_change","rest","_objectWithoutProperties","_excluded","showStatus","classes","params","_objectSpread","setContext","_tmp","onChange","onChangeHandler","Fieldset","createElement","Provider","_AlignmentHelper","Container","align","direction","spacing","element","srOnly","_extends","role","show","text_id","text","no_animation","title","undefined","attributes","process","env","NODE_ENV","propTypes","oneOfType","string","func","node","oneOf","bool","object","shape","message","number","array","_supportsSpacingProps"],"sources":["../../../../src/components/toggle-button/ToggleButtonGroup.js"],"sourcesContent":["/**\n * Web ToggleButtonGroup Component\n *\n * This is a legacy component.\n * For referencing while developing new features, please use a Functional component.\n */\n\nimport React from 'react'\nimport PropTypes from 'prop-types'\nimport classnames from 'classnames'\nimport {\n isTrue,\n makeUniqueId,\n extendPropsWithContextInClassComponent,\n validateDOMAttributes,\n getStatusState,\n combineDescribedBy,\n combineLabelledBy,\n dispatchCustomElementEvent,\n} from '../../shared/component-helper'\nimport {\n spacingPropTypes,\n createSpacingClasses,\n} from '../space/SpacingHelper'\nimport AlignmentHelper from '../../shared/AlignmentHelper'\nimport FormLabel from '../FormLabel'\nimport FormStatus from '../FormStatus'\nimport Flex from '../Flex'\nimport Context from '../../shared/Context'\nimport Suffix from '../../shared/helpers/Suffix'\nimport ToggleButtonGroupContext from './ToggleButtonGroupContext'\nimport { pickFormElementProps } from '../../shared/helpers/filterValidProps'\n\nexport default class ToggleButtonGroup extends React.PureComponent {\n static contextType = Context\n\n static propTypes = {\n label: PropTypes.oneOfType([\n PropTypes.string,\n PropTypes.func,\n PropTypes.node,\n ]),\n label_direction: PropTypes.oneOf(['horizontal', 'vertical']),\n label_sr_only: PropTypes.oneOfType([PropTypes.string, PropTypes.bool]),\n title: PropTypes.string,\n multiselect: PropTypes.oneOfType([PropTypes.string, PropTypes.bool]),\n variant: PropTypes.oneOf(['default', 'checkbox', 'radio']),\n left_component: PropTypes.node,\n disabled: PropTypes.oneOfType([PropTypes.string, PropTypes.bool]),\n skeleton: PropTypes.oneOfType([PropTypes.string, PropTypes.bool]),\n id: PropTypes.string,\n name: PropTypes.string,\n status: PropTypes.oneOfType([\n PropTypes.string,\n PropTypes.bool,\n PropTypes.func,\n PropTypes.node,\n ]),\n status_state: PropTypes.string,\n status_props: PropTypes.object,\n status_no_animation: PropTypes.oneOfType([\n PropTypes.string,\n PropTypes.bool,\n ]),\n globalStatus: PropTypes.shape({\n id: PropTypes.string,\n message: PropTypes.oneOfType([PropTypes.string, PropTypes.node]),\n }),\n suffix: PropTypes.oneOfType([\n PropTypes.string,\n PropTypes.func,\n PropTypes.node,\n ]),\n vertical: PropTypes.oneOfType([PropTypes.string, PropTypes.bool]),\n layout_direction: PropTypes.oneOf(['column', 'row']),\n value: PropTypes.oneOfType([\n PropTypes.string,\n PropTypes.number,\n PropTypes.object,\n PropTypes.array,\n ]),\n values: PropTypes.oneOfType([PropTypes.string, PropTypes.array]),\n attributes: PropTypes.oneOfType([PropTypes.string, PropTypes.object]),\n\n ...spacingPropTypes,\n\n className: PropTypes.string,\n children: PropTypes.oneOfType([\n PropTypes.string,\n PropTypes.func,\n PropTypes.node,\n ]),\n\n on_change: PropTypes.func,\n }\n\n static defaultProps = {\n label: null,\n label_direction: null,\n label_sr_only: null,\n title: null,\n multiselect: null,\n variant: null,\n left_component: null,\n disabled: null,\n skeleton: null,\n id: null,\n name: null,\n status: null,\n status_state: 'error',\n status_props: null,\n status_no_animation: null,\n globalStatus: null,\n suffix: null,\n vertical: null,\n layout_direction: 'row',\n value: undefined,\n values: undefined,\n attributes: null,\n\n className: null,\n children: null,\n\n on_change: null,\n }\n\n static getDerivedStateFromProps(props, state) {\n if (state._listenForPropChanges) {\n if (\n typeof props.value !== 'undefined' &&\n props.value !== state.value\n ) {\n state.value = props.value\n }\n if (\n typeof props.values !== 'undefined' &&\n props.values !== state.values\n ) {\n state.values = ToggleButtonGroup.getValues(props)\n }\n }\n state._listenForPropChanges = true\n\n return state\n }\n\n static getValues(props) {\n if (typeof props.values === 'string' && props.values[0] === '[') {\n return JSON.parse(props.values)\n }\n return props.values\n }\n\n constructor(props) {\n super(props)\n this._refInput = React.createRef()\n this._id = props.id || makeUniqueId() // cause we need an id anyway\n this._name = props.name || makeUniqueId() // cause we need an id anyway\n this.state = {\n // do not set the value here, else get true in this check } else if (context.values && Array.isArray(context.values)) {\n _listenForPropChanges: true,\n }\n }\n\n onChangeHandler = ({ value, event }) => {\n const { multiselect } = this.props\n const values = this.state.values || []\n\n if (isTrue(multiselect)) {\n if (!values.includes(value)) {\n values.push(value)\n } else {\n values.splice(values.indexOf(value), 1)\n }\n }\n\n this.setState({\n value,\n values,\n _listenForPropChanges: false,\n })\n\n dispatchCustomElementEvent(this, 'on_change', {\n value,\n values,\n event,\n })\n }\n\n render() {\n // use only the props from context, who are available here anyway\n const props = extendPropsWithContextInClassComponent(\n this.props,\n ToggleButtonGroup.defaultProps,\n this.context.getTranslation(this.props).ToggleButton,\n // Deprecated – can be removed in v11\n pickFormElementProps(this.context?.FormRow),\n pickFormElementProps(this.context?.formElement),\n this.context.ToggleButtonGroup\n )\n\n const {\n status,\n status_state,\n status_props,\n status_no_animation,\n globalStatus,\n suffix,\n label_direction,\n label_sr_only,\n vertical,\n layout_direction,\n label,\n variant,\n left_component,\n disabled,\n skeleton,\n className,\n\n multiselect,\n id: _id, // eslint-disable-line\n name: _name, // eslint-disable-line\n value: _value, // eslint-disable-line\n values: _values, // eslint-disable-line\n children, // eslint-disable-line\n on_change, // eslint-disable-line\n\n ...rest\n } = props\n\n const { value, values } = this.state\n\n const id = this._id\n const showStatus = getStatusState(status)\n\n const classes = classnames(\n 'dnb-toggle-button-group',\n status && `dnb-toggle-button-group__status--${status_state}`,\n !label && 'dnb-toggle-button-group--no-label',\n `dnb-toggle-button-group--${layout_direction}`,\n 'dnb-form-component',\n createSpacingClasses(props),\n className\n )\n\n const params = {\n ...rest,\n }\n\n if (showStatus || suffix) {\n params['aria-describedby'] = combineDescribedBy(\n params,\n showStatus ? id + '-status' : null,\n suffix ? id + '-suffix' : null\n )\n }\n if (label) {\n params['aria-labelledby'] = combineLabelledBy(params, id + '-label')\n }\n\n // also used for code markup simulation\n validateDOMAttributes(this.props, params)\n\n const context = {\n name: this._name,\n value,\n values,\n multiselect: isTrue(multiselect),\n variant,\n left_component,\n disabled,\n skeleton,\n setContext: (context) => {\n // also look for a function, where we are able to fill old values\n // this is used in the \"constructor\" inside the ToggleButton.js component\n if (typeof context === 'function') {\n context = context(this._tmp)\n }\n this._tmp = { ...this._tmp, ...context }\n this.setState({\n ...context,\n _listenForPropChanges: false,\n })\n },\n onChange: this.onChangeHandler,\n }\n\n const Fieldset = label ? 'fieldset' : 'div'\n\n return (\n <ToggleButtonGroupContext.Provider value={context}>\n <div className={classes}>\n <AlignmentHelper />\n <Fieldset>\n <Flex.Container\n align=\"baseline\"\n direction={\n vertical || label_direction === 'vertical'\n ? 'vertical'\n : 'horizontal'\n }\n spacing={vertical ? 'x-small' : 'small'}\n >\n {label && (\n <FormLabel\n element=\"legend\"\n id={id + '-label'}\n srOnly={label_sr_only}\n >\n {label}\n </FormLabel>\n )}\n\n <span\n id={id}\n className=\"dnb-toggle-button-group__shell\"\n role=\"group\"\n {...params}\n >\n <FormStatus\n show={showStatus}\n id={id + '-form-status'}\n globalStatus={globalStatus}\n label={label}\n text_id={id + '-status'} // used for \"aria-describedby\"\n text={status}\n state={status_state}\n no_animation={status_no_animation}\n skeleton={skeleton}\n {...status_props}\n />\n\n <span className=\"dnb-toggle-button-group__children\">\n {children}\n\n {suffix && (\n <Suffix\n className=\"dnb-toggle-button-group__suffix\"\n id={id + '-suffix'} // used for \"aria-describedby\"\n context={props}\n >\n {suffix}\n </Suffix>\n )}\n </span>\n </span>\n </Flex.Container>\n </Fieldset>\n </div>\n </ToggleButtonGroupContext.Provider>\n )\n }\n}\n\nToggleButtonGroup._supportsSpacingProps = true\n"],"mappings":"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"}
1
+ {"version":3,"file":"ToggleButtonGroup.js","names":["React","PropTypes","classnames","isTrue","makeUniqueId","extendPropsWithContextInClassComponent","validateDOMAttributes","getStatusState","combineDescribedBy","combineLabelledBy","dispatchCustomElementEvent","spacingPropTypes","createSpacingClasses","AlignmentHelper","FormLabel","FormStatus","Flex","Context","Suffix","ToggleButtonGroupContext","pickFormElementProps","ToggleButtonGroup","PureComponent","getDerivedStateFromProps","props","state","_listenForPropChanges","value","values","getValues","JSON","parse","constructor","_defineProperty","_ref","event","multiselect","includes","push","splice","indexOf","setState","_refInput","createRef","_id","id","_name","name","render","_this$context","_this$context2","defaultProps","context","getTranslation","ToggleButton","FormRow","formElement","status","status_state","status_props","status_no_animation","globalStatus","suffix","label_direction","label_sr_only","vertical","layout_direction","label","variant","left_component","disabled","skeleton","className","_value","_values","children","on_change","rest","_objectWithoutProperties","_excluded","showStatus","classes","params","_objectSpread","setContext","_tmp","onChange","onChangeHandler","Fieldset","createElement","Provider","_AlignmentHelper","Container","align","direction","gap","element","srOnly","_extends","role","show","text_id","text","no_animation","title","undefined","attributes","process","env","NODE_ENV","propTypes","oneOfType","string","func","node","oneOf","bool","object","shape","message","number","array","_supportsSpacingProps"],"sources":["../../../../src/components/toggle-button/ToggleButtonGroup.js"],"sourcesContent":["/**\n * Web ToggleButtonGroup Component\n *\n * This is a legacy component.\n * For referencing while developing new features, please use a Functional component.\n */\n\nimport React from 'react'\nimport PropTypes from 'prop-types'\nimport classnames from 'classnames'\nimport {\n isTrue,\n makeUniqueId,\n extendPropsWithContextInClassComponent,\n validateDOMAttributes,\n getStatusState,\n combineDescribedBy,\n combineLabelledBy,\n dispatchCustomElementEvent,\n} from '../../shared/component-helper'\nimport {\n spacingPropTypes,\n createSpacingClasses,\n} from '../space/SpacingHelper'\nimport AlignmentHelper from '../../shared/AlignmentHelper'\nimport FormLabel from '../FormLabel'\nimport FormStatus from '../FormStatus'\nimport Flex from '../Flex'\nimport Context from '../../shared/Context'\nimport Suffix from '../../shared/helpers/Suffix'\nimport ToggleButtonGroupContext from './ToggleButtonGroupContext'\nimport { pickFormElementProps } from '../../shared/helpers/filterValidProps'\n\nexport default class ToggleButtonGroup extends React.PureComponent {\n static contextType = Context\n\n static propTypes = {\n label: PropTypes.oneOfType([\n PropTypes.string,\n PropTypes.func,\n PropTypes.node,\n ]),\n label_direction: PropTypes.oneOf(['horizontal', 'vertical']),\n label_sr_only: PropTypes.oneOfType([PropTypes.string, PropTypes.bool]),\n title: PropTypes.string,\n multiselect: PropTypes.oneOfType([PropTypes.string, PropTypes.bool]),\n variant: PropTypes.oneOf(['default', 'checkbox', 'radio']),\n left_component: PropTypes.node,\n disabled: PropTypes.oneOfType([PropTypes.string, PropTypes.bool]),\n skeleton: PropTypes.oneOfType([PropTypes.string, PropTypes.bool]),\n id: PropTypes.string,\n name: PropTypes.string,\n status: PropTypes.oneOfType([\n PropTypes.string,\n PropTypes.bool,\n PropTypes.func,\n PropTypes.node,\n ]),\n status_state: PropTypes.string,\n status_props: PropTypes.object,\n status_no_animation: PropTypes.oneOfType([\n PropTypes.string,\n PropTypes.bool,\n ]),\n globalStatus: PropTypes.shape({\n id: PropTypes.string,\n message: PropTypes.oneOfType([PropTypes.string, PropTypes.node]),\n }),\n suffix: PropTypes.oneOfType([\n PropTypes.string,\n PropTypes.func,\n PropTypes.node,\n ]),\n vertical: PropTypes.oneOfType([PropTypes.string, PropTypes.bool]),\n layout_direction: PropTypes.oneOf(['column', 'row']),\n value: PropTypes.oneOfType([\n PropTypes.string,\n PropTypes.number,\n PropTypes.object,\n PropTypes.array,\n ]),\n values: PropTypes.oneOfType([PropTypes.string, PropTypes.array]),\n attributes: PropTypes.oneOfType([PropTypes.string, PropTypes.object]),\n\n ...spacingPropTypes,\n\n className: PropTypes.string,\n children: PropTypes.oneOfType([\n PropTypes.string,\n PropTypes.func,\n PropTypes.node,\n ]),\n\n on_change: PropTypes.func,\n }\n\n static defaultProps = {\n label: null,\n label_direction: null,\n label_sr_only: null,\n title: null,\n multiselect: null,\n variant: null,\n left_component: null,\n disabled: null,\n skeleton: null,\n id: null,\n name: null,\n status: null,\n status_state: 'error',\n status_props: null,\n status_no_animation: null,\n globalStatus: null,\n suffix: null,\n vertical: null,\n layout_direction: 'row',\n value: undefined,\n values: undefined,\n attributes: null,\n\n className: null,\n children: null,\n\n on_change: null,\n }\n\n static getDerivedStateFromProps(props, state) {\n if (state._listenForPropChanges) {\n if (\n typeof props.value !== 'undefined' &&\n props.value !== state.value\n ) {\n state.value = props.value\n }\n if (\n typeof props.values !== 'undefined' &&\n props.values !== state.values\n ) {\n state.values = ToggleButtonGroup.getValues(props)\n }\n }\n state._listenForPropChanges = true\n\n return state\n }\n\n static getValues(props) {\n if (typeof props.values === 'string' && props.values[0] === '[') {\n return JSON.parse(props.values)\n }\n return props.values\n }\n\n constructor(props) {\n super(props)\n this._refInput = React.createRef()\n this._id = props.id || makeUniqueId() // cause we need an id anyway\n this._name = props.name || makeUniqueId() // cause we need an id anyway\n this.state = {\n // do not set the value here, else get true in this check } else if (context.values && Array.isArray(context.values)) {\n _listenForPropChanges: true,\n }\n }\n\n onChangeHandler = ({ value, event }) => {\n const { multiselect } = this.props\n const values = this.state.values || []\n\n if (isTrue(multiselect)) {\n if (!values.includes(value)) {\n values.push(value)\n } else {\n values.splice(values.indexOf(value), 1)\n }\n }\n\n this.setState({\n value,\n values,\n _listenForPropChanges: false,\n })\n\n dispatchCustomElementEvent(this, 'on_change', {\n value,\n values,\n event,\n })\n }\n\n render() {\n // use only the props from context, who are available here anyway\n const props = extendPropsWithContextInClassComponent(\n this.props,\n ToggleButtonGroup.defaultProps,\n this.context.getTranslation(this.props).ToggleButton,\n // Deprecated – can be removed in v11\n pickFormElementProps(this.context?.FormRow),\n pickFormElementProps(this.context?.formElement),\n this.context.ToggleButtonGroup\n )\n\n const {\n status,\n status_state,\n status_props,\n status_no_animation,\n globalStatus,\n suffix,\n label_direction,\n label_sr_only,\n vertical,\n layout_direction,\n label,\n variant,\n left_component,\n disabled,\n skeleton,\n className,\n\n multiselect,\n id: _id, // eslint-disable-line\n name: _name, // eslint-disable-line\n value: _value, // eslint-disable-line\n values: _values, // eslint-disable-line\n children, // eslint-disable-line\n on_change, // eslint-disable-line\n\n ...rest\n } = props\n\n const { value, values } = this.state\n\n const id = this._id\n const showStatus = getStatusState(status)\n\n const classes = classnames(\n 'dnb-toggle-button-group',\n status && `dnb-toggle-button-group__status--${status_state}`,\n !label && 'dnb-toggle-button-group--no-label',\n `dnb-toggle-button-group--${layout_direction}`,\n 'dnb-form-component',\n createSpacingClasses(props),\n className\n )\n\n const params = {\n ...rest,\n }\n\n if (showStatus || suffix) {\n params['aria-describedby'] = combineDescribedBy(\n params,\n showStatus ? id + '-status' : null,\n suffix ? id + '-suffix' : null\n )\n }\n if (label) {\n params['aria-labelledby'] = combineLabelledBy(params, id + '-label')\n }\n\n // also used for code markup simulation\n validateDOMAttributes(this.props, params)\n\n const context = {\n name: this._name,\n value,\n values,\n multiselect: isTrue(multiselect),\n variant,\n left_component,\n disabled,\n skeleton,\n setContext: (context) => {\n // also look for a function, where we are able to fill old values\n // this is used in the \"constructor\" inside the ToggleButton.js component\n if (typeof context === 'function') {\n context = context(this._tmp)\n }\n this._tmp = { ...this._tmp, ...context }\n this.setState({\n ...context,\n _listenForPropChanges: false,\n })\n },\n onChange: this.onChangeHandler,\n }\n\n const Fieldset = label ? 'fieldset' : 'div'\n\n return (\n <ToggleButtonGroupContext.Provider value={context}>\n <div className={classes}>\n <AlignmentHelper />\n <Fieldset>\n <Flex.Container\n align=\"baseline\"\n direction={\n vertical || label_direction === 'vertical'\n ? 'vertical'\n : 'horizontal'\n }\n gap={vertical ? 'x-small' : 'small'}\n >\n {label && (\n <FormLabel\n element=\"legend\"\n id={id + '-label'}\n srOnly={label_sr_only}\n >\n {label}\n </FormLabel>\n )}\n\n <span\n id={id}\n className=\"dnb-toggle-button-group__shell\"\n role=\"group\"\n {...params}\n >\n <FormStatus\n show={showStatus}\n id={id + '-form-status'}\n globalStatus={globalStatus}\n label={label}\n text_id={id + '-status'} // used for \"aria-describedby\"\n text={status}\n state={status_state}\n no_animation={status_no_animation}\n skeleton={skeleton}\n {...status_props}\n />\n\n <span\n className={classnames(\n 'dnb-toggle-button-group__shell__children',\n `dnb-toggle-button-group__shell__children--${layout_direction}`\n )}\n >\n {children}\n\n {suffix && (\n <Suffix\n className=\"dnb-toggle-button-group__suffix\"\n id={id + '-suffix'} // used for \"aria-describedby\"\n context={props}\n >\n {suffix}\n </Suffix>\n )}\n </span>\n </span>\n </Flex.Container>\n </Fieldset>\n </div>\n </ToggleButtonGroupContext.Provider>\n )\n }\n}\n\nToggleButtonGroup._supportsSpacingProps = true\n"],"mappings":"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"}
@@ -82,8 +82,8 @@
82
82
  margin-right: 1rem;
83
83
  }
84
84
  .dnb-toggle-button-group {
85
- --toggle-button-group-margin-right: 1rem;
86
- --toggle-button-group-margin-bottom: 1rem;
85
+ --toggle-button-group-column-gap: 1rem;
86
+ --toggle-button-group-row-gap: 1rem;
87
87
  display: inline-flex;
88
88
  }
89
89
  .dnb-toggle-button-group fieldset {
@@ -91,10 +91,6 @@
91
91
  padding: 0;
92
92
  border: none;
93
93
  }
94
- .dnb-toggle-button-group .dnb-toggle-button {
95
- margin-right: var(--toggle-button-group-margin-right);
96
- margin-bottom: var(--toggle-button-group-margin-bottom);
97
- }
98
94
  .dnb-toggle-button-group--column .dnb-toggle-button {
99
95
  display: flex;
100
96
  margin-right: 0;
@@ -105,10 +101,23 @@
105
101
  .dnb-toggle-button-group__shell {
106
102
  display: flex;
107
103
  flex-direction: column;
104
+ row-gap: var(--toggle-button-group-row-gap);
108
105
  }
109
106
  .dnb-toggle-button-group__shell__children {
107
+ display: flex;
108
+ flex-wrap: wrap;
109
+ align-items: flex-start;
110
+ -moz-column-gap: var(--toggle-button-group-column-gap);
111
+ column-gap: var(--toggle-button-group-column-gap);
112
+ row-gap: var(--toggle-button-group-row-gap);
110
113
  order: 1;
111
114
  }
115
+ .dnb-toggle-button-group__shell__children--row {
116
+ flex-direction: row;
117
+ }
118
+ .dnb-toggle-button-group__shell__children--column {
119
+ flex-direction: column;
120
+ }
112
121
  .dnb-toggle-button-group__shell > .dnb-form-status {
113
122
  order: 2;
114
123
  transform: translateY(-0.5rem);
@@ -1 +1 @@
1
- .dnb-toggle-button{align-items:center;display:inline-flex;font-size:var(--font-size-small);line-height:var(--line-height-basis)}.dnb-toggle-button__inner{display:inline-flex;flex-direction:column}.dnb-toggle-button__shell{left:0;position:relative;-webkit-user-select:none;user-select:none}.dnb-toggle-button--vertical{align-items:flex-start;flex-direction:column}.dnb-toggle-button__component{align-items:center;display:inline-flex;padding-right:.5rem}.dnb-toggle-button__button.dnb-button--has-text{padding-left:1.5rem;padding-right:1.5rem}.dnb-toggle-button__button .dnb-checkbox{margin-left:-.5rem}.dnb-toggle-button__button .dnb-checkbox__input{pointer-events:none}.dnb-toggle-button__button .dnb-checkbox__button{display:unset}.dnb-toggle-button__button .dnb-checkbox__button,.dnb-toggle-button__button .dnb-checkbox__focus{border-width:.0625rem;height:calc(var(--checkbox-height--medium) - .5rem);width:calc(var(--checkbox-width--medium) - .5rem)}.dnb-toggle-button__button .dnb-checkbox__dot{height:calc(var(--checkbox-height--medium) - 1rem);width:calc(var(--checkbox-width--medium) - 1rem)}.dnb-toggle-button__button .dnb-checkbox__gfx{height:calc(var(--checkbox-height--medium) - .75rem);width:calc(var(--checkbox-width--medium) - .75rem)}.dnb-toggle-button__button .dnb-radio{margin-left:-.5rem}.dnb-toggle-button__button .dnb-radio__input{pointer-events:none}.dnb-toggle-button__button .dnb-radio__button,.dnb-toggle-button__button .dnb-radio__focus{border-width:.0625rem;height:calc(var(--radio-height--medium) - .5rem);width:calc(var(--radio-width--medium) - .5rem)}.dnb-toggle-button__button .dnb-radio__dot{height:calc(var(--radio-height--medium) - 1rem);width:calc(var(--radio-width--medium) - 1rem)}:not(.dnb-toggle-button-group)>.dnb-form-label+.dnb-toggle-button{vertical-align:top}.dnb-toggle-button .dnb-form-status{margin-top:.5rem;order:2}.dnb-toggle-button .dnb-form-label{margin-right:1rem}.dnb-toggle-button-group{--toggle-button-group-margin-right:1rem;--toggle-button-group-margin-bottom:1rem;display:inline-flex}.dnb-toggle-button-group fieldset{border:none;margin:0;padding:0}.dnb-toggle-button-group .dnb-toggle-button{margin-bottom:var(--toggle-button-group-margin-bottom);margin-right:var(--toggle-button-group-margin-right)}.dnb-toggle-button-group--column .dnb-toggle-button{display:flex;margin-right:0}.dnb-toggle-button-group .dnb-toggle-button:last-of-type{margin-right:0}.dnb-toggle-button-group__shell{display:flex;flex-direction:column}.dnb-toggle-button-group__shell__children{order:1}.dnb-toggle-button-group__shell>.dnb-form-status{order:2;transform:translateY(-.5rem)}.dnb-toggle-button-group .dnb-flex-container{margin-bottom:calc(var(--toggle-button-group-margin-bottom)*-1)}.dnb-toggle-button-group .dnb-flex-container--direction-horizontal .dnb-form-label{align-self:flex-start;margin-top:.5rem}.dnb-toggle-button-group .dnb-alignment-helper{line-height:2.5rem}.dnb-toggle-button-group__suffix{font-size:var(--font-size-basis)}@media screen and (min-width:40em){.dnb-form-label+.dnb-toggle-button{transform:translateY(-.5rem)}}
1
+ .dnb-toggle-button{align-items:center;display:inline-flex;font-size:var(--font-size-small);line-height:var(--line-height-basis)}.dnb-toggle-button__inner{display:inline-flex;flex-direction:column}.dnb-toggle-button__shell{left:0;position:relative;-webkit-user-select:none;user-select:none}.dnb-toggle-button--vertical{align-items:flex-start;flex-direction:column}.dnb-toggle-button__component{align-items:center;display:inline-flex;padding-right:.5rem}.dnb-toggle-button__button.dnb-button--has-text{padding-left:1.5rem;padding-right:1.5rem}.dnb-toggle-button__button .dnb-checkbox{margin-left:-.5rem}.dnb-toggle-button__button .dnb-checkbox__input{pointer-events:none}.dnb-toggle-button__button .dnb-checkbox__button{display:unset}.dnb-toggle-button__button .dnb-checkbox__button,.dnb-toggle-button__button .dnb-checkbox__focus{border-width:.0625rem;height:calc(var(--checkbox-height--medium) - .5rem);width:calc(var(--checkbox-width--medium) - .5rem)}.dnb-toggle-button__button .dnb-checkbox__dot{height:calc(var(--checkbox-height--medium) - 1rem);width:calc(var(--checkbox-width--medium) - 1rem)}.dnb-toggle-button__button .dnb-checkbox__gfx{height:calc(var(--checkbox-height--medium) - .75rem);width:calc(var(--checkbox-width--medium) - .75rem)}.dnb-toggle-button__button .dnb-radio{margin-left:-.5rem}.dnb-toggle-button__button .dnb-radio__input{pointer-events:none}.dnb-toggle-button__button .dnb-radio__button,.dnb-toggle-button__button .dnb-radio__focus{border-width:.0625rem;height:calc(var(--radio-height--medium) - .5rem);width:calc(var(--radio-width--medium) - .5rem)}.dnb-toggle-button__button .dnb-radio__dot{height:calc(var(--radio-height--medium) - 1rem);width:calc(var(--radio-width--medium) - 1rem)}:not(.dnb-toggle-button-group)>.dnb-form-label+.dnb-toggle-button{vertical-align:top}.dnb-toggle-button .dnb-form-status{margin-top:.5rem;order:2}.dnb-toggle-button .dnb-form-label{margin-right:1rem}.dnb-toggle-button-group{--toggle-button-group-column-gap:1rem;--toggle-button-group-row-gap:1rem;display:inline-flex}.dnb-toggle-button-group fieldset{border:none;margin:0;padding:0}.dnb-toggle-button-group--column .dnb-toggle-button{display:flex;margin-right:0}.dnb-toggle-button-group .dnb-toggle-button:last-of-type{margin-right:0}.dnb-toggle-button-group__shell{display:flex;flex-direction:column;row-gap:var(--toggle-button-group-row-gap)}.dnb-toggle-button-group__shell__children{align-items:flex-start;-moz-column-gap:var(--toggle-button-group-column-gap);column-gap:var(--toggle-button-group-column-gap);display:flex;flex-wrap:wrap;order:1;row-gap:var(--toggle-button-group-row-gap)}.dnb-toggle-button-group__shell__children--row{flex-direction:row}.dnb-toggle-button-group__shell__children--column{flex-direction:column}.dnb-toggle-button-group__shell>.dnb-form-status{order:2;transform:translateY(-.5rem)}.dnb-toggle-button-group .dnb-flex-container{margin-bottom:calc(var(--toggle-button-group-margin-bottom)*-1)}.dnb-toggle-button-group .dnb-flex-container--direction-horizontal .dnb-form-label{align-self:flex-start;margin-top:.5rem}.dnb-toggle-button-group .dnb-alignment-helper{line-height:2.5rem}.dnb-toggle-button-group__suffix{font-size:var(--font-size-basis)}@media screen and (min-width:40em){.dnb-form-label+.dnb-toggle-button{transform:translateY(-.5rem)}}
@@ -115,21 +115,14 @@
115
115
  }
116
116
 
117
117
  &-group {
118
- --toggle-button-group-margin-right: 1rem;
119
- --toggle-button-group-margin-bottom: 1rem;
120
-
118
+ --toggle-button-group-column-gap: 1rem;
119
+ --toggle-button-group-row-gap: 1rem;
121
120
  display: inline-flex;
122
121
 
123
122
  fieldset {
124
123
  @include fieldsetReset();
125
124
  }
126
125
 
127
- // default spacing
128
- .dnb-toggle-button {
129
- margin-right: var(--toggle-button-group-margin-right);
130
- margin-bottom: var(--toggle-button-group-margin-bottom);
131
- }
132
-
133
126
  &--column .dnb-toggle-button {
134
127
  display: flex;
135
128
  margin-right: 0;
@@ -143,9 +136,23 @@
143
136
  &__shell {
144
137
  display: flex;
145
138
  flex-direction: column;
139
+ row-gap: var(--toggle-button-group-row-gap);
146
140
 
147
141
  &__children {
142
+ display: flex;
143
+ flex-wrap: wrap;
144
+ align-items: flex-start;
145
+ column-gap: var(--toggle-button-group-column-gap);
146
+ row-gap: var(--toggle-button-group-row-gap);
147
+
148
148
  order: 1;
149
+
150
+ &--row {
151
+ flex-direction: row;
152
+ }
153
+ &--column {
154
+ flex-direction: column;
155
+ }
149
156
  }
150
157
 
151
158
  & > .dnb-form-status {
@@ -13,11 +13,11 @@ import { Store } from './AccordionStore';
13
13
  export type AccordionVariant = 'plain' | 'default' | 'outlined' | 'filled';
14
14
  export type AccordionHeading = boolean | React.ReactNode;
15
15
  export type AccordionIcon = IconIcon | {
16
- closed?: React.ReactNode | ((...args: any[]) => any);
16
+ closed?: IconIcon;
17
17
  /**
18
18
  * If set to `true` the accordion will be expanded as its initial state.
19
19
  */
20
- expanded?: React.ReactNode | ((...args: any[]) => any);
20
+ expanded?: IconIcon;
21
21
  };
22
22
  export type AccordionAttributes = string | Record<string, unknown>;
23
23
  export type AccordionIconPosition = ButtonIconPosition;
@@ -225,6 +225,12 @@ declare namespace Accordion {
225
225
  on_state_update?: (...args: any[]) => any;
226
226
  } & {
227
227
  allow_close_all?: boolean;
228
+ /**
229
+ * ref handle to collapse all expanded accordions. Send in a ref and use `.current()` to collapse all accordions.
230
+ *
231
+ * Default: `undefined`
232
+ */
233
+ collapseAllHandleRef?: React.MutableRefObject<() => void>;
228
234
  expanded_id?: string;
229
235
  };
230
236
  var Provider: {
@@ -234,7 +240,7 @@ declare namespace Accordion {
234
240
  var Header: {
235
241
  ({ icon_size: icon_size_default, ...restOfProps }: import("./AccordionHeader").AccordionHeaderProps): import("react/jsx-runtime").JSX.Element;
236
242
  Container: ({ children, ...rest }: import("./AccordionHeader").AccordionHeaderContainerProps) => import("react/jsx-runtime").JSX.Element;
237
- Icon: ({ icon, expanded, size, icon_position, }: import("./AccordionHeader").AccordionHeaderIconProps) => import("react/jsx-runtime").JSX.Element;
243
+ Icon: ({ icon: iconProp, expanded, size, icon_position, }: import("./AccordionHeader").AccordionHeaderIconProps) => import("react/jsx-runtime").JSX.Element;
238
244
  Title: ({ children, ...rest }: import("./AccordionHeader").AccordionHeaderTitleProps) => import("react/jsx-runtime").JSX.Element;
239
245
  Description: ({ children, ...rest }: import("./AccordionHeader").AccordionHeaderDescriptionProps) => import("react/jsx-runtime").JSX.Element;
240
246
  _supportsSpacingProps: boolean;
@@ -249,6 +255,12 @@ declare namespace Accordion {
249
255
  }
250
256
  export type GroupProps = AccordionProps & {
251
257
  allow_close_all?: boolean;
258
+ /**
259
+ * ref handle to collapse all expanded accordions. Send in a ref and use `.current()` to collapse all accordions.
260
+ *
261
+ * Default: `undefined`
262
+ */
263
+ collapseAllHandleRef?: React.MutableRefObject<() => void>;
252
264
  expanded_id?: string;
253
265
  };
254
266
  export default Accordion;
@@ -39,6 +39,7 @@ function Accordion(_ref) {
39
39
  });
40
40
  const [previousExpanded, setPreviousExpanded] = useState(props.expanded);
41
41
  const [expanded, setExpanded] = useState(getInitialExpandedState());
42
+ const hasAddedCallbackRef = useRef(false);
42
43
  if (props.expanded !== previousExpanded) {
43
44
  setExpanded(props.expanded !== undefined ? props.expanded : false);
44
45
  setPreviousExpanded(props.expanded);
@@ -83,6 +84,11 @@ function Accordion(_ref) {
83
84
  setExpanded(true);
84
85
  }
85
86
  }, [context.flush_remembered_state, context.expanded_id]);
87
+ if (context !== null && context !== void 0 && context.collapseAllHandleRef && !hasAddedCallbackRef.current) {
88
+ var _context$collapseAcco;
89
+ context === null || context === void 0 ? void 0 : (_context$collapseAcco = context.collapseAccordionCallbacks) === null || _context$collapseAcco === void 0 ? void 0 : _context$collapseAcco.current.push(() => changeOpened(false));
90
+ hasAddedCallbackRef.current = true;
91
+ }
86
92
  function getInitialExpandedState() {
87
93
  if (props.expanded_ssr || context !== null && context !== void 0 && context.expanded_ssr) {
88
94
  return typeof window === 'undefined';
@@ -135,6 +141,7 @@ function Accordion(_ref) {
135
141
  event
136
142
  });
137
143
  }
144
+ console.log('context', context);
138
145
  return React.createElement(Context.Consumer, null, globalContext => React.createElement(AccordionContext.Consumer, null, nestedContext => {
139
146
  let expandedState = expanded;
140
147
  const extendedProps = extendPropsWithContext(props, accordionDefaultProps, context, nestedContext, {