@dnb/eufemia 10.65.0 → 10.66.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 +39 -0
- package/cjs/components/card/Card.js +1 -1
- package/cjs/components/card/Card.js.map +1 -1
- package/cjs/components/date-picker/DatePicker.d.ts +3 -1
- package/cjs/components/date-picker/DatePicker.js +3 -1
- package/cjs/components/date-picker/DatePicker.js.map +1 -1
- package/cjs/components/date-picker/DatePickerAddon.js +8 -1
- package/cjs/components/date-picker/DatePickerAddon.js.map +1 -1
- package/cjs/components/date-picker/DatePickerInput.d.ts +5 -0
- package/cjs/components/date-picker/DatePickerInput.js +54 -36
- package/cjs/components/date-picker/DatePickerInput.js.map +1 -1
- package/cjs/components/date-picker/DatePickerProvider.d.ts +4 -3
- package/cjs/components/date-picker/DatePickerProvider.js +7 -2
- package/cjs/components/date-picker/DatePickerProvider.js.map +1 -1
- package/cjs/components/date-picker/hooks/useDates.js.map +1 -1
- package/cjs/components/flex/Container.d.ts +2 -1
- package/cjs/components/flex/Container.js +31 -24
- package/cjs/components/flex/Container.js.map +1 -1
- package/cjs/components/flex/ContainerDocs.d.ts +2 -0
- package/cjs/components/flex/ContainerDocs.js +81 -0
- package/cjs/components/flex/ContainerDocs.js.map +1 -0
- package/cjs/components/flex/style/dnb-flex.css +36 -4
- package/cjs/components/flex/style/dnb-flex.min.css +1 -1
- package/cjs/components/flex/style/flex-container.scss +39 -4
- package/cjs/components/help-button/HelpButtonInline.d.ts +6 -0
- package/cjs/components/help-button/HelpButtonInline.js +51 -19
- package/cjs/components/help-button/HelpButtonInline.js.map +1 -1
- package/cjs/components/help-button/HelpButtonInstance.js +1 -1
- package/cjs/components/help-button/HelpButtonInstance.js.map +1 -1
- package/cjs/components/slider/SliderDocs.js +2 -2
- package/cjs/components/slider/SliderDocs.js.map +1 -1
- package/cjs/components/slider/SliderProvider.js +0 -2
- package/cjs/components/slider/SliderProvider.js.map +1 -1
- package/cjs/components/slider/types.d.ts +2 -2
- package/cjs/components/slider/types.js.map +1 -1
- package/cjs/components/step-indicator/StepIndicator.d.ts +6 -0
- package/cjs/components/step-indicator/StepIndicator.js.map +1 -1
- package/cjs/components/step-indicator/StepIndicatorContext.d.ts +2 -0
- package/cjs/components/step-indicator/StepIndicatorContext.js.map +1 -1
- package/cjs/components/step-indicator/StepIndicatorTriggerButton.js +4 -3
- package/cjs/components/step-indicator/StepIndicatorTriggerButton.js.map +1 -1
- package/cjs/components/toggle-button/ToggleButton.d.ts +9 -1
- package/cjs/components/toggle-button/ToggleButtonDocs.js +1 -0
- package/cjs/components/toggle-button/ToggleButtonDocs.js.map +1 -1
- package/cjs/extensions/forms/DataContext/Context.d.ts +11 -5
- package/cjs/extensions/forms/DataContext/Context.js.map +1 -1
- package/cjs/extensions/forms/DataContext/FieldBoundary/FieldBoundaryContext.d.ts +1 -1
- package/cjs/extensions/forms/DataContext/FieldBoundary/FieldBoundaryContext.js.map +1 -1
- package/cjs/extensions/forms/DataContext/FieldBoundary/FieldBoundaryProvider.js +2 -2
- package/cjs/extensions/forms/DataContext/FieldBoundary/FieldBoundaryProvider.js.map +1 -1
- package/cjs/extensions/forms/DataContext/Provider/Provider.d.ts +2 -2
- package/cjs/extensions/forms/DataContext/Provider/Provider.js +46 -42
- package/cjs/extensions/forms/DataContext/Provider/Provider.js.map +1 -1
- package/cjs/extensions/forms/DataContext/Provider/ProviderDocs.js +1 -1
- package/cjs/extensions/forms/DataContext/Provider/ProviderDocs.js.map +1 -1
- package/cjs/extensions/forms/Field/Slider/Slider.js +13 -4
- package/cjs/extensions/forms/Field/Slider/Slider.js.map +1 -1
- package/cjs/extensions/forms/FieldBlock/FieldBlock.js +17 -13
- package/cjs/extensions/forms/FieldBlock/FieldBlock.js.map +1 -1
- package/cjs/extensions/forms/Iterate/PushContainer/PushContainer.js +7 -2
- package/cjs/extensions/forms/Iterate/PushContainer/PushContainer.js.map +1 -1
- package/cjs/extensions/forms/Value/Provider/useValueProvider.d.ts +1 -0
- package/cjs/extensions/forms/Value/ValueDocs.js +5 -0
- package/cjs/extensions/forms/Value/ValueDocs.js.map +1 -1
- package/cjs/extensions/forms/ValueBlock/ValueBlock.d.ts +14 -1
- package/cjs/extensions/forms/ValueBlock/ValueBlock.js +40 -10
- package/cjs/extensions/forms/ValueBlock/ValueBlock.js.map +1 -1
- package/cjs/extensions/forms/ValueBlock/style/dnb-value-block.css +17 -0
- package/cjs/extensions/forms/ValueBlock/style/dnb-value-block.min.css +1 -1
- package/cjs/extensions/forms/ValueBlock/style/dnb-value-block.scss +24 -0
- package/cjs/extensions/forms/Wizard/Container/DisplaySteps.d.ts +7 -0
- package/cjs/extensions/forms/Wizard/Container/DisplaySteps.js +78 -0
- package/cjs/extensions/forms/Wizard/Container/DisplaySteps.js.map +1 -0
- package/cjs/extensions/forms/Wizard/Container/IterateOverSteps.d.ts +3 -0
- package/cjs/extensions/forms/Wizard/Container/IterateOverSteps.js +94 -0
- package/cjs/extensions/forms/Wizard/Container/IterateOverSteps.js.map +1 -0
- package/cjs/extensions/forms/Wizard/Container/PrerenderFieldPropsOfOtherSteps.d.ts +4 -0
- package/cjs/extensions/forms/Wizard/Container/PrerenderFieldPropsOfOtherSteps.js +67 -0
- package/cjs/extensions/forms/Wizard/Container/PrerenderFieldPropsOfOtherSteps.js.map +1 -0
- package/cjs/extensions/forms/Wizard/Container/WizardContainer.d.ts +9 -1
- package/cjs/extensions/forms/Wizard/Container/WizardContainer.js +102 -206
- package/cjs/extensions/forms/Wizard/Container/WizardContainer.js.map +1 -1
- package/cjs/extensions/forms/Wizard/Container/WizardContainerDocs.js +10 -0
- package/cjs/extensions/forms/Wizard/Container/WizardContainerDocs.js.map +1 -1
- package/cjs/extensions/forms/Wizard/Context/WizardContext.d.ts +7 -23
- package/cjs/extensions/forms/Wizard/Context/WizardContext.js.map +1 -1
- package/cjs/extensions/forms/Wizard/Context/types.d.ts +35 -0
- package/cjs/extensions/forms/Wizard/Context/types.js +1 -0
- package/cjs/extensions/forms/Wizard/Context/types.js.map +1 -0
- package/cjs/extensions/forms/Wizard/EditButton/EditButton.d.ts +1 -1
- package/cjs/extensions/forms/Wizard/EditButton/EditButton.js.map +1 -1
- package/cjs/extensions/forms/Wizard/Step/Step.d.ts +4 -0
- package/cjs/extensions/forms/Wizard/Step/Step.js +28 -9
- package/cjs/extensions/forms/Wizard/Step/Step.js.map +1 -1
- package/cjs/extensions/forms/Wizard/Step/StepContext.d.ts +7 -0
- package/cjs/extensions/forms/Wizard/Step/StepContext.js +12 -0
- package/cjs/extensions/forms/Wizard/Step/StepContext.js.map +1 -0
- package/cjs/extensions/forms/Wizard/Step/StepDocs.js +5 -0
- package/cjs/extensions/forms/Wizard/Step/StepDocs.js.map +1 -1
- package/cjs/extensions/forms/Wizard/hooks/useStep.d.ts +2 -1
- package/cjs/extensions/forms/Wizard/hooks/useStep.js.map +1 -1
- package/cjs/extensions/forms/constants/locales/en-GB.d.ts +1 -0
- package/cjs/extensions/forms/constants/locales/en-GB.js +2 -1
- package/cjs/extensions/forms/constants/locales/en-GB.js.map +1 -1
- package/cjs/extensions/forms/constants/locales/en-US.d.ts +1 -0
- package/cjs/extensions/forms/constants/locales/index.d.ts +2 -0
- package/cjs/extensions/forms/constants/locales/nb-NO.d.ts +1 -0
- package/cjs/extensions/forms/constants/locales/nb-NO.js +2 -1
- package/cjs/extensions/forms/constants/locales/nb-NO.js.map +1 -1
- package/cjs/extensions/forms/hooks/useFieldProps.js +41 -23
- package/cjs/extensions/forms/hooks/useFieldProps.js.map +1 -1
- package/cjs/extensions/forms/style/dnb-forms.css +17 -0
- package/cjs/extensions/forms/style/dnb-forms.min.css +1 -1
- package/cjs/extensions/forms/types.d.ts +9 -1
- package/cjs/extensions/forms/types.js.map +1 -1
- package/cjs/fragments/drawer-list/DrawerList.d.ts +6 -1
- package/cjs/fragments/drawer-list/DrawerList.js +1 -0
- package/cjs/fragments/drawer-list/DrawerList.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/style/core/scopes.scss +1 -1
- package/cjs/style/dnb-ui-basis.css +1 -1
- package/cjs/style/dnb-ui-basis.min.css +1 -1
- package/cjs/style/dnb-ui-body.css +1 -1
- package/cjs/style/dnb-ui-body.min.css +1 -1
- package/cjs/style/dnb-ui-components.css +53 -4
- package/cjs/style/dnb-ui-components.min.css +2 -2
- package/cjs/style/dnb-ui-core.css +1 -1
- package/cjs/style/dnb-ui-core.min.css +1 -1
- package/cjs/style/dnb-ui-extensions.css +17 -0
- package/cjs/style/dnb-ui-extensions.min.css +1 -1
- package/cjs/style/dnb-ui-forms.css +17 -0
- package/cjs/style/dnb-ui-forms.min.css +1 -1
- package/cjs/style/themes/theme-eiendom/eiendom-theme-components.css +70 -4
- package/cjs/style/themes/theme-eiendom/eiendom-theme-components.min.css +2 -2
- package/cjs/style/themes/theme-eiendom/eiendom-theme-extensions.css +17 -0
- package/cjs/style/themes/theme-eiendom/eiendom-theme-extensions.min.css +1 -1
- package/cjs/style/themes/theme-eiendom/eiendom-theme-forms.css +17 -0
- package/cjs/style/themes/theme-eiendom/eiendom-theme-forms.min.css +1 -1
- package/cjs/style/themes/theme-sbanken/sbanken-theme-components.css +70 -4
- package/cjs/style/themes/theme-sbanken/sbanken-theme-components.min.css +2 -2
- package/cjs/style/themes/theme-sbanken/sbanken-theme-extensions.css +17 -0
- package/cjs/style/themes/theme-sbanken/sbanken-theme-extensions.min.css +1 -1
- package/cjs/style/themes/theme-sbanken/sbanken-theme-forms.css +17 -0
- package/cjs/style/themes/theme-sbanken/sbanken-theme-forms.min.css +1 -1
- package/cjs/style/themes/theme-ui/ui-theme-components.css +70 -4
- package/cjs/style/themes/theme-ui/ui-theme-components.min.css +2 -2
- package/cjs/style/themes/theme-ui/ui-theme-extensions.css +17 -0
- package/cjs/style/themes/theme-ui/ui-theme-extensions.min.css +1 -1
- package/cjs/style/themes/theme-ui/ui-theme-forms.css +17 -0
- package/cjs/style/themes/theme-ui/ui-theme-forms.min.css +1 -1
- package/components/card/Card.js +1 -1
- package/components/card/Card.js.map +1 -1
- package/components/date-picker/DatePicker.d.ts +3 -1
- package/components/date-picker/DatePicker.js +3 -1
- package/components/date-picker/DatePicker.js.map +1 -1
- package/components/date-picker/DatePickerAddon.js +6 -1
- package/components/date-picker/DatePickerAddon.js.map +1 -1
- package/components/date-picker/DatePickerInput.d.ts +5 -0
- package/components/date-picker/DatePickerInput.js +54 -36
- package/components/date-picker/DatePickerInput.js.map +1 -1
- package/components/date-picker/DatePickerProvider.d.ts +4 -3
- package/components/date-picker/DatePickerProvider.js +7 -2
- package/components/date-picker/DatePickerProvider.js.map +1 -1
- package/components/date-picker/hooks/useDates.js.map +1 -1
- package/components/flex/Container.d.ts +2 -1
- package/components/flex/Container.js +32 -25
- package/components/flex/Container.js.map +1 -1
- package/components/flex/ContainerDocs.d.ts +2 -0
- package/components/flex/ContainerDocs.js +74 -0
- package/components/flex/ContainerDocs.js.map +1 -0
- package/components/flex/style/dnb-flex.css +36 -4
- package/components/flex/style/dnb-flex.min.css +1 -1
- package/components/flex/style/flex-container.scss +39 -4
- package/components/help-button/HelpButtonInline.d.ts +6 -0
- package/components/help-button/HelpButtonInline.js +51 -19
- package/components/help-button/HelpButtonInline.js.map +1 -1
- package/components/help-button/HelpButtonInstance.js +1 -1
- package/components/help-button/HelpButtonInstance.js.map +1 -1
- package/components/slider/SliderDocs.js +2 -2
- package/components/slider/SliderDocs.js.map +1 -1
- package/components/slider/SliderProvider.js +0 -2
- package/components/slider/SliderProvider.js.map +1 -1
- package/components/slider/types.d.ts +2 -2
- package/components/slider/types.js.map +1 -1
- package/components/step-indicator/StepIndicator.d.ts +6 -0
- package/components/step-indicator/StepIndicator.js.map +1 -1
- package/components/step-indicator/StepIndicatorContext.d.ts +2 -0
- package/components/step-indicator/StepIndicatorContext.js.map +1 -1
- package/components/step-indicator/StepIndicatorTriggerButton.js +4 -3
- package/components/step-indicator/StepIndicatorTriggerButton.js.map +1 -1
- package/components/toggle-button/ToggleButton.d.ts +9 -1
- package/components/toggle-button/ToggleButtonDocs.js +1 -0
- package/components/toggle-button/ToggleButtonDocs.js.map +1 -1
- package/es/components/card/Card.js +1 -1
- package/es/components/card/Card.js.map +1 -1
- package/es/components/date-picker/DatePicker.d.ts +3 -1
- package/es/components/date-picker/DatePicker.js +3 -1
- package/es/components/date-picker/DatePicker.js.map +1 -1
- package/es/components/date-picker/DatePickerAddon.js +6 -1
- package/es/components/date-picker/DatePickerAddon.js.map +1 -1
- package/es/components/date-picker/DatePickerInput.d.ts +5 -0
- package/es/components/date-picker/DatePickerInput.js +54 -36
- package/es/components/date-picker/DatePickerInput.js.map +1 -1
- package/es/components/date-picker/DatePickerProvider.d.ts +4 -3
- package/es/components/date-picker/DatePickerProvider.js +7 -2
- package/es/components/date-picker/DatePickerProvider.js.map +1 -1
- package/es/components/date-picker/hooks/useDates.js.map +1 -1
- package/es/components/flex/Container.d.ts +2 -1
- package/es/components/flex/Container.js +32 -25
- package/es/components/flex/Container.js.map +1 -1
- package/es/components/flex/ContainerDocs.d.ts +2 -0
- package/es/components/flex/ContainerDocs.js +74 -0
- package/es/components/flex/ContainerDocs.js.map +1 -0
- package/es/components/flex/style/dnb-flex.css +36 -4
- package/es/components/flex/style/dnb-flex.min.css +1 -1
- package/es/components/flex/style/flex-container.scss +39 -4
- package/es/components/help-button/HelpButtonInline.d.ts +6 -0
- package/es/components/help-button/HelpButtonInline.js +50 -18
- package/es/components/help-button/HelpButtonInline.js.map +1 -1
- package/es/components/help-button/HelpButtonInstance.js +1 -1
- package/es/components/help-button/HelpButtonInstance.js.map +1 -1
- package/es/components/slider/SliderDocs.js +2 -2
- package/es/components/slider/SliderDocs.js.map +1 -1
- package/es/components/slider/SliderProvider.js +0 -2
- package/es/components/slider/SliderProvider.js.map +1 -1
- package/es/components/slider/types.d.ts +2 -2
- package/es/components/slider/types.js.map +1 -1
- package/es/components/step-indicator/StepIndicator.d.ts +6 -0
- package/es/components/step-indicator/StepIndicator.js.map +1 -1
- package/es/components/step-indicator/StepIndicatorContext.d.ts +2 -0
- package/es/components/step-indicator/StepIndicatorContext.js.map +1 -1
- package/es/components/step-indicator/StepIndicatorTriggerButton.js +4 -3
- package/es/components/step-indicator/StepIndicatorTriggerButton.js.map +1 -1
- package/es/components/toggle-button/ToggleButton.d.ts +9 -1
- package/es/components/toggle-button/ToggleButtonDocs.js +1 -0
- package/es/components/toggle-button/ToggleButtonDocs.js.map +1 -1
- package/es/extensions/forms/DataContext/Context.d.ts +11 -5
- package/es/extensions/forms/DataContext/Context.js.map +1 -1
- package/es/extensions/forms/DataContext/FieldBoundary/FieldBoundaryContext.d.ts +1 -1
- package/es/extensions/forms/DataContext/FieldBoundary/FieldBoundaryContext.js.map +1 -1
- package/es/extensions/forms/DataContext/FieldBoundary/FieldBoundaryProvider.js +2 -2
- package/es/extensions/forms/DataContext/FieldBoundary/FieldBoundaryProvider.js.map +1 -1
- package/es/extensions/forms/DataContext/Provider/Provider.d.ts +2 -2
- package/es/extensions/forms/DataContext/Provider/Provider.js +36 -35
- package/es/extensions/forms/DataContext/Provider/Provider.js.map +1 -1
- package/es/extensions/forms/DataContext/Provider/ProviderDocs.js +1 -1
- package/es/extensions/forms/DataContext/Provider/ProviderDocs.js.map +1 -1
- package/es/extensions/forms/Field/Slider/Slider.js +13 -4
- package/es/extensions/forms/Field/Slider/Slider.js.map +1 -1
- package/es/extensions/forms/FieldBlock/FieldBlock.js +17 -13
- package/es/extensions/forms/FieldBlock/FieldBlock.js.map +1 -1
- package/es/extensions/forms/Iterate/PushContainer/PushContainer.js +7 -2
- package/es/extensions/forms/Iterate/PushContainer/PushContainer.js.map +1 -1
- package/es/extensions/forms/Value/Provider/useValueProvider.d.ts +1 -0
- package/es/extensions/forms/Value/ValueDocs.js +5 -0
- package/es/extensions/forms/Value/ValueDocs.js.map +1 -1
- package/es/extensions/forms/ValueBlock/ValueBlock.d.ts +14 -1
- package/es/extensions/forms/ValueBlock/ValueBlock.js +40 -10
- package/es/extensions/forms/ValueBlock/ValueBlock.js.map +1 -1
- package/es/extensions/forms/ValueBlock/style/dnb-value-block.css +17 -0
- package/es/extensions/forms/ValueBlock/style/dnb-value-block.min.css +1 -1
- package/es/extensions/forms/ValueBlock/style/dnb-value-block.scss +24 -0
- package/es/extensions/forms/Wizard/Container/DisplaySteps.d.ts +7 -0
- package/es/extensions/forms/Wizard/Container/DisplaySteps.js +66 -0
- package/es/extensions/forms/Wizard/Container/DisplaySteps.js.map +1 -0
- package/es/extensions/forms/Wizard/Container/IterateOverSteps.d.ts +3 -0
- package/es/extensions/forms/Wizard/Container/IterateOverSteps.js +85 -0
- package/es/extensions/forms/Wizard/Container/IterateOverSteps.js.map +1 -0
- package/es/extensions/forms/Wizard/Container/PrerenderFieldPropsOfOtherSteps.d.ts +4 -0
- package/es/extensions/forms/Wizard/Container/PrerenderFieldPropsOfOtherSteps.js +54 -0
- package/es/extensions/forms/Wizard/Container/PrerenderFieldPropsOfOtherSteps.js.map +1 -0
- package/es/extensions/forms/Wizard/Container/WizardContainer.d.ts +9 -1
- package/es/extensions/forms/Wizard/Container/WizardContainer.js +97 -194
- package/es/extensions/forms/Wizard/Container/WizardContainer.js.map +1 -1
- package/es/extensions/forms/Wizard/Container/WizardContainerDocs.js +10 -0
- package/es/extensions/forms/Wizard/Container/WizardContainerDocs.js.map +1 -1
- package/es/extensions/forms/Wizard/Context/WizardContext.d.ts +7 -23
- package/es/extensions/forms/Wizard/Context/WizardContext.js.map +1 -1
- package/es/extensions/forms/Wizard/Context/types.d.ts +35 -0
- package/es/extensions/forms/Wizard/Context/types.js +1 -0
- package/es/extensions/forms/Wizard/Context/types.js.map +1 -0
- package/es/extensions/forms/Wizard/EditButton/EditButton.d.ts +1 -1
- package/es/extensions/forms/Wizard/EditButton/EditButton.js.map +1 -1
- package/es/extensions/forms/Wizard/Step/Step.d.ts +4 -0
- package/es/extensions/forms/Wizard/Step/Step.js +29 -10
- package/es/extensions/forms/Wizard/Step/Step.js.map +1 -1
- package/es/extensions/forms/Wizard/Step/StepContext.d.ts +7 -0
- package/es/extensions/forms/Wizard/Step/StepContext.js +4 -0
- package/es/extensions/forms/Wizard/Step/StepContext.js.map +1 -0
- package/es/extensions/forms/Wizard/Step/StepDocs.js +5 -0
- package/es/extensions/forms/Wizard/Step/StepDocs.js.map +1 -1
- package/es/extensions/forms/Wizard/hooks/useStep.d.ts +2 -1
- package/es/extensions/forms/Wizard/hooks/useStep.js.map +1 -1
- package/es/extensions/forms/constants/locales/en-GB.d.ts +1 -0
- package/es/extensions/forms/constants/locales/en-GB.js +2 -1
- package/es/extensions/forms/constants/locales/en-GB.js.map +1 -1
- package/es/extensions/forms/constants/locales/en-US.d.ts +1 -0
- package/es/extensions/forms/constants/locales/index.d.ts +2 -0
- package/es/extensions/forms/constants/locales/nb-NO.d.ts +1 -0
- package/es/extensions/forms/constants/locales/nb-NO.js +2 -1
- package/es/extensions/forms/constants/locales/nb-NO.js.map +1 -1
- package/es/extensions/forms/hooks/useFieldProps.js +42 -22
- package/es/extensions/forms/hooks/useFieldProps.js.map +1 -1
- package/es/extensions/forms/style/dnb-forms.css +17 -0
- package/es/extensions/forms/style/dnb-forms.min.css +1 -1
- package/es/extensions/forms/types.d.ts +9 -1
- package/es/extensions/forms/types.js.map +1 -1
- package/es/fragments/drawer-list/DrawerList.d.ts +6 -1
- package/es/fragments/drawer-list/DrawerList.js +1 -0
- package/es/fragments/drawer-list/DrawerList.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/style/core/scopes.scss +1 -1
- package/es/style/dnb-ui-basis.css +1 -1
- package/es/style/dnb-ui-basis.min.css +1 -1
- package/es/style/dnb-ui-body.css +1 -1
- package/es/style/dnb-ui-body.min.css +1 -1
- package/es/style/dnb-ui-components.css +53 -4
- package/es/style/dnb-ui-components.min.css +2 -2
- package/es/style/dnb-ui-core.css +1 -1
- package/es/style/dnb-ui-core.min.css +1 -1
- package/es/style/dnb-ui-extensions.css +17 -0
- package/es/style/dnb-ui-extensions.min.css +1 -1
- package/es/style/dnb-ui-forms.css +17 -0
- package/es/style/dnb-ui-forms.min.css +1 -1
- package/es/style/themes/theme-eiendom/eiendom-theme-components.css +70 -4
- package/es/style/themes/theme-eiendom/eiendom-theme-components.min.css +2 -2
- package/es/style/themes/theme-eiendom/eiendom-theme-extensions.css +17 -0
- package/es/style/themes/theme-eiendom/eiendom-theme-extensions.min.css +1 -1
- package/es/style/themes/theme-eiendom/eiendom-theme-forms.css +17 -0
- package/es/style/themes/theme-eiendom/eiendom-theme-forms.min.css +1 -1
- package/es/style/themes/theme-sbanken/sbanken-theme-components.css +70 -4
- package/es/style/themes/theme-sbanken/sbanken-theme-components.min.css +2 -2
- package/es/style/themes/theme-sbanken/sbanken-theme-extensions.css +17 -0
- package/es/style/themes/theme-sbanken/sbanken-theme-extensions.min.css +1 -1
- package/es/style/themes/theme-sbanken/sbanken-theme-forms.css +17 -0
- package/es/style/themes/theme-sbanken/sbanken-theme-forms.min.css +1 -1
- package/es/style/themes/theme-ui/ui-theme-components.css +70 -4
- package/es/style/themes/theme-ui/ui-theme-components.min.css +2 -2
- package/es/style/themes/theme-ui/ui-theme-extensions.css +17 -0
- package/es/style/themes/theme-ui/ui-theme-extensions.min.css +1 -1
- package/es/style/themes/theme-ui/ui-theme-forms.css +17 -0
- package/es/style/themes/theme-ui/ui-theme-forms.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 +11 -5
- package/extensions/forms/DataContext/Context.js.map +1 -1
- package/extensions/forms/DataContext/FieldBoundary/FieldBoundaryContext.d.ts +1 -1
- package/extensions/forms/DataContext/FieldBoundary/FieldBoundaryContext.js.map +1 -1
- package/extensions/forms/DataContext/FieldBoundary/FieldBoundaryProvider.js +2 -2
- package/extensions/forms/DataContext/FieldBoundary/FieldBoundaryProvider.js.map +1 -1
- package/extensions/forms/DataContext/Provider/Provider.d.ts +2 -2
- package/extensions/forms/DataContext/Provider/Provider.js +46 -42
- package/extensions/forms/DataContext/Provider/Provider.js.map +1 -1
- package/extensions/forms/DataContext/Provider/ProviderDocs.js +1 -1
- package/extensions/forms/DataContext/Provider/ProviderDocs.js.map +1 -1
- package/extensions/forms/Field/Slider/Slider.js +13 -4
- package/extensions/forms/Field/Slider/Slider.js.map +1 -1
- package/extensions/forms/FieldBlock/FieldBlock.js +17 -13
- package/extensions/forms/FieldBlock/FieldBlock.js.map +1 -1
- package/extensions/forms/Iterate/PushContainer/PushContainer.js +7 -2
- package/extensions/forms/Iterate/PushContainer/PushContainer.js.map +1 -1
- package/extensions/forms/Value/Provider/useValueProvider.d.ts +1 -0
- package/extensions/forms/Value/ValueDocs.js +5 -0
- package/extensions/forms/Value/ValueDocs.js.map +1 -1
- package/extensions/forms/ValueBlock/ValueBlock.d.ts +14 -1
- package/extensions/forms/ValueBlock/ValueBlock.js +40 -10
- package/extensions/forms/ValueBlock/ValueBlock.js.map +1 -1
- package/extensions/forms/ValueBlock/style/dnb-value-block.css +17 -0
- package/extensions/forms/ValueBlock/style/dnb-value-block.min.css +1 -1
- package/extensions/forms/ValueBlock/style/dnb-value-block.scss +24 -0
- package/extensions/forms/Wizard/Container/DisplaySteps.d.ts +7 -0
- package/extensions/forms/Wizard/Container/DisplaySteps.js +70 -0
- package/extensions/forms/Wizard/Container/DisplaySteps.js.map +1 -0
- package/extensions/forms/Wizard/Container/IterateOverSteps.d.ts +3 -0
- package/extensions/forms/Wizard/Container/IterateOverSteps.js +86 -0
- package/extensions/forms/Wizard/Container/IterateOverSteps.js.map +1 -0
- package/extensions/forms/Wizard/Container/PrerenderFieldPropsOfOtherSteps.d.ts +4 -0
- package/extensions/forms/Wizard/Container/PrerenderFieldPropsOfOtherSteps.js +57 -0
- package/extensions/forms/Wizard/Container/PrerenderFieldPropsOfOtherSteps.js.map +1 -0
- package/extensions/forms/Wizard/Container/WizardContainer.d.ts +9 -1
- package/extensions/forms/Wizard/Container/WizardContainer.js +103 -207
- package/extensions/forms/Wizard/Container/WizardContainer.js.map +1 -1
- package/extensions/forms/Wizard/Container/WizardContainerDocs.js +10 -0
- package/extensions/forms/Wizard/Container/WizardContainerDocs.js.map +1 -1
- package/extensions/forms/Wizard/Context/WizardContext.d.ts +7 -23
- package/extensions/forms/Wizard/Context/WizardContext.js.map +1 -1
- package/extensions/forms/Wizard/Context/types.d.ts +35 -0
- package/extensions/forms/Wizard/Context/types.js +1 -0
- package/extensions/forms/Wizard/Context/types.js.map +1 -0
- package/extensions/forms/Wizard/EditButton/EditButton.d.ts +1 -1
- package/extensions/forms/Wizard/EditButton/EditButton.js.map +1 -1
- package/extensions/forms/Wizard/Step/Step.d.ts +4 -0
- package/extensions/forms/Wizard/Step/Step.js +29 -10
- package/extensions/forms/Wizard/Step/Step.js.map +1 -1
- package/extensions/forms/Wizard/Step/StepContext.d.ts +7 -0
- package/extensions/forms/Wizard/Step/StepContext.js +4 -0
- package/extensions/forms/Wizard/Step/StepContext.js.map +1 -0
- package/extensions/forms/Wizard/Step/StepDocs.js +5 -0
- package/extensions/forms/Wizard/Step/StepDocs.js.map +1 -1
- package/extensions/forms/Wizard/hooks/useStep.d.ts +2 -1
- package/extensions/forms/Wizard/hooks/useStep.js.map +1 -1
- package/extensions/forms/constants/locales/en-GB.d.ts +1 -0
- package/extensions/forms/constants/locales/en-GB.js +2 -1
- package/extensions/forms/constants/locales/en-GB.js.map +1 -1
- package/extensions/forms/constants/locales/en-US.d.ts +1 -0
- package/extensions/forms/constants/locales/index.d.ts +2 -0
- package/extensions/forms/constants/locales/nb-NO.d.ts +1 -0
- package/extensions/forms/constants/locales/nb-NO.js +2 -1
- package/extensions/forms/constants/locales/nb-NO.js.map +1 -1
- package/extensions/forms/hooks/useFieldProps.js +41 -23
- package/extensions/forms/hooks/useFieldProps.js.map +1 -1
- package/extensions/forms/style/dnb-forms.css +17 -0
- package/extensions/forms/style/dnb-forms.min.css +1 -1
- package/extensions/forms/types.d.ts +9 -1
- package/extensions/forms/types.js.map +1 -1
- package/fragments/drawer-list/DrawerList.d.ts +6 -1
- package/fragments/drawer-list/DrawerList.js +1 -0
- package/fragments/drawer-list/DrawerList.js.map +1 -1
- package/package.json +1 -1
- package/shared/Eufemia.d.ts +1 -1
- package/shared/Eufemia.js +2 -2
- package/shared/Eufemia.js.map +1 -1
- package/style/core/scopes.scss +1 -1
- package/style/dnb-ui-basis.css +1 -1
- package/style/dnb-ui-basis.min.css +1 -1
- package/style/dnb-ui-body.css +1 -1
- package/style/dnb-ui-body.min.css +1 -1
- package/style/dnb-ui-components.css +53 -4
- package/style/dnb-ui-components.min.css +2 -2
- package/style/dnb-ui-core.css +1 -1
- package/style/dnb-ui-core.min.css +1 -1
- package/style/dnb-ui-extensions.css +17 -0
- package/style/dnb-ui-extensions.min.css +1 -1
- package/style/dnb-ui-forms.css +17 -0
- package/style/dnb-ui-forms.min.css +1 -1
- package/style/themes/theme-eiendom/eiendom-theme-components.css +70 -4
- package/style/themes/theme-eiendom/eiendom-theme-components.min.css +2 -2
- package/style/themes/theme-eiendom/eiendom-theme-extensions.css +17 -0
- package/style/themes/theme-eiendom/eiendom-theme-extensions.min.css +1 -1
- package/style/themes/theme-eiendom/eiendom-theme-forms.css +17 -0
- package/style/themes/theme-eiendom/eiendom-theme-forms.min.css +1 -1
- package/style/themes/theme-sbanken/sbanken-theme-components.css +70 -4
- package/style/themes/theme-sbanken/sbanken-theme-components.min.css +2 -2
- package/style/themes/theme-sbanken/sbanken-theme-extensions.css +17 -0
- package/style/themes/theme-sbanken/sbanken-theme-extensions.min.css +1 -1
- package/style/themes/theme-sbanken/sbanken-theme-forms.css +17 -0
- package/style/themes/theme-sbanken/sbanken-theme-forms.min.css +1 -1
- package/style/themes/theme-ui/ui-theme-components.css +70 -4
- package/style/themes/theme-ui/ui-theme-components.min.css +2 -2
- package/style/themes/theme-ui/ui-theme-extensions.css +17 -0
- package/style/themes/theme-ui/ui-theme-extensions.min.css +1 -1
- package/style/themes/theme-ui/ui-theme-forms.css +17 -0
- package/style/themes/theme-ui/ui-theme-forms.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 +1 -1
- package/umd/dnb-ui-lib.min.js +1 -1
|
@@ -3,10 +3,11 @@
|
|
|
3
3
|
import _extends from "@babel/runtime/helpers/esm/extends";
|
|
4
4
|
import _objectWithoutProperties from "@babel/runtime/helpers/esm/objectWithoutProperties";
|
|
5
5
|
import _defineProperty from "@babel/runtime/helpers/esm/defineProperty";
|
|
6
|
-
const _excluded = ["
|
|
6
|
+
const _excluded = ["spacing", "gap", "rowGap"],
|
|
7
|
+
_excluded2 = ["className", "style", "children", "element", "direction", "wrap", "sizeCount", "rowGap", "justify", "align", "alignSelf", "divider", "gap", "breakpoints", "queries"];
|
|
7
8
|
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; }
|
|
8
9
|
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; }
|
|
9
|
-
import React, { Fragment,
|
|
10
|
+
import React, { Fragment, useMemo } from 'react';
|
|
10
11
|
import classnames from 'classnames';
|
|
11
12
|
import Space from '../space/Space';
|
|
12
13
|
import { Hr } from '../../elements';
|
|
@@ -16,9 +17,21 @@ const propNames = ['direction', 'wrap', 'justify', 'align', 'divider', 'spacing'
|
|
|
16
17
|
export function pickFlexContainerProps(props, defaults = {}, skip = []) {
|
|
17
18
|
return _objectSpread(_objectSpread({}, defaults), Object.fromEntries(Object.entries(props !== null && props !== void 0 ? props : {}).filter(([key]) => propNames.includes(key) && !skip.includes(key))));
|
|
18
19
|
}
|
|
20
|
+
function handleDeprecatedProps(_ref) {
|
|
21
|
+
let {
|
|
22
|
+
spacing,
|
|
23
|
+
gap,
|
|
24
|
+
rowGap
|
|
25
|
+
} = _ref,
|
|
26
|
+
rest = _objectWithoutProperties(_ref, _excluded);
|
|
27
|
+
return _objectSpread(_objectSpread({}, rest), {}, {
|
|
28
|
+
rowGap: rowGap === true ? undefined : rowGap,
|
|
29
|
+
gap: spacing !== null && spacing !== void 0 ? spacing : gap
|
|
30
|
+
});
|
|
31
|
+
}
|
|
19
32
|
function FlexContainer(props) {
|
|
20
|
-
|
|
21
|
-
|
|
33
|
+
const _handleDeprecatedProp = handleDeprecatedProps(props),
|
|
34
|
+
{
|
|
22
35
|
className,
|
|
23
36
|
style,
|
|
24
37
|
children,
|
|
@@ -31,13 +44,15 @@ function FlexContainer(props) {
|
|
|
31
44
|
align = 'flex-start',
|
|
32
45
|
alignSelf,
|
|
33
46
|
divider = 'space',
|
|
34
|
-
gap,
|
|
35
|
-
spacing: spacingProp,
|
|
47
|
+
gap = 'small',
|
|
36
48
|
breakpoints,
|
|
37
49
|
queries
|
|
38
|
-
} =
|
|
39
|
-
rest = _objectWithoutProperties(
|
|
40
|
-
const spacing = (
|
|
50
|
+
} = _handleDeprecatedProp,
|
|
51
|
+
rest = _objectWithoutProperties(_handleDeprecatedProp, _excluded2);
|
|
52
|
+
const spacing = useMemo(() => {
|
|
53
|
+
var _ref2;
|
|
54
|
+
return (_ref2 = direction === 'vertical' ? rowGap : undefined) !== null && _ref2 !== void 0 ? _ref2 : gap;
|
|
55
|
+
}, [direction, gap, rowGap]);
|
|
41
56
|
const childrenArray = replaceRootFragment(wrapChildren(props, children));
|
|
42
57
|
const hasHeading = childrenArray.some((child, i) => {
|
|
43
58
|
const previousChild = childrenArray === null || childrenArray === void 0 ? void 0 : childrenArray[i - 1];
|
|
@@ -88,8 +103,8 @@ function FlexContainer(props) {
|
|
|
88
103
|
if (isFirst && direction !== 'horizontal') {
|
|
89
104
|
startSpacing = 0;
|
|
90
105
|
} else {
|
|
91
|
-
var
|
|
92
|
-
startSpacing = (
|
|
106
|
+
var _ref3, _getSpaceValue3;
|
|
107
|
+
startSpacing = (_ref3 = (_getSpaceValue3 = getSpaceValue(start, child)) !== null && _getSpaceValue3 !== void 0 ? _getSpaceValue3 : getSpaceValue(end, previousChild)) !== null && _ref3 !== void 0 ? _ref3 : spacing;
|
|
93
108
|
}
|
|
94
109
|
if (React.isValidElement(previousChild) && (previousChild === null || previousChild === void 0 ? void 0 : (_previousChild$type = previousChild.type) === null || _previousChild$type === void 0 ? void 0 : _previousChild$type['_supportsSpacingProps']) === false) {
|
|
95
110
|
startSpacing = 0;
|
|
@@ -107,21 +122,13 @@ function FlexContainer(props) {
|
|
|
107
122
|
});
|
|
108
123
|
});
|
|
109
124
|
const n = 'dnb-flex-container';
|
|
110
|
-
const
|
|
111
|
-
if (rowGap ===
|
|
112
|
-
return `${n}--row-gap
|
|
113
|
-
}
|
|
114
|
-
if (rowGap === true || !rowGap && wrap && direction === 'horizontal') {
|
|
115
|
-
return `${n}--row-gap-small`;
|
|
116
|
-
}
|
|
117
|
-
if (hasSizeProp && spacing) {
|
|
118
|
-
return `${n}--row-gap-${spacing}`;
|
|
119
|
-
}
|
|
120
|
-
if (rowGap) {
|
|
121
|
-
return `${n}--row-gap-${rowGap}`;
|
|
125
|
+
const rowGapClass = useMemo(() => {
|
|
126
|
+
if (rowGap !== false && direction === 'horizontal') {
|
|
127
|
+
return `${n}--row-gap-${rowGap !== null && rowGap !== void 0 ? rowGap : 'small'}`;
|
|
122
128
|
}
|
|
123
|
-
|
|
124
|
-
|
|
129
|
+
return undefined;
|
|
130
|
+
}, [direction, rowGap]);
|
|
131
|
+
const cn = classnames('dnb-flex-container', rowGapClass, className, direction && `${n}--direction-${direction}`, justify && `${n}--justify-${justify}`, align && `${n}--align-${align}`, alignSelf && `${n}--align-self-${alignSelf}`, spacing && `${n}--spacing-${spacing}`, wrap && `${n}--wrap`, hasSizeProp && `${n}--has-size`, divider && `${n}--divider-${divider}`);
|
|
125
132
|
return React.createElement(Space, _extends({
|
|
126
133
|
element: element,
|
|
127
134
|
className: cn,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Container.js","names":["React","Fragment","useCallback","classnames","Space","Hr","useMedia","getSpaceValue","isHeadingElement","renderWithSpacing","propNames","pickFlexContainerProps","props","defaults","skip","_objectSpread","Object","fromEntries","entries","filter","key","includes","FlexContainer","_ref","className","style","children","element","direction","wrap","sizeCount","rowGap","justify","align","alignSelf","divider","gap","spacing","spacingProp","breakpoints","queries","rest","_objectWithoutProperties","_excluded","childrenArray","replaceRootFragment","wrapChildren","hasHeading","some","child","i","previousChild","hasSizeProp","_child$props","size","mediaKey","disabled","content","map","_previousChild$type","isFirst","isLast","length","isHeading","start","end","endSpacing","startSpacing","_getSpaceValue","_getSpaceValue2","spaceAboveLine","createElement","top","space","_ref2","_getSpaceValue3","isValidElement","type","n","getRowGapClass","cn","_extends","Children","toArray","cloneElement","firstChild","count","_firstChild$props","_supportsSpacingProps"],"sources":["../../../../src/components/flex/Container.tsx"],"sourcesContent":["import React, { Fragment, useCallback } from 'react'\nimport classnames from 'classnames'\nimport Space, { SpaceProps } from '../space/Space'\nimport { Hr } from '../../elements'\nimport useMedia from '../../shared/useMedia'\nimport {\n getSpaceValue,\n isHeadingElement,\n renderWithSpacing,\n} from './utils'\n\nimport type { MediaQueryBreakpoints } from '../../shared/MediaQueryUtils'\nimport type { SpaceType } from '../space/types'\nimport type { UseMediaQueries } from '../../shared/useMedia'\nimport type { End, Start } from './types'\n\ntype Gap =\n | false\n | 'xx-small'\n | 'x-small'\n | 'small'\n | 'medium'\n | 'large'\n | 'x-large'\n | 'xx-large'\n\nexport type BasicProps = {\n direction?: 'horizontal' | 'vertical'\n wrap?: boolean\n rowGap?: 'small' | 'medium' | 'large' | boolean\n sizeCount?: number\n justify?:\n | 'flex-start'\n | 'flex-end'\n | 'center'\n | 'space-between'\n | 'space-around'\n | 'space-evenly'\n align?: 'flex-start' | 'flex-end' | 'center' | 'stretch' | 'baseline'\n /** For when used as a flex item in an outer container in addition to being a container: */\n alignSelf?: 'flex-start' | 'flex-end' | 'center' | 'baseline' | 'stretch'\n /** When \"line-framed\" is used, a line will be shown between items and above the first and below the last item */\n divider?: 'space' | 'line' | 'line-framed'\n /** Spacing between items inside */\n gap?: Gap\n /** @deprecated Use `gap` instead */\n spacing?: Gap\n breakpoints?: MediaQueryBreakpoints\n queries?: UseMediaQueries\n}\n\nexport type Props = BasicProps &\n SpaceProps &\n Omit<\n React.HTMLAttributes<HTMLDivElement>,\n 'ref' | 'wrap' | 'value' | 'label' | 'title' | 'placeholder'\n >\n\nconst propNames: Array<keyof Props> = [\n 'direction',\n 'wrap',\n 'justify',\n 'align',\n 'divider',\n 'spacing',\n 'gap',\n]\n\nexport function pickFlexContainerProps<T extends Props>(\n props: T,\n defaults: Partial<Props> = {},\n skip: Array<keyof Props> = []\n): Omit<Props, 'children'> {\n return {\n ...defaults,\n ...Object.fromEntries(\n Object.entries(props ?? {}).filter(\n ([key]) =>\n propNames.includes(key as keyof Props) &&\n !skip.includes(key as keyof Props)\n )\n ),\n }\n}\n\nfunction FlexContainer(props: Props) {\n const {\n className,\n style,\n children,\n element = 'div',\n direction = 'horizontal',\n wrap = true,\n sizeCount = 12,\n rowGap,\n justify = 'flex-start',\n align = 'flex-start',\n alignSelf,\n divider = 'space',\n gap,\n spacing: spacingProp,\n breakpoints,\n queries,\n ...rest\n } = props\n\n const spacing = spacingProp ?? gap ?? 'small'\n const childrenArray = replaceRootFragment(wrapChildren(props, children))\n const hasHeading = childrenArray.some((child, i) => {\n const previousChild = childrenArray?.[i - 1]\n return (\n isHeadingElement(child) || (i > 0 && isHeadingElement(previousChild))\n )\n })\n const hasSizeProp =\n !hasHeading &&\n direction === 'horizontal' &&\n childrenArray.some((child) => child['props']?.size)\n\n const { key: mediaKey } = useMedia({\n disabled: !hasSizeProp,\n breakpoints,\n queries,\n })\n\n const content = childrenArray.map((child, i) => {\n // Set spacing on child components by props (instead of CSS) to be able to dynamically override by props on each child. The default\n // is the spacing-props that controls space between children. Then override with props sent to the children, including both top\n // and bottom when th\n const isFirst = i === 0\n const isLast = i >= childrenArray.length - 1\n const previousChild = childrenArray?.[i - 1]\n const isHeading = hasHeading && isHeadingElement(previousChild)\n\n // Always set spacing between elements in the vertical layout on the top props, and 0 on bottom, to avoid\n // having to divide spacing between both with smaller values.\n const start: Start = direction === 'horizontal' ? 'left' : 'top'\n const end: End = direction === 'horizontal' ? 'right' : 'bottom'\n // const start: Start | End = direction === 'horizontal' ? 'right' : 'top'\n // const end: Start | End = direction === 'horizontal' ? 'left' : 'bottom'\n const endSpacing = 0\n let startSpacing = null\n\n if (\n // No line above heading\n !isHeading &&\n ((divider === 'line' && !isFirst) || divider === 'line-framed')\n ) {\n const spaceAboveLine = getSpaceValue(end, previousChild) ?? spacing\n startSpacing = (getSpaceValue(start, child) ?? spacing) as SpaceType\n\n return (\n <React.Fragment key={`element-${i}`}>\n <Hr\n top={!isFirst ? spaceAboveLine : 0}\n space={0}\n className=\"dnb-flex-container__hr\"\n />\n\n {renderWithSpacing(child, {\n space: { [start]: startSpacing, [end]: endSpacing },\n })}\n\n {divider === 'line-framed' && isLast && (\n <Hr\n top={spaceAboveLine}\n space={0}\n className=\"dnb-flex-container__hr\"\n />\n )}\n </React.Fragment>\n )\n }\n\n // No space above first element.\n if (isFirst && direction !== 'horizontal') {\n startSpacing = 0\n } else {\n // Since top space of current and bottom space of previous component is the same\n startSpacing =\n getSpaceValue(start, child) ??\n getSpaceValue(end, previousChild) ??\n spacing\n }\n\n if (\n React.isValidElement(previousChild) &&\n previousChild?.type?.['_supportsSpacingProps'] === false\n ) {\n startSpacing = 0\n }\n\n const space =\n direction === 'horizontal'\n ? { [start]: endSpacing, [end]: startSpacing }\n : { [start]: startSpacing, [end]: endSpacing }\n\n return renderWithSpacing(child, {\n key: child?.['key'] || `element-${i}`,\n space,\n })\n })\n\n const n = 'dnb-flex-container'\n const getRowGapClass = useCallback(() => {\n if (rowGap === false) {\n return `${n}--row-gap-off`\n }\n\n if (\n rowGap === true ||\n (!rowGap && wrap && direction === 'horizontal')\n ) {\n return `${n}--row-gap-small`\n }\n\n if (hasSizeProp && spacing) {\n return `${n}--row-gap-${spacing}`\n }\n\n if (rowGap) {\n return `${n}--row-gap-${rowGap}`\n }\n }, [direction, hasSizeProp, rowGap, spacing, wrap])\n\n const cn = classnames(\n 'dnb-flex-container',\n direction && `${n}--direction-${direction}`,\n justify && `${n}--justify-${justify}`,\n align && `${n}--align-${align}`,\n alignSelf && `${n}--align-self-${alignSelf}`,\n spacing && `${n}--spacing-${spacing}`,\n wrap && `${n}--wrap`,\n getRowGapClass(),\n hasSizeProp && `${n}--has-size`,\n divider && `${n}--divider-${divider}`,\n className\n )\n\n return (\n <Space\n element={element}\n className={cn}\n data-media-key={mediaKey}\n style={\n hasSizeProp\n ? ({ '--sizeCount': sizeCount, ...style } as React.CSSProperties)\n : style\n }\n {...rest}\n >\n {content}\n </Space>\n )\n}\n\nfunction wrapChildren(props: Props, children: React.ReactNode) {\n return React.Children.toArray(children).map((child) => {\n if (\n React.isValidElement(child) &&\n child.type['_supportsSpacingProps'] === 'children'\n ) {\n return React.cloneElement(\n child,\n child.props,\n <FlexContainer {...props}>{child.props.children}</FlexContainer>\n )\n }\n\n return child\n })\n}\n\nfunction replaceRootFragment(children) {\n const firstChild = children[0]\n if (\n React.Children.count(children) === 1 &&\n firstChild?.type === Fragment\n ) {\n return React.Children.toArray(firstChild?.props?.children)\n }\n return children\n}\n\nFlexContainer._supportsSpacingProps = true\n\nexport default FlexContainer\n"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"Container.js","names":["React","Fragment","useMemo","classnames","Space","Hr","useMedia","getSpaceValue","isHeadingElement","renderWithSpacing","propNames","pickFlexContainerProps","props","defaults","skip","_objectSpread","Object","fromEntries","entries","filter","key","includes","handleDeprecatedProps","_ref","spacing","gap","rowGap","rest","_objectWithoutProperties","_excluded","undefined","FlexContainer","_handleDeprecatedProp","className","style","children","element","direction","wrap","sizeCount","justify","align","alignSelf","divider","breakpoints","queries","_excluded2","_ref2","childrenArray","replaceRootFragment","wrapChildren","hasHeading","some","child","i","previousChild","hasSizeProp","_child$props","size","mediaKey","disabled","content","map","_previousChild$type","isFirst","isLast","length","isHeading","start","end","endSpacing","startSpacing","_getSpaceValue","_getSpaceValue2","spaceAboveLine","createElement","top","space","_ref3","_getSpaceValue3","isValidElement","type","n","rowGapClass","cn","_extends","Children","toArray","cloneElement","firstChild","count","_firstChild$props","_supportsSpacingProps"],"sources":["../../../../src/components/flex/Container.tsx"],"sourcesContent":["import React, { Fragment, useMemo } from 'react'\nimport classnames from 'classnames'\nimport Space, { SpaceProps } from '../space/Space'\nimport { Hr } from '../../elements'\nimport useMedia from '../../shared/useMedia'\nimport {\n getSpaceValue,\n isHeadingElement,\n renderWithSpacing,\n} from './utils'\n\nimport type { MediaQueryBreakpoints } from '../../shared/MediaQueryUtils'\nimport type { SpaceType } from '../space/types'\nimport type { UseMediaQueries } from '../../shared/useMedia'\nimport type { End, Start } from './types'\n\ntype Gap =\n | false\n | 'xx-small'\n | 'x-small'\n | 'small'\n | 'medium'\n | 'large'\n | 'x-large'\n | 'xx-large'\n\nexport type BasicProps = {\n direction?: 'horizontal' | 'vertical'\n wrap?: boolean\n /** value `true` is deprecated, use `undefined` instead */\n rowGap?: Gap | true\n sizeCount?: number\n justify?:\n | 'flex-start'\n | 'flex-end'\n | 'center'\n | 'space-between'\n | 'space-around'\n | 'space-evenly'\n align?: 'flex-start' | 'flex-end' | 'center' | 'stretch' | 'baseline'\n /** For when used as a flex item in an outer container in addition to being a container: */\n alignSelf?: 'flex-start' | 'flex-end' | 'center' | 'baseline' | 'stretch'\n /** When \"line-framed\" is used, a line will be shown between items and above the first and below the last item */\n divider?: 'space' | 'line' | 'line-framed'\n /** Spacing between items inside */\n gap?: Gap\n /** @deprecated Use `gap` instead */\n spacing?: Gap\n breakpoints?: MediaQueryBreakpoints\n queries?: UseMediaQueries\n}\n\nexport type Props = BasicProps &\n SpaceProps &\n Omit<\n React.HTMLAttributes<HTMLDivElement>,\n 'ref' | 'wrap' | 'value' | 'label' | 'title' | 'placeholder'\n >\n\nconst propNames: Array<keyof Props> = [\n 'direction',\n 'wrap',\n 'justify',\n 'align',\n 'divider',\n 'spacing',\n 'gap',\n]\n\nexport function pickFlexContainerProps<T extends Props>(\n props: T,\n defaults: Partial<Props> = {},\n skip: Array<keyof Props> = []\n): Omit<Props, 'children'> {\n return {\n ...defaults,\n ...Object.fromEntries(\n Object.entries(props ?? {}).filter(\n ([key]) =>\n propNames.includes(key as keyof Props) &&\n !skip.includes(key as keyof Props)\n )\n ),\n }\n}\nfunction handleDeprecatedProps({\n spacing,\n gap,\n rowGap,\n ...rest\n}: Props): Omit<Props, 'spacing'> & { rowGap?: Gap } {\n return {\n ...rest,\n rowGap: rowGap === true ? undefined : rowGap,\n gap: spacing ?? gap,\n }\n}\n\nfunction FlexContainer(props: Props) {\n const {\n className,\n style,\n children,\n element = 'div',\n direction = 'horizontal',\n wrap = true,\n sizeCount = 12,\n rowGap,\n justify = 'flex-start',\n align = 'flex-start',\n alignSelf,\n divider = 'space',\n gap = 'small',\n breakpoints,\n queries,\n ...rest\n } = handleDeprecatedProps(props)\n\n const spacing = useMemo(\n () => (direction === 'vertical' ? rowGap : undefined) ?? gap,\n [direction, gap, rowGap]\n )\n const childrenArray = replaceRootFragment(wrapChildren(props, children))\n const hasHeading = childrenArray.some((child, i) => {\n const previousChild = childrenArray?.[i - 1]\n return (\n isHeadingElement(child) || (i > 0 && isHeadingElement(previousChild))\n )\n })\n const hasSizeProp =\n !hasHeading &&\n direction === 'horizontal' &&\n childrenArray.some((child) => child['props']?.size)\n\n const { key: mediaKey } = useMedia({\n disabled: !hasSizeProp,\n breakpoints,\n queries,\n })\n\n const content = childrenArray.map((child, i) => {\n // Set spacing on child components by props (instead of CSS) to be able to dynamically override by props on each child. The default\n // is the spacing-props that controls space between children. Then override with props sent to the children, including both top\n // and bottom when th\n const isFirst = i === 0\n const isLast = i >= childrenArray.length - 1\n const previousChild = childrenArray?.[i - 1]\n const isHeading = hasHeading && isHeadingElement(previousChild)\n\n // Always set spacing between elements in the vertical layout on the top props, and 0 on bottom, to avoid\n // having to divide spacing between both with smaller values.\n const start: Start = direction === 'horizontal' ? 'left' : 'top'\n const end: End = direction === 'horizontal' ? 'right' : 'bottom'\n // const start: Start | End = direction === 'horizontal' ? 'right' : 'top'\n // const end: Start | End = direction === 'horizontal' ? 'left' : 'bottom'\n const endSpacing = 0\n let startSpacing = null\n\n if (\n // No line above heading\n !isHeading &&\n ((divider === 'line' && !isFirst) || divider === 'line-framed')\n ) {\n const spaceAboveLine = getSpaceValue(end, previousChild) ?? spacing\n startSpacing = (getSpaceValue(start, child) ?? spacing) as SpaceType\n\n return (\n <React.Fragment key={`element-${i}`}>\n <Hr\n top={!isFirst ? spaceAboveLine : 0}\n space={0}\n className=\"dnb-flex-container__hr\"\n />\n\n {renderWithSpacing(child, {\n space: { [start]: startSpacing, [end]: endSpacing },\n })}\n\n {divider === 'line-framed' && isLast && (\n <Hr\n top={spaceAboveLine}\n space={0}\n className=\"dnb-flex-container__hr\"\n />\n )}\n </React.Fragment>\n )\n }\n\n // No space above first element.\n if (isFirst && direction !== 'horizontal') {\n startSpacing = 0\n } else {\n // Since top space of current and bottom space of previous component is the same\n startSpacing =\n getSpaceValue(start, child) ??\n getSpaceValue(end, previousChild) ??\n spacing\n }\n\n if (\n React.isValidElement(previousChild) &&\n previousChild?.type?.['_supportsSpacingProps'] === false\n ) {\n startSpacing = 0\n }\n\n const space =\n direction === 'horizontal'\n ? { [start]: endSpacing, [end]: startSpacing }\n : { [start]: startSpacing, [end]: endSpacing }\n\n return renderWithSpacing(child, {\n key: child?.['key'] || `element-${i}`,\n space,\n })\n })\n\n const n = 'dnb-flex-container'\n const rowGapClass = useMemo(() => {\n if (rowGap !== false && direction === 'horizontal') {\n return `${n}--row-gap-${rowGap ?? 'small'}`\n }\n return undefined\n }, [direction, rowGap])\n\n const cn = classnames(\n 'dnb-flex-container',\n direction && `${n}--direction-${direction}`,\n justify && `${n}--justify-${justify}`,\n align && `${n}--align-${align}`,\n alignSelf && `${n}--align-self-${alignSelf}`,\n spacing && `${n}--spacing-${spacing}`,\n wrap && `${n}--wrap`,\n rowGapClass,\n hasSizeProp && `${n}--has-size`,\n divider && `${n}--divider-${divider}`,\n className\n )\n\n return (\n <Space\n element={element}\n className={cn}\n data-media-key={mediaKey}\n style={\n hasSizeProp\n ? ({ '--sizeCount': sizeCount, ...style } as React.CSSProperties)\n : style\n }\n {...rest}\n >\n {content}\n </Space>\n )\n}\n\nfunction wrapChildren(props: Props, children: React.ReactNode) {\n return React.Children.toArray(children).map((child) => {\n if (\n React.isValidElement(child) &&\n child.type['_supportsSpacingProps'] === 'children'\n ) {\n return React.cloneElement(\n child,\n child.props,\n <FlexContainer {...props}>{child.props.children}</FlexContainer>\n )\n }\n\n return child\n })\n}\n\nfunction replaceRootFragment(children) {\n const firstChild = children[0]\n if (\n React.Children.count(children) === 1 &&\n firstChild?.type === Fragment\n ) {\n return React.Children.toArray(firstChild?.props?.children)\n }\n return children\n}\n\nFlexContainer._supportsSpacingProps = true\n\nexport default FlexContainer\n"],"mappings":"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"}
|
|
@@ -0,0 +1,74 @@
|
|
|
1
|
+
export const FlexContainerProperties = {
|
|
2
|
+
direction: {
|
|
3
|
+
doc: 'Direction of sub components. Can be: `horizontal` or `vertical`.',
|
|
4
|
+
type: [`'horizontal'`, `'vertical'`],
|
|
5
|
+
defaultValue: `'horizontal'`,
|
|
6
|
+
status: 'optional'
|
|
7
|
+
},
|
|
8
|
+
wrap: {
|
|
9
|
+
doc: 'Define if we should wrap contents if there is not enough space.',
|
|
10
|
+
type: 'boolean',
|
|
11
|
+
defaultValue: 'true',
|
|
12
|
+
status: 'optional'
|
|
13
|
+
},
|
|
14
|
+
justify: {
|
|
15
|
+
doc: 'How to place sub components if there is space available in the container.',
|
|
16
|
+
type: [`'flex-start'`, `'flex-end'`, `'center'`, `'space-between'`, `'space-around'`, `'space-evenly'`],
|
|
17
|
+
defaultValue: `'flex-start'`,
|
|
18
|
+
status: 'optional'
|
|
19
|
+
},
|
|
20
|
+
align: {
|
|
21
|
+
doc: 'How to align sub components.',
|
|
22
|
+
type: [`'flex-start'`, `'flex-end'`, `'center'`, `'stretch'`, `'baseline'`],
|
|
23
|
+
defaultValue: `'flex-start'`,
|
|
24
|
+
status: 'optional'
|
|
25
|
+
},
|
|
26
|
+
divider: {
|
|
27
|
+
doc: 'How to separate sub components.',
|
|
28
|
+
type: [`'space'`, `'line'`, `'line-framed'`],
|
|
29
|
+
defaultValue: `'space'`,
|
|
30
|
+
status: 'optional'
|
|
31
|
+
},
|
|
32
|
+
sizeCount: {
|
|
33
|
+
doc: 'Define how many parts your layout should be divided in. Should be used in combination with a [Flex.Item](/uilib/layout/flex/item).',
|
|
34
|
+
type: 'number',
|
|
35
|
+
defaultValue: '12',
|
|
36
|
+
status: 'optional'
|
|
37
|
+
},
|
|
38
|
+
gap: {
|
|
39
|
+
doc: 'How much space between child items. Use `false` for no spacing. (If in vertical layout: if both `rowGap` and `gap` is set, `rowGap` will be used.)',
|
|
40
|
+
type: [`'xx-small'`, `'x-small'`, `'small'`, `'medium'`, `'large'`, `'x-large'`, `'xx-large'`, 'false'],
|
|
41
|
+
defaultValue: `'small'`,
|
|
42
|
+
status: 'optional'
|
|
43
|
+
},
|
|
44
|
+
rowGap: {
|
|
45
|
+
doc: 'How much space between rows. Use `false` for no row gap. (If in vertical layout: if both `rowGap` and `gap` is set, `rowGap` will be used.)',
|
|
46
|
+
type: [`'xx-small'`, `'x-small'`, `'small'`, `'medium'`, `'large'`, `'x-large'`, `'xx-large'`, 'false'],
|
|
47
|
+
defaultValue: `'small'`,
|
|
48
|
+
status: 'optional'
|
|
49
|
+
},
|
|
50
|
+
element: {
|
|
51
|
+
doc: 'Define the type of element.',
|
|
52
|
+
type: ['string', 'React.Element'],
|
|
53
|
+
defaultValue: `'div'`,
|
|
54
|
+
status: 'optional'
|
|
55
|
+
},
|
|
56
|
+
innerRef: {
|
|
57
|
+
doc: 'Provide a React.Ref to accessing the inner HTML element.',
|
|
58
|
+
type: 'React.Ref',
|
|
59
|
+
defaultValue: 'undefined',
|
|
60
|
+
status: 'optional'
|
|
61
|
+
},
|
|
62
|
+
'[Space](/uilib/layout/space/properties)': {
|
|
63
|
+
doc: 'Spacing properties like `top` or `bottom` are supported.',
|
|
64
|
+
type: 'Various',
|
|
65
|
+
status: 'optional'
|
|
66
|
+
},
|
|
67
|
+
spacing: {
|
|
68
|
+
doc: 'Deprecated, use `gap` instead. ~~How much space between sub components. Can be `false` for no spacing.~~',
|
|
69
|
+
type: [`'xx-small'`, `'x-small'`, `'small'`, `'medium'`, `'large'`, `'x-large'`, `'xx-large'`, 'false'],
|
|
70
|
+
defaultValue: `'small'`,
|
|
71
|
+
status: 'deprecated'
|
|
72
|
+
}
|
|
73
|
+
};
|
|
74
|
+
//# sourceMappingURL=ContainerDocs.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ContainerDocs.js","names":["FlexContainerProperties","direction","doc","type","defaultValue","status","wrap","justify","align","divider","sizeCount","gap","rowGap","element","innerRef","spacing"],"sources":["../../../../src/components/flex/ContainerDocs.tsx"],"sourcesContent":["import { PropertiesTableProps } from '../../shared/types'\n\nexport const FlexContainerProperties: PropertiesTableProps = {\n direction: {\n doc: 'Direction of sub components. Can be: `horizontal` or `vertical`.',\n type: [`'horizontal'`, `'vertical'`],\n defaultValue: `'horizontal'`,\n status: 'optional',\n },\n wrap: {\n doc: 'Define if we should wrap contents if there is not enough space.',\n type: 'boolean',\n defaultValue: 'true',\n status: 'optional',\n },\n justify: {\n doc: 'How to place sub components if there is space available in the container.',\n type: [\n `'flex-start'`,\n `'flex-end'`,\n `'center'`,\n `'space-between'`,\n `'space-around'`,\n `'space-evenly'`,\n ],\n defaultValue: `'flex-start'`,\n status: 'optional',\n },\n align: {\n doc: 'How to align sub components.',\n type: [\n `'flex-start'`,\n `'flex-end'`,\n `'center'`,\n `'stretch'`,\n `'baseline'`,\n ],\n defaultValue: `'flex-start'`,\n status: 'optional',\n },\n divider: {\n doc: 'How to separate sub components.',\n type: [`'space'`, `'line'`, `'line-framed'`],\n defaultValue: `'space'`,\n status: 'optional',\n },\n sizeCount: {\n doc: 'Define how many parts your layout should be divided in. Should be used in combination with a [Flex.Item](/uilib/layout/flex/item).',\n type: 'number',\n defaultValue: '12',\n status: 'optional',\n },\n gap: {\n doc: 'How much space between child items. Use `false` for no spacing. (If in vertical layout: if both `rowGap` and `gap` is set, `rowGap` will be used.)',\n type: [\n `'xx-small'`,\n `'x-small'`,\n `'small'`,\n `'medium'`,\n `'large'`,\n `'x-large'`,\n `'xx-large'`,\n 'false',\n ],\n defaultValue: `'small'`,\n status: 'optional',\n },\n rowGap: {\n doc: 'How much space between rows. Use `false` for no row gap. (If in vertical layout: if both `rowGap` and `gap` is set, `rowGap` will be used.)',\n type: [\n `'xx-small'`,\n `'x-small'`,\n `'small'`,\n `'medium'`,\n `'large'`,\n `'x-large'`,\n `'xx-large'`,\n 'false',\n ],\n defaultValue: `'small'`,\n status: 'optional',\n },\n element: {\n doc: 'Define the type of element.',\n type: ['string', 'React.Element'],\n defaultValue: `'div'`,\n status: 'optional',\n },\n innerRef: {\n doc: 'Provide a React.Ref to accessing the inner HTML element.',\n type: 'React.Ref',\n defaultValue: 'undefined',\n status: 'optional',\n },\n '[Space](/uilib/layout/space/properties)': {\n doc: 'Spacing properties like `top` or `bottom` are supported.',\n type: 'Various',\n status: 'optional',\n },\n spacing: {\n doc: 'Deprecated, use `gap` instead. ~~How much space between sub components. Can be `false` for no spacing.~~',\n type: [\n `'xx-small'`,\n `'x-small'`,\n `'small'`,\n `'medium'`,\n `'large'`,\n `'x-large'`,\n `'xx-large'`,\n 'false',\n ],\n defaultValue: `'small'`,\n status: 'deprecated',\n },\n}\n"],"mappings":"AAEA,OAAO,MAAMA,uBAA6C,GAAG;EAC3DC,SAAS,EAAE;IACTC,GAAG,EAAE,kEAAkE;IACvEC,IAAI,EAAE,CAAE,cAAa,EAAG,YAAW,CAAC;IACpCC,YAAY,EAAG,cAAa;IAC5BC,MAAM,EAAE;EACV,CAAC;EACDC,IAAI,EAAE;IACJJ,GAAG,EAAE,iEAAiE;IACtEC,IAAI,EAAE,SAAS;IACfC,YAAY,EAAE,MAAM;IACpBC,MAAM,EAAE;EACV,CAAC;EACDE,OAAO,EAAE;IACPL,GAAG,EAAE,2EAA2E;IAChFC,IAAI,EAAE,CACH,cAAa,EACb,YAAW,EACX,UAAS,EACT,iBAAgB,EAChB,gBAAe,EACf,gBAAe,CACjB;IACDC,YAAY,EAAG,cAAa;IAC5BC,MAAM,EAAE;EACV,CAAC;EACDG,KAAK,EAAE;IACLN,GAAG,EAAE,8BAA8B;IACnCC,IAAI,EAAE,CACH,cAAa,EACb,YAAW,EACX,UAAS,EACT,WAAU,EACV,YAAW,CACb;IACDC,YAAY,EAAG,cAAa;IAC5BC,MAAM,EAAE;EACV,CAAC;EACDI,OAAO,EAAE;IACPP,GAAG,EAAE,iCAAiC;IACtCC,IAAI,EAAE,CAAE,SAAQ,EAAG,QAAO,EAAG,eAAc,CAAC;IAC5CC,YAAY,EAAG,SAAQ;IACvBC,MAAM,EAAE;EACV,CAAC;EACDK,SAAS,EAAE;IACTR,GAAG,EAAE,oIAAoI;IACzIC,IAAI,EAAE,QAAQ;IACdC,YAAY,EAAE,IAAI;IAClBC,MAAM,EAAE;EACV,CAAC;EACDM,GAAG,EAAE;IACHT,GAAG,EAAE,oJAAoJ;IACzJC,IAAI,EAAE,CACH,YAAW,EACX,WAAU,EACV,SAAQ,EACR,UAAS,EACT,SAAQ,EACR,WAAU,EACV,YAAW,EACZ,OAAO,CACR;IACDC,YAAY,EAAG,SAAQ;IACvBC,MAAM,EAAE;EACV,CAAC;EACDO,MAAM,EAAE;IACNV,GAAG,EAAE,6IAA6I;IAClJC,IAAI,EAAE,CACH,YAAW,EACX,WAAU,EACV,SAAQ,EACR,UAAS,EACT,SAAQ,EACR,WAAU,EACV,YAAW,EACZ,OAAO,CACR;IACDC,YAAY,EAAG,SAAQ;IACvBC,MAAM,EAAE;EACV,CAAC;EACDQ,OAAO,EAAE;IACPX,GAAG,EAAE,6BAA6B;IAClCC,IAAI,EAAE,CAAC,QAAQ,EAAE,eAAe,CAAC;IACjCC,YAAY,EAAG,OAAM;IACrBC,MAAM,EAAE;EACV,CAAC;EACDS,QAAQ,EAAE;IACRZ,GAAG,EAAE,0DAA0D;IAC/DC,IAAI,EAAE,WAAW;IACjBC,YAAY,EAAE,WAAW;IACzBC,MAAM,EAAE;EACV,CAAC;EACD,yCAAyC,EAAE;IACzCH,GAAG,EAAE,0DAA0D;IAC/DC,IAAI,EAAE,SAAS;IACfE,MAAM,EAAE;EACV,CAAC;EACDU,OAAO,EAAE;IACPb,GAAG,EAAE,0GAA0G;IAC/GC,IAAI,EAAE,CACH,YAAW,EACX,WAAU,EACV,SAAQ,EACR,UAAS,EACT,SAAQ,EACR,WAAU,EACV,YAAW,EACZ,OAAO,CACR;IACDC,YAAY,EAAG,SAAQ;IACvBC,MAAM,EAAE;EACV;AACF,CAAC"}
|
|
@@ -1,10 +1,12 @@
|
|
|
1
1
|
.dnb-flex-container {
|
|
2
|
+
--gap: 0;
|
|
3
|
+
--horizontal-gap: 0;
|
|
2
4
|
display: flex;
|
|
3
|
-
row-gap: var(--gap
|
|
5
|
+
row-gap: var(--gap);
|
|
4
6
|
}
|
|
5
7
|
.dnb-flex-container--direction-horizontal {
|
|
6
8
|
flex-direction: row;
|
|
7
|
-
margin-right: calc(var(--gap) * -1);
|
|
9
|
+
margin-right: calc(var(--horizontal-gap) * -1);
|
|
8
10
|
}
|
|
9
11
|
.dnb-flex-container--direction-vertical {
|
|
10
12
|
flex-direction: column;
|
|
@@ -60,8 +62,11 @@
|
|
|
60
62
|
.dnb-flex-container--wrap {
|
|
61
63
|
flex-wrap: wrap;
|
|
62
64
|
}
|
|
63
|
-
.dnb-flex-container--row-gap-
|
|
64
|
-
--gap:
|
|
65
|
+
.dnb-flex-container--row-gap-xx-small {
|
|
66
|
+
--gap: var(--spacing-xx-small);
|
|
67
|
+
}
|
|
68
|
+
.dnb-flex-container--row-gap-x-small {
|
|
69
|
+
--gap: var(--spacing-x-small);
|
|
65
70
|
}
|
|
66
71
|
.dnb-flex-container--row-gap-small {
|
|
67
72
|
--gap: var(--spacing-small);
|
|
@@ -72,6 +77,33 @@
|
|
|
72
77
|
.dnb-flex-container--row-gap-large {
|
|
73
78
|
--gap: var(--spacing-large);
|
|
74
79
|
}
|
|
80
|
+
.dnb-flex-container--row-gap-x-large {
|
|
81
|
+
--gap: var(--spacing-x-large);
|
|
82
|
+
}
|
|
83
|
+
.dnb-flex-container--row-gap-xx-large {
|
|
84
|
+
--gap: var(--spacing-xx-large);
|
|
85
|
+
}
|
|
86
|
+
.dnb-flex-container--spacing-xx-small {
|
|
87
|
+
--horizontal-gap: var(--spacing-xx-small);
|
|
88
|
+
}
|
|
89
|
+
.dnb-flex-container--spacing-x-small {
|
|
90
|
+
--horizontal-gap: var(--spacing-x-small);
|
|
91
|
+
}
|
|
92
|
+
.dnb-flex-container--spacing-small {
|
|
93
|
+
--horizontal-gap: var(--spacing-small);
|
|
94
|
+
}
|
|
95
|
+
.dnb-flex-container--spacing-medium {
|
|
96
|
+
--horizontal-gap: var(--spacing-medium);
|
|
97
|
+
}
|
|
98
|
+
.dnb-flex-container--spacing-large {
|
|
99
|
+
--horizontal-gap: var(--spacing-large);
|
|
100
|
+
}
|
|
101
|
+
.dnb-flex-container--spacing-x-large {
|
|
102
|
+
--horizontal-gap: var(--spacing-x-large);
|
|
103
|
+
}
|
|
104
|
+
.dnb-flex-container--spacing-xx-large {
|
|
105
|
+
--horizontal-gap: var(--spacing-xx-large);
|
|
106
|
+
}
|
|
75
107
|
.dnb-flex-container__hr.dnb-hr {
|
|
76
108
|
width: 100%;
|
|
77
109
|
color: var(--color-black-8);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
.dnb-flex-container{display:flex;row-gap:var(--gap
|
|
1
|
+
.dnb-flex-container{--gap:0;--horizontal-gap:0;display:flex;row-gap:var(--gap)}.dnb-flex-container--direction-horizontal{flex-direction:row;margin-right:calc(var(--horizontal-gap)*-1)}.dnb-flex-container--direction-vertical{flex-direction:column}.dnb-flex-container--justify-flex-start{justify-content:flex-start}.dnb-flex-container--justify-flex-end{justify-content:flex-end}.dnb-flex-container--justify-center{justify-content:center}.dnb-flex-container--justify-space-between{justify-content:space-between}.dnb-flex-container--justify-space-around{justify-content:space-around}.dnb-flex-container--justify-space-evenly{justify-content:space-evenly}.dnb-flex-container--align-flex-start{align-items:flex-start}.dnb-flex-container--align-flex-end{align-items:flex-end}.dnb-flex-container--align-center{align-items:center}.dnb-flex-container--align-stretch{align-items:stretch}.dnb-flex-container--align-baseline{align-items:baseline}.dnb-flex-container--align-self-flex-start{align-self:flex-start}.dnb-flex-container--align-self-flex-end{align-self:flex-end}.dnb-flex-container--align-self-center{align-self:center}.dnb-flex-container--align-self-baseline{align-self:baseline}.dnb-flex-container--align-self-stretch{align-self:stretch}.dnb-flex-container--wrap{flex-wrap:wrap}.dnb-flex-container--row-gap-xx-small{--gap:var(--spacing-xx-small)}.dnb-flex-container--row-gap-x-small{--gap:var(--spacing-x-small)}.dnb-flex-container--row-gap-small{--gap:var(--spacing-small)}.dnb-flex-container--row-gap-medium{--gap:var(--spacing-medium)}.dnb-flex-container--row-gap-large{--gap:var(--spacing-large)}.dnb-flex-container--row-gap-x-large{--gap:var(--spacing-x-large)}.dnb-flex-container--row-gap-xx-large{--gap:var(--spacing-xx-large)}.dnb-flex-container--spacing-xx-small{--horizontal-gap:var(--spacing-xx-small)}.dnb-flex-container--spacing-x-small{--horizontal-gap:var(--spacing-x-small)}.dnb-flex-container--spacing-small{--horizontal-gap:var(--spacing-small)}.dnb-flex-container--spacing-medium{--horizontal-gap:var(--spacing-medium)}.dnb-flex-container--spacing-large{--horizontal-gap:var(--spacing-large)}.dnb-flex-container--spacing-x-large{--horizontal-gap:var(--spacing-x-large)}.dnb-flex-container--spacing-xx-large{--horizontal-gap:var(--spacing-xx-large)}.dnb-flex-container__hr.dnb-hr{color:var(--color-black-8);width:100%}.dnb-flex-item--grow{flex-grow:1}.dnb-flex-item--shrink{flex-shrink:1}.dnb-flex-item--align-self-flex-start{align-self:flex-start}.dnb-flex-item--align-self-flex-end{align-self:flex-end}.dnb-flex-item--align-self-center{align-self:center}.dnb-flex-item--align-self-baseline{align-self:baseline}.dnb-flex-item--align-self-stretch{align-self:stretch}.dnb-flex-item--responsive{--sizeCount--default:12;--size--default:var(--small);--flex-basis:calc(100%/var(--sizeCount, var(--sizeCount--default))*var(--size, var(--size--default)));flex-basis:var(--flex-basis);flex-grow:0;max-width:var(--flex-basis)}.dnb-flex-container[data-media-key=small] .dnb-flex-item--responsive{--size:var(--small,var(--medium))}.dnb-flex-container[data-media-key=medium] .dnb-flex-item--responsive{--size:var(--medium,var(--large))}.dnb-flex-container[data-media-key=large] .dnb-flex-item--responsive{--size:var(--large,var(--medium))}.dnb-flex-stack+.dnb-flex-stack{margin-top:var(--spacing-small)}.dnb-flex-stack>.dnb-button{align-self:flex-start}
|
|
@@ -1,11 +1,13 @@
|
|
|
1
1
|
.dnb-flex-container {
|
|
2
|
+
--gap: 0;
|
|
3
|
+
--horizontal-gap: 0;
|
|
2
4
|
display: flex;
|
|
3
|
-
row-gap: var(--gap
|
|
5
|
+
row-gap: var(--gap);
|
|
4
6
|
|
|
5
7
|
&--direction {
|
|
6
8
|
&-horizontal {
|
|
7
9
|
flex-direction: row;
|
|
8
|
-
margin-right: calc(var(--gap) * -1);
|
|
10
|
+
margin-right: calc(var(--horizontal-gap) * -1);
|
|
9
11
|
}
|
|
10
12
|
|
|
11
13
|
&-vertical {
|
|
@@ -88,8 +90,11 @@
|
|
|
88
90
|
flex-wrap: wrap;
|
|
89
91
|
}
|
|
90
92
|
|
|
91
|
-
&--row-gap-
|
|
92
|
-
--gap:
|
|
93
|
+
&--row-gap-xx-small {
|
|
94
|
+
--gap: var(--spacing-xx-small);
|
|
95
|
+
}
|
|
96
|
+
&--row-gap-x-small {
|
|
97
|
+
--gap: var(--spacing-x-small);
|
|
93
98
|
}
|
|
94
99
|
&--row-gap-small {
|
|
95
100
|
--gap: var(--spacing-small);
|
|
@@ -100,6 +105,36 @@
|
|
|
100
105
|
&--row-gap-large {
|
|
101
106
|
--gap: var(--spacing-large);
|
|
102
107
|
}
|
|
108
|
+
&--row-gap-x-large {
|
|
109
|
+
--gap: var(--spacing-x-large);
|
|
110
|
+
}
|
|
111
|
+
&--row-gap-xx-large {
|
|
112
|
+
--gap: var(--spacing-xx-large);
|
|
113
|
+
}
|
|
114
|
+
|
|
115
|
+
&--spacing {
|
|
116
|
+
&-xx-small {
|
|
117
|
+
--horizontal-gap: var(--spacing-xx-small);
|
|
118
|
+
}
|
|
119
|
+
&-x-small {
|
|
120
|
+
--horizontal-gap: var(--spacing-x-small);
|
|
121
|
+
}
|
|
122
|
+
&-small {
|
|
123
|
+
--horizontal-gap: var(--spacing-small);
|
|
124
|
+
}
|
|
125
|
+
&-medium {
|
|
126
|
+
--horizontal-gap: var(--spacing-medium);
|
|
127
|
+
}
|
|
128
|
+
&-large {
|
|
129
|
+
--horizontal-gap: var(--spacing-large);
|
|
130
|
+
}
|
|
131
|
+
&-x-large {
|
|
132
|
+
--horizontal-gap: var(--spacing-x-large);
|
|
133
|
+
}
|
|
134
|
+
&-xx-large {
|
|
135
|
+
--horizontal-gap: var(--spacing-xx-large);
|
|
136
|
+
}
|
|
137
|
+
}
|
|
103
138
|
|
|
104
139
|
&__hr.dnb-hr {
|
|
105
140
|
width: 100%;
|
|
@@ -15,11 +15,16 @@ export type HelpProps = {
|
|
|
15
15
|
export type HelpButtonInlineProps = HelpButtonProps & {
|
|
16
16
|
contentId?: string;
|
|
17
17
|
help?: HelpProps;
|
|
18
|
+
/**
|
|
19
|
+
* If set to `true`, the content will get focus when the help content is opened.
|
|
20
|
+
*/
|
|
21
|
+
focusWhenOpen?: boolean;
|
|
18
22
|
};
|
|
19
23
|
export type HelpButtonInlineSharedStateDataProps = {
|
|
20
24
|
isOpen: boolean;
|
|
21
25
|
isUserIntent?: boolean;
|
|
22
26
|
buttonRef?: React.RefObject<HTMLButtonElement>;
|
|
27
|
+
focusWhenOpen?: boolean;
|
|
23
28
|
};
|
|
24
29
|
declare function HelpButtonInline(props: HelpButtonInlineProps): import("react/jsx-runtime").JSX.Element;
|
|
25
30
|
declare namespace HelpButtonInline {
|
|
@@ -33,6 +38,7 @@ export type HelpButtonInlineContentProps = SpacingProps & {
|
|
|
33
38
|
help?: HelpProps;
|
|
34
39
|
breakout?: boolean;
|
|
35
40
|
outset?: boolean;
|
|
41
|
+
focusWhenOpen?: boolean;
|
|
36
42
|
};
|
|
37
43
|
export declare function HelpButtonInlineContent(props: HelpButtonInlineContentProps): import("react/jsx-runtime").JSX.Element;
|
|
38
44
|
export declare namespace HelpButtonInlineContent {
|
|
@@ -3,8 +3,8 @@
|
|
|
3
3
|
import _extends from "@babel/runtime/helpers/esm/extends";
|
|
4
4
|
import _objectWithoutProperties from "@babel/runtime/helpers/esm/objectWithoutProperties";
|
|
5
5
|
var _QuestionIcon, _CloseIcon;
|
|
6
|
-
const _excluded = ["contentId", "size", "help", "className", "children"],
|
|
7
|
-
_excluded2 = ["contentId", "className", "children", "help", "breakout", "outset"];
|
|
6
|
+
const _excluded = ["contentId", "size", "help", "focusWhenOpen", "className", "children"],
|
|
7
|
+
_excluded2 = ["contentId", "className", "children", "help", "breakout", "outset", "focusWhenOpen"];
|
|
8
8
|
import React, { useCallback, useContext, useEffect, useRef } from 'react';
|
|
9
9
|
import classnames from 'classnames';
|
|
10
10
|
import HelpButtonInstance from './HelpButtonInstance';
|
|
@@ -24,6 +24,7 @@ export default function HelpButtonInline(props) {
|
|
|
24
24
|
contentId,
|
|
25
25
|
size,
|
|
26
26
|
help,
|
|
27
|
+
focusWhenOpen,
|
|
27
28
|
className,
|
|
28
29
|
children
|
|
29
30
|
} = props,
|
|
@@ -41,31 +42,54 @@ export default function HelpButtonInline(props) {
|
|
|
41
42
|
} = data || {};
|
|
42
43
|
const wasOpenRef = useRef(undefined);
|
|
43
44
|
const buttonRef = useRef(null);
|
|
44
|
-
const
|
|
45
|
-
event
|
|
46
|
-
}) => {
|
|
47
|
-
event.preventDefault();
|
|
45
|
+
const toggleOpen = useCallback(() => {
|
|
48
46
|
update({
|
|
49
47
|
isOpen: !isOpen,
|
|
50
48
|
isUserIntent: !isOpen,
|
|
51
|
-
buttonRef
|
|
49
|
+
buttonRef,
|
|
50
|
+
focusWhenOpen
|
|
52
51
|
});
|
|
53
52
|
wasOpenRef.current = !isOpen;
|
|
54
|
-
}, [isOpen, update]);
|
|
53
|
+
}, [focusWhenOpen, isOpen, update]);
|
|
54
|
+
const onClickHandler = useCallback(({
|
|
55
|
+
event
|
|
56
|
+
}) => {
|
|
57
|
+
event.preventDefault();
|
|
58
|
+
toggleOpen();
|
|
59
|
+
}, [toggleOpen]);
|
|
60
|
+
const onKeyDownHandler = useCallback(event => {
|
|
61
|
+
if (event.currentTarget === event.target) {
|
|
62
|
+
switch (event.key.trim() || event.code) {
|
|
63
|
+
case 'Escape':
|
|
64
|
+
if (isOpen) {
|
|
65
|
+
event.preventDefault();
|
|
66
|
+
window.requestAnimationFrame(() => {
|
|
67
|
+
toggleOpen();
|
|
68
|
+
});
|
|
69
|
+
}
|
|
70
|
+
break;
|
|
71
|
+
}
|
|
72
|
+
}
|
|
73
|
+
}, [isOpen, toggleOpen]);
|
|
74
|
+
const title = convertJsxToString(help === null || help === void 0 ? void 0 : help.title);
|
|
55
75
|
return React.createElement(React.Fragment, null, React.createElement(HelpButtonInstance, _extends({
|
|
56
76
|
bounding: true,
|
|
57
77
|
size: size !== null && size !== void 0 ? size : 'small',
|
|
58
78
|
icon: HelpButtonIcon,
|
|
59
|
-
title: !isOpen && !wasOpenRef.current ?
|
|
79
|
+
title: !isOpen && !wasOpenRef.current ? title : undefined
|
|
60
80
|
}, rest, {
|
|
61
81
|
id: controlId,
|
|
62
82
|
className: classnames('dnb-help-button__inline', className, isOpen && 'dnb-help-button__inline--open', isUserIntent && 'dnb-help-button__inline--user-intent', typeof wasOpenRef.current === 'boolean' && 'dnb-help-button__inline--was-open'),
|
|
63
83
|
"aria-controls": `${controlId}-content`,
|
|
84
|
+
"aria-expanded": isOpen,
|
|
85
|
+
"aria-label": title,
|
|
64
86
|
on_click: onClickHandler,
|
|
87
|
+
onKeyDown: onKeyDownHandler,
|
|
65
88
|
innerRef: buttonRef
|
|
66
89
|
})), !contentId && React.createElement(HelpButtonInlineContent, {
|
|
67
90
|
contentId: controlId,
|
|
68
|
-
help: help
|
|
91
|
+
help: help,
|
|
92
|
+
focusWhenOpen: focusWhenOpen
|
|
69
93
|
}, children));
|
|
70
94
|
}
|
|
71
95
|
export function HelpButtonInlineContent(props) {
|
|
@@ -76,7 +100,8 @@ export function HelpButtonInlineContent(props) {
|
|
|
76
100
|
children,
|
|
77
101
|
help: helpProp,
|
|
78
102
|
breakout = true,
|
|
79
|
-
outset = true
|
|
103
|
+
outset = true,
|
|
104
|
+
focusWhenOpen: focusWhenOpenProp
|
|
80
105
|
} = props,
|
|
81
106
|
rest = _objectWithoutProperties(props, _excluded2);
|
|
82
107
|
const {
|
|
@@ -85,6 +110,7 @@ export function HelpButtonInlineContent(props) {
|
|
|
85
110
|
} = useSharedState(contentId);
|
|
86
111
|
const {
|
|
87
112
|
isOpen,
|
|
113
|
+
focusWhenOpen = focusWhenOpenProp,
|
|
88
114
|
isUserIntent,
|
|
89
115
|
buttonRef
|
|
90
116
|
} = data || {};
|
|
@@ -101,7 +127,7 @@ export function HelpButtonInlineContent(props) {
|
|
|
101
127
|
const breakoutFromLayout = Boolean(cardContext) && breakout && breakoutProp;
|
|
102
128
|
const outsetFromLayout = outset && outsetProp;
|
|
103
129
|
useEffect(() => {
|
|
104
|
-
if (isOpen && isUserIntent) {
|
|
130
|
+
if (isOpen && isUserIntent && focusWhenOpen) {
|
|
105
131
|
window.requestAnimationFrame(() => {
|
|
106
132
|
var _innerRef$current;
|
|
107
133
|
(_innerRef$current = innerRef.current) === null || _innerRef$current === void 0 ? void 0 : _innerRef$current.focus({
|
|
@@ -109,7 +135,7 @@ export function HelpButtonInlineContent(props) {
|
|
|
109
135
|
});
|
|
110
136
|
});
|
|
111
137
|
}
|
|
112
|
-
}, [isOpen, isUserIntent]);
|
|
138
|
+
}, [focusWhenOpen, isOpen, isUserIntent]);
|
|
113
139
|
const onClose = useCallback(() => {
|
|
114
140
|
update({
|
|
115
141
|
isOpen: false,
|
|
@@ -140,16 +166,22 @@ export function HelpButtonInlineContent(props) {
|
|
|
140
166
|
onClose: onClose
|
|
141
167
|
}, content, children);
|
|
142
168
|
}
|
|
169
|
+
const focusParams = focusWhenOpen ? {
|
|
170
|
+
'aria-label': convertJsxToString(title),
|
|
171
|
+
className: 'dnb-no-focus',
|
|
172
|
+
tabIndex: -1,
|
|
173
|
+
onKeyDown
|
|
174
|
+
} : {
|
|
175
|
+
'aria-live': 'polite',
|
|
176
|
+
'aria-atomic': 'true'
|
|
177
|
+
};
|
|
143
178
|
return React.createElement(HeightAnimation, {
|
|
144
179
|
className: classnames('dnb-help-button__content', className),
|
|
145
180
|
open: (_ref = isOpen !== null && isOpen !== void 0 ? isOpen : open) !== null && _ref !== void 0 ? _ref : false
|
|
146
181
|
}, React.createElement(Section, _extends({
|
|
147
|
-
id: `${contentId}-content
|
|
148
|
-
|
|
149
|
-
className: "dnb-no-focus",
|
|
150
|
-
tabIndex: -1,
|
|
182
|
+
id: `${contentId}-content`
|
|
183
|
+
}, focusParams, {
|
|
151
184
|
innerRef: innerRef,
|
|
152
|
-
onKeyDown: onKeyDown,
|
|
153
185
|
outset: outsetFromLayout,
|
|
154
186
|
breakout: breakoutFromLayout,
|
|
155
187
|
roundedCorner: !breakoutFromLayout,
|