@dnb/eufemia 9.12.4 → 9.13.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 (197) hide show
  1. package/CHANGELOG.md +11 -10
  2. package/cjs/components/autocomplete/Autocomplete.js +9 -16
  3. package/cjs/components/autocomplete/style/themes/dnb-autocomplete-theme-ui.css +4 -0
  4. package/cjs/components/autocomplete/style/themes/dnb-autocomplete-theme-ui.scss +3 -0
  5. package/cjs/components/button/style/themes/_button-mixins.scss +14 -5
  6. package/cjs/components/button/style/themes/dnb-button-theme-open-banking.css +10 -10
  7. package/cjs/components/button/style/themes/dnb-button-theme-ui.css +10 -10
  8. package/cjs/components/button/style/themes/dnb-button-theme-ui.scss +1 -0
  9. package/cjs/components/date-picker/DatePickerAddon.js +1 -1
  10. package/cjs/components/date-picker/DatePickerCalc.js +2 -0
  11. package/cjs/components/date-picker/DatePickerCalendar.js +2 -2
  12. package/cjs/components/date-picker/DatePickerFooter.js +2 -2
  13. package/cjs/components/date-picker/DatePickerInput.js +18 -21
  14. package/cjs/components/date-picker/DatePickerProvider.js +4 -18
  15. package/cjs/components/dropdown/Dropdown.js +2 -0
  16. package/cjs/components/form-status/FormStatus.js +2 -0
  17. package/cjs/components/global-error/GlobalError.js +2 -0
  18. package/cjs/components/global-status/GlobalStatus.d.ts +1 -1
  19. package/cjs/components/global-status/GlobalStatus.js +2 -0
  20. package/cjs/components/heading/Heading.js +2 -0
  21. package/cjs/components/heading/HeadingCounter.js +2 -0
  22. package/cjs/components/heading/HeadingHelpers.js +2 -0
  23. package/cjs/components/heading/HeadingProvider.js +2 -0
  24. package/cjs/components/icon/Icon.js +2 -0
  25. package/cjs/components/input/Input.js +2 -0
  26. package/cjs/components/input-masked/InputMasked.js +25 -29
  27. package/cjs/components/logo/Logo.js +2 -0
  28. package/cjs/components/modal/Modal.js +2 -0
  29. package/cjs/components/modal/ModalContent.js +7 -3
  30. package/cjs/components/number-format/NumberUtils.js +2 -0
  31. package/cjs/components/pagination/PaginationInfinity.js +2 -0
  32. package/cjs/components/pagination/PaginationProvider.js +2 -0
  33. package/cjs/components/progress-indicator/ProgressIndicator.js +2 -0
  34. package/cjs/components/progress-indicator/ProgressIndicatorCircular.js +2 -0
  35. package/cjs/components/progress-indicator/ProgressIndicatorLinear.js +2 -0
  36. package/cjs/components/slider/Slider.js +2 -0
  37. package/cjs/components/space/SpacingHelper.js +2 -0
  38. package/cjs/components/step-indicator/StepIndicator.js +2 -0
  39. package/cjs/components/tabs/Tabs.js +2 -0
  40. package/cjs/components/textarea/Textarea.js +2 -0
  41. package/cjs/components/tooltip/TooltipPortal.js +2 -0
  42. package/cjs/components/tooltip/TooltipWithEvents.js +2 -0
  43. package/cjs/elements/H.js +2 -0
  44. package/cjs/elements/Table.js +2 -0
  45. package/cjs/extensions/payment-card/PaymentCard.js +2 -0
  46. package/cjs/fragments/drawer-list/DrawerList.js +2 -0
  47. package/cjs/fragments/drawer-list/DrawerListHelpers.js +2 -0
  48. package/cjs/fragments/drawer-list/DrawerListPortal.js +2 -0
  49. package/cjs/fragments/drawer-list/DrawerListProvider.js +9 -1
  50. package/cjs/shared/AnimateHeight.js +2 -0
  51. package/cjs/shared/component-helper.js +2 -0
  52. package/cjs/style/stylis.js +2 -0
  53. package/cjs/style/themes/theme-open-banking/dnb-theme-open-banking.css +24 -20
  54. package/cjs/style/themes/theme-open-banking/dnb-theme-open-banking.min.css +2 -2
  55. package/cjs/style/themes/theme-ui/dnb-theme-ui.css +14 -10
  56. package/cjs/style/themes/theme-ui/dnb-theme-ui.min.css +2 -2
  57. package/components/autocomplete/Autocomplete.js +8 -16
  58. package/components/autocomplete/style/themes/dnb-autocomplete-theme-ui.css +4 -0
  59. package/components/autocomplete/style/themes/dnb-autocomplete-theme-ui.scss +3 -0
  60. package/components/button/style/themes/_button-mixins.scss +14 -5
  61. package/components/button/style/themes/dnb-button-theme-open-banking.css +10 -10
  62. package/components/button/style/themes/dnb-button-theme-ui.css +10 -10
  63. package/components/button/style/themes/dnb-button-theme-ui.scss +1 -0
  64. package/components/date-picker/DatePickerAddon.js +1 -1
  65. package/components/date-picker/DatePickerCalc.js +1 -0
  66. package/components/date-picker/DatePickerCalendar.js +2 -2
  67. package/components/date-picker/DatePickerFooter.js +2 -2
  68. package/components/date-picker/DatePickerInput.js +17 -21
  69. package/components/date-picker/DatePickerProvider.js +4 -18
  70. package/components/dropdown/Dropdown.js +1 -0
  71. package/components/form-status/FormStatus.js +1 -0
  72. package/components/global-error/GlobalError.js +1 -0
  73. package/components/global-status/GlobalStatus.d.ts +1 -1
  74. package/components/global-status/GlobalStatus.js +1 -0
  75. package/components/heading/Heading.js +2 -0
  76. package/components/heading/HeadingCounter.js +1 -0
  77. package/components/heading/HeadingHelpers.js +1 -0
  78. package/components/heading/HeadingProvider.js +1 -0
  79. package/components/icon/Icon.js +1 -0
  80. package/components/input/Input.js +1 -0
  81. package/components/input-masked/InputMasked.js +24 -29
  82. package/components/logo/Logo.js +2 -0
  83. package/components/modal/Modal.js +1 -0
  84. package/components/modal/ModalContent.js +6 -3
  85. package/components/number-format/NumberUtils.js +1 -0
  86. package/components/pagination/PaginationInfinity.js +1 -0
  87. package/components/pagination/PaginationProvider.js +1 -0
  88. package/components/progress-indicator/ProgressIndicator.js +1 -0
  89. package/components/progress-indicator/ProgressIndicatorCircular.js +2 -0
  90. package/components/progress-indicator/ProgressIndicatorLinear.js +2 -0
  91. package/components/slider/Slider.js +1 -0
  92. package/components/space/SpacingHelper.js +1 -0
  93. package/components/step-indicator/StepIndicator.js +1 -0
  94. package/components/tabs/Tabs.js +1 -0
  95. package/components/textarea/Textarea.js +2 -0
  96. package/components/tooltip/TooltipPortal.js +1 -0
  97. package/components/tooltip/TooltipWithEvents.js +2 -0
  98. package/elements/H.js +2 -0
  99. package/elements/Table.js +1 -0
  100. package/es/components/autocomplete/Autocomplete.js +5 -15
  101. package/es/components/autocomplete/style/themes/dnb-autocomplete-theme-ui.css +4 -0
  102. package/es/components/autocomplete/style/themes/dnb-autocomplete-theme-ui.scss +3 -0
  103. package/es/components/button/style/themes/_button-mixins.scss +14 -5
  104. package/es/components/button/style/themes/dnb-button-theme-open-banking.css +10 -10
  105. package/es/components/button/style/themes/dnb-button-theme-ui.css +10 -10
  106. package/es/components/button/style/themes/dnb-button-theme-ui.scss +1 -0
  107. package/es/components/date-picker/DatePickerAddon.js +1 -1
  108. package/es/components/date-picker/DatePickerCalendar.js +2 -2
  109. package/es/components/date-picker/DatePickerFooter.js +2 -2
  110. package/es/components/date-picker/DatePickerInput.js +17 -21
  111. package/es/components/date-picker/DatePickerProvider.js +4 -14
  112. package/es/components/global-status/GlobalStatus.d.ts +1 -1
  113. package/es/components/input-masked/InputMasked.js +23 -27
  114. package/es/components/modal/ModalContent.js +5 -3
  115. package/es/fragments/drawer-list/DrawerListProvider.js +7 -1
  116. package/es/style/themes/theme-open-banking/dnb-theme-open-banking.css +24 -20
  117. package/es/style/themes/theme-open-banking/dnb-theme-open-banking.min.css +2 -2
  118. package/es/style/themes/theme-ui/dnb-theme-ui.css +14 -10
  119. package/es/style/themes/theme-ui/dnb-theme-ui.min.css +2 -2
  120. package/esm/components/autocomplete/Autocomplete.js +8 -16
  121. package/esm/components/autocomplete/style/themes/dnb-autocomplete-theme-ui.css +4 -0
  122. package/esm/components/autocomplete/style/themes/dnb-autocomplete-theme-ui.scss +3 -0
  123. package/esm/components/button/style/themes/_button-mixins.scss +14 -5
  124. package/esm/components/button/style/themes/dnb-button-theme-open-banking.css +10 -10
  125. package/esm/components/button/style/themes/dnb-button-theme-ui.css +10 -10
  126. package/esm/components/button/style/themes/dnb-button-theme-ui.scss +1 -0
  127. package/esm/components/date-picker/DatePickerAddon.js +1 -1
  128. package/esm/components/date-picker/DatePickerCalc.js +1 -0
  129. package/esm/components/date-picker/DatePickerCalendar.js +2 -2
  130. package/esm/components/date-picker/DatePickerFooter.js +2 -2
  131. package/esm/components/date-picker/DatePickerInput.js +17 -21
  132. package/esm/components/date-picker/DatePickerProvider.js +4 -18
  133. package/esm/components/dropdown/Dropdown.js +1 -0
  134. package/esm/components/form-status/FormStatus.js +1 -0
  135. package/esm/components/global-error/GlobalError.js +1 -0
  136. package/esm/components/global-status/GlobalStatus.d.ts +1 -1
  137. package/esm/components/global-status/GlobalStatus.js +1 -0
  138. package/esm/components/heading/Heading.js +2 -0
  139. package/esm/components/heading/HeadingCounter.js +1 -0
  140. package/esm/components/heading/HeadingHelpers.js +1 -0
  141. package/esm/components/heading/HeadingProvider.js +1 -0
  142. package/esm/components/icon/Icon.js +1 -0
  143. package/esm/components/input/Input.js +1 -0
  144. package/esm/components/input-masked/InputMasked.js +24 -29
  145. package/esm/components/logo/Logo.js +2 -0
  146. package/esm/components/modal/Modal.js +1 -0
  147. package/esm/components/modal/ModalContent.js +6 -3
  148. package/esm/components/number-format/NumberUtils.js +1 -0
  149. package/esm/components/pagination/PaginationInfinity.js +1 -0
  150. package/esm/components/pagination/PaginationProvider.js +1 -0
  151. package/esm/components/progress-indicator/ProgressIndicator.js +1 -0
  152. package/esm/components/progress-indicator/ProgressIndicatorCircular.js +2 -0
  153. package/esm/components/progress-indicator/ProgressIndicatorLinear.js +2 -0
  154. package/esm/components/slider/Slider.js +1 -0
  155. package/esm/components/space/SpacingHelper.js +1 -0
  156. package/esm/components/step-indicator/StepIndicator.js +1 -0
  157. package/esm/components/tabs/Tabs.js +1 -0
  158. package/esm/components/textarea/Textarea.js +2 -0
  159. package/esm/components/tooltip/TooltipPortal.js +1 -0
  160. package/esm/components/tooltip/TooltipWithEvents.js +2 -0
  161. package/esm/dnb-ui-basis.min.mjs +2 -2
  162. package/esm/dnb-ui-components.min.mjs +3 -3
  163. package/esm/dnb-ui-elements.min.mjs +3 -3
  164. package/esm/dnb-ui-extensions.min.mjs +4 -4
  165. package/esm/dnb-ui-lib.min.mjs +4 -4
  166. package/esm/dnb-ui-web-components.min.mjs +4 -4
  167. package/esm/elements/H.js +2 -0
  168. package/esm/elements/Table.js +1 -0
  169. package/esm/extensions/payment-card/PaymentCard.js +1 -0
  170. package/esm/fragments/drawer-list/DrawerList.js +1 -0
  171. package/esm/fragments/drawer-list/DrawerListHelpers.js +1 -0
  172. package/esm/fragments/drawer-list/DrawerListPortal.js +1 -0
  173. package/esm/fragments/drawer-list/DrawerListProvider.js +11 -3
  174. package/esm/shared/AnimateHeight.js +1 -0
  175. package/esm/shared/component-helper.js +1 -0
  176. package/esm/style/themes/theme-open-banking/dnb-theme-open-banking.css +24 -20
  177. package/esm/style/themes/theme-open-banking/dnb-theme-open-banking.min.css +2 -2
  178. package/esm/style/themes/theme-ui/dnb-theme-ui.css +14 -10
  179. package/esm/style/themes/theme-ui/dnb-theme-ui.min.css +2 -2
  180. package/extensions/payment-card/PaymentCard.js +1 -0
  181. package/fragments/drawer-list/DrawerList.js +1 -0
  182. package/fragments/drawer-list/DrawerListHelpers.js +1 -0
  183. package/fragments/drawer-list/DrawerListPortal.js +1 -0
  184. package/fragments/drawer-list/DrawerListProvider.js +11 -3
  185. package/package.json +8 -8
  186. package/shared/AnimateHeight.js +1 -0
  187. package/shared/component-helper.js +1 -0
  188. package/style/themes/theme-open-banking/dnb-theme-open-banking.css +24 -20
  189. package/style/themes/theme-open-banking/dnb-theme-open-banking.min.css +2 -2
  190. package/style/themes/theme-ui/dnb-theme-ui.css +14 -10
  191. package/style/themes/theme-ui/dnb-theme-ui.min.css +2 -2
  192. package/umd/dnb-ui-basis.min.js +3 -3
  193. package/umd/dnb-ui-components.min.js +4 -4
  194. package/umd/dnb-ui-elements.min.js +4 -4
  195. package/umd/dnb-ui-extensions.min.js +5 -5
  196. package/umd/dnb-ui-lib.min.js +5 -5
  197. package/umd/dnb-ui-web-components.min.js +5 -5
@@ -593,16 +593,16 @@
593
593
  color: var(--color-ocean-green);
594
594
  background-color: #fdbb31;
595
595
  background-color: var(--color-accent-yellow);
596
- --border-color: var(--color-emerald-green);
596
+ --border-color: var(--color-ocean-green);
597
597
  -webkit-box-shadow: 0 0 0 0.125rem var(--border-color);
598
598
  box-shadow: 0 0 0 0.125rem var(--border-color);
599
599
  border-color: transparent; }
600
600
  @media screen and (-ms-high-contrast: none) {
601
601
  html:not([data-whatintent='touch']) .dnb-button--signal:hover:not([disabled]) {
602
- -webkit-box-shadow: 0 0 0 0.125rem #14555a;
603
- box-shadow: 0 0 0 0.125rem #14555a;
604
- -webkit-box-shadow: 0 0 0 0.125rem var(--color-emerald-green);
605
- box-shadow: 0 0 0 0.125rem var(--color-emerald-green); } }
602
+ -webkit-box-shadow: 0 0 0 0.125rem #00343e;
603
+ box-shadow: 0 0 0 0.125rem #00343e;
604
+ -webkit-box-shadow: 0 0 0 0.125rem var(--color-ocean-green);
605
+ box-shadow: 0 0 0 0.125rem var(--color-ocean-green); } }
606
606
  @media screen and (-ms-high-contrast: none) {
607
607
  html:not([data-whatintent='touch']) .dnb-button--signal:hover:not([disabled]) {
608
608
  opacity: 1; } }
@@ -615,17 +615,17 @@
615
615
  color: var(--color-ocean-green);
616
616
  background-color: #fdbb31;
617
617
  background-color: var(--color-accent-yellow);
618
- --border-color: var(--color-emerald-green);
618
+ --border-color: var(--color-ocean-green);
619
619
  -webkit-box-shadow: 0 0 0 0.125rem var(--border-color);
620
620
  box-shadow: 0 0 0 0.125rem var(--border-color);
621
621
  border-color: transparent; }
622
622
  @media screen and (-ms-high-contrast: none) {
623
623
  html[data-whatintent='touch'] .dnb-button--signal:active:not([disabled]),
624
624
  html:not([data-whatintent='touch']) html[data-whatintent='touch'] .dnb-button--signal:active:not([disabled]) {
625
- -webkit-box-shadow: 0 0 0 0.125rem #14555a;
626
- box-shadow: 0 0 0 0.125rem #14555a;
627
- -webkit-box-shadow: 0 0 0 0.125rem var(--color-emerald-green);
628
- box-shadow: 0 0 0 0.125rem var(--color-emerald-green); } }
625
+ -webkit-box-shadow: 0 0 0 0.125rem #00343e;
626
+ box-shadow: 0 0 0 0.125rem #00343e;
627
+ -webkit-box-shadow: 0 0 0 0.125rem var(--color-ocean-green);
628
+ box-shadow: 0 0 0 0.125rem var(--color-ocean-green); } }
629
629
  .dnb-button--signal:focus[disabled],
630
630
  html:not([data-whatintent='touch']) .dnb-button--signal:focus[disabled] {
631
631
  cursor: not-allowed; }
@@ -589,16 +589,16 @@
589
589
  color: var(--color-ocean-green);
590
590
  background-color: #fdbb31;
591
591
  background-color: var(--color-accent-yellow);
592
- --border-color: var(--color-emerald-green);
592
+ --border-color: var(--color-ocean-green);
593
593
  -webkit-box-shadow: 0 0 0 0.125rem var(--border-color);
594
594
  box-shadow: 0 0 0 0.125rem var(--border-color);
595
595
  border-color: transparent; }
596
596
  @media screen and (-ms-high-contrast: none) {
597
597
  html:not([data-whatintent='touch']) .dnb-button--signal:hover:not([disabled]) {
598
- -webkit-box-shadow: 0 0 0 0.125rem #14555a;
599
- box-shadow: 0 0 0 0.125rem #14555a;
600
- -webkit-box-shadow: 0 0 0 0.125rem var(--color-emerald-green);
601
- box-shadow: 0 0 0 0.125rem var(--color-emerald-green); } }
598
+ -webkit-box-shadow: 0 0 0 0.125rem #00343e;
599
+ box-shadow: 0 0 0 0.125rem #00343e;
600
+ -webkit-box-shadow: 0 0 0 0.125rem var(--color-ocean-green);
601
+ box-shadow: 0 0 0 0.125rem var(--color-ocean-green); } }
602
602
  @media screen and (-ms-high-contrast: none) {
603
603
  html:not([data-whatintent='touch']) .dnb-button--signal:hover:not([disabled]) {
604
604
  opacity: 1; } }
@@ -611,17 +611,17 @@
611
611
  color: var(--color-ocean-green);
612
612
  background-color: #fdbb31;
613
613
  background-color: var(--color-accent-yellow);
614
- --border-color: var(--color-emerald-green);
614
+ --border-color: var(--color-ocean-green);
615
615
  -webkit-box-shadow: 0 0 0 0.125rem var(--border-color);
616
616
  box-shadow: 0 0 0 0.125rem var(--border-color);
617
617
  border-color: transparent; }
618
618
  @media screen and (-ms-high-contrast: none) {
619
619
  html[data-whatintent='touch'] .dnb-button--signal:active:not([disabled]),
620
620
  html:not([data-whatintent='touch']) html[data-whatintent='touch'] .dnb-button--signal:active:not([disabled]) {
621
- -webkit-box-shadow: 0 0 0 0.125rem #14555a;
622
- box-shadow: 0 0 0 0.125rem #14555a;
623
- -webkit-box-shadow: 0 0 0 0.125rem var(--color-emerald-green);
624
- box-shadow: 0 0 0 0.125rem var(--color-emerald-green); } }
621
+ -webkit-box-shadow: 0 0 0 0.125rem #00343e;
622
+ box-shadow: 0 0 0 0.125rem #00343e;
623
+ -webkit-box-shadow: 0 0 0 0.125rem var(--color-ocean-green);
624
+ box-shadow: 0 0 0 0.125rem var(--color-ocean-green); } }
625
625
  .dnb-button--signal:focus[disabled],
626
626
  html:not([data-whatintent='touch']) .dnb-button--signal:focus[disabled] {
627
627
  cursor: not-allowed; }
@@ -321,6 +321,7 @@
321
321
  @include buttonHover(
322
322
  var(--color-ocean-green),
323
323
  var(--color-accent-yellow),
324
+ var(--color-ocean-green),
324
325
  'touch'
325
326
  );
326
327
  @include buttonFocus(
@@ -56,7 +56,7 @@ export default class DatePickerAddon extends React.PureComponent {
56
56
  endDate,
57
57
  event = null
58
58
  } = {}) {
59
- this.context.setDate({
59
+ this.context.updateState({
60
60
  startDate,
61
61
  endDate,
62
62
  changeMonthViews: true
@@ -136,7 +136,7 @@ export default class DatePickerCalendar extends React.PureComponent {
136
136
  }
137
137
 
138
138
  state.changeMonthViews = true;
139
- this.context.setDate(state, () => {
139
+ this.context.updateState(state, () => {
140
140
  this.callOnSelect({
141
141
  event,
142
142
  nr,
@@ -448,7 +448,7 @@ export default class DatePickerCalendar extends React.PureComponent {
448
448
  endDate,
449
449
  resetDate,
450
450
  event,
451
- onSelect: state => this.context.setDate(state, () => this.callOnSelect({
451
+ onSelect: state => this.context.updateState(state, () => this.callOnSelect({
452
452
  event,
453
453
  nr,
454
454
  hidePicker: !isRange
@@ -37,7 +37,7 @@ export default class DatePickerFooter extends React.PureComponent {
37
37
  args.event.persist();
38
38
  }
39
39
 
40
- this.context.setDate({
40
+ this.context.updateState({
41
41
  startDate,
42
42
  endDate
43
43
  }, () => {
@@ -56,7 +56,7 @@ export default class DatePickerFooter extends React.PureComponent {
56
56
  args.event.persist();
57
57
  }
58
58
 
59
- this.context.setDate({
59
+ this.context.updateState({
60
60
  date: undefined,
61
61
  startDate: undefined,
62
62
  endDate: undefined
@@ -81,26 +81,23 @@ export default class DatePickerInput extends React.PureComponent {
81
81
  });
82
82
 
83
83
  _defineProperty(this, "callOnChangeAsInvalid", state => {
84
- const {
85
- startDate,
86
- endDate,
87
- event
88
- } = _objectSpread(_objectSpread({}, this.context), state);
89
-
90
84
  this.context.updateState({
91
85
  hoverDate: null
92
- });
86
+ }, () => {
87
+ if (this.context.hasHadValidDate) {
88
+ const {
89
+ startDate,
90
+ endDate,
91
+ event
92
+ } = _objectSpread(_objectSpread({}, this.context), state);
93
93
 
94
- if (this.context.hasHadValidDate) {
95
- this.context.callOnChangeHandler({
96
- startDate,
97
- endDate,
98
- event
99
- });
100
- this.context.updateState({
101
- hasHadValidDate: false
102
- });
103
- }
94
+ this.context.callOnChangeHandler({
95
+ startDate,
96
+ endDate,
97
+ event
98
+ });
99
+ }
100
+ });
104
101
  });
105
102
 
106
103
  _defineProperty(this, "callOnChange", ({
@@ -109,8 +106,7 @@ export default class DatePickerInput extends React.PureComponent {
109
106
  event
110
107
  }) => {
111
108
  const state = {
112
- changeMonthViews: true,
113
- hasHadValidDate: false
109
+ changeMonthViews: true
114
110
  };
115
111
 
116
112
  if (typeof startDate !== 'undefined' && isValid(startDate)) {
@@ -125,7 +121,7 @@ export default class DatePickerInput extends React.PureComponent {
125
121
  state.endDate = endDate;
126
122
  }
127
123
 
128
- this.context.setDate(state, () => {
124
+ this.context.updateState(state, () => {
129
125
  if (typeof startDate !== 'undefined' && isValid(startDate) || typeof endDate !== 'undefined' && isValid(endDate)) {
130
126
  this.context.callOnChangeHandler({
131
127
  event
@@ -356,7 +352,7 @@ export default class DatePickerInput extends React.PureComponent {
356
352
  event
357
353
  });
358
354
  } else {
359
- this.context.setDate({
355
+ this.context.updateState({
360
356
  [`${mode}Date`]: null
361
357
  });
362
358
  this.context.updateState({
@@ -84,7 +84,7 @@ export default class DatePickerProvider extends React.PureComponent {
84
84
  }
85
85
  }
86
86
 
87
- if (state.lastEventCallCache && (String(state.lastEventCallCache.startDate) !== String(state.startDate) || String(state.lastEventCallCache.endDate) !== String(state.endDate))) {
87
+ if (state.lastEventCallCache && (state.lastEventCallCache.startDate !== state.startDate || state.lastEventCallCache.endDate !== state.endDate)) {
88
88
  state.lastEventCallCache = {};
89
89
  }
90
90
 
@@ -92,6 +92,7 @@ export default class DatePickerProvider extends React.PureComponent {
92
92
  state.__startDay = pad(format(state.startDate, 'dd'), 2);
93
93
  state.__startMonth = pad(format(state.startDate, 'MM'), 2);
94
94
  state.__startYear = format(state.startDate, 'yyyy');
95
+ state.hasHadValidDate = true;
95
96
  } else if (state.startDate === undefined) {
96
97
  state.__startDay = null;
97
98
  state.__startMonth = null;
@@ -102,6 +103,7 @@ export default class DatePickerProvider extends React.PureComponent {
102
103
  state.__endDay = pad(format(state.endDate, 'dd'), 2);
103
104
  state.__endMonth = pad(format(state.endDate, 'MM'), 2);
104
105
  state.__endYear = format(state.endDate, 'yyyy');
106
+ state.hasHadValidDate = true;
105
107
  } else if (state.endDate === undefined) {
106
108
  state.__endDay = null;
107
109
  state.__endMonth = null;
@@ -160,19 +162,8 @@ export default class DatePickerProvider extends React.PureComponent {
160
162
  }), cb);
161
163
  });
162
164
 
163
- _defineProperty(this, "setDate", (state, cb = null) => {
164
- this.setState(_objectSpread(_objectSpread({}, state), {}, {
165
- _listenForPropChanges: false
166
- }), cb);
167
- const startDateIsValid = Boolean(state.startDate && isValid(state.startDate));
168
- const endDateIsValid = Boolean(state.endDate && isValid(state.endDate));
169
- this.setState({
170
- hasHadValidDate: startDateIsValid || endDateIsValid
171
- });
172
- });
173
-
174
165
  _defineProperty(this, "callOnChangeHandler", args => {
175
- if (this.state.lastEventCallCache && String(this.state.lastEventCallCache.startDate) === String(this.state.startDate) && String(this.state.lastEventCallCache.endDate) === String(this.state.endDate)) {
166
+ if (this.state.lastEventCallCache && this.state.lastEventCallCache.startDate === this.state.startDate && this.state.lastEventCallCache.endDate === this.state.endDate) {
176
167
  return;
177
168
  }
178
169
 
@@ -254,7 +245,6 @@ export default class DatePickerProvider extends React.PureComponent {
254
245
  value: _objectSpread(_objectSpread({
255
246
  translation: this.context.translation,
256
247
  setViews: this.setViews,
257
- setDate: this.setDate,
258
248
  updateState: this.updateState,
259
249
  getReturnObject: this.getReturnObject,
260
250
  callOnChangeHandler: this.callOnChangeHandler,
@@ -95,7 +95,7 @@ export interface GlobalStatusProps extends React.HTMLProps<HTMLElement> {
95
95
  state?: GlobalStatusState;
96
96
 
97
97
  /**
98
- * Set to `true` or `false` to manually make the global status visible. Defaults to `show`.
98
+ * Set to `true` or `false` to manually make the global status visible. Defaults to `true`.
99
99
  */
100
100
  show?: GlobalStatusShow;
101
101
 
@@ -13,12 +13,12 @@ import { format, cleanNumber, getCurrencySymbol, getDecimalSeparator, getThousan
13
13
  import Input, { inputPropTypes } from '../input/Input';
14
14
  import { warn, isTrue, registerElement, dispatchCustomElementEvent } from '../../shared/component-helper';
15
15
  import { IS_IE11 } from '../../shared/helpers';
16
- import _MaskedInput from 'react-text-mask';
16
+ import TextMask from 'react-text-mask';
17
17
  import Context from '../../shared/Context';
18
18
  import createNumberMask from './addons/createNumberMask';
19
19
  import classnames from 'classnames';
20
20
  import keycode from 'keycode';
21
- const MaskedInput = _MaskedInput.default || _MaskedInput;
21
+ const MaskedInput = TextMask.default || TextMask;
22
22
  export default class InputMasked extends React.PureComponent {
23
23
  static enableWebComponent() {
24
24
  registerElement(InputMasked === null || InputMasked === void 0 ? void 0 : InputMasked.tagName, InputMasked, InputMasked.defaultProps);
@@ -150,24 +150,17 @@ export default class InputMasked extends React.PureComponent {
150
150
  allowDecimal: ((_number_mask = number_mask) === null || _number_mask === void 0 ? void 0 : _number_mask.decimalLimit) > 0,
151
151
  decimalSymbol: ','
152
152
  }, (_this$context5 = this.context) === null || _this$context5 === void 0 ? void 0 : (_this$context5$InputM = _this$context5.InputMasked) === null || _this$context5$InputM === void 0 ? void 0 : _this$context5$InputM.number_mask), number_mask);
153
- props.align = props.align || 'right';
154
153
  } else if (currency_mask) {
155
154
  var _this$context6, _this$context6$InputM;
156
155
 
157
156
  show_mask = true;
158
157
  placeholder_char = null;
159
- props.align = props.align || 'right';
160
158
  maskParams = _objectSpread(_objectSpread({
161
159
  allowDecimal: true,
162
160
  decimalSymbol: ','
163
161
  }, (_this$context6 = this.context) === null || _this$context6 === void 0 ? void 0 : (_this$context6$InputM = _this$context6.InputMasked) === null || _this$context6$InputM === void 0 ? void 0 : _this$context6$InputM.currency_mask), currency_mask);
164
162
  const fix = typeof currency_mask === 'string' ? currency_mask : typeof currency_mask.currency === 'string' ? currency_mask.currency : 'kr';
165
-
166
- if (props.align === 'left') {
167
- maskParams.prefix = `${fix} `;
168
- } else {
169
- maskParams.suffix = ` ${fix}`;
170
- }
163
+ maskParams.suffix = ` ${fix}`;
171
164
  }
172
165
 
173
166
  if (maskParams) {
@@ -240,21 +233,21 @@ export default class InputMasked extends React.PureComponent {
240
233
  };
241
234
 
242
235
  props.onMouseUp = event => {
243
- fixPositionIssue(event.target, props);
236
+ correctPositionSelection(event, maskParams);
244
237
  callEvent({
245
238
  event
246
239
  }, 'on_mouse_up');
247
240
  };
248
241
 
249
242
  props.onTouchEnd = event => {
250
- fixPositionIssue(event.target, props);
243
+ correctPositionSelection(event, maskParams);
251
244
  callEvent({
252
245
  event
253
246
  }, 'on_touch_end');
254
247
  };
255
248
 
256
249
  props.on_focus = params => {
257
- fixPositionIssue(params.event.target, props);
250
+ correctPositionSelection(params.event, maskParams);
258
251
  callEvent(params, 'on_focus');
259
252
  };
260
253
 
@@ -337,26 +330,29 @@ process.env.NODE_ENV !== "production" ? InputMasked.propTypes = _objectSpread({
337
330
  on_submit_focus: PropTypes.func,
338
331
  on_submit_blur: PropTypes.func
339
332
  }, inputPropTypes) : void 0;
340
- export const fixPositionIssue = (elem, {
341
- align = 'right'
342
- } = {}) => {
333
+ export const correctPositionSelection = (event, maskParams) => {
343
334
  clearTimeout(_selectionTimeout);
344
335
  _selectionTimeout = setTimeout(() => {
345
- if (cleanNumber(elem.value).length > 0) {
346
- return;
347
- }
348
-
349
336
  try {
350
- const end = elem.selectionEnd;
337
+ const fix = (maskParams === null || maskParams === void 0 ? void 0 : maskParams.suffix) || (maskParams === null || maskParams === void 0 ? void 0 : maskParams.prefix);
351
338
 
352
- if (elem.selectionStart === end && end === elem.value.length) {
353
- let pos = 0;
339
+ if (fix) {
340
+ const elem = event.target;
341
+ const start = elem.selectionStart;
342
+ const fixStart = elem.value.indexOf(fix);
343
+ const fixEnd = fixStart + fix.length;
354
344
 
355
- if (align === 'left') {
356
- pos = end - 1;
357
- }
345
+ if (start >= fixStart && start <= fixEnd) {
346
+ let pos = 0;
347
+
348
+ if (fixStart === 1) {
349
+ pos = fixStart - 1;
350
+ } else {
351
+ pos = fixStart;
352
+ }
358
353
 
359
- elem.setSelectionRange(pos, pos);
354
+ elem.setSelectionRange(pos, pos);
355
+ }
360
356
  }
361
357
  } catch (e) {
362
358
  warn(e);
@@ -2,7 +2,7 @@ import _extends from "@babel/runtime/helpers/esm/extends";
2
2
  import _objectWithoutProperties from "@babel/runtime/helpers/esm/objectWithoutProperties";
3
3
  import _defineProperty from "@babel/runtime/helpers/esm/defineProperty";
4
4
  const _excluded = ["triggeredBy"],
5
- _excluded2 = ["mode", "hide", "title", "labelled_by", "header_content", "modal_content", "bar_content", "close_title", "dialog_title", "hide_close_button", "close_button_attributes", "spacing", "prevent_close", "open_delay", "prevent_core_style", "animation_duration", "no_animation", "no_animation_on_mobile", "min_width", "max_width", "fullscreen", "align_content", "container_placement", "closeModal", "className", "class", "content_class", "overlay_class", "content_id", "toggleOpenClose", "children"];
5
+ _excluded2 = ["mode", "hide", "title", "labelled_by", "header_content", "modal_content", "bar_content", "id", "close_title", "dialog_title", "hide_close_button", "close_button_attributes", "spacing", "prevent_close", "open_delay", "prevent_core_style", "animation_duration", "no_animation", "no_animation_on_mobile", "min_width", "max_width", "fullscreen", "align_content", "container_placement", "closeModal", "className", "class", "content_class", "overlay_class", "content_id", "toggleOpenClose", "children"];
6
6
 
7
7
  function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) { symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); } keys.push.apply(keys, symbols); } return keys; }
8
8
 
@@ -270,6 +270,7 @@ export default class ModalContent extends React.PureComponent {
270
270
  header_content,
271
271
  modal_content,
272
272
  bar_content,
273
+ id: _id,
273
274
  close_title,
274
275
  dialog_title,
275
276
  hide_close_button,
@@ -310,9 +311,10 @@ export default class ModalContent extends React.PureComponent {
310
311
  minWidth = 0;
311
312
  }
312
313
 
314
+ const useDialogRole = !(IS_MAC || IS_SAFARI || IS_IOS);
313
315
  const contentParams = {
314
- role: IS_MAC || IS_SAFARI || IS_IOS ? undefined : 'dialog',
315
- 'aria-modal': 'true',
316
+ role: useDialogRole ? 'dialog' : 'region',
317
+ 'aria-modal': useDialogRole ? 'true' : undefined,
316
318
  'aria-labelledby': combineLabelledBy(this.props, title ? id + '-title' : null, labelled_by),
317
319
  'aria-describedby': combineDescribedBy(this.props, id + '-content'),
318
320
  'aria-label': !title && !labelled_by ? this.props.dialog_title : undefined,
@@ -127,6 +127,10 @@ export default class DrawerListProvider extends React.PureComponent {
127
127
  }
128
128
  }
129
129
 
130
+ if (isTrue(this.props.no_animation)) {
131
+ scrollTo = false;
132
+ }
133
+
130
134
  this.scrollToItem(active_item, {
131
135
  scrollTo
132
136
  });
@@ -480,7 +484,9 @@ export default class DrawerListProvider extends React.PureComponent {
480
484
  attributes: this.attributes,
481
485
  ulElement: this._refUl.current
482
486
  });
483
- this.setActiveItemAndScrollToIt(parseFloat(active_item) > -1 ? active_item : -1);
487
+ this.setActiveItemAndScrollToIt(parseFloat(active_item) > -1 ? active_item : -1, {
488
+ scrollTo: false
489
+ });
484
490
  };
485
491
 
486
492
  if (DrawerListProvider.isOpen && !isTrue(this.props.no_animation)) {
@@ -2068,6 +2068,10 @@ html:not([data-whatintent='touch']) .dnb-accordion__variant--outlined.dnb-accord
2068
2068
  color: #fff;
2069
2069
  color: var(--color-white); }
2070
2070
 
2071
+ .dnb-autocomplete__root .dnb-drawer-list__option--selected .dnb-anchor {
2072
+ color: #fff;
2073
+ color: var(--color-white); }
2074
+
2071
2075
  /*
2072
2076
  * Button theme
2073
2077
  *
@@ -2659,16 +2663,16 @@ html:not([data-whatintent='touch']) .dnb-accordion__variant--outlined.dnb-accord
2659
2663
  color: var(--color-ocean-green);
2660
2664
  background-color: #fdbb31;
2661
2665
  background-color: var(--color-accent-yellow);
2662
- --border-color: var(--color-emerald-green);
2666
+ --border-color: var(--color-ocean-green);
2663
2667
  -webkit-box-shadow: 0 0 0 0.125rem var(--border-color);
2664
2668
  box-shadow: 0 0 0 0.125rem var(--border-color);
2665
2669
  border-color: transparent; }
2666
2670
  @media screen and (-ms-high-contrast: none) {
2667
2671
  html:not([data-whatintent='touch']) .dnb-button--signal:hover:not([disabled]) {
2668
- -webkit-box-shadow: 0 0 0 0.125rem #14555a;
2669
- box-shadow: 0 0 0 0.125rem #14555a;
2670
- -webkit-box-shadow: 0 0 0 0.125rem var(--color-emerald-green);
2671
- box-shadow: 0 0 0 0.125rem var(--color-emerald-green); } }
2672
+ -webkit-box-shadow: 0 0 0 0.125rem #00343e;
2673
+ box-shadow: 0 0 0 0.125rem #00343e;
2674
+ -webkit-box-shadow: 0 0 0 0.125rem var(--color-ocean-green);
2675
+ box-shadow: 0 0 0 0.125rem var(--color-ocean-green); } }
2672
2676
  @media screen and (-ms-high-contrast: none) {
2673
2677
  html:not([data-whatintent='touch']) .dnb-button--signal:hover:not([disabled]) {
2674
2678
  opacity: 1; } }
@@ -2681,17 +2685,17 @@ html:not([data-whatintent='touch']) .dnb-accordion__variant--outlined.dnb-accord
2681
2685
  color: var(--color-ocean-green);
2682
2686
  background-color: #fdbb31;
2683
2687
  background-color: var(--color-accent-yellow);
2684
- --border-color: var(--color-emerald-green);
2688
+ --border-color: var(--color-ocean-green);
2685
2689
  -webkit-box-shadow: 0 0 0 0.125rem var(--border-color);
2686
2690
  box-shadow: 0 0 0 0.125rem var(--border-color);
2687
2691
  border-color: transparent; }
2688
2692
  @media screen and (-ms-high-contrast: none) {
2689
2693
  html[data-whatintent='touch'] .dnb-button--signal:active:not([disabled]),
2690
2694
  html:not([data-whatintent='touch']) html[data-whatintent='touch'] .dnb-button--signal:active:not([disabled]) {
2691
- -webkit-box-shadow: 0 0 0 0.125rem #14555a;
2692
- box-shadow: 0 0 0 0.125rem #14555a;
2693
- -webkit-box-shadow: 0 0 0 0.125rem var(--color-emerald-green);
2694
- box-shadow: 0 0 0 0.125rem var(--color-emerald-green); } }
2695
+ -webkit-box-shadow: 0 0 0 0.125rem #00343e;
2696
+ box-shadow: 0 0 0 0.125rem #00343e;
2697
+ -webkit-box-shadow: 0 0 0 0.125rem var(--color-ocean-green);
2698
+ box-shadow: 0 0 0 0.125rem var(--color-ocean-green); } }
2695
2699
  .dnb-button--signal:focus[disabled],
2696
2700
  html:not([data-whatintent='touch']) .dnb-button--signal:focus[disabled] {
2697
2701
  cursor: not-allowed; }
@@ -6017,16 +6021,16 @@ html:not([data-whatintent='touch']) .dnb-tabs__button:hover:not([disabled]) {
6017
6021
  color: var(--color-ocean-green);
6018
6022
  background-color: #fdbb31;
6019
6023
  background-color: var(--color-accent-yellow);
6020
- --border-color: var(--color-emerald-green);
6024
+ --border-color: var(--color-ocean-green);
6021
6025
  -webkit-box-shadow: 0 0 0 0.125rem var(--border-color);
6022
6026
  box-shadow: 0 0 0 0.125rem var(--border-color);
6023
6027
  border-color: transparent; }
6024
6028
  @media screen and (-ms-high-contrast: none) {
6025
6029
  html:not([data-whatintent='touch']) .dnb-button--signal:hover:not([disabled]) {
6026
- -webkit-box-shadow: 0 0 0 0.125rem #14555a;
6027
- box-shadow: 0 0 0 0.125rem #14555a;
6028
- -webkit-box-shadow: 0 0 0 0.125rem var(--color-emerald-green);
6029
- box-shadow: 0 0 0 0.125rem var(--color-emerald-green); } }
6030
+ -webkit-box-shadow: 0 0 0 0.125rem #00343e;
6031
+ box-shadow: 0 0 0 0.125rem #00343e;
6032
+ -webkit-box-shadow: 0 0 0 0.125rem var(--color-ocean-green);
6033
+ box-shadow: 0 0 0 0.125rem var(--color-ocean-green); } }
6030
6034
  @media screen and (-ms-high-contrast: none) {
6031
6035
  html:not([data-whatintent='touch']) .dnb-button--signal:hover:not([disabled]) {
6032
6036
  opacity: 1; } }
@@ -6039,17 +6043,17 @@ html:not([data-whatintent='touch']) .dnb-tabs__button:hover:not([disabled]) {
6039
6043
  color: var(--color-ocean-green);
6040
6044
  background-color: #fdbb31;
6041
6045
  background-color: var(--color-accent-yellow);
6042
- --border-color: var(--color-emerald-green);
6046
+ --border-color: var(--color-ocean-green);
6043
6047
  -webkit-box-shadow: 0 0 0 0.125rem var(--border-color);
6044
6048
  box-shadow: 0 0 0 0.125rem var(--border-color);
6045
6049
  border-color: transparent; }
6046
6050
  @media screen and (-ms-high-contrast: none) {
6047
6051
  html[data-whatintent='touch'] .dnb-button--signal:active:not([disabled]),
6048
6052
  html:not([data-whatintent='touch']) html[data-whatintent='touch'] .dnb-button--signal:active:not([disabled]) {
6049
- -webkit-box-shadow: 0 0 0 0.125rem #14555a;
6050
- box-shadow: 0 0 0 0.125rem #14555a;
6051
- -webkit-box-shadow: 0 0 0 0.125rem var(--color-emerald-green);
6052
- box-shadow: 0 0 0 0.125rem var(--color-emerald-green); } }
6053
+ -webkit-box-shadow: 0 0 0 0.125rem #00343e;
6054
+ box-shadow: 0 0 0 0.125rem #00343e;
6055
+ -webkit-box-shadow: 0 0 0 0.125rem var(--color-ocean-green);
6056
+ box-shadow: 0 0 0 0.125rem var(--color-ocean-green); } }
6053
6057
  .dnb-button--signal:focus[disabled],
6054
6058
  html:not([data-whatintent='touch']) .dnb-button--signal:focus[disabled] {
6055
6059
  cursor: not-allowed; }