@dnb/eufemia 10.22.0 → 10.24.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 +61 -0
- package/cjs/components/accordion/Accordion.js +1 -1
- package/cjs/components/accordion/Accordion.js.map +1 -1
- package/cjs/components/accordion/AccordionContext.d.ts +1 -1
- package/cjs/components/accordion/AccordionGroup.js +1 -1
- package/cjs/components/accordion/AccordionGroup.js.map +1 -1
- package/cjs/components/accordion/style/themes/dnb-accordion-theme-sbanken.css +18 -0
- package/cjs/components/accordion/style/themes/dnb-accordion-theme-sbanken.min.css +1 -1
- package/cjs/components/accordion/style/themes/dnb-accordion-theme-sbanken.scss +20 -0
- package/cjs/components/anchor/Anchor.d.ts +3 -4
- package/cjs/components/anchor/Anchor.js +16 -25
- package/cjs/components/anchor/Anchor.js.map +1 -1
- package/cjs/components/anchor/style/anchor-mixins.scss +62 -13
- package/cjs/components/anchor/style/dnb-anchor.css +79 -16
- package/cjs/components/anchor/style/dnb-anchor.min.css +1 -1
- package/cjs/components/anchor/style/themes/dnb-anchor-theme-eiendom.css +10 -30
- package/cjs/components/anchor/style/themes/dnb-anchor-theme-eiendom.min.css +1 -1
- package/cjs/components/anchor/style/themes/dnb-anchor-theme-sbanken.css +82 -78
- package/cjs/components/anchor/style/themes/dnb-anchor-theme-sbanken.min.css +1 -1
- package/cjs/components/anchor/style/themes/dnb-anchor-theme-sbanken.scss +25 -53
- package/cjs/components/anchor/style/themes/dnb-anchor-theme-ui.css +10 -30
- package/cjs/components/anchor/style/themes/dnb-anchor-theme-ui.min.css +1 -1
- package/cjs/components/anchor/style/themes/dnb-anchor-theme-ui.scss +1 -8
- package/cjs/components/aria-live/useAriaLive.d.ts +1 -1
- package/cjs/components/breadcrumb/Breadcrumb.js +26 -17
- package/cjs/components/breadcrumb/Breadcrumb.js.map +1 -1
- package/cjs/components/breadcrumb/BreadcrumbItem.d.ts +6 -4
- package/cjs/components/breadcrumb/BreadcrumbItem.js +17 -9
- package/cjs/components/breadcrumb/BreadcrumbItem.js.map +1 -1
- package/cjs/components/breadcrumb/style/dnb-breadcrumb.css +29 -4
- package/cjs/components/breadcrumb/style/dnb-breadcrumb.min.css +1 -1
- package/cjs/components/breadcrumb/style/dnb-breadcrumb.scss +32 -4
- package/cjs/components/breadcrumb/style/themes/dnb-breadcrumb-theme-sbanken.css +9 -0
- package/cjs/components/breadcrumb/style/themes/dnb-breadcrumb-theme-sbanken.min.css +1 -1
- package/cjs/components/breadcrumb/style/themes/dnb-breadcrumb-theme-sbanken.scss +7 -0
- package/cjs/components/button/Button.js +1 -1
- package/cjs/components/button/Button.js.map +1 -1
- package/cjs/components/button/style/button--tertiary.scss +30 -75
- package/cjs/components/button/style/dnb-button.css +43 -49
- package/cjs/components/button/style/dnb-button.min.css +1 -1
- package/cjs/components/button/style/dnb-button.scss +46 -59
- package/cjs/components/button/style/themes/button-mixins.scss +26 -5
- package/cjs/components/button/style/themes/dnb-button-theme-eiendom.css +29 -60
- package/cjs/components/button/style/themes/dnb-button-theme-eiendom.min.css +12 -2
- package/cjs/components/button/style/themes/dnb-button-theme-sbanken.css +44 -72
- package/cjs/components/button/style/themes/dnb-button-theme-sbanken.min.css +16 -4
- package/cjs/components/button/style/themes/dnb-button-theme-sbanken.scss +14 -16
- package/cjs/components/button/style/themes/dnb-button-theme-ui.css +29 -60
- package/cjs/components/button/style/themes/dnb-button-theme-ui.min.css +12 -2
- package/cjs/components/button/style/themes/dnb-button-theme-ui.scss +1 -1
- package/cjs/components/card/Card.d.ts +15 -2
- package/cjs/components/card/Card.js +19 -7
- package/cjs/components/card/Card.js.map +1 -1
- package/cjs/components/card/CardDocs.d.ts +2 -0
- package/cjs/components/card/CardDocs.js +65 -0
- package/cjs/components/card/CardDocs.js.map +1 -0
- package/cjs/components/card/style/dnb-card.css +24 -5
- package/cjs/components/card/style/dnb-card.min.css +1 -1
- package/cjs/components/card/style/dnb-card.scss +47 -16
- package/cjs/components/checkbox/style/dnb-checkbox.css +3 -0
- package/cjs/components/checkbox/style/dnb-checkbox.min.css +1 -1
- package/cjs/components/checkbox/style/dnb-checkbox.scss +7 -0
- package/cjs/components/date-picker/DatePicker.d.ts +2 -0
- package/cjs/components/date-picker/DatePicker.js +2 -1
- package/cjs/components/date-picker/DatePicker.js.map +1 -1
- package/cjs/components/date-picker/DatePickerInput.js +19 -3
- package/cjs/components/date-picker/DatePickerInput.js.map +1 -1
- package/cjs/components/date-picker/DatePickerProvider.js +8 -3
- package/cjs/components/date-picker/DatePickerProvider.js.map +1 -1
- package/cjs/components/dropdown/style/dnb-dropdown.css +3 -0
- package/cjs/components/dropdown/style/dnb-dropdown.min.css +1 -1
- package/cjs/components/dropdown/style/dnb-dropdown.scss +4 -0
- package/cjs/components/flex/style/dnb-flex.css +1 -1
- package/cjs/components/flex/style/dnb-flex.min.css +1 -1
- package/cjs/components/flex/style/flex-stack.scss +1 -1
- package/cjs/components/form-label/FormLabel.js +1 -1
- package/cjs/components/form-label/FormLabel.js.map +1 -1
- package/cjs/components/form-label/style/dnb-form-label.css +3 -0
- package/cjs/components/form-label/style/dnb-form-label.min.css +1 -1
- package/cjs/components/form-label/style/dnb-form-label.scss +4 -0
- package/cjs/components/form-label/style/themes/dnb-form-label-theme-sbanken.css +0 -3
- package/cjs/components/form-label/style/themes/dnb-form-label-theme-sbanken.min.css +1 -1
- package/cjs/components/form-label/style/themes/dnb-form-label-theme-sbanken.scss +0 -8
- package/cjs/components/form-label/style/themes/dnb-form-label-theme-ui.css +0 -6
- package/cjs/components/form-label/style/themes/dnb-form-label-theme-ui.min.css +1 -1
- package/cjs/components/form-label/style/themes/dnb-form-label-theme-ui.scss +0 -8
- package/cjs/components/heading/HeadingContext.d.ts +1 -1
- package/cjs/components/height-animation/style/dnb-height-animation.css +2 -2
- package/cjs/components/height-animation/style/dnb-height-animation.min.css +1 -1
- package/cjs/components/height-animation/style/dnb-height-animation.scss +3 -2
- package/cjs/components/icon/style/dnb-icon.css +2 -2
- package/cjs/components/icon/style/dnb-icon.min.css +1 -1
- package/cjs/components/icon/style/dnb-icon.scss +1 -1
- package/cjs/components/input/Input.js +1 -1
- package/cjs/components/input/Input.js.map +1 -1
- package/cjs/components/number-format/NumberUtils.d.ts +1 -1
- package/cjs/components/radio/style/dnb-radio.css +4 -0
- package/cjs/components/radio/style/dnb-radio.min.css +1 -1
- package/cjs/components/radio/style/dnb-radio.scss +9 -0
- package/cjs/components/section/style/themes/dnb-section-theme-ui.css +3 -6
- package/cjs/components/section/style/themes/dnb-section-theme-ui.min.css +1 -1
- package/cjs/components/skeleton/SkeletonHelper.d.ts +6 -6
- package/cjs/components/skeleton/style/dnb-skeleton.css +1 -0
- package/cjs/components/skeleton/style/dnb-skeleton.min.css +1 -1
- package/cjs/components/skeleton/style/dnb-skeleton.scss +1 -0
- package/cjs/components/slider/SliderInstance.js +1 -0
- package/cjs/components/slider/SliderInstance.js.map +1 -1
- package/cjs/components/slider/SliderThumb.js +4 -2
- package/cjs/components/slider/SliderThumb.js.map +1 -1
- package/cjs/components/step-indicator/StepIndicator.js +11 -5
- package/cjs/components/step-indicator/StepIndicator.js.map +1 -1
- package/cjs/components/step-indicator/style/themes/dnb-step-indicator-theme-ui.css +1 -1
- package/cjs/components/step-indicator/style/themes/dnb-step-indicator-theme-ui.min.css +1 -1
- package/cjs/components/step-indicator/style/themes/dnb-step-indicator-theme-ui.scss +1 -1
- package/cjs/components/table/TableScrollView.d.ts +5 -1
- package/cjs/components/table/TableScrollView.js +1 -0
- package/cjs/components/table/TableScrollView.js.map +1 -1
- package/cjs/components/table/TableTr.d.ts +1 -2
- package/cjs/components/table/TableTr.js.map +1 -1
- package/cjs/components/table/style/dnb-table.css +14 -1
- package/cjs/components/table/style/dnb-table.min.css +1 -1
- package/cjs/components/table/style/dnb-table.scss +7 -1
- package/cjs/components/table/style/table-header-buttons.scss +4 -1
- package/cjs/components/table/style/table-th.scss +9 -25
- package/cjs/components/table/style/themes/dnb-table-theme-sbanken.css +1 -1
- package/cjs/components/table/style/themes/dnb-table-theme-sbanken.min.css +1 -1
- package/cjs/components/table/style/themes/dnb-table-theme-sbanken.scss +2 -1
- package/cjs/components/table/style/themes/dnb-table-theme-ui.css +1 -1
- package/cjs/components/table/style/themes/dnb-table-theme-ui.min.css +1 -1
- package/cjs/components/table/style/themes/dnb-table-theme-ui.scss +2 -2
- package/cjs/components/table/useTableAnimationHandler.d.ts +1 -1
- package/cjs/components/table/useTableAnimationHandler.js +3 -3
- package/cjs/components/table/useTableAnimationHandler.js.map +1 -1
- package/cjs/components/tag/Tag.d.ts +11 -0
- package/cjs/components/tag/Tag.js +55 -40
- package/cjs/components/tag/Tag.js.map +1 -1
- package/cjs/components/tag/style/dnb-tag.css +50 -86
- package/cjs/components/tag/style/dnb-tag.min.css +1 -1
- package/cjs/components/tag/style/dnb-tag.scss +37 -45
- package/cjs/components/tag/style/themes/tag-mixins.scss +24 -6
- package/cjs/components/textarea/Textarea.d.ts +9 -0
- package/cjs/components/textarea/Textarea.js +21 -5
- package/cjs/components/textarea/Textarea.js.map +1 -1
- package/cjs/components/textarea/TextareaDocs.js +10 -0
- package/cjs/components/textarea/TextareaDocs.js.map +1 -1
- package/cjs/components/textarea/style/dnb-textarea.css +69 -26
- package/cjs/components/textarea/style/dnb-textarea.min.css +1 -1
- package/cjs/components/textarea/style/dnb-textarea.scss +83 -31
- package/cjs/components/textarea/style/themes/dnb-textarea-theme-sbanken.css +15 -21
- package/cjs/components/textarea/style/themes/dnb-textarea-theme-sbanken.min.css +1 -1
- package/cjs/components/textarea/style/themes/dnb-textarea-theme-sbanken.scss +17 -28
- package/cjs/components/textarea/style/themes/dnb-textarea-theme-ui.css +12 -23
- package/cjs/components/textarea/style/themes/dnb-textarea-theme-ui.min.css +1 -1
- package/cjs/components/textarea/style/themes/dnb-textarea-theme-ui.scss +11 -27
- package/cjs/components/toggle-button/style/themes/dnb-toggle-button-theme-ui.css +1 -2
- package/cjs/components/toggle-button/style/themes/dnb-toggle-button-theme-ui.min.css +1 -1
- package/cjs/components/toggle-button/style/themes/dnb-toggle-button-theme-ui.scss +1 -2
- package/cjs/components/tooltip/Tooltip.js +1 -1
- package/cjs/components/tooltip/Tooltip.js.map +1 -1
- package/cjs/elements/Element.d.ts +3 -4
- package/cjs/elements/Element.js.map +1 -1
- package/cjs/elements/code/style/themes/dnb-code-theme-sbanken.scss +5 -3
- package/cjs/extensions/forms/DataContext/At/At.js.map +1 -1
- package/cjs/extensions/forms/DataContext/Context.d.ts +31 -8
- package/cjs/extensions/forms/DataContext/Context.js +14 -3
- package/cjs/extensions/forms/DataContext/Context.js.map +1 -1
- package/cjs/extensions/forms/DataContext/Provider/Provider.d.ts +29 -16
- package/cjs/extensions/forms/DataContext/Provider/Provider.js +324 -77
- package/cjs/extensions/forms/DataContext/Provider/Provider.js.map +1 -1
- package/cjs/extensions/forms/DataContext/Provider/ProviderDocs.d.ts +3 -0
- package/cjs/extensions/forms/DataContext/Provider/ProviderDocs.js +93 -0
- package/cjs/extensions/forms/DataContext/Provider/ProviderDocs.js.map +1 -0
- package/cjs/extensions/forms/Field/ArraySelection/ArraySelection.js +1 -1
- package/cjs/extensions/forms/Field/ArraySelection/ArraySelection.js.map +1 -1
- package/cjs/extensions/forms/Field/Date/Date.js +3 -3
- package/cjs/extensions/forms/Field/Date/Date.js.map +1 -1
- package/cjs/extensions/forms/Field/Expiry/Expiry.js +4 -4
- package/cjs/extensions/forms/Field/Expiry/Expiry.js.map +1 -1
- package/cjs/extensions/forms/Field/Number/Number.js +3 -3
- package/cjs/extensions/forms/Field/Number/Number.js.map +1 -1
- package/cjs/extensions/forms/Field/Password/Password.d.ts +1 -1
- package/cjs/extensions/forms/Field/Password/Password.js.map +1 -1
- package/cjs/extensions/forms/Field/Password/style/dnb-password.scss +1 -1
- package/cjs/extensions/forms/Field/PhoneNumber/PhoneNumber.js +4 -4
- package/cjs/extensions/forms/Field/PhoneNumber/PhoneNumber.js.map +1 -1
- package/cjs/extensions/forms/Field/PostalCodeAndCity/PostalCodeAndCity.js +3 -1
- package/cjs/extensions/forms/Field/PostalCodeAndCity/PostalCodeAndCity.js.map +1 -1
- package/cjs/extensions/forms/Field/SelectCountry/SelectCountry.js +3 -3
- package/cjs/extensions/forms/Field/SelectCountry/SelectCountry.js.map +1 -1
- package/cjs/extensions/forms/Field/Selection/Selection.js +5 -5
- package/cjs/extensions/forms/Field/Selection/Selection.js.map +1 -1
- package/cjs/extensions/forms/Field/String/String.d.ts +6 -6
- package/cjs/extensions/forms/Field/String/String.js +16 -14
- package/cjs/extensions/forms/Field/String/String.js.map +1 -1
- package/cjs/extensions/forms/Field/String/StringDocs.js +9 -4
- package/cjs/extensions/forms/Field/String/StringDocs.js.map +1 -1
- package/cjs/extensions/forms/Field/Toggle/Toggle.js +7 -7
- package/cjs/extensions/forms/Field/Toggle/Toggle.js.map +1 -1
- package/cjs/extensions/forms/FieldBlock/FieldBlock.d.ts +3 -1
- package/cjs/extensions/forms/FieldBlock/FieldBlock.js +41 -19
- package/cjs/extensions/forms/FieldBlock/FieldBlock.js.map +1 -1
- package/cjs/extensions/forms/FieldBlock/FieldBlockContext.d.ts +2 -2
- package/cjs/extensions/forms/FieldBlock/FieldBlockContext.js.map +1 -1
- package/cjs/extensions/forms/Form/Appearance/Appearance.js +3 -0
- package/cjs/extensions/forms/Form/Appearance/Appearance.js.map +1 -1
- package/cjs/extensions/forms/Form/ButtonRow/style/dnb-form-button-row.css +2 -2
- package/cjs/extensions/forms/Form/ButtonRow/style/dnb-form-button-row.min.css +1 -1
- package/cjs/extensions/forms/Form/ButtonRow/style/dnb-form-button-row.scss +2 -1
- package/cjs/extensions/forms/Form/Handler/Handler.d.ts +1 -1
- package/cjs/extensions/forms/Form/Handler/Handler.js +50 -8
- package/cjs/extensions/forms/Form/Handler/Handler.js.map +1 -1
- package/cjs/extensions/forms/Form/Handler/HandlerDocs.d.ts +3 -0
- package/cjs/extensions/forms/Form/Handler/HandlerDocs.js +49 -0
- package/cjs/extensions/forms/Form/Handler/HandlerDocs.js.map +1 -0
- package/cjs/extensions/forms/Form/SubmitButton/SubmitButton.d.ts +6 -1
- package/cjs/extensions/forms/Form/SubmitButton/SubmitButton.js +19 -10
- package/cjs/extensions/forms/Form/SubmitButton/SubmitButton.js.map +1 -1
- package/cjs/extensions/forms/Form/SubmitButton/SubmitButtonDocs.d.ts +2 -0
- package/cjs/extensions/forms/Form/SubmitButton/SubmitButtonDocs.js +30 -0
- package/cjs/extensions/forms/Form/SubmitButton/SubmitButtonDocs.js.map +1 -0
- package/cjs/extensions/forms/Form/SubmitIndicator/SubmitIndicator.d.ts +14 -0
- package/cjs/extensions/forms/Form/SubmitIndicator/SubmitIndicator.js +81 -0
- package/cjs/extensions/forms/Form/SubmitIndicator/SubmitIndicator.js.map +1 -0
- package/cjs/extensions/forms/Form/SubmitIndicator/SubmitIndicatorDocs.d.ts +2 -0
- package/cjs/extensions/forms/Form/SubmitIndicator/SubmitIndicatorDocs.js +25 -0
- package/cjs/extensions/forms/Form/SubmitIndicator/SubmitIndicatorDocs.js.map +1 -0
- package/cjs/extensions/forms/Form/SubmitIndicator/index.d.ts +2 -0
- package/cjs/extensions/forms/Form/SubmitIndicator/index.js +27 -0
- package/cjs/extensions/forms/Form/SubmitIndicator/index.js.map +1 -0
- package/cjs/extensions/forms/Form/SubmitIndicator/style/dnb-form-submit-indicator.css +99 -0
- package/cjs/extensions/forms/Form/SubmitIndicator/style/dnb-form-submit-indicator.min.css +1 -0
- package/cjs/extensions/forms/Form/SubmitIndicator/style/dnb-form-submit-indicator.scss +117 -0
- package/cjs/extensions/forms/Form/SubmitIndicator/style/index.d.ts +5 -0
- package/cjs/extensions/forms/Form/SubmitIndicator/style/index.js +4 -0
- package/cjs/extensions/forms/Form/SubmitIndicator/style/index.js.map +1 -0
- package/cjs/extensions/forms/Form/data-context/getData.d.ts +1 -1
- package/cjs/extensions/forms/Form/data-context/getData.js.map +1 -1
- package/cjs/extensions/forms/Form/data-context/useData.d.ts +3 -3
- package/cjs/extensions/forms/Form/data-context/useData.js +32 -12
- package/cjs/extensions/forms/Form/data-context/useData.js.map +1 -1
- package/cjs/extensions/forms/Form/data-context/useError.d.ts +3 -2
- package/cjs/extensions/forms/Form/data-context/useError.js +8 -5
- package/cjs/extensions/forms/Form/data-context/useError.js.map +1 -1
- package/cjs/extensions/forms/Form/index.d.ts +1 -0
- package/cjs/extensions/forms/Form/index.js +7 -0
- package/cjs/extensions/forms/Form/index.js.map +1 -1
- package/cjs/extensions/forms/Iterate/Array/Array.js +1 -1
- package/cjs/extensions/forms/Iterate/Array/Array.js.map +1 -1
- package/cjs/extensions/forms/Iterate/ArrayPushButton/ArrayPushButton.js +1 -1
- package/cjs/extensions/forms/Iterate/ArrayPushButton/ArrayPushButton.js.map +1 -1
- package/cjs/extensions/forms/Iterate/ArrayRemoveElementButton/ArrayRemoveElementButton.js +1 -1
- package/cjs/extensions/forms/Iterate/ArrayRemoveElementButton/ArrayRemoveElementButton.js.map +1 -1
- package/cjs/extensions/forms/StepsLayout/NextButton/NextButton.d.ts +1 -3
- package/cjs/extensions/forms/StepsLayout/NextButton/NextButton.js +4 -3
- package/cjs/extensions/forms/StepsLayout/NextButton/NextButton.js.map +1 -1
- package/cjs/extensions/forms/StepsLayout/PreviousButton/PreviousButton.d.ts +1 -3
- package/cjs/extensions/forms/StepsLayout/PreviousButton/PreviousButton.js +6 -2
- package/cjs/extensions/forms/StepsLayout/PreviousButton/PreviousButton.js.map +1 -1
- package/cjs/extensions/forms/StepsLayout/Step/Step.js +2 -3
- package/cjs/extensions/forms/StepsLayout/Step/Step.js.map +1 -1
- package/cjs/extensions/forms/StepsLayout/StepsContext.d.ts +6 -4
- package/cjs/extensions/forms/StepsLayout/StepsContext.js +6 -1
- package/cjs/extensions/forms/StepsLayout/StepsContext.js.map +1 -1
- package/cjs/extensions/forms/StepsLayout/StepsLayout.d.ts +5 -3
- package/cjs/extensions/forms/StepsLayout/StepsLayout.js +112 -50
- package/cjs/extensions/forms/StepsLayout/StepsLayout.js.map +1 -1
- package/cjs/extensions/forms/StepsLayout/StepsLayoutDocs.d.ts +3 -0
- package/cjs/extensions/forms/StepsLayout/StepsLayoutDocs.js +58 -0
- package/cjs/extensions/forms/StepsLayout/StepsLayoutDocs.js.map +1 -0
- package/cjs/extensions/forms/StepsLayout/style/dnb-steps-layout.css +6 -1
- package/cjs/extensions/forms/StepsLayout/style/dnb-steps-layout.min.css +1 -1
- package/cjs/extensions/forms/StepsLayout/style/dnb-steps-layout.scss +11 -1
- package/cjs/extensions/forms/StepsLayout/useStep.d.ts +3 -0
- package/cjs/extensions/forms/StepsLayout/useStep.js +19 -0
- package/cjs/extensions/forms/StepsLayout/useStep.js.map +1 -0
- package/cjs/extensions/forms/Value/Boolean/Boolean.js +1 -1
- package/cjs/extensions/forms/Value/Boolean/Boolean.js.map +1 -1
- package/cjs/extensions/forms/Value/Number/Number.js +5 -5
- package/cjs/extensions/forms/Value/Number/Number.js.map +1 -1
- package/cjs/extensions/forms/Value/String/String.js +1 -1
- package/cjs/extensions/forms/Value/String/String.js.map +1 -1
- package/cjs/extensions/forms/hooks/DataValueDocs.js +3 -3
- package/cjs/extensions/forms/hooks/DataValueDocs.js.map +1 -1
- package/cjs/extensions/forms/hooks/index.d.ts +6 -3
- package/cjs/extensions/forms/hooks/index.js +4 -12
- package/cjs/extensions/forms/hooks/index.js.map +1 -1
- package/cjs/extensions/forms/hooks/useFieldProps.d.ts +23 -0
- package/cjs/extensions/forms/hooks/useFieldProps.js +774 -0
- package/cjs/extensions/forms/hooks/useFieldProps.js.map +1 -0
- package/cjs/extensions/forms/style/dnb-forms.css +107 -3
- package/cjs/extensions/forms/style/dnb-forms.min.css +1 -1
- package/cjs/extensions/forms/types.d.ts +69 -6
- package/cjs/extensions/forms/types.js +3 -2
- package/cjs/extensions/forms/types.js.map +1 -1
- package/cjs/extensions/forms/utils/ajv.d.ts +9 -7
- package/cjs/extensions/forms/utils/ajv.js +34 -17
- package/cjs/extensions/forms/utils/ajv.js.map +1 -1
- package/cjs/fragments/scroll-view/ScrollView.d.ts +2 -2
- package/cjs/fragments/scroll-view/ScrollView.js +4 -1
- package/cjs/fragments/scroll-view/ScrollView.js.map +1 -1
- package/cjs/shared/Context.d.ts +20 -11
- package/cjs/shared/Context.js.map +1 -1
- package/cjs/shared/Eufemia.d.ts +2 -2
- package/cjs/shared/Eufemia.js +2 -2
- package/cjs/shared/Eufemia.js.map +1 -1
- package/cjs/shared/Provider.js.map +1 -1
- package/cjs/shared/defaults.d.ts +3 -3
- package/cjs/shared/defaults.js.map +1 -1
- package/cjs/shared/helpers/debounce.d.ts +21 -30
- package/cjs/shared/helpers/debounce.js +23 -11
- package/cjs/shared/helpers/debounce.js.map +1 -1
- package/cjs/shared/helpers/isAsync.d.ts +7 -0
- package/cjs/shared/helpers/isAsync.js +20 -0
- package/cjs/shared/helpers/isAsync.js.map +1 -0
- package/cjs/shared/helpers/runCssVersionMismatchWarning.d.ts +8 -0
- package/cjs/shared/helpers/runCssVersionMismatchWarning.js +31 -0
- package/cjs/shared/helpers/runCssVersionMismatchWarning.js.map +1 -0
- package/cjs/{extensions/forms/hooks → shared/helpers}/useId.js +1 -1
- package/cjs/shared/helpers/useId.js.map +1 -0
- package/cjs/shared/helpers/useMountEffect.js.map +1 -0
- package/cjs/shared/helpers/useMounted.js.map +1 -0
- package/cjs/shared/helpers/useSharedState.js +15 -9
- package/cjs/shared/helpers/useSharedState.js.map +1 -1
- package/cjs/shared/helpers/useUnmountEffect.js.map +1 -0
- package/cjs/shared/helpers/useUpdateEffect.js.map +1 -0
- package/cjs/shared/helpers.js +2 -0
- package/cjs/shared/helpers.js.map +1 -1
- package/cjs/shared/index.d.ts +10 -10
- package/cjs/shared/index.js +7 -1
- package/cjs/shared/index.js.map +1 -1
- package/cjs/shared/locales/en-GB.d.ts +1 -0
- package/cjs/shared/locales/en-GB.js +2 -1
- package/cjs/shared/locales/en-GB.js.map +1 -1
- package/cjs/shared/locales/en-US.d.ts +1 -0
- package/cjs/shared/locales/index.d.ts +4 -2
- package/cjs/shared/locales/index.js +2 -1
- package/cjs/shared/locales/index.js.map +1 -1
- package/cjs/shared/locales/nb-NO.d.ts +1 -0
- package/cjs/shared/locales/nb-NO.js +2 -1
- package/cjs/shared/locales/nb-NO.js.map +1 -1
- package/cjs/shared/types.d.ts +4 -1
- package/cjs/shared/types.js.map +1 -1
- package/cjs/shared/useLocale.d.ts +2 -0
- package/cjs/shared/useLocale.js +37 -0
- package/cjs/shared/useLocale.js.map +1 -0
- package/cjs/style/core/scopes.scss +3 -0
- package/cjs/style/dnb-ui-basis.css +1 -0
- package/cjs/style/dnb-ui-basis.min.css +1 -1
- package/cjs/style/dnb-ui-body.css +1 -0
- package/cjs/style/dnb-ui-body.min.css +1 -1
- package/cjs/style/dnb-ui-components.css +433 -195
- package/cjs/style/dnb-ui-components.min.css +3 -3
- package/cjs/style/dnb-ui-core.css +1 -0
- package/cjs/style/dnb-ui-core.min.css +1 -1
- package/cjs/style/dnb-ui-extensions.css +107 -3
- package/cjs/style/dnb-ui-extensions.min.css +1 -1
- package/cjs/style/dnb-ui-forms.css +107 -3
- package/cjs/style/dnb-ui-forms.min.css +1 -1
- package/cjs/style/dnb-ui-forms.scss +1 -0
- package/cjs/style/themes/theme-eiendom/eiendom-theme-basis.css +3 -6
- package/cjs/style/themes/theme-eiendom/eiendom-theme-basis.min.css +1 -1
- package/cjs/style/themes/theme-eiendom/eiendom-theme-components.css +596 -328
- package/cjs/style/themes/theme-eiendom/eiendom-theme-components.min.css +17 -7
- package/cjs/style/themes/theme-eiendom/eiendom-theme-elements.css +3 -6
- package/cjs/style/themes/theme-eiendom/eiendom-theme-elements.min.css +1 -1
- package/cjs/style/themes/theme-eiendom/eiendom-theme-extensions.css +107 -3
- package/cjs/style/themes/theme-eiendom/eiendom-theme-extensions.min.css +1 -1
- package/cjs/style/themes/theme-eiendom/eiendom-theme-forms.css +107 -3
- package/cjs/style/themes/theme-eiendom/eiendom-theme-forms.min.css +1 -1
- package/cjs/style/themes/theme-sbanken/sbanken-theme-basis.css +5 -2
- package/cjs/style/themes/theme-sbanken/sbanken-theme-basis.min.css +1 -1
- package/cjs/style/themes/theme-sbanken/sbanken-theme-components.css +710 -374
- package/cjs/style/themes/theme-sbanken/sbanken-theme-components.min.css +21 -9
- package/cjs/style/themes/theme-sbanken/sbanken-theme-elements.css +5 -2
- package/cjs/style/themes/theme-sbanken/sbanken-theme-elements.min.css +1 -1
- package/cjs/style/themes/theme-sbanken/sbanken-theme-extensions.css +107 -3
- package/cjs/style/themes/theme-sbanken/sbanken-theme-extensions.min.css +1 -1
- package/cjs/style/themes/theme-sbanken/sbanken-theme-forms.css +107 -3
- package/cjs/style/themes/theme-sbanken/sbanken-theme-forms.min.css +1 -1
- package/cjs/style/themes/theme-ui/ui-theme-basis.css +3 -6
- package/cjs/style/themes/theme-ui/ui-theme-basis.min.css +1 -1
- package/cjs/style/themes/theme-ui/ui-theme-components.css +596 -326
- package/cjs/style/themes/theme-ui/ui-theme-components.min.css +17 -7
- package/cjs/style/themes/theme-ui/ui-theme-elements.css +3 -6
- package/cjs/style/themes/theme-ui/ui-theme-elements.min.css +1 -1
- package/cjs/style/themes/theme-ui/ui-theme-extensions.css +107 -3
- package/cjs/style/themes/theme-ui/ui-theme-extensions.min.css +1 -1
- package/cjs/style/themes/theme-ui/ui-theme-forms.css +107 -3
- package/cjs/style/themes/theme-ui/ui-theme-forms.min.css +1 -1
- package/cjs/style/themes/theme-ui/ui-theme-tags.css +40 -15
- package/cjs/style/themes/theme-ui/ui-theme-tags.min.css +1 -1
- package/components/accordion/Accordion.js +1 -1
- package/components/accordion/Accordion.js.map +1 -1
- package/components/accordion/AccordionContext.d.ts +1 -1
- package/components/accordion/AccordionGroup.js +1 -1
- package/components/accordion/AccordionGroup.js.map +1 -1
- package/components/accordion/style/themes/dnb-accordion-theme-sbanken.css +18 -0
- package/components/accordion/style/themes/dnb-accordion-theme-sbanken.min.css +1 -1
- package/components/accordion/style/themes/dnb-accordion-theme-sbanken.scss +20 -0
- package/components/anchor/Anchor.d.ts +3 -4
- package/components/anchor/Anchor.js +16 -25
- package/components/anchor/Anchor.js.map +1 -1
- package/components/anchor/style/anchor-mixins.scss +62 -13
- package/components/anchor/style/dnb-anchor.css +79 -16
- package/components/anchor/style/dnb-anchor.min.css +1 -1
- package/components/anchor/style/themes/dnb-anchor-theme-eiendom.css +10 -30
- package/components/anchor/style/themes/dnb-anchor-theme-eiendom.min.css +1 -1
- package/components/anchor/style/themes/dnb-anchor-theme-sbanken.css +82 -78
- package/components/anchor/style/themes/dnb-anchor-theme-sbanken.min.css +1 -1
- package/components/anchor/style/themes/dnb-anchor-theme-sbanken.scss +25 -53
- package/components/anchor/style/themes/dnb-anchor-theme-ui.css +10 -30
- package/components/anchor/style/themes/dnb-anchor-theme-ui.min.css +1 -1
- package/components/anchor/style/themes/dnb-anchor-theme-ui.scss +1 -8
- package/components/aria-live/useAriaLive.d.ts +1 -1
- package/components/breadcrumb/Breadcrumb.js +27 -18
- package/components/breadcrumb/Breadcrumb.js.map +1 -1
- package/components/breadcrumb/BreadcrumbItem.d.ts +6 -4
- package/components/breadcrumb/BreadcrumbItem.js +18 -10
- package/components/breadcrumb/BreadcrumbItem.js.map +1 -1
- package/components/breadcrumb/style/dnb-breadcrumb.css +29 -4
- package/components/breadcrumb/style/dnb-breadcrumb.min.css +1 -1
- package/components/breadcrumb/style/dnb-breadcrumb.scss +32 -4
- package/components/breadcrumb/style/themes/dnb-breadcrumb-theme-sbanken.css +9 -0
- package/components/breadcrumb/style/themes/dnb-breadcrumb-theme-sbanken.min.css +1 -1
- package/components/breadcrumb/style/themes/dnb-breadcrumb-theme-sbanken.scss +7 -0
- package/components/button/Button.js +1 -1
- package/components/button/Button.js.map +1 -1
- package/components/button/style/button--tertiary.scss +30 -75
- package/components/button/style/dnb-button.css +43 -49
- package/components/button/style/dnb-button.min.css +1 -1
- package/components/button/style/dnb-button.scss +46 -59
- package/components/button/style/themes/button-mixins.scss +26 -5
- package/components/button/style/themes/dnb-button-theme-eiendom.css +29 -60
- package/components/button/style/themes/dnb-button-theme-eiendom.min.css +12 -2
- package/components/button/style/themes/dnb-button-theme-sbanken.css +44 -72
- package/components/button/style/themes/dnb-button-theme-sbanken.min.css +16 -4
- package/components/button/style/themes/dnb-button-theme-sbanken.scss +14 -16
- package/components/button/style/themes/dnb-button-theme-ui.css +29 -60
- package/components/button/style/themes/dnb-button-theme-ui.min.css +12 -2
- package/components/button/style/themes/dnb-button-theme-ui.scss +1 -1
- package/components/card/Card.d.ts +15 -2
- package/components/card/Card.js +19 -7
- package/components/card/Card.js.map +1 -1
- package/components/card/CardDocs.d.ts +2 -0
- package/components/card/CardDocs.js +58 -0
- package/components/card/CardDocs.js.map +1 -0
- package/components/card/style/dnb-card.css +24 -5
- package/components/card/style/dnb-card.min.css +1 -1
- package/components/card/style/dnb-card.scss +47 -16
- package/components/checkbox/style/dnb-checkbox.css +3 -0
- package/components/checkbox/style/dnb-checkbox.min.css +1 -1
- package/components/checkbox/style/dnb-checkbox.scss +7 -0
- package/components/date-picker/DatePicker.d.ts +2 -0
- package/components/date-picker/DatePicker.js +2 -1
- package/components/date-picker/DatePicker.js.map +1 -1
- package/components/date-picker/DatePickerInput.js +19 -3
- package/components/date-picker/DatePickerInput.js.map +1 -1
- package/components/date-picker/DatePickerProvider.js +8 -3
- package/components/date-picker/DatePickerProvider.js.map +1 -1
- package/components/dropdown/style/dnb-dropdown.css +3 -0
- package/components/dropdown/style/dnb-dropdown.min.css +1 -1
- package/components/dropdown/style/dnb-dropdown.scss +4 -0
- package/components/flex/style/dnb-flex.css +1 -1
- package/components/flex/style/dnb-flex.min.css +1 -1
- package/components/flex/style/flex-stack.scss +1 -1
- package/components/form-label/FormLabel.js +1 -1
- package/components/form-label/FormLabel.js.map +1 -1
- package/components/form-label/style/dnb-form-label.css +3 -0
- package/components/form-label/style/dnb-form-label.min.css +1 -1
- package/components/form-label/style/dnb-form-label.scss +4 -0
- package/components/form-label/style/themes/dnb-form-label-theme-sbanken.css +0 -3
- package/components/form-label/style/themes/dnb-form-label-theme-sbanken.min.css +1 -1
- package/components/form-label/style/themes/dnb-form-label-theme-sbanken.scss +0 -8
- package/components/form-label/style/themes/dnb-form-label-theme-ui.css +0 -6
- package/components/form-label/style/themes/dnb-form-label-theme-ui.min.css +1 -1
- package/components/form-label/style/themes/dnb-form-label-theme-ui.scss +0 -8
- package/components/heading/HeadingContext.d.ts +1 -1
- package/components/height-animation/style/dnb-height-animation.css +2 -2
- package/components/height-animation/style/dnb-height-animation.min.css +1 -1
- package/components/height-animation/style/dnb-height-animation.scss +3 -2
- package/components/icon/style/dnb-icon.css +2 -2
- package/components/icon/style/dnb-icon.min.css +1 -1
- package/components/icon/style/dnb-icon.scss +1 -1
- package/components/input/Input.js +1 -1
- package/components/input/Input.js.map +1 -1
- package/components/number-format/NumberUtils.d.ts +1 -1
- package/components/radio/style/dnb-radio.css +4 -0
- package/components/radio/style/dnb-radio.min.css +1 -1
- package/components/radio/style/dnb-radio.scss +9 -0
- package/components/section/style/themes/dnb-section-theme-ui.css +3 -6
- package/components/section/style/themes/dnb-section-theme-ui.min.css +1 -1
- package/components/skeleton/SkeletonHelper.d.ts +6 -6
- package/components/skeleton/style/dnb-skeleton.css +1 -0
- package/components/skeleton/style/dnb-skeleton.min.css +1 -1
- package/components/skeleton/style/dnb-skeleton.scss +1 -0
- package/components/slider/SliderInstance.js +1 -0
- package/components/slider/SliderInstance.js.map +1 -1
- package/components/slider/SliderThumb.js +4 -2
- package/components/slider/SliderThumb.js.map +1 -1
- package/components/step-indicator/StepIndicator.js +11 -6
- package/components/step-indicator/StepIndicator.js.map +1 -1
- package/components/step-indicator/style/themes/dnb-step-indicator-theme-ui.css +1 -1
- package/components/step-indicator/style/themes/dnb-step-indicator-theme-ui.min.css +1 -1
- package/components/step-indicator/style/themes/dnb-step-indicator-theme-ui.scss +1 -1
- package/components/table/TableScrollView.d.ts +5 -1
- package/components/table/TableScrollView.js +1 -0
- package/components/table/TableScrollView.js.map +1 -1
- package/components/table/TableTr.d.ts +1 -2
- package/components/table/TableTr.js.map +1 -1
- package/components/table/style/dnb-table.css +14 -1
- package/components/table/style/dnb-table.min.css +1 -1
- package/components/table/style/dnb-table.scss +7 -1
- package/components/table/style/table-header-buttons.scss +4 -1
- package/components/table/style/table-th.scss +9 -25
- package/components/table/style/themes/dnb-table-theme-sbanken.css +1 -1
- package/components/table/style/themes/dnb-table-theme-sbanken.min.css +1 -1
- package/components/table/style/themes/dnb-table-theme-sbanken.scss +2 -1
- package/components/table/style/themes/dnb-table-theme-ui.css +1 -1
- package/components/table/style/themes/dnb-table-theme-ui.min.css +1 -1
- package/components/table/style/themes/dnb-table-theme-ui.scss +2 -2
- package/components/table/useTableAnimationHandler.d.ts +1 -1
- package/components/table/useTableAnimationHandler.js +3 -3
- package/components/table/useTableAnimationHandler.js.map +1 -1
- package/components/tag/Tag.d.ts +11 -0
- package/components/tag/Tag.js +54 -39
- package/components/tag/Tag.js.map +1 -1
- package/components/tag/style/dnb-tag.css +50 -86
- package/components/tag/style/dnb-tag.min.css +1 -1
- package/components/tag/style/dnb-tag.scss +37 -45
- package/components/tag/style/themes/tag-mixins.scss +24 -6
- package/components/textarea/Textarea.d.ts +9 -0
- package/components/textarea/Textarea.js +21 -5
- package/components/textarea/Textarea.js.map +1 -1
- package/components/textarea/TextareaDocs.js +10 -0
- package/components/textarea/TextareaDocs.js.map +1 -1
- package/components/textarea/style/dnb-textarea.css +69 -26
- package/components/textarea/style/dnb-textarea.min.css +1 -1
- package/components/textarea/style/dnb-textarea.scss +83 -31
- package/components/textarea/style/themes/dnb-textarea-theme-sbanken.css +15 -21
- package/components/textarea/style/themes/dnb-textarea-theme-sbanken.min.css +1 -1
- package/components/textarea/style/themes/dnb-textarea-theme-sbanken.scss +17 -28
- package/components/textarea/style/themes/dnb-textarea-theme-ui.css +12 -23
- package/components/textarea/style/themes/dnb-textarea-theme-ui.min.css +1 -1
- package/components/textarea/style/themes/dnb-textarea-theme-ui.scss +11 -27
- package/components/toggle-button/style/themes/dnb-toggle-button-theme-ui.css +1 -2
- package/components/toggle-button/style/themes/dnb-toggle-button-theme-ui.min.css +1 -1
- package/components/toggle-button/style/themes/dnb-toggle-button-theme-ui.scss +1 -2
- package/components/tooltip/Tooltip.js +1 -1
- package/components/tooltip/Tooltip.js.map +1 -1
- package/elements/Element.d.ts +3 -4
- package/elements/Element.js.map +1 -1
- package/elements/code/style/themes/dnb-code-theme-sbanken.scss +5 -3
- package/es/components/accordion/Accordion.js +1 -1
- package/es/components/accordion/Accordion.js.map +1 -1
- package/es/components/accordion/AccordionContext.d.ts +1 -1
- package/es/components/accordion/AccordionGroup.js +1 -1
- package/es/components/accordion/AccordionGroup.js.map +1 -1
- package/es/components/accordion/style/themes/dnb-accordion-theme-sbanken.css +18 -0
- package/es/components/accordion/style/themes/dnb-accordion-theme-sbanken.min.css +1 -1
- package/es/components/accordion/style/themes/dnb-accordion-theme-sbanken.scss +20 -0
- package/es/components/anchor/Anchor.d.ts +3 -4
- package/es/components/anchor/Anchor.js +16 -25
- package/es/components/anchor/Anchor.js.map +1 -1
- package/es/components/anchor/style/anchor-mixins.scss +62 -13
- package/es/components/anchor/style/dnb-anchor.css +79 -16
- package/es/components/anchor/style/dnb-anchor.min.css +1 -1
- package/es/components/anchor/style/themes/dnb-anchor-theme-eiendom.css +10 -30
- package/es/components/anchor/style/themes/dnb-anchor-theme-eiendom.min.css +1 -1
- package/es/components/anchor/style/themes/dnb-anchor-theme-sbanken.css +82 -78
- package/es/components/anchor/style/themes/dnb-anchor-theme-sbanken.min.css +1 -1
- package/es/components/anchor/style/themes/dnb-anchor-theme-sbanken.scss +25 -53
- package/es/components/anchor/style/themes/dnb-anchor-theme-ui.css +10 -30
- package/es/components/anchor/style/themes/dnb-anchor-theme-ui.min.css +1 -1
- package/es/components/anchor/style/themes/dnb-anchor-theme-ui.scss +1 -8
- package/es/components/aria-live/useAriaLive.d.ts +1 -1
- package/es/components/breadcrumb/Breadcrumb.js +27 -18
- package/es/components/breadcrumb/Breadcrumb.js.map +1 -1
- package/es/components/breadcrumb/BreadcrumbItem.d.ts +6 -4
- package/es/components/breadcrumb/BreadcrumbItem.js +18 -10
- package/es/components/breadcrumb/BreadcrumbItem.js.map +1 -1
- package/es/components/breadcrumb/style/dnb-breadcrumb.css +29 -4
- package/es/components/breadcrumb/style/dnb-breadcrumb.min.css +1 -1
- package/es/components/breadcrumb/style/dnb-breadcrumb.scss +32 -4
- package/es/components/breadcrumb/style/themes/dnb-breadcrumb-theme-sbanken.css +9 -0
- package/es/components/breadcrumb/style/themes/dnb-breadcrumb-theme-sbanken.min.css +1 -1
- package/es/components/breadcrumb/style/themes/dnb-breadcrumb-theme-sbanken.scss +7 -0
- package/es/components/button/Button.js +1 -1
- package/es/components/button/Button.js.map +1 -1
- package/es/components/button/style/button--tertiary.scss +30 -75
- package/es/components/button/style/dnb-button.css +43 -49
- package/es/components/button/style/dnb-button.min.css +1 -1
- package/es/components/button/style/dnb-button.scss +46 -59
- package/es/components/button/style/themes/button-mixins.scss +26 -5
- package/es/components/button/style/themes/dnb-button-theme-eiendom.css +29 -60
- package/es/components/button/style/themes/dnb-button-theme-eiendom.min.css +12 -2
- package/es/components/button/style/themes/dnb-button-theme-sbanken.css +44 -72
- package/es/components/button/style/themes/dnb-button-theme-sbanken.min.css +16 -4
- package/es/components/button/style/themes/dnb-button-theme-sbanken.scss +14 -16
- package/es/components/button/style/themes/dnb-button-theme-ui.css +29 -60
- package/es/components/button/style/themes/dnb-button-theme-ui.min.css +12 -2
- package/es/components/button/style/themes/dnb-button-theme-ui.scss +1 -1
- package/es/components/card/Card.d.ts +15 -2
- package/es/components/card/Card.js +19 -7
- package/es/components/card/Card.js.map +1 -1
- package/es/components/card/CardDocs.d.ts +2 -0
- package/es/components/card/CardDocs.js +58 -0
- package/es/components/card/CardDocs.js.map +1 -0
- package/es/components/card/style/dnb-card.css +24 -5
- package/es/components/card/style/dnb-card.min.css +1 -1
- package/es/components/card/style/dnb-card.scss +47 -16
- package/es/components/checkbox/style/dnb-checkbox.css +3 -0
- package/es/components/checkbox/style/dnb-checkbox.min.css +1 -1
- package/es/components/checkbox/style/dnb-checkbox.scss +7 -0
- package/es/components/date-picker/DatePicker.d.ts +2 -0
- package/es/components/date-picker/DatePicker.js +2 -1
- package/es/components/date-picker/DatePicker.js.map +1 -1
- package/es/components/date-picker/DatePickerInput.js +19 -3
- package/es/components/date-picker/DatePickerInput.js.map +1 -1
- package/es/components/date-picker/DatePickerProvider.js +8 -3
- package/es/components/date-picker/DatePickerProvider.js.map +1 -1
- package/es/components/dropdown/style/dnb-dropdown.css +3 -0
- package/es/components/dropdown/style/dnb-dropdown.min.css +1 -1
- package/es/components/dropdown/style/dnb-dropdown.scss +4 -0
- package/es/components/flex/style/dnb-flex.css +1 -1
- package/es/components/flex/style/dnb-flex.min.css +1 -1
- package/es/components/flex/style/flex-stack.scss +1 -1
- package/es/components/form-label/FormLabel.js +1 -1
- package/es/components/form-label/FormLabel.js.map +1 -1
- package/es/components/form-label/style/dnb-form-label.css +3 -0
- package/es/components/form-label/style/dnb-form-label.min.css +1 -1
- package/es/components/form-label/style/dnb-form-label.scss +4 -0
- package/es/components/form-label/style/themes/dnb-form-label-theme-sbanken.css +0 -3
- package/es/components/form-label/style/themes/dnb-form-label-theme-sbanken.min.css +1 -1
- package/es/components/form-label/style/themes/dnb-form-label-theme-sbanken.scss +0 -8
- package/es/components/form-label/style/themes/dnb-form-label-theme-ui.css +0 -6
- package/es/components/form-label/style/themes/dnb-form-label-theme-ui.min.css +1 -1
- package/es/components/form-label/style/themes/dnb-form-label-theme-ui.scss +0 -8
- package/es/components/heading/HeadingContext.d.ts +1 -1
- package/es/components/height-animation/style/dnb-height-animation.css +2 -2
- package/es/components/height-animation/style/dnb-height-animation.min.css +1 -1
- package/es/components/height-animation/style/dnb-height-animation.scss +3 -2
- package/es/components/icon/style/dnb-icon.css +2 -2
- package/es/components/icon/style/dnb-icon.min.css +1 -1
- package/es/components/icon/style/dnb-icon.scss +1 -1
- package/es/components/input/Input.js +1 -1
- package/es/components/input/Input.js.map +1 -1
- package/es/components/number-format/NumberUtils.d.ts +1 -1
- package/es/components/radio/style/dnb-radio.css +4 -0
- package/es/components/radio/style/dnb-radio.min.css +1 -1
- package/es/components/radio/style/dnb-radio.scss +9 -0
- package/es/components/section/style/themes/dnb-section-theme-ui.css +3 -6
- package/es/components/section/style/themes/dnb-section-theme-ui.min.css +1 -1
- package/es/components/skeleton/SkeletonHelper.d.ts +6 -6
- package/es/components/skeleton/style/dnb-skeleton.css +1 -0
- package/es/components/skeleton/style/dnb-skeleton.min.css +1 -1
- package/es/components/skeleton/style/dnb-skeleton.scss +1 -0
- package/es/components/slider/SliderInstance.js +1 -0
- package/es/components/slider/SliderInstance.js.map +1 -1
- package/es/components/slider/SliderThumb.js +4 -2
- package/es/components/slider/SliderThumb.js.map +1 -1
- package/es/components/step-indicator/StepIndicator.js +11 -6
- package/es/components/step-indicator/StepIndicator.js.map +1 -1
- package/es/components/step-indicator/style/themes/dnb-step-indicator-theme-ui.css +1 -1
- package/es/components/step-indicator/style/themes/dnb-step-indicator-theme-ui.min.css +1 -1
- package/es/components/step-indicator/style/themes/dnb-step-indicator-theme-ui.scss +1 -1
- package/es/components/table/TableScrollView.d.ts +5 -1
- package/es/components/table/TableScrollView.js +1 -0
- package/es/components/table/TableScrollView.js.map +1 -1
- package/es/components/table/TableTr.d.ts +1 -2
- package/es/components/table/TableTr.js.map +1 -1
- package/es/components/table/style/dnb-table.css +14 -1
- package/es/components/table/style/dnb-table.min.css +1 -1
- package/es/components/table/style/dnb-table.scss +7 -1
- package/es/components/table/style/table-header-buttons.scss +4 -1
- package/es/components/table/style/table-th.scss +9 -25
- package/es/components/table/style/themes/dnb-table-theme-sbanken.css +1 -1
- package/es/components/table/style/themes/dnb-table-theme-sbanken.min.css +1 -1
- package/es/components/table/style/themes/dnb-table-theme-sbanken.scss +2 -1
- package/es/components/table/style/themes/dnb-table-theme-ui.css +1 -1
- package/es/components/table/style/themes/dnb-table-theme-ui.min.css +1 -1
- package/es/components/table/style/themes/dnb-table-theme-ui.scss +2 -2
- package/es/components/table/useTableAnimationHandler.d.ts +1 -1
- package/es/components/table/useTableAnimationHandler.js +3 -3
- package/es/components/table/useTableAnimationHandler.js.map +1 -1
- package/es/components/tag/Tag.d.ts +11 -0
- package/es/components/tag/Tag.js +54 -39
- package/es/components/tag/Tag.js.map +1 -1
- package/es/components/tag/style/dnb-tag.css +50 -86
- package/es/components/tag/style/dnb-tag.min.css +1 -1
- package/es/components/tag/style/dnb-tag.scss +37 -45
- package/es/components/tag/style/themes/tag-mixins.scss +24 -6
- package/es/components/textarea/Textarea.d.ts +9 -0
- package/es/components/textarea/Textarea.js +21 -5
- package/es/components/textarea/Textarea.js.map +1 -1
- package/es/components/textarea/TextareaDocs.js +10 -0
- package/es/components/textarea/TextareaDocs.js.map +1 -1
- package/es/components/textarea/style/dnb-textarea.css +69 -26
- package/es/components/textarea/style/dnb-textarea.min.css +1 -1
- package/es/components/textarea/style/dnb-textarea.scss +83 -31
- package/es/components/textarea/style/themes/dnb-textarea-theme-sbanken.css +15 -21
- package/es/components/textarea/style/themes/dnb-textarea-theme-sbanken.min.css +1 -1
- package/es/components/textarea/style/themes/dnb-textarea-theme-sbanken.scss +17 -28
- package/es/components/textarea/style/themes/dnb-textarea-theme-ui.css +12 -23
- package/es/components/textarea/style/themes/dnb-textarea-theme-ui.min.css +1 -1
- package/es/components/textarea/style/themes/dnb-textarea-theme-ui.scss +11 -27
- package/es/components/toggle-button/style/themes/dnb-toggle-button-theme-ui.css +1 -2
- package/es/components/toggle-button/style/themes/dnb-toggle-button-theme-ui.min.css +1 -1
- package/es/components/toggle-button/style/themes/dnb-toggle-button-theme-ui.scss +1 -2
- package/es/components/tooltip/Tooltip.js +1 -1
- package/es/components/tooltip/Tooltip.js.map +1 -1
- package/es/elements/Element.d.ts +3 -4
- package/es/elements/Element.js.map +1 -1
- package/es/elements/code/style/themes/dnb-code-theme-sbanken.scss +5 -3
- package/es/extensions/forms/DataContext/At/At.js.map +1 -1
- package/es/extensions/forms/DataContext/Context.d.ts +31 -8
- package/es/extensions/forms/DataContext/Context.js +14 -3
- package/es/extensions/forms/DataContext/Context.js.map +1 -1
- package/es/extensions/forms/DataContext/Provider/Provider.d.ts +29 -16
- package/es/extensions/forms/DataContext/Provider/Provider.js +321 -75
- package/es/extensions/forms/DataContext/Provider/Provider.js.map +1 -1
- package/es/extensions/forms/DataContext/Provider/ProviderDocs.d.ts +3 -0
- package/es/extensions/forms/DataContext/Provider/ProviderDocs.js +85 -0
- package/es/extensions/forms/DataContext/Provider/ProviderDocs.js.map +1 -0
- package/es/extensions/forms/Field/ArraySelection/ArraySelection.js +2 -2
- package/es/extensions/forms/Field/ArraySelection/ArraySelection.js.map +1 -1
- package/es/extensions/forms/Field/Date/Date.js +4 -4
- package/es/extensions/forms/Field/Date/Date.js.map +1 -1
- package/es/extensions/forms/Field/Expiry/Expiry.js +5 -5
- package/es/extensions/forms/Field/Expiry/Expiry.js.map +1 -1
- package/es/extensions/forms/Field/Number/Number.js +4 -4
- package/es/extensions/forms/Field/Number/Number.js.map +1 -1
- package/es/extensions/forms/Field/Password/Password.d.ts +1 -1
- package/es/extensions/forms/Field/Password/Password.js.map +1 -1
- package/es/extensions/forms/Field/Password/style/dnb-password.scss +1 -1
- package/es/extensions/forms/Field/PhoneNumber/PhoneNumber.js +5 -5
- package/es/extensions/forms/Field/PhoneNumber/PhoneNumber.js.map +1 -1
- package/es/extensions/forms/Field/PostalCodeAndCity/PostalCodeAndCity.js +3 -1
- package/es/extensions/forms/Field/PostalCodeAndCity/PostalCodeAndCity.js.map +1 -1
- package/es/extensions/forms/Field/SelectCountry/SelectCountry.js +4 -4
- package/es/extensions/forms/Field/SelectCountry/SelectCountry.js.map +1 -1
- package/es/extensions/forms/Field/Selection/Selection.js +6 -6
- package/es/extensions/forms/Field/Selection/Selection.js.map +1 -1
- package/es/extensions/forms/Field/String/String.d.ts +6 -6
- package/es/extensions/forms/Field/String/String.js +17 -15
- package/es/extensions/forms/Field/String/String.js.map +1 -1
- package/es/extensions/forms/Field/String/StringDocs.js +9 -4
- package/es/extensions/forms/Field/String/StringDocs.js.map +1 -1
- package/es/extensions/forms/Field/Toggle/Toggle.js +8 -8
- package/es/extensions/forms/Field/Toggle/Toggle.js.map +1 -1
- package/es/extensions/forms/FieldBlock/FieldBlock.d.ts +3 -1
- package/es/extensions/forms/FieldBlock/FieldBlock.js +41 -20
- package/es/extensions/forms/FieldBlock/FieldBlock.js.map +1 -1
- package/es/extensions/forms/FieldBlock/FieldBlockContext.d.ts +2 -2
- package/es/extensions/forms/FieldBlock/FieldBlockContext.js.map +1 -1
- package/es/extensions/forms/Form/Appearance/Appearance.js +3 -0
- package/es/extensions/forms/Form/Appearance/Appearance.js.map +1 -1
- package/es/extensions/forms/Form/ButtonRow/style/dnb-form-button-row.css +2 -2
- package/es/extensions/forms/Form/ButtonRow/style/dnb-form-button-row.min.css +1 -1
- package/es/extensions/forms/Form/ButtonRow/style/dnb-form-button-row.scss +2 -1
- package/es/extensions/forms/Form/Handler/Handler.d.ts +1 -1
- package/es/extensions/forms/Form/Handler/Handler.js +45 -9
- package/es/extensions/forms/Form/Handler/Handler.js.map +1 -1
- package/es/extensions/forms/Form/Handler/HandlerDocs.d.ts +3 -0
- package/es/extensions/forms/Form/Handler/HandlerDocs.js +39 -0
- package/es/extensions/forms/Form/Handler/HandlerDocs.js.map +1 -0
- package/es/extensions/forms/Form/SubmitButton/SubmitButton.d.ts +6 -1
- package/es/extensions/forms/Form/SubmitButton/SubmitButton.js +21 -12
- package/es/extensions/forms/Form/SubmitButton/SubmitButton.js.map +1 -1
- package/es/extensions/forms/Form/SubmitButton/SubmitButtonDocs.d.ts +2 -0
- package/es/extensions/forms/Form/SubmitButton/SubmitButtonDocs.js +23 -0
- package/es/extensions/forms/Form/SubmitButton/SubmitButtonDocs.js.map +1 -0
- package/es/extensions/forms/Form/SubmitIndicator/SubmitIndicator.d.ts +14 -0
- package/es/extensions/forms/Form/SubmitIndicator/SubmitIndicator.js +69 -0
- package/es/extensions/forms/Form/SubmitIndicator/SubmitIndicator.js.map +1 -0
- package/es/extensions/forms/Form/SubmitIndicator/SubmitIndicatorDocs.d.ts +2 -0
- package/es/extensions/forms/Form/SubmitIndicator/SubmitIndicatorDocs.js +18 -0
- package/es/extensions/forms/Form/SubmitIndicator/SubmitIndicatorDocs.js.map +1 -0
- package/es/extensions/forms/Form/SubmitIndicator/index.d.ts +2 -0
- package/es/extensions/forms/Form/SubmitIndicator/index.js +3 -0
- package/es/extensions/forms/Form/SubmitIndicator/index.js.map +1 -0
- package/es/extensions/forms/Form/SubmitIndicator/style/dnb-form-submit-indicator.css +99 -0
- package/es/extensions/forms/Form/SubmitIndicator/style/dnb-form-submit-indicator.min.css +1 -0
- package/es/extensions/forms/Form/SubmitIndicator/style/dnb-form-submit-indicator.scss +117 -0
- package/es/extensions/forms/Form/SubmitIndicator/style/index.d.ts +5 -0
- package/es/extensions/forms/Form/SubmitIndicator/style/index.js +1 -0
- package/es/extensions/forms/Form/SubmitIndicator/style/index.js.map +1 -0
- package/es/extensions/forms/Form/data-context/getData.d.ts +1 -1
- package/es/extensions/forms/Form/data-context/getData.js.map +1 -1
- package/es/extensions/forms/Form/data-context/useData.d.ts +3 -3
- package/es/extensions/forms/Form/data-context/useData.js +30 -12
- package/es/extensions/forms/Form/data-context/useData.js.map +1 -1
- package/es/extensions/forms/Form/data-context/useError.d.ts +3 -2
- package/es/extensions/forms/Form/data-context/useError.js +7 -6
- package/es/extensions/forms/Form/data-context/useError.js.map +1 -1
- package/es/extensions/forms/Form/index.d.ts +1 -0
- package/es/extensions/forms/Form/index.js +1 -0
- package/es/extensions/forms/Form/index.js.map +1 -1
- package/es/extensions/forms/Iterate/Array/Array.js +2 -2
- package/es/extensions/forms/Iterate/Array/Array.js.map +1 -1
- package/es/extensions/forms/Iterate/ArrayPushButton/ArrayPushButton.js +2 -2
- package/es/extensions/forms/Iterate/ArrayPushButton/ArrayPushButton.js.map +1 -1
- package/es/extensions/forms/Iterate/ArrayRemoveElementButton/ArrayRemoveElementButton.js +2 -2
- package/es/extensions/forms/Iterate/ArrayRemoveElementButton/ArrayRemoveElementButton.js.map +1 -1
- package/es/extensions/forms/StepsLayout/NextButton/NextButton.d.ts +1 -3
- package/es/extensions/forms/StepsLayout/NextButton/NextButton.js +4 -3
- package/es/extensions/forms/StepsLayout/NextButton/NextButton.js.map +1 -1
- package/es/extensions/forms/StepsLayout/PreviousButton/PreviousButton.d.ts +1 -3
- package/es/extensions/forms/StepsLayout/PreviousButton/PreviousButton.js +6 -2
- package/es/extensions/forms/StepsLayout/PreviousButton/PreviousButton.js.map +1 -1
- package/es/extensions/forms/StepsLayout/Step/Step.js +2 -3
- package/es/extensions/forms/StepsLayout/Step/Step.js.map +1 -1
- package/es/extensions/forms/StepsLayout/StepsContext.d.ts +6 -4
- package/es/extensions/forms/StepsLayout/StepsContext.js +6 -1
- package/es/extensions/forms/StepsLayout/StepsContext.js.map +1 -1
- package/es/extensions/forms/StepsLayout/StepsLayout.d.ts +5 -3
- package/es/extensions/forms/StepsLayout/StepsLayout.js +108 -49
- package/es/extensions/forms/StepsLayout/StepsLayout.js.map +1 -1
- package/es/extensions/forms/StepsLayout/StepsLayoutDocs.d.ts +3 -0
- package/es/extensions/forms/StepsLayout/StepsLayoutDocs.js +50 -0
- package/es/extensions/forms/StepsLayout/StepsLayoutDocs.js.map +1 -0
- package/es/extensions/forms/StepsLayout/style/dnb-steps-layout.css +6 -1
- package/es/extensions/forms/StepsLayout/style/dnb-steps-layout.min.css +1 -1
- package/es/extensions/forms/StepsLayout/style/dnb-steps-layout.scss +11 -1
- package/es/extensions/forms/StepsLayout/useStep.d.ts +3 -0
- package/es/extensions/forms/StepsLayout/useStep.js +12 -0
- package/es/extensions/forms/StepsLayout/useStep.js.map +1 -0
- package/es/extensions/forms/Value/Boolean/Boolean.js +2 -2
- package/es/extensions/forms/Value/Boolean/Boolean.js.map +1 -1
- package/es/extensions/forms/Value/Number/Number.js +5 -5
- package/es/extensions/forms/Value/Number/Number.js.map +1 -1
- package/es/extensions/forms/Value/String/String.js +2 -2
- package/es/extensions/forms/Value/String/String.js.map +1 -1
- package/es/extensions/forms/hooks/DataValueDocs.js +3 -3
- package/es/extensions/forms/hooks/DataValueDocs.js.map +1 -1
- package/es/extensions/forms/hooks/index.d.ts +6 -3
- package/es/extensions/forms/hooks/index.js +2 -3
- package/es/extensions/forms/hooks/index.js.map +1 -1
- package/es/extensions/forms/hooks/useFieldProps.d.ts +23 -0
- package/es/extensions/forms/hooks/useFieldProps.js +749 -0
- package/es/extensions/forms/hooks/useFieldProps.js.map +1 -0
- package/es/extensions/forms/style/dnb-forms.css +107 -3
- package/es/extensions/forms/style/dnb-forms.min.css +1 -1
- package/es/extensions/forms/types.d.ts +69 -6
- package/es/extensions/forms/types.js +3 -2
- package/es/extensions/forms/types.js.map +1 -1
- package/es/extensions/forms/utils/ajv.d.ts +9 -7
- package/es/extensions/forms/utils/ajv.js +34 -15
- package/es/extensions/forms/utils/ajv.js.map +1 -1
- package/es/fragments/scroll-view/ScrollView.d.ts +2 -2
- package/es/fragments/scroll-view/ScrollView.js +4 -1
- package/es/fragments/scroll-view/ScrollView.js.map +1 -1
- package/es/shared/Context.d.ts +20 -11
- package/es/shared/Context.js.map +1 -1
- package/es/shared/Eufemia.d.ts +2 -2
- package/es/shared/Eufemia.js +2 -2
- package/es/shared/Eufemia.js.map +1 -1
- package/es/shared/Provider.js.map +1 -1
- package/es/shared/defaults.d.ts +3 -3
- package/es/shared/defaults.js.map +1 -1
- package/es/shared/helpers/debounce.d.ts +21 -30
- package/es/shared/helpers/debounce.js +21 -9
- package/es/shared/helpers/debounce.js.map +1 -1
- package/es/shared/helpers/isAsync.d.ts +7 -0
- package/es/shared/helpers/isAsync.js +14 -0
- package/es/shared/helpers/isAsync.js.map +1 -0
- package/es/shared/helpers/runCssVersionMismatchWarning.d.ts +8 -0
- package/es/shared/helpers/runCssVersionMismatchWarning.js +25 -0
- package/es/shared/helpers/runCssVersionMismatchWarning.js.map +1 -0
- package/es/{extensions/forms/hooks → shared/helpers}/useId.js +1 -1
- package/es/shared/helpers/useId.js.map +1 -0
- package/es/shared/helpers/useMountEffect.js.map +1 -0
- package/es/shared/helpers/useMounted.js.map +1 -0
- package/es/shared/helpers/useSharedState.js +15 -9
- package/es/shared/helpers/useSharedState.js.map +1 -1
- package/es/shared/helpers/useUnmountEffect.js.map +1 -0
- package/es/shared/helpers/useUpdateEffect.js.map +1 -0
- package/es/shared/helpers.js +2 -0
- package/es/shared/helpers.js.map +1 -1
- package/es/shared/index.d.ts +10 -10
- package/es/shared/index.js +9 -11
- package/es/shared/index.js.map +1 -1
- package/es/shared/locales/en-GB.d.ts +1 -0
- package/es/shared/locales/en-GB.js +2 -1
- package/es/shared/locales/en-GB.js.map +1 -1
- package/es/shared/locales/en-US.d.ts +1 -0
- package/es/shared/locales/index.d.ts +4 -2
- package/es/shared/locales/index.js +2 -1
- package/es/shared/locales/index.js.map +1 -1
- package/es/shared/locales/nb-NO.d.ts +1 -0
- package/es/shared/locales/nb-NO.js +2 -1
- package/es/shared/locales/nb-NO.js.map +1 -1
- package/es/shared/types.d.ts +4 -1
- package/es/shared/types.js.map +1 -1
- package/es/shared/useLocale.d.ts +2 -0
- package/es/shared/useLocale.js +29 -0
- package/es/shared/useLocale.js.map +1 -0
- package/es/style/core/scopes.scss +3 -0
- package/es/style/dnb-ui-basis.css +1 -0
- package/es/style/dnb-ui-basis.min.css +1 -1
- package/es/style/dnb-ui-body.css +1 -0
- package/es/style/dnb-ui-body.min.css +1 -1
- package/es/style/dnb-ui-components.css +433 -195
- package/es/style/dnb-ui-components.min.css +3 -3
- package/es/style/dnb-ui-core.css +1 -0
- package/es/style/dnb-ui-core.min.css +1 -1
- package/es/style/dnb-ui-extensions.css +107 -3
- package/es/style/dnb-ui-extensions.min.css +1 -1
- package/es/style/dnb-ui-forms.css +107 -3
- package/es/style/dnb-ui-forms.min.css +1 -1
- package/es/style/dnb-ui-forms.scss +1 -0
- package/es/style/themes/theme-eiendom/eiendom-theme-basis.css +3 -6
- package/es/style/themes/theme-eiendom/eiendom-theme-basis.min.css +1 -1
- package/es/style/themes/theme-eiendom/eiendom-theme-components.css +596 -328
- package/es/style/themes/theme-eiendom/eiendom-theme-components.min.css +17 -7
- package/es/style/themes/theme-eiendom/eiendom-theme-elements.css +3 -6
- package/es/style/themes/theme-eiendom/eiendom-theme-elements.min.css +1 -1
- package/es/style/themes/theme-eiendom/eiendom-theme-extensions.css +107 -3
- package/es/style/themes/theme-eiendom/eiendom-theme-extensions.min.css +1 -1
- package/es/style/themes/theme-eiendom/eiendom-theme-forms.css +107 -3
- package/es/style/themes/theme-eiendom/eiendom-theme-forms.min.css +1 -1
- package/es/style/themes/theme-sbanken/sbanken-theme-basis.css +5 -2
- package/es/style/themes/theme-sbanken/sbanken-theme-basis.min.css +1 -1
- package/es/style/themes/theme-sbanken/sbanken-theme-components.css +710 -374
- package/es/style/themes/theme-sbanken/sbanken-theme-components.min.css +21 -9
- package/es/style/themes/theme-sbanken/sbanken-theme-elements.css +5 -2
- package/es/style/themes/theme-sbanken/sbanken-theme-elements.min.css +1 -1
- package/es/style/themes/theme-sbanken/sbanken-theme-extensions.css +107 -3
- package/es/style/themes/theme-sbanken/sbanken-theme-extensions.min.css +1 -1
- package/es/style/themes/theme-sbanken/sbanken-theme-forms.css +107 -3
- package/es/style/themes/theme-sbanken/sbanken-theme-forms.min.css +1 -1
- package/es/style/themes/theme-ui/ui-theme-basis.css +3 -6
- package/es/style/themes/theme-ui/ui-theme-basis.min.css +1 -1
- package/es/style/themes/theme-ui/ui-theme-components.css +596 -326
- package/es/style/themes/theme-ui/ui-theme-components.min.css +17 -7
- package/es/style/themes/theme-ui/ui-theme-elements.css +3 -6
- package/es/style/themes/theme-ui/ui-theme-elements.min.css +1 -1
- package/es/style/themes/theme-ui/ui-theme-extensions.css +107 -3
- package/es/style/themes/theme-ui/ui-theme-extensions.min.css +1 -1
- package/es/style/themes/theme-ui/ui-theme-forms.css +107 -3
- package/es/style/themes/theme-ui/ui-theme-forms.min.css +1 -1
- package/es/style/themes/theme-ui/ui-theme-tags.css +40 -15
- package/es/style/themes/theme-ui/ui-theme-tags.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/At/At.js.map +1 -1
- package/extensions/forms/DataContext/Context.d.ts +31 -8
- package/extensions/forms/DataContext/Context.js +14 -3
- package/extensions/forms/DataContext/Context.js.map +1 -1
- package/extensions/forms/DataContext/Provider/Provider.d.ts +29 -16
- package/extensions/forms/DataContext/Provider/Provider.js +325 -78
- package/extensions/forms/DataContext/Provider/Provider.js.map +1 -1
- package/extensions/forms/DataContext/Provider/ProviderDocs.d.ts +3 -0
- package/extensions/forms/DataContext/Provider/ProviderDocs.js +85 -0
- package/extensions/forms/DataContext/Provider/ProviderDocs.js.map +1 -0
- package/extensions/forms/Field/ArraySelection/ArraySelection.js +2 -2
- package/extensions/forms/Field/ArraySelection/ArraySelection.js.map +1 -1
- package/extensions/forms/Field/Date/Date.js +4 -4
- package/extensions/forms/Field/Date/Date.js.map +1 -1
- package/extensions/forms/Field/Expiry/Expiry.js +5 -5
- package/extensions/forms/Field/Expiry/Expiry.js.map +1 -1
- package/extensions/forms/Field/Number/Number.js +4 -4
- package/extensions/forms/Field/Number/Number.js.map +1 -1
- package/extensions/forms/Field/Password/Password.d.ts +1 -1
- package/extensions/forms/Field/Password/Password.js.map +1 -1
- package/extensions/forms/Field/Password/style/dnb-password.scss +1 -1
- package/extensions/forms/Field/PhoneNumber/PhoneNumber.js +5 -5
- package/extensions/forms/Field/PhoneNumber/PhoneNumber.js.map +1 -1
- package/extensions/forms/Field/PostalCodeAndCity/PostalCodeAndCity.js +3 -1
- package/extensions/forms/Field/PostalCodeAndCity/PostalCodeAndCity.js.map +1 -1
- package/extensions/forms/Field/SelectCountry/SelectCountry.js +4 -4
- package/extensions/forms/Field/SelectCountry/SelectCountry.js.map +1 -1
- package/extensions/forms/Field/Selection/Selection.js +6 -6
- package/extensions/forms/Field/Selection/Selection.js.map +1 -1
- package/extensions/forms/Field/String/String.d.ts +6 -6
- package/extensions/forms/Field/String/String.js +17 -15
- package/extensions/forms/Field/String/String.js.map +1 -1
- package/extensions/forms/Field/String/StringDocs.js +9 -4
- package/extensions/forms/Field/String/StringDocs.js.map +1 -1
- package/extensions/forms/Field/Toggle/Toggle.js +8 -8
- package/extensions/forms/Field/Toggle/Toggle.js.map +1 -1
- package/extensions/forms/FieldBlock/FieldBlock.d.ts +3 -1
- package/extensions/forms/FieldBlock/FieldBlock.js +42 -20
- package/extensions/forms/FieldBlock/FieldBlock.js.map +1 -1
- package/extensions/forms/FieldBlock/FieldBlockContext.d.ts +2 -2
- package/extensions/forms/FieldBlock/FieldBlockContext.js.map +1 -1
- package/extensions/forms/Form/Appearance/Appearance.js +3 -0
- package/extensions/forms/Form/Appearance/Appearance.js.map +1 -1
- package/extensions/forms/Form/ButtonRow/style/dnb-form-button-row.css +2 -2
- package/extensions/forms/Form/ButtonRow/style/dnb-form-button-row.min.css +1 -1
- package/extensions/forms/Form/ButtonRow/style/dnb-form-button-row.scss +2 -1
- package/extensions/forms/Form/Handler/Handler.d.ts +1 -1
- package/extensions/forms/Form/Handler/Handler.js +49 -9
- package/extensions/forms/Form/Handler/Handler.js.map +1 -1
- package/extensions/forms/Form/Handler/HandlerDocs.d.ts +3 -0
- package/extensions/forms/Form/Handler/HandlerDocs.js +39 -0
- package/extensions/forms/Form/Handler/HandlerDocs.js.map +1 -0
- package/extensions/forms/Form/SubmitButton/SubmitButton.d.ts +6 -1
- package/extensions/forms/Form/SubmitButton/SubmitButton.js +21 -12
- package/extensions/forms/Form/SubmitButton/SubmitButton.js.map +1 -1
- package/extensions/forms/Form/SubmitButton/SubmitButtonDocs.d.ts +2 -0
- package/extensions/forms/Form/SubmitButton/SubmitButtonDocs.js +23 -0
- package/extensions/forms/Form/SubmitButton/SubmitButtonDocs.js.map +1 -0
- package/extensions/forms/Form/SubmitIndicator/SubmitIndicator.d.ts +14 -0
- package/extensions/forms/Form/SubmitIndicator/SubmitIndicator.js +69 -0
- package/extensions/forms/Form/SubmitIndicator/SubmitIndicator.js.map +1 -0
- package/extensions/forms/Form/SubmitIndicator/SubmitIndicatorDocs.d.ts +2 -0
- package/extensions/forms/Form/SubmitIndicator/SubmitIndicatorDocs.js +18 -0
- package/extensions/forms/Form/SubmitIndicator/SubmitIndicatorDocs.js.map +1 -0
- package/extensions/forms/Form/SubmitIndicator/index.d.ts +2 -0
- package/extensions/forms/Form/SubmitIndicator/index.js +3 -0
- package/extensions/forms/Form/SubmitIndicator/index.js.map +1 -0
- package/extensions/forms/Form/SubmitIndicator/style/dnb-form-submit-indicator.css +99 -0
- package/extensions/forms/Form/SubmitIndicator/style/dnb-form-submit-indicator.min.css +1 -0
- package/extensions/forms/Form/SubmitIndicator/style/dnb-form-submit-indicator.scss +117 -0
- package/extensions/forms/Form/SubmitIndicator/style/index.d.ts +5 -0
- package/extensions/forms/Form/SubmitIndicator/style/index.js +1 -0
- package/extensions/forms/Form/SubmitIndicator/style/index.js.map +1 -0
- package/extensions/forms/Form/data-context/getData.d.ts +1 -1
- package/extensions/forms/Form/data-context/getData.js.map +1 -1
- package/extensions/forms/Form/data-context/useData.d.ts +3 -3
- package/extensions/forms/Form/data-context/useData.js +32 -12
- package/extensions/forms/Form/data-context/useData.js.map +1 -1
- package/extensions/forms/Form/data-context/useError.d.ts +3 -2
- package/extensions/forms/Form/data-context/useError.js +8 -6
- package/extensions/forms/Form/data-context/useError.js.map +1 -1
- package/extensions/forms/Form/index.d.ts +1 -0
- package/extensions/forms/Form/index.js +1 -0
- package/extensions/forms/Form/index.js.map +1 -1
- package/extensions/forms/Iterate/Array/Array.js +2 -2
- package/extensions/forms/Iterate/Array/Array.js.map +1 -1
- package/extensions/forms/Iterate/ArrayPushButton/ArrayPushButton.js +2 -2
- package/extensions/forms/Iterate/ArrayPushButton/ArrayPushButton.js.map +1 -1
- package/extensions/forms/Iterate/ArrayRemoveElementButton/ArrayRemoveElementButton.js +2 -2
- package/extensions/forms/Iterate/ArrayRemoveElementButton/ArrayRemoveElementButton.js.map +1 -1
- package/extensions/forms/StepsLayout/NextButton/NextButton.d.ts +1 -3
- package/extensions/forms/StepsLayout/NextButton/NextButton.js +4 -3
- package/extensions/forms/StepsLayout/NextButton/NextButton.js.map +1 -1
- package/extensions/forms/StepsLayout/PreviousButton/PreviousButton.d.ts +1 -3
- package/extensions/forms/StepsLayout/PreviousButton/PreviousButton.js +6 -2
- package/extensions/forms/StepsLayout/PreviousButton/PreviousButton.js.map +1 -1
- package/extensions/forms/StepsLayout/Step/Step.js +2 -3
- package/extensions/forms/StepsLayout/Step/Step.js.map +1 -1
- package/extensions/forms/StepsLayout/StepsContext.d.ts +6 -4
- package/extensions/forms/StepsLayout/StepsContext.js +6 -1
- package/extensions/forms/StepsLayout/StepsContext.js.map +1 -1
- package/extensions/forms/StepsLayout/StepsLayout.d.ts +5 -3
- package/extensions/forms/StepsLayout/StepsLayout.js +111 -51
- package/extensions/forms/StepsLayout/StepsLayout.js.map +1 -1
- package/extensions/forms/StepsLayout/StepsLayoutDocs.d.ts +3 -0
- package/extensions/forms/StepsLayout/StepsLayoutDocs.js +50 -0
- package/extensions/forms/StepsLayout/StepsLayoutDocs.js.map +1 -0
- package/extensions/forms/StepsLayout/style/dnb-steps-layout.css +6 -1
- package/extensions/forms/StepsLayout/style/dnb-steps-layout.min.css +1 -1
- package/extensions/forms/StepsLayout/style/dnb-steps-layout.scss +11 -1
- package/extensions/forms/StepsLayout/useStep.d.ts +3 -0
- package/extensions/forms/StepsLayout/useStep.js +13 -0
- package/extensions/forms/StepsLayout/useStep.js.map +1 -0
- package/extensions/forms/Value/Boolean/Boolean.js +2 -2
- package/extensions/forms/Value/Boolean/Boolean.js.map +1 -1
- package/extensions/forms/Value/Number/Number.js +5 -5
- package/extensions/forms/Value/Number/Number.js.map +1 -1
- package/extensions/forms/Value/String/String.js +2 -2
- package/extensions/forms/Value/String/String.js.map +1 -1
- package/extensions/forms/hooks/DataValueDocs.js +3 -3
- package/extensions/forms/hooks/DataValueDocs.js.map +1 -1
- package/extensions/forms/hooks/index.d.ts +6 -3
- package/extensions/forms/hooks/index.js +2 -3
- package/extensions/forms/hooks/index.js.map +1 -1
- package/extensions/forms/hooks/useFieldProps.d.ts +23 -0
- package/extensions/forms/hooks/useFieldProps.js +764 -0
- package/extensions/forms/hooks/useFieldProps.js.map +1 -0
- package/extensions/forms/style/dnb-forms.css +107 -3
- package/extensions/forms/style/dnb-forms.min.css +1 -1
- package/extensions/forms/types.d.ts +69 -6
- package/extensions/forms/types.js +3 -2
- package/extensions/forms/types.js.map +1 -1
- package/extensions/forms/utils/ajv.d.ts +9 -7
- package/extensions/forms/utils/ajv.js +34 -15
- package/extensions/forms/utils/ajv.js.map +1 -1
- package/fragments/scroll-view/ScrollView.d.ts +2 -2
- package/fragments/scroll-view/ScrollView.js +4 -1
- package/fragments/scroll-view/ScrollView.js.map +1 -1
- package/package.json +1 -1
- package/shared/Context.d.ts +20 -11
- package/shared/Context.js.map +1 -1
- package/shared/Eufemia.d.ts +2 -2
- package/shared/Eufemia.js +2 -2
- package/shared/Eufemia.js.map +1 -1
- package/shared/Provider.js.map +1 -1
- package/shared/defaults.d.ts +3 -3
- package/shared/defaults.js.map +1 -1
- package/shared/helpers/debounce.d.ts +21 -30
- package/shared/helpers/debounce.js +23 -11
- package/shared/helpers/debounce.js.map +1 -1
- package/shared/helpers/isAsync.d.ts +7 -0
- package/shared/helpers/isAsync.js +14 -0
- package/shared/helpers/isAsync.js.map +1 -0
- package/shared/helpers/runCssVersionMismatchWarning.d.ts +8 -0
- package/shared/helpers/runCssVersionMismatchWarning.js +25 -0
- package/shared/helpers/runCssVersionMismatchWarning.js.map +1 -0
- package/{extensions/forms/hooks → shared/helpers}/useId.js +1 -1
- package/shared/helpers/useId.js.map +1 -0
- package/shared/helpers/useMountEffect.js.map +1 -0
- package/shared/helpers/useMounted.js.map +1 -0
- package/shared/helpers/useSharedState.js +15 -9
- package/shared/helpers/useSharedState.js.map +1 -1
- package/shared/helpers/useUnmountEffect.js.map +1 -0
- package/shared/helpers/useUpdateEffect.js.map +1 -0
- package/shared/helpers.js +2 -0
- package/shared/helpers.js.map +1 -1
- package/shared/index.d.ts +10 -10
- package/shared/index.js +9 -11
- package/shared/index.js.map +1 -1
- package/shared/locales/en-GB.d.ts +1 -0
- package/shared/locales/en-GB.js +2 -1
- package/shared/locales/en-GB.js.map +1 -1
- package/shared/locales/en-US.d.ts +1 -0
- package/shared/locales/index.d.ts +4 -2
- package/shared/locales/index.js +2 -1
- package/shared/locales/index.js.map +1 -1
- package/shared/locales/nb-NO.d.ts +1 -0
- package/shared/locales/nb-NO.js +2 -1
- package/shared/locales/nb-NO.js.map +1 -1
- package/shared/types.d.ts +4 -1
- package/shared/types.js.map +1 -1
- package/shared/useLocale.d.ts +2 -0
- package/shared/useLocale.js +29 -0
- package/shared/useLocale.js.map +1 -0
- package/style/core/scopes.scss +3 -0
- package/style/dnb-ui-basis.css +1 -0
- package/style/dnb-ui-basis.min.css +1 -1
- package/style/dnb-ui-body.css +1 -0
- package/style/dnb-ui-body.min.css +1 -1
- package/style/dnb-ui-components.css +433 -195
- package/style/dnb-ui-components.min.css +3 -3
- package/style/dnb-ui-core.css +1 -0
- package/style/dnb-ui-core.min.css +1 -1
- package/style/dnb-ui-extensions.css +107 -3
- package/style/dnb-ui-extensions.min.css +1 -1
- package/style/dnb-ui-forms.css +107 -3
- package/style/dnb-ui-forms.min.css +1 -1
- package/style/dnb-ui-forms.scss +1 -0
- package/style/themes/theme-eiendom/eiendom-theme-basis.css +3 -6
- package/style/themes/theme-eiendom/eiendom-theme-basis.min.css +1 -1
- package/style/themes/theme-eiendom/eiendom-theme-components.css +596 -328
- package/style/themes/theme-eiendom/eiendom-theme-components.min.css +17 -7
- package/style/themes/theme-eiendom/eiendom-theme-elements.css +3 -6
- package/style/themes/theme-eiendom/eiendom-theme-elements.min.css +1 -1
- package/style/themes/theme-eiendom/eiendom-theme-extensions.css +107 -3
- package/style/themes/theme-eiendom/eiendom-theme-extensions.min.css +1 -1
- package/style/themes/theme-eiendom/eiendom-theme-forms.css +107 -3
- package/style/themes/theme-eiendom/eiendom-theme-forms.min.css +1 -1
- package/style/themes/theme-sbanken/sbanken-theme-basis.css +5 -2
- package/style/themes/theme-sbanken/sbanken-theme-basis.min.css +1 -1
- package/style/themes/theme-sbanken/sbanken-theme-components.css +710 -374
- package/style/themes/theme-sbanken/sbanken-theme-components.min.css +21 -9
- package/style/themes/theme-sbanken/sbanken-theme-elements.css +5 -2
- package/style/themes/theme-sbanken/sbanken-theme-elements.min.css +1 -1
- package/style/themes/theme-sbanken/sbanken-theme-extensions.css +107 -3
- package/style/themes/theme-sbanken/sbanken-theme-extensions.min.css +1 -1
- package/style/themes/theme-sbanken/sbanken-theme-forms.css +107 -3
- package/style/themes/theme-sbanken/sbanken-theme-forms.min.css +1 -1
- package/style/themes/theme-ui/ui-theme-basis.css +3 -6
- package/style/themes/theme-ui/ui-theme-basis.min.css +1 -1
- package/style/themes/theme-ui/ui-theme-components.css +596 -326
- package/style/themes/theme-ui/ui-theme-components.min.css +17 -7
- package/style/themes/theme-ui/ui-theme-elements.css +3 -6
- package/style/themes/theme-ui/ui-theme-elements.min.css +1 -1
- package/style/themes/theme-ui/ui-theme-extensions.css +107 -3
- package/style/themes/theme-ui/ui-theme-extensions.min.css +1 -1
- package/style/themes/theme-ui/ui-theme-forms.css +107 -3
- package/style/themes/theme-ui/ui-theme-forms.min.css +1 -1
- package/style/themes/theme-ui/ui-theme-tags.css +40 -15
- package/style/themes/theme-ui/ui-theme-tags.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 +3 -3
- package/umd/dnb-ui-lib.min.js +1 -1
- package/cjs/extensions/forms/hooks/useDataValue.d.ts +0 -18
- package/cjs/extensions/forms/hooks/useDataValue.js +0 -461
- package/cjs/extensions/forms/hooks/useDataValue.js.map +0 -1
- package/cjs/extensions/forms/hooks/useId.js.map +0 -1
- package/cjs/extensions/forms/hooks/useMountEffect.js.map +0 -1
- package/cjs/extensions/forms/hooks/useMounted.js.map +0 -1
- package/cjs/extensions/forms/hooks/useUnmountEffect.js.map +0 -1
- package/cjs/extensions/forms/hooks/useUpdateEffect.js.map +0 -1
- package/es/extensions/forms/hooks/useDataValue.d.ts +0 -18
- package/es/extensions/forms/hooks/useDataValue.js +0 -443
- package/es/extensions/forms/hooks/useDataValue.js.map +0 -1
- package/es/extensions/forms/hooks/useId.js.map +0 -1
- package/es/extensions/forms/hooks/useMountEffect.js.map +0 -1
- package/es/extensions/forms/hooks/useMounted.js.map +0 -1
- package/es/extensions/forms/hooks/useUnmountEffect.js.map +0 -1
- package/es/extensions/forms/hooks/useUpdateEffect.js.map +0 -1
- package/extensions/forms/hooks/useDataValue.d.ts +0 -18
- package/extensions/forms/hooks/useDataValue.js +0 -451
- package/extensions/forms/hooks/useDataValue.js.map +0 -1
- package/extensions/forms/hooks/useId.js.map +0 -1
- package/extensions/forms/hooks/useMountEffect.js.map +0 -1
- package/extensions/forms/hooks/useMounted.js.map +0 -1
- package/extensions/forms/hooks/useUnmountEffect.js.map +0 -1
- package/extensions/forms/hooks/useUpdateEffect.js.map +0 -1
- /package/cjs/{extensions/forms/hooks → shared/helpers}/useId.d.ts +0 -0
- /package/cjs/{extensions/forms/hooks → shared/helpers}/useMountEffect.d.ts +0 -0
- /package/cjs/{extensions/forms/hooks → shared/helpers}/useMountEffect.js +0 -0
- /package/cjs/{extensions/forms/hooks → shared/helpers}/useMounted.d.ts +0 -0
- /package/cjs/{extensions/forms/hooks → shared/helpers}/useMounted.js +0 -0
- /package/cjs/{extensions/forms/hooks → shared/helpers}/useUnmountEffect.d.ts +0 -0
- /package/cjs/{extensions/forms/hooks → shared/helpers}/useUnmountEffect.js +0 -0
- /package/cjs/{extensions/forms/hooks → shared/helpers}/useUpdateEffect.d.ts +0 -0
- /package/cjs/{extensions/forms/hooks → shared/helpers}/useUpdateEffect.js +0 -0
- /package/es/{extensions/forms/hooks → shared/helpers}/useId.d.ts +0 -0
- /package/es/{extensions/forms/hooks → shared/helpers}/useMountEffect.d.ts +0 -0
- /package/es/{extensions/forms/hooks → shared/helpers}/useMountEffect.js +0 -0
- /package/es/{extensions/forms/hooks → shared/helpers}/useMounted.d.ts +0 -0
- /package/es/{extensions/forms/hooks → shared/helpers}/useMounted.js +0 -0
- /package/es/{extensions/forms/hooks → shared/helpers}/useUnmountEffect.d.ts +0 -0
- /package/es/{extensions/forms/hooks → shared/helpers}/useUnmountEffect.js +0 -0
- /package/es/{extensions/forms/hooks → shared/helpers}/useUpdateEffect.d.ts +0 -0
- /package/es/{extensions/forms/hooks → shared/helpers}/useUpdateEffect.js +0 -0
- /package/{extensions/forms/hooks → shared/helpers}/useId.d.ts +0 -0
- /package/{extensions/forms/hooks → shared/helpers}/useMountEffect.d.ts +0 -0
- /package/{extensions/forms/hooks → shared/helpers}/useMountEffect.js +0 -0
- /package/{extensions/forms/hooks → shared/helpers}/useMounted.d.ts +0 -0
- /package/{extensions/forms/hooks → shared/helpers}/useMounted.js +0 -0
- /package/{extensions/forms/hooks → shared/helpers}/useUnmountEffect.d.ts +0 -0
- /package/{extensions/forms/hooks → shared/helpers}/useUnmountEffect.js +0 -0
- /package/{extensions/forms/hooks → shared/helpers}/useUpdateEffect.d.ts +0 -0
- /package/{extensions/forms/hooks → shared/helpers}/useUpdateEffect.js +0 -0
|
@@ -1,8 +1,6 @@
|
|
|
1
|
-
import _defineProperty from "@babel/runtime/helpers/esm/defineProperty";
|
|
2
|
-
function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }
|
|
3
|
-
function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys(Object(source), !0).forEach(function (key) { _defineProperty(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; }
|
|
4
1
|
import ajvInstance from 'ajv/dist/2020';
|
|
5
2
|
import ajvErrors from 'ajv-errors';
|
|
3
|
+
import pointer from 'json-pointer';
|
|
6
4
|
import { FormError } from '../types';
|
|
7
5
|
export { ajvInstance };
|
|
8
6
|
export function makeAjvInstance(instance) {
|
|
@@ -60,30 +58,51 @@ export function getMessageValues(ajvError) {
|
|
|
60
58
|
}
|
|
61
59
|
}
|
|
62
60
|
export function ajvErrorToFormError(ajvError) {
|
|
63
|
-
var _ajvError$
|
|
64
|
-
|
|
61
|
+
var _ajvError$message2;
|
|
62
|
+
if (ajvError.keyword === 'errorMessage') {
|
|
63
|
+
var _ajvError$message;
|
|
64
|
+
return new Error((_ajvError$message = ajvError.message) !== null && _ajvError$message !== void 0 ? _ajvError$message : 'Unknown error');
|
|
65
|
+
}
|
|
66
|
+
return new FormError((_ajvError$message2 = ajvError.message) !== null && _ajvError$message2 !== void 0 ? _ajvError$message2 : 'Unknown error', {
|
|
65
67
|
validationRule: getValidationRule(ajvError),
|
|
66
68
|
messageValues: getMessageValues(ajvError)
|
|
67
69
|
});
|
|
68
|
-
return error;
|
|
69
70
|
}
|
|
70
|
-
export function ajvErrorsToOneFormError(errors) {
|
|
71
|
+
export function ajvErrorsToOneFormError(errors, value) {
|
|
71
72
|
if (!errors || errors.length === 0) {
|
|
72
73
|
return;
|
|
73
74
|
}
|
|
74
75
|
if (errors.length === 1) {
|
|
75
|
-
|
|
76
|
+
const error = ajvErrorsTransformation(errors[0], value);
|
|
77
|
+
if (!error) {
|
|
78
|
+
return undefined;
|
|
79
|
+
}
|
|
80
|
+
return ajvErrorToFormError(error);
|
|
76
81
|
}
|
|
77
82
|
const errorMessages = errors === null || errors === void 0 ? void 0 : errors.map(error => error.message);
|
|
78
|
-
return new FormError(errorMessages.join('
|
|
79
|
-
validationRule: errors.map(getValidationRule)
|
|
80
|
-
});
|
|
83
|
+
return new FormError(errorMessages.join(' and '));
|
|
81
84
|
}
|
|
82
|
-
export const ajvErrorsToFormErrors = errors => {
|
|
85
|
+
export const ajvErrorsToFormErrors = (errors, data) => {
|
|
83
86
|
return (errors !== null && errors !== void 0 ? errors : []).reduce((errors, ajvError) => {
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
|
|
87
|
+
const path = getInstancePath(ajvError);
|
|
88
|
+
const error = ajvErrorsTransformation(ajvError, data, path);
|
|
89
|
+
if (error) {
|
|
90
|
+
errors[path] = ajvErrorToFormError(error);
|
|
91
|
+
}
|
|
92
|
+
return errors;
|
|
87
93
|
}, {});
|
|
88
94
|
};
|
|
95
|
+
function ajvErrorsTransformation(ajvError, data, path) {
|
|
96
|
+
if (ajvError.keyword === 'type') {
|
|
97
|
+
const value = data && typeof data === 'object' ? pointer.get(data, path) : data;
|
|
98
|
+
if (value === '' || value === null) {
|
|
99
|
+
return undefined;
|
|
100
|
+
} else {
|
|
101
|
+
const field = path ? `field at path="${path}"` : 'field';
|
|
102
|
+
ajvError.message = `The ${field} value (${value}) type ${ajvError.message}`;
|
|
103
|
+
console.error(ajvError.message);
|
|
104
|
+
}
|
|
105
|
+
}
|
|
106
|
+
return ajvError;
|
|
107
|
+
}
|
|
89
108
|
//# sourceMappingURL=ajv.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ajv.js","names":["ajvInstance","ajvErrors","FormError","makeAjvInstance","instance","ajv","allErrors","getInstancePath","ajvError","keyword","instancePath","params","missingProperty","errors","getValidationRule","getMessageValues","_ajvError$params","_ajvError$params2","_ajvError$params3","validationRule","limit","multipleOf","pattern","ajvErrorToFormError","_ajvError$message","error","message","messageValues","ajvErrorsToOneFormError","length","errorMessages","map","join","ajvErrorsToFormErrors","reduce","_objectSpread"],"sources":["../../../../../src/extensions/forms/utils/ajv.ts"],"sourcesContent":["import ajvInstance, { ErrorObject } from 'ajv/dist/2020'\nimport ajvErrors from 'ajv-errors'\nimport { FormError } from '../types'\nimport type Ajv from 'ajv/dist/2020'\n\nexport type AjvInstance = typeof ajvInstance\nexport { ajvInstance, Ajv }\n\n/**\n * Creates an instance of Ajv (Another JSON Schema Validator) with optional custom instance.\n * If no instance is provided, a new instance of Ajv is created with the specified options.\n * The created Ajv instance is enhanced with custom error handling.\n *\n * @param instance - Optional custom instance of Ajv.\n * @returns The created or provided instance of Ajv.\n */\nexport function makeAjvInstance(instance?: Ajv) {\n const ajv =\n instance ||\n new ajvInstance({\n // If allErrors is off, Ajv only give you the first error it finds\n allErrors: true,\n })\n\n if (!ajv['__ajvErrors__']) {\n ajvErrors(ajv)\n ajv['__ajvErrors__'] = true\n }\n\n return ajv\n}\n\n/**\n * Returns the instance path of the given Ajv error.\n * If the error is of type 'required', it is considered an object error and the missing property is shown under the relevant field.\n * If the error is of type 'errorMessage', it is a wrapped error and the instance path is found from the original error to avoid issues like required-errors pointing at the parent object.\n * @param ajvError - The Ajv error object.\n * @returns The instance path of the error.\n */\nexport function getInstancePath(ajvError: ErrorObject): string {\n switch (ajvError.keyword) {\n case 'required': {\n // Required-errors are considered object errors by ajv, so they don't have instancePaths. We want to\n // show them under the relevant field\n return `${ajvError.instancePath}/${ajvError.params.missingProperty}`\n }\n case 'errorMessage': {\n // errorMessage structures (from ajv-errors) wrap the original error. Find instance path from original\n // to avoid issues like required-errors pointing at parent object.\n if (ajvError.params.errors[0]) {\n return getInstancePath(ajvError.params.errors[0])\n }\n }\n }\n return ajvError.instancePath\n}\n\n/**\n * Retrieves the validation rule from an AJV error object.\n * If the error object has an 'errorMessage' keyword, it unwraps the original error\n * to avoid issues like required-errors pointing at the parent object.\n * @param ajvError - The AJV error object.\n * @returns The validation rule.\n */\nexport function getValidationRule(ajvError: ErrorObject): string {\n if (ajvError.keyword === 'errorMessage' && ajvError.params.errors[0]) {\n // errorMessage structures (from ajv-errors) wrap the original error. Find keyword from original\n // to avoid issues like required-errors pointing at parent object.\n return getValidationRule(ajvError.params.errors[0])\n }\n return ajvError.keyword\n}\n\n/**\n * Retrieves the message values from an AJV error object.\n * @param ajvError The AJV error object.\n * @returns The message values extracted from the error object.\n */\nexport function getMessageValues(\n ajvError: ErrorObject\n): FormError['messageValues'] {\n const validationRule = getValidationRule(ajvError)\n // console.log('validationRule', validationRule)\n\n switch (validationRule) {\n case 'minLength':\n case 'maxLength':\n case 'minimum':\n case 'maximum':\n case 'exclusiveMinimum':\n case 'exclusiveMaximum':\n return {\n [validationRule]: ajvError.params?.limit,\n }\n case 'multipleOf':\n return {\n [validationRule]: ajvError.params?.multipleOf,\n }\n case 'pattern':\n return {\n [validationRule]: ajvError.params?.pattern,\n }\n }\n}\n\n/**\n * Converts an AJV error object to a FormError object.\n *\n * @param ajvError - The AJV error object to convert.\n * @returns The converted FormError object.\n */\nexport function ajvErrorToFormError(ajvError: ErrorObject): FormError {\n const error = new FormError(ajvError.message ?? 'Unknown error', {\n validationRule: getValidationRule(ajvError),\n // Keep the message values in the error object instead of injecting them into the message\n // at once, since an error might be validated one place, and then get a new message before it is displayed.\n messageValues: getMessageValues(ajvError),\n })\n return error\n}\n\n/**\n * Converts an array of Ajv errors to a single FormError.\n * @param errors - An array of Ajv errors.\n * @returns A single FormError or undefined if there are no errors.\n */\nexport function ajvErrorsToOneFormError(\n errors?: ErrorObject[] | null\n): FormError | undefined {\n if (!errors || errors.length === 0) {\n return\n }\n if (errors.length === 1) {\n return ajvErrorToFormError(errors[0])\n }\n\n const errorMessages = errors?.map((error) => error.message)\n return new FormError(errorMessages.join(' | '), {\n validationRule: errors.map(getValidationRule),\n })\n}\n\n/**\n * Transform errors from ajv-validation into a record of errors (path as key, error as value)\n * @param errors\n * @returns\n */\nexport const ajvErrorsToFormErrors = (\n errors?: ErrorObject[] | null\n): Record<string, FormError> => {\n return (errors ?? []).reduce((errors, ajvError) => {\n return {\n ...errors,\n [getInstancePath(ajvError)]: ajvErrorToFormError(ajvError),\n }\n }, {})\n}\n"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"ajv.js","names":["ajvInstance","ajvErrors","pointer","FormError","makeAjvInstance","instance","ajv","allErrors","getInstancePath","ajvError","keyword","instancePath","params","missingProperty","errors","getValidationRule","getMessageValues","_ajvError$params","_ajvError$params2","_ajvError$params3","validationRule","limit","multipleOf","pattern","ajvErrorToFormError","_ajvError$message2","_ajvError$message","Error","message","messageValues","ajvErrorsToOneFormError","value","length","error","ajvErrorsTransformation","undefined","errorMessages","map","join","ajvErrorsToFormErrors","data","reduce","path","get","field","console"],"sources":["../../../../../src/extensions/forms/utils/ajv.ts"],"sourcesContent":["import ajvInstance, { ErrorObject } from 'ajv/dist/2020'\nimport ajvErrors from 'ajv-errors'\nimport pointer from 'json-pointer'\nimport { FormError, Path } from '../types'\nimport type Ajv from 'ajv/dist/2020'\n\nexport type AjvInstance = typeof ajvInstance\nexport { ajvInstance, Ajv }\n\n/**\n * Creates an instance of Ajv (Another JSON Schema Validator) with optional custom instance.\n * If no instance is provided, a new instance of Ajv is created with the specified options.\n * The created Ajv instance is enhanced with custom error handling.\n *\n * @param instance - Optional custom instance of Ajv.\n * @returns The created or provided instance of Ajv.\n */\nexport function makeAjvInstance(instance?: Ajv) {\n const ajv =\n instance ||\n new ajvInstance({\n // If allErrors is off, Ajv only give you the first error it finds\n allErrors: true,\n })\n\n if (!ajv['__ajvErrors__']) {\n ajvErrors(ajv)\n ajv['__ajvErrors__'] = true\n }\n\n return ajv\n}\n\n/**\n * Returns the instance path of the given Ajv error.\n * If the error is of type 'required', it is considered an object error and the missing property is shown under the relevant field.\n * If the error is of type 'errorMessage', it is a wrapped error and the instance path is found from the original error to avoid issues like required-errors pointing at the parent object.\n * @param ajvError - The Ajv error object.\n * @returns The instance path of the error.\n */\nexport function getInstancePath(ajvError: ErrorObject): Path {\n switch (ajvError.keyword) {\n case 'required': {\n // Required-errors are considered object errors by ajv, so they don't have instancePaths. We want to\n // show them under the relevant field\n return `${ajvError.instancePath}/${ajvError.params.missingProperty}`\n }\n case 'errorMessage': {\n // errorMessage structures (from ajv-errors) wrap the original error. Find instance path from original\n // to avoid issues like required-errors pointing at parent object.\n if (ajvError.params.errors[0]) {\n return getInstancePath(ajvError.params.errors[0])\n }\n }\n }\n return ajvError.instancePath\n}\n\n/**\n * Retrieves the validation rule from an AJV error object.\n * If the error object has an 'errorMessage' keyword, it unwraps the original error\n * to avoid issues like required-errors pointing at the parent object.\n * @param ajvError - The AJV error object.\n * @returns The validation rule.\n */\nexport function getValidationRule(ajvError: ErrorObject): string {\n if (ajvError.keyword === 'errorMessage' && ajvError.params.errors[0]) {\n // errorMessage structures (from ajv-errors) wrap the original error. Find keyword from original\n // to avoid issues like required-errors pointing at parent object.\n return getValidationRule(ajvError.params.errors[0])\n }\n return ajvError.keyword\n}\n\n/**\n * Retrieves the message values from an AJV error object.\n * @param ajvError The AJV error object.\n * @returns The message values extracted from the error object.\n */\nexport function getMessageValues(\n ajvError: ErrorObject\n): FormError['messageValues'] {\n const validationRule = getValidationRule(ajvError)\n\n switch (validationRule) {\n case 'minLength':\n case 'maxLength':\n case 'minimum':\n case 'maximum':\n case 'exclusiveMinimum':\n case 'exclusiveMaximum':\n return {\n [validationRule]: ajvError.params?.limit,\n }\n case 'multipleOf':\n return {\n [validationRule]: ajvError.params?.multipleOf,\n }\n case 'pattern':\n return {\n [validationRule]: ajvError.params?.pattern,\n }\n }\n}\n\n/**\n * Converts an AJV error object to a FormError object.\n *\n * @param ajvError - The AJV error object to convert.\n * @returns The converted FormError object.\n */\nexport function ajvErrorToFormError(ajvError: ErrorObject): FormError {\n if (ajvError.keyword === 'errorMessage') {\n return new Error(ajvError.message ?? 'Unknown error')\n }\n\n return new FormError(ajvError.message ?? 'Unknown error', {\n validationRule: getValidationRule(ajvError),\n // Keep the message values in the error object instead of injecting them into the message\n // at once, since an error might be validated one place, and then get a new message before it is displayed.\n messageValues: getMessageValues(ajvError),\n })\n}\n\n/**\n * Converts an array of Ajv errors to a single FormError.\n * @param errors - An array of Ajv errors.\n * @returns A single FormError or undefined if there are no errors.\n */\nexport function ajvErrorsToOneFormError(\n errors?: ErrorObject[] | null,\n value?: unknown\n): FormError | undefined {\n if (!errors || errors.length === 0) {\n return\n }\n if (errors.length === 1) {\n const error = ajvErrorsTransformation(errors[0], value)\n if (!error) {\n return undefined\n }\n\n return ajvErrorToFormError(error)\n }\n\n const errorMessages = errors?.map((error) => error.message)\n return new FormError(errorMessages.join(' and '))\n}\n\n/**\n * Converts AJV validation errors to form errors.\n *\n * @param errors - The array of AJV validation errors.\n * @param data - The data object being validated.\n * @returns The converted form errors as a record of path and form error pairs.\n */\nexport const ajvErrorsToFormErrors = (\n errors?: ErrorObject[] | null,\n data?: Record<Path, unknown>\n): Record<string, FormError> => {\n return (errors ?? []).reduce((errors, ajvError) => {\n const path = getInstancePath(ajvError)\n const error = ajvErrorsTransformation(ajvError, data, path)\n\n if (error) {\n errors[path] = ajvErrorToFormError(error)\n }\n\n return errors\n }, {})\n}\n\n/**\n * Transforms AJV errors based on specific conditions.\n *\n * @param ajvError - The AJV error object.\n * @param data - The data object or value being validated.\n * @param path - The path to the data object property being validated.\n * @returns The transformed AJV error object or undefined if the error should be removed.\n */\nfunction ajvErrorsTransformation(\n ajvError: ErrorObject,\n data?: Record<Path, unknown> | unknown,\n path?: Path\n) {\n if (ajvError.keyword === 'type') {\n const value =\n data && typeof data === 'object' ? pointer.get(data, path) : data\n\n // Remove the error if the value is empty\n if (value === '' || value === null) {\n return undefined\n } else {\n // This extend the very limited error message with the value and the path\n const field = path ? `field at path=\"${path}\"` : 'field'\n ajvError.message = `The ${field} value (${value}) type ${ajvError.message}`\n\n // Warn about the issue\n console.error(ajvError.message)\n }\n }\n\n return ajvError\n}\n"],"mappings":"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"}
|
|
@@ -14,10 +14,10 @@ export type ScrollViewProps = {
|
|
|
14
14
|
export type ScrollViewAllProps = ScrollViewProps & SpacingProps & Partial<Omit<React.HTMLAttributes<HTMLDivElement>, 'title'>> & {
|
|
15
15
|
innerRef?: React.ForwardedRef<unknown>;
|
|
16
16
|
};
|
|
17
|
-
declare const
|
|
17
|
+
declare const ScrollViewWithRef: React.ForwardRefExoticComponent<ScrollViewProps & import("../../shared/types").SpacingElementProps & {
|
|
18
18
|
space?: import("../../shared/types").SpaceTypeAll;
|
|
19
19
|
innerSpace?: import("../../shared/types").SpaceTypeAll | import("../../shared/types").SpaceTypeMedia;
|
|
20
20
|
} & Partial<Omit<React.HTMLAttributes<HTMLDivElement>, "title">> & {
|
|
21
21
|
innerRef?: React.ForwardedRef<unknown>;
|
|
22
22
|
} & React.RefAttributes<unknown>>;
|
|
23
|
-
export default
|
|
23
|
+
export default ScrollViewWithRef;
|
|
@@ -69,9 +69,12 @@ function useInteractive({
|
|
|
69
69
|
return ref.current.scrollWidth - 1 > ref.current.offsetWidth || ref.current.scrollHeight - 1 > ref.current.offsetHeight;
|
|
70
70
|
}
|
|
71
71
|
}
|
|
72
|
-
|
|
72
|
+
const ScrollViewWithRef = React.forwardRef((props, ref) => {
|
|
73
73
|
return React.createElement(ScrollView, _extends({}, props, {
|
|
74
74
|
innerRef: props.innerRef || ref
|
|
75
75
|
}));
|
|
76
76
|
});
|
|
77
|
+
ScrollView._supportsSpacingProps = true;
|
|
78
|
+
ScrollViewWithRef['_supportsSpacingProps'] = true;
|
|
79
|
+
export default ScrollViewWithRef;
|
|
77
80
|
//# sourceMappingURL=ScrollView.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ScrollView.js","names":["React","classnames","extendPropsWithContext","validateDOMAttributes","Context","createSpacingClasses","useLayoutEffect","window","useEffect","defaultProps","children","ScrollView","localProps","context","useContext","props","interactive","className","innerRef","attributes","_objectWithoutProperties","_excluded","mainParams","_objectSpread","ref","useRef","tabIndex","useInteractive","createElement","isInteractive","setAsInteractive","useState","Boolean","hasScrollbar","ResizeObserver","observer","observe","current","disconnect","undefined","scrollWidth","offsetWidth","scrollHeight","offsetHeight","forwardRef","_extends"],"sources":["../../../../src/fragments/scroll-view/ScrollView.tsx"],"sourcesContent":["/**\n * Web ScrollView Component\n *\n */\n\nimport React from 'react'\nimport classnames from 'classnames'\nimport {\n extendPropsWithContext,\n validateDOMAttributes,\n} from '../../shared/component-helper'\nimport Context from '../../shared/Context'\nimport { createSpacingClasses } from '../../components/space/SpacingHelper'\nimport type { SpacingProps } from '../../shared/types'\n\n// SSR warning fix: https://gist.github.com/gaearon/e7d97cdf38a2907924ea12e4ebdf3c85\nconst useLayoutEffect =\n typeof window === 'undefined' ? React.useEffect : React.useLayoutEffect\n\nexport type ScrollViewProps = {\n /**\n * To make the content accessible to keyboard navigation. Use `true` or `auto`. Auto will detect if a scrollbar is visible and make the ScrollView accessible for keyboard navigation.\n * Default: false\n */\n interactive?: boolean | 'auto'\n}\n\nexport type ScrollViewAllProps = ScrollViewProps &\n SpacingProps &\n Partial<Omit<React.HTMLAttributes<HTMLDivElement>, 'title'>> & {\n innerRef?: React.ForwardedRef<unknown>\n }\n\nconst defaultProps = {\n children: null,\n}\n\nfunction ScrollView(localProps: ScrollViewAllProps) {\n const context = React.useContext(Context)\n\n // use only the props from context, who are available here anyway\n const props = extendPropsWithContext(\n localProps,\n defaultProps,\n context.ScrollView\n )\n\n const {\n interactive,\n children,\n className = null,\n innerRef,\n ...attributes\n } = props\n\n const mainParams: React.DetailedHTMLProps<\n React.HTMLAttributes<HTMLDivElement>,\n HTMLDivElement\n > = {\n className: classnames(\n 'dnb-scroll-view',\n createSpacingClasses(props),\n className\n ),\n ...(attributes as React.HTMLAttributes<unknown>),\n }\n\n const ref = React.useRef<HTMLDivElement>()\n mainParams.ref = innerRef\n ? (innerRef as React.RefObject<HTMLDivElement>)\n : ref\n\n mainParams.tabIndex = useInteractive({\n interactive,\n children,\n ref: mainParams.ref,\n })\n\n validateDOMAttributes(props, mainParams)\n\n return <div {...mainParams}>{children}</div>\n}\n\nfunction useInteractive({ interactive, children, ref }) {\n const [isInteractive, setAsInteractive] = React.useState(\n Boolean(interactive)\n )\n\n useLayoutEffect(() => {\n if (interactive === 'auto') {\n setAsInteractive(hasScrollbar())\n }\n }, [interactive, children]) // eslint-disable-line react-hooks/exhaustive-deps\n\n useLayoutEffect(() => {\n if (interactive === 'auto' && typeof ResizeObserver !== 'undefined') {\n const observer = new ResizeObserver(() => {\n setAsInteractive(hasScrollbar())\n })\n observer.observe(ref.current)\n return () => observer?.disconnect()\n }\n }, [interactive, ref]) // eslint-disable-line react-hooks/exhaustive-deps\n\n if (isInteractive) {\n return 0 // Ensure that scrollable region has keyboard access\n }\n\n return undefined\n\n function hasScrollbar() {\n if (!ref.current) {\n return true // fallback and assume, there is a scrollbar\n }\n\n /**\n * Safari Desktop adds one pixel \"on zoom\" level 1\n * therefore we just remove it here\n */\n return (\n ref.current.scrollWidth - 1 > ref.current.offsetWidth ||\n ref.current.scrollHeight - 1 > ref.current.offsetHeight\n )\n }\n}\n\
|
|
1
|
+
{"version":3,"file":"ScrollView.js","names":["React","classnames","extendPropsWithContext","validateDOMAttributes","Context","createSpacingClasses","useLayoutEffect","window","useEffect","defaultProps","children","ScrollView","localProps","context","useContext","props","interactive","className","innerRef","attributes","_objectWithoutProperties","_excluded","mainParams","_objectSpread","ref","useRef","tabIndex","useInteractive","createElement","isInteractive","setAsInteractive","useState","Boolean","hasScrollbar","ResizeObserver","observer","observe","current","disconnect","undefined","scrollWidth","offsetWidth","scrollHeight","offsetHeight","ScrollViewWithRef","forwardRef","_extends","_supportsSpacingProps"],"sources":["../../../../src/fragments/scroll-view/ScrollView.tsx"],"sourcesContent":["/**\n * Web ScrollView Component\n *\n */\n\nimport React from 'react'\nimport classnames from 'classnames'\nimport {\n extendPropsWithContext,\n validateDOMAttributes,\n} from '../../shared/component-helper'\nimport Context from '../../shared/Context'\nimport { createSpacingClasses } from '../../components/space/SpacingHelper'\nimport type { SpacingProps } from '../../shared/types'\n\n// SSR warning fix: https://gist.github.com/gaearon/e7d97cdf38a2907924ea12e4ebdf3c85\nconst useLayoutEffect =\n typeof window === 'undefined' ? React.useEffect : React.useLayoutEffect\n\nexport type ScrollViewProps = {\n /**\n * To make the content accessible to keyboard navigation. Use `true` or `auto`. Auto will detect if a scrollbar is visible and make the ScrollView accessible for keyboard navigation.\n * Default: false\n */\n interactive?: boolean | 'auto'\n}\n\nexport type ScrollViewAllProps = ScrollViewProps &\n SpacingProps &\n Partial<Omit<React.HTMLAttributes<HTMLDivElement>, 'title'>> & {\n innerRef?: React.ForwardedRef<unknown>\n }\n\nconst defaultProps = {\n children: null,\n}\n\nfunction ScrollView(localProps: ScrollViewAllProps) {\n const context = React.useContext(Context)\n\n // use only the props from context, who are available here anyway\n const props = extendPropsWithContext(\n localProps,\n defaultProps,\n context.ScrollView\n )\n\n const {\n interactive,\n children,\n className = null,\n innerRef,\n ...attributes\n } = props\n\n const mainParams: React.DetailedHTMLProps<\n React.HTMLAttributes<HTMLDivElement>,\n HTMLDivElement\n > = {\n className: classnames(\n 'dnb-scroll-view',\n createSpacingClasses(props),\n className\n ),\n ...(attributes as React.HTMLAttributes<unknown>),\n }\n\n const ref = React.useRef<HTMLDivElement>()\n mainParams.ref = innerRef\n ? (innerRef as React.RefObject<HTMLDivElement>)\n : ref\n\n mainParams.tabIndex = useInteractive({\n interactive,\n children,\n ref: mainParams.ref,\n })\n\n validateDOMAttributes(props, mainParams)\n\n return <div {...mainParams}>{children}</div>\n}\n\nfunction useInteractive({ interactive, children, ref }) {\n const [isInteractive, setAsInteractive] = React.useState(\n Boolean(interactive)\n )\n\n useLayoutEffect(() => {\n if (interactive === 'auto') {\n setAsInteractive(hasScrollbar())\n }\n }, [interactive, children]) // eslint-disable-line react-hooks/exhaustive-deps\n\n useLayoutEffect(() => {\n if (interactive === 'auto' && typeof ResizeObserver !== 'undefined') {\n const observer = new ResizeObserver(() => {\n setAsInteractive(hasScrollbar())\n })\n observer.observe(ref.current)\n return () => observer?.disconnect()\n }\n }, [interactive, ref]) // eslint-disable-line react-hooks/exhaustive-deps\n\n if (isInteractive) {\n return 0 // Ensure that scrollable region has keyboard access\n }\n\n return undefined\n\n function hasScrollbar() {\n if (!ref.current) {\n return true // fallback and assume, there is a scrollbar\n }\n\n /**\n * Safari Desktop adds one pixel \"on zoom\" level 1\n * therefore we just remove it here\n */\n return (\n ref.current.scrollWidth - 1 > ref.current.offsetWidth ||\n ref.current.scrollHeight - 1 > ref.current.offsetHeight\n )\n }\n}\n\nconst ScrollViewWithRef = React.forwardRef(\n (props: ScrollViewAllProps, ref) => {\n return <ScrollView {...props} innerRef={props.innerRef || ref} />\n }\n)\n\nScrollView._supportsSpacingProps = true\nScrollViewWithRef['_supportsSpacingProps'] = true\n\nexport default ScrollViewWithRef\n"],"mappings":"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"}
|
package/es/shared/Context.d.ts
CHANGED
|
@@ -3,6 +3,7 @@
|
|
|
3
3
|
*
|
|
4
4
|
*/
|
|
5
5
|
import React from 'react';
|
|
6
|
+
import defaultLocales from './locales';
|
|
6
7
|
import type { ScrollViewProps } from '../fragments/scroll-view/ScrollView';
|
|
7
8
|
import type { AnchorProps } from '../components/Anchor';
|
|
8
9
|
import type { ButtonProps } from '../components/button/Button';
|
|
@@ -119,30 +120,38 @@ export type ContextProps = ContextComponents & {
|
|
|
119
120
|
* Update the used locale from within the context, but only for the particular scope
|
|
120
121
|
*/
|
|
121
122
|
setCurrentLocale?: (locale: Locale) => void;
|
|
123
|
+
/**
|
|
124
|
+
* Set a custom translation in the Provider
|
|
125
|
+
*/
|
|
122
126
|
locales?: Locales;
|
|
123
127
|
__context__?: Record<string, unknown>;
|
|
124
128
|
updateTranslation?: (locale: Locale, translation: Translation) => void;
|
|
125
129
|
getTranslation?: (props: GetTranslationProps) => Translation;
|
|
126
130
|
};
|
|
127
131
|
export type GetTranslationProps = Partial<{
|
|
128
|
-
lang?: Locale;
|
|
132
|
+
lang?: Locale | HTMLElement['lang'];
|
|
129
133
|
locale?: Locale;
|
|
130
134
|
}>;
|
|
131
|
-
export type
|
|
132
|
-
export type
|
|
135
|
+
export type AnyLocale = string;
|
|
136
|
+
export type Locale = AnyLocale | Partial<TranslationLocale> | 'en-US';
|
|
137
|
+
export type ComponentTranslationsName = keyof ContextComponents | string;
|
|
133
138
|
export type ComponentTranslation = string;
|
|
134
|
-
export type
|
|
135
|
-
export type
|
|
136
|
-
export type
|
|
139
|
+
export type Locales = Partial<Record<Locale, Translation | TranslationFlat>>;
|
|
140
|
+
export type TranslationDefaultLocales = typeof defaultLocales;
|
|
141
|
+
export type TranslationLocale = keyof TranslationDefaultLocales;
|
|
142
|
+
export type TranslationKeys = keyof TranslationDefaultLocales[TranslationLocale];
|
|
143
|
+
export type TranslationValues = TranslationDefaultLocales[TranslationLocale];
|
|
137
144
|
/**
|
|
138
|
-
*
|
|
145
|
+
* E.g. "HelpButton: { title: '...' }"
|
|
139
146
|
*/
|
|
140
|
-
|
|
141
|
-
export type TranslationConsumer = Record<
|
|
147
|
+
export type Translation = DeepPartial<TranslationDefaultLocales[TranslationLocale]>;
|
|
142
148
|
/**
|
|
143
|
-
*
|
|
149
|
+
* E.g. "HelpButton.title"
|
|
144
150
|
*/
|
|
145
|
-
ComponentTranslationsName,
|
|
151
|
+
export type TranslationFlat = Record<ComponentTranslationsName, TranslationKeys | ComponentTranslation>;
|
|
152
|
+
type DeepPartial<T> = T extends object ? {
|
|
153
|
+
[K in keyof T]?: DeepPartial<T[K]>;
|
|
154
|
+
} : T;
|
|
146
155
|
export declare function prepareContext<Props>(props?: ContextProps): Props & ContextProps;
|
|
147
156
|
declare const Context: React.Context<ContextProps>;
|
|
148
157
|
export default Context;
|
package/es/shared/Context.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Context.js","names":["React","LOCALE","CURRENCY","CURRENCY_DISPLAY","defaultLocales","extend","prepareContext","props","locales","__context__","Object","assign","key","handleLocaleFallbacks","locale","translation","destruct","context","_objectSpread","updateTranslation","getTranslation","lang","breakpoints","skeleton","split","Context","createContext","currency","currency_display","source","validKeys","k","String","includes","list","val","last","length","forEach","i"],"sources":["../../../src/shared/Context.tsx"],"sourcesContent":["/**\n * Web Context Context\n *\n */\n\nimport React from 'react'\nimport { LOCALE, CURRENCY, CURRENCY_DISPLAY } from './defaults'\nimport defaultLocales from './locales'\nimport { extend } from './component-helper'\n\n// All TypeScript based Eufemia elements\nimport type { ScrollViewProps } from '../fragments/scroll-view/ScrollView'\n\n// All TypeScript based Eufemia components\nimport type { AnchorProps } from '../components/Anchor'\nimport type { ButtonProps } from '../components/button/Button'\nimport type { AvatarProps } from '../components/avatar/Avatar'\nimport type { AvatarGroupProps } from '../components/avatar/AvatarGroup'\nimport type { BadgeProps } from '../components/badge/Badge'\nimport type { BreadcrumbProps } from '../components/breadcrumb/Breadcrumb'\nimport type { BreadcrumbItemProps } from '../components/breadcrumb/BreadcrumbItem'\nimport type { InfoCardProps } from '../components/info-card/InfoCard'\nimport type { SliderProps } from '../components/slider/Slider'\nimport type { TagProps } from '../components/tag/Tag'\nimport type { TagGroupProps } from '../components/tag/TagGroup'\nimport type { TimelineProps } from '../components/timeline/Timeline'\nimport type { TimelineItemProps } from '../components/timeline/TimelineItem'\nimport type { VisuallyHiddenProps } from '../components/visually-hidden/VisuallyHidden'\nimport type { DrawerProps } from '../components/drawer/types'\nimport type { DialogProps } from '../components/dialog/types'\nimport type { TooltipProps } from '../components/tooltip/types'\nimport type { SectionProps } from '../components/section/Section'\nimport type { FormRowProps } from '../components/form-row/FormRowHelpers'\nimport type { UploadProps } from '../components/upload/types'\nimport type { SkeletonProps, SkeletonShow } from '../components/Skeleton'\nimport type { HelpButtonProps } from '../components/HelpButton'\nimport type { TableProps } from '../components/Table'\nimport type { GlobalErrorProps } from '../components/GlobalError'\nimport type { ModalProps } from '../components/modal/types'\nimport type { AccordionProps } from '../components/Accordion'\nimport type { StepIndicatorProps } from '../components/StepIndicator'\nimport type { FormLabelProps } from '../components/FormLabel'\nimport type { InputProps } from '../components/Input'\n\nimport type { NumberFormatCurrency } from '../components/NumberFormat'\n\nimport type { FormElementProps } from './helpers/filterValidProps'\nimport type { ThemeProps } from './Theme'\n\nexport type ContextComponents = {\n Button?: Partial<ButtonProps>\n Anchor?: Partial<AnchorProps>\n Avatar?: Partial<AvatarProps>\n AvatarGroup?: Partial<AvatarGroupProps>\n Badge?: Partial<BadgeProps>\n Breadcrumb?: Partial<BreadcrumbProps>\n BreadcrumbItem?: Partial<BreadcrumbItemProps>\n InfoCard?: Partial<InfoCardProps>\n Slider?: Partial<SliderProps>\n Tag?: Partial<TagProps>\n TagGroup?: Partial<TagGroupProps>\n Timeline?: Partial<TimelineProps>\n TimelineItem?: Partial<TimelineItemProps>\n VisuallyHidden?: Partial<VisuallyHiddenProps>\n Drawer?: Partial<DrawerProps>\n Dialog?: Partial<DialogProps>\n Tooltip?: Partial<TooltipProps>\n Section?: Partial<SectionProps>\n ScrollView?: Partial<ScrollViewProps>\n Upload?: Partial<UploadProps>\n Skeleton?: Partial<SkeletonProps>\n HelpButton?: Partial<HelpButtonProps>\n Table?: Partial<TableProps>\n GlobalError?: Partial<GlobalErrorProps>\n Modal?: Partial<ModalProps>\n Accordion?: Partial<AccordionProps>\n StepIndicator?: Partial<StepIndicatorProps>\n FormLabel?: Partial<FormLabelProps>\n Input?: Partial<InputProps>\n\n // -- TODO: Not converted yet --\n NumberFormat?: Record<string, unknown>\n Pagination?: Record<string, unknown>\n\n /**\n * @deprecated – can be removed in v11\n */\n FormRow?: FormRowProps\n\n // Common props\n formElement?: FormElementProps\n}\n\nexport type ContextProps = ContextComponents & {\n // -- All TypeScript based Eufemia components --\n\n // -- Global properties --\n\n /**\n * Contains theme related properties, such as a theme name\n */\n theme?: ThemeProps\n\n /**\n * Will enable all skeletons inside this provider/context scope\n */\n skeleton?: SkeletonShow\n\n /**\n * Define what breakpoints should be used by the MediaQuery component and hook\n */\n breakpoints?: Record<string, string>\n\n /**\n * Defines the locale (internal translation) used by some components\n */\n locale?: Locale\n\n /**\n * Provide your own translations. Use the same format as defined in the translation files\n */\n translation?: Translation\n\n /**\n * Defines the currency used by the NumberFormat component\n */\n currency?: NumberFormatCurrency\n\n /**\n * Defines the currencyDisplay used by the NumberFormat component\n */\n currency_display?: string\n\n /**\n * Update any given provider/context properties\n */\n update?: (props: ContextProps) => void\n\n /**\n * Update any given provider/context properties, but only for the particular scope\n */\n updateCurrent?: (props: ContextProps) => void\n\n /**\n * Update the used locale from within the context\n */\n setLocale?: (locale: Locale) => void\n\n /**\n * Update the used locale from within the context, but only for the particular scope\n */\n setCurrentLocale?: (locale: Locale) => void\n\n // -- For internal use --\n locales?: Locales\n __context__?: Record<string, unknown>\n updateTranslation?: (locale: Locale, translation: Translation) => void\n getTranslation?: (props: GetTranslationProps) => Translation\n}\n\nexport type GetTranslationProps = Partial<{\n lang?: Locale\n locale?: Locale\n}>\n\nexport type Locale = string | 'nb-NO' | 'en-GB' | 'en-US'\nexport type ComponentTranslationsName = string | keyof ContextComponents\nexport type ComponentTranslation = string\nexport type ComponentTranslations = Record<string, ComponentTranslation>\nexport type Locales = Record<Locale, Translation | TranslationConsumer>\nexport type Translation = Record<\n /**\n * Support only \"HelpButton\"\n */\n ComponentTranslationsName,\n ComponentTranslations\n>\nexport type TranslationConsumer = Record<\n /**\n * Support \"HelpButton.title\"\n */\n ComponentTranslationsName,\n ComponentTranslation | ComponentTranslations\n>\n\nexport function prepareContext<Props>(\n props: ContextProps = {}\n): Props & ContextProps {\n const locales: Locales = props.locales\n ? extend(defaultLocales, props.locales)\n : defaultLocales\n\n if (props.__context__) {\n Object.assign(props, props.__context__)\n delete props.__context__\n }\n\n const key = handleLocaleFallbacks(props.locale || LOCALE, locales)\n const translation = locales[key] || defaultLocales[LOCALE] || {} // here we could use Object.freeze\n\n /**\n * The code above adds support for strings, defined like:\n * {\n * \"Modal.close_title\": \"Lukk\",\n * }\n */\n if (locales[key]) {\n locales[key] = destruct(locales[key], translation)\n }\n\n const context = {\n // We may use that in future\n updateTranslation: (locale: string, translation: Translation) => {\n context.translation = context.locales[locale] = translation\n },\n getTranslation: (props: GetTranslationProps) => {\n if (props) {\n const lang = props.lang || props.locale\n if (lang && context.locales[lang] && lang !== key) {\n return context.locales[lang]\n }\n }\n return context.translation\n },\n\n locales,\n locale: null,\n breakpoints: null,\n skeleton: null,\n\n ...props,\n\n /**\n * Make sure we set this after props, since we update this one!\n */\n translation,\n } as Props & ContextProps\n\n return context\n}\n\nfunction handleLocaleFallbacks(locale: Locale, locales: Locales) {\n if (!locales[locale]) {\n if (locale === 'en' || locale.split('-')[0] === 'en') {\n return 'en-GB'\n }\n }\n return locale\n}\n\n// If no provider is given, we use the default context from here\nconst Context = React.createContext<ContextProps>(\n prepareContext({\n locale: LOCALE,\n currency: CURRENCY,\n currency_display: CURRENCY_DISPLAY,\n })\n)\n\nexport default Context\n\nfunction destruct(\n source: TranslationConsumer,\n validKeys: Record<string, unknown>\n): TranslationConsumer {\n for (const k in source) {\n if (String(k).includes('.')) {\n const list = k.split('.')\n\n if (validKeys[list[0]]) {\n const val = source[k]\n const last = list.length - 1\n\n list.forEach((k, i) => {\n source[k] = i === last ? val : source[k]\n\n // eslint-disable-next-line @typescript-eslint/ban-ts-comment\n // @ts-ignore\n source = source[k] || {}\n })\n\n // If the root object is frozen, then use this\n // let lastObj = { ...source }\n // list.forEach((k, i) => {\n // lastObj[k] = i === last ? val : lastObj[k] // we may have to create a new object here instead?\n // lastObj = lastObj[k]\n // })\n }\n }\n }\n\n return source\n}\n"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"Context.js","names":["React","LOCALE","CURRENCY","CURRENCY_DISPLAY","defaultLocales","extend","prepareContext","props","locales","__context__","Object","assign","key","handleLocaleFallbacks","locale","translation","destruct","context","_objectSpread","updateTranslation","getTranslation","lang","breakpoints","skeleton","split","Context","createContext","currency","currency_display","source","validKeys","k","String","includes","list","val","last","length","forEach","i"],"sources":["../../../src/shared/Context.tsx"],"sourcesContent":["/**\n * Web Context Context\n *\n */\n\nimport React from 'react'\nimport { LOCALE, CURRENCY, CURRENCY_DISPLAY } from './defaults'\nimport defaultLocales from './locales'\nimport { extend } from './component-helper'\n\n// All TypeScript based Eufemia elements\nimport type { ScrollViewProps } from '../fragments/scroll-view/ScrollView'\n\n// All TypeScript based Eufemia components\nimport type { AnchorProps } from '../components/Anchor'\nimport type { ButtonProps } from '../components/button/Button'\nimport type { AvatarProps } from '../components/avatar/Avatar'\nimport type { AvatarGroupProps } from '../components/avatar/AvatarGroup'\nimport type { BadgeProps } from '../components/badge/Badge'\nimport type { BreadcrumbProps } from '../components/breadcrumb/Breadcrumb'\nimport type { BreadcrumbItemProps } from '../components/breadcrumb/BreadcrumbItem'\nimport type { InfoCardProps } from '../components/info-card/InfoCard'\nimport type { SliderProps } from '../components/slider/Slider'\nimport type { TagProps } from '../components/tag/Tag'\nimport type { TagGroupProps } from '../components/tag/TagGroup'\nimport type { TimelineProps } from '../components/timeline/Timeline'\nimport type { TimelineItemProps } from '../components/timeline/TimelineItem'\nimport type { VisuallyHiddenProps } from '../components/visually-hidden/VisuallyHidden'\nimport type { DrawerProps } from '../components/drawer/types'\nimport type { DialogProps } from '../components/dialog/types'\nimport type { TooltipProps } from '../components/tooltip/types'\nimport type { SectionProps } from '../components/section/Section'\nimport type { FormRowProps } from '../components/form-row/FormRowHelpers'\nimport type { UploadProps } from '../components/upload/types'\nimport type { SkeletonProps, SkeletonShow } from '../components/Skeleton'\nimport type { HelpButtonProps } from '../components/HelpButton'\nimport type { TableProps } from '../components/Table'\nimport type { GlobalErrorProps } from '../components/GlobalError'\nimport type { ModalProps } from '../components/modal/types'\nimport type { AccordionProps } from '../components/Accordion'\nimport type { StepIndicatorProps } from '../components/StepIndicator'\nimport type { FormLabelProps } from '../components/FormLabel'\nimport type { InputProps } from '../components/Input'\n\nimport type { NumberFormatCurrency } from '../components/NumberFormat'\n\nimport type { FormElementProps } from './helpers/filterValidProps'\nimport type { ThemeProps } from './Theme'\n\nexport type ContextComponents = {\n Button?: Partial<ButtonProps>\n Anchor?: Partial<AnchorProps>\n Avatar?: Partial<AvatarProps>\n AvatarGroup?: Partial<AvatarGroupProps>\n Badge?: Partial<BadgeProps>\n Breadcrumb?: Partial<BreadcrumbProps>\n BreadcrumbItem?: Partial<BreadcrumbItemProps>\n InfoCard?: Partial<InfoCardProps>\n Slider?: Partial<SliderProps>\n Tag?: Partial<TagProps>\n TagGroup?: Partial<TagGroupProps>\n Timeline?: Partial<TimelineProps>\n TimelineItem?: Partial<TimelineItemProps>\n VisuallyHidden?: Partial<VisuallyHiddenProps>\n Drawer?: Partial<DrawerProps>\n Dialog?: Partial<DialogProps>\n Tooltip?: Partial<TooltipProps>\n Section?: Partial<SectionProps>\n ScrollView?: Partial<ScrollViewProps>\n Upload?: Partial<UploadProps>\n Skeleton?: Partial<SkeletonProps>\n HelpButton?: Partial<HelpButtonProps>\n Table?: Partial<TableProps>\n GlobalError?: Partial<GlobalErrorProps>\n Modal?: Partial<ModalProps>\n Accordion?: Partial<AccordionProps>\n StepIndicator?: Partial<StepIndicatorProps>\n FormLabel?: Partial<FormLabelProps>\n Input?: Partial<InputProps>\n\n // -- TODO: Not converted yet --\n NumberFormat?: Record<string, unknown>\n Pagination?: Record<string, unknown>\n\n /**\n * @deprecated – can be removed in v11\n */\n FormRow?: FormRowProps\n\n // Common props\n formElement?: FormElementProps\n}\n\nexport type ContextProps = ContextComponents & {\n // -- All TypeScript based Eufemia components --\n\n // -- Global properties --\n\n /**\n * Contains theme related properties, such as a theme name\n */\n theme?: ThemeProps\n\n /**\n * Will enable all skeletons inside this provider/context scope\n */\n skeleton?: SkeletonShow\n\n /**\n * Define what breakpoints should be used by the MediaQuery component and hook\n */\n breakpoints?: Record<string, string>\n\n /**\n * Defines the locale (internal translation) used by some components\n */\n locale?: Locale\n\n /**\n * Provide your own translations. Use the same format as defined in the translation files\n */\n translation?: Translation\n\n /**\n * Defines the currency used by the NumberFormat component\n */\n currency?: NumberFormatCurrency\n\n /**\n * Defines the currencyDisplay used by the NumberFormat component\n */\n currency_display?: string\n\n /**\n * Update any given provider/context properties\n */\n update?: (props: ContextProps) => void\n\n /**\n * Update any given provider/context properties, but only for the particular scope\n */\n updateCurrent?: (props: ContextProps) => void\n\n /**\n * Update the used locale from within the context\n */\n setLocale?: (locale: Locale) => void\n\n /**\n * Update the used locale from within the context, but only for the particular scope\n */\n setCurrentLocale?: (locale: Locale) => void\n\n /**\n * Set a custom translation in the Provider\n */\n locales?: Locales\n\n // -- For internal use --\n __context__?: Record<string, unknown>\n updateTranslation?: (locale: Locale, translation: Translation) => void\n getTranslation?: (props: GetTranslationProps) => Translation\n}\n\nexport type GetTranslationProps = Partial<{\n lang?: Locale | HTMLElement['lang']\n locale?: Locale\n}>\n\nexport type AnyLocale = string\nexport type Locale = AnyLocale | Partial<TranslationLocale> | 'en-US'\nexport type ComponentTranslationsName = keyof ContextComponents | string\nexport type ComponentTranslation = string\nexport type Locales = Partial<\n Record<Locale, Translation | TranslationFlat>\n>\nexport type TranslationDefaultLocales = typeof defaultLocales\nexport type TranslationLocale = keyof TranslationDefaultLocales\nexport type TranslationKeys =\n keyof TranslationDefaultLocales[TranslationLocale]\nexport type TranslationValues =\n TranslationDefaultLocales[TranslationLocale]\n\n/**\n * E.g. \"HelpButton: { title: '...' }\"\n */\nexport type Translation = DeepPartial<\n TranslationDefaultLocales[TranslationLocale]\n>\n\n/**\n * E.g. \"HelpButton.title\"\n */\nexport type TranslationFlat = Record<\n ComponentTranslationsName,\n TranslationKeys | ComponentTranslation\n>\n\ntype DeepPartial<T> = T extends object\n ? {\n [K in keyof T]?: DeepPartial<T[K]>\n }\n : T\n\nexport function prepareContext<Props>(\n props: ContextProps = {}\n): Props & ContextProps {\n const locales: Locales = props.locales\n ? extend(defaultLocales, props.locales)\n : defaultLocales\n\n if (props.__context__) {\n Object.assign(props, props.__context__)\n delete props.__context__\n }\n\n const key = handleLocaleFallbacks(props.locale || LOCALE, locales)\n const translation = locales[key] || defaultLocales[LOCALE] || {} // here we could use Object.freeze\n\n /**\n * The code above adds support for strings, defined like:\n * {\n * \"Modal.close_title\": \"Lukk\",\n * }\n */\n if (locales[key]) {\n locales[key] = destruct(locales[key] as TranslationFlat, translation)\n }\n\n const context = {\n // We may use that in future\n updateTranslation: (locale, translation) => {\n context.translation = context.locales[locale] = translation\n },\n getTranslation: (props) => {\n if (props) {\n const lang = props.lang || props.locale\n if (lang && context.locales[lang] && lang !== key) {\n return context.locales[lang]\n }\n }\n return context.translation\n },\n\n locales,\n locale: null,\n breakpoints: null,\n skeleton: null,\n\n ...props,\n\n /**\n * Make sure we set this after props, since we update this one!\n */\n translation,\n } as Props & ContextProps\n\n return context\n}\n\nfunction handleLocaleFallbacks(locale: Locale | string, locales: Locales) {\n if (!locales[locale]) {\n if (locale === 'en' || locale.split('-')[0] === 'en') {\n return 'en-GB'\n }\n }\n return locale\n}\n\n// If no provider is given, we use the default context from here\nconst Context = React.createContext<ContextProps>(\n prepareContext({\n locale: LOCALE,\n currency: CURRENCY,\n currency_display: CURRENCY_DISPLAY,\n })\n)\n\nexport default Context\n\nfunction destruct(\n source: TranslationFlat,\n validKeys: Record<string, unknown>\n): TranslationFlat {\n for (const k in source) {\n if (String(k).includes('.')) {\n const list = k.split('.')\n\n if (validKeys[list[0]]) {\n const val = source[k]\n const last = list.length - 1\n\n list.forEach((k, i) => {\n source[k] = i === last ? val : source[k]\n\n // eslint-disable-next-line @typescript-eslint/ban-ts-comment\n // @ts-ignore\n source = source[k] || {}\n })\n\n // If the root object is frozen, then use this\n // let lastObj = { ...source }\n // list.forEach((k, i) => {\n // lastObj[k] = i === last ? val : lastObj[k] // we may have to create a new object here instead?\n // lastObj = lastObj[k]\n // })\n }\n }\n }\n\n return source\n}\n"],"mappings":"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"}
|
package/es/shared/Eufemia.d.ts
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
export
|
|
2
|
-
export
|
|
1
|
+
export declare const version = "10.24.0";
|
|
2
|
+
export declare function init(): void;
|
package/es/shared/Eufemia.js
CHANGED
package/es/shared/Eufemia.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Eufemia.js","names":["version","init","window","Eufemia"],"sources":["../../../src/shared/Eufemia.
|
|
1
|
+
{"version":3,"file":"Eufemia.js","names":["version","init","window","Eufemia"],"sources":["../../../src/shared/Eufemia.ts"],"sourcesContent":["export const version = '10.24.0'\n\nexport function init() {\n if (typeof window !== 'undefined') {\n class Eufemia {\n get version() {\n return '10.24.0'\n }\n }\n\n window.Eufemia = new Eufemia()\n }\n}\n"],"mappings":"AAAA,OAAO,MAAMA,OAAO,GAAG,SAAS;AAEhC,OAAO,SAASC,IAAIA,CAAA,EAAG;EACrB,IAAI,OAAOC,MAAM,KAAK,WAAW,EAAE;IACjC,MAAMC,OAAO,CAAC;MACZ,IAAIH,OAAOA,CAAA,EAAG;QACZ,OAAO,SAAS;MAClB;IACF;IAEAE,MAAM,CAACC,OAAO,GAAG,IAAIA,OAAO,CAAC,CAAC;EAChC;AACF"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Provider.js","names":["React","Context","prepareContext","prepareFormElementContext","Provider","localProps","children","props","_objectWithoutProperties","_excluded","context","useContext","localContext","setLocalContext","useState","value","mergeContext","_objectSpread","updateTranslation","locale","translation","update","updateAll","setLocale","setAllLocale","updateCurrent","setCurrentLocale","createElement","__context__","rest","_excluded2","merge","mergedContext","formElement","FormRow"],"sources":["../../../src/shared/Provider.tsx"],"sourcesContent":["/**\n * Lib Provider\n *\n */\n\nimport React from 'react'\nimport Context, { prepareContext } from './Context'\nimport type { ContextProps } from './Context'\nimport { prepareFormElementContext } from './helpers/filterValidProps'\n\nexport type ProviderProps = {\n /**\n * Send in an object that gets spread as properties to the Provider\n */\n value?: ContextProps\n\n /**\n * The content\n */\n children: React.ReactNode\n} & ContextProps\n\nexport default function Provider<Props>(\n localProps: ProviderProps & Props\n) {\n const { children, ...props } = localProps\n\n const context = React.useContext(Context)\n const [localContext, setLocalContext] = React.useState(null)\n\n let value = mergeContext(context, { ...localContext, ...props })\n\n if (context) {\n value = prepareContext(value)\n context.updateTranslation(value.locale, value.translation)\n }\n\n value.update = updateAll\n value.setLocale = setAllLocale\n value.updateCurrent = updateCurrent\n value.setCurrentLocale = setCurrentLocale\n\n return <Context.Provider value={value}>{children}</Context.Provider>\n\n function updateCurrent(props: ContextProps) {\n setLocalContext({ __context__: props })\n }\n\n function setCurrentLocale(locale:
|
|
1
|
+
{"version":3,"file":"Provider.js","names":["React","Context","prepareContext","prepareFormElementContext","Provider","localProps","children","props","_objectWithoutProperties","_excluded","context","useContext","localContext","setLocalContext","useState","value","mergeContext","_objectSpread","updateTranslation","locale","translation","update","updateAll","setLocale","setAllLocale","updateCurrent","setCurrentLocale","createElement","__context__","rest","_excluded2","merge","mergedContext","formElement","FormRow"],"sources":["../../../src/shared/Provider.tsx"],"sourcesContent":["/**\n * Lib Provider\n *\n */\n\nimport React from 'react'\nimport Context, { prepareContext } from './Context'\nimport type { ContextProps, Locale } from './Context'\nimport { prepareFormElementContext } from './helpers/filterValidProps'\n\nexport type ProviderProps = {\n /**\n * Send in an object that gets spread as properties to the Provider\n */\n value?: ContextProps\n\n /**\n * The content\n */\n children: React.ReactNode\n} & ContextProps\n\nexport default function Provider<Props>(\n localProps: ProviderProps & Props\n) {\n const { children, ...props } = localProps\n\n const context = React.useContext(Context)\n const [localContext, setLocalContext] = React.useState(null)\n\n let value = mergeContext(context, { ...localContext, ...props })\n\n if (context) {\n value = prepareContext(value)\n context.updateTranslation(value.locale, value.translation)\n }\n\n value.update = updateAll\n value.setLocale = setAllLocale\n value.updateCurrent = updateCurrent\n value.setCurrentLocale = setCurrentLocale\n\n return <Context.Provider value={value}>{children}</Context.Provider>\n\n function updateCurrent(props: ContextProps) {\n setLocalContext({ __context__: props })\n }\n\n function setCurrentLocale(locale: Locale) {\n setLocalContext({ __context__: { locale } })\n }\n\n function setAllLocale(locale: Locale) {\n updateAll({ locale })\n }\n\n function updateAll(props: ContextProps) {\n if (typeof context.update === 'function') {\n context.update(props)\n }\n\n setLocalContext({ __context__: props })\n }\n}\n\ntype MergeContext = {\n FormRow?: Pick<ContextProps, 'FormRow'>\n}\ntype MergeContextProps = {\n value: ProviderProps\n} & MergeContext\n\nfunction mergeContext<ContextT, PropsT>(\n context: ContextT & ContextProps,\n props: PropsT & MergeContextProps\n) {\n // When value is given as so: <Provider value={{}} />\n const { value, ...rest } = props\n\n // Make sure we create a copy, because we add some custom methods to it\n const merge = { ...value, ...rest }\n\n // Merge our new values with an existing context\n const mergedContext = { ...context, ...merge }\n\n // Because we don't want to deep merge, we merge formElement additionally\n if (context?.formElement && merge.formElement) {\n mergedContext.formElement = {\n ...context.formElement,\n ...merge.formElement,\n }\n mergedContext.formElement = prepareFormElementContext(\n mergedContext.formElement\n )\n }\n\n // Deprecated – can be removed in v11\n if (context?.FormRow && merge.FormRow) {\n mergedContext.FormRow = {\n ...context.FormRow,\n ...merge.FormRow,\n }\n mergedContext.FormRow = prepareFormElementContext(\n mergedContext.FormRow\n )\n }\n\n return mergedContext\n}\n"],"mappings":"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"}
|
package/es/shared/defaults.d.ts
CHANGED
|
@@ -2,6 +2,6 @@
|
|
|
2
2
|
* DNB Eufemia Defaults
|
|
3
3
|
*
|
|
4
4
|
*/
|
|
5
|
-
export const LOCALE
|
|
6
|
-
export const CURRENCY
|
|
7
|
-
export const CURRENCY_DISPLAY
|
|
5
|
+
export declare const LOCALE = "nb-NO";
|
|
6
|
+
export declare const CURRENCY = "NOK";
|
|
7
|
+
export declare const CURRENCY_DISPLAY = "code";
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"defaults.js","names":["LOCALE","CURRENCY","CURRENCY_DISPLAY"],"sources":["../../../src/shared/defaults.
|
|
1
|
+
{"version":3,"file":"defaults.js","names":["LOCALE","CURRENCY","CURRENCY_DISPLAY"],"sources":["../../../src/shared/defaults.ts"],"sourcesContent":["/**\n * DNB Eufemia Defaults\n *\n */\n\nexport const LOCALE = 'nb-NO'\nexport const CURRENCY = 'NOK'\nexport const CURRENCY_DISPLAY = 'code' // code, name, symbol, narrowSymbol\n"],"mappings":"AAKA,OAAO,MAAMA,MAAM,GAAG,OAAO;AAC7B,OAAO,MAAMC,QAAQ,GAAG,KAAK;AAC7B,OAAO,MAAMC,gBAAgB,GAAG,MAAM"}
|
|
@@ -1,37 +1,28 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
* @returns {Function|Promise} - The debounced function or a promise that resolves with the result of the debounced function.
|
|
11
|
-
* @memberof helpers
|
|
12
|
-
*/
|
|
13
|
-
export declare function debounce(debouncedFunction: any, wait?: number, { immediate, instance, async }?: {
|
|
1
|
+
type ReturnHelpers = {
|
|
2
|
+
cancel: () => void;
|
|
3
|
+
addCancelEvent: (fn: () => void) => () => boolean;
|
|
4
|
+
};
|
|
5
|
+
type DebouncedFunction<T extends any[], R> = (...args: T) => R;
|
|
6
|
+
type DebouncedOptions = {
|
|
7
|
+
/**
|
|
8
|
+
* Whether to execute the debounced function immediately.
|
|
9
|
+
*/
|
|
14
10
|
immediate?: boolean;
|
|
11
|
+
/**
|
|
12
|
+
* The instance to bind the debounced function to.
|
|
13
|
+
*/
|
|
15
14
|
instance?: any;
|
|
15
|
+
/**
|
|
16
|
+
* Whether to return a promise that resolves with the result of the debounced function.
|
|
17
|
+
*/
|
|
16
18
|
async?: boolean;
|
|
17
|
-
}): {
|
|
18
|
-
(...args: any[]): any;
|
|
19
|
-
cancel: () => void;
|
|
20
|
-
addCancelEvent: (fn: any) => () => boolean;
|
|
21
19
|
};
|
|
22
20
|
/**
|
|
23
21
|
* Debounces a function in async to be executed after a specified wait time.
|
|
24
|
-
*
|
|
25
|
-
* @param {Function} debouncedFunction - The function to be debounced.
|
|
26
|
-
* @param {number} [wait=250] - The wait time in milliseconds before executing the debounced function.
|
|
27
|
-
* @param {Object} [options] - Additional options for the debounced function.
|
|
28
|
-
* @param {boolean} [options.immediate=false] - Whether to execute the debounced function immediately.
|
|
29
|
-
* @param {Object} [options.instance=null] - The instance to bind the debounced function to.
|
|
30
|
-
* @returns {Promise} - The debounced promise that resolves with the result of the debounced function.
|
|
31
|
-
* @memberof helpers
|
|
32
22
|
*/
|
|
33
|
-
export declare function debounceAsync(debouncedFunction:
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
};
|
|
23
|
+
export declare function debounceAsync<T extends any[], R>(debouncedFunction: DebouncedFunction<T, R>, wait?: number, opts?: Omit<DebouncedOptions, 'async'>): DebouncedFunction<T, R> & ReturnHelpers;
|
|
24
|
+
/**
|
|
25
|
+
* Debounces a function to be executed after a specified wait time.
|
|
26
|
+
*/
|
|
27
|
+
export declare function debounce<T extends any[], R>(debouncedFunction: DebouncedFunction<T, R>, wait?: number, { immediate, instance, async, }?: DebouncedOptions): DebouncedFunction<T, R> & ReturnHelpers;
|
|
28
|
+
export {};
|
|
@@ -1,7 +1,13 @@
|
|
|
1
1
|
import _defineProperty from "@babel/runtime/helpers/esm/defineProperty";
|
|
2
2
|
function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }
|
|
3
3
|
function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys(Object(source), !0).forEach(function (key) { _defineProperty(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; }
|
|
4
|
-
|
|
4
|
+
import { isAsync } from './isAsync';
|
|
5
|
+
export function debounceAsync(debouncedFunction, wait = 500, opts = null) {
|
|
6
|
+
return debounce(debouncedFunction, wait, _objectSpread(_objectSpread({}, opts), {}, {
|
|
7
|
+
async: true
|
|
8
|
+
}));
|
|
9
|
+
}
|
|
10
|
+
export function debounce(debouncedFunction, wait = 500, {
|
|
5
11
|
immediate = false,
|
|
6
12
|
instance = null,
|
|
7
13
|
async = false
|
|
@@ -64,13 +70,19 @@ export function debounce(debouncedFunction, wait = 250, {
|
|
|
64
70
|
}
|
|
65
71
|
return recall;
|
|
66
72
|
}
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
}
|
|
73
|
+
function syncFunction(...args) {
|
|
74
|
+
return executedFunction(...args);
|
|
75
|
+
}
|
|
76
|
+
syncFunction.cancel = cancel;
|
|
77
|
+
syncFunction.addCancelEvent = addCancelEvent;
|
|
78
|
+
async function asyncFunction(...args) {
|
|
79
|
+
return executedFunction(...args);
|
|
80
|
+
}
|
|
81
|
+
asyncFunction.cancel = cancel;
|
|
82
|
+
asyncFunction.addCancelEvent = addCancelEvent;
|
|
83
|
+
if (isAsync(debouncedFunction)) {
|
|
84
|
+
return asyncFunction;
|
|
85
|
+
}
|
|
86
|
+
return syncFunction;
|
|
75
87
|
}
|
|
76
88
|
//# sourceMappingURL=debounce.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"debounce.js","names":["
|
|
1
|
+
{"version":3,"file":"debounce.js","names":["isAsync","debounceAsync","debouncedFunction","wait","opts","debounce","_objectSpread","async","immediate","instance","timeout","recall","resolvePromise","rejectPromise","canceled","customCancels","cancel","_resolvePromise","clearTimeout","forEach","fn","addCancelEvent","includes","push","executedFunction","args","inst","later","callNow","_resolvePromise2","apply","error","_rejectPromise","setTimeout","Promise","resolve","reject","syncFunction","asyncFunction"],"sources":["../../../../src/shared/helpers/debounce.ts"],"sourcesContent":["import { isAsync } from './isAsync'\n\ntype ReturnHelpers = {\n cancel: () => void\n addCancelEvent: (fn: () => void) => () => boolean\n}\ntype DebouncedFunction<T extends any[], R> = (...args: T) => R\ntype DebouncedOptions = {\n /**\n * Whether to execute the debounced function immediately.\n */\n immediate?: boolean\n\n /**\n * The instance to bind the debounced function to.\n */\n instance?: any\n\n /**\n * Whether to return a promise that resolves with the result of the debounced function.\n */\n async?: boolean\n}\n\n/**\n * Debounces a function in async to be executed after a specified wait time.\n */\nexport function debounceAsync<T extends any[], R>(\n debouncedFunction: DebouncedFunction<T, R>,\n wait = 500,\n opts: Omit<DebouncedOptions, 'async'> = null\n): DebouncedFunction<T, R> & ReturnHelpers {\n return debounce<T, R>(debouncedFunction, wait, { ...opts, async: true })\n}\n\n/**\n * Debounces a function to be executed after a specified wait time.\n */\nexport function debounce<T extends any[], R>(\n debouncedFunction: DebouncedFunction<T, R>,\n wait = 500,\n {\n immediate = false,\n instance = null,\n async = false,\n }: DebouncedOptions = {}\n): DebouncedFunction<T, R> & ReturnHelpers {\n let timeout\n let recall\n let resolvePromise\n let rejectPromise\n let canceled = false\n const customCancels = []\n\n const cancel = () => {\n canceled = true\n\n clearTimeout(timeout)\n resolvePromise?.()\n\n customCancels.forEach((fn) => {\n fn()\n })\n }\n\n const addCancelEvent = (fn) => {\n if (!customCancels.includes(fn)) {\n customCancels.push(fn)\n }\n\n return () => {\n return canceled\n }\n }\n\n function executedFunction(...args: T) {\n if (typeof recall === 'function') {\n recall()\n }\n\n canceled = false\n\n const inst = instance || this || {}\n inst.cancel = cancel\n inst.addCancelEvent = addCancelEvent\n\n const later = (callNow) => {\n timeout = null\n if (callNow || !immediate) {\n try {\n recall = debouncedFunction.apply(inst, args)\n resolvePromise?.(recall)\n } catch (error) {\n rejectPromise?.(error)\n }\n }\n }\n\n const callNow = immediate && !timeout\n\n clearTimeout(timeout)\n timeout = setTimeout(later, wait)\n\n if (callNow) {\n later(true)\n }\n\n if (async) {\n return new Promise((resolve, reject) => {\n resolvePromise = resolve\n rejectPromise = reject\n })\n }\n\n return recall\n }\n\n // Sync\n function syncFunction(...args: T) {\n return executedFunction(...args)\n }\n syncFunction.cancel = cancel\n syncFunction.addCancelEvent = addCancelEvent\n\n // Async return\n async function asyncFunction(...args: T) {\n return executedFunction(...args)\n }\n asyncFunction.cancel = cancel\n asyncFunction.addCancelEvent = addCancelEvent\n\n if (isAsync(debouncedFunction)) {\n return asyncFunction as DebouncedFunction<T, R> & ReturnHelpers\n }\n\n return syncFunction\n}\n"],"mappings":"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"}
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
export function isAsync(fn) {
|
|
2
|
+
var _fn, _fn$n, _fn2, _fn2$constructor;
|
|
3
|
+
const n = 'getMockImplementation';
|
|
4
|
+
if ((_fn = fn) !== null && _fn !== void 0 && (_fn$n = _fn[n]) !== null && _fn$n !== void 0 && _fn$n.call(_fn)) {
|
|
5
|
+
fn = fn[n]();
|
|
6
|
+
}
|
|
7
|
+
const firstCheck = fn instanceof (async () => null).constructor;
|
|
8
|
+
const secondCheck = ((_fn2 = fn) === null || _fn2 === void 0 ? void 0 : (_fn2$constructor = _fn2.constructor) === null || _fn2$constructor === void 0 ? void 0 : _fn2$constructor.name) === 'AsyncFunction';
|
|
9
|
+
if (firstCheck !== secondCheck) {
|
|
10
|
+
return true;
|
|
11
|
+
}
|
|
12
|
+
return firstCheck;
|
|
13
|
+
}
|
|
14
|
+
//# sourceMappingURL=isAsync.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"isAsync.js","names":["isAsync","fn","_fn","_fn$n","_fn2","_fn2$constructor","n","call","firstCheck","constructor","secondCheck","name"],"sources":["../../../../src/shared/helpers/isAsync.ts"],"sourcesContent":["/**\n * Checks if a function is asynchronous.\n *\n * @param fn - The function to check.\n * @returns `true` if the function is asynchronous, `false` otherwise.\n */\nexport function isAsync(fn: unknown): boolean {\n // Support for jest.fn\n const n = 'getMockImplementation'\n if (fn?.[n]?.()) {\n fn = fn[n]()\n }\n\n const firstCheck = fn instanceof (async () => null).constructor\n const secondCheck = fn?.constructor?.name === 'AsyncFunction'\n\n if (firstCheck !== secondCheck) {\n // Storybook has a problem with async functions.\n // E.g. \"fn?.constructor?.name === 'AsyncFunction'\" logic returns always \"Function\" instead of \"AsyncFunction\"\n // Even this \"Object.prototype.toString.call(fn) === '[object AsyncFunction]'\" logic returns always \"false\" in Storybook.\n // The issue persists with \"instanceof\" logic, where it returns \"true\" for non-async functions.\n // As of now, we rather want to return true in that situation.\n return true\n }\n\n return firstCheck\n}\n"],"mappings":"AAMA,OAAO,SAASA,OAAOA,CAACC,EAAW,EAAW;EAAA,IAAAC,GAAA,EAAAC,KAAA,EAAAC,IAAA,EAAAC,gBAAA;EAE5C,MAAMC,CAAC,GAAG,uBAAuB;EACjC,KAAAJ,GAAA,GAAID,EAAE,cAAAC,GAAA,gBAAAC,KAAA,GAAFD,GAAA,CAAKI,CAAC,CAAC,cAAAH,KAAA,eAAPA,KAAA,CAAAI,IAAA,CAAAL,GAAU,CAAC,EAAE;IACfD,EAAE,GAAGA,EAAE,CAACK,CAAC,CAAC,CAAC,CAAC;EACd;EAEA,MAAME,UAAU,GAAGP,EAAE,YAAY,CAAC,YAAY,IAAI,EAAEQ,WAAW;EAC/D,MAAMC,WAAW,GAAG,EAAAN,IAAA,GAAAH,EAAE,cAAAG,IAAA,wBAAAC,gBAAA,GAAFD,IAAA,CAAIK,WAAW,cAAAJ,gBAAA,uBAAfA,gBAAA,CAAiBM,IAAI,MAAK,eAAe;EAE7D,IAAIH,UAAU,KAAKE,WAAW,EAAE;IAM9B,OAAO,IAAI;EACb;EAEA,OAAOF,UAAU;AACnB"}
|