@dnb/eufemia 10.31.0 → 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 +34 -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/style/dnb-checkbox.css +2 -2
- package/cjs/components/checkbox/style/dnb-checkbox.min.css +1 -1
- package/cjs/components/checkbox/style/dnb-checkbox.scss +2 -3
- 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/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 +19 -9
- package/cjs/extensions/forms/DataContext/Context.js +2 -2
- 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 +68 -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.js +2 -1
- package/cjs/extensions/forms/Field/Boolean/Boolean.js.map +1 -1
- package/cjs/extensions/forms/Field/Indeterminate/useDependencePaths.js +7 -7
- package/cjs/extensions/forms/Field/Indeterminate/useDependencePaths.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/FieldBlock/FieldBlock.js +5 -0
- package/cjs/extensions/forms/FieldBlock/FieldBlock.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/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 +102 -32
- 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 +6 -1
- package/cjs/extensions/forms/Wizard/Step/Step.js +9 -5
- package/cjs/extensions/forms/Wizard/Step/Step.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 +70 -31
- 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 +4 -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 +17 -29
- 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 +26 -36
- package/cjs/style/themes/theme-eiendom/eiendom-theme-components.min.css +5 -5
- 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 +99 -112
- package/cjs/style/themes/theme-sbanken/sbanken-theme-components.min.css +6 -6
- 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 +26 -36
- package/cjs/style/themes/theme-ui/ui-theme-components.min.css +5 -5
- 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/style/dnb-checkbox.css +2 -2
- package/components/checkbox/style/dnb-checkbox.min.css +1 -1
- package/components/checkbox/style/dnb-checkbox.scss +2 -3
- 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/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/style/dnb-checkbox.css +2 -2
- package/es/components/checkbox/style/dnb-checkbox.min.css +1 -1
- package/es/components/checkbox/style/dnb-checkbox.scss +2 -3
- 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/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 +19 -9
- package/es/extensions/forms/DataContext/Context.js +2 -2
- 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 +65 -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.js +2 -1
- package/es/extensions/forms/Field/Boolean/Boolean.js.map +1 -1
- package/es/extensions/forms/Field/Indeterminate/useDependencePaths.js +7 -7
- package/es/extensions/forms/Field/Indeterminate/useDependencePaths.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/FieldBlock/FieldBlock.js +5 -0
- package/es/extensions/forms/FieldBlock/FieldBlock.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/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 +98 -32
- 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 +6 -1
- package/es/extensions/forms/Wizard/Step/Step.js +9 -5
- package/es/extensions/forms/Wizard/Step/Step.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 +67 -28
- 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 +4 -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 +17 -29
- 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 +26 -36
- package/es/style/themes/theme-eiendom/eiendom-theme-components.min.css +5 -5
- 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 +99 -112
- package/es/style/themes/theme-sbanken/sbanken-theme-components.min.css +6 -6
- 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 +26 -36
- package/es/style/themes/theme-ui/ui-theme-components.min.css +5 -5
- 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 +2 -2
- package/esm/dnb-ui-lib.min.mjs +1 -1
- package/extensions/forms/DataContext/Context.d.ts +19 -9
- package/extensions/forms/DataContext/Context.js +2 -2
- 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 +68 -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.js +2 -1
- package/extensions/forms/Field/Boolean/Boolean.js.map +1 -1
- package/extensions/forms/Field/Indeterminate/useDependencePaths.js +7 -7
- package/extensions/forms/Field/Indeterminate/useDependencePaths.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/FieldBlock/FieldBlock.js +5 -0
- package/extensions/forms/FieldBlock/FieldBlock.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/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 +102 -32
- 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 +6 -1
- package/extensions/forms/Wizard/Step/Step.js +9 -5
- package/extensions/forms/Wizard/Step/Step.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 +70 -31
- 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 +4 -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 +17 -29
- 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 +26 -36
- package/style/themes/theme-eiendom/eiendom-theme-components.min.css +5 -5
- 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 +99 -112
- package/style/themes/theme-sbanken/sbanken-theme-components.min.css +6 -6
- 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 +26 -36
- package/style/themes/theme-ui/ui-theme-components.min.css +5 -5
- 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 +2 -2
- package/umd/dnb-ui-lib.min.js +1 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
:root{--checkbox-width--medium:1.5rem;--checkbox-height--medium:1.5rem}.dnb-checkbox{--checkbox-border-radius:0.25rem;--checkbox-gfx-border-radius__indeterminate:0.125rem;--checkbox-width--large:2rem;--checkbox-height--large:2rem;--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;--checkbox-border-width:0.125rem;--checkbox-border-width--hover:0.125rem;--checkbox-color-gfx-on:#000;--checkbox-color-gfx-off:#fff;--checkbox-color-background-on:#fff;--checkbox-color-background-off:#fff;--checkbox-color-border-on:#000;--checkbox-color-border-off:#000;--checkbox-color-gfx--disabled:grey;--checkbox-color-background-on--disabled:#d3d3d3;--checkbox-color-background-off--disabled:#d3d3d3;--checkbox-color-border-on--disabled:grey;--checkbox-color-border-off--disabled:grey;--checkbox-color-gfx__indeterminate--disabled:grey;--checkbox-color-background--active:#d3d3d3;--checkbox-color-border--active:transparent;--checkbox-color-gfx--hover:grey;--checkbox-color-background--hover:#fff;--checkbox-color-border-on--hover:grey;--checkbox-color-border-off--hover:grey;--checkbox-color-gfx--focus:grey;--checkbox-color-background--focus:#d3d3d3;--checkbox-color-gfx--error:#fff0f5;--checkbox-color-gfx--error-contrast:red;--checkbox-color-background-on--error:red;--checkbox-color-background--error-contrast:#fff0f5;--checkbox-color-border--error:red;--checkbox-color-gfx-indeterminate--error:red;--checkbox-color-gfx--error--hover:red;--checkbox-color-background--error--hover:#fff0f5;--checkbox-color-border--error--hover:red;--checkbox-color-background-indeterminate:grey;--checkbox-color-gfx-indeterminate:#a9a9a9;--checkbox-color-background-indeterminate--active:grey;--checkbox-color-border-indeterminate--active:#fff;--checkbox-color-gfx-indeterminate--active:#fff;--checkbox-bounding--medium:1.75,1.75;font-size:var(--font-size-small);line-height:var(--line-height-basis)}.dnb-checkbox,.dnb-checkbox__inner{display:inline-flex;flex-direction:column}.dnb-checkbox__inner{align-self:center}.dnb-checkbox__shell{align-items:center;display:flex;height:var(--checkbox-height--medium);justify-content:center;position:relative;-webkit-user-select:none;user-select:none;width:var(--checkbox-width--medium)}.dnb-checkbox--large .dnb-checkbox__shell{height:var(--checkbox-height--large);width:var(--checkbox-width--large)}.dnb-checkbox__button{border:var(--checkbox-border-width) solid transparent;display:inline-block}.dnb-checkbox__focus{display:none;outline:none}html[data-whatinput=keyboard] .dnb-checkbox__focus{--border-color:var(--focus-ring-color);--border-width:var(--focus-ring-width);border-color:transparent;box-shadow:0 0 0 var(--border-width) var(--border-color)}.dnb-checkbox__button,.dnb-checkbox__focus{border-radius:var(--checkbox-border-radius);height:calc(var(--checkbox-height--medium) - .25rem);position:relative;width:calc(var(--checkbox-width--medium) - .25rem);z-index:4}.dnb-checkbox--large .dnb-checkbox__button,.dnb-checkbox--large .dnb-checkbox__focus{border-radius:var(--checkbox-border-radius);height:var(--checkbox-height--large);width:var(--checkbox-width--large)}.dnb-checkbox__gfx{shape-rendering:geometricprecision;height:calc(var(--checkbox-height--medium) - .5rem);left:auto;position:absolute;top:auto;transition:opacity .2s ease-out,transform .2s ease-out;width:calc(var(--checkbox-width--medium) - .5rem);z-index:5}.dnb-checkbox--large{line-height:var(--checkbox-height--large)}.dnb-checkbox--large .dnb-checkbox__gfx{height:calc(var(--checkbox-height--large) - .5rem);width:calc(var(--checkbox-width--large) - .5rem)}.dnb-checkbox__input{border:0;height:var(--checkbox-height--medium);left:auto;margin:0;opacity:0;padding:0;position:absolute;top:auto;transform:scale(var(--checkbox-bounding--medium));width:var(--checkbox-width--medium);z-index:6}.dnb-checkbox--large .dnb-checkbox__input{height:var(--checkbox-height--large);transform:scale(1);width:var(--checkbox-width--large)}.dnb-checkbox__input:not([disabled]){cursor:pointer}.dnb-checkbox .dnb-form-label{margin-bottom:0;margin-left:0;margin-right:0}.dnb-checkbox__order{align-items:baseline;display:inline-flex}.dnb-checkbox__suffix{order:4}.dnb-checkbox--label-position-left .dnb-checkbox__order .dnb-checkbox__inner{order:2}.dnb-checkbox--label-position-left .dnb-checkbox__order .dnb-form-label{order:1;padding-right:.5rem}.dnb-checkbox--label-position-left .dnb-checkbox__order .dnb-form-status{margin-top:.5rem;order:3}.dnb-checkbox--label-position-right .dnb-checkbox__order .dnb-checkbox__inner{order:1}.dnb-checkbox--label-position-right .dnb-checkbox__order .dnb-form-label{order:2;padding-left:.5rem}.dnb-checkbox--label-position-right .dnb-checkbox__order+.dnb-form-status{margin-top:.5rem;order:3;vertical-align:top}.dnb-checkbox__input:checked~.dnb-checkbox__gfx,.dnb-checkbox__input[data-checked=true]~.dnb-checkbox__gfx{color:var(--checkbox-color-gfx-on);opacity:1;transform:scale(1)}.dnb-checkbox__input:checked~.dnb-checkbox__button,.dnb-checkbox__input[data-checked=true]~.dnb-checkbox__button{background-color:var(--checkbox-color-background-on);border-color:var(--checkbox-color-border-on)}.dnb-checkbox__input:not([disabled]):not(:checked):not([data-checked=true])~.dnb-checkbox__gfx{color:var(--checkbox-color-gfx-off);opacity:0;transform:scale(.8)}.dnb-checkbox__input:not(:checked):not([data-checked=true])~.dnb-checkbox__button{background-color:var(--checkbox-color-background-off);border-color:var(--checkbox-color-border-off);transition:background-color .1s ease-out}.dnb-checkbox__input~.dnb-checkbox__indeterminate{background-color:var(--checkbox-color-gfx-indeterminate);border-radius:var(--checkbox-gfx-border-radius__indeterminate);height:var(--checkbox-gfx-height__indeterminate);opacity:0;position:absolute;transform:scale(.85);transition:opacity .2s ease-out,transform .2s ease-out;width:var(--checkbox-gfx-width__indeterminate);z-index:5}.dnb-checkbox__input:indeterminate~.dnb-checkbox__indeterminate{opacity:1;transform:scale(1)}.dnb-checkbox__input:indeterminate:checked~.dnb-checkbox__button{background-color:transparent;border-color:var(--checkbox-color-border-off)}.dnb-checkbox__input:indeterminate:checked:hover~.dnb-checkbox__gfx,.dnb-checkbox__input:indeterminate:checked~.dnb-checkbox__gfx,.dnb-checkbox__input:indeterminate:hover~.dnb-checkbox__gfx{color:transparent}.dnb-checkbox--large .dnb-checkbox__input:indeterminate~.dnb-checkbox__indeterminate{height:var(--checkbox-gfx-height__indeterminate--large);width:var(--checkbox-gfx-width__indeterminate--large)}.dnb-checkbox__input[disabled]:checked~.dnb-checkbox__button,.dnb-checkbox__input[disabled][data-checked=true]~.dnb-checkbox__button{background-color:var(--checkbox-color-background-on--disabled);border-color:var(--checkbox-color-border-on--disabled)}.dnb-checkbox__input[disabled]:checked~.dnb-checkbox__gfx,.dnb-checkbox__input[disabled][data-checked=true]~.dnb-checkbox__gfx{color:var(--checkbox-color-gfx--disabled)}.dnb-checkbox__input[disabled]:not(:checked):not([data-checked=true])~.dnb-checkbox__button{background-color:var(--checkbox-color-background-off--disabled);border-color:var(--checkbox-color-border-off--disabled)}.dnb-checkbox__input[disabled]:indeterminate~.dnb-checkbox__indeterminate{background-color:var(--checkbox-color-gfx__indeterminate--disabled)}.dnb-checkbox__input[disabled]:indeterminate~.dnb-checkbox__gfx{color:transparent}.dnb-checkbox__input:not([disabled]):active~.dnb-checkbox__button{background-color:var(--checkbox-color-background--active);border-color:var(--checkbox-color-border--active)}.dnb-checkbox__input:not([disabled]):checked:active~.dnb-checkbox__gfx,.dnb-checkbox__input:not([disabled])[data-checked=true]:active~.dnb-checkbox__gfx{color:var(--checkbox-color-gfx-on)}.dnb-checkbox__input:not([disabled]):indeterminate:active~.dnb-checkbox__button{background-color:var(--checkbox-color-background-indeterminate--active);border-color:var(--checkbox-color-border-indeterminate--active)}.dnb-checkbox__input:not([disabled]):indeterminate:active~.dnb-checkbox__indeterminate{background-color:var(--checkbox-color-gfx-indeterminate--active)}.dnb-checkbox__input:not([disabled]):not(:active):hover~.dnb-checkbox__button{background-color:var(--checkbox-color-background--hover);border-color:var(--checkbox-color-border-off--hover)}.dnb-checkbox__input:not([disabled]):hover~.dnb-checkbox__gfx{color:var(--checkbox-color-gfx--hover)}.dnb-checkbox__input:not([disabled]):checked:hover~.dnb-checkbox__button,.dnb-checkbox__input:not([disabled])[data-checked=true]:hover~.dnb-checkbox__button{border:var(--checkbox-border-width--hover) solid var(--checkbox-color-border-on--hover)}html[data-whatinput=keyboard] .dnb-checkbox__input:not([disabled]):focus-visible~.dnb-checkbox__button{background-color:var(--checkbox-color-background--focus);border:none}html[data-whatinput=keyboard] .dnb-checkbox__input:not([disabled]):focus-visible~.dnb-checkbox__gfx{color:var(--checkbox-color-gfx--focus)}.dnb-checkbox__input:not([disabled]):active~.dnb-checkbox__button .dnb-checkbox__focus,.dnb-checkbox__input:not([disabled]):focus-visible~.dnb-checkbox__button .dnb-checkbox__focus{display:block}.dnb-checkbox__input:not([disabled]):focus-visible~.dnb-checkbox__indeterminate{background-color:var(--checkbox-color-gfx--focus)}.dnb-checkbox__status--error .dnb-checkbox__input:not([disabled]):not(:active)~.dnb-checkbox__button{border:none}.dnb-checkbox__status--error .dnb-checkbox__input:not([disabled]):not(:active)~.dnb-checkbox__button .dnb-checkbox__focus{--border-color:var(--checkbox-color-border--error);--border-width:var(--checkbox-border-width);border-color:transparent;box-shadow:0 0 0 var(--border-width) var(--border-color);display:block}.dnb-checkbox__status--error .dnb-checkbox__input:not([disabled]):hover~.dnb-checkbox__button{background-color:var(--checkbox-color-background--error--hover)}.dnb-checkbox__status--error .dnb-checkbox__input:not([disabled]):hover~.dnb-checkbox__button[data-checked=true]{border-color:var(--checkbox-color-border--error--hover)}.dnb-checkbox__status--error .dnb-checkbox__input:not([disabled]):hover~.dnb-checkbox__gfx{color:var(--checkbox-color-gfx--error--hover)}.dnb-checkbox__status--error .dnb-checkbox__input:not([disabled]):not(:active):not(:hover)~.dnb-checkbox__gfx{color:var(--checkbox-color-gfx--error)}html[data-whatinput=keyboard] .dnb-checkbox__status--error .dnb-checkbox__input:not([disabled]):focus:hover~.dnb-checkbox__button,html[data-whatinput=keyboard] .dnb-checkbox__status--error .dnb-checkbox__input:not([disabled]):focus~.dnb-checkbox__button{--border-color:var(--checkbox-color-border--error);--border-width:calc(var(--checkbox-border-width--hover));background-color:var(--checkbox-color-background--error-contrast);border:transparent;box-shadow:0 0 0 var(--border-width) var(--border-color)}html[data-whatinput=keyboard] .dnb-checkbox__status--error .dnb-checkbox__input:not([disabled]):focus:hover~.dnb-checkbox__gfx{color:var(--checkbox-color-gfx--error-contrast)}.dnb-checkbox__status--error .dnb-checkbox__input:not([disabled]):not(:active):not(:hover):checked~.dnb-checkbox__button,.dnb-checkbox__status--error .dnb-checkbox__input:not([disabled]):not(:active):not(:hover)[data-checked=true]~.dnb-checkbox__button{background-color:var(--checkbox-color-background-on--error)}.dnb-checkbox__status--error .dnb-checkbox__input:indeterminate:not([disabled]):not(:active):not(:hover)~.dnb-checkbox__gfx{background-color:var(--checkbox-color-gfx--error-contrast);border-radius:var(--checkbox-border-radius);color:var(--checkbox-color-gfx--error-contrast)}.dnb-checkbox__status--error .dnb-checkbox__input:indeterminate:not(:active):not(:hover)~.dnb-checkbox__indeterminate{background-color:var(--checkbox-color-gfx-indeterminate--error)}.dnb-checkbox__status--error .dnb-checkbox__input:not(:indeterminate)~.dnb-checkbox__indeterminate{background-color:var(--checkbox-color-gfx-indeterminate--error)}.dnb-checkbox__status--error .dnb-checkbox__input:indeterminate:hover:not(:active)~.dnb-checkbox__indeterminate{background-color:var(--checkbox-color-gfx--error--hover)}.dnb-checkbox__status--error .dnb-checkbox__input:not([disabled]):not(:active):hover~.dnb-checkbox__gfx{color:var(--checkbox-color-gfx--error--hover)}.dnb-checkbox.dnb-skeleton .dnb-checkbox__input[disabled]~.dnb-checkbox__button{border-color:var(--skeleton-color)}.dnb-checkbox.dnb-skeleton .dnb-checkbox__input[disabled]~.dnb-checkbox__button:before{border-radius:0}.dnb-checkbox.dnb-skeleton .dnb-checkbox__input[disabled]~.dnb-checkbox__gfx{color:var(--skeleton-color)}.dnb-checkbox.dnb-skeleton .dnb-checkbox__input[disabled]~.dnb-checkbox__indeterminate{background-color:var(--skeleton-color)}
|
|
1
|
+
:root{--checkbox-width--medium:1.5rem;--checkbox-height--medium:1.5rem}.dnb-checkbox{--checkbox-border-radius:0.25rem;--checkbox-gfx-border-radius__indeterminate:0.125rem;--checkbox-width--large:2rem;--checkbox-height--large:2rem;--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;--checkbox-border-width:0.125rem;--checkbox-border-width--hover:0.125rem;--checkbox-color-gfx-on:#000;--checkbox-color-gfx-off:#fff;--checkbox-color-background-on:#fff;--checkbox-color-background-off:#fff;--checkbox-color-border-on:#000;--checkbox-color-border-off:#000;--checkbox-color-gfx--disabled:grey;--checkbox-color-background-on--disabled:#d3d3d3;--checkbox-color-background-off--disabled:#d3d3d3;--checkbox-color-border-on--disabled:grey;--checkbox-color-border-off--disabled:grey;--checkbox-color-gfx__indeterminate--disabled:grey;--checkbox-color-background--active:#d3d3d3;--checkbox-color-border--active:transparent;--checkbox-color-gfx--hover:grey;--checkbox-color-background--hover:#fff;--checkbox-color-border-on--hover:grey;--checkbox-color-border-off--hover:grey;--checkbox-color-gfx--focus:grey;--checkbox-color-background--focus:#d3d3d3;--checkbox-color-gfx--error:#fff0f5;--checkbox-color-gfx--error-contrast:red;--checkbox-color-background-on--error:red;--checkbox-color-background--error-contrast:#fff0f5;--checkbox-color-border--error:red;--checkbox-color-gfx-indeterminate--error:red;--checkbox-color-gfx--error--hover:red;--checkbox-color-background--error--hover:#fff0f5;--checkbox-color-border--error--hover:red;--checkbox-color-background-indeterminate:grey;--checkbox-color-gfx-indeterminate:#a9a9a9;--checkbox-color-background-indeterminate--active:grey;--checkbox-color-border-indeterminate--active:#fff;--checkbox-color-gfx-indeterminate--active:#fff;--checkbox-bounding--medium:1.75,1.75;font-size:var(--font-size-small);line-height:var(--line-height-basis)}.dnb-checkbox,.dnb-checkbox__inner{display:inline-flex;flex-direction:column}.dnb-checkbox__inner{align-self:center}.dnb-checkbox__shell{align-items:center;display:flex;height:var(--checkbox-height--medium);justify-content:center;position:relative;-webkit-user-select:none;user-select:none;width:var(--checkbox-width--medium)}.dnb-checkbox--large .dnb-checkbox__shell{height:var(--checkbox-height--large);width:var(--checkbox-width--large)}.dnb-checkbox__button{border:var(--checkbox-border-width) solid transparent;display:inline-block}.dnb-checkbox__focus{display:none;outline:none}html[data-whatinput=keyboard] .dnb-checkbox__focus{--border-color:var(--focus-ring-color);--border-width:var(--focus-ring-width);border-color:transparent;box-shadow:0 0 0 var(--border-width) var(--border-color)}.dnb-checkbox__button,.dnb-checkbox__focus{border-radius:var(--checkbox-border-radius);height:calc(var(--checkbox-height--medium) - .25rem);position:relative;width:calc(var(--checkbox-width--medium) - .25rem);z-index:4}.dnb-checkbox--large .dnb-checkbox__button,.dnb-checkbox--large .dnb-checkbox__focus{border-radius:var(--checkbox-border-radius);height:var(--checkbox-height--large);width:var(--checkbox-width--large)}.dnb-checkbox__gfx{shape-rendering:geometricprecision;height:calc(var(--checkbox-height--medium) - .5rem);left:auto;position:absolute;top:auto;transition:opacity .2s ease-out,transform .2s ease-out;width:calc(var(--checkbox-width--medium) - .5rem);z-index:5}.dnb-checkbox--large{line-height:var(--checkbox-height--large)}.dnb-checkbox--large .dnb-checkbox__gfx{height:calc(var(--checkbox-height--large) - .5rem);width:calc(var(--checkbox-width--large) - .5rem)}.dnb-checkbox__input{border:0;height:var(--checkbox-height--medium);left:auto;margin:0;opacity:0;padding:0;position:absolute;top:auto;transform:scale(var(--checkbox-bounding--medium));width:var(--checkbox-width--medium);z-index:6}.dnb-checkbox--large .dnb-checkbox__input{height:var(--checkbox-height--large);transform:scale(1);width:var(--checkbox-width--large)}.dnb-checkbox__input:not([disabled]){cursor:pointer}.dnb-checkbox .dnb-form-label{margin-bottom:0;margin-left:0;margin-right:0}.dnb-checkbox__order{align-items:baseline;display:inline-flex}.dnb-checkbox__suffix{order:4}.dnb-checkbox--label-position-left .dnb-checkbox__order .dnb-checkbox__inner{order:2}.dnb-checkbox--label-position-left .dnb-checkbox__order .dnb-form-label{order:1;padding-right:.5rem}.dnb-checkbox--label-position-left .dnb-checkbox__order .dnb-form-status{margin-top:.5rem;order:3}.dnb-checkbox--label-position-right .dnb-checkbox__order .dnb-checkbox__inner{order:1}.dnb-checkbox--label-position-right .dnb-checkbox__order .dnb-form-label{order:2;padding-left:.5rem}.dnb-checkbox--label-position-right .dnb-checkbox__order+.dnb-form-status{margin-top:.5rem;order:3;vertical-align:top}.dnb-checkbox__input:checked~.dnb-checkbox__gfx,.dnb-checkbox__input[data-checked=true]~.dnb-checkbox__gfx{color:var(--checkbox-color-gfx-on);opacity:1;transform:scale(1)}.dnb-checkbox__input:checked~.dnb-checkbox__button,.dnb-checkbox__input[data-checked=true]~.dnb-checkbox__button{background-color:var(--checkbox-color-background-on);border-color:var(--checkbox-color-border-on)}.dnb-checkbox__input:not(:checked):not([data-checked=true])~.dnb-checkbox__gfx{color:var(--checkbox-color-gfx-off);opacity:0;transform:scale(.8)}.dnb-checkbox__input:not(:checked):not([data-checked=true])~.dnb-checkbox__button{background-color:var(--checkbox-color-background-off);border-color:var(--checkbox-color-border-off);transition:background-color .1s ease-out}.dnb-checkbox__input~.dnb-checkbox__indeterminate{background-color:var(--checkbox-color-gfx-indeterminate);border-radius:var(--checkbox-gfx-border-radius__indeterminate);height:var(--checkbox-gfx-height__indeterminate);opacity:0;position:absolute;transform:scale(.85);transition:opacity .2s ease-out,transform .2s ease-out;width:var(--checkbox-gfx-width__indeterminate);z-index:5}.dnb-checkbox__input:indeterminate~.dnb-checkbox__indeterminate{opacity:1;transform:scale(1)}.dnb-checkbox__input:indeterminate:checked~.dnb-checkbox__button{background-color:transparent;border-color:var(--checkbox-color-border-off)}.dnb-checkbox__input:indeterminate:checked:hover~.dnb-checkbox__gfx,.dnb-checkbox__input:indeterminate:checked~.dnb-checkbox__gfx,.dnb-checkbox__input:indeterminate:hover~.dnb-checkbox__gfx{color:transparent}.dnb-checkbox--large .dnb-checkbox__input:indeterminate~.dnb-checkbox__indeterminate{height:var(--checkbox-gfx-height__indeterminate--large);width:var(--checkbox-gfx-width__indeterminate--large)}.dnb-checkbox__input[disabled]:checked~.dnb-checkbox__button,.dnb-checkbox__input[disabled][data-checked=true]~.dnb-checkbox__button{background-color:var(--checkbox-color-background-on--disabled);border-color:var(--checkbox-color-border-on--disabled)}.dnb-checkbox__input[disabled]:checked~.dnb-checkbox__gfx,.dnb-checkbox__input[disabled][data-checked=true]~.dnb-checkbox__gfx{color:var(--checkbox-color-gfx--disabled)}.dnb-checkbox__input[disabled]:not(:checked):not([data-checked=true])~.dnb-checkbox__button{background-color:var(--checkbox-color-background-off--disabled);border-color:var(--checkbox-color-border-off--disabled)}.dnb-checkbox__input[disabled]:indeterminate~.dnb-checkbox__indeterminate{background-color:var(--checkbox-color-gfx__indeterminate--disabled)}.dnb-checkbox__input[disabled]:indeterminate~.dnb-checkbox__gfx{color:transparent}.dnb-checkbox__input:not([disabled]):active~.dnb-checkbox__button{background-color:var(--checkbox-color-background--active);border-color:var(--checkbox-color-border--active)}.dnb-checkbox__input:not([disabled]):checked:active~.dnb-checkbox__gfx,.dnb-checkbox__input:not([disabled])[data-checked=true]:active~.dnb-checkbox__gfx{color:var(--checkbox-color-gfx-on)}.dnb-checkbox__input:not([disabled]):indeterminate:active~.dnb-checkbox__button{background-color:var(--checkbox-color-background-indeterminate--active);border-color:var(--checkbox-color-border-indeterminate--active)}.dnb-checkbox__input:not([disabled]):indeterminate:active~.dnb-checkbox__indeterminate{background-color:var(--checkbox-color-gfx-indeterminate--active)}.dnb-checkbox__input:not([disabled]):not(:active):hover~.dnb-checkbox__button{background-color:var(--checkbox-color-background--hover);border-color:var(--checkbox-color-border-off--hover)}.dnb-checkbox__input:hover~.dnb-checkbox__gfx{color:var(--checkbox-color-gfx--hover)}.dnb-checkbox__input:not([disabled]):checked:hover~.dnb-checkbox__button,.dnb-checkbox__input:not([disabled])[data-checked=true]:hover~.dnb-checkbox__button{border:var(--checkbox-border-width--hover) solid var(--checkbox-color-border-on--hover)}html[data-whatinput=keyboard] .dnb-checkbox__input:not([disabled]):focus-visible~.dnb-checkbox__button{background-color:var(--checkbox-color-background--focus);border:none}html[data-whatinput=keyboard] .dnb-checkbox__input:not([disabled]):focus-visible~.dnb-checkbox__gfx{color:var(--checkbox-color-gfx--focus)}.dnb-checkbox__input:not([disabled]):active~.dnb-checkbox__button .dnb-checkbox__focus,.dnb-checkbox__input:not([disabled]):focus-visible~.dnb-checkbox__button .dnb-checkbox__focus{display:block}.dnb-checkbox__input:not([disabled]):focus-visible~.dnb-checkbox__indeterminate{background-color:var(--checkbox-color-gfx--focus)}.dnb-checkbox__status--error .dnb-checkbox__input:not([disabled]):not(:active)~.dnb-checkbox__button{border:none}.dnb-checkbox__status--error .dnb-checkbox__input:not([disabled]):not(:active)~.dnb-checkbox__button .dnb-checkbox__focus{--border-color:var(--checkbox-color-border--error);--border-width:var(--checkbox-border-width);border-color:transparent;box-shadow:0 0 0 var(--border-width) var(--border-color);display:block}.dnb-checkbox__status--error .dnb-checkbox__input:not([disabled]):hover~.dnb-checkbox__button{background-color:var(--checkbox-color-background--error--hover)}.dnb-checkbox__status--error .dnb-checkbox__input:not([disabled]):hover~.dnb-checkbox__button[data-checked=true]{border-color:var(--checkbox-color-border--error--hover)}.dnb-checkbox__status--error .dnb-checkbox__input:not([disabled]):hover~.dnb-checkbox__gfx{color:var(--checkbox-color-gfx--error--hover)}.dnb-checkbox__status--error .dnb-checkbox__input:not([disabled]):not(:active):not(:hover)~.dnb-checkbox__gfx{color:var(--checkbox-color-gfx--error)}html[data-whatinput=keyboard] .dnb-checkbox__status--error .dnb-checkbox__input:not([disabled]):focus:hover~.dnb-checkbox__button,html[data-whatinput=keyboard] .dnb-checkbox__status--error .dnb-checkbox__input:not([disabled]):focus~.dnb-checkbox__button{--border-color:var(--checkbox-color-border--error);--border-width:calc(var(--checkbox-border-width--hover));background-color:var(--checkbox-color-background--error-contrast);border:transparent;box-shadow:0 0 0 var(--border-width) var(--border-color)}html[data-whatinput=keyboard] .dnb-checkbox__status--error .dnb-checkbox__input:not([disabled]):focus:hover~.dnb-checkbox__gfx{color:var(--checkbox-color-gfx--error-contrast)}.dnb-checkbox__status--error .dnb-checkbox__input:not([disabled]):not(:active):not(:hover):checked~.dnb-checkbox__button,.dnb-checkbox__status--error .dnb-checkbox__input:not([disabled]):not(:active):not(:hover)[data-checked=true]~.dnb-checkbox__button{background-color:var(--checkbox-color-background-on--error)}.dnb-checkbox__status--error .dnb-checkbox__input:indeterminate:not([disabled]):not(:active):not(:hover)~.dnb-checkbox__gfx{background-color:var(--checkbox-color-gfx--error-contrast);border-radius:var(--checkbox-border-radius);color:var(--checkbox-color-gfx--error-contrast)}.dnb-checkbox__status--error .dnb-checkbox__input:indeterminate:not(:active):not(:hover)~.dnb-checkbox__indeterminate{background-color:var(--checkbox-color-gfx-indeterminate--error)}.dnb-checkbox__status--error .dnb-checkbox__input:not(:indeterminate)~.dnb-checkbox__indeterminate{background-color:var(--checkbox-color-gfx-indeterminate--error)}.dnb-checkbox__status--error .dnb-checkbox__input:indeterminate:hover:not(:active)~.dnb-checkbox__indeterminate{background-color:var(--checkbox-color-gfx--error--hover)}.dnb-checkbox__status--error .dnb-checkbox__input:not([disabled]):not(:active):hover~.dnb-checkbox__gfx{color:var(--checkbox-color-gfx--error--hover)}.dnb-checkbox.dnb-skeleton .dnb-checkbox__input[disabled]~.dnb-checkbox__button{border-color:var(--skeleton-color)}.dnb-checkbox.dnb-skeleton .dnb-checkbox__input[disabled]~.dnb-checkbox__button:before{border-radius:0}.dnb-checkbox.dnb-skeleton .dnb-checkbox__input[disabled]~.dnb-checkbox__gfx{color:var(--skeleton-color)}.dnb-checkbox.dnb-skeleton .dnb-checkbox__input[disabled]~.dnb-checkbox__indeterminate{background-color:var(--skeleton-color)}
|
|
@@ -260,8 +260,7 @@
|
|
|
260
260
|
}
|
|
261
261
|
|
|
262
262
|
// Off
|
|
263
|
-
&__input:not(
|
|
264
|
-
~ &__gfx {
|
|
263
|
+
&__input:not(:checked):not([data-checked='true']) ~ &__gfx {
|
|
265
264
|
opacity: 0;
|
|
266
265
|
transform: scale(0.8);
|
|
267
266
|
// Needed during transition
|
|
@@ -378,7 +377,7 @@
|
|
|
378
377
|
background-color: var(--checkbox-color-background--hover);
|
|
379
378
|
}
|
|
380
379
|
|
|
381
|
-
&__input:
|
|
380
|
+
&__input:hover ~ &__gfx {
|
|
382
381
|
color: var(--checkbox-color-gfx--hover);
|
|
383
382
|
}
|
|
384
383
|
|
|
@@ -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,7 +12,7 @@ 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) {
|
|
17
17
|
let defaults = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};
|
|
18
18
|
let skip = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : [];
|
|
@@ -22,6 +22,7 @@ export function pickFlexContainerProps(props) {
|
|
|
22
22
|
})));
|
|
23
23
|
}
|
|
24
24
|
function FlexContainer(props) {
|
|
25
|
+
var _ref2;
|
|
25
26
|
const {
|
|
26
27
|
className,
|
|
27
28
|
style,
|
|
@@ -35,11 +36,13 @@ function FlexContainer(props) {
|
|
|
35
36
|
align = 'flex-start',
|
|
36
37
|
alignSelf,
|
|
37
38
|
divider = 'space',
|
|
38
|
-
|
|
39
|
+
gap,
|
|
40
|
+
spacing: spacingProp,
|
|
39
41
|
breakpoints,
|
|
40
42
|
queries
|
|
41
43
|
} = props,
|
|
42
44
|
rest = _objectWithoutProperties(props, _excluded);
|
|
45
|
+
const spacing = (_ref2 = spacingProp !== null && spacingProp !== void 0 ? spacingProp : gap) !== null && _ref2 !== void 0 ? _ref2 : 'small';
|
|
43
46
|
const childrenArray = wrapChildren(props, children);
|
|
44
47
|
const hasHeading = childrenArray.some((child, i) => {
|
|
45
48
|
const previousChild = childrenArray === null || childrenArray === void 0 ? void 0 : childrenArray[i - 1];
|
|
@@ -67,9 +70,9 @@ function FlexContainer(props) {
|
|
|
67
70
|
const endSpacing = 0;
|
|
68
71
|
let startSpacing = null;
|
|
69
72
|
if (!isHeading && (divider === 'line' && !isFirst || divider === 'line-framed')) {
|
|
70
|
-
var _getSpaceValue, _getSpaceValue2;
|
|
73
|
+
var _getSpaceValue, _ref3, _getSpaceValue2;
|
|
71
74
|
const spaceAboveLine = (_getSpaceValue = getSpaceValue(end, previousChild)) !== null && _getSpaceValue !== void 0 ? _getSpaceValue : spacing;
|
|
72
|
-
startSpacing = (_getSpaceValue2 = getSpaceValue(start, child)) !== null && _getSpaceValue2 !== void 0 ? _getSpaceValue2 : spacing;
|
|
75
|
+
startSpacing = (_ref3 = (_getSpaceValue2 = getSpaceValue(start, child)) !== null && _getSpaceValue2 !== void 0 ? _getSpaceValue2 : gap) !== null && _ref3 !== void 0 ? _ref3 : spacing;
|
|
73
76
|
return React.createElement(React.Fragment, {
|
|
74
77
|
key: `element-${i}`
|
|
75
78
|
}, React.createElement(Hr, {
|
|
@@ -90,8 +93,8 @@ function FlexContainer(props) {
|
|
|
90
93
|
if (isFirst && direction !== 'horizontal') {
|
|
91
94
|
startSpacing = 0;
|
|
92
95
|
} else {
|
|
93
|
-
var
|
|
94
|
-
startSpacing = (
|
|
96
|
+
var _ref4, _ref5, _getSpaceValue3;
|
|
97
|
+
startSpacing = (_ref4 = (_ref5 = (_getSpaceValue3 = getSpaceValue(start, child)) !== null && _getSpaceValue3 !== void 0 ? _getSpaceValue3 : getSpaceValue(end, previousChild)) !== null && _ref5 !== void 0 ? _ref5 : gap) !== null && _ref4 !== void 0 ? _ref4 : spacing;
|
|
95
98
|
}
|
|
96
99
|
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) {
|
|
97
100
|
startSpacing = 0;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Container.js","names":["React","useCallback","classnames","Space","Hr","useMedia","getSpaceValue","isHeadingElement","renderWithSpacing","propNames","pickFlexContainerProps","props","defaults","arguments","length","undefined","skip","_objectSpread","Object","fromEntries","entries","filter","_ref","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","isHeading","start","end","endSpacing","startSpacing","_getSpaceValue","_getSpaceValue2","spaceAboveLine","createElement","Fragment","top","space","_ref2","_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,EAGiB;EAAA,IAFzBC,QAAwB,GAAAC,SAAA,CAAAC,MAAA,QAAAD,SAAA,QAAAE,SAAA,GAAAF,SAAA,MAAG,CAAC,CAAC;EAAA,IAC7BG,IAAwB,GAAAH,SAAA,CAAAC,MAAA,QAAAD,SAAA,QAAAE,SAAA,GAAAF,SAAA,MAAG,EAAE;EAE7B,OAAAI,aAAA,CAAAA,aAAA,KACKL,QAAQ,GACRM,MAAM,CAACC,WAAW,CACnBD,MAAM,CAACE,OAAO,CAACT,KAAK,aAALA,KAAK,cAALA,KAAK,GAAI,CAAC,CAAC,CAAC,CAACU,MAAM,CAChCC,IAAA;IAAA,IAAC,CAACC,GAAG,CAAC,GAAAD,IAAA;IAAA,OACJb,SAAS,CAACe,QAAQ,CAACD,GAAkB,CAAC,IACtC,CAACP,IAAI,CAACQ,QAAQ,CAACD,GAAkB,CAAC;EAAA,CACtC,CACF,CAAC;AAEL;AAEA,SAASE,aAAaA,CAACd,KAAY,EAAE;EACnC,MAAM;MACJe,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,GAAG7B,KAAK;IADJ8B,IAAI,GAAAC,wBAAA,CACL/B,KAAK,EAAAgC,SAAA;EAET,MAAMC,aAAa,GAAGC,YAAY,CAAClC,KAAK,EAAEiB,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,OACE1C,gBAAgB,CAACyC,KAAK,CAAC,IAAKC,CAAC,GAAG,CAAC,IAAI1C,gBAAgB,CAAC2C,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,GAAGjD,QAAQ,CAAC;IACjCkD,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,CAAC9B,MAAM,GAAG,CAAC;IAC5C,MAAMoC,aAAa,GAAGN,aAAa,aAAbA,aAAa,uBAAbA,aAAa,CAAGK,CAAC,GAAG,CAAC,CAAC;IAC5C,MAAMY,SAAS,GAAGf,UAAU,IAAIvC,gBAAgB,CAAC2C,aAAa,CAAC;IAI/D,MAAMY,KAAY,GAAGhC,SAAS,KAAK,YAAY,GAAG,MAAM,GAAG,KAAK;IAChE,MAAMiC,GAAQ,GAAGjC,SAAS,KAAK,YAAY,GAAG,OAAO,GAAG,QAAQ;IAGhE,MAAMkC,UAAU,GAAG,CAAC;IACpB,IAAIC,YAAY,GAAG,IAAI;IAEvB,IAEE,CAACJ,SAAS,KACRxB,OAAO,KAAK,MAAM,IAAI,CAACsB,OAAO,IAAKtB,OAAO,KAAK,aAAa,CAAC,EAC/D;MAAA,IAAA6B,cAAA,EAAAC,eAAA;MACA,MAAMC,cAAc,IAAAF,cAAA,GAAG5D,aAAa,CAACyD,GAAG,EAAEb,aAAa,CAAC,cAAAgB,cAAA,cAAAA,cAAA,GAAI5B,OAAO;MACnE2B,YAAY,IAAAE,eAAA,GAAI7D,aAAa,CAACwD,KAAK,EAAEd,KAAK,CAAC,cAAAmB,eAAA,cAAAA,eAAA,GAAI7B,OAAqB;MAEpE,OACEtC,KAAA,CAAAqE,aAAA,CAACrE,KAAK,CAACsE,QAAQ;QAAC/C,GAAG,EAAG,WAAU0B,CAAE;MAAE,GAClCjD,KAAA,CAAAqE,aAAA,CAACjE,EAAE;QACDmE,GAAG,EAAE,CAACZ,OAAO,GAAGS,cAAc,GAAG,CAAE;QACnCI,KAAK,EAAE,CAAE;QACT9C,SAAS,EAAC;MAAwB,CACnC,CAAC,EAEDlB,iBAAiB,CAACwC,KAAK,EAAE;QACxBwB,KAAK,EAAE;UAAE,CAACV,KAAK,GAAGG,YAAY;UAAE,CAACF,GAAG,GAAGC;QAAW;MACpD,CAAC,CAAC,EAED3B,OAAO,KAAK,aAAa,IAAIuB,MAAM,IAClC5D,KAAA,CAAAqE,aAAA,CAACjE,EAAE;QACDmE,GAAG,EAAEH,cAAe;QACpBI,KAAK,EAAE,CAAE;QACT9C,SAAS,EAAC;MAAwB,CACnC,CAEW,CAAC;IAErB;IAGA,IAAIiC,OAAO,IAAI7B,SAAS,KAAK,YAAY,EAAE;MACzCmC,YAAY,GAAG,CAAC;IAClB,CAAC,MAAM;MAAA,IAAAQ,KAAA,EAAAC,eAAA;MAELT,YAAY,IAAAQ,KAAA,IAAAC,eAAA,GACVpE,aAAa,CAACwD,KAAK,EAAEd,KAAK,CAAC,cAAA0B,eAAA,cAAAA,eAAA,GAC3BpE,aAAa,CAACyD,GAAG,EAAEb,aAAa,CAAC,cAAAuB,KAAA,cAAAA,KAAA,GACjCnC,OAAO;IACX;IAEA,IACEtC,KAAK,CAAC2E,cAAc,CAACzB,aAAa,CAAC,IACnC,CAAAA,aAAa,aAAbA,aAAa,wBAAAQ,mBAAA,GAAbR,aAAa,CAAE0B,IAAI,cAAAlB,mBAAA,uBAAnBA,mBAAA,CAAsB,uBAAuB,CAAC,MAAK,KAAK,EACxD;MACAO,YAAY,GAAG,CAAC;IAClB;IAEA,MAAMO,KAAK,GACT1C,SAAS,KAAK,YAAY,GACtB;MAAE,CAACgC,KAAK,GAAGE,UAAU;MAAE,CAACD,GAAG,GAAGE;IAAa,CAAC,GAC5C;MAAE,CAACH,KAAK,GAAGG,YAAY;MAAE,CAACF,GAAG,GAAGC;IAAW,CAAC;IAElD,OAAOxD,iBAAiB,CAACwC,KAAK,EAAE;MAC9BzB,GAAG,EAAE,CAAAyB,KAAK,aAALA,KAAK,uBAALA,KAAK,CAAG,KAAK,CAAC,KAAK,WAAUC,CAAE,EAAC;MACrCuB;IACF,CAAC,CAAC;EACJ,CAAC,CAAC;EAEF,MAAMK,CAAC,GAAG,oBAAoB;EAC9B,MAAMC,cAAc,GAAG7E,WAAW,CAAC,MAAM;IACvC,IAAIgC,MAAM,KAAK,KAAK,EAAE;MACpB,OAAQ,GAAE4C,CAAE,eAAc;IAC5B;IAEA,IACE5C,MAAM,KAAK,IAAI,IACd,CAACA,MAAM,IAAIF,IAAI,IAAID,SAAS,KAAK,YAAa,EAC/C;MACA,OAAQ,GAAE+C,CAAE,iBAAgB;IAC9B;IAEA,IAAI1B,WAAW,IAAIb,OAAO,EAAE;MAC1B,OAAQ,GAAEuC,CAAE,aAAYvC,OAAQ,EAAC;IACnC;IAEA,IAAIL,MAAM,EAAE;MACV,OAAQ,GAAE4C,CAAE,aAAY5C,MAAO,EAAC;IAClC;EACF,CAAC,EAAE,CAACH,SAAS,EAAEqB,WAAW,EAAElB,MAAM,EAAEK,OAAO,EAAEP,IAAI,CAAC,CAAC;EAEnD,MAAMgD,EAAE,GAAG7E,UAAU,CACnB,oBAAoB,EAOpB4E,cAAc,CAAC,CAAC,EAGhBpD,SAAS,EATTI,SAAS,IAAK,GAAE+C,CAAE,eAAc/C,SAAU,EAAC,EAC3CI,OAAO,IAAK,GAAE2C,CAAE,aAAY3C,OAAQ,EAAC,EACrCC,KAAK,IAAK,GAAE0C,CAAE,WAAU1C,KAAM,EAAC,EAC/BC,SAAS,IAAK,GAAEyC,CAAE,gBAAezC,SAAU,EAAC,EAC5CE,OAAO,IAAK,GAAEuC,CAAE,aAAYvC,OAAQ,EAAC,EACrCP,IAAI,IAAK,GAAE8C,CAAE,QAAO,EAEpB1B,WAAW,IAAK,GAAE0B,CAAE,YAAW,EAC/BxC,OAAO,IAAK,GAAEwC,CAAE,aAAYxC,OAAQ,EAEtC,CAAC;EAED,OACErC,KAAA,CAAAqE,aAAA,CAAClE,KAAK,EAAA6E,QAAA;IACJnD,OAAO,EAAEA,OAAQ;IACjBH,SAAS,EAAEqD,EAAG;IACd,kBAAgBzB,QAAS;IACzB3B,KAAK,EACHwB,WAAW,GAAAlC,aAAA;MACJ,aAAa,EAAEe;IAAS,GAAKL,KAAK,IACrCA;EACL,GACGc,IAAI,GAEPe,OACI,CAAC;AAEZ;AAEA,SAASX,YAAYA,CAAClC,KAAY,EAAEiB,QAAyB,EAAE;EAC7D,OAAO5B,KAAK,CAACiF,QAAQ,CAACC,OAAO,CAACtD,QAAQ,CAAC,CAAC6B,GAAG,CAAET,KAAK,IAAK;IACrD,IACEhD,KAAK,CAAC2E,cAAc,CAAC3B,KAAK,CAAC,IAC3BA,KAAK,CAAC4B,IAAI,CAAC,uBAAuB,CAAC,KAAK,UAAU,EAClD;MACA,OAAO5E,KAAK,CAACmF,YAAY,CACvBnC,KAAK,EACLA,KAAK,CAACrC,KAAK,EACXX,KAAA,CAAAqE,aAAA,CAAC5C,aAAa,EAAKd,KAAK,EAAGqC,KAAK,CAACrC,KAAK,CAACiB,QAAwB,CACjE,CAAC;IACH;IAEA,OAAOoB,KAAK;EACd,CAAC,CAAC;AACJ;AAEAvB,aAAa,CAAC2D,qBAAqB,GAAG,IAAI;AAE1C,eAAe3D,aAAa"}
|
|
1
|
+
{"version":3,"file":"Container.js","names":["React","useCallback","classnames","Space","Hr","useMedia","getSpaceValue","isHeadingElement","renderWithSpacing","propNames","pickFlexContainerProps","props","defaults","arguments","length","undefined","skip","_objectSpread","Object","fromEntries","entries","filter","_ref","key","includes","FlexContainer","_ref2","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","isHeading","start","end","endSpacing","startSpacing","_getSpaceValue","_ref3","_getSpaceValue2","spaceAboveLine","createElement","Fragment","top","space","_ref4","_ref5","_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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"}
|
package/components/flex/Stack.js
CHANGED
|
@@ -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"}
|
package/components/flex/utils.js
CHANGED
|
@@ -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","_ref","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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"}
|
|
@@ -54,8 +54,7 @@
|
|
|
54
54
|
background-image: repeating-linear-gradient(-45deg, var(--skeleton-color--contrast) 1px 2px, transparent 0 6px) !important;
|
|
55
55
|
background-repeat: repeat !important;
|
|
56
56
|
background-size: 100% !important;
|
|
57
|
-
|
|
58
|
-
clip-path: polygon(100% 0, 100% 0, 100% 100%, 100% 100%);
|
|
57
|
+
clip-path: polygon(100% 0, 100% 0, 100% 100%, 100% 100%);
|
|
59
58
|
animation: skeletonLinearAnimation 1.5s linear infinite var(--skeleton-delay);
|
|
60
59
|
}
|
|
61
60
|
.dnb-skeleton--code pre,
|
|
@@ -118,16 +117,13 @@ html[data-visual-test] .dnb-skeleton--font, html[data-visual-test] .dnb-skeleton
|
|
|
118
117
|
|
|
119
118
|
@keyframes skeletonLinearAnimation {
|
|
120
119
|
0% {
|
|
121
|
-
|
|
122
|
-
clip-path: polygon(100% 0, 100% 0, 100% 100%, 100% 100%);
|
|
120
|
+
clip-path: polygon(100% 0, 100% 0, 100% 100%, 100% 100%);
|
|
123
121
|
}
|
|
124
122
|
50% {
|
|
125
|
-
|
|
126
|
-
clip-path: polygon(0 0, 100% 0, 100% 100%, 0 100%);
|
|
123
|
+
clip-path: polygon(0 0, 100% 0, 100% 100%, 0 100%);
|
|
127
124
|
}
|
|
128
125
|
100% {
|
|
129
|
-
|
|
130
|
-
clip-path: polygon(0 0, 0% 0, 0% 100%, 0 100%);
|
|
126
|
+
clip-path: polygon(0 0, 0% 0, 0% 100%, 0 100%);
|
|
131
127
|
}
|
|
132
128
|
}
|
|
133
129
|
@keyframes skeletonFontAnimation {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
.dnb-skeleton{--skeleton-delay:5s}.dnb-skeleton img,.dnb-skeleton video{filter:brightness(0) contrast(0) opacity(.5)}.dnb-skeleton--block{display:block}.dnb-skeleton--overflow{overflow:hidden}.dnb-skeleton--grey{filter:grayscale(100%)}.dnb-skeleton--shape{background:transparent;box-shadow:none!important;color:transparent;overflow-x:hidden;pointer-events:none;position:relative}.dnb-skeleton--shape.dnb-skeleton:after,.dnb-skeleton--shape.dnb-skeleton:before{background:none!important;border-radius:inherit;bottom:0!important;box-shadow:none!important;content:""!important;height:auto!important;left:0!important;margin:0!important;padding:0!important;position:absolute!important;right:0!important;top:0!important;width:100%!important;z-index:100!important}.dnb-skeleton--shape.dnb-skeleton:before{background-color:var(--skeleton-color)!important}.dnb-skeleton--shape.dnb-skeleton:after{animation:skeletonLinearAnimation 1.5s linear infinite var(--skeleton-delay);background-image:repeating-linear-gradient(-45deg,var(--skeleton-color--contrast) 1px 2px,transparent 0 6px)!important;background-repeat:repeat!important;background-size:100%!important
|
|
1
|
+
.dnb-skeleton{--skeleton-delay:5s}.dnb-skeleton img,.dnb-skeleton video{filter:brightness(0) contrast(0) opacity(.5)}.dnb-skeleton--block{display:block}.dnb-skeleton--overflow{overflow:hidden}.dnb-skeleton--grey{filter:grayscale(100%)}.dnb-skeleton--shape{background:transparent;box-shadow:none!important;color:transparent;overflow-x:hidden;pointer-events:none;position:relative}.dnb-skeleton--shape.dnb-skeleton:after,.dnb-skeleton--shape.dnb-skeleton:before{background:none!important;border-radius:inherit;bottom:0!important;box-shadow:none!important;content:""!important;height:auto!important;left:0!important;margin:0!important;padding:0!important;position:absolute!important;right:0!important;top:0!important;width:100%!important;z-index:100!important}.dnb-skeleton--shape.dnb-skeleton:before{background-color:var(--skeleton-color)!important}.dnb-skeleton--shape.dnb-skeleton:after{animation:skeletonLinearAnimation 1.5s linear infinite var(--skeleton-delay);background-image:repeating-linear-gradient(-45deg,var(--skeleton-color--contrast) 1px 2px,transparent 0 6px)!important;background-repeat:repeat!important;background-size:100%!important;clip-path:polygon(100% 0,100% 0,100% 100%,100% 100%)}.dnb-skeleton--code code,.dnb-skeleton--code code *,.dnb-skeleton--code pre,.dnb-skeleton--code pre *,.dnb-skeleton--font code,.dnb-skeleton--font code *,.dnb-skeleton--font pre,.dnb-skeleton--font pre *{--font-family-monospace:"DNBMonoSkeleton"!important;box-shadow:none!important;font-family:var(--font-family-monospace)!important;font-style:unset!important}.dnb-skeleton--font,.dnb-skeleton--font .dnb-p,.dnb-skeleton--font .dnb-skeleton--show-font,.dnb-skeleton--font-only{--font-family-default:"DNBSkeleton"!important;font-family:var(--font-family-default)!important;font-style:unset!important;pointer-events:none}.dnb-skeleton--font .dnb-p::marker,.dnb-skeleton--font .dnb-skeleton--show-font::marker,.dnb-skeleton--font-only::marker,.dnb-skeleton--font::marker{color:var(--skeleton-color)}.dnb-skeleton--font,.dnb-skeleton--font .dnb-p,.dnb-skeleton--font .dnb-skeleton--show-font{-webkit-text-fill-color:transparent!important;--border-color:var(--skeleton-color);animation:skeletonFontAnimation 5s linear infinite var(--skeleton-delay);-webkit-background-clip:text!important;background-clip:text!important;background-color:var(--skeleton-color)!important;background-image:repeating-linear-gradient(-45deg,var(--skeleton-color--contrast) 1px 2px,transparent 0 6px)!important;background-position-x:30rem;background-position-y:50%!important;background-repeat:no-repeat!important;background-size:30rem 100%!important}html[data-visual-test] .dnb-skeleton--font,html[data-visual-test] .dnb-skeleton--font .dnb-p,html[data-visual-test] .dnb-skeleton--font .dnb-skeleton--show-font{animation:none!important}.dnb-skeleton__figure{border-radius:.25rem;position:relative}.dnb-skeleton__figure--circle{border-radius:50%;height:4rem;width:4rem}.dnb-skeleton__figure--product{align-items:center;display:flex}.dnb-skeleton__figure--product .dnb-skeleton__figure--circle+div{margin-left:1rem;width:50%}.dnb-skeleton--no-animation * .dnb-skeleton:after,.dnb-skeleton--no-animation .dnb-skeleton,.dnb-skeleton--no-animation .dnb-skeleton:after{animation:none!important}@keyframes skeletonLinearAnimation{0%{clip-path:polygon(100% 0,100% 0,100% 100%,100% 100%)}50%{clip-path:polygon(0 0,100% 0,100% 100%,0 100%)}to{clip-path:polygon(0 0,0 0,0 100%,0 100%)}}@keyframes skeletonFontAnimation{0%{background-position-x:30rem}to{background-position-x:-30rem}}@font-face{font-display:fallback;font-family:DNBSkeleton;font-style:normal;font-weight:400;src:url(../../assets/fonts/dnb/skeleton/DNB-Skeleton-Regular.woff2) format("woff2"),url(../../assets/fonts/dnb/skeleton/DNB-Skeleton-Regular.woff) format("woff"),url(../../assets/fonts/dnb/skeleton/DNB-Skeleton-Regular.ttf) format("truetype")}@font-face{font-display:fallback;font-family:DNBSkeleton;font-style:normal;font-weight:500;src:url(../../assets/fonts/dnb/skeleton/DNB-Skeleton-Medium.woff2) format("woff2"),url(../../assets/fonts/dnb/skeleton/DNB-Skeleton-Medium.woff) format("woff"),url(../../assets/fonts/dnb/skeleton/DNB-Skeleton-Medium.ttf) format("truetype")}@font-face{font-display:fallback;font-family:DNBSkeleton;font-style:normal;font-weight:600;src:url(../../assets/fonts/dnb/skeleton/DNB-Skeleton-Bold.woff2) format("woff2"),url(../../assets/fonts/dnb/skeleton/DNB-Skeleton-Bold.woff) format("woff"),url(../../assets/fonts/dnb/skeleton/DNB-Skeleton-Bold.ttf) format("truetype")}@font-face{font-display:fallback;font-family:DNBMonoSkeleton;font-style:normal;font-weight:400;src:url(../../assets/fonts/dnb/skeleton/DNBMono-Skeleton-Regular.woff2) format("woff2"),url(../../assets/fonts/dnb/skeleton/DNBMono-Skeleton-Regular.woff) format("woff"),url(../../assets/fonts/dnb/skeleton/DNBMono-Skeleton-Regular.ttf) format("truetype")}
|
|
@@ -27,7 +27,7 @@ export declare const createSpacingClasses: (props: SpacingProps
|
|
|
27
27
|
*/
|
|
28
28
|
| SpacingUnknownProps, Element?: any) => any[];
|
|
29
29
|
export declare const translateSpace: (type: SpaceType) => any;
|
|
30
|
-
export declare const splitTypes: (types: SpaceType | Array<SpaceType>) => SpaceType[];
|
|
30
|
+
export declare const splitTypes: (types: SpaceType | Array<SpaceType>) => SpaceType[] | (number | SpaceTypesPositiveValuesType)[];
|
|
31
31
|
export declare const sumTypes: (types: SpaceType | Array<SpaceType>) => any;
|
|
32
32
|
export declare const createTypeModifiers: (types: SpaceType) => Array<SpaceType>;
|
|
33
33
|
export declare const findType: (num: SpaceNumber) => SpaceType;
|
|
@@ -149,7 +149,7 @@ export const splitTypes = types => {
|
|
|
149
149
|
const test = types.split(/ /g);
|
|
150
150
|
return clean(test);
|
|
151
151
|
} else if (typeof types === 'boolean') {
|
|
152
|
-
return ['small'];
|
|
152
|
+
return [types ? 'small' : 0];
|
|
153
153
|
} else if (typeof types === 'number') {
|
|
154
154
|
return [types];
|
|
155
155
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"SpacingUtils.js","names":["warn","spacingDefaultProps","space","innerSpace","top","right","bottom","left","spacePatterns","small","medium","large","globalThis","CALC_CACHE","calc","_len","arguments","length","types","Array","_key","hash","join","result","forEach","rawTypes","createTypeModifiers","type","push","createSpacingProperties","props","computeProperties","hasMediaSize","media","keys","Object","includes","hasSize","size","_space","value","transformToAll","key","isValidSpaceProp","cur","name","String","typeModifiers","sum","sumTypes","createSpacingClasses","Element","undefined","p","isFrozen","_objectSpread","_p$left","_p$bottom","_p$right","_p$top","i","entries","reduce","acc","_ref","direction","nearestTypes","findNearestTypes","map","isInline","translateSpace","test","replace","splitTypes","split","clean","t","filter","r","firstLetter","parseFloat","num","foundType","findType","found","findTypeAll","listOfSpacePatterns","find","_ref2","k","v","multiply","res","near","reverse","_ref3","nearNum","nearType","leftOver","foundMoreTypes","index","indexOf","propName","removeSpaceProps","restProps","_objectWithoutProperties","_excluded","elementName"],"sources":["../../../../src/components/space/SpacingUtils.ts"],"sourcesContent":["/**\n * Space helper\n *\n */\n\nimport { warn } from '../../shared/component-helper'\n\nimport type {\n SpaceType,\n SpacingUnknownProps,\n SpacingProps,\n SpaceTypesPositiveValuesType,\n SpaceTypesPositiveRemValuesType,\n SpaceStringTypes,\n SpaceTypeMedia,\n SpaceTypeAll,\n SpacingElementProps,\n} from './types'\n\ntype SpaceNumber = number\n\nexport const spacingDefaultProps: SpacingProps = {\n space: null,\n innerSpace: null,\n top: null,\n right: null,\n bottom: null,\n left: null,\n}\n// IMPORTANT: Keep the shorthand after the long type names\nexport const spacePatterns: Record<\n SpaceTypesPositiveValuesType,\n SpaceTypesPositiveRemValuesType\n> = {\n 'xx-small': 0.25,\n 'x-small': 0.5,\n small: 1,\n medium: 1.5,\n large: 2,\n 'x-large': 3,\n 'xx-large': 3.5,\n 'xx-large-x2': 7,\n}\n\n/**\n * Helper function to generate a calc(var(--spacing-large) + var(--spacing-small))\n *\n * @param types 'small', '16px', '1rem'\n * @returns e.g. calc(var(--spacing-large) + var(--spacing-small))\n */\nglobalThis.CALC_CACHE = {}\nexport const calc = (...types: Array<SpaceType>) => {\n const hash = types.join('|')\n if (globalThis.CALC_CACHE[hash]) {\n return globalThis.CALC_CACHE[hash]\n }\n\n const result: Array<string> = []\n\n types.forEach((rawTypes) => {\n createTypeModifiers(rawTypes as SpaceType).forEach((type) => {\n result.push(`var(--spacing-${type})`)\n })\n })\n\n return result.length\n ? (globalThis.CALC_CACHE[hash] = `calc(${result.join(' + ')})`)\n : null\n}\n\n/**\n * Creates a valid space CSS style out from given space types\n *\n * @param props\n * @returns { '--space-b-l': '2rem', '--space-t-l': '1rem' }\n */\nexport const createSpacingProperties = (\n props: SpacingProps\n): React.CSSProperties => {\n if (props?.innerSpace) {\n return computeProperties(props.innerSpace)\n }\n\n return {}\n}\n\nfunction hasMediaSize(media: SpaceTypeMedia) {\n const keys = Object.keys(media)\n return (\n keys.includes('small') ||\n keys.includes('medium') ||\n keys.includes('large')\n )\n}\n\nfunction hasSize(space: SpacingElementProps) {\n const keys = Object.keys(space)\n return (\n keys.includes('top') ||\n keys.includes('right') ||\n keys.includes('bottom') ||\n keys.includes('left')\n )\n}\n\nfunction computeProperties(space: SpaceTypeAll | SpaceTypeMedia) {\n if (!hasMediaSize(space as SpaceTypeMedia)) {\n space = {\n small: space,\n medium: space,\n large: space,\n } as SpaceTypeMedia\n }\n\n const result = {}\n\n for (const size in space as SpaceTypeMedia) {\n const value = space?.[size] as SpaceType | SpacingElementProps\n const props = transformToAll(value)\n\n for (const key in props as SpaceTypeMedia) {\n if (isValidSpaceProp(key)) {\n const cur = props[key]\n const name = `--space-${key[0]}-${size[0]}`\n\n if (String(cur) === '0' || String(cur) === 'false') {\n result[name] = '0'\n } else if (cur) {\n const typeModifiers = createTypeModifiers(cur as SpaceType)\n const sum = sumTypes(typeModifiers)\n result[name] = `${sum}rem`\n }\n }\n }\n }\n\n return result as React.CSSProperties\n}\n\nfunction transformToAll(value: SpaceType | SpacingElementProps) {\n let result = value\n\n if (!hasSize(value as SpacingElementProps)) {\n result = {\n top: value,\n right: value,\n bottom: value,\n left: value,\n } as SpacingElementProps\n }\n\n return result as SpacingElementProps\n}\n\n/**\n * Creates a valid space CSS class out from given space types\n *\n * @param props\n * @param Element to check if it should be handled as inline\n * @returns \"dnb-space__large dnb-space__small\"\n */\nexport const createSpacingClasses = (\n props:\n | SpacingProps\n /**\n * To support typical not defined props form components\n */\n | SpacingUnknownProps,\n Element = null\n) => {\n const p = Object.isFrozen(props) ? { ...props } : props\n\n if (typeof p.space !== 'undefined') {\n if (\n typeof p.space === 'string' ||\n typeof p.space === 'number' ||\n (typeof p.space === 'boolean' && p.space)\n ) {\n p.left = p.left ?? p.space\n p.bottom = p.bottom ?? p.space\n p.right = p.right ?? p.space\n p.top = p.top ?? p.space\n }\n if (typeof p.space === 'object') {\n for (const i in p.space) {\n if (!p[i] && isValidSpaceProp(i)) {\n p[i] = p.space[i]\n }\n }\n }\n delete p.space\n }\n\n return Object.entries(p).reduce((acc, [direction, cur]) => {\n if (isValidSpaceProp(direction) && direction !== 'innerSpace') {\n if (String(cur) === '0' || String(cur) === 'false') {\n acc.push(`dnb-space__${direction}--zero`)\n } else if (cur) {\n const typeModifiers = createTypeModifiers(cur as SpaceType)\n\n // get the total sum\n const sum = sumTypes(typeModifiers)\n if (sum > 10) {\n warn(\n `Spacing of more than 10rem is not supported! You used ${sum} / (${typeModifiers.join(\n ','\n )})`\n )\n } else {\n // auto combine classes\n const nearestTypes = findNearestTypes(sum, true)\n\n acc = [\n ...acc,\n ...nearestTypes.map(\n (type) => `dnb-space__${direction}--${type}`\n ),\n ]\n }\n }\n } else if (direction === 'no_collapse') {\n acc.push('dnb-space--no-collapse')\n if (Element && isInline(Element)) {\n acc.push('dnb-space--inline')\n }\n }\n\n return acc\n }, [])\n}\n\n// @internal splits types by given string\nexport const translateSpace = (type: SpaceType) => {\n if (/-x2$/.test(String(type))) {\n return spacePatterns[String(type).replace(/-x2$/, '')] * 2\n }\n return spacePatterns[String(type)] || 0\n}\n\n// @internal Splits a string of: \"large x-small\" into an array of the same\nexport const splitTypes = (types: SpaceType | Array<SpaceType>) => {\n if (typeof types === 'string') {\n const test = (types as SpaceStringTypes).split(/ /g)\n return clean(test as Array<SpaceStringTypes>)\n } else if (typeof types === 'boolean') {\n return ['small' as SpaceTypesPositiveValuesType]\n } else if (typeof types === 'number') {\n return [types]\n }\n\n return clean(types) || null\n\n function clean(t: Array<SpaceType> | Array<SpaceStringTypes>) {\n return t?.filter((r) => r && String(r).length > 0)\n }\n}\n\n// @internal Sums e.g. \"large\" + \"x-small\" to be = 2.5rem\nexport const sumTypes = (types: SpaceType | Array<SpaceType>) =>\n splitTypes(types)\n .map((type) => translateSpace(type))\n .reduce((acc, cur) => {\n if (cur > 0) {\n acc += cur\n } else if (cur < 0) {\n acc -= cur\n }\n return acc\n }, 0)\n\n// @internal Returns an array with modifiers e.g. [\"large\", \"x-small\"]\nexport const createTypeModifiers = (\n types: SpaceType\n): Array<SpaceType> => {\n return (splitTypes(types) || []).reduce((acc, type) => {\n if (type) {\n const firstLetter = String(type)[0]\n if (parseFloat(firstLetter) > -1) {\n // can be \"2rem\" or \"32px\" - but we want only a number\n let num = parseFloat(String(type))\n\n // check if we got pixels\n if (num >= 8 && /[0-9]px/.test(String(type))) {\n num = num / 16\n }\n\n // check if the type exists in our extensions\n const foundType = findType(num)\n\n // get the type\n if (foundType) {\n type = foundType\n } else {\n findNearestTypes(num).forEach((type) => {\n if (type) {\n acc.push(type)\n }\n })\n }\n }\n\n if (!(parseFloat(String(type)) > 0)) {\n acc.push(type)\n }\n }\n return acc\n }, [])\n}\n\n// @internal Finds from \"2.0\" the equivalent type \"large\"\nexport const findType = (num: SpaceNumber): SpaceType => {\n const found = findTypeAll(num)\n\n // get the type\n if (found) {\n return found[0]\n }\n\n return null\n}\n\n// @internal Finds from \"2.0\" the equivalent type \"large\" and returns all results\nexport const findTypeAll = (\n num: SpaceNumber\n): Array<\n SpaceTypesPositiveValuesType | SpaceTypesPositiveRemValuesType\n> => {\n const listOfSpacePatterns = Object.entries(spacePatterns) as [\n SpaceTypesPositiveValuesType,\n SpaceTypesPositiveRemValuesType,\n ][]\n const found =\n listOfSpacePatterns.find(([k, v]) => k && v === num) || null\n return found\n}\n\n// @internal Finds from e.g. a value of \"2.5rem\" the nearest type = [\"large\", \"x-small\"]\nexport const findNearestTypes = (num: SpaceNumber, multiply = false) => {\n let res = []\n\n const near = Object.entries(spacePatterns)\n .reverse()\n .filter((k) => (multiply ? true : !k[0].includes('-x'))) // e.g. -x2\n .find(([k, v]) => k && num >= v)\n const nearNum = (near && near[1]) || num\n const types = findTypeAll(nearNum)\n\n if (types) {\n const nearType = types[0]\n res.push(nearType)\n const leftOver = num - parseFloat(String(types[1]))\n const foundMoreTypes = findNearestTypes(leftOver, multiply)\n\n // if the value already exists, then replace it with an x2\n foundMoreTypes.forEach((type) => {\n const index = res.indexOf(type)\n if (index !== -1) {\n res[index] = multiply ? `${type}-x2` : type\n }\n })\n\n res = [...res, ...foundMoreTypes]\n }\n\n return res\n}\n\n// @internal Checks if a space prop is a valid string like \"top\"\nexport const isValidSpaceProp = (propName: string) =>\n propName &&\n ['top', 'right', 'bottom', 'left', 'space', 'innerSpace'].includes(\n propName\n )\n\nexport const removeSpaceProps = <Props extends SpacingProps>(\n props: Props\n): Omit<Props, keyof SpacingProps> => {\n const { space, innerSpace, top, bottom, left, right, ...restProps } =\n props\n return restProps\n}\n\nexport const isInline = (elementName: string) => {\n switch (elementName) {\n case 'h1':\n case 'h2':\n case 'h3':\n case 'h4':\n case 'h5':\n case 'h6':\n case 'p':\n return true\n }\n\n return false\n}\n"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"SpacingUtils.js","names":["warn","spacingDefaultProps","space","innerSpace","top","right","bottom","left","spacePatterns","small","medium","large","globalThis","CALC_CACHE","calc","_len","arguments","length","types","Array","_key","hash","join","result","forEach","rawTypes","createTypeModifiers","type","push","createSpacingProperties","props","computeProperties","hasMediaSize","media","keys","Object","includes","hasSize","size","_space","value","transformToAll","key","isValidSpaceProp","cur","name","String","typeModifiers","sum","sumTypes","createSpacingClasses","Element","undefined","p","isFrozen","_objectSpread","_p$left","_p$bottom","_p$right","_p$top","i","entries","reduce","acc","_ref","direction","nearestTypes","findNearestTypes","map","isInline","translateSpace","test","replace","splitTypes","split","clean","t","filter","r","firstLetter","parseFloat","num","foundType","findType","found","findTypeAll","listOfSpacePatterns","find","_ref2","k","v","multiply","res","near","reverse","_ref3","nearNum","nearType","leftOver","foundMoreTypes","index","indexOf","propName","removeSpaceProps","restProps","_objectWithoutProperties","_excluded","elementName"],"sources":["../../../../src/components/space/SpacingUtils.ts"],"sourcesContent":["/**\n * Space helper\n *\n */\n\nimport { warn } from '../../shared/component-helper'\n\nimport type {\n SpaceType,\n SpacingUnknownProps,\n SpacingProps,\n SpaceTypesPositiveValuesType,\n SpaceTypesPositiveRemValuesType,\n SpaceStringTypes,\n SpaceTypeMedia,\n SpaceTypeAll,\n SpacingElementProps,\n} from './types'\n\ntype SpaceNumber = number\n\nexport const spacingDefaultProps: SpacingProps = {\n space: null,\n innerSpace: null,\n top: null,\n right: null,\n bottom: null,\n left: null,\n}\n// IMPORTANT: Keep the shorthand after the long type names\nexport const spacePatterns: Record<\n SpaceTypesPositiveValuesType,\n SpaceTypesPositiveRemValuesType\n> = {\n 'xx-small': 0.25,\n 'x-small': 0.5,\n small: 1,\n medium: 1.5,\n large: 2,\n 'x-large': 3,\n 'xx-large': 3.5,\n 'xx-large-x2': 7,\n}\n\n/**\n * Helper function to generate a calc(var(--spacing-large) + var(--spacing-small))\n *\n * @param types 'small', '16px', '1rem'\n * @returns e.g. calc(var(--spacing-large) + var(--spacing-small))\n */\nglobalThis.CALC_CACHE = {}\nexport const calc = (...types: Array<SpaceType>) => {\n const hash = types.join('|')\n if (globalThis.CALC_CACHE[hash]) {\n return globalThis.CALC_CACHE[hash]\n }\n\n const result: Array<string> = []\n\n types.forEach((rawTypes) => {\n createTypeModifiers(rawTypes as SpaceType).forEach((type) => {\n result.push(`var(--spacing-${type})`)\n })\n })\n\n return result.length\n ? (globalThis.CALC_CACHE[hash] = `calc(${result.join(' + ')})`)\n : null\n}\n\n/**\n * Creates a valid space CSS style out from given space types\n *\n * @param props\n * @returns { '--space-b-l': '2rem', '--space-t-l': '1rem' }\n */\nexport const createSpacingProperties = (\n props: SpacingProps\n): React.CSSProperties => {\n if (props?.innerSpace) {\n return computeProperties(props.innerSpace)\n }\n\n return {}\n}\n\nfunction hasMediaSize(media: SpaceTypeMedia) {\n const keys = Object.keys(media)\n return (\n keys.includes('small') ||\n keys.includes('medium') ||\n keys.includes('large')\n )\n}\n\nfunction hasSize(space: SpacingElementProps) {\n const keys = Object.keys(space)\n return (\n keys.includes('top') ||\n keys.includes('right') ||\n keys.includes('bottom') ||\n keys.includes('left')\n )\n}\n\nfunction computeProperties(space: SpaceTypeAll | SpaceTypeMedia) {\n if (!hasMediaSize(space as SpaceTypeMedia)) {\n space = {\n small: space,\n medium: space,\n large: space,\n } as SpaceTypeMedia\n }\n\n const result = {}\n\n for (const size in space as SpaceTypeMedia) {\n const value = space?.[size] as SpaceType | SpacingElementProps\n const props = transformToAll(value)\n\n for (const key in props as SpaceTypeMedia) {\n if (isValidSpaceProp(key)) {\n const cur = props[key]\n const name = `--space-${key[0]}-${size[0]}`\n\n if (String(cur) === '0' || String(cur) === 'false') {\n result[name] = '0'\n } else if (cur) {\n const typeModifiers = createTypeModifiers(cur as SpaceType)\n const sum = sumTypes(typeModifiers)\n result[name] = `${sum}rem`\n }\n }\n }\n }\n\n return result as React.CSSProperties\n}\n\nfunction transformToAll(value: SpaceType | SpacingElementProps) {\n let result = value\n\n if (!hasSize(value as SpacingElementProps)) {\n result = {\n top: value,\n right: value,\n bottom: value,\n left: value,\n } as SpacingElementProps\n }\n\n return result as SpacingElementProps\n}\n\n/**\n * Creates a valid space CSS class out from given space types\n *\n * @param props\n * @param Element to check if it should be handled as inline\n * @returns \"dnb-space__large dnb-space__small\"\n */\nexport const createSpacingClasses = (\n props:\n | SpacingProps\n /**\n * To support typical not defined props form components\n */\n | SpacingUnknownProps,\n Element = null\n) => {\n const p = Object.isFrozen(props) ? { ...props } : props\n\n if (typeof p.space !== 'undefined') {\n if (\n typeof p.space === 'string' ||\n typeof p.space === 'number' ||\n (typeof p.space === 'boolean' && p.space)\n ) {\n p.left = p.left ?? p.space\n p.bottom = p.bottom ?? p.space\n p.right = p.right ?? p.space\n p.top = p.top ?? p.space\n }\n if (typeof p.space === 'object') {\n for (const i in p.space) {\n if (!p[i] && isValidSpaceProp(i)) {\n p[i] = p.space[i]\n }\n }\n }\n delete p.space\n }\n\n return Object.entries(p).reduce((acc, [direction, cur]) => {\n if (isValidSpaceProp(direction) && direction !== 'innerSpace') {\n if (String(cur) === '0' || String(cur) === 'false') {\n acc.push(`dnb-space__${direction}--zero`)\n } else if (cur) {\n const typeModifiers = createTypeModifiers(cur as SpaceType)\n\n // get the total sum\n const sum = sumTypes(typeModifiers)\n if (sum > 10) {\n warn(\n `Spacing of more than 10rem is not supported! You used ${sum} / (${typeModifiers.join(\n ','\n )})`\n )\n } else {\n // auto combine classes\n const nearestTypes = findNearestTypes(sum, true)\n\n acc = [\n ...acc,\n ...nearestTypes.map(\n (type) => `dnb-space__${direction}--${type}`\n ),\n ]\n }\n }\n } else if (direction === 'no_collapse') {\n acc.push('dnb-space--no-collapse')\n if (Element && isInline(Element)) {\n acc.push('dnb-space--inline')\n }\n }\n\n return acc\n }, [])\n}\n\n// @internal splits types by given string\nexport const translateSpace = (type: SpaceType) => {\n if (/-x2$/.test(String(type))) {\n return spacePatterns[String(type).replace(/-x2$/, '')] * 2\n }\n return spacePatterns[String(type)] || 0\n}\n\n// @internal Splits a string of: \"large x-small\" into an array of the same\nexport const splitTypes = (types: SpaceType | Array<SpaceType>) => {\n if (typeof types === 'string') {\n const test = (types as SpaceStringTypes).split(/ /g)\n return clean(test as Array<SpaceStringTypes>)\n } else if (typeof types === 'boolean') {\n return [types ? ('small' as SpaceTypesPositiveValuesType) : 0]\n } else if (typeof types === 'number') {\n return [types]\n }\n\n return clean(types) || null\n\n function clean(t: Array<SpaceType> | Array<SpaceStringTypes>) {\n return t?.filter((r) => r && String(r).length > 0)\n }\n}\n\n// @internal Sums e.g. \"large\" + \"x-small\" to be = 2.5rem\nexport const sumTypes = (types: SpaceType | Array<SpaceType>) =>\n splitTypes(types)\n .map((type) => translateSpace(type))\n .reduce((acc, cur) => {\n if (cur > 0) {\n acc += cur\n } else if (cur < 0) {\n acc -= cur\n }\n return acc\n }, 0)\n\n// @internal Returns an array with modifiers e.g. [\"large\", \"x-small\"]\nexport const createTypeModifiers = (\n types: SpaceType\n): Array<SpaceType> => {\n return (splitTypes(types) || []).reduce((acc, type) => {\n if (type) {\n const firstLetter = String(type)[0]\n if (parseFloat(firstLetter) > -1) {\n // can be \"2rem\" or \"32px\" - but we want only a number\n let num = parseFloat(String(type))\n\n // check if we got pixels\n if (num >= 8 && /[0-9]px/.test(String(type))) {\n num = num / 16\n }\n\n // check if the type exists in our extensions\n const foundType = findType(num)\n\n // get the type\n if (foundType) {\n type = foundType\n } else {\n findNearestTypes(num).forEach((type) => {\n if (type) {\n acc.push(type)\n }\n })\n }\n }\n\n if (!(parseFloat(String(type)) > 0)) {\n acc.push(type)\n }\n }\n return acc\n }, [])\n}\n\n// @internal Finds from \"2.0\" the equivalent type \"large\"\nexport const findType = (num: SpaceNumber): SpaceType => {\n const found = findTypeAll(num)\n\n // get the type\n if (found) {\n return found[0]\n }\n\n return null\n}\n\n// @internal Finds from \"2.0\" the equivalent type \"large\" and returns all results\nexport const findTypeAll = (\n num: SpaceNumber\n): Array<\n SpaceTypesPositiveValuesType | SpaceTypesPositiveRemValuesType\n> => {\n const listOfSpacePatterns = Object.entries(spacePatterns) as [\n SpaceTypesPositiveValuesType,\n SpaceTypesPositiveRemValuesType,\n ][]\n const found =\n listOfSpacePatterns.find(([k, v]) => k && v === num) || null\n return found\n}\n\n// @internal Finds from e.g. a value of \"2.5rem\" the nearest type = [\"large\", \"x-small\"]\nexport const findNearestTypes = (num: SpaceNumber, multiply = false) => {\n let res = []\n\n const near = Object.entries(spacePatterns)\n .reverse()\n .filter((k) => (multiply ? true : !k[0].includes('-x'))) // e.g. -x2\n .find(([k, v]) => k && num >= v)\n const nearNum = (near && near[1]) || num\n const types = findTypeAll(nearNum)\n\n if (types) {\n const nearType = types[0]\n res.push(nearType)\n const leftOver = num - parseFloat(String(types[1]))\n const foundMoreTypes = findNearestTypes(leftOver, multiply)\n\n // if the value already exists, then replace it with an x2\n foundMoreTypes.forEach((type) => {\n const index = res.indexOf(type)\n if (index !== -1) {\n res[index] = multiply ? `${type}-x2` : type\n }\n })\n\n res = [...res, ...foundMoreTypes]\n }\n\n return res\n}\n\n// @internal Checks if a space prop is a valid string like \"top\"\nexport const isValidSpaceProp = (propName: string) =>\n propName &&\n ['top', 'right', 'bottom', 'left', 'space', 'innerSpace'].includes(\n propName\n )\n\nexport const removeSpaceProps = <Props extends SpacingProps>(\n props: Props\n): Omit<Props, keyof SpacingProps> => {\n const { space, innerSpace, top, bottom, left, right, ...restProps } =\n props\n return restProps\n}\n\nexport const isInline = (elementName: string) => {\n switch (elementName) {\n case 'h1':\n case 'h2':\n case 'h3':\n case 'h4':\n case 'h5':\n case 'h6':\n case 'p':\n return true\n }\n\n return false\n}\n"],"mappings":"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"}
|