@dnb/eufemia 10.35.0 → 10.36.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 (416) hide show
  1. package/CHANGELOG.md +26 -0
  2. package/cjs/components/accordion/Accordion.d.ts +3 -3
  3. package/cjs/components/accordion/Accordion.js.map +1 -1
  4. package/cjs/components/accordion/AccordionHeader.d.ts +5 -5
  5. package/cjs/components/accordion/AccordionHeader.js +3 -2
  6. package/cjs/components/accordion/AccordionHeader.js.map +1 -1
  7. package/cjs/components/anchor/Anchor.d.ts +20 -0
  8. package/cjs/components/anchor/Anchor.js +13 -4
  9. package/cjs/components/anchor/Anchor.js.map +1 -1
  10. package/cjs/components/anchor/AnchorDocs.d.ts +3 -0
  11. package/cjs/components/anchor/AnchorDocs.js +82 -0
  12. package/cjs/components/anchor/AnchorDocs.js.map +1 -0
  13. package/cjs/components/autocomplete/Autocomplete.js +16 -2
  14. package/cjs/components/autocomplete/Autocomplete.js.map +1 -1
  15. package/cjs/components/breadcrumb/BreadcrumbItem.js.map +1 -1
  16. package/cjs/components/height-animation/HeightAnimationInstance.d.ts +3 -3
  17. package/cjs/components/height-animation/HeightAnimationInstance.js.map +1 -1
  18. package/cjs/components/height-animation/useHeightAnimation.d.ts +5 -1
  19. package/cjs/components/height-animation/useHeightAnimation.js.map +1 -1
  20. package/cjs/components/icon/Icon.d.ts +493 -61
  21. package/cjs/components/icon/Icon.js +97 -134
  22. package/cjs/components/icon/Icon.js.map +1 -1
  23. package/cjs/components/icon/IconHelpers.d.ts +2 -1
  24. package/cjs/components/icon/IconHelpers.js +1 -1
  25. package/cjs/components/icon/IconHelpers.js.map +1 -1
  26. package/cjs/components/icon/IconPrimary.d.ts +2 -2
  27. package/cjs/components/icon/IconPrimary.js.map +1 -1
  28. package/cjs/components/icon-primary/IconPrimary.d.ts +8 -11
  29. package/cjs/components/icon-primary/IconPrimary.js +37 -38
  30. package/cjs/components/icon-primary/IconPrimary.js.map +1 -1
  31. package/cjs/components/step-indicator/StepIndicatorContext.js +66 -59
  32. package/cjs/components/step-indicator/StepIndicatorContext.js.map +1 -1
  33. package/cjs/components/step-indicator/StepIndicatorItem.js +15 -23
  34. package/cjs/components/step-indicator/StepIndicatorItem.js.map +1 -1
  35. package/cjs/components/step-indicator/StepIndicatorModal.js +5 -5
  36. package/cjs/components/step-indicator/StepIndicatorModal.js.map +1 -1
  37. package/cjs/components/step-indicator/StepIndicatorSidebar.js +9 -7
  38. package/cjs/components/step-indicator/StepIndicatorSidebar.js.map +1 -1
  39. package/cjs/components/step-indicator/StepIndicatorTriggerButton.js.map +1 -1
  40. package/cjs/components/table/Table.d.ts +1 -1
  41. package/cjs/components/table/Table.js.map +1 -1
  42. package/cjs/components/table/TableContext.d.ts +12 -2
  43. package/cjs/components/table/TableContext.js +1 -3
  44. package/cjs/components/table/TableContext.js.map +1 -1
  45. package/cjs/components/table/TableDocs.d.ts +7 -0
  46. package/cjs/components/table/TableDocs.js +202 -0
  47. package/cjs/components/table/TableDocs.js.map +1 -0
  48. package/cjs/components/table/TableTd.d.ts +3 -3
  49. package/cjs/components/table/TableTd.js +2 -2
  50. package/cjs/components/table/TableTd.js.map +1 -1
  51. package/cjs/components/table/TableTr.d.ts +9 -5
  52. package/cjs/components/table/TableTr.js +4 -4
  53. package/cjs/components/table/TableTr.js.map +1 -1
  54. package/cjs/components/table/table-accordion/TableAccordionContent.d.ts +15 -0
  55. package/cjs/components/table/{TableAccordionTd.js → table-accordion/TableAccordionContent.js} +52 -17
  56. package/cjs/components/table/table-accordion/TableAccordionContent.js.map +1 -0
  57. package/cjs/components/table/table-accordion/TableAccordionContext.d.ts +16 -0
  58. package/cjs/components/table/table-accordion/TableAccordionContext.js +11 -0
  59. package/cjs/components/table/table-accordion/TableAccordionContext.js.map +1 -0
  60. package/cjs/components/table/table-accordion/TableAccordionHead.d.ts +8 -0
  61. package/cjs/components/table/{TableAccordion.js → table-accordion/TableAccordionHead.js} +17 -18
  62. package/cjs/components/table/table-accordion/TableAccordionHead.js.map +1 -0
  63. package/{es/components/table → cjs/components/table/table-accordion}/useTableAnimationHandler.d.ts +7 -3
  64. package/cjs/components/table/{useTableAnimationHandler.js → table-accordion/useTableAnimationHandler.js} +4 -4
  65. package/cjs/components/table/table-accordion/useTableAnimationHandler.js.map +1 -0
  66. package/cjs/components/tabs/Tabs.d.ts +0 -3
  67. package/cjs/components/tabs/TabsDocs.d.ts +1 -0
  68. package/cjs/components/tabs/TabsDocs.js +32 -4
  69. package/cjs/components/tabs/TabsDocs.js.map +1 -1
  70. package/cjs/components/toggle-button/ToggleButtonGroup.js +2 -2
  71. package/cjs/components/toggle-button/ToggleButtonGroup.js.map +1 -1
  72. package/cjs/components/toggle-button/style/dnb-toggle-button.css +15 -6
  73. package/cjs/components/toggle-button/style/dnb-toggle-button.min.css +1 -1
  74. package/cjs/components/toggle-button/style/dnb-toggle-button.scss +16 -9
  75. package/cjs/extensions/forms/DataContext/Provider/Provider.js +1 -1
  76. package/cjs/extensions/forms/DataContext/Provider/Provider.js.map +1 -1
  77. package/cjs/extensions/forms/Form/Visibility/Visibility.d.ts +2 -2
  78. package/cjs/extensions/forms/Form/Visibility/Visibility.js +20 -72
  79. package/cjs/extensions/forms/Form/Visibility/Visibility.js.map +1 -1
  80. package/cjs/extensions/forms/Form/Visibility/useVisibility.d.ts +5 -0
  81. package/cjs/extensions/forms/Form/Visibility/useVisibility.js +101 -0
  82. package/cjs/extensions/forms/Form/Visibility/useVisibility.js.map +1 -0
  83. package/cjs/extensions/forms/Wizard/Container/WizardContainer.js +15 -9
  84. package/cjs/extensions/forms/Wizard/Container/WizardContainer.js.map +1 -1
  85. package/cjs/extensions/forms/Wizard/Context/WizardContext.d.ts +4 -0
  86. package/cjs/extensions/forms/Wizard/Context/WizardContext.js.map +1 -1
  87. package/cjs/extensions/forms/Wizard/Step/Step.d.ts +5 -0
  88. package/cjs/extensions/forms/Wizard/Step/Step.js +6 -2
  89. package/cjs/extensions/forms/Wizard/Step/Step.js.map +1 -1
  90. package/cjs/extensions/forms/Wizard/Step/StepDocs.js +5 -0
  91. package/cjs/extensions/forms/Wizard/Step/StepDocs.js.map +1 -1
  92. package/cjs/extensions/forms/Wizard/hooks/useNextRouter.js +1 -1
  93. package/cjs/extensions/forms/Wizard/hooks/useNextRouter.js.map +1 -1
  94. package/cjs/extensions/forms/Wizard/hooks/useQueryLocator.js +1 -1
  95. package/cjs/extensions/forms/Wizard/hooks/useQueryLocator.js.map +1 -1
  96. package/cjs/extensions/forms/Wizard/hooks/useReachRouter.js +1 -1
  97. package/cjs/extensions/forms/Wizard/hooks/useReachRouter.js.map +1 -1
  98. package/cjs/extensions/forms/Wizard/hooks/useReactRouter.js +1 -1
  99. package/cjs/extensions/forms/Wizard/hooks/useReactRouter.js.map +1 -1
  100. package/cjs/extensions/forms/constants/locales/en-GB.d.ts +7 -9
  101. package/cjs/extensions/forms/constants/locales/en-GB.js +7 -9
  102. package/cjs/extensions/forms/constants/locales/en-GB.js.map +1 -1
  103. package/cjs/extensions/forms/constants/locales/en-US.d.ts +7 -9
  104. package/cjs/extensions/forms/constants/locales/index.d.ts +14 -18
  105. package/cjs/extensions/forms/constants/locales/nb-NO.d.ts +7 -9
  106. package/cjs/extensions/forms/constants/locales/nb-NO.js +7 -9
  107. package/cjs/extensions/forms/constants/locales/nb-NO.js.map +1 -1
  108. package/cjs/shared/Context.d.ts +4 -0
  109. package/cjs/shared/Context.js.map +1 -1
  110. package/cjs/shared/Eufemia.d.ts +1 -1
  111. package/cjs/shared/Eufemia.js +2 -2
  112. package/cjs/shared/Eufemia.js.map +1 -1
  113. package/cjs/style/core/scopes.scss +1 -1
  114. package/cjs/style/dnb-ui-basis.css +1 -1
  115. package/cjs/style/dnb-ui-basis.min.css +1 -1
  116. package/cjs/style/dnb-ui-body.css +1 -1
  117. package/cjs/style/dnb-ui-body.min.css +1 -1
  118. package/cjs/style/dnb-ui-components.css +15 -6
  119. package/cjs/style/dnb-ui-components.min.css +1 -1
  120. package/cjs/style/dnb-ui-core.css +1 -1
  121. package/cjs/style/dnb-ui-core.min.css +1 -1
  122. package/cjs/style/themes/theme-eiendom/eiendom-theme-components.css +15 -6
  123. package/cjs/style/themes/theme-eiendom/eiendom-theme-components.min.css +1 -1
  124. package/cjs/style/themes/theme-sbanken/sbanken-theme-components.css +15 -6
  125. package/cjs/style/themes/theme-sbanken/sbanken-theme-components.min.css +1 -1
  126. package/cjs/style/themes/theme-ui/ui-theme-components.css +15 -6
  127. package/cjs/style/themes/theme-ui/ui-theme-components.min.css +1 -1
  128. package/components/accordion/Accordion.d.ts +3 -3
  129. package/components/accordion/Accordion.js.map +1 -1
  130. package/components/accordion/AccordionHeader.d.ts +5 -5
  131. package/components/accordion/AccordionHeader.js +3 -2
  132. package/components/accordion/AccordionHeader.js.map +1 -1
  133. package/components/anchor/Anchor.d.ts +20 -0
  134. package/components/anchor/Anchor.js +13 -4
  135. package/components/anchor/Anchor.js.map +1 -1
  136. package/components/anchor/AnchorDocs.d.ts +3 -0
  137. package/components/anchor/AnchorDocs.js +74 -0
  138. package/components/anchor/AnchorDocs.js.map +1 -0
  139. package/components/autocomplete/Autocomplete.js +17 -3
  140. package/components/autocomplete/Autocomplete.js.map +1 -1
  141. package/components/breadcrumb/BreadcrumbItem.js.map +1 -1
  142. package/components/height-animation/HeightAnimationInstance.d.ts +3 -3
  143. package/components/height-animation/HeightAnimationInstance.js.map +1 -1
  144. package/components/height-animation/useHeightAnimation.d.ts +5 -1
  145. package/components/height-animation/useHeightAnimation.js.map +1 -1
  146. package/components/icon/Icon.d.ts +493 -61
  147. package/components/icon/Icon.js +89 -127
  148. package/components/icon/Icon.js.map +1 -1
  149. package/components/icon/IconHelpers.d.ts +2 -1
  150. package/components/icon/IconHelpers.js +1 -1
  151. package/components/icon/IconHelpers.js.map +1 -1
  152. package/components/icon/IconPrimary.d.ts +2 -2
  153. package/components/icon/IconPrimary.js.map +1 -1
  154. package/components/icon-primary/IconPrimary.d.ts +8 -11
  155. package/components/icon-primary/IconPrimary.js +25 -31
  156. package/components/icon-primary/IconPrimary.js.map +1 -1
  157. package/components/step-indicator/StepIndicatorContext.js +67 -60
  158. package/components/step-indicator/StepIndicatorContext.js.map +1 -1
  159. package/components/step-indicator/StepIndicatorItem.js +16 -24
  160. package/components/step-indicator/StepIndicatorItem.js.map +1 -1
  161. package/components/step-indicator/StepIndicatorModal.js +6 -6
  162. package/components/step-indicator/StepIndicatorModal.js.map +1 -1
  163. package/components/step-indicator/StepIndicatorSidebar.js +10 -8
  164. package/components/step-indicator/StepIndicatorSidebar.js.map +1 -1
  165. package/components/step-indicator/StepIndicatorTriggerButton.js.map +1 -1
  166. package/components/table/Table.d.ts +1 -1
  167. package/components/table/Table.js.map +1 -1
  168. package/components/table/TableContext.d.ts +12 -2
  169. package/components/table/TableContext.js +0 -1
  170. package/components/table/TableContext.js.map +1 -1
  171. package/components/table/TableDocs.d.ts +7 -0
  172. package/components/table/TableDocs.js +190 -0
  173. package/components/table/TableDocs.js.map +1 -0
  174. package/components/table/TableTd.d.ts +3 -3
  175. package/components/table/TableTd.js +2 -2
  176. package/components/table/TableTd.js.map +1 -1
  177. package/components/table/TableTr.d.ts +9 -5
  178. package/components/table/TableTr.js +4 -4
  179. package/components/table/TableTr.js.map +1 -1
  180. package/components/table/table-accordion/TableAccordionContent.d.ts +15 -0
  181. package/components/table/table-accordion/TableAccordionContent.js +95 -0
  182. package/components/table/table-accordion/TableAccordionContent.js.map +1 -0
  183. package/components/table/table-accordion/TableAccordionContext.d.ts +16 -0
  184. package/components/table/table-accordion/TableAccordionContext.js +3 -0
  185. package/components/table/table-accordion/TableAccordionContext.js.map +1 -0
  186. package/components/table/table-accordion/TableAccordionHead.d.ts +8 -0
  187. package/components/table/{TableAccordion.js → table-accordion/TableAccordionHead.js} +14 -15
  188. package/components/table/table-accordion/TableAccordionHead.js.map +1 -0
  189. package/{cjs/components/table → components/table/table-accordion}/useTableAnimationHandler.d.ts +7 -3
  190. package/components/table/{useTableAnimationHandler.js → table-accordion/useTableAnimationHandler.js} +3 -3
  191. package/components/table/table-accordion/useTableAnimationHandler.js.map +1 -0
  192. package/components/tabs/Tabs.d.ts +0 -3
  193. package/components/tabs/TabsDocs.d.ts +1 -0
  194. package/components/tabs/TabsDocs.js +30 -3
  195. package/components/tabs/TabsDocs.js.map +1 -1
  196. package/components/toggle-button/ToggleButtonGroup.js +2 -2
  197. package/components/toggle-button/ToggleButtonGroup.js.map +1 -1
  198. package/components/toggle-button/style/dnb-toggle-button.css +15 -6
  199. package/components/toggle-button/style/dnb-toggle-button.min.css +1 -1
  200. package/components/toggle-button/style/dnb-toggle-button.scss +16 -9
  201. package/es/components/accordion/Accordion.d.ts +3 -3
  202. package/es/components/accordion/Accordion.js.map +1 -1
  203. package/es/components/accordion/AccordionHeader.d.ts +5 -5
  204. package/es/components/accordion/AccordionHeader.js +3 -2
  205. package/es/components/accordion/AccordionHeader.js.map +1 -1
  206. package/es/components/anchor/Anchor.d.ts +20 -0
  207. package/es/components/anchor/Anchor.js +13 -4
  208. package/es/components/anchor/Anchor.js.map +1 -1
  209. package/es/components/anchor/AnchorDocs.d.ts +3 -0
  210. package/es/components/anchor/AnchorDocs.js +74 -0
  211. package/es/components/anchor/AnchorDocs.js.map +1 -0
  212. package/es/components/autocomplete/Autocomplete.js +17 -3
  213. package/es/components/autocomplete/Autocomplete.js.map +1 -1
  214. package/es/components/breadcrumb/BreadcrumbItem.js.map +1 -1
  215. package/es/components/height-animation/HeightAnimationInstance.d.ts +3 -3
  216. package/es/components/height-animation/HeightAnimationInstance.js.map +1 -1
  217. package/es/components/height-animation/useHeightAnimation.d.ts +5 -1
  218. package/es/components/height-animation/useHeightAnimation.js.map +1 -1
  219. package/es/components/icon/Icon.d.ts +493 -61
  220. package/es/components/icon/Icon.js +82 -116
  221. package/es/components/icon/Icon.js.map +1 -1
  222. package/es/components/icon/IconHelpers.d.ts +2 -1
  223. package/es/components/icon/IconHelpers.js +1 -1
  224. package/es/components/icon/IconHelpers.js.map +1 -1
  225. package/es/components/icon/IconPrimary.d.ts +2 -2
  226. package/es/components/icon/IconPrimary.js.map +1 -1
  227. package/es/components/icon-primary/IconPrimary.d.ts +8 -11
  228. package/es/components/icon-primary/IconPrimary.js +25 -31
  229. package/es/components/icon-primary/IconPrimary.js.map +1 -1
  230. package/es/components/step-indicator/StepIndicatorContext.js +67 -60
  231. package/es/components/step-indicator/StepIndicatorContext.js.map +1 -1
  232. package/es/components/step-indicator/StepIndicatorItem.js +17 -25
  233. package/es/components/step-indicator/StepIndicatorItem.js.map +1 -1
  234. package/es/components/step-indicator/StepIndicatorModal.js +6 -6
  235. package/es/components/step-indicator/StepIndicatorModal.js.map +1 -1
  236. package/es/components/step-indicator/StepIndicatorSidebar.js +10 -8
  237. package/es/components/step-indicator/StepIndicatorSidebar.js.map +1 -1
  238. package/es/components/step-indicator/StepIndicatorTriggerButton.js.map +1 -1
  239. package/es/components/table/Table.d.ts +1 -1
  240. package/es/components/table/Table.js.map +1 -1
  241. package/es/components/table/TableContext.d.ts +12 -2
  242. package/es/components/table/TableContext.js +0 -1
  243. package/es/components/table/TableContext.js.map +1 -1
  244. package/es/components/table/TableDocs.d.ts +7 -0
  245. package/es/components/table/TableDocs.js +190 -0
  246. package/es/components/table/TableDocs.js.map +1 -0
  247. package/es/components/table/TableTd.d.ts +3 -3
  248. package/es/components/table/TableTd.js +2 -2
  249. package/es/components/table/TableTd.js.map +1 -1
  250. package/es/components/table/TableTr.d.ts +9 -5
  251. package/es/components/table/TableTr.js +4 -4
  252. package/es/components/table/TableTr.js.map +1 -1
  253. package/es/components/table/table-accordion/TableAccordionContent.d.ts +15 -0
  254. package/es/components/table/table-accordion/TableAccordionContent.js +92 -0
  255. package/es/components/table/table-accordion/TableAccordionContent.js.map +1 -0
  256. package/es/components/table/table-accordion/TableAccordionContext.d.ts +16 -0
  257. package/es/components/table/table-accordion/TableAccordionContext.js +3 -0
  258. package/es/components/table/table-accordion/TableAccordionContext.js.map +1 -0
  259. package/es/components/table/table-accordion/TableAccordionHead.d.ts +8 -0
  260. package/es/components/table/{TableAccordion.js → table-accordion/TableAccordionHead.js} +14 -15
  261. package/es/components/table/table-accordion/TableAccordionHead.js.map +1 -0
  262. package/{components/table → es/components/table/table-accordion}/useTableAnimationHandler.d.ts +7 -3
  263. package/es/components/table/{useTableAnimationHandler.js → table-accordion/useTableAnimationHandler.js} +3 -3
  264. package/es/components/table/table-accordion/useTableAnimationHandler.js.map +1 -0
  265. package/es/components/tabs/Tabs.d.ts +0 -3
  266. package/es/components/tabs/TabsDocs.d.ts +1 -0
  267. package/es/components/tabs/TabsDocs.js +30 -3
  268. package/es/components/tabs/TabsDocs.js.map +1 -1
  269. package/es/components/toggle-button/ToggleButtonGroup.js +2 -2
  270. package/es/components/toggle-button/ToggleButtonGroup.js.map +1 -1
  271. package/es/components/toggle-button/style/dnb-toggle-button.css +15 -6
  272. package/es/components/toggle-button/style/dnb-toggle-button.min.css +1 -1
  273. package/es/components/toggle-button/style/dnb-toggle-button.scss +16 -9
  274. package/es/extensions/forms/DataContext/Provider/Provider.js +1 -1
  275. package/es/extensions/forms/DataContext/Provider/Provider.js.map +1 -1
  276. package/es/extensions/forms/Form/Visibility/Visibility.d.ts +2 -2
  277. package/es/extensions/forms/Form/Visibility/Visibility.js +20 -71
  278. package/es/extensions/forms/Form/Visibility/Visibility.js.map +1 -1
  279. package/es/extensions/forms/Form/Visibility/useVisibility.d.ts +5 -0
  280. package/es/extensions/forms/Form/Visibility/useVisibility.js +94 -0
  281. package/es/extensions/forms/Form/Visibility/useVisibility.js.map +1 -0
  282. package/es/extensions/forms/Wizard/Container/WizardContainer.js +15 -9
  283. package/es/extensions/forms/Wizard/Container/WizardContainer.js.map +1 -1
  284. package/es/extensions/forms/Wizard/Context/WizardContext.d.ts +4 -0
  285. package/es/extensions/forms/Wizard/Context/WizardContext.js.map +1 -1
  286. package/es/extensions/forms/Wizard/Step/Step.d.ts +5 -0
  287. package/es/extensions/forms/Wizard/Step/Step.js +6 -2
  288. package/es/extensions/forms/Wizard/Step/Step.js.map +1 -1
  289. package/es/extensions/forms/Wizard/Step/StepDocs.js +5 -0
  290. package/es/extensions/forms/Wizard/Step/StepDocs.js.map +1 -1
  291. package/es/extensions/forms/Wizard/hooks/useNextRouter.js +1 -1
  292. package/es/extensions/forms/Wizard/hooks/useNextRouter.js.map +1 -1
  293. package/es/extensions/forms/Wizard/hooks/useQueryLocator.js +1 -1
  294. package/es/extensions/forms/Wizard/hooks/useQueryLocator.js.map +1 -1
  295. package/es/extensions/forms/Wizard/hooks/useReachRouter.js +1 -1
  296. package/es/extensions/forms/Wizard/hooks/useReachRouter.js.map +1 -1
  297. package/es/extensions/forms/Wizard/hooks/useReactRouter.js +1 -1
  298. package/es/extensions/forms/Wizard/hooks/useReactRouter.js.map +1 -1
  299. package/es/extensions/forms/constants/locales/en-GB.d.ts +7 -9
  300. package/es/extensions/forms/constants/locales/en-GB.js +7 -9
  301. package/es/extensions/forms/constants/locales/en-GB.js.map +1 -1
  302. package/es/extensions/forms/constants/locales/en-US.d.ts +7 -9
  303. package/es/extensions/forms/constants/locales/index.d.ts +14 -18
  304. package/es/extensions/forms/constants/locales/nb-NO.d.ts +7 -9
  305. package/es/extensions/forms/constants/locales/nb-NO.js +7 -9
  306. package/es/extensions/forms/constants/locales/nb-NO.js.map +1 -1
  307. package/es/shared/Context.d.ts +4 -0
  308. package/es/shared/Context.js.map +1 -1
  309. package/es/shared/Eufemia.d.ts +1 -1
  310. package/es/shared/Eufemia.js +2 -2
  311. package/es/shared/Eufemia.js.map +1 -1
  312. package/es/style/core/scopes.scss +1 -1
  313. package/es/style/dnb-ui-basis.css +1 -1
  314. package/es/style/dnb-ui-basis.min.css +1 -1
  315. package/es/style/dnb-ui-body.css +1 -1
  316. package/es/style/dnb-ui-body.min.css +1 -1
  317. package/es/style/dnb-ui-components.css +15 -6
  318. package/es/style/dnb-ui-components.min.css +1 -1
  319. package/es/style/dnb-ui-core.css +1 -1
  320. package/es/style/dnb-ui-core.min.css +1 -1
  321. package/es/style/themes/theme-eiendom/eiendom-theme-components.css +15 -6
  322. package/es/style/themes/theme-eiendom/eiendom-theme-components.min.css +1 -1
  323. package/es/style/themes/theme-sbanken/sbanken-theme-components.css +15 -6
  324. package/es/style/themes/theme-sbanken/sbanken-theme-components.min.css +1 -1
  325. package/es/style/themes/theme-ui/ui-theme-components.css +15 -6
  326. package/es/style/themes/theme-ui/ui-theme-components.min.css +1 -1
  327. package/esm/dnb-ui-basis.min.mjs +1 -1
  328. package/esm/dnb-ui-components.min.mjs +1 -1
  329. package/esm/dnb-ui-elements.min.mjs +1 -1
  330. package/esm/dnb-ui-extensions.min.mjs +5 -5
  331. package/esm/dnb-ui-lib.min.mjs +1 -1
  332. package/extensions/forms/DataContext/Provider/Provider.js +1 -1
  333. package/extensions/forms/DataContext/Provider/Provider.js.map +1 -1
  334. package/extensions/forms/Form/Visibility/Visibility.d.ts +2 -2
  335. package/extensions/forms/Form/Visibility/Visibility.js +20 -71
  336. package/extensions/forms/Form/Visibility/Visibility.js.map +1 -1
  337. package/extensions/forms/Form/Visibility/useVisibility.d.ts +5 -0
  338. package/extensions/forms/Form/Visibility/useVisibility.js +95 -0
  339. package/extensions/forms/Form/Visibility/useVisibility.js.map +1 -0
  340. package/extensions/forms/Wizard/Container/WizardContainer.js +15 -9
  341. package/extensions/forms/Wizard/Container/WizardContainer.js.map +1 -1
  342. package/extensions/forms/Wizard/Context/WizardContext.d.ts +4 -0
  343. package/extensions/forms/Wizard/Context/WizardContext.js.map +1 -1
  344. package/extensions/forms/Wizard/Step/Step.d.ts +5 -0
  345. package/extensions/forms/Wizard/Step/Step.js +6 -2
  346. package/extensions/forms/Wizard/Step/Step.js.map +1 -1
  347. package/extensions/forms/Wizard/Step/StepDocs.js +5 -0
  348. package/extensions/forms/Wizard/Step/StepDocs.js.map +1 -1
  349. package/extensions/forms/Wizard/hooks/useNextRouter.js +1 -1
  350. package/extensions/forms/Wizard/hooks/useNextRouter.js.map +1 -1
  351. package/extensions/forms/Wizard/hooks/useQueryLocator.js +1 -1
  352. package/extensions/forms/Wizard/hooks/useQueryLocator.js.map +1 -1
  353. package/extensions/forms/Wizard/hooks/useReachRouter.js +1 -1
  354. package/extensions/forms/Wizard/hooks/useReachRouter.js.map +1 -1
  355. package/extensions/forms/Wizard/hooks/useReactRouter.js +1 -1
  356. package/extensions/forms/Wizard/hooks/useReactRouter.js.map +1 -1
  357. package/extensions/forms/constants/locales/en-GB.d.ts +7 -9
  358. package/extensions/forms/constants/locales/en-GB.js +7 -9
  359. package/extensions/forms/constants/locales/en-GB.js.map +1 -1
  360. package/extensions/forms/constants/locales/en-US.d.ts +7 -9
  361. package/extensions/forms/constants/locales/index.d.ts +14 -18
  362. package/extensions/forms/constants/locales/nb-NO.d.ts +7 -9
  363. package/extensions/forms/constants/locales/nb-NO.js +7 -9
  364. package/extensions/forms/constants/locales/nb-NO.js.map +1 -1
  365. package/package.json +1 -1
  366. package/shared/Context.d.ts +4 -0
  367. package/shared/Context.js.map +1 -1
  368. package/shared/Eufemia.d.ts +1 -1
  369. package/shared/Eufemia.js +2 -2
  370. package/shared/Eufemia.js.map +1 -1
  371. package/style/core/scopes.scss +1 -1
  372. package/style/dnb-ui-basis.css +1 -1
  373. package/style/dnb-ui-basis.min.css +1 -1
  374. package/style/dnb-ui-body.css +1 -1
  375. package/style/dnb-ui-body.min.css +1 -1
  376. package/style/dnb-ui-components.css +15 -6
  377. package/style/dnb-ui-components.min.css +1 -1
  378. package/style/dnb-ui-core.css +1 -1
  379. package/style/dnb-ui-core.min.css +1 -1
  380. package/style/themes/theme-eiendom/eiendom-theme-components.css +15 -6
  381. package/style/themes/theme-eiendom/eiendom-theme-components.min.css +1 -1
  382. package/style/themes/theme-sbanken/sbanken-theme-components.css +15 -6
  383. package/style/themes/theme-sbanken/sbanken-theme-components.min.css +1 -1
  384. package/style/themes/theme-ui/ui-theme-components.css +15 -6
  385. package/style/themes/theme-ui/ui-theme-components.min.css +1 -1
  386. package/umd/dnb-ui-basis.min.js +1 -1
  387. package/umd/dnb-ui-components.min.js +1 -1
  388. package/umd/dnb-ui-elements.min.js +1 -1
  389. package/umd/dnb-ui-extensions.min.js +5 -5
  390. package/umd/dnb-ui-lib.min.js +1 -1
  391. package/cjs/components/table/TableAccordion.d.ts +0 -8
  392. package/cjs/components/table/TableAccordion.js.map +0 -1
  393. package/cjs/components/table/TableAccordionTd.d.ts +0 -9
  394. package/cjs/components/table/TableAccordionTd.js.map +0 -1
  395. package/cjs/components/table/TableAccordionTr.d.ts +0 -13
  396. package/cjs/components/table/TableAccordionTr.js +0 -61
  397. package/cjs/components/table/TableAccordionTr.js.map +0 -1
  398. package/cjs/components/table/useTableAnimationHandler.js.map +0 -1
  399. package/components/table/TableAccordion.d.ts +0 -8
  400. package/components/table/TableAccordion.js.map +0 -1
  401. package/components/table/TableAccordionTd.d.ts +0 -9
  402. package/components/table/TableAccordionTd.js +0 -61
  403. package/components/table/TableAccordionTd.js.map +0 -1
  404. package/components/table/TableAccordionTr.d.ts +0 -13
  405. package/components/table/TableAccordionTr.js +0 -51
  406. package/components/table/TableAccordionTr.js.map +0 -1
  407. package/components/table/useTableAnimationHandler.js.map +0 -1
  408. package/es/components/table/TableAccordion.d.ts +0 -8
  409. package/es/components/table/TableAccordion.js.map +0 -1
  410. package/es/components/table/TableAccordionTd.d.ts +0 -9
  411. package/es/components/table/TableAccordionTd.js +0 -61
  412. package/es/components/table/TableAccordionTd.js.map +0 -1
  413. package/es/components/table/TableAccordionTr.d.ts +0 -13
  414. package/es/components/table/TableAccordionTr.js +0 -51
  415. package/es/components/table/TableAccordionTr.js.map +0 -1
  416. package/es/components/table/useTableAnimationHandler.js.map +0 -1
@@ -5,7 +5,7 @@ import _objectWithoutProperties from "@babel/runtime/helpers/esm/objectWithoutPr
5
5
  const _excluded = ["isSidebar"];
6
6
  function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }
7
7
  function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys(Object(source), !0).forEach(function (key) { _defineProperty(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; }
8
- import React, { useContext, useEffect, useRef, useState } from 'react';
8
+ import React, { useCallback, useContext, useEffect, useMemo, useReducer, useRef, useState } from 'react';
9
9
  import Context from '../../shared/Context';
10
10
  import { stepIndicatorDefaultProps } from './StepIndicatorProps';
11
11
  import { extendPropsWithContext } from '../../shared/component-helper';
@@ -20,72 +20,51 @@ export function StepIndicatorProvider(_ref) {
20
20
  isSidebar = false
21
21
  } = _ref,
22
22
  restOfProps = _objectWithoutProperties(_ref, _excluded);
23
- const props = _objectSpread({
24
- isSidebar
25
- }, restOfProps);
26
- const data = getData(props);
27
- const countSteps = data.length;
23
+ const props = useMemo(() => {
24
+ return _objectSpread({
25
+ isSidebar
26
+ }, restOfProps);
27
+ }, [isSidebar, restOfProps]);
28
+ const data = useMemo(() => {
29
+ if (typeof props.data === 'string') {
30
+ return props.data[0] === '[' ? JSON.parse(props.data) : [];
31
+ }
32
+ return props.data || [];
33
+ }, [props]);
28
34
  const [hasSidebar, setHasSidebar] = useState(true);
29
35
  const [hideSidebar, setHideSidebar] = useState(false);
30
- const [activeStep, setActiveStep] = useState(getActiveStepFromProps());
31
36
  const [openState, setOpenState] = useState(false);
32
- const listOfReachedSteps = useRef([activeStep].filter(Boolean)).current;
33
- const mediaQueryListener = useRef(null);
34
- const context = useContext(Context);
35
- const contextValue = makeContextValue();
36
- useEffect(() => {
37
- var _document;
38
- const container = (_document = document) === null || _document === void 0 ? void 0 : _document.getElementById('sidebar__' + props.sidebar_id);
39
- setHasSidebar(Boolean(container));
40
- mediaQueryListener.current = onMediaQueryChange({
41
- min: '0',
42
- max: 'medium'
43
- }, hideSidebar => {
44
- setHideSidebar(hideSidebar);
45
- }, {
46
- runOnInit: true
47
- });
48
- return () => {
49
- if (mediaQueryListener.current) {
50
- mediaQueryListener.current();
51
- }
52
- };
53
- }, []);
54
- useEffect(() => {
55
- const currentStepFromProps = getActiveStepFromProps();
56
- if (currentStepFromProps !== activeStep) {
57
- setActiveStep(currentStepFromProps);
58
- }
59
- }, [props.current_step, data]);
60
- useEffect(() => {
61
- if (!listOfReachedSteps.includes(activeStep)) {
62
- listOfReachedSteps.push(activeStep);
63
- }
64
- }, [activeStep]);
65
- function onChangeState() {
37
+ const onChangeState = useCallback(() => {
66
38
  setOpenState(false);
67
- }
68
- function openHandler() {
39
+ }, []);
40
+ const openHandler = useCallback(() => {
69
41
  setOpenState(true);
70
- }
71
- function closeHandler() {
42
+ }, []);
43
+ const closeHandler = useCallback(() => {
72
44
  setOpenState(false);
73
- }
74
- function getData(props) {
75
- if (typeof props.data === 'string') {
76
- return props.data[0] === '[' ? JSON.parse(props.data) : [];
77
- }
78
- return props.data || [];
79
- }
80
- function getActiveStepFromProps() {
45
+ }, []);
46
+ const getActiveStepFromProps = useCallback(() => {
81
47
  if (typeof data[0] === 'string') {
82
48
  return props.current_step;
83
49
  }
84
50
  const dataWithItems = data;
85
51
  const itemWithCurrentStep = dataWithItems.find(item => item.is_current);
86
52
  return itemWithCurrentStep ? dataWithItems.indexOf(itemWithCurrentStep) : props.current_step;
87
- }
88
- function makeContextValue() {
53
+ }, [data, props.current_step]);
54
+ const countSteps = data.length;
55
+ const activeStepRef = useRef(getActiveStepFromProps());
56
+ const [, forceUpdate] = useReducer(() => ({}), {});
57
+ const setActiveStep = useCallback(step => {
58
+ activeStepRef.current = step;
59
+ forceUpdate();
60
+ }, []);
61
+ const listOfReachedSteps = useRef([activeStepRef.current].filter(Boolean)).current;
62
+ const mediaQueryListener = useRef(null);
63
+ const context = useContext(Context);
64
+ const updateStepTitle = useCallback(title => {
65
+ return title === null || title === void 0 ? void 0 : title.replace('%step', String((activeStepRef.current || 0) + 1)).replace('%count', String((data === null || data === void 0 ? void 0 : data.length) || 1));
66
+ }, [data === null || data === void 0 ? void 0 : data.length]);
67
+ const makeContextValue = useCallback(() => {
89
68
  const globalContext = extendPropsWithContext(props, stepIndicatorDefaultProps, {
90
69
  skeleton: context === null || context === void 0 ? void 0 : context.skeleton
91
70
  }, context.getTranslation(context).StepIndicator, context.StepIndicator);
@@ -97,7 +76,7 @@ export function StepIndicatorProvider(_ref) {
97
76
  }, {
98
77
  hasSidebar,
99
78
  hideSidebar,
100
- activeStep,
79
+ activeStep: activeStepRef.current,
101
80
  openState,
102
81
  listOfReachedSteps,
103
82
  data,
@@ -112,10 +91,38 @@ export function StepIndicatorProvider(_ref) {
112
91
  });
113
92
  value.sidebarIsVisible = value.hasSidebar && !value.hideSidebar;
114
93
  return value;
115
- }
116
- function updateStepTitle(title) {
117
- return title === null || title === void 0 ? void 0 : title.replace('%step', String((activeStep || 0) + 1)).replace('%count', String((data === null || data === void 0 ? void 0 : data.length) || 1));
118
- }
94
+ }, [closeHandler, context, countSteps, data, hasSidebar, hideSidebar, listOfReachedSteps, onChangeState, openHandler, openState, props, setActiveStep, updateStepTitle]);
95
+ const contextValue = makeContextValue();
96
+ useEffect(() => {
97
+ var _document;
98
+ const container = (_document = document) === null || _document === void 0 ? void 0 : _document.getElementById('sidebar__' + props.sidebar_id);
99
+ setHasSidebar(Boolean(container));
100
+ mediaQueryListener.current = onMediaQueryChange({
101
+ min: '0',
102
+ max: 'medium'
103
+ }, hideSidebar => {
104
+ setHideSidebar(hideSidebar);
105
+ }, {
106
+ runOnInit: true
107
+ });
108
+ return () => {
109
+ if (mediaQueryListener.current) {
110
+ mediaQueryListener.current();
111
+ }
112
+ };
113
+ }, [props.sidebar_id]);
114
+ useEffect(() => {
115
+ const currentStepFromProps = getActiveStepFromProps();
116
+ if (currentStepFromProps !== activeStepRef.current) {
117
+ setActiveStep(currentStepFromProps);
118
+ }
119
+ }, [props.current_step, data, getActiveStepFromProps, setActiveStep]);
120
+ const activeStep = activeStepRef.current;
121
+ useEffect(() => {
122
+ if (!listOfReachedSteps.includes(activeStep)) {
123
+ listOfReachedSteps.push(activeStep);
124
+ }
125
+ }, [activeStep, listOfReachedSteps]);
119
126
  if (typeof window !== 'undefined' && window['IS_TEST']) {
120
127
  contextValue['no_animation'] = true;
121
128
  }
@@ -1 +1 @@
1
- {"version":3,"file":"StepIndicatorContext.js","names":["React","useContext","useEffect","useRef","useState","Context","stepIndicatorDefaultProps","extendPropsWithContext","onMediaQueryChange","filterAttributes","Object","keys","filter","item","includes","concat","StepIndicatorContext","createContext","StepIndicatorProvider","_ref","isSidebar","restOfProps","_objectWithoutProperties","_excluded","props","_objectSpread","data","getData","countSteps","length","hasSidebar","setHasSidebar","hideSidebar","setHideSidebar","activeStep","setActiveStep","getActiveStepFromProps","openState","setOpenState","listOfReachedSteps","Boolean","current","mediaQueryListener","context","contextValue","makeContextValue","_document","container","document","getElementById","sidebar_id","min","max","runOnInit","currentStepFromProps","current_step","push","onChangeState","openHandler","closeHandler","JSON","parse","dataWithItems","itemWithCurrentStep","find","is_current","indexOf","globalContext","skeleton","getTranslation","StepIndicator","value","extendSafe","defaultProps","stepsLabel","updateStepTitle","step_title","stepsLabelExtended","step_title_extended","sidebarIsVisible","title","replace","String","window","forEach","key","startsWith","createElement","Provider","children","objects","obj","itm","entries","reduce","acc","k","v"],"sources":["../../../../src/components/step-indicator/StepIndicatorContext.tsx"],"sourcesContent":["/**\n * Web StepIndicator Context\n *\n */\n\nimport React, { useContext, useEffect, useRef, useState } from 'react'\nimport Context, { ContextProps } from '../../shared/Context'\nimport { stepIndicatorDefaultProps } from './StepIndicatorProps'\nimport { extendPropsWithContext } from '../../shared/component-helper'\nimport { onMediaQueryChange } from '../../shared/MediaQueryUtils'\nimport {\n StepIndicatorData,\n StepIndicatorDataItem,\n StepIndicatorMode,\n StepIndicatorProps,\n} from './StepIndicator'\nimport { StepIndicatorItemProps } from './StepIndicatorItem'\n\n// We use this array to filter out unwanted properties\nconst filterAttributes = Object.keys(stepIndicatorDefaultProps)\n .filter((item) => {\n return !['class', 'className'].includes(item)\n })\n .concat([\n 'internalId',\n 'isSidebar',\n 'hasSidebar',\n 'hideSidebar',\n 'sidebarIsVisible',\n 'mainTitle',\n 'stepsLabel',\n 'stepsLabelExtended',\n 'listOfReachedSteps',\n 'setActiveStep',\n 'activeStep',\n 'countSteps',\n 'openState',\n 'onChangeState',\n 'openHandler',\n 'closeHandler',\n 'innerRef',\n 'hasSkeletonData',\n 'filterAttributes',\n 'onChangeState',\n ])\n\nexport type StepIndicatorContextValues = StepIndicatorProviderProps &\n StepIndicatorProviderStates &\n ContextProps\n\nconst StepIndicatorContext =\n React.createContext<StepIndicatorContextValues>(null)\n\nexport default StepIndicatorContext\n\nexport type StepIndicatorProviderProps = Omit<\n StepIndicatorProps,\n 'mode' | 'data'\n> & {\n /**\n * <em>(required)</em> a unique string-based ID in order to bind together the main component and the sidebar (`<StepIndicator.Sidebar />`). Both have to get the same ID.\n */\n sidebar_id: string\n /**\n * <em>(required)</em> defines the data/steps showing up in a JavaScript Array or JSON format like `[{title,is_current}]`. See parameters and the example above.\n */\n data?: StepIndicatorData\n /**\n * <em>(required)</em> defines how the StepIndicator should work. Use `static` for non-interactive steps. Use `strict` for a chronological step order, also, the user can navigate between visited steps. Use `loose` if the user should be able to navigate freely.\n */\n mode?: StepIndicatorMode\n children: React.ReactNode\n isSidebar?: boolean\n}\n\nexport type StepIndicatorProviderStates = {\n data: (string | StepIndicatorItemProps)[]\n hasSidebar: boolean\n hideSidebar: boolean\n activeStep: number\n openState: boolean\n listOfReachedSteps: number[]\n countSteps: number\n stepsLabel: string\n stepsLabelExtended: string\n filterAttributes: string[]\n setActiveStep: React.Dispatch<React.SetStateAction<number>>\n sidebarIsVisible: boolean\n onChangeState: () => void\n openHandler: () => void\n closeHandler: () => void\n}\n\nexport function StepIndicatorProvider({\n isSidebar = false,\n ...restOfProps\n}: StepIndicatorProviderProps) {\n const props = { isSidebar, ...restOfProps }\n\n const data = getData(props)\n const countSteps = data.length\n\n const [hasSidebar, setHasSidebar] = useState<boolean>(true)\n const [hideSidebar, setHideSidebar] = useState<boolean>(false)\n const [activeStep, setActiveStep] = useState<number>(\n getActiveStepFromProps()\n )\n const [openState, setOpenState] = useState<boolean>(false)\n\n const listOfReachedSteps = useRef([activeStep].filter(Boolean)).current\n\n const mediaQueryListener = useRef(null)\n\n const context = useContext(Context)\n const contextValue = makeContextValue() as StepIndicatorContextValues\n\n // Mount and dismount\n useEffect(() => {\n const container = document?.getElementById(\n 'sidebar__' + props.sidebar_id\n )\n\n setHasSidebar(Boolean(container))\n\n mediaQueryListener.current = onMediaQueryChange(\n {\n min: '0',\n max: 'medium',\n },\n (hideSidebar) => {\n setHideSidebar(hideSidebar)\n },\n { runOnInit: true }\n )\n\n return () => {\n if (mediaQueryListener.current) {\n mediaQueryListener.current()\n }\n }\n }, [])\n\n // Keeps the activeStep state updated with changes to the current_step and data props\n useEffect(() => {\n const currentStepFromProps = getActiveStepFromProps()\n\n if (currentStepFromProps !== activeStep) {\n setActiveStep(currentStepFromProps)\n }\n }, [props.current_step, data])\n\n // Keeps the listOfReachedSteps state up to date with the activeStep state\n useEffect(() => {\n if (!listOfReachedSteps.includes(activeStep)) {\n listOfReachedSteps.push(activeStep)\n }\n }, [activeStep])\n\n function onChangeState() {\n setOpenState(false)\n }\n\n function openHandler() {\n setOpenState(true)\n }\n\n function closeHandler() {\n setOpenState(false)\n }\n\n function getData(\n props: StepIndicatorProviderProps\n ): string[] | StepIndicatorDataItem[] {\n if (typeof props.data === 'string') {\n return props.data[0] === '[' ? JSON.parse(props.data) : []\n }\n\n return props.data || []\n }\n\n function getActiveStepFromProps() {\n if (typeof data[0] === 'string') {\n return props.current_step\n }\n\n const dataWithItems = data as StepIndicatorDataItem[]\n\n const itemWithCurrentStep = dataWithItems.find(\n (item) => item.is_current\n )\n // Is current on data item has precedence(?) over current_step prop\n return itemWithCurrentStep\n ? dataWithItems.indexOf(itemWithCurrentStep)\n : props.current_step\n }\n\n function makeContextValue() {\n const globalContext = extendPropsWithContext(\n props,\n stepIndicatorDefaultProps,\n { skeleton: context?.skeleton },\n context.getTranslation(context).StepIndicator,\n context.StepIndicator\n )\n\n const value = extendSafe(\n { filterAttributes },\n globalContext,\n // Props\n {\n defaultProps: stepIndicatorDefaultProps,\n props,\n },\n // State\n {\n hasSidebar,\n hideSidebar,\n activeStep,\n openState,\n listOfReachedSteps,\n data,\n countSteps,\n stepsLabel: updateStepTitle(globalContext.step_title),\n stepsLabelExtended: updateStepTitle(\n globalContext.step_title_extended\n ),\n },\n // Functions\n {\n setActiveStep,\n onChangeState,\n openHandler,\n closeHandler,\n }\n ) as StepIndicatorContextValues\n\n value.sidebarIsVisible = value.hasSidebar && !value.hideSidebar\n\n return value\n }\n\n function updateStepTitle(title: string) {\n return title\n ?.replace('%step', String((activeStep || 0) + 1))\n .replace('%count', String(data?.length || 1))\n }\n\n if (typeof window !== 'undefined' && window['IS_TEST']) {\n contextValue['no_animation'] = true\n }\n\n // Filter out unwanted HTML attributes\n Object.keys(contextValue).forEach((key) => {\n if (key.startsWith('_')) {\n delete contextValue[key]\n }\n })\n\n return (\n <StepIndicatorContext.Provider value={contextValue}>\n {props.children}\n </StepIndicatorContext.Provider>\n )\n}\n\n/**\n * Like \"Object.assign\" – but safe\n * A new falsy value will not be used, if it exists already\n *\n * @param {...object} objects\n * @returns object\n */\nfunction extendSafe(...objects): Record<string, unknown> {\n const obj = {}\n\n objects.forEach((itm) => {\n if (itm.defaultProps && itm.props) {\n itm = Object.entries(itm.props).reduce((acc, [k, v]) => {\n if (itm.defaultProps[k] !== v) {\n acc[k] = v\n }\n return acc\n }, {})\n }\n\n Object.entries(itm).forEach(([k, v]) => {\n if (!obj[k] || (obj[k] && v)) {\n obj[k] = v\n }\n })\n })\n\n return obj\n}\n"],"mappings":"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"}
1
+ {"version":3,"file":"StepIndicatorContext.js","names":["React","useCallback","useContext","useEffect","useMemo","useReducer","useRef","useState","Context","stepIndicatorDefaultProps","extendPropsWithContext","onMediaQueryChange","filterAttributes","Object","keys","filter","item","includes","concat","StepIndicatorContext","createContext","StepIndicatorProvider","_ref","isSidebar","restOfProps","_objectWithoutProperties","_excluded","props","_objectSpread","data","JSON","parse","hasSidebar","setHasSidebar","hideSidebar","setHideSidebar","openState","setOpenState","onChangeState","openHandler","closeHandler","getActiveStepFromProps","current_step","dataWithItems","itemWithCurrentStep","find","is_current","indexOf","countSteps","length","activeStepRef","forceUpdate","setActiveStep","step","current","listOfReachedSteps","Boolean","mediaQueryListener","context","updateStepTitle","title","replace","String","makeContextValue","globalContext","skeleton","getTranslation","StepIndicator","value","extendSafe","defaultProps","activeStep","stepsLabel","step_title","stepsLabelExtended","step_title_extended","sidebarIsVisible","contextValue","_document","container","document","getElementById","sidebar_id","min","max","runOnInit","currentStepFromProps","push","window","forEach","key","startsWith","createElement","Provider","children","objects","obj","itm","entries","reduce","acc","k","v"],"sources":["../../../../src/components/step-indicator/StepIndicatorContext.tsx"],"sourcesContent":["/**\n * Web StepIndicator Context\n *\n */\n\nimport React, {\n useCallback,\n useContext,\n useEffect,\n useMemo,\n useReducer,\n useRef,\n useState,\n} from 'react'\nimport Context, { ContextProps } from '../../shared/Context'\nimport { stepIndicatorDefaultProps } from './StepIndicatorProps'\nimport { extendPropsWithContext } from '../../shared/component-helper'\nimport { onMediaQueryChange } from '../../shared/MediaQueryUtils'\nimport {\n StepIndicatorData,\n StepIndicatorDataItem,\n StepIndicatorMode,\n StepIndicatorProps,\n} from './StepIndicator'\nimport { StepIndicatorItemProps } from './StepIndicatorItem'\n\n// We use this array to filter out unwanted properties\nconst filterAttributes = Object.keys(stepIndicatorDefaultProps)\n .filter((item) => {\n return !['class', 'className'].includes(item)\n })\n .concat([\n 'internalId',\n 'isSidebar',\n 'hasSidebar',\n 'hideSidebar',\n 'sidebarIsVisible',\n 'mainTitle',\n 'stepsLabel',\n 'stepsLabelExtended',\n 'listOfReachedSteps',\n 'setActiveStep',\n 'activeStep',\n 'countSteps',\n 'openState',\n 'onChangeState',\n 'openHandler',\n 'closeHandler',\n 'innerRef',\n 'hasSkeletonData',\n 'filterAttributes',\n 'onChangeState',\n ])\n\nexport type StepIndicatorContextValues = StepIndicatorProviderProps &\n StepIndicatorProviderStates &\n ContextProps\n\nconst StepIndicatorContext =\n React.createContext<StepIndicatorContextValues>(null)\n\nexport default StepIndicatorContext\n\nexport type StepIndicatorProviderProps = Omit<\n StepIndicatorProps,\n 'mode' | 'data'\n> & {\n /**\n * <em>(required)</em> a unique string-based ID in order to bind together the main component and the sidebar (`<StepIndicator.Sidebar />`). Both have to get the same ID.\n */\n sidebar_id: string\n /**\n * <em>(required)</em> defines the data/steps showing up in a JavaScript Array or JSON format like `[{title,is_current}]`. See parameters and the example above.\n */\n data?: StepIndicatorData\n /**\n * <em>(required)</em> defines how the StepIndicator should work. Use `static` for non-interactive steps. Use `strict` for a chronological step order, also, the user can navigate between visited steps. Use `loose` if the user should be able to navigate freely.\n */\n mode?: StepIndicatorMode\n children: React.ReactNode\n isSidebar?: boolean\n}\n\nexport type StepIndicatorProviderStates = {\n data: (string | StepIndicatorItemProps)[]\n hasSidebar: boolean\n hideSidebar: boolean\n activeStep: number\n openState: boolean\n listOfReachedSteps: number[]\n countSteps: number\n stepsLabel: string\n stepsLabelExtended: string\n filterAttributes: string[]\n setActiveStep: React.Dispatch<React.SetStateAction<number>>\n sidebarIsVisible: boolean\n onChangeState: () => void\n openHandler: () => void\n closeHandler: () => void\n}\n\nexport function StepIndicatorProvider({\n isSidebar = false,\n ...restOfProps\n}: StepIndicatorProviderProps) {\n const props = useMemo(() => {\n return { isSidebar, ...restOfProps }\n }, [isSidebar, restOfProps])\n\n const data = useMemo(() => {\n if (typeof props.data === 'string') {\n return props.data[0] === '[' ? JSON.parse(props.data) : []\n }\n\n return props.data || []\n }, [props])\n\n const [hasSidebar, setHasSidebar] = useState<boolean>(true)\n const [hideSidebar, setHideSidebar] = useState<boolean>(false)\n const [openState, setOpenState] = useState<boolean>(false)\n\n const onChangeState = useCallback(() => {\n setOpenState(false)\n }, [])\n\n const openHandler = useCallback(() => {\n setOpenState(true)\n }, [])\n\n const closeHandler = useCallback(() => {\n setOpenState(false)\n }, [])\n\n const getActiveStepFromProps = useCallback(() => {\n if (typeof data[0] === 'string') {\n return props.current_step\n }\n\n const dataWithItems = data as StepIndicatorDataItem[]\n\n const itemWithCurrentStep = dataWithItems.find(\n (item) => item.is_current\n )\n // Is current on data item has precedence(?) over current_step prop\n return itemWithCurrentStep\n ? dataWithItems.indexOf(itemWithCurrentStep)\n : props.current_step\n }, [data, props.current_step])\n\n const countSteps = data.length\n const activeStepRef = useRef<number>(getActiveStepFromProps())\n const [, forceUpdate] = useReducer(() => ({}), {})\n const setActiveStep = useCallback((step: number) => {\n activeStepRef.current = step\n forceUpdate()\n }, [])\n const listOfReachedSteps = useRef(\n [activeStepRef.current].filter(Boolean)\n ).current\n const mediaQueryListener = useRef(null)\n const context = useContext(Context)\n\n const updateStepTitle = useCallback(\n (title: string) => {\n return title\n ?.replace('%step', String((activeStepRef.current || 0) + 1))\n .replace('%count', String(data?.length || 1))\n },\n [data?.length]\n )\n\n const makeContextValue = useCallback(() => {\n const globalContext = extendPropsWithContext(\n props,\n stepIndicatorDefaultProps,\n { skeleton: context?.skeleton },\n context.getTranslation(context).StepIndicator,\n context.StepIndicator\n )\n\n const value = extendSafe(\n { filterAttributes },\n globalContext,\n // Props\n {\n defaultProps: stepIndicatorDefaultProps,\n props,\n },\n // State\n {\n hasSidebar,\n hideSidebar,\n activeStep: activeStepRef.current,\n openState,\n listOfReachedSteps,\n data,\n countSteps,\n stepsLabel: updateStepTitle(globalContext.step_title),\n stepsLabelExtended: updateStepTitle(\n globalContext.step_title_extended\n ),\n },\n // Functions\n {\n setActiveStep,\n onChangeState,\n openHandler,\n closeHandler,\n }\n ) as StepIndicatorContextValues\n\n value.sidebarIsVisible = value.hasSidebar && !value.hideSidebar\n\n return value\n }, [\n closeHandler,\n context,\n countSteps,\n data,\n hasSidebar,\n hideSidebar,\n listOfReachedSteps,\n onChangeState,\n openHandler,\n openState,\n props,\n setActiveStep,\n updateStepTitle,\n ])\n\n const contextValue = makeContextValue() as StepIndicatorContextValues\n\n // Mount and dismount\n useEffect(() => {\n const container = document?.getElementById(\n 'sidebar__' + props.sidebar_id\n )\n\n setHasSidebar(Boolean(container))\n\n mediaQueryListener.current = onMediaQueryChange(\n {\n min: '0',\n max: 'medium',\n },\n (hideSidebar) => {\n setHideSidebar(hideSidebar)\n },\n { runOnInit: true }\n )\n\n return () => {\n if (mediaQueryListener.current) {\n mediaQueryListener.current()\n }\n }\n }, [props.sidebar_id])\n\n // Keeps the activeStep state updated with changes to the current_step and data props\n useEffect(() => {\n const currentStepFromProps = getActiveStepFromProps()\n\n if (currentStepFromProps !== activeStepRef.current) {\n setActiveStep(currentStepFromProps)\n }\n }, [props.current_step, data, getActiveStepFromProps, setActiveStep])\n\n // Keeps the listOfReachedSteps state up to date with the activeStep state\n const activeStep = activeStepRef.current\n useEffect(() => {\n if (!listOfReachedSteps.includes(activeStep)) {\n listOfReachedSteps.push(activeStep)\n }\n }, [activeStep, listOfReachedSteps])\n\n if (typeof window !== 'undefined' && window['IS_TEST']) {\n contextValue['no_animation'] = true\n }\n\n // Filter out unwanted HTML attributes\n Object.keys(contextValue).forEach((key) => {\n if (key.startsWith('_')) {\n delete contextValue[key]\n }\n })\n\n return (\n <StepIndicatorContext.Provider value={contextValue}>\n {props.children}\n </StepIndicatorContext.Provider>\n )\n}\n\n/**\n * Like \"Object.assign\" – but safe\n * A new falsy value will not be used, if it exists already\n *\n * @param {...object} objects\n * @returns object\n */\nfunction extendSafe(...objects): Record<string, unknown> {\n const obj = {}\n\n objects.forEach((itm) => {\n if (itm.defaultProps && itm.props) {\n itm = Object.entries(itm.props).reduce((acc, [k, v]) => {\n if (itm.defaultProps[k] !== v) {\n acc[k] = v\n }\n return acc\n }, {})\n }\n\n Object.entries(itm).forEach(([k, v]) => {\n if (!obj[k] || (obj[k] && v)) {\n obj[k] = v\n }\n })\n })\n\n return obj\n}\n"],"mappings":"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"}
@@ -8,7 +8,7 @@ const _excluded = ["status_state", "inactive", "disabled"],
8
8
  _excluded3 = ["children", "className", "status", "status_state", "inner_ref"];
9
9
  function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }
10
10
  function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys(Object(source), !0).forEach(function (key) { _defineProperty(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; }
11
- import React, { useContext, useEffect, useRef, useState } from 'react';
11
+ import React, { useCallback, useContext, useMemo } from 'react';
12
12
  import classnames from 'classnames';
13
13
  import { makeUniqueId, dispatchCustomElementEvent } from '../../shared/component-helper';
14
14
  import HeightAnimation from '../height-animation/HeightAnimation';
@@ -24,36 +24,30 @@ function StepIndicatorItem(_ref) {
24
24
  disabled: disabled_default = false
25
25
  } = _ref,
26
26
  restOfProps = _objectWithoutProperties(_ref, _excluded);
27
- const props = _objectSpread({
28
- status_state: status_state_default,
29
- inactive: inactive_default,
30
- disabled: disabled_default
31
- }, restOfProps);
27
+ const props = useMemo(() => {
28
+ return _objectSpread({
29
+ status_state: status_state_default,
30
+ inactive: inactive_default,
31
+ disabled: disabled_default
32
+ }, restOfProps);
33
+ }, [disabled_default, inactive_default, restOfProps, status_state_default]);
32
34
  const context = useContext(StepIndicatorContext);
33
- const [previousStep, setPreviousStep] = useState(context.activeStep);
34
- const ref = useRef(null);
35
- const thisReference = {
36
- context,
37
- props,
38
- onClickHandler
39
- };
40
- useEffect(() => {
41
- if (previousStep !== context.activeStep) {
42
- setPreviousStep(context.activeStep);
43
- }
44
- }, [context.activeStep, previousStep]);
45
- function onClickHandler({
35
+ const onClickHandler = useCallback(({
46
36
  event,
47
37
  item,
48
38
  currentItemNum
49
- }) {
39
+ }) => {
50
40
  const params = {
51
41
  event,
52
42
  item,
53
43
  current_step: currentItemNum,
54
44
  currentStep: currentItemNum
55
45
  };
56
- const onClickItem = dispatchCustomElementEvent(thisReference, 'on_click', params);
46
+ const onClickItem = dispatchCustomElementEvent({
47
+ context,
48
+ props,
49
+ onClickHandler
50
+ }, 'on_click', params);
57
51
  const onClickGlobal = dispatchCustomElementEvent(context, 'on_click', params);
58
52
  if (onClickItem === false || onClickGlobal === false) {
59
53
  return;
@@ -65,7 +59,7 @@ function StepIndicatorItem(_ref) {
65
59
  }
66
60
  dispatchCustomElementEvent(context, 'on_change', params);
67
61
  }
68
- }
62
+ }, [context, props]);
69
63
  const {
70
64
  mode,
71
65
  filterAttributes,
@@ -148,9 +142,7 @@ function StepIndicatorItem(_ref) {
148
142
  }
149
143
  return React.createElement("li", _extends({}, itemParams, {
150
144
  className: classnames('dnb-step-indicator__item', itemParams.className, isCurrent && 'dnb-step-indicator__item--current', isInactive && 'dnb-step-indicator__item--inactive', isVisited && 'dnb-step-indicator__item--visited')
151
- }), React.createElement(StepItemButton, _extends({}, buttonParams, {
152
- inner_ref: ref
153
- }), element), React.createElement("span", {
145
+ }), React.createElement(StepItemButton, buttonParams, element), React.createElement("span", {
154
146
  id: id,
155
147
  "aria-hidden": true,
156
148
  className: "dnb-sr-only"
@@ -1 +1 @@
1
- {"version":3,"file":"StepIndicatorItem.js","names":["React","useContext","useEffect","useRef","useState","classnames","makeUniqueId","dispatchCustomElementEvent","HeightAnimation","Button","Icon","WarnIcon","InfoIcon","ErrorIcon","StepIndicatorContext","stepIndicatorDefaultProps","StepIndicatorItem","_ref","status_state","status_state_default","inactive","inactive_default","disabled","disabled_default","restOfProps","_objectWithoutProperties","_excluded","props","_objectSpread","context","previousStep","setPreviousStep","activeStep","ref","thisReference","onClickHandler","event","item","currentItemNum","params","current_step","currentStep","onClickItem","onClickGlobal","setActiveStep","onChangeState","mode","filterAttributes","countSteps","listOfReachedSteps","hide_numbers","on_item_render","sidebar_id","step_title","title","is_current","status","on_render","on_click","attributes","_excluded2","Object","keys","forEach","key","includes","hasPassedAndIsCurrent","isNavigatable","isInactive","isVisited","id","ariaLabel","replace","String","isCurrent","element","createElement","StepItemWrapper","number","callbackProps","StepItem","itemParams","buttonParams","icon","onClick","type","undefined","_extends","className","StepItemButton","inner_ref","_ref2","children","_excluded3","icons","info","error","warn","size","inherit_color","wrap","stretch","variant","icon_size","icon_position"],"sources":["../../../../src/components/step-indicator/StepIndicatorItem.tsx"],"sourcesContent":["/**\n * Web StepIndicator Component\n *\n */\n\nimport React, {\n HTMLProps,\n useContext,\n useEffect,\n useRef,\n useState,\n} from 'react'\n\nimport classnames from 'classnames'\nimport {\n makeUniqueId,\n dispatchCustomElementEvent,\n} from '../../shared/component-helper'\nimport HeightAnimation from '../height-animation/HeightAnimation'\nimport Button, { ButtonProps } from '../button/Button'\nimport Icon, { IconIcon } from '../icon/Icon'\nimport { WarnIcon, InfoIcon, ErrorIcon } from '../form-status/FormStatus'\nimport StepIndicatorContext from './StepIndicatorContext'\nimport { stepIndicatorDefaultProps } from './StepIndicatorProps'\nimport {\n StepIndicatorMouseEvent,\n StepIndicatorRenderCallback,\n} from './StepIndicator'\n\nexport type StepIndicatorStatusState = 'warn' | 'info' | 'error'\nexport type StepIndicatorItemProps = Omit<\n React.HTMLProps<HTMLElement>,\n 'title' | 'data'\n> & {\n title: string | React.ReactNode\n /**\n * If set to true, this item step will be set as the current current selected step. This can be used instead of `current_step` on the component itself.\n */\n is_current?: boolean\n /**\n * If set to true, this item step will be handled as an inactive step and will not be clickable.\n * Defaults to `false`\n */\n inactive?: boolean\n /**\n * If set to true, this item step will be visible as an disabled button and will not be clickable.\n * Defaults to false.\n */\n disabled?: boolean\n /**\n * Is used to set the status text.\n */\n status?: string | React.ReactNode\n /**\n * Used to set the status state to be either `info`, `error` or `warn`.\n * Defaults to `warn`.\n */\n status_state?: StepIndicatorStatusState\n /**\n * Callback function to manipulate or wrap the step item. Has to return a React Node. You receive an object `{ StepItem, element, attributes, props, context }`.\n */\n on_render?: ({\n StepItem,\n element,\n attributes,\n props,\n context,\n }: StepIndicatorRenderCallback) => React.ReactNode\n /**\n * Will be called once the user clicks on the current or another step. Will be emitted on every click. Returns an object `{ event, item, current_step }`.\n */\n on_click?: ({\n event,\n item,\n current_step,\n currentStep,\n }: StepIndicatorMouseEvent) => void\n currentItemNum: number\n}\n\nfunction StepIndicatorItem({\n status_state: status_state_default = 'warn',\n inactive: inactive_default = false,\n disabled: disabled_default = false,\n ...restOfProps\n}: StepIndicatorItemProps) {\n const props: StepIndicatorItemProps = {\n status_state: status_state_default,\n inactive: inactive_default,\n disabled: disabled_default,\n ...restOfProps,\n }\n\n const context = useContext(StepIndicatorContext)\n\n const [previousStep, setPreviousStep] = useState<number>(\n context.activeStep\n )\n\n const ref = useRef(null)\n\n const thisReference = {\n context,\n props,\n onClickHandler,\n }\n\n // Effect used to keep track of previous activeStep from context\n useEffect(() => {\n if (previousStep !== context.activeStep) {\n setPreviousStep(context.activeStep)\n }\n }, [context.activeStep, previousStep])\n\n function onClickHandler({ event, item, currentItemNum }) {\n const params = {\n event,\n item,\n current_step: currentItemNum,\n currentStep: currentItemNum,\n }\n\n const onClickItem = dispatchCustomElementEvent(\n thisReference,\n 'on_click',\n params\n )\n\n const onClickGlobal = dispatchCustomElementEvent(\n context,\n 'on_click',\n params\n )\n\n if (onClickItem === false || onClickGlobal === false) {\n return // stop here\n }\n\n if (context.activeStep !== currentItemNum) {\n context.setActiveStep(currentItemNum)\n if (typeof context.onChangeState === 'function') {\n context.onChangeState()\n }\n\n dispatchCustomElementEvent(context, 'on_change', params)\n }\n }\n\n const {\n mode,\n filterAttributes,\n activeStep,\n countSteps,\n listOfReachedSteps,\n hide_numbers,\n on_item_render,\n sidebar_id,\n step_title,\n } = context\n\n const {\n currentItemNum,\n\n title,\n is_current, // eslint-disable-line\n inactive,\n disabled,\n status,\n status_state,\n\n on_render,\n on_click, // eslint-disable-line\n\n ...attributes\n } = props\n\n Object.keys(attributes).forEach((key) => {\n if (filterAttributes.includes(key)) {\n delete attributes[key]\n }\n })\n\n const hasPassedAndIsCurrent =\n mode === 'loose' ||\n currentItemNum <= activeStep ||\n listOfReachedSteps.includes(currentItemNum)\n\n const isNavigatable = mode === 'strict' || mode === 'loose'\n\n let isInactive =\n inactive || (mode === 'strict' && !hasPassedAndIsCurrent)\n\n const isVisited = currentItemNum < activeStep\n\n const id = `${sidebar_id || makeUniqueId()}-${currentItemNum}`\n const ariaLabel = step_title\n ?.replace('%step', String(currentItemNum + 1))\n .replace('%count', String(countSteps))\n\n const isCurrent = currentItemNum === activeStep\n\n let element = (\n <StepItemWrapper\n number={currentItemNum + 1}\n hide_numbers={hide_numbers}\n status={status}\n >\n {title}\n </StepItemWrapper>\n ) as React.ReactNode\n\n const callbackProps = {\n StepItem: StepItemWrapper,\n element,\n attributes,\n props,\n context,\n }\n\n if (typeof on_render === 'function') {\n element = on_render(callbackProps)\n } else if (typeof on_item_render === 'function') {\n element = on_item_render(callbackProps)\n }\n\n const itemParams = {} as HTMLProps<HTMLLIElement>\n const buttonParams = {\n icon: 'check',\n status,\n status_state,\n 'aria-describedby': id,\n } as StepItemButtonProps\n\n if (isCurrent) {\n itemParams['aria-current'] = 'step'\n }\n\n if (disabled) {\n buttonParams.disabled = true\n }\n\n if (isNavigatable && !isInactive) {\n buttonParams.onClick = ({ event }: never) =>\n onClickHandler({\n event,\n item: props,\n currentItemNum,\n })\n }\n\n if (!buttonParams.onClick) {\n buttonParams.element = 'span'\n buttonParams.type = ''\n buttonParams.on_click = undefined\n isInactive = true\n }\n\n return (\n <li\n {...itemParams}\n className={classnames(\n 'dnb-step-indicator__item',\n isCurrent && 'dnb-step-indicator__item--current',\n isInactive && 'dnb-step-indicator__item--inactive',\n isVisited && 'dnb-step-indicator__item--visited',\n itemParams.className\n )}\n >\n <StepItemButton {...buttonParams} inner_ref={ref}>\n {element}\n </StepItemButton>\n <span id={id} aria-hidden className=\"dnb-sr-only\">\n {ariaLabel}\n </span>\n </li>\n )\n}\n\nexport type StepItemButtonProps = Omit<ButtonProps, 'status_state'> & {\n status_state?: StepIndicatorStatusState\n}\n\nexport function StepItemButton({\n children,\n className,\n status,\n status_state,\n inner_ref,\n ...props\n}: StepItemButtonProps) {\n const icons: Record<StepIndicatorStatusState, IconIcon> = {\n info: InfoIcon,\n error: ErrorIcon,\n warn: WarnIcon,\n }\n\n if (status) {\n props.icon = (\n <Icon\n icon={icons[status_state] || icons.warn}\n className=\"dnb-button__icon\"\n size=\"medium\"\n inherit_color={false}\n />\n )\n }\n\n return (\n <Button\n className={classnames(\n className,\n status && 'dnb-step-indicator__button__status',\n status && `dnb-step-indicator__button__status--${status_state}`\n )}\n wrap\n stretch\n variant=\"secondary\"\n icon_size=\"medium\"\n icon_position=\"right\"\n inner_ref={inner_ref}\n {...props}\n >\n <HeightAnimation>{children}</HeightAnimation>\n </Button>\n )\n}\n\nexport type StepItemWrapperProps = React.HTMLProps<HTMLElement> & {\n children?: React.ReactNode\n number?: number\n /**\n * Define whether to show automatically counted numbers or not. Defaults to `false`.\n */\n hide_numbers?: boolean\n status?: string | React.ReactNode\n}\n\nexport function StepItemWrapper({\n children,\n number,\n hide_numbers = stepIndicatorDefaultProps.hide_numbers,\n status,\n}: StepItemWrapperProps) {\n return (\n <span className=\"dnb-step-indicator__item-content\">\n {!hide_numbers && (\n <span\n aria-hidden // because we provide the hidden aria-describedby\n className=\"dnb-step-indicator__item-content__number\"\n >\n {number}.\n </span>\n )}\n <span className=\"dnb-step-indicator__item-content__wrapper\">\n <span className=\"dnb-step-indicator__item-content__text\">\n {children}\n </span>\n {status && (\n <span className=\"dnb-step-indicator__item-content__status\">\n {status}\n </span>\n )}\n </span>\n </span>\n )\n}\n\nexport default StepIndicatorItem\n"],"mappings":"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"}
1
+ {"version":3,"file":"StepIndicatorItem.js","names":["React","useCallback","useContext","useMemo","classnames","makeUniqueId","dispatchCustomElementEvent","HeightAnimation","Button","Icon","WarnIcon","InfoIcon","ErrorIcon","StepIndicatorContext","stepIndicatorDefaultProps","StepIndicatorItem","_ref","status_state","status_state_default","inactive","inactive_default","disabled","disabled_default","restOfProps","_objectWithoutProperties","_excluded","props","_objectSpread","context","onClickHandler","event","item","currentItemNum","params","current_step","currentStep","onClickItem","onClickGlobal","activeStep","setActiveStep","onChangeState","mode","filterAttributes","countSteps","listOfReachedSteps","hide_numbers","on_item_render","sidebar_id","step_title","title","is_current","status","on_render","on_click","attributes","_excluded2","Object","keys","forEach","key","includes","hasPassedAndIsCurrent","isNavigatable","isInactive","isVisited","id","ariaLabel","replace","String","isCurrent","element","createElement","StepItemWrapper","number","callbackProps","StepItem","itemParams","buttonParams","icon","onClick","type","undefined","_extends","className","StepItemButton","_ref2","children","inner_ref","_excluded3","icons","info","error","warn","size","inherit_color","wrap","stretch","variant","icon_size","icon_position"],"sources":["../../../../src/components/step-indicator/StepIndicatorItem.tsx"],"sourcesContent":["/**\n * Web StepIndicator Component\n *\n */\n\nimport React, { HTMLProps, useCallback, useContext, useMemo } from 'react'\n\nimport classnames from 'classnames'\nimport {\n makeUniqueId,\n dispatchCustomElementEvent,\n} from '../../shared/component-helper'\nimport HeightAnimation from '../height-animation/HeightAnimation'\nimport Button, { ButtonProps } from '../button/Button'\nimport Icon, { IconIcon } from '../icon/Icon'\nimport { WarnIcon, InfoIcon, ErrorIcon } from '../form-status/FormStatus'\nimport StepIndicatorContext from './StepIndicatorContext'\nimport { stepIndicatorDefaultProps } from './StepIndicatorProps'\nimport {\n StepIndicatorMouseEvent,\n StepIndicatorRenderCallback,\n} from './StepIndicator'\n\nexport type StepIndicatorStatusState = 'warn' | 'info' | 'error'\nexport type StepIndicatorItemProps = Omit<\n React.HTMLProps<HTMLElement>,\n 'title' | 'data'\n> & {\n title: string | React.ReactNode\n /**\n * If set to true, this item step will be set as the current current selected step. This can be used instead of `current_step` on the component itself.\n */\n is_current?: boolean\n /**\n * If set to true, this item step will be handled as an inactive step and will not be clickable.\n * Defaults to `false`\n */\n inactive?: boolean\n /**\n * If set to true, this item step will be visible as an disabled button and will not be clickable.\n * Defaults to false.\n */\n disabled?: boolean\n /**\n * Is used to set the status text.\n */\n status?: string | React.ReactNode\n /**\n * Used to set the status state to be either `info`, `error` or `warn`.\n * Defaults to `warn`.\n */\n status_state?: StepIndicatorStatusState\n /**\n * Callback function to manipulate or wrap the step item. Has to return a React Node. You receive an object `{ StepItem, element, attributes, props, context }`.\n */\n on_render?: ({\n StepItem,\n element,\n attributes,\n props,\n context,\n }: StepIndicatorRenderCallback) => React.ReactNode\n /**\n * Will be called once the user clicks on the current or another step. Will be emitted on every click. Returns an object `{ event, item, current_step }`.\n */\n on_click?: ({\n event,\n item,\n current_step,\n currentStep,\n }: StepIndicatorMouseEvent) => void\n currentItemNum: number\n}\n\nfunction StepIndicatorItem({\n status_state: status_state_default = 'warn',\n inactive: inactive_default = false,\n disabled: disabled_default = false,\n ...restOfProps\n}: StepIndicatorItemProps) {\n const props: StepIndicatorItemProps = useMemo(() => {\n return {\n status_state: status_state_default,\n inactive: inactive_default,\n disabled: disabled_default,\n ...restOfProps,\n }\n }, [\n disabled_default,\n inactive_default,\n restOfProps,\n status_state_default,\n ])\n\n const context = useContext(StepIndicatorContext)\n\n const onClickHandler = useCallback(\n ({ event, item, currentItemNum }) => {\n const params = {\n event,\n item,\n current_step: currentItemNum,\n currentStep: currentItemNum,\n }\n\n const onClickItem = dispatchCustomElementEvent(\n {\n context,\n props,\n onClickHandler,\n },\n 'on_click',\n params\n )\n\n const onClickGlobal = dispatchCustomElementEvent(\n context,\n 'on_click',\n params\n )\n\n if (onClickItem === false || onClickGlobal === false) {\n return // stop here\n }\n\n if (context.activeStep !== currentItemNum) {\n context.setActiveStep(currentItemNum)\n if (typeof context.onChangeState === 'function') {\n context.onChangeState()\n }\n\n dispatchCustomElementEvent(context, 'on_change', params)\n }\n },\n [context, props]\n )\n\n const {\n mode,\n filterAttributes,\n activeStep,\n countSteps,\n listOfReachedSteps,\n hide_numbers,\n on_item_render,\n sidebar_id,\n step_title,\n } = context\n\n const {\n currentItemNum,\n\n title,\n is_current, // eslint-disable-line\n inactive,\n disabled,\n status,\n status_state,\n\n on_render,\n on_click, // eslint-disable-line\n\n ...attributes\n } = props\n\n Object.keys(attributes).forEach((key) => {\n if (filterAttributes.includes(key)) {\n delete attributes[key]\n }\n })\n\n const hasPassedAndIsCurrent =\n mode === 'loose' ||\n currentItemNum <= activeStep ||\n listOfReachedSteps.includes(currentItemNum)\n\n const isNavigatable = mode === 'strict' || mode === 'loose'\n\n let isInactive =\n inactive || (mode === 'strict' && !hasPassedAndIsCurrent)\n\n const isVisited = currentItemNum < activeStep\n\n const id = `${sidebar_id || makeUniqueId()}-${currentItemNum}`\n const ariaLabel = step_title\n ?.replace('%step', String(currentItemNum + 1))\n .replace('%count', String(countSteps))\n\n const isCurrent = currentItemNum === activeStep\n\n let element = (\n <StepItemWrapper\n number={currentItemNum + 1}\n hide_numbers={hide_numbers}\n status={status}\n >\n {title}\n </StepItemWrapper>\n ) as React.ReactNode\n\n const callbackProps = {\n StepItem: StepItemWrapper,\n element,\n attributes,\n props,\n context,\n }\n\n if (typeof on_render === 'function') {\n element = on_render(callbackProps)\n } else if (typeof on_item_render === 'function') {\n element = on_item_render(callbackProps)\n }\n\n const itemParams = {} as HTMLProps<HTMLLIElement>\n const buttonParams = {\n icon: 'check',\n status,\n status_state,\n 'aria-describedby': id,\n } as StepItemButtonProps\n\n if (isCurrent) {\n itemParams['aria-current'] = 'step'\n }\n\n if (disabled) {\n buttonParams.disabled = true\n }\n\n if (isNavigatable && !isInactive) {\n buttonParams.onClick = ({ event }: never) =>\n onClickHandler({\n event,\n item: props,\n currentItemNum,\n })\n }\n\n if (!buttonParams.onClick) {\n buttonParams.element = 'span'\n buttonParams.type = ''\n buttonParams.on_click = undefined\n isInactive = true\n }\n\n return (\n <li\n {...itemParams}\n className={classnames(\n 'dnb-step-indicator__item',\n isCurrent && 'dnb-step-indicator__item--current',\n isInactive && 'dnb-step-indicator__item--inactive',\n isVisited && 'dnb-step-indicator__item--visited',\n itemParams.className\n )}\n >\n <StepItemButton {...buttonParams}>{element}</StepItemButton>\n <span id={id} aria-hidden className=\"dnb-sr-only\">\n {ariaLabel}\n </span>\n </li>\n )\n}\n\nexport type StepItemButtonProps = Omit<ButtonProps, 'status_state'> & {\n status_state?: StepIndicatorStatusState\n}\n\nexport function StepItemButton({\n children,\n className,\n status,\n status_state,\n inner_ref,\n ...props\n}: StepItemButtonProps) {\n const icons: Record<StepIndicatorStatusState, IconIcon> = {\n info: InfoIcon,\n error: ErrorIcon,\n warn: WarnIcon,\n }\n\n if (status) {\n props.icon = (\n <Icon\n icon={icons[status_state] || icons.warn}\n className=\"dnb-button__icon\"\n size=\"medium\"\n inherit_color={false}\n />\n )\n }\n\n return (\n <Button\n className={classnames(\n className,\n status && 'dnb-step-indicator__button__status',\n status && `dnb-step-indicator__button__status--${status_state}`\n )}\n wrap\n stretch\n variant=\"secondary\"\n icon_size=\"medium\"\n icon_position=\"right\"\n inner_ref={inner_ref}\n {...props}\n >\n <HeightAnimation>{children}</HeightAnimation>\n </Button>\n )\n}\n\nexport type StepItemWrapperProps = React.HTMLProps<HTMLElement> & {\n children?: React.ReactNode\n number?: number\n /**\n * Define whether to show automatically counted numbers or not. Defaults to `false`.\n */\n hide_numbers?: boolean\n status?: string | React.ReactNode\n}\n\nexport function StepItemWrapper({\n children,\n number,\n hide_numbers = stepIndicatorDefaultProps.hide_numbers,\n status,\n}: StepItemWrapperProps) {\n return (\n <span className=\"dnb-step-indicator__item-content\">\n {!hide_numbers && (\n <span\n aria-hidden // because we provide the hidden aria-describedby\n className=\"dnb-step-indicator__item-content__number\"\n >\n {number}.\n </span>\n )}\n <span className=\"dnb-step-indicator__item-content__wrapper\">\n <span className=\"dnb-step-indicator__item-content__text\">\n {children}\n </span>\n {status && (\n <span className=\"dnb-step-indicator__item-content__status\">\n {status}\n </span>\n )}\n </span>\n </span>\n )\n}\n\nexport default StepIndicatorItem\n"],"mappings":"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"}
@@ -1,7 +1,7 @@
1
1
  "use client";
2
2
 
3
3
  var _StepIndicatorList, _StepIndicatorList2;
4
- import React, { useContext, useEffect, useRef, useState } from 'react';
4
+ import React, { useCallback, useContext, useEffect, useRef, useState } from 'react';
5
5
  import ReactDOM from 'react-dom';
6
6
  import Drawer from '../drawer/Drawer';
7
7
  import StepIndicatorTriggerButton from './StepIndicatorTriggerButton';
@@ -14,20 +14,20 @@ function StepIndicatorModal() {
14
14
  useEffect(() => {
15
15
  const container = document.getElementById('sidebar__' + context.sidebar_id);
16
16
  setContainer(container);
17
- }, []);
18
- function closeHandler() {
17
+ }, [context.sidebar_id]);
18
+ const closeHandler = useCallback(() => {
19
19
  if (context.hasSidebar) {
20
20
  var _triggerRef$current;
21
21
  (_triggerRef$current = triggerRef.current) === null || _triggerRef$current === void 0 ? void 0 : _triggerRef$current.focus();
22
22
  }
23
23
  context.closeHandler();
24
- }
25
- function renderPortal() {
24
+ }, [context]);
25
+ const renderPortal = useCallback(() => {
26
26
  if (!container) {
27
27
  return null;
28
28
  }
29
29
  return ReactDOM.createPortal(_StepIndicatorList || (_StepIndicatorList = React.createElement(StepIndicatorList, null)), container);
30
- }
30
+ }, [container]);
31
31
  if (context.sidebarIsVisible) {
32
32
  return renderPortal();
33
33
  }
@@ -1 +1 @@
1
- {"version":3,"file":"StepIndicatorModal.js","names":["React","useContext","useEffect","useRef","useState","ReactDOM","Drawer","StepIndicatorTriggerButton","StepIndicatorList","StepIndicatorContext","StepIndicatorModal","context","container","setContainer","triggerRef","document","getElementById","sidebar_id","closeHandler","hasSidebar","_triggerRef$current","current","focus","renderPortal","createPortal","_StepIndicatorList","createElement","sidebarIsVisible","Fragment","on_click","openHandler","inner_ref","id","title","overview_title","omitTriggerButton","openState","onOpen","onClose","Body","styleType","className","stepsLabelExtended","_StepIndicatorList2"],"sources":["../../../../src/components/step-indicator/StepIndicatorModal.tsx"],"sourcesContent":["/**\n * Web StepIndicator Component\n *\n */\n\nimport React, { useContext, useEffect, useRef, useState } from 'react'\nimport ReactDOM from 'react-dom'\nimport Drawer from '../drawer/Drawer'\nimport StepIndicatorTriggerButton from './StepIndicatorTriggerButton'\nimport StepIndicatorList from './StepIndicatorList'\nimport StepIndicatorContext from './StepIndicatorContext'\n\nfunction StepIndicatorModal() {\n const context = useContext(StepIndicatorContext)\n\n const [container, setContainer] = useState(null)\n\n const triggerRef = useRef(null)\n\n useEffect(() => {\n const container = document.getElementById(\n 'sidebar__' + context.sidebar_id\n )\n\n setContainer(container)\n }, [])\n\n function closeHandler() {\n if (context.hasSidebar) {\n triggerRef.current?.focus()\n }\n context.closeHandler()\n }\n\n function renderPortal() {\n if (!container) {\n return null\n }\n\n return ReactDOM.createPortal(<StepIndicatorList />, container)\n }\n\n if (context.sidebarIsVisible) {\n return renderPortal()\n }\n\n return (\n <>\n <StepIndicatorTriggerButton\n on_click={context.openHandler}\n inner_ref={triggerRef}\n />\n <Drawer\n id={context.sidebar_id}\n title={context.overview_title}\n omitTriggerButton\n openState={context.openState}\n onOpen={context.openHandler}\n onClose={closeHandler}\n >\n <Drawer.Body styleType=\"white\">\n <div className=\"dnb-step-indicator-wrapper\">\n <p className=\"dnb-p dnb-step-indicator__label\">\n {context.stepsLabelExtended}\n </p>\n <StepIndicatorList />\n </div>\n </Drawer.Body>\n </Drawer>\n </>\n )\n}\n\nexport default StepIndicatorModal\n"],"mappings":";;;AAKA,OAAOA,KAAK,IAAIC,UAAU,EAAEC,SAAS,EAAEC,MAAM,EAAEC,QAAQ,QAAQ,OAAO;AACtE,OAAOC,QAAQ,MAAM,WAAW;AAChC,OAAOC,MAAM,MAAM,kBAAkB;AACrC,OAAOC,0BAA0B,MAAM,8BAA8B;AACrE,OAAOC,iBAAiB,MAAM,qBAAqB;AACnD,OAAOC,oBAAoB,MAAM,wBAAwB;AAEzD,SAASC,kBAAkBA,CAAA,EAAG;EAC5B,MAAMC,OAAO,GAAGV,UAAU,CAACQ,oBAAoB,CAAC;EAEhD,MAAM,CAACG,SAAS,EAAEC,YAAY,CAAC,GAAGT,QAAQ,CAAC,IAAI,CAAC;EAEhD,MAAMU,UAAU,GAAGX,MAAM,CAAC,IAAI,CAAC;EAE/BD,SAAS,CAAC,MAAM;IACd,MAAMU,SAAS,GAAGG,QAAQ,CAACC,cAAc,CACvC,WAAW,GAAGL,OAAO,CAACM,UACxB,CAAC;IAEDJ,YAAY,CAACD,SAAS,CAAC;EACzB,CAAC,EAAE,EAAE,CAAC;EAEN,SAASM,YAAYA,CAAA,EAAG;IACtB,IAAIP,OAAO,CAACQ,UAAU,EAAE;MAAA,IAAAC,mBAAA;MACtB,CAAAA,mBAAA,GAAAN,UAAU,CAACO,OAAO,cAAAD,mBAAA,uBAAlBA,mBAAA,CAAoBE,KAAK,CAAC,CAAC;IAC7B;IACAX,OAAO,CAACO,YAAY,CAAC,CAAC;EACxB;EAEA,SAASK,YAAYA,CAAA,EAAG;IACtB,IAAI,CAACX,SAAS,EAAE;MACd,OAAO,IAAI;IACb;IAEA,OAAOP,QAAQ,CAACmB,YAAY,CAAAC,kBAAA,KAAAA,kBAAA,GAACzB,KAAA,CAAA0B,aAAA,CAAClB,iBAAiB,MAAE,CAAC,GAAEI,SAAS,CAAC;EAChE;EAEA,IAAID,OAAO,CAACgB,gBAAgB,EAAE;IAC5B,OAAOJ,YAAY,CAAC,CAAC;EACvB;EAEA,OACEvB,KAAA,CAAA0B,aAAA,CAAA1B,KAAA,CAAA4B,QAAA,QACE5B,KAAA,CAAA0B,aAAA,CAACnB,0BAA0B;IACzBsB,QAAQ,EAAElB,OAAO,CAACmB,WAAY;IAC9BC,SAAS,EAAEjB;EAAW,CACvB,CAAC,EACFd,KAAA,CAAA0B,aAAA,CAACpB,MAAM;IACL0B,EAAE,EAAErB,OAAO,CAACM,UAAW;IACvBgB,KAAK,EAAEtB,OAAO,CAACuB,cAAe;IAC9BC,iBAAiB;IACjBC,SAAS,EAAEzB,OAAO,CAACyB,SAAU;IAC7BC,MAAM,EAAE1B,OAAO,CAACmB,WAAY;IAC5BQ,OAAO,EAAEpB;EAAa,GAEtBlB,KAAA,CAAA0B,aAAA,CAACpB,MAAM,CAACiC,IAAI;IAACC,SAAS,EAAC;EAAO,GAC5BxC,KAAA,CAAA0B,aAAA;IAAKe,SAAS,EAAC;EAA4B,GACzCzC,KAAA,CAAA0B,aAAA;IAAGe,SAAS,EAAC;EAAiC,GAC3C9B,OAAO,CAAC+B,kBACR,CAAC,EAAAC,mBAAA,KAAAA,mBAAA,GACJ3C,KAAA,CAAA0B,aAAA,CAAClB,iBAAiB,MAAE,CAAC,CAClB,CACM,CACP,CACR,CAAC;AAEP;AAEA,eAAeE,kBAAkB"}
1
+ {"version":3,"file":"StepIndicatorModal.js","names":["React","useCallback","useContext","useEffect","useRef","useState","ReactDOM","Drawer","StepIndicatorTriggerButton","StepIndicatorList","StepIndicatorContext","StepIndicatorModal","context","container","setContainer","triggerRef","document","getElementById","sidebar_id","closeHandler","hasSidebar","_triggerRef$current","current","focus","renderPortal","createPortal","_StepIndicatorList","createElement","sidebarIsVisible","Fragment","on_click","openHandler","inner_ref","id","title","overview_title","omitTriggerButton","openState","onOpen","onClose","Body","styleType","className","stepsLabelExtended","_StepIndicatorList2"],"sources":["../../../../src/components/step-indicator/StepIndicatorModal.tsx"],"sourcesContent":["/**\n * Web StepIndicator Component\n *\n */\n\nimport React, {\n useCallback,\n useContext,\n useEffect,\n useRef,\n useState,\n} from 'react'\nimport ReactDOM from 'react-dom'\nimport Drawer from '../drawer/Drawer'\nimport StepIndicatorTriggerButton from './StepIndicatorTriggerButton'\nimport StepIndicatorList from './StepIndicatorList'\nimport StepIndicatorContext from './StepIndicatorContext'\n\nfunction StepIndicatorModal() {\n const context = useContext(StepIndicatorContext)\n\n const [container, setContainer] = useState(null)\n\n const triggerRef = useRef(null)\n\n useEffect(() => {\n const container = document.getElementById(\n 'sidebar__' + context.sidebar_id\n )\n\n setContainer(container)\n }, [context.sidebar_id])\n\n const closeHandler = useCallback(() => {\n if (context.hasSidebar) {\n triggerRef.current?.focus()\n }\n context.closeHandler()\n }, [context])\n\n const renderPortal = useCallback(() => {\n if (!container) {\n return null\n }\n\n return ReactDOM.createPortal(<StepIndicatorList />, container)\n }, [container])\n\n if (context.sidebarIsVisible) {\n return renderPortal()\n }\n\n return (\n <>\n <StepIndicatorTriggerButton\n on_click={context.openHandler}\n inner_ref={triggerRef}\n />\n <Drawer\n id={context.sidebar_id}\n title={context.overview_title}\n omitTriggerButton\n openState={context.openState}\n onOpen={context.openHandler}\n onClose={closeHandler}\n >\n <Drawer.Body styleType=\"white\">\n <div className=\"dnb-step-indicator-wrapper\">\n <p className=\"dnb-p dnb-step-indicator__label\">\n {context.stepsLabelExtended}\n </p>\n <StepIndicatorList />\n </div>\n </Drawer.Body>\n </Drawer>\n </>\n )\n}\n\nexport default StepIndicatorModal\n"],"mappings":";;;AAKA,OAAOA,KAAK,IACVC,WAAW,EACXC,UAAU,EACVC,SAAS,EACTC,MAAM,EACNC,QAAQ,QACH,OAAO;AACd,OAAOC,QAAQ,MAAM,WAAW;AAChC,OAAOC,MAAM,MAAM,kBAAkB;AACrC,OAAOC,0BAA0B,MAAM,8BAA8B;AACrE,OAAOC,iBAAiB,MAAM,qBAAqB;AACnD,OAAOC,oBAAoB,MAAM,wBAAwB;AAEzD,SAASC,kBAAkBA,CAAA,EAAG;EAC5B,MAAMC,OAAO,GAAGV,UAAU,CAACQ,oBAAoB,CAAC;EAEhD,MAAM,CAACG,SAAS,EAAEC,YAAY,CAAC,GAAGT,QAAQ,CAAC,IAAI,CAAC;EAEhD,MAAMU,UAAU,GAAGX,MAAM,CAAC,IAAI,CAAC;EAE/BD,SAAS,CAAC,MAAM;IACd,MAAMU,SAAS,GAAGG,QAAQ,CAACC,cAAc,CACvC,WAAW,GAAGL,OAAO,CAACM,UACxB,CAAC;IAEDJ,YAAY,CAACD,SAAS,CAAC;EACzB,CAAC,EAAE,CAACD,OAAO,CAACM,UAAU,CAAC,CAAC;EAExB,MAAMC,YAAY,GAAGlB,WAAW,CAAC,MAAM;IACrC,IAAIW,OAAO,CAACQ,UAAU,EAAE;MAAA,IAAAC,mBAAA;MACtB,CAAAA,mBAAA,GAAAN,UAAU,CAACO,OAAO,cAAAD,mBAAA,uBAAlBA,mBAAA,CAAoBE,KAAK,CAAC,CAAC;IAC7B;IACAX,OAAO,CAACO,YAAY,CAAC,CAAC;EACxB,CAAC,EAAE,CAACP,OAAO,CAAC,CAAC;EAEb,MAAMY,YAAY,GAAGvB,WAAW,CAAC,MAAM;IACrC,IAAI,CAACY,SAAS,EAAE;MACd,OAAO,IAAI;IACb;IAEA,OAAOP,QAAQ,CAACmB,YAAY,CAAAC,kBAAA,KAAAA,kBAAA,GAAC1B,KAAA,CAAA2B,aAAA,CAAClB,iBAAiB,MAAE,CAAC,GAAEI,SAAS,CAAC;EAChE,CAAC,EAAE,CAACA,SAAS,CAAC,CAAC;EAEf,IAAID,OAAO,CAACgB,gBAAgB,EAAE;IAC5B,OAAOJ,YAAY,CAAC,CAAC;EACvB;EAEA,OACExB,KAAA,CAAA2B,aAAA,CAAA3B,KAAA,CAAA6B,QAAA,QACE7B,KAAA,CAAA2B,aAAA,CAACnB,0BAA0B;IACzBsB,QAAQ,EAAElB,OAAO,CAACmB,WAAY;IAC9BC,SAAS,EAAEjB;EAAW,CACvB,CAAC,EACFf,KAAA,CAAA2B,aAAA,CAACpB,MAAM;IACL0B,EAAE,EAAErB,OAAO,CAACM,UAAW;IACvBgB,KAAK,EAAEtB,OAAO,CAACuB,cAAe;IAC9BC,iBAAiB;IACjBC,SAAS,EAAEzB,OAAO,CAACyB,SAAU;IAC7BC,MAAM,EAAE1B,OAAO,CAACmB,WAAY;IAC5BQ,OAAO,EAAEpB;EAAa,GAEtBnB,KAAA,CAAA2B,aAAA,CAACpB,MAAM,CAACiC,IAAI;IAACC,SAAS,EAAC;EAAO,GAC5BzC,KAAA,CAAA2B,aAAA;IAAKe,SAAS,EAAC;EAA4B,GACzC1C,KAAA,CAAA2B,aAAA;IAAGe,SAAS,EAAC;EAAiC,GAC3C9B,OAAO,CAAC+B,kBACR,CAAC,EAAAC,mBAAA,KAAAA,mBAAA,GACJ5C,KAAA,CAAA2B,aAAA,CAAClB,iBAAiB,MAAE,CAAC,CAClB,CACM,CACP,CACR,CAAC;AAEP;AAEA,eAAeE,kBAAkB"}
@@ -7,7 +7,7 @@ var _StepIndicatorList;
7
7
  const _excluded = ["current_step", "data"];
8
8
  function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }
9
9
  function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys(Object(source), !0).forEach(function (key) { _defineProperty(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; }
10
- import React, { useContext, useEffect, useRef, useState } from 'react';
10
+ import React, { useCallback, useContext, useEffect, useMemo, useRef, useState } from 'react';
11
11
  import classnames from 'classnames';
12
12
  import { extendPropsWithContext } from '../../shared/component-helper';
13
13
  import Context from '../../shared/Context';
@@ -21,10 +21,12 @@ function StepIndicatorSidebar(_ref) {
21
21
  data = stepIndicatorDefaultProps.data
22
22
  } = _ref,
23
23
  restOfProps = _objectWithoutProperties(_ref, _excluded);
24
- const props = _objectSpread({
25
- current_step,
26
- data
27
- }, restOfProps);
24
+ const props = useMemo(() => {
25
+ return _objectSpread({
26
+ current_step,
27
+ data
28
+ }, restOfProps);
29
+ }, [current_step, data, restOfProps]);
28
30
  const context = useContext(Context);
29
31
  const [showInitialData, setShowInitialData] = useState(true);
30
32
  const hasSkeletonData = useRef(null);
@@ -32,8 +34,8 @@ function StepIndicatorSidebar(_ref) {
32
34
  if (!props.showInitialData) {
33
35
  setShowInitialData(false);
34
36
  }
35
- }, []);
36
- function getContextAndProps() {
37
+ }, [props.showInitialData]);
38
+ const getContextAndProps = useCallback(() => {
37
39
  var _providerProps$data;
38
40
  const providerProps = extendPropsWithContext(props, stepIndicatorDefaultProps, {
39
41
  skeleton: context === null || context === void 0 ? void 0 : context.skeleton
@@ -45,7 +47,7 @@ function StepIndicatorSidebar(_ref) {
45
47
  hasSkeletonData.current = true;
46
48
  }
47
49
  return providerProps;
48
- }
50
+ }, [context, props]);
49
51
  const providerProps = showInitialData ? getContextAndProps() : null;
50
52
  return React.createElement("div", {
51
53
  id: 'sidebar__' + props.sidebar_id,
@@ -1 +1 @@
1
- {"version":3,"file":"StepIndicatorSidebar.js","names":["React","useContext","useEffect","useRef","useState","classnames","extendPropsWithContext","Context","StepIndicatorList","stepIndicatorDefaultProps","StepIndicatorProvider","createSpacingClasses","StepIndicatorSidebar","_ref","current_step","data","restOfProps","_objectWithoutProperties","_excluded","props","_objectSpread","context","showInitialData","setShowInitialData","hasSkeletonData","getContextAndProps","_providerProps$data","providerProps","skeleton","getTranslation","StepIndicator","length","text","slice","current","createElement","id","sidebar_id","className","_extends","isSidebar","_StepIndicatorList","_supportsSpacingProps"],"sources":["../../../../src/components/step-indicator/StepIndicatorSidebar.tsx"],"sourcesContent":["/**\n * Web StepIndicator Component\n *\n */\n\nimport React, { useContext, useEffect, useRef, useState } from 'react'\n\nimport classnames from 'classnames'\nimport { extendPropsWithContext } from '../../shared/component-helper'\nimport Context from '../../shared/Context'\nimport StepIndicatorList from './StepIndicatorList'\nimport { stepIndicatorDefaultProps } from './StepIndicatorProps'\nimport { StepIndicatorProvider } from './StepIndicatorContext'\nimport { createSpacingClasses } from '../space/SpacingHelper'\nimport { SpacingProps } from '../../shared/types'\nimport {\n StepIndicatorData,\n StepIndicatorMode,\n StepIndicatorProps,\n} from '../StepIndicator'\n\nexport type StepIndicatorSidebarProps = SpacingProps &\n Pick<StepIndicatorProps, 'current_step' | 'skeleton'> &\n Omit<React.HTMLProps<HTMLAnchorElement>, 'ref' | 'data'> & {\n /**\n * Defines the data/steps showing up in a JavaScript Array or JSON format like `[{title,is_current}]`. See parameters and the example above.\n */\n data?: StepIndicatorData\n /**\n * Defines how the StepIndicator should work. Use `static` for non-interactive steps. Use `strict` for a chronological step order, also, the user can navigate between visited steps. Use `loose` if the user should be able to navigate freely.\n */\n mode?: StepIndicatorMode\n /**\n * Stuff\n */\n showInitialData?: boolean\n /**\n * <em>(required)</em> a unique string-based ID in order to bind together the main component and the sidebar (`<StepIndicator.Sidebar />`). Both have to get the same ID.\n */\n sidebar_id: string\n }\n\nfunction StepIndicatorSidebar({\n current_step = stepIndicatorDefaultProps.current_step,\n data = stepIndicatorDefaultProps.data,\n ...restOfProps\n}: StepIndicatorSidebarProps) {\n const props = { current_step, data, ...restOfProps }\n\n const context = useContext(Context)\n\n const [showInitialData, setShowInitialData] = useState<boolean>(true)\n\n const hasSkeletonData = useRef<boolean>(null)\n\n useEffect(() => {\n if (!props.showInitialData) {\n setShowInitialData(false)\n }\n }, [])\n\n function getContextAndProps() {\n const providerProps = extendPropsWithContext(\n props,\n stepIndicatorDefaultProps,\n { skeleton: context?.skeleton },\n context.getTranslation(context).StepIndicator,\n context?.StepIndicator\n )\n\n if (!(providerProps.data?.length > 0)) {\n const text = 'Skeleton text'\n providerProps.data = [text.slice(10), text, text, text.slice(4)]\n providerProps.skeleton = true\n hasSkeletonData.current = true\n }\n\n return providerProps\n }\n\n const providerProps = showInitialData ? getContextAndProps() : null\n\n return (\n <div\n id={'sidebar__' + props.sidebar_id}\n className={classnames(\n 'dnb-step-indicator-wrapper',\n 'dnb-step-indicator__sidebar',\n hasSkeletonData.current &&\n providerProps?.skeleton &&\n 'dnb-step-indicator__sidebar--ssr-skeleton',\n createSpacingClasses(props)\n )}\n >\n {providerProps && (\n <StepIndicatorProvider\n isSidebar\n sidebar_id={props.sidebar_id}\n {...providerProps}\n >\n <StepIndicatorList />\n </StepIndicatorProvider>\n )}\n </div>\n )\n}\n\nStepIndicatorSidebar._supportsSpacingProps = true\n\nexport default StepIndicatorSidebar\n"],"mappings":";;;;;;;;;AAKA,OAAOA,KAAK,IAAIC,UAAU,EAAEC,SAAS,EAAEC,MAAM,EAAEC,QAAQ,QAAQ,OAAO;AAEtE,OAAOC,UAAU,MAAM,YAAY;AACnC,SAASC,sBAAsB,QAAQ,+BAA+B;AACtE,OAAOC,OAAO,MAAM,sBAAsB;AAC1C,OAAOC,iBAAiB,MAAM,qBAAqB;AACnD,SAASC,yBAAyB,QAAQ,sBAAsB;AAChE,SAASC,qBAAqB,QAAQ,wBAAwB;AAC9D,SAASC,oBAAoB,QAAQ,wBAAwB;AA6B7D,SAASC,oBAAoBA,CAAAC,IAAA,EAIC;EAAA,IAJA;MAC5BC,YAAY,GAAGL,yBAAyB,CAACK,YAAY;MACrDC,IAAI,GAAGN,yBAAyB,CAACM;IAER,CAAC,GAAAF,IAAA;IADvBG,WAAW,GAAAC,wBAAA,CAAAJ,IAAA,EAAAK,SAAA;EAEd,MAAMC,KAAK,GAAAC,aAAA;IAAKN,YAAY;IAAEC;EAAI,GAAKC,WAAW,CAAE;EAEpD,MAAMK,OAAO,GAAGpB,UAAU,CAACM,OAAO,CAAC;EAEnC,MAAM,CAACe,eAAe,EAAEC,kBAAkB,CAAC,GAAGnB,QAAQ,CAAU,IAAI,CAAC;EAErE,MAAMoB,eAAe,GAAGrB,MAAM,CAAU,IAAI,CAAC;EAE7CD,SAAS,CAAC,MAAM;IACd,IAAI,CAACiB,KAAK,CAACG,eAAe,EAAE;MAC1BC,kBAAkB,CAAC,KAAK,CAAC;IAC3B;EACF,CAAC,EAAE,EAAE,CAAC;EAEN,SAASE,kBAAkBA,CAAA,EAAG;IAAA,IAAAC,mBAAA;IAC5B,MAAMC,aAAa,GAAGrB,sBAAsB,CAC1Ca,KAAK,EACLV,yBAAyB,EACzB;MAAEmB,QAAQ,EAAEP,OAAO,aAAPA,OAAO,uBAAPA,OAAO,CAAEO;IAAS,CAAC,EAC/BP,OAAO,CAACQ,cAAc,CAACR,OAAO,CAAC,CAACS,aAAa,EAC7CT,OAAO,aAAPA,OAAO,uBAAPA,OAAO,CAAES,aACX,CAAC;IAED,IAAI,EAAE,EAAAJ,mBAAA,GAAAC,aAAa,CAACZ,IAAI,cAAAW,mBAAA,uBAAlBA,mBAAA,CAAoBK,MAAM,IAAG,CAAC,CAAC,EAAE;MACrC,MAAMC,IAAI,GAAG,eAAe;MAC5BL,aAAa,CAACZ,IAAI,GAAG,CAACiB,IAAI,CAACC,KAAK,CAAC,EAAE,CAAC,EAAED,IAAI,EAAEA,IAAI,EAAEA,IAAI,CAACC,KAAK,CAAC,CAAC,CAAC,CAAC;MAChEN,aAAa,CAACC,QAAQ,GAAG,IAAI;MAC7BJ,eAAe,CAACU,OAAO,GAAG,IAAI;IAChC;IAEA,OAAOP,aAAa;EACtB;EAEA,MAAMA,aAAa,GAAGL,eAAe,GAAGG,kBAAkB,CAAC,CAAC,GAAG,IAAI;EAEnE,OACEzB,KAAA,CAAAmC,aAAA;IACEC,EAAE,EAAE,WAAW,GAAGjB,KAAK,CAACkB,UAAW;IACnCC,SAAS,EAAEjC,UAAU,2DAMnBM,oBAAoB,CAACQ,KAAK,CAAC,EAH3BK,eAAe,CAACU,OAAO,KACrBP,aAAa,aAAbA,aAAa,uBAAbA,aAAa,CAAEC,QAAQ,KACvB,2CAEJ;EAAE,GAEDD,aAAa,IACZ3B,KAAA,CAAAmC,aAAA,CAACzB,qBAAqB,EAAA6B,QAAA;IACpBC,SAAS;IACTH,UAAU,EAAElB,KAAK,CAACkB;EAAW,GACzBV,aAAa,GAAAc,kBAAA,KAAAA,kBAAA,GAEjBzC,KAAA,CAAAmC,aAAA,CAAC3B,iBAAiB,MAAE,CAAC,CACA,CAEtB,CAAC;AAEV;AAEAI,oBAAoB,CAAC8B,qBAAqB,GAAG,IAAI;AAEjD,eAAe9B,oBAAoB"}
1
+ {"version":3,"file":"StepIndicatorSidebar.js","names":["React","useCallback","useContext","useEffect","useMemo","useRef","useState","classnames","extendPropsWithContext","Context","StepIndicatorList","stepIndicatorDefaultProps","StepIndicatorProvider","createSpacingClasses","StepIndicatorSidebar","_ref","current_step","data","restOfProps","_objectWithoutProperties","_excluded","props","_objectSpread","context","showInitialData","setShowInitialData","hasSkeletonData","getContextAndProps","_providerProps$data","providerProps","skeleton","getTranslation","StepIndicator","length","text","slice","current","createElement","id","sidebar_id","className","_extends","isSidebar","_StepIndicatorList","_supportsSpacingProps"],"sources":["../../../../src/components/step-indicator/StepIndicatorSidebar.tsx"],"sourcesContent":["/**\n * Web StepIndicator Component\n *\n */\n\nimport React, {\n useCallback,\n useContext,\n useEffect,\n useMemo,\n useRef,\n useState,\n} from 'react'\n\nimport classnames from 'classnames'\nimport { extendPropsWithContext } from '../../shared/component-helper'\nimport Context from '../../shared/Context'\nimport StepIndicatorList from './StepIndicatorList'\nimport { stepIndicatorDefaultProps } from './StepIndicatorProps'\nimport { StepIndicatorProvider } from './StepIndicatorContext'\nimport { createSpacingClasses } from '../space/SpacingHelper'\nimport { SpacingProps } from '../../shared/types'\nimport {\n StepIndicatorData,\n StepIndicatorMode,\n StepIndicatorProps,\n} from '../StepIndicator'\n\nexport type StepIndicatorSidebarProps = SpacingProps &\n Pick<StepIndicatorProps, 'current_step' | 'skeleton'> &\n Omit<React.HTMLProps<HTMLAnchorElement>, 'ref' | 'data'> & {\n /**\n * Defines the data/steps showing up in a JavaScript Array or JSON format like `[{title,is_current}]`. See parameters and the example above.\n */\n data?: StepIndicatorData\n /**\n * Defines how the StepIndicator should work. Use `static` for non-interactive steps. Use `strict` for a chronological step order, also, the user can navigate between visited steps. Use `loose` if the user should be able to navigate freely.\n */\n mode?: StepIndicatorMode\n /**\n * Stuff\n */\n showInitialData?: boolean\n /**\n * <em>(required)</em> a unique string-based ID in order to bind together the main component and the sidebar (`<StepIndicator.Sidebar />`). Both have to get the same ID.\n */\n sidebar_id: string\n }\n\nfunction StepIndicatorSidebar({\n current_step = stepIndicatorDefaultProps.current_step,\n data = stepIndicatorDefaultProps.data,\n ...restOfProps\n}: StepIndicatorSidebarProps) {\n const props = useMemo(() => {\n return { current_step, data, ...restOfProps }\n }, [current_step, data, restOfProps])\n\n const context = useContext(Context)\n\n const [showInitialData, setShowInitialData] = useState<boolean>(true)\n\n const hasSkeletonData = useRef<boolean>(null)\n\n useEffect(() => {\n if (!props.showInitialData) {\n setShowInitialData(false)\n }\n }, [props.showInitialData])\n\n const getContextAndProps = useCallback(() => {\n const providerProps = extendPropsWithContext(\n props,\n stepIndicatorDefaultProps,\n { skeleton: context?.skeleton },\n context.getTranslation(context).StepIndicator,\n context?.StepIndicator\n )\n\n if (!(providerProps.data?.length > 0)) {\n const text = 'Skeleton text'\n providerProps.data = [text.slice(10), text, text, text.slice(4)]\n providerProps.skeleton = true\n hasSkeletonData.current = true\n }\n\n return providerProps\n }, [context, props])\n\n const providerProps = showInitialData ? getContextAndProps() : null\n\n return (\n <div\n id={'sidebar__' + props.sidebar_id}\n className={classnames(\n 'dnb-step-indicator-wrapper',\n 'dnb-step-indicator__sidebar',\n hasSkeletonData.current &&\n providerProps?.skeleton &&\n 'dnb-step-indicator__sidebar--ssr-skeleton',\n createSpacingClasses(props)\n )}\n >\n {providerProps && (\n <StepIndicatorProvider\n isSidebar\n sidebar_id={props.sidebar_id}\n {...providerProps}\n >\n <StepIndicatorList />\n </StepIndicatorProvider>\n )}\n </div>\n )\n}\n\nStepIndicatorSidebar._supportsSpacingProps = true\n\nexport default StepIndicatorSidebar\n"],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"StepIndicatorTriggerButton.js","names":["classnames","React","useContext","useRef","Button","chevron_icon","validateDOMAttributes","combineDescribedBy","HeightAnimation","createSpacingClasses","FormLabel","StepIndicatorContext","StepItemWrapper","skeletonDOMAttributes","createSkeletonClass","StepIndicatorTriggerButton","props","context","buttonRef","inner_ref","item","data","activeStep","label","stepsLabel","contextWithoutData","_objectWithoutProperties","_excluded","triggerParams","_objectSpread","className","skeleton","buttonParams","sidebar_id","Object","keys","forEach","key","filterAttributes","includes","createElement","id","overview_title","for_id","_extends","wrap","stretch","variant","icon","icon_size","icon_position","number","hide_numbers","title"],"sources":["../../../../src/components/step-indicator/StepIndicatorTriggerButton.tsx"],"sourcesContent":["/**\n * Web StepIndicator Component\n *\n */\n\nimport classnames from 'classnames'\nimport React, { useContext, useRef } from 'react'\nimport Button, { ButtonProps } from '../button/Button'\nimport chevron_icon from '../../icons/chevron_right_medium'\nimport {\n validateDOMAttributes,\n combineDescribedBy,\n} from '../../shared/component-helper'\nimport HeightAnimation from '../height-animation/HeightAnimation'\nimport { createSpacingClasses } from '../space/SpacingHelper'\nimport FormLabel from '../form-label/FormLabel'\nimport StepIndicatorContext from './StepIndicatorContext'\nimport { StepItemWrapper } from './StepIndicatorItem'\nimport {\n skeletonDOMAttributes,\n createSkeletonClass,\n} from '../skeleton/SkeletonHelper'\n\nexport type StepIndicatorTriggerButtonProps = ButtonProps & {\n /**\n * <em>(required)</em> a unique string-based ID in order to bind together the main component and the sidebar (`<StepIndicator.Sidebar />`). Both have to get the same ID.\n */\n sidebar_id?: string\n className?: string\n inner_ref?: React.RefObject<HTMLElement>\n}\nfunction StepIndicatorTriggerButton(\n props: StepIndicatorTriggerButtonProps\n) {\n const context = useContext(StepIndicatorContext)\n\n const buttonRef = useRef(props?.inner_ref || null)\n\n const item = context.data[context.activeStep || 0]\n const label = context.stepsLabel\n\n const { data, ...contextWithoutData } = context\n\n const triggerParams = {\n ...contextWithoutData,\n className: classnames(\n 'dnb-step-indicator__trigger',\n createSkeletonClass('font', context.skeleton),\n createSpacingClasses(context)\n ),\n 'aria-live': 'polite',\n } as React.HTMLProps<HTMLElement>\n\n const buttonParams = {\n ...props,\n className: classnames(\n 'dnb-step-indicator__trigger__button',\n props.className\n ),\n }\n\n buttonParams['aria-describedby'] = combineDescribedBy(\n buttonParams,\n context.sidebar_id + '-overview'\n )\n\n Object.keys(triggerParams).forEach((key) => {\n if (context.filterAttributes.includes(key)) {\n delete triggerParams[key]\n }\n })\n\n skeletonDOMAttributes(triggerParams, context.skeleton)\n\n // also used for code markup simulation\n validateDOMAttributes(context, triggerParams)\n\n return (\n <div {...(triggerParams as React.HTMLProps<HTMLDivElement>)}>\n <span className=\"dnb-sr-only\" id={context.sidebar_id + '-overview'}>\n {context.overview_title}\n </span>\n <FormLabel\n aria-describedby={context.sidebar_id}\n for_id={context.sidebar_id}\n className=\"dnb-step-indicator__label\"\n >\n {label}\n </FormLabel>\n <Button\n {...buttonParams}\n id={context.sidebar_id}\n wrap\n stretch\n variant=\"secondary\"\n icon={chevron_icon}\n icon_size=\"medium\"\n icon_position=\"right\"\n inner_ref={buttonRef}\n >\n <StepItemWrapper\n number={(context.activeStep || 0) + 1}\n hide_numbers={context.hide_numbers}\n >\n <HeightAnimation>\n {(typeof item === 'string' ? item : item && item.title) || ''}\n </HeightAnimation>\n </StepItemWrapper>\n </Button>\n </div>\n )\n}\n\nexport default StepIndicatorTriggerButton\n"],"mappings":"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"}
1
+ {"version":3,"file":"StepIndicatorTriggerButton.js","names":["classnames","React","useContext","useRef","Button","chevron_icon","validateDOMAttributes","combineDescribedBy","HeightAnimation","createSpacingClasses","FormLabel","StepIndicatorContext","StepItemWrapper","skeletonDOMAttributes","createSkeletonClass","StepIndicatorTriggerButton","props","context","buttonRef","inner_ref","item","data","activeStep","label","stepsLabel","contextWithoutData","_objectWithoutProperties","_excluded","triggerParams","_objectSpread","className","skeleton","buttonParams","sidebar_id","Object","keys","forEach","key","filterAttributes","includes","createElement","id","overview_title","for_id","_extends","wrap","stretch","variant","icon","icon_size","icon_position","number","hide_numbers","title"],"sources":["../../../../src/components/step-indicator/StepIndicatorTriggerButton.tsx"],"sourcesContent":["/**\n * Web StepIndicator Component\n *\n */\n\nimport classnames from 'classnames'\nimport React, { useContext, useRef } from 'react'\nimport Button, { ButtonProps } from '../button/Button'\nimport chevron_icon from '../../icons/chevron_right_medium'\nimport {\n validateDOMAttributes,\n combineDescribedBy,\n} from '../../shared/component-helper'\nimport HeightAnimation from '../height-animation/HeightAnimation'\nimport { createSpacingClasses } from '../space/SpacingHelper'\nimport FormLabel from '../form-label/FormLabel'\nimport StepIndicatorContext from './StepIndicatorContext'\nimport { StepItemWrapper } from './StepIndicatorItem'\nimport {\n skeletonDOMAttributes,\n createSkeletonClass,\n} from '../skeleton/SkeletonHelper'\n\nexport type StepIndicatorTriggerButtonProps = ButtonProps & {\n /**\n * <em>(required)</em> a unique string-based ID in order to bind together the main component and the sidebar (`<StepIndicator.Sidebar />`). Both have to get the same ID.\n */\n sidebar_id?: string\n className?: string\n inner_ref?: React.RefObject<HTMLElement>\n}\nfunction StepIndicatorTriggerButton(\n props: StepIndicatorTriggerButtonProps\n) {\n const context = useContext(StepIndicatorContext)\n\n const buttonRef = useRef(props?.inner_ref || null)\n\n const item = context.data[context.activeStep || 0]\n const label = context.stepsLabel\n\n const {\n data, // eslint-disable-line\n ...contextWithoutData\n } = context\n\n const triggerParams = {\n ...contextWithoutData,\n className: classnames(\n 'dnb-step-indicator__trigger',\n createSkeletonClass('font', context.skeleton),\n createSpacingClasses(context)\n ),\n 'aria-live': 'polite',\n } as React.HTMLProps<HTMLElement>\n\n const buttonParams = {\n ...props,\n className: classnames(\n 'dnb-step-indicator__trigger__button',\n props.className\n ),\n }\n\n buttonParams['aria-describedby'] = combineDescribedBy(\n buttonParams,\n context.sidebar_id + '-overview'\n )\n\n Object.keys(triggerParams).forEach((key) => {\n if (context.filterAttributes.includes(key)) {\n delete triggerParams[key]\n }\n })\n\n skeletonDOMAttributes(triggerParams, context.skeleton)\n\n // also used for code markup simulation\n validateDOMAttributes(context, triggerParams)\n\n return (\n <div {...(triggerParams as React.HTMLProps<HTMLDivElement>)}>\n <span className=\"dnb-sr-only\" id={context.sidebar_id + '-overview'}>\n {context.overview_title}\n </span>\n <FormLabel\n aria-describedby={context.sidebar_id}\n for_id={context.sidebar_id}\n className=\"dnb-step-indicator__label\"\n >\n {label}\n </FormLabel>\n <Button\n {...buttonParams}\n id={context.sidebar_id}\n wrap\n stretch\n variant=\"secondary\"\n icon={chevron_icon}\n icon_size=\"medium\"\n icon_position=\"right\"\n inner_ref={buttonRef}\n >\n <StepItemWrapper\n number={(context.activeStep || 0) + 1}\n hide_numbers={context.hide_numbers}\n >\n <HeightAnimation>\n {(typeof item === 'string' ? item : item && item.title) || ''}\n </HeightAnimation>\n </StepItemWrapper>\n </Button>\n </div>\n )\n}\n\nexport default StepIndicatorTriggerButton\n"],"mappings":"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"}
@@ -25,7 +25,7 @@ export type TableProps = {
25
25
  */
26
26
  size?: TableSizes;
27
27
  /**
28
- * The style variant of the component.
28
+ * The style variant of the component. Currently not implemented.
29
29
  * Default: generic.
30
30
  */
31
31
  variant?: TableVariants;