@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
|
@@ -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,58 +33,171 @@ 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
|
-
|
|
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(([identifier, states]) => states.map(props => {
|
|
124
|
+
return _objectSpread({
|
|
125
|
+
identifier
|
|
126
|
+
}, props);
|
|
127
|
+
})).reduce((acc, cur) => {
|
|
128
|
+
const existing = acc.find(item => {
|
|
129
|
+
return item.type === cur.type;
|
|
130
|
+
});
|
|
131
|
+
const message = getMessage(cur);
|
|
132
|
+
if (existing) {
|
|
133
|
+
existing.messages.push(_objectSpread(_objectSpread({}, cur), {}, {
|
|
134
|
+
message
|
|
135
|
+
}));
|
|
136
|
+
} else {
|
|
137
|
+
acc.push(_objectSpread(_objectSpread({}, cur), {}, {
|
|
138
|
+
state: undefined,
|
|
139
|
+
messages: [_objectSpread(_objectSpread({}, cur), {}, {
|
|
140
|
+
message
|
|
141
|
+
})]
|
|
142
|
+
}));
|
|
143
|
+
}
|
|
144
|
+
return acc;
|
|
145
|
+
}, []);
|
|
146
|
+
return states.reduce((acc, type) => {
|
|
147
|
+
const id = `${props.id || forId || blockId}-form-status--${type}`;
|
|
148
|
+
acc[type] = {
|
|
149
|
+
id,
|
|
150
|
+
label,
|
|
151
|
+
state: type === 'warning' ? 'warn' : type,
|
|
152
|
+
width_element: contentsRef,
|
|
153
|
+
no_animation: process.env.NODE_ENV === 'test' ? true : typeof globalThis !== 'undefined' ? globalThis.IS_TEST === true : false
|
|
154
|
+
};
|
|
155
|
+
const found = statesWithMessages.find(item => {
|
|
156
|
+
return item.type === type;
|
|
157
|
+
});
|
|
158
|
+
if (found !== null && found !== void 0 && found.messages) {
|
|
159
|
+
const messages = found.messages.map(msg => {
|
|
160
|
+
if (msg.type === 'error') {
|
|
161
|
+
if (!msg.showInitially && !msg.show) {
|
|
162
|
+
msg.message = null;
|
|
163
|
+
}
|
|
164
|
+
}
|
|
165
|
+
return msg;
|
|
166
|
+
}).filter(({
|
|
167
|
+
message
|
|
168
|
+
}) => message).reduce((acc, msg, i, arr) => {
|
|
169
|
+
const existingIndex = arr.findIndex(item => {
|
|
170
|
+
return convertJsxToString(item.message) === convertJsxToString(msg.message);
|
|
171
|
+
});
|
|
172
|
+
if (existingIndex === i) {
|
|
173
|
+
acc.push(msg);
|
|
174
|
+
}
|
|
175
|
+
return acc;
|
|
176
|
+
}, []);
|
|
177
|
+
if (messages.length > 0) {
|
|
178
|
+
acc[type] = _objectSpread(_objectSpread({}, acc[type]), {}, {
|
|
179
|
+
text: React.createElement(CombineMessages, {
|
|
180
|
+
type: type,
|
|
181
|
+
messages: messages
|
|
182
|
+
})
|
|
183
|
+
});
|
|
184
|
+
fieldStateIdsRef.current[type] = id;
|
|
185
|
+
} else {
|
|
186
|
+
fieldStateIdsRef.current[type] = undefined;
|
|
187
|
+
}
|
|
188
|
+
}
|
|
189
|
+
return acc;
|
|
190
|
+
}, {});
|
|
191
|
+
}, [info, warning, errorProp, nestedFieldBlockContext, setInternalRecord, blockId, wasUpdated]);
|
|
192
|
+
useEffect(() => {
|
|
193
|
+
if (!nestedFieldBlockContext) {
|
|
194
|
+
showFieldError(blockId, Boolean(errorProp));
|
|
195
|
+
}
|
|
196
|
+
}, [errorProp, blockId, showFieldError, nestedFieldBlockContext]);
|
|
197
|
+
useUnmountEffect(() => () => {
|
|
198
|
+
mountedFieldsRef.current = {};
|
|
199
|
+
stateRecordRef.current = {};
|
|
200
|
+
});
|
|
84
201
|
const mainClasses = classnames('dnb-forms-field-block', className, width !== undefined && `dnb-forms-field-block--width-${width}`);
|
|
85
202
|
const gridClasses = `dnb-forms-field-block__grid dnb-forms-field-block--layout-${layout}`;
|
|
86
203
|
const enableFieldset = useEnableFieldset({
|
|
@@ -89,8 +206,6 @@ function FieldBlock(props) {
|
|
|
89
206
|
children,
|
|
90
207
|
nestedFieldBlockContext
|
|
91
208
|
});
|
|
92
|
-
const state = error || warning || info;
|
|
93
|
-
const stateStatus = error ? 'error' : warning ? 'warn' : info ? 'info' : null;
|
|
94
209
|
const labelProps = {
|
|
95
210
|
element: enableFieldset ? 'legend' : 'label',
|
|
96
211
|
forId: enableFieldset ? undefined : forId,
|
|
@@ -98,13 +213,17 @@ function FieldBlock(props) {
|
|
|
98
213
|
top: 0,
|
|
99
214
|
bottom: 'x-small'
|
|
100
215
|
},
|
|
101
|
-
size,
|
|
216
|
+
size: labelSize,
|
|
102
217
|
disabled
|
|
103
218
|
};
|
|
104
219
|
return React.createElement(FieldBlockContext.Provider, {
|
|
105
220
|
value: {
|
|
106
|
-
|
|
107
|
-
|
|
221
|
+
setFieldState,
|
|
222
|
+
showFieldError,
|
|
223
|
+
hasErrorProp: Boolean(errorProp),
|
|
224
|
+
fieldStateIdsRef,
|
|
225
|
+
mountedFieldsRef,
|
|
226
|
+
composition
|
|
108
227
|
}
|
|
109
228
|
}, React.createElement(Space, _extends({
|
|
110
229
|
element: enableFieldset ? 'fieldset' : 'div',
|
|
@@ -116,16 +235,11 @@ function FieldBlock(props) {
|
|
|
116
235
|
}, label || labelDescription ? React.createElement(FormLabel, labelProps, label, labelDescription && React.createElement("span", {
|
|
117
236
|
className: "dnb-forms-field-block__label-description"
|
|
118
237
|
}, labelDescription)) : React.createElement(React.Fragment, null, "\xA0")) : label && React.createElement(FormLabel, labelProps, label), React.createElement("div", {
|
|
119
|
-
className: classnames('dnb-forms-field-block__contents', contentClassName, contentWidth !== undefined && `dnb-forms-field-block__contents--width-${contentWidth}`)
|
|
120
|
-
}, children), React.createElement("div", {
|
|
121
238
|
className: "dnb-forms-field-block__status"
|
|
122
|
-
}, React.createElement(FormStatus, {
|
|
123
|
-
|
|
124
|
-
|
|
125
|
-
|
|
126
|
-
label: label,
|
|
127
|
-
no_animation: process.env.NODE_ENV === 'test' ? true : typeof globalThis !== 'undefined' ? globalThis.IS_TEST === true : false
|
|
128
|
-
})))));
|
|
239
|
+
}, 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", {
|
|
240
|
+
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}`),
|
|
241
|
+
ref: contentsRef
|
|
242
|
+
}, children))));
|
|
129
243
|
}
|
|
130
244
|
function useEnableFieldset({
|
|
131
245
|
label,
|
|
@@ -153,6 +267,29 @@ function useEnableFieldset({
|
|
|
153
267
|
return Boolean(result);
|
|
154
268
|
}, [asFieldset, children, label, nestedFieldBlockContext]);
|
|
155
269
|
}
|
|
270
|
+
function CombineMessages({
|
|
271
|
+
type,
|
|
272
|
+
messages
|
|
273
|
+
}) {
|
|
274
|
+
const sharedContext = useContext(SharedContext);
|
|
275
|
+
const tr = sharedContext === null || sharedContext === void 0 ? void 0 : sharedContext.translation.Forms;
|
|
276
|
+
if (messages.length === 1) {
|
|
277
|
+
return React.createElement(React.Fragment, null, messages[0].message);
|
|
278
|
+
}
|
|
279
|
+
return React.createElement(React.Fragment, null, type === 'error' ? tr.fieldErrorSummary : tr.fieldStateSummary, React.createElement(Ul, null, messages.map(({
|
|
280
|
+
message
|
|
281
|
+
}, i) => {
|
|
282
|
+
return React.createElement(Li, {
|
|
283
|
+
key: i
|
|
284
|
+
}, message);
|
|
285
|
+
})));
|
|
286
|
+
}
|
|
287
|
+
function getMessage(item) {
|
|
288
|
+
const {
|
|
289
|
+
state
|
|
290
|
+
} = item;
|
|
291
|
+
return state instanceof Error && state.message || state instanceof FormError && state.message || (state === null || state === void 0 ? void 0 : state.toString()) || state;
|
|
292
|
+
}
|
|
156
293
|
FieldBlock._supportsSpacingProps = true;
|
|
157
294
|
export default FieldBlock;
|
|
158
295
|
//# 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","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","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","reduce","acc","cur","existing","find","message","getMessage","messages","undefined","width_element","no_animation","process","env","NODE_ENV","globalThis","IS_TEST","found","msg","filter","i","arr","length","text","createElement","CombineMessages","mainClasses","gridClasses","enableFieldset","useEnableFieldset","labelProps","element","space","top","bottom","size","Provider","value","hasErrorProp","_extends","Fragment","ref","result","count","child","_child$props","_child$type","sharedContext","tr","translation","Forms","fieldErrorSummary","fieldStateSummary","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
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
:root{--forms-field-width--small:5rem;--forms-field-width--medium:11rem;--forms-field-width--large:21rem}@media screen and (max-width:15em){.dnb-forms-field-number .dnb-input__shell,.dnb-forms-field-string .dnb-input__shell{width:90%}}fieldset.dnb-forms-field-block{border:none;padding:0}fieldset.dnb-forms-field-block:not([class*=space__top]){margin-top:0}fieldset.dnb-forms-field-block:not([class*=space__right]){margin-right:0}fieldset.dnb-forms-field-block:not([class*=space__bottom]){margin-bottom:0}fieldset.dnb-forms-field-block:not([class*=space__left]){margin-left:0}.dnb-forms-field-block{width:100%}.dnb-forms-field-block__grid{display:grid}@media screen and (max-width:40em){.dnb-forms-field-block__grid{flex-wrap:wrap}.dnb-forms-field-block__grid>.dnb-form-label{margin-bottom:.5rem;margin-top:.5rem}}.dnb-forms-field-block--layout-vertical{grid-template-areas:"label" "contents" "status";grid-template-columns:auto}.dnb-forms-field-block--layout-horizontal{grid-template-areas:"label contents" "status status";grid-template-columns:fit-content(100%) auto}.dnb-forms-field-block--width-stretch{flex-grow:1}@media screen and (min-width:25em){.dnb-forms-field-block--width-small{width:var(--forms-field-width--small)}.dnb-forms-field-block--width-medium{width:var(--forms-field-width--medium)}.dnb-forms-field-block--width-large{width:var(--forms-field-width--large)}}.dnb-forms-field-block__label{align-items:center;display:flex;flex-flow:row;grid-area:label;justify-content:space-between}.dnb-forms-field-block__label-description{margin-left:.3em}.dnb-forms-field-block__status{grid-area:status}.dnb-forms-field-block__status .dnb-form-status__shell{margin-top:.5rem}.dnb-forms-field-block__contents{grid-area:contents;width:100%}.dnb-forms-field-block__contents--width-stretch{width:100%}@media screen and (min-width:25em){.dnb-forms-field-block__contents--width-small{width:var(--forms-field-width--small)}.dnb-forms-field-block__contents--width-medium{width:var(--forms-field-width--medium)}.dnb-forms-field-block__contents--width-large{width:var(--forms-field-width--large)}}
|
|
1
|
+
:root{--forms-field-width--small:5rem;--forms-field-width--medium:11rem;--forms-field-width--large:21rem}@media screen and (max-width:15em){.dnb-forms-field-number .dnb-input__shell,.dnb-forms-field-string .dnb-input__shell{width:90%}}fieldset.dnb-forms-field-block{border:none;padding:0}fieldset.dnb-forms-field-block:not([class*=space__top]){margin-top:0}fieldset.dnb-forms-field-block:not([class*=space__right]){margin-right:0}fieldset.dnb-forms-field-block:not([class*=space__bottom]){margin-bottom:0}fieldset.dnb-forms-field-block:not([class*=space__left]){margin-left:0}.dnb-forms-field-block{width:100%}.dnb-forms-field-block__grid{display:grid}@media screen and (max-width:40em){.dnb-forms-field-block--layout-vertical .dnb-forms-field-block__grid{flex-wrap:wrap}.dnb-forms-field-block--layout-vertical .dnb-forms-field-block__grid>.dnb-form-label{margin-bottom:.5rem;margin-top:.5rem}}.dnb-forms-field-block--layout-vertical{grid-template-areas:"label" "contents" "status";grid-template-columns:auto}.dnb-forms-field-block--layout-horizontal{grid-template-areas:"label contents" "status status";grid-template-columns:fit-content(100%) auto}.dnb-forms-field-block--width-stretch{flex-grow:1}@media screen and (min-width:25em){.dnb-forms-field-block--width-small{width:var(--forms-field-width--small)}.dnb-forms-field-block--width-medium{width:var(--forms-field-width--medium)}.dnb-forms-field-block--width-large{width:var(--forms-field-width--large)}}.dnb-forms-field-block__label{align-items:center;display:flex;flex-flow:row;grid-area:label;justify-content:space-between}.dnb-forms-field-block__label-description{margin-left:.3em}.dnb-forms-field-block__status{grid-area:status}.dnb-forms-field-block__status .dnb-form-status__shell{margin-top:.5rem}@media screen and (max-width:15em){.dnb-forms-field-block__status{width:90%}}.dnb-forms-field-block__contents{grid-area:contents;width:100%}.dnb-forms-field-block__contents--width-stretch{width:100%}@media screen and (min-width:25em){.dnb-forms-field-block__contents--width-small{width:var(--forms-field-width--small)}.dnb-forms-field-block__contents--width-medium{width:var(--forms-field-width--medium)}.dnb-forms-field-block__contents--width-large{width:var(--forms-field-width--large)}}.dnb-forms-field-block__contents__composition--vertical{display:flex;flex-flow:column;row-gap:var(--spacing-small)}.dnb-forms-field-block__contents__composition--horizontal{-moz-column-gap:var(--spacing-small);column-gap:var(--spacing-small);display:flex;flex-flow:row}@media screen and (min-width:25em){.dnb-forms-field-block__contents__composition--horizontal{align-items:flex-end}}@media screen and (max-width:25em){.dnb-forms-field-block__contents__composition--horizontal{flex-flow:column;row-gap:var(--spacing-x-small)}}
|