@dnb/eufemia 10.28.0 → 10.30.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 (828) hide show
  1. package/CHANGELOG.md +45 -0
  2. package/cjs/components/aria-live/useAriaLive.d.ts +1 -1
  3. package/cjs/components/autocomplete/Autocomplete.d.ts +19 -5
  4. package/cjs/components/dropdown/Dropdown.d.ts +22 -5
  5. package/cjs/components/height-animation/HeightAnimationInstance.js +5 -0
  6. package/cjs/components/height-animation/HeightAnimationInstance.js.map +1 -1
  7. package/cjs/components/icon/style/dnb-icon.css +1 -0
  8. package/cjs/components/icon/style/dnb-icon.min.css +1 -1
  9. package/cjs/components/icon/style/dnb-icon.scss +1 -0
  10. package/cjs/components/progress-indicator/ProgressIndicator.d.ts +2 -52
  11. package/cjs/components/progress-indicator/ProgressIndicator.js +27 -14
  12. package/cjs/components/progress-indicator/ProgressIndicator.js.map +1 -1
  13. package/cjs/components/progress-indicator/ProgressIndicatorCircular.d.ts +2 -23
  14. package/cjs/components/progress-indicator/ProgressIndicatorCircular.js +63 -27
  15. package/cjs/components/progress-indicator/ProgressIndicatorCircular.js.map +1 -1
  16. package/cjs/components/progress-indicator/ProgressIndicatorDocs.d.ts +1 -0
  17. package/cjs/components/progress-indicator/ProgressIndicatorDocs.js +45 -11
  18. package/cjs/components/progress-indicator/ProgressIndicatorDocs.js.map +1 -1
  19. package/cjs/components/progress-indicator/ProgressIndicatorLinear.d.ts +2 -22
  20. package/cjs/components/progress-indicator/ProgressIndicatorLinear.js +18 -10
  21. package/cjs/components/progress-indicator/ProgressIndicatorLinear.js.map +1 -1
  22. package/cjs/components/progress-indicator/style/dnb-progress-indicator.css +52 -55
  23. package/cjs/components/progress-indicator/style/dnb-progress-indicator.min.css +1 -1
  24. package/cjs/components/progress-indicator/style/dnb-progress-indicator.scss +65 -69
  25. package/cjs/components/progress-indicator/types.d.ts +95 -0
  26. package/cjs/components/progress-indicator/types.js +11 -0
  27. package/cjs/components/progress-indicator/types.js.map +1 -0
  28. package/cjs/extensions/forms/DataContext/Context.d.ts +7 -2
  29. package/cjs/extensions/forms/DataContext/Context.js +0 -2
  30. package/cjs/extensions/forms/DataContext/Context.js.map +1 -1
  31. package/cjs/extensions/forms/DataContext/Provider/Provider.d.ts +30 -5
  32. package/cjs/extensions/forms/DataContext/Provider/Provider.js +69 -35
  33. package/cjs/extensions/forms/DataContext/Provider/Provider.js.map +1 -1
  34. package/cjs/extensions/forms/DataContext/Provider/ProviderDocs.js +27 -2
  35. package/cjs/extensions/forms/DataContext/Provider/ProviderDocs.js.map +1 -1
  36. package/cjs/extensions/forms/Field/ArraySelection/ArraySelection.js +1 -1
  37. package/cjs/extensions/forms/Field/ArraySelection/ArraySelection.js.map +1 -1
  38. package/cjs/extensions/forms/Field/ArraySelection/style/dnb-array-selection.css +5 -2
  39. package/cjs/extensions/forms/Field/ArraySelection/style/dnb-array-selection.min.css +1 -1
  40. package/cjs/extensions/forms/Field/ArraySelection/style/dnb-array-selection.scss +5 -2
  41. package/cjs/extensions/forms/Field/Name/Name.d.ts +10 -0
  42. package/cjs/extensions/forms/Field/Name/Name.js +73 -0
  43. package/cjs/extensions/forms/Field/Name/Name.js.map +1 -0
  44. package/cjs/extensions/forms/Field/Name/NameDocs.d.ts +2 -0
  45. package/cjs/extensions/forms/Field/Name/NameDocs.js +15 -0
  46. package/cjs/extensions/forms/Field/Name/NameDocs.js.map +1 -0
  47. package/cjs/extensions/forms/Field/Name/index.d.ts +2 -0
  48. package/cjs/extensions/forms/Field/Name/index.js +27 -0
  49. package/cjs/extensions/forms/Field/Name/index.js.map +1 -0
  50. package/cjs/extensions/forms/Field/Number/Number.d.ts +2 -2
  51. package/cjs/extensions/forms/Field/Number/Number.js.map +1 -1
  52. package/cjs/extensions/forms/Field/Option/Option.d.ts +2 -0
  53. package/cjs/extensions/forms/Field/Option/Option.js +21 -0
  54. package/cjs/extensions/forms/Field/Option/Option.js.map +1 -1
  55. package/cjs/extensions/forms/Field/PostalCodeAndCity/PostalCodeAndCityDocs.d.ts +2 -0
  56. package/cjs/extensions/forms/Field/PostalCodeAndCity/PostalCodeAndCityDocs.js +25 -0
  57. package/cjs/extensions/forms/Field/PostalCodeAndCity/PostalCodeAndCityDocs.js.map +1 -0
  58. package/cjs/extensions/forms/Field/SelectCountry/SelectCountry.d.ts +2 -2
  59. package/cjs/extensions/forms/Field/SelectCountry/SelectCountry.js.map +1 -1
  60. package/cjs/extensions/forms/Field/Selection/Selection.d.ts +11 -4
  61. package/cjs/extensions/forms/Field/Selection/Selection.js +20 -32
  62. package/cjs/extensions/forms/Field/Selection/Selection.js.map +1 -1
  63. package/cjs/extensions/forms/Field/Selection/SelectionDocs.d.ts +2 -0
  64. package/cjs/extensions/forms/Field/Selection/SelectionDocs.js +45 -0
  65. package/cjs/extensions/forms/Field/Selection/SelectionDocs.js.map +1 -0
  66. package/cjs/extensions/forms/Field/String/String.d.ts +2 -2
  67. package/cjs/extensions/forms/Field/String/String.js.map +1 -1
  68. package/cjs/extensions/forms/Field/index.d.ts +1 -0
  69. package/cjs/extensions/forms/Field/index.js +7 -0
  70. package/cjs/extensions/forms/Field/index.js.map +1 -1
  71. package/cjs/extensions/forms/FieldBlock/FieldBlock.d.ts +3 -3
  72. package/cjs/extensions/forms/FieldBlock/FieldBlock.js.map +1 -1
  73. package/cjs/extensions/forms/Form/FieldProps/FieldProps.d.ts +13 -0
  74. package/cjs/extensions/forms/Form/FieldProps/FieldProps.js +80 -0
  75. package/cjs/extensions/forms/Form/FieldProps/FieldProps.js.map +1 -0
  76. package/cjs/extensions/forms/Form/FieldProps/FieldPropsContext.d.ts +8 -0
  77. package/cjs/extensions/forms/Form/FieldProps/FieldPropsContext.js +15 -0
  78. package/cjs/extensions/forms/Form/FieldProps/FieldPropsContext.js.map +1 -0
  79. package/cjs/extensions/forms/Form/FieldProps/FieldPropsDocs.d.ts +2 -0
  80. package/cjs/extensions/forms/Form/FieldProps/FieldPropsDocs.js +18 -0
  81. package/cjs/extensions/forms/Form/FieldProps/FieldPropsDocs.js.map +1 -0
  82. package/cjs/extensions/forms/Form/FieldProps/index.d.ts +2 -0
  83. package/cjs/extensions/forms/Form/FieldProps/index.js +27 -0
  84. package/cjs/extensions/forms/Form/FieldProps/index.js.map +1 -0
  85. package/cjs/extensions/forms/Form/Handler/Handler.d.ts +1 -1
  86. package/cjs/extensions/forms/Form/Handler/Handler.js +18 -4
  87. package/cjs/extensions/forms/Form/Handler/Handler.js.map +1 -1
  88. package/cjs/extensions/forms/Form/MainHeading/MainHeading.js +1 -1
  89. package/cjs/extensions/forms/Form/MainHeading/MainHeading.js.map +1 -1
  90. package/cjs/extensions/forms/Form/MainHeading/style/dnb-form-main-heading.css +3 -3
  91. package/cjs/extensions/forms/Form/MainHeading/style/dnb-form-main-heading.min.css +1 -1
  92. package/cjs/extensions/forms/Form/MainHeading/style/dnb-form-main-heading.scss +1 -1
  93. package/cjs/extensions/forms/Form/SubHeading/SubHeading.js +1 -1
  94. package/cjs/extensions/forms/Form/SubHeading/SubHeading.js.map +1 -1
  95. package/cjs/extensions/forms/Form/SubHeading/style/dnb-form-sub-heading.css +2 -2
  96. package/cjs/extensions/forms/Form/SubHeading/style/dnb-form-sub-heading.min.css +1 -1
  97. package/cjs/extensions/forms/Form/SubHeading/style/dnb-form-sub-heading.scss +1 -1
  98. package/cjs/extensions/forms/Form/SubmitIndicator/SubmitIndicator.js +2 -2
  99. package/cjs/extensions/forms/Form/SubmitIndicator/SubmitIndicator.js.map +1 -1
  100. package/cjs/extensions/forms/Form/SubmitIndicator/style/dnb-form-submit-indicator.css +13 -13
  101. package/cjs/extensions/forms/Form/SubmitIndicator/style/dnb-form-submit-indicator.min.css +1 -1
  102. package/cjs/extensions/forms/Form/SubmitIndicator/style/dnb-form-submit-indicator.scss +1 -1
  103. package/cjs/extensions/forms/Form/Visibility/Visibility.d.ts +4 -1
  104. package/cjs/extensions/forms/Form/Visibility/Visibility.js +7 -4
  105. package/cjs/extensions/forms/Form/Visibility/Visibility.js.map +1 -1
  106. package/cjs/extensions/forms/Form/Visibility/VisibilityDocs.js +5 -0
  107. package/cjs/extensions/forms/Form/Visibility/VisibilityDocs.js.map +1 -1
  108. package/cjs/extensions/forms/Form/index.d.ts +1 -0
  109. package/cjs/extensions/forms/Form/index.js +7 -0
  110. package/cjs/extensions/forms/Form/index.js.map +1 -1
  111. package/cjs/extensions/forms/Iterate/AnimatedContainer/ElementBlock.js +4 -4
  112. package/cjs/extensions/forms/Iterate/AnimatedContainer/ElementBlock.js.map +1 -1
  113. package/cjs/extensions/forms/Iterate/Array/Array.js +2 -2
  114. package/cjs/extensions/forms/Iterate/Array/Array.js.map +1 -1
  115. package/cjs/extensions/forms/Iterate/EditContainer/EditContainer.js +1 -1
  116. package/cjs/extensions/forms/Iterate/EditContainer/EditContainer.js.map +1 -1
  117. package/cjs/extensions/forms/Iterate/PushButton/PushButton.js +1 -1
  118. package/cjs/extensions/forms/Iterate/PushButton/PushButton.js.map +1 -1
  119. package/cjs/extensions/forms/Iterate/RemoveButton/RemoveButton.js +1 -1
  120. package/cjs/extensions/forms/Iterate/RemoveButton/RemoveButton.js.map +1 -1
  121. package/cjs/extensions/forms/Iterate/Toolbar/Toolbar.js +1 -1
  122. package/cjs/extensions/forms/Iterate/Toolbar/Toolbar.js.map +1 -1
  123. package/cjs/extensions/forms/Iterate/ViewContainer/ViewContainer.js +1 -1
  124. package/cjs/extensions/forms/Iterate/ViewContainer/ViewContainer.js.map +1 -1
  125. package/cjs/extensions/forms/Iterate/style/dnb-form-iterate.css +14 -14
  126. package/cjs/extensions/forms/Iterate/style/dnb-form-iterate.min.css +1 -1
  127. package/cjs/extensions/forms/Iterate/style/dnb-form-iterate.scss +1 -1
  128. package/cjs/extensions/forms/Value/Boolean/Boolean.js +8 -3
  129. package/cjs/extensions/forms/Value/Boolean/Boolean.js.map +1 -1
  130. package/cjs/extensions/forms/Value/Name/Name.d.ts +10 -0
  131. package/cjs/extensions/forms/Value/Name/Name.js +50 -0
  132. package/cjs/extensions/forms/Value/Name/Name.js.map +1 -0
  133. package/cjs/extensions/forms/Value/Name/index.d.ts +2 -0
  134. package/cjs/extensions/forms/Value/Name/index.js +27 -0
  135. package/cjs/extensions/forms/Value/Name/index.js.map +1 -0
  136. package/cjs/extensions/forms/Value/OrganizationNumber/OrganizationNumber.d.ts +7 -0
  137. package/cjs/extensions/forms/Value/OrganizationNumber/OrganizationNumber.js +36 -0
  138. package/cjs/extensions/forms/Value/OrganizationNumber/OrganizationNumber.js.map +1 -0
  139. package/cjs/extensions/forms/Value/OrganizationNumber/index.d.ts +2 -0
  140. package/cjs/extensions/forms/Value/OrganizationNumber/index.js +27 -0
  141. package/cjs/extensions/forms/Value/OrganizationNumber/index.js.map +1 -0
  142. package/cjs/extensions/forms/Value/PostalCodeAndCity/PostalCodeAndCity.d.ts +7 -0
  143. package/cjs/extensions/forms/Value/PostalCodeAndCity/PostalCodeAndCity.js +41 -0
  144. package/cjs/extensions/forms/Value/PostalCodeAndCity/PostalCodeAndCity.js.map +1 -0
  145. package/cjs/extensions/forms/Value/PostalCodeAndCity/PostalCodeAndCityDocs.d.ts +2 -0
  146. package/cjs/extensions/forms/Value/PostalCodeAndCity/PostalCodeAndCityDocs.js +20 -0
  147. package/cjs/extensions/forms/Value/PostalCodeAndCity/PostalCodeAndCityDocs.js.map +1 -0
  148. package/cjs/extensions/forms/Value/PostalCodeAndCity/index.d.ts +2 -0
  149. package/cjs/extensions/forms/Value/PostalCodeAndCity/index.js +27 -0
  150. package/cjs/extensions/forms/Value/PostalCodeAndCity/index.js.map +1 -0
  151. package/cjs/extensions/forms/Value/String/String.js +8 -3
  152. package/cjs/extensions/forms/Value/String/String.js.map +1 -1
  153. package/cjs/extensions/forms/Value/SummaryList/SummaryList.js +1 -1
  154. package/cjs/extensions/forms/Value/SummaryList/SummaryList.js.map +1 -1
  155. package/cjs/extensions/forms/Value/ValueDocs.js +6 -1
  156. package/cjs/extensions/forms/Value/ValueDocs.js.map +1 -1
  157. package/cjs/extensions/forms/Value/index.d.ts +3 -0
  158. package/cjs/extensions/forms/Value/index.js +21 -0
  159. package/cjs/extensions/forms/Value/index.js.map +1 -1
  160. package/cjs/extensions/forms/ValueBlock/ValueBlock.js +2 -1
  161. package/cjs/extensions/forms/ValueBlock/ValueBlock.js.map +1 -1
  162. package/cjs/extensions/forms/ValueBlock/style/dnb-value-block.css +11 -6
  163. package/cjs/extensions/forms/ValueBlock/style/dnb-value-block.min.css +1 -1
  164. package/cjs/extensions/forms/ValueBlock/style/dnb-value-block.scss +11 -3
  165. package/cjs/extensions/forms/Wizard/Container/WizardContainer.js +17 -52
  166. package/cjs/extensions/forms/Wizard/Container/WizardContainer.js.map +1 -1
  167. package/cjs/extensions/forms/Wizard/Container/useHandleLayoutEffect.d.ts +9 -0
  168. package/cjs/extensions/forms/Wizard/Container/useHandleLayoutEffect.js +53 -0
  169. package/cjs/extensions/forms/Wizard/Container/useHandleLayoutEffect.js.map +1 -0
  170. package/cjs/extensions/forms/Wizard/Container/useStepAnimation.d.ts +4 -0
  171. package/cjs/extensions/forms/Wizard/Container/useStepAnimation.js +37 -0
  172. package/cjs/extensions/forms/Wizard/Container/useStepAnimation.js.map +1 -0
  173. package/cjs/extensions/forms/Wizard/Step/Step.js +13 -1
  174. package/cjs/extensions/forms/Wizard/Step/Step.js.map +1 -1
  175. package/cjs/extensions/forms/Wizard/hooks/useStep.js +5 -2
  176. package/cjs/extensions/forms/Wizard/hooks/useStep.js.map +1 -1
  177. package/cjs/extensions/forms/Wizard/style/dnb-wizard-layout.css +29 -2
  178. package/cjs/extensions/forms/Wizard/style/dnb-wizard-layout.min.css +1 -1
  179. package/cjs/extensions/forms/Wizard/style/dnb-wizard-layout.scss +35 -2
  180. package/cjs/extensions/forms/constants/locales/en-GB.d.ts +9 -0
  181. package/cjs/extensions/forms/constants/locales/en-GB.js +12 -3
  182. package/cjs/extensions/forms/constants/locales/en-GB.js.map +1 -1
  183. package/cjs/extensions/forms/constants/locales/en-US.d.ts +9 -0
  184. package/cjs/extensions/forms/constants/locales/index.d.ts +18 -0
  185. package/cjs/extensions/forms/constants/locales/nb-NO.d.ts +9 -0
  186. package/cjs/extensions/forms/constants/locales/nb-NO.js +11 -2
  187. package/cjs/extensions/forms/constants/locales/nb-NO.js.map +1 -1
  188. package/cjs/extensions/forms/hooks/useFieldProps.js +8 -4
  189. package/cjs/extensions/forms/hooks/useFieldProps.js.map +1 -1
  190. package/cjs/extensions/forms/hooks/useTranslation.js +3 -1
  191. package/cjs/extensions/forms/hooks/useTranslation.js.map +1 -1
  192. package/cjs/extensions/forms/style/dnb-forms.css +77 -43
  193. package/cjs/extensions/forms/style/dnb-forms.min.css +1 -1
  194. package/cjs/extensions/forms/types.d.ts +3 -2
  195. package/cjs/extensions/forms/types.js.map +1 -1
  196. package/cjs/fragments/drawer-list/DrawerList.d.ts +8 -4
  197. package/cjs/shared/Context.d.ts +4 -4
  198. package/cjs/shared/Context.js.map +1 -1
  199. package/cjs/shared/Eufemia.d.ts +1 -1
  200. package/cjs/shared/Eufemia.js +2 -2
  201. package/cjs/shared/Eufemia.js.map +1 -1
  202. package/cjs/shared/component-helper.d.ts +1 -0
  203. package/cjs/shared/component-helper.js +8 -1
  204. package/cjs/shared/component-helper.js.map +1 -1
  205. package/cjs/shared/helpers/assignPropsWithContext.d.ts +1 -0
  206. package/cjs/shared/helpers/assignPropsWithContext.js +22 -0
  207. package/cjs/shared/helpers/assignPropsWithContext.js.map +1 -0
  208. package/cjs/shared/helpers/extendPropsWithContext.d.ts +1 -0
  209. package/cjs/shared/helpers/extendPropsWithContext.js +1 -0
  210. package/cjs/shared/helpers/extendPropsWithContext.js.map +1 -1
  211. package/cjs/shared/helpers/filterValidProps.d.ts +1 -0
  212. package/cjs/shared/helpers/filterValidProps.js.map +1 -1
  213. package/cjs/shared/helpers/runCssVersionMismatchWarning.js +14 -3
  214. package/cjs/shared/helpers/runCssVersionMismatchWarning.js.map +1 -1
  215. package/cjs/style/core/scopes.scss +1 -1
  216. package/cjs/style/dnb-ui-basis.css +1 -1
  217. package/cjs/style/dnb-ui-basis.min.css +1 -1
  218. package/cjs/style/dnb-ui-body.css +1 -1
  219. package/cjs/style/dnb-ui-body.min.css +1 -1
  220. package/cjs/style/dnb-ui-components.css +129 -98
  221. package/cjs/style/dnb-ui-components.min.css +2 -2
  222. package/cjs/style/dnb-ui-core.css +1 -1
  223. package/cjs/style/dnb-ui-core.min.css +1 -1
  224. package/cjs/style/dnb-ui-extensions.css +77 -43
  225. package/cjs/style/dnb-ui-extensions.min.css +1 -1
  226. package/cjs/style/dnb-ui-forms.css +77 -43
  227. package/cjs/style/dnb-ui-forms.min.css +1 -1
  228. package/cjs/style/dnb-ui-forms.scss +1 -1
  229. package/cjs/style/themes/eiendom/basis.js +4 -0
  230. package/cjs/style/themes/eiendom/basis.js.map +1 -0
  231. package/cjs/style/themes/eiendom/index.js +5 -0
  232. package/cjs/style/themes/eiendom/index.js.map +1 -0
  233. package/cjs/style/themes/sbanken/basis.js +4 -0
  234. package/cjs/style/themes/sbanken/basis.js.map +1 -0
  235. package/cjs/style/themes/sbanken/index.js +5 -0
  236. package/cjs/style/themes/sbanken/index.js.map +1 -0
  237. package/cjs/style/themes/theme-eiendom/eiendom-theme-components.css +205 -141
  238. package/cjs/style/themes/theme-eiendom/eiendom-theme-components.min.css +2 -2
  239. package/cjs/style/themes/theme-eiendom/eiendom-theme-extensions.css +77 -43
  240. package/cjs/style/themes/theme-eiendom/eiendom-theme-extensions.min.css +1 -1
  241. package/cjs/style/themes/theme-eiendom/eiendom-theme-forms.css +77 -43
  242. package/cjs/style/themes/theme-eiendom/eiendom-theme-forms.min.css +1 -1
  243. package/cjs/style/themes/theme-sbanken/sbanken-theme-components.css +205 -141
  244. package/cjs/style/themes/theme-sbanken/sbanken-theme-components.min.css +2 -2
  245. package/cjs/style/themes/theme-sbanken/sbanken-theme-extensions.css +77 -43
  246. package/cjs/style/themes/theme-sbanken/sbanken-theme-extensions.min.css +1 -1
  247. package/cjs/style/themes/theme-sbanken/sbanken-theme-forms.css +77 -43
  248. package/cjs/style/themes/theme-sbanken/sbanken-theme-forms.min.css +1 -1
  249. package/cjs/style/themes/theme-ui/ui-theme-components.css +205 -141
  250. package/cjs/style/themes/theme-ui/ui-theme-components.min.css +2 -2
  251. package/cjs/style/themes/theme-ui/ui-theme-extensions.css +77 -43
  252. package/cjs/style/themes/theme-ui/ui-theme-extensions.min.css +1 -1
  253. package/cjs/style/themes/theme-ui/ui-theme-forms.css +77 -43
  254. package/cjs/style/themes/theme-ui/ui-theme-forms.min.css +1 -1
  255. package/cjs/style/themes/ui/basis.js +4 -0
  256. package/cjs/style/themes/ui/basis.js.map +1 -0
  257. package/cjs/style/themes/ui/index.js +5 -0
  258. package/cjs/style/themes/ui/index.js.map +1 -0
  259. package/components/aria-live/useAriaLive.d.ts +1 -1
  260. package/components/autocomplete/Autocomplete.d.ts +19 -5
  261. package/components/dropdown/Dropdown.d.ts +22 -5
  262. package/components/height-animation/HeightAnimationInstance.js +5 -0
  263. package/components/height-animation/HeightAnimationInstance.js.map +1 -1
  264. package/components/icon/style/dnb-icon.css +1 -0
  265. package/components/icon/style/dnb-icon.min.css +1 -1
  266. package/components/icon/style/dnb-icon.scss +1 -0
  267. package/components/progress-indicator/ProgressIndicator.d.ts +2 -52
  268. package/components/progress-indicator/ProgressIndicator.js +27 -14
  269. package/components/progress-indicator/ProgressIndicator.js.map +1 -1
  270. package/components/progress-indicator/ProgressIndicatorCircular.d.ts +2 -23
  271. package/components/progress-indicator/ProgressIndicatorCircular.js +63 -27
  272. package/components/progress-indicator/ProgressIndicatorCircular.js.map +1 -1
  273. package/components/progress-indicator/ProgressIndicatorDocs.d.ts +1 -0
  274. package/components/progress-indicator/ProgressIndicatorDocs.js +43 -10
  275. package/components/progress-indicator/ProgressIndicatorDocs.js.map +1 -1
  276. package/components/progress-indicator/ProgressIndicatorLinear.d.ts +2 -22
  277. package/components/progress-indicator/ProgressIndicatorLinear.js +18 -10
  278. package/components/progress-indicator/ProgressIndicatorLinear.js.map +1 -1
  279. package/components/progress-indicator/style/dnb-progress-indicator.css +52 -55
  280. package/components/progress-indicator/style/dnb-progress-indicator.min.css +1 -1
  281. package/components/progress-indicator/style/dnb-progress-indicator.scss +65 -69
  282. package/components/progress-indicator/types.d.ts +95 -0
  283. package/components/progress-indicator/types.js +5 -0
  284. package/components/progress-indicator/types.js.map +1 -0
  285. package/es/components/aria-live/useAriaLive.d.ts +1 -1
  286. package/es/components/autocomplete/Autocomplete.d.ts +19 -5
  287. package/es/components/dropdown/Dropdown.d.ts +22 -5
  288. package/es/components/height-animation/HeightAnimationInstance.js +5 -0
  289. package/es/components/height-animation/HeightAnimationInstance.js.map +1 -1
  290. package/es/components/icon/style/dnb-icon.css +1 -0
  291. package/es/components/icon/style/dnb-icon.min.css +1 -1
  292. package/es/components/icon/style/dnb-icon.scss +1 -0
  293. package/es/components/progress-indicator/ProgressIndicator.d.ts +2 -52
  294. package/es/components/progress-indicator/ProgressIndicator.js +27 -14
  295. package/es/components/progress-indicator/ProgressIndicator.js.map +1 -1
  296. package/es/components/progress-indicator/ProgressIndicatorCircular.d.ts +2 -23
  297. package/es/components/progress-indicator/ProgressIndicatorCircular.js +62 -27
  298. package/es/components/progress-indicator/ProgressIndicatorCircular.js.map +1 -1
  299. package/es/components/progress-indicator/ProgressIndicatorDocs.d.ts +1 -0
  300. package/es/components/progress-indicator/ProgressIndicatorDocs.js +43 -10
  301. package/es/components/progress-indicator/ProgressIndicatorDocs.js.map +1 -1
  302. package/es/components/progress-indicator/ProgressIndicatorLinear.d.ts +2 -22
  303. package/es/components/progress-indicator/ProgressIndicatorLinear.js +18 -10
  304. package/es/components/progress-indicator/ProgressIndicatorLinear.js.map +1 -1
  305. package/es/components/progress-indicator/style/dnb-progress-indicator.css +52 -55
  306. package/es/components/progress-indicator/style/dnb-progress-indicator.min.css +1 -1
  307. package/es/components/progress-indicator/style/dnb-progress-indicator.scss +65 -69
  308. package/es/components/progress-indicator/types.d.ts +95 -0
  309. package/es/components/progress-indicator/types.js +5 -0
  310. package/es/components/progress-indicator/types.js.map +1 -0
  311. package/es/extensions/forms/DataContext/Context.d.ts +7 -2
  312. package/es/extensions/forms/DataContext/Context.js +0 -2
  313. package/es/extensions/forms/DataContext/Context.js.map +1 -1
  314. package/es/extensions/forms/DataContext/Provider/Provider.d.ts +30 -5
  315. package/es/extensions/forms/DataContext/Provider/Provider.js +67 -34
  316. package/es/extensions/forms/DataContext/Provider/Provider.js.map +1 -1
  317. package/es/extensions/forms/DataContext/Provider/ProviderDocs.js +27 -2
  318. package/es/extensions/forms/DataContext/Provider/ProviderDocs.js.map +1 -1
  319. package/es/extensions/forms/Field/ArraySelection/ArraySelection.js +1 -1
  320. package/es/extensions/forms/Field/ArraySelection/ArraySelection.js.map +1 -1
  321. package/es/extensions/forms/Field/ArraySelection/style/dnb-array-selection.css +5 -2
  322. package/es/extensions/forms/Field/ArraySelection/style/dnb-array-selection.min.css +1 -1
  323. package/es/extensions/forms/Field/ArraySelection/style/dnb-array-selection.scss +5 -2
  324. package/es/extensions/forms/Field/Name/Name.d.ts +10 -0
  325. package/es/extensions/forms/Field/Name/Name.js +63 -0
  326. package/es/extensions/forms/Field/Name/Name.js.map +1 -0
  327. package/es/extensions/forms/Field/Name/NameDocs.d.ts +2 -0
  328. package/es/extensions/forms/Field/Name/NameDocs.js +8 -0
  329. package/es/extensions/forms/Field/Name/NameDocs.js.map +1 -0
  330. package/es/extensions/forms/Field/Name/index.d.ts +2 -0
  331. package/es/extensions/forms/Field/Name/index.js +3 -0
  332. package/es/extensions/forms/Field/Name/index.js.map +1 -0
  333. package/es/extensions/forms/Field/Number/Number.d.ts +2 -2
  334. package/es/extensions/forms/Field/Number/Number.js.map +1 -1
  335. package/es/extensions/forms/Field/Option/Option.d.ts +2 -0
  336. package/es/extensions/forms/Field/Option/Option.js +20 -0
  337. package/es/extensions/forms/Field/Option/Option.js.map +1 -1
  338. package/es/extensions/forms/Field/PostalCodeAndCity/PostalCodeAndCityDocs.d.ts +2 -0
  339. package/es/extensions/forms/Field/PostalCodeAndCity/PostalCodeAndCityDocs.js +18 -0
  340. package/es/extensions/forms/Field/PostalCodeAndCity/PostalCodeAndCityDocs.js.map +1 -0
  341. package/es/extensions/forms/Field/SelectCountry/SelectCountry.d.ts +2 -2
  342. package/es/extensions/forms/Field/SelectCountry/SelectCountry.js.map +1 -1
  343. package/es/extensions/forms/Field/Selection/Selection.d.ts +11 -4
  344. package/es/extensions/forms/Field/Selection/Selection.js +20 -32
  345. package/es/extensions/forms/Field/Selection/Selection.js.map +1 -1
  346. package/es/extensions/forms/Field/Selection/SelectionDocs.d.ts +2 -0
  347. package/es/extensions/forms/Field/Selection/SelectionDocs.js +38 -0
  348. package/es/extensions/forms/Field/Selection/SelectionDocs.js.map +1 -0
  349. package/es/extensions/forms/Field/String/String.d.ts +2 -2
  350. package/es/extensions/forms/Field/String/String.js.map +1 -1
  351. package/es/extensions/forms/Field/index.d.ts +1 -0
  352. package/es/extensions/forms/Field/index.js +1 -0
  353. package/es/extensions/forms/Field/index.js.map +1 -1
  354. package/es/extensions/forms/FieldBlock/FieldBlock.d.ts +3 -3
  355. package/es/extensions/forms/FieldBlock/FieldBlock.js.map +1 -1
  356. package/es/extensions/forms/Form/FieldProps/FieldProps.d.ts +13 -0
  357. package/es/extensions/forms/Form/FieldProps/FieldProps.js +71 -0
  358. package/es/extensions/forms/Form/FieldProps/FieldProps.js.map +1 -0
  359. package/es/extensions/forms/Form/FieldProps/FieldPropsContext.d.ts +8 -0
  360. package/es/extensions/forms/Form/FieldProps/FieldPropsContext.js +7 -0
  361. package/es/extensions/forms/Form/FieldProps/FieldPropsContext.js.map +1 -0
  362. package/es/extensions/forms/Form/FieldProps/FieldPropsDocs.d.ts +2 -0
  363. package/es/extensions/forms/Form/FieldProps/FieldPropsDocs.js +11 -0
  364. package/es/extensions/forms/Form/FieldProps/FieldPropsDocs.js.map +1 -0
  365. package/es/extensions/forms/Form/FieldProps/index.d.ts +2 -0
  366. package/es/extensions/forms/Form/FieldProps/index.js +3 -0
  367. package/es/extensions/forms/Form/FieldProps/index.js.map +1 -0
  368. package/es/extensions/forms/Form/Handler/Handler.d.ts +1 -1
  369. package/es/extensions/forms/Form/Handler/Handler.js +18 -4
  370. package/es/extensions/forms/Form/Handler/Handler.js.map +1 -1
  371. package/es/extensions/forms/Form/MainHeading/MainHeading.js +1 -1
  372. package/es/extensions/forms/Form/MainHeading/MainHeading.js.map +1 -1
  373. package/es/extensions/forms/Form/MainHeading/style/dnb-form-main-heading.css +3 -3
  374. package/es/extensions/forms/Form/MainHeading/style/dnb-form-main-heading.min.css +1 -1
  375. package/es/extensions/forms/Form/MainHeading/style/dnb-form-main-heading.scss +1 -1
  376. package/es/extensions/forms/Form/SubHeading/SubHeading.js +1 -1
  377. package/es/extensions/forms/Form/SubHeading/SubHeading.js.map +1 -1
  378. package/es/extensions/forms/Form/SubHeading/style/dnb-form-sub-heading.css +2 -2
  379. package/es/extensions/forms/Form/SubHeading/style/dnb-form-sub-heading.min.css +1 -1
  380. package/es/extensions/forms/Form/SubHeading/style/dnb-form-sub-heading.scss +1 -1
  381. package/es/extensions/forms/Form/SubmitIndicator/SubmitIndicator.js +2 -2
  382. package/es/extensions/forms/Form/SubmitIndicator/SubmitIndicator.js.map +1 -1
  383. package/es/extensions/forms/Form/SubmitIndicator/style/dnb-form-submit-indicator.css +13 -13
  384. package/es/extensions/forms/Form/SubmitIndicator/style/dnb-form-submit-indicator.min.css +1 -1
  385. package/es/extensions/forms/Form/SubmitIndicator/style/dnb-form-submit-indicator.scss +1 -1
  386. package/es/extensions/forms/Form/Visibility/Visibility.d.ts +4 -1
  387. package/es/extensions/forms/Form/Visibility/Visibility.js +7 -4
  388. package/es/extensions/forms/Form/Visibility/Visibility.js.map +1 -1
  389. package/es/extensions/forms/Form/Visibility/VisibilityDocs.js +5 -0
  390. package/es/extensions/forms/Form/Visibility/VisibilityDocs.js.map +1 -1
  391. package/es/extensions/forms/Form/index.d.ts +1 -0
  392. package/es/extensions/forms/Form/index.js +1 -0
  393. package/es/extensions/forms/Form/index.js.map +1 -1
  394. package/es/extensions/forms/Iterate/AnimatedContainer/ElementBlock.js +4 -4
  395. package/es/extensions/forms/Iterate/AnimatedContainer/ElementBlock.js.map +1 -1
  396. package/es/extensions/forms/Iterate/Array/Array.js +2 -2
  397. package/es/extensions/forms/Iterate/Array/Array.js.map +1 -1
  398. package/es/extensions/forms/Iterate/EditContainer/EditContainer.js +1 -1
  399. package/es/extensions/forms/Iterate/EditContainer/EditContainer.js.map +1 -1
  400. package/es/extensions/forms/Iterate/PushButton/PushButton.js +1 -1
  401. package/es/extensions/forms/Iterate/PushButton/PushButton.js.map +1 -1
  402. package/es/extensions/forms/Iterate/RemoveButton/RemoveButton.js +1 -1
  403. package/es/extensions/forms/Iterate/RemoveButton/RemoveButton.js.map +1 -1
  404. package/es/extensions/forms/Iterate/Toolbar/Toolbar.js +1 -1
  405. package/es/extensions/forms/Iterate/Toolbar/Toolbar.js.map +1 -1
  406. package/es/extensions/forms/Iterate/ViewContainer/ViewContainer.js +1 -1
  407. package/es/extensions/forms/Iterate/ViewContainer/ViewContainer.js.map +1 -1
  408. package/es/extensions/forms/Iterate/style/dnb-form-iterate.css +14 -14
  409. package/es/extensions/forms/Iterate/style/dnb-form-iterate.min.css +1 -1
  410. package/es/extensions/forms/Iterate/style/dnb-form-iterate.scss +1 -1
  411. package/es/extensions/forms/Value/Boolean/Boolean.js +8 -3
  412. package/es/extensions/forms/Value/Boolean/Boolean.js.map +1 -1
  413. package/es/extensions/forms/Value/Name/Name.d.ts +10 -0
  414. package/es/extensions/forms/Value/Name/Name.js +40 -0
  415. package/es/extensions/forms/Value/Name/Name.js.map +1 -0
  416. package/es/extensions/forms/Value/Name/index.d.ts +2 -0
  417. package/es/extensions/forms/Value/Name/index.js +3 -0
  418. package/es/extensions/forms/Value/Name/index.js.map +1 -0
  419. package/es/extensions/forms/Value/OrganizationNumber/OrganizationNumber.d.ts +7 -0
  420. package/es/extensions/forms/Value/OrganizationNumber/OrganizationNumber.js +24 -0
  421. package/es/extensions/forms/Value/OrganizationNumber/OrganizationNumber.js.map +1 -0
  422. package/es/extensions/forms/Value/OrganizationNumber/index.d.ts +2 -0
  423. package/es/extensions/forms/Value/OrganizationNumber/index.js +3 -0
  424. package/es/extensions/forms/Value/OrganizationNumber/index.js.map +1 -0
  425. package/es/extensions/forms/Value/PostalCodeAndCity/PostalCodeAndCity.d.ts +7 -0
  426. package/es/extensions/forms/Value/PostalCodeAndCity/PostalCodeAndCity.js +31 -0
  427. package/es/extensions/forms/Value/PostalCodeAndCity/PostalCodeAndCity.js.map +1 -0
  428. package/es/extensions/forms/Value/PostalCodeAndCity/PostalCodeAndCityDocs.d.ts +2 -0
  429. package/es/extensions/forms/Value/PostalCodeAndCity/PostalCodeAndCityDocs.js +13 -0
  430. package/es/extensions/forms/Value/PostalCodeAndCity/PostalCodeAndCityDocs.js.map +1 -0
  431. package/es/extensions/forms/Value/PostalCodeAndCity/index.d.ts +2 -0
  432. package/es/extensions/forms/Value/PostalCodeAndCity/index.js +3 -0
  433. package/es/extensions/forms/Value/PostalCodeAndCity/index.js.map +1 -0
  434. package/es/extensions/forms/Value/String/String.js +8 -3
  435. package/es/extensions/forms/Value/String/String.js.map +1 -1
  436. package/es/extensions/forms/Value/SummaryList/SummaryList.js +1 -1
  437. package/es/extensions/forms/Value/SummaryList/SummaryList.js.map +1 -1
  438. package/es/extensions/forms/Value/ValueDocs.js +6 -1
  439. package/es/extensions/forms/Value/ValueDocs.js.map +1 -1
  440. package/es/extensions/forms/Value/index.d.ts +3 -0
  441. package/es/extensions/forms/Value/index.js +3 -0
  442. package/es/extensions/forms/Value/index.js.map +1 -1
  443. package/es/extensions/forms/ValueBlock/ValueBlock.js +2 -1
  444. package/es/extensions/forms/ValueBlock/ValueBlock.js.map +1 -1
  445. package/es/extensions/forms/ValueBlock/style/dnb-value-block.css +11 -6
  446. package/es/extensions/forms/ValueBlock/style/dnb-value-block.min.css +1 -1
  447. package/es/extensions/forms/ValueBlock/style/dnb-value-block.scss +11 -3
  448. package/es/extensions/forms/Wizard/Container/WizardContainer.js +17 -51
  449. package/es/extensions/forms/Wizard/Container/WizardContainer.js.map +1 -1
  450. package/es/extensions/forms/Wizard/Container/useHandleLayoutEffect.d.ts +9 -0
  451. package/es/extensions/forms/Wizard/Container/useHandleLayoutEffect.js +46 -0
  452. package/es/extensions/forms/Wizard/Container/useHandleLayoutEffect.js.map +1 -0
  453. package/es/extensions/forms/Wizard/Container/useStepAnimation.d.ts +4 -0
  454. package/es/extensions/forms/Wizard/Container/useStepAnimation.js +29 -0
  455. package/es/extensions/forms/Wizard/Container/useStepAnimation.js.map +1 -0
  456. package/es/extensions/forms/Wizard/Step/Step.js +14 -2
  457. package/es/extensions/forms/Wizard/Step/Step.js.map +1 -1
  458. package/es/extensions/forms/Wizard/hooks/useStep.js +3 -2
  459. package/es/extensions/forms/Wizard/hooks/useStep.js.map +1 -1
  460. package/es/extensions/forms/Wizard/style/dnb-wizard-layout.css +29 -2
  461. package/es/extensions/forms/Wizard/style/dnb-wizard-layout.min.css +1 -1
  462. package/es/extensions/forms/Wizard/style/dnb-wizard-layout.scss +35 -2
  463. package/es/extensions/forms/constants/locales/en-GB.d.ts +9 -0
  464. package/es/extensions/forms/constants/locales/en-GB.js +12 -3
  465. package/es/extensions/forms/constants/locales/en-GB.js.map +1 -1
  466. package/es/extensions/forms/constants/locales/en-US.d.ts +9 -0
  467. package/es/extensions/forms/constants/locales/index.d.ts +18 -0
  468. package/es/extensions/forms/constants/locales/nb-NO.d.ts +9 -0
  469. package/es/extensions/forms/constants/locales/nb-NO.js +11 -2
  470. package/es/extensions/forms/constants/locales/nb-NO.js.map +1 -1
  471. package/es/extensions/forms/hooks/useFieldProps.js +8 -3
  472. package/es/extensions/forms/hooks/useFieldProps.js.map +1 -1
  473. package/es/extensions/forms/hooks/useTranslation.js +3 -1
  474. package/es/extensions/forms/hooks/useTranslation.js.map +1 -1
  475. package/es/extensions/forms/style/dnb-forms.css +77 -43
  476. package/es/extensions/forms/style/dnb-forms.min.css +1 -1
  477. package/es/extensions/forms/types.d.ts +3 -2
  478. package/es/extensions/forms/types.js.map +1 -1
  479. package/es/fragments/drawer-list/DrawerList.d.ts +8 -4
  480. package/es/shared/Context.d.ts +4 -4
  481. package/es/shared/Context.js.map +1 -1
  482. package/es/shared/Eufemia.d.ts +1 -1
  483. package/es/shared/Eufemia.js +2 -2
  484. package/es/shared/Eufemia.js.map +1 -1
  485. package/es/shared/component-helper.d.ts +1 -0
  486. package/es/shared/component-helper.js +2 -1
  487. package/es/shared/component-helper.js.map +1 -1
  488. package/es/shared/helpers/assignPropsWithContext.d.ts +1 -0
  489. package/es/shared/helpers/assignPropsWithContext.js +12 -0
  490. package/es/shared/helpers/assignPropsWithContext.js.map +1 -0
  491. package/es/shared/helpers/extendPropsWithContext.d.ts +1 -0
  492. package/es/shared/helpers/extendPropsWithContext.js +1 -1
  493. package/es/shared/helpers/extendPropsWithContext.js.map +1 -1
  494. package/es/shared/helpers/filterValidProps.d.ts +1 -0
  495. package/es/shared/helpers/filterValidProps.js.map +1 -1
  496. package/es/shared/helpers/runCssVersionMismatchWarning.js +14 -3
  497. package/es/shared/helpers/runCssVersionMismatchWarning.js.map +1 -1
  498. package/es/style/core/scopes.scss +1 -1
  499. package/es/style/dnb-ui-basis.css +1 -1
  500. package/es/style/dnb-ui-basis.min.css +1 -1
  501. package/es/style/dnb-ui-body.css +1 -1
  502. package/es/style/dnb-ui-body.min.css +1 -1
  503. package/es/style/dnb-ui-components.css +129 -98
  504. package/es/style/dnb-ui-components.min.css +2 -2
  505. package/es/style/dnb-ui-core.css +1 -1
  506. package/es/style/dnb-ui-core.min.css +1 -1
  507. package/es/style/dnb-ui-extensions.css +77 -43
  508. package/es/style/dnb-ui-extensions.min.css +1 -1
  509. package/es/style/dnb-ui-forms.css +77 -43
  510. package/es/style/dnb-ui-forms.min.css +1 -1
  511. package/es/style/dnb-ui-forms.scss +1 -1
  512. package/es/style/themes/eiendom/basis.js +1 -0
  513. package/es/style/themes/eiendom/basis.js.map +1 -0
  514. package/es/style/themes/eiendom/index.js +3 -0
  515. package/es/style/themes/eiendom/index.js.map +1 -0
  516. package/es/style/themes/sbanken/basis.js +1 -0
  517. package/es/style/themes/sbanken/basis.js.map +1 -0
  518. package/es/style/themes/sbanken/index.d.ts +1 -0
  519. package/es/style/themes/sbanken/index.js +3 -0
  520. package/es/style/themes/sbanken/index.js.map +1 -0
  521. package/es/style/themes/theme-eiendom/eiendom-theme-components.css +205 -141
  522. package/es/style/themes/theme-eiendom/eiendom-theme-components.min.css +2 -2
  523. package/es/style/themes/theme-eiendom/eiendom-theme-extensions.css +77 -43
  524. package/es/style/themes/theme-eiendom/eiendom-theme-extensions.min.css +1 -1
  525. package/es/style/themes/theme-eiendom/eiendom-theme-forms.css +77 -43
  526. package/es/style/themes/theme-eiendom/eiendom-theme-forms.min.css +1 -1
  527. package/es/style/themes/theme-sbanken/sbanken-theme-components.css +205 -141
  528. package/es/style/themes/theme-sbanken/sbanken-theme-components.min.css +2 -2
  529. package/es/style/themes/theme-sbanken/sbanken-theme-extensions.css +77 -43
  530. package/es/style/themes/theme-sbanken/sbanken-theme-extensions.min.css +1 -1
  531. package/es/style/themes/theme-sbanken/sbanken-theme-forms.css +77 -43
  532. package/es/style/themes/theme-sbanken/sbanken-theme-forms.min.css +1 -1
  533. package/es/style/themes/theme-ui/ui-theme-components.css +205 -141
  534. package/es/style/themes/theme-ui/ui-theme-components.min.css +2 -2
  535. package/es/style/themes/theme-ui/ui-theme-extensions.css +77 -43
  536. package/es/style/themes/theme-ui/ui-theme-extensions.min.css +1 -1
  537. package/es/style/themes/theme-ui/ui-theme-forms.css +77 -43
  538. package/es/style/themes/theme-ui/ui-theme-forms.min.css +1 -1
  539. package/es/style/themes/ui/basis.d.ts +1 -0
  540. package/es/style/themes/ui/basis.js +1 -0
  541. package/es/style/themes/ui/basis.js.map +1 -0
  542. package/es/style/themes/ui/index.d.ts +1 -0
  543. package/es/style/themes/ui/index.js +3 -0
  544. package/es/style/themes/ui/index.js.map +1 -0
  545. package/esm/dnb-ui-basis.min.mjs +1 -1
  546. package/esm/dnb-ui-components.min.mjs +1 -1
  547. package/esm/dnb-ui-elements.min.mjs +1 -1
  548. package/esm/dnb-ui-extensions.min.mjs +3 -3
  549. package/esm/dnb-ui-lib.min.mjs +1 -1
  550. package/extensions/forms/DataContext/Context.d.ts +7 -2
  551. package/extensions/forms/DataContext/Context.js +0 -2
  552. package/extensions/forms/DataContext/Context.js.map +1 -1
  553. package/extensions/forms/DataContext/Provider/Provider.d.ts +30 -5
  554. package/extensions/forms/DataContext/Provider/Provider.js +69 -35
  555. package/extensions/forms/DataContext/Provider/Provider.js.map +1 -1
  556. package/extensions/forms/DataContext/Provider/ProviderDocs.js +27 -2
  557. package/extensions/forms/DataContext/Provider/ProviderDocs.js.map +1 -1
  558. package/extensions/forms/Field/ArraySelection/ArraySelection.js +1 -1
  559. package/extensions/forms/Field/ArraySelection/ArraySelection.js.map +1 -1
  560. package/extensions/forms/Field/ArraySelection/style/dnb-array-selection.css +5 -2
  561. package/extensions/forms/Field/ArraySelection/style/dnb-array-selection.min.css +1 -1
  562. package/extensions/forms/Field/ArraySelection/style/dnb-array-selection.scss +5 -2
  563. package/extensions/forms/Field/Name/Name.d.ts +10 -0
  564. package/extensions/forms/Field/Name/Name.js +63 -0
  565. package/extensions/forms/Field/Name/Name.js.map +1 -0
  566. package/extensions/forms/Field/Name/NameDocs.d.ts +2 -0
  567. package/extensions/forms/Field/Name/NameDocs.js +8 -0
  568. package/extensions/forms/Field/Name/NameDocs.js.map +1 -0
  569. package/extensions/forms/Field/Name/index.d.ts +2 -0
  570. package/extensions/forms/Field/Name/index.js +3 -0
  571. package/extensions/forms/Field/Name/index.js.map +1 -0
  572. package/extensions/forms/Field/Number/Number.d.ts +2 -2
  573. package/extensions/forms/Field/Number/Number.js.map +1 -1
  574. package/extensions/forms/Field/Option/Option.d.ts +2 -0
  575. package/extensions/forms/Field/Option/Option.js +20 -0
  576. package/extensions/forms/Field/Option/Option.js.map +1 -1
  577. package/extensions/forms/Field/PostalCodeAndCity/PostalCodeAndCityDocs.d.ts +2 -0
  578. package/extensions/forms/Field/PostalCodeAndCity/PostalCodeAndCityDocs.js +18 -0
  579. package/extensions/forms/Field/PostalCodeAndCity/PostalCodeAndCityDocs.js.map +1 -0
  580. package/extensions/forms/Field/SelectCountry/SelectCountry.d.ts +2 -2
  581. package/extensions/forms/Field/SelectCountry/SelectCountry.js.map +1 -1
  582. package/extensions/forms/Field/Selection/Selection.d.ts +11 -4
  583. package/extensions/forms/Field/Selection/Selection.js +20 -32
  584. package/extensions/forms/Field/Selection/Selection.js.map +1 -1
  585. package/extensions/forms/Field/Selection/SelectionDocs.d.ts +2 -0
  586. package/extensions/forms/Field/Selection/SelectionDocs.js +38 -0
  587. package/extensions/forms/Field/Selection/SelectionDocs.js.map +1 -0
  588. package/extensions/forms/Field/String/String.d.ts +2 -2
  589. package/extensions/forms/Field/String/String.js.map +1 -1
  590. package/extensions/forms/Field/index.d.ts +1 -0
  591. package/extensions/forms/Field/index.js +1 -0
  592. package/extensions/forms/Field/index.js.map +1 -1
  593. package/extensions/forms/FieldBlock/FieldBlock.d.ts +3 -3
  594. package/extensions/forms/FieldBlock/FieldBlock.js.map +1 -1
  595. package/extensions/forms/Form/FieldProps/FieldProps.d.ts +13 -0
  596. package/extensions/forms/Form/FieldProps/FieldProps.js +71 -0
  597. package/extensions/forms/Form/FieldProps/FieldProps.js.map +1 -0
  598. package/extensions/forms/Form/FieldProps/FieldPropsContext.d.ts +8 -0
  599. package/extensions/forms/Form/FieldProps/FieldPropsContext.js +7 -0
  600. package/extensions/forms/Form/FieldProps/FieldPropsContext.js.map +1 -0
  601. package/extensions/forms/Form/FieldProps/FieldPropsDocs.d.ts +2 -0
  602. package/extensions/forms/Form/FieldProps/FieldPropsDocs.js +11 -0
  603. package/extensions/forms/Form/FieldProps/FieldPropsDocs.js.map +1 -0
  604. package/extensions/forms/Form/FieldProps/index.d.ts +2 -0
  605. package/extensions/forms/Form/FieldProps/index.js +3 -0
  606. package/extensions/forms/Form/FieldProps/index.js.map +1 -0
  607. package/extensions/forms/Form/Handler/Handler.d.ts +1 -1
  608. package/extensions/forms/Form/Handler/Handler.js +18 -4
  609. package/extensions/forms/Form/Handler/Handler.js.map +1 -1
  610. package/extensions/forms/Form/MainHeading/MainHeading.js +1 -1
  611. package/extensions/forms/Form/MainHeading/MainHeading.js.map +1 -1
  612. package/extensions/forms/Form/MainHeading/style/dnb-form-main-heading.css +3 -3
  613. package/extensions/forms/Form/MainHeading/style/dnb-form-main-heading.min.css +1 -1
  614. package/extensions/forms/Form/MainHeading/style/dnb-form-main-heading.scss +1 -1
  615. package/extensions/forms/Form/SubHeading/SubHeading.js +1 -1
  616. package/extensions/forms/Form/SubHeading/SubHeading.js.map +1 -1
  617. package/extensions/forms/Form/SubHeading/style/dnb-form-sub-heading.css +2 -2
  618. package/extensions/forms/Form/SubHeading/style/dnb-form-sub-heading.min.css +1 -1
  619. package/extensions/forms/Form/SubHeading/style/dnb-form-sub-heading.scss +1 -1
  620. package/extensions/forms/Form/SubmitIndicator/SubmitIndicator.js +2 -2
  621. package/extensions/forms/Form/SubmitIndicator/SubmitIndicator.js.map +1 -1
  622. package/extensions/forms/Form/SubmitIndicator/style/dnb-form-submit-indicator.css +13 -13
  623. package/extensions/forms/Form/SubmitIndicator/style/dnb-form-submit-indicator.min.css +1 -1
  624. package/extensions/forms/Form/SubmitIndicator/style/dnb-form-submit-indicator.scss +1 -1
  625. package/extensions/forms/Form/Visibility/Visibility.d.ts +4 -1
  626. package/extensions/forms/Form/Visibility/Visibility.js +7 -4
  627. package/extensions/forms/Form/Visibility/Visibility.js.map +1 -1
  628. package/extensions/forms/Form/Visibility/VisibilityDocs.js +5 -0
  629. package/extensions/forms/Form/Visibility/VisibilityDocs.js.map +1 -1
  630. package/extensions/forms/Form/index.d.ts +1 -0
  631. package/extensions/forms/Form/index.js +1 -0
  632. package/extensions/forms/Form/index.js.map +1 -1
  633. package/extensions/forms/Iterate/AnimatedContainer/ElementBlock.js +4 -4
  634. package/extensions/forms/Iterate/AnimatedContainer/ElementBlock.js.map +1 -1
  635. package/extensions/forms/Iterate/Array/Array.js +2 -2
  636. package/extensions/forms/Iterate/Array/Array.js.map +1 -1
  637. package/extensions/forms/Iterate/EditContainer/EditContainer.js +1 -1
  638. package/extensions/forms/Iterate/EditContainer/EditContainer.js.map +1 -1
  639. package/extensions/forms/Iterate/PushButton/PushButton.js +1 -1
  640. package/extensions/forms/Iterate/PushButton/PushButton.js.map +1 -1
  641. package/extensions/forms/Iterate/RemoveButton/RemoveButton.js +1 -1
  642. package/extensions/forms/Iterate/RemoveButton/RemoveButton.js.map +1 -1
  643. package/extensions/forms/Iterate/Toolbar/Toolbar.js +1 -1
  644. package/extensions/forms/Iterate/Toolbar/Toolbar.js.map +1 -1
  645. package/extensions/forms/Iterate/ViewContainer/ViewContainer.js +1 -1
  646. package/extensions/forms/Iterate/ViewContainer/ViewContainer.js.map +1 -1
  647. package/extensions/forms/Iterate/style/dnb-form-iterate.css +14 -14
  648. package/extensions/forms/Iterate/style/dnb-form-iterate.min.css +1 -1
  649. package/extensions/forms/Iterate/style/dnb-form-iterate.scss +1 -1
  650. package/extensions/forms/Value/Boolean/Boolean.js +8 -3
  651. package/extensions/forms/Value/Boolean/Boolean.js.map +1 -1
  652. package/extensions/forms/Value/Name/Name.d.ts +10 -0
  653. package/extensions/forms/Value/Name/Name.js +40 -0
  654. package/extensions/forms/Value/Name/Name.js.map +1 -0
  655. package/extensions/forms/Value/Name/index.d.ts +2 -0
  656. package/extensions/forms/Value/Name/index.js +3 -0
  657. package/extensions/forms/Value/Name/index.js.map +1 -0
  658. package/extensions/forms/Value/OrganizationNumber/OrganizationNumber.d.ts +7 -0
  659. package/extensions/forms/Value/OrganizationNumber/OrganizationNumber.js +24 -0
  660. package/extensions/forms/Value/OrganizationNumber/OrganizationNumber.js.map +1 -0
  661. package/extensions/forms/Value/OrganizationNumber/index.d.ts +2 -0
  662. package/extensions/forms/Value/OrganizationNumber/index.js +3 -0
  663. package/extensions/forms/Value/OrganizationNumber/index.js.map +1 -0
  664. package/extensions/forms/Value/PostalCodeAndCity/PostalCodeAndCity.d.ts +7 -0
  665. package/extensions/forms/Value/PostalCodeAndCity/PostalCodeAndCity.js +31 -0
  666. package/extensions/forms/Value/PostalCodeAndCity/PostalCodeAndCity.js.map +1 -0
  667. package/extensions/forms/Value/PostalCodeAndCity/PostalCodeAndCityDocs.d.ts +2 -0
  668. package/extensions/forms/Value/PostalCodeAndCity/PostalCodeAndCityDocs.js +13 -0
  669. package/extensions/forms/Value/PostalCodeAndCity/PostalCodeAndCityDocs.js.map +1 -0
  670. package/extensions/forms/Value/PostalCodeAndCity/index.d.ts +2 -0
  671. package/extensions/forms/Value/PostalCodeAndCity/index.js +3 -0
  672. package/extensions/forms/Value/PostalCodeAndCity/index.js.map +1 -0
  673. package/extensions/forms/Value/String/String.js +8 -3
  674. package/extensions/forms/Value/String/String.js.map +1 -1
  675. package/extensions/forms/Value/SummaryList/SummaryList.js +1 -1
  676. package/extensions/forms/Value/SummaryList/SummaryList.js.map +1 -1
  677. package/extensions/forms/Value/ValueDocs.js +6 -1
  678. package/extensions/forms/Value/ValueDocs.js.map +1 -1
  679. package/extensions/forms/Value/index.d.ts +3 -0
  680. package/extensions/forms/Value/index.js +3 -0
  681. package/extensions/forms/Value/index.js.map +1 -1
  682. package/extensions/forms/ValueBlock/ValueBlock.js +2 -1
  683. package/extensions/forms/ValueBlock/ValueBlock.js.map +1 -1
  684. package/extensions/forms/ValueBlock/style/dnb-value-block.css +11 -6
  685. package/extensions/forms/ValueBlock/style/dnb-value-block.min.css +1 -1
  686. package/extensions/forms/ValueBlock/style/dnb-value-block.scss +11 -3
  687. package/extensions/forms/Wizard/Container/WizardContainer.js +17 -52
  688. package/extensions/forms/Wizard/Container/WizardContainer.js.map +1 -1
  689. package/extensions/forms/Wizard/Container/useHandleLayoutEffect.d.ts +9 -0
  690. package/extensions/forms/Wizard/Container/useHandleLayoutEffect.js +47 -0
  691. package/extensions/forms/Wizard/Container/useHandleLayoutEffect.js.map +1 -0
  692. package/extensions/forms/Wizard/Container/useStepAnimation.d.ts +4 -0
  693. package/extensions/forms/Wizard/Container/useStepAnimation.js +30 -0
  694. package/extensions/forms/Wizard/Container/useStepAnimation.js.map +1 -0
  695. package/extensions/forms/Wizard/Step/Step.js +14 -2
  696. package/extensions/forms/Wizard/Step/Step.js.map +1 -1
  697. package/extensions/forms/Wizard/hooks/useStep.js +3 -2
  698. package/extensions/forms/Wizard/hooks/useStep.js.map +1 -1
  699. package/extensions/forms/Wizard/style/dnb-wizard-layout.css +29 -2
  700. package/extensions/forms/Wizard/style/dnb-wizard-layout.min.css +1 -1
  701. package/extensions/forms/Wizard/style/dnb-wizard-layout.scss +35 -2
  702. package/extensions/forms/constants/locales/en-GB.d.ts +9 -0
  703. package/extensions/forms/constants/locales/en-GB.js +12 -3
  704. package/extensions/forms/constants/locales/en-GB.js.map +1 -1
  705. package/extensions/forms/constants/locales/en-US.d.ts +9 -0
  706. package/extensions/forms/constants/locales/index.d.ts +18 -0
  707. package/extensions/forms/constants/locales/nb-NO.d.ts +9 -0
  708. package/extensions/forms/constants/locales/nb-NO.js +11 -2
  709. package/extensions/forms/constants/locales/nb-NO.js.map +1 -1
  710. package/extensions/forms/hooks/useFieldProps.js +8 -4
  711. package/extensions/forms/hooks/useFieldProps.js.map +1 -1
  712. package/extensions/forms/hooks/useTranslation.js +3 -1
  713. package/extensions/forms/hooks/useTranslation.js.map +1 -1
  714. package/extensions/forms/style/dnb-forms.css +77 -43
  715. package/extensions/forms/style/dnb-forms.min.css +1 -1
  716. package/extensions/forms/types.d.ts +3 -2
  717. package/extensions/forms/types.js.map +1 -1
  718. package/fragments/drawer-list/DrawerList.d.ts +8 -4
  719. package/package.json +1 -1
  720. package/shared/Context.d.ts +4 -4
  721. package/shared/Context.js.map +1 -1
  722. package/shared/Eufemia.d.ts +1 -1
  723. package/shared/Eufemia.js +2 -2
  724. package/shared/Eufemia.js.map +1 -1
  725. package/shared/component-helper.d.ts +1 -0
  726. package/shared/component-helper.js +2 -1
  727. package/shared/component-helper.js.map +1 -1
  728. package/shared/helpers/assignPropsWithContext.d.ts +1 -0
  729. package/shared/helpers/assignPropsWithContext.js +16 -0
  730. package/shared/helpers/assignPropsWithContext.js.map +1 -0
  731. package/shared/helpers/extendPropsWithContext.d.ts +1 -0
  732. package/shared/helpers/extendPropsWithContext.js +1 -1
  733. package/shared/helpers/extendPropsWithContext.js.map +1 -1
  734. package/shared/helpers/filterValidProps.d.ts +1 -0
  735. package/shared/helpers/filterValidProps.js.map +1 -1
  736. package/shared/helpers/runCssVersionMismatchWarning.js +14 -3
  737. package/shared/helpers/runCssVersionMismatchWarning.js.map +1 -1
  738. package/style/core/scopes.scss +1 -1
  739. package/style/dnb-ui-basis.css +1 -1
  740. package/style/dnb-ui-basis.min.css +1 -1
  741. package/style/dnb-ui-body.css +1 -1
  742. package/style/dnb-ui-body.min.css +1 -1
  743. package/style/dnb-ui-components.css +129 -98
  744. package/style/dnb-ui-components.min.css +2 -2
  745. package/style/dnb-ui-core.css +1 -1
  746. package/style/dnb-ui-core.min.css +1 -1
  747. package/style/dnb-ui-extensions.css +77 -43
  748. package/style/dnb-ui-extensions.min.css +1 -1
  749. package/style/dnb-ui-forms.css +77 -43
  750. package/style/dnb-ui-forms.min.css +1 -1
  751. package/style/dnb-ui-forms.scss +1 -1
  752. package/style/themes/eiendom/basis.d.ts +1 -0
  753. package/style/themes/eiendom/basis.js +1 -0
  754. package/style/themes/eiendom/basis.js.map +1 -0
  755. package/style/themes/eiendom/index.d.ts +1 -0
  756. package/style/themes/eiendom/index.js +3 -0
  757. package/style/themes/eiendom/index.js.map +1 -0
  758. package/style/themes/sbanken/basis.d.ts +1 -0
  759. package/style/themes/sbanken/basis.js +1 -0
  760. package/style/themes/sbanken/basis.js.map +1 -0
  761. package/style/themes/sbanken/index.d.ts +1 -0
  762. package/style/themes/sbanken/index.js +3 -0
  763. package/style/themes/sbanken/index.js.map +1 -0
  764. package/style/themes/theme-eiendom/eiendom-theme-components.css +205 -141
  765. package/style/themes/theme-eiendom/eiendom-theme-components.min.css +2 -2
  766. package/style/themes/theme-eiendom/eiendom-theme-extensions.css +77 -43
  767. package/style/themes/theme-eiendom/eiendom-theme-extensions.min.css +1 -1
  768. package/style/themes/theme-eiendom/eiendom-theme-forms.css +77 -43
  769. package/style/themes/theme-eiendom/eiendom-theme-forms.min.css +1 -1
  770. package/style/themes/theme-sbanken/sbanken-theme-components.css +205 -141
  771. package/style/themes/theme-sbanken/sbanken-theme-components.min.css +2 -2
  772. package/style/themes/theme-sbanken/sbanken-theme-extensions.css +77 -43
  773. package/style/themes/theme-sbanken/sbanken-theme-extensions.min.css +1 -1
  774. package/style/themes/theme-sbanken/sbanken-theme-forms.css +77 -43
  775. package/style/themes/theme-sbanken/sbanken-theme-forms.min.css +1 -1
  776. package/style/themes/theme-ui/ui-theme-components.css +205 -141
  777. package/style/themes/theme-ui/ui-theme-components.min.css +2 -2
  778. package/style/themes/theme-ui/ui-theme-extensions.css +77 -43
  779. package/style/themes/theme-ui/ui-theme-extensions.min.css +1 -1
  780. package/style/themes/theme-ui/ui-theme-forms.css +77 -43
  781. package/style/themes/theme-ui/ui-theme-forms.min.css +1 -1
  782. package/style/themes/ui/basis.d.ts +1 -0
  783. package/style/themes/ui/basis.js +1 -0
  784. package/style/themes/ui/basis.js.map +1 -0
  785. package/style/themes/ui/index.d.ts +1 -0
  786. package/style/themes/ui/index.js +3 -0
  787. package/style/themes/ui/index.js.map +1 -0
  788. package/umd/dnb-ui-basis.min.js +1 -1
  789. package/umd/dnb-ui-components.min.js +1 -1
  790. package/umd/dnb-ui-elements.min.js +1 -1
  791. package/umd/dnb-ui-extensions.min.js +3 -3
  792. package/umd/dnb-ui-lib.min.js +1 -1
  793. package/cjs/style/themes/eiendom.js +0 -5
  794. package/cjs/style/themes/eiendom.js.map +0 -1
  795. package/cjs/style/themes/sbanken.js +0 -5
  796. package/cjs/style/themes/sbanken.js.map +0 -1
  797. package/cjs/style/themes/ui.js +0 -5
  798. package/cjs/style/themes/ui.js.map +0 -1
  799. package/es/style/themes/eiendom.js +0 -3
  800. package/es/style/themes/eiendom.js.map +0 -1
  801. package/es/style/themes/sbanken.js +0 -3
  802. package/es/style/themes/sbanken.js.map +0 -1
  803. package/es/style/themes/ui.js +0 -3
  804. package/es/style/themes/ui.js.map +0 -1
  805. package/style/themes/eiendom.js +0 -3
  806. package/style/themes/eiendom.js.map +0 -1
  807. package/style/themes/sbanken.js +0 -3
  808. package/style/themes/sbanken.js.map +0 -1
  809. package/style/themes/ui.js +0 -3
  810. package/style/themes/ui.js.map +0 -1
  811. /package/cjs/extensions/forms/Form/Element/style/{dnb-forms-element.css → dnb-form-element.css} +0 -0
  812. /package/cjs/extensions/forms/Form/Element/style/{dnb-forms-element.min.css → dnb-form-element.min.css} +0 -0
  813. /package/cjs/extensions/forms/Form/Element/style/{dnb-forms-element.scss → dnb-form-element.scss} +0 -0
  814. /package/cjs/style/themes/{eiendom.d.ts → eiendom/basis.d.ts} +0 -0
  815. /package/cjs/style/themes/{sbanken.d.ts → eiendom/index.d.ts} +0 -0
  816. /package/cjs/style/themes/{ui.d.ts → sbanken/basis.d.ts} +0 -0
  817. /package/{es/style/themes/eiendom.d.ts → cjs/style/themes/sbanken/index.d.ts} +0 -0
  818. /package/{es/style/themes/sbanken.d.ts → cjs/style/themes/ui/basis.d.ts} +0 -0
  819. /package/{es/style/themes/ui.d.ts → cjs/style/themes/ui/index.d.ts} +0 -0
  820. /package/es/extensions/forms/Form/Element/style/{dnb-forms-element.css → dnb-form-element.css} +0 -0
  821. /package/es/extensions/forms/Form/Element/style/{dnb-forms-element.min.css → dnb-form-element.min.css} +0 -0
  822. /package/es/extensions/forms/Form/Element/style/{dnb-forms-element.scss → dnb-form-element.scss} +0 -0
  823. /package/{style/themes/eiendom.d.ts → es/style/themes/eiendom/basis.d.ts} +0 -0
  824. /package/{style/themes/sbanken.d.ts → es/style/themes/eiendom/index.d.ts} +0 -0
  825. /package/{style/themes/ui.d.ts → es/style/themes/sbanken/basis.d.ts} +0 -0
  826. /package/extensions/forms/Form/Element/style/{dnb-forms-element.css → dnb-form-element.css} +0 -0
  827. /package/extensions/forms/Form/Element/style/{dnb-forms-element.min.css → dnb-form-element.min.css} +0 -0
  828. /package/extensions/forms/Form/Element/style/{dnb-forms-element.scss → dnb-form-element.scss} +0 -0
@@ -1 +1 @@
1
- .dnb-icon{color:inherit;display:inline-block;font-size:1rem;height:1em;line-height:1rem;vertical-align:middle;width:1em}.dnb-icon img,.dnb-icon svg,:where(.dnb-core-style) .dnb-icon img,:where(.dnb-core-style) .dnb-icon svg{shape-rendering:geometricprecision;height:inherit;vertical-align:top;width:inherit}.dnb-icon svg[width="100%"]{width:inherit}.dnb-icon svg[height="100%"]{height:inherit}.dnb-icon--inherit-color svg [fill],.dnb-icon--inherit-color svg:not([fill]){fill:currentcolor}.dnb-icon--inherit-color svg [stroke]{stroke:currentcolor}.dnb-icon--small{font-size:.75rem}.dnb-icon--default{font-size:1rem}.dnb-icon--medium{font-size:1.5rem}.dnb-icon--large{font-size:2rem}.dnb-icon--x-large{font-size:2.5rem}.dnb-icon--xx-large{font-size:3rem}.dnb-icon--custom-size{height:auto;width:auto}.dnb-icon--auto{font-size:1em}.dnb-icon--auto>.dnb-icon--wrapper{align-items:center;display:inline-flex;justify-content:center}h1>.dnb-icon,h2>.dnb-icon,h3>.dnb-icon,h4>.dnb-icon,h5>.dnb-icon,h6>.dnb-icon{vertical-align:middle}p>.dnb-icon{vertical-align:inherit}.dnb-icon.dnb-skeleton{color:var(--skeleton-color)!important}.dnb-icon.dnb-skeleton:after,.dnb-icon.dnb-skeleton:before{content:none!important}
1
+ .dnb-icon{color:inherit;display:inline-block;font-size:1rem;height:1em;line-height:1rem;vertical-align:middle;width:1em}.dnb-icon img,.dnb-icon svg,:where(.dnb-core-style) .dnb-icon img,:where(.dnb-core-style) .dnb-icon svg{shape-rendering:geometricprecision;height:inherit;vertical-align:top;width:inherit}.dnb-icon svg[width="100%"]{width:inherit}.dnb-icon svg[height="100%"]{height:inherit}.dnb-icon--inherit-color svg [fill],.dnb-icon--inherit-color svg:not([fill]){fill:currentcolor}.dnb-icon--inherit-color svg [stroke]{stroke:currentcolor}.dnb-icon--small{font-size:.75rem}.dnb-icon--default{font-size:1rem}.dnb-icon--medium{font-size:1.5rem}.dnb-icon--large{font-size:2rem}.dnb-icon--x-large{font-size:2.5rem}.dnb-icon--xx-large{font-size:3rem}.dnb-icon--custom-size{height:auto;line-height:0;width:auto}.dnb-icon--auto{font-size:1em}.dnb-icon--auto>.dnb-icon--wrapper{align-items:center;display:inline-flex;justify-content:center}h1>.dnb-icon,h2>.dnb-icon,h3>.dnb-icon,h4>.dnb-icon,h5>.dnb-icon,h6>.dnb-icon{vertical-align:middle}p>.dnb-icon{vertical-align:inherit}.dnb-icon.dnb-skeleton{color:var(--skeleton-color)!important}.dnb-icon.dnb-skeleton:after,.dnb-icon.dnb-skeleton:before{content:none!important}
@@ -79,6 +79,7 @@
79
79
  &--custom-size {
80
80
  width: auto; // only to feed the svg
81
81
  height: auto; // only to feed the svg
82
+ line-height: 0; // minimize line height when icon doesn't scale with font size
82
83
  }
83
84
 
84
85
  &--auto {
@@ -2,67 +2,17 @@
2
2
  * Web ProgressIndicator Component
3
3
  *
4
4
  */
5
- import React from 'react';
6
- import { SpacingProps } from '../space/types';
7
- export type ProgressIndicatorProps = {
8
- /**
9
- * Defines the visibility of the progress. Toggling the `visible` property to `false` will force a fade-out animation. Defaults to `true`.
10
- */
11
- visible?: boolean;
12
- /**
13
- * Defines the type. Defaults to `circular`.
14
- */
15
- type?: 'circular' | 'linear';
16
- /**
17
- * Disables the fade-in and fade-out animation. Defaults to `false`.
18
- */
19
- noAnimation?: boolean;
20
- /**
21
- * Defines the size. Defaults to `default`.
22
- */
23
- size?: 'default' | 'small' | 'medium' | 'large' | 'huge';
24
- /**
25
- * A number between 0-100, if not supplied a continous loading-type animation will be used. Defaults to `undefined`
26
- */
27
- progress?: string | number;
28
- /**
29
- * Show a custom label to the right or under the indicator.
30
- */
31
- label?: React.ReactNode;
32
- /**
33
- * Sets the position of the label. Defaults to `horizontal`.
34
- */
35
- labelDirection?: 'horizontal' | 'vertical';
36
- /**
37
- * If set to `true` a default label (from text locales) will be shown.
38
- */
39
- showDefaultLabel?: boolean;
40
- /**
41
- * Use this to override the default label from text locales.
42
- */
43
- indicator_label?: string;
44
- /**
45
- * Used to set title and aria-label. Defaults to the value of progress property, formatted as a percent.
46
- */
47
- title?: string;
48
- /**
49
- * Will be called once it's no longer `visible`.
50
- */
51
- onComplete?: (...args: any[]) => any;
52
- };
53
- type DeprecatedProgressIndicatorProps = {
5
+ import { ProgressIndicatorAllProps } from './types';
6
+ export type DeprecatedProgressIndicatorProps = {
54
7
  /** @deprecated use `noAnimation`. */
55
8
  no_animation?: boolean;
56
9
  /** @deprecated use `labelDirection`. */
57
10
  label_direction?: string;
58
11
  /** @deprecated use `showDefaultLabel`. */
59
12
  show_label?: boolean;
60
- /** @deprecated use the `label` prop instead. */
61
- children?: React.ReactNode;
62
13
  /** @deprecated use `onComplete`. */
63
14
  on_complete?: (...args: any[]) => any;
64
15
  };
65
- export type ProgressIndicatorAllProps = Omit<React.HTMLProps<HTMLSpanElement>, 'ref' | 'label' | 'size'> & SpacingProps & ProgressIndicatorProps;
66
16
  declare function ProgressIndicator(props: ProgressIndicatorAllProps & DeprecatedProgressIndicatorProps): import("react/jsx-runtime").JSX.Element;
67
17
  declare namespace ProgressIndicator {
68
18
  var _supportsSpacingProps: boolean;
@@ -3,8 +3,8 @@
3
3
  import _extends from "@babel/runtime/helpers/esm/extends";
4
4
  import _defineProperty from "@babel/runtime/helpers/esm/defineProperty";
5
5
  import _objectWithoutProperties from "@babel/runtime/helpers/esm/objectWithoutProperties";
6
- const _excluded = ["type", "size", "noAnimation", "onComplete", "label", "indicator_label", "labelDirection", "showDefaultLabel", "className", "title", "progress", "visible"],
7
- _excluded2 = ["show_label", "indicator_label", "children"];
6
+ const _excluded = ["type", "size", "noAnimation", "onComplete", "label", "children", "indicator_label", "labelDirection", "showDefaultLabel", "className", "title", "progress", "visible", "customColors", "customCircleWidth", "style"],
7
+ _excluded2 = ["show_label", "indicator_label"];
8
8
  function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }
9
9
  function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys(Object(source), !0).forEach(function (key) { _defineProperty(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; }
10
10
  import React, { useCallback, useContext, useEffect, useRef, useState } from 'react';
@@ -16,6 +16,7 @@ import { createSpacingClasses } from '../space/SpacingHelper';
16
16
  import ProgressIndicatorCircular from './ProgressIndicatorCircular';
17
17
  import ProgressIndicatorLinear from './ProgressIndicatorLinear';
18
18
  import { format } from '../number-format/NumberUtils';
19
+ import { isValidSize } from './types';
19
20
  function ProgressIndicator(props) {
20
21
  const undeprecatedProps = handleDeprecatedBehaviour(props);
21
22
  const allProps = updatePropsWithContext(undeprecatedProps, useContext(Context));
@@ -25,21 +26,26 @@ function ProgressIndicator(props) {
25
26
  noAnimation = false,
26
27
  onComplete,
27
28
  label,
29
+ children,
28
30
  indicator_label,
29
31
  labelDirection = 'horizontal',
30
32
  showDefaultLabel = false,
31
33
  className,
32
34
  title,
33
35
  progress,
34
- visible = true
36
+ visible = true,
37
+ customColors,
38
+ customCircleWidth,
39
+ style
35
40
  } = allProps,
36
41
  rest = _objectWithoutProperties(allProps, _excluded);
37
42
  const remainingDOMProps = validateDOMAttributes(allProps, _objectSpread({}, rest));
43
+ const [sizeVariant, customSize] = isValidSize(size) ? [size, undefined] : ['custom-size', size];
38
44
  const completeTimeout = useRef();
39
45
  const fadeOutTimeout = useRef();
40
46
  const [complete, setCompleteState] = useState(false);
41
47
  const progressNumber = typeof progress === 'string' ? parseFloat(progress) : typeof progress === 'number' ? progress : undefined;
42
- const indicatorLabel = label || isTrue(showDefaultLabel) && indicator_label;
48
+ const indicatorLabel = label || children || isTrue(showDefaultLabel) && indicator_label;
43
49
  const progressTitle = title || formatProgress(progressNumber);
44
50
  useEffect(() => {
45
51
  return () => {
@@ -65,21 +71,30 @@ function ProgressIndicator(props) {
65
71
  }, 200);
66
72
  }, [onComplete]);
67
73
  return React.createElement("span", _extends({
68
- className: classnames('dnb-progress-indicator', createSpacingClasses(allProps), className, visible && 'dnb-progress-indicator--visible', complete && 'dnb-progress-indicator--complete', labelDirection && `dnb-progress-indicator--${labelDirection}`, size && `dnb-progress-indicator--${size}`, isTrue(noAnimation) && 'dnb-progress-indicator--no-animation', type === 'linear' && 'dnb-progress-indicator--full-width')
69
- }, remainingDOMProps), type === 'circular' && React.createElement(ProgressIndicatorCircular, {
70
- size: size,
74
+ className: classnames('dnb-progress-indicator', createSpacingClasses(allProps), className, visible && 'dnb-progress-indicator--visible', complete && 'dnb-progress-indicator--complete', labelDirection && `dnb-progress-indicator--${labelDirection}`, sizeVariant && `dnb-progress-indicator--${sizeVariant}`, isTrue(noAnimation) && 'dnb-progress-indicator--no-animation', type === 'linear' && 'dnb-progress-indicator--full-width'),
75
+ style: _objectSpread(_objectSpread({}, style), {
76
+ '--progress-indicator-circular-size': customSize,
77
+ '--progress-indicator-circular-stroke-width': customCircleWidth,
78
+ '--progress-indicator-linear-size': customSize
79
+ })
80
+ }, remainingDOMProps), (type === 'circular' || type === 'countdown') && React.createElement(ProgressIndicatorCircular, {
81
+ size: sizeVariant,
71
82
  progress: progressNumber,
72
83
  visible: visible,
73
84
  onComplete: onComplete,
74
85
  callOnCompleteHandler: callOnCompleteHandler,
75
- title: progressTitle === null || progressTitle === void 0 ? void 0 : progressTitle.toString()
86
+ title: progressTitle === null || progressTitle === void 0 ? void 0 : progressTitle.toString(),
87
+ customColors: customColors,
88
+ customCircleWidth: customCircleWidth,
89
+ counterClockwise: type === 'countdown'
76
90
  }), type === 'linear' && React.createElement(ProgressIndicatorLinear, {
77
- size: size,
91
+ size: sizeVariant,
78
92
  progress: progressNumber,
79
93
  visible: visible,
80
94
  onComplete: onComplete,
81
95
  callOnCompleteHandler: callOnCompleteHandler,
82
- title: progressTitle === null || progressTitle === void 0 ? void 0 : progressTitle.toString()
96
+ title: progressTitle === null || progressTitle === void 0 ? void 0 : progressTitle.toString(),
97
+ customColors: customColors
83
98
  }), indicatorLabel && React.createElement("span", {
84
99
  className: "dnb-progress-indicator__label dnb-p"
85
100
  }, indicatorLabel));
@@ -92,14 +107,12 @@ function updatePropsWithContext(props, context) {
92
107
  function handleDeprecatedBehaviour(oldProps) {
93
108
  const {
94
109
  show_label: showDefaultLabel,
95
- indicator_label,
96
- children: label
110
+ indicator_label
97
111
  } = oldProps,
98
112
  propsToConvertToCamelCase = _objectWithoutProperties(oldProps, _excluded2);
99
113
  return _objectSpread({
100
114
  showDefaultLabel,
101
- indicator_label,
102
- label
115
+ indicator_label
103
116
  }, convertSnakeCaseProps(propsToConvertToCamelCase, {
104
117
  overrideExistingValue: false
105
118
  }));
@@ -1 +1 @@
1
- {"version":3,"file":"ProgressIndicator.js","names":["React","useCallback","useContext","useEffect","useRef","useState","classnames","Context","isTrue","validateDOMAttributes","dispatchCustomElementEvent","extendPropsWithContext","convertSnakeCaseProps","createSpacingClasses","ProgressIndicatorCircular","ProgressIndicatorLinear","format","ProgressIndicator","props","undeprecatedProps","handleDeprecatedBehaviour","allProps","updatePropsWithContext","type","size","noAnimation","onComplete","label","indicator_label","labelDirection","showDefaultLabel","className","title","progress","visible","rest","_objectWithoutProperties","_excluded","remainingDOMProps","_objectSpread","completeTimeout","fadeOutTimeout","complete","setCompleteState","progressNumber","parseFloat","undefined","indicatorLabel","progressTitle","formatProgress","clearTimeout","current","callOnCompleteHandler","setTimeout","createElement","_extends","toString","context","localePropsFromContext","getTranslation","componentPropsFromContext","oldProps","show_label","children","propsToConvertToCamelCase","_excluded2","overrideExistingValue","decimals","percent","_supportsSpacingProps"],"sources":["../../../../src/components/progress-indicator/ProgressIndicator.tsx"],"sourcesContent":["/**\n * Web ProgressIndicator Component\n *\n */\n\nimport React, {\n useCallback,\n useContext,\n useEffect,\n useRef,\n useState,\n} from 'react'\nimport classnames from 'classnames'\nimport Context, { ContextProps } from '../../shared/Context'\nimport {\n isTrue,\n validateDOMAttributes,\n dispatchCustomElementEvent,\n extendPropsWithContext,\n} from '../../shared/component-helper'\nimport { convertSnakeCaseProps } from '../../shared/helpers/withSnakeCaseProps'\n\nimport { createSpacingClasses } from '../space/SpacingHelper'\nimport { SpacingProps } from '../space/types'\nimport ProgressIndicatorCircular from './ProgressIndicatorCircular'\nimport ProgressIndicatorLinear from './ProgressIndicatorLinear'\nimport { format } from '../number-format/NumberUtils'\n\nexport type ProgressIndicatorProps = {\n /**\n * Defines the visibility of the progress. Toggling the `visible` property to `false` will force a fade-out animation. Defaults to `true`.\n */\n visible?: boolean\n /**\n * Defines the type. Defaults to `circular`.\n */\n type?: 'circular' | 'linear'\n /**\n * Disables the fade-in and fade-out animation. Defaults to `false`.\n */\n noAnimation?: boolean\n /**\n * Defines the size. Defaults to `default`.\n */\n size?: 'default' | 'small' | 'medium' | 'large' | 'huge'\n /**\n * A number between 0-100, if not supplied a continous loading-type animation will be used. Defaults to `undefined`\n */\n progress?: string | number\n /**\n * Show a custom label to the right or under the indicator.\n */\n label?: React.ReactNode\n /**\n * Sets the position of the label. Defaults to `horizontal`.\n */\n labelDirection?: 'horizontal' | 'vertical'\n /**\n * If set to `true` a default label (from text locales) will be shown.\n */\n showDefaultLabel?: boolean\n /**\n * Use this to override the default label from text locales.\n */\n indicator_label?: string\n /**\n * Used to set title and aria-label. Defaults to the value of progress property, formatted as a percent.\n */\n title?: string\n /**\n * Will be called once it&#39;s no longer `visible`.\n */\n onComplete?: (...args: any[]) => any\n}\n\n// deprecated, can be removed in v11\ntype DeprecatedProgressIndicatorProps = {\n /** @deprecated use `noAnimation`. */\n no_animation?: boolean\n /** @deprecated use `labelDirection`. */\n label_direction?: string\n /** @deprecated use `showDefaultLabel`. */\n show_label?: boolean\n /** @deprecated use the `label` prop instead. */\n children?: React.ReactNode\n /** @deprecated use `onComplete`. */\n on_complete?: (...args: any[]) => any\n}\n\nexport type ProgressIndicatorAllProps = Omit<\n React.HTMLProps<HTMLSpanElement>,\n 'ref' | 'label' | 'size'\n> &\n SpacingProps &\n ProgressIndicatorProps\n\nfunction ProgressIndicator(\n props: ProgressIndicatorAllProps & DeprecatedProgressIndicatorProps\n) {\n const undeprecatedProps = handleDeprecatedBehaviour(props)\n const allProps = updatePropsWithContext(\n undeprecatedProps,\n useContext(Context)\n )\n\n const {\n type = 'circular',\n size = 'default',\n noAnimation = false,\n onComplete,\n label,\n indicator_label,\n labelDirection = 'horizontal',\n showDefaultLabel = false,\n className,\n title,\n progress,\n visible = true,\n ...rest\n } = allProps\n\n const remainingDOMProps = validateDOMAttributes(allProps, { ...rest })\n\n const completeTimeout = useRef<NodeJS.Timeout>()\n const fadeOutTimeout = useRef<NodeJS.Timeout>()\n const [complete, setCompleteState] = useState(false)\n\n const progressNumber =\n typeof progress === 'string'\n ? parseFloat(progress)\n : typeof progress === 'number'\n ? progress\n : undefined\n\n const indicatorLabel =\n label || (isTrue(showDefaultLabel) && indicator_label)\n const progressTitle = title || formatProgress(progressNumber)\n\n useEffect(() => {\n return () => {\n clearTimeout(completeTimeout.current)\n clearTimeout(fadeOutTimeout.current)\n }\n }, [])\n\n useEffect(() => {\n if (visible) {\n setCompleteState(false)\n }\n }, [visible])\n\n const callOnCompleteHandler = useCallback(() => {\n completeTimeout.current = setTimeout(() => {\n setCompleteState(true)\n if (onComplete) {\n fadeOutTimeout.current = setTimeout(() => {\n dispatchCustomElementEvent({ onComplete }, 'onComplete')\n }, 600) // wait for CSS fade out, defined in \"progress-indicator-fade-out\"\n }\n }, 200)\n }, [onComplete])\n\n return (\n <span\n className={classnames(\n 'dnb-progress-indicator',\n visible && 'dnb-progress-indicator--visible',\n complete && 'dnb-progress-indicator--complete',\n type === 'linear' && 'dnb-progress-indicator--full-width',\n labelDirection && `dnb-progress-indicator--${labelDirection}`,\n size && `dnb-progress-indicator--${size}`,\n isTrue(noAnimation) && 'dnb-progress-indicator--no-animation',\n createSpacingClasses(allProps),\n className\n )}\n {...remainingDOMProps}\n >\n {type === 'circular' && (\n <ProgressIndicatorCircular\n size={size}\n progress={progressNumber}\n visible={visible}\n onComplete={onComplete}\n callOnCompleteHandler={callOnCompleteHandler}\n title={progressTitle?.toString()}\n />\n )}\n {type === 'linear' && (\n <ProgressIndicatorLinear\n size={size}\n progress={progressNumber}\n visible={visible}\n onComplete={onComplete}\n callOnCompleteHandler={callOnCompleteHandler}\n title={progressTitle?.toString()}\n />\n )}\n {indicatorLabel && (\n <span className=\"dnb-progress-indicator__label dnb-p\">\n {indicatorLabel}\n </span>\n )}\n </span>\n )\n}\n\nfunction updatePropsWithContext(\n props: ProgressIndicatorAllProps,\n context: ContextProps\n) {\n const localePropsFromContext =\n context?.getTranslation(props).ProgressIndicator\n const componentPropsFromContext = context?.ProgressIndicator\n return extendPropsWithContext(\n props,\n {},\n localePropsFromContext,\n componentPropsFromContext\n )\n}\n\n/**\n * Support deprecated behaviour by mutating the props.\n */\nfunction handleDeprecatedBehaviour(\n oldProps: ProgressIndicatorAllProps & DeprecatedProgressIndicatorProps\n): ProgressIndicatorAllProps {\n // Rename deprecated props\n // And indicator_label should still be snake case\n const {\n show_label: showDefaultLabel,\n indicator_label,\n children: label,\n ...propsToConvertToCamelCase\n } = oldProps\n\n // Merge deprecated props with new names (will not overwrite)\n return {\n showDefaultLabel,\n indicator_label,\n label,\n ...convertSnakeCaseProps(propsToConvertToCamelCase, {\n overrideExistingValue: false,\n }),\n }\n}\n\nfunction formatProgress(progress) {\n if (parseFloat(progress) > -1) {\n return format(progress, {\n decimals: 2,\n percent: true,\n })\n }\n return null\n}\n\nexport default ProgressIndicator\n\nProgressIndicator._supportsSpacingProps = true\n"],"mappings":"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"}
1
+ {"version":3,"file":"ProgressIndicator.js","names":["React","useCallback","useContext","useEffect","useRef","useState","classnames","Context","isTrue","validateDOMAttributes","dispatchCustomElementEvent","extendPropsWithContext","convertSnakeCaseProps","createSpacingClasses","ProgressIndicatorCircular","ProgressIndicatorLinear","format","isValidSize","ProgressIndicator","props","undeprecatedProps","handleDeprecatedBehaviour","allProps","updatePropsWithContext","type","size","noAnimation","onComplete","label","children","indicator_label","labelDirection","showDefaultLabel","className","title","progress","visible","customColors","customCircleWidth","style","rest","_objectWithoutProperties","_excluded","remainingDOMProps","_objectSpread","sizeVariant","customSize","undefined","completeTimeout","fadeOutTimeout","complete","setCompleteState","progressNumber","parseFloat","indicatorLabel","progressTitle","formatProgress","clearTimeout","current","callOnCompleteHandler","setTimeout","createElement","_extends","toString","counterClockwise","context","localePropsFromContext","getTranslation","componentPropsFromContext","oldProps","show_label","propsToConvertToCamelCase","_excluded2","overrideExistingValue","decimals","percent","_supportsSpacingProps"],"sources":["../../../../src/components/progress-indicator/ProgressIndicator.tsx"],"sourcesContent":["/**\n * Web ProgressIndicator Component\n *\n */\n\nimport React, {\n useCallback,\n useContext,\n useEffect,\n useRef,\n useState,\n} from 'react'\nimport classnames from 'classnames'\nimport Context, { ContextProps } from '../../shared/Context'\nimport {\n isTrue,\n validateDOMAttributes,\n dispatchCustomElementEvent,\n extendPropsWithContext,\n} from '../../shared/component-helper'\nimport { convertSnakeCaseProps } from '../../shared/helpers/withSnakeCaseProps'\nimport { createSpacingClasses } from '../space/SpacingHelper'\nimport ProgressIndicatorCircular from './ProgressIndicatorCircular'\nimport ProgressIndicatorLinear from './ProgressIndicatorLinear'\nimport { format } from '../number-format/NumberUtils'\n\nimport {\n ProgressIndicatorAllProps,\n ProgressIndicatorAnimationProps,\n isValidSize,\n CustomSize,\n} from './types'\n\n// deprecated, can be removed in v11\nexport type DeprecatedProgressIndicatorProps = {\n /** @deprecated use `noAnimation`. */\n no_animation?: boolean\n /** @deprecated use `labelDirection`. */\n label_direction?: string\n /** @deprecated use `showDefaultLabel`. */\n show_label?: boolean\n /** @deprecated use `onComplete`. */\n on_complete?: (...args: any[]) => any\n}\n\nfunction ProgressIndicator(\n props: ProgressIndicatorAllProps & DeprecatedProgressIndicatorProps\n) {\n const undeprecatedProps = handleDeprecatedBehaviour(props)\n const allProps = updatePropsWithContext(\n undeprecatedProps,\n useContext(Context)\n )\n\n const {\n type = 'circular',\n size = 'default',\n noAnimation = false,\n onComplete,\n label,\n children,\n indicator_label,\n labelDirection = 'horizontal',\n showDefaultLabel = false,\n className,\n title,\n progress,\n visible = true,\n customColors,\n customCircleWidth,\n style,\n ...rest\n } = allProps\n\n const remainingDOMProps = validateDOMAttributes(allProps, { ...rest })\n\n const [sizeVariant, customSize]: [\n ProgressIndicatorAnimationProps['size'],\n CustomSize,\n ] = isValidSize(size) ? [size, undefined] : ['custom-size', size]\n\n const completeTimeout = useRef<NodeJS.Timeout>()\n const fadeOutTimeout = useRef<NodeJS.Timeout>()\n const [complete, setCompleteState] = useState(false)\n\n const progressNumber =\n typeof progress === 'string'\n ? parseFloat(progress)\n : typeof progress === 'number'\n ? progress\n : undefined\n\n const indicatorLabel =\n label || children || (isTrue(showDefaultLabel) && indicator_label)\n const progressTitle = title || formatProgress(progressNumber)\n\n useEffect(() => {\n return () => {\n clearTimeout(completeTimeout.current)\n clearTimeout(fadeOutTimeout.current)\n }\n }, [])\n\n useEffect(() => {\n if (visible) {\n setCompleteState(false)\n }\n }, [visible])\n\n const callOnCompleteHandler = useCallback(() => {\n completeTimeout.current = setTimeout(() => {\n setCompleteState(true)\n if (onComplete) {\n fadeOutTimeout.current = setTimeout(() => {\n dispatchCustomElementEvent({ onComplete }, 'onComplete')\n }, 600) // wait for CSS fade out, defined in \"progress-indicator-fade-out\"\n }\n }, 200)\n }, [onComplete])\n\n return (\n <span\n className={classnames(\n 'dnb-progress-indicator',\n visible && 'dnb-progress-indicator--visible',\n complete && 'dnb-progress-indicator--complete',\n type === 'linear' && 'dnb-progress-indicator--full-width',\n labelDirection && `dnb-progress-indicator--${labelDirection}`,\n sizeVariant && `dnb-progress-indicator--${sizeVariant}`,\n isTrue(noAnimation) && 'dnb-progress-indicator--no-animation',\n createSpacingClasses(allProps),\n className\n )}\n style={{\n ...style,\n ...{\n '--progress-indicator-circular-size': customSize,\n '--progress-indicator-circular-stroke-width': customCircleWidth,\n '--progress-indicator-linear-size': customSize,\n },\n }}\n {...remainingDOMProps}\n >\n {(type === 'circular' || type === 'countdown') && (\n <ProgressIndicatorCircular\n size={sizeVariant}\n progress={progressNumber}\n visible={visible}\n onComplete={onComplete}\n callOnCompleteHandler={callOnCompleteHandler}\n title={progressTitle?.toString()}\n customColors={customColors}\n customCircleWidth={customCircleWidth}\n counterClockwise={type === 'countdown'}\n />\n )}\n {type === 'linear' && (\n <ProgressIndicatorLinear\n size={sizeVariant}\n progress={progressNumber}\n visible={visible}\n onComplete={onComplete}\n callOnCompleteHandler={callOnCompleteHandler}\n title={progressTitle?.toString()}\n customColors={customColors}\n />\n )}\n {indicatorLabel && (\n <span className=\"dnb-progress-indicator__label dnb-p\">\n {indicatorLabel}\n </span>\n )}\n </span>\n )\n}\n\nfunction updatePropsWithContext(\n props: ProgressIndicatorAllProps,\n context: ContextProps\n) {\n const localePropsFromContext =\n context?.getTranslation(props).ProgressIndicator\n const componentPropsFromContext = context?.ProgressIndicator\n return extendPropsWithContext(\n props,\n {},\n localePropsFromContext,\n componentPropsFromContext\n )\n}\n\n/**\n * Support deprecated behaviour by mutating the props.\n */\nfunction handleDeprecatedBehaviour(\n oldProps: ProgressIndicatorAllProps & DeprecatedProgressIndicatorProps\n): ProgressIndicatorAllProps {\n // Rename deprecated props\n // And indicator_label should still be snake case\n const {\n show_label: showDefaultLabel,\n indicator_label,\n ...propsToConvertToCamelCase\n } = oldProps\n\n // Merge deprecated props with new names (will not overwrite)\n return {\n showDefaultLabel,\n indicator_label,\n ...convertSnakeCaseProps(propsToConvertToCamelCase, {\n overrideExistingValue: false,\n }),\n }\n}\n\nfunction formatProgress(progress) {\n if (parseFloat(progress) > -1) {\n return format(progress, {\n decimals: 2,\n percent: true,\n })\n }\n return null\n}\n\nexport default ProgressIndicator\n\nProgressIndicator._supportsSpacingProps = true\n"],"mappings":"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"}
@@ -2,27 +2,6 @@
2
2
  * Web ProgressIndicator Component
3
3
  *
4
4
  */
5
- import React from 'react';
6
- type ProgressIndicatorCircularProps = {
7
- /**
8
- * Defines the size, like `small`, `default`, `medium` or `large`. Defaults to `default`.
9
- */
10
- size?: 'default' | 'small' | 'medium' | 'large' | 'huge';
11
- /**
12
- * Defines the visibility of the progress. Toggling the `visible` property to `false` will force a fade-out animation. Defaults to `true`.
13
- */
14
- visible?: boolean;
15
- /**
16
- * To visualize a static "percentage" (0-100) as a progress state. Defaults to `null`.
17
- */
18
- progress?: number;
19
- maxOffset?: number;
20
- onComplete?: (...args: any[]) => any;
21
- callOnCompleteHandler?: (...args: any[]) => any;
22
- /**
23
- * Used to set title and aria-label. Defaults to the value of progress property, formatted as a percent.
24
- */
25
- title?: string;
26
- };
27
- declare function ProgressIndicatorCircular(props: ProgressIndicatorCircularProps & Omit<React.HTMLProps<HTMLElement>, 'size'>): import("react/jsx-runtime").JSX.Element;
5
+ import { ProgressIndicatorCircularAllProps } from './types';
6
+ declare function ProgressIndicatorCircular(props: ProgressIndicatorCircularAllProps): import("react/jsx-runtime").JSX.Element;
28
7
  export default ProgressIndicatorCircular;
@@ -3,8 +3,8 @@
3
3
  import _extends from "@babel/runtime/helpers/esm/extends";
4
4
  import _defineProperty from "@babel/runtime/helpers/esm/defineProperty";
5
5
  import _objectWithoutProperties from "@babel/runtime/helpers/esm/objectWithoutProperties";
6
- var _Circle, _circle;
7
- const _excluded = ["size", "visible", "progress", "maxOffset", "onComplete", "callOnCompleteHandler", "title"];
6
+ const _excluded = ["size", "visible", "progress", "onComplete", "callOnCompleteHandler", "title", "customColors", "customCircleWidth", "counterClockwise"],
7
+ _excluded2 = ["customColor", "customWidth", "className"];
8
8
  function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }
9
9
  function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys(Object(source), !0).forEach(function (key) { _defineProperty(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; }
10
10
  import React, { useEffect, useRef, forwardRef } from 'react';
@@ -16,10 +16,12 @@ function ProgressIndicatorCircular(props) {
16
16
  size,
17
17
  visible,
18
18
  progress,
19
- maxOffset = 88,
20
19
  onComplete,
21
20
  callOnCompleteHandler,
22
- title
21
+ title,
22
+ customColors,
23
+ customCircleWidth,
24
+ counterClockwise = false
23
25
  } = props,
24
26
  rest = _objectWithoutProperties(props, _excluded);
25
27
  const keepAnimatingRef = useRef(true);
@@ -53,7 +55,7 @@ function ProgressIndicatorCircular(props) {
53
55
  let animateOnStart = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : true;
54
56
  let callback = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : null;
55
57
  const min = 1;
56
- const max = 88;
58
+ const max = Math.PI * 100;
57
59
  let start = 0,
58
60
  ms = 0,
59
61
  prog = max,
@@ -67,13 +69,13 @@ function ProgressIndicatorCircular(props) {
67
69
  }
68
70
  ms = timestamp - start;
69
71
  if (animate1) {
70
- if (!visibleRef.current && prog < 5) {
72
+ if (!visibleRef.current && prog < 20) {
71
73
  prog = min;
72
74
  }
73
75
  if (setProg) {
74
- element.style['stroke-dashoffset'] = prog;
76
+ element.style['stroke-dashoffset'] = `${prog}%`;
75
77
  } else if (!animateOnStart) {
76
- element.style['stroke-dashoffset'] = max;
78
+ element.style['stroke-dashoffset'] = `${max}%`;
77
79
  }
78
80
  }
79
81
  if (stopNextRound) {
@@ -101,9 +103,8 @@ function ProgressIndicatorCircular(props) {
101
103
  window.requestAnimationFrame(step);
102
104
  }
103
105
  };
104
- const strokeDashoffset = maxOffset - maxOffset / 100 * progress;
105
- const hasProgressValue = progress > -1;
106
- if (hasProgressValue) {
106
+ const progressIsControlled = progress > -1;
107
+ if (progressIsControlled) {
107
108
  rest.role = 'progressbar';
108
109
  rest['aria-label'] = title;
109
110
  rest['title'] = title;
@@ -113,33 +114,68 @@ function ProgressIndicatorCircular(props) {
113
114
  }
114
115
  const remainingDOMAttributes = validateDOMAttributes(props, _objectSpread({}, rest));
115
116
  return React.createElement("span", _extends({
116
- className: classnames('dnb-progress-indicator__circular', size && `dnb-progress-indicator__circular--${size}`, hasProgressValue && 'dnb-progress-indicator__circular--has-progress-value')
117
- }, remainingDOMAttributes), _Circle || (_Circle = React.createElement(Circle, {
118
- className: "dnb-progress-indicator__circular__line light paused"
117
+ className: classnames('dnb-progress-indicator__circular', size && `dnb-progress-indicator__circular--${size}`, progressIsControlled && 'dnb-progress-indicator__circular--has-progress-value')
118
+ }, remainingDOMAttributes), React.createElement("span", {
119
+ className: "dnb-progress-indicator__circular__background-padding"
120
+ }, React.createElement("span", {
121
+ className: "dnb-progress-indicator__circular__background",
122
+ style: {
123
+ backgroundColor: customColors === null || customColors === void 0 ? void 0 : customColors.background
124
+ }
119
125
  })), React.createElement(Circle, {
120
- className: "dnb-progress-indicator__circular__line dark dark" + (hasProgressValue || useAnimationFrame ? " paused" : ""),
121
- style: hasProgressValue ? {
122
- strokeDashoffset
126
+ className: "light paused",
127
+ customColor: customColors === null || customColors === void 0 ? void 0 : customColors.shaft,
128
+ customWidth: customCircleWidth
129
+ }), React.createElement(Circle, {
130
+ className: "dark dark" + (progressIsControlled || useAnimationFrame ? " paused" : ""),
131
+ style: progressIsControlled ? {
132
+ strokeDashoffset: getOffset(progress, counterClockwise)
123
133
  } : {},
134
+ customColor: customColors === null || customColors === void 0 ? void 0 : customColors.line,
135
+ customWidth: customCircleWidth,
124
136
  ref: _refDark
125
- }), !hasProgressValue && React.createElement(Circle, {
126
- className: "dnb-progress-indicator__circular__line light" + (useAnimationFrame ? " paused" : ""),
137
+ }), !progressIsControlled && React.createElement(Circle, {
138
+ className: 'light' + (useAnimationFrame ? " paused" : ""),
139
+ customColor: customColors === null || customColors === void 0 ? void 0 : customColors.shaft,
140
+ customWidth: customCircleWidth,
127
141
  ref: _refLight
128
142
  }));
129
143
  }
130
- const Circle = forwardRef(function Circle(props, ref) {
144
+ const Circle = forwardRef(function Circle(_ref, ref) {
145
+ let {
146
+ customColor,
147
+ customWidth,
148
+ className
149
+ } = _ref,
150
+ rest = _objectWithoutProperties(_ref, _excluded2);
151
+ const correctedCustomWidth = correctPercentageStrokeWidth(customWidth);
131
152
  return React.createElement("svg", _extends({
132
- viewBox: "0 0 32 32",
153
+ className: classnames('dnb-progress-indicator__circular__line', className),
133
154
  shapeRendering: "geometricPrecision",
134
155
  ref: ref
135
- }, props), _circle || (_circle = React.createElement("circle", {
156
+ }, rest), React.createElement("circle", {
136
157
  className: "dnb-progress-indicator__circular__circle",
137
158
  fill: "none",
138
- strokeWidth: "4",
139
- cx: "16",
140
- cy: "16",
141
- r: "14"
142
- })));
159
+ cx: "50%",
160
+ cy: "50%",
161
+ r: "50%",
162
+ style: _objectSpread({
163
+ stroke: customColor
164
+ }, correctedCustomWidth ? {
165
+ '--progress-indicator-circular-stroke-width': correctedCustomWidth
166
+ } : undefined)
167
+ }));
143
168
  });
169
+ function getOffset(progress) {
170
+ let counterClockwise = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : false;
171
+ const offset = Math.PI * (100 - progress);
172
+ return `${counterClockwise ? -offset : offset}%`;
173
+ }
174
+ function correctPercentageStrokeWidth(strokeWidth) {
175
+ if (typeof strokeWidth === 'string' && strokeWidth.endsWith('%')) {
176
+ const number = parseFloat(strokeWidth.slice(0, strokeWidth.length - 1));
177
+ return `${100 * number / (100 - number)}%`;
178
+ }
179
+ }
144
180
  export default ProgressIndicatorCircular;
145
181
  //# sourceMappingURL=ProgressIndicatorCircular.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"ProgressIndicatorCircular.js","names":["React","useEffect","useRef","forwardRef","classnames","validateDOMAttributes","IS_EDGE","ProgressIndicatorCircular","props","size","visible","progress","maxOffset","onComplete","callOnCompleteHandler","title","rest","_objectWithoutProperties","_excluded","keepAnimatingRef","visibleRef","useAnimationFrame","_refDark","_refLight","_startupTimeout","current","setTimeout","doAnimation","clearTimeout","element","animateOnStart","arguments","length","undefined","callback","min","max","start","ms","prog","setProg","animate1","completeCalled","stopNextRound","step","timestamp","style","Math","round","ceil","window","requestAnimationFrame","strokeDashoffset","hasProgressValue","role","remainingDOMAttributes","_objectSpread","createElement","_extends","className","_Circle","Circle","ref","viewBox","shapeRendering","_circle","fill","strokeWidth","cx","cy","r"],"sources":["../../../../src/components/progress-indicator/ProgressIndicatorCircular.tsx"],"sourcesContent":["/**\n * Web ProgressIndicator Component\n *\n */\n\nimport React, { useEffect, useRef, forwardRef } from 'react'\nimport classnames from 'classnames'\nimport { validateDOMAttributes } from '../../shared/component-helper'\nimport { IS_EDGE } from '../../shared/helpers'\n\ntype ProgressIndicatorCircularProps = {\n /**\n * Defines the size, like `small`, `default`, `medium` or `large`. Defaults to `default`.\n */\n size?: 'default' | 'small' | 'medium' | 'large' | 'huge'\n /**\n * Defines the visibility of the progress. Toggling the `visible` property to `false` will force a fade-out animation. Defaults to `true`.\n */\n visible?: boolean\n /**\n * To visualize a static \"percentage\" (0-100) as a progress state. Defaults to `null`.\n */\n progress?: number\n maxOffset?: number\n onComplete?: (...args: any[]) => any\n callOnCompleteHandler?: (...args: any[]) => any\n /**\n * Used to set title and aria-label. Defaults to the value of progress property, formatted as a percent.\n */\n title?: string\n}\n\nfunction ProgressIndicatorCircular(\n props: ProgressIndicatorCircularProps &\n Omit<React.HTMLProps<HTMLElement>, 'size'>\n) {\n const {\n size,\n visible,\n progress,\n maxOffset = 88,\n onComplete,\n callOnCompleteHandler,\n title,\n ...rest\n } = props\n const keepAnimatingRef = useRef(true)\n const visibleRef = useRef(false)\n const useAnimationFrame = typeof onComplete === 'function' || IS_EDGE\n const _refDark = useRef<SVGSVGElement>(null)\n const _refLight = useRef<SVGSVGElement>(null)\n const _startupTimeout = useRef<NodeJS.Timeout>()\n\n useEffect(() => {\n if (useAnimationFrame) {\n _startupTimeout.current = setTimeout(() => {\n if (_refDark.current) {\n doAnimation(_refDark.current, true, callOnCompleteHandler)\n }\n if (_refLight.current) {\n doAnimation(_refLight.current, false)\n }\n }, 300)\n }\n\n return () => {\n keepAnimatingRef.current = false\n if (_startupTimeout.current) {\n clearTimeout(_startupTimeout.current)\n }\n }\n }, [])\n\n useEffect(() => {\n visibleRef.current = visible\n }, [visible])\n\n const doAnimation = (\n element: SVGSVGElement,\n animateOnStart = true,\n callback = null\n ) => {\n const min = 1\n const max = 88\n let start = 0,\n ms = 0,\n prog = max,\n setProg = animateOnStart,\n animate1 = true,\n completeCalled = false,\n stopNextRound = false\n\n const step = (timestamp) => {\n if (!start) {\n start = timestamp\n }\n\n // milliseconds\n ms = timestamp - start\n\n if (animate1) {\n if (!visibleRef.current && prog < 5) {\n prog = min\n }\n if (setProg) {\n element.style['stroke-dashoffset'] = prog\n } else if (!animateOnStart) {\n element.style['stroke-dashoffset'] = max\n }\n }\n\n // if complete\n if (stopNextRound) {\n animate1 = false\n if (!completeCalled) {\n completeCalled = true\n if (animateOnStart && typeof callback === 'function') {\n callback()\n }\n } else if (visibleRef.current && ms % 1e3 > 950) {\n // startAnimationFirstTime() // will not start completely from scratch\n stopNextRound = false\n }\n } else {\n // make sure we stop next round\n stopNextRound = !visibleRef.current && prog === min\n animate1 = true\n completeCalled = false\n }\n\n // since we have 1sec as duration, and we want always a max of 1000ms\n prog = Math.round(max - (max / 1e3) * (ms % 1e3))\n\n // calc if we want to animate\n setProg = animateOnStart\n ? Math.ceil(ms / 1e3) % 2 === 1 || ms === 0\n : Math.ceil(ms / 1e3) % 2 === 0 && ms !== 0\n\n if (keepAnimatingRef.current) {\n window.requestAnimationFrame(step)\n }\n }\n if (typeof window !== 'undefined' && window.requestAnimationFrame) {\n window.requestAnimationFrame(step)\n }\n }\n\n const strokeDashoffset = maxOffset - (maxOffset / 100) * progress\n const hasProgressValue = progress > -1\n\n if (hasProgressValue) {\n rest.role = 'progressbar'\n rest['aria-label'] = title\n rest['title'] = title\n } else {\n rest.role = 'alert'\n rest['aria-busy'] = true\n }\n\n const remainingDOMAttributes = validateDOMAttributes(props, { ...rest })\n\n return (\n <span\n className={classnames(\n 'dnb-progress-indicator__circular',\n size && `dnb-progress-indicator__circular--${size}`,\n hasProgressValue &&\n 'dnb-progress-indicator__circular--has-progress-value'\n )}\n {...remainingDOMAttributes}\n >\n {/* The first one is the background line */}\n <Circle\n className={classnames(\n 'dnb-progress-indicator__circular__line',\n 'light',\n 'paused'\n )}\n />\n <Circle\n className={classnames(\n 'dnb-progress-indicator__circular__line',\n 'dark',\n 'dark',\n hasProgressValue || useAnimationFrame ? 'paused' : null\n )}\n style={hasProgressValue ? { strokeDashoffset } : {}}\n ref={_refDark}\n />\n {!hasProgressValue && (\n <Circle\n className={classnames(\n 'dnb-progress-indicator__circular__line',\n 'light',\n useAnimationFrame ? 'paused' : null\n )}\n ref={_refLight}\n />\n )}\n </span>\n )\n}\n\nconst Circle = forwardRef(function Circle(\n props: React.HTMLProps<SVGSVGElement>,\n ref: React.RefObject<SVGSVGElement>\n) {\n return (\n <svg\n viewBox=\"0 0 32 32\"\n shapeRendering=\"geometricPrecision\"\n ref={ref}\n {...props}\n >\n <circle\n className=\"dnb-progress-indicator__circular__circle\"\n fill=\"none\"\n strokeWidth=\"4\"\n cx=\"16\"\n cy=\"16\"\n r=\"14\"\n />\n </svg>\n )\n})\n\nexport default ProgressIndicatorCircular\n"],"mappings":"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"}
1
+ {"version":3,"file":"ProgressIndicatorCircular.js","names":["React","useEffect","useRef","forwardRef","classnames","validateDOMAttributes","IS_EDGE","ProgressIndicatorCircular","props","size","visible","progress","onComplete","callOnCompleteHandler","title","customColors","customCircleWidth","counterClockwise","rest","_objectWithoutProperties","_excluded","keepAnimatingRef","visibleRef","useAnimationFrame","_refDark","_refLight","_startupTimeout","current","setTimeout","doAnimation","clearTimeout","element","animateOnStart","arguments","length","undefined","callback","min","max","Math","PI","start","ms","prog","setProg","animate1","completeCalled","stopNextRound","step","timestamp","style","round","ceil","window","requestAnimationFrame","progressIsControlled","role","remainingDOMAttributes","_objectSpread","createElement","_extends","className","backgroundColor","background","Circle","customColor","shaft","customWidth","strokeDashoffset","getOffset","line","ref","_ref","_excluded2","correctedCustomWidth","correctPercentageStrokeWidth","shapeRendering","fill","cx","cy","r","stroke","offset","strokeWidth","endsWith","number","parseFloat","slice"],"sources":["../../../../src/components/progress-indicator/ProgressIndicatorCircular.tsx"],"sourcesContent":["/**\n * Web ProgressIndicator Component\n *\n */\n\nimport React, { useEffect, useRef, forwardRef } from 'react'\nimport * as CSS from 'csstype'\nimport classnames from 'classnames'\nimport { validateDOMAttributes } from '../../shared/component-helper'\nimport { IS_EDGE } from '../../shared/helpers'\nimport { ProgressIndicatorCircularAllProps } from './types'\n\nfunction ProgressIndicatorCircular(\n props: ProgressIndicatorCircularAllProps\n) {\n const {\n size,\n visible,\n progress,\n onComplete,\n callOnCompleteHandler,\n title,\n customColors,\n customCircleWidth,\n counterClockwise = false,\n ...rest\n } = props\n const keepAnimatingRef = useRef(true)\n const visibleRef = useRef(false)\n const useAnimationFrame = typeof onComplete === 'function' || IS_EDGE\n const _refDark = useRef<SVGSVGElement>(null)\n const _refLight = useRef<SVGSVGElement>(null)\n const _startupTimeout = useRef<NodeJS.Timeout>()\n\n useEffect(() => {\n if (useAnimationFrame) {\n _startupTimeout.current = setTimeout(() => {\n if (_refDark.current) {\n doAnimation(_refDark.current, true, callOnCompleteHandler)\n }\n if (_refLight.current) {\n doAnimation(_refLight.current, false)\n }\n }, 300)\n }\n\n return () => {\n keepAnimatingRef.current = false\n if (_startupTimeout.current) {\n clearTimeout(_startupTimeout.current)\n }\n }\n }, [])\n\n useEffect(() => {\n visibleRef.current = visible\n }, [visible])\n\n const doAnimation = (\n element: SVGSVGElement,\n animateOnStart = true,\n callback = null\n ) => {\n const min = 1\n const max = Math.PI * 100\n let start = 0,\n ms = 0,\n prog = max,\n setProg = animateOnStart,\n animate1 = true,\n completeCalled = false,\n stopNextRound = false\n\n const step = (timestamp) => {\n if (!start) {\n start = timestamp\n }\n\n // milliseconds\n ms = timestamp - start\n\n if (animate1) {\n if (!visibleRef.current && prog < 20) {\n prog = min\n }\n if (setProg) {\n element.style['stroke-dashoffset'] = `${prog}%`\n } else if (!animateOnStart) {\n element.style['stroke-dashoffset'] = `${max}%`\n }\n }\n\n // if complete\n if (stopNextRound) {\n animate1 = false\n if (!completeCalled) {\n completeCalled = true\n if (animateOnStart && typeof callback === 'function') {\n callback()\n }\n } else if (visibleRef.current && ms % 1e3 > 950) {\n // startAnimationFirstTime() // will not start completely from scratch\n stopNextRound = false\n }\n } else {\n // make sure we stop next round\n stopNextRound = !visibleRef.current && prog === min\n animate1 = true\n completeCalled = false\n }\n\n // since we have 1sec as duration, and we want always a max of 1000ms\n prog = Math.round(max - (max / 1e3) * (ms % 1e3))\n\n // calc if we want to animate\n setProg = animateOnStart\n ? Math.ceil(ms / 1e3) % 2 === 1 || ms === 0\n : Math.ceil(ms / 1e3) % 2 === 0 && ms !== 0\n\n if (keepAnimatingRef.current) {\n window.requestAnimationFrame(step)\n }\n }\n if (typeof window !== 'undefined' && window.requestAnimationFrame) {\n window.requestAnimationFrame(step)\n }\n }\n\n const progressIsControlled = progress > -1\n\n if (progressIsControlled) {\n rest.role = 'progressbar'\n rest['aria-label'] = title\n rest['title'] = title\n } else {\n rest.role = 'alert'\n rest['aria-busy'] = true\n }\n\n const remainingDOMAttributes = validateDOMAttributes(props, { ...rest })\n\n return (\n <span\n className={classnames(\n 'dnb-progress-indicator__circular',\n size && `dnb-progress-indicator__circular--${size}`,\n progressIsControlled &&\n 'dnb-progress-indicator__circular--has-progress-value'\n )}\n {...remainingDOMAttributes}\n >\n <span className=\"dnb-progress-indicator__circular__background-padding\">\n <span\n className=\"dnb-progress-indicator__circular__background\"\n style={{ backgroundColor: customColors?.background }}\n />\n </span>\n\n {/* The first one is the background line */}\n <Circle\n className={classnames('light', 'paused')}\n customColor={customColors?.shaft}\n customWidth={customCircleWidth}\n />\n <Circle\n className={classnames(\n 'dark',\n 'dark',\n progressIsControlled || useAnimationFrame ? 'paused' : null\n )}\n style={\n progressIsControlled\n ? {\n strokeDashoffset: getOffset(progress, counterClockwise),\n }\n : {}\n }\n customColor={customColors?.line}\n customWidth={customCircleWidth}\n ref={_refDark}\n />\n {!progressIsControlled && (\n <Circle\n className={classnames(\n 'light',\n useAnimationFrame ? 'paused' : null\n )}\n customColor={customColors?.shaft}\n customWidth={customCircleWidth}\n ref={_refLight}\n />\n )}\n </span>\n )\n}\n\nconst Circle = forwardRef(function Circle(\n {\n customColor,\n customWidth,\n className,\n ...rest\n }: React.HTMLProps<SVGSVGElement> & {\n customColor?: CSS.Property.BackgroundColor\n customWidth?: CSS.Property.StrokeWidth\n },\n ref: React.RefObject<SVGSVGElement>\n) {\n const correctedCustomWidth = correctPercentageStrokeWidth(customWidth)\n return (\n <svg\n className={classnames(\n 'dnb-progress-indicator__circular__line',\n className\n )}\n shapeRendering=\"geometricPrecision\"\n ref={ref}\n {...rest}\n >\n <circle\n className=\"dnb-progress-indicator__circular__circle\"\n fill=\"none\"\n cx=\"50%\"\n cy=\"50%\"\n r=\"50%\"\n style={{\n stroke: customColor,\n ...(correctedCustomWidth\n ? {\n '--progress-indicator-circular-stroke-width':\n correctedCustomWidth,\n }\n : undefined),\n }}\n />\n </svg>\n )\n})\n/**\n *\n * @param progress number between 0-100\n * @param counterClockwise decides direction of movement. Default is `false`\n * @returns\n */\n\nfunction getOffset(progress: number, counterClockwise = false) {\n const offset = Math.PI * (100 - progress)\n return `${counterClockwise ? -offset : offset}%`\n}\n\n/**\n * If the custom stroke width is a percentage, returns a corrected width\n * relative to the parent SVG\n * @param strokeWidth\n * @returns\n */\nfunction correctPercentageStrokeWidth(\n strokeWidth: CSS.Property.StrokeWidth\n) {\n if (typeof strokeWidth === 'string' && strokeWidth.endsWith('%')) {\n const number = parseFloat(strokeWidth.slice(0, strokeWidth.length - 1))\n return `${(100 * number) / (100 - number)}%`\n }\n}\nexport default ProgressIndicatorCircular\n"],"mappings":"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"}
@@ -1,5 +1,6 @@
1
1
  import { PropertiesTableProps } from '../../shared/types';
2
2
  export declare const ProgressIndicatorProperties: PropertiesTableProps;
3
+ export declare const CustomColorsData: PropertiesTableProps;
3
4
  export declare const ProgressIndicatorDeprecatedProperties: PropertiesTableProps;
4
5
  export declare const ProgressIndicatorEvents: PropertiesTableProps;
5
6
  export declare const ProgressIndicatorDeprecatedEvents: PropertiesTableProps;
@@ -13,7 +13,7 @@ export const ProgressIndicatorProperties = {
13
13
  },
14
14
  type: {
15
15
  doc: 'Defines the type.',
16
- type: [`'circular'`, `'linear'`],
16
+ type: [`'circular'`, `'linear'`, `'countdown'`],
17
17
  defaultValue: `'circular'`,
18
18
  status: 'optional'
19
19
  },
@@ -25,19 +25,25 @@ export const ProgressIndicatorProperties = {
25
25
  },
26
26
  size: {
27
27
  doc: 'Defines the size.',
28
- type: [`'default'`, `'small'`, `'medium'`, `'large'`, `'huge'`],
28
+ type: [`'default'`, `'small'`, `'medium'`, `'large'`, `'huge'`, 'string'],
29
29
  defaultValue: `'default'`,
30
30
  status: 'optional'
31
31
  },
32
32
  label: {
33
- doc: 'Show a custom label to the right or under the indicator.',
33
+ doc: 'Content of a custom label. (Overrides `indicator_label` and `showDefaultLabel`)',
34
+ type: 'React.ReactNode',
35
+ defaultValue: 'undefined',
36
+ status: 'optional'
37
+ },
38
+ children: {
39
+ doc: 'Same as `label` prop (`label` prop has priority)',
34
40
  type: 'React.ReactNode',
35
41
  defaultValue: 'undefined',
36
42
  status: 'optional'
37
43
  },
38
44
  labelDirection: {
39
- doc: 'Sets the position of the label.',
40
- type: [`'horizontal'`, '`vertical`'],
45
+ doc: "Sets the position of the label. `'inside'` only works with `type='circular'.",
46
+ type: [`'horizontal'`, `'vertical'`, `'inside'`],
41
47
  defaultValue: `'horizontal'`,
42
48
  status: 'optional'
43
49
  },
@@ -59,12 +65,44 @@ export const ProgressIndicatorProperties = {
59
65
  defaultValue: 'undefined',
60
66
  status: 'optional'
61
67
  },
68
+ '[customColors](/uilib/components/progress-indicator/properties/#data-object-customcolors)': {
69
+ doc: 'Send in custom css colors that overrides any css. See below for data structure.',
70
+ type: 'object',
71
+ defaultValue: 'undefined',
72
+ status: 'optional'
73
+ },
74
+ customCircleWidth: {
75
+ doc: 'Send in custom css width for circle progress line. (`undefined` defaults to one eighth of the size).',
76
+ type: 'string',
77
+ defaultValue: 'undefined',
78
+ status: 'optional'
79
+ },
62
80
  '[Space](/uilib/layout/space/properties)': {
63
81
  doc: 'Spacing properties like `top` or `bottom` are supported.',
64
82
  type: ['string', 'object'],
65
83
  status: 'optional'
66
84
  }
67
85
  };
86
+ export const CustomColorsData = {
87
+ line: {
88
+ doc: 'Override the moving line color.',
89
+ type: 'string',
90
+ defaultValue: 'undefined',
91
+ status: 'optional'
92
+ },
93
+ shaft: {
94
+ doc: 'Override the background line color.',
95
+ type: 'string',
96
+ defaultValue: 'undefined',
97
+ status: 'optional'
98
+ },
99
+ background: {
100
+ doc: 'Set a background color for the center of the circle.',
101
+ type: 'string',
102
+ defaultValue: 'undefined',
103
+ status: 'optional'
104
+ }
105
+ };
68
106
  export const ProgressIndicatorDeprecatedProperties = {
69
107
  no_animation: {
70
108
  doc: 'use `noAnimation`.',
@@ -80,11 +118,6 @@ export const ProgressIndicatorDeprecatedProperties = {
80
118
  doc: 'use `showDefaultLabel`.',
81
119
  type: 'boolean',
82
120
  status: 'deprecated'
83
- },
84
- children: {
85
- doc: 'use the `label` prop instead.',
86
- type: 'React.ReactNode',
87
- status: 'deprecated'
88
121
  }
89
122
  };
90
123
  export const ProgressIndicatorEvents = {