@dnb/eufemia 10.20.0 → 10.22.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 (1062) hide show
  1. package/CHANGELOG.md +54 -0
  2. package/cjs/components/aria-live/useAriaLive.d.ts +1 -1
  3. package/cjs/components/breadcrumb/Breadcrumb.d.ts +2 -2
  4. package/cjs/components/breadcrumb/Breadcrumb.js +3 -3
  5. package/cjs/components/breadcrumb/Breadcrumb.js.map +1 -1
  6. package/cjs/components/breadcrumb/style/dnb-breadcrumb.css +7 -2
  7. package/cjs/components/breadcrumb/style/dnb-breadcrumb.min.css +1 -1
  8. package/cjs/components/breadcrumb/style/dnb-breadcrumb.scss +10 -2
  9. package/cjs/components/button/Button.js +2 -2
  10. package/cjs/components/button/Button.js.map +1 -1
  11. package/cjs/components/button/style/themes/dnb-button-theme-sbanken.css +23 -11
  12. package/cjs/components/button/style/themes/dnb-button-theme-sbanken.min.css +3 -3
  13. package/cjs/components/button/style/themes/dnb-button-theme-sbanken.scss +30 -14
  14. package/cjs/components/card/style/dnb-card.css +11 -2
  15. package/cjs/components/card/style/dnb-card.min.css +1 -1
  16. package/cjs/components/card/style/dnb-card.scss +12 -2
  17. package/cjs/components/date-picker/DatePicker.d.ts +10 -1
  18. package/cjs/components/date-picker/DatePicker.js +5 -2
  19. package/cjs/components/date-picker/DatePicker.js.map +1 -1
  20. package/cjs/components/form-label/style/dnb-form-label.css +4 -8
  21. package/cjs/components/form-label/style/dnb-form-label.min.css +1 -1
  22. package/cjs/components/form-label/style/dnb-form-label.scss +5 -8
  23. package/cjs/components/form-status/style/dnb-form-status.css +11 -0
  24. package/cjs/components/form-status/style/dnb-form-status.min.css +1 -1
  25. package/cjs/components/form-status/style/dnb-form-status.scss +11 -0
  26. package/cjs/components/global-status/GlobalStatus.d.ts +1 -1
  27. package/cjs/components/global-status/GlobalStatusProvider.d.ts +1 -1
  28. package/cjs/components/height-animation/HeightAnimationInstance.d.ts +5 -6
  29. package/cjs/components/height-animation/HeightAnimationInstance.js +12 -12
  30. package/cjs/components/height-animation/HeightAnimationInstance.js.map +1 -1
  31. package/cjs/components/height-animation/useHeightAnimation.js +11 -10
  32. package/cjs/components/height-animation/useHeightAnimation.js.map +1 -1
  33. package/cjs/components/info-card/InfoCard.d.ts +6 -0
  34. package/cjs/components/info-card/InfoCard.js +4 -2
  35. package/cjs/components/info-card/InfoCard.js.map +1 -1
  36. package/cjs/components/info-card/style/dnb-info-card.css +3 -1
  37. package/cjs/components/info-card/style/dnb-info-card.min.css +1 -1
  38. package/cjs/components/info-card/style/dnb-info-card.scss +4 -2
  39. package/cjs/components/input/Input.d.ts +9 -9
  40. package/cjs/components/input/InputDocs.d.ts +2 -0
  41. package/cjs/components/input/InputDocs.js +165 -0
  42. package/cjs/components/input/InputDocs.js.map +1 -0
  43. package/cjs/components/input/InputPassword.d.ts +6 -17
  44. package/cjs/components/input/InputPassword.js +4 -85
  45. package/cjs/components/input/InputPassword.js.map +1 -1
  46. package/cjs/components/input-masked/InputMasked.d.ts +6 -93
  47. package/cjs/components/input-masked/InputMasked.js +3 -1
  48. package/cjs/components/input-masked/InputMasked.js.map +1 -1
  49. package/cjs/components/input-masked/InputMaskedDocs.d.ts +2 -0
  50. package/cjs/components/input-masked/InputMaskedDocs.js +85 -0
  51. package/cjs/components/input-masked/InputMaskedDocs.js.map +1 -0
  52. package/cjs/components/input-masked/InputMaskedHooks.js +7 -4
  53. package/cjs/components/input-masked/InputMaskedHooks.js.map +1 -1
  54. package/cjs/components/input-masked/MultiInputMask.js +2 -6
  55. package/cjs/components/input-masked/MultiInputMask.js.map +1 -1
  56. package/cjs/components/input-masked/style/dnb-input-masked.css +3 -0
  57. package/cjs/components/input-masked/style/dnb-input-masked.min.css +1 -1
  58. package/cjs/components/input-masked/style/dnb-input-masked.scss +5 -0
  59. package/cjs/components/number-format/NumberFormat.d.ts +1 -1
  60. package/cjs/components/number-format/NumberUtils.js +22 -14
  61. package/cjs/components/number-format/NumberUtils.js.map +1 -1
  62. package/cjs/components/pagination/InfinityScroller.d.ts +1 -1
  63. package/cjs/components/progress-indicator/ProgressIndicator.js +5 -7
  64. package/cjs/components/progress-indicator/ProgressIndicator.js.map +1 -1
  65. package/cjs/components/progress-indicator/ProgressIndicatorCircular.js +1 -1
  66. package/cjs/components/progress-indicator/ProgressIndicatorCircular.js.map +1 -1
  67. package/cjs/components/progress-indicator/ProgressIndicatorLinear.js +4 -4
  68. package/cjs/components/progress-indicator/ProgressIndicatorLinear.js.map +1 -1
  69. package/cjs/components/progress-indicator/style/dnb-progress-indicator.css +5 -2
  70. package/cjs/components/progress-indicator/style/dnb-progress-indicator.min.css +1 -1
  71. package/cjs/components/progress-indicator/style/dnb-progress-indicator.scss +5 -2
  72. package/cjs/components/slider/Slider.d.ts +1 -0
  73. package/cjs/components/slider/Slider.js +10 -1
  74. package/cjs/components/slider/Slider.js.map +1 -1
  75. package/cjs/components/slider/SliderInstance.js +20 -6
  76. package/cjs/components/slider/SliderInstance.js.map +1 -1
  77. package/cjs/components/slider/SliderMarker.d.ts +7 -0
  78. package/cjs/components/slider/SliderMarker.js +62 -0
  79. package/cjs/components/slider/SliderMarker.js.map +1 -0
  80. package/cjs/components/slider/SliderProvider.js +2 -1
  81. package/cjs/components/slider/SliderProvider.js.map +1 -1
  82. package/cjs/components/slider/style/dnb-slider.css +43 -2
  83. package/cjs/components/slider/style/dnb-slider.min.css +1 -1
  84. package/cjs/components/slider/style/dnb-slider.scss +44 -1
  85. package/cjs/components/slider/style/themes/dnb-slider-theme-sbanken.css +3 -0
  86. package/cjs/components/slider/style/themes/dnb-slider-theme-sbanken.min.css +1 -1
  87. package/cjs/components/slider/style/themes/dnb-slider-theme-sbanken.scss +4 -0
  88. package/cjs/components/slider/style/themes/dnb-slider-theme-ui.css +3 -0
  89. package/cjs/components/slider/style/themes/dnb-slider-theme-ui.min.css +1 -1
  90. package/cjs/components/slider/style/themes/dnb-slider-theme-ui.scss +5 -0
  91. package/cjs/components/slider/types.d.ts +6 -0
  92. package/cjs/components/slider/types.js.map +1 -1
  93. package/cjs/components/space/SpacingHelper.d.ts +5 -5
  94. package/cjs/components/table/Table.js +2 -2
  95. package/cjs/components/table/Table.js.map +1 -1
  96. package/cjs/components/table/TableAccordion.js +42 -58
  97. package/cjs/components/table/TableAccordion.js.map +1 -1
  98. package/cjs/components/table/TableAccordionTd.d.ts +9 -0
  99. package/cjs/components/table/{TableAccordionContent.js → TableAccordionTd.js} +18 -56
  100. package/cjs/components/table/TableAccordionTd.js.map +1 -0
  101. package/cjs/components/table/TableAccordionTr.d.ts +13 -0
  102. package/cjs/components/table/TableAccordionTr.js +61 -0
  103. package/cjs/components/table/TableAccordionTr.js.map +1 -0
  104. package/cjs/components/table/TableContext.d.ts +2 -2
  105. package/cjs/components/table/TableContext.js +4 -3
  106. package/cjs/components/table/TableContext.js.map +1 -1
  107. package/cjs/components/table/TableTd.d.ts +2 -2
  108. package/cjs/components/table/TableTd.js +2 -2
  109. package/cjs/components/table/TableTd.js.map +1 -1
  110. package/cjs/components/table/TableTr.d.ts +6 -1
  111. package/cjs/components/table/TableTr.js +10 -5
  112. package/cjs/components/table/TableTr.js.map +1 -1
  113. package/cjs/components/table/style/dnb-table.css +226 -139
  114. package/cjs/components/table/style/dnb-table.min.css +1 -1
  115. package/cjs/components/table/style/dnb-table.scss +60 -4
  116. package/cjs/components/table/style/table-accordion.scss +83 -98
  117. package/cjs/components/table/style/table-container.scss +9 -9
  118. package/cjs/components/table/style/table-mixins.scss +19 -2
  119. package/cjs/components/table/style/table-td.scss +82 -60
  120. package/cjs/components/table/style/table-th.scss +5 -30
  121. package/cjs/components/table/style/table-tr.scss +0 -20
  122. package/cjs/components/table/style/themes/dnb-table-theme-sbanken.css +34 -7
  123. package/cjs/components/table/style/themes/dnb-table-theme-sbanken.min.css +3 -1
  124. package/cjs/components/table/style/themes/dnb-table-theme-sbanken.scss +29 -10
  125. package/cjs/components/table/style/themes/dnb-table-theme-ui.css +14 -9
  126. package/cjs/components/table/style/themes/dnb-table-theme-ui.min.css +1 -1
  127. package/cjs/components/table/style/themes/dnb-table-theme-ui.scss +12 -22
  128. package/cjs/components/table/useTableAnimationHandler.d.ts +20 -0
  129. package/cjs/components/table/useTableAnimationHandler.js +73 -0
  130. package/cjs/components/table/useTableAnimationHandler.js.map +1 -0
  131. package/cjs/components/textarea/Textarea.d.ts +4 -10
  132. package/cjs/components/textarea/TextareaDocs.d.ts +2 -0
  133. package/cjs/components/textarea/TextareaDocs.js +105 -0
  134. package/cjs/components/textarea/TextareaDocs.js.map +1 -0
  135. package/cjs/components/textarea/style/dnb-textarea.css +1 -0
  136. package/cjs/components/textarea/style/dnb-textarea.min.css +1 -1
  137. package/cjs/components/textarea/style/dnb-textarea.scss +3 -0
  138. package/cjs/components/upload/UploadInfo.js +1 -1
  139. package/cjs/components/upload/UploadInfo.js.map +1 -1
  140. package/cjs/core/jest/jestSetupScreenshots.css +7 -0
  141. package/cjs/elements/blockquote/style/themes/dnb-blockquote-theme-sbanken.scss +1 -0
  142. package/cjs/elements/lib.d.ts +1 -1
  143. package/cjs/elements/lists/Dl.d.ts +5 -1
  144. package/cjs/elements/lists/Dl.js +5 -4
  145. package/cjs/elements/lists/Dl.js.map +1 -1
  146. package/cjs/elements/lists/style/lists-mixins.scss +24 -1
  147. package/cjs/extensions/forms/DataContext/Context.d.ts +1 -2
  148. package/cjs/extensions/forms/DataContext/Context.js.map +1 -1
  149. package/cjs/extensions/forms/DataContext/Provider/Provider.d.ts +1 -2
  150. package/cjs/extensions/forms/DataContext/Provider/Provider.js +54 -40
  151. package/cjs/extensions/forms/DataContext/Provider/Provider.js.map +1 -1
  152. package/cjs/extensions/forms/Field/Currency/Currency.js +1 -1
  153. package/cjs/extensions/forms/Field/Currency/Currency.js.map +1 -1
  154. package/cjs/extensions/forms/Field/Expiry/Expiry.js +1 -0
  155. package/cjs/extensions/forms/Field/Expiry/Expiry.js.map +1 -1
  156. package/cjs/extensions/forms/Field/FieldDocs.d.ts +3 -0
  157. package/cjs/extensions/forms/Field/FieldDocs.js +18 -0
  158. package/cjs/extensions/forms/Field/FieldDocs.js.map +1 -0
  159. package/cjs/extensions/forms/Field/Number/Number.d.ts +1 -0
  160. package/cjs/extensions/forms/Field/Number/Number.js +13 -7
  161. package/cjs/extensions/forms/Field/Number/Number.js.map +1 -1
  162. package/cjs/extensions/forms/Field/Number/NumberDocs.d.ts +2 -0
  163. package/cjs/extensions/forms/Field/Number/NumberDocs.js +92 -0
  164. package/cjs/extensions/forms/Field/Number/NumberDocs.js.map +1 -0
  165. package/cjs/extensions/forms/Field/Number/style/dnb-number.css +3 -1
  166. package/cjs/extensions/forms/Field/Number/style/dnb-number.min.css +1 -1
  167. package/cjs/extensions/forms/Field/Number/style/dnb-number.scss +4 -1
  168. package/cjs/extensions/forms/Field/Password/Password.d.ts +45 -0
  169. package/cjs/extensions/forms/Field/Password/Password.js +111 -0
  170. package/cjs/extensions/forms/Field/Password/Password.js.map +1 -0
  171. package/cjs/extensions/forms/Field/Password/index.d.ts +2 -0
  172. package/cjs/extensions/forms/Field/Password/index.js +27 -0
  173. package/cjs/extensions/forms/Field/Password/index.js.map +1 -0
  174. package/cjs/extensions/forms/Field/Password/style/dnb-password.css +6 -0
  175. package/cjs/extensions/forms/Field/Password/style/dnb-password.min.css +1 -0
  176. package/cjs/extensions/forms/Field/Password/style/dnb-password.scss +10 -0
  177. package/cjs/extensions/forms/Field/PostalCodeAndCity/PostalCodeAndCity.js +4 -5
  178. package/cjs/extensions/forms/Field/PostalCodeAndCity/PostalCodeAndCity.js.map +1 -1
  179. package/cjs/extensions/forms/Field/PostalCodeAndCity/style/dnb-postal-code-and-city.css +0 -12
  180. package/cjs/extensions/forms/Field/PostalCodeAndCity/style/dnb-postal-code-and-city.min.css +1 -1
  181. package/cjs/extensions/forms/Field/PostalCodeAndCity/style/dnb-postal-code-and-city.scss +0 -11
  182. package/cjs/extensions/forms/Field/Selection/Selection.d.ts +0 -1
  183. package/cjs/extensions/forms/Field/Selection/Selection.js +1 -9
  184. package/cjs/extensions/forms/Field/Selection/Selection.js.map +1 -1
  185. package/cjs/extensions/forms/Field/String/String.d.ts +20 -9
  186. package/cjs/extensions/forms/Field/String/String.js +52 -31
  187. package/cjs/extensions/forms/Field/String/String.js.map +1 -1
  188. package/cjs/extensions/forms/Field/String/StringDocs.d.ts +2 -0
  189. package/cjs/extensions/forms/Field/String/StringDocs.js +106 -0
  190. package/cjs/extensions/forms/Field/String/StringDocs.js.map +1 -0
  191. package/cjs/extensions/forms/Field/Toggle/Toggle.js +1 -1
  192. package/cjs/extensions/forms/Field/Toggle/Toggle.js.map +1 -1
  193. package/cjs/extensions/forms/Field/index.d.ts +1 -0
  194. package/cjs/extensions/forms/Field/index.js +7 -0
  195. package/cjs/extensions/forms/Field/index.js.map +1 -1
  196. package/cjs/extensions/forms/FieldBlock/FieldBlock.d.ts +8 -3
  197. package/cjs/extensions/forms/FieldBlock/FieldBlock.js +204 -62
  198. package/cjs/extensions/forms/FieldBlock/FieldBlock.js.map +1 -1
  199. package/cjs/extensions/forms/FieldBlock/FieldBlockContext.d.ts +39 -6
  200. package/cjs/extensions/forms/FieldBlock/FieldBlockContext.js.map +1 -1
  201. package/cjs/extensions/forms/FieldBlock/FieldBlockDocs.d.ts +2 -0
  202. package/cjs/extensions/forms/FieldBlock/FieldBlockDocs.js +60 -0
  203. package/cjs/extensions/forms/FieldBlock/FieldBlockDocs.js.map +1 -0
  204. package/cjs/extensions/forms/FieldBlock/style/dnb-field-block.css +29 -2
  205. package/cjs/extensions/forms/FieldBlock/style/dnb-field-block.min.css +1 -1
  206. package/cjs/extensions/forms/FieldBlock/style/dnb-field-block.scss +28 -0
  207. package/cjs/extensions/forms/Form/Appearance/Appearance.d.ts +7 -0
  208. package/cjs/extensions/forms/Form/Appearance/Appearance.js +38 -0
  209. package/cjs/extensions/forms/Form/Appearance/Appearance.js.map +1 -0
  210. package/cjs/extensions/forms/Form/Appearance/AppearanceDocs.d.ts +2 -0
  211. package/cjs/extensions/forms/Form/Appearance/AppearanceDocs.js +15 -0
  212. package/cjs/extensions/forms/Form/Appearance/AppearanceDocs.js.map +1 -0
  213. package/cjs/extensions/forms/Form/Appearance/index.d.ts +2 -0
  214. package/cjs/extensions/forms/Form/Appearance/index.js +27 -0
  215. package/cjs/extensions/forms/Form/Appearance/index.js.map +1 -0
  216. package/cjs/extensions/forms/Form/ButtonRow/style/dnb-form-button-row.css +6 -0
  217. package/cjs/extensions/forms/Form/ButtonRow/style/dnb-form-button-row.min.css +1 -1
  218. package/cjs/extensions/forms/Form/ButtonRow/style/dnb-form-button-row.scss +10 -2
  219. package/cjs/extensions/forms/Form/data-context/useData.d.ts +1 -1
  220. package/cjs/extensions/forms/Form/data-context/useData.js +2 -18
  221. package/cjs/extensions/forms/Form/data-context/useData.js.map +1 -1
  222. package/cjs/extensions/forms/Form/data-context/useError.d.ts +2 -1
  223. package/cjs/extensions/forms/Form/data-context/useError.js +4 -2
  224. package/cjs/extensions/forms/Form/data-context/useError.js.map +1 -1
  225. package/cjs/extensions/forms/Form/index.d.ts +1 -0
  226. package/cjs/extensions/forms/Form/index.js +7 -0
  227. package/cjs/extensions/forms/Form/index.js.map +1 -1
  228. package/cjs/extensions/forms/Value/Currency/Currency.js +2 -2
  229. package/cjs/extensions/forms/Value/Currency/Currency.js.map +1 -1
  230. package/cjs/extensions/forms/Value/Number/Number.d.ts +2 -2
  231. package/cjs/extensions/forms/Value/Number/Number.js +1 -1
  232. package/cjs/extensions/forms/Value/Number/Number.js.map +1 -1
  233. package/cjs/extensions/forms/Value/SummaryList/SummaryList.d.ts +7 -0
  234. package/cjs/extensions/forms/Value/SummaryList/SummaryList.js +35 -0
  235. package/cjs/extensions/forms/Value/SummaryList/SummaryList.js.map +1 -0
  236. package/cjs/extensions/forms/Value/SummaryList/SummaryListContext.d.ts +7 -0
  237. package/cjs/extensions/forms/Value/SummaryList/SummaryListContext.js +12 -0
  238. package/cjs/extensions/forms/Value/SummaryList/SummaryListContext.js.map +1 -0
  239. package/cjs/extensions/forms/Value/SummaryList/index.d.ts +2 -0
  240. package/cjs/extensions/forms/Value/SummaryList/index.js +27 -0
  241. package/cjs/extensions/forms/Value/SummaryList/index.js.map +1 -0
  242. package/cjs/extensions/forms/Value/ValueDocs.d.ts +2 -0
  243. package/cjs/extensions/forms/Value/ValueDocs.js +40 -0
  244. package/cjs/extensions/forms/Value/ValueDocs.js.map +1 -0
  245. package/cjs/extensions/forms/Value/index.d.ts +1 -0
  246. package/cjs/extensions/forms/Value/index.js +7 -0
  247. package/cjs/extensions/forms/Value/index.js.map +1 -1
  248. package/cjs/extensions/forms/ValueBlock/ValueBlock.js +13 -3
  249. package/cjs/extensions/forms/ValueBlock/ValueBlock.js.map +1 -1
  250. package/cjs/extensions/forms/hooks/DataValueDocs.d.ts +3 -0
  251. package/cjs/extensions/forms/hooks/DataValueDocs.js +118 -0
  252. package/cjs/extensions/forms/hooks/DataValueDocs.js.map +1 -0
  253. package/cjs/extensions/forms/hooks/useDataValue.d.ts +6 -14
  254. package/cjs/extensions/forms/hooks/useDataValue.js +90 -21
  255. package/cjs/extensions/forms/hooks/useDataValue.js.map +1 -1
  256. package/cjs/extensions/forms/hooks/useId.js +1 -1
  257. package/cjs/extensions/forms/hooks/useId.js.map +1 -1
  258. package/cjs/extensions/forms/hooks/useMountEffect.js +1 -1
  259. package/cjs/extensions/forms/hooks/useMountEffect.js.map +1 -1
  260. package/cjs/extensions/forms/hooks/useMounted.d.ts +2 -0
  261. package/cjs/extensions/forms/hooks/useMounted.js +19 -0
  262. package/cjs/extensions/forms/hooks/useMounted.js.map +1 -0
  263. package/cjs/extensions/forms/hooks/useUnmountEffect.d.ts +4 -0
  264. package/cjs/extensions/forms/hooks/useUnmountEffect.js +14 -0
  265. package/cjs/extensions/forms/hooks/useUnmountEffect.js.map +1 -0
  266. package/cjs/extensions/forms/style/dnb-forms.css +45 -15
  267. package/cjs/extensions/forms/style/dnb-forms.min.css +1 -1
  268. package/cjs/extensions/forms/types.d.ts +6 -4
  269. package/cjs/extensions/forms/types.js.map +1 -1
  270. package/cjs/extensions/payment-card/utils/CardDesigns.d.ts +96 -96
  271. package/cjs/fragments/drawer-list/DrawerListHelpers.d.ts +52 -52
  272. package/cjs/shared/Context.d.ts +2 -0
  273. package/cjs/shared/Context.js.map +1 -1
  274. package/cjs/shared/Eufemia.d.ts +1 -1
  275. package/cjs/shared/Eufemia.js +2 -2
  276. package/cjs/shared/Eufemia.js.map +1 -1
  277. package/cjs/shared/Theme.d.ts +7 -1
  278. package/cjs/shared/Theme.js +20 -7
  279. package/cjs/shared/Theme.js.map +1 -1
  280. package/cjs/shared/component-helper.d.ts +1 -0
  281. package/cjs/shared/component-helper.js +10 -0
  282. package/cjs/shared/component-helper.js.map +1 -1
  283. package/cjs/shared/helpers/debounce.d.ts +37 -0
  284. package/cjs/shared/helpers/debounce.js +92 -0
  285. package/cjs/shared/helpers/debounce.js.map +1 -0
  286. package/cjs/shared/helpers/filterValidProps.d.ts +2 -2
  287. package/cjs/shared/helpers/filterValidProps.js +2 -2
  288. package/cjs/shared/helpers/filterValidProps.js.map +1 -1
  289. package/cjs/shared/helpers/useSharedState.d.ts +1 -0
  290. package/cjs/shared/helpers/useSharedState.js +52 -20
  291. package/cjs/shared/helpers/useSharedState.js.map +1 -1
  292. package/cjs/shared/helpers/withCamelCaseProps.d.ts +14 -1
  293. package/cjs/shared/helpers/withCamelCaseProps.js.map +1 -1
  294. package/cjs/shared/helpers.d.ts +1 -25
  295. package/cjs/shared/helpers.js +15 -37
  296. package/cjs/shared/helpers.js.map +1 -1
  297. package/cjs/shared/locales/en-GB.d.ts +5 -3
  298. package/cjs/shared/locales/en-GB.js +7 -5
  299. package/cjs/shared/locales/en-GB.js.map +1 -1
  300. package/cjs/shared/locales/en-US.d.ts +5 -3
  301. package/cjs/shared/locales/index.d.ts +10 -6
  302. package/cjs/shared/locales/nb-NO.d.ts +5 -3
  303. package/cjs/shared/locales/nb-NO.js +7 -5
  304. package/cjs/shared/locales/nb-NO.js.map +1 -1
  305. package/cjs/shared/types.d.ts +5 -0
  306. package/cjs/shared/types.js.map +1 -1
  307. package/cjs/shared/useTheme.d.ts +1 -0
  308. package/cjs/style/dnb-ui-components.css +359 -171
  309. package/cjs/style/dnb-ui-components.min.css +3 -3
  310. package/cjs/style/dnb-ui-elements.css +25 -5
  311. package/cjs/style/dnb-ui-elements.min.css +1 -1
  312. package/cjs/style/dnb-ui-extensions.css +45 -15
  313. package/cjs/style/dnb-ui-extensions.min.css +1 -1
  314. package/cjs/style/dnb-ui-forms.css +45 -15
  315. package/cjs/style/dnb-ui-forms.min.css +1 -1
  316. package/cjs/style/dnb-ui-forms.scss +1 -0
  317. package/cjs/style/themes/theme-eiendom/eiendom-theme-basis.css +25 -5
  318. package/cjs/style/themes/theme-eiendom/eiendom-theme-basis.min.css +1 -1
  319. package/cjs/style/themes/theme-eiendom/eiendom-theme-components.css +421 -195
  320. package/cjs/style/themes/theme-eiendom/eiendom-theme-components.min.css +4 -4
  321. package/cjs/style/themes/theme-eiendom/eiendom-theme-elements.css +25 -5
  322. package/cjs/style/themes/theme-eiendom/eiendom-theme-elements.min.css +1 -1
  323. package/cjs/style/themes/theme-eiendom/eiendom-theme-extensions.css +45 -15
  324. package/cjs/style/themes/theme-eiendom/eiendom-theme-extensions.min.css +1 -1
  325. package/cjs/style/themes/theme-eiendom/eiendom-theme-forms.css +45 -15
  326. package/cjs/style/themes/theme-eiendom/eiendom-theme-forms.min.css +1 -1
  327. package/cjs/style/themes/theme-sbanken/sbanken-theme-basis.css +26 -5
  328. package/cjs/style/themes/theme-sbanken/sbanken-theme-basis.min.css +1 -1
  329. package/cjs/style/themes/theme-sbanken/sbanken-theme-components.css +464 -204
  330. package/cjs/style/themes/theme-sbanken/sbanken-theme-components.min.css +8 -6
  331. package/cjs/style/themes/theme-sbanken/sbanken-theme-elements.css +26 -5
  332. package/cjs/style/themes/theme-sbanken/sbanken-theme-elements.min.css +1 -1
  333. package/cjs/style/themes/theme-sbanken/sbanken-theme-extensions.css +45 -15
  334. package/cjs/style/themes/theme-sbanken/sbanken-theme-extensions.min.css +1 -1
  335. package/cjs/style/themes/theme-sbanken/sbanken-theme-forms.css +45 -15
  336. package/cjs/style/themes/theme-sbanken/sbanken-theme-forms.min.css +1 -1
  337. package/cjs/style/themes/theme-ui/prism/dnb-prism-theme.d.ts +3 -3
  338. package/cjs/style/themes/theme-ui/ui-theme-basis.css +25 -5
  339. package/cjs/style/themes/theme-ui/ui-theme-basis.min.css +1 -1
  340. package/cjs/style/themes/theme-ui/ui-theme-components.css +421 -195
  341. package/cjs/style/themes/theme-ui/ui-theme-components.min.css +4 -4
  342. package/cjs/style/themes/theme-ui/ui-theme-elements.css +25 -5
  343. package/cjs/style/themes/theme-ui/ui-theme-elements.min.css +1 -1
  344. package/cjs/style/themes/theme-ui/ui-theme-extensions.css +45 -15
  345. package/cjs/style/themes/theme-ui/ui-theme-extensions.min.css +1 -1
  346. package/cjs/style/themes/theme-ui/ui-theme-forms.css +45 -15
  347. package/cjs/style/themes/theme-ui/ui-theme-forms.min.css +1 -1
  348. package/cjs/style/themes/theme-ui/ui-theme-tags.css +25 -5
  349. package/cjs/style/themes/theme-ui/ui-theme-tags.min.css +1 -1
  350. package/components/aria-live/useAriaLive.d.ts +1 -1
  351. package/components/breadcrumb/Breadcrumb.d.ts +2 -2
  352. package/components/breadcrumb/Breadcrumb.js +3 -3
  353. package/components/breadcrumb/Breadcrumb.js.map +1 -1
  354. package/components/breadcrumb/style/dnb-breadcrumb.css +7 -2
  355. package/components/breadcrumb/style/dnb-breadcrumb.min.css +1 -1
  356. package/components/breadcrumb/style/dnb-breadcrumb.scss +10 -2
  357. package/components/button/Button.js +2 -2
  358. package/components/button/Button.js.map +1 -1
  359. package/components/button/style/themes/dnb-button-theme-sbanken.css +23 -11
  360. package/components/button/style/themes/dnb-button-theme-sbanken.min.css +3 -3
  361. package/components/button/style/themes/dnb-button-theme-sbanken.scss +30 -14
  362. package/components/card/style/dnb-card.css +11 -2
  363. package/components/card/style/dnb-card.min.css +1 -1
  364. package/components/card/style/dnb-card.scss +12 -2
  365. package/components/date-picker/DatePicker.d.ts +10 -1
  366. package/components/date-picker/DatePicker.js +5 -2
  367. package/components/date-picker/DatePicker.js.map +1 -1
  368. package/components/form-label/style/dnb-form-label.css +4 -8
  369. package/components/form-label/style/dnb-form-label.min.css +1 -1
  370. package/components/form-label/style/dnb-form-label.scss +5 -8
  371. package/components/form-status/style/dnb-form-status.css +11 -0
  372. package/components/form-status/style/dnb-form-status.min.css +1 -1
  373. package/components/form-status/style/dnb-form-status.scss +11 -0
  374. package/components/global-status/GlobalStatus.d.ts +1 -1
  375. package/components/global-status/GlobalStatusProvider.d.ts +1 -1
  376. package/components/height-animation/HeightAnimationInstance.d.ts +5 -6
  377. package/components/height-animation/HeightAnimationInstance.js +12 -12
  378. package/components/height-animation/HeightAnimationInstance.js.map +1 -1
  379. package/components/height-animation/useHeightAnimation.js +11 -10
  380. package/components/height-animation/useHeightAnimation.js.map +1 -1
  381. package/components/info-card/InfoCard.d.ts +6 -0
  382. package/components/info-card/InfoCard.js +4 -2
  383. package/components/info-card/InfoCard.js.map +1 -1
  384. package/components/info-card/style/dnb-info-card.css +3 -1
  385. package/components/info-card/style/dnb-info-card.min.css +1 -1
  386. package/components/info-card/style/dnb-info-card.scss +4 -2
  387. package/components/input/Input.d.ts +9 -9
  388. package/components/input/InputDocs.d.ts +2 -0
  389. package/components/input/InputDocs.js +158 -0
  390. package/components/input/InputDocs.js.map +1 -0
  391. package/components/input/InputPassword.d.ts +6 -17
  392. package/components/input/InputPassword.js +3 -81
  393. package/components/input/InputPassword.js.map +1 -1
  394. package/components/input-masked/InputMasked.d.ts +6 -93
  395. package/components/input-masked/InputMasked.js +3 -1
  396. package/components/input-masked/InputMasked.js.map +1 -1
  397. package/components/input-masked/InputMaskedDocs.d.ts +2 -0
  398. package/components/input-masked/InputMaskedDocs.js +78 -0
  399. package/components/input-masked/InputMaskedDocs.js.map +1 -0
  400. package/components/input-masked/InputMaskedHooks.js +7 -4
  401. package/components/input-masked/InputMaskedHooks.js.map +1 -1
  402. package/components/input-masked/MultiInputMask.js +2 -6
  403. package/components/input-masked/MultiInputMask.js.map +1 -1
  404. package/components/input-masked/style/dnb-input-masked.css +3 -0
  405. package/components/input-masked/style/dnb-input-masked.min.css +1 -1
  406. package/components/input-masked/style/dnb-input-masked.scss +5 -0
  407. package/components/number-format/NumberFormat.d.ts +1 -1
  408. package/components/number-format/NumberUtils.js +22 -14
  409. package/components/number-format/NumberUtils.js.map +1 -1
  410. package/components/pagination/InfinityScroller.d.ts +1 -1
  411. package/components/progress-indicator/ProgressIndicator.js +5 -7
  412. package/components/progress-indicator/ProgressIndicator.js.map +1 -1
  413. package/components/progress-indicator/ProgressIndicatorCircular.js +1 -1
  414. package/components/progress-indicator/ProgressIndicatorCircular.js.map +1 -1
  415. package/components/progress-indicator/ProgressIndicatorLinear.js +4 -4
  416. package/components/progress-indicator/ProgressIndicatorLinear.js.map +1 -1
  417. package/components/progress-indicator/style/dnb-progress-indicator.css +5 -2
  418. package/components/progress-indicator/style/dnb-progress-indicator.min.css +1 -1
  419. package/components/progress-indicator/style/dnb-progress-indicator.scss +5 -2
  420. package/components/slider/Slider.d.ts +1 -0
  421. package/components/slider/Slider.js +1 -0
  422. package/components/slider/Slider.js.map +1 -1
  423. package/components/slider/SliderInstance.js +18 -5
  424. package/components/slider/SliderInstance.js.map +1 -1
  425. package/components/slider/SliderMarker.d.ts +7 -0
  426. package/components/slider/SliderMarker.js +53 -0
  427. package/components/slider/SliderMarker.js.map +1 -0
  428. package/components/slider/SliderProvider.js +2 -1
  429. package/components/slider/SliderProvider.js.map +1 -1
  430. package/components/slider/style/dnb-slider.css +43 -2
  431. package/components/slider/style/dnb-slider.min.css +1 -1
  432. package/components/slider/style/dnb-slider.scss +44 -1
  433. package/components/slider/style/themes/dnb-slider-theme-sbanken.css +3 -0
  434. package/components/slider/style/themes/dnb-slider-theme-sbanken.min.css +1 -1
  435. package/components/slider/style/themes/dnb-slider-theme-sbanken.scss +4 -0
  436. package/components/slider/style/themes/dnb-slider-theme-ui.css +3 -0
  437. package/components/slider/style/themes/dnb-slider-theme-ui.min.css +1 -1
  438. package/components/slider/style/themes/dnb-slider-theme-ui.scss +5 -0
  439. package/components/slider/types.d.ts +6 -0
  440. package/components/slider/types.js.map +1 -1
  441. package/components/space/SpacingHelper.d.ts +5 -5
  442. package/components/table/Table.js +1 -1
  443. package/components/table/Table.js.map +1 -1
  444. package/components/table/TableAccordion.js +40 -54
  445. package/components/table/TableAccordion.js.map +1 -1
  446. package/components/table/TableAccordionTd.d.ts +9 -0
  447. package/{es/components/table/TableAccordionContent.js → components/table/TableAccordionTd.js} +16 -50
  448. package/components/table/TableAccordionTd.js.map +1 -0
  449. package/components/table/TableAccordionTr.d.ts +13 -0
  450. package/components/table/TableAccordionTr.js +51 -0
  451. package/components/table/TableAccordionTr.js.map +1 -0
  452. package/components/table/TableContext.d.ts +2 -2
  453. package/components/table/TableContext.js +2 -2
  454. package/components/table/TableContext.js.map +1 -1
  455. package/components/table/TableTd.d.ts +2 -2
  456. package/components/table/TableTd.js +2 -2
  457. package/components/table/TableTd.js.map +1 -1
  458. package/components/table/TableTr.d.ts +6 -1
  459. package/components/table/TableTr.js +9 -4
  460. package/components/table/TableTr.js.map +1 -1
  461. package/components/table/style/dnb-table.css +226 -139
  462. package/components/table/style/dnb-table.min.css +1 -1
  463. package/components/table/style/dnb-table.scss +60 -4
  464. package/components/table/style/table-accordion.scss +83 -98
  465. package/components/table/style/table-container.scss +9 -9
  466. package/components/table/style/table-mixins.scss +19 -2
  467. package/components/table/style/table-td.scss +82 -60
  468. package/components/table/style/table-th.scss +5 -30
  469. package/components/table/style/table-tr.scss +0 -20
  470. package/components/table/style/themes/dnb-table-theme-sbanken.css +34 -7
  471. package/components/table/style/themes/dnb-table-theme-sbanken.min.css +3 -1
  472. package/components/table/style/themes/dnb-table-theme-sbanken.scss +29 -10
  473. package/components/table/style/themes/dnb-table-theme-ui.css +14 -9
  474. package/components/table/style/themes/dnb-table-theme-ui.min.css +1 -1
  475. package/components/table/style/themes/dnb-table-theme-ui.scss +12 -22
  476. package/components/table/useTableAnimationHandler.d.ts +20 -0
  477. package/components/table/useTableAnimationHandler.js +63 -0
  478. package/components/table/useTableAnimationHandler.js.map +1 -0
  479. package/components/textarea/Textarea.d.ts +4 -10
  480. package/components/textarea/TextareaDocs.d.ts +2 -0
  481. package/components/textarea/TextareaDocs.js +98 -0
  482. package/components/textarea/TextareaDocs.js.map +1 -0
  483. package/components/textarea/style/dnb-textarea.css +1 -0
  484. package/components/textarea/style/dnb-textarea.min.css +1 -1
  485. package/components/textarea/style/dnb-textarea.scss +3 -0
  486. package/components/upload/UploadInfo.js +1 -1
  487. package/components/upload/UploadInfo.js.map +1 -1
  488. package/core/jest/jestSetupScreenshots.css +7 -0
  489. package/elements/blockquote/style/themes/dnb-blockquote-theme-sbanken.scss +1 -0
  490. package/elements/lib.d.ts +1 -1
  491. package/elements/lists/Dl.d.ts +5 -1
  492. package/elements/lists/Dl.js +5 -4
  493. package/elements/lists/Dl.js.map +1 -1
  494. package/elements/lists/style/lists-mixins.scss +24 -1
  495. package/es/components/aria-live/useAriaLive.d.ts +1 -1
  496. package/es/components/breadcrumb/Breadcrumb.d.ts +2 -2
  497. package/es/components/breadcrumb/Breadcrumb.js +3 -3
  498. package/es/components/breadcrumb/Breadcrumb.js.map +1 -1
  499. package/es/components/breadcrumb/style/dnb-breadcrumb.css +7 -2
  500. package/es/components/breadcrumb/style/dnb-breadcrumb.min.css +1 -1
  501. package/es/components/breadcrumb/style/dnb-breadcrumb.scss +10 -2
  502. package/es/components/button/Button.js +2 -2
  503. package/es/components/button/Button.js.map +1 -1
  504. package/es/components/button/style/themes/dnb-button-theme-sbanken.css +23 -11
  505. package/es/components/button/style/themes/dnb-button-theme-sbanken.min.css +3 -3
  506. package/es/components/button/style/themes/dnb-button-theme-sbanken.scss +30 -14
  507. package/es/components/card/style/dnb-card.css +11 -2
  508. package/es/components/card/style/dnb-card.min.css +1 -1
  509. package/es/components/card/style/dnb-card.scss +12 -2
  510. package/es/components/date-picker/DatePicker.d.ts +10 -1
  511. package/es/components/date-picker/DatePicker.js +5 -2
  512. package/es/components/date-picker/DatePicker.js.map +1 -1
  513. package/es/components/form-label/style/dnb-form-label.css +4 -8
  514. package/es/components/form-label/style/dnb-form-label.min.css +1 -1
  515. package/es/components/form-label/style/dnb-form-label.scss +5 -8
  516. package/es/components/form-status/style/dnb-form-status.css +11 -0
  517. package/es/components/form-status/style/dnb-form-status.min.css +1 -1
  518. package/es/components/form-status/style/dnb-form-status.scss +11 -0
  519. package/es/components/global-status/GlobalStatus.d.ts +1 -1
  520. package/es/components/global-status/GlobalStatusProvider.d.ts +1 -1
  521. package/es/components/height-animation/HeightAnimationInstance.d.ts +5 -6
  522. package/es/components/height-animation/HeightAnimationInstance.js +12 -12
  523. package/es/components/height-animation/HeightAnimationInstance.js.map +1 -1
  524. package/es/components/height-animation/useHeightAnimation.js +11 -10
  525. package/es/components/height-animation/useHeightAnimation.js.map +1 -1
  526. package/es/components/info-card/InfoCard.d.ts +6 -0
  527. package/es/components/info-card/InfoCard.js +4 -2
  528. package/es/components/info-card/InfoCard.js.map +1 -1
  529. package/es/components/info-card/style/dnb-info-card.css +3 -1
  530. package/es/components/info-card/style/dnb-info-card.min.css +1 -1
  531. package/es/components/info-card/style/dnb-info-card.scss +4 -2
  532. package/es/components/input/Input.d.ts +9 -9
  533. package/es/components/input/InputDocs.d.ts +2 -0
  534. package/es/components/input/InputDocs.js +158 -0
  535. package/es/components/input/InputDocs.js.map +1 -0
  536. package/es/components/input/InputPassword.d.ts +6 -17
  537. package/es/components/input/InputPassword.js +3 -81
  538. package/es/components/input/InputPassword.js.map +1 -1
  539. package/es/components/input-masked/InputMasked.d.ts +6 -93
  540. package/es/components/input-masked/InputMasked.js +3 -1
  541. package/es/components/input-masked/InputMasked.js.map +1 -1
  542. package/es/components/input-masked/InputMaskedDocs.d.ts +2 -0
  543. package/es/components/input-masked/InputMaskedDocs.js +78 -0
  544. package/es/components/input-masked/InputMaskedDocs.js.map +1 -0
  545. package/es/components/input-masked/InputMaskedHooks.js +7 -4
  546. package/es/components/input-masked/InputMaskedHooks.js.map +1 -1
  547. package/es/components/input-masked/MultiInputMask.js +2 -6
  548. package/es/components/input-masked/MultiInputMask.js.map +1 -1
  549. package/es/components/input-masked/style/dnb-input-masked.css +3 -0
  550. package/es/components/input-masked/style/dnb-input-masked.min.css +1 -1
  551. package/es/components/input-masked/style/dnb-input-masked.scss +5 -0
  552. package/es/components/number-format/NumberFormat.d.ts +1 -1
  553. package/es/components/number-format/NumberUtils.js +23 -14
  554. package/es/components/number-format/NumberUtils.js.map +1 -1
  555. package/es/components/pagination/InfinityScroller.d.ts +1 -1
  556. package/es/components/progress-indicator/ProgressIndicator.js +5 -7
  557. package/es/components/progress-indicator/ProgressIndicator.js.map +1 -1
  558. package/es/components/progress-indicator/ProgressIndicatorCircular.js +1 -1
  559. package/es/components/progress-indicator/ProgressIndicatorCircular.js.map +1 -1
  560. package/es/components/progress-indicator/ProgressIndicatorLinear.js +4 -4
  561. package/es/components/progress-indicator/ProgressIndicatorLinear.js.map +1 -1
  562. package/es/components/progress-indicator/style/dnb-progress-indicator.css +5 -2
  563. package/es/components/progress-indicator/style/dnb-progress-indicator.min.css +1 -1
  564. package/es/components/progress-indicator/style/dnb-progress-indicator.scss +5 -2
  565. package/es/components/slider/Slider.d.ts +1 -0
  566. package/es/components/slider/Slider.js +1 -0
  567. package/es/components/slider/Slider.js.map +1 -1
  568. package/es/components/slider/SliderInstance.js +17 -5
  569. package/es/components/slider/SliderInstance.js.map +1 -1
  570. package/es/components/slider/SliderMarker.d.ts +7 -0
  571. package/es/components/slider/SliderMarker.js +52 -0
  572. package/es/components/slider/SliderMarker.js.map +1 -0
  573. package/es/components/slider/SliderProvider.js +2 -1
  574. package/es/components/slider/SliderProvider.js.map +1 -1
  575. package/es/components/slider/style/dnb-slider.css +43 -2
  576. package/es/components/slider/style/dnb-slider.min.css +1 -1
  577. package/es/components/slider/style/dnb-slider.scss +44 -1
  578. package/es/components/slider/style/themes/dnb-slider-theme-sbanken.css +3 -0
  579. package/es/components/slider/style/themes/dnb-slider-theme-sbanken.min.css +1 -1
  580. package/es/components/slider/style/themes/dnb-slider-theme-sbanken.scss +4 -0
  581. package/es/components/slider/style/themes/dnb-slider-theme-ui.css +3 -0
  582. package/es/components/slider/style/themes/dnb-slider-theme-ui.min.css +1 -1
  583. package/es/components/slider/style/themes/dnb-slider-theme-ui.scss +5 -0
  584. package/es/components/slider/types.d.ts +6 -0
  585. package/es/components/slider/types.js.map +1 -1
  586. package/es/components/space/SpacingHelper.d.ts +5 -5
  587. package/es/components/table/Table.js +1 -1
  588. package/es/components/table/Table.js.map +1 -1
  589. package/es/components/table/TableAccordion.js +40 -55
  590. package/es/components/table/TableAccordion.js.map +1 -1
  591. package/es/components/table/TableAccordionTd.d.ts +9 -0
  592. package/{components/table/TableAccordionContent.js → es/components/table/TableAccordionTd.js} +16 -51
  593. package/es/components/table/TableAccordionTd.js.map +1 -0
  594. package/es/components/table/TableAccordionTr.d.ts +13 -0
  595. package/es/components/table/TableAccordionTr.js +51 -0
  596. package/es/components/table/TableAccordionTr.js.map +1 -0
  597. package/es/components/table/TableContext.d.ts +2 -2
  598. package/es/components/table/TableContext.js +2 -2
  599. package/es/components/table/TableContext.js.map +1 -1
  600. package/es/components/table/TableTd.d.ts +2 -2
  601. package/es/components/table/TableTd.js +2 -2
  602. package/es/components/table/TableTd.js.map +1 -1
  603. package/es/components/table/TableTr.d.ts +6 -1
  604. package/es/components/table/TableTr.js +9 -4
  605. package/es/components/table/TableTr.js.map +1 -1
  606. package/es/components/table/style/dnb-table.css +226 -139
  607. package/es/components/table/style/dnb-table.min.css +1 -1
  608. package/es/components/table/style/dnb-table.scss +60 -4
  609. package/es/components/table/style/table-accordion.scss +83 -98
  610. package/es/components/table/style/table-container.scss +9 -9
  611. package/es/components/table/style/table-mixins.scss +19 -2
  612. package/es/components/table/style/table-td.scss +82 -60
  613. package/es/components/table/style/table-th.scss +5 -30
  614. package/es/components/table/style/table-tr.scss +0 -20
  615. package/es/components/table/style/themes/dnb-table-theme-sbanken.css +34 -7
  616. package/es/components/table/style/themes/dnb-table-theme-sbanken.min.css +3 -1
  617. package/es/components/table/style/themes/dnb-table-theme-sbanken.scss +29 -10
  618. package/es/components/table/style/themes/dnb-table-theme-ui.css +14 -9
  619. package/es/components/table/style/themes/dnb-table-theme-ui.min.css +1 -1
  620. package/es/components/table/style/themes/dnb-table-theme-ui.scss +12 -22
  621. package/es/components/table/useTableAnimationHandler.d.ts +20 -0
  622. package/es/components/table/useTableAnimationHandler.js +62 -0
  623. package/es/components/table/useTableAnimationHandler.js.map +1 -0
  624. package/es/components/textarea/Textarea.d.ts +4 -10
  625. package/es/components/textarea/TextareaDocs.d.ts +2 -0
  626. package/es/components/textarea/TextareaDocs.js +98 -0
  627. package/es/components/textarea/TextareaDocs.js.map +1 -0
  628. package/es/components/textarea/style/dnb-textarea.css +1 -0
  629. package/es/components/textarea/style/dnb-textarea.min.css +1 -1
  630. package/es/components/textarea/style/dnb-textarea.scss +3 -0
  631. package/es/components/upload/UploadInfo.js +1 -1
  632. package/es/components/upload/UploadInfo.js.map +1 -1
  633. package/es/core/jest/jestSetupScreenshots.css +7 -0
  634. package/es/elements/blockquote/style/themes/dnb-blockquote-theme-sbanken.scss +1 -0
  635. package/es/elements/lib.d.ts +1 -1
  636. package/es/elements/lists/Dl.d.ts +5 -1
  637. package/es/elements/lists/Dl.js +5 -4
  638. package/es/elements/lists/Dl.js.map +1 -1
  639. package/es/elements/lists/style/lists-mixins.scss +24 -1
  640. package/es/extensions/forms/DataContext/Context.d.ts +1 -2
  641. package/es/extensions/forms/DataContext/Context.js.map +1 -1
  642. package/es/extensions/forms/DataContext/Provider/Provider.d.ts +1 -2
  643. package/es/extensions/forms/DataContext/Provider/Provider.js +54 -40
  644. package/es/extensions/forms/DataContext/Provider/Provider.js.map +1 -1
  645. package/es/extensions/forms/Field/Currency/Currency.js +1 -1
  646. package/es/extensions/forms/Field/Currency/Currency.js.map +1 -1
  647. package/es/extensions/forms/Field/Expiry/Expiry.js +1 -0
  648. package/es/extensions/forms/Field/Expiry/Expiry.js.map +1 -1
  649. package/es/extensions/forms/Field/FieldDocs.d.ts +3 -0
  650. package/es/extensions/forms/Field/FieldDocs.js +8 -0
  651. package/es/extensions/forms/Field/FieldDocs.js.map +1 -0
  652. package/es/extensions/forms/Field/Number/Number.d.ts +1 -0
  653. package/es/extensions/forms/Field/Number/Number.js +13 -7
  654. package/es/extensions/forms/Field/Number/Number.js.map +1 -1
  655. package/es/extensions/forms/Field/Number/NumberDocs.d.ts +2 -0
  656. package/es/extensions/forms/Field/Number/NumberDocs.js +85 -0
  657. package/es/extensions/forms/Field/Number/NumberDocs.js.map +1 -0
  658. package/es/extensions/forms/Field/Number/style/dnb-number.css +3 -1
  659. package/es/extensions/forms/Field/Number/style/dnb-number.min.css +1 -1
  660. package/es/extensions/forms/Field/Number/style/dnb-number.scss +4 -1
  661. package/es/extensions/forms/Field/Password/Password.d.ts +45 -0
  662. package/es/extensions/forms/Field/Password/Password.js +99 -0
  663. package/es/extensions/forms/Field/Password/Password.js.map +1 -0
  664. package/es/extensions/forms/Field/Password/index.d.ts +2 -0
  665. package/es/extensions/forms/Field/Password/index.js +3 -0
  666. package/es/extensions/forms/Field/Password/index.js.map +1 -0
  667. package/es/extensions/forms/Field/Password/style/dnb-password.css +6 -0
  668. package/es/extensions/forms/Field/Password/style/dnb-password.min.css +1 -0
  669. package/es/extensions/forms/Field/Password/style/dnb-password.scss +10 -0
  670. package/es/extensions/forms/Field/PostalCodeAndCity/PostalCodeAndCity.js +4 -5
  671. package/es/extensions/forms/Field/PostalCodeAndCity/PostalCodeAndCity.js.map +1 -1
  672. package/es/extensions/forms/Field/PostalCodeAndCity/style/dnb-postal-code-and-city.css +0 -12
  673. package/es/extensions/forms/Field/PostalCodeAndCity/style/dnb-postal-code-and-city.min.css +1 -1
  674. package/es/extensions/forms/Field/PostalCodeAndCity/style/dnb-postal-code-and-city.scss +0 -11
  675. package/es/extensions/forms/Field/Selection/Selection.d.ts +0 -1
  676. package/es/extensions/forms/Field/Selection/Selection.js +2 -11
  677. package/es/extensions/forms/Field/Selection/Selection.js.map +1 -1
  678. package/es/extensions/forms/Field/String/String.d.ts +20 -9
  679. package/es/extensions/forms/Field/String/String.js +52 -31
  680. package/es/extensions/forms/Field/String/String.js.map +1 -1
  681. package/es/extensions/forms/Field/String/StringDocs.d.ts +2 -0
  682. package/es/extensions/forms/Field/String/StringDocs.js +99 -0
  683. package/es/extensions/forms/Field/String/StringDocs.js.map +1 -0
  684. package/es/extensions/forms/Field/Toggle/Toggle.js +1 -1
  685. package/es/extensions/forms/Field/Toggle/Toggle.js.map +1 -1
  686. package/es/extensions/forms/Field/index.d.ts +1 -0
  687. package/es/extensions/forms/Field/index.js +1 -0
  688. package/es/extensions/forms/Field/index.js.map +1 -1
  689. package/es/extensions/forms/FieldBlock/FieldBlock.d.ts +8 -3
  690. package/es/extensions/forms/FieldBlock/FieldBlock.js +195 -58
  691. package/es/extensions/forms/FieldBlock/FieldBlock.js.map +1 -1
  692. package/es/extensions/forms/FieldBlock/FieldBlockContext.d.ts +39 -6
  693. package/es/extensions/forms/FieldBlock/FieldBlockContext.js.map +1 -1
  694. package/es/extensions/forms/FieldBlock/FieldBlockDocs.d.ts +2 -0
  695. package/es/extensions/forms/FieldBlock/FieldBlockDocs.js +53 -0
  696. package/es/extensions/forms/FieldBlock/FieldBlockDocs.js.map +1 -0
  697. package/es/extensions/forms/FieldBlock/style/dnb-field-block.css +29 -2
  698. package/es/extensions/forms/FieldBlock/style/dnb-field-block.min.css +1 -1
  699. package/es/extensions/forms/FieldBlock/style/dnb-field-block.scss +28 -0
  700. package/es/extensions/forms/Form/Appearance/Appearance.d.ts +7 -0
  701. package/es/extensions/forms/Form/Appearance/Appearance.js +30 -0
  702. package/es/extensions/forms/Form/Appearance/Appearance.js.map +1 -0
  703. package/es/extensions/forms/Form/Appearance/AppearanceDocs.d.ts +2 -0
  704. package/es/extensions/forms/Form/Appearance/AppearanceDocs.js +8 -0
  705. package/es/extensions/forms/Form/Appearance/AppearanceDocs.js.map +1 -0
  706. package/es/extensions/forms/Form/Appearance/index.d.ts +2 -0
  707. package/es/extensions/forms/Form/Appearance/index.js +3 -0
  708. package/es/extensions/forms/Form/Appearance/index.js.map +1 -0
  709. package/es/extensions/forms/Form/ButtonRow/style/dnb-form-button-row.css +6 -0
  710. package/es/extensions/forms/Form/ButtonRow/style/dnb-form-button-row.min.css +1 -1
  711. package/es/extensions/forms/Form/ButtonRow/style/dnb-form-button-row.scss +10 -2
  712. package/es/extensions/forms/Form/data-context/useData.d.ts +1 -1
  713. package/es/extensions/forms/Form/data-context/useData.js +3 -19
  714. package/es/extensions/forms/Form/data-context/useData.js.map +1 -1
  715. package/es/extensions/forms/Form/data-context/useError.d.ts +2 -1
  716. package/es/extensions/forms/Form/data-context/useError.js +4 -2
  717. package/es/extensions/forms/Form/data-context/useError.js.map +1 -1
  718. package/es/extensions/forms/Form/index.d.ts +1 -0
  719. package/es/extensions/forms/Form/index.js +1 -0
  720. package/es/extensions/forms/Form/index.js.map +1 -1
  721. package/es/extensions/forms/Value/Currency/Currency.js +2 -2
  722. package/es/extensions/forms/Value/Currency/Currency.js.map +1 -1
  723. package/es/extensions/forms/Value/Number/Number.d.ts +2 -2
  724. package/es/extensions/forms/Value/Number/Number.js +1 -1
  725. package/es/extensions/forms/Value/Number/Number.js.map +1 -1
  726. package/es/extensions/forms/Value/SummaryList/SummaryList.d.ts +7 -0
  727. package/es/extensions/forms/Value/SummaryList/SummaryList.js +26 -0
  728. package/es/extensions/forms/Value/SummaryList/SummaryList.js.map +1 -0
  729. package/es/extensions/forms/Value/SummaryList/SummaryListContext.d.ts +7 -0
  730. package/es/extensions/forms/Value/SummaryList/SummaryListContext.js +4 -0
  731. package/es/extensions/forms/Value/SummaryList/SummaryListContext.js.map +1 -0
  732. package/es/extensions/forms/Value/SummaryList/index.d.ts +2 -0
  733. package/es/extensions/forms/Value/SummaryList/index.js +3 -0
  734. package/es/extensions/forms/Value/SummaryList/index.js.map +1 -0
  735. package/es/extensions/forms/Value/ValueDocs.d.ts +2 -0
  736. package/es/extensions/forms/Value/ValueDocs.js +33 -0
  737. package/es/extensions/forms/Value/ValueDocs.js.map +1 -0
  738. package/es/extensions/forms/Value/index.d.ts +1 -0
  739. package/es/extensions/forms/Value/index.js +1 -0
  740. package/es/extensions/forms/Value/index.js.map +1 -1
  741. package/es/extensions/forms/ValueBlock/ValueBlock.js +12 -4
  742. package/es/extensions/forms/ValueBlock/ValueBlock.js.map +1 -1
  743. package/es/extensions/forms/hooks/DataValueDocs.d.ts +3 -0
  744. package/es/extensions/forms/hooks/DataValueDocs.js +110 -0
  745. package/es/extensions/forms/hooks/DataValueDocs.js.map +1 -0
  746. package/es/extensions/forms/hooks/useDataValue.d.ts +6 -14
  747. package/es/extensions/forms/hooks/useDataValue.js +92 -23
  748. package/es/extensions/forms/hooks/useDataValue.js.map +1 -1
  749. package/es/extensions/forms/hooks/useId.js +1 -1
  750. package/es/extensions/forms/hooks/useId.js.map +1 -1
  751. package/es/extensions/forms/hooks/useMountEffect.js +1 -1
  752. package/es/extensions/forms/hooks/useMountEffect.js.map +1 -1
  753. package/es/extensions/forms/hooks/useMounted.d.ts +2 -0
  754. package/es/extensions/forms/hooks/useMounted.js +14 -0
  755. package/es/extensions/forms/hooks/useMounted.js.map +1 -0
  756. package/es/extensions/forms/hooks/useUnmountEffect.d.ts +4 -0
  757. package/es/extensions/forms/hooks/useUnmountEffect.js +9 -0
  758. package/es/extensions/forms/hooks/useUnmountEffect.js.map +1 -0
  759. package/es/extensions/forms/style/dnb-forms.css +45 -15
  760. package/es/extensions/forms/style/dnb-forms.min.css +1 -1
  761. package/es/extensions/forms/types.d.ts +6 -4
  762. package/es/extensions/forms/types.js.map +1 -1
  763. package/es/extensions/payment-card/utils/CardDesigns.d.ts +96 -96
  764. package/es/fragments/drawer-list/DrawerListHelpers.d.ts +52 -52
  765. package/es/shared/Context.d.ts +2 -0
  766. package/es/shared/Context.js.map +1 -1
  767. package/es/shared/Eufemia.d.ts +1 -1
  768. package/es/shared/Eufemia.js +2 -2
  769. package/es/shared/Eufemia.js.map +1 -1
  770. package/es/shared/Theme.d.ts +7 -1
  771. package/es/shared/Theme.js +20 -7
  772. package/es/shared/Theme.js.map +1 -1
  773. package/es/shared/component-helper.d.ts +1 -0
  774. package/es/shared/component-helper.js +6 -0
  775. package/es/shared/component-helper.js.map +1 -1
  776. package/es/shared/helpers/debounce.d.ts +37 -0
  777. package/es/shared/helpers/debounce.js +76 -0
  778. package/es/shared/helpers/debounce.js.map +1 -0
  779. package/es/shared/helpers/filterValidProps.d.ts +2 -2
  780. package/es/shared/helpers/filterValidProps.js +2 -2
  781. package/es/shared/helpers/filterValidProps.js.map +1 -1
  782. package/es/shared/helpers/useSharedState.d.ts +1 -0
  783. package/es/shared/helpers/useSharedState.js +49 -20
  784. package/es/shared/helpers/useSharedState.js.map +1 -1
  785. package/es/shared/helpers/withCamelCaseProps.d.ts +14 -1
  786. package/es/shared/helpers/withCamelCaseProps.js.map +1 -1
  787. package/es/shared/helpers.d.ts +1 -25
  788. package/es/shared/helpers.js +1 -29
  789. package/es/shared/helpers.js.map +1 -1
  790. package/es/shared/locales/en-GB.d.ts +5 -3
  791. package/es/shared/locales/en-GB.js +7 -5
  792. package/es/shared/locales/en-GB.js.map +1 -1
  793. package/es/shared/locales/en-US.d.ts +5 -3
  794. package/es/shared/locales/index.d.ts +10 -6
  795. package/es/shared/locales/nb-NO.d.ts +5 -3
  796. package/es/shared/locales/nb-NO.js +7 -5
  797. package/es/shared/locales/nb-NO.js.map +1 -1
  798. package/es/shared/types.d.ts +5 -0
  799. package/es/shared/types.js.map +1 -1
  800. package/es/shared/useTheme.d.ts +1 -0
  801. package/es/style/dnb-ui-components.css +359 -171
  802. package/es/style/dnb-ui-components.min.css +3 -3
  803. package/es/style/dnb-ui-elements.css +25 -5
  804. package/es/style/dnb-ui-elements.min.css +1 -1
  805. package/es/style/dnb-ui-extensions.css +45 -15
  806. package/es/style/dnb-ui-extensions.min.css +1 -1
  807. package/es/style/dnb-ui-forms.css +45 -15
  808. package/es/style/dnb-ui-forms.min.css +1 -1
  809. package/es/style/dnb-ui-forms.scss +1 -0
  810. package/es/style/themes/theme-eiendom/eiendom-theme-basis.css +25 -5
  811. package/es/style/themes/theme-eiendom/eiendom-theme-basis.min.css +1 -1
  812. package/es/style/themes/theme-eiendom/eiendom-theme-components.css +421 -195
  813. package/es/style/themes/theme-eiendom/eiendom-theme-components.min.css +4 -4
  814. package/es/style/themes/theme-eiendom/eiendom-theme-elements.css +25 -5
  815. package/es/style/themes/theme-eiendom/eiendom-theme-elements.min.css +1 -1
  816. package/es/style/themes/theme-eiendom/eiendom-theme-extensions.css +45 -15
  817. package/es/style/themes/theme-eiendom/eiendom-theme-extensions.min.css +1 -1
  818. package/es/style/themes/theme-eiendom/eiendom-theme-forms.css +45 -15
  819. package/es/style/themes/theme-eiendom/eiendom-theme-forms.min.css +1 -1
  820. package/es/style/themes/theme-sbanken/sbanken-theme-basis.css +26 -5
  821. package/es/style/themes/theme-sbanken/sbanken-theme-basis.min.css +1 -1
  822. package/es/style/themes/theme-sbanken/sbanken-theme-components.css +464 -204
  823. package/es/style/themes/theme-sbanken/sbanken-theme-components.min.css +8 -6
  824. package/es/style/themes/theme-sbanken/sbanken-theme-elements.css +26 -5
  825. package/es/style/themes/theme-sbanken/sbanken-theme-elements.min.css +1 -1
  826. package/es/style/themes/theme-sbanken/sbanken-theme-extensions.css +45 -15
  827. package/es/style/themes/theme-sbanken/sbanken-theme-extensions.min.css +1 -1
  828. package/es/style/themes/theme-sbanken/sbanken-theme-forms.css +45 -15
  829. package/es/style/themes/theme-sbanken/sbanken-theme-forms.min.css +1 -1
  830. package/es/style/themes/theme-ui/prism/dnb-prism-theme.d.ts +3 -3
  831. package/es/style/themes/theme-ui/ui-theme-basis.css +25 -5
  832. package/es/style/themes/theme-ui/ui-theme-basis.min.css +1 -1
  833. package/es/style/themes/theme-ui/ui-theme-components.css +421 -195
  834. package/es/style/themes/theme-ui/ui-theme-components.min.css +4 -4
  835. package/es/style/themes/theme-ui/ui-theme-elements.css +25 -5
  836. package/es/style/themes/theme-ui/ui-theme-elements.min.css +1 -1
  837. package/es/style/themes/theme-ui/ui-theme-extensions.css +45 -15
  838. package/es/style/themes/theme-ui/ui-theme-extensions.min.css +1 -1
  839. package/es/style/themes/theme-ui/ui-theme-forms.css +45 -15
  840. package/es/style/themes/theme-ui/ui-theme-forms.min.css +1 -1
  841. package/es/style/themes/theme-ui/ui-theme-tags.css +25 -5
  842. package/es/style/themes/theme-ui/ui-theme-tags.min.css +1 -1
  843. package/esm/dnb-ui-basis.min.mjs +1 -1
  844. package/esm/dnb-ui-components.min.mjs +1 -1
  845. package/esm/dnb-ui-elements.min.mjs +1 -1
  846. package/esm/dnb-ui-extensions.min.mjs +3 -3
  847. package/esm/dnb-ui-lib.min.mjs +1 -1
  848. package/extensions/forms/DataContext/Context.d.ts +1 -2
  849. package/extensions/forms/DataContext/Context.js.map +1 -1
  850. package/extensions/forms/DataContext/Provider/Provider.d.ts +1 -2
  851. package/extensions/forms/DataContext/Provider/Provider.js +54 -40
  852. package/extensions/forms/DataContext/Provider/Provider.js.map +1 -1
  853. package/extensions/forms/Field/Currency/Currency.js +1 -1
  854. package/extensions/forms/Field/Currency/Currency.js.map +1 -1
  855. package/extensions/forms/Field/Expiry/Expiry.js +1 -0
  856. package/extensions/forms/Field/Expiry/Expiry.js.map +1 -1
  857. package/extensions/forms/Field/FieldDocs.d.ts +3 -0
  858. package/extensions/forms/Field/FieldDocs.js +8 -0
  859. package/extensions/forms/Field/FieldDocs.js.map +1 -0
  860. package/extensions/forms/Field/Number/Number.d.ts +1 -0
  861. package/extensions/forms/Field/Number/Number.js +13 -7
  862. package/extensions/forms/Field/Number/Number.js.map +1 -1
  863. package/extensions/forms/Field/Number/NumberDocs.d.ts +2 -0
  864. package/extensions/forms/Field/Number/NumberDocs.js +85 -0
  865. package/extensions/forms/Field/Number/NumberDocs.js.map +1 -0
  866. package/extensions/forms/Field/Number/style/dnb-number.css +3 -1
  867. package/extensions/forms/Field/Number/style/dnb-number.min.css +1 -1
  868. package/extensions/forms/Field/Number/style/dnb-number.scss +4 -1
  869. package/extensions/forms/Field/Password/Password.d.ts +45 -0
  870. package/extensions/forms/Field/Password/Password.js +99 -0
  871. package/extensions/forms/Field/Password/Password.js.map +1 -0
  872. package/extensions/forms/Field/Password/index.d.ts +2 -0
  873. package/extensions/forms/Field/Password/index.js +3 -0
  874. package/extensions/forms/Field/Password/index.js.map +1 -0
  875. package/extensions/forms/Field/Password/style/dnb-password.css +6 -0
  876. package/extensions/forms/Field/Password/style/dnb-password.min.css +1 -0
  877. package/extensions/forms/Field/Password/style/dnb-password.scss +10 -0
  878. package/extensions/forms/Field/PostalCodeAndCity/PostalCodeAndCity.js +4 -5
  879. package/extensions/forms/Field/PostalCodeAndCity/PostalCodeAndCity.js.map +1 -1
  880. package/extensions/forms/Field/PostalCodeAndCity/style/dnb-postal-code-and-city.css +0 -12
  881. package/extensions/forms/Field/PostalCodeAndCity/style/dnb-postal-code-and-city.min.css +1 -1
  882. package/extensions/forms/Field/PostalCodeAndCity/style/dnb-postal-code-and-city.scss +0 -11
  883. package/extensions/forms/Field/Selection/Selection.d.ts +0 -1
  884. package/extensions/forms/Field/Selection/Selection.js +2 -11
  885. package/extensions/forms/Field/Selection/Selection.js.map +1 -1
  886. package/extensions/forms/Field/String/String.d.ts +20 -9
  887. package/extensions/forms/Field/String/String.js +52 -31
  888. package/extensions/forms/Field/String/String.js.map +1 -1
  889. package/extensions/forms/Field/String/StringDocs.d.ts +2 -0
  890. package/extensions/forms/Field/String/StringDocs.js +99 -0
  891. package/extensions/forms/Field/String/StringDocs.js.map +1 -0
  892. package/extensions/forms/Field/Toggle/Toggle.js +1 -1
  893. package/extensions/forms/Field/Toggle/Toggle.js.map +1 -1
  894. package/extensions/forms/Field/index.d.ts +1 -0
  895. package/extensions/forms/Field/index.js +1 -0
  896. package/extensions/forms/Field/index.js.map +1 -1
  897. package/extensions/forms/FieldBlock/FieldBlock.d.ts +8 -3
  898. package/extensions/forms/FieldBlock/FieldBlock.js +203 -64
  899. package/extensions/forms/FieldBlock/FieldBlock.js.map +1 -1
  900. package/extensions/forms/FieldBlock/FieldBlockContext.d.ts +39 -6
  901. package/extensions/forms/FieldBlock/FieldBlockContext.js.map +1 -1
  902. package/extensions/forms/FieldBlock/FieldBlockDocs.d.ts +2 -0
  903. package/extensions/forms/FieldBlock/FieldBlockDocs.js +53 -0
  904. package/extensions/forms/FieldBlock/FieldBlockDocs.js.map +1 -0
  905. package/extensions/forms/FieldBlock/style/dnb-field-block.css +29 -2
  906. package/extensions/forms/FieldBlock/style/dnb-field-block.min.css +1 -1
  907. package/extensions/forms/FieldBlock/style/dnb-field-block.scss +28 -0
  908. package/extensions/forms/Form/Appearance/Appearance.d.ts +7 -0
  909. package/extensions/forms/Form/Appearance/Appearance.js +30 -0
  910. package/extensions/forms/Form/Appearance/Appearance.js.map +1 -0
  911. package/extensions/forms/Form/Appearance/AppearanceDocs.d.ts +2 -0
  912. package/extensions/forms/Form/Appearance/AppearanceDocs.js +8 -0
  913. package/extensions/forms/Form/Appearance/AppearanceDocs.js.map +1 -0
  914. package/extensions/forms/Form/Appearance/index.d.ts +2 -0
  915. package/extensions/forms/Form/Appearance/index.js +3 -0
  916. package/extensions/forms/Form/Appearance/index.js.map +1 -0
  917. package/extensions/forms/Form/ButtonRow/style/dnb-form-button-row.css +6 -0
  918. package/extensions/forms/Form/ButtonRow/style/dnb-form-button-row.min.css +1 -1
  919. package/extensions/forms/Form/ButtonRow/style/dnb-form-button-row.scss +10 -2
  920. package/extensions/forms/Form/data-context/useData.d.ts +1 -1
  921. package/extensions/forms/Form/data-context/useData.js +3 -19
  922. package/extensions/forms/Form/data-context/useData.js.map +1 -1
  923. package/extensions/forms/Form/data-context/useError.d.ts +2 -1
  924. package/extensions/forms/Form/data-context/useError.js +4 -2
  925. package/extensions/forms/Form/data-context/useError.js.map +1 -1
  926. package/extensions/forms/Form/index.d.ts +1 -0
  927. package/extensions/forms/Form/index.js +1 -0
  928. package/extensions/forms/Form/index.js.map +1 -1
  929. package/extensions/forms/Value/Currency/Currency.js +2 -2
  930. package/extensions/forms/Value/Currency/Currency.js.map +1 -1
  931. package/extensions/forms/Value/Number/Number.d.ts +2 -2
  932. package/extensions/forms/Value/Number/Number.js +1 -1
  933. package/extensions/forms/Value/Number/Number.js.map +1 -1
  934. package/extensions/forms/Value/SummaryList/SummaryList.d.ts +7 -0
  935. package/extensions/forms/Value/SummaryList/SummaryList.js +26 -0
  936. package/extensions/forms/Value/SummaryList/SummaryList.js.map +1 -0
  937. package/extensions/forms/Value/SummaryList/SummaryListContext.d.ts +7 -0
  938. package/extensions/forms/Value/SummaryList/SummaryListContext.js +4 -0
  939. package/extensions/forms/Value/SummaryList/SummaryListContext.js.map +1 -0
  940. package/extensions/forms/Value/SummaryList/index.d.ts +2 -0
  941. package/extensions/forms/Value/SummaryList/index.js +3 -0
  942. package/extensions/forms/Value/SummaryList/index.js.map +1 -0
  943. package/extensions/forms/Value/ValueDocs.d.ts +2 -0
  944. package/extensions/forms/Value/ValueDocs.js +33 -0
  945. package/extensions/forms/Value/ValueDocs.js.map +1 -0
  946. package/extensions/forms/Value/index.d.ts +1 -0
  947. package/extensions/forms/Value/index.js +1 -0
  948. package/extensions/forms/Value/index.js.map +1 -1
  949. package/extensions/forms/ValueBlock/ValueBlock.js +12 -4
  950. package/extensions/forms/ValueBlock/ValueBlock.js.map +1 -1
  951. package/extensions/forms/hooks/DataValueDocs.d.ts +3 -0
  952. package/extensions/forms/hooks/DataValueDocs.js +110 -0
  953. package/extensions/forms/hooks/DataValueDocs.js.map +1 -0
  954. package/extensions/forms/hooks/useDataValue.d.ts +6 -14
  955. package/extensions/forms/hooks/useDataValue.js +92 -23
  956. package/extensions/forms/hooks/useDataValue.js.map +1 -1
  957. package/extensions/forms/hooks/useId.js +1 -1
  958. package/extensions/forms/hooks/useId.js.map +1 -1
  959. package/extensions/forms/hooks/useMountEffect.js +1 -1
  960. package/extensions/forms/hooks/useMountEffect.js.map +1 -1
  961. package/extensions/forms/hooks/useMounted.d.ts +2 -0
  962. package/extensions/forms/hooks/useMounted.js +14 -0
  963. package/extensions/forms/hooks/useMounted.js.map +1 -0
  964. package/extensions/forms/hooks/useUnmountEffect.d.ts +4 -0
  965. package/extensions/forms/hooks/useUnmountEffect.js +9 -0
  966. package/extensions/forms/hooks/useUnmountEffect.js.map +1 -0
  967. package/extensions/forms/style/dnb-forms.css +45 -15
  968. package/extensions/forms/style/dnb-forms.min.css +1 -1
  969. package/extensions/forms/types.d.ts +6 -4
  970. package/extensions/forms/types.js.map +1 -1
  971. package/extensions/payment-card/utils/CardDesigns.d.ts +96 -96
  972. package/fragments/drawer-list/DrawerListHelpers.d.ts +52 -52
  973. package/package.json +1 -1
  974. package/shared/Context.d.ts +2 -0
  975. package/shared/Context.js.map +1 -1
  976. package/shared/Eufemia.d.ts +1 -1
  977. package/shared/Eufemia.js +2 -2
  978. package/shared/Eufemia.js.map +1 -1
  979. package/shared/Theme.d.ts +7 -1
  980. package/shared/Theme.js +20 -7
  981. package/shared/Theme.js.map +1 -1
  982. package/shared/component-helper.d.ts +1 -0
  983. package/shared/component-helper.js +9 -0
  984. package/shared/component-helper.js.map +1 -1
  985. package/shared/helpers/debounce.d.ts +37 -0
  986. package/shared/helpers/debounce.js +83 -0
  987. package/shared/helpers/debounce.js.map +1 -0
  988. package/shared/helpers/filterValidProps.d.ts +2 -2
  989. package/shared/helpers/filterValidProps.js +2 -2
  990. package/shared/helpers/filterValidProps.js.map +1 -1
  991. package/shared/helpers/useSharedState.d.ts +1 -0
  992. package/shared/helpers/useSharedState.js +49 -20
  993. package/shared/helpers/useSharedState.js.map +1 -1
  994. package/shared/helpers/withCamelCaseProps.d.ts +14 -1
  995. package/shared/helpers/withCamelCaseProps.js.map +1 -1
  996. package/shared/helpers.d.ts +1 -25
  997. package/shared/helpers.js +3 -36
  998. package/shared/helpers.js.map +1 -1
  999. package/shared/locales/en-GB.d.ts +5 -3
  1000. package/shared/locales/en-GB.js +7 -5
  1001. package/shared/locales/en-GB.js.map +1 -1
  1002. package/shared/locales/en-US.d.ts +5 -3
  1003. package/shared/locales/index.d.ts +10 -6
  1004. package/shared/locales/nb-NO.d.ts +5 -3
  1005. package/shared/locales/nb-NO.js +7 -5
  1006. package/shared/locales/nb-NO.js.map +1 -1
  1007. package/shared/types.d.ts +5 -0
  1008. package/shared/types.js.map +1 -1
  1009. package/shared/useTheme.d.ts +1 -0
  1010. package/style/dnb-ui-components.css +359 -171
  1011. package/style/dnb-ui-components.min.css +3 -3
  1012. package/style/dnb-ui-elements.css +25 -5
  1013. package/style/dnb-ui-elements.min.css +1 -1
  1014. package/style/dnb-ui-extensions.css +45 -15
  1015. package/style/dnb-ui-extensions.min.css +1 -1
  1016. package/style/dnb-ui-forms.css +45 -15
  1017. package/style/dnb-ui-forms.min.css +1 -1
  1018. package/style/dnb-ui-forms.scss +1 -0
  1019. package/style/themes/theme-eiendom/eiendom-theme-basis.css +25 -5
  1020. package/style/themes/theme-eiendom/eiendom-theme-basis.min.css +1 -1
  1021. package/style/themes/theme-eiendom/eiendom-theme-components.css +421 -195
  1022. package/style/themes/theme-eiendom/eiendom-theme-components.min.css +4 -4
  1023. package/style/themes/theme-eiendom/eiendom-theme-elements.css +25 -5
  1024. package/style/themes/theme-eiendom/eiendom-theme-elements.min.css +1 -1
  1025. package/style/themes/theme-eiendom/eiendom-theme-extensions.css +45 -15
  1026. package/style/themes/theme-eiendom/eiendom-theme-extensions.min.css +1 -1
  1027. package/style/themes/theme-eiendom/eiendom-theme-forms.css +45 -15
  1028. package/style/themes/theme-eiendom/eiendom-theme-forms.min.css +1 -1
  1029. package/style/themes/theme-sbanken/sbanken-theme-basis.css +26 -5
  1030. package/style/themes/theme-sbanken/sbanken-theme-basis.min.css +1 -1
  1031. package/style/themes/theme-sbanken/sbanken-theme-components.css +464 -204
  1032. package/style/themes/theme-sbanken/sbanken-theme-components.min.css +8 -6
  1033. package/style/themes/theme-sbanken/sbanken-theme-elements.css +26 -5
  1034. package/style/themes/theme-sbanken/sbanken-theme-elements.min.css +1 -1
  1035. package/style/themes/theme-sbanken/sbanken-theme-extensions.css +45 -15
  1036. package/style/themes/theme-sbanken/sbanken-theme-extensions.min.css +1 -1
  1037. package/style/themes/theme-sbanken/sbanken-theme-forms.css +45 -15
  1038. package/style/themes/theme-sbanken/sbanken-theme-forms.min.css +1 -1
  1039. package/style/themes/theme-ui/prism/dnb-prism-theme.d.ts +3 -3
  1040. package/style/themes/theme-ui/ui-theme-basis.css +25 -5
  1041. package/style/themes/theme-ui/ui-theme-basis.min.css +1 -1
  1042. package/style/themes/theme-ui/ui-theme-components.css +421 -195
  1043. package/style/themes/theme-ui/ui-theme-components.min.css +4 -4
  1044. package/style/themes/theme-ui/ui-theme-elements.css +25 -5
  1045. package/style/themes/theme-ui/ui-theme-elements.min.css +1 -1
  1046. package/style/themes/theme-ui/ui-theme-extensions.css +45 -15
  1047. package/style/themes/theme-ui/ui-theme-extensions.min.css +1 -1
  1048. package/style/themes/theme-ui/ui-theme-forms.css +45 -15
  1049. package/style/themes/theme-ui/ui-theme-forms.min.css +1 -1
  1050. package/style/themes/theme-ui/ui-theme-tags.css +25 -5
  1051. package/style/themes/theme-ui/ui-theme-tags.min.css +1 -1
  1052. package/umd/dnb-ui-basis.min.js +1 -1
  1053. package/umd/dnb-ui-components.min.js +1 -1
  1054. package/umd/dnb-ui-elements.min.js +1 -1
  1055. package/umd/dnb-ui-extensions.min.js +3 -3
  1056. package/umd/dnb-ui-lib.min.js +1 -1
  1057. package/cjs/components/table/TableAccordionContent.d.ts +0 -18
  1058. package/cjs/components/table/TableAccordionContent.js.map +0 -1
  1059. package/components/table/TableAccordionContent.d.ts +0 -18
  1060. package/components/table/TableAccordionContent.js.map +0 -1
  1061. package/es/components/table/TableAccordionContent.d.ts +0 -18
  1062. package/es/components/table/TableAccordionContent.js.map +0 -1
@@ -1 +1 @@
1
- {"version":3,"file":"types.js","names":[],"sources":["../../../../src/components/slider/types.ts"],"sourcesContent":["import React from 'react'\n\nimport type { SuffixChildren } from '../../shared/helpers/Suffix'\nimport type {\n formatReturnType,\n formatOptionParams,\n} from '../number-format/NumberUtils'\nimport { IncludeSnakeCase } from '../../shared/helpers/withSnakeCaseProps'\nimport type { SpacingProps } from '../../shared/types'\nimport type { SkeletonShow } from '../Skeleton'\nimport type { GlobalStatusConfigObject } from '../GlobalStatus'\n\nexport type ValueTypes = number | Array<number>\nexport type NumberFormatTypes =\n | formatOptionParams\n | ((value: number) => unknown)\nexport type onChangeEventProps = {\n value: ValueTypes\n rawValue: number\n number?: formatReturnType | null\n event?: Event\n}\n\nexport type SliderProps = IncludeSnakeCase<{\n /** prepends the Form Label component. If no ID is provided, a random ID is created. */\n label?: React.ReactNode\n\n /** use `labelDirection=\"vertical\"` to change the label layout direction. Defaults to `horizontal`. */\n labelDirection?: 'vertical' | 'horizontal'\n\n /** use `true` to make the label only readable by screen readers. */\n labelSrOnly?: boolean\n\n /** text with a status message. The style defaults to an error message. You can use `true` to only get the status color, without a message. */\n status?: string | boolean\n\n /** defines the state of the status. Currently, there are two statuses `[error, info]`. Defaults to `error`. */\n statusState?: 'error' | 'info'\n\n /** use an object to define additional FormStatus properties. */\n statusProps?: Record<string, unknown>\n statusNoAnimation?: boolean\n\n /** the `status_id` used for the target [GlobalStatus](/uilib/components/global-status). */\n globalStatus?: GlobalStatusConfigObject\n\n /** text describing the content of the Slider more than the label. You can also send in a React component, so it gets wrapped inside the Slider component. */\n suffix?: SuffixChildren\n\n /** give the slider thumb button a title for accessibility reasons. Defaults to `null`. */\n thumbTitle?: string\n\n /** give the add button a title for accessibility reasons. Defaults to `+`. */\n addTitle?: string\n\n /** give the subtract button a title for accessibility reasons. Defaults to `−`. */\n subtractTitle?: string\n\n /** the minimum value. Defaults to `0`. */\n min?: number\n\n /** the maximum value. Defaults to `100`. */\n max?: number\n\n /** the `value` of the slider as a number. If an array with numbers is provided, each number will represent a thumb button (the `+` and `-` button will be hidden on multiple thumbs). */\n value?: ValueTypes\n\n /** the steps the slider takes on changing the value. Defaults to `null`. */\n step?: number\n\n /** show the slider vertically. Defaults to `false`. */\n vertical?: boolean\n\n /** show the slider reversed. Defaults to `false`. */\n reverse?: boolean\n\n /** if set to `true`, then the slider will be 100% in `width`. */\n stretch?: boolean\n\n /** provide a function callback or use the options from the [NumberFormat](/uilib/components/number-format/properties) component. It will show a formatted number in the Tooltip (`tooltip={true}`) and enhance the screen reader UX. It will also extend the `onChange` event return object with a formatted `number` property. */\n numberFormat?: NumberFormatTypes\n\n /** use `true` to show a tooltip on `mouseOver`, `touchStart` and `focus`, showing the current number (if `numberFormat` is given) or the raw value. Defaults to `null`. */\n tooltip: boolean\n\n /** use `true` to always show the tooltip, in addition to the `tooltip` property. */\n alwaysShowTooltip: boolean\n\n /** removes the helper buttons. Defaults to `false`. */\n hideButtons?: boolean\n\n /** use either `omit`, `push` or `swap`. This property only works for two (range) or more thumb buttons, while `omit` will stop the thumb from swapping, `push` will push its nearest thumb along. Defaults to `swap`. */\n multiThumbBehavior?: 'swap' | 'omit' | 'push'\n\n /** if set to `true`, an overlaying skeleton with animation will be shown. */\n skeleton?: SkeletonShow\n\n id?: string\n disabled?: boolean\n className?: string\n\n /** will be called on state changes made by the user. The callback `value` and `rawValue` is a number `{ value, rawValue, event }`. But if the prop `numberFormat` is given, then it will return an additional `number` with the given format `{ value, number, rawValue, event }`. */\n onChange?: (props: onChangeEventProps) => void\n\n /** will be called once the user stops dragging. Returns `{ event }`. */\n onDragStart?: (props: { event: MouseEvent | TouchEvent }) => void\n\n /** will be called once the user starts dragging. Returns `{ event }`. */\n onDragEnd?: (props: { event: MouseEvent | TouchEvent }) => void\n\n children?: React.ReactChild\n}>\n\nexport type SliderAllProps = SliderProps &\n SpacingProps &\n Omit<React.HTMLProps<HTMLElement>, keyof SliderProps>\n\nexport type ThumbStateEnums =\n | 'initial'\n | 'normal'\n | 'activated'\n | 'released'\n\nexport type SliderContextTypes = {\n isMulti: boolean\n isReverse: boolean\n isVertical: boolean\n shouldAnimate: boolean\n thumbState: ThumbStateEnums\n thumbIndex: React.RefObject<number>\n showStatus: boolean\n showButtons: boolean\n attributes: unknown\n allProps: SliderProps\n value: ValueTypes\n values: Array<number>\n setValue: (value: ValueTypes) => void\n setThumbState: (thumbState: ThumbStateEnums) => void\n setThumbIndex: (thumbIndex: number) => void\n emitChange: (emitEvent: MouseEvent | TouchEvent, value: number) => void\n trackRef: React.RefObject<HTMLElement>\n setShouldAnimate: (state: boolean) => void\n animationTimeout: React.RefObject<NodeJS.Timeout>\n}\n"],"mappings":""}
1
+ {"version":3,"file":"types.js","names":[],"sources":["../../../../src/components/slider/types.ts"],"sourcesContent":["import React from 'react'\n\nimport type { SuffixChildren } from '../../shared/helpers/Suffix'\nimport type {\n formatReturnType,\n formatOptionParams,\n} from '../number-format/NumberUtils'\nimport { IncludeSnakeCase } from '../../shared/helpers/withSnakeCaseProps'\nimport type { SpacingProps } from '../../shared/types'\nimport type { SkeletonShow } from '../Skeleton'\nimport type { GlobalStatusConfigObject } from '../GlobalStatus'\n\nexport type ValueTypes = number | Array<number>\nexport type NumberFormatTypes =\n | formatOptionParams\n | ((value: number) => unknown)\nexport type onChangeEventProps = {\n value: ValueTypes\n rawValue: number\n number?: formatReturnType | null\n event?: Event\n}\n\nexport type SliderExtensions = Record<\n string,\n { instance: React.ElementType; [key: string]: unknown }\n>\n\nexport type SliderProps = IncludeSnakeCase<{\n /** prepends the Form Label component. If no ID is provided, a random ID is created. */\n label?: React.ReactNode\n\n /** use `labelDirection=\"vertical\"` to change the label layout direction. Defaults to `horizontal`. */\n labelDirection?: 'vertical' | 'horizontal'\n\n /** use `true` to make the label only readable by screen readers. */\n labelSrOnly?: boolean\n\n /** text with a status message. The style defaults to an error message. You can use `true` to only get the status color, without a message. */\n status?: string | boolean\n\n /** defines the state of the status. Currently, there are two statuses `[error, info]`. Defaults to `error`. */\n statusState?: 'error' | 'info'\n\n /** use an object to define additional FormStatus properties. */\n statusProps?: Record<string, unknown>\n statusNoAnimation?: boolean\n\n /** the `status_id` used for the target [GlobalStatus](/uilib/components/global-status). */\n globalStatus?: GlobalStatusConfigObject\n\n /** text describing the content of the Slider more than the label. You can also send in a React component, so it gets wrapped inside the Slider component. */\n suffix?: SuffixChildren\n\n /** give the slider thumb button a title for accessibility reasons. Defaults to `null`. */\n thumbTitle?: string\n\n /** give the add button a title for accessibility reasons. Defaults to `+`. */\n addTitle?: string\n\n /** give the subtract button a title for accessibility reasons. Defaults to `−`. */\n subtractTitle?: string\n\n /** the minimum value. Defaults to `0`. */\n min?: number\n\n /** the maximum value. Defaults to `100`. */\n max?: number\n\n /** the `value` of the slider as a number. If an array with numbers is provided, each number will represent a thumb button (the `+` and `-` button will be hidden on multiple thumbs). */\n value?: ValueTypes\n\n /** the steps the slider takes on changing the value. Defaults to `null`. */\n step?: number\n\n /** makes it possible to display overlays with other functionality such as a marker on the slider marking a given value. */\n extensions: SliderExtensions\n\n /** show the slider vertically. Defaults to `false`. */\n vertical?: boolean\n\n /** show the slider reversed. Defaults to `false`. */\n reverse?: boolean\n\n /** if set to `true`, then the slider will be 100% in `width`. */\n stretch?: boolean\n\n /** provide a function callback or use the options from the [NumberFormat](/uilib/components/number-format/properties) component. It will show a formatted number in the Tooltip (`tooltip={true}`) and enhance the screen reader UX. It will also extend the `onChange` event return object with a formatted `number` property. */\n numberFormat?: NumberFormatTypes\n\n /** use `true` to show a tooltip on `mouseOver`, `touchStart` and `focus`, showing the current number (if `numberFormat` is given) or the raw value. Defaults to `null`. */\n tooltip: boolean\n\n /** use `true` to always show the tooltip, in addition to the `tooltip` property. */\n alwaysShowTooltip: boolean\n\n /** removes the helper buttons. Defaults to `false`. */\n hideButtons?: boolean\n\n /** use either `omit`, `push` or `swap`. This property only works for two (range) or more thumb buttons, while `omit` will stop the thumb from swapping, `push` will push its nearest thumb along. Defaults to `swap`. */\n multiThumbBehavior?: 'swap' | 'omit' | 'push'\n\n /** if set to `true`, an overlaying skeleton with animation will be shown. */\n skeleton?: SkeletonShow\n\n id?: string\n disabled?: boolean\n className?: string\n\n /** will be called on state changes made by the user. The callback `value` and `rawValue` is a number `{ value, rawValue, event }`. But if the prop `numberFormat` is given, then it will return an additional `number` with the given format `{ value, number, rawValue, event }`. */\n onChange?: (props: onChangeEventProps) => void\n\n /** will be called once the user stops dragging. Returns `{ event }`. */\n onDragStart?: (props: { event: MouseEvent | TouchEvent }) => void\n\n /** will be called once the user starts dragging. Returns `{ event }`. */\n onDragEnd?: (props: { event: MouseEvent | TouchEvent }) => void\n\n children?: React.ReactChild\n}>\n\nexport type SliderAllProps = SliderProps &\n SpacingProps &\n Omit<React.HTMLProps<HTMLElement>, keyof SliderProps>\n\nexport type ThumbStateEnums =\n | 'initial'\n | 'normal'\n | 'activated'\n | 'released'\n\nexport type SliderContextTypes = {\n isMulti: boolean\n isReverse: boolean\n isVertical: boolean\n shouldAnimate: boolean\n thumbState: ThumbStateEnums\n thumbIndex: React.RefObject<number>\n showStatus: boolean\n showButtons: boolean\n attributes: unknown\n allProps: SliderProps\n value: ValueTypes\n values: Array<number>\n setValue: (value: ValueTypes) => void\n setThumbState: (thumbState: ThumbStateEnums) => void\n setThumbIndex: (thumbIndex: number) => void\n emitChange: (emitEvent: MouseEvent | TouchEvent, value: number) => void\n trackRef: React.RefObject<HTMLElement>\n setShouldAnimate: (state: boolean) => void\n animationTimeout: React.RefObject<NodeJS.Timeout>\n}\n"],"mappings":""}
@@ -1,14 +1,14 @@
1
1
  export namespace spacingPropTypes {
2
- const space: PropTypes.Requireable<NonNullable<string | number | boolean | PropTypes.InferProps<{
2
+ let space: PropTypes.Requireable<NonNullable<string | number | boolean | PropTypes.InferProps<{
3
3
  top: PropTypes.Requireable<NonNullable<string | number | boolean>>;
4
4
  right: PropTypes.Requireable<NonNullable<string | number | boolean>>;
5
5
  bottom: PropTypes.Requireable<NonNullable<string | number | boolean>>;
6
6
  left: PropTypes.Requireable<NonNullable<string | number | boolean>>;
7
7
  }>>>;
8
- const top: PropTypes.Requireable<NonNullable<string | number | boolean>>;
9
- const right: PropTypes.Requireable<NonNullable<string | number | boolean>>;
10
- const bottom: PropTypes.Requireable<NonNullable<string | number | boolean>>;
11
- const left: PropTypes.Requireable<NonNullable<string | number | boolean>>;
8
+ let top: PropTypes.Requireable<NonNullable<string | number | boolean>>;
9
+ let right: PropTypes.Requireable<NonNullable<string | number | boolean>>;
10
+ let bottom: PropTypes.Requireable<NonNullable<string | number | boolean>>;
11
+ let left: PropTypes.Requireable<NonNullable<string | number | boolean>>;
12
12
  }
13
13
  import PropTypes from 'prop-types';
14
14
  export { createSpacingClasses, createSpacingProperties, removeSpaceProps } from "./SpacingUtils";
@@ -14,7 +14,7 @@ import { createSpacingClasses } from '../space/SpacingHelper';
14
14
  import { createSkeletonClass } from '../skeleton/SkeletonHelper';
15
15
  import { extendPropsWithContext, validateDOMAttributes } from '../../shared/component-helper';
16
16
  import ScrollView from './TableScrollView';
17
- import TableContext from './TableContext';
17
+ import { TableContext } from './TableContext';
18
18
  import { useStickyHeader } from './TableStickyHeader';
19
19
  import { useHandleOddEven } from './TableTr';
20
20
  export { ScrollView };
@@ -1 +1 @@
1
- {"version":3,"file":"Table.js","names":["React","classnames","Context","Provider","createSpacingClasses","createSkeletonClass","extendPropsWithContext","validateDOMAttributes","ScrollView","TableContext","useStickyHeader","useHandleOddEven","defaultProps","size","variant","Table","componentProps","context","useContext","allProps","skeleton","className","children","sticky","stickyOffset","fixed","border","outline","accordion","accordionChevronPlacement","props","_objectWithoutProperties","_excluded","elementRef","trCountRef","rerenderAlias","skeletonClasses","spacingClasses","createElement","Boolean","value","_objectSpread","getTranslation","_extends","ref","_supportsSpacingProps"],"sources":["../../../../src/components/table/Table.tsx"],"sourcesContent":["import React from 'react'\nimport classnames from 'classnames'\nimport Context from '../../shared/Context'\nimport Provider from '../../shared/Provider'\nimport { createSpacingClasses } from '../space/SpacingHelper'\nimport { createSkeletonClass } from '../skeleton/SkeletonHelper'\nimport {\n extendPropsWithContext,\n validateDOMAttributes,\n} from '../../shared/component-helper'\nimport ScrollView from './TableScrollView'\nimport TableContext from './TableContext'\nimport { useStickyHeader } from './TableStickyHeader'\n\nimport type { StickyTableHeaderProps } from './TableStickyHeader'\nimport type { SkeletonShow } from '../skeleton/Skeleton'\nimport type { LocaleProps, SpacingProps } from '../../shared/types'\nimport { useHandleOddEven } from './TableTr'\n\nexport type TableSizes = 'large' | 'medium' | 'small'\nexport type TableVariants = 'generic'\n\nexport { ScrollView }\n\nexport type TableProps = {\n /**\n * The content of the component.\n */\n children: React.ReactNode\n\n /**\n * Custom className on the component root\n */\n className?: string\n\n /**\n * Skeleton should be applied when loading content\n */\n skeleton?: SkeletonShow\n\n /**\n * The size of the component.\n * Default: large.\n */\n size?: TableSizes\n\n /**\n * The style variant of the component.\n * Default: generic.\n */\n variant?: TableVariants\n\n /**\n * Use `true` to show borders between table data cell\n * Default: false\n */\n border?: boolean\n\n /**\n * Use `true` to show a outline border around the table\n * Default: false\n */\n outline?: boolean\n\n /**\n * Set to true if you have one or more rows that contains an accordion content.\n * Default: false\n */\n accordion?: boolean\n\n /**\n * Defines where the chevron will be placed.\n * Default: 'start'\n */\n accordionChevronPlacement?: 'start' | 'end'\n\n /**\n * Defines if the table should behave with a fixed table layout, using: \"table-layout: fixed;\"\n * Default: null.\n */\n fixed?: boolean\n} & StickyTableHeaderProps\n\nexport type TableAllProps = TableProps &\n Omit<React.TableHTMLAttributes<HTMLTableElement>, 'border'> &\n LocaleProps &\n SpacingProps\n\nexport const defaultProps = {\n size: 'large',\n variant: 'generic',\n}\n\nconst Table = (componentProps: TableAllProps) => {\n const context = React.useContext(Context)\n\n const allProps = extendPropsWithContext(\n componentProps,\n defaultProps,\n context?.Table,\n {\n skeleton: context?.skeleton,\n }\n )\n\n const {\n className,\n children,\n size,\n skeleton,\n variant,\n sticky,\n stickyOffset, // eslint-disable-line\n fixed,\n border,\n outline,\n accordion,\n accordionChevronPlacement, // eslint-disable-line\n ...props\n } = allProps\n\n const { elementRef } = useStickyHeader(allProps)\n const { trCountRef, rerenderAlias } = useHandleOddEven({ children })\n\n const skeletonClasses = createSkeletonClass('font', skeleton, context)\n const spacingClasses = createSpacingClasses(props)\n\n validateDOMAttributes(allProps, props)\n\n return (\n <Provider skeleton={Boolean(skeleton)}>\n <TableContext.Provider\n value={{\n trCountRef,\n rerenderAlias,\n allProps: {\n ...allProps,\n ...context.getTranslation(componentProps).Table,\n },\n }}\n >\n <table\n className={classnames(\n 'dnb-table',\n variant && `dnb-table__variant--${variant}`,\n size && `dnb-table__size--${size}`,\n sticky && 'dnb-table--sticky',\n fixed && 'dnb-table--fixed',\n border && 'dnb-table--border',\n outline && 'dnb-table--outline',\n accordion && 'dnb-table--accordion',\n spacingClasses,\n skeletonClasses,\n className\n )}\n ref={elementRef}\n {...props}\n >\n {children}\n </table>\n </TableContext.Provider>\n </Provider>\n )\n}\n\nTable._supportsSpacingProps = true\n\nexport default Table\n\nTable.ScrollView = ScrollView\n"],"mappings":";;;;;;;;AAAA,OAAOA,KAAK,MAAM,OAAO;AACzB,OAAOC,UAAU,MAAM,YAAY;AACnC,OAAOC,OAAO,MAAM,sBAAsB;AAC1C,OAAOC,QAAQ,MAAM,uBAAuB;AAC5C,SAASC,oBAAoB,QAAQ,wBAAwB;AAC7D,SAASC,mBAAmB,QAAQ,4BAA4B;AAChE,SACEC,sBAAsB,EACtBC,qBAAqB,QAChB,+BAA+B;AACtC,OAAOC,UAAU,MAAM,mBAAmB;AAC1C,OAAOC,YAAY,MAAM,gBAAgB;AACzC,SAASC,eAAe,QAAQ,qBAAqB;AAKrD,SAASC,gBAAgB,QAAQ,WAAW;AAK5C,SAASH,UAAU;AAkEnB,OAAO,MAAMI,YAAY,GAAG;EAC1BC,IAAI,EAAE,OAAO;EACbC,OAAO,EAAE;AACX,CAAC;AAED,MAAMC,KAAK,GAAIC,cAA6B,IAAK;EAC/C,MAAMC,OAAO,GAAGjB,KAAK,CAACkB,UAAU,CAAChB,OAAO,CAAC;EAEzC,MAAMiB,QAAQ,GAAGb,sBAAsB,CACrCU,cAAc,EACdJ,YAAY,EACZK,OAAO,aAAPA,OAAO,uBAAPA,OAAO,CAAEF,KAAK,EACd;IACEK,QAAQ,EAAEH,OAAO,aAAPA,OAAO,uBAAPA,OAAO,CAAEG;EACrB,CACF,CAAC;EAED,MAAM;MACJC,SAAS;MACTC,QAAQ;MACRT,IAAI;MACJO,QAAQ;MACRN,OAAO;MACPS,MAAM;MACNC,YAAY;MACZC,KAAK;MACLC,MAAM;MACNC,OAAO;MACPC,SAAS;MACTC;IAEF,CAAC,GAAGV,QAAQ;IADPW,KAAK,GAAAC,wBAAA,CACNZ,QAAQ,EAAAa,SAAA;EAEZ,MAAM;IAAEC;EAAW,CAAC,GAAGvB,eAAe,CAACS,QAAQ,CAAC;EAChD,MAAM;IAAEe,UAAU;IAAEC;EAAc,CAAC,GAAGxB,gBAAgB,CAAC;IAAEW;EAAS,CAAC,CAAC;EAEpE,MAAMc,eAAe,GAAG/B,mBAAmB,CAAC,MAAM,EAAEe,QAAQ,EAAEH,OAAO,CAAC;EACtE,MAAMoB,cAAc,GAAGjC,oBAAoB,CAAC0B,KAAK,CAAC;EAElDvB,qBAAqB,CAACY,QAAQ,EAAEW,KAAK,CAAC;EAEtC,OACE9B,KAAA,CAAAsC,aAAA,CAACnC,QAAQ;IAACiB,QAAQ,EAAEmB,OAAO,CAACnB,QAAQ;EAAE,GACpCpB,KAAA,CAAAsC,aAAA,CAAC7B,YAAY,CAACN,QAAQ;IACpBqC,KAAK,EAAE;MACLN,UAAU;MACVC,aAAa;MACbhB,QAAQ,EAAAsB,aAAA,CAAAA,aAAA,KACHtB,QAAQ,GACRF,OAAO,CAACyB,cAAc,CAAC1B,cAAc,CAAC,CAACD,KAAK;IAEnD;EAAE,GAEFf,KAAA,CAAAsC,aAAA,UAAAK,QAAA;IACEtB,SAAS,EAAEpB,UAAU,CACnB,WAAW,EAQXoC,cAAc,EACdD,eAAe,EACff,SAAS,EATTP,OAAO,IAAK,uBAAsBA,OAAQ,EAAC,EAC3CD,IAAI,IAAK,oBAAmBA,IAAK,EAAC,EAClCU,MAAM,IAAI,mBAAmB,EAC7BE,KAAK,IAAI,kBAAkB,EAC3BC,MAAM,IAAI,mBAAmB,EAC7BC,OAAO,IAAI,oBAAoB,EAC/BC,SAAS,IAAI,sBAIf,CAAE;IACFgB,GAAG,EAAEX;EAAW,GACZH,KAAK,GAERR,QACI,CACc,CACf,CAAC;AAEf,CAAC;AAEDP,KAAK,CAAC8B,qBAAqB,GAAG,IAAI;AAElC,eAAe9B,KAAK;AAEpBA,KAAK,CAACP,UAAU,GAAGA,UAAU"}
1
+ {"version":3,"file":"Table.js","names":["React","classnames","Context","Provider","createSpacingClasses","createSkeletonClass","extendPropsWithContext","validateDOMAttributes","ScrollView","TableContext","useStickyHeader","useHandleOddEven","defaultProps","size","variant","Table","componentProps","context","useContext","allProps","skeleton","className","children","sticky","stickyOffset","fixed","border","outline","accordion","accordionChevronPlacement","props","_objectWithoutProperties","_excluded","elementRef","trCountRef","rerenderAlias","skeletonClasses","spacingClasses","createElement","Boolean","value","_objectSpread","getTranslation","_extends","ref","_supportsSpacingProps"],"sources":["../../../../src/components/table/Table.tsx"],"sourcesContent":["import React from 'react'\nimport classnames from 'classnames'\nimport Context from '../../shared/Context'\nimport Provider from '../../shared/Provider'\nimport { createSpacingClasses } from '../space/SpacingHelper'\nimport { createSkeletonClass } from '../skeleton/SkeletonHelper'\nimport {\n extendPropsWithContext,\n validateDOMAttributes,\n} from '../../shared/component-helper'\nimport ScrollView from './TableScrollView'\nimport { TableContext } from './TableContext'\nimport { useStickyHeader } from './TableStickyHeader'\n\nimport type { StickyTableHeaderProps } from './TableStickyHeader'\nimport type { SkeletonShow } from '../skeleton/Skeleton'\nimport type { LocaleProps, SpacingProps } from '../../shared/types'\nimport { useHandleOddEven } from './TableTr'\n\nexport type TableSizes = 'large' | 'medium' | 'small'\nexport type TableVariants = 'generic'\n\nexport { ScrollView }\n\nexport type TableProps = {\n /**\n * The content of the component.\n */\n children: React.ReactNode\n\n /**\n * Custom className on the component root\n */\n className?: string\n\n /**\n * Skeleton should be applied when loading content\n */\n skeleton?: SkeletonShow\n\n /**\n * The size of the component.\n * Default: large.\n */\n size?: TableSizes\n\n /**\n * The style variant of the component.\n * Default: generic.\n */\n variant?: TableVariants\n\n /**\n * Use `true` to show borders between table data cell\n * Default: false\n */\n border?: boolean\n\n /**\n * Use `true` to show a outline border around the table\n * Default: false\n */\n outline?: boolean\n\n /**\n * Set to true if you have one or more rows that contains an accordion content.\n * Default: false\n */\n accordion?: boolean\n\n /**\n * Defines where the chevron will be placed.\n * Default: 'start'\n */\n accordionChevronPlacement?: 'start' | 'end'\n\n /**\n * Defines if the table should behave with a fixed table layout, using: \"table-layout: fixed;\"\n * Default: null.\n */\n fixed?: boolean\n} & StickyTableHeaderProps\n\nexport type TableAllProps = TableProps &\n Omit<React.TableHTMLAttributes<HTMLTableElement>, 'border'> &\n LocaleProps &\n SpacingProps\n\nexport const defaultProps = {\n size: 'large',\n variant: 'generic',\n}\n\nconst Table = (componentProps: TableAllProps) => {\n const context = React.useContext(Context)\n\n const allProps = extendPropsWithContext(\n componentProps,\n defaultProps,\n context?.Table,\n {\n skeleton: context?.skeleton,\n }\n )\n\n const {\n className,\n children,\n size,\n skeleton,\n variant,\n sticky,\n stickyOffset, // eslint-disable-line\n fixed,\n border,\n outline,\n accordion,\n accordionChevronPlacement, // eslint-disable-line\n ...props\n } = allProps\n\n const { elementRef } = useStickyHeader(allProps)\n const { trCountRef, rerenderAlias } = useHandleOddEven({ children })\n\n const skeletonClasses = createSkeletonClass('font', skeleton, context)\n const spacingClasses = createSpacingClasses(props)\n\n validateDOMAttributes(allProps, props)\n\n return (\n <Provider skeleton={Boolean(skeleton)}>\n <TableContext.Provider\n value={{\n trCountRef,\n rerenderAlias,\n allProps: {\n ...allProps,\n ...context.getTranslation(componentProps).Table,\n },\n }}\n >\n <table\n className={classnames(\n 'dnb-table',\n variant && `dnb-table__variant--${variant}`,\n size && `dnb-table__size--${size}`,\n sticky && 'dnb-table--sticky',\n fixed && 'dnb-table--fixed',\n border && 'dnb-table--border',\n outline && 'dnb-table--outline',\n accordion && 'dnb-table--accordion',\n spacingClasses,\n skeletonClasses,\n className\n )}\n ref={elementRef}\n {...props}\n >\n {children}\n </table>\n </TableContext.Provider>\n </Provider>\n )\n}\n\nTable._supportsSpacingProps = true\n\nexport default Table\n\nTable.ScrollView = ScrollView\n"],"mappings":";;;;;;;;AAAA,OAAOA,KAAK,MAAM,OAAO;AACzB,OAAOC,UAAU,MAAM,YAAY;AACnC,OAAOC,OAAO,MAAM,sBAAsB;AAC1C,OAAOC,QAAQ,MAAM,uBAAuB;AAC5C,SAASC,oBAAoB,QAAQ,wBAAwB;AAC7D,SAASC,mBAAmB,QAAQ,4BAA4B;AAChE,SACEC,sBAAsB,EACtBC,qBAAqB,QAChB,+BAA+B;AACtC,OAAOC,UAAU,MAAM,mBAAmB;AAC1C,SAASC,YAAY,QAAQ,gBAAgB;AAC7C,SAASC,eAAe,QAAQ,qBAAqB;AAKrD,SAASC,gBAAgB,QAAQ,WAAW;AAK5C,SAASH,UAAU;AAkEnB,OAAO,MAAMI,YAAY,GAAG;EAC1BC,IAAI,EAAE,OAAO;EACbC,OAAO,EAAE;AACX,CAAC;AAED,MAAMC,KAAK,GAAIC,cAA6B,IAAK;EAC/C,MAAMC,OAAO,GAAGjB,KAAK,CAACkB,UAAU,CAAChB,OAAO,CAAC;EAEzC,MAAMiB,QAAQ,GAAGb,sBAAsB,CACrCU,cAAc,EACdJ,YAAY,EACZK,OAAO,aAAPA,OAAO,uBAAPA,OAAO,CAAEF,KAAK,EACd;IACEK,QAAQ,EAAEH,OAAO,aAAPA,OAAO,uBAAPA,OAAO,CAAEG;EACrB,CACF,CAAC;EAED,MAAM;MACJC,SAAS;MACTC,QAAQ;MACRT,IAAI;MACJO,QAAQ;MACRN,OAAO;MACPS,MAAM;MACNC,YAAY;MACZC,KAAK;MACLC,MAAM;MACNC,OAAO;MACPC,SAAS;MACTC;IAEF,CAAC,GAAGV,QAAQ;IADPW,KAAK,GAAAC,wBAAA,CACNZ,QAAQ,EAAAa,SAAA;EAEZ,MAAM;IAAEC;EAAW,CAAC,GAAGvB,eAAe,CAACS,QAAQ,CAAC;EAChD,MAAM;IAAEe,UAAU;IAAEC;EAAc,CAAC,GAAGxB,gBAAgB,CAAC;IAAEW;EAAS,CAAC,CAAC;EAEpE,MAAMc,eAAe,GAAG/B,mBAAmB,CAAC,MAAM,EAAEe,QAAQ,EAAEH,OAAO,CAAC;EACtE,MAAMoB,cAAc,GAAGjC,oBAAoB,CAAC0B,KAAK,CAAC;EAElDvB,qBAAqB,CAACY,QAAQ,EAAEW,KAAK,CAAC;EAEtC,OACE9B,KAAA,CAAAsC,aAAA,CAACnC,QAAQ;IAACiB,QAAQ,EAAEmB,OAAO,CAACnB,QAAQ;EAAE,GACpCpB,KAAA,CAAAsC,aAAA,CAAC7B,YAAY,CAACN,QAAQ;IACpBqC,KAAK,EAAE;MACLN,UAAU;MACVC,aAAa;MACbhB,QAAQ,EAAAsB,aAAA,CAAAA,aAAA,KACHtB,QAAQ,GACRF,OAAO,CAACyB,cAAc,CAAC1B,cAAc,CAAC,CAACD,KAAK;IAEnD;EAAE,GAEFf,KAAA,CAAAsC,aAAA,UAAAK,QAAA;IACEtB,SAAS,EAAEpB,UAAU,CACnB,WAAW,EAQXoC,cAAc,EACdD,eAAe,EACff,SAAS,EATTP,OAAO,IAAK,uBAAsBA,OAAQ,EAAC,EAC3CD,IAAI,IAAK,oBAAmBA,IAAK,EAAC,EAClCU,MAAM,IAAI,mBAAmB,EAC7BE,KAAK,IAAI,kBAAkB,EAC3BC,MAAM,IAAI,mBAAmB,EAC7BC,OAAO,IAAI,oBAAoB,EAC/BC,SAAS,IAAI,sBAIf,CAAE;IACFgB,GAAG,EAAEX;EAAW,GACZH,KAAK,GAERR,QACI,CACc,CACf,CAAC;AAEf,CAAC;AAEDP,KAAK,CAAC8B,qBAAqB,GAAG,IAAI;AAElC,eAAe9B,KAAK;AAEpBA,KAAK,CAACP,UAAU,GAAGA,UAAU"}
@@ -1,17 +1,18 @@
1
1
  import _extends from "@babel/runtime/helpers/esm/extends";
2
- var _TableTdAccordionIcon, _TableThAccordionIcon, _Td;
2
+ var _Td;
3
3
  import React from 'react';
4
4
  import classnames from 'classnames';
5
5
  import Button from '../button/Button';
6
6
  import IconPrimary from '../icon/IconPrimary';
7
7
  import Th from './TableTh';
8
8
  import Td from './TableTd';
9
- import TableContext from './TableContext';
9
+ import { TableAccordionContext, TableContext } from './TableContext';
10
10
  import keycode from 'keycode';
11
11
  import { hasSelectedText } from '../../shared/helpers';
12
- import TableAccordionContent, { TrContext } from './TableAccordionContent';
12
+ import TableAccordionTd from './TableAccordionTd';
13
+ import TableAccordionTr from './TableAccordionTr';
13
14
  export function useTableAccordion(_ref) {
14
- var _tableContext$allProp, _tableContext$allProp2;
15
+ var _tableContext$allProp;
15
16
  let {
16
17
  children,
17
18
  className,
@@ -37,17 +38,21 @@ export function useTableAccordion(_ref) {
37
38
  });
38
39
  const [trIsHover, setHover] = React.useState(false);
39
40
  const [trHadClick, setHadClick] = React.useState(false);
40
- let content = React.Children.toArray(children);
41
41
  if (!(tableContext !== null && tableContext !== void 0 && (_tableContext$allProp = tableContext.allProps) !== null && _tableContext$allProp !== void 0 && _tableContext$allProp.accordion)) {
42
42
  return null;
43
43
  }
44
- const accordionContent = content.find(element => {
45
- return element.type === TableAccordionContent;
44
+ let headerContent = React.Children.toArray(children);
45
+ const addExpandIcon = icon => {
46
+ if (tableContext.allProps.accordionChevronPlacement === 'end') {
47
+ headerContent.push(icon);
48
+ } else {
49
+ headerContent.unshift(icon);
50
+ }
51
+ };
52
+ const accordionContent = headerContent.filter(element => {
53
+ return isAccordionElement(element);
46
54
  });
47
- const hasAccordionContent = React.isValidElement(accordionContent);
48
- const countTds = hasAccordionContent ? children.filter(element => {
49
- return element.type === Td;
50
- }).length + 1 : null;
55
+ const hasAccordionContent = accordionContent.length !== 0 && accordionContent.every(element => React.isValidElement(element));
51
56
  const trParams = !disabled && hasAccordionContent ? {
52
57
  onClick: toggleOpenTr,
53
58
  onMouseEnter: onMouseEnterHandler,
@@ -55,34 +60,25 @@ export function useTableAccordion(_ref) {
55
60
  onKeyDown: onKeydownHandler
56
61
  } : {};
57
62
  if (hasAccordionContent) {
58
- content = content.filter(element => {
59
- const hasContent = element.type === TableAccordionContent;
60
- return !hasContent;
63
+ headerContent = headerContent.filter(element => {
64
+ return !isAccordionElement(element);
61
65
  });
62
- const tdElem = _TableTdAccordionIcon || (_TableTdAccordionIcon = React.createElement(TableTdAccordionIcon, {
66
+ addExpandIcon(_Td || (_Td = React.createElement(Td, {
67
+ className: "dnb-table__td__accordion-icon",
63
68
  key: "td-icon"
64
- }));
65
- if (tableContext.allProps.accordionChevronPlacement === 'end') {
66
- content.push(tdElem);
67
- } else {
68
- content.unshift(tdElem);
69
- }
70
- } else if (tableContext !== null && tableContext !== void 0 && (_tableContext$allProp2 = tableContext.allProps) !== null && _tableContext$allProp2 !== void 0 && _tableContext$allProp2.accordion) {
71
- const isTh = content.some(element => {
72
- return element.type === Th;
73
- });
74
- if (isTh) {
75
- const thElem = _TableThAccordionIcon || (_TableThAccordionIcon = React.createElement(TableThAccordionIcon, {
76
- key: "th-icon"
77
- }));
78
- if (tableContext.allProps.accordionChevronPlacement === 'end') {
79
- content.push(thElem);
80
- } else {
81
- content.unshift(thElem);
82
- }
83
- }
69
+ }, React.createElement(TableAccordionToggleButton, null))));
70
+ } else if (isTableHead(headerContent)) {
71
+ var _tableContext$allProp2;
72
+ addExpandIcon(React.createElement(Th, {
73
+ "aria-hidden": true,
74
+ className: "dnb-table__th__accordion-icon",
75
+ key: "th-icon"
76
+ }, React.createElement("div", null, tableContext === null || tableContext === void 0 ? void 0 : (_tableContext$allProp2 = tableContext.allProps) === null || _tableContext$allProp2 === void 0 ? void 0 : _tableContext$allProp2.accordionToggleButtonSR)));
84
77
  }
85
- return React.createElement(TrContext.Provider, {
78
+ const countTds = hasAccordionContent ? headerContent.filter(element => {
79
+ return element.type === Td;
80
+ }).length : null;
81
+ return React.createElement(TableAccordionContext.Provider, {
86
82
  value: {
87
83
  toggleOpenTr,
88
84
  trIsOpen,
@@ -95,7 +91,7 @@ export function useTableAccordion(_ref) {
95
91
  }, React.createElement("tr", _extends({
96
92
  tabIndex: accordionContent && !disabled ? 0 : undefined,
97
93
  className: classnames(className, hasAccordionContent && 'dnb-table__tr--has-accordion-content', trIsOpen && 'dnb-table__tr--expanded', disabled && 'dnb-table__tr--disabled', noAnimation && 'dnb-table__tr--no-animation', trIsHover && trHadClick && 'dnb-table__tr--hover')
98
- }, trParams, props), content), accordionContent);
94
+ }, trParams, props), headerContent), accordionContent);
99
95
  function onKeydownHandler(event) {
100
96
  switch (keycode(event)) {
101
97
  case 'space':
@@ -118,8 +114,9 @@ export function useTableAccordion(_ref) {
118
114
  setHadClick(false);
119
115
  }
120
116
  function toggleOpenTr(event) {
117
+ let allowInteractiveElement = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : false;
121
118
  const target = event.target;
122
- if (document.activeElement !== target && target.tagName !== 'INPUT' && target.tagName !== 'LABEL' && !hasSelectedText()) {
119
+ if ((document.activeElement !== target && target.tagName !== 'INPUT' && target.tagName !== 'LABEL' || allowInteractiveElement) && !hasSelectedText()) {
123
120
  setOpen(!trIsOpen);
124
121
  setHadClick(true);
125
122
  onClick === null || onClick === void 0 ? void 0 : onClick(event);
@@ -128,7 +125,7 @@ export function useTableAccordion(_ref) {
128
125
  }
129
126
  export function TableAccordionToggleButton() {
130
127
  var _React$useContext;
131
- const trContext = React.useContext(TrContext);
128
+ const tableAccordionContext = React.useContext(TableAccordionContext);
132
129
  const allProps = (_React$useContext = React.useContext(TableContext)) === null || _React$useContext === void 0 ? void 0 : _React$useContext.allProps;
133
130
  const iconSize = allProps.size === 'medium' || allProps.size === 'small' ? 'basis' : 'medium';
134
131
  return React.createElement("span", {
@@ -140,21 +137,10 @@ export function TableAccordionToggleButton() {
140
137
  className: "dnb-sr-only",
141
138
  tabIndex: -1,
142
139
  "aria-label": allProps === null || allProps === void 0 ? void 0 : allProps.accordionToggleButtonSR,
143
- "aria-expanded": Boolean(trContext === null || trContext === void 0 ? void 0 : trContext.trIsOpen),
144
- on_click: trContext === null || trContext === void 0 ? void 0 : trContext.toggleOpenTr
140
+ "aria-expanded": Boolean(tableAccordionContext === null || tableAccordionContext === void 0 ? void 0 : tableAccordionContext.trIsOpen),
141
+ on_click: event => tableAccordionContext === null || tableAccordionContext === void 0 ? void 0 : tableAccordionContext.toggleOpenTr(event, true)
145
142
  }));
146
143
  }
147
- function TableThAccordionIcon() {
148
- var _tableContext$allProp3;
149
- const tableContext = React.useContext(TableContext);
150
- return React.createElement(Th, {
151
- "aria-hidden": true,
152
- className: "dnb-table__th__accordion-icon"
153
- }, React.createElement("div", null, tableContext === null || tableContext === void 0 ? void 0 : (_tableContext$allProp3 = tableContext.allProps) === null || _tableContext$allProp3 === void 0 ? void 0 : _tableContext$allProp3.accordionToggleButtonSR));
154
- }
155
- function TableTdAccordionIcon() {
156
- return _Td || (_Td = React.createElement(Td, {
157
- className: "dnb-table__td__accordion-icon"
158
- }, React.createElement(TableAccordionToggleButton, null)));
159
- }
144
+ const isAccordionElement = element => element.type === TableAccordionTd || element.type === TableAccordionTr;
145
+ const isTableHead = children => children.some(element => element.type === Th);
160
146
  //# sourceMappingURL=TableAccordion.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"TableAccordion.js","names":["React","classnames","Button","IconPrimary","Th","Td","TableContext","keycode","hasSelectedText","TableAccordionContent","TrContext","useTableAccordion","_ref","_tableContext$allProp","_tableContext$allProp2","children","className","props","expanded","disabled","noAnimation","onClick","onOpened","onClosed","tableContext","useContext","trIsOpen","setOpen","useState","location","id","hash","trIsHover","setHover","trHadClick","setHadClick","content","Children","toArray","allProps","accordion","accordionContent","find","element","type","hasAccordionContent","isValidElement","countTds","filter","length","trParams","toggleOpenTr","onMouseEnter","onMouseEnterHandler","onMouseLeave","onMouseLeaveHandler","onKeyDown","onKeydownHandler","hasContent","tdElem","_TableTdAccordionIcon","createElement","TableTdAccordionIcon","key","accordionChevronPlacement","push","unshift","isTh","some","thElem","_TableThAccordionIcon","TableThAccordionIcon","Provider","value","_extends","tabIndex","undefined","event","target","document","activeElement","tagName","preventDefault","TableAccordionToggleButton","_React$useContext","trContext","iconSize","size","icon","accordionToggleButtonSR","Boolean","on_click","_tableContext$allProp3","_Td"],"sources":["../../../../src/components/table/TableAccordion.tsx"],"sourcesContent":["import React from 'react'\nimport classnames from 'classnames'\nimport Button from '../button/Button'\nimport IconPrimary from '../icon/IconPrimary'\nimport Th from './TableTh'\nimport Td from './TableTd'\nimport TableContext from './TableContext'\nimport keycode from 'keycode'\nimport { hasSelectedText } from '../../shared/helpers'\nimport { TableTrProps } from './TableTr'\n\nimport TableAccordionContent, { TrContext } from './TableAccordionContent'\nimport type { TableAccordionContentProps } from './TableAccordionContent'\n\nexport function useTableAccordion({\n children,\n className,\n props,\n expanded,\n disabled,\n noAnimation,\n onClick,\n onOpened,\n onClosed,\n}) {\n const tableContext = React.useContext(TableContext)\n\n const [trIsOpen, setOpen] = React.useState(() => {\n if (typeof expanded === 'boolean') {\n return expanded\n } else if (typeof location !== 'undefined') {\n const id = props?.id\n if (id && '#' + id === location.hash) {\n return true\n }\n }\n\n return false\n })\n const [trIsHover, setHover] = React.useState(false)\n const [trHadClick, setHadClick] = React.useState(false)\n\n let content = React.Children.toArray(children)\n\n if (!tableContext?.allProps?.accordion) {\n return null\n }\n\n /**\n * Handle Accordion Content\n */\n const accordionContent = content.find((element: React.ReactElement) => {\n return element.type === TableAccordionContent\n }) as React.ReactElement<TableAccordionContentProps>\n const hasAccordionContent = React.isValidElement(accordionContent)\n const countTds = hasAccordionContent\n ? children.filter((element: React.ReactElement) => {\n return element.type === Td // TODO: We may need to include this in future --> || component.type === Td.MainCell\n }).length + 1 // +1 because we push the TableAccordionToggleButton\n : null\n\n const trParams =\n !disabled && hasAccordionContent\n ? {\n onClick: toggleOpenTr,\n onMouseEnter: onMouseEnterHandler,\n onMouseLeave: onMouseLeaveHandler,\n onKeyDown: onKeydownHandler,\n }\n : {}\n\n if (hasAccordionContent) {\n // Remove the AccordionContent, and use it outside of the tr\n content = content.filter((element) => {\n const hasContent =\n (element as React.ReactElement<TableTrProps>).type ===\n TableAccordionContent\n return !hasContent\n })\n\n const tdElem = <TableTdAccordionIcon key=\"td-icon\" />\n\n if (tableContext.allProps.accordionChevronPlacement === 'end') {\n content.push(tdElem)\n } else {\n content.unshift(tdElem)\n }\n } else if (tableContext?.allProps?.accordion) {\n const isTh = content.some((element) => {\n return (element as React.ReactElement<TableTrProps>).type === Th\n })\n\n if (isTh) {\n const thElem = <TableThAccordionIcon key=\"th-icon\" />\n\n if (tableContext.allProps.accordionChevronPlacement === 'end') {\n content.push(thElem)\n } else {\n content.unshift(thElem)\n }\n }\n }\n\n return (\n <TrContext.Provider\n value={{\n toggleOpenTr,\n trIsOpen,\n noAnimation,\n countTds,\n hasAccordionContent,\n onOpened,\n onClosed,\n }}\n >\n <tr\n tabIndex={accordionContent && !disabled ? 0 : undefined}\n className={classnames(\n className,\n hasAccordionContent && 'dnb-table__tr--has-accordion-content',\n trIsOpen && 'dnb-table__tr--expanded',\n disabled && 'dnb-table__tr--disabled',\n noAnimation && 'dnb-table__tr--no-animation',\n trIsHover && trHadClick && 'dnb-table__tr--hover'\n )}\n {...trParams}\n {...props}\n >\n {content}\n </tr>\n {accordionContent}\n </TrContext.Provider>\n )\n\n function onKeydownHandler(event: KeyboardEvent) {\n switch (keycode(event)) {\n case 'space':\n case 'enter':\n {\n const target = event.target as HTMLElement\n if (\n document.activeElement !== target ||\n target.tagName === 'TR'\n ) {\n setOpen(!trIsOpen)\n event.preventDefault()\n }\n }\n break\n }\n }\n function onMouseEnterHandler() {\n setHover(true)\n }\n function onMouseLeaveHandler() {\n setHover(false)\n setHadClick(false)\n }\n function toggleOpenTr(event: MouseEvent) {\n const target = event.target as HTMLElement\n if (\n /**\n * Interactive elements to set activeElement on mouseDown,\n * we we can check against it.\n */\n document.activeElement !== target &&\n /**\n * Safari on macOS needs this extra check:\n *\n * > For example, on macOS systems, elements that aren't text input elements are not typically focusable by default.\n * https://developer.mozilla.org/en-US/docs/Web/API/Document/activeElement\n */\n target.tagName !== 'INPUT' &&\n target.tagName !== 'LABEL' &&\n /**\n * Let the user select text,\n * without triggering the accordion.\n */\n !hasSelectedText()\n ) {\n setOpen(!trIsOpen)\n setHadClick(true)\n\n onClick?.(event)\n }\n }\n}\n\nexport function TableAccordionToggleButton() {\n const trContext = React.useContext(TrContext)\n const allProps = React.useContext(TableContext)?.allProps\n const iconSize =\n allProps.size === 'medium' || allProps.size === 'small'\n ? 'basis'\n : 'medium'\n\n return (\n <span className=\"dnb-table__toggle-button\">\n <IconPrimary icon=\"chevron_down\" size={iconSize} />\n <Button\n className=\"dnb-sr-only\"\n tabIndex={-1}\n aria-label={allProps?.accordionToggleButtonSR}\n aria-expanded={Boolean(trContext?.trIsOpen)}\n on_click={trContext?.toggleOpenTr}\n />\n </span>\n )\n}\n\nfunction TableThAccordionIcon() {\n const tableContext = React.useContext(TableContext)\n return (\n <Th aria-hidden className=\"dnb-table__th__accordion-icon\">\n <div>{tableContext?.allProps?.accordionToggleButtonSR}</div>\n </Th>\n )\n}\n\nfunction TableTdAccordionIcon() {\n return (\n <Td className=\"dnb-table__td__accordion-icon\">\n <TableAccordionToggleButton />\n </Td>\n )\n}\n"],"mappings":"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"}
1
+ {"version":3,"file":"TableAccordion.js","names":["React","classnames","Button","IconPrimary","Th","Td","TableAccordionContext","TableContext","keycode","hasSelectedText","TableAccordionTd","TableAccordionTr","useTableAccordion","_ref","_tableContext$allProp","children","className","props","expanded","disabled","noAnimation","onClick","onOpened","onClosed","tableContext","useContext","trIsOpen","setOpen","useState","location","id","hash","trIsHover","setHover","trHadClick","setHadClick","allProps","accordion","headerContent","Children","toArray","addExpandIcon","icon","accordionChevronPlacement","push","unshift","accordionContent","filter","element","isAccordionElement","hasAccordionContent","length","every","isValidElement","trParams","toggleOpenTr","onMouseEnter","onMouseEnterHandler","onMouseLeave","onMouseLeaveHandler","onKeyDown","onKeydownHandler","_Td","createElement","key","TableAccordionToggleButton","isTableHead","_tableContext$allProp2","accordionToggleButtonSR","countTds","type","Provider","value","_extends","tabIndex","undefined","event","target","document","activeElement","tagName","preventDefault","allowInteractiveElement","arguments","_React$useContext","tableAccordionContext","iconSize","size","Boolean","on_click","some"],"sources":["../../../../src/components/table/TableAccordion.tsx"],"sourcesContent":["import React from 'react'\nimport classnames from 'classnames'\nimport Button from '../button/Button'\nimport IconPrimary from '../icon/IconPrimary'\nimport Th from './TableTh'\nimport Td from './TableTd'\nimport { TableAccordionContext, TableContext } from './TableContext'\nimport keycode from 'keycode'\nimport { hasSelectedText } from '../../shared/helpers'\n\nimport TableAccordionTd from './TableAccordionTd'\nimport TableAccordionTr from './TableAccordionTr'\nimport type { TableAccordionTdProps } from './TableAccordionTd'\nimport type { TableAccordionTrProps } from './TableAccordionTr'\n\ntype TableAccordionContentProps =\n | TableAccordionTdProps\n | TableAccordionTrProps\n\nexport function useTableAccordion({\n children,\n className,\n props,\n expanded,\n disabled,\n noAnimation,\n onClick,\n onOpened,\n onClosed,\n}) {\n const tableContext = React.useContext(TableContext)\n\n const [trIsOpen, setOpen] = React.useState(() => {\n if (typeof expanded === 'boolean') {\n return expanded\n } else if (typeof location !== 'undefined') {\n const id = props?.id\n if (id && '#' + id === location.hash) {\n return true\n }\n }\n\n return false\n })\n const [trIsHover, setHover] = React.useState(false)\n const [trHadClick, setHadClick] = React.useState(false)\n\n if (!tableContext?.allProps?.accordion) {\n return null\n }\n\n let headerContent = React.Children.toArray(children)\n\n const addExpandIcon = (icon) => {\n if (tableContext.allProps.accordionChevronPlacement === 'end') {\n headerContent.push(icon)\n } else {\n headerContent.unshift(icon)\n }\n }\n /**\n * Handle Accordion Content\n */\n const accordionContent = headerContent.filter(\n (element: React.ReactElement) => {\n return isAccordionElement(element)\n }\n ) as React.ReactElement<TableAccordionContentProps>[]\n\n const hasAccordionContent =\n accordionContent.length !== 0 &&\n accordionContent.every((element) => React.isValidElement(element))\n\n const trParams =\n !disabled && hasAccordionContent\n ? {\n onClick: toggleOpenTr,\n onMouseEnter: onMouseEnterHandler,\n onMouseLeave: onMouseLeaveHandler,\n onKeyDown: onKeydownHandler,\n }\n : {}\n\n if (hasAccordionContent) {\n // Remove the AccordionContent, and use it outside of the tr\n headerContent = headerContent.filter((element: React.ReactElement) => {\n return !isAccordionElement(element)\n })\n\n addExpandIcon(\n <Td className=\"dnb-table__td__accordion-icon\" key=\"td-icon\">\n <TableAccordionToggleButton />\n </Td>\n )\n } else if (isTableHead(headerContent)) {\n addExpandIcon(\n <Th\n aria-hidden\n className=\"dnb-table__th__accordion-icon\"\n key=\"th-icon\"\n >\n <div>{tableContext?.allProps?.accordionToggleButtonSR}</div>\n </Th>\n )\n }\n\n const countTds = hasAccordionContent\n ? headerContent.filter((element: React.ReactElement) => {\n return element.type === Td // TODO: We may need to include this in future --> || component.type === Td.MainCell\n }).length\n : null\n\n return (\n <TableAccordionContext.Provider\n value={{\n toggleOpenTr,\n trIsOpen,\n noAnimation,\n countTds,\n hasAccordionContent,\n onOpened,\n onClosed,\n }}\n >\n <tr\n tabIndex={accordionContent && !disabled ? 0 : undefined}\n className={classnames(\n className,\n hasAccordionContent && 'dnb-table__tr--has-accordion-content',\n trIsOpen && 'dnb-table__tr--expanded',\n disabled && 'dnb-table__tr--disabled',\n noAnimation && 'dnb-table__tr--no-animation',\n trIsHover && trHadClick && 'dnb-table__tr--hover'\n )}\n {...trParams}\n {...props}\n >\n {headerContent}\n </tr>\n {accordionContent}\n </TableAccordionContext.Provider>\n )\n\n function onKeydownHandler(event: KeyboardEvent) {\n switch (keycode(event)) {\n case 'space':\n case 'enter':\n {\n const target = event.target as HTMLElement\n if (\n document.activeElement !== target ||\n target.tagName === 'TR'\n ) {\n setOpen(!trIsOpen)\n event.preventDefault()\n }\n }\n break\n }\n }\n function onMouseEnterHandler() {\n setHover(true)\n }\n function onMouseLeaveHandler() {\n setHover(false)\n setHadClick(false)\n }\n function toggleOpenTr(\n event: MouseEvent,\n allowInteractiveElement = false\n ) {\n const target = event.target as HTMLElement\n if (\n /**\n * Do not toggle if user clicked an interactive element (input, button, etc.).\n * Interactive to set activeElement on mouseDown, we we can check against it.\n */\n ((document.activeElement !== target &&\n /**\n * Safari on macOS needs this extra check:\n *\n * > For example, on macOS systems, elements that aren't text input elements are not typically focusable by default.\n * https://developer.mozilla.org/en-US/docs/Web/API/Document/activeElement\n */\n target.tagName !== 'INPUT' &&\n target.tagName !== 'LABEL') ||\n allowInteractiveElement) &&\n /**\n * Let the user select text,\n * without triggering the accordion.\n */\n !hasSelectedText()\n ) {\n setOpen(!trIsOpen)\n setHadClick(true)\n\n onClick?.(event)\n }\n }\n}\n\nexport function TableAccordionToggleButton() {\n const tableAccordionContext = React.useContext(TableAccordionContext)\n const allProps = React.useContext(TableContext)?.allProps\n const iconSize =\n allProps.size === 'medium' || allProps.size === 'small'\n ? 'basis'\n : 'medium'\n\n return (\n <span className=\"dnb-table__toggle-button\">\n <IconPrimary icon=\"chevron_down\" size={iconSize} />\n <Button\n className=\"dnb-sr-only\"\n tabIndex={-1}\n aria-label={allProps?.accordionToggleButtonSR}\n aria-expanded={Boolean(tableAccordionContext?.trIsOpen)}\n on_click={(event) =>\n tableAccordionContext?.toggleOpenTr(event, true)\n }\n />\n </span>\n )\n}\n\nconst isAccordionElement = (element: React.ReactElement) =>\n element.type === TableAccordionTd || element.type === TableAccordionTr\n\nconst isTableHead = (children: React.ReactNode[]) =>\n children.some((element: React.ReactElement) => element.type === Th)\n"],"mappings":"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"}
@@ -0,0 +1,9 @@
1
+ import React from 'react';
2
+ import { TableAccordionTrProps } from './TableAccordionTr';
3
+ export type TableAccordionTdProps = {
4
+ /**
5
+ * Overwrite the internal collected colSpan (add +1)
6
+ */
7
+ colSpan?: number;
8
+ };
9
+ export default function TableAccordionTd(componentProps: TableAccordionTdProps & TableAccordionTrProps & React.TableHTMLAttributes<HTMLTableRowElement>): import("react/jsx-runtime").JSX.Element;
@@ -1,18 +1,14 @@
1
- "use client";
2
-
3
1
  import _extends from "@babel/runtime/helpers/esm/extends";
4
2
  import _defineProperty from "@babel/runtime/helpers/esm/defineProperty";
5
3
  import _objectWithoutProperties from "@babel/runtime/helpers/esm/objectWithoutProperties";
6
4
  const _excluded = ["expanded", "noAnimation", "className", "children", "colSpan", "style"];
7
5
  function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }
8
6
  function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys(Object(source), !0).forEach(function (key) { _defineProperty(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; }
9
- import React, { useCallback, useEffect } from 'react';
7
+ import React from 'react';
10
8
  import classnames from 'classnames';
11
- import { useHeightAnimation } from '../height-animation/useHeightAnimation';
12
- import { getClosestScrollViewElement } from '../../shared/component-helper';
13
- import TableContext from './TableContext';
14
- export const TrContext = React.createContext(null);
15
- export default function TableAccordionContent(componentProps) {
9
+ import useTableAnimationHandler from './useTableAnimationHandler';
10
+ import { TableAccordionContext, TableContext } from './TableContext';
11
+ export default function TableAccordionTd(componentProps) {
16
12
  var _React$useContext;
17
13
  const {
18
14
  expanded = null,
@@ -24,72 +20,42 @@ export default function TableAccordionContent(componentProps) {
24
20
  } = componentProps,
25
21
  props = _objectWithoutProperties(componentProps, _excluded);
26
22
  const allProps = (_React$useContext = React.useContext(TableContext)) === null || _React$useContext === void 0 ? void 0 : _React$useContext.allProps;
27
- const trContext = React.useContext(TrContext);
23
+ const tableAccordionContext = React.useContext(TableAccordionContext);
28
24
  const innerRef = React.useRef(null);
29
25
  const trRef = React.useRef(null);
30
- const [ariaLive, setAriaLive] = React.useState(null);
31
- const open = Boolean(expanded || (trContext === null || trContext === void 0 ? void 0 : trContext.trIsOpen));
32
- const scrollViewHandler = useCallback((clip = open) => {
33
- const scollView = getClosestScrollViewElement(trRef.current);
34
- if (scollView instanceof HTMLElement) {
35
- scollView.style.overflow = clip ? 'clip' : '';
36
- }
37
- }, [open]);
38
- useEffect(() => {
39
- if (open) {
40
- scrollViewHandler();
41
- }
42
- }, [open, scrollViewHandler]);
43
- const onOpen = useCallback(state => {
44
- setAriaLive(state ? true : null);
45
- }, []);
46
- const onAnimationEnd = useCallback(state => {
47
- var _trContext$onOpened, _trContext$onClosed;
48
- const event = {
49
- target: trRef.current
50
- };
51
- switch (state) {
52
- case 'opened':
53
- (_trContext$onOpened = trContext.onOpened) === null || _trContext$onOpened === void 0 ? void 0 : _trContext$onOpened.call(trContext, event);
54
- break;
55
- case 'closed':
56
- (_trContext$onClosed = trContext.onClosed) === null || _trContext$onClosed === void 0 ? void 0 : _trContext$onClosed.call(trContext, event);
57
- break;
58
- }
59
- scrollViewHandler(false);
60
- }, [scrollViewHandler, trContext]);
61
26
  const {
27
+ ariaLive,
62
28
  isInDOM,
63
29
  isAnimating,
64
30
  isVisibleParallax,
65
31
  firstPaintStyle
66
- } = useHeightAnimation(innerRef, {
67
- open,
68
- animate: Boolean(!noAnimation && !(trContext !== null && trContext !== void 0 && trContext.noAnimation)),
69
- onOpen,
70
- onAnimationEnd
32
+ } = useTableAnimationHandler({
33
+ innerRef,
34
+ trRef,
35
+ expanded,
36
+ noAnimation
71
37
  });
72
- const countTds = (trContext === null || trContext === void 0 ? void 0 : trContext.countTds) || colSpan;
38
+ const countTds = (tableAccordionContext === null || tableAccordionContext === void 0 ? void 0 : tableAccordionContext.countTds) || colSpan;
73
39
  return React.createElement("tr", _extends({
74
40
  "aria-hidden": !isInDOM,
75
41
  hidden: isInDOM ? undefined : true,
76
42
  role: isInDOM ? 'row' : undefined,
77
43
  style: _objectSpread(_objectSpread({}, firstPaintStyle), style),
78
- className: classnames('dnb-table__tr__accordion_content', className, isInDOM && "dnb-table__tr dnb-table__tr__accordion_content--expanded", isAnimating && 'dnb-table__tr__accordion_content--animating', isVisibleParallax && 'dnb-table__tr__accordion_content--parallax'),
44
+ className: classnames("dnb-table__tr__accordion-content dnb-table__tr__accordion-content--single", className, isInDOM && "dnb-table__tr dnb-table__tr__accordion-content--expanded", isAnimating && 'dnb-table__tr__accordion-content--animating', isVisibleParallax && 'dnb-table__tr__accordion-content--parallax'),
79
45
  ref: trRef
80
46
  }, props), React.createElement("td", {
81
47
  role: isInDOM ? 'cell' : undefined,
82
48
  colSpan: countTds,
83
49
  className: "dnb-table__td"
84
50
  }, isInDOM && React.createElement("div", {
85
- className: "dnb-table__tr__accordion_content__inner",
51
+ className: "dnb-table__tr__accordion-content__inner",
86
52
  ref: innerRef
87
53
  }, React.createElement("div", {
88
- className: "dnb-table__tr__accordion_content__inner__spacing"
54
+ className: "dnb-table__tr__accordion-content__inner__spacing"
89
55
  }, children)), React.createElement("span", {
90
56
  className: "dnb-sr-only"
91
57
  }, React.createElement("span", {
92
58
  "aria-live": "assertive"
93
59
  }, isInDOM && ariaLive ? allProps === null || allProps === void 0 ? void 0 : allProps.accordionMoreContentSR : null))));
94
60
  }
95
- //# sourceMappingURL=TableAccordionContent.js.map
61
+ //# sourceMappingURL=TableAccordionTd.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"TableAccordionTd.js","names":["React","classnames","useTableAnimationHandler","TableAccordionContext","TableContext","TableAccordionTd","componentProps","_React$useContext","expanded","noAnimation","className","children","colSpan","style","props","_objectWithoutProperties","_excluded","allProps","useContext","tableAccordionContext","innerRef","useRef","trRef","ariaLive","isInDOM","isAnimating","isVisibleParallax","firstPaintStyle","countTds","createElement","_extends","hidden","undefined","role","_objectSpread","ref","accordionMoreContentSR"],"sources":["../../../../src/components/table/TableAccordionTd.tsx"],"sourcesContent":["import React from 'react'\nimport classnames from 'classnames'\nimport useTableAnimationHandler from './useTableAnimationHandler'\nimport { TableAccordionContext, TableContext } from './TableContext'\nimport { TableAccordionTrProps } from './TableAccordionTr'\n\nexport type TableAccordionTdProps = {\n /**\n * Overwrite the internal collected colSpan (add +1)\n */\n colSpan?: number\n}\n\nexport default function TableAccordionTd(\n componentProps: TableAccordionTdProps &\n TableAccordionTrProps &\n React.TableHTMLAttributes<HTMLTableRowElement>\n) {\n const {\n expanded = null,\n noAnimation = null,\n className,\n children,\n colSpan = 100,\n style,\n ...props\n } = componentProps\n\n const allProps = React.useContext(TableContext)?.allProps\n const tableAccordionContext = React.useContext(TableAccordionContext)\n const innerRef = React.useRef<HTMLDivElement>(null)\n const trRef = React.useRef<HTMLTableRowElement>(null)\n const {\n ariaLive,\n isInDOM,\n isAnimating,\n isVisibleParallax,\n firstPaintStyle,\n } = useTableAnimationHandler({\n innerRef,\n trRef,\n expanded,\n noAnimation,\n })\n const countTds = tableAccordionContext?.countTds || colSpan\n\n return (\n <tr\n /**\n * VoiceOver needs the \"tr\" to be in the DOM in order to be able to continue reading downwards,\n * even it is either closed or opened. Else VO pretends that this current table row is the end of the table.\n *\n * + All the browsers do count the correct number (childCount) of rows + NVDA counts correct when used with Chrome.\n * - Firefox on Windows does it as well, but not when used with NVDA.\n */\n aria-hidden={!isInDOM} // NVDA and VoiceOver needs \"aria-hidden\" to remove it from the accessibility tree\n hidden={isInDOM ? undefined : true} // NVDA and VoiceOver needs \"hidden\" to be true in order to not count invisible table rows (based on \"tr\" element)\n role={isInDOM ? 'row' : undefined} // NVDA and VoiceOver needs \"hidden\" to be true in order to not count invisible table rows (based on \"role\" element)\n style={{ ...firstPaintStyle, ...style }}\n className={classnames(\n isInDOM && 'dnb-table__tr',\n 'dnb-table__tr__accordion-content',\n 'dnb-table__tr__accordion-content--single',\n isInDOM && 'dnb-table__tr__accordion-content--expanded',\n isAnimating && 'dnb-table__tr__accordion-content--animating',\n isVisibleParallax && 'dnb-table__tr__accordion-content--parallax',\n className\n )}\n ref={trRef}\n {...props}\n >\n <td\n role={isInDOM ? 'cell' : undefined} // remove the \"role\", because the parent role is removed as well\n colSpan={countTds}\n className=\"dnb-table__td\"\n >\n {isInDOM && (\n <div\n className=\"dnb-table__tr__accordion-content__inner\"\n ref={innerRef}\n >\n <div className=\"dnb-table__tr__accordion-content__inner__spacing\">\n {children}\n </div>\n </div>\n )}\n <span className=\"dnb-sr-only\">\n <span aria-live=\"assertive\">\n {isInDOM && ariaLive ? allProps?.accordionMoreContentSR : null}\n </span>\n </span>\n </td>\n </tr>\n )\n}\n"],"mappings":";;;;;;AAAA,OAAOA,KAAK,MAAM,OAAO;AACzB,OAAOC,UAAU,MAAM,YAAY;AACnC,OAAOC,wBAAwB,MAAM,4BAA4B;AACjE,SAASC,qBAAqB,EAAEC,YAAY,QAAQ,gBAAgB;AAUpE,eAAe,SAASC,gBAAgBA,CACtCC,cAEgD,EAChD;EAAA,IAAAC,iBAAA;EACA,MAAM;MACJC,QAAQ,GAAG,IAAI;MACfC,WAAW,GAAG,IAAI;MAClBC,SAAS;MACTC,QAAQ;MACRC,OAAO,GAAG,GAAG;MACbC;IAEF,CAAC,GAAGP,cAAc;IADbQ,KAAK,GAAAC,wBAAA,CACNT,cAAc,EAAAU,SAAA;EAElB,MAAMC,QAAQ,IAAAV,iBAAA,GAAGP,KAAK,CAACkB,UAAU,CAACd,YAAY,CAAC,cAAAG,iBAAA,uBAA9BA,iBAAA,CAAgCU,QAAQ;EACzD,MAAME,qBAAqB,GAAGnB,KAAK,CAACkB,UAAU,CAACf,qBAAqB,CAAC;EACrE,MAAMiB,QAAQ,GAAGpB,KAAK,CAACqB,MAAM,CAAiB,IAAI,CAAC;EACnD,MAAMC,KAAK,GAAGtB,KAAK,CAACqB,MAAM,CAAsB,IAAI,CAAC;EACrD,MAAM;IACJE,QAAQ;IACRC,OAAO;IACPC,WAAW;IACXC,iBAAiB;IACjBC;EACF,CAAC,GAAGzB,wBAAwB,CAAC;IAC3BkB,QAAQ;IACRE,KAAK;IACLd,QAAQ;IACRC;EACF,CAAC,CAAC;EACF,MAAMmB,QAAQ,GAAG,CAAAT,qBAAqB,aAArBA,qBAAqB,uBAArBA,qBAAqB,CAAES,QAAQ,KAAIhB,OAAO;EAE3D,OACEZ,KAAA,CAAA6B,aAAA,OAAAC,QAAA;IAQE,eAAa,CAACN,OAAQ;IACtBO,MAAM,EAAEP,OAAO,GAAGQ,SAAS,GAAG,IAAK;IACnCC,IAAI,EAAET,OAAO,GAAG,KAAK,GAAGQ,SAAU;IAClCnB,KAAK,EAAAqB,aAAA,CAAAA,aAAA,KAAOP,eAAe,GAAKd,KAAK,CAAG;IACxCH,SAAS,EAAET,UAAU,8EAOnBS,SAAS,EANTc,OAAO,gEAIPC,WAAW,IAAI,6CAA6C,EAC5DC,iBAAiB,IAAI,4CAEvB,CAAE;IACFS,GAAG,EAAEb;EAAM,GACPR,KAAK,GAETd,KAAA,CAAA6B,aAAA;IACEI,IAAI,EAAET,OAAO,GAAG,MAAM,GAAGQ,SAAU;IACnCpB,OAAO,EAAEgB,QAAS;IAClBlB,SAAS,EAAC;EAAe,GAExBc,OAAO,IACNxB,KAAA,CAAA6B,aAAA;IACEnB,SAAS,EAAC,yCAAyC;IACnDyB,GAAG,EAAEf;EAAS,GAEdpB,KAAA,CAAA6B,aAAA;IAAKnB,SAAS,EAAC;EAAkD,GAC9DC,QACE,CACF,CACN,EACDX,KAAA,CAAA6B,aAAA;IAAMnB,SAAS,EAAC;EAAa,GAC3BV,KAAA,CAAA6B,aAAA;IAAM,aAAU;EAAW,GACxBL,OAAO,IAAID,QAAQ,GAAGN,QAAQ,aAARA,QAAQ,uBAARA,QAAQ,CAAEmB,sBAAsB,GAAG,IACtD,CACF,CACJ,CACF,CAAC;AAET"}
@@ -0,0 +1,13 @@
1
+ import React from 'react';
2
+ export type TableAccordionTrProps = {
3
+ /**
4
+ * Set to true to expanded the content on initial render
5
+ */
6
+ expanded?: boolean;
7
+ /**
8
+ * Set to true to skip animation
9
+ * Default: false
10
+ */
11
+ noAnimation?: boolean;
12
+ };
13
+ export default function TableAccordionTr(componentProps: TableAccordionTrProps & React.TableHTMLAttributes<HTMLTableRowElement>): import("react/jsx-runtime").JSX.Element;
@@ -0,0 +1,51 @@
1
+ import _extends from "@babel/runtime/helpers/esm/extends";
2
+ import _defineProperty from "@babel/runtime/helpers/esm/defineProperty";
3
+ import _objectWithoutProperties from "@babel/runtime/helpers/esm/objectWithoutProperties";
4
+ const _excluded = ["expanded", "noAnimation", "className", "children", "style"];
5
+ function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }
6
+ function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys(Object(source), !0).forEach(function (key) { _defineProperty(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; }
7
+ import React from 'react';
8
+ import classnames from 'classnames';
9
+ import useTableAnimationHandler from './useTableAnimationHandler';
10
+ import { TableContext } from './TableContext';
11
+ import Td from './TableTd';
12
+ export default function TableAccordionTr(componentProps) {
13
+ var _React$useContext;
14
+ const {
15
+ expanded = null,
16
+ noAnimation = null,
17
+ className,
18
+ children,
19
+ style
20
+ } = componentProps,
21
+ props = _objectWithoutProperties(componentProps, _excluded);
22
+ const allProps = (_React$useContext = React.useContext(TableContext)) === null || _React$useContext === void 0 ? void 0 : _React$useContext.allProps;
23
+ const innerRef = React.useRef(null);
24
+ const trRef = React.useRef(null);
25
+ const {
26
+ ariaLive,
27
+ isInDOM,
28
+ isAnimating,
29
+ isVisibleParallax,
30
+ firstPaintStyle
31
+ } = useTableAnimationHandler({
32
+ innerRef,
33
+ trRef,
34
+ expanded,
35
+ noAnimation
36
+ });
37
+ const expandColumn = React.createElement(Td, null, React.createElement("span", {
38
+ className: "dnb-sr-only"
39
+ }, React.createElement("span", {
40
+ "aria-live": "assertive"
41
+ }, isInDOM && ariaLive ? allProps === null || allProps === void 0 ? void 0 : allProps.accordionMoreContentSR : null)));
42
+ return React.createElement("tr", _extends({
43
+ "aria-hidden": !isInDOM,
44
+ hidden: isInDOM ? undefined : true,
45
+ role: isInDOM ? 'row' : undefined,
46
+ style: _objectSpread(_objectSpread({}, firstPaintStyle), style),
47
+ className: classnames('dnb-table__tr__accordion-content', className, isInDOM && "dnb-table__tr dnb-table__tr__accordion-content--expanded", isAnimating && 'dnb-table__tr__accordion-content--animating', isVisibleParallax && 'dnb-table__tr__accordion-content--parallax'),
48
+ ref: trRef
49
+ }, props), allProps.accordionChevronPlacement !== 'end' && expandColumn, isInDOM && children, allProps.accordionChevronPlacement === 'end' && expandColumn);
50
+ }
51
+ //# sourceMappingURL=TableAccordionTr.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"TableAccordionTr.js","names":["React","classnames","useTableAnimationHandler","TableContext","Td","TableAccordionTr","componentProps","_React$useContext","expanded","noAnimation","className","children","style","props","_objectWithoutProperties","_excluded","allProps","useContext","innerRef","useRef","trRef","ariaLive","isInDOM","isAnimating","isVisibleParallax","firstPaintStyle","expandColumn","createElement","accordionMoreContentSR","_extends","hidden","undefined","role","_objectSpread","ref","accordionChevronPlacement"],"sources":["../../../../src/components/table/TableAccordionTr.tsx"],"sourcesContent":["import React from 'react'\nimport classnames from 'classnames'\nimport useTableAnimationHandler from './useTableAnimationHandler'\nimport { TableContext } from './TableContext'\nimport Td from './TableTd'\n\nexport type TableAccordionTrProps = {\n /**\n * Set to true to expanded the content on initial render\n */\n expanded?: boolean\n\n /**\n * Set to true to skip animation\n * Default: false\n */\n noAnimation?: boolean\n}\n\nexport default function TableAccordionTr(\n componentProps: TableAccordionTrProps &\n React.TableHTMLAttributes<HTMLTableRowElement>\n) {\n const {\n expanded = null,\n noAnimation = null,\n className,\n children,\n style,\n ...props\n } = componentProps\n\n const allProps = React.useContext(TableContext)?.allProps\n const innerRef = React.useRef<HTMLDivElement>(null)\n const trRef = React.useRef<HTMLTableRowElement>(null)\n\n const {\n ariaLive,\n isInDOM,\n isAnimating,\n isVisibleParallax,\n firstPaintStyle,\n } = useTableAnimationHandler({\n innerRef,\n trRef,\n expanded,\n noAnimation,\n })\n\n const expandColumn = (\n <Td>\n <span className=\"dnb-sr-only\">\n <span aria-live=\"assertive\">\n {isInDOM && ariaLive ? allProps?.accordionMoreContentSR : null}\n </span>\n </span>\n </Td>\n )\n\n return (\n <tr\n /**\n * VoiceOver needs the \"tr\" to be in the DOM in order to be able to continue reading downwards,\n * even it is either closed or opened. Else VO pretends that this current table row is the end of the table.\n *\n * + All the browsers do count the correct number (childCount) of rows + NVDA counts correct when used with Chrome.\n * - Firefox on Windows does it as well, but not when used with NVDA.\n */\n aria-hidden={!isInDOM} // NVDA and VoiceOver needs \"aria-hidden\" to remove it from the accessibility tree\n hidden={isInDOM ? undefined : true} // NVDA and VoiceOver needs \"hidden\" to be true in order to not count invisible table rows (based on \"tr\" element)\n role={isInDOM ? 'row' : undefined} // NVDA and VoiceOver needs \"hidden\" to be true in order to not count invisible table rows (based on \"role\" element)\n style={{ ...firstPaintStyle, ...style }}\n className={classnames(\n isInDOM && 'dnb-table__tr',\n 'dnb-table__tr__accordion-content',\n isInDOM && 'dnb-table__tr__accordion-content--expanded',\n isAnimating && 'dnb-table__tr__accordion-content--animating',\n isVisibleParallax && 'dnb-table__tr__accordion-content--parallax',\n className\n )}\n ref={trRef}\n {...props}\n >\n {allProps.accordionChevronPlacement !== 'end' && expandColumn}\n {isInDOM && children}\n {allProps.accordionChevronPlacement === 'end' && expandColumn}\n </tr>\n )\n}\n"],"mappings":";;;;;;AAAA,OAAOA,KAAK,MAAM,OAAO;AACzB,OAAOC,UAAU,MAAM,YAAY;AACnC,OAAOC,wBAAwB,MAAM,4BAA4B;AACjE,SAASC,YAAY,QAAQ,gBAAgB;AAC7C,OAAOC,EAAE,MAAM,WAAW;AAe1B,eAAe,SAASC,gBAAgBA,CACtCC,cACgD,EAChD;EAAA,IAAAC,iBAAA;EACA,MAAM;MACJC,QAAQ,GAAG,IAAI;MACfC,WAAW,GAAG,IAAI;MAClBC,SAAS;MACTC,QAAQ;MACRC;IAEF,CAAC,GAAGN,cAAc;IADbO,KAAK,GAAAC,wBAAA,CACNR,cAAc,EAAAS,SAAA;EAElB,MAAMC,QAAQ,IAAAT,iBAAA,GAAGP,KAAK,CAACiB,UAAU,CAACd,YAAY,CAAC,cAAAI,iBAAA,uBAA9BA,iBAAA,CAAgCS,QAAQ;EACzD,MAAME,QAAQ,GAAGlB,KAAK,CAACmB,MAAM,CAAiB,IAAI,CAAC;EACnD,MAAMC,KAAK,GAAGpB,KAAK,CAACmB,MAAM,CAAsB,IAAI,CAAC;EAErD,MAAM;IACJE,QAAQ;IACRC,OAAO;IACPC,WAAW;IACXC,iBAAiB;IACjBC;EACF,CAAC,GAAGvB,wBAAwB,CAAC;IAC3BgB,QAAQ;IACRE,KAAK;IACLZ,QAAQ;IACRC;EACF,CAAC,CAAC;EAEF,MAAMiB,YAAY,GAChB1B,KAAA,CAAA2B,aAAA,CAACvB,EAAE,QACDJ,KAAA,CAAA2B,aAAA;IAAMjB,SAAS,EAAC;EAAa,GAC3BV,KAAA,CAAA2B,aAAA;IAAM,aAAU;EAAW,GACxBL,OAAO,IAAID,QAAQ,GAAGL,QAAQ,aAARA,QAAQ,uBAARA,QAAQ,CAAEY,sBAAsB,GAAG,IACtD,CACF,CACJ,CACL;EAED,OACE5B,KAAA,CAAA2B,aAAA,OAAAE,QAAA;IAQE,eAAa,CAACP,OAAQ;IACtBQ,MAAM,EAAER,OAAO,GAAGS,SAAS,GAAG,IAAK;IACnCC,IAAI,EAAEV,OAAO,GAAG,KAAK,GAAGS,SAAU;IAClCnB,KAAK,EAAAqB,aAAA,CAAAA,aAAA,KAAOR,eAAe,GAAKb,KAAK,CAAG;IACxCF,SAAS,EAAET,UAAU,CAEnB,kCAAkC,EAIlCS,SAAS,EALTY,OAAO,gEAGPC,WAAW,IAAI,6CAA6C,EAC5DC,iBAAiB,IAAI,4CAEvB,CAAE;IACFU,GAAG,EAAEd;EAAM,GACPP,KAAK,GAERG,QAAQ,CAACmB,yBAAyB,KAAK,KAAK,IAAIT,YAAY,EAC5DJ,OAAO,IAAIX,QAAQ,EACnBK,QAAQ,CAACmB,yBAAyB,KAAK,KAAK,IAAIT,YAC/C,CAAC;AAET"}
@@ -3,5 +3,5 @@
3
3
  *
4
4
  */
5
5
  import React from 'react';
6
- declare const TableContext: React.Context<any>;
7
- export default TableContext;
6
+ export declare const TableContext: React.Context<any>;
7
+ export declare const TableAccordionContext: React.Context<any>;
@@ -1,4 +1,4 @@
1
1
  import React from 'react';
2
- const TableContext = React.createContext(null);
3
- export default TableContext;
2
+ export const TableContext = React.createContext(null);
3
+ export const TableAccordionContext = React.createContext(null);
4
4
  //# sourceMappingURL=TableContext.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"TableContext.js","names":["React","TableContext","createContext"],"sources":["../../../../src/components/table/TableContext.tsx"],"sourcesContent":["/**\n * Web TableContext Context\n *\n */\n\nimport React from 'react'\n\nconst TableContext = React.createContext(null)\n\nexport default TableContext\n"],"mappings":"AAKA,OAAOA,KAAK,MAAM,OAAO;AAEzB,MAAMC,YAAY,GAAGD,KAAK,CAACE,aAAa,CAAC,IAAI,CAAC;AAE9C,eAAeD,YAAY"}
1
+ {"version":3,"file":"TableContext.js","names":["React","TableContext","createContext","TableAccordionContext"],"sources":["../../../../src/components/table/TableContext.tsx"],"sourcesContent":["/**\n * Web TableContext Context\n *\n */\n\nimport React from 'react'\n\nexport const TableContext = React.createContext(null)\n\nexport const TableAccordionContext = React.createContext(null)\n"],"mappings":"AAKA,OAAOA,KAAK,MAAM,OAAO;AAEzB,OAAO,MAAMC,YAAY,GAAGD,KAAK,CAACE,aAAa,CAAC,IAAI,CAAC;AAErD,OAAO,MAAMC,qBAAqB,GAAGH,KAAK,CAACE,aAAa,CAAC,IAAI,CAAC"}
@@ -1,5 +1,5 @@
1
1
  import React from 'react';
2
- import TableAccordionContent from './TableAccordionContent';
2
+ import TableAccordionTd from './TableAccordionTd';
3
3
  export type TableTdProps = {
4
4
  /**
5
5
  * if set to `true`, no padding will be added
@@ -19,6 +19,6 @@ export type TableTdProps = {
19
19
  };
20
20
  declare function Td(componentProps: TableTdProps & React.TdHTMLAttributes<HTMLTableCellElement>): import("react/jsx-runtime").JSX.Element;
21
21
  declare namespace Td {
22
- var AccordionContent: typeof TableAccordionContent;
22
+ var AccordionContent: typeof TableAccordionTd;
23
23
  }
24
24
  export default Td;
@@ -3,7 +3,7 @@ import _objectWithoutProperties from "@babel/runtime/helpers/esm/objectWithoutPr
3
3
  const _excluded = ["className", "children", "noSpacing", "spacing"];
4
4
  import React from 'react';
5
5
  import classnames from 'classnames';
6
- import TableAccordionContent from './TableAccordionContent';
6
+ import TableAccordionTd from './TableAccordionTd';
7
7
  export default function Td(componentProps) {
8
8
  const {
9
9
  className,
@@ -17,5 +17,5 @@ export default function Td(componentProps) {
17
17
  className: classnames('dnb-table__td', className, noSpacing && 'dnb-table__td--no-spacing', spacing && `dnb-table__td--spacing-${spacing}`)
18
18
  }, props), children);
19
19
  }
20
- Td.AccordionContent = TableAccordionContent;
20
+ Td.AccordionContent = TableAccordionTd;
21
21
  //# sourceMappingURL=TableTd.js.map