@dnb/eufemia 9.18.0 → 9.19.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.
- package/CHANGELOG.md +34 -0
- package/cjs/components/Avatar.d.ts +14 -0
- package/cjs/components/Avatar.js +52 -0
- package/cjs/components/InfoCard.d.ts +14 -0
- package/cjs/components/InfoCard.js +52 -0
- package/cjs/components/Timeline.d.ts +14 -0
- package/cjs/components/Timeline.js +52 -0
- package/cjs/components/autocomplete/Autocomplete.d.ts +2 -2
- package/cjs/components/avatar/Avatar.js +149 -0
- package/cjs/components/avatar/AvatarGroup.js +131 -0
- package/cjs/components/avatar/index.d.ts +8 -0
- package/cjs/components/avatar/index.js +52 -0
- package/cjs/components/avatar/style/_avatar.scss +145 -0
- package/cjs/components/avatar/style/dnb-avatar.css +218 -0
- package/cjs/components/avatar/style/dnb-avatar.min.css +1 -0
- package/cjs/components/avatar/style/dnb-avatar.scss +12 -0
- package/cjs/components/avatar/style/index.d.ts +6 -0
- package/cjs/components/avatar/style/index.js +3 -0
- package/cjs/components/avatar/style/themes/dnb-avatar-theme-ui.css +36 -0
- package/cjs/components/avatar/style/themes/dnb-avatar-theme-ui.min.css +1 -0
- package/cjs/components/avatar/style/themes/dnb-avatar-theme-ui.scss +29 -0
- package/cjs/components/avatar/style/themes/ui.js +3 -0
- package/cjs/components/avatar/style.js +3 -0
- package/cjs/components/breadcrumb/BreadcrumbItem.js +3 -3
- package/cjs/components/button/Button.d.ts +1 -1
- package/cjs/components/button/Button.js +1 -1
- package/cjs/components/button/style/themes/dnb-button-theme-ui.scss +3 -0
- package/cjs/components/date-picker/DatePicker.js +4 -2
- package/cjs/components/date-picker/DatePickerFooter.d.ts +1 -0
- package/cjs/components/date-picker/DatePickerFooter.js +10 -6
- package/cjs/components/dropdown/Dropdown.d.ts +4 -3
- package/cjs/components/form-label/FormLabel.d.ts +1 -1
- package/cjs/components/heading/Heading.d.ts +2 -2
- package/cjs/components/heading/HeadingProvider.d.ts +2 -2
- package/cjs/components/help-button/HelpButton.d.ts +1 -1
- package/cjs/components/help-button/HelpButtonInstance.d.ts +3 -2
- package/cjs/components/icon/Icon.d.ts +1 -1
- package/cjs/components/icon-primary/IconPrimary.d.ts +1 -1
- package/cjs/components/index.d.ts +6 -0
- package/cjs/components/index.js +24 -0
- package/cjs/components/info-card/InfoCard.js +180 -0
- package/cjs/components/info-card/index.d.ts +8 -0
- package/cjs/components/info-card/index.js +52 -0
- package/cjs/components/info-card/style/_info-card.scss +52 -0
- package/cjs/components/info-card/style/dnb-info-card.css +135 -0
- package/cjs/components/info-card/style/dnb-info-card.min.css +1 -0
- package/cjs/components/info-card/style/dnb-info-card.scss +12 -0
- package/cjs/components/info-card/style/index.d.ts +6 -0
- package/cjs/components/info-card/style/index.js +3 -0
- package/cjs/components/info-card/style.js +3 -0
- package/cjs/components/input/Input.d.ts +2 -1
- package/cjs/components/lib.js +27 -0
- package/cjs/components/number-format/NumberFormat.d.ts +2 -2
- package/cjs/components/pagination/Pagination.js +11 -1
- package/cjs/components/radio/Radio.d.ts +1 -1
- package/cjs/components/radio/RadioGroup.d.ts +1 -1
- package/cjs/components/slider/Slider.d.ts +1 -1
- package/cjs/components/step-indicator/StepIndicator.d.ts +3 -3
- package/cjs/components/step-indicator/StepIndicatorContext.d.ts +1 -1
- package/cjs/components/step-indicator/StepIndicatorItem.d.ts +1 -1
- package/cjs/components/step-indicator/StepIndicatorSidebar.d.ts +3 -3
- package/cjs/components/step-indicator/StepIndicatorTriggerButton.d.ts +1 -1
- package/cjs/components/switch/Switch.d.ts +1 -1
- package/cjs/components/tabs/Tabs.d.ts +4 -4
- package/cjs/components/tabs/TabsContentWrapper.d.ts +1 -1
- package/cjs/components/tabs/TabsCustomContent.d.ts +1 -1
- package/cjs/components/tag/Tag.js +85 -25
- package/cjs/components/tag/TagContext.js +14 -0
- package/cjs/components/tag/TagGroup.js +123 -0
- package/cjs/components/tag/style/_tag.scss +80 -16
- package/cjs/components/tag/style/dnb-tag.css +849 -33
- package/cjs/components/tag/style/dnb-tag.min.css +1 -1
- package/cjs/components/tag/style/dnb-tag.scss +3 -0
- package/cjs/components/tag/style/themes/_tag-mixins.scss +18 -0
- package/cjs/components/timeline/Timeline.js +129 -0
- package/cjs/components/timeline/TimelineItem.js +149 -0
- package/cjs/components/timeline/index.d.ts +8 -0
- package/cjs/components/timeline/index.js +52 -0
- package/cjs/components/timeline/style/_timeline.scss +42 -0
- package/cjs/components/timeline/style/dnb-timeline.css +307 -0
- package/cjs/components/timeline/style/dnb-timeline.min.css +1 -0
- package/cjs/components/timeline/style/dnb-timeline.scss +12 -0
- package/cjs/components/timeline/style/index.d.ts +6 -0
- package/cjs/components/timeline/style/index.js +3 -0
- package/cjs/components/timeline/style/themes/dnb-timeline-theme-ui.css +185 -0
- package/cjs/components/timeline/style/themes/dnb-timeline-theme-ui.min.css +1 -0
- package/cjs/components/timeline/style/themes/dnb-timeline-theme-ui.scss +105 -0
- package/cjs/components/timeline/style/themes/ui.js +3 -0
- package/cjs/components/timeline/style.js +3 -0
- package/cjs/components/toggle-button/ToggleButton.d.ts +2 -2
- package/cjs/components/toggle-button/ToggleButtonGroup.d.ts +1 -1
- package/cjs/elements/Img.d.ts +2 -2
- package/cjs/extensions/payment-card/PaymentCard.d.ts +1 -1
- package/cjs/extensions/payment-card/style/_payment-card.scss +0 -1
- package/cjs/extensions/payment-card/style/dnb-payment-card.css +0 -1
- package/cjs/extensions/payment-card/style/dnb-payment-card.min.css +1 -1
- package/cjs/fragments/drawer-list/DrawerListProvider.js +1 -0
- package/cjs/index.d.ts +6 -0
- package/cjs/index.js +24 -0
- package/cjs/shared/Context.js +10 -4
- package/cjs/shared/locales/en-GB.js +5 -0
- package/cjs/shared/locales/nb-NO.js +5 -0
- package/cjs/style/dnb-ui-components.css +710 -34
- package/cjs/style/dnb-ui-components.min.css +3 -3
- package/cjs/style/dnb-ui-components.scss +3 -0
- package/cjs/style/dnb-ui-elements.css +3 -0
- package/cjs/style/dnb-ui-elements.min.css +1 -1
- package/cjs/style/dnb-ui-extensions.css +0 -1
- package/cjs/style/dnb-ui-extensions.min.css +1 -1
- package/cjs/style/dnb-ui-tags.css +6 -0
- package/cjs/style/dnb-ui-tags.min.css +2 -2
- package/cjs/style/elements/code.scss +3 -0
- package/cjs/style/themes/theme-open-banking/dnb-theme-open-banking.css +226 -0
- package/cjs/style/themes/theme-open-banking/dnb-theme-open-banking.min.css +3 -3
- package/cjs/style/themes/theme-ui/dnb-theme-ui.css +226 -0
- package/cjs/style/themes/theme-ui/dnb-theme-ui.min.css +3 -3
- package/cjs/style/themes/theme-ui/dnb-theme-ui.scss +2 -0
- package/components/Avatar.d.ts +14 -0
- package/components/Avatar.js +3 -0
- package/components/InfoCard.d.ts +14 -0
- package/components/InfoCard.js +3 -0
- package/components/Timeline.d.ts +14 -0
- package/components/Timeline.js +3 -0
- package/components/autocomplete/Autocomplete.d.ts +2 -2
- package/components/avatar/Avatar.js +89 -0
- package/components/avatar/Avatar.tsx +163 -0
- package/components/avatar/AvatarGroup.js +94 -0
- package/components/avatar/AvatarGroup.tsx +167 -0
- package/components/avatar/index.d.ts +8 -0
- package/components/avatar/index.js +3 -0
- package/components/avatar/style/_avatar.scss +145 -0
- package/components/avatar/style/dnb-avatar.css +218 -0
- package/components/avatar/style/dnb-avatar.min.css +1 -0
- package/components/avatar/style/dnb-avatar.scss +12 -0
- package/components/avatar/style/index.d.ts +6 -0
- package/components/avatar/style/index.js +1 -0
- package/components/avatar/style/themes/dnb-avatar-theme-ui.css +36 -0
- package/components/avatar/style/themes/dnb-avatar-theme-ui.min.css +1 -0
- package/components/avatar/style/themes/dnb-avatar-theme-ui.scss +29 -0
- package/components/avatar/style/themes/ui.js +1 -0
- package/components/avatar/style.js +1 -0
- package/components/breadcrumb/BreadcrumbItem.js +3 -3
- package/components/breadcrumb/BreadcrumbItem.tsx +2 -2
- package/components/button/Button.js +1 -1
- package/components/button/style/themes/dnb-button-theme-ui.scss +3 -0
- package/components/date-picker/DatePicker.js +4 -2
- package/components/date-picker/DatePickerFooter.d.ts +1 -0
- package/components/date-picker/DatePickerFooter.js +10 -6
- package/components/dropdown/Dropdown.d.ts +4 -3
- package/components/form-label/FormLabel.d.ts +1 -1
- package/components/heading/Heading.d.ts +2 -2
- package/components/heading/HeadingProvider.d.ts +2 -2
- package/components/help-button/HelpButton.d.ts +1 -1
- package/components/help-button/HelpButtonInstance.d.ts +3 -2
- package/components/icon/Icon.d.ts +1 -1
- package/components/index.d.ts +6 -0
- package/components/index.js +4 -1
- package/components/info-card/InfoCard.js +140 -0
- package/components/info-card/InfoCard.tsx +249 -0
- package/components/info-card/index.d.ts +8 -0
- package/components/info-card/index.js +3 -0
- package/components/info-card/style/_info-card.scss +52 -0
- package/components/info-card/style/dnb-info-card.css +135 -0
- package/components/info-card/style/dnb-info-card.min.css +1 -0
- package/components/info-card/style/dnb-info-card.scss +12 -0
- package/components/info-card/style/index.d.ts +6 -0
- package/components/info-card/style/index.js +1 -0
- package/components/info-card/style.js +1 -0
- package/components/input/Input.d.ts +2 -1
- package/components/lib.js +7 -1
- package/components/number-format/NumberFormat.d.ts +2 -2
- package/components/pagination/Pagination.js +7 -0
- package/components/radio/Radio.d.ts +1 -1
- package/components/radio/RadioGroup.d.ts +1 -1
- package/components/slider/Slider.d.ts +1 -1
- package/components/step-indicator/StepIndicator.d.ts +3 -3
- package/components/step-indicator/StepIndicatorContext.d.ts +1 -1
- package/components/step-indicator/StepIndicatorItem.d.ts +1 -1
- package/components/step-indicator/StepIndicatorSidebar.d.ts +3 -3
- package/components/step-indicator/StepIndicatorTriggerButton.d.ts +1 -1
- package/components/switch/Switch.d.ts +1 -1
- package/components/tabs/Tabs.d.ts +4 -4
- package/components/tabs/TabsContentWrapper.d.ts +1 -1
- package/components/tabs/TabsCustomContent.d.ts +1 -1
- package/components/tag/Tag.js +84 -25
- package/components/tag/Tag.tsx +133 -34
- package/components/tag/TagContext.js +2 -0
- package/components/tag/TagContext.tsx +3 -0
- package/components/tag/TagGroup.js +60 -0
- package/components/tag/TagGroup.tsx +80 -0
- package/components/tag/style/_tag.scss +80 -16
- package/components/tag/style/dnb-tag.css +849 -33
- package/components/tag/style/dnb-tag.min.css +1 -1
- package/components/tag/style/dnb-tag.scss +3 -0
- package/components/tag/style/themes/_tag-mixins.scss +18 -0
- package/components/timeline/Timeline.js +57 -0
- package/components/timeline/Timeline.tsx +91 -0
- package/components/timeline/TimelineItem.js +112 -0
- package/components/timeline/TimelineItem.tsx +193 -0
- package/components/timeline/index.d.ts +8 -0
- package/components/timeline/index.js +3 -0
- package/components/timeline/style/_timeline.scss +42 -0
- package/components/timeline/style/dnb-timeline.css +307 -0
- package/components/timeline/style/dnb-timeline.min.css +1 -0
- package/components/timeline/style/dnb-timeline.scss +12 -0
- package/components/timeline/style/index.d.ts +6 -0
- package/components/timeline/style/index.js +1 -0
- package/components/timeline/style/themes/dnb-timeline-theme-ui.css +185 -0
- package/components/timeline/style/themes/dnb-timeline-theme-ui.min.css +1 -0
- package/components/timeline/style/themes/dnb-timeline-theme-ui.scss +105 -0
- package/components/timeline/style/themes/ui.js +1 -0
- package/components/timeline/style.js +1 -0
- package/components/toggle-button/ToggleButton.d.ts +2 -2
- package/components/toggle-button/ToggleButtonGroup.d.ts +1 -1
- package/elements/Img.d.ts +1 -1
- package/es/components/Avatar.d.ts +14 -0
- package/es/components/Avatar.js +3 -0
- package/es/components/InfoCard.d.ts +14 -0
- package/es/components/InfoCard.js +3 -0
- package/es/components/Timeline.d.ts +14 -0
- package/es/components/Timeline.js +3 -0
- package/es/components/autocomplete/Autocomplete.d.ts +2 -2
- package/es/components/avatar/Avatar.js +83 -0
- package/es/components/avatar/Avatar.tsx +163 -0
- package/es/components/avatar/AvatarGroup.js +89 -0
- package/es/components/avatar/AvatarGroup.tsx +167 -0
- package/es/components/avatar/index.d.ts +8 -0
- package/es/components/avatar/index.js +3 -0
- package/es/components/avatar/style/_avatar.scss +145 -0
- package/es/components/avatar/style/dnb-avatar.css +218 -0
- package/es/components/avatar/style/dnb-avatar.min.css +1 -0
- package/es/components/avatar/style/dnb-avatar.scss +12 -0
- package/es/components/avatar/style/index.d.ts +6 -0
- package/es/components/avatar/style/index.js +1 -0
- package/es/components/avatar/style/themes/dnb-avatar-theme-ui.css +36 -0
- package/es/components/avatar/style/themes/dnb-avatar-theme-ui.min.css +1 -0
- package/es/components/avatar/style/themes/dnb-avatar-theme-ui.scss +29 -0
- package/es/components/avatar/style/themes/ui.js +1 -0
- package/es/components/avatar/style.js +1 -0
- package/es/components/breadcrumb/BreadcrumbItem.js +3 -3
- package/es/components/breadcrumb/BreadcrumbItem.tsx +2 -2
- package/es/components/button/Button.d.ts +1 -1
- package/es/components/button/Button.js +1 -1
- package/es/components/button/style/themes/dnb-button-theme-ui.scss +3 -0
- package/es/components/date-picker/DatePicker.js +4 -2
- package/es/components/date-picker/DatePickerFooter.d.ts +1 -0
- package/es/components/date-picker/DatePickerFooter.js +9 -6
- package/es/components/dropdown/Dropdown.d.ts +4 -3
- package/es/components/form-label/FormLabel.d.ts +1 -1
- package/es/components/heading/Heading.d.ts +2 -2
- package/es/components/heading/HeadingProvider.d.ts +2 -2
- package/es/components/help-button/HelpButton.d.ts +1 -1
- package/es/components/help-button/HelpButtonInstance.d.ts +3 -2
- package/es/components/icon/Icon.d.ts +1 -1
- package/es/components/icon-primary/IconPrimary.d.ts +1 -1
- package/es/components/index.d.ts +6 -0
- package/es/components/index.js +4 -1
- package/es/components/info-card/InfoCard.js +135 -0
- package/es/components/info-card/InfoCard.tsx +249 -0
- package/es/components/info-card/index.d.ts +8 -0
- package/es/components/info-card/index.js +3 -0
- package/es/components/info-card/style/_info-card.scss +52 -0
- package/es/components/info-card/style/dnb-info-card.css +135 -0
- package/es/components/info-card/style/dnb-info-card.min.css +1 -0
- package/es/components/info-card/style/dnb-info-card.scss +12 -0
- package/es/components/info-card/style/index.d.ts +6 -0
- package/es/components/info-card/style/index.js +1 -0
- package/es/components/info-card/style.js +1 -0
- package/es/components/input/Input.d.ts +2 -1
- package/es/components/lib.js +7 -1
- package/es/components/number-format/NumberFormat.d.ts +2 -2
- package/es/components/pagination/Pagination.js +3 -0
- package/es/components/radio/Radio.d.ts +1 -1
- package/es/components/radio/RadioGroup.d.ts +1 -1
- package/es/components/slider/Slider.d.ts +1 -1
- package/es/components/step-indicator/StepIndicator.d.ts +3 -3
- package/es/components/step-indicator/StepIndicatorContext.d.ts +1 -1
- package/es/components/step-indicator/StepIndicatorItem.d.ts +1 -1
- package/es/components/step-indicator/StepIndicatorSidebar.d.ts +3 -3
- package/es/components/step-indicator/StepIndicatorTriggerButton.d.ts +1 -1
- package/es/components/switch/Switch.d.ts +1 -1
- package/es/components/tabs/Tabs.d.ts +4 -4
- package/es/components/tabs/TabsContentWrapper.d.ts +1 -1
- package/es/components/tabs/TabsCustomContent.d.ts +1 -1
- package/es/components/tag/Tag.js +83 -26
- package/es/components/tag/Tag.tsx +133 -34
- package/es/components/tag/TagContext.js +2 -0
- package/es/components/tag/TagContext.tsx +3 -0
- package/es/components/tag/TagGroup.js +53 -0
- package/es/components/tag/TagGroup.tsx +80 -0
- package/es/components/tag/style/_tag.scss +80 -16
- package/es/components/tag/style/dnb-tag.css +849 -33
- package/es/components/tag/style/dnb-tag.min.css +1 -1
- package/es/components/tag/style/dnb-tag.scss +3 -0
- package/es/components/tag/style/themes/_tag-mixins.scss +18 -0
- package/es/components/timeline/Timeline.js +48 -0
- package/es/components/timeline/Timeline.tsx +91 -0
- package/es/components/timeline/TimelineItem.js +111 -0
- package/es/components/timeline/TimelineItem.tsx +193 -0
- package/es/components/timeline/index.d.ts +8 -0
- package/es/components/timeline/index.js +3 -0
- package/es/components/timeline/style/_timeline.scss +42 -0
- package/es/components/timeline/style/dnb-timeline.css +307 -0
- package/es/components/timeline/style/dnb-timeline.min.css +1 -0
- package/es/components/timeline/style/dnb-timeline.scss +12 -0
- package/es/components/timeline/style/index.d.ts +6 -0
- package/es/components/timeline/style/index.js +1 -0
- package/es/components/timeline/style/themes/dnb-timeline-theme-ui.css +185 -0
- package/es/components/timeline/style/themes/dnb-timeline-theme-ui.min.css +1 -0
- package/es/components/timeline/style/themes/dnb-timeline-theme-ui.scss +105 -0
- package/es/components/timeline/style/themes/ui.js +1 -0
- package/es/components/timeline/style.js +1 -0
- package/es/components/toggle-button/ToggleButton.d.ts +2 -2
- package/es/components/toggle-button/ToggleButtonGroup.d.ts +1 -1
- package/es/elements/Img.d.ts +2 -2
- package/es/extensions/payment-card/PaymentCard.d.ts +1 -1
- package/es/extensions/payment-card/style/_payment-card.scss +0 -1
- package/es/extensions/payment-card/style/dnb-payment-card.css +0 -1
- package/es/extensions/payment-card/style/dnb-payment-card.min.css +1 -1
- package/es/fragments/drawer-list/DrawerListProvider.js +1 -0
- package/es/index.d.ts +6 -0
- package/es/index.js +4 -1
- package/es/shared/Context.js +10 -4
- package/es/shared/locales/en-GB.js +5 -0
- package/es/shared/locales/nb-NO.js +5 -0
- package/es/style/dnb-ui-components.css +710 -34
- package/es/style/dnb-ui-components.min.css +3 -3
- package/es/style/dnb-ui-components.scss +3 -0
- package/es/style/dnb-ui-elements.css +3 -0
- package/es/style/dnb-ui-elements.min.css +1 -1
- package/es/style/dnb-ui-extensions.css +0 -1
- package/es/style/dnb-ui-extensions.min.css +1 -1
- package/es/style/dnb-ui-tags.css +6 -0
- package/es/style/dnb-ui-tags.min.css +2 -2
- package/es/style/elements/code.scss +3 -0
- package/es/style/themes/theme-open-banking/dnb-theme-open-banking.css +226 -0
- package/es/style/themes/theme-open-banking/dnb-theme-open-banking.min.css +3 -3
- package/es/style/themes/theme-ui/dnb-theme-ui.css +226 -0
- package/es/style/themes/theme-ui/dnb-theme-ui.min.css +3 -3
- package/es/style/themes/theme-ui/dnb-theme-ui.scss +2 -0
- package/esm/components/Avatar.d.ts +14 -0
- package/esm/components/Avatar.js +3 -0
- package/esm/components/InfoCard.d.ts +14 -0
- package/esm/components/InfoCard.js +3 -0
- package/esm/components/Timeline.d.ts +14 -0
- package/esm/components/Timeline.js +3 -0
- package/esm/components/autocomplete/Autocomplete.d.ts +2 -2
- package/esm/components/avatar/Avatar.js +89 -0
- package/esm/components/avatar/Avatar.tsx +163 -0
- package/esm/components/avatar/AvatarGroup.js +94 -0
- package/esm/components/avatar/AvatarGroup.tsx +167 -0
- package/esm/components/avatar/index.d.ts +8 -0
- package/esm/components/avatar/index.js +3 -0
- package/esm/components/avatar/style/_avatar.scss +145 -0
- package/esm/components/avatar/style/dnb-avatar.css +218 -0
- package/esm/components/avatar/style/dnb-avatar.min.css +1 -0
- package/esm/components/avatar/style/dnb-avatar.scss +12 -0
- package/esm/components/avatar/style/index.d.ts +6 -0
- package/esm/components/avatar/style/index.js +1 -0
- package/esm/components/avatar/style/themes/dnb-avatar-theme-ui.css +36 -0
- package/esm/components/avatar/style/themes/dnb-avatar-theme-ui.min.css +1 -0
- package/esm/components/avatar/style/themes/dnb-avatar-theme-ui.scss +29 -0
- package/esm/components/avatar/style/themes/ui.js +1 -0
- package/esm/components/avatar/style.js +1 -0
- package/esm/components/breadcrumb/BreadcrumbItem.js +3 -3
- package/esm/components/breadcrumb/BreadcrumbItem.tsx +2 -2
- package/esm/components/button/Button.js +1 -1
- package/esm/components/button/style/themes/dnb-button-theme-ui.scss +3 -0
- package/esm/components/date-picker/DatePicker.js +4 -2
- package/esm/components/date-picker/DatePickerFooter.d.ts +1 -0
- package/esm/components/date-picker/DatePickerFooter.js +10 -6
- package/esm/components/dropdown/Dropdown.d.ts +4 -3
- package/esm/components/form-label/FormLabel.d.ts +1 -1
- package/esm/components/heading/Heading.d.ts +2 -2
- package/esm/components/heading/HeadingProvider.d.ts +2 -2
- package/esm/components/help-button/HelpButton.d.ts +1 -1
- package/esm/components/help-button/HelpButtonInstance.d.ts +3 -2
- package/esm/components/icon/Icon.d.ts +1 -1
- package/esm/components/index.d.ts +6 -0
- package/esm/components/index.js +4 -1
- package/esm/components/info-card/InfoCard.js +140 -0
- package/esm/components/info-card/InfoCard.tsx +249 -0
- package/esm/components/info-card/index.d.ts +8 -0
- package/esm/components/info-card/index.js +3 -0
- package/esm/components/info-card/style/_info-card.scss +52 -0
- package/esm/components/info-card/style/dnb-info-card.css +135 -0
- package/esm/components/info-card/style/dnb-info-card.min.css +1 -0
- package/esm/components/info-card/style/dnb-info-card.scss +12 -0
- package/esm/components/info-card/style/index.d.ts +6 -0
- package/esm/components/info-card/style/index.js +1 -0
- package/esm/components/info-card/style.js +1 -0
- package/esm/components/input/Input.d.ts +2 -1
- package/esm/components/lib.js +7 -1
- package/esm/components/number-format/NumberFormat.d.ts +2 -2
- package/esm/components/pagination/Pagination.js +7 -0
- package/esm/components/radio/Radio.d.ts +1 -1
- package/esm/components/radio/RadioGroup.d.ts +1 -1
- package/esm/components/slider/Slider.d.ts +1 -1
- package/esm/components/step-indicator/StepIndicator.d.ts +3 -3
- package/esm/components/step-indicator/StepIndicatorContext.d.ts +1 -1
- package/esm/components/step-indicator/StepIndicatorItem.d.ts +1 -1
- package/esm/components/step-indicator/StepIndicatorSidebar.d.ts +3 -3
- package/esm/components/step-indicator/StepIndicatorTriggerButton.d.ts +1 -1
- package/esm/components/switch/Switch.d.ts +1 -1
- package/esm/components/tabs/Tabs.d.ts +4 -4
- package/esm/components/tabs/TabsContentWrapper.d.ts +1 -1
- package/esm/components/tabs/TabsCustomContent.d.ts +1 -1
- package/esm/components/tag/Tag.js +84 -25
- package/esm/components/tag/Tag.tsx +133 -34
- package/esm/components/tag/TagContext.js +2 -0
- package/esm/components/tag/TagContext.tsx +3 -0
- package/esm/components/tag/TagGroup.js +60 -0
- package/esm/components/tag/TagGroup.tsx +80 -0
- package/esm/components/tag/style/_tag.scss +80 -16
- package/esm/components/tag/style/dnb-tag.css +849 -33
- package/esm/components/tag/style/dnb-tag.min.css +1 -1
- package/esm/components/tag/style/dnb-tag.scss +3 -0
- package/esm/components/tag/style/themes/_tag-mixins.scss +18 -0
- package/esm/components/timeline/Timeline.js +57 -0
- package/esm/components/timeline/Timeline.tsx +91 -0
- package/esm/components/timeline/TimelineItem.js +112 -0
- package/esm/components/timeline/TimelineItem.tsx +193 -0
- package/esm/components/timeline/index.d.ts +8 -0
- package/esm/components/timeline/index.js +3 -0
- package/esm/components/timeline/style/_timeline.scss +42 -0
- package/esm/components/timeline/style/dnb-timeline.css +307 -0
- package/esm/components/timeline/style/dnb-timeline.min.css +1 -0
- package/esm/components/timeline/style/dnb-timeline.scss +12 -0
- package/esm/components/timeline/style/index.d.ts +6 -0
- package/esm/components/timeline/style/index.js +1 -0
- package/esm/components/timeline/style/themes/dnb-timeline-theme-ui.css +185 -0
- package/esm/components/timeline/style/themes/dnb-timeline-theme-ui.min.css +1 -0
- package/esm/components/timeline/style/themes/dnb-timeline-theme-ui.scss +105 -0
- package/esm/components/timeline/style/themes/ui.js +1 -0
- package/esm/components/timeline/style.js +1 -0
- package/esm/components/toggle-button/ToggleButton.d.ts +2 -2
- package/esm/components/toggle-button/ToggleButtonGroup.d.ts +1 -1
- package/esm/dnb-ui-components.min.mjs +4 -4
- package/esm/dnb-ui-elements.min.mjs +1 -1
- package/esm/dnb-ui-extensions.min.mjs +3 -3
- package/esm/dnb-ui-lib.min.mjs +4 -4
- package/esm/dnb-ui-web-components.min.mjs +4 -4
- package/esm/elements/Img.d.ts +1 -1
- package/esm/extensions/payment-card/PaymentCard.d.ts +1 -1
- package/esm/extensions/payment-card/style/_payment-card.scss +0 -1
- package/esm/extensions/payment-card/style/dnb-payment-card.css +0 -1
- package/esm/extensions/payment-card/style/dnb-payment-card.min.css +1 -1
- package/esm/fragments/drawer-list/DrawerListProvider.js +1 -0
- package/esm/index.d.ts +6 -0
- package/esm/index.js +4 -1
- package/esm/shared/Context.js +10 -4
- package/esm/shared/locales/en-GB.js +5 -0
- package/esm/shared/locales/nb-NO.js +5 -0
- package/esm/style/dnb-ui-components.css +710 -34
- package/esm/style/dnb-ui-components.min.css +3 -3
- package/esm/style/dnb-ui-components.scss +3 -0
- package/esm/style/dnb-ui-elements.css +3 -0
- package/esm/style/dnb-ui-elements.min.css +1 -1
- package/esm/style/dnb-ui-extensions.css +0 -1
- package/esm/style/dnb-ui-extensions.min.css +1 -1
- package/esm/style/dnb-ui-tags.css +6 -0
- package/esm/style/dnb-ui-tags.min.css +2 -2
- package/esm/style/elements/code.scss +3 -0
- package/esm/style/themes/theme-open-banking/dnb-theme-open-banking.css +226 -0
- package/esm/style/themes/theme-open-banking/dnb-theme-open-banking.min.css +3 -3
- package/esm/style/themes/theme-ui/dnb-theme-ui.css +226 -0
- package/esm/style/themes/theme-ui/dnb-theme-ui.min.css +3 -3
- package/esm/style/themes/theme-ui/dnb-theme-ui.scss +2 -0
- package/extensions/payment-card/PaymentCard.d.ts +1 -1
- package/extensions/payment-card/style/_payment-card.scss +0 -1
- package/extensions/payment-card/style/dnb-payment-card.css +0 -1
- package/extensions/payment-card/style/dnb-payment-card.min.css +1 -1
- package/fragments/drawer-list/DrawerListProvider.js +1 -0
- package/index.d.ts +6 -0
- package/index.js +4 -1
- package/package.json +2 -3
- package/shared/Context.js +10 -4
- package/shared/locales/en-GB.js +5 -0
- package/shared/locales/nb-NO.js +5 -0
- package/style/dnb-ui-components.css +710 -34
- package/style/dnb-ui-components.min.css +3 -3
- package/style/dnb-ui-components.scss +3 -0
- package/style/dnb-ui-elements.css +3 -0
- package/style/dnb-ui-elements.min.css +1 -1
- package/style/dnb-ui-extensions.css +0 -1
- package/style/dnb-ui-extensions.min.css +1 -1
- package/style/dnb-ui-tags.css +6 -0
- package/style/dnb-ui-tags.min.css +2 -2
- package/style/elements/code.scss +3 -0
- package/style/themes/theme-open-banking/dnb-theme-open-banking.css +226 -0
- package/style/themes/theme-open-banking/dnb-theme-open-banking.min.css +3 -3
- package/style/themes/theme-ui/dnb-theme-ui.css +226 -0
- package/style/themes/theme-ui/dnb-theme-ui.min.css +3 -3
- package/style/themes/theme-ui/dnb-theme-ui.scss +2 -0
- package/umd/dnb-ui-components.min.js +5 -5
- package/umd/dnb-ui-elements.min.js +3 -3
- package/umd/dnb-ui-extensions.min.js +3 -3
- package/umd/dnb-ui-lib.min.js +5 -5
- package/umd/dnb-ui-web-components.min.js +5 -5
|
@@ -58,7 +58,7 @@ export interface HeadingProps extends React.HTMLProps<HTMLElement> {
|
|
|
58
58
|
group?: string;
|
|
59
59
|
|
|
60
60
|
/**
|
|
61
|
-
*
|
|
61
|
+
* <em>(required)</em> a heading, can be text or React.Node.
|
|
62
62
|
*/
|
|
63
63
|
text?: HeadingText;
|
|
64
64
|
|
|
@@ -144,7 +144,7 @@ export interface HeadingProps extends React.HTMLProps<HTMLElement> {
|
|
|
144
144
|
className?: string;
|
|
145
145
|
|
|
146
146
|
/**
|
|
147
|
-
*
|
|
147
|
+
* <em>(required)</em> a heading, can be text or React.Node.
|
|
148
148
|
*/
|
|
149
149
|
children?: HeadingChildren;
|
|
150
150
|
}
|
|
@@ -40,12 +40,12 @@ export interface HeadingProviderProps
|
|
|
40
40
|
reset?: HeadingProviderReset;
|
|
41
41
|
|
|
42
42
|
/**
|
|
43
|
-
*
|
|
43
|
+
* <em>(required)</em> a heading, can be text or React.Node.
|
|
44
44
|
*/
|
|
45
45
|
text?: any;
|
|
46
46
|
|
|
47
47
|
/**
|
|
48
|
-
*
|
|
48
|
+
* <em>(required)</em> a heading, can be text or React.Node.
|
|
49
49
|
*/
|
|
50
50
|
children?: any;
|
|
51
51
|
}
|
|
@@ -82,7 +82,7 @@ export interface HelpButtonProps extends React.HTMLProps<HTMLElement> {
|
|
|
82
82
|
title?: React.ReactNode;
|
|
83
83
|
|
|
84
84
|
/**
|
|
85
|
-
* Defines the kind of button. Possible values are `primary`, `secondary`, `tertiary` and `signal`.
|
|
85
|
+
* Defines the kind of button. Possible values are `primary`, `secondary`, `tertiary` and `signal`. Defaults to `primary`.
|
|
86
86
|
*/
|
|
87
87
|
variant?: any;
|
|
88
88
|
|
|
@@ -3,7 +3,8 @@ export type HelpButtonInstanceVariant =
|
|
|
3
3
|
| 'primary'
|
|
4
4
|
| 'secondary'
|
|
5
5
|
| 'tertiary'
|
|
6
|
-
| 'signal'
|
|
6
|
+
| 'signal'
|
|
7
|
+
| 'unstyled';
|
|
7
8
|
export type HelpButtonInstanceIcon =
|
|
8
9
|
| string
|
|
9
10
|
| React.ReactNode
|
|
@@ -47,7 +48,7 @@ export interface HelpButtonInstanceProps
|
|
|
47
48
|
id?: string;
|
|
48
49
|
|
|
49
50
|
/**
|
|
50
|
-
* Defines the kind of button. Possible values are `primary`, `secondary`, `tertiary` and `signal`.
|
|
51
|
+
* Defines the kind of button. Possible values are `primary`, `secondary`, `tertiary` and `signal`. Defaults to `primary`.
|
|
51
52
|
*/
|
|
52
53
|
variant?: HelpButtonInstanceVariant;
|
|
53
54
|
|
|
@@ -46,7 +46,7 @@ export type IconChildren = React.ReactNode | ((...args: any[]) => any);
|
|
|
46
46
|
*/
|
|
47
47
|
export interface IconProps extends React.HTMLProps<HTMLElement> {
|
|
48
48
|
/**
|
|
49
|
-
*
|
|
49
|
+
* <em>(required)</em> a React SVG Component or the icon name (in case we use `IconPrimary` or `dnb-icon-primary`).
|
|
50
50
|
*/
|
|
51
51
|
icon?: IconIcon;
|
|
52
52
|
|
|
@@ -12,6 +12,7 @@
|
|
|
12
12
|
// import all the available components
|
|
13
13
|
import Accordion from './accordion/Accordion'
|
|
14
14
|
import Autocomplete from './autocomplete/Autocomplete'
|
|
15
|
+
import Avatar from './avatar/Avatar'
|
|
15
16
|
import Breadcrumb from './breadcrumb/Breadcrumb'
|
|
16
17
|
import Button from './button/Button'
|
|
17
18
|
import Checkbox from './checkbox/Checkbox'
|
|
@@ -27,6 +28,7 @@ import Heading from './heading/Heading'
|
|
|
27
28
|
import HelpButton from './help-button/HelpButton'
|
|
28
29
|
import Icon from './icon/Icon'
|
|
29
30
|
import IconPrimary from './icon-primary/IconPrimary'
|
|
31
|
+
import InfoCard from './info-card/InfoCard'
|
|
30
32
|
import Input from './input/Input'
|
|
31
33
|
import InputMasked from './input-masked/InputMasked'
|
|
32
34
|
import Logo from './logo/Logo'
|
|
@@ -44,6 +46,7 @@ import Switch from './switch/Switch'
|
|
|
44
46
|
import Tabs from './tabs/Tabs'
|
|
45
47
|
import Tag from './tag/Tag'
|
|
46
48
|
import Textarea from './textarea/Textarea'
|
|
49
|
+
import Timeline from './timeline/Timeline'
|
|
47
50
|
import ToggleButton from './toggle-button/ToggleButton'
|
|
48
51
|
import Tooltip from './tooltip/Tooltip'
|
|
49
52
|
|
|
@@ -51,6 +54,7 @@ import Tooltip from './tooltip/Tooltip'
|
|
|
51
54
|
export {
|
|
52
55
|
Accordion,
|
|
53
56
|
Autocomplete,
|
|
57
|
+
Avatar,
|
|
54
58
|
Breadcrumb,
|
|
55
59
|
Button,
|
|
56
60
|
Checkbox,
|
|
@@ -66,6 +70,7 @@ export {
|
|
|
66
70
|
HelpButton,
|
|
67
71
|
Icon,
|
|
68
72
|
IconPrimary,
|
|
73
|
+
InfoCard,
|
|
69
74
|
Input,
|
|
70
75
|
InputMasked,
|
|
71
76
|
Logo,
|
|
@@ -83,6 +88,7 @@ export {
|
|
|
83
88
|
Tabs,
|
|
84
89
|
Tag,
|
|
85
90
|
Textarea,
|
|
91
|
+
Timeline,
|
|
86
92
|
ToggleButton,
|
|
87
93
|
Tooltip,
|
|
88
94
|
}
|
package/esm/components/index.js
CHANGED
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
import Accordion from './accordion/Accordion';
|
|
2
2
|
import Autocomplete from './autocomplete/Autocomplete';
|
|
3
|
+
import Avatar from './avatar/Avatar';
|
|
3
4
|
import Breadcrumb from './breadcrumb/Breadcrumb';
|
|
4
5
|
import Button from './button/Button';
|
|
5
6
|
import Checkbox from './checkbox/Checkbox';
|
|
@@ -15,6 +16,7 @@ import Heading from './heading/Heading';
|
|
|
15
16
|
import HelpButton from './help-button/HelpButton';
|
|
16
17
|
import Icon from './icon/Icon';
|
|
17
18
|
import IconPrimary from './icon-primary/IconPrimary';
|
|
19
|
+
import InfoCard from './info-card/InfoCard';
|
|
18
20
|
import Input from './input/Input';
|
|
19
21
|
import InputMasked from './input-masked/InputMasked';
|
|
20
22
|
import Logo from './logo/Logo';
|
|
@@ -32,6 +34,7 @@ import Switch from './switch/Switch';
|
|
|
32
34
|
import Tabs from './tabs/Tabs';
|
|
33
35
|
import Tag from './tag/Tag';
|
|
34
36
|
import Textarea from './textarea/Textarea';
|
|
37
|
+
import Timeline from './timeline/Timeline';
|
|
35
38
|
import ToggleButton from './toggle-button/ToggleButton';
|
|
36
39
|
import Tooltip from './tooltip/Tooltip';
|
|
37
|
-
export { Accordion, Autocomplete, Breadcrumb, Button, Checkbox, DatePicker, Dropdown, FormLabel, FormRow, FormSet, FormStatus, GlobalError, GlobalStatus, Heading, HelpButton, Icon, IconPrimary, Input, InputMasked, Logo, Modal, NumberFormat, Pagination, ProgressIndicator, Radio, Section, Skeleton, Slider, Space, StepIndicator, Switch, Tabs, Tag, Textarea, ToggleButton, Tooltip };
|
|
40
|
+
export { Accordion, Autocomplete, Avatar, Breadcrumb, Button, Checkbox, DatePicker, Dropdown, FormLabel, FormRow, FormSet, FormStatus, GlobalError, GlobalStatus, Heading, HelpButton, Icon, IconPrimary, InfoCard, Input, InputMasked, Logo, Modal, NumberFormat, Pagination, ProgressIndicator, Radio, Section, Skeleton, Slider, Space, StepIndicator, Switch, Tabs, Tag, Textarea, Timeline, ToggleButton, Tooltip };
|
|
@@ -0,0 +1,140 @@
|
|
|
1
|
+
import "core-js/modules/es.object.keys.js";
|
|
2
|
+
import "core-js/modules/es.symbol.js";
|
|
3
|
+
import "core-js/modules/es.array.filter.js";
|
|
4
|
+
import "core-js/modules/es.object.to-string.js";
|
|
5
|
+
import "core-js/modules/es.object.get-own-property-descriptor.js";
|
|
6
|
+
import "core-js/modules/web.dom-collections.for-each.js";
|
|
7
|
+
import "core-js/modules/es.object.get-own-property-descriptors.js";
|
|
8
|
+
import _extends from "@babel/runtime/helpers/esm/extends";
|
|
9
|
+
import _defineProperty from "@babel/runtime/helpers/esm/defineProperty";
|
|
10
|
+
import _objectWithoutProperties from "@babel/runtime/helpers/esm/objectWithoutProperties";
|
|
11
|
+
var _excluded = ["alt", "centered", "title", "skeleton", "className", "icon", "src", "imgProps", "text", "onClose", "onAccept", "closeButtonText", "acceptButtonText", "closeButtonAttributes", "acceptButtonAttributes"];
|
|
12
|
+
|
|
13
|
+
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; }
|
|
14
|
+
|
|
15
|
+
function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys(Object(source), true).forEach(function (key) { _defineProperty(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }
|
|
16
|
+
|
|
17
|
+
import React from 'react';
|
|
18
|
+
import classnames from 'classnames';
|
|
19
|
+
import Button from '../button/Button';
|
|
20
|
+
import IconPrimary from '../icon-primary/IconPrimary';
|
|
21
|
+
import Img from '../../elements/Img';
|
|
22
|
+
import Div from '../../elements/Div';
|
|
23
|
+
import H3 from '../../elements/H3';
|
|
24
|
+
import P from '../../elements/P';
|
|
25
|
+
import { lightbulb_medium as LightbulbIcon } from '../../icons';
|
|
26
|
+
import { createSpacingClasses } from '../space/SpacingHelper';
|
|
27
|
+
import { createSkeletonClass } from '../skeleton/SkeletonHelper';
|
|
28
|
+
import Context from '../../shared/Context';
|
|
29
|
+
import { extendPropsWithContext } from '../../shared/component-helper';
|
|
30
|
+
export var defaultProps = {
|
|
31
|
+
alt: null,
|
|
32
|
+
centered: false,
|
|
33
|
+
className: null,
|
|
34
|
+
skeleton: false,
|
|
35
|
+
icon: LightbulbIcon,
|
|
36
|
+
imgProps: null,
|
|
37
|
+
src: null,
|
|
38
|
+
title: null,
|
|
39
|
+
onAccept: null,
|
|
40
|
+
onClose: null,
|
|
41
|
+
closeButtonText: null,
|
|
42
|
+
acceptButtonText: null,
|
|
43
|
+
closeButtonAttributes: null,
|
|
44
|
+
acceptButtonAttributes: null
|
|
45
|
+
};
|
|
46
|
+
|
|
47
|
+
function InfoCard(localProps) {
|
|
48
|
+
var _IconPrimary;
|
|
49
|
+
|
|
50
|
+
var context = React.useContext(Context);
|
|
51
|
+
|
|
52
|
+
var _extendPropsWithConte = extendPropsWithContext(_objectSpread(_objectSpread({}, defaultProps), localProps)),
|
|
53
|
+
alt = _extendPropsWithConte.alt,
|
|
54
|
+
centered = _extendPropsWithConte.centered,
|
|
55
|
+
title = _extendPropsWithConte.title,
|
|
56
|
+
skeleton = _extendPropsWithConte.skeleton,
|
|
57
|
+
className = _extendPropsWithConte.className,
|
|
58
|
+
icon = _extendPropsWithConte.icon,
|
|
59
|
+
src = _extendPropsWithConte.src,
|
|
60
|
+
imgProps = _extendPropsWithConte.imgProps,
|
|
61
|
+
text = _extendPropsWithConte.text,
|
|
62
|
+
onClose = _extendPropsWithConte.onClose,
|
|
63
|
+
onAccept = _extendPropsWithConte.onAccept,
|
|
64
|
+
closeButtonText = _extendPropsWithConte.closeButtonText,
|
|
65
|
+
acceptButtonText = _extendPropsWithConte.acceptButtonText,
|
|
66
|
+
closeButtonAttributes = _extendPropsWithConte.closeButtonAttributes,
|
|
67
|
+
acceptButtonAttributes = _extendPropsWithConte.acceptButtonAttributes,
|
|
68
|
+
props = _objectWithoutProperties(_extendPropsWithConte, _excluded);
|
|
69
|
+
|
|
70
|
+
var skeletonClasses = createSkeletonClass('shape', skeleton, context);
|
|
71
|
+
var spacingClasses = createSpacingClasses(props);
|
|
72
|
+
var closeButtonIsHidden = !onClose && !closeButtonText;
|
|
73
|
+
var acceptButtonIsHidden = !onAccept && !acceptButtonText;
|
|
74
|
+
return React.createElement(Div, _extends({
|
|
75
|
+
className: classnames('dnb-info-card', skeletonClasses, spacingClasses, className, centered && 'dnb-info-card--centered'),
|
|
76
|
+
"data-testid": "info-card"
|
|
77
|
+
}, props), React.createElement(Div, {
|
|
78
|
+
right: !centered && 'small',
|
|
79
|
+
bottom: centered && 'small'
|
|
80
|
+
}, getIllustration()), React.createElement("div", {
|
|
81
|
+
className: "dnb-info-card--content",
|
|
82
|
+
"data-testid": "info-card-content"
|
|
83
|
+
}, title && React.createElement(H3, {
|
|
84
|
+
size: "small",
|
|
85
|
+
"data-testid": "info-card-title",
|
|
86
|
+
bottom: "x-small",
|
|
87
|
+
top: "0"
|
|
88
|
+
}, title), React.createElement(P, {
|
|
89
|
+
size: "small",
|
|
90
|
+
"data-testid": "info-card-text",
|
|
91
|
+
bottom: "0"
|
|
92
|
+
}, text), getButtons()));
|
|
93
|
+
|
|
94
|
+
function getButtons() {
|
|
95
|
+
if (closeButtonIsHidden && acceptButtonIsHidden) return null;
|
|
96
|
+
return React.createElement(Div, {
|
|
97
|
+
top: centered ? 'medium' : 'small',
|
|
98
|
+
className: 'dnb-info-card--buttons' + (centered ? " dnb-info-card--buttons-centered" : "")
|
|
99
|
+
}, !acceptButtonIsHidden && React.createElement(Button, _extends({
|
|
100
|
+
type: "button",
|
|
101
|
+
"data-testid": "into-card-accept-button",
|
|
102
|
+
variant: "secondary",
|
|
103
|
+
right: !centered && 'small',
|
|
104
|
+
on_click: onAccept,
|
|
105
|
+
text: acceptButtonText
|
|
106
|
+
}, acceptButtonAttributes)), !closeButtonIsHidden && React.createElement(Button, _extends({
|
|
107
|
+
type: "button",
|
|
108
|
+
"data-testid": "into-card-close-button",
|
|
109
|
+
variant: "tertiary",
|
|
110
|
+
top: centered && 'small',
|
|
111
|
+
on_click: onClose,
|
|
112
|
+
icon: "close",
|
|
113
|
+
icon_position: "left",
|
|
114
|
+
text: closeButtonText
|
|
115
|
+
}, closeButtonAttributes)));
|
|
116
|
+
}
|
|
117
|
+
|
|
118
|
+
function getIllustration() {
|
|
119
|
+
if (src || imgProps) {
|
|
120
|
+
var imageProps = _objectSpread({
|
|
121
|
+
src: src,
|
|
122
|
+
alt: alt
|
|
123
|
+
}, imgProps);
|
|
124
|
+
|
|
125
|
+
return React.createElement(Img, _extends({
|
|
126
|
+
"data-testid": "info-card-image",
|
|
127
|
+
className: "dnb-info-card--image"
|
|
128
|
+
}, imageProps));
|
|
129
|
+
}
|
|
130
|
+
|
|
131
|
+
return _IconPrimary || (_IconPrimary = React.createElement(IconPrimary, {
|
|
132
|
+
size: "medium",
|
|
133
|
+
className: "dnb-info-card--icon",
|
|
134
|
+
icon: icon,
|
|
135
|
+
"data-testid": "info-card-icon"
|
|
136
|
+
}));
|
|
137
|
+
}
|
|
138
|
+
}
|
|
139
|
+
|
|
140
|
+
export default InfoCard;
|
|
@@ -0,0 +1,249 @@
|
|
|
1
|
+
import React from 'react'
|
|
2
|
+
import classnames from 'classnames'
|
|
3
|
+
|
|
4
|
+
// Components
|
|
5
|
+
import Button, { ButtonProps } from '../button/Button'
|
|
6
|
+
import IconPrimary, { IconPrimaryIcon } from '../icon-primary/IconPrimary'
|
|
7
|
+
import Img, { ImgProps } from '../../elements/Img'
|
|
8
|
+
import Div from '../../elements/Div'
|
|
9
|
+
import H3 from '../../elements/H3'
|
|
10
|
+
import P from '../../elements/P'
|
|
11
|
+
|
|
12
|
+
// Icons
|
|
13
|
+
import { lightbulb_medium as LightbulbIcon } from '../../icons'
|
|
14
|
+
|
|
15
|
+
// Shared
|
|
16
|
+
import { createSpacingClasses } from '../space/SpacingHelper'
|
|
17
|
+
import { createSkeletonClass } from '../skeleton/SkeletonHelper'
|
|
18
|
+
import Context from '../../shared/Context'
|
|
19
|
+
import { ISpacingProps, SkeletonTypes } from '../../shared/interfaces'
|
|
20
|
+
import { extendPropsWithContext } from '../../shared/component-helper'
|
|
21
|
+
|
|
22
|
+
export interface InfoCardProps {
|
|
23
|
+
/**
|
|
24
|
+
* Used in combination with `src` to provide an alt attribute for the `img` element.
|
|
25
|
+
* Default: null
|
|
26
|
+
*/
|
|
27
|
+
alt?: string
|
|
28
|
+
/**
|
|
29
|
+
* Aligns the content to center, rather than left
|
|
30
|
+
* Default: false
|
|
31
|
+
*/
|
|
32
|
+
centered?: boolean
|
|
33
|
+
/**
|
|
34
|
+
* Custom className on the component root
|
|
35
|
+
* Default: null
|
|
36
|
+
*/
|
|
37
|
+
className?: string
|
|
38
|
+
/**
|
|
39
|
+
* Replace the default icon with custom icon.
|
|
40
|
+
* Default: Lightbulb (icon)
|
|
41
|
+
*/
|
|
42
|
+
icon?: IconPrimaryIcon
|
|
43
|
+
/**
|
|
44
|
+
* Props applied to the `img` element if the component is used to display an image. Replace the 'icon'
|
|
45
|
+
* Default: null
|
|
46
|
+
*/
|
|
47
|
+
imgProps?: ImgProps
|
|
48
|
+
/**
|
|
49
|
+
* Skeleton should be applied when loading content
|
|
50
|
+
* Default: null
|
|
51
|
+
*/
|
|
52
|
+
skeleton?: SkeletonTypes
|
|
53
|
+
/**
|
|
54
|
+
* Specifies the path to the image
|
|
55
|
+
* Default: null
|
|
56
|
+
*/
|
|
57
|
+
src?: string
|
|
58
|
+
/**
|
|
59
|
+
* Image src, will replace the 'icon' with the image
|
|
60
|
+
* Default: null
|
|
61
|
+
*/
|
|
62
|
+
text: string
|
|
63
|
+
/**
|
|
64
|
+
* Component title
|
|
65
|
+
* Default: null
|
|
66
|
+
*/
|
|
67
|
+
title?: string
|
|
68
|
+
/**
|
|
69
|
+
* Is called when the close button is clicked
|
|
70
|
+
* Default: null
|
|
71
|
+
*/
|
|
72
|
+
onClose?: React.MouseEventHandler<HTMLButtonElement>
|
|
73
|
+
/**
|
|
74
|
+
* The text of the close button.
|
|
75
|
+
* Default: null
|
|
76
|
+
*/
|
|
77
|
+
closeButtonText?: string
|
|
78
|
+
/**
|
|
79
|
+
* Is called when the accept button is clicked
|
|
80
|
+
* Default: null
|
|
81
|
+
*/
|
|
82
|
+
onAccept?: React.MouseEventHandler<HTMLButtonElement>
|
|
83
|
+
/**
|
|
84
|
+
* The text of the accept button.
|
|
85
|
+
* Default: null
|
|
86
|
+
*/
|
|
87
|
+
acceptButtonText?: string
|
|
88
|
+
/**
|
|
89
|
+
* Additional attributes for the close button.
|
|
90
|
+
* Default: null
|
|
91
|
+
*/
|
|
92
|
+
closeButtonAttributes?: ButtonProps
|
|
93
|
+
/**
|
|
94
|
+
* Additional attributes for the accept button
|
|
95
|
+
* Default: null
|
|
96
|
+
*/
|
|
97
|
+
acceptButtonAttributes?: ButtonProps
|
|
98
|
+
}
|
|
99
|
+
|
|
100
|
+
export const defaultProps = {
|
|
101
|
+
alt: null,
|
|
102
|
+
centered: false,
|
|
103
|
+
className: null,
|
|
104
|
+
skeleton: false,
|
|
105
|
+
icon: LightbulbIcon,
|
|
106
|
+
imgProps: null,
|
|
107
|
+
src: null,
|
|
108
|
+
title: null,
|
|
109
|
+
onAccept: null,
|
|
110
|
+
onClose: null,
|
|
111
|
+
closeButtonText: null,
|
|
112
|
+
acceptButtonText: null,
|
|
113
|
+
closeButtonAttributes: null,
|
|
114
|
+
acceptButtonAttributes: null,
|
|
115
|
+
}
|
|
116
|
+
|
|
117
|
+
function InfoCard(localProps: InfoCardProps & ISpacingProps) {
|
|
118
|
+
// Every component should have a context
|
|
119
|
+
const context = React.useContext(Context)
|
|
120
|
+
// Extract additional props from global context
|
|
121
|
+
const {
|
|
122
|
+
alt,
|
|
123
|
+
centered,
|
|
124
|
+
title,
|
|
125
|
+
skeleton,
|
|
126
|
+
className,
|
|
127
|
+
icon,
|
|
128
|
+
src,
|
|
129
|
+
imgProps,
|
|
130
|
+
text,
|
|
131
|
+
onClose,
|
|
132
|
+
onAccept,
|
|
133
|
+
closeButtonText,
|
|
134
|
+
acceptButtonText,
|
|
135
|
+
closeButtonAttributes,
|
|
136
|
+
acceptButtonAttributes,
|
|
137
|
+
...props
|
|
138
|
+
} = extendPropsWithContext({
|
|
139
|
+
...defaultProps,
|
|
140
|
+
...localProps,
|
|
141
|
+
})
|
|
142
|
+
|
|
143
|
+
const skeletonClasses = createSkeletonClass('shape', skeleton, context)
|
|
144
|
+
const spacingClasses = createSpacingClasses(props)
|
|
145
|
+
|
|
146
|
+
const closeButtonIsHidden = !onClose && !closeButtonText
|
|
147
|
+
const acceptButtonIsHidden = !onAccept && !acceptButtonText
|
|
148
|
+
|
|
149
|
+
return (
|
|
150
|
+
<Div
|
|
151
|
+
className={classnames(
|
|
152
|
+
'dnb-info-card',
|
|
153
|
+
skeletonClasses,
|
|
154
|
+
spacingClasses,
|
|
155
|
+
centered && 'dnb-info-card--centered',
|
|
156
|
+
className
|
|
157
|
+
)}
|
|
158
|
+
data-testid="info-card"
|
|
159
|
+
{...props}
|
|
160
|
+
>
|
|
161
|
+
<Div right={!centered && 'small'} bottom={centered && 'small'}>
|
|
162
|
+
{getIllustration()}
|
|
163
|
+
</Div>
|
|
164
|
+
|
|
165
|
+
<div
|
|
166
|
+
className="dnb-info-card--content"
|
|
167
|
+
data-testid="info-card-content"
|
|
168
|
+
>
|
|
169
|
+
{title && (
|
|
170
|
+
<H3
|
|
171
|
+
size="small"
|
|
172
|
+
data-testid="info-card-title"
|
|
173
|
+
bottom="x-small"
|
|
174
|
+
top="0"
|
|
175
|
+
>
|
|
176
|
+
{title}
|
|
177
|
+
</H3>
|
|
178
|
+
)}
|
|
179
|
+
<P size="small" data-testid="info-card-text" bottom="0">
|
|
180
|
+
{text}
|
|
181
|
+
</P>
|
|
182
|
+
|
|
183
|
+
{getButtons()}
|
|
184
|
+
</div>
|
|
185
|
+
</Div>
|
|
186
|
+
)
|
|
187
|
+
|
|
188
|
+
function getButtons() {
|
|
189
|
+
if (closeButtonIsHidden && acceptButtonIsHidden) return null
|
|
190
|
+
|
|
191
|
+
return (
|
|
192
|
+
<Div
|
|
193
|
+
top={centered ? 'medium' : 'small'}
|
|
194
|
+
className={classnames(
|
|
195
|
+
'dnb-info-card--buttons',
|
|
196
|
+
centered && 'dnb-info-card--buttons-centered'
|
|
197
|
+
)}
|
|
198
|
+
>
|
|
199
|
+
{!acceptButtonIsHidden && (
|
|
200
|
+
<Button
|
|
201
|
+
type="button"
|
|
202
|
+
data-testid="into-card-accept-button"
|
|
203
|
+
variant="secondary"
|
|
204
|
+
right={!centered && 'small'}
|
|
205
|
+
on_click={onAccept}
|
|
206
|
+
text={acceptButtonText}
|
|
207
|
+
{...acceptButtonAttributes}
|
|
208
|
+
/>
|
|
209
|
+
)}
|
|
210
|
+
{!closeButtonIsHidden && (
|
|
211
|
+
<Button
|
|
212
|
+
type="button"
|
|
213
|
+
data-testid="into-card-close-button"
|
|
214
|
+
variant="tertiary"
|
|
215
|
+
top={centered && 'small'}
|
|
216
|
+
on_click={onClose}
|
|
217
|
+
icon="close"
|
|
218
|
+
icon_position="left"
|
|
219
|
+
text={closeButtonText}
|
|
220
|
+
{...closeButtonAttributes}
|
|
221
|
+
/>
|
|
222
|
+
)}
|
|
223
|
+
</Div>
|
|
224
|
+
)
|
|
225
|
+
}
|
|
226
|
+
|
|
227
|
+
function getIllustration() {
|
|
228
|
+
if (src || imgProps) {
|
|
229
|
+
const imageProps = { src, alt, ...imgProps }
|
|
230
|
+
return (
|
|
231
|
+
<Img
|
|
232
|
+
data-testid="info-card-image"
|
|
233
|
+
className="dnb-info-card--image"
|
|
234
|
+
{...imageProps}
|
|
235
|
+
/>
|
|
236
|
+
)
|
|
237
|
+
}
|
|
238
|
+
return (
|
|
239
|
+
<IconPrimary
|
|
240
|
+
size="medium"
|
|
241
|
+
className="dnb-info-card--icon"
|
|
242
|
+
icon={icon}
|
|
243
|
+
data-testid="info-card-icon"
|
|
244
|
+
/>
|
|
245
|
+
)
|
|
246
|
+
}
|
|
247
|
+
}
|
|
248
|
+
|
|
249
|
+
export default InfoCard
|
|
@@ -0,0 +1,52 @@
|
|
|
1
|
+
/*
|
|
2
|
+
* InfoCard component
|
|
3
|
+
*
|
|
4
|
+
*/
|
|
5
|
+
|
|
6
|
+
.dnb-info-card {
|
|
7
|
+
display: flex;
|
|
8
|
+
flex-direction: row;
|
|
9
|
+
|
|
10
|
+
background: white;
|
|
11
|
+
|
|
12
|
+
border: 1px solid var(--color-black-8);
|
|
13
|
+
border-radius: 0.25rem;
|
|
14
|
+
padding: 1rem;
|
|
15
|
+
|
|
16
|
+
@include defaultDropShadow();
|
|
17
|
+
|
|
18
|
+
&--centered {
|
|
19
|
+
flex-direction: column;
|
|
20
|
+
align-items: center;
|
|
21
|
+
text-align: center;
|
|
22
|
+
}
|
|
23
|
+
|
|
24
|
+
&--content {
|
|
25
|
+
flex-direction: column;
|
|
26
|
+
margin-top: 0.1875rem;
|
|
27
|
+
}
|
|
28
|
+
|
|
29
|
+
&--centered &--content {
|
|
30
|
+
flex-direction: column;
|
|
31
|
+
margin-top: 0;
|
|
32
|
+
}
|
|
33
|
+
|
|
34
|
+
&--icon {
|
|
35
|
+
color: var(--color-emerald-green);
|
|
36
|
+
}
|
|
37
|
+
|
|
38
|
+
&--image {
|
|
39
|
+
height: 4rem;
|
|
40
|
+
width: 4rem;
|
|
41
|
+
}
|
|
42
|
+
|
|
43
|
+
&--buttons {
|
|
44
|
+
display: flex;
|
|
45
|
+
flex-direction: row;
|
|
46
|
+
&-centered {
|
|
47
|
+
flex-direction: column;
|
|
48
|
+
align-items: center;
|
|
49
|
+
text-align: center;
|
|
50
|
+
}
|
|
51
|
+
}
|
|
52
|
+
}
|