@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
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* ATTENTION: This file is auto generated by using "prepareTemplates".
|
|
3
|
+
* Do not change the content!
|
|
4
|
+
*
|
|
5
|
+
*/
|
|
6
|
+
|
|
7
|
+
/**
|
|
8
|
+
* Library Index info-card to autogenerate all the components and extensions
|
|
9
|
+
* Used by "prepareInfoCards"
|
|
10
|
+
*/
|
|
11
|
+
|
|
12
|
+
import InfoCard from './info-card/InfoCard'
|
|
13
|
+
export * from './info-card/InfoCard'
|
|
14
|
+
export default InfoCard
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* ATTENTION: This file is auto generated by using "prepareTemplates".
|
|
3
|
+
* Do not change the content!
|
|
4
|
+
*
|
|
5
|
+
*/
|
|
6
|
+
|
|
7
|
+
/**
|
|
8
|
+
* Library Index timeline to autogenerate all the components and extensions
|
|
9
|
+
* Used by "prepareTimelines"
|
|
10
|
+
*/
|
|
11
|
+
|
|
12
|
+
import Timeline from './timeline/Timeline'
|
|
13
|
+
export * from './timeline/Timeline'
|
|
14
|
+
export default Timeline
|
|
@@ -440,7 +440,7 @@ export interface AutocompleteProps extends React.HTMLProps<HTMLElement> {
|
|
|
440
440
|
input_element?: AutocompleteInputElement;
|
|
441
441
|
|
|
442
442
|
/**
|
|
443
|
-
*
|
|
443
|
+
* <em>(required)</em> the data we want to fill the list with. Provide the data as a `JSON string`, `array` or `object` in these <a href="/uilib/components/fragments/drawer-list/info#data-structure">data structure</a>. <br /> If you don't have to define a `value`, you can also send in a `function` which will be called once the user opens the DrawerList.
|
|
444
444
|
*/
|
|
445
445
|
data?: AutocompleteData;
|
|
446
446
|
|
|
@@ -513,7 +513,7 @@ export interface AutocompleteProps extends React.HTMLProps<HTMLElement> {
|
|
|
513
513
|
className?: string;
|
|
514
514
|
|
|
515
515
|
/**
|
|
516
|
-
*
|
|
516
|
+
* <em>(required)</em> the data we want to fill the list with. Provide the data as a `JSON string`, `array` or `object` in these <a href="/uilib/components/fragments/drawer-list/info#data-structure">data structure</a>. <br /> If you don't have to define a `value`, you can also send in a `function` which will be called once the user opens the DrawerList.
|
|
517
517
|
*/
|
|
518
518
|
children?: AutocompleteChildren;
|
|
519
519
|
custom_element?: Object;
|
|
@@ -0,0 +1,89 @@
|
|
|
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", "className", "children", "size", "skeleton", "variant", "src", "imgProps"];
|
|
12
|
+
import "core-js/modules/es.array.concat.js";
|
|
13
|
+
|
|
14
|
+
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; }
|
|
15
|
+
|
|
16
|
+
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; }
|
|
17
|
+
|
|
18
|
+
import React from 'react';
|
|
19
|
+
import classnames from 'classnames';
|
|
20
|
+
import { createSpacingClasses } from '../space/SpacingHelper';
|
|
21
|
+
import { createSkeletonClass } from '../skeleton/SkeletonHelper';
|
|
22
|
+
import Img from '../../elements/Img';
|
|
23
|
+
import Context from '../../shared/Context';
|
|
24
|
+
import { extendPropsWithContext, warn } from '../../shared/component-helper';
|
|
25
|
+
import AvatarGroup, { AvatarGroupContext } from './AvatarGroup';
|
|
26
|
+
export var defaultProps = {
|
|
27
|
+
alt: null,
|
|
28
|
+
className: null,
|
|
29
|
+
size: 'medium',
|
|
30
|
+
src: null,
|
|
31
|
+
imgProps: null,
|
|
32
|
+
variant: 'primary',
|
|
33
|
+
skeleton: false,
|
|
34
|
+
children: null
|
|
35
|
+
};
|
|
36
|
+
|
|
37
|
+
function Avatar(localProps) {
|
|
38
|
+
var context = React.useContext(Context);
|
|
39
|
+
var avatarGroupContext = React.useContext(AvatarGroupContext);
|
|
40
|
+
|
|
41
|
+
var _extendPropsWithConte = extendPropsWithContext(_objectSpread(_objectSpread({}, defaultProps), localProps), defaultProps, context === null || context === void 0 ? void 0 : context.Avatar, avatarGroupContext),
|
|
42
|
+
alt = _extendPropsWithConte.alt,
|
|
43
|
+
className = _extendPropsWithConte.className,
|
|
44
|
+
childrenProp = _extendPropsWithConte.children,
|
|
45
|
+
size = _extendPropsWithConte.size,
|
|
46
|
+
skeleton = _extendPropsWithConte.skeleton,
|
|
47
|
+
variant = _extendPropsWithConte.variant,
|
|
48
|
+
src = _extendPropsWithConte.src,
|
|
49
|
+
imgProps = _extendPropsWithConte.imgProps,
|
|
50
|
+
props = _objectWithoutProperties(_extendPropsWithConte, _excluded);
|
|
51
|
+
|
|
52
|
+
var children = null;
|
|
53
|
+
var skeletonClasses = createSkeletonClass('shape', skeleton, context);
|
|
54
|
+
var spacingClasses = createSpacingClasses(props);
|
|
55
|
+
var childrenIsString = typeof childrenProp === 'string';
|
|
56
|
+
|
|
57
|
+
if (src || imgProps) {
|
|
58
|
+
var imageProps = _objectSpread({
|
|
59
|
+
src: src,
|
|
60
|
+
alt: alt
|
|
61
|
+
}, imgProps);
|
|
62
|
+
|
|
63
|
+
children = React.createElement(Img, imageProps);
|
|
64
|
+
} else if (childrenIsString) {
|
|
65
|
+
var firstLetterUpperCase = childrenProp.charAt(0).toUpperCase();
|
|
66
|
+
children = React.createElement("span", {
|
|
67
|
+
"data-testid": "avatar-text",
|
|
68
|
+
"aria-hidden": true
|
|
69
|
+
}, firstLetterUpperCase);
|
|
70
|
+
} else {
|
|
71
|
+
children = childrenProp;
|
|
72
|
+
}
|
|
73
|
+
|
|
74
|
+
if (!avatarGroupContext) {
|
|
75
|
+
warn("Avatar group required: An Avatar requires an Avatar.Group with label description as a parent component. This is to ensure correct semantic and accessibility.");
|
|
76
|
+
}
|
|
77
|
+
|
|
78
|
+
return React.createElement("span", _extends({
|
|
79
|
+
className: classnames("dnb-avatar dnb-avatar--".concat(variant || 'primary', " dnb-avatar--size-").concat(size || 'medium'), skeletonClasses, spacingClasses, className),
|
|
80
|
+
"data-testid": "avatar"
|
|
81
|
+
}, props), childrenIsString && React.createElement("span", {
|
|
82
|
+
"data-testid": "avatar-label",
|
|
83
|
+
className: "dnb-sr-only"
|
|
84
|
+
}, childrenProp), children);
|
|
85
|
+
}
|
|
86
|
+
|
|
87
|
+
Avatar.Group = AvatarGroup;
|
|
88
|
+
export { AvatarGroup };
|
|
89
|
+
export default Avatar;
|
|
@@ -0,0 +1,163 @@
|
|
|
1
|
+
import React from 'react'
|
|
2
|
+
import classnames from 'classnames'
|
|
3
|
+
|
|
4
|
+
// Components
|
|
5
|
+
import { createSpacingClasses } from '../space/SpacingHelper'
|
|
6
|
+
import { createSkeletonClass } from '../skeleton/SkeletonHelper'
|
|
7
|
+
|
|
8
|
+
// Elements
|
|
9
|
+
import Img, { ImgProps } from '../../elements/Img'
|
|
10
|
+
|
|
11
|
+
// Shared
|
|
12
|
+
import Context from '../../shared/Context'
|
|
13
|
+
import { ISpacingProps, SkeletonTypes } from '../../shared/interfaces'
|
|
14
|
+
import {
|
|
15
|
+
extendPropsWithContext,
|
|
16
|
+
warn,
|
|
17
|
+
} from '../../shared/component-helper'
|
|
18
|
+
|
|
19
|
+
// Internal
|
|
20
|
+
import AvatarGroup, { AvatarGroupContext } from './AvatarGroup'
|
|
21
|
+
|
|
22
|
+
export type AvatarSizes = 'small' | 'medium' | 'large' | 'x-large'
|
|
23
|
+
export type AvatarVariants = 'primary' | 'secondary' | 'tertiary'
|
|
24
|
+
|
|
25
|
+
export interface AvatarProps {
|
|
26
|
+
/**
|
|
27
|
+
* Used in combination with `src` to provide an alt attribute for the `img` element.
|
|
28
|
+
* Default: null
|
|
29
|
+
*/
|
|
30
|
+
alt?: string
|
|
31
|
+
|
|
32
|
+
/**
|
|
33
|
+
* Custom className on the component root
|
|
34
|
+
* Default: null
|
|
35
|
+
*/
|
|
36
|
+
className?: string
|
|
37
|
+
|
|
38
|
+
/**
|
|
39
|
+
* Skeleton should be applied when loading content
|
|
40
|
+
* Default: null
|
|
41
|
+
*/
|
|
42
|
+
skeleton?: SkeletonTypes
|
|
43
|
+
|
|
44
|
+
/**
|
|
45
|
+
* The content of the component. Can be used instead of prop "data".
|
|
46
|
+
* Default: null
|
|
47
|
+
*/
|
|
48
|
+
children?: React.ReactNode
|
|
49
|
+
|
|
50
|
+
/**
|
|
51
|
+
* The size of the component.
|
|
52
|
+
* Default: medium.
|
|
53
|
+
*/
|
|
54
|
+
size?: AvatarSizes
|
|
55
|
+
|
|
56
|
+
/**
|
|
57
|
+
* Specifies the path to the image
|
|
58
|
+
* Default: null
|
|
59
|
+
*/
|
|
60
|
+
src?: string
|
|
61
|
+
|
|
62
|
+
/**
|
|
63
|
+
* Props applied to the `img` element if the component is used to display an image.
|
|
64
|
+
* Default: null
|
|
65
|
+
*/
|
|
66
|
+
imgProps?: ImgProps
|
|
67
|
+
|
|
68
|
+
/**
|
|
69
|
+
* The variant of the component.
|
|
70
|
+
* Default: primary.
|
|
71
|
+
*/
|
|
72
|
+
variant?: AvatarVariants
|
|
73
|
+
}
|
|
74
|
+
|
|
75
|
+
export const defaultProps = {
|
|
76
|
+
alt: null,
|
|
77
|
+
className: null,
|
|
78
|
+
size: 'medium',
|
|
79
|
+
src: null,
|
|
80
|
+
imgProps: null,
|
|
81
|
+
variant: 'primary',
|
|
82
|
+
skeleton: false,
|
|
83
|
+
children: null,
|
|
84
|
+
}
|
|
85
|
+
|
|
86
|
+
function Avatar(localProps: AvatarProps & ISpacingProps) {
|
|
87
|
+
// Every component should have a context
|
|
88
|
+
const context = React.useContext(Context)
|
|
89
|
+
const avatarGroupContext = React.useContext(AvatarGroupContext)
|
|
90
|
+
|
|
91
|
+
// Extract additional props from global context
|
|
92
|
+
const {
|
|
93
|
+
alt,
|
|
94
|
+
className,
|
|
95
|
+
children: childrenProp,
|
|
96
|
+
size,
|
|
97
|
+
skeleton,
|
|
98
|
+
variant,
|
|
99
|
+
src,
|
|
100
|
+
imgProps,
|
|
101
|
+
...props
|
|
102
|
+
} = extendPropsWithContext(
|
|
103
|
+
{ ...defaultProps, ...localProps },
|
|
104
|
+
defaultProps,
|
|
105
|
+
context?.Avatar,
|
|
106
|
+
avatarGroupContext
|
|
107
|
+
)
|
|
108
|
+
|
|
109
|
+
let children = null
|
|
110
|
+
|
|
111
|
+
const skeletonClasses = createSkeletonClass('shape', skeleton, context)
|
|
112
|
+
const spacingClasses = createSpacingClasses(props)
|
|
113
|
+
|
|
114
|
+
const childrenIsString = typeof childrenProp === 'string'
|
|
115
|
+
|
|
116
|
+
if (src || imgProps) {
|
|
117
|
+
const imageProps = { src, alt, ...imgProps }
|
|
118
|
+
children = <Img {...imageProps} />
|
|
119
|
+
} else if (childrenIsString) {
|
|
120
|
+
const firstLetterUpperCase = childrenProp.charAt(0).toUpperCase()
|
|
121
|
+
children = (
|
|
122
|
+
<span data-testid="avatar-text" aria-hidden>
|
|
123
|
+
{firstLetterUpperCase}
|
|
124
|
+
</span>
|
|
125
|
+
)
|
|
126
|
+
} else {
|
|
127
|
+
children = childrenProp
|
|
128
|
+
}
|
|
129
|
+
|
|
130
|
+
if (!avatarGroupContext) {
|
|
131
|
+
warn(
|
|
132
|
+
`Avatar group required: An Avatar requires an Avatar.Group with label description as a parent component. This is to ensure correct semantic and accessibility.`
|
|
133
|
+
)
|
|
134
|
+
}
|
|
135
|
+
|
|
136
|
+
return (
|
|
137
|
+
<span
|
|
138
|
+
className={classnames(
|
|
139
|
+
'dnb-avatar',
|
|
140
|
+
`dnb-avatar--${variant || 'primary'}`,
|
|
141
|
+
`dnb-avatar--size-${size || 'medium'}`,
|
|
142
|
+
skeletonClasses,
|
|
143
|
+
spacingClasses,
|
|
144
|
+
className
|
|
145
|
+
)}
|
|
146
|
+
data-testid="avatar"
|
|
147
|
+
{...props}
|
|
148
|
+
>
|
|
149
|
+
{childrenIsString && (
|
|
150
|
+
<span data-testid="avatar-label" className="dnb-sr-only">
|
|
151
|
+
{childrenProp}
|
|
152
|
+
</span>
|
|
153
|
+
)}
|
|
154
|
+
{children}
|
|
155
|
+
</span>
|
|
156
|
+
)
|
|
157
|
+
}
|
|
158
|
+
|
|
159
|
+
Avatar.Group = AvatarGroup
|
|
160
|
+
|
|
161
|
+
export { AvatarGroup }
|
|
162
|
+
|
|
163
|
+
export default Avatar
|
|
@@ -0,0 +1,94 @@
|
|
|
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 = ["label", "className", "children", "size", "maxElements", "variant"];
|
|
12
|
+
import "core-js/modules/es.array.map.js";
|
|
13
|
+
import "core-js/modules/es.array.slice.js";
|
|
14
|
+
|
|
15
|
+
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; }
|
|
16
|
+
|
|
17
|
+
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; }
|
|
18
|
+
|
|
19
|
+
import React from 'react';
|
|
20
|
+
import classnames from 'classnames';
|
|
21
|
+
import { createSpacingClasses } from '../space/SpacingHelper';
|
|
22
|
+
import Context from '../../shared/Context';
|
|
23
|
+
import { extendPropsWithContext } from '../../shared/component-helper';
|
|
24
|
+
export var defaultProps = {
|
|
25
|
+
label: null,
|
|
26
|
+
className: null,
|
|
27
|
+
maxElements: 4,
|
|
28
|
+
size: 'medium',
|
|
29
|
+
children: null,
|
|
30
|
+
variant: 'primary'
|
|
31
|
+
};
|
|
32
|
+
export var AvatarGroupContext = React.createContext(null);
|
|
33
|
+
|
|
34
|
+
function AvatarGroup(localProps) {
|
|
35
|
+
var context = React.useContext(Context);
|
|
36
|
+
|
|
37
|
+
var _extendPropsWithConte = extendPropsWithContext(_objectSpread(_objectSpread({}, defaultProps), localProps), defaultProps, context === null || context === void 0 ? void 0 : context.AvatarGroup),
|
|
38
|
+
label = _extendPropsWithConte.label,
|
|
39
|
+
className = _extendPropsWithConte.className,
|
|
40
|
+
childrenProp = _extendPropsWithConte.children,
|
|
41
|
+
size = _extendPropsWithConte.size,
|
|
42
|
+
maxElementsProp = _extendPropsWithConte.maxElements,
|
|
43
|
+
variant = _extendPropsWithConte.variant,
|
|
44
|
+
props = _objectWithoutProperties(_extendPropsWithConte, _excluded);
|
|
45
|
+
|
|
46
|
+
var maxElements = maxElementsProp && maxElementsProp > 0 ? maxElementsProp : 4;
|
|
47
|
+
var children = childrenProp;
|
|
48
|
+
var numOfHiddenAvatars = 0;
|
|
49
|
+
|
|
50
|
+
if (Array.isArray(childrenProp)) {
|
|
51
|
+
var total = childrenProp.length;
|
|
52
|
+
|
|
53
|
+
if (total > maxElements) {
|
|
54
|
+
numOfHiddenAvatars = total - maxElements + 1;
|
|
55
|
+
}
|
|
56
|
+
|
|
57
|
+
children = childrenProp.slice(0, total - numOfHiddenAvatars).map(function (child, i) {
|
|
58
|
+
var appliedSize = child.props.size ? child.props.size : size;
|
|
59
|
+
var appliedVariant = child.props.variant ? child.props.variant : variant;
|
|
60
|
+
return React.cloneElement(child, {
|
|
61
|
+
size: appliedSize,
|
|
62
|
+
variant: appliedVariant,
|
|
63
|
+
style: _objectSpread(_objectSpread({}, child.props.style), {}, {
|
|
64
|
+
zIndex: total - i
|
|
65
|
+
}),
|
|
66
|
+
key: i
|
|
67
|
+
});
|
|
68
|
+
});
|
|
69
|
+
}
|
|
70
|
+
|
|
71
|
+
var spacingClasses = createSpacingClasses(props);
|
|
72
|
+
return React.createElement(AvatarGroupContext.Provider, {
|
|
73
|
+
value: props
|
|
74
|
+
}, React.createElement("span", _extends({
|
|
75
|
+
className: classnames('dnb-avatar__group', spacingClasses, className),
|
|
76
|
+
"data-testid": "avatar-group"
|
|
77
|
+
}, props), React.createElement("span", {
|
|
78
|
+
"data-testid": "avatar-group-label",
|
|
79
|
+
className: "dnb-sr-only"
|
|
80
|
+
}, label), children, numOfHiddenAvatars ? React.createElement(ElementsHidden, {
|
|
81
|
+
size: size
|
|
82
|
+
}, "+", numOfHiddenAvatars) : null));
|
|
83
|
+
}
|
|
84
|
+
|
|
85
|
+
function ElementsHidden(props) {
|
|
86
|
+
var size = props.size,
|
|
87
|
+
children = props.children;
|
|
88
|
+
return React.createElement("span", {
|
|
89
|
+
className: "dnb-avatar__group--elements-left dnb-avatar__group--elements-left--size-".concat(size || 'medium'),
|
|
90
|
+
"data-testid": "elements-left"
|
|
91
|
+
}, children);
|
|
92
|
+
}
|
|
93
|
+
|
|
94
|
+
export default AvatarGroup;
|
|
@@ -0,0 +1,167 @@
|
|
|
1
|
+
import React from 'react'
|
|
2
|
+
import classnames from 'classnames'
|
|
3
|
+
|
|
4
|
+
// Components
|
|
5
|
+
import { createSpacingClasses } from '../space/SpacingHelper'
|
|
6
|
+
import { AvatarSizes, AvatarVariants } from './Avatar'
|
|
7
|
+
|
|
8
|
+
// Shared
|
|
9
|
+
import Context from '../../shared/Context'
|
|
10
|
+
import { ISpacingProps } from '../../shared/interfaces'
|
|
11
|
+
import { extendPropsWithContext } from '../../shared/component-helper'
|
|
12
|
+
|
|
13
|
+
export interface AvatarGroupProps {
|
|
14
|
+
/**
|
|
15
|
+
* Label to describe the avatar group
|
|
16
|
+
* Default: null
|
|
17
|
+
*/
|
|
18
|
+
label: string
|
|
19
|
+
|
|
20
|
+
/**
|
|
21
|
+
* Custom className on the component root
|
|
22
|
+
* Default: null
|
|
23
|
+
*/
|
|
24
|
+
className?: string
|
|
25
|
+
|
|
26
|
+
/**
|
|
27
|
+
* Number of max displayed elements, including the "elements hidden text (+x)".
|
|
28
|
+
* Default: 4
|
|
29
|
+
*/
|
|
30
|
+
maxElements?: number
|
|
31
|
+
|
|
32
|
+
/**
|
|
33
|
+
* The avatars to group.
|
|
34
|
+
* Default: null
|
|
35
|
+
*/
|
|
36
|
+
children?: React.ReactNode
|
|
37
|
+
|
|
38
|
+
/**
|
|
39
|
+
* The size of the Avatars, and "elements hidden text (+x)".
|
|
40
|
+
* Default: medium.
|
|
41
|
+
*/
|
|
42
|
+
size?: AvatarSizes
|
|
43
|
+
|
|
44
|
+
/**
|
|
45
|
+
* The variant of the Avatars.
|
|
46
|
+
* Default: primary.
|
|
47
|
+
*/
|
|
48
|
+
variant?: AvatarVariants
|
|
49
|
+
}
|
|
50
|
+
|
|
51
|
+
export const defaultProps = {
|
|
52
|
+
label: null,
|
|
53
|
+
className: null,
|
|
54
|
+
maxElements: 4,
|
|
55
|
+
size: 'medium',
|
|
56
|
+
children: null,
|
|
57
|
+
variant: 'primary',
|
|
58
|
+
}
|
|
59
|
+
|
|
60
|
+
export const AvatarGroupContext = React.createContext(null)
|
|
61
|
+
|
|
62
|
+
function AvatarGroup(localProps: AvatarGroupProps & ISpacingProps) {
|
|
63
|
+
// Every component should have a context
|
|
64
|
+
const context = React.useContext(Context)
|
|
65
|
+
// Extract additional props from global context
|
|
66
|
+
const {
|
|
67
|
+
label,
|
|
68
|
+
className,
|
|
69
|
+
children: childrenProp,
|
|
70
|
+
size,
|
|
71
|
+
maxElements: maxElementsProp,
|
|
72
|
+
variant,
|
|
73
|
+
...props
|
|
74
|
+
} = extendPropsWithContext(
|
|
75
|
+
{ ...defaultProps, ...localProps },
|
|
76
|
+
defaultProps,
|
|
77
|
+
context?.AvatarGroup
|
|
78
|
+
)
|
|
79
|
+
|
|
80
|
+
const maxElements =
|
|
81
|
+
maxElementsProp && maxElementsProp > 0 ? maxElementsProp : 4
|
|
82
|
+
|
|
83
|
+
let children = childrenProp
|
|
84
|
+
let numOfHiddenAvatars = 0
|
|
85
|
+
|
|
86
|
+
if (Array.isArray(childrenProp)) {
|
|
87
|
+
const total = childrenProp.length
|
|
88
|
+
|
|
89
|
+
if (total > maxElements) {
|
|
90
|
+
numOfHiddenAvatars = total - maxElements + 1
|
|
91
|
+
}
|
|
92
|
+
|
|
93
|
+
children = childrenProp
|
|
94
|
+
.slice(0, total - numOfHiddenAvatars)
|
|
95
|
+
.map((child, i) => {
|
|
96
|
+
const appliedSize = child.props.size ? child.props.size : size
|
|
97
|
+
const appliedVariant = child.props.variant
|
|
98
|
+
? child.props.variant
|
|
99
|
+
: variant
|
|
100
|
+
return React.cloneElement(child, {
|
|
101
|
+
size: appliedSize,
|
|
102
|
+
variant: appliedVariant,
|
|
103
|
+
style: { ...child.props.style, zIndex: total - i },
|
|
104
|
+
key: i,
|
|
105
|
+
})
|
|
106
|
+
})
|
|
107
|
+
}
|
|
108
|
+
|
|
109
|
+
const spacingClasses = createSpacingClasses(props)
|
|
110
|
+
|
|
111
|
+
return (
|
|
112
|
+
<AvatarGroupContext.Provider value={props}>
|
|
113
|
+
<span
|
|
114
|
+
className={classnames(
|
|
115
|
+
'dnb-avatar__group',
|
|
116
|
+
spacingClasses,
|
|
117
|
+
className
|
|
118
|
+
)}
|
|
119
|
+
data-testid="avatar-group"
|
|
120
|
+
{...props}
|
|
121
|
+
>
|
|
122
|
+
<span data-testid="avatar-group-label" className="dnb-sr-only">
|
|
123
|
+
{label}
|
|
124
|
+
</span>
|
|
125
|
+
|
|
126
|
+
{children}
|
|
127
|
+
|
|
128
|
+
{numOfHiddenAvatars ? (
|
|
129
|
+
<ElementsHidden size={size}>
|
|
130
|
+
+{numOfHiddenAvatars}
|
|
131
|
+
</ElementsHidden>
|
|
132
|
+
) : null}
|
|
133
|
+
</span>
|
|
134
|
+
</AvatarGroupContext.Provider>
|
|
135
|
+
)
|
|
136
|
+
}
|
|
137
|
+
|
|
138
|
+
export interface ElementsHiddenProps {
|
|
139
|
+
/**
|
|
140
|
+
* The avatars to group.
|
|
141
|
+
* Default: null
|
|
142
|
+
*/
|
|
143
|
+
children?: React.ReactNode
|
|
144
|
+
|
|
145
|
+
/**
|
|
146
|
+
* The size of the "elements hidden text (+x)".
|
|
147
|
+
* Default: medium.
|
|
148
|
+
*/
|
|
149
|
+
size?: AvatarSizes
|
|
150
|
+
}
|
|
151
|
+
|
|
152
|
+
function ElementsHidden(props: ElementsHiddenProps) {
|
|
153
|
+
const { size, children } = props
|
|
154
|
+
return (
|
|
155
|
+
<span
|
|
156
|
+
className={classnames(
|
|
157
|
+
'dnb-avatar__group--elements-left',
|
|
158
|
+
`dnb-avatar__group--elements-left--size-${size || 'medium'}`
|
|
159
|
+
)}
|
|
160
|
+
data-testid="elements-left"
|
|
161
|
+
>
|
|
162
|
+
{children}
|
|
163
|
+
</span>
|
|
164
|
+
)
|
|
165
|
+
}
|
|
166
|
+
|
|
167
|
+
export default AvatarGroup
|