@dnb/eufemia 10.13.0 → 10.14.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 +30 -0
- package/cjs/components/accordion/AccordionContent.js +1 -0
- package/cjs/components/accordion/AccordionContent.js.map +1 -1
- package/cjs/components/anchor/Anchor.js +1 -0
- package/cjs/components/anchor/Anchor.js.map +1 -1
- package/cjs/components/autocomplete/Autocomplete.js +80 -77
- package/cjs/components/autocomplete/Autocomplete.js.map +1 -1
- package/cjs/components/avatar/Avatar.js +1 -0
- package/cjs/components/avatar/Avatar.js.map +1 -1
- package/cjs/components/avatar/AvatarGroup.js +1 -0
- package/cjs/components/avatar/AvatarGroup.js.map +1 -1
- package/cjs/components/badge/Badge.js +1 -0
- package/cjs/components/badge/Badge.js.map +1 -1
- package/cjs/components/breadcrumb/BreadcrumbItem.js +1 -0
- package/cjs/components/breadcrumb/BreadcrumbItem.js.map +1 -1
- package/cjs/components/button/Button.js +2 -0
- package/cjs/components/button/Button.js.map +1 -1
- package/cjs/components/checkbox/Checkbox.js +2 -0
- package/cjs/components/checkbox/Checkbox.js.map +1 -1
- package/cjs/components/date-picker/DatePicker.js +2 -0
- package/cjs/components/date-picker/DatePicker.js.map +1 -1
- package/cjs/components/date-picker/DatePickerProvider.js +1 -0
- package/cjs/components/date-picker/DatePickerProvider.js.map +1 -1
- package/cjs/components/dropdown/Dropdown.js +1 -0
- package/cjs/components/dropdown/Dropdown.js.map +1 -1
- package/cjs/components/flex/Container.js +1 -0
- package/cjs/components/flex/Container.js.map +1 -1
- package/cjs/components/flex/Flex.d.ts +1 -1
- package/cjs/components/flex/Flex.js +1 -1
- package/cjs/components/flex/Flex.js.map +1 -1
- package/cjs/components/flex/export.d.ts +5 -0
- package/cjs/components/flex/export.js +42 -0
- package/cjs/components/flex/export.js.map +1 -0
- package/cjs/components/flex/index.d.ts +2 -5
- package/cjs/components/flex/index.js +5 -36
- package/cjs/components/flex/index.js.map +1 -1
- package/cjs/components/form-label/FormLabel.d.ts +1 -0
- package/cjs/components/form-label/FormLabel.js +2 -0
- package/cjs/components/form-label/FormLabel.js.map +1 -1
- package/cjs/components/form-row/FormRow.js +1 -0
- package/cjs/components/form-row/FormRow.js.map +1 -1
- package/cjs/components/form-set/FormSet.js +1 -0
- package/cjs/components/form-set/FormSet.js.map +1 -1
- package/cjs/components/form-status/FormStatus.js +1 -0
- package/cjs/components/form-status/FormStatus.js.map +1 -1
- package/cjs/components/global-error/GlobalError.js +1 -0
- package/cjs/components/global-error/GlobalError.js.map +1 -1
- package/cjs/components/global-status/GlobalStatus.js +1 -0
- package/cjs/components/global-status/GlobalStatus.js.map +1 -1
- package/cjs/components/grid/Grid.d.ts +1 -1
- package/cjs/components/grid/Grid.js +1 -1
- package/cjs/components/grid/Grid.js.map +1 -1
- package/cjs/components/grid/export.d.ts +2 -0
- package/cjs/components/grid/export.js +21 -0
- package/cjs/components/grid/export.js.map +1 -0
- package/cjs/components/grid/index.d.ts +2 -2
- package/cjs/components/grid/index.js +5 -15
- package/cjs/components/grid/index.js.map +1 -1
- package/cjs/components/heading/Heading.js +1 -0
- package/cjs/components/heading/Heading.js.map +1 -1
- package/cjs/components/help-button/HelpButton.js +1 -0
- package/cjs/components/help-button/HelpButton.js.map +1 -1
- package/cjs/components/help-button/HelpButtonInstance.js +1 -0
- package/cjs/components/help-button/HelpButtonInstance.js.map +1 -1
- package/cjs/components/icon/Icon.js +1 -0
- package/cjs/components/icon/Icon.js.map +1 -1
- package/cjs/components/icon-primary/IconPrimary.js +1 -0
- package/cjs/components/icon-primary/IconPrimary.js.map +1 -1
- package/cjs/components/info-card/InfoCard.js +1 -0
- package/cjs/components/info-card/InfoCard.js.map +1 -1
- package/cjs/components/input/Input.d.ts +4 -0
- package/cjs/components/input/Input.js +12 -2
- package/cjs/components/input/Input.js.map +1 -1
- package/cjs/components/input/InputPassword.js +2 -0
- package/cjs/components/input/InputPassword.js.map +1 -1
- package/cjs/components/input-masked/InputMasked.js +2 -0
- package/cjs/components/input-masked/InputMasked.js.map +1 -1
- package/cjs/components/input-masked/MultiInputMask.d.ts +9 -1
- package/cjs/components/input-masked/MultiInputMask.js +14 -7
- package/cjs/components/input-masked/MultiInputMask.js.map +1 -1
- package/cjs/components/input-masked/TextMask.d.ts +1 -1
- package/cjs/components/input-masked/hooks/useHandleCursorPosition.js +1 -1
- package/cjs/components/input-masked/hooks/useHandleCursorPosition.js.map +1 -1
- package/cjs/components/lib.d.ts +2 -0
- package/cjs/components/logo/Logo.js +1 -0
- package/cjs/components/logo/Logo.js.map +1 -1
- package/cjs/components/modal/Modal.js +1 -0
- package/cjs/components/modal/Modal.js.map +1 -1
- package/cjs/components/modal/ModalContent.js +1 -0
- package/cjs/components/modal/ModalContent.js.map +1 -1
- package/cjs/components/modal/parts/CloseButton.js +1 -0
- package/cjs/components/modal/parts/CloseButton.js.map +1 -1
- package/cjs/components/number-format/NumberFormat.js +1 -0
- package/cjs/components/number-format/NumberFormat.js.map +1 -1
- package/cjs/components/number-format/NumberUtils.js +1 -0
- package/cjs/components/number-format/NumberUtils.js.map +1 -1
- package/cjs/components/pagination/PaginationHelpers.js +1 -0
- package/cjs/components/pagination/PaginationHelpers.js.map +1 -1
- package/cjs/components/pagination/PaginationInfinity.js +1 -0
- package/cjs/components/pagination/PaginationInfinity.js.map +1 -1
- package/cjs/components/pagination/PaginationProvider.js +1 -0
- package/cjs/components/pagination/PaginationProvider.js.map +1 -1
- package/cjs/components/progress-indicator/ProgressIndicator.js +1 -0
- package/cjs/components/progress-indicator/ProgressIndicator.js.map +1 -1
- package/cjs/components/radio/Radio.js +4 -2
- package/cjs/components/radio/Radio.js.map +1 -1
- package/cjs/components/radio/RadioGroup.js +5 -4
- package/cjs/components/radio/RadioGroup.js.map +1 -1
- package/cjs/components/radio/style/dnb-radio.css +106 -0
- package/cjs/components/radio/style/dnb-radio.min.css +1 -1
- package/cjs/components/radio/style/dnb-radio.scss +202 -0
- package/cjs/components/radio/style/themes/dnb-radio-theme-sbanken.css +26 -0
- package/cjs/components/radio/style/themes/dnb-radio-theme-sbanken.min.css +1 -0
- package/cjs/components/radio/style/themes/dnb-radio-theme-sbanken.scss +33 -0
- package/cjs/components/radio/style/themes/dnb-radio-theme-ui.css +20 -86
- package/cjs/components/radio/style/themes/dnb-radio-theme-ui.min.css +1 -1
- package/cjs/components/radio/style/themes/dnb-radio-theme-ui.scss +26 -143
- package/cjs/components/section/Section.js +1 -0
- package/cjs/components/section/Section.js.map +1 -1
- package/cjs/components/skeleton/Skeleton.js +1 -0
- package/cjs/components/skeleton/Skeleton.js.map +1 -1
- package/cjs/components/skeleton/figures/Article.js +1 -0
- package/cjs/components/skeleton/figures/Article.js.map +1 -1
- package/cjs/components/skeleton/figures/Circle.js +1 -0
- package/cjs/components/skeleton/figures/Circle.js.map +1 -1
- package/cjs/components/skeleton/figures/Product.js +1 -0
- package/cjs/components/skeleton/figures/Product.js.map +1 -1
- package/cjs/components/skeleton/figures/Table.js +1 -0
- package/cjs/components/skeleton/figures/Table.js.map +1 -1
- package/cjs/components/slider/Slider.d.ts +1 -0
- package/cjs/components/slider/Slider.js +1 -0
- package/cjs/components/slider/Slider.js.map +1 -1
- package/cjs/components/slider/SliderInstance.js +1 -0
- package/cjs/components/slider/SliderInstance.js.map +1 -1
- package/cjs/components/slider/SliderProvider.js +1 -0
- package/cjs/components/slider/SliderProvider.js.map +1 -1
- package/cjs/components/space/Space.js +1 -0
- package/cjs/components/space/Space.js.map +1 -1
- package/cjs/components/switch/Switch.js +2 -0
- package/cjs/components/switch/Switch.js.map +1 -1
- package/cjs/components/table/Table.js +1 -0
- package/cjs/components/table/Table.js.map +1 -1
- package/cjs/components/tabs/Tabs.js +1 -0
- package/cjs/components/tabs/Tabs.js.map +1 -1
- package/cjs/components/tag/Tag.d.ts +1 -0
- package/cjs/components/tag/Tag.js +2 -0
- package/cjs/components/tag/Tag.js.map +1 -1
- package/cjs/components/tag/TagGroup.js +1 -0
- package/cjs/components/tag/TagGroup.js.map +1 -1
- package/cjs/components/textarea/Textarea.js +2 -0
- package/cjs/components/textarea/Textarea.js.map +1 -1
- package/cjs/components/timeline/Timeline.js +1 -0
- package/cjs/components/timeline/Timeline.js.map +1 -1
- package/cjs/components/timeline/TimelineItem.js +1 -0
- package/cjs/components/timeline/TimelineItem.js.map +1 -1
- package/cjs/components/toggle-button/ToggleButton.js +2 -0
- package/cjs/components/toggle-button/ToggleButton.js.map +1 -1
- package/cjs/components/toggle-button/ToggleButtonGroup.js +5 -4
- package/cjs/components/toggle-button/ToggleButtonGroup.js.map +1 -1
- package/cjs/components/tooltip/Tooltip.js +1 -0
- package/cjs/components/tooltip/Tooltip.js.map +1 -1
- package/cjs/components/tooltip/TooltipPortal.js +1 -0
- package/cjs/components/tooltip/TooltipPortal.js.map +1 -1
- package/cjs/components/upload/Upload.d.ts +1 -0
- package/cjs/components/upload/Upload.js +2 -0
- package/cjs/components/upload/Upload.js.map +1 -1
- package/cjs/components/upload/useUpload.js +1 -0
- package/cjs/components/upload/useUpload.js.map +1 -1
- package/cjs/components/visually-hidden/VisuallyHidden.js +1 -0
- package/cjs/components/visually-hidden/VisuallyHidden.js.map +1 -1
- package/cjs/elements/Element.js +1 -0
- package/cjs/elements/Element.js.map +1 -1
- package/cjs/elements/typography/H.js +1 -0
- package/cjs/elements/typography/H.js.map +1 -1
- package/cjs/extensions/forms/DataContext/Provider/Provider.js +52 -42
- package/cjs/extensions/forms/DataContext/Provider/Provider.js.map +1 -1
- package/cjs/extensions/forms/Field/BankAccountNumber/BankAccountNumber.js +8 -5
- package/cjs/extensions/forms/Field/BankAccountNumber/BankAccountNumber.js.map +1 -1
- package/cjs/extensions/forms/Field/Email/Email.js +6 -4
- package/cjs/extensions/forms/Field/Email/Email.js.map +1 -1
- package/cjs/extensions/forms/Field/Expiry/Expiry.d.ts +7 -0
- package/cjs/extensions/forms/Field/Expiry/Expiry.js +99 -0
- package/cjs/extensions/forms/Field/Expiry/Expiry.js.map +1 -0
- package/cjs/extensions/forms/Field/Expiry/index.d.ts +2 -0
- package/cjs/extensions/forms/Field/Expiry/index.js +27 -0
- package/cjs/extensions/forms/Field/Expiry/index.js.map +1 -0
- package/cjs/extensions/forms/Field/Expiry/style/dnb-expiry.css +12 -0
- package/cjs/extensions/forms/Field/Expiry/style/dnb-expiry.min.css +1 -0
- package/cjs/extensions/forms/Field/Expiry/style/dnb-expiry.scss +9 -0
- package/cjs/extensions/forms/Field/NationalIdentityNumber/NationalIdentityNumber.js +8 -5
- package/cjs/extensions/forms/Field/NationalIdentityNumber/NationalIdentityNumber.js.map +1 -1
- package/cjs/extensions/forms/Field/Number/Number.js +47 -25
- package/cjs/extensions/forms/Field/Number/Number.js.map +1 -1
- package/cjs/extensions/forms/Field/OrganizationNumber/OrganizationNumber.js +8 -5
- package/cjs/extensions/forms/Field/OrganizationNumber/OrganizationNumber.js.map +1 -1
- package/cjs/extensions/forms/Field/PhoneNumber/PhoneNumber.js +46 -33
- package/cjs/extensions/forms/Field/PhoneNumber/PhoneNumber.js.map +1 -1
- package/cjs/extensions/forms/Field/SelectCountry/SelectCountry.js +6 -4
- package/cjs/extensions/forms/Field/SelectCountry/SelectCountry.js.map +1 -1
- package/cjs/extensions/forms/Field/String/String.js +30 -20
- package/cjs/extensions/forms/Field/String/String.js.map +1 -1
- package/cjs/extensions/forms/Field/index.d.ts +1 -0
- package/cjs/extensions/forms/Field/index.js +7 -0
- package/cjs/extensions/forms/Field/index.js.map +1 -1
- package/cjs/extensions/forms/Field/style/dnb-forms-field.css +13 -0
- package/cjs/extensions/forms/Field/style/dnb-forms-field.min.css +1 -1
- package/cjs/extensions/forms/Field/style/dnb-forms-field.scss +1 -0
- package/cjs/extensions/forms/FieldBlock/FieldBlock.js +36 -2
- package/cjs/extensions/forms/FieldBlock/FieldBlock.js.map +1 -1
- package/cjs/extensions/forms/Form/Element/Element.js +1 -0
- package/cjs/extensions/forms/Form/Element/Element.js.map +1 -1
- package/cjs/extensions/forms/Form/Handler/Handler.js +1 -0
- package/cjs/extensions/forms/Form/Handler/Handler.js.map +1 -1
- package/cjs/extensions/forms/hooks/index.d.ts +3 -0
- package/cjs/extensions/forms/hooks/index.js +21 -0
- package/cjs/extensions/forms/hooks/index.js.map +1 -1
- package/cjs/extensions/forms/hooks/useDataValue.js +127 -61
- package/cjs/extensions/forms/hooks/useDataValue.js.map +1 -1
- package/cjs/extensions/forms/hooks/useMountEffect.d.ts +5 -0
- package/cjs/extensions/forms/hooks/useMountEffect.js +14 -0
- package/cjs/extensions/forms/hooks/useMountEffect.js.map +1 -0
- package/cjs/extensions/forms/hooks/useProcessManager.d.ts +6 -0
- package/cjs/extensions/forms/hooks/useProcessManager.js +21 -0
- package/cjs/extensions/forms/hooks/useProcessManager.js.map +1 -0
- package/cjs/extensions/forms/hooks/useUpdateEffect.d.ts +5 -0
- package/cjs/extensions/forms/hooks/useUpdateEffect.js +19 -0
- package/cjs/extensions/forms/hooks/useUpdateEffect.js.map +1 -0
- package/cjs/extensions/forms/style/dnb-forms.css +13 -0
- package/cjs/extensions/forms/style/dnb-forms.min.css +1 -1
- package/cjs/extensions/forms/types.d.ts +10 -2
- package/cjs/extensions/forms/types.js +2 -0
- package/cjs/extensions/forms/types.js.map +1 -1
- package/cjs/extensions/forms/utils/ajv.js +25 -1
- package/cjs/extensions/forms/utils/ajv.js.map +1 -1
- package/cjs/extensions/forms/utils/errors.d.ts +2 -0
- package/cjs/extensions/forms/utils/errors.js +16 -0
- package/cjs/extensions/forms/utils/errors.js.map +1 -0
- package/cjs/extensions/forms/utils/index.d.ts +1 -0
- package/cjs/extensions/forms/utils/index.js +12 -0
- package/cjs/extensions/forms/utils/index.js.map +1 -1
- package/cjs/extensions/payment-card/PaymentCard.js +1 -0
- package/cjs/extensions/payment-card/PaymentCard.js.map +1 -1
- package/cjs/fragments/drawer-list/DrawerListProvider.js +1 -0
- package/cjs/fragments/drawer-list/DrawerListProvider.js.map +1 -1
- package/cjs/fragments/scroll-view/ScrollView.js +1 -0
- package/cjs/fragments/scroll-view/ScrollView.js.map +1 -1
- package/cjs/shared/Eufemia.d.ts +1 -1
- package/cjs/shared/Eufemia.js +2 -2
- package/cjs/shared/Eufemia.js.map +1 -1
- package/cjs/shared/MediaQuery.js +1 -0
- package/cjs/shared/MediaQuery.js.map +1 -1
- package/cjs/shared/Provider.js +1 -0
- package/cjs/shared/Provider.js.map +1 -1
- package/cjs/shared/Theme.js +1 -0
- package/cjs/shared/Theme.js.map +1 -1
- package/cjs/shared/VisibilityByTheme.js +1 -0
- package/cjs/shared/VisibilityByTheme.js.map +1 -1
- package/cjs/shared/index.js +1 -0
- package/cjs/shared/index.js.map +1 -1
- package/cjs/shared/locales/en-GB.d.ts +11 -0
- package/cjs/shared/locales/en-GB.js +12 -1
- package/cjs/shared/locales/en-GB.js.map +1 -1
- package/cjs/shared/locales/en-US.d.ts +11 -0
- package/cjs/shared/locales/index.d.ts +22 -0
- package/cjs/shared/locales/nb-NO.d.ts +11 -0
- package/cjs/shared/locales/nb-NO.js +12 -1
- package/cjs/shared/locales/nb-NO.js.map +1 -1
- package/cjs/shared/useMedia.js +1 -0
- package/cjs/shared/useMedia.js.map +1 -1
- package/cjs/shared/useMediaQuery.js +1 -0
- package/cjs/shared/useMediaQuery.js.map +1 -1
- package/cjs/shared/useTheme.js +1 -0
- package/cjs/shared/useTheme.js.map +1 -1
- package/cjs/shared/useTranslation.js +1 -0
- package/cjs/shared/useTranslation.js.map +1 -1
- package/cjs/style/dnb-ui-components.css +106 -0
- package/cjs/style/dnb-ui-components.min.css +1 -1
- package/cjs/style/dnb-ui-extensions.css +13 -0
- package/cjs/style/dnb-ui-extensions.min.css +1 -1
- package/cjs/style/themes/theme-eiendom/eiendom-theme-components.css +126 -86
- package/cjs/style/themes/theme-eiendom/eiendom-theme-components.min.css +2 -2
- package/cjs/style/themes/theme-eiendom/eiendom-theme-extensions.css +13 -0
- package/cjs/style/themes/theme-eiendom/eiendom-theme-extensions.min.css +1 -1
- package/cjs/style/themes/theme-sbanken/sbanken-theme-components.css +133 -93
- package/cjs/style/themes/theme-sbanken/sbanken-theme-components.min.css +3 -3
- package/cjs/style/themes/theme-sbanken/sbanken-theme-components.scss +1 -1
- package/cjs/style/themes/theme-sbanken/sbanken-theme-extensions.css +13 -0
- package/cjs/style/themes/theme-sbanken/sbanken-theme-extensions.min.css +1 -1
- package/cjs/style/themes/theme-ui/ui-theme-components.css +126 -86
- package/cjs/style/themes/theme-ui/ui-theme-components.min.css +2 -2
- package/cjs/style/themes/theme-ui/ui-theme-extensions.css +13 -0
- package/cjs/style/themes/theme-ui/ui-theme-extensions.min.css +1 -1
- package/components/accordion/AccordionContent.js +2 -0
- package/components/accordion/AccordionContent.js.map +1 -1
- package/components/anchor/Anchor.js +2 -0
- package/components/anchor/Anchor.js.map +1 -1
- package/components/autocomplete/Autocomplete.js +80 -77
- package/components/autocomplete/Autocomplete.js.map +1 -1
- package/components/avatar/Avatar.js +2 -0
- package/components/avatar/Avatar.js.map +1 -1
- package/components/avatar/AvatarGroup.js +2 -0
- package/components/avatar/AvatarGroup.js.map +1 -1
- package/components/badge/Badge.js +2 -0
- package/components/badge/Badge.js.map +1 -1
- package/components/breadcrumb/BreadcrumbItem.js +2 -0
- package/components/breadcrumb/BreadcrumbItem.js.map +1 -1
- package/components/button/Button.js +3 -0
- package/components/button/Button.js.map +1 -1
- package/components/checkbox/Checkbox.js +3 -0
- package/components/checkbox/Checkbox.js.map +1 -1
- package/components/date-picker/DatePicker.js +3 -0
- package/components/date-picker/DatePicker.js.map +1 -1
- package/components/date-picker/DatePickerProvider.js +2 -0
- package/components/date-picker/DatePickerProvider.js.map +1 -1
- package/components/dropdown/Dropdown.js +1 -0
- package/components/dropdown/Dropdown.js.map +1 -1
- package/components/flex/Container.js +2 -0
- package/components/flex/Container.js.map +1 -1
- package/components/flex/Flex.d.ts +1 -1
- package/components/flex/Flex.js +1 -1
- package/components/flex/Flex.js.map +1 -1
- package/components/flex/export.d.ts +5 -0
- package/components/flex/export.js +6 -0
- package/components/flex/export.js.map +1 -0
- package/components/flex/index.d.ts +2 -5
- package/components/flex/index.js +2 -5
- package/components/flex/index.js.map +1 -1
- package/components/form-label/FormLabel.d.ts +1 -0
- package/components/form-label/FormLabel.js +3 -0
- package/components/form-label/FormLabel.js.map +1 -1
- package/components/form-row/FormRow.js +2 -0
- package/components/form-row/FormRow.js.map +1 -1
- package/components/form-set/FormSet.js +2 -0
- package/components/form-set/FormSet.js.map +1 -1
- package/components/form-status/FormStatus.js +2 -0
- package/components/form-status/FormStatus.js.map +1 -1
- package/components/global-error/GlobalError.js +2 -0
- package/components/global-error/GlobalError.js.map +1 -1
- package/components/global-status/GlobalStatus.js +2 -0
- package/components/global-status/GlobalStatus.js.map +1 -1
- package/components/grid/Grid.d.ts +1 -1
- package/components/grid/Grid.js +1 -1
- package/components/grid/Grid.js.map +1 -1
- package/components/grid/export.d.ts +2 -0
- package/components/grid/export.js +3 -0
- package/components/grid/export.js.map +1 -0
- package/components/grid/index.d.ts +2 -2
- package/components/grid/index.js +2 -2
- package/components/grid/index.js.map +1 -1
- package/components/heading/Heading.js +2 -0
- package/components/heading/Heading.js.map +1 -1
- package/components/help-button/HelpButton.js +2 -0
- package/components/help-button/HelpButton.js.map +1 -1
- package/components/help-button/HelpButtonInstance.js +2 -0
- package/components/help-button/HelpButtonInstance.js.map +1 -1
- package/components/icon/Icon.js +2 -0
- package/components/icon/Icon.js.map +1 -1
- package/components/icon-primary/IconPrimary.js +2 -0
- package/components/icon-primary/IconPrimary.js.map +1 -1
- package/components/info-card/InfoCard.js +2 -0
- package/components/info-card/InfoCard.js.map +1 -1
- package/components/input/Input.d.ts +4 -0
- package/components/input/Input.js +13 -2
- package/components/input/Input.js.map +1 -1
- package/components/input/InputPassword.js +3 -0
- package/components/input/InputPassword.js.map +1 -1
- package/components/input-masked/InputMasked.js +3 -0
- package/components/input-masked/InputMasked.js.map +1 -1
- package/components/input-masked/MultiInputMask.d.ts +9 -1
- package/components/input-masked/MultiInputMask.js +14 -7
- package/components/input-masked/MultiInputMask.js.map +1 -1
- package/components/input-masked/TextMask.d.ts +1 -1
- package/components/input-masked/hooks/useHandleCursorPosition.js +1 -1
- package/components/input-masked/hooks/useHandleCursorPosition.js.map +1 -1
- package/components/lib.d.ts +2 -0
- package/components/logo/Logo.js +2 -0
- package/components/logo/Logo.js.map +1 -1
- package/components/modal/Modal.js +2 -0
- package/components/modal/Modal.js.map +1 -1
- package/components/modal/ModalContent.js +2 -0
- package/components/modal/ModalContent.js.map +1 -1
- package/components/modal/parts/CloseButton.js +2 -0
- package/components/modal/parts/CloseButton.js.map +1 -1
- package/components/number-format/NumberFormat.js +2 -0
- package/components/number-format/NumberFormat.js.map +1 -1
- package/components/number-format/NumberUtils.js +2 -0
- package/components/number-format/NumberUtils.js.map +1 -1
- package/components/pagination/PaginationHelpers.js +2 -0
- package/components/pagination/PaginationHelpers.js.map +1 -1
- package/components/pagination/PaginationInfinity.js +2 -0
- package/components/pagination/PaginationInfinity.js.map +1 -1
- package/components/pagination/PaginationProvider.js +2 -0
- package/components/pagination/PaginationProvider.js.map +1 -1
- package/components/progress-indicator/ProgressIndicator.js +2 -0
- package/components/progress-indicator/ProgressIndicator.js.map +1 -1
- package/components/radio/Radio.js +5 -2
- package/components/radio/Radio.js.map +1 -1
- package/components/radio/RadioGroup.js +6 -4
- package/components/radio/RadioGroup.js.map +1 -1
- package/components/radio/style/dnb-radio.css +106 -0
- package/components/radio/style/dnb-radio.min.css +1 -1
- package/components/radio/style/dnb-radio.scss +202 -0
- package/components/radio/style/themes/dnb-radio-theme-sbanken.css +26 -0
- package/components/radio/style/themes/dnb-radio-theme-sbanken.min.css +1 -0
- package/components/radio/style/themes/dnb-radio-theme-sbanken.scss +33 -0
- package/components/radio/style/themes/dnb-radio-theme-ui.css +20 -86
- package/components/radio/style/themes/dnb-radio-theme-ui.min.css +1 -1
- package/components/radio/style/themes/dnb-radio-theme-ui.scss +26 -143
- package/components/section/Section.js +2 -0
- package/components/section/Section.js.map +1 -1
- package/components/skeleton/Skeleton.js +2 -0
- package/components/skeleton/Skeleton.js.map +1 -1
- package/components/skeleton/figures/Article.js +2 -0
- package/components/skeleton/figures/Article.js.map +1 -1
- package/components/skeleton/figures/Circle.js +2 -0
- package/components/skeleton/figures/Circle.js.map +1 -1
- package/components/skeleton/figures/Product.js +2 -0
- package/components/skeleton/figures/Product.js.map +1 -1
- package/components/skeleton/figures/Table.js +2 -0
- package/components/skeleton/figures/Table.js.map +1 -1
- package/components/slider/Slider.d.ts +1 -0
- package/components/slider/Slider.js +1 -0
- package/components/slider/Slider.js.map +1 -1
- package/components/slider/SliderInstance.js +2 -0
- package/components/slider/SliderInstance.js.map +1 -1
- package/components/slider/SliderProvider.js +2 -0
- package/components/slider/SliderProvider.js.map +1 -1
- package/components/space/Space.js +2 -0
- package/components/space/Space.js.map +1 -1
- package/components/switch/Switch.js +3 -0
- package/components/switch/Switch.js.map +1 -1
- package/components/table/Table.js +2 -0
- package/components/table/Table.js.map +1 -1
- package/components/tabs/Tabs.js +2 -0
- package/components/tabs/Tabs.js.map +1 -1
- package/components/tag/Tag.d.ts +1 -0
- package/components/tag/Tag.js +3 -0
- package/components/tag/Tag.js.map +1 -1
- package/components/tag/TagGroup.js +2 -0
- package/components/tag/TagGroup.js.map +1 -1
- package/components/textarea/Textarea.js +3 -0
- package/components/textarea/Textarea.js.map +1 -1
- package/components/timeline/Timeline.js +2 -0
- package/components/timeline/Timeline.js.map +1 -1
- package/components/timeline/TimelineItem.js +2 -0
- package/components/timeline/TimelineItem.js.map +1 -1
- package/components/toggle-button/ToggleButton.js +3 -0
- package/components/toggle-button/ToggleButton.js.map +1 -1
- package/components/toggle-button/ToggleButtonGroup.js +6 -4
- package/components/toggle-button/ToggleButtonGroup.js.map +1 -1
- package/components/tooltip/Tooltip.js +2 -0
- package/components/tooltip/Tooltip.js.map +1 -1
- package/components/tooltip/TooltipPortal.js +2 -0
- package/components/tooltip/TooltipPortal.js.map +1 -1
- package/components/upload/Upload.d.ts +1 -0
- package/components/upload/Upload.js +3 -0
- package/components/upload/Upload.js.map +1 -1
- package/components/upload/useUpload.js +2 -0
- package/components/upload/useUpload.js.map +1 -1
- package/components/visually-hidden/VisuallyHidden.js +2 -0
- package/components/visually-hidden/VisuallyHidden.js.map +1 -1
- package/elements/Element.js +2 -0
- package/elements/Element.js.map +1 -1
- package/elements/typography/H.js +2 -0
- package/elements/typography/H.js.map +1 -1
- package/es/components/accordion/AccordionContent.js +2 -0
- package/es/components/accordion/AccordionContent.js.map +1 -1
- package/es/components/anchor/Anchor.js +2 -0
- package/es/components/anchor/Anchor.js.map +1 -1
- package/es/components/autocomplete/Autocomplete.js +79 -77
- package/es/components/autocomplete/Autocomplete.js.map +1 -1
- package/es/components/avatar/Avatar.js +2 -0
- package/es/components/avatar/Avatar.js.map +1 -1
- package/es/components/avatar/AvatarGroup.js +2 -0
- package/es/components/avatar/AvatarGroup.js.map +1 -1
- package/es/components/badge/Badge.js +2 -0
- package/es/components/badge/Badge.js.map +1 -1
- package/es/components/breadcrumb/BreadcrumbItem.js +2 -0
- package/es/components/breadcrumb/BreadcrumbItem.js.map +1 -1
- package/es/components/button/Button.js +3 -0
- package/es/components/button/Button.js.map +1 -1
- package/es/components/checkbox/Checkbox.js +3 -0
- package/es/components/checkbox/Checkbox.js.map +1 -1
- package/es/components/date-picker/DatePicker.js +3 -0
- package/es/components/date-picker/DatePicker.js.map +1 -1
- package/es/components/date-picker/DatePickerProvider.js +2 -0
- package/es/components/date-picker/DatePickerProvider.js.map +1 -1
- package/es/components/dropdown/Dropdown.js +1 -0
- package/es/components/dropdown/Dropdown.js.map +1 -1
- package/es/components/flex/Container.js +2 -0
- package/es/components/flex/Container.js.map +1 -1
- package/es/components/flex/Flex.d.ts +1 -1
- package/es/components/flex/Flex.js +1 -1
- package/es/components/flex/Flex.js.map +1 -1
- package/es/components/flex/export.d.ts +5 -0
- package/es/components/flex/export.js +6 -0
- package/es/components/flex/export.js.map +1 -0
- package/es/components/flex/index.d.ts +2 -5
- package/es/components/flex/index.js +2 -5
- package/es/components/flex/index.js.map +1 -1
- package/es/components/form-label/FormLabel.d.ts +1 -0
- package/es/components/form-label/FormLabel.js +3 -0
- package/es/components/form-label/FormLabel.js.map +1 -1
- package/es/components/form-row/FormRow.js +2 -0
- package/es/components/form-row/FormRow.js.map +1 -1
- package/es/components/form-set/FormSet.js +2 -0
- package/es/components/form-set/FormSet.js.map +1 -1
- package/es/components/form-status/FormStatus.js +2 -0
- package/es/components/form-status/FormStatus.js.map +1 -1
- package/es/components/global-error/GlobalError.js +2 -0
- package/es/components/global-error/GlobalError.js.map +1 -1
- package/es/components/global-status/GlobalStatus.js +2 -0
- package/es/components/global-status/GlobalStatus.js.map +1 -1
- package/es/components/grid/Grid.d.ts +1 -1
- package/es/components/grid/Grid.js +1 -1
- package/es/components/grid/Grid.js.map +1 -1
- package/es/components/grid/export.d.ts +2 -0
- package/es/components/grid/export.js +3 -0
- package/es/components/grid/export.js.map +1 -0
- package/es/components/grid/index.d.ts +2 -2
- package/es/components/grid/index.js +2 -2
- package/es/components/grid/index.js.map +1 -1
- package/es/components/heading/Heading.js +2 -0
- package/es/components/heading/Heading.js.map +1 -1
- package/es/components/help-button/HelpButton.js +2 -0
- package/es/components/help-button/HelpButton.js.map +1 -1
- package/es/components/help-button/HelpButtonInstance.js +2 -0
- package/es/components/help-button/HelpButtonInstance.js.map +1 -1
- package/es/components/icon/Icon.js +2 -0
- package/es/components/icon/Icon.js.map +1 -1
- package/es/components/icon-primary/IconPrimary.js +2 -0
- package/es/components/icon-primary/IconPrimary.js.map +1 -1
- package/es/components/info-card/InfoCard.js +2 -0
- package/es/components/info-card/InfoCard.js.map +1 -1
- package/es/components/input/Input.d.ts +4 -0
- package/es/components/input/Input.js +13 -2
- package/es/components/input/Input.js.map +1 -1
- package/es/components/input/InputPassword.js +3 -0
- package/es/components/input/InputPassword.js.map +1 -1
- package/es/components/input-masked/InputMasked.js +3 -0
- package/es/components/input-masked/InputMasked.js.map +1 -1
- package/es/components/input-masked/MultiInputMask.d.ts +9 -1
- package/es/components/input-masked/MultiInputMask.js +14 -7
- package/es/components/input-masked/MultiInputMask.js.map +1 -1
- package/es/components/input-masked/TextMask.d.ts +1 -1
- package/es/components/input-masked/hooks/useHandleCursorPosition.js +1 -1
- package/es/components/input-masked/hooks/useHandleCursorPosition.js.map +1 -1
- package/es/components/lib.d.ts +2 -0
- package/es/components/logo/Logo.js +2 -0
- package/es/components/logo/Logo.js.map +1 -1
- package/es/components/modal/Modal.js +2 -0
- package/es/components/modal/Modal.js.map +1 -1
- package/es/components/modal/ModalContent.js +2 -0
- package/es/components/modal/ModalContent.js.map +1 -1
- package/es/components/modal/parts/CloseButton.js +2 -0
- package/es/components/modal/parts/CloseButton.js.map +1 -1
- package/es/components/number-format/NumberFormat.js +2 -0
- package/es/components/number-format/NumberFormat.js.map +1 -1
- package/es/components/number-format/NumberUtils.js +2 -0
- package/es/components/number-format/NumberUtils.js.map +1 -1
- package/es/components/pagination/PaginationHelpers.js +2 -0
- package/es/components/pagination/PaginationHelpers.js.map +1 -1
- package/es/components/pagination/PaginationInfinity.js +2 -0
- package/es/components/pagination/PaginationInfinity.js.map +1 -1
- package/es/components/pagination/PaginationProvider.js +2 -0
- package/es/components/pagination/PaginationProvider.js.map +1 -1
- package/es/components/progress-indicator/ProgressIndicator.js +2 -0
- package/es/components/progress-indicator/ProgressIndicator.js.map +1 -1
- package/es/components/radio/Radio.js +5 -2
- package/es/components/radio/Radio.js.map +1 -1
- package/es/components/radio/RadioGroup.js +6 -4
- package/es/components/radio/RadioGroup.js.map +1 -1
- package/es/components/radio/style/dnb-radio.css +106 -0
- package/es/components/radio/style/dnb-radio.min.css +1 -1
- package/es/components/radio/style/dnb-radio.scss +202 -0
- package/es/components/radio/style/themes/dnb-radio-theme-sbanken.css +26 -0
- package/es/components/radio/style/themes/dnb-radio-theme-sbanken.min.css +1 -0
- package/es/components/radio/style/themes/dnb-radio-theme-sbanken.scss +33 -0
- package/es/components/radio/style/themes/dnb-radio-theme-ui.css +20 -86
- package/es/components/radio/style/themes/dnb-radio-theme-ui.min.css +1 -1
- package/es/components/radio/style/themes/dnb-radio-theme-ui.scss +26 -143
- package/es/components/section/Section.js +2 -0
- package/es/components/section/Section.js.map +1 -1
- package/es/components/skeleton/Skeleton.js +2 -0
- package/es/components/skeleton/Skeleton.js.map +1 -1
- package/es/components/skeleton/figures/Article.js +2 -0
- package/es/components/skeleton/figures/Article.js.map +1 -1
- package/es/components/skeleton/figures/Circle.js +2 -0
- package/es/components/skeleton/figures/Circle.js.map +1 -1
- package/es/components/skeleton/figures/Product.js +2 -0
- package/es/components/skeleton/figures/Product.js.map +1 -1
- package/es/components/skeleton/figures/Table.js +2 -0
- package/es/components/skeleton/figures/Table.js.map +1 -1
- package/es/components/slider/Slider.d.ts +1 -0
- package/es/components/slider/Slider.js +1 -0
- package/es/components/slider/Slider.js.map +1 -1
- package/es/components/slider/SliderInstance.js +2 -0
- package/es/components/slider/SliderInstance.js.map +1 -1
- package/es/components/slider/SliderProvider.js +2 -0
- package/es/components/slider/SliderProvider.js.map +1 -1
- package/es/components/space/Space.js +2 -0
- package/es/components/space/Space.js.map +1 -1
- package/es/components/switch/Switch.js +3 -0
- package/es/components/switch/Switch.js.map +1 -1
- package/es/components/table/Table.js +2 -0
- package/es/components/table/Table.js.map +1 -1
- package/es/components/tabs/Tabs.js +2 -0
- package/es/components/tabs/Tabs.js.map +1 -1
- package/es/components/tag/Tag.d.ts +1 -0
- package/es/components/tag/Tag.js +3 -0
- package/es/components/tag/Tag.js.map +1 -1
- package/es/components/tag/TagGroup.js +2 -0
- package/es/components/tag/TagGroup.js.map +1 -1
- package/es/components/textarea/Textarea.js +3 -0
- package/es/components/textarea/Textarea.js.map +1 -1
- package/es/components/timeline/Timeline.js +2 -0
- package/es/components/timeline/Timeline.js.map +1 -1
- package/es/components/timeline/TimelineItem.js +2 -0
- package/es/components/timeline/TimelineItem.js.map +1 -1
- package/es/components/toggle-button/ToggleButton.js +3 -0
- package/es/components/toggle-button/ToggleButton.js.map +1 -1
- package/es/components/toggle-button/ToggleButtonGroup.js +6 -4
- package/es/components/toggle-button/ToggleButtonGroup.js.map +1 -1
- package/es/components/tooltip/Tooltip.js +2 -0
- package/es/components/tooltip/Tooltip.js.map +1 -1
- package/es/components/tooltip/TooltipPortal.js +2 -0
- package/es/components/tooltip/TooltipPortal.js.map +1 -1
- package/es/components/upload/Upload.d.ts +1 -0
- package/es/components/upload/Upload.js +3 -0
- package/es/components/upload/Upload.js.map +1 -1
- package/es/components/upload/useUpload.js +2 -0
- package/es/components/upload/useUpload.js.map +1 -1
- package/es/components/visually-hidden/VisuallyHidden.js +2 -0
- package/es/components/visually-hidden/VisuallyHidden.js.map +1 -1
- package/es/elements/Element.js +2 -0
- package/es/elements/Element.js.map +1 -1
- package/es/elements/typography/H.js +2 -0
- package/es/elements/typography/H.js.map +1 -1
- package/es/extensions/forms/DataContext/Provider/Provider.js +53 -43
- package/es/extensions/forms/DataContext/Provider/Provider.js.map +1 -1
- package/es/extensions/forms/Field/BankAccountNumber/BankAccountNumber.js +9 -6
- package/es/extensions/forms/Field/BankAccountNumber/BankAccountNumber.js.map +1 -1
- package/es/extensions/forms/Field/Email/Email.js +7 -5
- package/es/extensions/forms/Field/Email/Email.js.map +1 -1
- package/es/extensions/forms/Field/Expiry/Expiry.d.ts +7 -0
- package/es/extensions/forms/Field/Expiry/Expiry.js +88 -0
- package/es/extensions/forms/Field/Expiry/Expiry.js.map +1 -0
- package/es/extensions/forms/Field/Expiry/index.d.ts +2 -0
- package/es/extensions/forms/Field/Expiry/index.js +3 -0
- package/es/extensions/forms/Field/Expiry/index.js.map +1 -0
- package/es/extensions/forms/Field/Expiry/style/dnb-expiry.css +12 -0
- package/es/extensions/forms/Field/Expiry/style/dnb-expiry.min.css +1 -0
- package/es/extensions/forms/Field/Expiry/style/dnb-expiry.scss +9 -0
- package/es/extensions/forms/Field/NationalIdentityNumber/NationalIdentityNumber.js +9 -6
- package/es/extensions/forms/Field/NationalIdentityNumber/NationalIdentityNumber.js.map +1 -1
- package/es/extensions/forms/Field/Number/Number.js +48 -25
- package/es/extensions/forms/Field/Number/Number.js.map +1 -1
- package/es/extensions/forms/Field/OrganizationNumber/OrganizationNumber.js +9 -6
- package/es/extensions/forms/Field/OrganizationNumber/OrganizationNumber.js.map +1 -1
- package/es/extensions/forms/Field/PhoneNumber/PhoneNumber.js +34 -21
- package/es/extensions/forms/Field/PhoneNumber/PhoneNumber.js.map +1 -1
- package/es/extensions/forms/Field/SelectCountry/SelectCountry.js +6 -4
- package/es/extensions/forms/Field/SelectCountry/SelectCountry.js.map +1 -1
- package/es/extensions/forms/Field/String/String.js +30 -20
- package/es/extensions/forms/Field/String/String.js.map +1 -1
- package/es/extensions/forms/Field/index.d.ts +1 -0
- package/es/extensions/forms/Field/index.js +1 -0
- package/es/extensions/forms/Field/index.js.map +1 -1
- package/es/extensions/forms/Field/style/dnb-forms-field.css +13 -0
- package/es/extensions/forms/Field/style/dnb-forms-field.min.css +1 -1
- package/es/extensions/forms/Field/style/dnb-forms-field.scss +1 -0
- package/es/extensions/forms/FieldBlock/FieldBlock.js +36 -3
- package/es/extensions/forms/FieldBlock/FieldBlock.js.map +1 -1
- package/es/extensions/forms/Form/Element/Element.js +2 -0
- package/es/extensions/forms/Form/Element/Element.js.map +1 -1
- package/es/extensions/forms/Form/Handler/Handler.js +2 -0
- package/es/extensions/forms/Form/Handler/Handler.js.map +1 -1
- package/es/extensions/forms/hooks/index.d.ts +3 -0
- package/es/extensions/forms/hooks/index.js +5 -1
- package/es/extensions/forms/hooks/index.js.map +1 -1
- package/es/extensions/forms/hooks/useDataValue.js +127 -62
- package/es/extensions/forms/hooks/useDataValue.js.map +1 -1
- package/es/extensions/forms/hooks/useMountEffect.d.ts +5 -0
- package/es/extensions/forms/hooks/useMountEffect.js +9 -0
- package/es/extensions/forms/hooks/useMountEffect.js.map +1 -0
- package/es/extensions/forms/hooks/useProcessManager.d.ts +6 -0
- package/es/extensions/forms/hooks/useProcessManager.js +16 -0
- package/es/extensions/forms/hooks/useProcessManager.js.map +1 -0
- package/es/extensions/forms/hooks/useUpdateEffect.d.ts +5 -0
- package/es/extensions/forms/hooks/useUpdateEffect.js +14 -0
- package/es/extensions/forms/hooks/useUpdateEffect.js.map +1 -0
- package/es/extensions/forms/style/dnb-forms.css +13 -0
- package/es/extensions/forms/style/dnb-forms.min.css +1 -1
- package/es/extensions/forms/types.d.ts +10 -2
- package/es/extensions/forms/types.js +2 -0
- package/es/extensions/forms/types.js.map +1 -1
- package/es/extensions/forms/utils/ajv.js +25 -1
- package/es/extensions/forms/utils/ajv.js.map +1 -1
- package/es/extensions/forms/utils/errors.d.ts +2 -0
- package/es/extensions/forms/utils/errors.js +10 -0
- package/es/extensions/forms/utils/errors.js.map +1 -0
- package/es/extensions/forms/utils/index.d.ts +1 -0
- package/es/extensions/forms/utils/index.js +1 -0
- package/es/extensions/forms/utils/index.js.map +1 -1
- package/es/extensions/payment-card/PaymentCard.js +2 -0
- package/es/extensions/payment-card/PaymentCard.js.map +1 -1
- package/es/fragments/drawer-list/DrawerListProvider.js +2 -0
- package/es/fragments/drawer-list/DrawerListProvider.js.map +1 -1
- package/es/fragments/scroll-view/ScrollView.js +2 -0
- package/es/fragments/scroll-view/ScrollView.js.map +1 -1
- package/es/shared/Eufemia.d.ts +1 -1
- package/es/shared/Eufemia.js +2 -2
- package/es/shared/Eufemia.js.map +1 -1
- package/es/shared/MediaQuery.js +2 -0
- package/es/shared/MediaQuery.js.map +1 -1
- package/es/shared/Provider.js +2 -0
- package/es/shared/Provider.js.map +1 -1
- package/es/shared/Theme.js +2 -0
- package/es/shared/Theme.js.map +1 -1
- package/es/shared/VisibilityByTheme.js +2 -0
- package/es/shared/VisibilityByTheme.js.map +1 -1
- package/es/shared/index.js +2 -0
- package/es/shared/index.js.map +1 -1
- package/es/shared/locales/en-GB.d.ts +11 -0
- package/es/shared/locales/en-GB.js +12 -1
- package/es/shared/locales/en-GB.js.map +1 -1
- package/es/shared/locales/en-US.d.ts +11 -0
- package/es/shared/locales/index.d.ts +22 -0
- package/es/shared/locales/nb-NO.d.ts +11 -0
- package/es/shared/locales/nb-NO.js +12 -1
- package/es/shared/locales/nb-NO.js.map +1 -1
- package/es/shared/useMedia.js +2 -0
- package/es/shared/useMedia.js.map +1 -1
- package/es/shared/useMediaQuery.js +2 -0
- package/es/shared/useMediaQuery.js.map +1 -1
- package/es/shared/useTheme.js +2 -0
- package/es/shared/useTheme.js.map +1 -1
- package/es/shared/useTranslation.js +2 -0
- package/es/shared/useTranslation.js.map +1 -1
- package/es/style/dnb-ui-components.css +106 -0
- package/es/style/dnb-ui-components.min.css +1 -1
- package/es/style/dnb-ui-extensions.css +13 -0
- package/es/style/dnb-ui-extensions.min.css +1 -1
- package/es/style/themes/theme-eiendom/eiendom-theme-components.css +126 -86
- package/es/style/themes/theme-eiendom/eiendom-theme-components.min.css +2 -2
- package/es/style/themes/theme-eiendom/eiendom-theme-extensions.css +13 -0
- package/es/style/themes/theme-eiendom/eiendom-theme-extensions.min.css +1 -1
- package/es/style/themes/theme-sbanken/sbanken-theme-components.css +133 -93
- package/es/style/themes/theme-sbanken/sbanken-theme-components.min.css +3 -3
- package/es/style/themes/theme-sbanken/sbanken-theme-components.scss +1 -1
- package/es/style/themes/theme-sbanken/sbanken-theme-extensions.css +13 -0
- package/es/style/themes/theme-sbanken/sbanken-theme-extensions.min.css +1 -1
- package/es/style/themes/theme-ui/ui-theme-components.css +126 -86
- package/es/style/themes/theme-ui/ui-theme-components.min.css +2 -2
- package/es/style/themes/theme-ui/ui-theme-extensions.css +13 -0
- package/es/style/themes/theme-ui/ui-theme-extensions.min.css +1 -1
- package/esm/dnb-ui-basis.min.mjs +1 -1
- package/esm/dnb-ui-components.min.mjs +1 -1
- 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 +1 -1
- package/extensions/forms/DataContext/Provider/Provider.js +53 -43
- package/extensions/forms/DataContext/Provider/Provider.js.map +1 -1
- package/extensions/forms/Field/BankAccountNumber/BankAccountNumber.js +9 -6
- package/extensions/forms/Field/BankAccountNumber/BankAccountNumber.js.map +1 -1
- package/extensions/forms/Field/Email/Email.js +7 -5
- package/extensions/forms/Field/Email/Email.js.map +1 -1
- package/extensions/forms/Field/Expiry/Expiry.d.ts +7 -0
- package/extensions/forms/Field/Expiry/Expiry.js +88 -0
- package/extensions/forms/Field/Expiry/Expiry.js.map +1 -0
- package/extensions/forms/Field/Expiry/index.d.ts +2 -0
- package/extensions/forms/Field/Expiry/index.js +3 -0
- package/extensions/forms/Field/Expiry/index.js.map +1 -0
- package/extensions/forms/Field/Expiry/style/dnb-expiry.css +12 -0
- package/extensions/forms/Field/Expiry/style/dnb-expiry.min.css +1 -0
- package/extensions/forms/Field/Expiry/style/dnb-expiry.scss +9 -0
- package/extensions/forms/Field/NationalIdentityNumber/NationalIdentityNumber.js +9 -6
- package/extensions/forms/Field/NationalIdentityNumber/NationalIdentityNumber.js.map +1 -1
- package/extensions/forms/Field/Number/Number.js +49 -26
- package/extensions/forms/Field/Number/Number.js.map +1 -1
- package/extensions/forms/Field/OrganizationNumber/OrganizationNumber.js +9 -6
- package/extensions/forms/Field/OrganizationNumber/OrganizationNumber.js.map +1 -1
- package/extensions/forms/Field/PhoneNumber/PhoneNumber.js +46 -33
- package/extensions/forms/Field/PhoneNumber/PhoneNumber.js.map +1 -1
- package/extensions/forms/Field/SelectCountry/SelectCountry.js +6 -4
- package/extensions/forms/Field/SelectCountry/SelectCountry.js.map +1 -1
- package/extensions/forms/Field/String/String.js +31 -21
- package/extensions/forms/Field/String/String.js.map +1 -1
- package/extensions/forms/Field/index.d.ts +1 -0
- package/extensions/forms/Field/index.js +1 -0
- package/extensions/forms/Field/index.js.map +1 -1
- package/extensions/forms/Field/style/dnb-forms-field.css +13 -0
- package/extensions/forms/Field/style/dnb-forms-field.min.css +1 -1
- package/extensions/forms/Field/style/dnb-forms-field.scss +1 -0
- package/extensions/forms/FieldBlock/FieldBlock.js +37 -3
- package/extensions/forms/FieldBlock/FieldBlock.js.map +1 -1
- package/extensions/forms/Form/Element/Element.js +2 -0
- package/extensions/forms/Form/Element/Element.js.map +1 -1
- package/extensions/forms/Form/Handler/Handler.js +2 -0
- package/extensions/forms/Form/Handler/Handler.js.map +1 -1
- package/extensions/forms/hooks/index.d.ts +3 -0
- package/extensions/forms/hooks/index.js +5 -1
- package/extensions/forms/hooks/index.js.map +1 -1
- package/extensions/forms/hooks/useDataValue.js +128 -62
- package/extensions/forms/hooks/useDataValue.js.map +1 -1
- package/extensions/forms/hooks/useMountEffect.d.ts +5 -0
- package/extensions/forms/hooks/useMountEffect.js +9 -0
- package/extensions/forms/hooks/useMountEffect.js.map +1 -0
- package/extensions/forms/hooks/useProcessManager.d.ts +6 -0
- package/extensions/forms/hooks/useProcessManager.js +16 -0
- package/extensions/forms/hooks/useProcessManager.js.map +1 -0
- package/extensions/forms/hooks/useUpdateEffect.d.ts +5 -0
- package/extensions/forms/hooks/useUpdateEffect.js +14 -0
- package/extensions/forms/hooks/useUpdateEffect.js.map +1 -0
- package/extensions/forms/style/dnb-forms.css +13 -0
- package/extensions/forms/style/dnb-forms.min.css +1 -1
- package/extensions/forms/types.d.ts +10 -2
- package/extensions/forms/types.js +2 -0
- package/extensions/forms/types.js.map +1 -1
- package/extensions/forms/utils/ajv.js +25 -1
- package/extensions/forms/utils/ajv.js.map +1 -1
- package/extensions/forms/utils/errors.d.ts +2 -0
- package/extensions/forms/utils/errors.js +10 -0
- package/extensions/forms/utils/errors.js.map +1 -0
- package/extensions/forms/utils/index.d.ts +1 -0
- package/extensions/forms/utils/index.js +1 -0
- package/extensions/forms/utils/index.js.map +1 -1
- package/extensions/payment-card/PaymentCard.js +2 -0
- package/extensions/payment-card/PaymentCard.js.map +1 -1
- package/fragments/drawer-list/DrawerListProvider.js +2 -0
- package/fragments/drawer-list/DrawerListProvider.js.map +1 -1
- package/fragments/scroll-view/ScrollView.js +2 -0
- package/fragments/scroll-view/ScrollView.js.map +1 -1
- package/package.json +1 -1
- package/shared/Eufemia.d.ts +1 -1
- package/shared/Eufemia.js +2 -2
- package/shared/Eufemia.js.map +1 -1
- package/shared/MediaQuery.js +2 -0
- package/shared/MediaQuery.js.map +1 -1
- package/shared/Provider.js +2 -0
- package/shared/Provider.js.map +1 -1
- package/shared/Theme.js +2 -0
- package/shared/Theme.js.map +1 -1
- package/shared/VisibilityByTheme.js +2 -0
- package/shared/VisibilityByTheme.js.map +1 -1
- package/shared/index.js +2 -0
- package/shared/index.js.map +1 -1
- package/shared/locales/en-GB.d.ts +11 -0
- package/shared/locales/en-GB.js +12 -1
- package/shared/locales/en-GB.js.map +1 -1
- package/shared/locales/en-US.d.ts +11 -0
- package/shared/locales/index.d.ts +22 -0
- package/shared/locales/nb-NO.d.ts +11 -0
- package/shared/locales/nb-NO.js +12 -1
- package/shared/locales/nb-NO.js.map +1 -1
- package/shared/useMedia.js +2 -0
- package/shared/useMedia.js.map +1 -1
- package/shared/useMediaQuery.js +2 -0
- package/shared/useMediaQuery.js.map +1 -1
- package/shared/useTheme.js +2 -0
- package/shared/useTheme.js.map +1 -1
- package/shared/useTranslation.js +2 -0
- package/shared/useTranslation.js.map +1 -1
- package/style/dnb-ui-components.css +106 -0
- package/style/dnb-ui-components.min.css +1 -1
- package/style/dnb-ui-extensions.css +13 -0
- package/style/dnb-ui-extensions.min.css +1 -1
- package/style/themes/theme-eiendom/eiendom-theme-components.css +126 -86
- package/style/themes/theme-eiendom/eiendom-theme-components.min.css +2 -2
- package/style/themes/theme-eiendom/eiendom-theme-extensions.css +13 -0
- package/style/themes/theme-eiendom/eiendom-theme-extensions.min.css +1 -1
- package/style/themes/theme-sbanken/sbanken-theme-components.css +133 -93
- package/style/themes/theme-sbanken/sbanken-theme-components.min.css +3 -3
- package/style/themes/theme-sbanken/sbanken-theme-components.scss +1 -1
- package/style/themes/theme-sbanken/sbanken-theme-extensions.css +13 -0
- package/style/themes/theme-sbanken/sbanken-theme-extensions.min.css +1 -1
- package/style/themes/theme-ui/ui-theme-components.css +126 -86
- package/style/themes/theme-ui/ui-theme-components.min.css +2 -2
- package/style/themes/theme-ui/ui-theme-extensions.css +13 -0
- package/style/themes/theme-ui/ui-theme-extensions.min.css +1 -1
- package/umd/dnb-ui-basis.min.js +1 -1
- package/umd/dnb-ui-components.min.js +1 -1
- package/umd/dnb-ui-elements.min.js +1 -1
- package/umd/dnb-ui-extensions.min.js +2 -2
- package/umd/dnb-ui-lib.min.js +1 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Tooltip.js","names":["React","classnames","Context","makeUniqueId","validateDOMAttributes","createSpacingClasses","TooltipWithEvents","defaultProps","getPropsFromTooltipProp","getRefElement","getTargetElement","injectTooltipSemantic","convertSnakeCaseProps","Tooltip","localProps","context","useContext","inherited","props","_objectSpread","getTranslation","targetElement","targetSelector","className","id","tooltip","size","fixedPosition","skipPortal","noAnimation","showDelay","hideDelay","active","position","arrow","align","params","_objectWithoutProperties","_excluded","target","element","setElement","useState","internalId","useEffect","classes","attributes","createElement","_extends","children"],"sources":["../../../../src/components/tooltip/Tooltip.tsx"],"sourcesContent":["/**\n * Web Tooltip Component\n *\n */\n\nimport React from 'react'\nimport classnames from 'classnames'\nimport Context from '../../shared/Context'\nimport {\n makeUniqueId,\n validateDOMAttributes,\n} from '../../shared/component-helper'\nimport { createSpacingClasses } from '../space/SpacingHelper'\nimport TooltipWithEvents from './TooltipWithEvents'\nimport {\n defaultProps,\n getPropsFromTooltipProp,\n getRefElement,\n getTargetElement,\n injectTooltipSemantic,\n} from './TooltipHelpers'\nimport { TooltipAllProps } from './types'\nimport { convertSnakeCaseProps } from '../../shared/helpers/withSnakeCaseProps'\n\nfunction Tooltip(localProps: TooltipAllProps) {\n const context = React.useContext(Context)\n\n const inherited = getPropsFromTooltipProp(localProps)\n\n // use only the props from context, who are available here anyway\n const props = convertSnakeCaseProps({\n ...defaultProps,\n ...localProps,\n ...inherited,\n ...context.getTranslation(localProps).Tooltip,\n ...context.Tooltip,\n })\n\n const {\n targetElement,\n targetSelector,\n className,\n id, // eslint-disable-line\n tooltip, // eslint-disable-line\n size,\n fixedPosition, // eslint-disable-line\n skipPortal, // eslint-disable-line\n noAnimation, // eslint-disable-line\n showDelay, // eslint-disable-line\n hideDelay, // eslint-disable-line\n active, // eslint-disable-line\n position, // eslint-disable-line\n arrow, // eslint-disable-line\n align, // eslint-disable-line\n ...params\n } = props\n\n const target = targetElement || targetSelector\n\n const [element, setElement] = React.useState<\n HTMLElement | React.ReactElement\n >()\n const [internalId] = React.useState(() => props.id || makeUniqueId()) // cause we need an id anyway\n props.internalId = internalId\n\n React.useEffect(() => {\n const element = getTargetElement(getRefElement(target))\n setElement(element)\n }, [target])\n\n const classes = classnames(\n 'dnb-tooltip',\n size === 'large' && 'dnb-tooltip--large',\n createSpacingClasses(props),\n className\n )\n\n const attributes = {\n className: classes,\n ...params,\n }\n\n // also used for code markup simulation\n validateDOMAttributes(localProps, attributes)\n\n if (target && !element) {\n return null\n }\n\n return (\n <TooltipWithEvents target={element} attributes={attributes} {...props}>\n {props.children}\n </TooltipWithEvents>\n )\n}\n\nexport { injectTooltipSemantic }\nexport default Tooltip\n"],"mappings":"
|
|
1
|
+
{"version":3,"file":"Tooltip.js","names":["React","classnames","Context","makeUniqueId","validateDOMAttributes","createSpacingClasses","TooltipWithEvents","defaultProps","getPropsFromTooltipProp","getRefElement","getTargetElement","injectTooltipSemantic","convertSnakeCaseProps","Tooltip","localProps","context","useContext","inherited","props","_objectSpread","getTranslation","targetElement","targetSelector","className","id","tooltip","size","fixedPosition","skipPortal","noAnimation","showDelay","hideDelay","active","position","arrow","align","params","_objectWithoutProperties","_excluded","target","element","setElement","useState","internalId","useEffect","classes","attributes","createElement","_extends","children"],"sources":["../../../../src/components/tooltip/Tooltip.tsx"],"sourcesContent":["/**\n * Web Tooltip Component\n *\n */\n\nimport React from 'react'\nimport classnames from 'classnames'\nimport Context from '../../shared/Context'\nimport {\n makeUniqueId,\n validateDOMAttributes,\n} from '../../shared/component-helper'\nimport { createSpacingClasses } from '../space/SpacingHelper'\nimport TooltipWithEvents from './TooltipWithEvents'\nimport {\n defaultProps,\n getPropsFromTooltipProp,\n getRefElement,\n getTargetElement,\n injectTooltipSemantic,\n} from './TooltipHelpers'\nimport { TooltipAllProps } from './types'\nimport { convertSnakeCaseProps } from '../../shared/helpers/withSnakeCaseProps'\n\nfunction Tooltip(localProps: TooltipAllProps) {\n const context = React.useContext(Context)\n\n const inherited = getPropsFromTooltipProp(localProps)\n\n // use only the props from context, who are available here anyway\n const props = convertSnakeCaseProps({\n ...defaultProps,\n ...localProps,\n ...inherited,\n ...context.getTranslation(localProps).Tooltip,\n ...context.Tooltip,\n })\n\n const {\n targetElement,\n targetSelector,\n className,\n id, // eslint-disable-line\n tooltip, // eslint-disable-line\n size,\n fixedPosition, // eslint-disable-line\n skipPortal, // eslint-disable-line\n noAnimation, // eslint-disable-line\n showDelay, // eslint-disable-line\n hideDelay, // eslint-disable-line\n active, // eslint-disable-line\n position, // eslint-disable-line\n arrow, // eslint-disable-line\n align, // eslint-disable-line\n ...params\n } = props\n\n const target = targetElement || targetSelector\n\n const [element, setElement] = React.useState<\n HTMLElement | React.ReactElement\n >()\n const [internalId] = React.useState(() => props.id || makeUniqueId()) // cause we need an id anyway\n props.internalId = internalId\n\n React.useEffect(() => {\n const element = getTargetElement(getRefElement(target))\n setElement(element)\n }, [target])\n\n const classes = classnames(\n 'dnb-tooltip',\n size === 'large' && 'dnb-tooltip--large',\n createSpacingClasses(props),\n className\n )\n\n const attributes = {\n className: classes,\n ...params,\n }\n\n // also used for code markup simulation\n validateDOMAttributes(localProps, attributes)\n\n if (target && !element) {\n return null\n }\n\n return (\n <TooltipWithEvents target={element} attributes={attributes} {...props}>\n {props.children}\n </TooltipWithEvents>\n )\n}\n\nexport { injectTooltipSemantic }\nexport default Tooltip\n"],"mappings":";;;;;;;;AAKA,OAAOA,KAAK,MAAM,OAAO;AACzB,OAAOC,UAAU,MAAM,YAAY;AACnC,OAAOC,OAAO,MAAM,sBAAsB;AAC1C,SACEC,YAAY,EACZC,qBAAqB,QAChB,+BAA+B;AACtC,SAASC,oBAAoB,QAAQ,wBAAwB;AAC7D,OAAOC,iBAAiB,MAAM,qBAAqB;AACnD,SACEC,YAAY,EACZC,uBAAuB,EACvBC,aAAa,EACbC,gBAAgB,EAChBC,qBAAqB,QAChB,kBAAkB;AAEzB,SAASC,qBAAqB,QAAQ,yCAAyC;AAE/E,SAASC,OAAOA,CAACC,UAA2B,EAAE;EAC5C,MAAMC,OAAO,GAAGf,KAAK,CAACgB,UAAU,CAACd,OAAO,CAAC;EAEzC,MAAMe,SAAS,GAAGT,uBAAuB,CAACM,UAAU,CAAC;EAGrD,MAAMI,KAAK,GAAGN,qBAAqB,CAAAO,aAAA,CAAAA,aAAA,CAAAA,aAAA,CAAAA,aAAA,CAAAA,aAAA,KAC9BZ,YAAY,GACZO,UAAU,GACVG,SAAS,GACTF,OAAO,CAACK,cAAc,CAACN,UAAU,CAAC,CAACD,OAAO,GAC1CE,OAAO,CAACF,OAAO,CACnB,CAAC;EAEF,MAAM;MACJQ,aAAa;MACbC,cAAc;MACdC,SAAS;MACTC,EAAE;MACFC,OAAO;MACPC,IAAI;MACJC,aAAa;MACbC,UAAU;MACVC,WAAW;MACXC,SAAS;MACTC,SAAS;MACTC,MAAM;MACNC,QAAQ;MACRC,KAAK;MACLC;IAEF,CAAC,GAAGjB,KAAK;IADJkB,MAAM,GAAAC,wBAAA,CACPnB,KAAK,EAAAoB,SAAA;EAET,MAAMC,MAAM,GAAGlB,aAAa,IAAIC,cAAc;EAE9C,MAAM,CAACkB,OAAO,EAAEC,UAAU,CAAC,GAAGzC,KAAK,CAAC0C,QAAQ,CAE1C,CAAC;EACH,MAAM,CAACC,UAAU,CAAC,GAAG3C,KAAK,CAAC0C,QAAQ,CAAC,MAAMxB,KAAK,CAACM,EAAE,IAAIrB,YAAY,CAAC,CAAC,CAAC;EACrEe,KAAK,CAACyB,UAAU,GAAGA,UAAU;EAE7B3C,KAAK,CAAC4C,SAAS,CAAC,MAAM;IACpB,MAAMJ,OAAO,GAAG9B,gBAAgB,CAACD,aAAa,CAAC8B,MAAM,CAAC,CAAC;IACvDE,UAAU,CAACD,OAAO,CAAC;EACrB,CAAC,EAAE,CAACD,MAAM,CAAC,CAAC;EAEZ,MAAMM,OAAO,GAAG5C,UAAU,CACxB,aAAa,EAEbI,oBAAoB,CAACa,KAAK,CAAC,EAC3BK,SAAS,EAFTG,IAAI,KAAK,OAAO,IAAI,oBAGtB,CAAC;EAED,MAAMoB,UAAU,GAAA3B,aAAA;IACdI,SAAS,EAAEsB;EAAO,GACfT,MAAM,CACV;EAGDhC,qBAAqB,CAACU,UAAU,EAAEgC,UAAU,CAAC;EAE7C,IAAIP,MAAM,IAAI,CAACC,OAAO,EAAE;IACtB,OAAO,IAAI;EACb;EAEA,OACExC,KAAA,CAAA+C,aAAA,CAACzC,iBAAiB,EAAA0C,QAAA;IAACT,MAAM,EAAEC,OAAQ;IAACM,UAAU,EAAEA;EAAW,GAAK5B,KAAK,GAClEA,KAAK,CAAC+B,QACU,CAAC;AAExB;AAEA,SAAStC,qBAAqB;AAC9B,eAAeE,OAAO"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"TooltipPortal.js","names":["React","ReactDOM","makeUniqueId","warn","TooltipContainer","useTheme","getThemeClasses","tooltipPortal","globalThis","TooltipPortal","props","_tooltipPortal$id3","active","targetElement","hideDelay","keepInDOM","noAnimation","children","isMounted","setIsMounted","useState","isActive","setIsActive","id","isInDOM","useRef","theme","makePortal","count","node","createRootElement","clearTimers","_tooltipPortal$id","_tooltipPortal$id2","clearTimeout","delayTimeout","hiddenTimeout","removeFromDOM","hide","ref","useEffect","current","delayRender","delayHidden","IS_TEST","delay","parseFloat","String","setTimeout","root","createPortal","createElement","_extends","className","arguments","length","undefined","element","document","querySelector","elem","classList","add","call","split","body","appendChild","e"],"sources":["../../../../src/components/tooltip/TooltipPortal.tsx"],"sourcesContent":["/**\n * Web Tooltip Component\n *\n */\n\nimport React from 'react'\nimport ReactDOM from 'react-dom'\nimport { makeUniqueId, warn } from '../../shared/component-helper'\nimport TooltipContainer from './TooltipContainer'\nimport { TooltipProps } from './types'\nimport { useTheme } from '../../shared'\nimport { ThemeProps, getThemeClasses } from '../../shared/Theme'\n\ntype TooltipType = {\n node: HTMLElement\n count?: number\n delayTimeout?: NodeJS.Timeout\n hiddenTimeout?: NodeJS.Timeout\n}\n\nlet tooltipPortal: Record<string, TooltipType>\nif (typeof globalThis !== 'undefined') {\n globalThis.tooltipPortal = globalThis.tooltipPortal || {}\n tooltipPortal = globalThis.tooltipPortal\n} else {\n tooltipPortal = {}\n}\n\ntype TooltipPortalProps = {\n targetElement: HTMLElement\n active: boolean\n keepInDOM?: boolean\n children?: React.ReactNode\n}\n\nfunction TooltipPortal(\n props: TooltipProps & TooltipPortalProps\n): JSX.Element {\n const {\n active,\n targetElement,\n hideDelay,\n keepInDOM,\n noAnimation,\n children,\n } = props\n\n const [isMounted, setIsMounted] = React.useState(false)\n const [isActive, setIsActive] = React.useState(active)\n const [id] = React.useState(() => makeUniqueId())\n const isInDOM = React.useRef(false)\n\n const theme = useTheme()\n\n const makePortal = () => {\n if (!tooltipPortal[id]) {\n tooltipPortal[id] = {\n count: 0,\n node: createRootElement(theme),\n }\n }\n }\n\n const clearTimers = () => {\n clearTimeout(tooltipPortal[id]?.delayTimeout)\n clearTimeout(tooltipPortal[id]?.hiddenTimeout)\n }\n\n const removeFromDOM = (hide?: boolean) => {\n if (isActive && hide) {\n return // stop here\n }\n\n const ref = tooltipPortal[id]\n if (ref?.node) {\n ref.count--\n if (ref.count <= 0) {\n /**\n * Remove the referenced data\n */\n delete tooltipPortal[id]\n }\n }\n }\n\n React.useEffect(() => {\n setIsMounted(true)\n\n clearTimers()\n\n if (active) {\n makePortal()\n setIsActive(true)\n\n isInDOM.current = true\n\n if (!isMounted) {\n tooltipPortal[id].count++\n }\n } else if (!active && isMounted) {\n const delayRender = () => {\n setIsActive(false)\n }\n\n const delayHidden = () => {\n isInDOM.current = false\n removeFromDOM(true)\n }\n\n if (noAnimation || globalThis.IS_TEST) {\n delayRender()\n delayHidden()\n } else if (tooltipPortal[id]) {\n const delay = parseFloat(String(hideDelay))\n tooltipPortal[id].delayTimeout = setTimeout(delayRender, delay)\n tooltipPortal[id].hiddenTimeout = setTimeout(\n delayHidden,\n delay + 300\n )\n }\n }\n\n return clearTimers\n\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [children, active, id, hideDelay, noAnimation])\n\n React.useEffect(() => {\n /**\n * Because of \"aria-describedby\" on the target element,\n * the Tooltip should exist in the DOM\n */\n if (keepInDOM) {\n makePortal()\n }\n\n return removeFromDOM\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [])\n\n const root = tooltipPortal[id]?.node\n\n if (root) {\n return ReactDOM.createPortal(\n isInDOM.current || keepInDOM ? (\n <TooltipContainer\n {...props}\n targetElement={targetElement}\n active={isActive}\n >\n {children}\n </TooltipContainer>\n ) : null,\n root\n )\n }\n\n return null\n}\n\nexport default TooltipPortal\n\nconst createRootElement = (theme: ThemeProps, className = null) => {\n if (!className) {\n className = 'dnb-tooltip__portal'\n }\n try {\n const element: HTMLElement = document.querySelector(`.${className}`)\n\n if (element) {\n return element\n }\n\n const elem = document.createElement('div')\n elem.classList.add(className)\n elem.classList.add('dnb-core-style')\n\n if (theme) {\n elem.classList.add.call(\n elem.classList,\n ...getThemeClasses(theme).split(' ')\n )\n }\n\n document.body.appendChild(elem)\n\n return elem\n } catch (e) {\n warn(e)\n }\n}\n"],"mappings":"
|
|
1
|
+
{"version":3,"file":"TooltipPortal.js","names":["React","ReactDOM","makeUniqueId","warn","TooltipContainer","useTheme","getThemeClasses","tooltipPortal","globalThis","TooltipPortal","props","_tooltipPortal$id3","active","targetElement","hideDelay","keepInDOM","noAnimation","children","isMounted","setIsMounted","useState","isActive","setIsActive","id","isInDOM","useRef","theme","makePortal","count","node","createRootElement","clearTimers","_tooltipPortal$id","_tooltipPortal$id2","clearTimeout","delayTimeout","hiddenTimeout","removeFromDOM","hide","ref","useEffect","current","delayRender","delayHidden","IS_TEST","delay","parseFloat","String","setTimeout","root","createPortal","createElement","_extends","className","arguments","length","undefined","element","document","querySelector","elem","classList","add","call","split","body","appendChild","e"],"sources":["../../../../src/components/tooltip/TooltipPortal.tsx"],"sourcesContent":["/**\n * Web Tooltip Component\n *\n */\n\nimport React from 'react'\nimport ReactDOM from 'react-dom'\nimport { makeUniqueId, warn } from '../../shared/component-helper'\nimport TooltipContainer from './TooltipContainer'\nimport { TooltipProps } from './types'\nimport { useTheme } from '../../shared'\nimport { ThemeProps, getThemeClasses } from '../../shared/Theme'\n\ntype TooltipType = {\n node: HTMLElement\n count?: number\n delayTimeout?: NodeJS.Timeout\n hiddenTimeout?: NodeJS.Timeout\n}\n\nlet tooltipPortal: Record<string, TooltipType>\nif (typeof globalThis !== 'undefined') {\n globalThis.tooltipPortal = globalThis.tooltipPortal || {}\n tooltipPortal = globalThis.tooltipPortal\n} else {\n tooltipPortal = {}\n}\n\ntype TooltipPortalProps = {\n targetElement: HTMLElement\n active: boolean\n keepInDOM?: boolean\n children?: React.ReactNode\n}\n\nfunction TooltipPortal(\n props: TooltipProps & TooltipPortalProps\n): JSX.Element {\n const {\n active,\n targetElement,\n hideDelay,\n keepInDOM,\n noAnimation,\n children,\n } = props\n\n const [isMounted, setIsMounted] = React.useState(false)\n const [isActive, setIsActive] = React.useState(active)\n const [id] = React.useState(() => makeUniqueId())\n const isInDOM = React.useRef(false)\n\n const theme = useTheme()\n\n const makePortal = () => {\n if (!tooltipPortal[id]) {\n tooltipPortal[id] = {\n count: 0,\n node: createRootElement(theme),\n }\n }\n }\n\n const clearTimers = () => {\n clearTimeout(tooltipPortal[id]?.delayTimeout)\n clearTimeout(tooltipPortal[id]?.hiddenTimeout)\n }\n\n const removeFromDOM = (hide?: boolean) => {\n if (isActive && hide) {\n return // stop here\n }\n\n const ref = tooltipPortal[id]\n if (ref?.node) {\n ref.count--\n if (ref.count <= 0) {\n /**\n * Remove the referenced data\n */\n delete tooltipPortal[id]\n }\n }\n }\n\n React.useEffect(() => {\n setIsMounted(true)\n\n clearTimers()\n\n if (active) {\n makePortal()\n setIsActive(true)\n\n isInDOM.current = true\n\n if (!isMounted) {\n tooltipPortal[id].count++\n }\n } else if (!active && isMounted) {\n const delayRender = () => {\n setIsActive(false)\n }\n\n const delayHidden = () => {\n isInDOM.current = false\n removeFromDOM(true)\n }\n\n if (noAnimation || globalThis.IS_TEST) {\n delayRender()\n delayHidden()\n } else if (tooltipPortal[id]) {\n const delay = parseFloat(String(hideDelay))\n tooltipPortal[id].delayTimeout = setTimeout(delayRender, delay)\n tooltipPortal[id].hiddenTimeout = setTimeout(\n delayHidden,\n delay + 300\n )\n }\n }\n\n return clearTimers\n\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [children, active, id, hideDelay, noAnimation])\n\n React.useEffect(() => {\n /**\n * Because of \"aria-describedby\" on the target element,\n * the Tooltip should exist in the DOM\n */\n if (keepInDOM) {\n makePortal()\n }\n\n return removeFromDOM\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [])\n\n const root = tooltipPortal[id]?.node\n\n if (root) {\n return ReactDOM.createPortal(\n isInDOM.current || keepInDOM ? (\n <TooltipContainer\n {...props}\n targetElement={targetElement}\n active={isActive}\n >\n {children}\n </TooltipContainer>\n ) : null,\n root\n )\n }\n\n return null\n}\n\nexport default TooltipPortal\n\nconst createRootElement = (theme: ThemeProps, className = null) => {\n if (!className) {\n className = 'dnb-tooltip__portal'\n }\n try {\n const element: HTMLElement = document.querySelector(`.${className}`)\n\n if (element) {\n return element\n }\n\n const elem = document.createElement('div')\n elem.classList.add(className)\n elem.classList.add('dnb-core-style')\n\n if (theme) {\n elem.classList.add.call(\n elem.classList,\n ...getThemeClasses(theme).split(' ')\n )\n }\n\n document.body.appendChild(elem)\n\n return elem\n } catch (e) {\n warn(e)\n }\n}\n"],"mappings":"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"}
|
|
@@ -1,3 +1,5 @@
|
|
|
1
|
+
"use client";
|
|
2
|
+
|
|
1
3
|
import _extends from "@babel/runtime/helpers/esm/extends";
|
|
2
4
|
import _defineProperty from "@babel/runtime/helpers/esm/defineProperty";
|
|
3
5
|
import _objectWithoutProperties from "@babel/runtime/helpers/esm/objectWithoutProperties";
|
|
@@ -114,6 +116,7 @@ const Upload = localProps => {
|
|
|
114
116
|
}
|
|
115
117
|
};
|
|
116
118
|
Upload.useUpload = useUpload;
|
|
119
|
+
Upload._formElement = true;
|
|
117
120
|
Upload._supportsSpacingProps = true;
|
|
118
121
|
export default Upload;
|
|
119
122
|
//# sourceMappingURL=Upload.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Upload.js","names":["React","classnames","createSpacingClasses","Provider","Context","extendPropsWithContext","makeUniqueId","UploadFileInput","useUpload","UploadDropzone","UploadContext","defaultProps","verifyFiles","UploadFileList","UploadInfo","Upload","localProps","context","useContext","_context$getTranslati","getTranslation","buttonTextSingular","textSingular","translations","_objectWithoutProperties","_excluded","filesAmountLimit","buttonText","text","extendedProps","skeleton","id","className","acceptedFileTypes","fileMaxSize","onChange","onFileDelete","title","fileTypeDescription","fileSizeDescription","fileAmountDescription","fileSizeContent","loadingText","errorLargeFile","errorUnsupportedFile","errorAmountLimit","deleteButton","fileListAriaLabel","props","_excluded2","spacingClasses","files","setFiles","setInternalFiles","getExistingFile","filesRef","useRef","useEffect","current","createElement","value","_objectSpread","onInputUpload","_extends","_UploadInfo","_UploadFileInput","_UploadFileList","newFiles","mergedFiles","map","fileItem","file","existingFile","exists","Boolean","verifiedFiles","filter","_ref","validFiles","slice","_supportsSpacingProps"],"sources":["../../../../src/components/upload/Upload.tsx"],"sourcesContent":["import React from 'react'\nimport classnames from 'classnames'\n\n// Shared\nimport { createSpacingClasses } from '../space/SpacingHelper'\nimport Provider from '../../shared/Provider'\nimport Context from '../../shared/Context'\nimport {\n extendPropsWithContext,\n makeUniqueId,\n} from '../../shared/component-helper'\n\n// Internal\nimport UploadFileInput from './UploadFileInput'\nimport useUpload from './useUpload'\nimport UploadDropzone from './UploadDropzone'\nimport { UploadContext, defaultProps } from './UploadContext'\nimport { verifyFiles } from './UploadVerify'\n\nimport type { UploadFile, UploadAllProps } from './types'\nimport UploadFileList from './UploadFileList'\nimport UploadInfo from './UploadInfo'\n\nexport { defaultProps }\n\nconst Upload = (localProps: UploadAllProps) => {\n const context = React.useContext(Context)\n\n const { buttonTextSingular, textSingular, ...translations } =\n context.getTranslation(localProps).Upload\n\n if (localProps?.filesAmountLimit === 1) {\n translations.buttonText = buttonTextSingular\n translations.text = textSingular\n }\n\n const extendedProps = extendPropsWithContext(\n localProps,\n defaultProps,\n { skeleton: context?.skeleton },\n translations,\n context.Upload\n )\n\n const {\n id,\n skeleton,\n className,\n acceptedFileTypes,\n filesAmountLimit,\n fileMaxSize,\n onChange,\n onFileDelete, // eslint-disable-line\n title, // eslint-disable-line\n text, // eslint-disable-line\n fileTypeDescription, // eslint-disable-line\n fileSizeDescription, // eslint-disable-line\n fileAmountDescription, // eslint-disable-line\n fileSizeContent, // eslint-disable-line\n buttonText, // eslint-disable-line\n loadingText, // eslint-disable-line\n errorLargeFile,\n errorUnsupportedFile,\n errorAmountLimit, // eslint-disable-line\n deleteButton, // eslint-disable-line\n fileListAriaLabel, // eslint-disable-line\n ...props\n } = extendedProps\n\n const spacingClasses = createSpacingClasses(props)\n\n const { files, setFiles, setInternalFiles, getExistingFile } =\n useUpload(id)\n\n const filesRef = React.useRef<UploadFile[]>(files)\n React.useEffect(() => {\n filesRef.current = files\n }) // keep our ref updated on every re-render\n\n return (\n <UploadContext.Provider\n value={{\n ...extendedProps,\n id,\n onInputUpload,\n }}\n >\n <Provider skeleton={skeleton}>\n <UploadDropzone\n className={classnames('dnb-upload', spacingClasses, className)}\n {...props}\n >\n <UploadInfo />\n\n <UploadFileInput />\n\n <UploadFileList />\n </UploadDropzone>\n </Provider>\n </UploadContext.Provider>\n )\n\n function onInputUpload(newFiles: UploadFile[]) {\n const files = filesRef.current\n const mergedFiles = [\n ...files,\n ...newFiles.map((fileItem) => {\n const { file } = fileItem\n\n const existingFile = getExistingFile(file, files)\n\n fileItem.exists = Boolean(existingFile)\n fileItem.id = fileItem.exists ? existingFile.id : makeUniqueId()\n\n return fileItem\n }),\n ]\n\n const verifiedFiles = verifyFiles(\n mergedFiles.filter(({ exists }) => !exists),\n {\n fileMaxSize,\n acceptedFileTypes,\n errorUnsupportedFile,\n errorLargeFile,\n }\n )\n\n const validFiles = [...verifiedFiles].slice(0, filesAmountLimit)\n\n setFiles(validFiles)\n setInternalFiles(mergedFiles)\n\n if (typeof onChange === 'function') {\n onChange({ files: validFiles })\n }\n\n return validFiles\n }\n}\n\nUpload.useUpload = useUpload\n\nUpload._supportsSpacingProps = true\n\nexport default Upload\n"],"mappings":"
|
|
1
|
+
{"version":3,"file":"Upload.js","names":["React","classnames","createSpacingClasses","Provider","Context","extendPropsWithContext","makeUniqueId","UploadFileInput","useUpload","UploadDropzone","UploadContext","defaultProps","verifyFiles","UploadFileList","UploadInfo","Upload","localProps","context","useContext","_context$getTranslati","getTranslation","buttonTextSingular","textSingular","translations","_objectWithoutProperties","_excluded","filesAmountLimit","buttonText","text","extendedProps","skeleton","id","className","acceptedFileTypes","fileMaxSize","onChange","onFileDelete","title","fileTypeDescription","fileSizeDescription","fileAmountDescription","fileSizeContent","loadingText","errorLargeFile","errorUnsupportedFile","errorAmountLimit","deleteButton","fileListAriaLabel","props","_excluded2","spacingClasses","files","setFiles","setInternalFiles","getExistingFile","filesRef","useRef","useEffect","current","createElement","value","_objectSpread","onInputUpload","_extends","_UploadInfo","_UploadFileInput","_UploadFileList","newFiles","mergedFiles","map","fileItem","file","existingFile","exists","Boolean","verifiedFiles","filter","_ref","validFiles","slice","_formElement","_supportsSpacingProps"],"sources":["../../../../src/components/upload/Upload.tsx"],"sourcesContent":["import React from 'react'\nimport classnames from 'classnames'\n\n// Shared\nimport { createSpacingClasses } from '../space/SpacingHelper'\nimport Provider from '../../shared/Provider'\nimport Context from '../../shared/Context'\nimport {\n extendPropsWithContext,\n makeUniqueId,\n} from '../../shared/component-helper'\n\n// Internal\nimport UploadFileInput from './UploadFileInput'\nimport useUpload from './useUpload'\nimport UploadDropzone from './UploadDropzone'\nimport { UploadContext, defaultProps } from './UploadContext'\nimport { verifyFiles } from './UploadVerify'\n\nimport type { UploadFile, UploadAllProps } from './types'\nimport UploadFileList from './UploadFileList'\nimport UploadInfo from './UploadInfo'\n\nexport { defaultProps }\n\nconst Upload = (localProps: UploadAllProps) => {\n const context = React.useContext(Context)\n\n const { buttonTextSingular, textSingular, ...translations } =\n context.getTranslation(localProps).Upload\n\n if (localProps?.filesAmountLimit === 1) {\n translations.buttonText = buttonTextSingular\n translations.text = textSingular\n }\n\n const extendedProps = extendPropsWithContext(\n localProps,\n defaultProps,\n { skeleton: context?.skeleton },\n translations,\n context.Upload\n )\n\n const {\n id,\n skeleton,\n className,\n acceptedFileTypes,\n filesAmountLimit,\n fileMaxSize,\n onChange,\n onFileDelete, // eslint-disable-line\n title, // eslint-disable-line\n text, // eslint-disable-line\n fileTypeDescription, // eslint-disable-line\n fileSizeDescription, // eslint-disable-line\n fileAmountDescription, // eslint-disable-line\n fileSizeContent, // eslint-disable-line\n buttonText, // eslint-disable-line\n loadingText, // eslint-disable-line\n errorLargeFile,\n errorUnsupportedFile,\n errorAmountLimit, // eslint-disable-line\n deleteButton, // eslint-disable-line\n fileListAriaLabel, // eslint-disable-line\n ...props\n } = extendedProps\n\n const spacingClasses = createSpacingClasses(props)\n\n const { files, setFiles, setInternalFiles, getExistingFile } =\n useUpload(id)\n\n const filesRef = React.useRef<UploadFile[]>(files)\n React.useEffect(() => {\n filesRef.current = files\n }) // keep our ref updated on every re-render\n\n return (\n <UploadContext.Provider\n value={{\n ...extendedProps,\n id,\n onInputUpload,\n }}\n >\n <Provider skeleton={skeleton}>\n <UploadDropzone\n className={classnames('dnb-upload', spacingClasses, className)}\n {...props}\n >\n <UploadInfo />\n\n <UploadFileInput />\n\n <UploadFileList />\n </UploadDropzone>\n </Provider>\n </UploadContext.Provider>\n )\n\n function onInputUpload(newFiles: UploadFile[]) {\n const files = filesRef.current\n const mergedFiles = [\n ...files,\n ...newFiles.map((fileItem) => {\n const { file } = fileItem\n\n const existingFile = getExistingFile(file, files)\n\n fileItem.exists = Boolean(existingFile)\n fileItem.id = fileItem.exists ? existingFile.id : makeUniqueId()\n\n return fileItem\n }),\n ]\n\n const verifiedFiles = verifyFiles(\n mergedFiles.filter(({ exists }) => !exists),\n {\n fileMaxSize,\n acceptedFileTypes,\n errorUnsupportedFile,\n errorLargeFile,\n }\n )\n\n const validFiles = [...verifiedFiles].slice(0, filesAmountLimit)\n\n setFiles(validFiles)\n setInternalFiles(mergedFiles)\n\n if (typeof onChange === 'function') {\n onChange({ files: validFiles })\n }\n\n return validFiles\n }\n}\n\nUpload.useUpload = useUpload\n\nUpload._formElement = true\nUpload._supportsSpacingProps = true\n\nexport default Upload\n"],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"useUpload.js","names":["useEventEmitter","useUpload","id","data","update","setFiles","files","setInternalFiles","internalFiles","getExistingFile","file","fileItems","arguments","length","undefined","find","_ref","f","name","size","lastModified"],"sources":["../../../../src/components/upload/useUpload.ts"],"sourcesContent":["import { useEventEmitter } from '../../shared/component-helper'\nimport type { UploadFile } from './types'\n\nexport type useUploadReturn = {\n files: UploadFile[]\n setFiles: (files: UploadFile[]) => void\n internalFiles: UploadFile[]\n setInternalFiles: (files: UploadFile[]) => void\n getExistingFile: (file: File, fileItems?: UploadFile[]) => UploadFile\n}\n\n/**\n * Use together with Upload with the same id to manage the files from outside the component.\n */\nfunction useUpload(id: string): useUploadReturn {\n const { data, update } = useEventEmitter(id)\n\n const setFiles = (files: UploadFile[]) => {\n update({ files })\n }\n\n const setInternalFiles = (internalFiles: UploadFile[]) => {\n update({ internalFiles })\n }\n\n const files = data?.files || []\n const internalFiles = data?.internalFiles || []\n\n const getExistingFile = (\n file: File,\n fileItems: UploadFile[] = files\n ) => {\n return fileItems.find(({ file: f }) => {\n return (\n f.name === file.name &&\n f.size === file.size &&\n f.lastModified === file.lastModified\n )\n })\n }\n\n return {\n files,\n setFiles,\n internalFiles,\n setInternalFiles,\n getExistingFile,\n }\n}\n\nexport default useUpload\n"],"mappings":"AAAA,SAASA,eAAe,QAAQ,+BAA+B;AAc/D,SAASC,SAASA,CAACC,EAAU,EAAmB;EAC9C,MAAM;IAAEC,IAAI;IAAEC;EAAO,CAAC,GAAGJ,eAAe,CAACE,EAAE,CAAC;EAE5C,MAAMG,QAAQ,GAAIC,KAAmB,IAAK;IACxCF,MAAM,CAAC;MAAEE;IAAM,CAAC,CAAC;EACnB,CAAC;EAED,MAAMC,gBAAgB,GAAIC,aAA2B,IAAK;IACxDJ,MAAM,CAAC;MAAEI;IAAc,CAAC,CAAC;EAC3B,CAAC;EAED,MAAMF,KAAK,GAAG,CAAAH,IAAI,aAAJA,IAAI,uBAAJA,IAAI,CAAEG,KAAK,KAAI,EAAE;EAC/B,MAAME,aAAa,GAAG,CAAAL,IAAI,aAAJA,IAAI,uBAAJA,IAAI,CAAEK,aAAa,KAAI,EAAE;EAE/C,MAAMC,eAAe,GAAG,SAAAA,CACtBC,IAAU,EAEP;IAAA,IADHC,SAAuB,GAAAC,SAAA,CAAAC,MAAA,QAAAD,SAAA,QAAAE,SAAA,GAAAF,SAAA,MAAGN,KAAK;IAE/B,OAAOK,SAAS,CAACI,IAAI,CAACC,IAAA,IAAiB;MAAA,IAAhB;QAAEN,IAAI,EAAEO;MAAE,CAAC,GAAAD,IAAA;MAChC,OACEC,CAAC,CAACC,IAAI,KAAKR,IAAI,CAACQ,IAAI,IACpBD,CAAC,CAACE,IAAI,KAAKT,IAAI,CAACS,IAAI,IACpBF,CAAC,CAACG,YAAY,KAAKV,IAAI,CAACU,YAAY;IAExC,CAAC,CAAC;EACJ,CAAC;EAED,OAAO;IACLd,KAAK;IACLD,QAAQ;IACRG,aAAa;IACbD,gBAAgB;IAChBE;EACF,CAAC;AACH;AAEA,eAAeR,SAAS"}
|
|
1
|
+
{"version":3,"file":"useUpload.js","names":["useEventEmitter","useUpload","id","data","update","setFiles","files","setInternalFiles","internalFiles","getExistingFile","file","fileItems","arguments","length","undefined","find","_ref","f","name","size","lastModified"],"sources":["../../../../src/components/upload/useUpload.ts"],"sourcesContent":["import { useEventEmitter } from '../../shared/component-helper'\nimport type { UploadFile } from './types'\n\nexport type useUploadReturn = {\n files: UploadFile[]\n setFiles: (files: UploadFile[]) => void\n internalFiles: UploadFile[]\n setInternalFiles: (files: UploadFile[]) => void\n getExistingFile: (file: File, fileItems?: UploadFile[]) => UploadFile\n}\n\n/**\n * Use together with Upload with the same id to manage the files from outside the component.\n */\nfunction useUpload(id: string): useUploadReturn {\n const { data, update } = useEventEmitter(id)\n\n const setFiles = (files: UploadFile[]) => {\n update({ files })\n }\n\n const setInternalFiles = (internalFiles: UploadFile[]) => {\n update({ internalFiles })\n }\n\n const files = data?.files || []\n const internalFiles = data?.internalFiles || []\n\n const getExistingFile = (\n file: File,\n fileItems: UploadFile[] = files\n ) => {\n return fileItems.find(({ file: f }) => {\n return (\n f.name === file.name &&\n f.size === file.size &&\n f.lastModified === file.lastModified\n )\n })\n }\n\n return {\n files,\n setFiles,\n internalFiles,\n setInternalFiles,\n getExistingFile,\n }\n}\n\nexport default useUpload\n"],"mappings":";;AAAA,SAASA,eAAe,QAAQ,+BAA+B;AAc/D,SAASC,SAASA,CAACC,EAAU,EAAmB;EAC9C,MAAM;IAAEC,IAAI;IAAEC;EAAO,CAAC,GAAGJ,eAAe,CAACE,EAAE,CAAC;EAE5C,MAAMG,QAAQ,GAAIC,KAAmB,IAAK;IACxCF,MAAM,CAAC;MAAEE;IAAM,CAAC,CAAC;EACnB,CAAC;EAED,MAAMC,gBAAgB,GAAIC,aAA2B,IAAK;IACxDJ,MAAM,CAAC;MAAEI;IAAc,CAAC,CAAC;EAC3B,CAAC;EAED,MAAMF,KAAK,GAAG,CAAAH,IAAI,aAAJA,IAAI,uBAAJA,IAAI,CAAEG,KAAK,KAAI,EAAE;EAC/B,MAAME,aAAa,GAAG,CAAAL,IAAI,aAAJA,IAAI,uBAAJA,IAAI,CAAEK,aAAa,KAAI,EAAE;EAE/C,MAAMC,eAAe,GAAG,SAAAA,CACtBC,IAAU,EAEP;IAAA,IADHC,SAAuB,GAAAC,SAAA,CAAAC,MAAA,QAAAD,SAAA,QAAAE,SAAA,GAAAF,SAAA,MAAGN,KAAK;IAE/B,OAAOK,SAAS,CAACI,IAAI,CAACC,IAAA,IAAiB;MAAA,IAAhB;QAAEN,IAAI,EAAEO;MAAE,CAAC,GAAAD,IAAA;MAChC,OACEC,CAAC,CAACC,IAAI,KAAKR,IAAI,CAACQ,IAAI,IACpBD,CAAC,CAACE,IAAI,KAAKT,IAAI,CAACS,IAAI,IACpBF,CAAC,CAACG,YAAY,KAAKV,IAAI,CAACU,YAAY;IAExC,CAAC,CAAC;EACJ,CAAC;EAED,OAAO;IACLd,KAAK;IACLD,QAAQ;IACRG,aAAa;IACbD,gBAAgB;IAChBE;EACF,CAAC;AACH;AAEA,eAAeR,SAAS"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"VisuallyHidden.js","names":["React","classnames","Context","extendPropsWithContext","defaultProps","focusable","element","VisuallyHidden","localProps","context","useContext","_extendPropsWithConte","children","className","props","_objectWithoutProperties","_excluded","visuallyHiddenClassNames","Element","createElement","_extends","_supportsSpacingProps"],"sources":["../../../../src/components/visually-hidden/VisuallyHidden.tsx"],"sourcesContent":["import React from 'react'\nimport classnames from 'classnames'\n\n// Shared\nimport Context from '../../shared/Context'\nimport { extendPropsWithContext } from '../../shared/component-helper'\nimport type { DynamicElement } from '../../shared/types'\n\nexport interface VisuallyHiddenProps {\n /**\n * Hide an element by default, but to display it when it’s focused (e.g. by a keyboard-only user)\n * Default: false\n */\n focusable?: boolean\n\n /**\n * Root element of the component\n * Default: span\n */\n element?: DynamicElement\n}\n\nexport type VisuallyHiddenAllProps = VisuallyHiddenProps &\n React.HTMLProps<HTMLSpanElement>\n\nexport const defaultProps = {\n focusable: false,\n element: 'span',\n}\n\nconst VisuallyHidden = (localProps: VisuallyHiddenAllProps) => {\n // Every component should have a context\n const context = React.useContext(Context)\n\n // Extract additional props from global context\n const { element, children, className, focusable, ...props } =\n extendPropsWithContext(\n localProps,\n defaultProps,\n context?.VisuallyHidden\n )\n\n const visuallyHiddenClassNames = classnames(\n 'dnb-visually-hidden',\n focusable ? 'dnb-visually-hidden--focusable' : 'dnb-sr-only',\n className\n )\n const Element = element || 'span'\n\n return (\n <Element\n className={visuallyHiddenClassNames}\n {...(props as Record<string, unknown>)}\n >\n {children}\n </Element>\n )\n}\n\nVisuallyHidden._supportsSpacingProps = true\n\nexport default VisuallyHidden\n"],"mappings":"
|
|
1
|
+
{"version":3,"file":"VisuallyHidden.js","names":["React","classnames","Context","extendPropsWithContext","defaultProps","focusable","element","VisuallyHidden","localProps","context","useContext","_extendPropsWithConte","children","className","props","_objectWithoutProperties","_excluded","visuallyHiddenClassNames","Element","createElement","_extends","_supportsSpacingProps"],"sources":["../../../../src/components/visually-hidden/VisuallyHidden.tsx"],"sourcesContent":["import React from 'react'\nimport classnames from 'classnames'\n\n// Shared\nimport Context from '../../shared/Context'\nimport { extendPropsWithContext } from '../../shared/component-helper'\nimport type { DynamicElement } from '../../shared/types'\n\nexport interface VisuallyHiddenProps {\n /**\n * Hide an element by default, but to display it when it’s focused (e.g. by a keyboard-only user)\n * Default: false\n */\n focusable?: boolean\n\n /**\n * Root element of the component\n * Default: span\n */\n element?: DynamicElement\n}\n\nexport type VisuallyHiddenAllProps = VisuallyHiddenProps &\n React.HTMLProps<HTMLSpanElement>\n\nexport const defaultProps = {\n focusable: false,\n element: 'span',\n}\n\nconst VisuallyHidden = (localProps: VisuallyHiddenAllProps) => {\n // Every component should have a context\n const context = React.useContext(Context)\n\n // Extract additional props from global context\n const { element, children, className, focusable, ...props } =\n extendPropsWithContext(\n localProps,\n defaultProps,\n context?.VisuallyHidden\n )\n\n const visuallyHiddenClassNames = classnames(\n 'dnb-visually-hidden',\n focusable ? 'dnb-visually-hidden--focusable' : 'dnb-sr-only',\n className\n )\n const Element = element || 'span'\n\n return (\n <Element\n className={visuallyHiddenClassNames}\n {...(props as Record<string, unknown>)}\n >\n {children}\n </Element>\n )\n}\n\nVisuallyHidden._supportsSpacingProps = true\n\nexport default VisuallyHidden\n"],"mappings":";;;;;AAAA,OAAOA,KAAK,MAAM,OAAO;AACzB,OAAOC,UAAU,MAAM,YAAY;AAGnC,OAAOC,OAAO,MAAM,sBAAsB;AAC1C,SAASC,sBAAsB,QAAQ,+BAA+B;AAoBtE,OAAO,MAAMC,YAAY,GAAG;EAC1BC,SAAS,EAAE,KAAK;EAChBC,OAAO,EAAE;AACX,CAAC;AAED,MAAMC,cAAc,GAAIC,UAAkC,IAAK;EAE7D,MAAMC,OAAO,GAAGT,KAAK,CAACU,UAAU,CAACR,OAAO,CAAC;EAGzC,MAAAS,qBAAA,GACER,sBAAsB,CACpBK,UAAU,EACVJ,YAAY,EACZK,OAAO,aAAPA,OAAO,uBAAPA,OAAO,CAAEF,cACX,CAAC;IALG;MAAED,OAAO;MAAEM,QAAQ;MAAEC,SAAS;MAAER;IAAoB,CAAC,GAAAM,qBAAA;IAAPG,KAAK,GAAAC,wBAAA,CAAAJ,qBAAA,EAAAK,SAAA;EAOzD,MAAMC,wBAAwB,GAAGhB,UAAU,CACzC,qBAAqB,EACrBI,SAAS,GAAG,gCAAgC,GAAG,aAAa,EAC5DQ,SACF,CAAC;EACD,MAAMK,OAAO,GAAGZ,OAAO,IAAI,MAAM;EAEjC,OACEN,KAAA,CAAAmB,aAAA,CAACD,OAAO,EAAAE,QAAA;IACNP,SAAS,EAAEI;EAAyB,GAC/BH,KAAK,GAETF,QACM,CAAC;AAEd,CAAC;AAEDL,cAAc,CAACc,qBAAqB,GAAG,IAAI;AAE3C,eAAed,cAAc"}
|
package/elements/Element.js
CHANGED
package/elements/Element.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Element.js","names":["React","classnames","Context","validateDOMAttributes","extendPropsWithContext","createSpacingClasses","createSkeletonClass","skeletonDOMAttributes","defaultProps","skeletonMethod","Element","forwardRef","props","ref","createElement","ElementInstance","_extends","innerRef","localProps","context","useContext","skeleton","className","internalClass","as","rest","_objectWithoutProperties","_excluded","Tag","attributes","tagClass","internalClassName","RegExp","test","String"],"sources":["../../../src/elements/Element.tsx"],"sourcesContent":["/**\n * This is mainly a Wrapper, to build more easily HTML Elements\n *\n */\n\nimport React from 'react'\nimport classnames from 'classnames'\nimport Context from '../shared/Context'\nimport {\n validateDOMAttributes,\n extendPropsWithContext,\n} from '../shared/component-helper'\nimport { createSpacingClasses } from '../components/space/SpacingHelper'\nimport {\n createSkeletonClass,\n skeletonDOMAttributes,\n SkeletonMethods,\n} from '../components/skeleton/SkeletonHelper'\nimport type { SkeletonShow } from '../components/skeleton/Skeleton'\n\nimport type { DynamicElement, SpacingProps } from '../shared/types'\n\nexport type ElementIsType = DynamicElement | React.ReactNode\n\nexport type ElementInternalProps = {\n /**\n * Defines the Element Type, like \"div\"\n */\n as: ElementIsType\n}\n\nexport type ElementProps = {\n skeleton?: SkeletonShow\n skeletonMethod?: SkeletonMethods\n internalClass?: string\n innerRef?: React.RefObject<HTMLElement> | React.ForwardedRef<unknown>\n children?: React.ReactNode\n} & SpacingProps\n\nexport type ElementAllProps = ElementProps &\n ElementInternalProps &\n Omit<React.HTMLProps<HTMLElement>, 'ref'>\n\ntype Attributes = Record<string, unknown>\n\nexport const defaultProps = {\n skeletonMethod: 'font',\n}\n\nconst Element = React.forwardRef((props: ElementAllProps, ref) => {\n return <ElementInstance innerRef={ref} {...props} />\n})\n\nfunction ElementInstance(localProps: ElementAllProps) {\n const context = React.useContext(Context)\n const props = extendPropsWithContext(localProps, defaultProps, {\n skeleton: context?.skeleton,\n })\n\n const {\n className,\n internalClass,\n as,\n innerRef,\n skeleton,\n skeletonMethod,\n ...rest\n } = props\n\n const Tag = as as DynamicElement\n const attributes = rest as Attributes\n\n const tagClass =\n internalClass || (typeof Tag === 'string' ? `dnb-${Tag}` : '')\n const internalClassName = classnames(\n !new RegExp(`${tagClass}(\\\\s|$)`).test(String(className)) && tagClass,\n className,\n createSkeletonClass(skeletonMethod, skeleton, context),\n createSpacingClasses(\n attributes,\n typeof Tag === 'string' ? `dnb-${Tag}` : null\n )\n )\n\n validateDOMAttributes(null, attributes)\n\n skeletonDOMAttributes(attributes, skeleton, context)\n\n if (typeof Tag !== 'function' && innerRef) {\n attributes.ref = innerRef\n }\n\n return <Tag className={internalClassName} {...attributes} />\n}\n\nexport default Element\n"],"mappings":"
|
|
1
|
+
{"version":3,"file":"Element.js","names":["React","classnames","Context","validateDOMAttributes","extendPropsWithContext","createSpacingClasses","createSkeletonClass","skeletonDOMAttributes","defaultProps","skeletonMethod","Element","forwardRef","props","ref","createElement","ElementInstance","_extends","innerRef","localProps","context","useContext","skeleton","className","internalClass","as","rest","_objectWithoutProperties","_excluded","Tag","attributes","tagClass","internalClassName","RegExp","test","String"],"sources":["../../../src/elements/Element.tsx"],"sourcesContent":["/**\n * This is mainly a Wrapper, to build more easily HTML Elements\n *\n */\n\nimport React from 'react'\nimport classnames from 'classnames'\nimport Context from '../shared/Context'\nimport {\n validateDOMAttributes,\n extendPropsWithContext,\n} from '../shared/component-helper'\nimport { createSpacingClasses } from '../components/space/SpacingHelper'\nimport {\n createSkeletonClass,\n skeletonDOMAttributes,\n SkeletonMethods,\n} from '../components/skeleton/SkeletonHelper'\nimport type { SkeletonShow } from '../components/skeleton/Skeleton'\n\nimport type { DynamicElement, SpacingProps } from '../shared/types'\n\nexport type ElementIsType = DynamicElement | React.ReactNode\n\nexport type ElementInternalProps = {\n /**\n * Defines the Element Type, like \"div\"\n */\n as: ElementIsType\n}\n\nexport type ElementProps = {\n skeleton?: SkeletonShow\n skeletonMethod?: SkeletonMethods\n internalClass?: string\n innerRef?: React.RefObject<HTMLElement> | React.ForwardedRef<unknown>\n children?: React.ReactNode\n} & SpacingProps\n\nexport type ElementAllProps = ElementProps &\n ElementInternalProps &\n Omit<React.HTMLProps<HTMLElement>, 'ref'>\n\ntype Attributes = Record<string, unknown>\n\nexport const defaultProps = {\n skeletonMethod: 'font',\n}\n\nconst Element = React.forwardRef((props: ElementAllProps, ref) => {\n return <ElementInstance innerRef={ref} {...props} />\n})\n\nfunction ElementInstance(localProps: ElementAllProps) {\n const context = React.useContext(Context)\n const props = extendPropsWithContext(localProps, defaultProps, {\n skeleton: context?.skeleton,\n })\n\n const {\n className,\n internalClass,\n as,\n innerRef,\n skeleton,\n skeletonMethod,\n ...rest\n } = props\n\n const Tag = as as DynamicElement\n const attributes = rest as Attributes\n\n const tagClass =\n internalClass || (typeof Tag === 'string' ? `dnb-${Tag}` : '')\n const internalClassName = classnames(\n !new RegExp(`${tagClass}(\\\\s|$)`).test(String(className)) && tagClass,\n className,\n createSkeletonClass(skeletonMethod, skeleton, context),\n createSpacingClasses(\n attributes,\n typeof Tag === 'string' ? `dnb-${Tag}` : null\n )\n )\n\n validateDOMAttributes(null, attributes)\n\n skeletonDOMAttributes(attributes, skeleton, context)\n\n if (typeof Tag !== 'function' && innerRef) {\n attributes.ref = innerRef\n }\n\n return <Tag className={internalClassName} {...attributes} />\n}\n\nexport default Element\n"],"mappings":";;;;;AAKA,OAAOA,KAAK,MAAM,OAAO;AACzB,OAAOC,UAAU,MAAM,YAAY;AACnC,OAAOC,OAAO,MAAM,mBAAmB;AACvC,SACEC,qBAAqB,EACrBC,sBAAsB,QACjB,4BAA4B;AACnC,SAASC,oBAAoB,QAAQ,mCAAmC;AACxE,SACEC,mBAAmB,EACnBC,qBAAqB,QAEhB,uCAAuC;AA4B9C,OAAO,MAAMC,YAAY,GAAG;EAC1BC,cAAc,EAAE;AAClB,CAAC;AAED,MAAMC,OAAO,GAAGV,KAAK,CAACW,UAAU,CAAC,CAACC,KAAsB,EAAEC,GAAG,KAAK;EAChE,OAAOb,KAAA,CAAAc,aAAA,CAACC,eAAe,EAAAC,QAAA;IAACC,QAAQ,EAAEJ;EAAI,GAAKD,KAAK,CAAG,CAAC;AACtD,CAAC,CAAC;AAEF,SAASG,eAAeA,CAACG,UAA2B,EAAE;EACpD,MAAMC,OAAO,GAAGnB,KAAK,CAACoB,UAAU,CAAClB,OAAO,CAAC;EACzC,MAAMU,KAAK,GAAGR,sBAAsB,CAACc,UAAU,EAAEV,YAAY,EAAE;IAC7Da,QAAQ,EAAEF,OAAO,aAAPA,OAAO,uBAAPA,OAAO,CAAEE;EACrB,CAAC,CAAC;EAEF,MAAM;MACJC,SAAS;MACTC,aAAa;MACbC,EAAE;MACFP,QAAQ;MACRI,QAAQ;MACRZ;IAEF,CAAC,GAAGG,KAAK;IADJa,IAAI,GAAAC,wBAAA,CACLd,KAAK,EAAAe,SAAA;EAET,MAAMC,GAAG,GAAGJ,EAAoB;EAChC,MAAMK,UAAU,GAAGJ,IAAkB;EAErC,MAAMK,QAAQ,GACZP,aAAa,KAAK,OAAOK,GAAG,KAAK,QAAQ,GAAI,OAAMA,GAAI,EAAC,GAAG,EAAE,CAAC;EAChE,MAAMG,iBAAiB,GAAG9B,UAAU,CAElCqB,SAAS,EACThB,mBAAmB,CAACG,cAAc,EAAEY,QAAQ,EAAEF,OAAO,CAAC,EACtDd,oBAAoB,CAClBwB,UAAU,EACV,OAAOD,GAAG,KAAK,QAAQ,GAAI,OAAMA,GAAI,EAAC,GAAG,IAC3C,CAAC,EAND,CAAC,IAAII,MAAM,CAAE,GAAEF,QAAS,SAAQ,CAAC,CAACG,IAAI,CAACC,MAAM,CAACZ,SAAS,CAAC,CAAC,IAAIQ,QAO/D,CAAC;EAED3B,qBAAqB,CAAC,IAAI,EAAE0B,UAAU,CAAC;EAEvCtB,qBAAqB,CAACsB,UAAU,EAAER,QAAQ,EAAEF,OAAO,CAAC;EAEpD,IAAI,OAAOS,GAAG,KAAK,UAAU,IAAIX,QAAQ,EAAE;IACzCY,UAAU,CAAChB,GAAG,GAAGI,QAAQ;EAC3B;EAEA,OAAOjB,KAAA,CAAAc,aAAA,CAACc,GAAG,EAAAZ,QAAA;IAACM,SAAS,EAAES;EAAkB,GAAKF,UAAU,CAAG,CAAC;AAC9D;AAEA,eAAenB,OAAO"}
|
package/elements/typography/H.js
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"H.js","names":["React","classnames","E","setNextLevel","getHeadingSize","useTheme","H","_ref","as","is","level","size","className","props","_objectWithoutProperties","_excluded","numSiz","parseFloat","String","substring","theme","targetSize","name","createElement","_extends","internalClass","_isHeadingElement","_supportsSpacingProps"],"sources":["../../../../src/elements/typography/H.tsx"],"sourcesContent":["/**\n * HTML Element\n *\n */\n\nimport React from 'react'\nimport classnames from 'classnames'\nimport { SpacingProps } from '../../components/space/types'\nimport E, { ElementProps } from '../Element'\nimport { HeadingSize } from '../../components/heading/Heading'\nimport {\n setNextLevel,\n getHeadingSize,\n} from '../../components/heading/HeadingHelpers'\nimport { useTheme } from '../../shared'\n\nexport type HSize = HeadingSize\n\ntype HProps = SpacingProps &\n React.HTMLAttributes<HTMLHeadingElement> & {\n /**\n * Defines the Element Type, like \"h1\"\n * Default: h1\n */\n as?: string\n /**\n * Makes the component use the elements heading level. e.g. h3 will make the component use level 3\n */\n level?: 'use'\n /**\n * Sets the font size based on headingSize_#{HEADING_SIZE} mixins found in typography-mixins.scss. For more detailed information go here: https://eufemia.dnb.no/uilib/typography/font-size/.\n * Use value 'auto' to base size on heading level\n * Default: xx-large\n */\n size?: HSize | 'auto'\n } & ElementProps\n\nexport type SharedHProps = Omit<HProps, 'as'>\n\nconst H = ({\n as = 'h1',\n is,\n level,\n size,\n className,\n ...props\n}: HProps) => {\n const numSiz = parseFloat(String(as || is).substring(1))\n\n if (level === 'use') {\n setNextLevel(numSiz)\n }\n\n const theme = useTheme()\n const targetSize =\n (size === 'auto' && getHeadingSize(theme?.name)[numSiz]) ||\n size ||\n 'xx-large'\n\n return (\n <E\n as={as || is}\n internalClass={classnames(\n targetSize && `dnb-h--${targetSize}`,\n className\n )}\n {...props}\n />\n )\n}\n\nH._isHeadingElement = true\nH._supportsSpacingProps = true\n\nexport default H\n"],"mappings":"
|
|
1
|
+
{"version":3,"file":"H.js","names":["React","classnames","E","setNextLevel","getHeadingSize","useTheme","H","_ref","as","is","level","size","className","props","_objectWithoutProperties","_excluded","numSiz","parseFloat","String","substring","theme","targetSize","name","createElement","_extends","internalClass","_isHeadingElement","_supportsSpacingProps"],"sources":["../../../../src/elements/typography/H.tsx"],"sourcesContent":["/**\n * HTML Element\n *\n */\n\nimport React from 'react'\nimport classnames from 'classnames'\nimport { SpacingProps } from '../../components/space/types'\nimport E, { ElementProps } from '../Element'\nimport { HeadingSize } from '../../components/heading/Heading'\nimport {\n setNextLevel,\n getHeadingSize,\n} from '../../components/heading/HeadingHelpers'\nimport { useTheme } from '../../shared'\n\nexport type HSize = HeadingSize\n\ntype HProps = SpacingProps &\n React.HTMLAttributes<HTMLHeadingElement> & {\n /**\n * Defines the Element Type, like \"h1\"\n * Default: h1\n */\n as?: string\n /**\n * Makes the component use the elements heading level. e.g. h3 will make the component use level 3\n */\n level?: 'use'\n /**\n * Sets the font size based on headingSize_#{HEADING_SIZE} mixins found in typography-mixins.scss. For more detailed information go here: https://eufemia.dnb.no/uilib/typography/font-size/.\n * Use value 'auto' to base size on heading level\n * Default: xx-large\n */\n size?: HSize | 'auto'\n } & ElementProps\n\nexport type SharedHProps = Omit<HProps, 'as'>\n\nconst H = ({\n as = 'h1',\n is,\n level,\n size,\n className,\n ...props\n}: HProps) => {\n const numSiz = parseFloat(String(as || is).substring(1))\n\n if (level === 'use') {\n setNextLevel(numSiz)\n }\n\n const theme = useTheme()\n const targetSize =\n (size === 'auto' && getHeadingSize(theme?.name)[numSiz]) ||\n size ||\n 'xx-large'\n\n return (\n <E\n as={as || is}\n internalClass={classnames(\n targetSize && `dnb-h--${targetSize}`,\n className\n )}\n {...props}\n />\n )\n}\n\nH._isHeadingElement = true\nH._supportsSpacingProps = true\n\nexport default H\n"],"mappings":";;;;;AAKA,OAAOA,KAAK,MAAM,OAAO;AACzB,OAAOC,UAAU,MAAM,YAAY;AAEnC,OAAOC,CAAC,MAAwB,YAAY;AAE5C,SACEC,YAAY,EACZC,cAAc,QACT,yCAAyC;AAChD,SAASC,QAAQ,QAAQ,cAAc;AAyBvC,MAAMC,CAAC,GAAGC,IAAA,IAOI;EAAA,IAPH;MACTC,EAAE,GAAG,IAAI;MACTC,EAAE;MACFC,KAAK;MACLC,IAAI;MACJC;IAEM,CAAC,GAAAL,IAAA;IADJM,KAAK,GAAAC,wBAAA,CAAAP,IAAA,EAAAQ,SAAA;EAER,MAAMC,MAAM,GAAGC,UAAU,CAACC,MAAM,CAACV,EAAE,IAAIC,EAAE,CAAC,CAACU,SAAS,CAAC,CAAC,CAAC,CAAC;EAExD,IAAIT,KAAK,KAAK,KAAK,EAAE;IACnBP,YAAY,CAACa,MAAM,CAAC;EACtB;EAEA,MAAMI,KAAK,GAAGf,QAAQ,CAAC,CAAC;EACxB,MAAMgB,UAAU,GACbV,IAAI,KAAK,MAAM,IAAIP,cAAc,CAACgB,KAAK,aAALA,KAAK,uBAALA,KAAK,CAAEE,IAAI,CAAC,CAACN,MAAM,CAAC,IACvDL,IAAI,IACJ,UAAU;EAEZ,OACEX,KAAA,CAAAuB,aAAA,CAACrB,CAAC,EAAAsB,QAAA;IACAhB,EAAE,EAAEA,EAAE,IAAIC,EAAG;IACbgB,aAAa,EAAExB,UAAU,CAEvBW,SAAS,EADTS,UAAU,IAAK,UAASA,UAAW,EAErC;EAAE,GACER,KAAK,CACV,CAAC;AAEN,CAAC;AAEDP,CAAC,CAACoB,iBAAiB,GAAG,IAAI;AAC1BpB,CAAC,CAACqB,qBAAqB,GAAG,IAAI;AAE9B,eAAerB,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"AccordionContent.js","names":["React","classnames","warn","validateDOMAttributes","processChildren","getPreviousSibling","useMediaQuery","AccordionContext","createSpacingClasses","HeightAnimation","AccordionContent","props","context","useContext","id","expanded","prerender","prevent_rerender","single_container","disabled","no_animation","contentRef","className","children","instance","rest","_objectWithoutProperties","_excluded","elementRef","useRef","cacheRef","setContainerHeight","contentElem","current","style","height","containerElement","transitionDuration","minHeight","offsetHeight","offsetTop","e","renderContent","prevent_rerender_conditional","content","createElement","useEffect","useState","Object","prototype","hasOwnProperty","call","isSmallScreen","when","max","wrapperParams","_objectSpread","keepInDOM","innerParams","animate","_extends","open","innerRef","_supportsSpacingProps"],"sources":["../../../../src/components/accordion/AccordionContent.tsx"],"sourcesContent":["/**\n * Web Accordion Component\n *\n */\n\nimport React, { HTMLProps } from 'react'\nimport classnames from 'classnames'\nimport {\n warn,\n validateDOMAttributes,\n processChildren,\n getPreviousSibling,\n} from '../../shared/component-helper'\nimport { useMediaQuery } from '../../shared'\nimport AccordionContext, {\n AccordionContextProps,\n} from './AccordionContext'\nimport { createSpacingClasses } from '../space/SpacingHelper'\nimport HeightAnimation from '../height-animation/HeightAnimation'\nimport { SpacingProps } from '../space/types'\n\nexport type AccordionContentProps = Omit<\n React.HTMLProps<HTMLElement>,\n 'onAnimationEnd' | 'children'\n> &\n SpacingProps & {\n instance?: React.MutableRefObject<unknown>\n className?: string\n children?: React.ReactNode | ((...args: any[]) => any)\n }\n\nexport default function AccordionContent(props: AccordionContentProps) {\n const context = React.useContext<AccordionContextProps>(AccordionContext)\n\n const {\n id,\n expanded,\n prerender,\n prevent_rerender,\n single_container,\n disabled,\n no_animation,\n contentRef,\n } = context\n\n const { className, children, instance, ...rest } = props\n\n let elementRef = React.useRef(null)\n const cacheRef = React.useRef(null)\n\n if (contentRef) {\n elementRef = contentRef\n }\n\n const setContainerHeight = () => {\n const { single_container } = context\n\n if (single_container) {\n const contentElem = elementRef.current\n if (contentElem) {\n try {\n contentElem.style.height = ''\n\n const containerElement = getPreviousSibling(\n 'dnb-accordion-group--single-container',\n contentElem\n ) as HTMLElement\n\n if (no_animation) {\n containerElement.style.transitionDuration = '1ms'\n }\n\n const minHeight =\n (contentElem.offsetHeight + contentElem.offsetTop) / 16\n containerElement.style.minHeight = `${minHeight}rem`\n } catch (e) {\n warn(e)\n }\n }\n }\n }\n\n const renderContent = () => {\n const children = processChildren(props)\n\n const {\n expanded,\n prerender,\n prevent_rerender,\n prevent_rerender_conditional,\n } = context\n\n let content = children\n\n if (typeof content === 'string') {\n content = <p className=\"dnb-p\">{content}</p>\n }\n\n if (prevent_rerender) {\n /**\n * Ensure we do not render, if it is not expanded\n */\n if (!(expanded || prerender)) {\n content = null\n }\n\n // update the cache if children is not the same anymore\n if (prevent_rerender_conditional && cacheRef.current !== content) {\n cacheRef.current = content\n }\n\n if (cacheRef.current) {\n content = cacheRef.current\n } else {\n cacheRef.current = content\n }\n }\n\n return content\n }\n\n React.useEffect(() => {\n if (expanded && single_container) {\n setContainerHeight()\n }\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [children, expanded, single_container])\n\n React.useState(() => {\n if (\n instance &&\n Object.prototype.hasOwnProperty.call(instance, 'current')\n ) {\n instance.current = { setContainerHeight }\n }\n })\n\n const isSmallScreen = useMediaQuery({\n when: { max: 'small' },\n })\n\n const content = renderContent()\n\n const wrapperParams = {\n className: classnames('dnb-accordion__content', className),\n ...rest,\n }\n\n const keepInDOM = prerender || prevent_rerender\n\n const innerParams = {\n id: `${id}-content`,\n 'aria-labelledby': `${id}-header`,\n className: classnames(\n 'dnb-accordion__content__inner',\n createSpacingClasses(rest)\n ),\n } as HTMLProps<HTMLElement>\n\n if (expanded) {\n innerParams['aria-expanded'] = true\n }\n\n if (!expanded || disabled) {\n innerParams.disabled = true\n innerParams['aria-hidden'] = true\n }\n\n // to remove spacing props\n validateDOMAttributes(props, wrapperParams)\n validateDOMAttributes(null, innerParams)\n\n const animate =\n !no_animation && (single_container ? isSmallScreen : true)\n\n return (\n <HeightAnimation\n {...wrapperParams}\n open={expanded}\n animate={animate}\n keepInDOM={keepInDOM}\n innerRef={elementRef}\n >\n <section {...innerParams}>{content}</section>\n </HeightAnimation>\n )\n}\n\nAccordionContent._supportsSpacingProps = true\n"],"mappings":"
|
|
1
|
+
{"version":3,"file":"AccordionContent.js","names":["React","classnames","warn","validateDOMAttributes","processChildren","getPreviousSibling","useMediaQuery","AccordionContext","createSpacingClasses","HeightAnimation","AccordionContent","props","context","useContext","id","expanded","prerender","prevent_rerender","single_container","disabled","no_animation","contentRef","className","children","instance","rest","_objectWithoutProperties","_excluded","elementRef","useRef","cacheRef","setContainerHeight","contentElem","current","style","height","containerElement","transitionDuration","minHeight","offsetHeight","offsetTop","e","renderContent","prevent_rerender_conditional","content","createElement","useEffect","useState","Object","prototype","hasOwnProperty","call","isSmallScreen","when","max","wrapperParams","_objectSpread","keepInDOM","innerParams","animate","_extends","open","innerRef","_supportsSpacingProps"],"sources":["../../../../src/components/accordion/AccordionContent.tsx"],"sourcesContent":["/**\n * Web Accordion Component\n *\n */\n\nimport React, { HTMLProps } from 'react'\nimport classnames from 'classnames'\nimport {\n warn,\n validateDOMAttributes,\n processChildren,\n getPreviousSibling,\n} from '../../shared/component-helper'\nimport { useMediaQuery } from '../../shared'\nimport AccordionContext, {\n AccordionContextProps,\n} from './AccordionContext'\nimport { createSpacingClasses } from '../space/SpacingHelper'\nimport HeightAnimation from '../height-animation/HeightAnimation'\nimport { SpacingProps } from '../space/types'\n\nexport type AccordionContentProps = Omit<\n React.HTMLProps<HTMLElement>,\n 'onAnimationEnd' | 'children'\n> &\n SpacingProps & {\n instance?: React.MutableRefObject<unknown>\n className?: string\n children?: React.ReactNode | ((...args: any[]) => any)\n }\n\nexport default function AccordionContent(props: AccordionContentProps) {\n const context = React.useContext<AccordionContextProps>(AccordionContext)\n\n const {\n id,\n expanded,\n prerender,\n prevent_rerender,\n single_container,\n disabled,\n no_animation,\n contentRef,\n } = context\n\n const { className, children, instance, ...rest } = props\n\n let elementRef = React.useRef(null)\n const cacheRef = React.useRef(null)\n\n if (contentRef) {\n elementRef = contentRef\n }\n\n const setContainerHeight = () => {\n const { single_container } = context\n\n if (single_container) {\n const contentElem = elementRef.current\n if (contentElem) {\n try {\n contentElem.style.height = ''\n\n const containerElement = getPreviousSibling(\n 'dnb-accordion-group--single-container',\n contentElem\n ) as HTMLElement\n\n if (no_animation) {\n containerElement.style.transitionDuration = '1ms'\n }\n\n const minHeight =\n (contentElem.offsetHeight + contentElem.offsetTop) / 16\n containerElement.style.minHeight = `${minHeight}rem`\n } catch (e) {\n warn(e)\n }\n }\n }\n }\n\n const renderContent = () => {\n const children = processChildren(props)\n\n const {\n expanded,\n prerender,\n prevent_rerender,\n prevent_rerender_conditional,\n } = context\n\n let content = children\n\n if (typeof content === 'string') {\n content = <p className=\"dnb-p\">{content}</p>\n }\n\n if (prevent_rerender) {\n /**\n * Ensure we do not render, if it is not expanded\n */\n if (!(expanded || prerender)) {\n content = null\n }\n\n // update the cache if children is not the same anymore\n if (prevent_rerender_conditional && cacheRef.current !== content) {\n cacheRef.current = content\n }\n\n if (cacheRef.current) {\n content = cacheRef.current\n } else {\n cacheRef.current = content\n }\n }\n\n return content\n }\n\n React.useEffect(() => {\n if (expanded && single_container) {\n setContainerHeight()\n }\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [children, expanded, single_container])\n\n React.useState(() => {\n if (\n instance &&\n Object.prototype.hasOwnProperty.call(instance, 'current')\n ) {\n instance.current = { setContainerHeight }\n }\n })\n\n const isSmallScreen = useMediaQuery({\n when: { max: 'small' },\n })\n\n const content = renderContent()\n\n const wrapperParams = {\n className: classnames('dnb-accordion__content', className),\n ...rest,\n }\n\n const keepInDOM = prerender || prevent_rerender\n\n const innerParams = {\n id: `${id}-content`,\n 'aria-labelledby': `${id}-header`,\n className: classnames(\n 'dnb-accordion__content__inner',\n createSpacingClasses(rest)\n ),\n } as HTMLProps<HTMLElement>\n\n if (expanded) {\n innerParams['aria-expanded'] = true\n }\n\n if (!expanded || disabled) {\n innerParams.disabled = true\n innerParams['aria-hidden'] = true\n }\n\n // to remove spacing props\n validateDOMAttributes(props, wrapperParams)\n validateDOMAttributes(null, innerParams)\n\n const animate =\n !no_animation && (single_container ? isSmallScreen : true)\n\n return (\n <HeightAnimation\n {...wrapperParams}\n open={expanded}\n animate={animate}\n keepInDOM={keepInDOM}\n innerRef={elementRef}\n >\n <section {...innerParams}>{content}</section>\n </HeightAnimation>\n )\n}\n\nAccordionContent._supportsSpacingProps = true\n"],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Anchor.js","names":["React","classnames","E","Context","makeUniqueId","extendPropsWithContext","getOffsetTop","IconPrimary","Tooltip","launch","launchIcon","defaultProps","AnchorInstance","localProps","context","useContext","allProps","skeleton","getTranslation","Anchor","inner_ref","innerRef","createRef","id","element","className","children","tooltip","icon","iconPosition","omitClass","targetBlankTitle","rest","_objectWithoutProperties","_excluded","attributes","internalId","as","prefix","suffix","href","to","showLaunchicon","target","test","showTooltip","title","_IconPrimary","createElement","iconNode","pickIcon","Fragment","_extends","showDelay","targetElement","forwardRef","props","ref","_supportsSpacingProps","scrollToHashHandler","event","_element$pathname","currentTarget","getAttribute","document","includes","isSamePath","startsWith","window","location","pathname","replace","split","reverse","anchorElem","getElementById","HTMLElement","scrollPadding","parseFloat","getComputedStyle","documentElement","scrollPaddingTop","top","scroll","error","console","_icon$props","_icon$props2","_icon$props2$classNam","_icon$props3","cloneElement","key"],"sources":["../../../../src/components/anchor/Anchor.tsx"],"sourcesContent":["/**\n * HTML Element\n *\n */\n\nimport React from 'react'\nimport classnames from 'classnames'\nimport E, { ElementProps, ElementIsType } from '../../elements/Element'\nimport Context from '../../shared/Context'\nimport {\n makeUniqueId,\n extendPropsWithContext,\n} from '../../shared/component-helper'\nimport { getOffsetTop } from '../../shared/helpers'\nimport IconPrimary from '../icon-primary/IconPrimary'\nimport Tooltip from '../tooltip/Tooltip'\nimport { launch as launchIcon } from '../../icons'\nimport type { IconIcon } from '../icon/Icon'\nimport type { SkeletonShow } from '../skeleton/Skeleton'\nimport type { SpacingProps } from '../../shared/types'\n\nexport type AnchorProps = {\n element?: ElementIsType\n href?: string\n to?: string\n targetBlankTitle?: string\n target?: string\n tooltip?: React.ReactNode\n icon?: IconIcon\n iconPosition?: 'left' | 'right'\n skeleton?: SkeletonShow\n omitClass?: boolean\n innerRef?: React.RefObject<HTMLAnchorElement>\n\n /** @deprecated use innerRef instead */\n inner_ref?: React.RefObject<HTMLAnchorElement>\n}\n\nexport type AnchorAllProps = AnchorProps &\n Omit<React.HTMLProps<HTMLAnchorElement>, 'ref'> &\n SpacingProps\n\nconst defaultProps = {}\n\nexport function AnchorInstance(localProps: AnchorAllProps) {\n const context = React.useContext(Context)\n const allProps = extendPropsWithContext(\n localProps,\n defaultProps,\n { skeleton: context?.skeleton },\n context?.getTranslation(localProps as AnchorAllProps).Anchor,\n context?.Anchor\n )\n\n // deprecated: inner_ref is still needed to support Button's usage of Anchor\n if (typeof allProps.inner_ref !== 'undefined') {\n allProps.innerRef = allProps.inner_ref\n delete allProps.inner_ref\n }\n\n if (!allProps.innerRef) {\n allProps.innerRef = React.createRef()\n }\n\n const {\n id,\n element,\n className,\n children,\n tooltip,\n icon,\n iconPosition = 'left',\n omitClass,\n innerRef,\n targetBlankTitle,\n ...rest\n } = allProps\n\n const attributes = rest as ElementProps\n const internalId = id || 'id' + makeUniqueId()\n const as = (element || 'a') as string\n\n let prefix: React.ReactNode\n let suffix: React.ReactNode\n\n const href = allProps.href || allProps.to\n const showLaunchicon =\n allProps.target === '_blank' && !/^(mailto|tel|sms)/.test(href)\n const showTooltip = (tooltip || showLaunchicon) && !allProps.title\n\n // WCAG guide: https://www.w3.org/TR/WCAG20-TECHS/G201.html\n if (showLaunchicon) {\n suffix = <IconPrimary icon={launchIcon} />\n }\n\n if (icon) {\n const iconNode = pickIcon(icon) || <IconPrimary icon={icon} />\n if (iconPosition === 'left') {\n prefix = <>{iconNode} </>\n } else if (iconPosition === 'right') {\n suffix = <> {iconNode}</>\n }\n }\n\n return (\n <>\n <E\n as={as}\n id={id}\n className={classnames(\n omitClass !== true && 'dnb-anchor',\n className,\n prefix && 'dnb-anchor--icon-left',\n suffix && 'dnb-anchor--icon-right',\n typeof children !== 'string' && 'dnb-anchor--was-node',\n showLaunchicon && 'dnb-anchor--launch-icon'\n )}\n {...attributes}\n innerRef={innerRef}\n >\n {prefix}\n {children}\n {suffix}\n </E>\n\n {showTooltip && (\n <Tooltip\n showDelay={100}\n id={internalId + '-tooltip'}\n targetElement={innerRef}\n tooltip={tooltip}\n >\n {allProps.title || targetBlankTitle}\n </Tooltip>\n )}\n </>\n )\n}\n\nconst Anchor = React.forwardRef(\n (props: AnchorAllProps, ref: React.RefObject<HTMLAnchorElement>) => {\n return <AnchorInstance innerRef={ref} {...props} />\n }\n)\n\n// eslint-disable-next-line @typescript-eslint/ban-ts-comment\n// @ts-ignore\nAnchor._supportsSpacingProps = true\n\nexport default Anchor\n\nexport function scrollToHashHandler(\n event: React.MouseEvent<HTMLAnchorElement, MouseEvent>\n) {\n const element = event.currentTarget as HTMLAnchorElement\n const href = element.getAttribute('href')\n\n if (typeof document === 'undefined' || !href.includes('#')) {\n return // stop here\n }\n\n /**\n * What happens here?\n * When `scroll-behavior: smooth;` in CSS is set,\n * Blink/Chromium wants the user to click two times in order to actually scroll to the anchor hash.\n * The first click, sets the hash, the second one, scrolls to it.\n * We want Chromium browsers to scroll to the element on the first click.\n */\n const isSamePath =\n href.startsWith('#') ||\n window.location.href.includes(element.pathname?.replace(/\\/$/, ''))\n\n // Only continue, when we are sure we are on the same page,\n // because, the same ID may exists occasionally on the current page.\n if (isSamePath) {\n const id = href.split(/#/g).reverse()[0]\n const anchorElem = document.getElementById(id)\n\n if (anchorElem instanceof HTMLElement) {\n try {\n const scrollPadding = parseFloat(\n window.getComputedStyle(document.documentElement)\n .scrollPaddingTop\n )\n const top = getOffsetTop(anchorElem) - scrollPadding || 0\n\n window.scroll({ top })\n\n return { element: anchorElem }\n } catch (error) {\n console.error(error)\n }\n }\n }\n}\n\nexport function pickIcon(icon) {\n return icon?.props?.icon || icon?.props?.className?.includes('dnb-icon')\n ? React.cloneElement(icon, {\n key: 'button-icon-clone',\n className: classnames(icon.props?.className, 'dnb-button__icon'),\n })\n : null\n}\n"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"Anchor.js","names":["React","classnames","E","Context","makeUniqueId","extendPropsWithContext","getOffsetTop","IconPrimary","Tooltip","launch","launchIcon","defaultProps","AnchorInstance","localProps","context","useContext","allProps","skeleton","getTranslation","Anchor","inner_ref","innerRef","createRef","id","element","className","children","tooltip","icon","iconPosition","omitClass","targetBlankTitle","rest","_objectWithoutProperties","_excluded","attributes","internalId","as","prefix","suffix","href","to","showLaunchicon","target","test","showTooltip","title","_IconPrimary","createElement","iconNode","pickIcon","Fragment","_extends","showDelay","targetElement","forwardRef","props","ref","_supportsSpacingProps","scrollToHashHandler","event","_element$pathname","currentTarget","getAttribute","document","includes","isSamePath","startsWith","window","location","pathname","replace","split","reverse","anchorElem","getElementById","HTMLElement","scrollPadding","parseFloat","getComputedStyle","documentElement","scrollPaddingTop","top","scroll","error","console","_icon$props","_icon$props2","_icon$props2$classNam","_icon$props3","cloneElement","key"],"sources":["../../../../src/components/anchor/Anchor.tsx"],"sourcesContent":["/**\n * HTML Element\n *\n */\n\nimport React from 'react'\nimport classnames from 'classnames'\nimport E, { ElementProps, ElementIsType } from '../../elements/Element'\nimport Context from '../../shared/Context'\nimport {\n makeUniqueId,\n extendPropsWithContext,\n} from '../../shared/component-helper'\nimport { getOffsetTop } from '../../shared/helpers'\nimport IconPrimary from '../icon-primary/IconPrimary'\nimport Tooltip from '../tooltip/Tooltip'\nimport { launch as launchIcon } from '../../icons'\nimport type { IconIcon } from '../icon/Icon'\nimport type { SkeletonShow } from '../skeleton/Skeleton'\nimport type { SpacingProps } from '../../shared/types'\n\nexport type AnchorProps = {\n element?: ElementIsType\n href?: string\n to?: string\n targetBlankTitle?: string\n target?: string\n tooltip?: React.ReactNode\n icon?: IconIcon\n iconPosition?: 'left' | 'right'\n skeleton?: SkeletonShow\n omitClass?: boolean\n innerRef?: React.RefObject<HTMLAnchorElement>\n\n /** @deprecated use innerRef instead */\n inner_ref?: React.RefObject<HTMLAnchorElement>\n}\n\nexport type AnchorAllProps = AnchorProps &\n Omit<React.HTMLProps<HTMLAnchorElement>, 'ref'> &\n SpacingProps\n\nconst defaultProps = {}\n\nexport function AnchorInstance(localProps: AnchorAllProps) {\n const context = React.useContext(Context)\n const allProps = extendPropsWithContext(\n localProps,\n defaultProps,\n { skeleton: context?.skeleton },\n context?.getTranslation(localProps as AnchorAllProps).Anchor,\n context?.Anchor\n )\n\n // deprecated: inner_ref is still needed to support Button's usage of Anchor\n if (typeof allProps.inner_ref !== 'undefined') {\n allProps.innerRef = allProps.inner_ref\n delete allProps.inner_ref\n }\n\n if (!allProps.innerRef) {\n allProps.innerRef = React.createRef()\n }\n\n const {\n id,\n element,\n className,\n children,\n tooltip,\n icon,\n iconPosition = 'left',\n omitClass,\n innerRef,\n targetBlankTitle,\n ...rest\n } = allProps\n\n const attributes = rest as ElementProps\n const internalId = id || 'id' + makeUniqueId()\n const as = (element || 'a') as string\n\n let prefix: React.ReactNode\n let suffix: React.ReactNode\n\n const href = allProps.href || allProps.to\n const showLaunchicon =\n allProps.target === '_blank' && !/^(mailto|tel|sms)/.test(href)\n const showTooltip = (tooltip || showLaunchicon) && !allProps.title\n\n // WCAG guide: https://www.w3.org/TR/WCAG20-TECHS/G201.html\n if (showLaunchicon) {\n suffix = <IconPrimary icon={launchIcon} />\n }\n\n if (icon) {\n const iconNode = pickIcon(icon) || <IconPrimary icon={icon} />\n if (iconPosition === 'left') {\n prefix = <>{iconNode} </>\n } else if (iconPosition === 'right') {\n suffix = <> {iconNode}</>\n }\n }\n\n return (\n <>\n <E\n as={as}\n id={id}\n className={classnames(\n omitClass !== true && 'dnb-anchor',\n className,\n prefix && 'dnb-anchor--icon-left',\n suffix && 'dnb-anchor--icon-right',\n typeof children !== 'string' && 'dnb-anchor--was-node',\n showLaunchicon && 'dnb-anchor--launch-icon'\n )}\n {...attributes}\n innerRef={innerRef}\n >\n {prefix}\n {children}\n {suffix}\n </E>\n\n {showTooltip && (\n <Tooltip\n showDelay={100}\n id={internalId + '-tooltip'}\n targetElement={innerRef}\n tooltip={tooltip}\n >\n {allProps.title || targetBlankTitle}\n </Tooltip>\n )}\n </>\n )\n}\n\nconst Anchor = React.forwardRef(\n (props: AnchorAllProps, ref: React.RefObject<HTMLAnchorElement>) => {\n return <AnchorInstance innerRef={ref} {...props} />\n }\n)\n\n// eslint-disable-next-line @typescript-eslint/ban-ts-comment\n// @ts-ignore\nAnchor._supportsSpacingProps = true\n\nexport default Anchor\n\nexport function scrollToHashHandler(\n event: React.MouseEvent<HTMLAnchorElement, MouseEvent>\n) {\n const element = event.currentTarget as HTMLAnchorElement\n const href = element.getAttribute('href')\n\n if (typeof document === 'undefined' || !href.includes('#')) {\n return // stop here\n }\n\n /**\n * What happens here?\n * When `scroll-behavior: smooth;` in CSS is set,\n * Blink/Chromium wants the user to click two times in order to actually scroll to the anchor hash.\n * The first click, sets the hash, the second one, scrolls to it.\n * We want Chromium browsers to scroll to the element on the first click.\n */\n const isSamePath =\n href.startsWith('#') ||\n window.location.href.includes(element.pathname?.replace(/\\/$/, ''))\n\n // Only continue, when we are sure we are on the same page,\n // because, the same ID may exists occasionally on the current page.\n if (isSamePath) {\n const id = href.split(/#/g).reverse()[0]\n const anchorElem = document.getElementById(id)\n\n if (anchorElem instanceof HTMLElement) {\n try {\n const scrollPadding = parseFloat(\n window.getComputedStyle(document.documentElement)\n .scrollPaddingTop\n )\n const top = getOffsetTop(anchorElem) - scrollPadding || 0\n\n window.scroll({ top })\n\n return { element: anchorElem }\n } catch (error) {\n console.error(error)\n }\n }\n }\n}\n\nexport function pickIcon(icon) {\n return icon?.props?.icon || icon?.props?.className?.includes('dnb-icon')\n ? React.cloneElement(icon, {\n key: 'button-icon-clone',\n className: classnames(icon.props?.className, 'dnb-button__icon'),\n })\n : null\n}\n"],"mappings":"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"}
|