@dnb/eufemia 10.30.2 → 10.32.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 +55 -0
- package/cjs/components/anchor/Anchor.d.ts +8 -1
- package/cjs/components/anchor/Anchor.js.map +1 -1
- package/cjs/components/card/Card.js +3 -2
- package/cjs/components/card/Card.js.map +1 -1
- package/cjs/components/card/style/dnb-card.css +1 -2
- package/cjs/components/card/style/dnb-card.min.css +1 -1
- package/cjs/components/card/style/themes/dnb-card-theme-sbanken.css +5 -0
- package/cjs/components/card/style/themes/dnb-card-theme-sbanken.min.css +1 -0
- package/cjs/components/card/style/themes/dnb-card-theme-sbanken.scss +7 -0
- package/cjs/components/checkbox/CheckIcon.d.ts +1 -1
- package/cjs/components/checkbox/CheckIcon.js +4 -9
- package/cjs/components/checkbox/CheckIcon.js.map +1 -1
- package/cjs/components/checkbox/Checkbox.d.ts +4 -0
- package/cjs/components/checkbox/Checkbox.js +9 -3
- package/cjs/components/checkbox/Checkbox.js.map +1 -1
- package/cjs/components/checkbox/CheckboxDocs.js +10 -5
- package/cjs/components/checkbox/CheckboxDocs.js.map +1 -1
- package/cjs/components/checkbox/style/dnb-checkbox.css +95 -15
- package/cjs/components/checkbox/style/dnb-checkbox.min.css +1 -1
- package/cjs/components/checkbox/style/dnb-checkbox.scss +156 -21
- package/cjs/components/checkbox/style/themes/dnb-checkbox-theme-sbanken.css +22 -2
- package/cjs/components/checkbox/style/themes/dnb-checkbox-theme-sbanken.min.css +4 -2
- package/cjs/components/checkbox/style/themes/dnb-checkbox-theme-sbanken.scss +28 -2
- package/cjs/components/checkbox/style/themes/dnb-checkbox-theme-ui.css +20 -2
- package/cjs/components/checkbox/style/themes/dnb-checkbox-theme-ui.min.css +5 -1
- package/cjs/components/checkbox/style/themes/dnb-checkbox-theme-ui.scss +25 -2
- package/cjs/components/flex/Container.d.ts +4 -1
- package/cjs/components/flex/Container.js +10 -7
- package/cjs/components/flex/Container.js.map +1 -1
- package/cjs/components/flex/Stack.js +3 -3
- package/cjs/components/flex/Stack.js.map +1 -1
- package/cjs/components/flex/utils.js +7 -7
- package/cjs/components/flex/utils.js.map +1 -1
- package/cjs/components/height-animation/HeightAnimationInstance.js +6 -1
- package/cjs/components/height-animation/HeightAnimationInstance.js.map +1 -1
- package/cjs/components/modal/Modal.d.ts +2 -0
- package/cjs/components/modal/Modal.js +10 -3
- package/cjs/components/modal/Modal.js.map +1 -1
- package/cjs/components/skeleton/style/dnb-skeleton.css +4 -8
- package/cjs/components/skeleton/style/dnb-skeleton.min.css +1 -1
- package/cjs/components/space/SpacingUtils.d.ts +1 -1
- package/cjs/components/space/SpacingUtils.js +1 -1
- package/cjs/components/space/SpacingUtils.js.map +1 -1
- package/cjs/components/step-indicator/style/themes/dnb-step-indicator-theme-sbanken.css +70 -0
- package/cjs/components/step-indicator/style/themes/dnb-step-indicator-theme-sbanken.min.css +1 -0
- package/cjs/components/step-indicator/style/themes/dnb-step-indicator-theme-sbanken.scss +97 -0
- package/cjs/components/switch/style/themes/dnb-switch-theme-ui.css +1 -2
- package/cjs/components/switch/style/themes/dnb-switch-theme-ui.min.css +1 -1
- package/cjs/components/table/style/dnb-table.css +5 -10
- package/cjs/components/table/style/dnb-table.min.css +1 -1
- package/cjs/components/visually-hidden/style/dnb-visually-hidden.css +1 -2
- package/cjs/components/visually-hidden/style/dnb-visually-hidden.min.css +1 -1
- package/cjs/extensions/forms/DataContext/Context.d.ts +20 -9
- package/cjs/extensions/forms/DataContext/Context.js +2 -3
- package/cjs/extensions/forms/DataContext/Context.js.map +1 -1
- package/cjs/extensions/forms/DataContext/Provider/Provider.d.ts +3 -3
- package/cjs/extensions/forms/DataContext/Provider/Provider.js +69 -32
- package/cjs/extensions/forms/DataContext/Provider/Provider.js.map +1 -1
- package/cjs/extensions/forms/DataContext/Provider/ProviderDocs.js +3 -3
- package/cjs/extensions/forms/DataContext/Provider/ProviderDocs.js.map +1 -1
- package/cjs/extensions/forms/Field/Boolean/Boolean.d.ts +12 -2
- package/cjs/extensions/forms/Field/Boolean/Boolean.js +2 -1
- package/cjs/extensions/forms/Field/Boolean/Boolean.js.map +1 -1
- package/cjs/extensions/forms/Field/Boolean/BooleanDocs.d.ts +2 -0
- package/cjs/extensions/forms/Field/Boolean/BooleanDocs.js +25 -0
- package/cjs/extensions/forms/Field/Boolean/BooleanDocs.js.map +1 -0
- package/cjs/extensions/forms/Field/FieldDocs.js +1 -1
- package/cjs/extensions/forms/Field/FieldDocs.js.map +1 -1
- package/cjs/extensions/forms/Field/Indeterminate/Indeterminate.d.ts +16 -0
- package/cjs/extensions/forms/Field/Indeterminate/Indeterminate.js +53 -0
- package/cjs/extensions/forms/Field/Indeterminate/Indeterminate.js.map +1 -0
- package/cjs/extensions/forms/Field/Indeterminate/IndeterminateDocs.d.ts +2 -0
- package/cjs/extensions/forms/Field/Indeterminate/IndeterminateDocs.js +38 -0
- package/cjs/extensions/forms/Field/Indeterminate/IndeterminateDocs.js.map +1 -0
- package/cjs/extensions/forms/Field/Indeterminate/index.d.ts +2 -0
- package/cjs/extensions/forms/Field/Indeterminate/index.js +27 -0
- package/cjs/extensions/forms/Field/Indeterminate/index.js.map +1 -0
- package/cjs/extensions/forms/Field/Indeterminate/useDependencePaths.d.ts +6 -0
- package/cjs/extensions/forms/Field/Indeterminate/useDependencePaths.js +81 -0
- package/cjs/extensions/forms/Field/Indeterminate/useDependencePaths.js.map +1 -0
- package/cjs/extensions/forms/Field/Name/NameDocs.js +1 -7
- package/cjs/extensions/forms/Field/Name/NameDocs.js.map +1 -1
- package/cjs/extensions/forms/Field/Number/Number.js +3 -1
- package/cjs/extensions/forms/Field/Number/Number.js.map +1 -1
- package/cjs/extensions/forms/Field/PhoneNumber/PhoneNumber.js +1 -1
- package/cjs/extensions/forms/Field/PhoneNumber/PhoneNumber.js.map +1 -1
- package/cjs/extensions/forms/Field/String/String.js.map +1 -1
- package/cjs/extensions/forms/Field/Toggle/Toggle.d.ts +2 -1
- package/cjs/extensions/forms/Field/Toggle/Toggle.js +2 -2
- package/cjs/extensions/forms/Field/Toggle/Toggle.js.map +1 -1
- package/cjs/extensions/forms/Field/Toggle/ToggleDocs.d.ts +2 -0
- package/cjs/extensions/forms/Field/Toggle/ToggleDocs.js +35 -0
- package/cjs/extensions/forms/Field/Toggle/ToggleDocs.js.map +1 -0
- 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.js +5 -0
- package/cjs/extensions/forms/FieldBlock/FieldBlock.js.map +1 -1
- package/cjs/extensions/forms/FieldBlock/FieldBlockDocs.d.ts +1 -0
- package/cjs/extensions/forms/FieldBlock/FieldBlockDocs.js +24 -16
- package/cjs/extensions/forms/FieldBlock/FieldBlockDocs.js.map +1 -1
- package/cjs/extensions/forms/FieldBlock/style/dnb-field-block.css +1 -3
- package/cjs/extensions/forms/FieldBlock/style/dnb-field-block.min.css +1 -1
- package/cjs/extensions/forms/FieldBlock/style/dnb-field-block.scss +1 -2
- package/cjs/extensions/forms/Form/Element/Element.js +1 -1
- package/cjs/extensions/forms/Form/Element/Element.js.map +1 -1
- package/cjs/extensions/forms/Form/Handler/Handler.js +2 -2
- package/cjs/extensions/forms/Form/Handler/Handler.js.map +1 -1
- package/cjs/extensions/forms/Form/Handler/HandlerDocs.js +5 -0
- package/cjs/extensions/forms/Form/Handler/HandlerDocs.js.map +1 -1
- package/cjs/extensions/forms/Form/SubmitButton/SubmitButton.js +3 -3
- package/cjs/extensions/forms/Form/SubmitButton/SubmitButton.js.map +1 -1
- package/cjs/extensions/forms/Form/Tools/GenerateSchema.d.ts +8 -0
- package/cjs/extensions/forms/Form/Tools/GenerateSchema.js +100 -0
- package/cjs/extensions/forms/Form/Tools/GenerateSchema.js.map +1 -0
- package/cjs/extensions/forms/Form/Tools/index.d.ts +1 -0
- package/cjs/extensions/forms/Form/Tools/index.js +14 -0
- package/cjs/extensions/forms/Form/Tools/index.js.map +1 -0
- package/cjs/extensions/forms/Form/Visibility/Visibility.d.ts +19 -5
- package/cjs/extensions/forms/Form/Visibility/Visibility.js +41 -10
- package/cjs/extensions/forms/Form/Visibility/Visibility.js.map +1 -1
- package/cjs/extensions/forms/Form/Visibility/VisibilityDocs.js +11 -6
- package/cjs/extensions/forms/Form/Visibility/VisibilityDocs.js.map +1 -1
- package/cjs/extensions/forms/Form/data-context/useData.d.ts +1 -1
- package/cjs/extensions/forms/Form/data-context/useData.js +2 -2
- package/cjs/extensions/forms/Form/data-context/useData.js.map +1 -1
- package/cjs/extensions/forms/Form/data-context/useError.d.ts +1 -0
- package/cjs/extensions/forms/Form/data-context/useError.js +5 -3
- 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 +5 -0
- package/cjs/extensions/forms/Form/index.js.map +1 -1
- package/cjs/extensions/forms/Iterate/AnimatedContainer/ElementBlock.d.ts +8 -1
- package/cjs/extensions/forms/Iterate/AnimatedContainer/ElementBlock.js +4 -3
- package/cjs/extensions/forms/Iterate/AnimatedContainer/ElementBlock.js.map +1 -1
- package/cjs/extensions/forms/Iterate/EditContainer/EditContainer.d.ts +2 -1
- package/cjs/extensions/forms/Iterate/EditContainer/EditContainer.js.map +1 -1
- package/cjs/extensions/forms/Iterate/EditContainer/EditContainerDocs.js +5 -0
- package/cjs/extensions/forms/Iterate/EditContainer/EditContainerDocs.js.map +1 -1
- package/cjs/extensions/forms/Iterate/EditContainer/EditToolbarTools.js +1 -1
- package/cjs/extensions/forms/Iterate/EditContainer/EditToolbarTools.js.map +1 -1
- package/cjs/extensions/forms/Iterate/Toolbar/Toolbar.js +1 -1
- package/cjs/extensions/forms/Iterate/Toolbar/Toolbar.js.map +1 -1
- package/cjs/extensions/forms/Iterate/ViewContainer/ViewContainer.d.ts +2 -1
- package/cjs/extensions/forms/Iterate/ViewContainer/ViewContainer.js.map +1 -1
- package/cjs/extensions/forms/Iterate/ViewContainer/ViewContainerDocs.js +5 -0
- package/cjs/extensions/forms/Iterate/ViewContainer/ViewContainerDocs.js.map +1 -1
- package/cjs/extensions/forms/Iterate/ViewContainer/ViewToolbarTools.js +1 -1
- package/cjs/extensions/forms/Iterate/ViewContainer/ViewToolbarTools.js.map +1 -1
- package/cjs/extensions/forms/Iterate/style/dnb-form-iterate.css +3 -1
- package/cjs/extensions/forms/Iterate/style/dnb-form-iterate.min.css +1 -1
- package/cjs/extensions/forms/Iterate/style/dnb-form-iterate.scss +4 -1
- package/cjs/extensions/forms/ValueBlock/ValueBlock.js +4 -2
- package/cjs/extensions/forms/ValueBlock/ValueBlock.js.map +1 -1
- package/cjs/extensions/forms/Wizard/Container/WizardContainer.d.ts +31 -2
- package/cjs/extensions/forms/Wizard/Container/WizardContainer.js +105 -31
- package/cjs/extensions/forms/Wizard/Container/WizardContainer.js.map +1 -1
- package/cjs/extensions/forms/Wizard/Context/WizardContext.d.ts +4 -0
- package/cjs/extensions/forms/Wizard/Context/WizardContext.js.map +1 -1
- package/cjs/extensions/forms/Wizard/Step/Step.d.ts +10 -1
- package/cjs/extensions/forms/Wizard/Step/Step.js +15 -6
- package/cjs/extensions/forms/Wizard/Step/Step.js.map +1 -1
- 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/style/dnb-wizard-layout.css +0 -1
- package/cjs/extensions/forms/Wizard/style/dnb-wizard-layout.min.css +1 -1
- package/cjs/extensions/forms/Wizard/style/dnb-wizard-layout.scss +0 -1
- package/cjs/extensions/forms/Wizard/style/themes/dnb-wizard-layout-theme-sbanken.css +1 -0
- package/cjs/extensions/forms/Wizard/style/themes/dnb-wizard-layout-theme-sbanken.min.css +0 -0
- package/cjs/extensions/forms/Wizard/style/themes/dnb-wizard-layout-theme-sbanken.scss +1 -0
- package/cjs/extensions/forms/Wizard/style/themes/dnb-wizard-layout-theme-ui.css +3 -0
- package/cjs/extensions/forms/Wizard/style/themes/dnb-wizard-layout-theme-ui.min.css +1 -0
- package/cjs/extensions/forms/Wizard/style/themes/dnb-wizard-layout-theme-ui.scss +7 -0
- package/cjs/extensions/forms/hooks/useFieldProps.js +71 -32
- package/cjs/extensions/forms/hooks/useFieldProps.js.map +1 -1
- package/cjs/extensions/forms/style/dnb-forms.css +4 -5
- package/cjs/extensions/forms/style/dnb-forms.min.css +1 -1
- package/cjs/extensions/forms/types.d.ts +9 -0
- package/cjs/extensions/forms/types.js.map +1 -1
- package/cjs/fragments/drawer-list/DrawerListHelpers.js +5 -2
- package/cjs/fragments/drawer-list/DrawerListHelpers.js.map +1 -1
- package/cjs/shared/Eufemia.d.ts +1 -1
- package/cjs/shared/Eufemia.js +2 -2
- package/cjs/shared/Eufemia.js.map +1 -1
- package/cjs/shared/MediaQuery.js +19 -1
- package/cjs/shared/MediaQuery.js.map +1 -1
- package/cjs/shared/MediaQueryUtils.d.ts +12 -34
- package/cjs/shared/MediaQueryUtils.js +22 -12
- package/cjs/shared/MediaQueryUtils.js.map +1 -1
- package/cjs/shared/component-helper.d.ts +1 -1
- package/cjs/shared/component-helper.js +5 -1
- package/cjs/shared/component-helper.js.map +1 -1
- package/cjs/shared/useMedia.d.ts +7 -2
- package/cjs/shared/useMedia.js +16 -11
- package/cjs/shared/useMedia.js.map +1 -1
- package/cjs/shared/useMediaQuery.js +30 -9
- package/cjs/shared/useMediaQuery.js.map +1 -1
- package/cjs/style/core/scopes.scss +1 -1
- package/cjs/style/dnb-ui-basis.css +2 -3
- 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 +110 -42
- package/cjs/style/dnb-ui-components.min.css +3 -3
- package/cjs/style/dnb-ui-core.css +2 -3
- package/cjs/style/dnb-ui-core.min.css +1 -1
- package/cjs/style/dnb-ui-extensions.css +4 -5
- package/cjs/style/dnb-ui-extensions.min.css +1 -1
- package/cjs/style/dnb-ui-forms.css +4 -5
- package/cjs/style/dnb-ui-forms.min.css +1 -1
- package/cjs/style/themes/theme-eiendom/eiendom-theme-components.css +139 -51
- package/cjs/style/themes/theme-eiendom/eiendom-theme-components.min.css +10 -6
- package/cjs/style/themes/theme-eiendom/eiendom-theme-extensions.css +8 -5
- package/cjs/style/themes/theme-eiendom/eiendom-theme-extensions.min.css +2 -2
- package/cjs/style/themes/theme-eiendom/eiendom-theme-extensions.scss +1 -0
- package/cjs/style/themes/theme-eiendom/eiendom-theme-forms.css +8 -5
- package/cjs/style/themes/theme-eiendom/eiendom-theme-forms.min.css +2 -2
- package/cjs/style/themes/theme-eiendom/eiendom-theme-forms.scss +1 -0
- package/cjs/style/themes/theme-sbanken/sbanken-theme-components.css +214 -127
- package/cjs/style/themes/theme-sbanken/sbanken-theme-components.min.css +9 -7
- package/cjs/style/themes/theme-sbanken/sbanken-theme-components.scss +2 -2
- package/cjs/style/themes/theme-sbanken/sbanken-theme-extensions.css +5 -5
- package/cjs/style/themes/theme-sbanken/sbanken-theme-extensions.min.css +1 -1
- package/cjs/style/themes/theme-sbanken/sbanken-theme-extensions.scss +1 -0
- package/cjs/style/themes/theme-sbanken/sbanken-theme-forms.css +5 -5
- package/cjs/style/themes/theme-sbanken/sbanken-theme-forms.min.css +1 -1
- package/cjs/style/themes/theme-sbanken/sbanken-theme-forms.scss +1 -0
- package/cjs/style/themes/theme-ui/ui-theme-components.css +139 -51
- package/cjs/style/themes/theme-ui/ui-theme-components.min.css +10 -6
- package/cjs/style/themes/theme-ui/ui-theme-extensions.css +8 -5
- package/cjs/style/themes/theme-ui/ui-theme-extensions.min.css +2 -2
- package/cjs/style/themes/theme-ui/ui-theme-extensions.scss +1 -0
- package/cjs/style/themes/theme-ui/ui-theme-forms.css +8 -5
- package/cjs/style/themes/theme-ui/ui-theme-forms.min.css +2 -2
- package/cjs/style/themes/theme-ui/ui-theme-forms.scss +1 -0
- package/components/anchor/Anchor.d.ts +8 -1
- package/components/anchor/Anchor.js.map +1 -1
- package/components/card/Card.js +3 -2
- package/components/card/Card.js.map +1 -1
- package/components/card/style/dnb-card.css +1 -2
- package/components/card/style/dnb-card.min.css +1 -1
- package/components/card/style/themes/dnb-card-theme-sbanken.css +5 -0
- package/components/card/style/themes/dnb-card-theme-sbanken.min.css +1 -0
- package/components/card/style/themes/dnb-card-theme-sbanken.scss +7 -0
- package/components/checkbox/CheckIcon.d.ts +1 -1
- package/components/checkbox/CheckIcon.js +4 -8
- package/components/checkbox/CheckIcon.js.map +1 -1
- package/components/checkbox/Checkbox.d.ts +4 -0
- package/components/checkbox/Checkbox.js +9 -3
- package/components/checkbox/Checkbox.js.map +1 -1
- package/components/checkbox/CheckboxDocs.js +10 -5
- package/components/checkbox/CheckboxDocs.js.map +1 -1
- package/components/checkbox/style/dnb-checkbox.css +95 -15
- package/components/checkbox/style/dnb-checkbox.min.css +1 -1
- package/components/checkbox/style/dnb-checkbox.scss +156 -21
- package/components/checkbox/style/themes/dnb-checkbox-theme-sbanken.css +22 -2
- package/components/checkbox/style/themes/dnb-checkbox-theme-sbanken.min.css +4 -2
- package/components/checkbox/style/themes/dnb-checkbox-theme-sbanken.scss +28 -2
- package/components/checkbox/style/themes/dnb-checkbox-theme-ui.css +20 -2
- package/components/checkbox/style/themes/dnb-checkbox-theme-ui.min.css +5 -1
- package/components/checkbox/style/themes/dnb-checkbox-theme-ui.scss +25 -2
- package/components/flex/Container.d.ts +4 -1
- package/components/flex/Container.js +10 -7
- package/components/flex/Container.js.map +1 -1
- package/components/flex/Stack.js +3 -3
- package/components/flex/Stack.js.map +1 -1
- package/components/flex/utils.js +8 -8
- package/components/flex/utils.js.map +1 -1
- package/components/height-animation/HeightAnimationInstance.js +6 -1
- package/components/height-animation/HeightAnimationInstance.js.map +1 -1
- package/components/modal/Modal.d.ts +2 -0
- package/components/modal/Modal.js +10 -3
- package/components/modal/Modal.js.map +1 -1
- package/components/skeleton/style/dnb-skeleton.css +4 -8
- package/components/skeleton/style/dnb-skeleton.min.css +1 -1
- package/components/space/SpacingUtils.d.ts +1 -1
- package/components/space/SpacingUtils.js +1 -1
- package/components/space/SpacingUtils.js.map +1 -1
- package/components/step-indicator/style/themes/dnb-step-indicator-theme-sbanken.css +70 -0
- package/components/step-indicator/style/themes/dnb-step-indicator-theme-sbanken.min.css +1 -0
- package/components/step-indicator/style/themes/dnb-step-indicator-theme-sbanken.scss +97 -0
- package/components/switch/style/themes/dnb-switch-theme-ui.css +1 -2
- package/components/switch/style/themes/dnb-switch-theme-ui.min.css +1 -1
- package/components/table/style/dnb-table.css +5 -10
- package/components/table/style/dnb-table.min.css +1 -1
- package/components/visually-hidden/style/dnb-visually-hidden.css +1 -2
- package/components/visually-hidden/style/dnb-visually-hidden.min.css +1 -1
- package/es/components/anchor/Anchor.d.ts +8 -1
- package/es/components/anchor/Anchor.js.map +1 -1
- package/es/components/card/Card.js +3 -2
- package/es/components/card/Card.js.map +1 -1
- package/es/components/card/style/dnb-card.css +1 -2
- package/es/components/card/style/dnb-card.min.css +1 -1
- package/es/components/card/style/themes/dnb-card-theme-sbanken.css +5 -0
- package/es/components/card/style/themes/dnb-card-theme-sbanken.min.css +1 -0
- package/es/components/card/style/themes/dnb-card-theme-sbanken.scss +7 -0
- package/es/components/checkbox/CheckIcon.d.ts +1 -1
- package/es/components/checkbox/CheckIcon.js +5 -10
- package/es/components/checkbox/CheckIcon.js.map +1 -1
- package/es/components/checkbox/Checkbox.d.ts +4 -0
- package/es/components/checkbox/Checkbox.js +9 -3
- package/es/components/checkbox/Checkbox.js.map +1 -1
- package/es/components/checkbox/CheckboxDocs.js +10 -5
- package/es/components/checkbox/CheckboxDocs.js.map +1 -1
- package/es/components/checkbox/style/dnb-checkbox.css +95 -15
- package/es/components/checkbox/style/dnb-checkbox.min.css +1 -1
- package/es/components/checkbox/style/dnb-checkbox.scss +156 -21
- package/es/components/checkbox/style/themes/dnb-checkbox-theme-sbanken.css +22 -2
- package/es/components/checkbox/style/themes/dnb-checkbox-theme-sbanken.min.css +4 -2
- package/es/components/checkbox/style/themes/dnb-checkbox-theme-sbanken.scss +28 -2
- package/es/components/checkbox/style/themes/dnb-checkbox-theme-ui.css +20 -2
- package/es/components/checkbox/style/themes/dnb-checkbox-theme-ui.min.css +5 -1
- package/es/components/checkbox/style/themes/dnb-checkbox-theme-ui.scss +25 -2
- package/es/components/flex/Container.d.ts +4 -1
- package/es/components/flex/Container.js +10 -7
- package/es/components/flex/Container.js.map +1 -1
- package/es/components/flex/Stack.js +3 -3
- package/es/components/flex/Stack.js.map +1 -1
- package/es/components/flex/utils.js +8 -8
- package/es/components/flex/utils.js.map +1 -1
- package/es/components/height-animation/HeightAnimationInstance.js +6 -1
- package/es/components/height-animation/HeightAnimationInstance.js.map +1 -1
- package/es/components/modal/Modal.d.ts +2 -0
- package/es/components/modal/Modal.js +10 -3
- package/es/components/modal/Modal.js.map +1 -1
- package/es/components/skeleton/style/dnb-skeleton.css +4 -8
- package/es/components/skeleton/style/dnb-skeleton.min.css +1 -1
- package/es/components/space/SpacingUtils.d.ts +1 -1
- package/es/components/space/SpacingUtils.js +1 -1
- package/es/components/space/SpacingUtils.js.map +1 -1
- package/es/components/step-indicator/style/themes/dnb-step-indicator-theme-sbanken.css +70 -0
- package/es/components/step-indicator/style/themes/dnb-step-indicator-theme-sbanken.min.css +1 -0
- package/es/components/step-indicator/style/themes/dnb-step-indicator-theme-sbanken.scss +97 -0
- package/es/components/switch/style/themes/dnb-switch-theme-ui.css +1 -2
- package/es/components/switch/style/themes/dnb-switch-theme-ui.min.css +1 -1
- package/es/components/table/style/dnb-table.css +5 -10
- package/es/components/table/style/dnb-table.min.css +1 -1
- package/es/components/visually-hidden/style/dnb-visually-hidden.css +1 -2
- package/es/components/visually-hidden/style/dnb-visually-hidden.min.css +1 -1
- package/es/extensions/forms/DataContext/Context.d.ts +20 -9
- package/es/extensions/forms/DataContext/Context.js +2 -3
- package/es/extensions/forms/DataContext/Context.js.map +1 -1
- package/es/extensions/forms/DataContext/Provider/Provider.d.ts +3 -3
- package/es/extensions/forms/DataContext/Provider/Provider.js +66 -30
- package/es/extensions/forms/DataContext/Provider/Provider.js.map +1 -1
- package/es/extensions/forms/DataContext/Provider/ProviderDocs.js +3 -3
- package/es/extensions/forms/DataContext/Provider/ProviderDocs.js.map +1 -1
- package/es/extensions/forms/Field/Boolean/Boolean.d.ts +12 -2
- package/es/extensions/forms/Field/Boolean/Boolean.js +2 -1
- package/es/extensions/forms/Field/Boolean/Boolean.js.map +1 -1
- package/es/extensions/forms/Field/Boolean/BooleanDocs.d.ts +2 -0
- package/es/extensions/forms/Field/Boolean/BooleanDocs.js +18 -0
- package/es/extensions/forms/Field/Boolean/BooleanDocs.js.map +1 -0
- package/es/extensions/forms/Field/FieldDocs.js +2 -2
- package/es/extensions/forms/Field/FieldDocs.js.map +1 -1
- package/es/extensions/forms/Field/Indeterminate/Indeterminate.d.ts +16 -0
- package/es/extensions/forms/Field/Indeterminate/Indeterminate.js +43 -0
- package/es/extensions/forms/Field/Indeterminate/Indeterminate.js.map +1 -0
- package/es/extensions/forms/Field/Indeterminate/IndeterminateDocs.d.ts +2 -0
- package/es/extensions/forms/Field/Indeterminate/IndeterminateDocs.js +29 -0
- package/es/extensions/forms/Field/Indeterminate/IndeterminateDocs.js.map +1 -0
- package/es/extensions/forms/Field/Indeterminate/index.d.ts +2 -0
- package/es/extensions/forms/Field/Indeterminate/index.js +3 -0
- package/es/extensions/forms/Field/Indeterminate/index.js.map +1 -0
- package/es/extensions/forms/Field/Indeterminate/useDependencePaths.d.ts +6 -0
- package/es/extensions/forms/Field/Indeterminate/useDependencePaths.js +74 -0
- package/es/extensions/forms/Field/Indeterminate/useDependencePaths.js.map +1 -0
- package/es/extensions/forms/Field/Name/NameDocs.js +1 -8
- package/es/extensions/forms/Field/Name/NameDocs.js.map +1 -1
- package/es/extensions/forms/Field/Number/Number.js +3 -1
- package/es/extensions/forms/Field/Number/Number.js.map +1 -1
- package/es/extensions/forms/Field/PhoneNumber/PhoneNumber.js +1 -1
- package/es/extensions/forms/Field/PhoneNumber/PhoneNumber.js.map +1 -1
- package/es/extensions/forms/Field/String/String.js.map +1 -1
- package/es/extensions/forms/Field/Toggle/Toggle.d.ts +2 -1
- package/es/extensions/forms/Field/Toggle/Toggle.js +2 -2
- package/es/extensions/forms/Field/Toggle/Toggle.js.map +1 -1
- package/es/extensions/forms/Field/Toggle/ToggleDocs.d.ts +2 -0
- package/es/extensions/forms/Field/Toggle/ToggleDocs.js +28 -0
- package/es/extensions/forms/Field/Toggle/ToggleDocs.js.map +1 -0
- 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.js +5 -0
- package/es/extensions/forms/FieldBlock/FieldBlock.js.map +1 -1
- package/es/extensions/forms/FieldBlock/FieldBlockDocs.d.ts +1 -0
- package/es/extensions/forms/FieldBlock/FieldBlockDocs.js +20 -15
- package/es/extensions/forms/FieldBlock/FieldBlockDocs.js.map +1 -1
- package/es/extensions/forms/FieldBlock/style/dnb-field-block.css +1 -3
- package/es/extensions/forms/FieldBlock/style/dnb-field-block.min.css +1 -1
- package/es/extensions/forms/FieldBlock/style/dnb-field-block.scss +1 -2
- package/es/extensions/forms/Form/Element/Element.js +1 -1
- package/es/extensions/forms/Form/Element/Element.js.map +1 -1
- package/es/extensions/forms/Form/Handler/Handler.js +2 -2
- package/es/extensions/forms/Form/Handler/Handler.js.map +1 -1
- package/es/extensions/forms/Form/Handler/HandlerDocs.js +5 -0
- package/es/extensions/forms/Form/Handler/HandlerDocs.js.map +1 -1
- package/es/extensions/forms/Form/SubmitButton/SubmitButton.js +3 -3
- package/es/extensions/forms/Form/SubmitButton/SubmitButton.js.map +1 -1
- package/es/extensions/forms/Form/Tools/GenerateSchema.d.ts +8 -0
- package/es/extensions/forms/Form/Tools/GenerateSchema.js +89 -0
- package/es/extensions/forms/Form/Tools/GenerateSchema.js.map +1 -0
- package/es/extensions/forms/Form/Tools/index.d.ts +1 -0
- package/es/extensions/forms/Form/Tools/index.js +1 -0
- package/es/extensions/forms/Form/Tools/index.js.map +1 -0
- package/es/extensions/forms/Form/Visibility/Visibility.d.ts +19 -5
- package/es/extensions/forms/Form/Visibility/Visibility.js +41 -10
- package/es/extensions/forms/Form/Visibility/Visibility.js.map +1 -1
- package/es/extensions/forms/Form/Visibility/VisibilityDocs.js +11 -6
- package/es/extensions/forms/Form/Visibility/VisibilityDocs.js.map +1 -1
- package/es/extensions/forms/Form/data-context/useData.d.ts +1 -1
- package/es/extensions/forms/Form/data-context/useData.js +1 -2
- package/es/extensions/forms/Form/data-context/useData.js.map +1 -1
- package/es/extensions/forms/Form/data-context/useError.d.ts +1 -0
- package/es/extensions/forms/Form/data-context/useError.js +5 -3
- package/es/extensions/forms/Form/data-context/useError.js.map +1 -1
- package/es/extensions/forms/Form/index.d.ts +1 -0
- package/es/extensions/forms/Form/index.js +1 -0
- package/es/extensions/forms/Form/index.js.map +1 -1
- package/es/extensions/forms/Iterate/AnimatedContainer/ElementBlock.d.ts +8 -1
- package/es/extensions/forms/Iterate/AnimatedContainer/ElementBlock.js +4 -3
- package/es/extensions/forms/Iterate/AnimatedContainer/ElementBlock.js.map +1 -1
- package/es/extensions/forms/Iterate/EditContainer/EditContainer.d.ts +2 -1
- package/es/extensions/forms/Iterate/EditContainer/EditContainer.js.map +1 -1
- package/es/extensions/forms/Iterate/EditContainer/EditContainerDocs.js +5 -0
- package/es/extensions/forms/Iterate/EditContainer/EditContainerDocs.js.map +1 -1
- package/es/extensions/forms/Iterate/EditContainer/EditToolbarTools.js +1 -1
- package/es/extensions/forms/Iterate/EditContainer/EditToolbarTools.js.map +1 -1
- package/es/extensions/forms/Iterate/Toolbar/Toolbar.js +1 -1
- package/es/extensions/forms/Iterate/Toolbar/Toolbar.js.map +1 -1
- package/es/extensions/forms/Iterate/ViewContainer/ViewContainer.d.ts +2 -1
- package/es/extensions/forms/Iterate/ViewContainer/ViewContainer.js.map +1 -1
- package/es/extensions/forms/Iterate/ViewContainer/ViewContainerDocs.js +5 -0
- package/es/extensions/forms/Iterate/ViewContainer/ViewContainerDocs.js.map +1 -1
- package/es/extensions/forms/Iterate/ViewContainer/ViewToolbarTools.js +1 -1
- package/es/extensions/forms/Iterate/ViewContainer/ViewToolbarTools.js.map +1 -1
- package/es/extensions/forms/Iterate/style/dnb-form-iterate.css +3 -1
- package/es/extensions/forms/Iterate/style/dnb-form-iterate.min.css +1 -1
- package/es/extensions/forms/Iterate/style/dnb-form-iterate.scss +4 -1
- package/es/extensions/forms/ValueBlock/ValueBlock.js +4 -2
- package/es/extensions/forms/ValueBlock/ValueBlock.js.map +1 -1
- package/es/extensions/forms/Wizard/Container/WizardContainer.d.ts +31 -2
- package/es/extensions/forms/Wizard/Container/WizardContainer.js +101 -31
- package/es/extensions/forms/Wizard/Container/WizardContainer.js.map +1 -1
- package/es/extensions/forms/Wizard/Context/WizardContext.d.ts +4 -0
- package/es/extensions/forms/Wizard/Context/WizardContext.js.map +1 -1
- package/es/extensions/forms/Wizard/Step/Step.d.ts +10 -1
- package/es/extensions/forms/Wizard/Step/Step.js +15 -6
- package/es/extensions/forms/Wizard/Step/Step.js.map +1 -1
- 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/style/dnb-wizard-layout.css +0 -1
- package/es/extensions/forms/Wizard/style/dnb-wizard-layout.min.css +1 -1
- package/es/extensions/forms/Wizard/style/dnb-wizard-layout.scss +0 -1
- package/es/extensions/forms/Wizard/style/themes/dnb-wizard-layout-theme-sbanken.css +1 -0
- package/es/extensions/forms/Wizard/style/themes/dnb-wizard-layout-theme-sbanken.min.css +0 -0
- package/es/extensions/forms/Wizard/style/themes/dnb-wizard-layout-theme-sbanken.scss +1 -0
- package/es/extensions/forms/Wizard/style/themes/dnb-wizard-layout-theme-ui.css +3 -0
- package/es/extensions/forms/Wizard/style/themes/dnb-wizard-layout-theme-ui.min.css +1 -0
- package/es/extensions/forms/Wizard/style/themes/dnb-wizard-layout-theme-ui.scss +7 -0
- package/es/extensions/forms/hooks/useFieldProps.js +68 -29
- package/es/extensions/forms/hooks/useFieldProps.js.map +1 -1
- package/es/extensions/forms/style/dnb-forms.css +4 -5
- package/es/extensions/forms/style/dnb-forms.min.css +1 -1
- package/es/extensions/forms/types.d.ts +9 -0
- package/es/extensions/forms/types.js.map +1 -1
- package/es/fragments/drawer-list/DrawerListHelpers.js +5 -2
- package/es/fragments/drawer-list/DrawerListHelpers.js.map +1 -1
- package/es/shared/Eufemia.d.ts +1 -1
- package/es/shared/Eufemia.js +2 -2
- package/es/shared/Eufemia.js.map +1 -1
- package/es/shared/MediaQuery.js +19 -1
- package/es/shared/MediaQuery.js.map +1 -1
- package/es/shared/MediaQueryUtils.d.ts +12 -34
- package/es/shared/MediaQueryUtils.js +22 -17
- package/es/shared/MediaQueryUtils.js.map +1 -1
- package/es/shared/component-helper.d.ts +1 -1
- package/es/shared/component-helper.js +5 -2
- package/es/shared/component-helper.js.map +1 -1
- package/es/shared/useMedia.d.ts +7 -2
- package/es/shared/useMedia.js +14 -11
- package/es/shared/useMedia.js.map +1 -1
- package/es/shared/useMediaQuery.js +28 -9
- package/es/shared/useMediaQuery.js.map +1 -1
- package/es/style/core/scopes.scss +1 -1
- package/es/style/dnb-ui-basis.css +2 -3
- 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 +110 -42
- package/es/style/dnb-ui-components.min.css +3 -3
- package/es/style/dnb-ui-core.css +2 -3
- package/es/style/dnb-ui-core.min.css +1 -1
- package/es/style/dnb-ui-extensions.css +4 -5
- package/es/style/dnb-ui-extensions.min.css +1 -1
- package/es/style/dnb-ui-forms.css +4 -5
- package/es/style/dnb-ui-forms.min.css +1 -1
- package/es/style/themes/theme-eiendom/eiendom-theme-components.css +139 -51
- package/es/style/themes/theme-eiendom/eiendom-theme-components.min.css +10 -6
- package/es/style/themes/theme-eiendom/eiendom-theme-extensions.css +8 -5
- package/es/style/themes/theme-eiendom/eiendom-theme-extensions.min.css +2 -2
- package/es/style/themes/theme-eiendom/eiendom-theme-extensions.scss +1 -0
- package/es/style/themes/theme-eiendom/eiendom-theme-forms.css +8 -5
- package/es/style/themes/theme-eiendom/eiendom-theme-forms.min.css +2 -2
- package/es/style/themes/theme-eiendom/eiendom-theme-forms.scss +1 -0
- package/es/style/themes/theme-sbanken/sbanken-theme-components.css +214 -127
- package/es/style/themes/theme-sbanken/sbanken-theme-components.min.css +9 -7
- package/es/style/themes/theme-sbanken/sbanken-theme-components.scss +2 -2
- package/es/style/themes/theme-sbanken/sbanken-theme-extensions.css +5 -5
- package/es/style/themes/theme-sbanken/sbanken-theme-extensions.min.css +1 -1
- package/es/style/themes/theme-sbanken/sbanken-theme-extensions.scss +1 -0
- package/es/style/themes/theme-sbanken/sbanken-theme-forms.css +5 -5
- package/es/style/themes/theme-sbanken/sbanken-theme-forms.min.css +1 -1
- package/es/style/themes/theme-sbanken/sbanken-theme-forms.scss +1 -0
- package/es/style/themes/theme-ui/ui-theme-components.css +139 -51
- package/es/style/themes/theme-ui/ui-theme-components.min.css +10 -6
- package/es/style/themes/theme-ui/ui-theme-extensions.css +8 -5
- package/es/style/themes/theme-ui/ui-theme-extensions.min.css +2 -2
- package/es/style/themes/theme-ui/ui-theme-extensions.scss +1 -0
- package/es/style/themes/theme-ui/ui-theme-forms.css +8 -5
- package/es/style/themes/theme-ui/ui-theme-forms.min.css +2 -2
- package/es/style/themes/theme-ui/ui-theme-forms.scss +1 -0
- 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 +20 -9
- package/extensions/forms/DataContext/Context.js +2 -3
- package/extensions/forms/DataContext/Context.js.map +1 -1
- package/extensions/forms/DataContext/Provider/Provider.d.ts +3 -3
- package/extensions/forms/DataContext/Provider/Provider.js +69 -32
- package/extensions/forms/DataContext/Provider/Provider.js.map +1 -1
- package/extensions/forms/DataContext/Provider/ProviderDocs.js +3 -3
- package/extensions/forms/DataContext/Provider/ProviderDocs.js.map +1 -1
- package/extensions/forms/Field/Boolean/Boolean.d.ts +12 -2
- package/extensions/forms/Field/Boolean/Boolean.js +2 -1
- package/extensions/forms/Field/Boolean/Boolean.js.map +1 -1
- package/extensions/forms/Field/Boolean/BooleanDocs.d.ts +2 -0
- package/extensions/forms/Field/Boolean/BooleanDocs.js +18 -0
- package/extensions/forms/Field/Boolean/BooleanDocs.js.map +1 -0
- package/extensions/forms/Field/FieldDocs.js +2 -2
- package/extensions/forms/Field/FieldDocs.js.map +1 -1
- package/extensions/forms/Field/Indeterminate/Indeterminate.d.ts +16 -0
- package/extensions/forms/Field/Indeterminate/Indeterminate.js +43 -0
- package/extensions/forms/Field/Indeterminate/Indeterminate.js.map +1 -0
- package/extensions/forms/Field/Indeterminate/IndeterminateDocs.d.ts +2 -0
- package/extensions/forms/Field/Indeterminate/IndeterminateDocs.js +29 -0
- package/extensions/forms/Field/Indeterminate/IndeterminateDocs.js.map +1 -0
- package/extensions/forms/Field/Indeterminate/index.d.ts +2 -0
- package/extensions/forms/Field/Indeterminate/index.js +3 -0
- package/extensions/forms/Field/Indeterminate/index.js.map +1 -0
- package/extensions/forms/Field/Indeterminate/useDependencePaths.d.ts +6 -0
- package/extensions/forms/Field/Indeterminate/useDependencePaths.js +75 -0
- package/extensions/forms/Field/Indeterminate/useDependencePaths.js.map +1 -0
- package/extensions/forms/Field/Name/NameDocs.js +1 -8
- package/extensions/forms/Field/Name/NameDocs.js.map +1 -1
- package/extensions/forms/Field/Number/Number.js +3 -1
- package/extensions/forms/Field/Number/Number.js.map +1 -1
- package/extensions/forms/Field/PhoneNumber/PhoneNumber.js +1 -1
- package/extensions/forms/Field/PhoneNumber/PhoneNumber.js.map +1 -1
- package/extensions/forms/Field/String/String.js.map +1 -1
- package/extensions/forms/Field/Toggle/Toggle.d.ts +2 -1
- package/extensions/forms/Field/Toggle/Toggle.js +2 -2
- package/extensions/forms/Field/Toggle/Toggle.js.map +1 -1
- package/extensions/forms/Field/Toggle/ToggleDocs.d.ts +2 -0
- package/extensions/forms/Field/Toggle/ToggleDocs.js +28 -0
- package/extensions/forms/Field/Toggle/ToggleDocs.js.map +1 -0
- 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.js +5 -0
- package/extensions/forms/FieldBlock/FieldBlock.js.map +1 -1
- package/extensions/forms/FieldBlock/FieldBlockDocs.d.ts +1 -0
- package/extensions/forms/FieldBlock/FieldBlockDocs.js +20 -15
- package/extensions/forms/FieldBlock/FieldBlockDocs.js.map +1 -1
- package/extensions/forms/FieldBlock/style/dnb-field-block.css +1 -3
- package/extensions/forms/FieldBlock/style/dnb-field-block.min.css +1 -1
- package/extensions/forms/FieldBlock/style/dnb-field-block.scss +1 -2
- package/extensions/forms/Form/Element/Element.js +1 -1
- package/extensions/forms/Form/Element/Element.js.map +1 -1
- package/extensions/forms/Form/Handler/Handler.js +2 -2
- package/extensions/forms/Form/Handler/Handler.js.map +1 -1
- package/extensions/forms/Form/Handler/HandlerDocs.js +5 -0
- package/extensions/forms/Form/Handler/HandlerDocs.js.map +1 -1
- package/extensions/forms/Form/SubmitButton/SubmitButton.js +3 -3
- package/extensions/forms/Form/SubmitButton/SubmitButton.js.map +1 -1
- package/extensions/forms/Form/Tools/GenerateSchema.d.ts +8 -0
- package/extensions/forms/Form/Tools/GenerateSchema.js +90 -0
- package/extensions/forms/Form/Tools/GenerateSchema.js.map +1 -0
- package/extensions/forms/Form/Tools/index.d.ts +1 -0
- package/extensions/forms/Form/Tools/index.js +1 -0
- package/extensions/forms/Form/Tools/index.js.map +1 -0
- package/extensions/forms/Form/Visibility/Visibility.d.ts +19 -5
- package/extensions/forms/Form/Visibility/Visibility.js +41 -10
- package/extensions/forms/Form/Visibility/Visibility.js.map +1 -1
- package/extensions/forms/Form/Visibility/VisibilityDocs.js +11 -6
- package/extensions/forms/Form/Visibility/VisibilityDocs.js.map +1 -1
- package/extensions/forms/Form/data-context/useData.d.ts +1 -1
- package/extensions/forms/Form/data-context/useData.js +2 -2
- package/extensions/forms/Form/data-context/useData.js.map +1 -1
- package/extensions/forms/Form/data-context/useError.d.ts +1 -0
- package/extensions/forms/Form/data-context/useError.js +5 -3
- 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 +2 -0
- package/extensions/forms/Form/index.js.map +1 -1
- package/extensions/forms/Iterate/AnimatedContainer/ElementBlock.d.ts +8 -1
- package/extensions/forms/Iterate/AnimatedContainer/ElementBlock.js +4 -3
- package/extensions/forms/Iterate/AnimatedContainer/ElementBlock.js.map +1 -1
- package/extensions/forms/Iterate/EditContainer/EditContainer.d.ts +2 -1
- package/extensions/forms/Iterate/EditContainer/EditContainer.js.map +1 -1
- package/extensions/forms/Iterate/EditContainer/EditContainerDocs.js +5 -0
- package/extensions/forms/Iterate/EditContainer/EditContainerDocs.js.map +1 -1
- package/extensions/forms/Iterate/EditContainer/EditToolbarTools.js +1 -1
- package/extensions/forms/Iterate/EditContainer/EditToolbarTools.js.map +1 -1
- package/extensions/forms/Iterate/Toolbar/Toolbar.js +1 -1
- package/extensions/forms/Iterate/Toolbar/Toolbar.js.map +1 -1
- package/extensions/forms/Iterate/ViewContainer/ViewContainer.d.ts +2 -1
- package/extensions/forms/Iterate/ViewContainer/ViewContainer.js.map +1 -1
- package/extensions/forms/Iterate/ViewContainer/ViewContainerDocs.js +5 -0
- package/extensions/forms/Iterate/ViewContainer/ViewContainerDocs.js.map +1 -1
- package/extensions/forms/Iterate/ViewContainer/ViewToolbarTools.js +1 -1
- package/extensions/forms/Iterate/ViewContainer/ViewToolbarTools.js.map +1 -1
- package/extensions/forms/Iterate/style/dnb-form-iterate.css +3 -1
- package/extensions/forms/Iterate/style/dnb-form-iterate.min.css +1 -1
- package/extensions/forms/Iterate/style/dnb-form-iterate.scss +4 -1
- package/extensions/forms/ValueBlock/ValueBlock.js +4 -2
- package/extensions/forms/ValueBlock/ValueBlock.js.map +1 -1
- package/extensions/forms/Wizard/Container/WizardContainer.d.ts +31 -2
- package/extensions/forms/Wizard/Container/WizardContainer.js +105 -31
- package/extensions/forms/Wizard/Container/WizardContainer.js.map +1 -1
- package/extensions/forms/Wizard/Context/WizardContext.d.ts +4 -0
- package/extensions/forms/Wizard/Context/WizardContext.js.map +1 -1
- package/extensions/forms/Wizard/Step/Step.d.ts +10 -1
- package/extensions/forms/Wizard/Step/Step.js +15 -6
- package/extensions/forms/Wizard/Step/Step.js.map +1 -1
- package/extensions/forms/Wizard/Step/StepDocs.js +5 -0
- package/extensions/forms/Wizard/Step/StepDocs.js.map +1 -1
- package/extensions/forms/Wizard/style/dnb-wizard-layout.css +0 -1
- package/extensions/forms/Wizard/style/dnb-wizard-layout.min.css +1 -1
- package/extensions/forms/Wizard/style/dnb-wizard-layout.scss +0 -1
- package/extensions/forms/Wizard/style/themes/dnb-wizard-layout-theme-sbanken.css +1 -0
- package/extensions/forms/Wizard/style/themes/dnb-wizard-layout-theme-sbanken.min.css +0 -0
- package/extensions/forms/Wizard/style/themes/dnb-wizard-layout-theme-sbanken.scss +1 -0
- package/extensions/forms/Wizard/style/themes/dnb-wizard-layout-theme-ui.css +3 -0
- package/extensions/forms/Wizard/style/themes/dnb-wizard-layout-theme-ui.min.css +1 -0
- package/extensions/forms/Wizard/style/themes/dnb-wizard-layout-theme-ui.scss +7 -0
- package/extensions/forms/hooks/useFieldProps.js +71 -32
- package/extensions/forms/hooks/useFieldProps.js.map +1 -1
- package/extensions/forms/style/dnb-forms.css +4 -5
- package/extensions/forms/style/dnb-forms.min.css +1 -1
- package/extensions/forms/types.d.ts +9 -0
- package/extensions/forms/types.js.map +1 -1
- package/fragments/drawer-list/DrawerListHelpers.js +5 -2
- package/fragments/drawer-list/DrawerListHelpers.js.map +1 -1
- package/package.json +1 -1
- package/shared/Eufemia.d.ts +1 -1
- package/shared/Eufemia.js +2 -2
- package/shared/Eufemia.js.map +1 -1
- package/shared/MediaQuery.js +19 -1
- package/shared/MediaQuery.js.map +1 -1
- package/shared/MediaQueryUtils.d.ts +12 -34
- package/shared/MediaQueryUtils.js +22 -12
- package/shared/MediaQueryUtils.js.map +1 -1
- package/shared/component-helper.d.ts +1 -1
- package/shared/component-helper.js +5 -1
- package/shared/component-helper.js.map +1 -1
- package/shared/useMedia.d.ts +7 -2
- package/shared/useMedia.js +14 -11
- package/shared/useMedia.js.map +1 -1
- package/shared/useMediaQuery.js +28 -9
- package/shared/useMediaQuery.js.map +1 -1
- package/style/core/scopes.scss +1 -1
- package/style/dnb-ui-basis.css +2 -3
- 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 +110 -42
- package/style/dnb-ui-components.min.css +3 -3
- package/style/dnb-ui-core.css +2 -3
- package/style/dnb-ui-core.min.css +1 -1
- package/style/dnb-ui-extensions.css +4 -5
- package/style/dnb-ui-extensions.min.css +1 -1
- package/style/dnb-ui-forms.css +4 -5
- package/style/dnb-ui-forms.min.css +1 -1
- package/style/themes/theme-eiendom/eiendom-theme-components.css +139 -51
- package/style/themes/theme-eiendom/eiendom-theme-components.min.css +10 -6
- package/style/themes/theme-eiendom/eiendom-theme-extensions.css +8 -5
- package/style/themes/theme-eiendom/eiendom-theme-extensions.min.css +2 -2
- package/style/themes/theme-eiendom/eiendom-theme-extensions.scss +1 -0
- package/style/themes/theme-eiendom/eiendom-theme-forms.css +8 -5
- package/style/themes/theme-eiendom/eiendom-theme-forms.min.css +2 -2
- package/style/themes/theme-eiendom/eiendom-theme-forms.scss +1 -0
- package/style/themes/theme-sbanken/sbanken-theme-components.css +214 -127
- package/style/themes/theme-sbanken/sbanken-theme-components.min.css +9 -7
- package/style/themes/theme-sbanken/sbanken-theme-components.scss +2 -2
- package/style/themes/theme-sbanken/sbanken-theme-extensions.css +5 -5
- package/style/themes/theme-sbanken/sbanken-theme-extensions.min.css +1 -1
- package/style/themes/theme-sbanken/sbanken-theme-extensions.scss +1 -0
- package/style/themes/theme-sbanken/sbanken-theme-forms.css +5 -5
- package/style/themes/theme-sbanken/sbanken-theme-forms.min.css +1 -1
- package/style/themes/theme-sbanken/sbanken-theme-forms.scss +1 -0
- package/style/themes/theme-ui/ui-theme-components.css +139 -51
- package/style/themes/theme-ui/ui-theme-components.min.css +10 -6
- package/style/themes/theme-ui/ui-theme-extensions.css +8 -5
- package/style/themes/theme-ui/ui-theme-extensions.min.css +2 -2
- package/style/themes/theme-ui/ui-theme-extensions.scss +1 -0
- package/style/themes/theme-ui/ui-theme-forms.css +8 -5
- package/style/themes/theme-ui/ui-theme-forms.min.css +2 -2
- package/style/themes/theme-ui/ui-theme-forms.scss +1 -0
- 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
|
@@ -4,19 +4,22 @@
|
|
|
4
4
|
*/
|
|
5
5
|
|
|
6
6
|
.dnb-checkbox {
|
|
7
|
+
--checkbox-border-width: 0.125rem;
|
|
8
|
+
--checkbox-border-width--hover: 0.125rem;
|
|
7
9
|
// Normal state
|
|
8
10
|
--checkbox-color-gfx-on: var(--sb-color-violet-light);
|
|
9
|
-
--checkbox-color-gfx-off: var(--sb-color-
|
|
11
|
+
--checkbox-color-gfx-off: var(--sb-color-white);
|
|
10
12
|
--checkbox-color-background-on: var(--sb-color-white);
|
|
11
13
|
--checkbox-color-background-off: var(--sb-color-white);
|
|
12
14
|
--checkbox-color-border-on: var(--sb-color-violet);
|
|
13
15
|
--checkbox-color-border-off: var(--sb-color-violet);
|
|
14
16
|
// Disabled state
|
|
15
17
|
--checkbox-color-gfx--disabled: var(--sb-color-gray-dark);
|
|
16
|
-
--checkbox-color-background-on--disabled: var(--sb-color-gray-light);
|
|
17
18
|
--checkbox-color-background-off--disabled: var(--sb-color-gray-light);
|
|
19
|
+
--checkbox-color-background-on--disabled: var(--sb-color-gray-light);
|
|
18
20
|
--checkbox-color-border-on--disabled: var(--sb-color-gray-dark);
|
|
19
21
|
--checkbox-color-border-off--disabled: var(--sb-color-gray-dark);
|
|
22
|
+
--checkbox-color-gfx__indeterminate--disabled: var(--sb-color-gray-dark);
|
|
20
23
|
// Active state
|
|
21
24
|
--checkbox-color-background--active: var(--sb-color-white);
|
|
22
25
|
--checkbox-color-border--active: var(--sb-color-gray);
|
|
@@ -36,4 +39,27 @@
|
|
|
36
39
|
--sb-color-magenta-light-2
|
|
37
40
|
);
|
|
38
41
|
--checkbox-color-border--error: var(--sb-color-magenta);
|
|
42
|
+
// Error Hover state
|
|
43
|
+
--checkbox-color-gfx--error--hover: var(--sb-color-magenta);
|
|
44
|
+
--checkbox-color-background--error--hover: var(
|
|
45
|
+
--sb-color-magenta-light-3
|
|
46
|
+
);
|
|
47
|
+
--checkbox-color-border--error--hover: transparent;
|
|
48
|
+
// Indeterminate state
|
|
49
|
+
--checkbox-color-background-indeterminate: var(--sb-color-white);
|
|
50
|
+
--checkbox-color-gfx-indeterminate: var(--sb-color-violet);
|
|
51
|
+
// Indeterminate Active state
|
|
52
|
+
--checkbox-color-background-indeterminate--active: var(--color-white);
|
|
53
|
+
--checkbox-color-border-indeterminate--active: var(--sb-color-gray);
|
|
54
|
+
--checkbox-color-gfx-indeterminate--active: var(--sb-color-violet);
|
|
55
|
+
|
|
56
|
+
// Indeterminate Error state
|
|
57
|
+
--checkbox-color-gfx-indeterminate--error: var(--sb-color-magenta);
|
|
58
|
+
// Indeterminate shape
|
|
59
|
+
--checkbox-gfx-width__indeterminate: 0.875rem;
|
|
60
|
+
--checkbox-gfx-height__indeterminate: 0.125rem;
|
|
61
|
+
--checkbox-gfx-height__indeterminate--large: 0.25rem;
|
|
62
|
+
--checkbox-gfx-width__indeterminate--large: 1.5rem;
|
|
63
|
+
--checkbox-border-radius: 0.125rem;
|
|
64
|
+
--checkbox-gfx-border-radius__indeterminate: 0rem;
|
|
39
65
|
}
|
|
@@ -4,7 +4,7 @@
|
|
|
4
4
|
*/
|
|
5
5
|
.dnb-checkbox {
|
|
6
6
|
--checkbox-color-gfx-on: var(--color-white);
|
|
7
|
-
--checkbox-color-gfx-off: var(--color-
|
|
7
|
+
--checkbox-color-gfx-off: var(--color-white);
|
|
8
8
|
--checkbox-color-background-on: var(--color-sea-green);
|
|
9
9
|
--checkbox-color-background-off: var(--color-white);
|
|
10
10
|
--checkbox-color-border-on: transparent;
|
|
@@ -14,17 +14,35 @@
|
|
|
14
14
|
--checkbox-color-background-off--disabled: var(--color-white);
|
|
15
15
|
--checkbox-color-border-on--disabled: transparent;
|
|
16
16
|
--checkbox-color-border-off--disabled: var(--color-mint-green-50);
|
|
17
|
+
--checkbox-color-gfx__indeterminate--disabled: var(
|
|
18
|
+
--color-mint-green-50
|
|
19
|
+
);
|
|
17
20
|
--checkbox-color-background--active: var(--color-mint-green-50);
|
|
18
21
|
--checkbox-color-border--active: transparent;
|
|
19
22
|
--checkbox-color-gfx--hover: var(--color-sea-green);
|
|
20
23
|
--checkbox-color-background--hover: var(--color-mint-green-50);
|
|
21
24
|
--checkbox-color-border-on--hover: transparent;
|
|
22
25
|
--checkbox-color-border-off--hover: var(--color-sea-green);
|
|
23
|
-
--checkbox-color-gfx--focus: var(--color-
|
|
26
|
+
--checkbox-color-gfx--focus: var(--color-emerald-green);
|
|
24
27
|
--checkbox-color-background--focus: var(--color-mint-green-50);
|
|
25
28
|
--checkbox-color-gfx--error: var(--color-fire-red-8);
|
|
26
29
|
--checkbox-color-gfx--error-contrast: var(--color-fire-red);
|
|
27
30
|
--checkbox-color-background-on--error: var(--color-fire-red);
|
|
28
31
|
--checkbox-color-background--error-contrast: var(--color-fire-red-8);
|
|
29
32
|
--checkbox-color-border--error: var(--color-fire-red);
|
|
33
|
+
--checkbox-color-gfx--error--hover: var(--color-fire-red);
|
|
34
|
+
--checkbox-color-background--error--hover: var(--color-fire-red-8);
|
|
35
|
+
--checkbox-color-border--error--hover: var(--color-fire-red);
|
|
36
|
+
--checkbox-color-background-indeterminate: var(--color-white);
|
|
37
|
+
--checkbox-color-gfx-indeterminate: var(--color-sea-green);
|
|
38
|
+
--checkbox-color-background-indeterminate--active: var(--color-white);
|
|
39
|
+
--checkbox-color-border-indeterminate--active: var(
|
|
40
|
+
--color-mint-green-50
|
|
41
|
+
);
|
|
42
|
+
--checkbox-color-gfx-indeterminate--active: var(--color-mint-green-50);
|
|
43
|
+
--checkbox-color-gfx-indeterminate--error: var(--color-fire-red);
|
|
44
|
+
--checkbox-gfx-height__indeterminate: 0.625rem;
|
|
45
|
+
--checkbox-gfx-width__indeterminate: 0.625rem;
|
|
46
|
+
--checkbox-gfx-height__indeterminate--large: 0.875rem;
|
|
47
|
+
--checkbox-gfx-width__indeterminate--large: 0.875rem;
|
|
30
48
|
}
|
|
@@ -1 +1,5 @@
|
|
|
1
|
-
.dnb-checkbox{--checkbox-color-gfx-on:var(--color-white);--checkbox-color-gfx-off:var(--color-
|
|
1
|
+
.dnb-checkbox{--checkbox-color-gfx-on:var(--color-white);--checkbox-color-gfx-off:var(--color-white);--checkbox-color-background-on:var(--color-sea-green);--checkbox-color-background-off:var(--color-white);--checkbox-color-border-on:transparent;--checkbox-color-border-off:var(--color-sea-green);--checkbox-color-gfx--disabled:var(--checkbox-color-gfx-on);--checkbox-color-background-on--disabled:var(--color-sea-green-30);--checkbox-color-background-off--disabled:var(--color-white);--checkbox-color-border-on--disabled:transparent;--checkbox-color-border-off--disabled:var(--color-mint-green-50);--checkbox-color-gfx__indeterminate--disabled:var(
|
|
2
|
+
--color-mint-green-50
|
|
3
|
+
);--checkbox-color-background--active:var(--color-mint-green-50);--checkbox-color-border--active:transparent;--checkbox-color-gfx--hover:var(--color-sea-green);--checkbox-color-background--hover:var(--color-mint-green-50);--checkbox-color-border-on--hover:transparent;--checkbox-color-border-off--hover:var(--color-sea-green);--checkbox-color-gfx--focus:var(--color-emerald-green);--checkbox-color-background--focus:var(--color-mint-green-50);--checkbox-color-gfx--error:var(--color-fire-red-8);--checkbox-color-gfx--error-contrast:var(--color-fire-red);--checkbox-color-background-on--error:var(--color-fire-red);--checkbox-color-background--error-contrast:var(--color-fire-red-8);--checkbox-color-border--error:var(--color-fire-red);--checkbox-color-gfx--error--hover:var(--color-fire-red);--checkbox-color-background--error--hover:var(--color-fire-red-8);--checkbox-color-border--error--hover:var(--color-fire-red);--checkbox-color-background-indeterminate:var(--color-white);--checkbox-color-gfx-indeterminate:var(--color-sea-green);--checkbox-color-background-indeterminate--active:var(--color-white);--checkbox-color-border-indeterminate--active:var(
|
|
4
|
+
--color-mint-green-50
|
|
5
|
+
);--checkbox-color-gfx-indeterminate--active:var(--color-mint-green-50);--checkbox-color-gfx-indeterminate--error:var(--color-fire-red);--checkbox-gfx-height__indeterminate:0.625rem;--checkbox-gfx-width__indeterminate:0.625rem;--checkbox-gfx-height__indeterminate--large:0.875rem;--checkbox-gfx-width__indeterminate--large:0.875rem}
|
|
@@ -6,7 +6,7 @@
|
|
|
6
6
|
.dnb-checkbox {
|
|
7
7
|
// Normal state
|
|
8
8
|
--checkbox-color-gfx-on: var(--color-white);
|
|
9
|
-
--checkbox-color-gfx-off: var(--color-
|
|
9
|
+
--checkbox-color-gfx-off: var(--color-white);
|
|
10
10
|
--checkbox-color-background-on: var(--color-sea-green);
|
|
11
11
|
--checkbox-color-background-off: var(--color-white);
|
|
12
12
|
--checkbox-color-border-on: transparent;
|
|
@@ -17,6 +17,9 @@
|
|
|
17
17
|
--checkbox-color-background-off--disabled: var(--color-white);
|
|
18
18
|
--checkbox-color-border-on--disabled: transparent;
|
|
19
19
|
--checkbox-color-border-off--disabled: var(--color-mint-green-50);
|
|
20
|
+
--checkbox-color-gfx__indeterminate--disabled: var(
|
|
21
|
+
--color-mint-green-50
|
|
22
|
+
);
|
|
20
23
|
// Active state
|
|
21
24
|
--checkbox-color-background--active: var(--color-mint-green-50);
|
|
22
25
|
--checkbox-color-border--active: transparent;
|
|
@@ -26,7 +29,7 @@
|
|
|
26
29
|
--checkbox-color-border-on--hover: transparent;
|
|
27
30
|
--checkbox-color-border-off--hover: var(--color-sea-green);
|
|
28
31
|
// Focus state
|
|
29
|
-
--checkbox-color-gfx--focus: var(--color-
|
|
32
|
+
--checkbox-color-gfx--focus: var(--color-emerald-green);
|
|
30
33
|
--checkbox-color-background--focus: var(--color-mint-green-50);
|
|
31
34
|
// Error state
|
|
32
35
|
--checkbox-color-gfx--error: var(--color-fire-red-8);
|
|
@@ -34,4 +37,24 @@
|
|
|
34
37
|
--checkbox-color-background-on--error: var(--color-fire-red);
|
|
35
38
|
--checkbox-color-background--error-contrast: var(--color-fire-red-8);
|
|
36
39
|
--checkbox-color-border--error: var(--color-fire-red);
|
|
40
|
+
// Error Hover state
|
|
41
|
+
--checkbox-color-gfx--error--hover: var(--color-fire-red);
|
|
42
|
+
--checkbox-color-background--error--hover: var(--color-fire-red-8);
|
|
43
|
+
--checkbox-color-border--error--hover: var(--color-fire-red);
|
|
44
|
+
// Indeterminate state
|
|
45
|
+
--checkbox-color-background-indeterminate: var(--color-white);
|
|
46
|
+
--checkbox-color-gfx-indeterminate: var(--color-sea-green);
|
|
47
|
+
// Indeterminate Active state
|
|
48
|
+
--checkbox-color-background-indeterminate--active: var(--color-white);
|
|
49
|
+
--checkbox-color-border-indeterminate--active: var(
|
|
50
|
+
--color-mint-green-50
|
|
51
|
+
);
|
|
52
|
+
--checkbox-color-gfx-indeterminate--active: var(--color-mint-green-50);
|
|
53
|
+
// Indeterminate Error state
|
|
54
|
+
--checkbox-color-gfx-indeterminate--error: var(--color-fire-red);
|
|
55
|
+
// Indeterminate shape
|
|
56
|
+
--checkbox-gfx-height__indeterminate: 0.625rem;
|
|
57
|
+
--checkbox-gfx-width__indeterminate: 0.625rem;
|
|
58
|
+
--checkbox-gfx-height__indeterminate--large: 0.875rem;
|
|
59
|
+
--checkbox-gfx-width__indeterminate--large: 0.875rem;
|
|
37
60
|
}
|
|
@@ -2,6 +2,7 @@ import React from 'react';
|
|
|
2
2
|
import { SpaceProps } from '../space/Space';
|
|
3
3
|
import type { MediaQueryBreakpoints } from '../../shared/MediaQueryUtils';
|
|
4
4
|
import type { UseMediaQueries } from '../../shared/useMedia';
|
|
5
|
+
type Gap = false | 'xx-small' | 'x-small' | 'small' | 'medium' | 'large' | 'x-large' | 'xx-large';
|
|
5
6
|
export type BasicProps = {
|
|
6
7
|
direction?: 'horizontal' | 'vertical';
|
|
7
8
|
wrap?: boolean;
|
|
@@ -14,7 +15,9 @@ export type BasicProps = {
|
|
|
14
15
|
/** When "line-framed" is used, a line will be shown between items and above the first and below the last item */
|
|
15
16
|
divider?: 'space' | 'line' | 'line-framed';
|
|
16
17
|
/** Spacing between items inside */
|
|
17
|
-
|
|
18
|
+
gap?: Gap;
|
|
19
|
+
/** @deprecated Use `gap` instead */
|
|
20
|
+
spacing?: Gap;
|
|
18
21
|
breakpoints?: MediaQueryBreakpoints;
|
|
19
22
|
queries?: UseMediaQueries;
|
|
20
23
|
};
|
|
@@ -3,7 +3,7 @@
|
|
|
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 = ["className", "style", "children", "element", "direction", "wrap", "sizeCount", "rowGap", "justify", "align", "alignSelf", "divider", "spacing", "breakpoints", "queries"];
|
|
6
|
+
const _excluded = ["className", "style", "children", "element", "direction", "wrap", "sizeCount", "rowGap", "justify", "align", "alignSelf", "divider", "gap", "spacing", "breakpoints", "queries"];
|
|
7
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; }
|
|
8
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; }
|
|
9
9
|
import React, { useCallback } from 'react';
|
|
@@ -12,11 +12,12 @@ import Space from '../space/Space';
|
|
|
12
12
|
import { Hr } from '../../elements';
|
|
13
13
|
import useMedia from '../../shared/useMedia';
|
|
14
14
|
import { getSpaceValue, isHeadingElement, renderWithSpacing } from './utils';
|
|
15
|
-
const propNames = ['direction', 'wrap', 'justify', 'align', 'divider', 'spacing'];
|
|
15
|
+
const propNames = ['direction', 'wrap', 'justify', 'align', 'divider', 'spacing', 'gap'];
|
|
16
16
|
export function pickFlexContainerProps(props, defaults = {}, skip = []) {
|
|
17
17
|
return _objectSpread(_objectSpread({}, defaults), Object.fromEntries(Object.entries(props !== null && props !== void 0 ? props : {}).filter(([key]) => propNames.includes(key) && !skip.includes(key))));
|
|
18
18
|
}
|
|
19
19
|
function FlexContainer(props) {
|
|
20
|
+
var _ref;
|
|
20
21
|
const {
|
|
21
22
|
className,
|
|
22
23
|
style,
|
|
@@ -30,11 +31,13 @@ function FlexContainer(props) {
|
|
|
30
31
|
align = 'flex-start',
|
|
31
32
|
alignSelf,
|
|
32
33
|
divider = 'space',
|
|
33
|
-
|
|
34
|
+
gap,
|
|
35
|
+
spacing: spacingProp,
|
|
34
36
|
breakpoints,
|
|
35
37
|
queries
|
|
36
38
|
} = props,
|
|
37
39
|
rest = _objectWithoutProperties(props, _excluded);
|
|
40
|
+
const spacing = (_ref = spacingProp !== null && spacingProp !== void 0 ? spacingProp : gap) !== null && _ref !== void 0 ? _ref : 'small';
|
|
38
41
|
const childrenArray = wrapChildren(props, children);
|
|
39
42
|
const hasHeading = childrenArray.some((child, i) => {
|
|
40
43
|
const previousChild = childrenArray === null || childrenArray === void 0 ? void 0 : childrenArray[i - 1];
|
|
@@ -62,9 +65,9 @@ function FlexContainer(props) {
|
|
|
62
65
|
const endSpacing = 0;
|
|
63
66
|
let startSpacing = null;
|
|
64
67
|
if (!isHeading && (divider === 'line' && !isFirst || divider === 'line-framed')) {
|
|
65
|
-
var _getSpaceValue, _getSpaceValue2;
|
|
68
|
+
var _getSpaceValue, _ref2, _getSpaceValue2;
|
|
66
69
|
const spaceAboveLine = (_getSpaceValue = getSpaceValue(end, previousChild)) !== null && _getSpaceValue !== void 0 ? _getSpaceValue : spacing;
|
|
67
|
-
startSpacing = (_getSpaceValue2 = getSpaceValue(start, child)) !== null && _getSpaceValue2 !== void 0 ? _getSpaceValue2 : spacing;
|
|
70
|
+
startSpacing = (_ref2 = (_getSpaceValue2 = getSpaceValue(start, child)) !== null && _getSpaceValue2 !== void 0 ? _getSpaceValue2 : gap) !== null && _ref2 !== void 0 ? _ref2 : spacing;
|
|
68
71
|
return React.createElement(React.Fragment, {
|
|
69
72
|
key: `element-${i}`
|
|
70
73
|
}, React.createElement(Hr, {
|
|
@@ -85,8 +88,8 @@ function FlexContainer(props) {
|
|
|
85
88
|
if (isFirst && direction !== 'horizontal') {
|
|
86
89
|
startSpacing = 0;
|
|
87
90
|
} else {
|
|
88
|
-
var
|
|
89
|
-
startSpacing = (
|
|
91
|
+
var _ref3, _ref4, _getSpaceValue3;
|
|
92
|
+
startSpacing = (_ref3 = (_ref4 = (_getSpaceValue3 = getSpaceValue(start, child)) !== null && _getSpaceValue3 !== void 0 ? _getSpaceValue3 : getSpaceValue(end, previousChild)) !== null && _ref4 !== void 0 ? _ref4 : gap) !== null && _ref3 !== void 0 ? _ref3 : spacing;
|
|
90
93
|
}
|
|
91
94
|
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) {
|
|
92
95
|
startSpacing = 0;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Container.js","names":["React","useCallback","classnames","Space","Hr","useMedia","getSpaceValue","isHeadingElement","renderWithSpacing","propNames","pickFlexContainerProps","props","defaults","skip","_objectSpread","Object","fromEntries","entries","filter","key","includes","FlexContainer","className","style","children","element","direction","wrap","sizeCount","rowGap","justify","align","alignSelf","divider","spacing","breakpoints","queries","rest","_objectWithoutProperties","_excluded","childrenArray","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","Fragment","top","space","_ref","_getSpaceValue3","isValidElement","type","n","getRowGapClass","cn","_extends","Children","toArray","cloneElement","_supportsSpacingProps"],"sources":["../../../../src/components/flex/Container.tsx"],"sourcesContent":["import React, { 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\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 spacing?:\n | false\n | 'xx-small'\n | 'x-small'\n | 'small'\n | 'medium'\n | 'large'\n | 'x-large'\n | 'xx-large'\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]\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 spacing = 'small',\n breakpoints,\n queries,\n ...rest\n } = props\n\n const childrenArray = 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\nFlexContainer._supportsSpacingProps = true\n\nexport default FlexContainer\n"],"mappings":";;;;;;;;AAAA,OAAOA,KAAK,IAAIC,WAAW,QAAQ,OAAO;AAC1C,OAAOC,UAAU,MAAM,YAAY;AACnC,OAAOC,KAAK,MAAsB,gBAAgB;AAClD,SAASC,EAAE,QAAQ,gBAAgB;AACnC,OAAOC,QAAQ,MAAM,uBAAuB;AAC5C,SACEC,aAAa,EACbC,gBAAgB,EAChBC,iBAAiB,QACZ,SAAS;AA6ChB,MAAMC,SAA6B,GAAG,CACpC,WAAW,EACX,MAAM,EACN,SAAS,EACT,OAAO,EACP,SAAS,EACT,SAAS,CACV;AAED,OAAO,SAASC,sBAAsBA,CACpCC,KAAQ,EACRC,QAAwB,GAAG,CAAC,CAAC,EAC7BC,IAAwB,GAAG,EAAE,EACJ;EACzB,OAAAC,aAAA,CAAAA,aAAA,KACKF,QAAQ,GACRG,MAAM,CAACC,WAAW,CACnBD,MAAM,CAACE,OAAO,CAACN,KAAK,aAALA,KAAK,cAALA,KAAK,GAAI,CAAC,CAAC,CAAC,CAACO,MAAM,CAChC,CAAC,CAACC,GAAG,CAAC,KACJV,SAAS,CAACW,QAAQ,CAACD,GAAkB,CAAC,IACtC,CAACN,IAAI,CAACO,QAAQ,CAACD,GAAkB,CACrC,CACF,CAAC;AAEL;AAEA,SAASE,aAAaA,CAACV,KAAY,EAAE;EACnC,MAAM;MACJW,SAAS;MACTC,KAAK;MACLC,QAAQ;MACRC,OAAO,GAAG,KAAK;MACfC,SAAS,GAAG,YAAY;MACxBC,IAAI,GAAG,IAAI;MACXC,SAAS,GAAG,EAAE;MACdC,MAAM;MACNC,OAAO,GAAG,YAAY;MACtBC,KAAK,GAAG,YAAY;MACpBC,SAAS;MACTC,OAAO,GAAG,OAAO;MACjBC,OAAO,GAAG,OAAO;MACjBC,WAAW;MACXC;IAEF,CAAC,GAAGzB,KAAK;IADJ0B,IAAI,GAAAC,wBAAA,CACL3B,KAAK,EAAA4B,SAAA;EAET,MAAMC,aAAa,GAAGC,YAAY,CAAC9B,KAAK,EAAEa,QAAQ,CAAC;EACnD,MAAMkB,UAAU,GAAGF,aAAa,CAACG,IAAI,CAAC,CAACC,KAAK,EAAEC,CAAC,KAAK;IAClD,MAAMC,aAAa,GAAGN,aAAa,aAAbA,aAAa,uBAAbA,aAAa,CAAGK,CAAC,GAAG,CAAC,CAAC;IAC5C,OACEtC,gBAAgB,CAACqC,KAAK,CAAC,IAAKC,CAAC,GAAG,CAAC,IAAItC,gBAAgB,CAACuC,aAAa,CAAE;EAEzE,CAAC,CAAC;EACF,MAAMC,WAAW,GACf,CAACL,UAAU,IACXhB,SAAS,KAAK,YAAY,IAC1Bc,aAAa,CAACG,IAAI,CAAEC,KAAK;IAAA,IAAAI,YAAA;IAAA,QAAAA,YAAA,GAAKJ,KAAK,CAAC,OAAO,CAAC,cAAAI,YAAA,uBAAdA,YAAA,CAAgBC,IAAI;EAAA,EAAC;EAErD,MAAM;IAAE9B,GAAG,EAAE+B;EAAS,CAAC,GAAG7C,QAAQ,CAAC;IACjC8C,QAAQ,EAAE,CAACJ,WAAW;IACtBZ,WAAW;IACXC;EACF,CAAC,CAAC;EAEF,MAAMgB,OAAO,GAAGZ,aAAa,CAACa,GAAG,CAAC,CAACT,KAAK,EAAEC,CAAC,KAAK;IAAA,IAAAS,mBAAA;IAI9C,MAAMC,OAAO,GAAGV,CAAC,KAAK,CAAC;IACvB,MAAMW,MAAM,GAAGX,CAAC,IAAIL,aAAa,CAACiB,MAAM,GAAG,CAAC;IAC5C,MAAMX,aAAa,GAAGN,aAAa,aAAbA,aAAa,uBAAbA,aAAa,CAAGK,CAAC,GAAG,CAAC,CAAC;IAC5C,MAAMa,SAAS,GAAGhB,UAAU,IAAInC,gBAAgB,CAACuC,aAAa,CAAC;IAI/D,MAAMa,KAAY,GAAGjC,SAAS,KAAK,YAAY,GAAG,MAAM,GAAG,KAAK;IAChE,MAAMkC,GAAQ,GAAGlC,SAAS,KAAK,YAAY,GAAG,OAAO,GAAG,QAAQ;IAGhE,MAAMmC,UAAU,GAAG,CAAC;IACpB,IAAIC,YAAY,GAAG,IAAI;IAEvB,IAEE,CAACJ,SAAS,KACRzB,OAAO,KAAK,MAAM,IAAI,CAACsB,OAAO,IAAKtB,OAAO,KAAK,aAAa,CAAC,EAC/D;MAAA,IAAA8B,cAAA,EAAAC,eAAA;MACA,MAAMC,cAAc,IAAAF,cAAA,GAAGzD,aAAa,CAACsD,GAAG,EAAEd,aAAa,CAAC,cAAAiB,cAAA,cAAAA,cAAA,GAAI7B,OAAO;MACnE4B,YAAY,IAAAE,eAAA,GAAI1D,aAAa,CAACqD,KAAK,EAAEf,KAAK,CAAC,cAAAoB,eAAA,cAAAA,eAAA,GAAI9B,OAAqB;MAEpE,OACElC,KAAA,CAAAkE,aAAA,CAAClE,KAAK,CAACmE,QAAQ;QAAChD,GAAG,EAAG,WAAU0B,CAAE;MAAE,GAClC7C,KAAA,CAAAkE,aAAA,CAAC9D,EAAE;QACDgE,GAAG,EAAE,CAACb,OAAO,GAAGU,cAAc,GAAG,CAAE;QACnCI,KAAK,EAAE,CAAE;QACT/C,SAAS,EAAC;MAAwB,CACnC,CAAC,EAEDd,iBAAiB,CAACoC,KAAK,EAAE;QACxByB,KAAK,EAAE;UAAE,CAACV,KAAK,GAAGG,YAAY;UAAE,CAACF,GAAG,GAAGC;QAAW;MACpD,CAAC,CAAC,EAED5B,OAAO,KAAK,aAAa,IAAIuB,MAAM,IAClCxD,KAAA,CAAAkE,aAAA,CAAC9D,EAAE;QACDgE,GAAG,EAAEH,cAAe;QACpBI,KAAK,EAAE,CAAE;QACT/C,SAAS,EAAC;MAAwB,CACnC,CAEW,CAAC;IAErB;IAGA,IAAIiC,OAAO,IAAI7B,SAAS,KAAK,YAAY,EAAE;MACzCoC,YAAY,GAAG,CAAC;IAClB,CAAC,MAAM;MAAA,IAAAQ,IAAA,EAAAC,eAAA;MAELT,YAAY,IAAAQ,IAAA,IAAAC,eAAA,GACVjE,aAAa,CAACqD,KAAK,EAAEf,KAAK,CAAC,cAAA2B,eAAA,cAAAA,eAAA,GAC3BjE,aAAa,CAACsD,GAAG,EAAEd,aAAa,CAAC,cAAAwB,IAAA,cAAAA,IAAA,GACjCpC,OAAO;IACX;IAEA,IACElC,KAAK,CAACwE,cAAc,CAAC1B,aAAa,CAAC,IACnC,CAAAA,aAAa,aAAbA,aAAa,wBAAAQ,mBAAA,GAAbR,aAAa,CAAE2B,IAAI,cAAAnB,mBAAA,uBAAnBA,mBAAA,CAAsB,uBAAuB,CAAC,MAAK,KAAK,EACxD;MACAQ,YAAY,GAAG,CAAC;IAClB;IAEA,MAAMO,KAAK,GACT3C,SAAS,KAAK,YAAY,GACtB;MAAE,CAACiC,KAAK,GAAGE,UAAU;MAAE,CAACD,GAAG,GAAGE;IAAa,CAAC,GAC5C;MAAE,CAACH,KAAK,GAAGG,YAAY;MAAE,CAACF,GAAG,GAAGC;IAAW,CAAC;IAElD,OAAOrD,iBAAiB,CAACoC,KAAK,EAAE;MAC9BzB,GAAG,EAAE,CAAAyB,KAAK,aAALA,KAAK,uBAALA,KAAK,CAAG,KAAK,CAAC,KAAK,WAAUC,CAAE,EAAC;MACrCwB;IACF,CAAC,CAAC;EACJ,CAAC,CAAC;EAEF,MAAMK,CAAC,GAAG,oBAAoB;EAC9B,MAAMC,cAAc,GAAG1E,WAAW,CAAC,MAAM;IACvC,IAAI4B,MAAM,KAAK,KAAK,EAAE;MACpB,OAAQ,GAAE6C,CAAE,eAAc;IAC5B;IAEA,IACE7C,MAAM,KAAK,IAAI,IACd,CAACA,MAAM,IAAIF,IAAI,IAAID,SAAS,KAAK,YAAa,EAC/C;MACA,OAAQ,GAAEgD,CAAE,iBAAgB;IAC9B;IAEA,IAAI3B,WAAW,IAAIb,OAAO,EAAE;MAC1B,OAAQ,GAAEwC,CAAE,aAAYxC,OAAQ,EAAC;IACnC;IAEA,IAAIL,MAAM,EAAE;MACV,OAAQ,GAAE6C,CAAE,aAAY7C,MAAO,EAAC;IAClC;EACF,CAAC,EAAE,CAACH,SAAS,EAAEqB,WAAW,EAAElB,MAAM,EAAEK,OAAO,EAAEP,IAAI,CAAC,CAAC;EAEnD,MAAMiD,EAAE,GAAG1E,UAAU,CACnB,oBAAoB,EAOpByE,cAAc,CAAC,CAAC,EAGhBrD,SAAS,EATTI,SAAS,IAAK,GAAEgD,CAAE,eAAchD,SAAU,EAAC,EAC3CI,OAAO,IAAK,GAAE4C,CAAE,aAAY5C,OAAQ,EAAC,EACrCC,KAAK,IAAK,GAAE2C,CAAE,WAAU3C,KAAM,EAAC,EAC/BC,SAAS,IAAK,GAAE0C,CAAE,gBAAe1C,SAAU,EAAC,EAC5CE,OAAO,IAAK,GAAEwC,CAAE,aAAYxC,OAAQ,EAAC,EACrCP,IAAI,IAAK,GAAE+C,CAAE,QAAO,EAEpB3B,WAAW,IAAK,GAAE2B,CAAE,YAAW,EAC/BzC,OAAO,IAAK,GAAEyC,CAAE,aAAYzC,OAAQ,EAEtC,CAAC;EAED,OACEjC,KAAA,CAAAkE,aAAA,CAAC/D,KAAK,EAAA0E,QAAA;IACJpD,OAAO,EAAEA,OAAQ;IACjBH,SAAS,EAAEsD,EAAG;IACd,kBAAgB1B,QAAS;IACzB3B,KAAK,EACHwB,WAAW,GAAAjC,aAAA;MACJ,aAAa,EAAEc;IAAS,GAAKL,KAAK,IACrCA;EACL,GACGc,IAAI,GAEPe,OACI,CAAC;AAEZ;AAEA,SAASX,YAAYA,CAAC9B,KAAY,EAAEa,QAAyB,EAAE;EAC7D,OAAOxB,KAAK,CAAC8E,QAAQ,CAACC,OAAO,CAACvD,QAAQ,CAAC,CAAC6B,GAAG,CAAET,KAAK,IAAK;IACrD,IACE5C,KAAK,CAACwE,cAAc,CAAC5B,KAAK,CAAC,IAC3BA,KAAK,CAAC6B,IAAI,CAAC,uBAAuB,CAAC,KAAK,UAAU,EAClD;MACA,OAAOzE,KAAK,CAACgF,YAAY,CACvBpC,KAAK,EACLA,KAAK,CAACjC,KAAK,EACXX,KAAA,CAAAkE,aAAA,CAAC7C,aAAa,EAAKV,KAAK,EAAGiC,KAAK,CAACjC,KAAK,CAACa,QAAwB,CACjE,CAAC;IACH;IAEA,OAAOoB,KAAK;EACd,CAAC,CAAC;AACJ;AAEAvB,aAAa,CAAC4D,qBAAqB,GAAG,IAAI;AAE1C,eAAe5D,aAAa"}
|
|
1
|
+
{"version":3,"file":"Container.js","names":["React","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","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","_ref2","_getSpaceValue2","spaceAboveLine","createElement","Fragment","top","space","_ref3","_ref4","_getSpaceValue3","isValidElement","type","n","getRowGapClass","cn","_extends","Children","toArray","cloneElement","_supportsSpacingProps"],"sources":["../../../../src/components/flex/Container.tsx"],"sourcesContent":["import React, { 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\n const childrenArray = 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) ??\n gap ??\n 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 gap ??\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\nFlexContainer._supportsSpacingProps = true\n\nexport default FlexContainer\n"],"mappings":"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"}
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import _extends from "@babel/runtime/helpers/esm/extends";
|
|
2
2
|
import _objectWithoutProperties from "@babel/runtime/helpers/esm/objectWithoutProperties";
|
|
3
|
-
const _excluded = ["className", "direction", "alignSelf", "align", "
|
|
3
|
+
const _excluded = ["className", "direction", "alignSelf", "align", "gap", "children"];
|
|
4
4
|
import React from 'react';
|
|
5
5
|
import classnames from 'classnames';
|
|
6
6
|
import Container from './Container';
|
|
@@ -10,7 +10,7 @@ function Stack(props) {
|
|
|
10
10
|
direction = 'vertical',
|
|
11
11
|
alignSelf = 'stretch',
|
|
12
12
|
align = 'stretch',
|
|
13
|
-
|
|
13
|
+
gap = props.divider !== 'line' && props.divider !== 'line-framed' ? 'medium' : 'small',
|
|
14
14
|
children
|
|
15
15
|
} = props,
|
|
16
16
|
rest = _objectWithoutProperties(props, _excluded);
|
|
@@ -20,7 +20,7 @@ function Stack(props) {
|
|
|
20
20
|
direction: direction,
|
|
21
21
|
alignSelf: alignSelf,
|
|
22
22
|
align: align,
|
|
23
|
-
|
|
23
|
+
gap: gap
|
|
24
24
|
}, rest), children);
|
|
25
25
|
}
|
|
26
26
|
Stack._supportsSpacingProps = true;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Stack.js","names":["React","classnames","Container","Stack","props","className","direction","alignSelf","align","
|
|
1
|
+
{"version":3,"file":"Stack.js","names":["React","classnames","Container","Stack","props","className","direction","alignSelf","align","gap","divider","children","rest","_objectWithoutProperties","_excluded","createElement","_extends","element","_supportsSpacingProps"],"sources":["../../../../src/components/flex/Stack.tsx"],"sourcesContent":["import React from 'react'\nimport classnames from 'classnames'\nimport Container from './Container'\nimport type { Props as FlexContainerProps } from './Container'\n\nexport type Props = FlexContainerProps\n\nfunction Stack(props: Props) {\n const {\n className,\n direction = 'vertical',\n alignSelf = 'stretch',\n align = 'stretch',\n gap = props.divider !== 'line' && props.divider !== 'line-framed'\n ? 'medium'\n : 'small',\n children,\n ...rest\n } = props\n\n return (\n <Container\n element=\"section\"\n className={classnames('dnb-flex-stack', className)}\n direction={direction}\n alignSelf={alignSelf}\n align={align}\n gap={gap}\n {...rest}\n >\n {children}\n </Container>\n )\n}\n\nStack._supportsSpacingProps = true\n\nexport default Stack\n"],"mappings":";;;AAAA,OAAOA,KAAK,MAAM,OAAO;AACzB,OAAOC,UAAU,MAAM,YAAY;AACnC,OAAOC,SAAS,MAAM,aAAa;AAKnC,SAASC,KAAKA,CAACC,KAAY,EAAE;EAC3B,MAAM;MACJC,SAAS;MACTC,SAAS,GAAG,UAAU;MACtBC,SAAS,GAAG,SAAS;MACrBC,KAAK,GAAG,SAAS;MACjBC,GAAG,GAAGL,KAAK,CAACM,OAAO,KAAK,MAAM,IAAIN,KAAK,CAACM,OAAO,KAAK,aAAa,GAC7D,QAAQ,GACR,OAAO;MACXC;IAEF,CAAC,GAAGP,KAAK;IADJQ,IAAI,GAAAC,wBAAA,CACLT,KAAK,EAAAU,SAAA;EAET,OACEd,KAAA,CAAAe,aAAA,CAACb,SAAS,EAAAc,QAAA;IACRC,OAAO,EAAC,SAAS;IACjBZ,SAAS,EAAEJ,UAAU,CAAC,gBAAgB,EAAEI,SAAS,CAAE;IACnDC,SAAS,EAAEA,SAAU;IACrBC,SAAS,EAAEA,SAAU;IACrBC,KAAK,EAAEA,KAAM;IACbC,GAAG,EAAEA;EAAI,GACLG,IAAI,GAEPD,QACQ,CAAC;AAEhB;AAEAR,KAAK,CAACe,qBAAqB,GAAG,IAAI;AAElC,eAAef,KAAK"}
|
|
@@ -3,16 +3,16 @@ function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (O
|
|
|
3
3
|
function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys(Object(source), !0).forEach(function (key) { _defineProperty(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; }
|
|
4
4
|
import React, { Fragment } from 'react';
|
|
5
5
|
import Space from '../space/Space';
|
|
6
|
-
import { removeSpaceProps } from '../space/SpacingUtils';
|
|
6
|
+
import { isValidSpaceProp, removeSpaceProps } from '../space/SpacingUtils';
|
|
7
7
|
export const omitSpacingProps = removeSpaceProps;
|
|
8
8
|
export function pickSpacingProps(props) {
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
9
|
+
const obj = {};
|
|
10
|
+
for (const key in props) {
|
|
11
|
+
if (isValidSpaceProp(key) && typeof props[key] !== 'undefined') {
|
|
12
|
+
obj[key] = props[key];
|
|
13
|
+
}
|
|
14
|
+
}
|
|
15
|
+
return obj;
|
|
16
16
|
}
|
|
17
17
|
export function getSpaceValue(type, element) {
|
|
18
18
|
var _element$props$type, _element$props, _element$props2;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"utils.js","names":["React","Fragment","Space","removeSpaceProps","omitSpacingProps","pickSpacingProps","props","
|
|
1
|
+
{"version":3,"file":"utils.js","names":["React","Fragment","Space","isValidSpaceProp","removeSpaceProps","omitSpacingProps","pickSpacingProps","props","obj","key","getSpaceValue","type","element","_element$props$type","_element$props","_element$props2","isValidElement","space","undefined","isHeadingElement","_element$type","getSpaceVariant","_element$type2","_element$props3","check","keys","some","renderWithSpacing","spaceProps","variant","Children","toArray","map","child","_child$props","children","i","cloneElement","_objectSpread","wrapWithSpace","createElement"],"sources":["../../../../src/components/flex/utils.tsx"],"sourcesContent":["import React, { Fragment } from 'react'\nimport { SpaceType, SpacingProps } from '../../shared/types'\nimport Space from '../space/Space'\nimport { isValidSpaceProp, removeSpaceProps } from '../space/SpacingUtils'\nimport { End, Start } from './types'\n\nexport const omitSpacingProps = removeSpaceProps\n\n/**\n * Picks the spacing props from the given props object.\n * @template Props - The type of the props object.\n * @param {Props} props - The props object.\n * @returns {SpacingProps} - The spacing props object.\n */\nexport function pickSpacingProps<Props extends SpacingProps>(\n props: Props\n): SpacingProps {\n const obj: SpacingProps = {}\n for (const key in props as SpacingProps) {\n if (isValidSpaceProp(key) && typeof props[key] !== 'undefined') {\n obj[key] = props[key]\n }\n }\n return obj\n}\n\n/**\n * Retrieves the space value of a Flex component based on the specified type and element.\n * @param type - The type of space value to retrieve (Start or End).\n * @param element - The React element to extract the space value from.\n * @returns The space value of the element, or undefined if it cannot be determined.\n */\nexport function getSpaceValue(\n type: Start | End,\n element: React.ReactNode\n): SpaceType | undefined {\n if (!React.isValidElement(element)) {\n return\n }\n\n return (\n element.props?.[type] ??\n (typeof element.props?.space === 'object'\n ? element.props.space[type]\n : undefined)\n )\n}\n\n/**\n * Checks if the provided element is a heading element.\n * @param element - The element to check.\n * @returns `true` if the element is a heading element, `false` otherwise.\n */\nexport function isHeadingElement(\n element: React.ReactNode & { _isHeadingElement?: boolean }\n): boolean {\n return (\n React.isValidElement(element) &&\n element?.type?.['_isHeadingElement'] === true\n )\n}\n\n/**\n * Determines the spacing variant of a React node element.\n * @param element - The React node element to check.\n * @returns The spacing variant (true, false or \"children\") of the element, or undefined if it does not support spacing props.\n */\nexport function getSpaceVariant(element: React.ReactNode) {\n if (React.isValidElement(element)) {\n if (element?.type === Fragment) {\n return 'children'\n }\n\n const check = element?.type?.['_supportsSpacingProps']\n if (typeof check !== 'undefined') {\n return check\n }\n\n const keys = ['space', 'top', 'right', 'bottom', 'left']\n const props = element?.props ?? {}\n if (keys.some((key) => key in props)) {\n return true\n }\n }\n\n return undefined\n}\n\n/**\n * Renders an element with spacing props applied.\n * If the element is a component that accepts spacing props, the props are directly applied.\n * If the element is a component that has children and accepts spacing props, the props are applied to the children.\n * If the element does not accept spacing props, the element is returned as is.\n *\n * @param element - The element to render with spacing props.\n * @param spaceProps - The spacing props to apply.\n * @returns The rendered element with spacing props applied.\n */\nexport function renderWithSpacing(\n element: React.ReactNode,\n spaceProps: SpacingProps & { key?: string; className?: string }\n) {\n const variant = getSpaceVariant(element)\n\n if (variant === false) {\n return element\n }\n\n if (variant === 'children') {\n return React.Children.toArray(element).map(\n (child: React.ReactElement) => {\n const children = child?.props?.children\n\n return React.Children.toArray(children).map((element, i) => {\n return React.cloneElement(\n child,\n { key: i, ...child?.props },\n wrapWithSpace({ element, spaceProps })\n )\n })\n }\n )\n }\n\n return wrapWithSpace({ element, spaceProps, variant })\n}\n\nfunction wrapWithSpace({ element, spaceProps, variant = null }) {\n return variant ?? getSpaceVariant(element) === true ? (\n React.cloneElement(element as React.ReactElement, spaceProps)\n ) : (\n <Space {...spaceProps}>{element}</Space>\n )\n}\n"],"mappings":"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"}
|
|
@@ -150,7 +150,12 @@ export default class HeightAnimation {
|
|
|
150
150
|
}
|
|
151
151
|
clonedElem.style.position = 'absolute';
|
|
152
152
|
(_this$elem$parentNode = this.elem.parentNode) === null || _this$elem$parentNode === void 0 ? void 0 : _this$elem$parentNode.insertBefore(clonedElem, this.elem.nextSibling);
|
|
153
|
-
const
|
|
153
|
+
const elemWidth = this.elem.clientWidth;
|
|
154
|
+
const clonedWidth = clonedElem.clientWidth || parseFloat(clonedElem.getAttribute('data-width')) || 0;
|
|
155
|
+
if (clonedWidth > elemWidth) {
|
|
156
|
+
clonedElem.style.width = `${elemWidth}px`;
|
|
157
|
+
}
|
|
158
|
+
const height = clonedElem.clientHeight || parseFloat(clonedElem.getAttribute('data-height')) || null;
|
|
154
159
|
(_clonedElem$parentNod = clonedElem.parentNode) === null || _clonedElem$parentNod === void 0 ? void 0 : _clonedElem$parentNod.removeChild(clonedElem);
|
|
155
160
|
if (height) {
|
|
156
161
|
this.__currentHeight = height;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"HeightAnimationInstance.js","names":["HeightAnimation","constructor","opts","_defineProperty","animate","visibility","opacity","height","isInBrowser","window","setState","setOptions","callAnimationStart","startTime","Date","now","firstTime","onStartStack","forEach","fn","state","callAnimationEnd","isAnimating","__currentHeight","removeEndEvents","onEndStack","addEndEvent","listener","_this$elem","_this$elem$addEventLi","handleTransitionEnd","e","canFinish","delay","duration","timeouts","push","setTimeout","events","elem","addEventListener","call","_this$elem2","_this$elem2$removeEve","removeEventListener","setElement","_this$elem3","_globalThis$animation","document","createElement","String","nodeName","toLowerCase","parentElement","globalThis","animationDuration","parseFloat","getComputedStyle","transitionDuration","Object","freeze","_objectSpread","getOptions","remove","stop","undefined","setAsOpen","setAsClosed","getHeight","_this$elem4","clientHeight","getUnknownHeight","_this$elem$parentNode","_clonedElem$parentNod","clonedElem","cloneNode","inputs","querySelectorAll","input","removeAttribute","key","firstPaintStyle","style","position","parentNode","insertBefore","nextSibling","getAttribute","removeChild","onStart","onEnd","start","fromHeight","toHeight","requestAnimationFrame","reqId1","reqId2","id","clearTimeout","cancelAnimationFrame","open","shouldBypassAnimation","target","currentTarget","overflowY","readjust","close","adjustTo","endHeight","newHeight","_globalThis$animation2","Boolean","_globalThis$bypassTim","IS_TEST","bypassTime"],"sources":["../../../../src/components/height-animation/HeightAnimationInstance.ts"],"sourcesContent":["export type HeightAnimationOnStartStates =\n | 'opening'\n | 'closing'\n | 'adjusting'\nexport type HeightAnimationOnEndStates = 'opened' | 'closed' | 'adjusted'\nexport type HeightAnimationStates =\n | HeightAnimationOnStartStates\n | HeightAnimationOnEndStates\n | 'init'\nexport type HeightAnimationOptions = {\n animate?: boolean\n}\nexport type HeightAnimationOnStartCallback = (\n state: HeightAnimationStates\n) => void\nexport type HeightAnimationOnEndCallback = (\n state: HeightAnimationStates\n) => void\nexport type HeightAnimationOnStartStack =\n Array<HeightAnimationOnStartCallback>\nexport type HeightAnimationOnEndStack = Array<HeightAnimationOnEndCallback>\nexport type HeightAnimationEventListener = (e: Event) => void\nexport type HeightAnimationEvents = Array<HeightAnimationEventListener>\nexport type HeightAnimationElement = HTMLElement\nexport type HeightAnimationContainer = HTMLElement\nexport type HeightAnimationFromHeight = number\nexport type HeightAnimationToHeight = number\n\nexport default class HeightAnimation {\n private state: Readonly<HeightAnimationStates>\n isInBrowser: boolean\n onStartStack: HeightAnimationOnStartStack = []\n onEndStack: HeightAnimationOnEndStack = []\n events: HeightAnimationEvents = []\n opts: HeightAnimationOptions = { animate: true }\n elem: HeightAnimationElement\n reqId1: number\n reqId2: number\n resizeTimeout: NodeJS.Timeout\n timeouts: NodeJS.Timeout[] = []\n firstTime?: number = 0\n startTime?: number = 0\n duration?: number = 0\n isAnimating: boolean\n __currentHeight: number\n\n firstPaintStyle = {\n visibility: 'hidden',\n opacity: '0', // prevents before/after elements to be visible\n height: 'auto',\n }\n\n constructor(opts: HeightAnimationOptions = {}) {\n this.isInBrowser = typeof window !== 'undefined'\n this.setState('init')\n this.setOptions(opts)\n }\n\n callAnimationStart() {\n this.startTime = Date.now()\n if (!this.firstTime) {\n this.firstTime = this.startTime\n }\n if (this.onStartStack) {\n this.onStartStack.forEach((fn) => {\n if (typeof fn === 'function') {\n fn(this.state)\n }\n })\n }\n }\n callAnimationEnd() {\n this.isAnimating = false\n\n if (this.state !== 'opened') {\n delete this.__currentHeight\n }\n\n this.removeEndEvents()\n\n if (this.onEndStack) {\n this.onEndStack.forEach((fn) => {\n if (typeof fn === 'function') {\n fn(this.state)\n }\n })\n }\n }\n addEndEvent(listener: HeightAnimationEventListener) {\n this.removeEndEvents() // also, remove events on every open (but not on close!)\n\n const handleTransitionEnd = (e) => {\n if (this.canFinish()) {\n listener(e)\n } else {\n const delay = this.duration - (Date.now() - this.startTime)\n\n if (delay === -1) {\n listener(e)\n } else {\n this.timeouts.push(setTimeout(() => listener(e), delay))\n }\n }\n }\n\n this.events.push(handleTransitionEnd)\n this.elem?.addEventListener?.('transitionend', handleTransitionEnd)\n }\n removeEndEvents() {\n this.events.forEach((listener) => {\n this.elem?.removeEventListener?.('transitionend', listener)\n })\n this.events = []\n }\n\n // Public methods\n setElement(elem: HeightAnimationElement) {\n this.elem =\n elem ||\n (typeof document !== 'undefined' && document.createElement('div'))\n\n // TODO: remove when responsive tables are supported\n if (String(this.elem?.nodeName).toLowerCase() === 'td') {\n this.elem = this.elem.parentElement\n }\n\n this.duration =\n globalThis.animationDuration ??\n (parseFloat(window.getComputedStyle(this.elem).transitionDuration) *\n 1000 ||\n 400) // The default duration\n }\n setState(state: HeightAnimationStates) {\n this.state = Object.freeze(state)\n }\n setOptions(opts: HeightAnimationOptions) {\n this.opts = Object.freeze({ ...this.opts, ...opts })\n }\n getOptions() {\n return this.opts\n }\n remove() {\n this.stop()\n this.removeEndEvents()\n this.setState('init')\n this.isAnimating = false\n this.onEndStack = []\n this.onStartStack = []\n this.__currentHeight = undefined\n this.elem = undefined\n }\n setAsOpen() {\n if (this.state === 'opened') {\n return\n }\n this.setState('opening')\n this.callAnimationStart()\n this.setState('opened')\n this.callAnimationEnd()\n }\n setAsClosed() {\n if (this.state === 'closed') {\n return\n }\n this.setState('closing')\n this.callAnimationStart()\n this.setState('closed')\n this.callAnimationEnd()\n }\n getHeight() {\n return parseFloat(String(this.elem?.clientHeight)) || null\n }\n getUnknownHeight() {\n if (!this.elem) {\n return null\n }\n\n if (this.isAnimating && typeof this.__currentHeight !== 'undefined') {\n return this.__currentHeight\n }\n\n const clonedElem = this.elem.cloneNode(true) as HTMLElement\n const inputs = clonedElem.querySelectorAll('input')\n inputs.forEach((input) => {\n input.removeAttribute('name') // because type=\"radio\" will be else effected negatively\n input.removeAttribute('id') // don't put IDs twice in the DOM\n })\n\n // Hide the cloned element\n for (const key in this.firstPaintStyle) {\n clonedElem.style[key] = this.firstPaintStyle[key]\n }\n clonedElem.style.position = 'absolute' // not a part of the \"firstPaintStyle\"\n\n this.elem.parentNode?.insertBefore(clonedElem, this.elem.nextSibling)\n\n const height =\n parseFloat(String(clonedElem.clientHeight)) ||\n // data-height is used for mockup testing with \"mockHeight\"\n parseFloat(clonedElem.getAttribute('data-height')) ||\n null\n\n clonedElem.parentNode?.removeChild(clonedElem)\n\n if (height) {\n this.__currentHeight = height\n }\n\n return height\n }\n onStart(fn: HeightAnimationOnStartCallback) {\n this.onStartStack.push(fn)\n }\n onEnd(fn: HeightAnimationOnEndCallback) {\n this.onEndStack.push(fn)\n }\n start(\n fromHeight: HeightAnimationFromHeight,\n toHeight: HeightAnimationToHeight\n ) {\n if (\n !this.elem ||\n !(\n this.isInBrowser &&\n typeof window.requestAnimationFrame === 'function'\n )\n ) {\n return\n }\n\n const opts = this.getOptions()\n if (opts.animate === false) {\n return\n }\n\n this.stop()\n this.isAnimating = true\n\n // make the animation\n this.reqId1 = window.requestAnimationFrame(() => {\n if (!this.elem) {\n return\n }\n\n this.elem.style.height = `${fromHeight}px`\n\n this.reqId2 = window.requestAnimationFrame(() => {\n if (!this.elem) {\n return\n }\n\n this.elem.style.height = `${toHeight}px`\n })\n })\n }\n stop() {\n this.timeouts.forEach((id) => clearTimeout(id))\n this.timeouts = []\n\n if (\n this.isInBrowser &&\n typeof window.requestAnimationFrame === 'function'\n ) {\n window.cancelAnimationFrame(this.reqId1)\n window.cancelAnimationFrame(this.reqId2)\n }\n }\n open() {\n if (\n this.state === 'opened' ||\n this.state === 'opening' ||\n this.shouldBypassAnimation()\n ) {\n this.setAsOpen()\n return\n }\n\n this.setState('opening')\n this.callAnimationStart()\n\n const toHeight = this.getUnknownHeight()\n\n this.addEndEvent((e) => {\n if (e.target === e.currentTarget || !e.currentTarget) {\n if (this.elem) {\n this.elem.style.overflowY = ''\n }\n this.setState('opened')\n this.readjust()\n }\n })\n\n this.start(0, toHeight)\n }\n close() {\n if (\n this.state === 'closed' ||\n this.state === 'closing' ||\n this.shouldBypassAnimation()\n ) {\n this.setAsClosed()\n return\n }\n\n this.setState('closing')\n this.callAnimationStart()\n\n const fromHeight = this.getHeight()\n\n this.addEndEvent((e) => {\n if (e.target === e.currentTarget || !e.currentTarget) {\n if (this.elem) {\n this.elem.style.visibility = 'hidden'\n this.elem.style.overflowY = 'clip'\n }\n this.setState('closed')\n this.callAnimationEnd()\n }\n })\n\n this.start(fromHeight, 0)\n }\n adjustTo(\n fromHeight: HeightAnimationFromHeight = null,\n toHeight: HeightAnimationToHeight = null\n ) {\n const opts = this.getOptions()\n\n if (\n !this.elem ||\n opts.animate === false ||\n this.state === 'opening' ||\n this.state === 'closing'\n ) {\n return\n }\n\n if (fromHeight === 0 || fromHeight === null) {\n fromHeight = this.getHeight()\n }\n if (toHeight === null) {\n toHeight = this.getUnknownHeight()\n }\n\n if (fromHeight === toHeight) {\n this.setState('adjusted')\n return\n }\n\n this.setState('adjusting')\n this.callAnimationStart()\n\n this.addEndEvent((e) => {\n if (\n this.state === 'adjusting' &&\n (e.target === e.currentTarget || !e.currentTarget)\n ) {\n if (this.elem) {\n this.elem.style.height = 'auto'\n }\n this.setState('adjusted')\n this.callAnimationEnd()\n }\n })\n\n this.start(fromHeight, toHeight)\n }\n readjust() {\n const endHeight = this.getHeight()\n\n if (this.elem) {\n this.elem.style.height = 'auto'\n }\n\n this.__currentHeight = undefined\n const newHeight = this.getUnknownHeight()\n\n // If the height has changed during the animation, we need to adjust it\n if (endHeight !== newHeight) {\n this.adjustTo(endHeight, newHeight)\n } else {\n this.callAnimationEnd()\n }\n }\n /**\n * Determines whether the animation can finish.\n * Check for certain states and if the time passed is too short.\n * With a so short first state change, we do not call animation end.\n */\n canFinish() {\n return Boolean(\n this.startTime &&\n Date.now() - this.startTime >\n (globalThis.animationDuration ?? this.duration)\n )\n }\n /**\n * Determines whether the animation should be bypassed.\n * Check for certain states and if the time passed is too short to be correct.\n * With a very short first state change, we skip animation.\n */\n shouldBypassAnimation() {\n const opts = this.getOptions()\n\n if (!this.elem || opts.animate === false) {\n return true\n }\n\n if (\n this.isInBrowser &&\n (globalThis.IS_TEST || globalThis.bypassTime === -1)\n ) {\n return false\n }\n\n return Boolean(\n this.firstTime &&\n Date.now() - this.firstTime < (globalThis.bypassTime ?? 100)\n )\n }\n}\n"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"HeightAnimationInstance.js","names":["HeightAnimation","constructor","opts","_defineProperty","animate","visibility","opacity","height","isInBrowser","window","setState","setOptions","callAnimationStart","startTime","Date","now","firstTime","onStartStack","forEach","fn","state","callAnimationEnd","isAnimating","__currentHeight","removeEndEvents","onEndStack","addEndEvent","listener","_this$elem","_this$elem$addEventLi","handleTransitionEnd","e","canFinish","delay","duration","timeouts","push","setTimeout","events","elem","addEventListener","call","_this$elem2","_this$elem2$removeEve","removeEventListener","setElement","_this$elem3","_globalThis$animation","document","createElement","String","nodeName","toLowerCase","parentElement","globalThis","animationDuration","parseFloat","getComputedStyle","transitionDuration","Object","freeze","_objectSpread","getOptions","remove","stop","undefined","setAsOpen","setAsClosed","getHeight","_this$elem4","clientHeight","getUnknownHeight","_this$elem$parentNode","_clonedElem$parentNod","clonedElem","cloneNode","inputs","querySelectorAll","input","removeAttribute","key","firstPaintStyle","style","position","parentNode","insertBefore","nextSibling","elemWidth","clientWidth","clonedWidth","getAttribute","width","removeChild","onStart","onEnd","start","fromHeight","toHeight","requestAnimationFrame","reqId1","reqId2","id","clearTimeout","cancelAnimationFrame","open","shouldBypassAnimation","target","currentTarget","overflowY","readjust","close","adjustTo","endHeight","newHeight","_globalThis$animation2","Boolean","_globalThis$bypassTim","IS_TEST","bypassTime"],"sources":["../../../../src/components/height-animation/HeightAnimationInstance.ts"],"sourcesContent":["export type HeightAnimationOnStartStates =\n | 'opening'\n | 'closing'\n | 'adjusting'\nexport type HeightAnimationOnEndStates = 'opened' | 'closed' | 'adjusted'\nexport type HeightAnimationStates =\n | HeightAnimationOnStartStates\n | HeightAnimationOnEndStates\n | 'init'\nexport type HeightAnimationOptions = {\n animate?: boolean\n}\nexport type HeightAnimationOnStartCallback = (\n state: HeightAnimationStates\n) => void\nexport type HeightAnimationOnEndCallback = (\n state: HeightAnimationStates\n) => void\nexport type HeightAnimationOnStartStack =\n Array<HeightAnimationOnStartCallback>\nexport type HeightAnimationOnEndStack = Array<HeightAnimationOnEndCallback>\nexport type HeightAnimationEventListener = (e: Event) => void\nexport type HeightAnimationEvents = Array<HeightAnimationEventListener>\nexport type HeightAnimationElement = HTMLElement\nexport type HeightAnimationContainer = HTMLElement\nexport type HeightAnimationFromHeight = number\nexport type HeightAnimationToHeight = number\n\nexport default class HeightAnimation {\n private state: Readonly<HeightAnimationStates>\n isInBrowser: boolean\n onStartStack: HeightAnimationOnStartStack = []\n onEndStack: HeightAnimationOnEndStack = []\n events: HeightAnimationEvents = []\n opts: HeightAnimationOptions = { animate: true }\n elem: HeightAnimationElement\n reqId1: number\n reqId2: number\n resizeTimeout: NodeJS.Timeout\n timeouts: NodeJS.Timeout[] = []\n firstTime?: number = 0\n startTime?: number = 0\n duration?: number = 0\n isAnimating: boolean\n __currentHeight: number\n\n firstPaintStyle = {\n visibility: 'hidden',\n opacity: '0', // prevents before/after elements to be visible\n height: 'auto',\n }\n\n constructor(opts: HeightAnimationOptions = {}) {\n this.isInBrowser = typeof window !== 'undefined'\n this.setState('init')\n this.setOptions(opts)\n }\n\n callAnimationStart() {\n this.startTime = Date.now()\n if (!this.firstTime) {\n this.firstTime = this.startTime\n }\n if (this.onStartStack) {\n this.onStartStack.forEach((fn) => {\n if (typeof fn === 'function') {\n fn(this.state)\n }\n })\n }\n }\n callAnimationEnd() {\n this.isAnimating = false\n\n if (this.state !== 'opened') {\n delete this.__currentHeight\n }\n\n this.removeEndEvents()\n\n if (this.onEndStack) {\n this.onEndStack.forEach((fn) => {\n if (typeof fn === 'function') {\n fn(this.state)\n }\n })\n }\n }\n addEndEvent(listener: HeightAnimationEventListener) {\n this.removeEndEvents() // also, remove events on every open (but not on close!)\n\n const handleTransitionEnd = (e) => {\n if (this.canFinish()) {\n listener(e)\n } else {\n const delay = this.duration - (Date.now() - this.startTime)\n\n if (delay === -1) {\n listener(e)\n } else {\n this.timeouts.push(setTimeout(() => listener(e), delay))\n }\n }\n }\n\n this.events.push(handleTransitionEnd)\n this.elem?.addEventListener?.('transitionend', handleTransitionEnd)\n }\n removeEndEvents() {\n this.events.forEach((listener) => {\n this.elem?.removeEventListener?.('transitionend', listener)\n })\n this.events = []\n }\n\n // Public methods\n setElement(elem: HeightAnimationElement) {\n this.elem =\n elem ||\n (typeof document !== 'undefined' && document.createElement('div'))\n\n // TODO: remove when responsive tables are supported\n if (String(this.elem?.nodeName).toLowerCase() === 'td') {\n this.elem = this.elem.parentElement\n }\n\n this.duration =\n globalThis.animationDuration ??\n (parseFloat(window.getComputedStyle(this.elem).transitionDuration) *\n 1000 ||\n 400) // The default duration\n }\n setState(state: HeightAnimationStates) {\n this.state = Object.freeze(state)\n }\n setOptions(opts: HeightAnimationOptions) {\n this.opts = Object.freeze({ ...this.opts, ...opts })\n }\n getOptions() {\n return this.opts\n }\n remove() {\n this.stop()\n this.removeEndEvents()\n this.setState('init')\n this.isAnimating = false\n this.onEndStack = []\n this.onStartStack = []\n this.__currentHeight = undefined\n this.elem = undefined\n }\n setAsOpen() {\n if (this.state === 'opened') {\n return\n }\n this.setState('opening')\n this.callAnimationStart()\n this.setState('opened')\n this.callAnimationEnd()\n }\n setAsClosed() {\n if (this.state === 'closed') {\n return\n }\n this.setState('closing')\n this.callAnimationStart()\n this.setState('closed')\n this.callAnimationEnd()\n }\n getHeight() {\n return parseFloat(String(this.elem?.clientHeight)) || null\n }\n getUnknownHeight() {\n if (!this.elem) {\n return null\n }\n\n if (this.isAnimating && typeof this.__currentHeight !== 'undefined') {\n return this.__currentHeight\n }\n\n const clonedElem = this.elem.cloneNode(true) as HTMLElement\n const inputs = clonedElem.querySelectorAll('input')\n inputs.forEach((input) => {\n input.removeAttribute('name') // because type=\"radio\" will be else effected negatively\n input.removeAttribute('id') // don't put IDs twice in the DOM\n })\n\n // Hide the cloned element\n for (const key in this.firstPaintStyle) {\n clonedElem.style[key] = this.firstPaintStyle[key]\n }\n clonedElem.style.position = 'absolute' // not a part of the \"firstPaintStyle\"\n\n this.elem.parentNode?.insertBefore(clonedElem, this.elem.nextSibling)\n\n // When text is wrapped, we get different widths,\n // so we need to set the width to the original width\n const elemWidth = this.elem.clientWidth\n const clonedWidth =\n clonedElem.clientWidth ||\n // data-width is used for mockup testing with \"mockHeight\"\n parseFloat(clonedElem.getAttribute('data-width')) ||\n 0\n\n if (clonedWidth > elemWidth) {\n clonedElem.style.width = `${elemWidth}px`\n }\n\n const height =\n clonedElem.clientHeight ||\n // data-height is used for mockup testing with \"mockHeight\"\n parseFloat(clonedElem.getAttribute('data-height')) ||\n null\n\n clonedElem.parentNode?.removeChild(clonedElem)\n\n if (height) {\n this.__currentHeight = height\n }\n\n return height\n }\n onStart(fn: HeightAnimationOnStartCallback) {\n this.onStartStack.push(fn)\n }\n onEnd(fn: HeightAnimationOnEndCallback) {\n this.onEndStack.push(fn)\n }\n start(\n fromHeight: HeightAnimationFromHeight,\n toHeight: HeightAnimationToHeight\n ) {\n if (\n !this.elem ||\n !(\n this.isInBrowser &&\n typeof window.requestAnimationFrame === 'function'\n )\n ) {\n return\n }\n\n const opts = this.getOptions()\n if (opts.animate === false) {\n return\n }\n\n this.stop()\n this.isAnimating = true\n\n // make the animation\n this.reqId1 = window.requestAnimationFrame(() => {\n if (!this.elem) {\n return\n }\n\n this.elem.style.height = `${fromHeight}px`\n\n this.reqId2 = window.requestAnimationFrame(() => {\n if (!this.elem) {\n return\n }\n\n this.elem.style.height = `${toHeight}px`\n })\n })\n }\n stop() {\n this.timeouts.forEach((id) => clearTimeout(id))\n this.timeouts = []\n\n if (\n this.isInBrowser &&\n typeof window.requestAnimationFrame === 'function'\n ) {\n window.cancelAnimationFrame(this.reqId1)\n window.cancelAnimationFrame(this.reqId2)\n }\n }\n open() {\n if (\n this.state === 'opened' ||\n this.state === 'opening' ||\n this.shouldBypassAnimation()\n ) {\n this.setAsOpen()\n return\n }\n\n this.setState('opening')\n this.callAnimationStart()\n\n const toHeight = this.getUnknownHeight()\n\n this.addEndEvent((e) => {\n if (e.target === e.currentTarget || !e.currentTarget) {\n if (this.elem) {\n this.elem.style.overflowY = ''\n }\n this.setState('opened')\n this.readjust()\n }\n })\n\n this.start(0, toHeight)\n }\n close() {\n if (\n this.state === 'closed' ||\n this.state === 'closing' ||\n this.shouldBypassAnimation()\n ) {\n this.setAsClosed()\n return\n }\n\n this.setState('closing')\n this.callAnimationStart()\n\n const fromHeight = this.getHeight()\n\n this.addEndEvent((e) => {\n if (e.target === e.currentTarget || !e.currentTarget) {\n if (this.elem) {\n this.elem.style.visibility = 'hidden'\n this.elem.style.overflowY = 'clip'\n }\n this.setState('closed')\n this.callAnimationEnd()\n }\n })\n\n this.start(fromHeight, 0)\n }\n adjustTo(\n fromHeight: HeightAnimationFromHeight = null,\n toHeight: HeightAnimationToHeight = null\n ) {\n const opts = this.getOptions()\n\n if (\n !this.elem ||\n opts.animate === false ||\n this.state === 'opening' ||\n this.state === 'closing'\n ) {\n return\n }\n\n if (fromHeight === 0 || fromHeight === null) {\n fromHeight = this.getHeight()\n }\n if (toHeight === null) {\n toHeight = this.getUnknownHeight()\n }\n\n if (fromHeight === toHeight) {\n this.setState('adjusted')\n return\n }\n\n this.setState('adjusting')\n this.callAnimationStart()\n\n this.addEndEvent((e) => {\n if (\n this.state === 'adjusting' &&\n (e.target === e.currentTarget || !e.currentTarget)\n ) {\n if (this.elem) {\n this.elem.style.height = 'auto'\n }\n this.setState('adjusted')\n this.callAnimationEnd()\n }\n })\n\n this.start(fromHeight, toHeight)\n }\n readjust() {\n const endHeight = this.getHeight()\n\n if (this.elem) {\n this.elem.style.height = 'auto'\n }\n\n this.__currentHeight = undefined\n const newHeight = this.getUnknownHeight()\n\n // If the height has changed during the animation, we need to adjust it\n if (endHeight !== newHeight) {\n this.adjustTo(endHeight, newHeight)\n } else {\n this.callAnimationEnd()\n }\n }\n /**\n * Determines whether the animation can finish.\n * Check for certain states and if the time passed is too short.\n * With a so short first state change, we do not call animation end.\n */\n canFinish() {\n return Boolean(\n this.startTime &&\n Date.now() - this.startTime >\n (globalThis.animationDuration ?? this.duration)\n )\n }\n /**\n * Determines whether the animation should be bypassed.\n * Check for certain states and if the time passed is too short to be correct.\n * With a very short first state change, we skip animation.\n */\n shouldBypassAnimation() {\n const opts = this.getOptions()\n\n if (!this.elem || opts.animate === false) {\n return true\n }\n\n if (\n this.isInBrowser &&\n (globalThis.IS_TEST || globalThis.bypassTime === -1)\n ) {\n return false\n }\n\n return Boolean(\n this.firstTime &&\n Date.now() - this.firstTime < (globalThis.bypassTime ?? 100)\n )\n }\n}\n"],"mappings":"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"}
|
|
@@ -17,6 +17,7 @@ export declare const ANIMATION_DURATION = 300;
|
|
|
17
17
|
interface ModalState {
|
|
18
18
|
hide: boolean;
|
|
19
19
|
modalActive: boolean;
|
|
20
|
+
preventAutoFocus: boolean;
|
|
20
21
|
}
|
|
21
22
|
export type ModalPropTypes = ModalProps & SpacingProps & Omit<ScrollViewAllProps, 'children'>;
|
|
22
23
|
declare class Modal extends React.PureComponent<ModalPropTypes & ToCamelCasePartial<ModalPropTypes>, ModalState> {
|
|
@@ -38,6 +39,7 @@ declare class Modal extends React.PureComponent<ModalPropTypes & ToCamelCasePart
|
|
|
38
39
|
state: {
|
|
39
40
|
hide: boolean;
|
|
40
41
|
modalActive: boolean;
|
|
42
|
+
preventAutoFocus: boolean;
|
|
41
43
|
};
|
|
42
44
|
static defaultProps: {
|
|
43
45
|
id: any;
|