@dnb/eufemia 10.34.1 → 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 (1043) hide show
  1. package/CHANGELOG.md +60 -0
  2. package/assets/images/sbanken/sbanken-compact-horizontal.svg +3 -0
  3. package/assets/images/sbanken/sbanken-compact.svg +3 -0
  4. package/assets/images/sbanken/sbanken.svg +3 -0
  5. package/cjs/components/accordion/Accordion.d.ts +3 -3
  6. package/cjs/components/accordion/Accordion.js.map +1 -1
  7. package/cjs/components/accordion/AccordionHeader.d.ts +5 -5
  8. package/cjs/components/accordion/AccordionHeader.js +3 -2
  9. package/cjs/components/accordion/AccordionHeader.js.map +1 -1
  10. package/cjs/components/anchor/Anchor.d.ts +20 -0
  11. package/cjs/components/anchor/Anchor.js +13 -4
  12. package/cjs/components/anchor/Anchor.js.map +1 -1
  13. package/cjs/components/anchor/AnchorDocs.d.ts +3 -0
  14. package/cjs/components/anchor/AnchorDocs.js +82 -0
  15. package/cjs/components/anchor/AnchorDocs.js.map +1 -0
  16. package/cjs/components/autocomplete/Autocomplete.js +16 -2
  17. package/cjs/components/autocomplete/Autocomplete.js.map +1 -1
  18. package/cjs/components/autocomplete/style/themes/dnb-autocomplete-theme-sbanken.css +1 -1
  19. package/cjs/components/autocomplete/style/themes/dnb-autocomplete-theme-sbanken.scss +1 -1
  20. package/cjs/components/breadcrumb/BreadcrumbItem.js.map +1 -1
  21. package/cjs/components/button/Button.js.map +1 -1
  22. package/cjs/components/dropdown/Dropdown.js.map +1 -1
  23. package/cjs/components/form-row/FormRow.js.map +1 -1
  24. package/cjs/components/form-set/FormSet.js.map +1 -1
  25. package/cjs/components/form-status/FormStatus.js.map +1 -1
  26. package/cjs/components/global-status/GlobalStatus.js.map +1 -1
  27. package/cjs/components/global-status/GlobalStatusController.js.map +1 -1
  28. package/cjs/components/global-status/GlobalStatusProvider.js.map +1 -1
  29. package/cjs/components/height-animation/HeightAnimationInstance.d.ts +3 -3
  30. package/cjs/components/height-animation/HeightAnimationInstance.js.map +1 -1
  31. package/cjs/components/height-animation/useHeightAnimation.d.ts +5 -1
  32. package/cjs/components/height-animation/useHeightAnimation.js.map +1 -1
  33. package/cjs/components/help-button/HelpButton.js +3 -0
  34. package/cjs/components/help-button/HelpButton.js.map +1 -1
  35. package/cjs/components/help-button/style/dnb-help-button.css +4 -1
  36. package/cjs/components/help-button/style/dnb-help-button.min.css +1 -0
  37. package/cjs/components/help-button/style/dnb-help-button.scss +6 -0
  38. package/cjs/components/icon/Icon.d.ts +493 -61
  39. package/cjs/components/icon/Icon.js +97 -134
  40. package/cjs/components/icon/Icon.js.map +1 -1
  41. package/cjs/components/icon/IconHelpers.d.ts +2 -1
  42. package/cjs/components/icon/IconHelpers.js +1 -1
  43. package/cjs/components/icon/IconHelpers.js.map +1 -1
  44. package/cjs/components/icon/IconPrimary.d.ts +2 -2
  45. package/cjs/components/icon/IconPrimary.js.map +1 -1
  46. package/cjs/components/icon-primary/IconPrimary.d.ts +8 -11
  47. package/cjs/components/icon-primary/IconPrimary.js +37 -38
  48. package/cjs/components/icon-primary/IconPrimary.js.map +1 -1
  49. package/cjs/components/input/Input.js.map +1 -1
  50. package/cjs/components/input-masked/InputMasked.js.map +1 -1
  51. package/cjs/components/logo/Logo.d.ts +47 -43
  52. package/cjs/components/logo/Logo.js +77 -221
  53. package/cjs/components/logo/Logo.js.map +1 -1
  54. package/cjs/components/logo/LogoDocs.d.ts +2 -0
  55. package/cjs/components/logo/LogoDocs.js +50 -0
  56. package/cjs/components/logo/LogoDocs.js.map +1 -0
  57. package/cjs/components/logo/LogoSvg.d.ts +7 -0
  58. package/cjs/components/logo/LogoSvg.js +81 -0
  59. package/cjs/components/logo/LogoSvg.js.map +1 -0
  60. package/cjs/components/modal/Modal.d.ts +2 -0
  61. package/cjs/components/modal/Modal.js +25 -10
  62. package/cjs/components/modal/Modal.js.map +1 -1
  63. package/cjs/components/number-format/NumberFormat.d.ts +4 -0
  64. package/cjs/components/number-format/NumberFormat.js +5 -2
  65. package/cjs/components/number-format/NumberFormat.js.map +1 -1
  66. package/cjs/components/number-format/style/dnb-number-format.css +3 -0
  67. package/cjs/components/number-format/style/dnb-number-format.min.css +1 -1
  68. package/cjs/components/number-format/style/dnb-number-format.scss +4 -0
  69. package/cjs/components/pagination/Pagination.js.map +1 -1
  70. package/cjs/components/pagination/PaginationHelpers.js.map +1 -1
  71. package/cjs/components/pagination/PaginationInfinity.js.map +1 -1
  72. package/cjs/components/pagination/PaginationProvider.js.map +1 -1
  73. package/cjs/components/progress-indicator/ProgressIndicatorDocs.js +1 -1
  74. package/cjs/components/progress-indicator/ProgressIndicatorDocs.js.map +1 -1
  75. package/cjs/components/progress-indicator/types.d.ts +1 -1
  76. package/cjs/components/progress-indicator/types.js.map +1 -1
  77. package/cjs/components/radio/Radio.js.map +1 -1
  78. package/cjs/components/radio/RadioGroup.js.map +1 -1
  79. package/cjs/components/skeleton/Skeleton.js.map +1 -1
  80. package/cjs/components/step-indicator/StepIndicatorContext.js +66 -59
  81. package/cjs/components/step-indicator/StepIndicatorContext.js.map +1 -1
  82. package/cjs/components/step-indicator/StepIndicatorItem.js +15 -23
  83. package/cjs/components/step-indicator/StepIndicatorItem.js.map +1 -1
  84. package/cjs/components/step-indicator/StepIndicatorModal.js +5 -5
  85. package/cjs/components/step-indicator/StepIndicatorModal.js.map +1 -1
  86. package/cjs/components/step-indicator/StepIndicatorSidebar.js +9 -7
  87. package/cjs/components/step-indicator/StepIndicatorSidebar.js.map +1 -1
  88. package/cjs/components/step-indicator/StepIndicatorTriggerButton.js.map +1 -1
  89. package/cjs/components/switch/Switch.js.map +1 -1
  90. package/cjs/components/table/Table.d.ts +7 -1
  91. package/cjs/components/table/Table.js +15 -3
  92. package/cjs/components/table/Table.js.map +1 -1
  93. package/cjs/components/table/TableContext.d.ts +12 -2
  94. package/cjs/components/table/TableContext.js +1 -3
  95. package/cjs/components/table/TableContext.js.map +1 -1
  96. package/cjs/components/table/TableDocs.d.ts +7 -0
  97. package/cjs/components/table/TableDocs.js +202 -0
  98. package/cjs/components/table/TableDocs.js.map +1 -0
  99. package/cjs/components/table/TableTd.d.ts +3 -3
  100. package/cjs/components/table/TableTd.js +2 -2
  101. package/cjs/components/table/TableTd.js.map +1 -1
  102. package/cjs/components/table/TableTr.d.ts +9 -5
  103. package/cjs/components/table/TableTr.js +27 -28
  104. package/cjs/components/table/TableTr.js.map +1 -1
  105. package/cjs/components/table/table-accordion/TableAccordionContent.d.ts +15 -0
  106. package/cjs/components/table/{TableAccordionTd.js → table-accordion/TableAccordionContent.js} +52 -17
  107. package/cjs/components/table/table-accordion/TableAccordionContent.js.map +1 -0
  108. package/cjs/components/table/table-accordion/TableAccordionContext.d.ts +16 -0
  109. package/cjs/components/table/table-accordion/TableAccordionContext.js +11 -0
  110. package/cjs/components/table/table-accordion/TableAccordionContext.js.map +1 -0
  111. package/cjs/components/table/table-accordion/TableAccordionHead.d.ts +8 -0
  112. package/cjs/components/table/{TableAccordion.js → table-accordion/TableAccordionHead.js} +47 -37
  113. package/cjs/components/table/table-accordion/TableAccordionHead.js.map +1 -0
  114. package/{es/components/table → cjs/components/table/table-accordion}/useTableAnimationHandler.d.ts +7 -3
  115. package/cjs/components/table/{useTableAnimationHandler.js → table-accordion/useTableAnimationHandler.js} +4 -4
  116. package/cjs/components/table/table-accordion/useTableAnimationHandler.js.map +1 -0
  117. package/cjs/components/tabs/Tabs.d.ts +0 -3
  118. package/cjs/components/tabs/Tabs.js +1 -5
  119. package/cjs/components/tabs/Tabs.js.map +1 -1
  120. package/cjs/components/tabs/TabsDocs.d.ts +1 -0
  121. package/cjs/components/tabs/TabsDocs.js +32 -4
  122. package/cjs/components/tabs/TabsDocs.js.map +1 -1
  123. package/cjs/components/textarea/Textarea.js.map +1 -1
  124. package/cjs/components/toggle-button/ToggleButton.js.map +1 -1
  125. package/cjs/components/toggle-button/ToggleButtonGroup.js +2 -2
  126. package/cjs/components/toggle-button/ToggleButtonGroup.js.map +1 -1
  127. package/cjs/components/toggle-button/style/dnb-toggle-button.css +15 -6
  128. package/cjs/components/toggle-button/style/dnb-toggle-button.min.css +1 -1
  129. package/cjs/components/toggle-button/style/dnb-toggle-button.scss +16 -9
  130. package/cjs/extensions/forms/DataContext/Context.d.ts +2 -0
  131. package/cjs/extensions/forms/DataContext/Context.js +1 -0
  132. package/cjs/extensions/forms/DataContext/Context.js.map +1 -1
  133. package/cjs/extensions/forms/DataContext/FieldBoundary/FieldBoundaryContext.d.ts +17 -1
  134. package/cjs/extensions/forms/DataContext/FieldBoundary/FieldBoundaryContext.js.map +1 -1
  135. package/cjs/extensions/forms/DataContext/FieldBoundary/FieldBoundaryProvider.js +5 -3
  136. package/cjs/extensions/forms/DataContext/FieldBoundary/FieldBoundaryProvider.js.map +1 -1
  137. package/cjs/extensions/forms/DataContext/Provider/Provider.js +51 -5
  138. package/cjs/extensions/forms/DataContext/Provider/Provider.js.map +1 -1
  139. package/cjs/extensions/forms/Field/ArraySelection/ArraySelection.d.ts +2 -2
  140. package/cjs/extensions/forms/Field/ArraySelection/ArraySelection.js +7 -1
  141. package/cjs/extensions/forms/Field/ArraySelection/ArraySelection.js.map +1 -1
  142. package/cjs/extensions/forms/Field/Option/Option.d.ts +2 -2
  143. package/cjs/extensions/forms/Field/Option/Option.js.map +1 -1
  144. package/cjs/extensions/forms/Field/PhoneNumber/PhoneNumber.js +6 -6
  145. package/cjs/extensions/forms/Field/PhoneNumber/PhoneNumber.js.map +1 -1
  146. package/cjs/extensions/forms/Field/Selection/Selection.js +7 -2
  147. package/cjs/extensions/forms/Field/Selection/Selection.js.map +1 -1
  148. package/cjs/extensions/forms/Field/Toggle/Toggle.js +7 -3
  149. package/cjs/extensions/forms/Field/Toggle/Toggle.js.map +1 -1
  150. package/cjs/extensions/forms/Form/FieldProps/FieldProps.js +16 -36
  151. package/cjs/extensions/forms/Form/FieldProps/FieldProps.js.map +1 -1
  152. package/cjs/extensions/forms/Form/Section/EditContainer/EditContainer.d.ts +12 -0
  153. package/cjs/extensions/forms/Form/Section/EditContainer/EditContainer.js +44 -0
  154. package/cjs/extensions/forms/Form/Section/EditContainer/EditContainer.js.map +1 -0
  155. package/cjs/extensions/forms/Form/Section/EditContainer/EditContainerDocs.d.ts +3 -0
  156. package/cjs/extensions/forms/Form/Section/EditContainer/EditContainerDocs.js +27 -0
  157. package/cjs/extensions/forms/Form/Section/EditContainer/EditContainerDocs.js.map +1 -0
  158. package/cjs/extensions/forms/Form/Section/EditContainer/EditToolbarTools.d.ts +1 -0
  159. package/cjs/extensions/forms/Form/Section/EditContainer/EditToolbarTools.js +67 -0
  160. package/cjs/extensions/forms/Form/Section/EditContainer/EditToolbarTools.js.map +1 -0
  161. package/cjs/extensions/forms/Form/Section/EditContainer/index.d.ts +2 -0
  162. package/cjs/extensions/forms/Form/Section/EditContainer/index.js +27 -0
  163. package/cjs/extensions/forms/Form/Section/EditContainer/index.js.map +1 -0
  164. package/cjs/extensions/forms/Form/Section/EditContainer/useContainerDataStore.d.ts +3 -0
  165. package/cjs/extensions/forms/Form/Section/EditContainer/useContainerDataStore.js +54 -0
  166. package/cjs/extensions/forms/Form/Section/EditContainer/useContainerDataStore.js.map +1 -0
  167. package/cjs/extensions/forms/Form/Section/EditContainer/useEditContainerToolbar.d.ts +1 -0
  168. package/cjs/extensions/forms/Form/Section/EditContainer/useEditContainerToolbar.js +25 -0
  169. package/cjs/extensions/forms/Form/Section/EditContainer/useEditContainerToolbar.js.map +1 -0
  170. package/cjs/extensions/forms/Form/Section/Section.d.ts +9 -1
  171. package/cjs/extensions/forms/Form/Section/Section.js +10 -2
  172. package/cjs/extensions/forms/Form/Section/Section.js.map +1 -1
  173. package/cjs/extensions/forms/Form/Section/SectionContext.d.ts +1 -2
  174. package/cjs/extensions/forms/Form/Section/SectionContext.js.map +1 -1
  175. package/cjs/extensions/forms/Form/Section/SectionDocs.js +6 -1
  176. package/cjs/extensions/forms/Form/Section/SectionDocs.js.map +1 -1
  177. package/cjs/extensions/forms/Form/Section/ViewContainer/ViewContainer.d.ts +12 -0
  178. package/cjs/extensions/forms/Form/Section/ViewContainer/ViewContainer.js +43 -0
  179. package/cjs/extensions/forms/Form/Section/ViewContainer/ViewContainer.js.map +1 -0
  180. package/cjs/extensions/forms/Form/Section/ViewContainer/ViewContainerDocs.d.ts +3 -0
  181. package/cjs/extensions/forms/Form/Section/ViewContainer/ViewContainerDocs.js +27 -0
  182. package/cjs/extensions/forms/Form/Section/ViewContainer/ViewContainerDocs.js.map +1 -0
  183. package/cjs/extensions/forms/Form/Section/ViewContainer/ViewToolbarTools.d.ts +1 -0
  184. package/cjs/extensions/forms/Form/Section/ViewContainer/ViewToolbarTools.js +34 -0
  185. package/cjs/extensions/forms/Form/Section/ViewContainer/ViewToolbarTools.js.map +1 -0
  186. package/cjs/extensions/forms/Form/Section/ViewContainer/index.d.ts +2 -0
  187. package/cjs/extensions/forms/Form/Section/ViewContainer/index.js +27 -0
  188. package/cjs/extensions/forms/Form/Section/ViewContainer/index.js.map +1 -0
  189. package/cjs/extensions/forms/Form/Section/containers/SectionContainer.d.ts +19 -0
  190. package/cjs/extensions/forms/Form/Section/containers/SectionContainer.js +93 -0
  191. package/cjs/extensions/forms/Form/Section/containers/SectionContainer.js.map +1 -0
  192. package/cjs/extensions/forms/Form/Section/containers/SectionContainerContext.d.ts +8 -0
  193. package/cjs/extensions/forms/Form/Section/containers/SectionContainerContext.js +12 -0
  194. package/cjs/extensions/forms/Form/Section/containers/SectionContainerContext.js.map +1 -0
  195. package/cjs/extensions/forms/Form/Section/containers/SectionContainerProvider.d.ts +8 -0
  196. package/cjs/extensions/forms/Form/Section/containers/SectionContainerProvider.js +33 -0
  197. package/cjs/extensions/forms/Form/Section/containers/SectionContainerProvider.js.map +1 -0
  198. package/cjs/extensions/forms/Form/Section/containers/Toolbar.d.ts +7 -0
  199. package/cjs/extensions/forms/Form/Section/containers/Toolbar.js +35 -0
  200. package/cjs/extensions/forms/Form/Section/containers/Toolbar.js.map +1 -0
  201. package/cjs/extensions/forms/Form/Section/style/dnb-form-section.css +45 -0
  202. package/cjs/extensions/forms/Form/Section/style/dnb-form-section.min.css +1 -0
  203. package/{es/extensions/forms/Iterate/style/dnb-form-iterate.scss → cjs/extensions/forms/Form/Section/style/dnb-form-section.scss} +4 -12
  204. package/cjs/extensions/forms/Form/Visibility/Visibility.d.ts +2 -2
  205. package/cjs/extensions/forms/Form/Visibility/Visibility.js +20 -72
  206. package/cjs/extensions/forms/Form/Visibility/Visibility.js.map +1 -1
  207. package/cjs/extensions/forms/Form/Visibility/useVisibility.d.ts +5 -0
  208. package/cjs/extensions/forms/Form/Visibility/useVisibility.js +101 -0
  209. package/cjs/extensions/forms/Form/Visibility/useVisibility.js.map +1 -0
  210. package/cjs/extensions/forms/Iterate/AnimatedContainer/ElementBlock.js +8 -8
  211. package/cjs/extensions/forms/Iterate/AnimatedContainer/ElementBlock.js.map +1 -1
  212. package/cjs/extensions/forms/Iterate/Array/Array.js +1 -1
  213. package/cjs/extensions/forms/Iterate/Array/Array.js.map +1 -1
  214. package/cjs/extensions/forms/Iterate/EditContainer/EditContainer.js +1 -1
  215. package/cjs/extensions/forms/Iterate/EditContainer/EditContainer.js.map +1 -1
  216. package/cjs/extensions/forms/Iterate/EditContainer/EditToolbarTools.js +17 -8
  217. package/cjs/extensions/forms/Iterate/EditContainer/EditToolbarTools.js.map +1 -1
  218. package/cjs/extensions/forms/Iterate/RemoveButton/RemoveButton.js +1 -1
  219. package/cjs/extensions/forms/Iterate/RemoveButton/RemoveButton.js.map +1 -1
  220. package/cjs/extensions/forms/Iterate/ViewContainer/ViewContainer.js +1 -1
  221. package/cjs/extensions/forms/Iterate/ViewContainer/ViewContainer.js.map +1 -1
  222. package/cjs/extensions/forms/Iterate/ViewContainer/ViewToolbarTools.js +1 -1
  223. package/cjs/extensions/forms/Iterate/ViewContainer/ViewToolbarTools.js.map +1 -1
  224. package/cjs/extensions/forms/Iterate/style/dnb-iterate.css +6 -0
  225. package/cjs/extensions/forms/Iterate/style/dnb-iterate.min.css +1 -0
  226. package/cjs/extensions/forms/Iterate/style/dnb-iterate.scss +12 -0
  227. package/cjs/extensions/forms/Wizard/Container/WizardContainer.js +15 -9
  228. package/cjs/extensions/forms/Wizard/Container/WizardContainer.js.map +1 -1
  229. package/cjs/extensions/forms/Wizard/Context/WizardContext.d.ts +4 -0
  230. package/cjs/extensions/forms/Wizard/Context/WizardContext.js.map +1 -1
  231. package/cjs/extensions/forms/Wizard/Step/Step.d.ts +5 -0
  232. package/cjs/extensions/forms/Wizard/Step/Step.js +6 -2
  233. package/cjs/extensions/forms/Wizard/Step/Step.js.map +1 -1
  234. package/cjs/extensions/forms/Wizard/Step/StepDocs.js +5 -0
  235. package/cjs/extensions/forms/Wizard/Step/StepDocs.js.map +1 -1
  236. package/cjs/extensions/forms/Wizard/hooks/useNextRouter.js +1 -1
  237. package/cjs/extensions/forms/Wizard/hooks/useNextRouter.js.map +1 -1
  238. package/cjs/extensions/forms/Wizard/hooks/useQueryLocator.js +1 -1
  239. package/cjs/extensions/forms/Wizard/hooks/useQueryLocator.js.map +1 -1
  240. package/cjs/extensions/forms/Wizard/hooks/useReachRouter.js +1 -1
  241. package/cjs/extensions/forms/Wizard/hooks/useReachRouter.js.map +1 -1
  242. package/cjs/extensions/forms/Wizard/hooks/useReactRouter.js +1 -1
  243. package/cjs/extensions/forms/Wizard/hooks/useReactRouter.js.map +1 -1
  244. package/cjs/extensions/forms/constants/locales/en-GB.d.ts +9 -10
  245. package/cjs/extensions/forms/constants/locales/en-GB.js +10 -11
  246. package/cjs/extensions/forms/constants/locales/en-GB.js.map +1 -1
  247. package/cjs/extensions/forms/constants/locales/en-US.d.ts +9 -10
  248. package/cjs/extensions/forms/constants/locales/index.d.ts +18 -20
  249. package/cjs/extensions/forms/constants/locales/nb-NO.d.ts +9 -10
  250. package/cjs/extensions/forms/constants/locales/nb-NO.js +10 -11
  251. package/cjs/extensions/forms/constants/locales/nb-NO.js.map +1 -1
  252. package/cjs/extensions/forms/hooks/useDataValue.d.ts +4 -0
  253. package/cjs/extensions/forms/hooks/useDataValue.js +30 -5
  254. package/cjs/extensions/forms/hooks/useDataValue.js.map +1 -1
  255. package/cjs/extensions/forms/hooks/useFieldProps.js +14 -9
  256. package/cjs/extensions/forms/hooks/useFieldProps.js.map +1 -1
  257. package/cjs/extensions/forms/hooks/useTranslation.js +6 -11
  258. package/cjs/extensions/forms/hooks/useTranslation.js.map +1 -1
  259. package/cjs/extensions/forms/style/dnb-forms.css +46 -44
  260. package/cjs/extensions/forms/style/dnb-forms.min.css +1 -1
  261. package/cjs/extensions/payment-card/PaymentCard.js.map +1 -1
  262. package/cjs/fragments/drawer-list/DrawerList.js.map +1 -1
  263. package/cjs/fragments/drawer-list/DrawerListHelpers.js.map +1 -1
  264. package/cjs/fragments/drawer-list/DrawerListPortal.js.map +1 -1
  265. package/cjs/fragments/drawer-list/DrawerListProvider.js.map +1 -1
  266. package/cjs/fragments/drawer-list/style/dnb-drawer-list.scss +4 -0
  267. package/cjs/fragments/text-counter/TextCounter.js +3 -2
  268. package/cjs/fragments/text-counter/TextCounter.js.map +1 -1
  269. package/cjs/shared/Context.d.ts +13 -5
  270. package/cjs/shared/Context.js +40 -35
  271. package/cjs/shared/Context.js.map +1 -1
  272. package/cjs/shared/Eufemia.d.ts +1 -1
  273. package/cjs/shared/Eufemia.js +2 -2
  274. package/cjs/shared/Eufemia.js.map +1 -1
  275. package/cjs/shared/Provider.d.ts +1 -1
  276. package/cjs/shared/Provider.js +49 -42
  277. package/cjs/shared/Provider.js.map +1 -1
  278. package/cjs/shared/Translation.d.ts +5 -5
  279. package/cjs/shared/Translation.js +6 -11
  280. package/cjs/shared/Translation.js.map +1 -1
  281. package/cjs/shared/index.d.ts +1 -0
  282. package/cjs/shared/index.js +26 -1
  283. package/cjs/shared/index.js.map +1 -1
  284. package/cjs/shared/locales/en-GB.d.ts +0 -3
  285. package/cjs/shared/locales/en-GB.js +0 -3
  286. package/cjs/shared/locales/en-GB.js.map +1 -1
  287. package/cjs/shared/locales/en-US.d.ts +0 -3
  288. package/cjs/shared/locales/index.d.ts +0 -6
  289. package/cjs/shared/locales/nb-NO.d.ts +0 -3
  290. package/cjs/shared/locales/nb-NO.js +0 -3
  291. package/cjs/shared/locales/nb-NO.js.map +1 -1
  292. package/cjs/shared/useTranslation.d.ts +5 -4
  293. package/cjs/shared/useTranslation.js +14 -12
  294. package/cjs/shared/useTranslation.js.map +1 -1
  295. package/cjs/style/core/scopes.scss +1 -1
  296. package/cjs/style/dnb-ui-basis.css +1 -1
  297. package/cjs/style/dnb-ui-basis.min.css +1 -1
  298. package/cjs/style/dnb-ui-body.css +1 -1
  299. package/cjs/style/dnb-ui-body.min.css +1 -1
  300. package/cjs/style/dnb-ui-components.css +72 -50
  301. package/cjs/style/dnb-ui-components.min.css +3 -3
  302. package/cjs/style/dnb-ui-core.css +1 -1
  303. package/cjs/style/dnb-ui-core.min.css +1 -1
  304. package/cjs/style/dnb-ui-extensions.css +46 -44
  305. package/cjs/style/dnb-ui-extensions.min.css +1 -1
  306. package/cjs/style/dnb-ui-forms.css +46 -44
  307. package/cjs/style/dnb-ui-forms.min.css +1 -1
  308. package/cjs/style/dnb-ui-forms.scss +2 -1
  309. package/cjs/style/dnb-ui-fragments.css +4 -0
  310. package/cjs/style/dnb-ui-fragments.min.css +1 -1
  311. package/cjs/style/themes/theme-eiendom/eiendom-theme-basis.css +2 -2
  312. package/cjs/style/themes/theme-eiendom/eiendom-theme-basis.min.css +1 -1
  313. package/cjs/style/themes/theme-eiendom/eiendom-theme-components.css +118 -94
  314. package/cjs/style/themes/theme-eiendom/eiendom-theme-components.min.css +4 -4
  315. package/cjs/style/themes/theme-eiendom/eiendom-theme-extensions.css +46 -44
  316. package/cjs/style/themes/theme-eiendom/eiendom-theme-extensions.min.css +1 -1
  317. package/cjs/style/themes/theme-eiendom/eiendom-theme-forms.css +46 -44
  318. package/cjs/style/themes/theme-eiendom/eiendom-theme-forms.min.css +1 -1
  319. package/cjs/style/themes/theme-sbanken/globals.scss +3 -2
  320. package/cjs/style/themes/theme-sbanken/sbanken-theme-basis.css +2 -2
  321. package/cjs/style/themes/theme-sbanken/sbanken-theme-basis.min.css +1 -1
  322. package/cjs/style/themes/theme-sbanken/sbanken-theme-components.css +119 -95
  323. package/cjs/style/themes/theme-sbanken/sbanken-theme-components.min.css +4 -4
  324. package/cjs/style/themes/theme-sbanken/sbanken-theme-extensions.css +46 -44
  325. package/cjs/style/themes/theme-sbanken/sbanken-theme-extensions.min.css +1 -1
  326. package/cjs/style/themes/theme-sbanken/sbanken-theme-forms.css +46 -44
  327. package/cjs/style/themes/theme-sbanken/sbanken-theme-forms.min.css +1 -1
  328. package/cjs/style/themes/theme-ui/globals.scss +3 -2
  329. package/cjs/style/themes/theme-ui/ui-theme-basis.css +2 -2
  330. package/cjs/style/themes/theme-ui/ui-theme-basis.min.css +1 -1
  331. package/cjs/style/themes/theme-ui/ui-theme-components.css +118 -94
  332. package/cjs/style/themes/theme-ui/ui-theme-components.min.css +4 -4
  333. package/cjs/style/themes/theme-ui/ui-theme-extensions.css +46 -44
  334. package/cjs/style/themes/theme-ui/ui-theme-extensions.min.css +1 -1
  335. package/cjs/style/themes/theme-ui/ui-theme-forms.css +46 -44
  336. package/cjs/style/themes/theme-ui/ui-theme-forms.min.css +1 -1
  337. package/components/accordion/Accordion.d.ts +3 -3
  338. package/components/accordion/Accordion.js.map +1 -1
  339. package/components/accordion/AccordionHeader.d.ts +5 -5
  340. package/components/accordion/AccordionHeader.js +3 -2
  341. package/components/accordion/AccordionHeader.js.map +1 -1
  342. package/components/anchor/Anchor.d.ts +20 -0
  343. package/components/anchor/Anchor.js +13 -4
  344. package/components/anchor/Anchor.js.map +1 -1
  345. package/components/anchor/AnchorDocs.d.ts +3 -0
  346. package/components/anchor/AnchorDocs.js +74 -0
  347. package/components/anchor/AnchorDocs.js.map +1 -0
  348. package/components/autocomplete/Autocomplete.js +17 -3
  349. package/components/autocomplete/Autocomplete.js.map +1 -1
  350. package/components/autocomplete/style/themes/dnb-autocomplete-theme-sbanken.css +1 -1
  351. package/components/autocomplete/style/themes/dnb-autocomplete-theme-sbanken.scss +1 -1
  352. package/components/breadcrumb/BreadcrumbItem.js.map +1 -1
  353. package/components/button/Button.js.map +1 -1
  354. package/components/dropdown/Dropdown.js.map +1 -1
  355. package/components/form-row/FormRow.js.map +1 -1
  356. package/components/form-set/FormSet.js.map +1 -1
  357. package/components/form-status/FormStatus.js.map +1 -1
  358. package/components/global-status/GlobalStatus.js.map +1 -1
  359. package/components/global-status/GlobalStatusController.js.map +1 -1
  360. package/components/global-status/GlobalStatusProvider.js.map +1 -1
  361. package/components/height-animation/HeightAnimationInstance.d.ts +3 -3
  362. package/components/height-animation/HeightAnimationInstance.js.map +1 -1
  363. package/components/height-animation/useHeightAnimation.d.ts +5 -1
  364. package/components/height-animation/useHeightAnimation.js.map +1 -1
  365. package/components/help-button/HelpButton.js +3 -0
  366. package/components/help-button/HelpButton.js.map +1 -1
  367. package/components/help-button/style/dnb-help-button.css +4 -1
  368. package/components/help-button/style/dnb-help-button.min.css +1 -0
  369. package/components/help-button/style/dnb-help-button.scss +6 -0
  370. package/components/icon/Icon.d.ts +493 -61
  371. package/components/icon/Icon.js +89 -127
  372. package/components/icon/Icon.js.map +1 -1
  373. package/components/icon/IconHelpers.d.ts +2 -1
  374. package/components/icon/IconHelpers.js +1 -1
  375. package/components/icon/IconHelpers.js.map +1 -1
  376. package/components/icon/IconPrimary.d.ts +2 -2
  377. package/components/icon/IconPrimary.js.map +1 -1
  378. package/components/icon-primary/IconPrimary.d.ts +8 -11
  379. package/components/icon-primary/IconPrimary.js +25 -31
  380. package/components/icon-primary/IconPrimary.js.map +1 -1
  381. package/components/input/Input.js.map +1 -1
  382. package/components/input-masked/InputMasked.js.map +1 -1
  383. package/components/logo/Logo.d.ts +47 -43
  384. package/components/logo/Logo.js +75 -221
  385. package/components/logo/Logo.js.map +1 -1
  386. package/components/logo/LogoDocs.d.ts +2 -0
  387. package/components/logo/LogoDocs.js +43 -0
  388. package/components/logo/LogoDocs.js.map +1 -0
  389. package/components/logo/LogoSvg.d.ts +7 -0
  390. package/components/logo/LogoSvg.js +73 -0
  391. package/components/logo/LogoSvg.js.map +1 -0
  392. package/components/modal/Modal.d.ts +2 -0
  393. package/components/modal/Modal.js +25 -10
  394. package/components/modal/Modal.js.map +1 -1
  395. package/components/number-format/NumberFormat.d.ts +4 -0
  396. package/components/number-format/NumberFormat.js +5 -2
  397. package/components/number-format/NumberFormat.js.map +1 -1
  398. package/components/number-format/style/dnb-number-format.css +3 -0
  399. package/components/number-format/style/dnb-number-format.min.css +1 -1
  400. package/components/number-format/style/dnb-number-format.scss +4 -0
  401. package/components/pagination/Pagination.js.map +1 -1
  402. package/components/pagination/PaginationHelpers.js.map +1 -1
  403. package/components/pagination/PaginationInfinity.js.map +1 -1
  404. package/components/pagination/PaginationProvider.js.map +1 -1
  405. package/components/progress-indicator/ProgressIndicatorDocs.js +1 -1
  406. package/components/progress-indicator/ProgressIndicatorDocs.js.map +1 -1
  407. package/components/progress-indicator/types.d.ts +1 -1
  408. package/components/progress-indicator/types.js.map +1 -1
  409. package/components/radio/Radio.js.map +1 -1
  410. package/components/radio/RadioGroup.js.map +1 -1
  411. package/components/skeleton/Skeleton.js.map +1 -1
  412. package/components/step-indicator/StepIndicatorContext.js +67 -60
  413. package/components/step-indicator/StepIndicatorContext.js.map +1 -1
  414. package/components/step-indicator/StepIndicatorItem.js +16 -24
  415. package/components/step-indicator/StepIndicatorItem.js.map +1 -1
  416. package/components/step-indicator/StepIndicatorModal.js +6 -6
  417. package/components/step-indicator/StepIndicatorModal.js.map +1 -1
  418. package/components/step-indicator/StepIndicatorSidebar.js +10 -8
  419. package/components/step-indicator/StepIndicatorSidebar.js.map +1 -1
  420. package/components/step-indicator/StepIndicatorTriggerButton.js.map +1 -1
  421. package/components/switch/Switch.js.map +1 -1
  422. package/components/table/Table.d.ts +7 -1
  423. package/components/table/Table.js +13 -3
  424. package/components/table/Table.js.map +1 -1
  425. package/components/table/TableContext.d.ts +12 -2
  426. package/components/table/TableContext.js +0 -1
  427. package/components/table/TableContext.js.map +1 -1
  428. package/components/table/TableDocs.d.ts +7 -0
  429. package/components/table/TableDocs.js +190 -0
  430. package/components/table/TableDocs.js.map +1 -0
  431. package/components/table/TableTd.d.ts +3 -3
  432. package/components/table/TableTd.js +2 -2
  433. package/components/table/TableTd.js.map +1 -1
  434. package/components/table/TableTr.d.ts +9 -5
  435. package/components/table/TableTr.js +27 -28
  436. package/components/table/TableTr.js.map +1 -1
  437. package/components/table/table-accordion/TableAccordionContent.d.ts +15 -0
  438. package/components/table/table-accordion/TableAccordionContent.js +95 -0
  439. package/components/table/table-accordion/TableAccordionContent.js.map +1 -0
  440. package/components/table/table-accordion/TableAccordionContext.d.ts +16 -0
  441. package/components/table/table-accordion/TableAccordionContext.js +3 -0
  442. package/components/table/table-accordion/TableAccordionContext.js.map +1 -0
  443. package/components/table/table-accordion/TableAccordionHead.d.ts +8 -0
  444. package/components/table/{TableAccordion.js → table-accordion/TableAccordionHead.js} +42 -34
  445. package/components/table/table-accordion/TableAccordionHead.js.map +1 -0
  446. package/{cjs/components/table → components/table/table-accordion}/useTableAnimationHandler.d.ts +7 -3
  447. package/components/table/{useTableAnimationHandler.js → table-accordion/useTableAnimationHandler.js} +3 -3
  448. package/components/table/table-accordion/useTableAnimationHandler.js.map +1 -0
  449. package/components/tabs/Tabs.d.ts +0 -3
  450. package/components/tabs/Tabs.js +1 -5
  451. package/components/tabs/Tabs.js.map +1 -1
  452. package/components/tabs/TabsDocs.d.ts +1 -0
  453. package/components/tabs/TabsDocs.js +30 -3
  454. package/components/tabs/TabsDocs.js.map +1 -1
  455. package/components/textarea/Textarea.js.map +1 -1
  456. package/components/toggle-button/ToggleButton.js.map +1 -1
  457. package/components/toggle-button/ToggleButtonGroup.js +2 -2
  458. package/components/toggle-button/ToggleButtonGroup.js.map +1 -1
  459. package/components/toggle-button/style/dnb-toggle-button.css +15 -6
  460. package/components/toggle-button/style/dnb-toggle-button.min.css +1 -1
  461. package/components/toggle-button/style/dnb-toggle-button.scss +16 -9
  462. package/es/components/accordion/Accordion.d.ts +3 -3
  463. package/es/components/accordion/Accordion.js.map +1 -1
  464. package/es/components/accordion/AccordionHeader.d.ts +5 -5
  465. package/es/components/accordion/AccordionHeader.js +3 -2
  466. package/es/components/accordion/AccordionHeader.js.map +1 -1
  467. package/es/components/anchor/Anchor.d.ts +20 -0
  468. package/es/components/anchor/Anchor.js +13 -4
  469. package/es/components/anchor/Anchor.js.map +1 -1
  470. package/es/components/anchor/AnchorDocs.d.ts +3 -0
  471. package/es/components/anchor/AnchorDocs.js +74 -0
  472. package/es/components/anchor/AnchorDocs.js.map +1 -0
  473. package/es/components/autocomplete/Autocomplete.js +17 -3
  474. package/es/components/autocomplete/Autocomplete.js.map +1 -1
  475. package/es/components/autocomplete/style/themes/dnb-autocomplete-theme-sbanken.css +1 -1
  476. package/es/components/autocomplete/style/themes/dnb-autocomplete-theme-sbanken.scss +1 -1
  477. package/es/components/breadcrumb/BreadcrumbItem.js.map +1 -1
  478. package/es/components/button/Button.js.map +1 -1
  479. package/es/components/dropdown/Dropdown.js.map +1 -1
  480. package/es/components/form-row/FormRow.js.map +1 -1
  481. package/es/components/form-set/FormSet.js.map +1 -1
  482. package/es/components/form-status/FormStatus.js.map +1 -1
  483. package/es/components/global-status/GlobalStatus.js.map +1 -1
  484. package/es/components/global-status/GlobalStatusController.js.map +1 -1
  485. package/es/components/global-status/GlobalStatusProvider.js.map +1 -1
  486. package/es/components/height-animation/HeightAnimationInstance.d.ts +3 -3
  487. package/es/components/height-animation/HeightAnimationInstance.js.map +1 -1
  488. package/es/components/height-animation/useHeightAnimation.d.ts +5 -1
  489. package/es/components/height-animation/useHeightAnimation.js.map +1 -1
  490. package/es/components/help-button/HelpButton.js +3 -0
  491. package/es/components/help-button/HelpButton.js.map +1 -1
  492. package/es/components/help-button/style/dnb-help-button.css +4 -1
  493. package/es/components/help-button/style/dnb-help-button.min.css +1 -0
  494. package/es/components/help-button/style/dnb-help-button.scss +6 -0
  495. package/es/components/icon/Icon.d.ts +493 -61
  496. package/es/components/icon/Icon.js +82 -116
  497. package/es/components/icon/Icon.js.map +1 -1
  498. package/es/components/icon/IconHelpers.d.ts +2 -1
  499. package/es/components/icon/IconHelpers.js +1 -1
  500. package/es/components/icon/IconHelpers.js.map +1 -1
  501. package/es/components/icon/IconPrimary.d.ts +2 -2
  502. package/es/components/icon/IconPrimary.js.map +1 -1
  503. package/es/components/icon-primary/IconPrimary.d.ts +8 -11
  504. package/es/components/icon-primary/IconPrimary.js +25 -31
  505. package/es/components/icon-primary/IconPrimary.js.map +1 -1
  506. package/es/components/input/Input.js.map +1 -1
  507. package/es/components/input-masked/InputMasked.js.map +1 -1
  508. package/es/components/logo/Logo.d.ts +47 -43
  509. package/es/components/logo/Logo.js +75 -221
  510. package/es/components/logo/Logo.js.map +1 -1
  511. package/es/components/logo/LogoDocs.d.ts +2 -0
  512. package/es/components/logo/LogoDocs.js +43 -0
  513. package/es/components/logo/LogoDocs.js.map +1 -0
  514. package/es/components/logo/LogoSvg.d.ts +7 -0
  515. package/es/components/logo/LogoSvg.js +72 -0
  516. package/es/components/logo/LogoSvg.js.map +1 -0
  517. package/es/components/modal/Modal.d.ts +2 -0
  518. package/es/components/modal/Modal.js +25 -10
  519. package/es/components/modal/Modal.js.map +1 -1
  520. package/es/components/number-format/NumberFormat.d.ts +4 -0
  521. package/es/components/number-format/NumberFormat.js +5 -2
  522. package/es/components/number-format/NumberFormat.js.map +1 -1
  523. package/es/components/number-format/style/dnb-number-format.css +3 -0
  524. package/es/components/number-format/style/dnb-number-format.min.css +1 -1
  525. package/es/components/number-format/style/dnb-number-format.scss +4 -0
  526. package/es/components/pagination/Pagination.js.map +1 -1
  527. package/es/components/pagination/PaginationHelpers.js.map +1 -1
  528. package/es/components/pagination/PaginationInfinity.js.map +1 -1
  529. package/es/components/pagination/PaginationProvider.js.map +1 -1
  530. package/es/components/progress-indicator/ProgressIndicatorDocs.js +1 -1
  531. package/es/components/progress-indicator/ProgressIndicatorDocs.js.map +1 -1
  532. package/es/components/progress-indicator/types.d.ts +1 -1
  533. package/es/components/progress-indicator/types.js.map +1 -1
  534. package/es/components/radio/Radio.js.map +1 -1
  535. package/es/components/radio/RadioGroup.js.map +1 -1
  536. package/es/components/skeleton/Skeleton.js.map +1 -1
  537. package/es/components/step-indicator/StepIndicatorContext.js +67 -60
  538. package/es/components/step-indicator/StepIndicatorContext.js.map +1 -1
  539. package/es/components/step-indicator/StepIndicatorItem.js +17 -25
  540. package/es/components/step-indicator/StepIndicatorItem.js.map +1 -1
  541. package/es/components/step-indicator/StepIndicatorModal.js +6 -6
  542. package/es/components/step-indicator/StepIndicatorModal.js.map +1 -1
  543. package/es/components/step-indicator/StepIndicatorSidebar.js +10 -8
  544. package/es/components/step-indicator/StepIndicatorSidebar.js.map +1 -1
  545. package/es/components/step-indicator/StepIndicatorTriggerButton.js.map +1 -1
  546. package/es/components/switch/Switch.js.map +1 -1
  547. package/es/components/table/Table.d.ts +7 -1
  548. package/es/components/table/Table.js +13 -3
  549. package/es/components/table/Table.js.map +1 -1
  550. package/es/components/table/TableContext.d.ts +12 -2
  551. package/es/components/table/TableContext.js +0 -1
  552. package/es/components/table/TableContext.js.map +1 -1
  553. package/es/components/table/TableDocs.d.ts +7 -0
  554. package/es/components/table/TableDocs.js +190 -0
  555. package/es/components/table/TableDocs.js.map +1 -0
  556. package/es/components/table/TableTd.d.ts +3 -3
  557. package/es/components/table/TableTd.js +2 -2
  558. package/es/components/table/TableTd.js.map +1 -1
  559. package/es/components/table/TableTr.d.ts +9 -5
  560. package/es/components/table/TableTr.js +27 -28
  561. package/es/components/table/TableTr.js.map +1 -1
  562. package/es/components/table/table-accordion/TableAccordionContent.d.ts +15 -0
  563. package/es/components/table/table-accordion/TableAccordionContent.js +92 -0
  564. package/es/components/table/table-accordion/TableAccordionContent.js.map +1 -0
  565. package/es/components/table/table-accordion/TableAccordionContext.d.ts +16 -0
  566. package/es/components/table/table-accordion/TableAccordionContext.js +3 -0
  567. package/es/components/table/table-accordion/TableAccordionContext.js.map +1 -0
  568. package/es/components/table/table-accordion/TableAccordionHead.d.ts +8 -0
  569. package/es/components/table/{TableAccordion.js → table-accordion/TableAccordionHead.js} +42 -33
  570. package/es/components/table/table-accordion/TableAccordionHead.js.map +1 -0
  571. package/{components/table → es/components/table/table-accordion}/useTableAnimationHandler.d.ts +7 -3
  572. package/es/components/table/{useTableAnimationHandler.js → table-accordion/useTableAnimationHandler.js} +3 -3
  573. package/es/components/table/table-accordion/useTableAnimationHandler.js.map +1 -0
  574. package/es/components/tabs/Tabs.d.ts +0 -3
  575. package/es/components/tabs/Tabs.js +1 -5
  576. package/es/components/tabs/Tabs.js.map +1 -1
  577. package/es/components/tabs/TabsDocs.d.ts +1 -0
  578. package/es/components/tabs/TabsDocs.js +30 -3
  579. package/es/components/tabs/TabsDocs.js.map +1 -1
  580. package/es/components/textarea/Textarea.js.map +1 -1
  581. package/es/components/toggle-button/ToggleButton.js.map +1 -1
  582. package/es/components/toggle-button/ToggleButtonGroup.js +2 -2
  583. package/es/components/toggle-button/ToggleButtonGroup.js.map +1 -1
  584. package/es/components/toggle-button/style/dnb-toggle-button.css +15 -6
  585. package/es/components/toggle-button/style/dnb-toggle-button.min.css +1 -1
  586. package/es/components/toggle-button/style/dnb-toggle-button.scss +16 -9
  587. package/es/extensions/forms/DataContext/Context.d.ts +2 -0
  588. package/es/extensions/forms/DataContext/Context.js +1 -0
  589. package/es/extensions/forms/DataContext/Context.js.map +1 -1
  590. package/es/extensions/forms/DataContext/FieldBoundary/FieldBoundaryContext.d.ts +17 -1
  591. package/es/extensions/forms/DataContext/FieldBoundary/FieldBoundaryContext.js.map +1 -1
  592. package/es/extensions/forms/DataContext/FieldBoundary/FieldBoundaryProvider.js +5 -3
  593. package/es/extensions/forms/DataContext/FieldBoundary/FieldBoundaryProvider.js.map +1 -1
  594. package/es/extensions/forms/DataContext/Provider/Provider.js +47 -2
  595. package/es/extensions/forms/DataContext/Provider/Provider.js.map +1 -1
  596. package/es/extensions/forms/Field/ArraySelection/ArraySelection.d.ts +2 -2
  597. package/es/extensions/forms/Field/ArraySelection/ArraySelection.js +8 -2
  598. package/es/extensions/forms/Field/ArraySelection/ArraySelection.js.map +1 -1
  599. package/es/extensions/forms/Field/Option/Option.d.ts +2 -2
  600. package/es/extensions/forms/Field/Option/Option.js.map +1 -1
  601. package/es/extensions/forms/Field/PhoneNumber/PhoneNumber.js +6 -6
  602. package/es/extensions/forms/Field/PhoneNumber/PhoneNumber.js.map +1 -1
  603. package/es/extensions/forms/Field/Selection/Selection.js +7 -2
  604. package/es/extensions/forms/Field/Selection/Selection.js.map +1 -1
  605. package/es/extensions/forms/Field/Toggle/Toggle.js +7 -3
  606. package/es/extensions/forms/Field/Toggle/Toggle.js.map +1 -1
  607. package/es/extensions/forms/Form/FieldProps/FieldProps.js +16 -36
  608. package/es/extensions/forms/Form/FieldProps/FieldProps.js.map +1 -1
  609. package/es/extensions/forms/Form/Section/EditContainer/EditContainer.d.ts +12 -0
  610. package/es/extensions/forms/Form/Section/EditContainer/EditContainer.js +33 -0
  611. package/es/extensions/forms/Form/Section/EditContainer/EditContainer.js.map +1 -0
  612. package/es/extensions/forms/Form/Section/EditContainer/EditContainerDocs.d.ts +3 -0
  613. package/es/extensions/forms/Form/Section/EditContainer/EditContainerDocs.js +19 -0
  614. package/es/extensions/forms/Form/Section/EditContainer/EditContainerDocs.js.map +1 -0
  615. package/es/extensions/forms/Form/Section/EditContainer/EditToolbarTools.d.ts +1 -0
  616. package/es/extensions/forms/Form/Section/EditContainer/EditToolbarTools.js +59 -0
  617. package/es/extensions/forms/Form/Section/EditContainer/EditToolbarTools.js.map +1 -0
  618. package/es/extensions/forms/Form/Section/EditContainer/index.d.ts +2 -0
  619. package/es/extensions/forms/Form/Section/EditContainer/index.js +3 -0
  620. package/es/extensions/forms/Form/Section/EditContainer/index.js.map +1 -0
  621. package/es/extensions/forms/Form/Section/EditContainer/useContainerDataStore.d.ts +3 -0
  622. package/es/extensions/forms/Form/Section/EditContainer/useContainerDataStore.js +46 -0
  623. package/es/extensions/forms/Form/Section/EditContainer/useContainerDataStore.js.map +1 -0
  624. package/es/extensions/forms/Form/Section/EditContainer/useEditContainerToolbar.d.ts +1 -0
  625. package/es/extensions/forms/Form/Section/EditContainer/useEditContainerToolbar.js +19 -0
  626. package/es/extensions/forms/Form/Section/EditContainer/useEditContainerToolbar.js.map +1 -0
  627. package/es/extensions/forms/Form/Section/Section.d.ts +9 -1
  628. package/es/extensions/forms/Form/Section/Section.js +10 -2
  629. package/es/extensions/forms/Form/Section/Section.js.map +1 -1
  630. package/es/extensions/forms/Form/Section/SectionContext.d.ts +1 -2
  631. package/es/extensions/forms/Form/Section/SectionContext.js.map +1 -1
  632. package/es/extensions/forms/Form/Section/SectionDocs.js +6 -1
  633. package/es/extensions/forms/Form/Section/SectionDocs.js.map +1 -1
  634. package/es/extensions/forms/Form/Section/ViewContainer/ViewContainer.d.ts +12 -0
  635. package/es/extensions/forms/Form/Section/ViewContainer/ViewContainer.js +32 -0
  636. package/es/extensions/forms/Form/Section/ViewContainer/ViewContainer.js.map +1 -0
  637. package/es/extensions/forms/Form/Section/ViewContainer/ViewContainerDocs.d.ts +3 -0
  638. package/es/extensions/forms/Form/Section/ViewContainer/ViewContainerDocs.js +19 -0
  639. package/es/extensions/forms/Form/Section/ViewContainer/ViewContainerDocs.js.map +1 -0
  640. package/es/extensions/forms/Form/Section/ViewContainer/ViewToolbarTools.d.ts +1 -0
  641. package/es/extensions/forms/Form/Section/ViewContainer/ViewToolbarTools.js +26 -0
  642. package/es/extensions/forms/Form/Section/ViewContainer/ViewToolbarTools.js.map +1 -0
  643. package/es/extensions/forms/Form/Section/ViewContainer/index.d.ts +2 -0
  644. package/es/extensions/forms/Form/Section/ViewContainer/index.js +3 -0
  645. package/es/extensions/forms/Form/Section/ViewContainer/index.js.map +1 -0
  646. package/es/extensions/forms/Form/Section/containers/SectionContainer.d.ts +19 -0
  647. package/es/extensions/forms/Form/Section/containers/SectionContainer.js +83 -0
  648. package/es/extensions/forms/Form/Section/containers/SectionContainer.js.map +1 -0
  649. package/es/extensions/forms/Form/Section/containers/SectionContainerContext.d.ts +8 -0
  650. package/es/extensions/forms/Form/Section/containers/SectionContainerContext.js +4 -0
  651. package/es/extensions/forms/Form/Section/containers/SectionContainerContext.js.map +1 -0
  652. package/es/extensions/forms/Form/Section/containers/SectionContainerProvider.d.ts +8 -0
  653. package/es/extensions/forms/Form/Section/containers/SectionContainerProvider.js +24 -0
  654. package/es/extensions/forms/Form/Section/containers/SectionContainerProvider.js.map +1 -0
  655. package/es/extensions/forms/Form/Section/containers/Toolbar.d.ts +7 -0
  656. package/es/extensions/forms/Form/Section/containers/Toolbar.js +27 -0
  657. package/es/extensions/forms/Form/Section/containers/Toolbar.js.map +1 -0
  658. package/es/extensions/forms/Form/Section/style/dnb-form-section.css +45 -0
  659. package/es/extensions/forms/Form/Section/style/dnb-form-section.min.css +1 -0
  660. package/{cjs/extensions/forms/Iterate/style/dnb-form-iterate.scss → es/extensions/forms/Form/Section/style/dnb-form-section.scss} +4 -12
  661. package/es/extensions/forms/Form/Visibility/Visibility.d.ts +2 -2
  662. package/es/extensions/forms/Form/Visibility/Visibility.js +20 -71
  663. package/es/extensions/forms/Form/Visibility/Visibility.js.map +1 -1
  664. package/es/extensions/forms/Form/Visibility/useVisibility.d.ts +5 -0
  665. package/es/extensions/forms/Form/Visibility/useVisibility.js +94 -0
  666. package/es/extensions/forms/Form/Visibility/useVisibility.js.map +1 -0
  667. package/es/extensions/forms/Iterate/AnimatedContainer/ElementBlock.js +8 -8
  668. package/es/extensions/forms/Iterate/AnimatedContainer/ElementBlock.js.map +1 -1
  669. package/es/extensions/forms/Iterate/Array/Array.js +1 -1
  670. package/es/extensions/forms/Iterate/Array/Array.js.map +1 -1
  671. package/es/extensions/forms/Iterate/EditContainer/EditContainer.js +1 -1
  672. package/es/extensions/forms/Iterate/EditContainer/EditContainer.js.map +1 -1
  673. package/es/extensions/forms/Iterate/EditContainer/EditToolbarTools.js +19 -10
  674. package/es/extensions/forms/Iterate/EditContainer/EditToolbarTools.js.map +1 -1
  675. package/es/extensions/forms/Iterate/RemoveButton/RemoveButton.js +1 -1
  676. package/es/extensions/forms/Iterate/RemoveButton/RemoveButton.js.map +1 -1
  677. package/es/extensions/forms/Iterate/ViewContainer/ViewContainer.js +1 -1
  678. package/es/extensions/forms/Iterate/ViewContainer/ViewContainer.js.map +1 -1
  679. package/es/extensions/forms/Iterate/ViewContainer/ViewToolbarTools.js +1 -1
  680. package/es/extensions/forms/Iterate/ViewContainer/ViewToolbarTools.js.map +1 -1
  681. package/es/extensions/forms/Iterate/style/dnb-iterate.css +6 -0
  682. package/es/extensions/forms/Iterate/style/dnb-iterate.min.css +1 -0
  683. package/es/extensions/forms/Iterate/style/dnb-iterate.scss +12 -0
  684. package/es/extensions/forms/Wizard/Container/WizardContainer.js +15 -9
  685. package/es/extensions/forms/Wizard/Container/WizardContainer.js.map +1 -1
  686. package/es/extensions/forms/Wizard/Context/WizardContext.d.ts +4 -0
  687. package/es/extensions/forms/Wizard/Context/WizardContext.js.map +1 -1
  688. package/es/extensions/forms/Wizard/Step/Step.d.ts +5 -0
  689. package/es/extensions/forms/Wizard/Step/Step.js +6 -2
  690. package/es/extensions/forms/Wizard/Step/Step.js.map +1 -1
  691. package/es/extensions/forms/Wizard/Step/StepDocs.js +5 -0
  692. package/es/extensions/forms/Wizard/Step/StepDocs.js.map +1 -1
  693. package/es/extensions/forms/Wizard/hooks/useNextRouter.js +1 -1
  694. package/es/extensions/forms/Wizard/hooks/useNextRouter.js.map +1 -1
  695. package/es/extensions/forms/Wizard/hooks/useQueryLocator.js +1 -1
  696. package/es/extensions/forms/Wizard/hooks/useQueryLocator.js.map +1 -1
  697. package/es/extensions/forms/Wizard/hooks/useReachRouter.js +1 -1
  698. package/es/extensions/forms/Wizard/hooks/useReachRouter.js.map +1 -1
  699. package/es/extensions/forms/Wizard/hooks/useReactRouter.js +1 -1
  700. package/es/extensions/forms/Wizard/hooks/useReactRouter.js.map +1 -1
  701. package/es/extensions/forms/constants/locales/en-GB.d.ts +9 -10
  702. package/es/extensions/forms/constants/locales/en-GB.js +10 -11
  703. package/es/extensions/forms/constants/locales/en-GB.js.map +1 -1
  704. package/es/extensions/forms/constants/locales/en-US.d.ts +9 -10
  705. package/es/extensions/forms/constants/locales/index.d.ts +18 -20
  706. package/es/extensions/forms/constants/locales/nb-NO.d.ts +9 -10
  707. package/es/extensions/forms/constants/locales/nb-NO.js +10 -11
  708. package/es/extensions/forms/constants/locales/nb-NO.js.map +1 -1
  709. package/es/extensions/forms/hooks/useDataValue.d.ts +4 -0
  710. package/es/extensions/forms/hooks/useDataValue.js +30 -5
  711. package/es/extensions/forms/hooks/useDataValue.js.map +1 -1
  712. package/es/extensions/forms/hooks/useFieldProps.js +14 -9
  713. package/es/extensions/forms/hooks/useFieldProps.js.map +1 -1
  714. package/es/extensions/forms/hooks/useTranslation.js +7 -12
  715. package/es/extensions/forms/hooks/useTranslation.js.map +1 -1
  716. package/es/extensions/forms/style/dnb-forms.css +46 -44
  717. package/es/extensions/forms/style/dnb-forms.min.css +1 -1
  718. package/es/extensions/payment-card/PaymentCard.js.map +1 -1
  719. package/es/fragments/drawer-list/DrawerList.js.map +1 -1
  720. package/es/fragments/drawer-list/DrawerListHelpers.js.map +1 -1
  721. package/es/fragments/drawer-list/DrawerListPortal.js.map +1 -1
  722. package/es/fragments/drawer-list/DrawerListProvider.js.map +1 -1
  723. package/es/fragments/drawer-list/style/dnb-drawer-list.scss +4 -0
  724. package/es/fragments/text-counter/TextCounter.js +3 -2
  725. package/es/fragments/text-counter/TextCounter.js.map +1 -1
  726. package/es/shared/Context.d.ts +13 -5
  727. package/es/shared/Context.js +39 -35
  728. package/es/shared/Context.js.map +1 -1
  729. package/es/shared/Eufemia.d.ts +1 -1
  730. package/es/shared/Eufemia.js +2 -2
  731. package/es/shared/Eufemia.js.map +1 -1
  732. package/es/shared/Provider.d.ts +1 -1
  733. package/es/shared/Provider.js +49 -41
  734. package/es/shared/Provider.js.map +1 -1
  735. package/es/shared/Translation.d.ts +5 -5
  736. package/es/shared/Translation.js +8 -10
  737. package/es/shared/Translation.js.map +1 -1
  738. package/es/shared/index.d.ts +1 -0
  739. package/es/shared/index.js +1 -0
  740. package/es/shared/index.js.map +1 -1
  741. package/es/shared/locales/en-GB.d.ts +0 -3
  742. package/es/shared/locales/en-GB.js +0 -3
  743. package/es/shared/locales/en-GB.js.map +1 -1
  744. package/es/shared/locales/en-US.d.ts +0 -3
  745. package/es/shared/locales/index.d.ts +0 -6
  746. package/es/shared/locales/nb-NO.d.ts +0 -3
  747. package/es/shared/locales/nb-NO.js +0 -3
  748. package/es/shared/locales/nb-NO.js.map +1 -1
  749. package/es/shared/useTranslation.d.ts +5 -4
  750. package/es/shared/useTranslation.js +13 -11
  751. package/es/shared/useTranslation.js.map +1 -1
  752. package/es/style/core/scopes.scss +1 -1
  753. package/es/style/dnb-ui-basis.css +1 -1
  754. package/es/style/dnb-ui-basis.min.css +1 -1
  755. package/es/style/dnb-ui-body.css +1 -1
  756. package/es/style/dnb-ui-body.min.css +1 -1
  757. package/es/style/dnb-ui-components.css +72 -50
  758. package/es/style/dnb-ui-components.min.css +3 -3
  759. package/es/style/dnb-ui-core.css +1 -1
  760. package/es/style/dnb-ui-core.min.css +1 -1
  761. package/es/style/dnb-ui-extensions.css +46 -44
  762. package/es/style/dnb-ui-extensions.min.css +1 -1
  763. package/es/style/dnb-ui-forms.css +46 -44
  764. package/es/style/dnb-ui-forms.min.css +1 -1
  765. package/es/style/dnb-ui-forms.scss +2 -1
  766. package/es/style/dnb-ui-fragments.css +4 -0
  767. package/es/style/dnb-ui-fragments.min.css +1 -1
  768. package/es/style/themes/theme-eiendom/eiendom-theme-basis.css +2 -2
  769. package/es/style/themes/theme-eiendom/eiendom-theme-basis.min.css +1 -1
  770. package/es/style/themes/theme-eiendom/eiendom-theme-components.css +118 -94
  771. package/es/style/themes/theme-eiendom/eiendom-theme-components.min.css +4 -4
  772. package/es/style/themes/theme-eiendom/eiendom-theme-extensions.css +46 -44
  773. package/es/style/themes/theme-eiendom/eiendom-theme-extensions.min.css +1 -1
  774. package/es/style/themes/theme-eiendom/eiendom-theme-forms.css +46 -44
  775. package/es/style/themes/theme-eiendom/eiendom-theme-forms.min.css +1 -1
  776. package/es/style/themes/theme-sbanken/globals.scss +3 -2
  777. package/es/style/themes/theme-sbanken/sbanken-theme-basis.css +2 -2
  778. package/es/style/themes/theme-sbanken/sbanken-theme-basis.min.css +1 -1
  779. package/es/style/themes/theme-sbanken/sbanken-theme-components.css +119 -95
  780. package/es/style/themes/theme-sbanken/sbanken-theme-components.min.css +4 -4
  781. package/es/style/themes/theme-sbanken/sbanken-theme-extensions.css +46 -44
  782. package/es/style/themes/theme-sbanken/sbanken-theme-extensions.min.css +1 -1
  783. package/es/style/themes/theme-sbanken/sbanken-theme-forms.css +46 -44
  784. package/es/style/themes/theme-sbanken/sbanken-theme-forms.min.css +1 -1
  785. package/es/style/themes/theme-ui/globals.scss +3 -2
  786. package/es/style/themes/theme-ui/ui-theme-basis.css +2 -2
  787. package/es/style/themes/theme-ui/ui-theme-basis.min.css +1 -1
  788. package/es/style/themes/theme-ui/ui-theme-components.css +118 -94
  789. package/es/style/themes/theme-ui/ui-theme-components.min.css +4 -4
  790. package/es/style/themes/theme-ui/ui-theme-extensions.css +46 -44
  791. package/es/style/themes/theme-ui/ui-theme-extensions.min.css +1 -1
  792. package/es/style/themes/theme-ui/ui-theme-forms.css +46 -44
  793. package/es/style/themes/theme-ui/ui-theme-forms.min.css +1 -1
  794. package/esm/dnb-ui-basis.min.mjs +1 -1
  795. package/esm/dnb-ui-components.min.mjs +1 -1
  796. package/esm/dnb-ui-elements.min.mjs +1 -1
  797. package/esm/dnb-ui-extensions.min.mjs +5 -5
  798. package/esm/dnb-ui-lib.min.mjs +1 -1
  799. package/extensions/forms/DataContext/Context.d.ts +2 -0
  800. package/extensions/forms/DataContext/Context.js +1 -0
  801. package/extensions/forms/DataContext/Context.js.map +1 -1
  802. package/extensions/forms/DataContext/FieldBoundary/FieldBoundaryContext.d.ts +17 -1
  803. package/extensions/forms/DataContext/FieldBoundary/FieldBoundaryContext.js.map +1 -1
  804. package/extensions/forms/DataContext/FieldBoundary/FieldBoundaryProvider.js +5 -3
  805. package/extensions/forms/DataContext/FieldBoundary/FieldBoundaryProvider.js.map +1 -1
  806. package/extensions/forms/DataContext/Provider/Provider.js +51 -5
  807. package/extensions/forms/DataContext/Provider/Provider.js.map +1 -1
  808. package/extensions/forms/Field/ArraySelection/ArraySelection.d.ts +2 -2
  809. package/extensions/forms/Field/ArraySelection/ArraySelection.js +8 -2
  810. package/extensions/forms/Field/ArraySelection/ArraySelection.js.map +1 -1
  811. package/extensions/forms/Field/Option/Option.d.ts +2 -2
  812. package/extensions/forms/Field/Option/Option.js.map +1 -1
  813. package/extensions/forms/Field/PhoneNumber/PhoneNumber.js +6 -6
  814. package/extensions/forms/Field/PhoneNumber/PhoneNumber.js.map +1 -1
  815. package/extensions/forms/Field/Selection/Selection.js +7 -2
  816. package/extensions/forms/Field/Selection/Selection.js.map +1 -1
  817. package/extensions/forms/Field/Toggle/Toggle.js +7 -3
  818. package/extensions/forms/Field/Toggle/Toggle.js.map +1 -1
  819. package/extensions/forms/Form/FieldProps/FieldProps.js +16 -36
  820. package/extensions/forms/Form/FieldProps/FieldProps.js.map +1 -1
  821. package/extensions/forms/Form/Section/EditContainer/EditContainer.d.ts +12 -0
  822. package/extensions/forms/Form/Section/EditContainer/EditContainer.js +33 -0
  823. package/extensions/forms/Form/Section/EditContainer/EditContainer.js.map +1 -0
  824. package/extensions/forms/Form/Section/EditContainer/EditContainerDocs.d.ts +3 -0
  825. package/extensions/forms/Form/Section/EditContainer/EditContainerDocs.js +19 -0
  826. package/extensions/forms/Form/Section/EditContainer/EditContainerDocs.js.map +1 -0
  827. package/extensions/forms/Form/Section/EditContainer/EditToolbarTools.d.ts +1 -0
  828. package/extensions/forms/Form/Section/EditContainer/EditToolbarTools.js +59 -0
  829. package/extensions/forms/Form/Section/EditContainer/EditToolbarTools.js.map +1 -0
  830. package/extensions/forms/Form/Section/EditContainer/index.d.ts +2 -0
  831. package/extensions/forms/Form/Section/EditContainer/index.js +3 -0
  832. package/extensions/forms/Form/Section/EditContainer/index.js.map +1 -0
  833. package/extensions/forms/Form/Section/EditContainer/useContainerDataStore.d.ts +3 -0
  834. package/extensions/forms/Form/Section/EditContainer/useContainerDataStore.js +46 -0
  835. package/extensions/forms/Form/Section/EditContainer/useContainerDataStore.js.map +1 -0
  836. package/extensions/forms/Form/Section/EditContainer/useEditContainerToolbar.d.ts +1 -0
  837. package/extensions/forms/Form/Section/EditContainer/useEditContainerToolbar.js +19 -0
  838. package/extensions/forms/Form/Section/EditContainer/useEditContainerToolbar.js.map +1 -0
  839. package/extensions/forms/Form/Section/Section.d.ts +9 -1
  840. package/extensions/forms/Form/Section/Section.js +10 -2
  841. package/extensions/forms/Form/Section/Section.js.map +1 -1
  842. package/extensions/forms/Form/Section/SectionContext.d.ts +1 -2
  843. package/extensions/forms/Form/Section/SectionContext.js.map +1 -1
  844. package/extensions/forms/Form/Section/SectionDocs.js +6 -1
  845. package/extensions/forms/Form/Section/SectionDocs.js.map +1 -1
  846. package/extensions/forms/Form/Section/ViewContainer/ViewContainer.d.ts +12 -0
  847. package/extensions/forms/Form/Section/ViewContainer/ViewContainer.js +32 -0
  848. package/extensions/forms/Form/Section/ViewContainer/ViewContainer.js.map +1 -0
  849. package/extensions/forms/Form/Section/ViewContainer/ViewContainerDocs.d.ts +3 -0
  850. package/extensions/forms/Form/Section/ViewContainer/ViewContainerDocs.js +19 -0
  851. package/extensions/forms/Form/Section/ViewContainer/ViewContainerDocs.js.map +1 -0
  852. package/extensions/forms/Form/Section/ViewContainer/ViewToolbarTools.d.ts +1 -0
  853. package/extensions/forms/Form/Section/ViewContainer/ViewToolbarTools.js +26 -0
  854. package/extensions/forms/Form/Section/ViewContainer/ViewToolbarTools.js.map +1 -0
  855. package/extensions/forms/Form/Section/ViewContainer/index.d.ts +2 -0
  856. package/extensions/forms/Form/Section/ViewContainer/index.js +3 -0
  857. package/extensions/forms/Form/Section/ViewContainer/index.js.map +1 -0
  858. package/extensions/forms/Form/Section/containers/SectionContainer.d.ts +19 -0
  859. package/extensions/forms/Form/Section/containers/SectionContainer.js +83 -0
  860. package/extensions/forms/Form/Section/containers/SectionContainer.js.map +1 -0
  861. package/extensions/forms/Form/Section/containers/SectionContainerContext.d.ts +8 -0
  862. package/extensions/forms/Form/Section/containers/SectionContainerContext.js +4 -0
  863. package/extensions/forms/Form/Section/containers/SectionContainerContext.js.map +1 -0
  864. package/extensions/forms/Form/Section/containers/SectionContainerProvider.d.ts +8 -0
  865. package/extensions/forms/Form/Section/containers/SectionContainerProvider.js +24 -0
  866. package/extensions/forms/Form/Section/containers/SectionContainerProvider.js.map +1 -0
  867. package/extensions/forms/Form/Section/containers/Toolbar.d.ts +7 -0
  868. package/extensions/forms/Form/Section/containers/Toolbar.js +27 -0
  869. package/extensions/forms/Form/Section/containers/Toolbar.js.map +1 -0
  870. package/extensions/forms/Form/Section/style/dnb-form-section.css +45 -0
  871. package/extensions/forms/Form/Section/style/dnb-form-section.min.css +1 -0
  872. package/extensions/forms/{Iterate/style/dnb-form-iterate.scss → Form/Section/style/dnb-form-section.scss} +4 -12
  873. package/extensions/forms/Form/Visibility/Visibility.d.ts +2 -2
  874. package/extensions/forms/Form/Visibility/Visibility.js +20 -71
  875. package/extensions/forms/Form/Visibility/Visibility.js.map +1 -1
  876. package/extensions/forms/Form/Visibility/useVisibility.d.ts +5 -0
  877. package/extensions/forms/Form/Visibility/useVisibility.js +95 -0
  878. package/extensions/forms/Form/Visibility/useVisibility.js.map +1 -0
  879. package/extensions/forms/Iterate/AnimatedContainer/ElementBlock.js +8 -8
  880. package/extensions/forms/Iterate/AnimatedContainer/ElementBlock.js.map +1 -1
  881. package/extensions/forms/Iterate/Array/Array.js +1 -1
  882. package/extensions/forms/Iterate/Array/Array.js.map +1 -1
  883. package/extensions/forms/Iterate/EditContainer/EditContainer.js +1 -1
  884. package/extensions/forms/Iterate/EditContainer/EditContainer.js.map +1 -1
  885. package/extensions/forms/Iterate/EditContainer/EditToolbarTools.js +19 -10
  886. package/extensions/forms/Iterate/EditContainer/EditToolbarTools.js.map +1 -1
  887. package/extensions/forms/Iterate/RemoveButton/RemoveButton.js +1 -1
  888. package/extensions/forms/Iterate/RemoveButton/RemoveButton.js.map +1 -1
  889. package/extensions/forms/Iterate/ViewContainer/ViewContainer.js +1 -1
  890. package/extensions/forms/Iterate/ViewContainer/ViewContainer.js.map +1 -1
  891. package/extensions/forms/Iterate/ViewContainer/ViewToolbarTools.js +1 -1
  892. package/extensions/forms/Iterate/ViewContainer/ViewToolbarTools.js.map +1 -1
  893. package/extensions/forms/Iterate/style/dnb-iterate.css +6 -0
  894. package/extensions/forms/Iterate/style/dnb-iterate.min.css +1 -0
  895. package/extensions/forms/Iterate/style/dnb-iterate.scss +12 -0
  896. package/extensions/forms/Wizard/Container/WizardContainer.js +15 -9
  897. package/extensions/forms/Wizard/Container/WizardContainer.js.map +1 -1
  898. package/extensions/forms/Wizard/Context/WizardContext.d.ts +4 -0
  899. package/extensions/forms/Wizard/Context/WizardContext.js.map +1 -1
  900. package/extensions/forms/Wizard/Step/Step.d.ts +5 -0
  901. package/extensions/forms/Wizard/Step/Step.js +6 -2
  902. package/extensions/forms/Wizard/Step/Step.js.map +1 -1
  903. package/extensions/forms/Wizard/Step/StepDocs.js +5 -0
  904. package/extensions/forms/Wizard/Step/StepDocs.js.map +1 -1
  905. package/extensions/forms/Wizard/hooks/useNextRouter.js +1 -1
  906. package/extensions/forms/Wizard/hooks/useNextRouter.js.map +1 -1
  907. package/extensions/forms/Wizard/hooks/useQueryLocator.js +1 -1
  908. package/extensions/forms/Wizard/hooks/useQueryLocator.js.map +1 -1
  909. package/extensions/forms/Wizard/hooks/useReachRouter.js +1 -1
  910. package/extensions/forms/Wizard/hooks/useReachRouter.js.map +1 -1
  911. package/extensions/forms/Wizard/hooks/useReactRouter.js +1 -1
  912. package/extensions/forms/Wizard/hooks/useReactRouter.js.map +1 -1
  913. package/extensions/forms/constants/locales/en-GB.d.ts +9 -10
  914. package/extensions/forms/constants/locales/en-GB.js +10 -11
  915. package/extensions/forms/constants/locales/en-GB.js.map +1 -1
  916. package/extensions/forms/constants/locales/en-US.d.ts +9 -10
  917. package/extensions/forms/constants/locales/index.d.ts +18 -20
  918. package/extensions/forms/constants/locales/nb-NO.d.ts +9 -10
  919. package/extensions/forms/constants/locales/nb-NO.js +10 -11
  920. package/extensions/forms/constants/locales/nb-NO.js.map +1 -1
  921. package/extensions/forms/hooks/useDataValue.d.ts +4 -0
  922. package/extensions/forms/hooks/useDataValue.js +30 -5
  923. package/extensions/forms/hooks/useDataValue.js.map +1 -1
  924. package/extensions/forms/hooks/useFieldProps.js +14 -9
  925. package/extensions/forms/hooks/useFieldProps.js.map +1 -1
  926. package/extensions/forms/hooks/useTranslation.js +7 -12
  927. package/extensions/forms/hooks/useTranslation.js.map +1 -1
  928. package/extensions/forms/style/dnb-forms.css +46 -44
  929. package/extensions/forms/style/dnb-forms.min.css +1 -1
  930. package/extensions/payment-card/PaymentCard.js.map +1 -1
  931. package/fragments/drawer-list/DrawerList.js.map +1 -1
  932. package/fragments/drawer-list/DrawerListHelpers.js.map +1 -1
  933. package/fragments/drawer-list/DrawerListPortal.js.map +1 -1
  934. package/fragments/drawer-list/DrawerListProvider.js.map +1 -1
  935. package/fragments/drawer-list/style/dnb-drawer-list.scss +4 -0
  936. package/fragments/text-counter/TextCounter.js +3 -2
  937. package/fragments/text-counter/TextCounter.js.map +1 -1
  938. package/package.json +1 -1
  939. package/shared/Context.d.ts +13 -5
  940. package/shared/Context.js +40 -35
  941. package/shared/Context.js.map +1 -1
  942. package/shared/Eufemia.d.ts +1 -1
  943. package/shared/Eufemia.js +2 -2
  944. package/shared/Eufemia.js.map +1 -1
  945. package/shared/Provider.d.ts +1 -1
  946. package/shared/Provider.js +49 -41
  947. package/shared/Provider.js.map +1 -1
  948. package/shared/Translation.d.ts +5 -5
  949. package/shared/Translation.js +8 -10
  950. package/shared/Translation.js.map +1 -1
  951. package/shared/index.d.ts +1 -0
  952. package/shared/index.js +1 -0
  953. package/shared/index.js.map +1 -1
  954. package/shared/locales/en-GB.d.ts +0 -3
  955. package/shared/locales/en-GB.js +0 -3
  956. package/shared/locales/en-GB.js.map +1 -1
  957. package/shared/locales/en-US.d.ts +0 -3
  958. package/shared/locales/index.d.ts +0 -6
  959. package/shared/locales/nb-NO.d.ts +0 -3
  960. package/shared/locales/nb-NO.js +0 -3
  961. package/shared/locales/nb-NO.js.map +1 -1
  962. package/shared/useTranslation.d.ts +5 -4
  963. package/shared/useTranslation.js +13 -11
  964. package/shared/useTranslation.js.map +1 -1
  965. package/style/core/scopes.scss +1 -1
  966. package/style/dnb-ui-basis.css +1 -1
  967. package/style/dnb-ui-basis.min.css +1 -1
  968. package/style/dnb-ui-body.css +1 -1
  969. package/style/dnb-ui-body.min.css +1 -1
  970. package/style/dnb-ui-components.css +72 -50
  971. package/style/dnb-ui-components.min.css +3 -3
  972. package/style/dnb-ui-core.css +1 -1
  973. package/style/dnb-ui-core.min.css +1 -1
  974. package/style/dnb-ui-extensions.css +46 -44
  975. package/style/dnb-ui-extensions.min.css +1 -1
  976. package/style/dnb-ui-forms.css +46 -44
  977. package/style/dnb-ui-forms.min.css +1 -1
  978. package/style/dnb-ui-forms.scss +2 -1
  979. package/style/dnb-ui-fragments.css +4 -0
  980. package/style/dnb-ui-fragments.min.css +1 -1
  981. package/style/themes/theme-eiendom/eiendom-theme-basis.css +2 -2
  982. package/style/themes/theme-eiendom/eiendom-theme-basis.min.css +1 -1
  983. package/style/themes/theme-eiendom/eiendom-theme-components.css +118 -94
  984. package/style/themes/theme-eiendom/eiendom-theme-components.min.css +4 -4
  985. package/style/themes/theme-eiendom/eiendom-theme-extensions.css +46 -44
  986. package/style/themes/theme-eiendom/eiendom-theme-extensions.min.css +1 -1
  987. package/style/themes/theme-eiendom/eiendom-theme-forms.css +46 -44
  988. package/style/themes/theme-eiendom/eiendom-theme-forms.min.css +1 -1
  989. package/style/themes/theme-sbanken/globals.scss +3 -2
  990. package/style/themes/theme-sbanken/sbanken-theme-basis.css +2 -2
  991. package/style/themes/theme-sbanken/sbanken-theme-basis.min.css +1 -1
  992. package/style/themes/theme-sbanken/sbanken-theme-components.css +119 -95
  993. package/style/themes/theme-sbanken/sbanken-theme-components.min.css +4 -4
  994. package/style/themes/theme-sbanken/sbanken-theme-extensions.css +46 -44
  995. package/style/themes/theme-sbanken/sbanken-theme-extensions.min.css +1 -1
  996. package/style/themes/theme-sbanken/sbanken-theme-forms.css +46 -44
  997. package/style/themes/theme-sbanken/sbanken-theme-forms.min.css +1 -1
  998. package/style/themes/theme-ui/globals.scss +3 -2
  999. package/style/themes/theme-ui/ui-theme-basis.css +2 -2
  1000. package/style/themes/theme-ui/ui-theme-basis.min.css +1 -1
  1001. package/style/themes/theme-ui/ui-theme-components.css +118 -94
  1002. package/style/themes/theme-ui/ui-theme-components.min.css +4 -4
  1003. package/style/themes/theme-ui/ui-theme-extensions.css +46 -44
  1004. package/style/themes/theme-ui/ui-theme-extensions.min.css +1 -1
  1005. package/style/themes/theme-ui/ui-theme-forms.css +46 -44
  1006. package/style/themes/theme-ui/ui-theme-forms.min.css +1 -1
  1007. package/umd/dnb-ui-basis.min.js +1 -1
  1008. package/umd/dnb-ui-components.min.js +1 -1
  1009. package/umd/dnb-ui-elements.min.js +1 -1
  1010. package/umd/dnb-ui-extensions.min.js +5 -5
  1011. package/umd/dnb-ui-lib.min.js +1 -1
  1012. package/cjs/components/table/TableAccordion.d.ts +0 -12
  1013. package/cjs/components/table/TableAccordion.js.map +0 -1
  1014. package/cjs/components/table/TableAccordionTd.d.ts +0 -9
  1015. package/cjs/components/table/TableAccordionTd.js.map +0 -1
  1016. package/cjs/components/table/TableAccordionTr.d.ts +0 -13
  1017. package/cjs/components/table/TableAccordionTr.js +0 -61
  1018. package/cjs/components/table/TableAccordionTr.js.map +0 -1
  1019. package/cjs/components/table/useTableAnimationHandler.js.map +0 -1
  1020. package/cjs/extensions/forms/Iterate/style/dnb-form-iterate.css +0 -50
  1021. package/cjs/extensions/forms/Iterate/style/dnb-form-iterate.min.css +0 -1
  1022. package/components/table/TableAccordion.d.ts +0 -12
  1023. package/components/table/TableAccordion.js.map +0 -1
  1024. package/components/table/TableAccordionTd.d.ts +0 -9
  1025. package/components/table/TableAccordionTd.js +0 -61
  1026. package/components/table/TableAccordionTd.js.map +0 -1
  1027. package/components/table/TableAccordionTr.d.ts +0 -13
  1028. package/components/table/TableAccordionTr.js +0 -51
  1029. package/components/table/TableAccordionTr.js.map +0 -1
  1030. package/components/table/useTableAnimationHandler.js.map +0 -1
  1031. package/es/components/table/TableAccordion.d.ts +0 -12
  1032. package/es/components/table/TableAccordion.js.map +0 -1
  1033. package/es/components/table/TableAccordionTd.d.ts +0 -9
  1034. package/es/components/table/TableAccordionTd.js +0 -61
  1035. package/es/components/table/TableAccordionTd.js.map +0 -1
  1036. package/es/components/table/TableAccordionTr.d.ts +0 -13
  1037. package/es/components/table/TableAccordionTr.js +0 -51
  1038. package/es/components/table/TableAccordionTr.js.map +0 -1
  1039. package/es/components/table/useTableAnimationHandler.js.map +0 -1
  1040. package/es/extensions/forms/Iterate/style/dnb-form-iterate.css +0 -50
  1041. package/es/extensions/forms/Iterate/style/dnb-form-iterate.min.css +0 -1
  1042. package/extensions/forms/Iterate/style/dnb-form-iterate.css +0 -50
  1043. package/extensions/forms/Iterate/style/dnb-form-iterate.min.css +0 -1
@@ -1 +1 @@
1
- {"version":3,"file":"Accordion.js","names":["React","useContext","useState","useEffect","useRef","classnames","makeUniqueId","findElementInChildren","extendPropsWithContext","validateDOMAttributes","dispatchCustomElementEvent","createSpacingClasses","AccordionGroup","AccordionHeader","AccordionContent","AccordionContext","AccordionProviderContext","Context","AccordionStore","Store","rememberWarning","accordionDefaultProps","Accordion","_ref","variant","icon_size","restOfProps","_objectWithoutProperties","_excluded","props","_objectSpread","context","group","id","current","store","previousExpanded","setPreviousExpanded","expanded","setExpanded","getInitialExpandedState","undefined","thisInstance","_id","handleDisabledClick","callOnChange","callOnChangeHandler","close","setExpandedState","state","window","addInstance","onInit","_window","_window$__dnbAccordio","removeInstance","flush_remembered_state","flush","expanded_id","expanded_ssr","remember_state","storedExpanded","getState","changeOpened","saveState","e","preventDefault","_len","arguments","length","params","Array","_key","onChange","_window2","_window2$__dnbAccordi","event","createElement","Consumer","globalContext","nestedContext","expandedState","extendedProps","skeleton","translation","className","prerender","prevent_rerender","prevent_rerender_conditional","single_container","disabled","no_animation","_expanded_ssr","children","_group","title","description","left_component","icon","icon_position","on_change","on_state_update","contentRef","restOfExtendedProps","_excluded2","mainParams","onClick","extendedPropsForContext","accordionContext","Provider","value","cur","type","_AccordionHeader","defaultProps","Group","expandedId","setExpandedId","instanceIDs","storedData","getData","currentIDs","includes","fallbackId","instance","push","_extends","Header","Content","_supportsSpacingProps"],"sources":["../../../../src/components/accordion/Accordion.tsx"],"sourcesContent":["/**\n * Web Accordion Component\n *\n */\n\nimport React, {\n useContext,\n useState,\n useEffect,\n useRef,\n HTMLProps,\n} from 'react'\n\nimport classnames from 'classnames'\nimport {\n makeUniqueId,\n findElementInChildren,\n extendPropsWithContext,\n validateDOMAttributes,\n dispatchCustomElementEvent,\n} from '../../shared/component-helper'\nimport { createSpacingClasses } from '../space/SpacingHelper'\n\nimport type { ButtonIconPosition } from '../Button'\nimport type { HeadingLevel } from '../Heading'\nimport type { IconIcon, IconSize } from '../Icon'\nimport type { SkeletonShow } from '../Skeleton'\nimport type { SpacingProps } from '../space/types'\n\nimport AccordionGroup from './AccordionGroup'\nimport AccordionHeader from './AccordionHeader'\nimport AccordionContent from './AccordionContent'\nimport AccordionContext from './AccordionContext'\nimport AccordionProviderContext from './AccordionProviderContext'\nimport Context from '../../shared/Context'\n\nimport { AccordionStore, Store, rememberWarning } from './AccordionStore'\nimport { accordionDefaultProps } from './defaultProps'\n\nexport type AccordionVariant = 'plain' | 'default' | 'outlined' | 'filled'\n\nexport type AccordionHeading = boolean | React.ReactNode\n\nexport type AccordionIcon =\n | IconIcon\n | {\n closed?: React.ReactNode | ((...args: any[]) => any)\n /**\n * If set to `true` the accordion will be expanded as its initial state.\n */\n expanded?: React.ReactNode | ((...args: any[]) => any)\n }\n\nexport type AccordionAttributes = string | Record<string, unknown>\n\nexport type AccordionIconPosition = ButtonIconPosition\n\nexport type AccordionProps = Omit<React.HTMLProps<HTMLElement>, 'ref'> &\n SpacingProps & {\n /**\n * A title as a string or React element. It will be used as the button text.\n */\n title?: React.ReactNode\n description?: React.ReactNode\n /**\n * If set to `true` the accordion will be expanded as its initial state.\n */\n expanded?: boolean\n /**\n * If set to `true`, the open and close animation will be omitted.\n */\n no_animation?: boolean\n /**\n * If set to `true` the accordion will be expanded during SSR. Can be potentially useful for SEO, although it will disturb client hydration, where React expects the same state. But that&#39;s mainly a technical aspect to consider.\n */\n expanded_ssr?: boolean\n /**\n */\n prerender?: boolean\n /**\n * If set to `true` the accordion component will not re-render its content – can be useful for widgets you don&#39;t have control of storing the temporary state during an interaction.\n */\n prevent_rerender?: boolean\n /**\n * Use this prop together with `prevent_rerender` – and if it is to `true`, the accordion component will re-render if the children are a new React element and does not match the previous one anymore.\n */\n prevent_rerender_conditional?: boolean\n /**\n * If set to `true`, it will remember a changed state initiated by the user. It requires a unique `id`. It will store the sate in the local storage.\n */\n remember_state?: boolean\n /**\n * Send along a custom React Ref for `.dnb-accordion__content`.\n */\n contentRef?: React.MutableRefObject<unknown>\n /**\n * If set to `true`, the saved (remembered) will be removed and the initial component state will be used and set.\n */\n flush_remembered_state?: boolean\n /**\n * If set to `true`, a group of accordions will be wrapped to sidebar looking menu for medium and larger screens.\n */\n single_container?: boolean\n /**\n * Defines the used styling. As of now, only `outlined` is available. Use `plain` for no styles. It defaults to `outlined`.\n */\n variant?: AccordionVariant\n /**\n * Will add a React element on the left side of the `title`, inside `AccordionHeaderContainer`.\n */\n left_component?: React.ReactNode\n /**\n * If set to `true`, the accordion button will be disabled (dimmed).\n */\n disabled?: boolean\n /**\n * If set to `true`, an overlaying skeleton with animation will be shown.\n */\n skeleton?: SkeletonShow\n /**\n * A unique `id` that will be used on the button element. If you use `remember_state`, an id is required.\n */\n id?: string\n group?: string\n /**\n * Gives you the option to replace the used `button` element. Provide a React element, including a string (HTML element). Defaults to a `div` with all the needed accessibility features included.\n */\n element?: React.ReactNode\n /**\n * If set to `true`, level 2 (h2) will be used. You can provide your own HTML heading (`h3`), or provide a `heading_level` property.\n */\n heading?: AccordionHeading\n /**\n * If `heading` is set to `true`, you can provide a numeric value to define a different heading level. Defaults to `2`.\n */\n heading_level?: HeadingLevel\n /**\n * Will replace the `chevron` icon. The icon will still rotate (by CSS). You can use an object to use two different icons, one for the closed state and one for the expanded state `{ closed, expanded }`.\n */\n icon?: AccordionIcon\n /**\n * Will set the placement of the icon. Defaults to `left`.\n */\n icon_position?: AccordionIconPosition\n /**\n * Define a different icon size. Defaults to `medium` (1.5rem).\n */\n icon_size?: IconSize\n attributes?: AccordionAttributes\n className?: string\n children?: React.ReactNode\n /**\n * Will be called by user click interaction. Returns an object with a boolean state `expanded` inside `{ expanded, id, event, ...event }`.\n */\n on_change?: (...args: any[]) => any\n on_state_update?: (...args: any[]) => any\n }\n\nfunction Accordion({\n variant = 'outlined',\n icon_size = 'medium',\n ...restOfProps\n}: AccordionProps) {\n const props = { variant, icon_size, ...restOfProps }\n\n const context = useContext(AccordionProviderContext)\n\n const group = props.group || context?.group\n const id = useRef(props.id || makeUniqueId()).current\n\n const store = new Store({ id: props.id, group })\n\n // States ordered last here to make sure that the getInitialExpandedState have access to the store\n const [previousExpanded, setPreviousExpanded] = useState(props.expanded)\n const [expanded, setExpanded] = useState<boolean>(\n getInitialExpandedState()\n )\n\n // replacement for getDerivedStateFromProps\n if (props.expanded !== previousExpanded) {\n setExpanded(props.expanded !== undefined ? props.expanded : false)\n setPreviousExpanded(props.expanded)\n }\n\n const thisInstance = {\n _id: id,\n context,\n handleDisabledClick,\n callOnChange,\n callOnChangeHandler,\n close,\n setExpandedState,\n state: { expanded, group },\n props,\n store,\n }\n\n // Constructor\n useEffect(() => {\n if (group && typeof window !== 'undefined') {\n window['__dnbAccordion'] = window['__dnbAccordion'] || {}\n window['__dnbAccordion'][group] =\n window['__dnbAccordion'][group] || new AccordionStore(group)\n\n window['__dnbAccordion'][group].addInstance(thisInstance)\n }\n\n if (context && typeof context?.onInit === 'function') {\n context.onInit(thisInstance)\n }\n\n return () => {\n if (group && typeof window !== 'undefined') {\n window?.['__dnbAccordion'][group]?.removeInstance(thisInstance)\n }\n }\n }, [])\n\n // componentDidUpdate\n useEffect(() => {\n if (context.flush_remembered_state) {\n store.flush()\n setExpanded(props.expanded)\n }\n\n if (context?.expanded_id && context.expanded_id === props.id) {\n setExpanded(true)\n }\n }, [context.flush_remembered_state, context.expanded_id])\n\n // Gets the initial expanded sate, to prevent the opening and closing of Accordion\n // That happens when if we put this logic in a useEffect that runs after the initial expanded state is set\n // Since useEffect runs after every render\n function getInitialExpandedState() {\n if (props.expanded_ssr || context?.expanded_ssr) {\n return typeof window === 'undefined'\n }\n\n if (props.remember_state || context.remember_state) {\n const storedExpanded = store.getState()\n\n if (props.expanded && storedExpanded === false) {\n return false\n }\n\n if (storedExpanded) {\n return true\n }\n }\n\n return props.expanded !== undefined\n ? props.expanded\n : context?.expanded !== undefined\n ? context.expanded\n : false\n }\n\n function setExpandedState(expanded: boolean) {\n setExpanded(expanded)\n }\n\n function close() {\n changeOpened(false)\n }\n\n function changeOpened(expanded: boolean) {\n setExpanded(expanded)\n\n // check if a event exists, because, then it's a user click\n if (props.remember_state || context.remember_state) {\n store.saveState(expanded)\n }\n }\n\n function handleDisabledClick(e: React.MouseEvent<HTMLElement>) {\n e.preventDefault()\n return false\n }\n\n function callOnChangeHandler(...params: any[]) {\n callOnChange(...params)\n if (context?.onChange) {\n context?.onChange(...params)\n }\n if (group && typeof window !== 'undefined') {\n window?.['__dnbAccordion'][group]?.onChange(...params)\n }\n }\n\n function callOnChange(...params: any[]) {\n const { expanded, event } = params[0]\n\n changeOpened(expanded)\n\n dispatchCustomElementEvent(thisInstance, 'on_change', {\n expanded,\n event,\n })\n }\n\n return (\n <Context.Consumer>\n {(globalContext) => (\n <AccordionContext.Consumer>\n {(nestedContext) => {\n // use only the props from context, who are available here anyway\n let expandedState = expanded\n\n const extendedProps = extendPropsWithContext(\n props,\n accordionDefaultProps,\n context, // group context\n nestedContext as Record<string, unknown>, // internal context\n { skeleton: globalContext?.skeleton },\n globalContext.Accordion, // global context\n globalContext.translation['Accordion']\n )\n\n if (expandedState === undefined && globalContext.Accordion) {\n if (globalContext.Accordion.expanded) {\n expandedState = extendedProps.expanded\n }\n }\n\n const {\n variant,\n className,\n prerender,\n prevent_rerender,\n prevent_rerender_conditional,\n single_container,\n remember_state,\n disabled,\n skeleton,\n no_animation,\n expanded_ssr: _expanded_ssr, // eslint-disable-line\n children,\n\n id: _id, // eslint-disable-line\n group: _group, // eslint-disable-line\n // expanded: _expanded, // eslint-disable-line\n\n title, // eslint-disable-line\n description, // eslint-disable-line\n left_component, // eslint-disable-line\n icon, // eslint-disable-line\n icon_position, // eslint-disable-line\n icon_size, // eslint-disable-line\n on_change, // eslint-disable-line\n on_state_update, // eslint-disable-line\n\n contentRef, // eslint-disable-line\n\n ...restOfExtendedProps\n } = extendedProps\n\n const mainParams = {\n id,\n className: classnames(\n 'dnb-accordion',\n expandedState && 'dnb-accordion--expanded',\n variant && `dnb-accordion__variant--${variant}`,\n prerender && 'dnb-accordion--prerender',\n createSpacingClasses(extendedProps),\n className\n ),\n } as HTMLProps<HTMLDivElement>\n\n if (disabled) {\n mainParams.onClick = handleDisabledClick\n }\n\n // to remove spacing props\n validateDOMAttributes(props, restOfExtendedProps)\n\n const extendedPropsForContext = extendPropsWithContext(\n props,\n accordionDefaultProps,\n { expanded, group },\n context\n )\n\n const accordionContext = {\n ...extendedPropsForContext,\n id,\n expanded: expandedState,\n prerender: prerender,\n prevent_rerender: prevent_rerender,\n prevent_rerender_conditional: prevent_rerender_conditional,\n single_container: single_container,\n remember_state: remember_state,\n disabled: disabled,\n skeleton: skeleton,\n no_animation: no_animation,\n callOnChange: callOnChangeHandler,\n }\n\n return (\n <AccordionContext.Provider value={accordionContext}>\n <div {...mainParams}>\n {findElementInChildren(\n children,\n (cur) => cur.type === AccordionHeader\n ) ? null : (\n <AccordionHeader />\n )}\n {findElementInChildren(\n children,\n (cur) => cur.type === AccordionContent\n ) ? (\n children\n ) : (\n <AccordionContent>{children}</AccordionContent>\n )}\n </div>\n </AccordionContext.Provider>\n )\n }}\n </AccordionContext.Consumer>\n )}\n </Context.Consumer>\n )\n}\n// TEMPORARY SOLUTION (defaultProps will be deprecated at one point). Needs to replacement with default prop parameters for example \"({expanded: null})\"\n// Only solved this way to prevent tests from failing, for when expanded is undefined instead of null\nAccordion.defaultProps = accordionDefaultProps\n\nexport type GroupProps = AccordionProps & {\n allow_close_all?: boolean\n expanded_id?: string\n}\n\nconst Group = (props: GroupProps) => {\n if (props.remember_state && !props.id) {\n rememberWarning('accordion group')\n }\n\n const [expandedId, setExpandedId] = useState<string | null>(null)\n\n const instanceIDs = useRef<string[]>([])\n\n const group = props?.id\n ? props.id\n : !props.group\n ? '#' + makeUniqueId()\n : undefined\n\n const store = new Store({ group })\n\n // Set stored expanded_id on mount\n useEffect(() => {\n const storedData = store.getData()\n const currentIDs = instanceIDs?.current\n\n if (!storedData?.id) {\n return\n }\n\n if (currentIDs.includes(storedData?.id)) {\n return\n }\n\n // 1. get the fallback id\n const fallbackId = currentIDs[0]\n\n if (!fallbackId) {\n return\n }\n\n // 2. set the fallback ids\n setExpandedId(fallbackId)\n }, [])\n\n // Store and reset fallback id\n useEffect(() => {\n if (!expandedId) {\n return\n }\n\n // 3. save the fallback id\n store.saveState(true, expandedId)\n\n // 4. and reset the fallback id\n setExpandedId(null)\n }, [expandedId])\n\n function onInit(instance) {\n if (\n instance.props.id &&\n !instanceIDs.current.includes(instance.props.id)\n ) {\n instanceIDs.current.push(instance.props.id)\n }\n }\n\n return (\n <AccordionGroup\n onInit={onInit}\n {...props}\n group={group}\n expanded_id={expandedId || props.expanded_id}\n />\n )\n}\n\nAccordion.Provider = AccordionGroup\nAccordion.Header = AccordionHeader\nAccordion.Content = AccordionContent\n\nAccordion.Group = Group\n\nGroup.Store = (group: string, id: string = null) => {\n return new Store({ group, id })\n}\n\nAccordion.Store = (id: string) => {\n return new Store({ id })\n}\n\nAccordion._supportsSpacingProps = true\n\nexport default Accordion\n"],"mappings":"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"}
1
+ {"version":3,"file":"Accordion.js","names":["React","useContext","useState","useEffect","useRef","classnames","makeUniqueId","findElementInChildren","extendPropsWithContext","validateDOMAttributes","dispatchCustomElementEvent","createSpacingClasses","AccordionGroup","AccordionHeader","AccordionContent","AccordionContext","AccordionProviderContext","Context","AccordionStore","Store","rememberWarning","accordionDefaultProps","Accordion","_ref","variant","icon_size","restOfProps","_objectWithoutProperties","_excluded","props","_objectSpread","context","group","id","current","store","previousExpanded","setPreviousExpanded","expanded","setExpanded","getInitialExpandedState","undefined","thisInstance","_id","handleDisabledClick","callOnChange","callOnChangeHandler","close","setExpandedState","state","window","addInstance","onInit","_window","_window$__dnbAccordio","removeInstance","flush_remembered_state","flush","expanded_id","expanded_ssr","remember_state","storedExpanded","getState","changeOpened","saveState","e","preventDefault","_len","arguments","length","params","Array","_key","onChange","_window2","_window2$__dnbAccordi","event","createElement","Consumer","globalContext","nestedContext","expandedState","extendedProps","skeleton","translation","className","prerender","prevent_rerender","prevent_rerender_conditional","single_container","disabled","no_animation","_expanded_ssr","children","_group","title","description","left_component","icon","icon_position","on_change","on_state_update","contentRef","restOfExtendedProps","_excluded2","mainParams","onClick","extendedPropsForContext","accordionContext","Provider","value","cur","type","_AccordionHeader","defaultProps","Group","expandedId","setExpandedId","instanceIDs","storedData","getData","currentIDs","includes","fallbackId","instance","push","_extends","Header","Content","_supportsSpacingProps"],"sources":["../../../../src/components/accordion/Accordion.tsx"],"sourcesContent":["/**\n * Web Accordion Component\n *\n */\n\nimport React, {\n useContext,\n useState,\n useEffect,\n useRef,\n HTMLProps,\n} from 'react'\n\nimport classnames from 'classnames'\nimport {\n makeUniqueId,\n findElementInChildren,\n extendPropsWithContext,\n validateDOMAttributes,\n dispatchCustomElementEvent,\n} from '../../shared/component-helper'\nimport { createSpacingClasses } from '../space/SpacingHelper'\n\nimport type { ButtonIconPosition } from '../Button'\nimport type { HeadingLevel } from '../Heading'\nimport type { IconIcon, IconSize } from '../Icon'\nimport type { SkeletonShow } from '../Skeleton'\nimport type { SpacingProps } from '../space/types'\n\nimport AccordionGroup from './AccordionGroup'\nimport AccordionHeader from './AccordionHeader'\nimport AccordionContent from './AccordionContent'\nimport AccordionContext from './AccordionContext'\nimport AccordionProviderContext from './AccordionProviderContext'\nimport Context from '../../shared/Context'\n\nimport { AccordionStore, Store, rememberWarning } from './AccordionStore'\nimport { accordionDefaultProps } from './defaultProps'\n\nexport type AccordionVariant = 'plain' | 'default' | 'outlined' | 'filled'\n\nexport type AccordionHeading = boolean | React.ReactNode\n\nexport type AccordionIcon =\n | IconIcon\n | {\n closed?: IconIcon\n /**\n * If set to `true` the accordion will be expanded as its initial state.\n */\n expanded?: IconIcon\n }\n\nexport type AccordionAttributes = string | Record<string, unknown>\n\nexport type AccordionIconPosition = ButtonIconPosition\n\nexport type AccordionProps = Omit<React.HTMLProps<HTMLElement>, 'ref'> &\n SpacingProps & {\n /**\n * A title as a string or React element. It will be used as the button text.\n */\n title?: React.ReactNode\n description?: React.ReactNode\n /**\n * If set to `true` the accordion will be expanded as its initial state.\n */\n expanded?: boolean\n /**\n * If set to `true`, the open and close animation will be omitted.\n */\n no_animation?: boolean\n /**\n * If set to `true` the accordion will be expanded during SSR. Can be potentially useful for SEO, although it will disturb client hydration, where React expects the same state. But that&#39;s mainly a technical aspect to consider.\n */\n expanded_ssr?: boolean\n /**\n */\n prerender?: boolean\n /**\n * If set to `true` the accordion component will not re-render its content – can be useful for widgets you don&#39;t have control of storing the temporary state during an interaction.\n */\n prevent_rerender?: boolean\n /**\n * Use this prop together with `prevent_rerender` – and if it is to `true`, the accordion component will re-render if the children are a new React element and does not match the previous one anymore.\n */\n prevent_rerender_conditional?: boolean\n /**\n * If set to `true`, it will remember a changed state initiated by the user. It requires a unique `id`. It will store the sate in the local storage.\n */\n remember_state?: boolean\n /**\n * Send along a custom React Ref for `.dnb-accordion__content`.\n */\n contentRef?: React.MutableRefObject<unknown>\n /**\n * If set to `true`, the saved (remembered) will be removed and the initial component state will be used and set.\n */\n flush_remembered_state?: boolean\n /**\n * If set to `true`, a group of accordions will be wrapped to sidebar looking menu for medium and larger screens.\n */\n single_container?: boolean\n /**\n * Defines the used styling. As of now, only `outlined` is available. Use `plain` for no styles. It defaults to `outlined`.\n */\n variant?: AccordionVariant\n /**\n * Will add a React element on the left side of the `title`, inside `AccordionHeaderContainer`.\n */\n left_component?: React.ReactNode\n /**\n * If set to `true`, the accordion button will be disabled (dimmed).\n */\n disabled?: boolean\n /**\n * If set to `true`, an overlaying skeleton with animation will be shown.\n */\n skeleton?: SkeletonShow\n /**\n * A unique `id` that will be used on the button element. If you use `remember_state`, an id is required.\n */\n id?: string\n group?: string\n /**\n * Gives you the option to replace the used `button` element. Provide a React element, including a string (HTML element). Defaults to a `div` with all the needed accessibility features included.\n */\n element?: React.ReactNode\n /**\n * If set to `true`, level 2 (h2) will be used. You can provide your own HTML heading (`h3`), or provide a `heading_level` property.\n */\n heading?: AccordionHeading\n /**\n * If `heading` is set to `true`, you can provide a numeric value to define a different heading level. Defaults to `2`.\n */\n heading_level?: HeadingLevel\n /**\n * Will replace the `chevron` icon. The icon will still rotate (by CSS). You can use an object to use two different icons, one for the closed state and one for the expanded state `{ closed, expanded }`.\n */\n icon?: AccordionIcon\n /**\n * Will set the placement of the icon. Defaults to `left`.\n */\n icon_position?: AccordionIconPosition\n /**\n * Define a different icon size. Defaults to `medium` (1.5rem).\n */\n icon_size?: IconSize\n attributes?: AccordionAttributes\n className?: string\n children?: React.ReactNode\n /**\n * Will be called by user click interaction. Returns an object with a boolean state `expanded` inside `{ expanded, id, event, ...event }`.\n */\n on_change?: (...args: any[]) => any\n on_state_update?: (...args: any[]) => any\n }\n\nfunction Accordion({\n variant = 'outlined',\n icon_size = 'medium',\n ...restOfProps\n}: AccordionProps) {\n const props = { variant, icon_size, ...restOfProps }\n\n const context = useContext(AccordionProviderContext)\n\n const group = props.group || context?.group\n const id = useRef(props.id || makeUniqueId()).current\n\n const store = new Store({ id: props.id, group })\n\n // States ordered last here to make sure that the getInitialExpandedState have access to the store\n const [previousExpanded, setPreviousExpanded] = useState(props.expanded)\n const [expanded, setExpanded] = useState<boolean>(\n getInitialExpandedState()\n )\n\n // replacement for getDerivedStateFromProps\n if (props.expanded !== previousExpanded) {\n setExpanded(props.expanded !== undefined ? props.expanded : false)\n setPreviousExpanded(props.expanded)\n }\n\n const thisInstance = {\n _id: id,\n context,\n handleDisabledClick,\n callOnChange,\n callOnChangeHandler,\n close,\n setExpandedState,\n state: { expanded, group },\n props,\n store,\n }\n\n // Constructor\n useEffect(() => {\n if (group && typeof window !== 'undefined') {\n window['__dnbAccordion'] = window['__dnbAccordion'] || {}\n window['__dnbAccordion'][group] =\n window['__dnbAccordion'][group] || new AccordionStore(group)\n\n window['__dnbAccordion'][group].addInstance(thisInstance)\n }\n\n if (context && typeof context?.onInit === 'function') {\n context.onInit(thisInstance)\n }\n\n return () => {\n if (group && typeof window !== 'undefined') {\n window?.['__dnbAccordion'][group]?.removeInstance(thisInstance)\n }\n }\n }, [])\n\n // componentDidUpdate\n useEffect(() => {\n if (context.flush_remembered_state) {\n store.flush()\n setExpanded(props.expanded)\n }\n\n if (context?.expanded_id && context.expanded_id === props.id) {\n setExpanded(true)\n }\n }, [context.flush_remembered_state, context.expanded_id])\n\n // Gets the initial expanded sate, to prevent the opening and closing of Accordion\n // That happens when if we put this logic in a useEffect that runs after the initial expanded state is set\n // Since useEffect runs after every render\n function getInitialExpandedState() {\n if (props.expanded_ssr || context?.expanded_ssr) {\n return typeof window === 'undefined'\n }\n\n if (props.remember_state || context.remember_state) {\n const storedExpanded = store.getState()\n\n if (props.expanded && storedExpanded === false) {\n return false\n }\n\n if (storedExpanded) {\n return true\n }\n }\n\n return props.expanded !== undefined\n ? props.expanded\n : context?.expanded !== undefined\n ? context.expanded\n : false\n }\n\n function setExpandedState(expanded: boolean) {\n setExpanded(expanded)\n }\n\n function close() {\n changeOpened(false)\n }\n\n function changeOpened(expanded: boolean) {\n setExpanded(expanded)\n\n // check if a event exists, because, then it's a user click\n if (props.remember_state || context.remember_state) {\n store.saveState(expanded)\n }\n }\n\n function handleDisabledClick(e: React.MouseEvent<HTMLElement>) {\n e.preventDefault()\n return false\n }\n\n function callOnChangeHandler(...params: any[]) {\n callOnChange(...params)\n if (context?.onChange) {\n context?.onChange(...params)\n }\n if (group && typeof window !== 'undefined') {\n window?.['__dnbAccordion'][group]?.onChange(...params)\n }\n }\n\n function callOnChange(...params: any[]) {\n const { expanded, event } = params[0]\n\n changeOpened(expanded)\n\n dispatchCustomElementEvent(thisInstance, 'on_change', {\n expanded,\n event,\n })\n }\n\n return (\n <Context.Consumer>\n {(globalContext) => (\n <AccordionContext.Consumer>\n {(nestedContext) => {\n // use only the props from context, who are available here anyway\n let expandedState = expanded\n\n const extendedProps = extendPropsWithContext(\n props,\n accordionDefaultProps,\n context, // group context\n nestedContext as Record<string, unknown>, // internal context\n { skeleton: globalContext?.skeleton },\n globalContext.Accordion, // global context\n globalContext.translation['Accordion']\n )\n\n if (expandedState === undefined && globalContext.Accordion) {\n if (globalContext.Accordion.expanded) {\n expandedState = extendedProps.expanded\n }\n }\n\n const {\n variant,\n className,\n prerender,\n prevent_rerender,\n prevent_rerender_conditional,\n single_container,\n remember_state,\n disabled,\n skeleton,\n no_animation,\n expanded_ssr: _expanded_ssr, // eslint-disable-line\n children,\n\n id: _id, // eslint-disable-line\n group: _group, // eslint-disable-line\n // expanded: _expanded, // eslint-disable-line\n\n title, // eslint-disable-line\n description, // eslint-disable-line\n left_component, // eslint-disable-line\n icon, // eslint-disable-line\n icon_position, // eslint-disable-line\n icon_size, // eslint-disable-line\n on_change, // eslint-disable-line\n on_state_update, // eslint-disable-line\n\n contentRef, // eslint-disable-line\n\n ...restOfExtendedProps\n } = extendedProps\n\n const mainParams = {\n id,\n className: classnames(\n 'dnb-accordion',\n expandedState && 'dnb-accordion--expanded',\n variant && `dnb-accordion__variant--${variant}`,\n prerender && 'dnb-accordion--prerender',\n createSpacingClasses(extendedProps),\n className\n ),\n } as HTMLProps<HTMLDivElement>\n\n if (disabled) {\n mainParams.onClick = handleDisabledClick\n }\n\n // to remove spacing props\n validateDOMAttributes(props, restOfExtendedProps)\n\n const extendedPropsForContext = extendPropsWithContext(\n props,\n accordionDefaultProps,\n { expanded, group },\n context\n )\n\n const accordionContext = {\n ...extendedPropsForContext,\n id,\n expanded: expandedState,\n prerender: prerender,\n prevent_rerender: prevent_rerender,\n prevent_rerender_conditional: prevent_rerender_conditional,\n single_container: single_container,\n remember_state: remember_state,\n disabled: disabled,\n skeleton: skeleton,\n no_animation: no_animation,\n callOnChange: callOnChangeHandler,\n }\n\n return (\n <AccordionContext.Provider value={accordionContext}>\n <div {...mainParams}>\n {findElementInChildren(\n children,\n (cur) => cur.type === AccordionHeader\n ) ? null : (\n <AccordionHeader />\n )}\n {findElementInChildren(\n children,\n (cur) => cur.type === AccordionContent\n ) ? (\n children\n ) : (\n <AccordionContent>{children}</AccordionContent>\n )}\n </div>\n </AccordionContext.Provider>\n )\n }}\n </AccordionContext.Consumer>\n )}\n </Context.Consumer>\n )\n}\n// TEMPORARY SOLUTION (defaultProps will be deprecated at one point). Needs to replacement with default prop parameters for example \"({expanded: null})\"\n// Only solved this way to prevent tests from failing, for when expanded is undefined instead of null\nAccordion.defaultProps = accordionDefaultProps\n\nexport type GroupProps = AccordionProps & {\n allow_close_all?: boolean\n expanded_id?: string\n}\n\nconst Group = (props: GroupProps) => {\n if (props.remember_state && !props.id) {\n rememberWarning('accordion group')\n }\n\n const [expandedId, setExpandedId] = useState<string | null>(null)\n\n const instanceIDs = useRef<string[]>([])\n\n const group = props?.id\n ? props.id\n : !props.group\n ? '#' + makeUniqueId()\n : undefined\n\n const store = new Store({ group })\n\n // Set stored expanded_id on mount\n useEffect(() => {\n const storedData = store.getData()\n const currentIDs = instanceIDs?.current\n\n if (!storedData?.id) {\n return\n }\n\n if (currentIDs.includes(storedData?.id)) {\n return\n }\n\n // 1. get the fallback id\n const fallbackId = currentIDs[0]\n\n if (!fallbackId) {\n return\n }\n\n // 2. set the fallback ids\n setExpandedId(fallbackId)\n }, [])\n\n // Store and reset fallback id\n useEffect(() => {\n if (!expandedId) {\n return\n }\n\n // 3. save the fallback id\n store.saveState(true, expandedId)\n\n // 4. and reset the fallback id\n setExpandedId(null)\n }, [expandedId])\n\n function onInit(instance) {\n if (\n instance.props.id &&\n !instanceIDs.current.includes(instance.props.id)\n ) {\n instanceIDs.current.push(instance.props.id)\n }\n }\n\n return (\n <AccordionGroup\n onInit={onInit}\n {...props}\n group={group}\n expanded_id={expandedId || props.expanded_id}\n />\n )\n}\n\nAccordion.Provider = AccordionGroup\nAccordion.Header = AccordionHeader\nAccordion.Content = AccordionContent\n\nAccordion.Group = Group\n\nGroup.Store = (group: string, id: string = null) => {\n return new Store({ group, id })\n}\n\nAccordion.Store = (id: string) => {\n return new Store({ id })\n}\n\nAccordion._supportsSpacingProps = true\n\nexport default Accordion\n"],"mappings":"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"}
@@ -5,7 +5,7 @@
5
5
  import React from 'react';
6
6
  import type { SpacingProps } from '../space/types';
7
7
  import type { HeadingLevel } from '../Heading';
8
- import type { IconSize } from '../Icon';
8
+ import type { IconIcon, IconSize } from '../Icon';
9
9
  import type { SkeletonShow } from '../Skeleton';
10
10
  import type { AccordionIcon, AccordionIconPosition, AccordionVariant } from './Accordion';
11
11
  export type AccordionHeaderTitleProps = SpacingProps & {
@@ -20,9 +20,9 @@ export type AccordionHeaderContainerProps = SpacingProps & {
20
20
  children?: React.ReactNode;
21
21
  };
22
22
  declare function AccordionHeaderContainer({ children, ...rest }: AccordionHeaderContainerProps): import("react/jsx-runtime").JSX.Element;
23
- type AccordionHeaderIconIcon = React.ReactNode | ((...args: any[]) => React.ReactNode) | {
24
- closed?: React.ReactNode | ((...args: any[]) => React.ReactNode);
25
- expanded?: React.ReactNode | ((...args: any[]) => React.ReactNode);
23
+ type AccordionHeaderIconIcon = IconIcon | {
24
+ closed?: IconIcon;
25
+ expanded?: IconIcon;
26
26
  };
27
27
  export type AccordionHeaderIconProps = {
28
28
  icon?: AccordionHeaderIconIcon;
@@ -30,7 +30,7 @@ export type AccordionHeaderIconProps = {
30
30
  expanded?: boolean;
31
31
  icon_position?: AccordionIconPosition;
32
32
  };
33
- declare function AccordionHeaderIcon({ icon, expanded, size, icon_position, }: AccordionHeaderIconProps): import("react/jsx-runtime").JSX.Element;
33
+ declare function AccordionHeaderIcon({ icon: iconProp, expanded, size, icon_position, }: AccordionHeaderIconProps): import("react/jsx-runtime").JSX.Element;
34
34
  export type AccordionHeaderTitle = string | React.ReactNode | ((...args: any[]) => any);
35
35
  export type AccordionHeaderDescription = string | React.ReactNode | ((...args: any[]) => any);
36
36
  export type AccordionHeaderLeftComponent = string | React.ReactNode | ((...args: any[]) => any);
@@ -45,16 +45,17 @@ function AccordionHeaderContainer(_ref3) {
45
45
  }
46
46
  function AccordionHeaderIcon(_ref4) {
47
47
  let {
48
- icon,
48
+ icon: iconProp,
49
49
  expanded,
50
50
  size = 'medium',
51
51
  icon_position
52
52
  } = _ref4;
53
+ const icon = iconProp && typeof iconProp === 'object' && 'expanded' in iconProp && typeof (iconProp === null || iconProp === void 0 ? void 0 : iconProp.expanded) !== 'undefined' ? iconProp[expanded ? 'expanded' : 'closed'] : iconProp || 'chevron-down';
53
54
  return React.createElement("span", {
54
55
  className: 'dnb-accordion__header__icon' + (icon_position ? ` dnb-accordion__header__icon--${icon_position}` : "")
55
56
  }, React.createElement(IconPrimary, {
56
57
  size: size,
57
- icon: icon && typeof icon === 'object' && 'expanded' in icon && typeof (icon === null || icon === void 0 ? void 0 : icon.expanded) !== 'undefined' ? icon[expanded ? 'expanded' : 'closed'] : icon || 'chevron-down',
58
+ icon: icon,
58
59
  "aria-hidden": true
59
60
  }));
60
61
  }
@@ -1 +1 @@
1
- {"version":3,"file":"AccordionHeader.js","names":["React","useContext","useState","validateDOMAttributes","extendPropsWithContext","IconPrimary","classnames","AccordionContext","createSpacingClasses","skeletonDOMAttributes","createSkeletonClass","AccordionHeaderTitle","_ref","children","rest","_objectWithoutProperties","_excluded","createElement","className","AccordionHeaderDescription","_ref2","_excluded2","AccordionHeaderContainer","_ref3","_excluded3","AccordionHeaderIcon","_ref4","icon","expanded","size","icon_position","accordionHeaderDefaultProps","icon_size","AccordionHeader","_ref5","icon_size_default","restOfProps","_excluded4","props","_objectSpread","isHovering","setIsHovering","hasClicked","setHasClicked","context","onKeyDownHandler","event","keyPressed","key","preventDefault","onClickHandler","id","group","canClick","callOnChange","onMouseOverHandler","onMouseOutHandler","allow_close_all","extendedProps","left_component","title","description","element","heading","heading_level","disabled","skeleton","no_animation","variant","_left_component","_expanded","_title","_description","_icon","_icon_size","_disabled","_excluded5","defaultParts","Array","isArray","filter","cur","isValidElement","removeParts","forEach","part","find","c","type","push","index","findIndex","splice","partsToRender","wrapperParts","wrapperComp","undefined","iconIndex","headerParams","role","tabIndex","onClick","onKeyDown","onMouseOver","onMouseOut","Element","String","Number","Container","Icon","Title","Description","_supportsSpacingProps"],"sources":["../../../../src/components/accordion/AccordionHeader.tsx"],"sourcesContent":["/**\n * Web Accordion Component\n *\n */\n\nimport React, { HTMLProps, useContext, useState } from 'react'\nimport type { SpacingProps } from '../space/types'\n\nimport {\n validateDOMAttributes,\n extendPropsWithContext,\n} from '../../shared/component-helper'\nimport IconPrimary from '../icon-primary/IconPrimary'\nimport classnames from 'classnames'\nimport AccordionContext from './AccordionContext'\nimport { createSpacingClasses } from '../space/SpacingHelper'\nimport {\n skeletonDOMAttributes,\n createSkeletonClass,\n} from '../skeleton/SkeletonHelper'\n\nimport type { HeadingLevel } from '../Heading'\nimport type { IconSize } from '../Icon'\nimport type { SkeletonShow } from '../Skeleton'\nimport type {\n AccordionIcon,\n AccordionIconPosition,\n AccordionVariant,\n} from './Accordion'\n\nexport type AccordionHeaderTitleProps = SpacingProps & {\n children?: React.ReactNode\n}\n\nfunction AccordionHeaderTitle({\n children = null,\n ...rest\n}: AccordionHeaderTitleProps) {\n return (\n <span\n className={classnames(\n 'dnb-accordion__header__title',\n createSpacingClasses(rest)\n )}\n >\n {children}\n </span>\n )\n}\n\nexport type AccordionHeaderDescriptionProps = SpacingProps & {\n children?: React.ReactNode\n}\n\nfunction AccordionHeaderDescription({\n children = null,\n ...rest\n}: AccordionHeaderDescriptionProps) {\n return children ? (\n <span\n className={classnames(\n 'dnb-accordion__header__description',\n createSpacingClasses(rest)\n )}\n >\n {children}\n </span>\n ) : null\n}\n\nexport type AccordionHeaderContainerProps = SpacingProps & {\n children?: React.ReactNode\n}\n\nfunction AccordionHeaderContainer({\n children = null,\n ...rest\n}: AccordionHeaderContainerProps) {\n return children ? (\n <span\n className={classnames(\n 'dnb-accordion__header__container',\n createSpacingClasses(rest)\n )}\n >\n {children}\n </span>\n ) : null\n}\n\ntype AccordionHeaderIconIcon =\n | React.ReactNode\n | ((...args: any[]) => React.ReactNode)\n | {\n closed?: React.ReactNode | ((...args: any[]) => React.ReactNode)\n expanded?: React.ReactNode | ((...args: any[]) => React.ReactNode)\n }\n\nexport type AccordionHeaderIconProps = {\n icon?: AccordionHeaderIconIcon\n size?: IconSize\n expanded?: boolean\n icon_position?: AccordionIconPosition\n}\n\nfunction AccordionHeaderIcon({\n icon,\n expanded,\n size = 'medium',\n icon_position,\n}: AccordionHeaderIconProps) {\n return (\n <span\n className={classnames(\n 'dnb-accordion__header__icon',\n icon_position && `dnb-accordion__header__icon--${icon_position}`\n )}\n >\n <IconPrimary\n size={size}\n // There has to be a better way than to do so much casting\n icon={\n icon &&\n typeof icon === 'object' &&\n 'expanded' in icon &&\n typeof icon?.expanded !== 'undefined'\n ? icon[expanded ? 'expanded' : 'closed']\n : (icon as React.ReactNode | ((...args: any[]) => any)) ||\n 'chevron-down'\n }\n aria-hidden\n />\n </span>\n )\n}\n\nexport type AccordionHeaderTitle =\n | string\n | React.ReactNode\n | ((...args: any[]) => any)\nexport type AccordionHeaderDescription =\n | string\n | React.ReactNode\n | ((...args: any[]) => any)\nexport type AccordionHeaderLeftComponent =\n | string\n | React.ReactNode\n | ((...args: any[]) => any)\nexport type AccordionHeaderElement =\n | string\n | React.ReactNode\n | ((...args: any[]) => any)\nexport type AccordionHeaderHeading =\n | boolean\n | string\n | React.ReactNode\n | ((...args: any[]) => any)\nexport type AccordionHeaderIcon =\n | React.ReactNode\n | ((...args: any[]) => any)\n | {\n closed?: React.ReactNode | ((...args: any[]) => any)\n expanded?: React.ReactNode | ((...args: any[]) => any)\n }\n\nexport type AccordionHeaderProps = React.HTMLProps<HTMLElement> &\n SpacingProps & {\n title?: AccordionHeaderTitle\n expanded?: boolean\n description?: AccordionHeaderDescription\n left_component?: AccordionHeaderLeftComponent\n element?: AccordionHeaderElement\n heading?: AccordionHeaderHeading\n heading_level?: HeadingLevel\n icon?: AccordionIcon\n icon_position?: AccordionIconPosition\n icon_size?: IconSize\n disabled?: boolean\n skeleton?: SkeletonShow\n no_animation?: boolean\n className?: string\n children?: string | React.ReactNode | ((...args: any[]) => any)\n variant?: AccordionVariant\n }\n\nconst accordionHeaderDefaultProps = {\n icon_size: 'medium',\n}\n\nexport const AccordionHeader = ({\n icon_size: icon_size_default = 'medium',\n ...restOfProps\n}: AccordionHeaderProps) => {\n const props = { icon_size: icon_size_default, ...restOfProps }\n\n const [isHovering, setIsHovering] = useState<boolean>(false)\n const [hasClicked, setHasClicked] = useState<boolean>(false)\n\n const context = useContext(AccordionContext)\n\n function onKeyDownHandler(event: React.KeyboardEvent<HTMLElement>) {\n const keyPressed = event.key\n\n if (keyPressed === 'Enter' || keyPressed === ' ') {\n event.preventDefault()\n onClickHandler(event)\n }\n }\n\n function onClickHandler(\n event: React.MouseEvent<HTMLElement> | React.KeyboardEvent<HTMLElement>\n ) {\n const { id, group } = context\n\n if (canClick()) {\n const expanded = !context.expanded\n context.callOnChange({ id, group, expanded, event })\n\n setHasClicked(true)\n }\n }\n\n function onMouseOverHandler() {\n setIsHovering(true)\n }\n\n function onMouseOutHandler() {\n setIsHovering(false)\n setHasClicked(false)\n }\n\n function canClick() {\n const { expanded, allow_close_all, group } = context\n return !group || (group && !expanded) || allow_close_all\n }\n\n const extendedProps = extendPropsWithContext(\n props,\n accordionHeaderDefaultProps,\n context as Record<string, unknown>\n )\n\n const {\n id,\n\n // 1. these props should be the same as ...\n left_component,\n expanded, // eslint-disable-line\n title,\n description,\n element,\n heading,\n heading_level,\n icon,\n icon_size,\n disabled,\n skeleton,\n no_animation,\n variant,\n } = extendedProps\n\n let { icon_position } = extendedProps\n\n const {\n children,\n className,\n\n // 2. ... these\n left_component: _left_component, // eslint-disable-line\n expanded: _expanded, // eslint-disable-line\n title: _title, // eslint-disable-line\n description: _description, // eslint-disable-line\n icon: _icon, // eslint-disable-line\n icon_size: _icon_size, // eslint-disable-line\n disabled: _disabled, // eslint-disable-line\n\n ...rest\n } = props\n\n const defaultParts = [\n <AccordionHeaderIcon\n key=\"icon\"\n icon={icon}\n size={icon_size}\n expanded={context.expanded}\n icon_position={icon_position}\n />,\n <AccordionHeaderContainer key=\"container\">\n {left_component as React.ReactNode}\n </AccordionHeaderContainer>,\n <AccordionHeaderTitle key=\"title\">\n {title ||\n (Array.isArray(children)\n ? children.filter((cur) => !React.isValidElement(cur))\n : children)}\n </AccordionHeaderTitle>,\n <AccordionHeaderDescription key=\"description\">\n {description as React.ReactNode}\n </AccordionHeaderDescription>,\n ]\n\n if (Array.isArray(children)) {\n const removeParts = []\n children.forEach((cur) => {\n if (React.isValidElement(cur)) {\n const part = defaultParts.find((c) => c.type === cur.type)\n if (part) {\n removeParts.push(part)\n }\n\n // if (cur.type === AccordionHeaderTitle) {\n // defaultParts.unshift(cur)\n // } else {\n // defaultParts.push(cur)\n // }\n\n defaultParts.push(cur)\n }\n })\n removeParts.forEach((part) => {\n const index = defaultParts.findIndex((c) => c === part)\n if (index > -1) {\n defaultParts.splice(index, 1)\n }\n })\n }\n\n const partsToRender = []\n const wrapperParts = []\n const wrapperComp = (\n <span className=\"dnb-accordion__header__wrapper\" key=\"wrapper\">\n {wrapperParts}\n </span>\n )\n\n defaultParts.forEach((part) => {\n if (\n React.isValidElement(part) &&\n (part.type === AccordionHeaderTitle ||\n part.type === AccordionHeaderDescription)\n ) {\n wrapperParts.push(part)\n if (partsToRender.findIndex((c) => c === wrapperComp) === -1) {\n partsToRender.push(wrapperComp)\n }\n } else {\n partsToRender.push(part)\n }\n })\n\n // position the icon to the right, if the element is not in the beginning\n if (icon_position === undefined) {\n const iconIndex = partsToRender.findIndex(\n (c) => c.type === AccordionHeaderIcon\n )\n // because of the container at the beginning, we use 1\n if (iconIndex > 1) {\n icon_position = 'right'\n }\n\n if (left_component) {\n icon_position = 'right'\n }\n }\n\n const headerParams = {\n id: `${id}-header`,\n 'aria-controls': `${id}-content`,\n 'aria-expanded': context.expanded,\n role: 'button',\n tabIndex: 0,\n className: classnames(\n 'dnb-accordion__header',\n variant && `dnb-accordion__header--${variant}`,\n context.expanded && 'dnb-accordion__header--expanded',\n icon_position && `dnb-accordion__header--icon-${icon_position}`,\n isHovering &&\n hasClicked &&\n context.expanded &&\n 'dnb-accordion__header--after-click',\n !canClick() && 'dnb-accordion__header--prevent-click',\n description && 'dnb-accordion__header--description',\n no_animation && 'dnb-accordion__header--no-animation',\n createSkeletonClass('font', skeleton, context),\n createSpacingClasses(rest),\n className\n ),\n disabled,\n ...rest,\n } satisfies HTMLProps<HTMLElement>\n\n if (disabled || skeleton) {\n headerParams.tabIndex = -1\n headerParams.disabled = true\n headerParams['aria-disabled'] = true\n } else {\n headerParams.onClick = onClickHandler\n headerParams.onKeyDown = onKeyDownHandler\n headerParams.onMouseOver = onMouseOverHandler\n headerParams.onMouseOut = onMouseOutHandler\n }\n\n skeletonDOMAttributes(headerParams, skeleton, context)\n\n validateDOMAttributes(props, headerParams)\n\n let Element = 'div'\n\n // (String(heading) === 'true' || String(heading) === '1') extracted from isTrue function\n if (heading && (String(heading) === 'true' || String(heading) === '1')) {\n headerParams.role = 'heading'\n headerParams['aria-level'] = heading_level ? Number(heading_level) : 2\n } else if (heading) {\n headerParams.role = null\n Element = heading as string\n } else if (element) {\n headerParams.role = null\n Element = element as string\n }\n\n return <Element {...headerParams}>{partsToRender}</Element>\n}\n\nAccordionHeader.Container = AccordionHeaderContainer\nAccordionHeader.Icon = AccordionHeaderIcon\nAccordionHeader.Title = AccordionHeaderTitle\nAccordionHeader.Description = AccordionHeaderDescription\n\nAccordionHeader._supportsSpacingProps = true\n\nexport default AccordionHeader\n"],"mappings":"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"}
1
+ {"version":3,"file":"AccordionHeader.js","names":["React","useContext","useState","validateDOMAttributes","extendPropsWithContext","IconPrimary","classnames","AccordionContext","createSpacingClasses","skeletonDOMAttributes","createSkeletonClass","AccordionHeaderTitle","_ref","children","rest","_objectWithoutProperties","_excluded","createElement","className","AccordionHeaderDescription","_ref2","_excluded2","AccordionHeaderContainer","_ref3","_excluded3","AccordionHeaderIcon","_ref4","icon","iconProp","expanded","size","icon_position","accordionHeaderDefaultProps","icon_size","AccordionHeader","_ref5","icon_size_default","restOfProps","_excluded4","props","_objectSpread","isHovering","setIsHovering","hasClicked","setHasClicked","context","onKeyDownHandler","event","keyPressed","key","preventDefault","onClickHandler","id","group","canClick","callOnChange","onMouseOverHandler","onMouseOutHandler","allow_close_all","extendedProps","left_component","title","description","element","heading","heading_level","disabled","skeleton","no_animation","variant","_left_component","_expanded","_title","_description","_icon","_icon_size","_disabled","_excluded5","defaultParts","Array","isArray","filter","cur","isValidElement","removeParts","forEach","part","find","c","type","push","index","findIndex","splice","partsToRender","wrapperParts","wrapperComp","undefined","iconIndex","headerParams","role","tabIndex","onClick","onKeyDown","onMouseOver","onMouseOut","Element","String","Number","Container","Icon","Title","Description","_supportsSpacingProps"],"sources":["../../../../src/components/accordion/AccordionHeader.tsx"],"sourcesContent":["/**\n * Web Accordion Component\n *\n */\n\nimport React, { HTMLProps, useContext, useState } from 'react'\nimport type { SpacingProps } from '../space/types'\n\nimport {\n validateDOMAttributes,\n extendPropsWithContext,\n} from '../../shared/component-helper'\nimport IconPrimary from '../icon-primary/IconPrimary'\nimport classnames from 'classnames'\nimport AccordionContext from './AccordionContext'\nimport { createSpacingClasses } from '../space/SpacingHelper'\nimport {\n skeletonDOMAttributes,\n createSkeletonClass,\n} from '../skeleton/SkeletonHelper'\n\nimport type { HeadingLevel } from '../Heading'\nimport type { IconIcon, IconSize } from '../Icon'\nimport type { SkeletonShow } from '../Skeleton'\nimport type {\n AccordionIcon,\n AccordionIconPosition,\n AccordionVariant,\n} from './Accordion'\n\nexport type AccordionHeaderTitleProps = SpacingProps & {\n children?: React.ReactNode\n}\n\nfunction AccordionHeaderTitle({\n children = null,\n ...rest\n}: AccordionHeaderTitleProps) {\n return (\n <span\n className={classnames(\n 'dnb-accordion__header__title',\n createSpacingClasses(rest)\n )}\n >\n {children}\n </span>\n )\n}\n\nexport type AccordionHeaderDescriptionProps = SpacingProps & {\n children?: React.ReactNode\n}\n\nfunction AccordionHeaderDescription({\n children = null,\n ...rest\n}: AccordionHeaderDescriptionProps) {\n return children ? (\n <span\n className={classnames(\n 'dnb-accordion__header__description',\n createSpacingClasses(rest)\n )}\n >\n {children}\n </span>\n ) : null\n}\n\nexport type AccordionHeaderContainerProps = SpacingProps & {\n children?: React.ReactNode\n}\n\nfunction AccordionHeaderContainer({\n children = null,\n ...rest\n}: AccordionHeaderContainerProps) {\n return children ? (\n <span\n className={classnames(\n 'dnb-accordion__header__container',\n createSpacingClasses(rest)\n )}\n >\n {children}\n </span>\n ) : null\n}\n\ntype AccordionHeaderIconIcon =\n | IconIcon\n | {\n closed?: IconIcon\n expanded?: IconIcon\n }\n\nexport type AccordionHeaderIconProps = {\n icon?: AccordionHeaderIconIcon\n size?: IconSize\n expanded?: boolean\n icon_position?: AccordionIconPosition\n}\n\nfunction AccordionHeaderIcon({\n icon: iconProp,\n expanded,\n size = 'medium',\n icon_position,\n}: AccordionHeaderIconProps) {\n const icon = (\n iconProp &&\n typeof iconProp === 'object' &&\n 'expanded' in iconProp &&\n typeof iconProp?.expanded !== 'undefined'\n ? iconProp[expanded ? 'expanded' : 'closed']\n : iconProp || 'chevron-down'\n ) as IconIcon\n return (\n <span\n className={classnames(\n 'dnb-accordion__header__icon',\n icon_position && `dnb-accordion__header__icon--${icon_position}`\n )}\n >\n <IconPrimary size={size} icon={icon} aria-hidden />\n </span>\n )\n}\n\nexport type AccordionHeaderTitle =\n | string\n | React.ReactNode\n | ((...args: any[]) => any)\nexport type AccordionHeaderDescription =\n | string\n | React.ReactNode\n | ((...args: any[]) => any)\nexport type AccordionHeaderLeftComponent =\n | string\n | React.ReactNode\n | ((...args: any[]) => any)\nexport type AccordionHeaderElement =\n | string\n | React.ReactNode\n | ((...args: any[]) => any)\nexport type AccordionHeaderHeading =\n | boolean\n | string\n | React.ReactNode\n | ((...args: any[]) => any)\nexport type AccordionHeaderIcon =\n | React.ReactNode\n | ((...args: any[]) => any)\n | {\n closed?: React.ReactNode | ((...args: any[]) => any)\n expanded?: React.ReactNode | ((...args: any[]) => any)\n }\n\nexport type AccordionHeaderProps = React.HTMLProps<HTMLElement> &\n SpacingProps & {\n title?: AccordionHeaderTitle\n expanded?: boolean\n description?: AccordionHeaderDescription\n left_component?: AccordionHeaderLeftComponent\n element?: AccordionHeaderElement\n heading?: AccordionHeaderHeading\n heading_level?: HeadingLevel\n icon?: AccordionIcon\n icon_position?: AccordionIconPosition\n icon_size?: IconSize\n disabled?: boolean\n skeleton?: SkeletonShow\n no_animation?: boolean\n className?: string\n children?: string | React.ReactNode | ((...args: any[]) => any)\n variant?: AccordionVariant\n }\n\nconst accordionHeaderDefaultProps = {\n icon_size: 'medium',\n}\n\nexport const AccordionHeader = ({\n icon_size: icon_size_default = 'medium',\n ...restOfProps\n}: AccordionHeaderProps) => {\n const props = { icon_size: icon_size_default, ...restOfProps }\n\n const [isHovering, setIsHovering] = useState<boolean>(false)\n const [hasClicked, setHasClicked] = useState<boolean>(false)\n\n const context = useContext(AccordionContext)\n\n function onKeyDownHandler(event: React.KeyboardEvent<HTMLElement>) {\n const keyPressed = event.key\n\n if (keyPressed === 'Enter' || keyPressed === ' ') {\n event.preventDefault()\n onClickHandler(event)\n }\n }\n\n function onClickHandler(\n event: React.MouseEvent<HTMLElement> | React.KeyboardEvent<HTMLElement>\n ) {\n const { id, group } = context\n\n if (canClick()) {\n const expanded = !context.expanded\n context.callOnChange({ id, group, expanded, event })\n\n setHasClicked(true)\n }\n }\n\n function onMouseOverHandler() {\n setIsHovering(true)\n }\n\n function onMouseOutHandler() {\n setIsHovering(false)\n setHasClicked(false)\n }\n\n function canClick() {\n const { expanded, allow_close_all, group } = context\n return !group || (group && !expanded) || allow_close_all\n }\n\n const extendedProps = extendPropsWithContext(\n props,\n accordionHeaderDefaultProps,\n context as Record<string, unknown>\n )\n\n const {\n id,\n\n // 1. these props should be the same as ...\n left_component,\n expanded, // eslint-disable-line\n title,\n description,\n element,\n heading,\n heading_level,\n icon,\n icon_size,\n disabled,\n skeleton,\n no_animation,\n variant,\n } = extendedProps\n\n let { icon_position } = extendedProps\n\n const {\n children,\n className,\n\n // 2. ... these\n left_component: _left_component, // eslint-disable-line\n expanded: _expanded, // eslint-disable-line\n title: _title, // eslint-disable-line\n description: _description, // eslint-disable-line\n icon: _icon, // eslint-disable-line\n icon_size: _icon_size, // eslint-disable-line\n disabled: _disabled, // eslint-disable-line\n\n ...rest\n } = props\n\n const defaultParts = [\n <AccordionHeaderIcon\n key=\"icon\"\n icon={icon}\n size={icon_size}\n expanded={context.expanded}\n icon_position={icon_position}\n />,\n <AccordionHeaderContainer key=\"container\">\n {left_component as React.ReactNode}\n </AccordionHeaderContainer>,\n <AccordionHeaderTitle key=\"title\">\n {title ||\n (Array.isArray(children)\n ? children.filter((cur) => !React.isValidElement(cur))\n : children)}\n </AccordionHeaderTitle>,\n <AccordionHeaderDescription key=\"description\">\n {description as React.ReactNode}\n </AccordionHeaderDescription>,\n ]\n\n if (Array.isArray(children)) {\n const removeParts = []\n children.forEach((cur) => {\n if (React.isValidElement(cur)) {\n const part = defaultParts.find((c) => c.type === cur.type)\n if (part) {\n removeParts.push(part)\n }\n\n // if (cur.type === AccordionHeaderTitle) {\n // defaultParts.unshift(cur)\n // } else {\n // defaultParts.push(cur)\n // }\n\n defaultParts.push(cur)\n }\n })\n removeParts.forEach((part) => {\n const index = defaultParts.findIndex((c) => c === part)\n if (index > -1) {\n defaultParts.splice(index, 1)\n }\n })\n }\n\n const partsToRender = []\n const wrapperParts = []\n const wrapperComp = (\n <span className=\"dnb-accordion__header__wrapper\" key=\"wrapper\">\n {wrapperParts}\n </span>\n )\n\n defaultParts.forEach((part) => {\n if (\n React.isValidElement(part) &&\n (part.type === AccordionHeaderTitle ||\n part.type === AccordionHeaderDescription)\n ) {\n wrapperParts.push(part)\n if (partsToRender.findIndex((c) => c === wrapperComp) === -1) {\n partsToRender.push(wrapperComp)\n }\n } else {\n partsToRender.push(part)\n }\n })\n\n // position the icon to the right, if the element is not in the beginning\n if (icon_position === undefined) {\n const iconIndex = partsToRender.findIndex(\n (c) => c.type === AccordionHeaderIcon\n )\n // because of the container at the beginning, we use 1\n if (iconIndex > 1) {\n icon_position = 'right'\n }\n\n if (left_component) {\n icon_position = 'right'\n }\n }\n\n const headerParams = {\n id: `${id}-header`,\n 'aria-controls': `${id}-content`,\n 'aria-expanded': context.expanded,\n role: 'button',\n tabIndex: 0,\n className: classnames(\n 'dnb-accordion__header',\n variant && `dnb-accordion__header--${variant}`,\n context.expanded && 'dnb-accordion__header--expanded',\n icon_position && `dnb-accordion__header--icon-${icon_position}`,\n isHovering &&\n hasClicked &&\n context.expanded &&\n 'dnb-accordion__header--after-click',\n !canClick() && 'dnb-accordion__header--prevent-click',\n description && 'dnb-accordion__header--description',\n no_animation && 'dnb-accordion__header--no-animation',\n createSkeletonClass('font', skeleton, context),\n createSpacingClasses(rest),\n className\n ),\n disabled,\n ...rest,\n } satisfies HTMLProps<HTMLElement>\n\n if (disabled || skeleton) {\n headerParams.tabIndex = -1\n headerParams.disabled = true\n headerParams['aria-disabled'] = true\n } else {\n headerParams.onClick = onClickHandler\n headerParams.onKeyDown = onKeyDownHandler\n headerParams.onMouseOver = onMouseOverHandler\n headerParams.onMouseOut = onMouseOutHandler\n }\n\n skeletonDOMAttributes(headerParams, skeleton, context)\n\n validateDOMAttributes(props, headerParams)\n\n let Element = 'div'\n\n // (String(heading) === 'true' || String(heading) === '1') extracted from isTrue function\n if (heading && (String(heading) === 'true' || String(heading) === '1')) {\n headerParams.role = 'heading'\n headerParams['aria-level'] = heading_level ? Number(heading_level) : 2\n } else if (heading) {\n headerParams.role = null\n Element = heading as string\n } else if (element) {\n headerParams.role = null\n Element = element as string\n }\n\n return <Element {...headerParams}>{partsToRender}</Element>\n}\n\nAccordionHeader.Container = AccordionHeaderContainer\nAccordionHeader.Icon = AccordionHeaderIcon\nAccordionHeader.Title = AccordionHeaderTitle\nAccordionHeader.Description = AccordionHeaderDescription\n\nAccordionHeader._supportsSpacingProps = true\n\nexport default AccordionHeader\n"],"mappings":"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"}
@@ -27,6 +27,26 @@ export type AnchorProps = {
27
27
  innerRef?: React.RefObject<HTMLAnchorElement>;
28
28
  /** @deprecated use innerRef instead */
29
29
  inner_ref?: React.RefObject<HTMLAnchorElement>;
30
+ /**
31
+ * Removes default animation.
32
+ * Default: `false`
33
+ */
34
+ noAnimation?: boolean;
35
+ /**
36
+ * Removes default styling.
37
+ * Default: `false`
38
+ */
39
+ noStyle?: boolean;
40
+ /**
41
+ * Removes default hover style.
42
+ * Default: `false`
43
+ */
44
+ noHover?: boolean;
45
+ /**
46
+ * Removes underline.
47
+ * Default: `false`
48
+ */
49
+ noUnderline?: boolean;
30
50
  };
31
51
  export type AnchorAllProps = AnchorProps & Omit<React.HTMLProps<HTMLAnchorElement>, 'ref'> & SpacingProps;
32
52
  export declare function AnchorInstance(localProps: AnchorAllProps): import("react/jsx-runtime").JSX.Element;
@@ -3,7 +3,7 @@
3
3
  import _extends from "@babel/runtime/helpers/esm/extends";
4
4
  import _objectWithoutProperties from "@babel/runtime/helpers/esm/objectWithoutProperties";
5
5
  var _IconPrimary;
6
- const _excluded = ["id", "element", "className", "children", "tooltip", "icon", "iconPosition", "omitClass", "innerRef", "targetBlankTitle"];
6
+ const _excluded = ["id", "element", "className", "children", "tooltip", "icon", "iconPosition", "omitClass", "innerRef", "targetBlankTitle", "noAnimation", "noHover", "noStyle", "noUnderline"];
7
7
  import React from 'react';
8
8
  import classnames from 'classnames';
9
9
  import E from '../../elements/Element';
@@ -13,7 +13,12 @@ import { getOffsetTop } from '../../shared/helpers';
13
13
  import IconPrimary from '../icon-primary/IconPrimary';
14
14
  import Tooltip from '../tooltip/Tooltip';
15
15
  import { launch as launchIcon } from '../../icons';
16
- const defaultProps = {};
16
+ const defaultProps = {
17
+ noAnimation: false,
18
+ noStyle: false,
19
+ noHover: false,
20
+ noUnderline: false
21
+ };
17
22
  export function AnchorInstance(localProps) {
18
23
  const context = React.useContext(Context);
19
24
  const allProps = extendPropsWithContext(localProps, defaultProps, {
@@ -36,7 +41,11 @@ export function AnchorInstance(localProps) {
36
41
  iconPosition = 'left',
37
42
  omitClass,
38
43
  innerRef,
39
- targetBlankTitle
44
+ targetBlankTitle,
45
+ noAnimation,
46
+ noHover,
47
+ noStyle,
48
+ noUnderline
40
49
  } = allProps,
41
50
  rest = _objectWithoutProperties(allProps, _excluded);
42
51
  const attributes = rest;
@@ -55,7 +64,7 @@ export function AnchorInstance(localProps) {
55
64
  return React.createElement(React.Fragment, null, React.createElement(E, _extends({
56
65
  as: as,
57
66
  id: id,
58
- className: classnames(className, omitClass !== true && classnames('dnb-anchor', prefix && 'dnb-anchor--icon-left', suffix && 'dnb-anchor--icon-right', typeof children !== 'string' && 'dnb-anchor--was-node'))
67
+ className: classnames(className, omitClass !== true && classnames('dnb-anchor', prefix && 'dnb-anchor--icon-left', suffix && 'dnb-anchor--icon-right', typeof children !== 'string' && 'dnb-anchor--was-node', noAnimation && 'dnb-anchor--no-animation', noHover && 'dnb-anchor--no-hover', noStyle && 'dnb-anchor--no-style', noUnderline && 'dnb-anchor--no-underline'))
59
68
  }, attributes, {
60
69
  innerRef: innerRef
61
70
  }), prefix, children, suffix), showTooltip && React.createElement(Tooltip, {
@@ -1 +1 @@
1
- {"version":3,"file":"Anchor.js","names":["React","classnames","E","Context","makeUniqueId","extendPropsWithContext","getOffsetTop","IconPrimary","Tooltip","launch","launchIcon","defaultProps","AnchorInstance","localProps","context","useContext","allProps","skeleton","getTranslation","Anchor","inner_ref","innerRef","createRef","id","element","className","children","tooltip","icon","iconPosition","omitClass","targetBlankTitle","rest","_objectWithoutProperties","_excluded","attributes","internalId","as","href","to","_opensNewTab","opensNewTab","target","showLaunchIcon","includes","showTooltip","title","iconNode","getIcon","suffix","_IconPrimary","createElement","prefix","Fragment","_extends","showDelay","targetElement","forwardRef","props","ref","_supportsSpacingProps","scrollToHashHandler","event","_element$pathname","currentTarget","getAttribute","document","isSamePath","startsWith","window","location","pathname","replace","scrollToHash","hash","split","reverse","anchorElem","getElementById","HTMLElement","scrollPadding","parseFloat","getComputedStyle","documentElement","scrollPaddingTop","top","scroll","error","console","pickIcon","_icon$props","_icon$props2","_icon$props2$classNam","_icon$props3","cloneElement","key","test"],"sources":["../../../../src/components/anchor/Anchor.tsx"],"sourcesContent":["/**\n * HTML Element\n *\n */\n\nimport React from 'react'\nimport classnames from 'classnames'\nimport E, { ElementProps } from '../../elements/Element'\nimport Context from '../../shared/Context'\nimport {\n makeUniqueId,\n extendPropsWithContext,\n} from '../../shared/component-helper'\nimport { getOffsetTop } from '../../shared/helpers'\nimport IconPrimary from '../icon-primary/IconPrimary'\nimport Tooltip from '../tooltip/Tooltip'\nimport { launch as launchIcon } from '../../icons'\nimport type { IconIcon } from '../icon/Icon'\nimport type { SkeletonShow } from '../skeleton/Skeleton'\nimport type { DynamicElement, SpacingProps } from '../../shared/types'\n\n// Local type for react-router-dom link with only the necessary props. Done this way to prevent react-router-dom dependency.\ntype ReactRouterLink = Omit<\n React.AnchorHTMLAttributes<HTMLAnchorElement>,\n 'href'\n> & {\n to: string | { pathname?: string; search?: string; has?: string }\n}\n\nexport type AnchorProps = {\n element?:\n | DynamicElement<HTMLAnchorElement | AnchorAllProps>\n | React.ForwardRefExoticComponent<\n ReactRouterLink & React.RefAttributes<HTMLAnchorElement>\n >\n href?: string\n to?: string\n targetBlankTitle?: string\n target?: string\n tooltip?: React.ReactNode\n icon?: IconIcon\n iconPosition?: 'left' | 'right'\n skeleton?: SkeletonShow\n omitClass?: boolean\n innerRef?: React.RefObject<HTMLAnchorElement>\n\n /** @deprecated use innerRef instead */\n inner_ref?: React.RefObject<HTMLAnchorElement>\n}\n\nexport type AnchorAllProps = AnchorProps &\n Omit<React.HTMLProps<HTMLAnchorElement>, 'ref'> &\n SpacingProps\n\nconst defaultProps = {}\n\nexport function AnchorInstance(localProps: AnchorAllProps) {\n const context = React.useContext(Context)\n const allProps = extendPropsWithContext(\n localProps,\n defaultProps,\n { skeleton: context?.skeleton },\n context?.getTranslation(localProps as AnchorAllProps).Anchor,\n context?.Anchor\n )\n\n // deprecated: inner_ref is still needed to support Button's usage of Anchor\n if (typeof allProps.inner_ref !== 'undefined') {\n allProps.innerRef = allProps.inner_ref\n delete allProps.inner_ref\n }\n\n if (!allProps.innerRef) {\n allProps.innerRef = React.createRef()\n }\n\n const {\n id,\n element,\n className,\n children,\n tooltip,\n icon,\n iconPosition = 'left',\n omitClass,\n innerRef,\n targetBlankTitle,\n ...rest\n } = allProps\n\n const attributes = rest as ElementProps\n const internalId = id || 'id' + makeUniqueId()\n const as = element || 'a'\n\n const href = allProps.href || allProps.to\n const _opensNewTab = opensNewTab(allProps.target, href)\n const showLaunchIcon =\n _opensNewTab &&\n !className?.includes('dnb-anchor--no-icon') &&\n !omitClass\n const showTooltip = (tooltip || _opensNewTab) && !allProps.title\n\n const iconNode = icon && getIcon(icon)\n\n const suffix =\n (iconPosition === 'right' && iconNode) ||\n (showLaunchIcon && (\n <IconPrimary className=\"dnb-anchor__launch-icon\" icon={launchIcon} />\n ))\n\n const prefix = iconPosition === 'left' && iconNode\n\n return (\n <>\n <E\n as={as}\n id={id}\n className={classnames(\n omitClass !== true &&\n classnames(\n 'dnb-anchor',\n prefix && 'dnb-anchor--icon-left',\n suffix && 'dnb-anchor--icon-right',\n typeof children !== 'string' && 'dnb-anchor--was-node'\n ),\n className\n )}\n {...attributes}\n innerRef={innerRef}\n >\n {prefix}\n {children}\n {suffix}\n </E>\n\n {showTooltip && (\n <Tooltip\n showDelay={100}\n id={internalId + '-tooltip'}\n targetElement={innerRef}\n tooltip={tooltip}\n >\n {allProps.title || targetBlankTitle}\n </Tooltip>\n )}\n </>\n )\n}\n\nconst Anchor = React.forwardRef(\n (props: AnchorAllProps, ref: React.RefObject<HTMLAnchorElement>) => {\n return <AnchorInstance innerRef={ref} {...props} />\n }\n)\n\n// eslint-disable-next-line @typescript-eslint/ban-ts-comment\n// @ts-ignore\nAnchor._supportsSpacingProps = true\n\nexport default Anchor\n\nexport function scrollToHashHandler(\n event: React.MouseEvent<HTMLAnchorElement, MouseEvent>\n) {\n const element = event.currentTarget as HTMLAnchorElement\n const href = element.getAttribute('href')\n\n if (typeof document === 'undefined' || !href.includes('#')) {\n return // stop here\n }\n\n /**\n * What happens here?\n * When `scroll-behavior: smooth;` in CSS is set,\n * Blink/Chromium wants the user to click two times in order to actually scroll to the anchor hash.\n * The first click, sets the hash, the second one, scrolls to it.\n * We want Chromium browsers to scroll to the element on the first click.\n */\n const isSamePath =\n href.startsWith('#') ||\n window.location.href.includes(element.pathname?.replace(/\\/$/, ''))\n\n // Only continue, when we are sure we are on the same page,\n // because, the same ID may exists occasionally on the current page.\n if (isSamePath) {\n return scrollToHash(href)\n }\n}\n\nexport function scrollToHash(hash: string) {\n if (typeof document === 'undefined' || !hash || !hash.includes('#')) {\n return // stop here\n }\n\n // Only continue, when we are sure we are on the same page,\n // because, the same ID may exists occasionally on the current page.\n const id = hash.split(/#/g).reverse()[0]\n const anchorElem = document.getElementById(id)\n\n if (anchorElem instanceof HTMLElement) {\n try {\n const scrollPadding = parseFloat(\n window.getComputedStyle(document.documentElement).scrollPaddingTop\n )\n const top = getOffsetTop(anchorElem) - scrollPadding || 0\n\n window.scroll({ top })\n\n return { element: anchorElem }\n } catch (error) {\n console.error(error)\n }\n }\n}\n\nfunction getIcon(icon) {\n return pickIcon(icon) || <IconPrimary icon={icon} />\n}\n\nexport function pickIcon(icon, className?: string) {\n return icon?.props?.icon || icon?.props?.className?.includes('dnb-icon')\n ? React.cloneElement(icon, {\n key: 'button-icon-clone',\n className: classnames(icon.props?.className, className),\n })\n : null\n}\n\nexport const opensNewTab = (target: string, href: string): boolean =>\n target === '_blank' && !/^(mailto|tel|sms)/.test(href)\n"],"mappings":"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"}
1
+ {"version":3,"file":"Anchor.js","names":["React","classnames","E","Context","makeUniqueId","extendPropsWithContext","getOffsetTop","IconPrimary","Tooltip","launch","launchIcon","defaultProps","noAnimation","noStyle","noHover","noUnderline","AnchorInstance","localProps","context","useContext","allProps","skeleton","getTranslation","Anchor","inner_ref","innerRef","createRef","id","element","className","children","tooltip","icon","iconPosition","omitClass","targetBlankTitle","rest","_objectWithoutProperties","_excluded","attributes","internalId","as","href","to","_opensNewTab","opensNewTab","target","showLaunchIcon","includes","showTooltip","title","iconNode","getIcon","suffix","_IconPrimary","createElement","prefix","Fragment","_extends","showDelay","targetElement","forwardRef","props","ref","_supportsSpacingProps","scrollToHashHandler","event","_element$pathname","currentTarget","getAttribute","document","isSamePath","startsWith","window","location","pathname","replace","scrollToHash","hash","split","reverse","anchorElem","getElementById","HTMLElement","scrollPadding","parseFloat","getComputedStyle","documentElement","scrollPaddingTop","top","scroll","error","console","pickIcon","_icon$props","_icon$props2","_icon$props2$classNam","_icon$props3","cloneElement","key","test"],"sources":["../../../../src/components/anchor/Anchor.tsx"],"sourcesContent":["/**\n * HTML Element\n *\n */\n\nimport React from 'react'\nimport classnames from 'classnames'\nimport E, { ElementProps } from '../../elements/Element'\nimport Context from '../../shared/Context'\nimport {\n makeUniqueId,\n extendPropsWithContext,\n} from '../../shared/component-helper'\nimport { getOffsetTop } from '../../shared/helpers'\nimport IconPrimary from '../icon-primary/IconPrimary'\nimport Tooltip from '../tooltip/Tooltip'\nimport { launch as launchIcon } from '../../icons'\nimport type { IconIcon } from '../icon/Icon'\nimport type { SkeletonShow } from '../skeleton/Skeleton'\nimport type { DynamicElement, SpacingProps } from '../../shared/types'\n\n// Local type for react-router-dom link with only the necessary props. Done this way to prevent react-router-dom dependency.\ntype ReactRouterLink = Omit<\n React.AnchorHTMLAttributes<HTMLAnchorElement>,\n 'href'\n> & {\n to: string | { pathname?: string; search?: string; has?: string }\n}\n\nexport type AnchorProps = {\n element?:\n | DynamicElement<HTMLAnchorElement | AnchorAllProps>\n | React.ForwardRefExoticComponent<\n ReactRouterLink & React.RefAttributes<HTMLAnchorElement>\n >\n href?: string\n to?: string\n targetBlankTitle?: string\n target?: string\n tooltip?: React.ReactNode\n icon?: IconIcon\n iconPosition?: 'left' | 'right'\n skeleton?: SkeletonShow\n omitClass?: boolean\n innerRef?: React.RefObject<HTMLAnchorElement>\n\n /** @deprecated use innerRef instead */\n inner_ref?: React.RefObject<HTMLAnchorElement>\n /**\n * Removes default animation.\n * Default: `false`\n */\n noAnimation?: boolean\n /**\n * Removes default styling.\n * Default: `false`\n */\n noStyle?: boolean\n /**\n * Removes default hover style.\n * Default: `false`\n */\n noHover?: boolean\n /**\n * Removes underline.\n * Default: `false`\n */\n noUnderline?: boolean\n}\n\nexport type AnchorAllProps = AnchorProps &\n Omit<React.HTMLProps<HTMLAnchorElement>, 'ref'> &\n SpacingProps\n\nconst defaultProps = {\n noAnimation: false,\n noStyle: false,\n noHover: false,\n noUnderline: false,\n}\n\nexport function AnchorInstance(localProps: AnchorAllProps) {\n const context = React.useContext(Context)\n const allProps = extendPropsWithContext(\n localProps,\n defaultProps,\n { skeleton: context?.skeleton },\n context?.getTranslation(localProps as AnchorAllProps).Anchor,\n context?.Anchor\n )\n\n // deprecated: inner_ref is still needed to support Button's usage of Anchor\n if (typeof allProps.inner_ref !== 'undefined') {\n allProps.innerRef = allProps.inner_ref\n delete allProps.inner_ref\n }\n\n if (!allProps.innerRef) {\n allProps.innerRef = React.createRef()\n }\n\n const {\n id,\n element,\n className,\n children,\n tooltip,\n icon,\n iconPosition = 'left',\n omitClass,\n innerRef,\n targetBlankTitle,\n noAnimation,\n noHover,\n noStyle,\n noUnderline,\n ...rest\n } = allProps\n\n const attributes = rest as ElementProps\n const internalId = id || 'id' + makeUniqueId()\n const as = element || 'a'\n\n const href = allProps.href || allProps.to\n const _opensNewTab = opensNewTab(allProps.target, href)\n const showLaunchIcon =\n _opensNewTab &&\n !className?.includes('dnb-anchor--no-icon') &&\n !omitClass\n const showTooltip = (tooltip || _opensNewTab) && !allProps.title\n\n const iconNode = icon && getIcon(icon)\n\n const suffix =\n (iconPosition === 'right' && iconNode) ||\n (showLaunchIcon && (\n <IconPrimary className=\"dnb-anchor__launch-icon\" icon={launchIcon} />\n ))\n\n const prefix = iconPosition === 'left' && iconNode\n\n return (\n <>\n <E\n as={as}\n id={id}\n className={classnames(\n omitClass !== true &&\n classnames(\n 'dnb-anchor',\n prefix && 'dnb-anchor--icon-left',\n suffix && 'dnb-anchor--icon-right',\n typeof children !== 'string' && 'dnb-anchor--was-node',\n noAnimation && 'dnb-anchor--no-animation',\n noHover && 'dnb-anchor--no-hover',\n noStyle && 'dnb-anchor--no-style',\n noUnderline && 'dnb-anchor--no-underline'\n ),\n className\n )}\n {...attributes}\n innerRef={innerRef}\n >\n {prefix}\n {children}\n {suffix}\n </E>\n\n {showTooltip && (\n <Tooltip\n showDelay={100}\n id={internalId + '-tooltip'}\n targetElement={innerRef}\n tooltip={tooltip}\n >\n {allProps.title || targetBlankTitle}\n </Tooltip>\n )}\n </>\n )\n}\n\nconst Anchor = React.forwardRef(\n (props: AnchorAllProps, ref: React.RefObject<HTMLAnchorElement>) => {\n return <AnchorInstance innerRef={ref} {...props} />\n }\n)\n\n// eslint-disable-next-line @typescript-eslint/ban-ts-comment\n// @ts-ignore\nAnchor._supportsSpacingProps = true\n\nexport default Anchor\n\nexport function scrollToHashHandler(\n event: React.MouseEvent<HTMLAnchorElement, MouseEvent>\n) {\n const element = event.currentTarget as HTMLAnchorElement\n const href = element.getAttribute('href')\n\n if (typeof document === 'undefined' || !href.includes('#')) {\n return // stop here\n }\n\n /**\n * What happens here?\n * When `scroll-behavior: smooth;` in CSS is set,\n * Blink/Chromium wants the user to click two times in order to actually scroll to the anchor hash.\n * The first click, sets the hash, the second one, scrolls to it.\n * We want Chromium browsers to scroll to the element on the first click.\n */\n const isSamePath =\n href.startsWith('#') ||\n window.location.href.includes(element.pathname?.replace(/\\/$/, ''))\n\n // Only continue, when we are sure we are on the same page,\n // because, the same ID may exists occasionally on the current page.\n if (isSamePath) {\n return scrollToHash(href)\n }\n}\n\nexport function scrollToHash(hash: string) {\n if (typeof document === 'undefined' || !hash || !hash.includes('#')) {\n return // stop here\n }\n\n // Only continue, when we are sure we are on the same page,\n // because, the same ID may exists occasionally on the current page.\n const id = hash.split(/#/g).reverse()[0]\n const anchorElem = document.getElementById(id)\n\n if (anchorElem instanceof HTMLElement) {\n try {\n const scrollPadding = parseFloat(\n window.getComputedStyle(document.documentElement).scrollPaddingTop\n )\n const top = getOffsetTop(anchorElem) - scrollPadding || 0\n\n window.scroll({ top })\n\n return { element: anchorElem }\n } catch (error) {\n console.error(error)\n }\n }\n}\n\nfunction getIcon(icon) {\n return pickIcon(icon) || <IconPrimary icon={icon} />\n}\n\nexport function pickIcon(icon, className?: string) {\n return icon?.props?.icon || icon?.props?.className?.includes('dnb-icon')\n ? React.cloneElement(icon, {\n key: 'button-icon-clone',\n className: classnames(icon.props?.className, className),\n })\n : null\n}\n\nexport const opensNewTab = (target: string, href: string): boolean =>\n target === '_blank' && !/^(mailto|tel|sms)/.test(href)\n"],"mappings":"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"}
@@ -0,0 +1,3 @@
1
+ import { PropertiesTableProps } from '../../shared/types';
2
+ export declare const AnchorProperties: PropertiesTableProps;
3
+ export declare const AnchorEvents: PropertiesTableProps;
@@ -0,0 +1,74 @@
1
+ export const AnchorProperties = {
2
+ element: {
3
+ doc: 'Define what HTML or React element should be used (e.g. `element={Link}`). Defaults to semantic `a` element.',
4
+ type: 'React.Element',
5
+ status: 'optional'
6
+ },
7
+ href: {
8
+ doc: 'Relative or absolute url.',
9
+ type: 'string',
10
+ status: 'optional'
11
+ },
12
+ to: {
13
+ doc: 'Use this prop only if you are using a router Link component as the `element` that uses the `to` property to declare the navigation url.',
14
+ type: 'string',
15
+ status: 'optional'
16
+ },
17
+ target: {
18
+ doc: 'Defines the opening method. Use `_blank` to open a new browser window/tab.',
19
+ type: 'string',
20
+ status: 'optional'
21
+ },
22
+ targetBlankTitle: {
23
+ doc: 'The title shown as a tooltip when target is set to `_blank`.',
24
+ type: 'string',
25
+ status: 'optional'
26
+ },
27
+ tooltip: {
28
+ doc: 'Provide a string or a React Element to be shown as the tooltip content.',
29
+ type: 'string',
30
+ status: 'optional'
31
+ },
32
+ icon: {
33
+ doc: '[Primary Icons](/icons/primary) can be set as a string (e.g. icon="chevron_right"), other icons should be set as React elements.',
34
+ type: 'React.Node',
35
+ status: 'optional'
36
+ },
37
+ iconPosition: {
38
+ doc: '`left` (default) or `right`. Places icon to the left or to the right of the text.',
39
+ type: 'string',
40
+ status: 'optional'
41
+ },
42
+ noAnimation: {
43
+ doc: 'Removes animations if set to `true`. Defaults to `false`.',
44
+ type: 'boolean',
45
+ status: 'optional'
46
+ },
47
+ noHover: {
48
+ doc: 'Removes hover effects if set to `true`. Defaults to `false`.',
49
+ type: 'boolean',
50
+ status: 'optional'
51
+ },
52
+ noStyle: {
53
+ doc: 'Removes styling if set to `true`. Defaults to `false`.',
54
+ type: 'boolean',
55
+ status: 'optional'
56
+ },
57
+ noUnderline: {
58
+ doc: 'Removes underline if set to `true`. Defaults to `false`.',
59
+ type: 'boolean',
60
+ status: 'optional'
61
+ },
62
+ skeleton: {
63
+ doc: 'If set to `true`, an overlaying skeleton with animation will be shown.',
64
+ type: 'boolean',
65
+ status: 'optional'
66
+ },
67
+ '[Space](/uilib/layout/space/properties)': {
68
+ doc: 'Spacing properties like `top` or `bottom` are supported.',
69
+ type: ['string', 'object'],
70
+ status: 'optional'
71
+ }
72
+ };
73
+ export const AnchorEvents = {};
74
+ //# sourceMappingURL=AnchorDocs.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"AnchorDocs.js","names":["AnchorProperties","element","doc","type","status","href","to","target","targetBlankTitle","tooltip","icon","iconPosition","noAnimation","noHover","noStyle","noUnderline","skeleton","AnchorEvents"],"sources":["../../../../src/components/anchor/AnchorDocs.ts"],"sourcesContent":["import { PropertiesTableProps } from '../../shared/types'\n\nexport const AnchorProperties: PropertiesTableProps = {\n element: {\n doc: 'Define what HTML or React element should be used (e.g. `element={Link}`). Defaults to semantic `a` element.',\n type: 'React.Element',\n status: 'optional',\n },\n href: {\n doc: 'Relative or absolute url.',\n type: 'string',\n status: 'optional',\n },\n to: {\n doc: 'Use this prop only if you are using a router Link component as the `element` that uses the `to` property to declare the navigation url.',\n type: 'string',\n status: 'optional',\n },\n target: {\n doc: 'Defines the opening method. Use `_blank` to open a new browser window/tab.',\n type: 'string',\n status: 'optional',\n },\n targetBlankTitle: {\n doc: 'The title shown as a tooltip when target is set to `_blank`.',\n type: 'string',\n status: 'optional',\n },\n tooltip: {\n doc: 'Provide a string or a React Element to be shown as the tooltip content.',\n type: 'string',\n status: 'optional',\n },\n icon: {\n doc: '[Primary Icons](/icons/primary) can be set as a string (e.g. icon=\"chevron_right\"), other icons should be set as React elements.',\n type: 'React.Node',\n status: 'optional',\n },\n iconPosition: {\n doc: '`left` (default) or `right`. Places icon to the left or to the right of the text.',\n type: 'string',\n status: 'optional',\n },\n noAnimation: {\n doc: 'Removes animations if set to `true`. Defaults to `false`.',\n type: 'boolean',\n status: 'optional',\n },\n noHover: {\n doc: 'Removes hover effects if set to `true`. Defaults to `false`.',\n type: 'boolean',\n status: 'optional',\n },\n noStyle: {\n doc: 'Removes styling if set to `true`. Defaults to `false`.',\n type: 'boolean',\n status: 'optional',\n },\n noUnderline: {\n doc: 'Removes underline if set to `true`. Defaults to `false`.',\n type: 'boolean',\n status: 'optional',\n },\n skeleton: {\n doc: 'If set to `true`, an overlaying skeleton with animation will be shown.',\n type: 'boolean',\n status: 'optional',\n },\n '[Space](/uilib/layout/space/properties)': {\n doc: 'Spacing properties like `top` or `bottom` are supported.',\n type: ['string', 'object'],\n status: 'optional',\n },\n}\n\nexport const AnchorEvents: PropertiesTableProps = {}\n"],"mappings":"AAEA,OAAO,MAAMA,gBAAsC,GAAG;EACpDC,OAAO,EAAE;IACPC,GAAG,EAAE,6GAA6G;IAClHC,IAAI,EAAE,eAAe;IACrBC,MAAM,EAAE;EACV,CAAC;EACDC,IAAI,EAAE;IACJH,GAAG,EAAE,2BAA2B;IAChCC,IAAI,EAAE,QAAQ;IACdC,MAAM,EAAE;EACV,CAAC;EACDE,EAAE,EAAE;IACFJ,GAAG,EAAE,yIAAyI;IAC9IC,IAAI,EAAE,QAAQ;IACdC,MAAM,EAAE;EACV,CAAC;EACDG,MAAM,EAAE;IACNL,GAAG,EAAE,4EAA4E;IACjFC,IAAI,EAAE,QAAQ;IACdC,MAAM,EAAE;EACV,CAAC;EACDI,gBAAgB,EAAE;IAChBN,GAAG,EAAE,8DAA8D;IACnEC,IAAI,EAAE,QAAQ;IACdC,MAAM,EAAE;EACV,CAAC;EACDK,OAAO,EAAE;IACPP,GAAG,EAAE,yEAAyE;IAC9EC,IAAI,EAAE,QAAQ;IACdC,MAAM,EAAE;EACV,CAAC;EACDM,IAAI,EAAE;IACJR,GAAG,EAAE,kIAAkI;IACvIC,IAAI,EAAE,YAAY;IAClBC,MAAM,EAAE;EACV,CAAC;EACDO,YAAY,EAAE;IACZT,GAAG,EAAE,mFAAmF;IACxFC,IAAI,EAAE,QAAQ;IACdC,MAAM,EAAE;EACV,CAAC;EACDQ,WAAW,EAAE;IACXV,GAAG,EAAE,2DAA2D;IAChEC,IAAI,EAAE,SAAS;IACfC,MAAM,EAAE;EACV,CAAC;EACDS,OAAO,EAAE;IACPX,GAAG,EAAE,8DAA8D;IACnEC,IAAI,EAAE,SAAS;IACfC,MAAM,EAAE;EACV,CAAC;EACDU,OAAO,EAAE;IACPZ,GAAG,EAAE,wDAAwD;IAC7DC,IAAI,EAAE,SAAS;IACfC,MAAM,EAAE;EACV,CAAC;EACDW,WAAW,EAAE;IACXb,GAAG,EAAE,0DAA0D;IAC/DC,IAAI,EAAE,SAAS;IACfC,MAAM,EAAE;EACV,CAAC;EACDY,QAAQ,EAAE;IACRd,GAAG,EAAE,wEAAwE;IAC7EC,IAAI,EAAE,SAAS;IACfC,MAAM,EAAE;EACV,CAAC;EACD,yCAAyC,EAAE;IACzCF,GAAG,EAAE,0DAA0D;IAC/DC,IAAI,EAAE,CAAC,QAAQ,EAAE,QAAQ,CAAC;IAC1BC,MAAM,EAAE;EACV;AACF,CAAC;AAED,OAAO,MAAMa,YAAkC,GAAG,CAAC,CAAC"}
@@ -25,7 +25,7 @@ import ProgressIndicator from '../progress-indicator/ProgressIndicator';
25
25
  import DrawerList, { ItemContent } from '../../fragments/drawer-list/DrawerList';
26
26
  import DrawerListContext from '../../fragments/drawer-list/DrawerListContext';
27
27
  import DrawerListProvider from '../../fragments/drawer-list/DrawerListProvider';
28
- import { drawerListPropTypes, parseContentTitle, getCurrentData, getCurrentIndex } from '../../fragments/drawer-list/DrawerListHelpers';
28
+ import { drawerListPropTypes, parseContentTitle, getCurrentData, getCurrentIndex, normalizeData } from '../../fragments/drawer-list/DrawerListHelpers';
29
29
  export default class Autocomplete extends React.PureComponent {
30
30
  constructor(props) {
31
31
  super(props);
@@ -239,11 +239,25 @@ class AutocompleteInstance extends React.PureComponent {
239
239
  }
240
240
  static getDerivedStateFromProps(props, state) {
241
241
  if (state._listenForPropChanges) {
242
- var _props$input_value;
242
+ var _props$input_value, _props$data, _state$prevData;
243
243
  state.disableHighlighting = isTrue(props.disable_highlighting);
244
- if (props.input_value !== 'initval' && typeof state.inputValue === 'undefined' && ((_props$input_value = props.input_value) === null || _props$input_value === void 0 ? void 0 : _props$input_value.length) > 0) {
244
+ if (props.input_value !== 'initval' && ((_props$input_value = props.input_value) === null || _props$input_value === void 0 ? void 0 : _props$input_value.length) > 0) {
245
245
  state.inputValue = props.input_value;
246
246
  }
247
+ if ((props === null || props === void 0 ? void 0 : (_props$data = props.data) === null || _props$data === void 0 ? void 0 : _props$data.length) > 0 && (state === null || state === void 0 ? void 0 : (_state$prevData = state.prevData) === null || _state$prevData === void 0 ? void 0 : _state$prevData.length) === 0) {
248
+ let selectedItem = state.selected_item;
249
+ if (props.default_value) {
250
+ selectedItem = props.default_value;
251
+ }
252
+ if (!props.default_value && props.value && props.value !== 'initval') {
253
+ selectedItem = props.value;
254
+ }
255
+ const currentData = getCurrentData(selectedItem, normalizeData(props.data));
256
+ state.inputValue = parseContentTitle(currentData, {
257
+ separator: ' ',
258
+ preferSelectedValue: true
259
+ });
260
+ }
247
261
  if (props.data !== state.prevData) {
248
262
  state.updateData(props.data);
249
263
  state.prevData = props.data;