@dnb/eufemia 10.20.0 → 10.22.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 +54 -0
- package/cjs/components/aria-live/useAriaLive.d.ts +1 -1
- package/cjs/components/breadcrumb/Breadcrumb.d.ts +2 -2
- package/cjs/components/breadcrumb/Breadcrumb.js +3 -3
- package/cjs/components/breadcrumb/Breadcrumb.js.map +1 -1
- package/cjs/components/breadcrumb/style/dnb-breadcrumb.css +7 -2
- package/cjs/components/breadcrumb/style/dnb-breadcrumb.min.css +1 -1
- package/cjs/components/breadcrumb/style/dnb-breadcrumb.scss +10 -2
- package/cjs/components/button/Button.js +2 -2
- package/cjs/components/button/Button.js.map +1 -1
- package/cjs/components/button/style/themes/dnb-button-theme-sbanken.css +23 -11
- package/cjs/components/button/style/themes/dnb-button-theme-sbanken.min.css +3 -3
- package/cjs/components/button/style/themes/dnb-button-theme-sbanken.scss +30 -14
- package/cjs/components/card/style/dnb-card.css +11 -2
- package/cjs/components/card/style/dnb-card.min.css +1 -1
- package/cjs/components/card/style/dnb-card.scss +12 -2
- package/cjs/components/date-picker/DatePicker.d.ts +10 -1
- package/cjs/components/date-picker/DatePicker.js +5 -2
- package/cjs/components/date-picker/DatePicker.js.map +1 -1
- package/cjs/components/form-label/style/dnb-form-label.css +4 -8
- package/cjs/components/form-label/style/dnb-form-label.min.css +1 -1
- package/cjs/components/form-label/style/dnb-form-label.scss +5 -8
- package/cjs/components/form-status/style/dnb-form-status.css +11 -0
- package/cjs/components/form-status/style/dnb-form-status.min.css +1 -1
- package/cjs/components/form-status/style/dnb-form-status.scss +11 -0
- package/cjs/components/global-status/GlobalStatus.d.ts +1 -1
- package/cjs/components/global-status/GlobalStatusProvider.d.ts +1 -1
- package/cjs/components/height-animation/HeightAnimationInstance.d.ts +5 -6
- package/cjs/components/height-animation/HeightAnimationInstance.js +12 -12
- package/cjs/components/height-animation/HeightAnimationInstance.js.map +1 -1
- package/cjs/components/height-animation/useHeightAnimation.js +11 -10
- package/cjs/components/height-animation/useHeightAnimation.js.map +1 -1
- package/cjs/components/info-card/InfoCard.d.ts +6 -0
- package/cjs/components/info-card/InfoCard.js +4 -2
- package/cjs/components/info-card/InfoCard.js.map +1 -1
- package/cjs/components/info-card/style/dnb-info-card.css +3 -1
- package/cjs/components/info-card/style/dnb-info-card.min.css +1 -1
- package/cjs/components/info-card/style/dnb-info-card.scss +4 -2
- package/cjs/components/input/Input.d.ts +9 -9
- package/cjs/components/input/InputDocs.d.ts +2 -0
- package/cjs/components/input/InputDocs.js +165 -0
- package/cjs/components/input/InputDocs.js.map +1 -0
- package/cjs/components/input/InputPassword.d.ts +6 -17
- package/cjs/components/input/InputPassword.js +4 -85
- package/cjs/components/input/InputPassword.js.map +1 -1
- package/cjs/components/input-masked/InputMasked.d.ts +6 -93
- package/cjs/components/input-masked/InputMasked.js +3 -1
- package/cjs/components/input-masked/InputMasked.js.map +1 -1
- package/cjs/components/input-masked/InputMaskedDocs.d.ts +2 -0
- package/cjs/components/input-masked/InputMaskedDocs.js +85 -0
- package/cjs/components/input-masked/InputMaskedDocs.js.map +1 -0
- package/cjs/components/input-masked/InputMaskedHooks.js +7 -4
- package/cjs/components/input-masked/InputMaskedHooks.js.map +1 -1
- package/cjs/components/input-masked/MultiInputMask.js +2 -6
- package/cjs/components/input-masked/MultiInputMask.js.map +1 -1
- package/cjs/components/input-masked/style/dnb-input-masked.css +3 -0
- package/cjs/components/input-masked/style/dnb-input-masked.min.css +1 -1
- package/cjs/components/input-masked/style/dnb-input-masked.scss +5 -0
- package/cjs/components/number-format/NumberFormat.d.ts +1 -1
- package/cjs/components/number-format/NumberUtils.js +22 -14
- package/cjs/components/number-format/NumberUtils.js.map +1 -1
- package/cjs/components/pagination/InfinityScroller.d.ts +1 -1
- package/cjs/components/progress-indicator/ProgressIndicator.js +5 -7
- package/cjs/components/progress-indicator/ProgressIndicator.js.map +1 -1
- package/cjs/components/progress-indicator/ProgressIndicatorCircular.js +1 -1
- package/cjs/components/progress-indicator/ProgressIndicatorCircular.js.map +1 -1
- package/cjs/components/progress-indicator/ProgressIndicatorLinear.js +4 -4
- package/cjs/components/progress-indicator/ProgressIndicatorLinear.js.map +1 -1
- package/cjs/components/progress-indicator/style/dnb-progress-indicator.css +5 -2
- package/cjs/components/progress-indicator/style/dnb-progress-indicator.min.css +1 -1
- package/cjs/components/progress-indicator/style/dnb-progress-indicator.scss +5 -2
- package/cjs/components/slider/Slider.d.ts +1 -0
- package/cjs/components/slider/Slider.js +10 -1
- package/cjs/components/slider/Slider.js.map +1 -1
- package/cjs/components/slider/SliderInstance.js +20 -6
- package/cjs/components/slider/SliderInstance.js.map +1 -1
- package/cjs/components/slider/SliderMarker.d.ts +7 -0
- package/cjs/components/slider/SliderMarker.js +62 -0
- package/cjs/components/slider/SliderMarker.js.map +1 -0
- package/cjs/components/slider/SliderProvider.js +2 -1
- package/cjs/components/slider/SliderProvider.js.map +1 -1
- package/cjs/components/slider/style/dnb-slider.css +43 -2
- package/cjs/components/slider/style/dnb-slider.min.css +1 -1
- package/cjs/components/slider/style/dnb-slider.scss +44 -1
- package/cjs/components/slider/style/themes/dnb-slider-theme-sbanken.css +3 -0
- package/cjs/components/slider/style/themes/dnb-slider-theme-sbanken.min.css +1 -1
- package/cjs/components/slider/style/themes/dnb-slider-theme-sbanken.scss +4 -0
- package/cjs/components/slider/style/themes/dnb-slider-theme-ui.css +3 -0
- package/cjs/components/slider/style/themes/dnb-slider-theme-ui.min.css +1 -1
- package/cjs/components/slider/style/themes/dnb-slider-theme-ui.scss +5 -0
- package/cjs/components/slider/types.d.ts +6 -0
- package/cjs/components/slider/types.js.map +1 -1
- package/cjs/components/space/SpacingHelper.d.ts +5 -5
- package/cjs/components/table/Table.js +2 -2
- package/cjs/components/table/Table.js.map +1 -1
- package/cjs/components/table/TableAccordion.js +42 -58
- package/cjs/components/table/TableAccordion.js.map +1 -1
- package/cjs/components/table/TableAccordionTd.d.ts +9 -0
- package/cjs/components/table/{TableAccordionContent.js → TableAccordionTd.js} +18 -56
- package/cjs/components/table/TableAccordionTd.js.map +1 -0
- package/cjs/components/table/TableAccordionTr.d.ts +13 -0
- package/cjs/components/table/TableAccordionTr.js +61 -0
- package/cjs/components/table/TableAccordionTr.js.map +1 -0
- package/cjs/components/table/TableContext.d.ts +2 -2
- package/cjs/components/table/TableContext.js +4 -3
- package/cjs/components/table/TableContext.js.map +1 -1
- package/cjs/components/table/TableTd.d.ts +2 -2
- package/cjs/components/table/TableTd.js +2 -2
- package/cjs/components/table/TableTd.js.map +1 -1
- package/cjs/components/table/TableTr.d.ts +6 -1
- package/cjs/components/table/TableTr.js +10 -5
- package/cjs/components/table/TableTr.js.map +1 -1
- package/cjs/components/table/style/dnb-table.css +226 -139
- package/cjs/components/table/style/dnb-table.min.css +1 -1
- package/cjs/components/table/style/dnb-table.scss +60 -4
- package/cjs/components/table/style/table-accordion.scss +83 -98
- package/cjs/components/table/style/table-container.scss +9 -9
- package/cjs/components/table/style/table-mixins.scss +19 -2
- package/cjs/components/table/style/table-td.scss +82 -60
- package/cjs/components/table/style/table-th.scss +5 -30
- package/cjs/components/table/style/table-tr.scss +0 -20
- package/cjs/components/table/style/themes/dnb-table-theme-sbanken.css +34 -7
- package/cjs/components/table/style/themes/dnb-table-theme-sbanken.min.css +3 -1
- package/cjs/components/table/style/themes/dnb-table-theme-sbanken.scss +29 -10
- package/cjs/components/table/style/themes/dnb-table-theme-ui.css +14 -9
- 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 +12 -22
- package/cjs/components/table/useTableAnimationHandler.d.ts +20 -0
- package/cjs/components/table/useTableAnimationHandler.js +73 -0
- package/cjs/components/table/useTableAnimationHandler.js.map +1 -0
- package/cjs/components/textarea/Textarea.d.ts +4 -10
- package/cjs/components/textarea/TextareaDocs.d.ts +2 -0
- package/cjs/components/textarea/TextareaDocs.js +105 -0
- package/cjs/components/textarea/TextareaDocs.js.map +1 -0
- package/cjs/components/textarea/style/dnb-textarea.css +1 -0
- package/cjs/components/textarea/style/dnb-textarea.min.css +1 -1
- package/cjs/components/textarea/style/dnb-textarea.scss +3 -0
- package/cjs/components/upload/UploadInfo.js +1 -1
- package/cjs/components/upload/UploadInfo.js.map +1 -1
- package/cjs/core/jest/jestSetupScreenshots.css +7 -0
- package/cjs/elements/blockquote/style/themes/dnb-blockquote-theme-sbanken.scss +1 -0
- package/cjs/elements/lib.d.ts +1 -1
- package/cjs/elements/lists/Dl.d.ts +5 -1
- package/cjs/elements/lists/Dl.js +5 -4
- package/cjs/elements/lists/Dl.js.map +1 -1
- package/cjs/elements/lists/style/lists-mixins.scss +24 -1
- package/cjs/extensions/forms/DataContext/Context.d.ts +1 -2
- package/cjs/extensions/forms/DataContext/Context.js.map +1 -1
- package/cjs/extensions/forms/DataContext/Provider/Provider.d.ts +1 -2
- package/cjs/extensions/forms/DataContext/Provider/Provider.js +54 -40
- package/cjs/extensions/forms/DataContext/Provider/Provider.js.map +1 -1
- package/cjs/extensions/forms/Field/Currency/Currency.js +1 -1
- package/cjs/extensions/forms/Field/Currency/Currency.js.map +1 -1
- package/cjs/extensions/forms/Field/Expiry/Expiry.js +1 -0
- package/cjs/extensions/forms/Field/Expiry/Expiry.js.map +1 -1
- package/cjs/extensions/forms/Field/FieldDocs.d.ts +3 -0
- package/cjs/extensions/forms/Field/FieldDocs.js +18 -0
- package/cjs/extensions/forms/Field/FieldDocs.js.map +1 -0
- package/cjs/extensions/forms/Field/Number/Number.d.ts +1 -0
- package/cjs/extensions/forms/Field/Number/Number.js +13 -7
- package/cjs/extensions/forms/Field/Number/Number.js.map +1 -1
- package/cjs/extensions/forms/Field/Number/NumberDocs.d.ts +2 -0
- package/cjs/extensions/forms/Field/Number/NumberDocs.js +92 -0
- package/cjs/extensions/forms/Field/Number/NumberDocs.js.map +1 -0
- package/cjs/extensions/forms/Field/Number/style/dnb-number.css +3 -1
- package/cjs/extensions/forms/Field/Number/style/dnb-number.min.css +1 -1
- package/cjs/extensions/forms/Field/Number/style/dnb-number.scss +4 -1
- package/cjs/extensions/forms/Field/Password/Password.d.ts +45 -0
- package/cjs/extensions/forms/Field/Password/Password.js +111 -0
- package/cjs/extensions/forms/Field/Password/Password.js.map +1 -0
- package/cjs/extensions/forms/Field/Password/index.d.ts +2 -0
- package/cjs/extensions/forms/Field/Password/index.js +27 -0
- package/cjs/extensions/forms/Field/Password/index.js.map +1 -0
- package/cjs/extensions/forms/Field/Password/style/dnb-password.css +6 -0
- package/cjs/extensions/forms/Field/Password/style/dnb-password.min.css +1 -0
- package/cjs/extensions/forms/Field/Password/style/dnb-password.scss +10 -0
- package/cjs/extensions/forms/Field/PostalCodeAndCity/PostalCodeAndCity.js +4 -5
- package/cjs/extensions/forms/Field/PostalCodeAndCity/PostalCodeAndCity.js.map +1 -1
- package/cjs/extensions/forms/Field/PostalCodeAndCity/style/dnb-postal-code-and-city.css +0 -12
- package/cjs/extensions/forms/Field/PostalCodeAndCity/style/dnb-postal-code-and-city.min.css +1 -1
- package/cjs/extensions/forms/Field/PostalCodeAndCity/style/dnb-postal-code-and-city.scss +0 -11
- package/cjs/extensions/forms/Field/Selection/Selection.d.ts +0 -1
- package/cjs/extensions/forms/Field/Selection/Selection.js +1 -9
- package/cjs/extensions/forms/Field/Selection/Selection.js.map +1 -1
- package/cjs/extensions/forms/Field/String/String.d.ts +20 -9
- package/cjs/extensions/forms/Field/String/String.js +52 -31
- package/cjs/extensions/forms/Field/String/String.js.map +1 -1
- package/cjs/extensions/forms/Field/String/StringDocs.d.ts +2 -0
- package/cjs/extensions/forms/Field/String/StringDocs.js +106 -0
- package/cjs/extensions/forms/Field/String/StringDocs.js.map +1 -0
- package/cjs/extensions/forms/Field/Toggle/Toggle.js +1 -1
- package/cjs/extensions/forms/Field/Toggle/Toggle.js.map +1 -1
- package/cjs/extensions/forms/Field/index.d.ts +1 -0
- package/cjs/extensions/forms/Field/index.js +7 -0
- package/cjs/extensions/forms/Field/index.js.map +1 -1
- package/cjs/extensions/forms/FieldBlock/FieldBlock.d.ts +8 -3
- package/cjs/extensions/forms/FieldBlock/FieldBlock.js +204 -62
- package/cjs/extensions/forms/FieldBlock/FieldBlock.js.map +1 -1
- package/cjs/extensions/forms/FieldBlock/FieldBlockContext.d.ts +39 -6
- package/cjs/extensions/forms/FieldBlock/FieldBlockContext.js.map +1 -1
- package/cjs/extensions/forms/FieldBlock/FieldBlockDocs.d.ts +2 -0
- package/cjs/extensions/forms/FieldBlock/FieldBlockDocs.js +60 -0
- package/cjs/extensions/forms/FieldBlock/FieldBlockDocs.js.map +1 -0
- package/cjs/extensions/forms/FieldBlock/style/dnb-field-block.css +29 -2
- package/cjs/extensions/forms/FieldBlock/style/dnb-field-block.min.css +1 -1
- package/cjs/extensions/forms/FieldBlock/style/dnb-field-block.scss +28 -0
- package/cjs/extensions/forms/Form/Appearance/Appearance.d.ts +7 -0
- package/cjs/extensions/forms/Form/Appearance/Appearance.js +38 -0
- package/cjs/extensions/forms/Form/Appearance/Appearance.js.map +1 -0
- package/cjs/extensions/forms/Form/Appearance/AppearanceDocs.d.ts +2 -0
- package/cjs/extensions/forms/Form/Appearance/AppearanceDocs.js +15 -0
- package/cjs/extensions/forms/Form/Appearance/AppearanceDocs.js.map +1 -0
- package/cjs/extensions/forms/Form/Appearance/index.d.ts +2 -0
- package/cjs/extensions/forms/Form/Appearance/index.js +27 -0
- package/cjs/extensions/forms/Form/Appearance/index.js.map +1 -0
- package/cjs/extensions/forms/Form/ButtonRow/style/dnb-form-button-row.css +6 -0
- 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 +10 -2
- package/cjs/extensions/forms/Form/data-context/useData.d.ts +1 -1
- package/cjs/extensions/forms/Form/data-context/useData.js +2 -18
- package/cjs/extensions/forms/Form/data-context/useData.js.map +1 -1
- package/cjs/extensions/forms/Form/data-context/useError.d.ts +2 -1
- package/cjs/extensions/forms/Form/data-context/useError.js +4 -2
- 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/Value/Currency/Currency.js +2 -2
- package/cjs/extensions/forms/Value/Currency/Currency.js.map +1 -1
- package/cjs/extensions/forms/Value/Number/Number.d.ts +2 -2
- package/cjs/extensions/forms/Value/Number/Number.js +1 -1
- package/cjs/extensions/forms/Value/Number/Number.js.map +1 -1
- package/cjs/extensions/forms/Value/SummaryList/SummaryList.d.ts +7 -0
- package/cjs/extensions/forms/Value/SummaryList/SummaryList.js +35 -0
- package/cjs/extensions/forms/Value/SummaryList/SummaryList.js.map +1 -0
- package/cjs/extensions/forms/Value/SummaryList/SummaryListContext.d.ts +7 -0
- package/cjs/extensions/forms/Value/SummaryList/SummaryListContext.js +12 -0
- package/cjs/extensions/forms/Value/SummaryList/SummaryListContext.js.map +1 -0
- package/cjs/extensions/forms/Value/SummaryList/index.d.ts +2 -0
- package/cjs/extensions/forms/Value/SummaryList/index.js +27 -0
- package/cjs/extensions/forms/Value/SummaryList/index.js.map +1 -0
- package/cjs/extensions/forms/Value/ValueDocs.d.ts +2 -0
- package/cjs/extensions/forms/Value/ValueDocs.js +40 -0
- package/cjs/extensions/forms/Value/ValueDocs.js.map +1 -0
- package/cjs/extensions/forms/Value/index.d.ts +1 -0
- package/cjs/extensions/forms/Value/index.js +7 -0
- package/cjs/extensions/forms/Value/index.js.map +1 -1
- package/cjs/extensions/forms/ValueBlock/ValueBlock.js +13 -3
- package/cjs/extensions/forms/ValueBlock/ValueBlock.js.map +1 -1
- package/cjs/extensions/forms/hooks/DataValueDocs.d.ts +3 -0
- package/cjs/extensions/forms/hooks/DataValueDocs.js +118 -0
- package/cjs/extensions/forms/hooks/DataValueDocs.js.map +1 -0
- package/cjs/extensions/forms/hooks/useDataValue.d.ts +6 -14
- package/cjs/extensions/forms/hooks/useDataValue.js +90 -21
- package/cjs/extensions/forms/hooks/useDataValue.js.map +1 -1
- package/cjs/extensions/forms/hooks/useId.js +1 -1
- package/cjs/extensions/forms/hooks/useId.js.map +1 -1
- package/cjs/extensions/forms/hooks/useMountEffect.js +1 -1
- package/cjs/extensions/forms/hooks/useMountEffect.js.map +1 -1
- package/cjs/extensions/forms/hooks/useMounted.d.ts +2 -0
- package/cjs/extensions/forms/hooks/useMounted.js +19 -0
- package/cjs/extensions/forms/hooks/useMounted.js.map +1 -0
- package/cjs/extensions/forms/hooks/useUnmountEffect.d.ts +4 -0
- package/cjs/extensions/forms/hooks/useUnmountEffect.js +14 -0
- package/cjs/extensions/forms/hooks/useUnmountEffect.js.map +1 -0
- package/cjs/extensions/forms/style/dnb-forms.css +45 -15
- package/cjs/extensions/forms/style/dnb-forms.min.css +1 -1
- package/cjs/extensions/forms/types.d.ts +6 -4
- package/cjs/extensions/forms/types.js.map +1 -1
- package/cjs/extensions/payment-card/utils/CardDesigns.d.ts +96 -96
- package/cjs/fragments/drawer-list/DrawerListHelpers.d.ts +52 -52
- package/cjs/shared/Context.d.ts +2 -0
- package/cjs/shared/Context.js.map +1 -1
- package/cjs/shared/Eufemia.d.ts +1 -1
- package/cjs/shared/Eufemia.js +2 -2
- package/cjs/shared/Eufemia.js.map +1 -1
- package/cjs/shared/Theme.d.ts +7 -1
- package/cjs/shared/Theme.js +20 -7
- package/cjs/shared/Theme.js.map +1 -1
- package/cjs/shared/component-helper.d.ts +1 -0
- package/cjs/shared/component-helper.js +10 -0
- package/cjs/shared/component-helper.js.map +1 -1
- package/cjs/shared/helpers/debounce.d.ts +37 -0
- package/cjs/shared/helpers/debounce.js +92 -0
- package/cjs/shared/helpers/debounce.js.map +1 -0
- package/cjs/shared/helpers/filterValidProps.d.ts +2 -2
- package/cjs/shared/helpers/filterValidProps.js +2 -2
- package/cjs/shared/helpers/filterValidProps.js.map +1 -1
- package/cjs/shared/helpers/useSharedState.d.ts +1 -0
- package/cjs/shared/helpers/useSharedState.js +52 -20
- package/cjs/shared/helpers/useSharedState.js.map +1 -1
- package/cjs/shared/helpers/withCamelCaseProps.d.ts +14 -1
- package/cjs/shared/helpers/withCamelCaseProps.js.map +1 -1
- package/cjs/shared/helpers.d.ts +1 -25
- package/cjs/shared/helpers.js +15 -37
- package/cjs/shared/helpers.js.map +1 -1
- package/cjs/shared/locales/en-GB.d.ts +5 -3
- package/cjs/shared/locales/en-GB.js +7 -5
- package/cjs/shared/locales/en-GB.js.map +1 -1
- package/cjs/shared/locales/en-US.d.ts +5 -3
- package/cjs/shared/locales/index.d.ts +10 -6
- package/cjs/shared/locales/nb-NO.d.ts +5 -3
- package/cjs/shared/locales/nb-NO.js +7 -5
- package/cjs/shared/locales/nb-NO.js.map +1 -1
- package/cjs/shared/types.d.ts +5 -0
- package/cjs/shared/types.js.map +1 -1
- package/cjs/shared/useTheme.d.ts +1 -0
- package/cjs/style/dnb-ui-components.css +359 -171
- package/cjs/style/dnb-ui-components.min.css +3 -3
- package/cjs/style/dnb-ui-elements.css +25 -5
- package/cjs/style/dnb-ui-elements.min.css +1 -1
- package/cjs/style/dnb-ui-extensions.css +45 -15
- package/cjs/style/dnb-ui-extensions.min.css +1 -1
- package/cjs/style/dnb-ui-forms.css +45 -15
- 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 +25 -5
- package/cjs/style/themes/theme-eiendom/eiendom-theme-basis.min.css +1 -1
- package/cjs/style/themes/theme-eiendom/eiendom-theme-components.css +421 -195
- package/cjs/style/themes/theme-eiendom/eiendom-theme-components.min.css +4 -4
- package/cjs/style/themes/theme-eiendom/eiendom-theme-elements.css +25 -5
- package/cjs/style/themes/theme-eiendom/eiendom-theme-elements.min.css +1 -1
- package/cjs/style/themes/theme-eiendom/eiendom-theme-extensions.css +45 -15
- package/cjs/style/themes/theme-eiendom/eiendom-theme-extensions.min.css +1 -1
- package/cjs/style/themes/theme-eiendom/eiendom-theme-forms.css +45 -15
- package/cjs/style/themes/theme-eiendom/eiendom-theme-forms.min.css +1 -1
- package/cjs/style/themes/theme-sbanken/sbanken-theme-basis.css +26 -5
- package/cjs/style/themes/theme-sbanken/sbanken-theme-basis.min.css +1 -1
- package/cjs/style/themes/theme-sbanken/sbanken-theme-components.css +464 -204
- package/cjs/style/themes/theme-sbanken/sbanken-theme-components.min.css +8 -6
- package/cjs/style/themes/theme-sbanken/sbanken-theme-elements.css +26 -5
- package/cjs/style/themes/theme-sbanken/sbanken-theme-elements.min.css +1 -1
- package/cjs/style/themes/theme-sbanken/sbanken-theme-extensions.css +45 -15
- package/cjs/style/themes/theme-sbanken/sbanken-theme-extensions.min.css +1 -1
- package/cjs/style/themes/theme-sbanken/sbanken-theme-forms.css +45 -15
- package/cjs/style/themes/theme-sbanken/sbanken-theme-forms.min.css +1 -1
- package/cjs/style/themes/theme-ui/prism/dnb-prism-theme.d.ts +3 -3
- package/cjs/style/themes/theme-ui/ui-theme-basis.css +25 -5
- package/cjs/style/themes/theme-ui/ui-theme-basis.min.css +1 -1
- package/cjs/style/themes/theme-ui/ui-theme-components.css +421 -195
- package/cjs/style/themes/theme-ui/ui-theme-components.min.css +4 -4
- package/cjs/style/themes/theme-ui/ui-theme-elements.css +25 -5
- package/cjs/style/themes/theme-ui/ui-theme-elements.min.css +1 -1
- package/cjs/style/themes/theme-ui/ui-theme-extensions.css +45 -15
- package/cjs/style/themes/theme-ui/ui-theme-extensions.min.css +1 -1
- package/cjs/style/themes/theme-ui/ui-theme-forms.css +45 -15
- package/cjs/style/themes/theme-ui/ui-theme-forms.min.css +1 -1
- package/cjs/style/themes/theme-ui/ui-theme-tags.css +25 -5
- package/cjs/style/themes/theme-ui/ui-theme-tags.min.css +1 -1
- package/components/aria-live/useAriaLive.d.ts +1 -1
- package/components/breadcrumb/Breadcrumb.d.ts +2 -2
- package/components/breadcrumb/Breadcrumb.js +3 -3
- package/components/breadcrumb/Breadcrumb.js.map +1 -1
- package/components/breadcrumb/style/dnb-breadcrumb.css +7 -2
- package/components/breadcrumb/style/dnb-breadcrumb.min.css +1 -1
- package/components/breadcrumb/style/dnb-breadcrumb.scss +10 -2
- package/components/button/Button.js +2 -2
- package/components/button/Button.js.map +1 -1
- package/components/button/style/themes/dnb-button-theme-sbanken.css +23 -11
- package/components/button/style/themes/dnb-button-theme-sbanken.min.css +3 -3
- package/components/button/style/themes/dnb-button-theme-sbanken.scss +30 -14
- package/components/card/style/dnb-card.css +11 -2
- package/components/card/style/dnb-card.min.css +1 -1
- package/components/card/style/dnb-card.scss +12 -2
- package/components/date-picker/DatePicker.d.ts +10 -1
- package/components/date-picker/DatePicker.js +5 -2
- package/components/date-picker/DatePicker.js.map +1 -1
- package/components/form-label/style/dnb-form-label.css +4 -8
- package/components/form-label/style/dnb-form-label.min.css +1 -1
- package/components/form-label/style/dnb-form-label.scss +5 -8
- package/components/form-status/style/dnb-form-status.css +11 -0
- package/components/form-status/style/dnb-form-status.min.css +1 -1
- package/components/form-status/style/dnb-form-status.scss +11 -0
- package/components/global-status/GlobalStatus.d.ts +1 -1
- package/components/global-status/GlobalStatusProvider.d.ts +1 -1
- package/components/height-animation/HeightAnimationInstance.d.ts +5 -6
- package/components/height-animation/HeightAnimationInstance.js +12 -12
- package/components/height-animation/HeightAnimationInstance.js.map +1 -1
- package/components/height-animation/useHeightAnimation.js +11 -10
- package/components/height-animation/useHeightAnimation.js.map +1 -1
- package/components/info-card/InfoCard.d.ts +6 -0
- package/components/info-card/InfoCard.js +4 -2
- package/components/info-card/InfoCard.js.map +1 -1
- package/components/info-card/style/dnb-info-card.css +3 -1
- package/components/info-card/style/dnb-info-card.min.css +1 -1
- package/components/info-card/style/dnb-info-card.scss +4 -2
- package/components/input/Input.d.ts +9 -9
- package/components/input/InputDocs.d.ts +2 -0
- package/components/input/InputDocs.js +158 -0
- package/components/input/InputDocs.js.map +1 -0
- package/components/input/InputPassword.d.ts +6 -17
- package/components/input/InputPassword.js +3 -81
- package/components/input/InputPassword.js.map +1 -1
- package/components/input-masked/InputMasked.d.ts +6 -93
- package/components/input-masked/InputMasked.js +3 -1
- package/components/input-masked/InputMasked.js.map +1 -1
- package/components/input-masked/InputMaskedDocs.d.ts +2 -0
- package/components/input-masked/InputMaskedDocs.js +78 -0
- package/components/input-masked/InputMaskedDocs.js.map +1 -0
- package/components/input-masked/InputMaskedHooks.js +7 -4
- package/components/input-masked/InputMaskedHooks.js.map +1 -1
- package/components/input-masked/MultiInputMask.js +2 -6
- package/components/input-masked/MultiInputMask.js.map +1 -1
- package/components/input-masked/style/dnb-input-masked.css +3 -0
- package/components/input-masked/style/dnb-input-masked.min.css +1 -1
- package/components/input-masked/style/dnb-input-masked.scss +5 -0
- package/components/number-format/NumberFormat.d.ts +1 -1
- package/components/number-format/NumberUtils.js +22 -14
- package/components/number-format/NumberUtils.js.map +1 -1
- package/components/pagination/InfinityScroller.d.ts +1 -1
- package/components/progress-indicator/ProgressIndicator.js +5 -7
- package/components/progress-indicator/ProgressIndicator.js.map +1 -1
- package/components/progress-indicator/ProgressIndicatorCircular.js +1 -1
- package/components/progress-indicator/ProgressIndicatorCircular.js.map +1 -1
- package/components/progress-indicator/ProgressIndicatorLinear.js +4 -4
- package/components/progress-indicator/ProgressIndicatorLinear.js.map +1 -1
- package/components/progress-indicator/style/dnb-progress-indicator.css +5 -2
- package/components/progress-indicator/style/dnb-progress-indicator.min.css +1 -1
- package/components/progress-indicator/style/dnb-progress-indicator.scss +5 -2
- package/components/slider/Slider.d.ts +1 -0
- package/components/slider/Slider.js +1 -0
- package/components/slider/Slider.js.map +1 -1
- package/components/slider/SliderInstance.js +18 -5
- package/components/slider/SliderInstance.js.map +1 -1
- package/components/slider/SliderMarker.d.ts +7 -0
- package/components/slider/SliderMarker.js +53 -0
- package/components/slider/SliderMarker.js.map +1 -0
- package/components/slider/SliderProvider.js +2 -1
- package/components/slider/SliderProvider.js.map +1 -1
- package/components/slider/style/dnb-slider.css +43 -2
- package/components/slider/style/dnb-slider.min.css +1 -1
- package/components/slider/style/dnb-slider.scss +44 -1
- package/components/slider/style/themes/dnb-slider-theme-sbanken.css +3 -0
- package/components/slider/style/themes/dnb-slider-theme-sbanken.min.css +1 -1
- package/components/slider/style/themes/dnb-slider-theme-sbanken.scss +4 -0
- package/components/slider/style/themes/dnb-slider-theme-ui.css +3 -0
- package/components/slider/style/themes/dnb-slider-theme-ui.min.css +1 -1
- package/components/slider/style/themes/dnb-slider-theme-ui.scss +5 -0
- package/components/slider/types.d.ts +6 -0
- package/components/slider/types.js.map +1 -1
- package/components/space/SpacingHelper.d.ts +5 -5
- package/components/table/Table.js +1 -1
- package/components/table/Table.js.map +1 -1
- package/components/table/TableAccordion.js +40 -54
- package/components/table/TableAccordion.js.map +1 -1
- package/components/table/TableAccordionTd.d.ts +9 -0
- package/{es/components/table/TableAccordionContent.js → components/table/TableAccordionTd.js} +16 -50
- package/components/table/TableAccordionTd.js.map +1 -0
- package/components/table/TableAccordionTr.d.ts +13 -0
- package/components/table/TableAccordionTr.js +51 -0
- package/components/table/TableAccordionTr.js.map +1 -0
- package/components/table/TableContext.d.ts +2 -2
- package/components/table/TableContext.js +2 -2
- package/components/table/TableContext.js.map +1 -1
- package/components/table/TableTd.d.ts +2 -2
- package/components/table/TableTd.js +2 -2
- package/components/table/TableTd.js.map +1 -1
- package/components/table/TableTr.d.ts +6 -1
- package/components/table/TableTr.js +9 -4
- package/components/table/TableTr.js.map +1 -1
- package/components/table/style/dnb-table.css +226 -139
- package/components/table/style/dnb-table.min.css +1 -1
- package/components/table/style/dnb-table.scss +60 -4
- package/components/table/style/table-accordion.scss +83 -98
- package/components/table/style/table-container.scss +9 -9
- package/components/table/style/table-mixins.scss +19 -2
- package/components/table/style/table-td.scss +82 -60
- package/components/table/style/table-th.scss +5 -30
- package/components/table/style/table-tr.scss +0 -20
- package/components/table/style/themes/dnb-table-theme-sbanken.css +34 -7
- package/components/table/style/themes/dnb-table-theme-sbanken.min.css +3 -1
- package/components/table/style/themes/dnb-table-theme-sbanken.scss +29 -10
- package/components/table/style/themes/dnb-table-theme-ui.css +14 -9
- package/components/table/style/themes/dnb-table-theme-ui.min.css +1 -1
- package/components/table/style/themes/dnb-table-theme-ui.scss +12 -22
- package/components/table/useTableAnimationHandler.d.ts +20 -0
- package/components/table/useTableAnimationHandler.js +63 -0
- package/components/table/useTableAnimationHandler.js.map +1 -0
- package/components/textarea/Textarea.d.ts +4 -10
- package/components/textarea/TextareaDocs.d.ts +2 -0
- package/components/textarea/TextareaDocs.js +98 -0
- package/components/textarea/TextareaDocs.js.map +1 -0
- package/components/textarea/style/dnb-textarea.css +1 -0
- package/components/textarea/style/dnb-textarea.min.css +1 -1
- package/components/textarea/style/dnb-textarea.scss +3 -0
- package/components/upload/UploadInfo.js +1 -1
- package/components/upload/UploadInfo.js.map +1 -1
- package/core/jest/jestSetupScreenshots.css +7 -0
- package/elements/blockquote/style/themes/dnb-blockquote-theme-sbanken.scss +1 -0
- package/elements/lib.d.ts +1 -1
- package/elements/lists/Dl.d.ts +5 -1
- package/elements/lists/Dl.js +5 -4
- package/elements/lists/Dl.js.map +1 -1
- package/elements/lists/style/lists-mixins.scss +24 -1
- package/es/components/aria-live/useAriaLive.d.ts +1 -1
- package/es/components/breadcrumb/Breadcrumb.d.ts +2 -2
- package/es/components/breadcrumb/Breadcrumb.js +3 -3
- package/es/components/breadcrumb/Breadcrumb.js.map +1 -1
- package/es/components/breadcrumb/style/dnb-breadcrumb.css +7 -2
- package/es/components/breadcrumb/style/dnb-breadcrumb.min.css +1 -1
- package/es/components/breadcrumb/style/dnb-breadcrumb.scss +10 -2
- package/es/components/button/Button.js +2 -2
- package/es/components/button/Button.js.map +1 -1
- package/es/components/button/style/themes/dnb-button-theme-sbanken.css +23 -11
- package/es/components/button/style/themes/dnb-button-theme-sbanken.min.css +3 -3
- package/es/components/button/style/themes/dnb-button-theme-sbanken.scss +30 -14
- package/es/components/card/style/dnb-card.css +11 -2
- package/es/components/card/style/dnb-card.min.css +1 -1
- package/es/components/card/style/dnb-card.scss +12 -2
- package/es/components/date-picker/DatePicker.d.ts +10 -1
- package/es/components/date-picker/DatePicker.js +5 -2
- package/es/components/date-picker/DatePicker.js.map +1 -1
- package/es/components/form-label/style/dnb-form-label.css +4 -8
- package/es/components/form-label/style/dnb-form-label.min.css +1 -1
- package/es/components/form-label/style/dnb-form-label.scss +5 -8
- package/es/components/form-status/style/dnb-form-status.css +11 -0
- package/es/components/form-status/style/dnb-form-status.min.css +1 -1
- package/es/components/form-status/style/dnb-form-status.scss +11 -0
- package/es/components/global-status/GlobalStatus.d.ts +1 -1
- package/es/components/global-status/GlobalStatusProvider.d.ts +1 -1
- package/es/components/height-animation/HeightAnimationInstance.d.ts +5 -6
- package/es/components/height-animation/HeightAnimationInstance.js +12 -12
- package/es/components/height-animation/HeightAnimationInstance.js.map +1 -1
- package/es/components/height-animation/useHeightAnimation.js +11 -10
- package/es/components/height-animation/useHeightAnimation.js.map +1 -1
- package/es/components/info-card/InfoCard.d.ts +6 -0
- package/es/components/info-card/InfoCard.js +4 -2
- package/es/components/info-card/InfoCard.js.map +1 -1
- package/es/components/info-card/style/dnb-info-card.css +3 -1
- package/es/components/info-card/style/dnb-info-card.min.css +1 -1
- package/es/components/info-card/style/dnb-info-card.scss +4 -2
- package/es/components/input/Input.d.ts +9 -9
- package/es/components/input/InputDocs.d.ts +2 -0
- package/es/components/input/InputDocs.js +158 -0
- package/es/components/input/InputDocs.js.map +1 -0
- package/es/components/input/InputPassword.d.ts +6 -17
- package/es/components/input/InputPassword.js +3 -81
- package/es/components/input/InputPassword.js.map +1 -1
- package/es/components/input-masked/InputMasked.d.ts +6 -93
- package/es/components/input-masked/InputMasked.js +3 -1
- package/es/components/input-masked/InputMasked.js.map +1 -1
- package/es/components/input-masked/InputMaskedDocs.d.ts +2 -0
- package/es/components/input-masked/InputMaskedDocs.js +78 -0
- package/es/components/input-masked/InputMaskedDocs.js.map +1 -0
- package/es/components/input-masked/InputMaskedHooks.js +7 -4
- package/es/components/input-masked/InputMaskedHooks.js.map +1 -1
- package/es/components/input-masked/MultiInputMask.js +2 -6
- package/es/components/input-masked/MultiInputMask.js.map +1 -1
- package/es/components/input-masked/style/dnb-input-masked.css +3 -0
- package/es/components/input-masked/style/dnb-input-masked.min.css +1 -1
- package/es/components/input-masked/style/dnb-input-masked.scss +5 -0
- package/es/components/number-format/NumberFormat.d.ts +1 -1
- package/es/components/number-format/NumberUtils.js +23 -14
- package/es/components/number-format/NumberUtils.js.map +1 -1
- package/es/components/pagination/InfinityScroller.d.ts +1 -1
- package/es/components/progress-indicator/ProgressIndicator.js +5 -7
- package/es/components/progress-indicator/ProgressIndicator.js.map +1 -1
- package/es/components/progress-indicator/ProgressIndicatorCircular.js +1 -1
- package/es/components/progress-indicator/ProgressIndicatorCircular.js.map +1 -1
- package/es/components/progress-indicator/ProgressIndicatorLinear.js +4 -4
- package/es/components/progress-indicator/ProgressIndicatorLinear.js.map +1 -1
- package/es/components/progress-indicator/style/dnb-progress-indicator.css +5 -2
- package/es/components/progress-indicator/style/dnb-progress-indicator.min.css +1 -1
- package/es/components/progress-indicator/style/dnb-progress-indicator.scss +5 -2
- package/es/components/slider/Slider.d.ts +1 -0
- package/es/components/slider/Slider.js +1 -0
- package/es/components/slider/Slider.js.map +1 -1
- package/es/components/slider/SliderInstance.js +17 -5
- package/es/components/slider/SliderInstance.js.map +1 -1
- package/es/components/slider/SliderMarker.d.ts +7 -0
- package/es/components/slider/SliderMarker.js +52 -0
- package/es/components/slider/SliderMarker.js.map +1 -0
- package/es/components/slider/SliderProvider.js +2 -1
- package/es/components/slider/SliderProvider.js.map +1 -1
- package/es/components/slider/style/dnb-slider.css +43 -2
- package/es/components/slider/style/dnb-slider.min.css +1 -1
- package/es/components/slider/style/dnb-slider.scss +44 -1
- package/es/components/slider/style/themes/dnb-slider-theme-sbanken.css +3 -0
- package/es/components/slider/style/themes/dnb-slider-theme-sbanken.min.css +1 -1
- package/es/components/slider/style/themes/dnb-slider-theme-sbanken.scss +4 -0
- package/es/components/slider/style/themes/dnb-slider-theme-ui.css +3 -0
- package/es/components/slider/style/themes/dnb-slider-theme-ui.min.css +1 -1
- package/es/components/slider/style/themes/dnb-slider-theme-ui.scss +5 -0
- package/es/components/slider/types.d.ts +6 -0
- package/es/components/slider/types.js.map +1 -1
- package/es/components/space/SpacingHelper.d.ts +5 -5
- package/es/components/table/Table.js +1 -1
- package/es/components/table/Table.js.map +1 -1
- package/es/components/table/TableAccordion.js +40 -55
- package/es/components/table/TableAccordion.js.map +1 -1
- package/es/components/table/TableAccordionTd.d.ts +9 -0
- package/{components/table/TableAccordionContent.js → es/components/table/TableAccordionTd.js} +16 -51
- package/es/components/table/TableAccordionTd.js.map +1 -0
- package/es/components/table/TableAccordionTr.d.ts +13 -0
- package/es/components/table/TableAccordionTr.js +51 -0
- package/es/components/table/TableAccordionTr.js.map +1 -0
- package/es/components/table/TableContext.d.ts +2 -2
- package/es/components/table/TableContext.js +2 -2
- package/es/components/table/TableContext.js.map +1 -1
- package/es/components/table/TableTd.d.ts +2 -2
- package/es/components/table/TableTd.js +2 -2
- package/es/components/table/TableTd.js.map +1 -1
- package/es/components/table/TableTr.d.ts +6 -1
- package/es/components/table/TableTr.js +9 -4
- package/es/components/table/TableTr.js.map +1 -1
- package/es/components/table/style/dnb-table.css +226 -139
- package/es/components/table/style/dnb-table.min.css +1 -1
- package/es/components/table/style/dnb-table.scss +60 -4
- package/es/components/table/style/table-accordion.scss +83 -98
- package/es/components/table/style/table-container.scss +9 -9
- package/es/components/table/style/table-mixins.scss +19 -2
- package/es/components/table/style/table-td.scss +82 -60
- package/es/components/table/style/table-th.scss +5 -30
- package/es/components/table/style/table-tr.scss +0 -20
- package/es/components/table/style/themes/dnb-table-theme-sbanken.css +34 -7
- package/es/components/table/style/themes/dnb-table-theme-sbanken.min.css +3 -1
- package/es/components/table/style/themes/dnb-table-theme-sbanken.scss +29 -10
- package/es/components/table/style/themes/dnb-table-theme-ui.css +14 -9
- 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 +12 -22
- package/es/components/table/useTableAnimationHandler.d.ts +20 -0
- package/es/components/table/useTableAnimationHandler.js +62 -0
- package/es/components/table/useTableAnimationHandler.js.map +1 -0
- package/es/components/textarea/Textarea.d.ts +4 -10
- package/es/components/textarea/TextareaDocs.d.ts +2 -0
- package/es/components/textarea/TextareaDocs.js +98 -0
- package/es/components/textarea/TextareaDocs.js.map +1 -0
- package/es/components/textarea/style/dnb-textarea.css +1 -0
- package/es/components/textarea/style/dnb-textarea.min.css +1 -1
- package/es/components/textarea/style/dnb-textarea.scss +3 -0
- package/es/components/upload/UploadInfo.js +1 -1
- package/es/components/upload/UploadInfo.js.map +1 -1
- package/es/core/jest/jestSetupScreenshots.css +7 -0
- package/es/elements/blockquote/style/themes/dnb-blockquote-theme-sbanken.scss +1 -0
- package/es/elements/lib.d.ts +1 -1
- package/es/elements/lists/Dl.d.ts +5 -1
- package/es/elements/lists/Dl.js +5 -4
- package/es/elements/lists/Dl.js.map +1 -1
- package/es/elements/lists/style/lists-mixins.scss +24 -1
- package/es/extensions/forms/DataContext/Context.d.ts +1 -2
- package/es/extensions/forms/DataContext/Context.js.map +1 -1
- package/es/extensions/forms/DataContext/Provider/Provider.d.ts +1 -2
- package/es/extensions/forms/DataContext/Provider/Provider.js +54 -40
- package/es/extensions/forms/DataContext/Provider/Provider.js.map +1 -1
- package/es/extensions/forms/Field/Currency/Currency.js +1 -1
- package/es/extensions/forms/Field/Currency/Currency.js.map +1 -1
- package/es/extensions/forms/Field/Expiry/Expiry.js +1 -0
- package/es/extensions/forms/Field/Expiry/Expiry.js.map +1 -1
- package/es/extensions/forms/Field/FieldDocs.d.ts +3 -0
- package/es/extensions/forms/Field/FieldDocs.js +8 -0
- package/es/extensions/forms/Field/FieldDocs.js.map +1 -0
- package/es/extensions/forms/Field/Number/Number.d.ts +1 -0
- package/es/extensions/forms/Field/Number/Number.js +13 -7
- package/es/extensions/forms/Field/Number/Number.js.map +1 -1
- package/es/extensions/forms/Field/Number/NumberDocs.d.ts +2 -0
- package/es/extensions/forms/Field/Number/NumberDocs.js +85 -0
- package/es/extensions/forms/Field/Number/NumberDocs.js.map +1 -0
- package/es/extensions/forms/Field/Number/style/dnb-number.css +3 -1
- package/es/extensions/forms/Field/Number/style/dnb-number.min.css +1 -1
- package/es/extensions/forms/Field/Number/style/dnb-number.scss +4 -1
- package/es/extensions/forms/Field/Password/Password.d.ts +45 -0
- package/es/extensions/forms/Field/Password/Password.js +99 -0
- package/es/extensions/forms/Field/Password/Password.js.map +1 -0
- package/es/extensions/forms/Field/Password/index.d.ts +2 -0
- package/es/extensions/forms/Field/Password/index.js +3 -0
- package/es/extensions/forms/Field/Password/index.js.map +1 -0
- package/es/extensions/forms/Field/Password/style/dnb-password.css +6 -0
- package/es/extensions/forms/Field/Password/style/dnb-password.min.css +1 -0
- package/es/extensions/forms/Field/Password/style/dnb-password.scss +10 -0
- package/es/extensions/forms/Field/PostalCodeAndCity/PostalCodeAndCity.js +4 -5
- package/es/extensions/forms/Field/PostalCodeAndCity/PostalCodeAndCity.js.map +1 -1
- package/es/extensions/forms/Field/PostalCodeAndCity/style/dnb-postal-code-and-city.css +0 -12
- package/es/extensions/forms/Field/PostalCodeAndCity/style/dnb-postal-code-and-city.min.css +1 -1
- package/es/extensions/forms/Field/PostalCodeAndCity/style/dnb-postal-code-and-city.scss +0 -11
- package/es/extensions/forms/Field/Selection/Selection.d.ts +0 -1
- package/es/extensions/forms/Field/Selection/Selection.js +2 -11
- package/es/extensions/forms/Field/Selection/Selection.js.map +1 -1
- package/es/extensions/forms/Field/String/String.d.ts +20 -9
- package/es/extensions/forms/Field/String/String.js +52 -31
- package/es/extensions/forms/Field/String/String.js.map +1 -1
- package/es/extensions/forms/Field/String/StringDocs.d.ts +2 -0
- package/es/extensions/forms/Field/String/StringDocs.js +99 -0
- package/es/extensions/forms/Field/String/StringDocs.js.map +1 -0
- package/es/extensions/forms/Field/Toggle/Toggle.js +1 -1
- package/es/extensions/forms/Field/Toggle/Toggle.js.map +1 -1
- package/es/extensions/forms/Field/index.d.ts +1 -0
- package/es/extensions/forms/Field/index.js +1 -0
- package/es/extensions/forms/Field/index.js.map +1 -1
- package/es/extensions/forms/FieldBlock/FieldBlock.d.ts +8 -3
- package/es/extensions/forms/FieldBlock/FieldBlock.js +195 -58
- package/es/extensions/forms/FieldBlock/FieldBlock.js.map +1 -1
- package/es/extensions/forms/FieldBlock/FieldBlockContext.d.ts +39 -6
- package/es/extensions/forms/FieldBlock/FieldBlockContext.js.map +1 -1
- package/es/extensions/forms/FieldBlock/FieldBlockDocs.d.ts +2 -0
- package/es/extensions/forms/FieldBlock/FieldBlockDocs.js +53 -0
- package/es/extensions/forms/FieldBlock/FieldBlockDocs.js.map +1 -0
- package/es/extensions/forms/FieldBlock/style/dnb-field-block.css +29 -2
- package/es/extensions/forms/FieldBlock/style/dnb-field-block.min.css +1 -1
- package/es/extensions/forms/FieldBlock/style/dnb-field-block.scss +28 -0
- package/es/extensions/forms/Form/Appearance/Appearance.d.ts +7 -0
- package/es/extensions/forms/Form/Appearance/Appearance.js +30 -0
- package/es/extensions/forms/Form/Appearance/Appearance.js.map +1 -0
- package/es/extensions/forms/Form/Appearance/AppearanceDocs.d.ts +2 -0
- package/es/extensions/forms/Form/Appearance/AppearanceDocs.js +8 -0
- package/es/extensions/forms/Form/Appearance/AppearanceDocs.js.map +1 -0
- package/es/extensions/forms/Form/Appearance/index.d.ts +2 -0
- package/es/extensions/forms/Form/Appearance/index.js +3 -0
- package/es/extensions/forms/Form/Appearance/index.js.map +1 -0
- package/es/extensions/forms/Form/ButtonRow/style/dnb-form-button-row.css +6 -0
- 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 +10 -2
- package/es/extensions/forms/Form/data-context/useData.d.ts +1 -1
- package/es/extensions/forms/Form/data-context/useData.js +3 -19
- package/es/extensions/forms/Form/data-context/useData.js.map +1 -1
- package/es/extensions/forms/Form/data-context/useError.d.ts +2 -1
- package/es/extensions/forms/Form/data-context/useError.js +4 -2
- 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/Value/Currency/Currency.js +2 -2
- package/es/extensions/forms/Value/Currency/Currency.js.map +1 -1
- package/es/extensions/forms/Value/Number/Number.d.ts +2 -2
- package/es/extensions/forms/Value/Number/Number.js +1 -1
- package/es/extensions/forms/Value/Number/Number.js.map +1 -1
- package/es/extensions/forms/Value/SummaryList/SummaryList.d.ts +7 -0
- package/es/extensions/forms/Value/SummaryList/SummaryList.js +26 -0
- package/es/extensions/forms/Value/SummaryList/SummaryList.js.map +1 -0
- package/es/extensions/forms/Value/SummaryList/SummaryListContext.d.ts +7 -0
- package/es/extensions/forms/Value/SummaryList/SummaryListContext.js +4 -0
- package/es/extensions/forms/Value/SummaryList/SummaryListContext.js.map +1 -0
- package/es/extensions/forms/Value/SummaryList/index.d.ts +2 -0
- package/es/extensions/forms/Value/SummaryList/index.js +3 -0
- package/es/extensions/forms/Value/SummaryList/index.js.map +1 -0
- package/es/extensions/forms/Value/ValueDocs.d.ts +2 -0
- package/es/extensions/forms/Value/ValueDocs.js +33 -0
- package/es/extensions/forms/Value/ValueDocs.js.map +1 -0
- package/es/extensions/forms/Value/index.d.ts +1 -0
- package/es/extensions/forms/Value/index.js +1 -0
- package/es/extensions/forms/Value/index.js.map +1 -1
- package/es/extensions/forms/ValueBlock/ValueBlock.js +12 -4
- package/es/extensions/forms/ValueBlock/ValueBlock.js.map +1 -1
- package/es/extensions/forms/hooks/DataValueDocs.d.ts +3 -0
- package/es/extensions/forms/hooks/DataValueDocs.js +110 -0
- package/es/extensions/forms/hooks/DataValueDocs.js.map +1 -0
- package/es/extensions/forms/hooks/useDataValue.d.ts +6 -14
- package/es/extensions/forms/hooks/useDataValue.js +92 -23
- package/es/extensions/forms/hooks/useDataValue.js.map +1 -1
- package/es/extensions/forms/hooks/useId.js +1 -1
- package/es/extensions/forms/hooks/useId.js.map +1 -1
- package/es/extensions/forms/hooks/useMountEffect.js +1 -1
- package/es/extensions/forms/hooks/useMountEffect.js.map +1 -1
- package/es/extensions/forms/hooks/useMounted.d.ts +2 -0
- package/es/extensions/forms/hooks/useMounted.js +14 -0
- package/es/extensions/forms/hooks/useMounted.js.map +1 -0
- package/es/extensions/forms/hooks/useUnmountEffect.d.ts +4 -0
- package/es/extensions/forms/hooks/useUnmountEffect.js +9 -0
- package/es/extensions/forms/hooks/useUnmountEffect.js.map +1 -0
- package/es/extensions/forms/style/dnb-forms.css +45 -15
- package/es/extensions/forms/style/dnb-forms.min.css +1 -1
- package/es/extensions/forms/types.d.ts +6 -4
- package/es/extensions/forms/types.js.map +1 -1
- package/es/extensions/payment-card/utils/CardDesigns.d.ts +96 -96
- package/es/fragments/drawer-list/DrawerListHelpers.d.ts +52 -52
- package/es/shared/Context.d.ts +2 -0
- package/es/shared/Context.js.map +1 -1
- package/es/shared/Eufemia.d.ts +1 -1
- package/es/shared/Eufemia.js +2 -2
- package/es/shared/Eufemia.js.map +1 -1
- package/es/shared/Theme.d.ts +7 -1
- package/es/shared/Theme.js +20 -7
- package/es/shared/Theme.js.map +1 -1
- package/es/shared/component-helper.d.ts +1 -0
- package/es/shared/component-helper.js +6 -0
- package/es/shared/component-helper.js.map +1 -1
- package/es/shared/helpers/debounce.d.ts +37 -0
- package/es/shared/helpers/debounce.js +76 -0
- package/es/shared/helpers/debounce.js.map +1 -0
- package/es/shared/helpers/filterValidProps.d.ts +2 -2
- package/es/shared/helpers/filterValidProps.js +2 -2
- package/es/shared/helpers/filterValidProps.js.map +1 -1
- package/es/shared/helpers/useSharedState.d.ts +1 -0
- package/es/shared/helpers/useSharedState.js +49 -20
- package/es/shared/helpers/useSharedState.js.map +1 -1
- package/es/shared/helpers/withCamelCaseProps.d.ts +14 -1
- package/es/shared/helpers/withCamelCaseProps.js.map +1 -1
- package/es/shared/helpers.d.ts +1 -25
- package/es/shared/helpers.js +1 -29
- package/es/shared/helpers.js.map +1 -1
- package/es/shared/locales/en-GB.d.ts +5 -3
- package/es/shared/locales/en-GB.js +7 -5
- package/es/shared/locales/en-GB.js.map +1 -1
- package/es/shared/locales/en-US.d.ts +5 -3
- package/es/shared/locales/index.d.ts +10 -6
- package/es/shared/locales/nb-NO.d.ts +5 -3
- package/es/shared/locales/nb-NO.js +7 -5
- package/es/shared/locales/nb-NO.js.map +1 -1
- package/es/shared/types.d.ts +5 -0
- package/es/shared/types.js.map +1 -1
- package/es/shared/useTheme.d.ts +1 -0
- package/es/style/dnb-ui-components.css +359 -171
- package/es/style/dnb-ui-components.min.css +3 -3
- package/es/style/dnb-ui-elements.css +25 -5
- package/es/style/dnb-ui-elements.min.css +1 -1
- package/es/style/dnb-ui-extensions.css +45 -15
- package/es/style/dnb-ui-extensions.min.css +1 -1
- package/es/style/dnb-ui-forms.css +45 -15
- 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 +25 -5
- package/es/style/themes/theme-eiendom/eiendom-theme-basis.min.css +1 -1
- package/es/style/themes/theme-eiendom/eiendom-theme-components.css +421 -195
- package/es/style/themes/theme-eiendom/eiendom-theme-components.min.css +4 -4
- package/es/style/themes/theme-eiendom/eiendom-theme-elements.css +25 -5
- package/es/style/themes/theme-eiendom/eiendom-theme-elements.min.css +1 -1
- package/es/style/themes/theme-eiendom/eiendom-theme-extensions.css +45 -15
- package/es/style/themes/theme-eiendom/eiendom-theme-extensions.min.css +1 -1
- package/es/style/themes/theme-eiendom/eiendom-theme-forms.css +45 -15
- package/es/style/themes/theme-eiendom/eiendom-theme-forms.min.css +1 -1
- package/es/style/themes/theme-sbanken/sbanken-theme-basis.css +26 -5
- package/es/style/themes/theme-sbanken/sbanken-theme-basis.min.css +1 -1
- package/es/style/themes/theme-sbanken/sbanken-theme-components.css +464 -204
- package/es/style/themes/theme-sbanken/sbanken-theme-components.min.css +8 -6
- package/es/style/themes/theme-sbanken/sbanken-theme-elements.css +26 -5
- package/es/style/themes/theme-sbanken/sbanken-theme-elements.min.css +1 -1
- package/es/style/themes/theme-sbanken/sbanken-theme-extensions.css +45 -15
- package/es/style/themes/theme-sbanken/sbanken-theme-extensions.min.css +1 -1
- package/es/style/themes/theme-sbanken/sbanken-theme-forms.css +45 -15
- package/es/style/themes/theme-sbanken/sbanken-theme-forms.min.css +1 -1
- package/es/style/themes/theme-ui/prism/dnb-prism-theme.d.ts +3 -3
- package/es/style/themes/theme-ui/ui-theme-basis.css +25 -5
- package/es/style/themes/theme-ui/ui-theme-basis.min.css +1 -1
- package/es/style/themes/theme-ui/ui-theme-components.css +421 -195
- package/es/style/themes/theme-ui/ui-theme-components.min.css +4 -4
- package/es/style/themes/theme-ui/ui-theme-elements.css +25 -5
- package/es/style/themes/theme-ui/ui-theme-elements.min.css +1 -1
- package/es/style/themes/theme-ui/ui-theme-extensions.css +45 -15
- package/es/style/themes/theme-ui/ui-theme-extensions.min.css +1 -1
- package/es/style/themes/theme-ui/ui-theme-forms.css +45 -15
- package/es/style/themes/theme-ui/ui-theme-forms.min.css +1 -1
- package/es/style/themes/theme-ui/ui-theme-tags.css +25 -5
- 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/Context.d.ts +1 -2
- package/extensions/forms/DataContext/Context.js.map +1 -1
- package/extensions/forms/DataContext/Provider/Provider.d.ts +1 -2
- package/extensions/forms/DataContext/Provider/Provider.js +54 -40
- package/extensions/forms/DataContext/Provider/Provider.js.map +1 -1
- package/extensions/forms/Field/Currency/Currency.js +1 -1
- package/extensions/forms/Field/Currency/Currency.js.map +1 -1
- package/extensions/forms/Field/Expiry/Expiry.js +1 -0
- package/extensions/forms/Field/Expiry/Expiry.js.map +1 -1
- package/extensions/forms/Field/FieldDocs.d.ts +3 -0
- package/extensions/forms/Field/FieldDocs.js +8 -0
- package/extensions/forms/Field/FieldDocs.js.map +1 -0
- package/extensions/forms/Field/Number/Number.d.ts +1 -0
- package/extensions/forms/Field/Number/Number.js +13 -7
- package/extensions/forms/Field/Number/Number.js.map +1 -1
- package/extensions/forms/Field/Number/NumberDocs.d.ts +2 -0
- package/extensions/forms/Field/Number/NumberDocs.js +85 -0
- package/extensions/forms/Field/Number/NumberDocs.js.map +1 -0
- package/extensions/forms/Field/Number/style/dnb-number.css +3 -1
- package/extensions/forms/Field/Number/style/dnb-number.min.css +1 -1
- package/extensions/forms/Field/Number/style/dnb-number.scss +4 -1
- package/extensions/forms/Field/Password/Password.d.ts +45 -0
- package/extensions/forms/Field/Password/Password.js +99 -0
- package/extensions/forms/Field/Password/Password.js.map +1 -0
- package/extensions/forms/Field/Password/index.d.ts +2 -0
- package/extensions/forms/Field/Password/index.js +3 -0
- package/extensions/forms/Field/Password/index.js.map +1 -0
- package/extensions/forms/Field/Password/style/dnb-password.css +6 -0
- package/extensions/forms/Field/Password/style/dnb-password.min.css +1 -0
- package/extensions/forms/Field/Password/style/dnb-password.scss +10 -0
- package/extensions/forms/Field/PostalCodeAndCity/PostalCodeAndCity.js +4 -5
- package/extensions/forms/Field/PostalCodeAndCity/PostalCodeAndCity.js.map +1 -1
- package/extensions/forms/Field/PostalCodeAndCity/style/dnb-postal-code-and-city.css +0 -12
- package/extensions/forms/Field/PostalCodeAndCity/style/dnb-postal-code-and-city.min.css +1 -1
- package/extensions/forms/Field/PostalCodeAndCity/style/dnb-postal-code-and-city.scss +0 -11
- package/extensions/forms/Field/Selection/Selection.d.ts +0 -1
- package/extensions/forms/Field/Selection/Selection.js +2 -11
- package/extensions/forms/Field/Selection/Selection.js.map +1 -1
- package/extensions/forms/Field/String/String.d.ts +20 -9
- package/extensions/forms/Field/String/String.js +52 -31
- package/extensions/forms/Field/String/String.js.map +1 -1
- package/extensions/forms/Field/String/StringDocs.d.ts +2 -0
- package/extensions/forms/Field/String/StringDocs.js +99 -0
- package/extensions/forms/Field/String/StringDocs.js.map +1 -0
- package/extensions/forms/Field/Toggle/Toggle.js +1 -1
- package/extensions/forms/Field/Toggle/Toggle.js.map +1 -1
- package/extensions/forms/Field/index.d.ts +1 -0
- package/extensions/forms/Field/index.js +1 -0
- package/extensions/forms/Field/index.js.map +1 -1
- package/extensions/forms/FieldBlock/FieldBlock.d.ts +8 -3
- package/extensions/forms/FieldBlock/FieldBlock.js +203 -64
- package/extensions/forms/FieldBlock/FieldBlock.js.map +1 -1
- package/extensions/forms/FieldBlock/FieldBlockContext.d.ts +39 -6
- package/extensions/forms/FieldBlock/FieldBlockContext.js.map +1 -1
- package/extensions/forms/FieldBlock/FieldBlockDocs.d.ts +2 -0
- package/extensions/forms/FieldBlock/FieldBlockDocs.js +53 -0
- package/extensions/forms/FieldBlock/FieldBlockDocs.js.map +1 -0
- package/extensions/forms/FieldBlock/style/dnb-field-block.css +29 -2
- package/extensions/forms/FieldBlock/style/dnb-field-block.min.css +1 -1
- package/extensions/forms/FieldBlock/style/dnb-field-block.scss +28 -0
- package/extensions/forms/Form/Appearance/Appearance.d.ts +7 -0
- package/extensions/forms/Form/Appearance/Appearance.js +30 -0
- package/extensions/forms/Form/Appearance/Appearance.js.map +1 -0
- package/extensions/forms/Form/Appearance/AppearanceDocs.d.ts +2 -0
- package/extensions/forms/Form/Appearance/AppearanceDocs.js +8 -0
- package/extensions/forms/Form/Appearance/AppearanceDocs.js.map +1 -0
- package/extensions/forms/Form/Appearance/index.d.ts +2 -0
- package/extensions/forms/Form/Appearance/index.js +3 -0
- package/extensions/forms/Form/Appearance/index.js.map +1 -0
- package/extensions/forms/Form/ButtonRow/style/dnb-form-button-row.css +6 -0
- 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 +10 -2
- package/extensions/forms/Form/data-context/useData.d.ts +1 -1
- package/extensions/forms/Form/data-context/useData.js +3 -19
- package/extensions/forms/Form/data-context/useData.js.map +1 -1
- package/extensions/forms/Form/data-context/useError.d.ts +2 -1
- package/extensions/forms/Form/data-context/useError.js +4 -2
- 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/Value/Currency/Currency.js +2 -2
- package/extensions/forms/Value/Currency/Currency.js.map +1 -1
- package/extensions/forms/Value/Number/Number.d.ts +2 -2
- package/extensions/forms/Value/Number/Number.js +1 -1
- package/extensions/forms/Value/Number/Number.js.map +1 -1
- package/extensions/forms/Value/SummaryList/SummaryList.d.ts +7 -0
- package/extensions/forms/Value/SummaryList/SummaryList.js +26 -0
- package/extensions/forms/Value/SummaryList/SummaryList.js.map +1 -0
- package/extensions/forms/Value/SummaryList/SummaryListContext.d.ts +7 -0
- package/extensions/forms/Value/SummaryList/SummaryListContext.js +4 -0
- package/extensions/forms/Value/SummaryList/SummaryListContext.js.map +1 -0
- package/extensions/forms/Value/SummaryList/index.d.ts +2 -0
- package/extensions/forms/Value/SummaryList/index.js +3 -0
- package/extensions/forms/Value/SummaryList/index.js.map +1 -0
- package/extensions/forms/Value/ValueDocs.d.ts +2 -0
- package/extensions/forms/Value/ValueDocs.js +33 -0
- package/extensions/forms/Value/ValueDocs.js.map +1 -0
- package/extensions/forms/Value/index.d.ts +1 -0
- package/extensions/forms/Value/index.js +1 -0
- package/extensions/forms/Value/index.js.map +1 -1
- package/extensions/forms/ValueBlock/ValueBlock.js +12 -4
- package/extensions/forms/ValueBlock/ValueBlock.js.map +1 -1
- package/extensions/forms/hooks/DataValueDocs.d.ts +3 -0
- package/extensions/forms/hooks/DataValueDocs.js +110 -0
- package/extensions/forms/hooks/DataValueDocs.js.map +1 -0
- package/extensions/forms/hooks/useDataValue.d.ts +6 -14
- package/extensions/forms/hooks/useDataValue.js +92 -23
- package/extensions/forms/hooks/useDataValue.js.map +1 -1
- package/extensions/forms/hooks/useId.js +1 -1
- package/extensions/forms/hooks/useId.js.map +1 -1
- package/extensions/forms/hooks/useMountEffect.js +1 -1
- package/extensions/forms/hooks/useMountEffect.js.map +1 -1
- package/extensions/forms/hooks/useMounted.d.ts +2 -0
- package/extensions/forms/hooks/useMounted.js +14 -0
- package/extensions/forms/hooks/useMounted.js.map +1 -0
- package/extensions/forms/hooks/useUnmountEffect.d.ts +4 -0
- package/extensions/forms/hooks/useUnmountEffect.js +9 -0
- package/extensions/forms/hooks/useUnmountEffect.js.map +1 -0
- package/extensions/forms/style/dnb-forms.css +45 -15
- package/extensions/forms/style/dnb-forms.min.css +1 -1
- package/extensions/forms/types.d.ts +6 -4
- package/extensions/forms/types.js.map +1 -1
- package/extensions/payment-card/utils/CardDesigns.d.ts +96 -96
- package/fragments/drawer-list/DrawerListHelpers.d.ts +52 -52
- package/package.json +1 -1
- package/shared/Context.d.ts +2 -0
- package/shared/Context.js.map +1 -1
- package/shared/Eufemia.d.ts +1 -1
- package/shared/Eufemia.js +2 -2
- package/shared/Eufemia.js.map +1 -1
- package/shared/Theme.d.ts +7 -1
- package/shared/Theme.js +20 -7
- package/shared/Theme.js.map +1 -1
- package/shared/component-helper.d.ts +1 -0
- package/shared/component-helper.js +9 -0
- package/shared/component-helper.js.map +1 -1
- package/shared/helpers/debounce.d.ts +37 -0
- package/shared/helpers/debounce.js +83 -0
- package/shared/helpers/debounce.js.map +1 -0
- package/shared/helpers/filterValidProps.d.ts +2 -2
- package/shared/helpers/filterValidProps.js +2 -2
- package/shared/helpers/filterValidProps.js.map +1 -1
- package/shared/helpers/useSharedState.d.ts +1 -0
- package/shared/helpers/useSharedState.js +49 -20
- package/shared/helpers/useSharedState.js.map +1 -1
- package/shared/helpers/withCamelCaseProps.d.ts +14 -1
- package/shared/helpers/withCamelCaseProps.js.map +1 -1
- package/shared/helpers.d.ts +1 -25
- package/shared/helpers.js +3 -36
- package/shared/helpers.js.map +1 -1
- package/shared/locales/en-GB.d.ts +5 -3
- package/shared/locales/en-GB.js +7 -5
- package/shared/locales/en-GB.js.map +1 -1
- package/shared/locales/en-US.d.ts +5 -3
- package/shared/locales/index.d.ts +10 -6
- package/shared/locales/nb-NO.d.ts +5 -3
- package/shared/locales/nb-NO.js +7 -5
- package/shared/locales/nb-NO.js.map +1 -1
- package/shared/types.d.ts +5 -0
- package/shared/types.js.map +1 -1
- package/shared/useTheme.d.ts +1 -0
- package/style/dnb-ui-components.css +359 -171
- package/style/dnb-ui-components.min.css +3 -3
- package/style/dnb-ui-elements.css +25 -5
- package/style/dnb-ui-elements.min.css +1 -1
- package/style/dnb-ui-extensions.css +45 -15
- package/style/dnb-ui-extensions.min.css +1 -1
- package/style/dnb-ui-forms.css +45 -15
- 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 +25 -5
- package/style/themes/theme-eiendom/eiendom-theme-basis.min.css +1 -1
- package/style/themes/theme-eiendom/eiendom-theme-components.css +421 -195
- package/style/themes/theme-eiendom/eiendom-theme-components.min.css +4 -4
- package/style/themes/theme-eiendom/eiendom-theme-elements.css +25 -5
- package/style/themes/theme-eiendom/eiendom-theme-elements.min.css +1 -1
- package/style/themes/theme-eiendom/eiendom-theme-extensions.css +45 -15
- package/style/themes/theme-eiendom/eiendom-theme-extensions.min.css +1 -1
- package/style/themes/theme-eiendom/eiendom-theme-forms.css +45 -15
- package/style/themes/theme-eiendom/eiendom-theme-forms.min.css +1 -1
- package/style/themes/theme-sbanken/sbanken-theme-basis.css +26 -5
- package/style/themes/theme-sbanken/sbanken-theme-basis.min.css +1 -1
- package/style/themes/theme-sbanken/sbanken-theme-components.css +464 -204
- package/style/themes/theme-sbanken/sbanken-theme-components.min.css +8 -6
- package/style/themes/theme-sbanken/sbanken-theme-elements.css +26 -5
- package/style/themes/theme-sbanken/sbanken-theme-elements.min.css +1 -1
- package/style/themes/theme-sbanken/sbanken-theme-extensions.css +45 -15
- package/style/themes/theme-sbanken/sbanken-theme-extensions.min.css +1 -1
- package/style/themes/theme-sbanken/sbanken-theme-forms.css +45 -15
- package/style/themes/theme-sbanken/sbanken-theme-forms.min.css +1 -1
- package/style/themes/theme-ui/prism/dnb-prism-theme.d.ts +3 -3
- package/style/themes/theme-ui/ui-theme-basis.css +25 -5
- package/style/themes/theme-ui/ui-theme-basis.min.css +1 -1
- package/style/themes/theme-ui/ui-theme-components.css +421 -195
- package/style/themes/theme-ui/ui-theme-components.min.css +4 -4
- package/style/themes/theme-ui/ui-theme-elements.css +25 -5
- package/style/themes/theme-ui/ui-theme-elements.min.css +1 -1
- package/style/themes/theme-ui/ui-theme-extensions.css +45 -15
- package/style/themes/theme-ui/ui-theme-extensions.min.css +1 -1
- package/style/themes/theme-ui/ui-theme-forms.css +45 -15
- package/style/themes/theme-ui/ui-theme-forms.min.css +1 -1
- package/style/themes/theme-ui/ui-theme-tags.css +25 -5
- 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/components/table/TableAccordionContent.d.ts +0 -18
- package/cjs/components/table/TableAccordionContent.js.map +0 -1
- package/components/table/TableAccordionContent.d.ts +0 -18
- package/components/table/TableAccordionContent.js.map +0 -1
- package/es/components/table/TableAccordionContent.d.ts +0 -18
- package/es/components/table/TableAccordionContent.js.map +0 -1
|
@@ -1,17 +1,22 @@
|
|
|
1
1
|
import React from 'react';
|
|
2
|
+
import { StateTypes, FieldBlockContextProps } from './FieldBlockContext';
|
|
2
3
|
import { ComponentProps, FieldProps } from '../types';
|
|
4
|
+
export declare const states: Array<StateTypes>;
|
|
3
5
|
export type Props = Pick<FieldProps, keyof ComponentProps | 'layout' | 'label' | 'labelDescription' | 'info' | 'warning' | 'error' | 'disabled'> & {
|
|
6
|
+
/** The id to link a element with */
|
|
4
7
|
forId?: string;
|
|
5
|
-
contentClassName?: string;
|
|
6
|
-
children: React.ReactNode;
|
|
7
8
|
/** Use true if you have more than one form element */
|
|
8
9
|
asFieldset?: boolean;
|
|
10
|
+
/** Defines the layout of nested fields */
|
|
11
|
+
composition?: FieldBlockContextProps['composition'];
|
|
9
12
|
/** Width of outer block element */
|
|
10
13
|
width?: false | 'small' | 'medium' | 'large' | 'stretch';
|
|
11
14
|
/** Width of contents block, while label etc can be wider if space is available */
|
|
12
15
|
contentWidth?: 'small' | 'medium' | 'large' | 'stretch';
|
|
16
|
+
contentClassName?: string;
|
|
13
17
|
/** Typography size */
|
|
14
|
-
|
|
18
|
+
labelSize?: 'medium' | 'large';
|
|
19
|
+
children: React.ReactNode;
|
|
15
20
|
} & React.HTMLAttributes<HTMLDivElement>;
|
|
16
21
|
declare function FieldBlock(props: Props): import("react/jsx-runtime").JSX.Element;
|
|
17
22
|
declare namespace FieldBlock {
|
|
@@ -3,23 +3,27 @@
|
|
|
3
3
|
import _extends from "@babel/runtime/helpers/esm/extends";
|
|
4
4
|
import _defineProperty from "@babel/runtime/helpers/esm/defineProperty";
|
|
5
5
|
import _objectWithoutProperties from "@babel/runtime/helpers/esm/objectWithoutProperties";
|
|
6
|
-
const _excluded = ["className", "forId", "layout", "label", "labelDescription", "asFieldset", "info", "warning", "error", "disabled", "width", "contentWidth", "
|
|
7
|
-
function _toPropertyKey(arg) { var key = _toPrimitive(arg, "string"); return typeof key === "symbol" ? key : String(key); }
|
|
8
|
-
function _toPrimitive(input, hint) { if (typeof input !== "object" || input === null) return input; var prim = input[Symbol.toPrimitive]; if (prim !== undefined) { var res = prim.call(input, hint || "default"); if (typeof res !== "object") return res; throw new TypeError("@@toPrimitive must return a primitive value."); } return (hint === "string" ? String : Number)(input); }
|
|
6
|
+
const _excluded = ["className", "forId", "layout", "composition", "label", "labelDescription", "asFieldset", "info", "warning", "error", "disabled", "width", "contentWidth", "labelSize", "contentClassName", "children"];
|
|
9
7
|
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; }
|
|
10
8
|
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; }
|
|
11
|
-
import React, { useMemo, useContext,
|
|
9
|
+
import React, { useMemo, useContext, useCallback, useRef, useReducer, useEffect } from 'react';
|
|
12
10
|
import classnames from 'classnames';
|
|
11
|
+
import SharedContext from '../../../shared/Context';
|
|
12
|
+
import FieldBlockContext from './FieldBlockContext';
|
|
13
13
|
import { Space, FormLabel, FormStatus } from '../../../components';
|
|
14
|
+
import { Ul, Li } from '../../../elements';
|
|
15
|
+
import { convertJsxToString, findElementInChildren } from '../../../shared/component-helper';
|
|
16
|
+
import useId from '../hooks/useId';
|
|
14
17
|
import { FormError } from '../types';
|
|
15
|
-
import
|
|
16
|
-
|
|
18
|
+
import useUnmountEffect from '../hooks/useUnmountEffect';
|
|
19
|
+
export const states = ['error', 'info', 'warning'];
|
|
17
20
|
function FieldBlock(props) {
|
|
18
21
|
const nestedFieldBlockContext = useContext(FieldBlockContext);
|
|
19
22
|
const {
|
|
20
23
|
className,
|
|
21
24
|
forId,
|
|
22
25
|
layout = 'vertical',
|
|
26
|
+
composition,
|
|
23
27
|
label,
|
|
24
28
|
labelDescription,
|
|
25
29
|
asFieldset,
|
|
@@ -29,64 +33,177 @@ function FieldBlock(props) {
|
|
|
29
33
|
disabled,
|
|
30
34
|
width,
|
|
31
35
|
contentWidth,
|
|
32
|
-
|
|
36
|
+
labelSize,
|
|
33
37
|
contentClassName,
|
|
34
38
|
children
|
|
35
39
|
} = props,
|
|
36
40
|
rest = _objectWithoutProperties(props, _excluded);
|
|
37
|
-
const
|
|
38
|
-
const [
|
|
39
|
-
const
|
|
41
|
+
const blockId = useId(props.id);
|
|
42
|
+
const [wasUpdated, forceUpdate] = useReducer(() => ({}), {});
|
|
43
|
+
const mountedFieldsRef = useRef({});
|
|
44
|
+
const stateRecordRef = useRef({});
|
|
45
|
+
const fieldStateIdsRef = useRef(null);
|
|
46
|
+
const contentsRef = useRef(null);
|
|
47
|
+
const hasInitiallyErrorProp = useMemo(() => {
|
|
48
|
+
return Boolean(errorProp);
|
|
49
|
+
}, []);
|
|
50
|
+
const setInternalRecord = useCallback(props => {
|
|
51
|
+
const {
|
|
52
|
+
stateId,
|
|
53
|
+
identifier,
|
|
54
|
+
type
|
|
55
|
+
} = props;
|
|
56
|
+
if (!stateRecordRef.current[identifier]) {
|
|
57
|
+
stateRecordRef.current[identifier] = [];
|
|
58
|
+
}
|
|
59
|
+
fieldStateIdsRef.current = {
|
|
60
|
+
error: null,
|
|
61
|
+
warning: null,
|
|
62
|
+
info: null
|
|
63
|
+
};
|
|
64
|
+
const existingIndex = stateRecordRef.current[identifier].findIndex(item => {
|
|
65
|
+
return item.stateId === stateId && item.type === type;
|
|
66
|
+
});
|
|
67
|
+
if (existingIndex > -1) {
|
|
68
|
+
stateRecordRef.current[identifier][existingIndex] = _objectSpread(_objectSpread({}, stateRecordRef.current[identifier][existingIndex]), props);
|
|
69
|
+
} else {
|
|
70
|
+
stateRecordRef.current[identifier].push(props);
|
|
71
|
+
}
|
|
72
|
+
}, []);
|
|
73
|
+
const setFieldState = useCallback(props => {
|
|
40
74
|
if (nestedFieldBlockContext) {
|
|
41
|
-
nestedFieldBlockContext.
|
|
75
|
+
nestedFieldBlockContext.setFieldState(props);
|
|
42
76
|
return;
|
|
43
77
|
}
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
});
|
|
49
|
-
} else {
|
|
50
|
-
const {
|
|
51
|
-
[identifier]: removed
|
|
52
|
-
} = existing,
|
|
53
|
-
newRecord = _objectWithoutProperties(existing, [identifier].map(_toPropertyKey));
|
|
54
|
-
return newRecord;
|
|
55
|
-
}
|
|
56
|
-
});
|
|
57
|
-
}, [nestedFieldBlockContext]);
|
|
58
|
-
const setShowError = useCallback((identifier, show) => {
|
|
78
|
+
setInternalRecord(props);
|
|
79
|
+
forceUpdate();
|
|
80
|
+
}, [nestedFieldBlockContext, setInternalRecord]);
|
|
81
|
+
const showFieldError = useCallback((identifier, show) => {
|
|
59
82
|
if (nestedFieldBlockContext) {
|
|
60
|
-
nestedFieldBlockContext.
|
|
83
|
+
nestedFieldBlockContext.showFieldError(identifier, show);
|
|
61
84
|
return;
|
|
62
85
|
}
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
86
|
+
if (stateRecordRef.current[identifier]) {
|
|
87
|
+
stateRecordRef.current[identifier] = stateRecordRef.current[identifier].map(item => {
|
|
88
|
+
if (item.showInitially) {
|
|
89
|
+
return item;
|
|
90
|
+
}
|
|
91
|
+
return _objectSpread(_objectSpread({}, item), {}, {
|
|
92
|
+
show
|
|
67
93
|
});
|
|
68
|
-
}
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
} = existing,
|
|
72
|
-
newRecord = _objectWithoutProperties(existing, [identifier].map(_toPropertyKey));
|
|
73
|
-
return newRecord;
|
|
74
|
-
}
|
|
75
|
-
});
|
|
94
|
+
});
|
|
95
|
+
forceUpdate();
|
|
96
|
+
}
|
|
76
97
|
}, [nestedFieldBlockContext]);
|
|
77
|
-
const
|
|
98
|
+
const statusContent = useMemo(() => {
|
|
78
99
|
if (errorProp) {
|
|
79
|
-
|
|
100
|
+
setInternalRecord({
|
|
101
|
+
identifier: blockId,
|
|
102
|
+
showInitially: hasInitiallyErrorProp,
|
|
103
|
+
type: 'error',
|
|
104
|
+
state: errorProp
|
|
105
|
+
});
|
|
80
106
|
}
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
|
|
107
|
+
if (warning) {
|
|
108
|
+
setInternalRecord({
|
|
109
|
+
identifier: blockId,
|
|
110
|
+
showInitially: true,
|
|
111
|
+
type: 'warning',
|
|
112
|
+
state: warning
|
|
113
|
+
});
|
|
114
|
+
}
|
|
115
|
+
if (info) {
|
|
116
|
+
setInternalRecord({
|
|
117
|
+
identifier: blockId,
|
|
118
|
+
showInitially: true,
|
|
119
|
+
type: 'info',
|
|
120
|
+
state: info
|
|
121
|
+
});
|
|
122
|
+
}
|
|
123
|
+
const statesWithMessages = Object.entries(stateRecordRef.current).flatMap(_ref => {
|
|
124
|
+
let [identifier, states] = _ref;
|
|
125
|
+
return states.map(props => {
|
|
126
|
+
return _objectSpread({
|
|
127
|
+
identifier
|
|
128
|
+
}, props);
|
|
129
|
+
});
|
|
130
|
+
}).reduce((acc, cur) => {
|
|
131
|
+
const existing = acc.find(item => {
|
|
132
|
+
return item.type === cur.type;
|
|
133
|
+
});
|
|
134
|
+
const message = getMessage(cur);
|
|
135
|
+
if (existing) {
|
|
136
|
+
existing.messages.push(_objectSpread(_objectSpread({}, cur), {}, {
|
|
137
|
+
message
|
|
138
|
+
}));
|
|
139
|
+
} else {
|
|
140
|
+
acc.push(_objectSpread(_objectSpread({}, cur), {}, {
|
|
141
|
+
state: undefined,
|
|
142
|
+
messages: [_objectSpread(_objectSpread({}, cur), {}, {
|
|
143
|
+
message
|
|
144
|
+
})]
|
|
145
|
+
}));
|
|
146
|
+
}
|
|
147
|
+
return acc;
|
|
148
|
+
}, []);
|
|
149
|
+
return states.reduce((acc, type) => {
|
|
150
|
+
const id = `${props.id || forId || blockId}-form-status--${type}`;
|
|
151
|
+
acc[type] = {
|
|
152
|
+
id,
|
|
153
|
+
label,
|
|
154
|
+
state: type === 'warning' ? 'warn' : type,
|
|
155
|
+
width_element: contentsRef,
|
|
156
|
+
no_animation: process.env.NODE_ENV === 'test' ? true : typeof globalThis !== 'undefined' ? globalThis.IS_TEST === true : false
|
|
157
|
+
};
|
|
158
|
+
const found = statesWithMessages.find(item => {
|
|
159
|
+
return item.type === type;
|
|
160
|
+
});
|
|
161
|
+
if (found !== null && found !== void 0 && found.messages) {
|
|
162
|
+
const messages = found.messages.map(msg => {
|
|
163
|
+
if (msg.type === 'error') {
|
|
164
|
+
if (!msg.showInitially && !msg.show) {
|
|
165
|
+
msg.message = null;
|
|
166
|
+
}
|
|
167
|
+
}
|
|
168
|
+
return msg;
|
|
169
|
+
}).filter(_ref2 => {
|
|
170
|
+
let {
|
|
171
|
+
message
|
|
172
|
+
} = _ref2;
|
|
173
|
+
return message;
|
|
174
|
+
}).reduce((acc, msg, i, arr) => {
|
|
175
|
+
const existingIndex = arr.findIndex(item => {
|
|
176
|
+
return convertJsxToString(item.message) === convertJsxToString(msg.message);
|
|
177
|
+
});
|
|
178
|
+
if (existingIndex === i) {
|
|
179
|
+
acc.push(msg);
|
|
180
|
+
}
|
|
181
|
+
return acc;
|
|
182
|
+
}, []);
|
|
183
|
+
if (messages.length > 0) {
|
|
184
|
+
acc[type] = _objectSpread(_objectSpread({}, acc[type]), {}, {
|
|
185
|
+
text: React.createElement(CombineMessages, {
|
|
186
|
+
type: type,
|
|
187
|
+
messages: messages
|
|
188
|
+
})
|
|
189
|
+
});
|
|
190
|
+
fieldStateIdsRef.current[type] = id;
|
|
191
|
+
} else {
|
|
192
|
+
fieldStateIdsRef.current[type] = undefined;
|
|
193
|
+
}
|
|
194
|
+
}
|
|
195
|
+
return acc;
|
|
196
|
+
}, {});
|
|
197
|
+
}, [info, warning, errorProp, nestedFieldBlockContext, setInternalRecord, blockId, wasUpdated]);
|
|
198
|
+
useEffect(() => {
|
|
199
|
+
if (!nestedFieldBlockContext) {
|
|
200
|
+
showFieldError(blockId, Boolean(errorProp));
|
|
201
|
+
}
|
|
202
|
+
}, [errorProp, blockId, showFieldError, nestedFieldBlockContext]);
|
|
203
|
+
useUnmountEffect(() => () => {
|
|
204
|
+
mountedFieldsRef.current = {};
|
|
205
|
+
stateRecordRef.current = {};
|
|
206
|
+
});
|
|
90
207
|
const mainClasses = classnames('dnb-forms-field-block', className, width !== undefined && `dnb-forms-field-block--width-${width}`);
|
|
91
208
|
const gridClasses = `dnb-forms-field-block__grid dnb-forms-field-block--layout-${layout}`;
|
|
92
209
|
const enableFieldset = useEnableFieldset({
|
|
@@ -95,8 +212,6 @@ function FieldBlock(props) {
|
|
|
95
212
|
children,
|
|
96
213
|
nestedFieldBlockContext
|
|
97
214
|
});
|
|
98
|
-
const state = error || warning || info;
|
|
99
|
-
const stateStatus = error ? 'error' : warning ? 'warn' : info ? 'info' : null;
|
|
100
215
|
const labelProps = {
|
|
101
216
|
element: enableFieldset ? 'legend' : 'label',
|
|
102
217
|
forId: enableFieldset ? undefined : forId,
|
|
@@ -104,13 +219,17 @@ function FieldBlock(props) {
|
|
|
104
219
|
top: 0,
|
|
105
220
|
bottom: 'x-small'
|
|
106
221
|
},
|
|
107
|
-
size,
|
|
222
|
+
size: labelSize,
|
|
108
223
|
disabled
|
|
109
224
|
};
|
|
110
225
|
return React.createElement(FieldBlockContext.Provider, {
|
|
111
226
|
value: {
|
|
112
|
-
|
|
113
|
-
|
|
227
|
+
setFieldState,
|
|
228
|
+
showFieldError,
|
|
229
|
+
hasErrorProp: Boolean(errorProp),
|
|
230
|
+
fieldStateIdsRef,
|
|
231
|
+
mountedFieldsRef,
|
|
232
|
+
composition
|
|
114
233
|
}
|
|
115
234
|
}, React.createElement(Space, _extends({
|
|
116
235
|
element: enableFieldset ? 'fieldset' : 'div',
|
|
@@ -122,16 +241,11 @@ function FieldBlock(props) {
|
|
|
122
241
|
}, label || labelDescription ? React.createElement(FormLabel, labelProps, label, labelDescription && React.createElement("span", {
|
|
123
242
|
className: "dnb-forms-field-block__label-description"
|
|
124
243
|
}, labelDescription)) : React.createElement(React.Fragment, null, "\xA0")) : label && React.createElement(FormLabel, labelProps, label), React.createElement("div", {
|
|
125
|
-
className: classnames('dnb-forms-field-block__contents', contentClassName, contentWidth !== undefined && `dnb-forms-field-block__contents--width-${contentWidth}`)
|
|
126
|
-
}, children), React.createElement("div", {
|
|
127
244
|
className: "dnb-forms-field-block__status"
|
|
128
|
-
}, React.createElement(FormStatus, {
|
|
129
|
-
|
|
130
|
-
|
|
131
|
-
|
|
132
|
-
label: label,
|
|
133
|
-
no_animation: process.env.NODE_ENV === 'test' ? true : typeof globalThis !== 'undefined' ? globalThis.IS_TEST === true : false
|
|
134
|
-
})))));
|
|
245
|
+
}, React.createElement(FormStatus, statusContent === null || statusContent === void 0 ? void 0 : statusContent.error), React.createElement(FormStatus, statusContent === null || statusContent === void 0 ? void 0 : statusContent.warning), React.createElement(FormStatus, statusContent === null || statusContent === void 0 ? void 0 : statusContent.info)), React.createElement("div", {
|
|
246
|
+
className: classnames('dnb-forms-field-block__contents', contentClassName, contentWidth !== undefined && `dnb-forms-field-block__contents--width-${contentWidth}`, composition !== undefined && `dnb-forms-field-block__contents__composition--${composition === true ? 'horizontal' : composition}`),
|
|
247
|
+
ref: contentsRef
|
|
248
|
+
}, children))));
|
|
135
249
|
}
|
|
136
250
|
function useEnableFieldset(_ref3) {
|
|
137
251
|
let {
|
|
@@ -160,6 +274,31 @@ function useEnableFieldset(_ref3) {
|
|
|
160
274
|
return Boolean(result);
|
|
161
275
|
}, [asFieldset, children, label, nestedFieldBlockContext]);
|
|
162
276
|
}
|
|
277
|
+
function CombineMessages(_ref4) {
|
|
278
|
+
let {
|
|
279
|
+
type,
|
|
280
|
+
messages
|
|
281
|
+
} = _ref4;
|
|
282
|
+
const sharedContext = useContext(SharedContext);
|
|
283
|
+
const tr = sharedContext === null || sharedContext === void 0 ? void 0 : sharedContext.translation.Forms;
|
|
284
|
+
if (messages.length === 1) {
|
|
285
|
+
return React.createElement(React.Fragment, null, messages[0].message);
|
|
286
|
+
}
|
|
287
|
+
return React.createElement(React.Fragment, null, type === 'error' ? tr.fieldErrorSummary : tr.fieldStateSummary, React.createElement(Ul, null, messages.map((_ref5, i) => {
|
|
288
|
+
let {
|
|
289
|
+
message
|
|
290
|
+
} = _ref5;
|
|
291
|
+
return React.createElement(Li, {
|
|
292
|
+
key: i
|
|
293
|
+
}, message);
|
|
294
|
+
})));
|
|
295
|
+
}
|
|
296
|
+
function getMessage(item) {
|
|
297
|
+
const {
|
|
298
|
+
state
|
|
299
|
+
} = item;
|
|
300
|
+
return state instanceof Error && state.message || state instanceof FormError && state.message || (state === null || state === void 0 ? void 0 : state.toString()) || state;
|
|
301
|
+
}
|
|
163
302
|
FieldBlock._supportsSpacingProps = true;
|
|
164
303
|
export default FieldBlock;
|
|
165
304
|
//# sourceMappingURL=FieldBlock.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"FieldBlock.js","names":["React","useMemo","useContext","useState","useCallback","classnames","Space","FormLabel","FormStatus","FormError","FieldBlockContext","findElementInChildren","FieldBlock","props","nestedFieldBlockContext","className","forId","layout","label","labelDescription","asFieldset","info","warning","error","errorProp","disabled","width","contentWidth","size","contentClassName","children","rest","_objectWithoutProperties","_excluded","fieldErrorRecord","setFieldErrorRecord","showFieldErrorRecord","setShowFieldErrorRecord","setError","identifier","existing","_objectSpread","removed","newRecord","map","_toPropertyKey","setShowError","show","errors","Object","entries","filter","_ref","_ref2","length","Error","message","join","undefined","mainClasses","gridClasses","enableFieldset","useEnableFieldset","state","stateStatus","labelProps","element","space","top","bottom","createElement","Provider","value","_extends","Fragment","id","text","toString","no_animation","process","env","NODE_ENV","globalThis","IS_TEST","_ref3","result","count","child","_child$props","_child$type","type","Boolean","_supportsSpacingProps"],"sources":["../../../../../src/extensions/forms/FieldBlock/FieldBlock.tsx"],"sourcesContent":["import React, { useMemo, useContext, useState, useCallback } from 'react'\nimport classnames from 'classnames'\nimport { Space, FormLabel, FormStatus } from '../../../components'\nimport { FormError, ComponentProps, FieldProps } from '../types'\nimport FieldBlockContext from './FieldBlockContext'\nimport { findElementInChildren } from '../../../shared/component-helper'\nimport type { FormLabelAllProps } from '../../../components/FormLabel'\n\nexport type Props = Pick<\n FieldProps,\n | keyof ComponentProps\n | 'layout'\n | 'label'\n | 'labelDescription'\n | 'info'\n | 'warning'\n | 'error'\n | 'disabled'\n> & {\n forId?: string\n contentClassName?: string\n children: React.ReactNode\n /** Use true if you have more than one form element */\n asFieldset?: boolean\n /** Width of outer block element */\n width?: false | 'small' | 'medium' | 'large' | 'stretch'\n /** Width of contents block, while label etc can be wider if space is available */\n contentWidth?: 'small' | 'medium' | 'large' | 'stretch'\n /** Typography size */\n size?: 'medium' | 'large'\n} & React.HTMLAttributes<HTMLDivElement>\n\nfunction FieldBlock(props: Props) {\n const nestedFieldBlockContext = useContext(FieldBlockContext)\n\n const {\n className,\n forId,\n layout = 'vertical',\n label,\n labelDescription,\n asFieldset,\n info,\n warning,\n error: errorProp,\n disabled,\n width,\n contentWidth,\n size,\n contentClassName,\n children,\n ...rest\n } = props\n\n const [fieldErrorRecord, setFieldErrorRecord] = useState<\n Record<string, FormError>\n >({})\n const [showFieldErrorRecord, setShowFieldErrorRecord] = useState<\n Record<string, boolean>\n >({})\n\n const setError = useCallback(\n (identifier, error) => {\n if (nestedFieldBlockContext) {\n // If this FieldBlock is inside another one, forward the call to the outer one\n nestedFieldBlockContext.setError(identifier, error)\n return\n }\n\n setFieldErrorRecord((existing) => {\n if (error) {\n return {\n ...existing,\n [identifier]: error,\n }\n } else {\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\n const { [identifier]: removed, ...newRecord } = existing\n return newRecord\n }\n })\n },\n [nestedFieldBlockContext]\n )\n\n const setShowError = useCallback(\n (identifier, show) => {\n if (nestedFieldBlockContext) {\n // If this FieldBlock is inside another one, forward the call to the outer one\n nestedFieldBlockContext.setShowError(identifier, show)\n return\n }\n\n setShowFieldErrorRecord((existing) => {\n if (show) {\n return {\n ...existing,\n [identifier]: true,\n }\n } else {\n const { [identifier]: removed, ...newRecord } = existing\n return newRecord\n }\n })\n },\n [nestedFieldBlockContext]\n )\n\n const error = useMemo(() => {\n if (errorProp) {\n return errorProp\n }\n const errors = Object.entries(fieldErrorRecord)\n .filter(([identifier]) => showFieldErrorRecord[identifier] === true)\n .map(([, error]) => error)\n return errors.length > 0\n ? new Error(errors.map((error) => error.message).join(' | '))\n : undefined\n }, [errorProp, fieldErrorRecord, showFieldErrorRecord])\n\n const mainClasses = classnames(\n 'dnb-forms-field-block',\n width !== undefined && `dnb-forms-field-block--width-${width}`,\n className\n )\n const gridClasses = classnames(\n 'dnb-forms-field-block__grid',\n `dnb-forms-field-block--layout-${layout}`\n )\n\n // A child component with a label was found, use fieldset/legend instead of div/label\n const enableFieldset = useEnableFieldset({\n label,\n asFieldset,\n children,\n nestedFieldBlockContext,\n })\n\n const state = error || warning || info\n const stateStatus = error\n ? 'error'\n : warning\n ? 'warn'\n : info\n ? 'info'\n : null\n\n const labelProps: FormLabelAllProps = {\n element: enableFieldset ? 'legend' : 'label',\n forId: enableFieldset ? undefined : forId,\n space: { top: 0, bottom: 'x-small' },\n size,\n disabled,\n }\n\n return (\n <FieldBlockContext.Provider\n value={{\n setError,\n setShowError,\n }}\n >\n <Space\n element={enableFieldset ? 'fieldset' : 'div'} // use fieldset and legend to enhance a11y\n className={mainClasses}\n {...rest}\n >\n <div className={gridClasses}>\n {labelDescription ? (\n <div className=\"dnb-forms-field-block__label\">\n {label || labelDescription ? (\n <FormLabel {...labelProps}>\n {label}\n {labelDescription && (\n <span className=\"dnb-forms-field-block__label-description\">\n {labelDescription}\n </span>\n )}\n </FormLabel>\n ) : (\n <> </>\n )}\n </div>\n ) : (\n label && <FormLabel {...labelProps}>{label}</FormLabel>\n )}\n\n <div\n className={classnames(\n 'dnb-forms-field-block__contents',\n contentWidth !== undefined &&\n `dnb-forms-field-block__contents--width-${contentWidth}`,\n contentClassName\n )}\n >\n {children}\n </div>\n\n <div className=\"dnb-forms-field-block__status\">\n <FormStatus\n state={stateStatus}\n id={forId ? `${forId}-form-status` : undefined}\n text={\n error?.message ||\n (state instanceof Error && state.message) ||\n (state instanceof FormError && state.message) ||\n state?.toString()\n }\n label={label as string}\n no_animation={\n process.env.NODE_ENV === 'test'\n ? true\n : // We may enable animation in the future\n typeof globalThis !== 'undefined'\n ? globalThis.IS_TEST === true\n : false\n }\n />\n </div>\n </div>\n </Space>\n </FieldBlockContext.Provider>\n )\n}\n\nfunction useEnableFieldset({\n label,\n asFieldset,\n children,\n nestedFieldBlockContext,\n}) {\n return useMemo(() => {\n if (asFieldset === false) {\n return false\n }\n\n let result = asFieldset\n\n if (label && !result && !nestedFieldBlockContext) {\n let count = 0\n\n findElementInChildren(children, (child: React.ReactElement) => {\n if (\n child?.props?.label ||\n child?.type?.['_formElement'] === true\n ) {\n count++\n }\n if (count > 1) {\n return (result = true)\n }\n })\n }\n\n return Boolean(result)\n }, [asFieldset, children, label, nestedFieldBlockContext])\n}\n\nFieldBlock._supportsSpacingProps = true\nexport default FieldBlock\n"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"FieldBlock.js","names":["React","useMemo","useContext","useCallback","useRef","useReducer","useEffect","classnames","SharedContext","FieldBlockContext","Space","FormLabel","FormStatus","Ul","Li","convertJsxToString","findElementInChildren","useId","FormError","useUnmountEffect","states","FieldBlock","props","nestedFieldBlockContext","className","forId","layout","composition","label","labelDescription","asFieldset","info","warning","error","errorProp","disabled","width","contentWidth","labelSize","contentClassName","children","rest","_objectWithoutProperties","_excluded","blockId","id","wasUpdated","forceUpdate","mountedFieldsRef","stateRecordRef","fieldStateIdsRef","contentsRef","hasInitiallyErrorProp","Boolean","setInternalRecord","stateId","identifier","type","current","existingIndex","findIndex","item","_objectSpread","push","setFieldState","showFieldError","show","map","showInitially","statusContent","state","statesWithMessages","Object","entries","flatMap","_ref","reduce","acc","cur","existing","find","message","getMessage","messages","undefined","width_element","no_animation","process","env","NODE_ENV","globalThis","IS_TEST","found","msg","filter","_ref2","i","arr","length","text","createElement","CombineMessages","mainClasses","gridClasses","enableFieldset","useEnableFieldset","labelProps","element","space","top","bottom","size","Provider","value","hasErrorProp","_extends","Fragment","ref","_ref3","result","count","child","_child$props","_child$type","_ref4","sharedContext","tr","translation","Forms","fieldErrorSummary","fieldStateSummary","_ref5","key","Error","toString","_supportsSpacingProps"],"sources":["../../../../../src/extensions/forms/FieldBlock/FieldBlock.tsx"],"sourcesContent":["import React, {\n useMemo,\n useContext,\n useCallback,\n useRef,\n useReducer,\n useEffect,\n} from 'react'\nimport classnames from 'classnames'\nimport SharedContext from '../../../shared/Context'\nimport FieldBlockContext, {\n StateWithMessage,\n StatesWithMessages,\n FieldErrorIdsRef,\n MountedFieldsRef,\n StateRecord,\n StateMessage,\n StateTypes,\n StatusContent,\n FieldBlockContextProps,\n} from './FieldBlockContext'\nimport { Space, FormLabel, FormStatus } from '../../../components'\nimport { Ul, Li } from '../../../elements'\nimport {\n convertJsxToString,\n findElementInChildren,\n} from '../../../shared/component-helper'\nimport useId from '../hooks/useId'\nimport {\n ComponentProps,\n FieldProps,\n FormError,\n Identifier,\n} from '../types'\nimport type { FormLabelAllProps } from '../../../components/FormLabel'\nimport useUnmountEffect from '../hooks/useUnmountEffect'\n\nexport const states: Array<StateTypes> = ['error', 'info', 'warning']\n\nexport type Props = Pick<\n FieldProps,\n | keyof ComponentProps\n | 'layout'\n | 'label'\n | 'labelDescription'\n | 'info'\n | 'warning'\n | 'error'\n | 'disabled'\n> & {\n /** The id to link a element with */\n forId?: string\n /** Use true if you have more than one form element */\n asFieldset?: boolean\n /** Defines the layout of nested fields */\n composition?: FieldBlockContextProps['composition']\n /** Width of outer block element */\n width?: false | 'small' | 'medium' | 'large' | 'stretch'\n /** Width of contents block, while label etc can be wider if space is available */\n contentWidth?: 'small' | 'medium' | 'large' | 'stretch'\n contentClassName?: string\n /** Typography size */\n labelSize?: 'medium' | 'large'\n children: React.ReactNode\n} & React.HTMLAttributes<HTMLDivElement>\n\nfunction FieldBlock(props: Props) {\n const nestedFieldBlockContext = useContext(FieldBlockContext)\n\n const {\n className,\n forId,\n layout = 'vertical',\n composition,\n label,\n labelDescription,\n asFieldset,\n info,\n warning,\n error: errorProp,\n disabled,\n width,\n contentWidth,\n labelSize,\n contentClassName,\n children,\n ...rest\n } = props\n\n const blockId = useId(props.id)\n const [wasUpdated, forceUpdate] = useReducer(() => ({}), {})\n const mountedFieldsRef = useRef<MountedFieldsRef>({})\n const stateRecordRef = useRef<StateRecord>({})\n const fieldStateIdsRef = useRef<FieldErrorIdsRef>(null)\n const contentsRef = useRef<HTMLDivElement>(null)\n const hasInitiallyErrorProp = useMemo(() => {\n return Boolean(errorProp)\n }, []) // eslint-disable-line react-hooks/exhaustive-deps\n\n const setInternalRecord = useCallback((props) => {\n const { stateId, identifier, type } = props\n\n if (!stateRecordRef.current[identifier]) {\n stateRecordRef.current[identifier] = []\n }\n\n fieldStateIdsRef.current = { error: null, warning: null, info: null }\n\n const existingIndex = stateRecordRef.current[identifier].findIndex(\n (item) => {\n return item.stateId === stateId && item.type === type\n }\n )\n\n if (existingIndex > -1) {\n stateRecordRef.current[identifier][existingIndex] = {\n ...stateRecordRef.current[identifier][existingIndex],\n ...props,\n }\n } else {\n stateRecordRef.current[identifier].push(props)\n }\n }, [])\n\n const setFieldState = useCallback(\n (props) => {\n if (nestedFieldBlockContext) {\n // If this FieldBlock is inside another one, forward the call to the outer one\n nestedFieldBlockContext.setFieldState(props)\n return\n }\n\n setInternalRecord(props)\n\n forceUpdate()\n },\n [nestedFieldBlockContext, setInternalRecord]\n )\n\n const showFieldError = useCallback(\n (identifier: Identifier, show: boolean) => {\n if (nestedFieldBlockContext) {\n // If this FieldBlock is inside another one, forward the call to the outer one\n nestedFieldBlockContext.showFieldError(identifier, show)\n return\n }\n\n if (stateRecordRef.current[identifier]) {\n stateRecordRef.current[identifier] = stateRecordRef.current[\n identifier\n ].map((item) => {\n if (item.showInitially) {\n return item\n }\n\n return {\n ...item,\n show,\n }\n })\n\n forceUpdate()\n }\n },\n [nestedFieldBlockContext]\n )\n\n const statusContent = useMemo(() => {\n if (errorProp) {\n setInternalRecord({\n identifier: blockId,\n showInitially: hasInitiallyErrorProp,\n type: 'error',\n state: errorProp,\n })\n }\n\n if (warning) {\n setInternalRecord({\n identifier: blockId,\n showInitially: true,\n type: 'warning',\n state: warning,\n })\n }\n\n if (info) {\n setInternalRecord({\n identifier: blockId,\n showInitially: true,\n type: 'info',\n state: info,\n })\n }\n\n const statesWithMessages: Array<StatesWithMessages> =\n // 1. Prepare the states for later use\n Object.entries(stateRecordRef.current)\n .flatMap(([identifier, states]) =>\n states.map((props) => {\n return {\n identifier,\n ...props,\n }\n })\n )\n\n // 2. Take states and group the same type together\n .reduce((acc, cur) => {\n const existing = acc.find((item) => {\n return item.type === cur.type\n })\n\n const message = getMessage(cur)\n\n if (existing) {\n existing.messages.push({\n ...cur,\n message,\n })\n } else {\n acc.push({\n ...cur,\n state: undefined,\n messages: [\n {\n ...cur,\n message,\n },\n ],\n })\n }\n\n return acc\n }, [] as Array<StatesWithMessages>)\n\n // 3. Return the grouped states/messages\n return states.reduce((acc, type) => {\n const id = `${props.id || forId || blockId}-form-status--${type}`\n acc[type] = {\n id,\n label,\n state: type === 'warning' ? 'warn' : type,\n width_element: contentsRef,\n\n // Enable animation only in the browser and not in tests\n no_animation:\n process.env.NODE_ENV === 'test'\n ? true\n : typeof globalThis !== 'undefined'\n ? globalThis.IS_TEST === true\n : false,\n }\n\n const found = statesWithMessages.find((item) => {\n return item.type === type\n })\n\n if (found?.messages) {\n // Hide/remove messages that should be hidden and are not marked as to be shown initially\n const messages = found.messages\n .map((msg) => {\n if (msg.type === 'error') {\n if (!msg.showInitially && !msg.show) {\n msg.message = null\n }\n }\n\n return msg\n })\n .filter(({ message }) => message)\n .reduce((acc, msg, i, arr) => {\n const existingIndex = arr.findIndex((item) => {\n return (\n convertJsxToString(item.message) ===\n convertJsxToString(msg.message)\n )\n })\n\n // Remove duplicates, use the first found message\n if (existingIndex === i) {\n acc.push(msg)\n }\n\n return acc\n }, [])\n\n // Combine the messages and put them in an ul/li list\n if (messages.length > 0) {\n acc[type] = {\n ...acc[type],\n text: <CombineMessages type={type} messages={messages} />,\n }\n\n fieldStateIdsRef.current[type] = id\n } else {\n fieldStateIdsRef.current[type] = undefined\n }\n }\n\n return acc\n }, {}) as StatusContent\n\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [\n info,\n warning,\n errorProp,\n nestedFieldBlockContext,\n setInternalRecord,\n blockId,\n wasUpdated, // wasUpdated is needed to get the current errors\n ])\n\n // Handle the error prop from outside\n useEffect(() => {\n if (!nestedFieldBlockContext) {\n showFieldError(blockId, Boolean(errorProp))\n }\n }, [errorProp, blockId, showFieldError, nestedFieldBlockContext])\n\n useUnmountEffect(() => () => {\n mountedFieldsRef.current = {}\n stateRecordRef.current = {}\n })\n\n const mainClasses = classnames(\n 'dnb-forms-field-block',\n width !== undefined && `dnb-forms-field-block--width-${width}`,\n className\n )\n const gridClasses = classnames(\n 'dnb-forms-field-block__grid',\n `dnb-forms-field-block--layout-${layout}`\n )\n\n // A child component with a label was found, use fieldset/legend instead of div/label\n const enableFieldset = useEnableFieldset({\n label,\n asFieldset,\n children,\n nestedFieldBlockContext,\n })\n\n const labelProps: FormLabelAllProps = {\n element: enableFieldset ? 'legend' : 'label',\n forId: enableFieldset ? undefined : forId,\n space: { top: 0, bottom: 'x-small' },\n size: labelSize,\n disabled,\n }\n\n return (\n <FieldBlockContext.Provider\n value={{\n setFieldState,\n showFieldError,\n hasErrorProp: Boolean(errorProp),\n fieldStateIdsRef,\n mountedFieldsRef,\n composition,\n }}\n >\n <Space\n element={enableFieldset ? 'fieldset' : 'div'} // use fieldset and legend to enhance a11y\n className={mainClasses}\n {...rest}\n >\n <div className={gridClasses}>\n {labelDescription ? (\n <div className=\"dnb-forms-field-block__label\">\n {label || labelDescription ? (\n <FormLabel {...labelProps}>\n {label}\n {labelDescription && (\n <span className=\"dnb-forms-field-block__label-description\">\n {labelDescription}\n </span>\n )}\n </FormLabel>\n ) : (\n <> </>\n )}\n </div>\n ) : (\n label && <FormLabel {...labelProps}>{label}</FormLabel>\n )}\n\n <div className=\"dnb-forms-field-block__status\">\n <FormStatus {...statusContent?.error} />\n <FormStatus {...statusContent?.warning} />\n <FormStatus {...statusContent?.info} />\n </div>\n\n <div\n className={classnames(\n 'dnb-forms-field-block__contents',\n contentWidth !== undefined &&\n `dnb-forms-field-block__contents--width-${contentWidth}`,\n composition !== undefined &&\n `dnb-forms-field-block__contents__composition--${\n composition === true ? 'horizontal' : composition\n }`,\n contentClassName\n )}\n ref={contentsRef}\n >\n {children}\n </div>\n </div>\n </Space>\n </FieldBlockContext.Provider>\n )\n}\n\nfunction useEnableFieldset({\n label,\n asFieldset,\n children,\n nestedFieldBlockContext,\n}) {\n return useMemo(() => {\n if (asFieldset === false) {\n return false\n }\n\n let result = asFieldset\n\n if (label && !result && !nestedFieldBlockContext) {\n let count = 0\n\n findElementInChildren(children, (child: React.ReactElement) => {\n if (\n child?.props?.label ||\n child?.type?.['_formElement'] === true\n ) {\n count++\n }\n if (count > 1) {\n return (result = true)\n }\n })\n }\n\n return Boolean(result)\n }, [asFieldset, children, label, nestedFieldBlockContext])\n}\n\nfunction CombineMessages({\n type,\n messages,\n}: {\n type: StateTypes\n messages: Array<StateWithMessage>\n}) {\n const sharedContext = useContext(SharedContext)\n const tr = sharedContext?.translation.Forms\n\n if (messages.length === 1) {\n return <>{messages[0].message}</>\n }\n\n return (\n <>\n {type === 'error' ? tr.fieldErrorSummary : tr.fieldStateSummary}\n <Ul>\n {messages.map(({ message }, i) => {\n return <Li key={i}>{message}</Li>\n })}\n </Ul>\n </>\n )\n}\n\nfunction getMessage(item: Partial<StateWithMessage>): StateMessage {\n const { state } = item\n\n return ((state instanceof Error && state.message) ||\n (state instanceof FormError && state.message) ||\n state?.toString() ||\n state) as StateMessage\n}\n\nFieldBlock._supportsSpacingProps = true\n\nexport default FieldBlock\n"],"mappings":"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"}
|
|
@@ -1,8 +1,41 @@
|
|
|
1
1
|
import React from 'react';
|
|
2
|
-
import {
|
|
3
|
-
export
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
2
|
+
import type { FieldProps, Identifier } from '../types';
|
|
3
|
+
export type FieldErrorIdsRef = Record<StateTypes, string>;
|
|
4
|
+
export type MountedFieldsRef = Record<Identifier, boolean>;
|
|
5
|
+
export type StateTypes = 'error' | 'warning' | 'info';
|
|
6
|
+
export type StateContent = FieldProps<unknown>['error'] | FieldProps<unknown>['warning'] | FieldProps<unknown>['info'];
|
|
7
|
+
export type StateBasis = {
|
|
8
|
+
identifier: Identifier;
|
|
9
|
+
type: StateTypes;
|
|
10
|
+
state: StateContent;
|
|
11
|
+
stateId?: string;
|
|
12
|
+
showInitially?: boolean;
|
|
13
|
+
show?: boolean;
|
|
14
|
+
};
|
|
15
|
+
export type StateRecord = Record<Identifier, Array<Omit<StateBasis, 'identifier'>>>;
|
|
16
|
+
export type StateMessage = React.ReactNode;
|
|
17
|
+
export type StateWithMessage = StateBasis & {
|
|
18
|
+
message: StateMessage;
|
|
19
|
+
};
|
|
20
|
+
export type StatesWithMessages = StateBasis & {
|
|
21
|
+
messages: Array<StateWithMessage>;
|
|
22
|
+
};
|
|
23
|
+
export type StatusContentState = {
|
|
24
|
+
id: string;
|
|
25
|
+
text: React.ReactNode;
|
|
26
|
+
};
|
|
27
|
+
export type StatusContent = {
|
|
28
|
+
error: StatusContentState;
|
|
29
|
+
warning: StatusContentState;
|
|
30
|
+
info: StatusContentState;
|
|
31
|
+
};
|
|
32
|
+
export type FieldBlockContextProps = {
|
|
33
|
+
setFieldState?: ({ identifier, type, stateId, state, showInitially, show, }: StateBasis) => void;
|
|
34
|
+
showFieldError?: (identifier: Identifier, showError: boolean) => void;
|
|
35
|
+
hasErrorProp?: boolean;
|
|
36
|
+
composition?: true;
|
|
37
|
+
fieldStateIdsRef?: React.MutableRefObject<FieldErrorIdsRef>;
|
|
38
|
+
mountedFieldsRef?: React.MutableRefObject<MountedFieldsRef>;
|
|
39
|
+
};
|
|
40
|
+
declare const FieldBlockContext: React.Context<FieldBlockContextProps>;
|
|
8
41
|
export default FieldBlockContext;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"FieldBlockContext.js","names":["React","FieldBlockContext","createContext","undefined"],"sources":["../../../../../src/extensions/forms/FieldBlock/FieldBlockContext.ts"],"sourcesContent":["import React from 'react'\nimport {
|
|
1
|
+
{"version":3,"file":"FieldBlockContext.js","names":["React","FieldBlockContext","createContext","undefined"],"sources":["../../../../../src/extensions/forms/FieldBlock/FieldBlockContext.ts"],"sourcesContent":["import React from 'react'\nimport type { FieldProps, Identifier } from '../types'\n\nexport type FieldErrorIdsRef = Record<StateTypes, string>\nexport type MountedFieldsRef = Record<Identifier, boolean>\nexport type StateTypes = 'error' | 'warning' | 'info'\nexport type StateContent =\n | FieldProps<unknown>['error']\n | FieldProps<unknown>['warning']\n | FieldProps<unknown>['info']\nexport type StateBasis = {\n identifier: Identifier\n type: StateTypes\n state: StateContent\n stateId?: string\n showInitially?: boolean\n show?: boolean\n}\nexport type StateRecord = Record<\n Identifier,\n Array<Omit<StateBasis, 'identifier'>>\n>\nexport type StateMessage = React.ReactNode\nexport type StateWithMessage = StateBasis & {\n message: StateMessage\n}\nexport type StatesWithMessages = StateBasis & {\n messages: Array<StateWithMessage>\n}\nexport type StatusContentState = { id: string; text: React.ReactNode }\nexport type StatusContent = {\n error: StatusContentState\n warning: StatusContentState\n info: StatusContentState\n}\n\nexport type FieldBlockContextProps = {\n setFieldState?: ({\n identifier,\n type,\n stateId,\n state,\n showInitially,\n show,\n }: StateBasis) => void\n showFieldError?: (identifier: Identifier, showError: boolean) => void\n hasErrorProp?: boolean\n composition?: true\n fieldStateIdsRef?: React.MutableRefObject<FieldErrorIdsRef>\n mountedFieldsRef?: React.MutableRefObject<MountedFieldsRef>\n}\n\nconst FieldBlockContext = React.createContext<\n FieldBlockContextProps | undefined\n>(undefined)\n\nexport default FieldBlockContext\n"],"mappings":"AAAA,OAAOA,KAAK,MAAM,OAAO;AAoDzB,MAAMC,iBAAiB,GAAGD,KAAK,CAACE,aAAa,CAE3CC,SAAS,CAAC;AAEZ,eAAeF,iBAAiB"}
|
|
@@ -0,0 +1,53 @@
|
|
|
1
|
+
export const fieldBlockProperties = {
|
|
2
|
+
label: {
|
|
3
|
+
doc: 'Field label to show above / before the input feature.',
|
|
4
|
+
type: 'string',
|
|
5
|
+
status: 'optional'
|
|
6
|
+
},
|
|
7
|
+
labelDescription: {
|
|
8
|
+
doc: 'A more discreet text displayed beside the label (i.e for "(optional)").',
|
|
9
|
+
type: 'string',
|
|
10
|
+
status: 'optional'
|
|
11
|
+
},
|
|
12
|
+
labelSize: {
|
|
13
|
+
doc: 'Define one of the following [heading size](/uilib/elements/heading/): `medium` or `large`.',
|
|
14
|
+
type: ['string', 'false'],
|
|
15
|
+
status: 'optional'
|
|
16
|
+
},
|
|
17
|
+
layout: {
|
|
18
|
+
doc: 'Layout for the label and input. Can be `horizontal` or `vertical`.',
|
|
19
|
+
type: 'string',
|
|
20
|
+
status: 'optional'
|
|
21
|
+
},
|
|
22
|
+
width: {
|
|
23
|
+
doc: '`small`, `medium`, `large`, `stretch` or `false` for predefined standard widths.',
|
|
24
|
+
type: ['string', 'false'],
|
|
25
|
+
status: 'optional'
|
|
26
|
+
},
|
|
27
|
+
contentWidth: {
|
|
28
|
+
doc: '`small`, `medium`, `large`, `stretch` or `false` for predefined standard widths.',
|
|
29
|
+
type: ['string', 'false'],
|
|
30
|
+
status: 'optional'
|
|
31
|
+
},
|
|
32
|
+
composition: {
|
|
33
|
+
doc: 'Use `true` for when you have more than one field wrapped.',
|
|
34
|
+
type: 'string',
|
|
35
|
+
status: 'optional'
|
|
36
|
+
},
|
|
37
|
+
asFieldset: {
|
|
38
|
+
doc: 'Use `true` when you have several form elements. This way a `fieldset` with a `legend` is used.',
|
|
39
|
+
type: 'boolean',
|
|
40
|
+
status: 'optional'
|
|
41
|
+
},
|
|
42
|
+
disabled: {
|
|
43
|
+
doc: 'Set `true` to make the inner [FormLabel](/uilib/components/form-label/) behave as disabled.',
|
|
44
|
+
type: 'boolean',
|
|
45
|
+
status: 'optional'
|
|
46
|
+
},
|
|
47
|
+
'[Space](/uilib/layout/space/properties)': {
|
|
48
|
+
doc: 'Spacing properties like `top` or `bottom` are supported.',
|
|
49
|
+
type: ['string', 'object'],
|
|
50
|
+
status: 'optional'
|
|
51
|
+
}
|
|
52
|
+
};
|
|
53
|
+
//# sourceMappingURL=FieldBlockDocs.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"FieldBlockDocs.js","names":["fieldBlockProperties","label","doc","type","status","labelDescription","labelSize","layout","width","contentWidth","composition","asFieldset","disabled"],"sources":["../../../../../src/extensions/forms/FieldBlock/FieldBlockDocs.ts"],"sourcesContent":["import { PropertiesTableProps } from '../../../shared/types'\n\nexport const fieldBlockProperties: PropertiesTableProps = {\n label: {\n doc: 'Field label to show above / before the input feature.',\n type: 'string',\n status: 'optional',\n },\n labelDescription: {\n doc: 'A more discreet text displayed beside the label (i.e for \"(optional)\").',\n type: 'string',\n status: 'optional',\n },\n labelSize: {\n doc: 'Define one of the following [heading size](/uilib/elements/heading/): `medium` or `large`.',\n type: ['string', 'false'],\n status: 'optional',\n },\n layout: {\n doc: 'Layout for the label and input. Can be `horizontal` or `vertical`.',\n type: 'string',\n status: 'optional',\n },\n width: {\n doc: '`small`, `medium`, `large`, `stretch` or `false` for predefined standard widths.',\n type: ['string', 'false'],\n status: 'optional',\n },\n contentWidth: {\n doc: '`small`, `medium`, `large`, `stretch` or `false` for predefined standard widths.',\n type: ['string', 'false'],\n status: 'optional',\n },\n composition: {\n doc: 'Use `true` for when you have more than one field wrapped.',\n type: 'string',\n status: 'optional',\n },\n asFieldset: {\n doc: 'Use `true` when you have several form elements. This way a `fieldset` with a `legend` is used.',\n type: 'boolean',\n status: 'optional',\n },\n disabled: {\n doc: 'Set `true` to make the inner [FormLabel](/uilib/components/form-label/) behave as disabled.',\n type: 'boolean',\n status: 'optional',\n },\n '[Space](/uilib/layout/space/properties)': {\n doc: 'Spacing properties like `top` or `bottom` are supported.',\n type: ['string', 'object'],\n status: 'optional',\n },\n}\n"],"mappings":"AAEA,OAAO,MAAMA,oBAA0C,GAAG;EACxDC,KAAK,EAAE;IACLC,GAAG,EAAE,uDAAuD;IAC5DC,IAAI,EAAE,QAAQ;IACdC,MAAM,EAAE;EACV,CAAC;EACDC,gBAAgB,EAAE;IAChBH,GAAG,EAAE,yEAAyE;IAC9EC,IAAI,EAAE,QAAQ;IACdC,MAAM,EAAE;EACV,CAAC;EACDE,SAAS,EAAE;IACTJ,GAAG,EAAE,4FAA4F;IACjGC,IAAI,EAAE,CAAC,QAAQ,EAAE,OAAO,CAAC;IACzBC,MAAM,EAAE;EACV,CAAC;EACDG,MAAM,EAAE;IACNL,GAAG,EAAE,oEAAoE;IACzEC,IAAI,EAAE,QAAQ;IACdC,MAAM,EAAE;EACV,CAAC;EACDI,KAAK,EAAE;IACLN,GAAG,EAAE,kFAAkF;IACvFC,IAAI,EAAE,CAAC,QAAQ,EAAE,OAAO,CAAC;IACzBC,MAAM,EAAE;EACV,CAAC;EACDK,YAAY,EAAE;IACZP,GAAG,EAAE,kFAAkF;IACvFC,IAAI,EAAE,CAAC,QAAQ,EAAE,OAAO,CAAC;IACzBC,MAAM,EAAE;EACV,CAAC;EACDM,WAAW,EAAE;IACXR,GAAG,EAAE,2DAA2D;IAChEC,IAAI,EAAE,QAAQ;IACdC,MAAM,EAAE;EACV,CAAC;EACDO,UAAU,EAAE;IACVT,GAAG,EAAE,gGAAgG;IACrGC,IAAI,EAAE,SAAS;IACfC,MAAM,EAAE;EACV,CAAC;EACDQ,QAAQ,EAAE;IACRV,GAAG,EAAE,6FAA6F;IAClGC,IAAI,EAAE,SAAS;IACfC,MAAM,EAAE;EACV,CAAC;EACD,yCAAyC,EAAE;IACzCF,GAAG,EAAE,0DAA0D;IAC/DC,IAAI,EAAE,CAAC,QAAQ,EAAE,QAAQ,CAAC;IAC1BC,MAAM,EAAE;EACV;AACF,CAAC"}
|
|
@@ -38,10 +38,10 @@ fieldset.dnb-forms-field-block:not([class*=space__left]) {
|
|
|
38
38
|
display: grid;
|
|
39
39
|
}
|
|
40
40
|
@media screen and (max-width: 40em) {
|
|
41
|
-
.dnb-forms-field-block__grid {
|
|
41
|
+
.dnb-forms-field-block--layout-vertical .dnb-forms-field-block__grid {
|
|
42
42
|
flex-wrap: wrap;
|
|
43
43
|
}
|
|
44
|
-
.dnb-forms-field-block__grid > .dnb-form-label {
|
|
44
|
+
.dnb-forms-field-block--layout-vertical .dnb-forms-field-block__grid > .dnb-form-label {
|
|
45
45
|
margin-bottom: 0.5rem;
|
|
46
46
|
margin-top: 0.5rem;
|
|
47
47
|
}
|
|
@@ -84,6 +84,11 @@ fieldset.dnb-forms-field-block:not([class*=space__left]) {
|
|
|
84
84
|
.dnb-forms-field-block__status .dnb-form-status__shell {
|
|
85
85
|
margin-top: 0.5rem;
|
|
86
86
|
}
|
|
87
|
+
@media screen and (max-width: 15em) {
|
|
88
|
+
.dnb-forms-field-block__status {
|
|
89
|
+
width: 90%;
|
|
90
|
+
}
|
|
91
|
+
}
|
|
87
92
|
.dnb-forms-field-block__contents {
|
|
88
93
|
grid-area: contents;
|
|
89
94
|
width: 100%;
|
|
@@ -101,4 +106,26 @@ fieldset.dnb-forms-field-block:not([class*=space__left]) {
|
|
|
101
106
|
.dnb-forms-field-block__contents--width-large {
|
|
102
107
|
width: var(--forms-field-width--large);
|
|
103
108
|
}
|
|
109
|
+
}
|
|
110
|
+
.dnb-forms-field-block__contents__composition--vertical {
|
|
111
|
+
display: flex;
|
|
112
|
+
flex-flow: column;
|
|
113
|
+
row-gap: var(--spacing-small);
|
|
114
|
+
}
|
|
115
|
+
.dnb-forms-field-block__contents__composition--horizontal {
|
|
116
|
+
display: flex;
|
|
117
|
+
flex-flow: row;
|
|
118
|
+
-moz-column-gap: var(--spacing-small);
|
|
119
|
+
column-gap: var(--spacing-small);
|
|
120
|
+
}
|
|
121
|
+
@media screen and (min-width: 25em) {
|
|
122
|
+
.dnb-forms-field-block__contents__composition--horizontal {
|
|
123
|
+
align-items: flex-end;
|
|
124
|
+
}
|
|
125
|
+
}
|
|
126
|
+
@media screen and (max-width: 25em) {
|
|
127
|
+
.dnb-forms-field-block__contents__composition--horizontal {
|
|
128
|
+
row-gap: var(--spacing-x-small);
|
|
129
|
+
flex-flow: column;
|
|
130
|
+
}
|
|
104
131
|
}
|