@dnb/eufemia 10.6.0 → 10.7.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 +19 -0
- package/cjs/components/autocomplete/Autocomplete.d.ts +1 -1
- package/cjs/components/button/style/dnb-button--tertiary.css +53 -37
- package/cjs/components/button/style/dnb-button--tertiary.min.css +5 -1
- package/cjs/components/button/style/dnb-button--tertiary.scss +28 -34
- package/cjs/components/button/style/themes/button-mixins.scss +5 -3
- package/cjs/components/button/style/themes/dnb-button-theme-eiendom.css +53 -37
- package/cjs/components/button/style/themes/dnb-button-theme-eiendom.min.css +5 -1
- package/cjs/components/button/style/themes/dnb-button-theme-sbanken.css +155 -136
- package/cjs/components/button/style/themes/dnb-button-theme-sbanken.min.css +12 -2
- package/cjs/components/button/style/themes/dnb-button-theme-sbanken.scss +81 -115
- package/cjs/components/button/style/themes/dnb-button-theme-ui.css +53 -37
- package/cjs/components/button/style/themes/dnb-button-theme-ui.min.css +5 -1
- package/cjs/components/form-label/style/dnb-form-label.css +0 -1
- package/cjs/components/form-label/style/dnb-form-label.min.css +1 -1
- package/cjs/components/form-label/style/dnb-form-label.scss +0 -1
- package/cjs/components/form-label/style/themes/dnb-form-label-theme-sbanken.css +10 -0
- package/cjs/components/form-label/style/themes/dnb-form-label-theme-sbanken.min.css +1 -0
- package/cjs/components/form-label/style/themes/dnb-form-label-theme-sbanken.scss +16 -0
- package/cjs/components/form-label/style/themes/dnb-form-label-theme-ui.css +3 -0
- package/cjs/components/form-label/style/themes/dnb-form-label-theme-ui.min.css +1 -1
- package/cjs/components/form-label/style/themes/dnb-form-label-theme-ui.scss +6 -2
- package/cjs/components/form-row/style/themes/dnb-form-row-theme-sbanken.css +4 -0
- package/cjs/components/form-row/style/themes/dnb-form-row-theme-sbanken.min.css +0 -0
- package/cjs/components/form-row/style/themes/dnb-form-row-theme-sbanken.scss +4 -0
- package/cjs/components/input/style/themes/dnb-input-theme-sbanken.css +20 -20
- package/cjs/components/input/style/themes/dnb-input-theme-sbanken.min.css +1 -1
- package/cjs/components/input/style/themes/dnb-input-theme-sbanken.scss +15 -23
- package/cjs/components/pagination/style/dnb-pagination.css +20 -0
- package/cjs/components/pagination/style/dnb-pagination.min.css +1 -1
- package/cjs/components/pagination/style/dnb-pagination.scss +24 -0
- package/cjs/components/pagination/style/themes/dnb-pagination-theme-sbanken.css +26 -0
- package/cjs/components/pagination/style/themes/dnb-pagination-theme-sbanken.min.css +1 -0
- package/cjs/components/pagination/style/themes/dnb-pagination-theme-sbanken.scss +35 -0
- package/cjs/components/pagination/style/themes/dnb-pagination-theme-ui.css +0 -24
- package/cjs/components/pagination/style/themes/dnb-pagination-theme-ui.min.css +1 -1
- package/cjs/components/pagination/style/themes/dnb-pagination-theme-ui.scss +0 -30
- package/cjs/components/section/Section.d.ts +5 -0
- package/cjs/components/section/Section.js +3 -2
- package/cjs/components/section/Section.js.map +1 -1
- package/cjs/components/section/style/themes/dnb-section-theme-sbanken.css +39 -0
- package/cjs/components/section/style/themes/dnb-section-theme-sbanken.min.css +1 -0
- package/cjs/components/section/style/themes/dnb-section-theme-sbanken.scss +57 -0
- package/cjs/components/section/style/themes/dnb-section-theme-ui.css +19 -13
- package/cjs/components/section/style/themes/dnb-section-theme-ui.min.css +1 -1
- package/cjs/components/section/style/themes/dnb-section-theme-ui.scss +14 -5
- package/cjs/components/table/style/themes/dnb-table-theme-sbanken.css +56 -7
- package/cjs/components/table/style/themes/dnb-table-theme-sbanken.min.css +1 -1
- package/cjs/components/table/style/themes/dnb-table-theme-sbanken.scss +21 -5
- package/cjs/extensions/forms/DataContext/Provider.js +9 -9
- package/cjs/extensions/forms/DataContext/Provider.js.map +1 -1
- package/cjs/extensions/forms/Field/Number.js +4 -3
- package/cjs/extensions/forms/Field/Number.js.map +1 -1
- package/cjs/extensions/forms/Field/PhoneNumber.d.ts +1 -1
- package/cjs/extensions/forms/Field/PhoneNumber.js +1 -1
- package/cjs/extensions/forms/Field/PhoneNumber.js.map +1 -1
- package/cjs/extensions/forms/Field/PostalCodeAndCity.d.ts +1 -1
- package/cjs/extensions/forms/Field/PostalCodeAndCity.js +1 -1
- package/cjs/extensions/forms/Field/PostalCodeAndCity.js.map +1 -1
- package/cjs/extensions/forms/Field/Selection.d.ts +1 -1
- package/cjs/extensions/forms/Field/Selection.js +1 -1
- package/cjs/extensions/forms/Field/Selection.js.map +1 -1
- package/cjs/extensions/forms/Field/String.js +6 -5
- package/cjs/extensions/forms/Field/String.js.map +1 -1
- package/cjs/extensions/forms/Field/style/dnb-phone-number.css +3 -0
- package/cjs/extensions/forms/Field/style/dnb-phone-number.min.css +1 -1
- package/cjs/extensions/forms/Field/style/dnb-phone-number.scss +4 -0
- package/cjs/extensions/forms/Field/style/index.d.ts +2 -1
- package/cjs/extensions/forms/Field/style/index.js +2 -1
- package/cjs/extensions/forms/Field/style/index.js.map +1 -1
- package/cjs/extensions/forms/Field/style/index.scss +0 -2
- package/cjs/extensions/forms/FieldBlock/FieldBlock.d.ts +4 -0
- package/cjs/extensions/forms/FieldBlock/FieldBlock.js +7 -2
- package/cjs/extensions/forms/FieldBlock/FieldBlock.js.map +1 -1
- package/cjs/extensions/forms/FieldBlock/style/dnb-field-block.css +15 -0
- package/cjs/extensions/forms/FieldBlock/style/dnb-field-block.min.css +1 -1
- package/cjs/extensions/forms/FieldBlock/style/dnb-field-block.scss +26 -0
- package/cjs/extensions/forms/Layout/FlexContainer.js +2 -1
- package/cjs/extensions/forms/Layout/FlexContainer.js.map +1 -1
- package/cjs/extensions/forms/Layout/SubHeading.js +2 -1
- package/cjs/extensions/forms/Layout/SubHeading.js.map +1 -1
- package/cjs/extensions/forms/style/dnb-forms.css +18 -24
- package/cjs/extensions/forms/style/dnb-forms.min.css +1 -1
- package/cjs/extensions/payment-card/PaymentCard.d.ts +6 -2
- package/cjs/extensions/payment-card/PaymentCard.js +13 -2
- package/cjs/extensions/payment-card/PaymentCard.js.map +1 -1
- package/cjs/extensions/payment-card/icons/CardIn.d.ts +2 -0
- package/cjs/extensions/payment-card/icons/CardIn.js +26 -0
- package/cjs/extensions/payment-card/icons/CardIn.js.map +1 -0
- package/cjs/extensions/payment-card/icons/index.js +4 -1
- package/cjs/extensions/payment-card/icons/index.js.map +1 -1
- package/cjs/extensions/payment-card/style/dnb-payment-card.css +3 -2
- package/cjs/extensions/payment-card/style/dnb-payment-card.min.css +1 -1
- package/cjs/extensions/payment-card/style/dnb-payment-card.scss +2 -2
- 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/locales/en-GB.d.ts +1 -0
- package/cjs/shared/locales/en-GB.js +2 -1
- package/cjs/shared/locales/en-GB.js.map +1 -1
- package/cjs/shared/locales/en-US.d.ts +1 -0
- package/cjs/shared/locales/index.d.ts +2 -0
- package/cjs/shared/locales/nb-NO.d.ts +1 -0
- package/cjs/shared/locales/nb-NO.js +2 -1
- package/cjs/shared/locales/nb-NO.js.map +1 -1
- package/cjs/style/dnb-ui-components.css +19 -1
- package/cjs/style/dnb-ui-components.min.css +1 -1
- package/cjs/style/dnb-ui-extensions.css +21 -26
- package/cjs/style/dnb-ui-extensions.min.css +1 -1
- package/cjs/style/themes/theme-eiendom/eiendom-theme-components.css +147 -111
- package/cjs/style/themes/theme-eiendom/eiendom-theme-components.min.css +5 -1
- package/cjs/style/themes/theme-eiendom/eiendom-theme-extensions.css +21 -26
- package/cjs/style/themes/theme-eiendom/eiendom-theme-extensions.min.css +1 -1
- package/cjs/style/themes/theme-sbanken/sbanken-theme-components.css +332 -364
- package/cjs/style/themes/theme-sbanken/sbanken-theme-components.min.css +12 -2
- package/cjs/style/themes/theme-sbanken/sbanken-theme-components.scss +4 -4
- package/cjs/style/themes/theme-sbanken/sbanken-theme-extensions.css +21 -26
- package/cjs/style/themes/theme-sbanken/sbanken-theme-extensions.min.css +1 -1
- package/cjs/style/themes/theme-ui/ui-theme-components.css +94 -74
- package/cjs/style/themes/theme-ui/ui-theme-components.min.css +5 -1
- package/cjs/style/themes/theme-ui/ui-theme-extensions.css +21 -26
- package/cjs/style/themes/theme-ui/ui-theme-extensions.min.css +1 -1
- package/components/autocomplete/Autocomplete.d.ts +1 -1
- package/components/button/style/dnb-button--tertiary.css +53 -37
- package/components/button/style/dnb-button--tertiary.min.css +5 -1
- package/components/button/style/dnb-button--tertiary.scss +28 -34
- package/components/button/style/themes/button-mixins.scss +5 -3
- package/components/button/style/themes/dnb-button-theme-eiendom.css +53 -37
- package/components/button/style/themes/dnb-button-theme-eiendom.min.css +5 -1
- package/components/button/style/themes/dnb-button-theme-sbanken.css +155 -136
- package/components/button/style/themes/dnb-button-theme-sbanken.min.css +12 -2
- package/components/button/style/themes/dnb-button-theme-sbanken.scss +81 -115
- package/components/button/style/themes/dnb-button-theme-ui.css +53 -37
- package/components/button/style/themes/dnb-button-theme-ui.min.css +5 -1
- package/components/form-label/style/dnb-form-label.css +0 -1
- package/components/form-label/style/dnb-form-label.min.css +1 -1
- package/components/form-label/style/dnb-form-label.scss +0 -1
- package/components/form-label/style/themes/dnb-form-label-theme-sbanken.css +10 -0
- package/components/form-label/style/themes/dnb-form-label-theme-sbanken.min.css +1 -0
- package/components/form-label/style/themes/dnb-form-label-theme-sbanken.scss +16 -0
- package/components/form-label/style/themes/dnb-form-label-theme-ui.css +3 -0
- package/components/form-label/style/themes/dnb-form-label-theme-ui.min.css +1 -1
- package/components/form-label/style/themes/dnb-form-label-theme-ui.scss +6 -2
- package/components/form-row/style/themes/dnb-form-row-theme-sbanken.css +4 -0
- package/components/form-row/style/themes/dnb-form-row-theme-sbanken.min.css +0 -0
- package/components/form-row/style/themes/dnb-form-row-theme-sbanken.scss +4 -0
- package/components/input/style/themes/dnb-input-theme-sbanken.css +20 -20
- package/components/input/style/themes/dnb-input-theme-sbanken.min.css +1 -1
- package/components/input/style/themes/dnb-input-theme-sbanken.scss +15 -23
- package/components/pagination/style/dnb-pagination.css +20 -0
- package/components/pagination/style/dnb-pagination.min.css +1 -1
- package/components/pagination/style/dnb-pagination.scss +24 -0
- package/components/pagination/style/themes/dnb-pagination-theme-sbanken.css +26 -0
- package/components/pagination/style/themes/dnb-pagination-theme-sbanken.min.css +1 -0
- package/components/pagination/style/themes/dnb-pagination-theme-sbanken.scss +35 -0
- package/components/pagination/style/themes/dnb-pagination-theme-ui.css +0 -24
- package/components/pagination/style/themes/dnb-pagination-theme-ui.min.css +1 -1
- package/components/pagination/style/themes/dnb-pagination-theme-ui.scss +0 -30
- package/components/section/Section.d.ts +5 -0
- package/components/section/Section.js +3 -2
- package/components/section/Section.js.map +1 -1
- package/components/section/style/themes/dnb-section-theme-sbanken.css +39 -0
- package/components/section/style/themes/dnb-section-theme-sbanken.min.css +1 -0
- package/components/section/style/themes/dnb-section-theme-sbanken.scss +57 -0
- package/components/section/style/themes/dnb-section-theme-ui.css +19 -13
- package/components/section/style/themes/dnb-section-theme-ui.min.css +1 -1
- package/components/section/style/themes/dnb-section-theme-ui.scss +14 -5
- package/components/table/style/themes/dnb-table-theme-sbanken.css +56 -7
- package/components/table/style/themes/dnb-table-theme-sbanken.min.css +1 -1
- package/components/table/style/themes/dnb-table-theme-sbanken.scss +21 -5
- package/es/components/autocomplete/Autocomplete.d.ts +1 -1
- package/es/components/button/style/dnb-button--tertiary.css +53 -37
- package/es/components/button/style/dnb-button--tertiary.min.css +5 -1
- package/es/components/button/style/dnb-button--tertiary.scss +28 -34
- package/es/components/button/style/themes/button-mixins.scss +5 -3
- package/es/components/button/style/themes/dnb-button-theme-eiendom.css +53 -37
- package/es/components/button/style/themes/dnb-button-theme-eiendom.min.css +5 -1
- package/es/components/button/style/themes/dnb-button-theme-sbanken.css +155 -136
- package/es/components/button/style/themes/dnb-button-theme-sbanken.min.css +12 -2
- package/es/components/button/style/themes/dnb-button-theme-sbanken.scss +81 -115
- package/es/components/button/style/themes/dnb-button-theme-ui.css +53 -37
- package/es/components/button/style/themes/dnb-button-theme-ui.min.css +5 -1
- package/es/components/form-label/style/dnb-form-label.css +0 -1
- package/es/components/form-label/style/dnb-form-label.min.css +1 -1
- package/es/components/form-label/style/dnb-form-label.scss +0 -1
- package/es/components/form-label/style/themes/dnb-form-label-theme-sbanken.css +10 -0
- package/es/components/form-label/style/themes/dnb-form-label-theme-sbanken.min.css +1 -0
- package/es/components/form-label/style/themes/dnb-form-label-theme-sbanken.scss +16 -0
- package/es/components/form-label/style/themes/dnb-form-label-theme-ui.css +3 -0
- package/es/components/form-label/style/themes/dnb-form-label-theme-ui.min.css +1 -1
- package/es/components/form-label/style/themes/dnb-form-label-theme-ui.scss +6 -2
- package/es/components/form-row/style/themes/dnb-form-row-theme-sbanken.css +4 -0
- package/es/components/form-row/style/themes/dnb-form-row-theme-sbanken.min.css +0 -0
- package/es/components/form-row/style/themes/dnb-form-row-theme-sbanken.scss +4 -0
- package/es/components/input/style/themes/dnb-input-theme-sbanken.css +20 -20
- package/es/components/input/style/themes/dnb-input-theme-sbanken.min.css +1 -1
- package/es/components/input/style/themes/dnb-input-theme-sbanken.scss +15 -23
- package/es/components/pagination/style/dnb-pagination.css +20 -0
- package/es/components/pagination/style/dnb-pagination.min.css +1 -1
- package/es/components/pagination/style/dnb-pagination.scss +24 -0
- package/es/components/pagination/style/themes/dnb-pagination-theme-sbanken.css +26 -0
- package/es/components/pagination/style/themes/dnb-pagination-theme-sbanken.min.css +1 -0
- package/es/components/pagination/style/themes/dnb-pagination-theme-sbanken.scss +35 -0
- package/es/components/pagination/style/themes/dnb-pagination-theme-ui.css +0 -24
- package/es/components/pagination/style/themes/dnb-pagination-theme-ui.min.css +1 -1
- package/es/components/pagination/style/themes/dnb-pagination-theme-ui.scss +0 -30
- package/es/components/section/Section.d.ts +5 -0
- package/es/components/section/Section.js +3 -2
- package/es/components/section/Section.js.map +1 -1
- package/es/components/section/style/themes/dnb-section-theme-sbanken.css +39 -0
- package/es/components/section/style/themes/dnb-section-theme-sbanken.min.css +1 -0
- package/es/components/section/style/themes/dnb-section-theme-sbanken.scss +57 -0
- package/es/components/section/style/themes/dnb-section-theme-ui.css +19 -13
- package/es/components/section/style/themes/dnb-section-theme-ui.min.css +1 -1
- package/es/components/section/style/themes/dnb-section-theme-ui.scss +14 -5
- package/es/components/table/style/themes/dnb-table-theme-sbanken.css +56 -7
- package/es/components/table/style/themes/dnb-table-theme-sbanken.min.css +1 -1
- package/es/components/table/style/themes/dnb-table-theme-sbanken.scss +21 -5
- package/es/extensions/forms/DataContext/Provider.js +9 -9
- package/es/extensions/forms/DataContext/Provider.js.map +1 -1
- package/es/extensions/forms/Field/Number.js +4 -3
- package/es/extensions/forms/Field/Number.js.map +1 -1
- package/es/extensions/forms/Field/PhoneNumber.d.ts +1 -1
- package/es/extensions/forms/Field/PhoneNumber.js +1 -1
- package/es/extensions/forms/Field/PhoneNumber.js.map +1 -1
- package/es/extensions/forms/Field/PostalCodeAndCity.d.ts +1 -1
- package/es/extensions/forms/Field/PostalCodeAndCity.js +1 -1
- package/es/extensions/forms/Field/PostalCodeAndCity.js.map +1 -1
- package/es/extensions/forms/Field/Selection.d.ts +1 -1
- package/es/extensions/forms/Field/Selection.js +1 -1
- package/es/extensions/forms/Field/Selection.js.map +1 -1
- package/es/extensions/forms/Field/String.js +6 -5
- package/es/extensions/forms/Field/String.js.map +1 -1
- package/es/extensions/forms/Field/style/dnb-phone-number.css +3 -0
- package/es/extensions/forms/Field/style/dnb-phone-number.min.css +1 -1
- package/es/extensions/forms/Field/style/dnb-phone-number.scss +4 -0
- package/es/extensions/forms/Field/style/index.d.ts +2 -1
- package/es/extensions/forms/Field/style/index.js +2 -1
- package/es/extensions/forms/Field/style/index.js.map +1 -1
- package/es/extensions/forms/Field/style/index.scss +0 -2
- package/es/extensions/forms/FieldBlock/FieldBlock.d.ts +4 -0
- package/es/extensions/forms/FieldBlock/FieldBlock.js +7 -2
- package/es/extensions/forms/FieldBlock/FieldBlock.js.map +1 -1
- package/es/extensions/forms/FieldBlock/style/dnb-field-block.css +15 -0
- package/es/extensions/forms/FieldBlock/style/dnb-field-block.min.css +1 -1
- package/es/extensions/forms/FieldBlock/style/dnb-field-block.scss +26 -0
- package/es/extensions/forms/Layout/FlexContainer.js +2 -1
- package/es/extensions/forms/Layout/FlexContainer.js.map +1 -1
- package/es/extensions/forms/Layout/SubHeading.js +2 -1
- package/es/extensions/forms/Layout/SubHeading.js.map +1 -1
- package/es/extensions/forms/style/dnb-forms.css +18 -24
- package/es/extensions/forms/style/dnb-forms.min.css +1 -1
- package/es/extensions/payment-card/PaymentCard.d.ts +6 -2
- package/es/extensions/payment-card/PaymentCard.js +13 -2
- package/es/extensions/payment-card/PaymentCard.js.map +1 -1
- package/es/extensions/payment-card/icons/CardIn.d.ts +2 -0
- package/es/extensions/payment-card/icons/CardIn.js +18 -0
- package/es/extensions/payment-card/icons/CardIn.js.map +1 -0
- package/es/extensions/payment-card/icons/index.js +4 -1
- package/es/extensions/payment-card/icons/index.js.map +1 -1
- package/es/extensions/payment-card/style/dnb-payment-card.css +3 -2
- package/es/extensions/payment-card/style/dnb-payment-card.min.css +1 -1
- package/es/extensions/payment-card/style/dnb-payment-card.scss +2 -2
- 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/locales/en-GB.d.ts +1 -0
- package/es/shared/locales/en-GB.js +2 -1
- package/es/shared/locales/en-GB.js.map +1 -1
- package/es/shared/locales/en-US.d.ts +1 -0
- package/es/shared/locales/index.d.ts +2 -0
- package/es/shared/locales/nb-NO.d.ts +1 -0
- package/es/shared/locales/nb-NO.js +2 -1
- package/es/shared/locales/nb-NO.js.map +1 -1
- package/es/style/dnb-ui-components.css +19 -1
- package/es/style/dnb-ui-components.min.css +1 -1
- package/es/style/dnb-ui-extensions.css +21 -26
- package/es/style/dnb-ui-extensions.min.css +1 -1
- package/es/style/themes/theme-eiendom/eiendom-theme-components.css +147 -111
- package/es/style/themes/theme-eiendom/eiendom-theme-components.min.css +5 -1
- package/es/style/themes/theme-eiendom/eiendom-theme-extensions.css +21 -26
- package/es/style/themes/theme-eiendom/eiendom-theme-extensions.min.css +1 -1
- package/es/style/themes/theme-sbanken/sbanken-theme-components.css +332 -364
- package/es/style/themes/theme-sbanken/sbanken-theme-components.min.css +12 -2
- package/es/style/themes/theme-sbanken/sbanken-theme-components.scss +4 -4
- package/es/style/themes/theme-sbanken/sbanken-theme-extensions.css +21 -26
- package/es/style/themes/theme-sbanken/sbanken-theme-extensions.min.css +1 -1
- package/es/style/themes/theme-ui/ui-theme-components.css +94 -74
- package/es/style/themes/theme-ui/ui-theme-components.min.css +5 -1
- package/es/style/themes/theme-ui/ui-theme-extensions.css +21 -26
- package/es/style/themes/theme-ui/ui-theme-extensions.min.css +1 -1
- package/esm/dnb-ui-basis.min.mjs +1 -1
- package/esm/dnb-ui-components.min.mjs +1 -1
- package/esm/dnb-ui-elements.min.mjs +1 -1
- package/esm/dnb-ui-extensions.min.mjs +2 -2
- package/esm/dnb-ui-lib.min.mjs +1 -1
- package/extensions/forms/DataContext/Provider.js +9 -9
- package/extensions/forms/DataContext/Provider.js.map +1 -1
- package/extensions/forms/Field/Number.js +4 -3
- package/extensions/forms/Field/Number.js.map +1 -1
- package/extensions/forms/Field/PhoneNumber.d.ts +1 -1
- package/extensions/forms/Field/PhoneNumber.js +1 -1
- package/extensions/forms/Field/PhoneNumber.js.map +1 -1
- package/extensions/forms/Field/PostalCodeAndCity.d.ts +1 -1
- package/extensions/forms/Field/PostalCodeAndCity.js +1 -1
- package/extensions/forms/Field/PostalCodeAndCity.js.map +1 -1
- package/extensions/forms/Field/Selection.d.ts +1 -1
- package/extensions/forms/Field/Selection.js +1 -1
- package/extensions/forms/Field/Selection.js.map +1 -1
- package/extensions/forms/Field/String.js +6 -5
- package/extensions/forms/Field/String.js.map +1 -1
- package/extensions/forms/Field/style/dnb-phone-number.css +3 -0
- package/extensions/forms/Field/style/dnb-phone-number.min.css +1 -1
- package/extensions/forms/Field/style/dnb-phone-number.scss +4 -0
- package/extensions/forms/Field/style/index.d.ts +2 -1
- package/extensions/forms/Field/style/index.js +2 -1
- package/extensions/forms/Field/style/index.js.map +1 -1
- package/extensions/forms/Field/style/index.scss +0 -2
- package/extensions/forms/FieldBlock/FieldBlock.d.ts +4 -0
- package/extensions/forms/FieldBlock/FieldBlock.js +7 -2
- package/extensions/forms/FieldBlock/FieldBlock.js.map +1 -1
- package/extensions/forms/FieldBlock/style/dnb-field-block.css +15 -0
- package/extensions/forms/FieldBlock/style/dnb-field-block.min.css +1 -1
- package/extensions/forms/FieldBlock/style/dnb-field-block.scss +26 -0
- package/extensions/forms/Layout/FlexContainer.js +2 -1
- package/extensions/forms/Layout/FlexContainer.js.map +1 -1
- package/extensions/forms/Layout/SubHeading.js +2 -1
- package/extensions/forms/Layout/SubHeading.js.map +1 -1
- package/extensions/forms/style/dnb-forms.css +18 -24
- package/extensions/forms/style/dnb-forms.min.css +1 -1
- package/extensions/payment-card/PaymentCard.d.ts +6 -2
- package/extensions/payment-card/PaymentCard.js +13 -2
- package/extensions/payment-card/PaymentCard.js.map +1 -1
- package/extensions/payment-card/icons/CardIn.d.ts +2 -0
- package/extensions/payment-card/icons/CardIn.js +18 -0
- package/extensions/payment-card/icons/CardIn.js.map +1 -0
- package/extensions/payment-card/icons/index.js +4 -1
- package/extensions/payment-card/icons/index.js.map +1 -1
- package/extensions/payment-card/style/dnb-payment-card.css +3 -2
- package/extensions/payment-card/style/dnb-payment-card.min.css +1 -1
- package/extensions/payment-card/style/dnb-payment-card.scss +2 -2
- 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/locales/en-GB.d.ts +1 -0
- package/shared/locales/en-GB.js +2 -1
- package/shared/locales/en-GB.js.map +1 -1
- package/shared/locales/en-US.d.ts +1 -0
- package/shared/locales/index.d.ts +2 -0
- package/shared/locales/nb-NO.d.ts +1 -0
- package/shared/locales/nb-NO.js +2 -1
- package/shared/locales/nb-NO.js.map +1 -1
- package/style/dnb-ui-components.css +19 -1
- package/style/dnb-ui-components.min.css +1 -1
- package/style/dnb-ui-extensions.css +21 -26
- package/style/dnb-ui-extensions.min.css +1 -1
- package/style/themes/theme-eiendom/eiendom-theme-components.css +147 -111
- package/style/themes/theme-eiendom/eiendom-theme-components.min.css +5 -1
- package/style/themes/theme-eiendom/eiendom-theme-extensions.css +21 -26
- package/style/themes/theme-eiendom/eiendom-theme-extensions.min.css +1 -1
- package/style/themes/theme-sbanken/sbanken-theme-components.css +332 -364
- package/style/themes/theme-sbanken/sbanken-theme-components.min.css +12 -2
- package/style/themes/theme-sbanken/sbanken-theme-components.scss +4 -4
- package/style/themes/theme-sbanken/sbanken-theme-extensions.css +21 -26
- package/style/themes/theme-sbanken/sbanken-theme-extensions.min.css +1 -1
- package/style/themes/theme-ui/ui-theme-components.css +94 -74
- package/style/themes/theme-ui/ui-theme-components.min.css +5 -1
- package/style/themes/theme-ui/ui-theme-extensions.css +21 -26
- package/style/themes/theme-ui/ui-theme-extensions.min.css +1 -1
- package/umd/dnb-ui-basis.min.js +1 -1
- package/umd/dnb-ui-components.min.js +1 -1
- package/umd/dnb-ui-elements.min.js +1 -1
- package/umd/dnb-ui-extensions.min.js +1 -1
- package/umd/dnb-ui-lib.min.js +1 -1
- package/cjs/extensions/forms/Field/style/dnb-number.css +0 -11
- package/cjs/extensions/forms/Field/style/dnb-number.min.css +0 -1
- package/cjs/extensions/forms/Field/style/dnb-number.scss +0 -19
- package/cjs/extensions/forms/Field/style/dnb-string.css +0 -11
- package/cjs/extensions/forms/Field/style/dnb-string.min.css +0 -1
- package/cjs/extensions/forms/Field/style/dnb-string.scss +0 -19
- package/es/extensions/forms/Field/style/dnb-number.css +0 -11
- package/es/extensions/forms/Field/style/dnb-number.min.css +0 -1
- package/es/extensions/forms/Field/style/dnb-number.scss +0 -19
- package/es/extensions/forms/Field/style/dnb-string.css +0 -11
- package/es/extensions/forms/Field/style/dnb-string.min.css +0 -1
- package/es/extensions/forms/Field/style/dnb-string.scss +0 -19
- package/extensions/forms/Field/style/dnb-number.css +0 -11
- package/extensions/forms/Field/style/dnb-number.min.css +0 -1
- package/extensions/forms/Field/style/dnb-number.scss +0 -19
- package/extensions/forms/Field/style/dnb-string.css +0 -11
- package/extensions/forms/Field/style/dnb-string.min.css +0 -1
- package/extensions/forms/Field/style/dnb-string.scss +0 -19
|
@@ -1 +1 @@
|
|
|
1
|
-
.dnb-section--divider{color:var(--color-black-80)}.dnb-section--divider:after{box-shadow:99vw 0 0 0 currentcolor,198vw 0 0 0 currentcolor,297vw 0 0 0 currentcolor,396vw 0 0 0 currentcolor,0 .0625rem 0 0 var(--color-mint-green-50),99vw .0625rem 0 0 var(--color-mint-green-50),0 -.0625rem 0 0 var(--color-mint-green-50),99vw -.0625rem 0 0 var(--color-mint-green-50),198vw .0625rem 0 0 var(--color-mint-green-50),198vw -.0625rem 0 0 var(--color-mint-green-50);color:var(--color-white)}.dnb-section--transparent:after{color:transparent}.dnb-section--mint-green-12{color:var(--color-black-80)}.dnb-section--mint-green-12:after{color:var(--color-mint-green-12)}.dnb-section--white{color:var(--color-black-80)}.dnb-section--white:after{color:var(--color-white)}.dnb-section--mint-green{color:var(--color-black-80)}.dnb-section--mint-green:after{color:var(--color-mint-green)}.dnb-section--lavender{color:var(--color-black-80)}.dnb-section--lavender:after{color:var(--color-lavender)}.dnb-section--sand-yellow{color:var(--color-black-80)}.dnb-section--sand-yellow:after{color:var(--color-sand-yellow)}.dnb-section--pistachio{color:var(--color-black-80)}.dnb-section--pistachio:after{color:var(--color-pistachio)}.dnb-section--black-3{color:var(--color-black-80)}.dnb-section--black-3:after{color:var(--color-black-3)}.dnb-section--emerald-green{color:var(--color-mint-green)}.dnb-section--emerald-green:after{color:var(--color-emerald-green)}.dnb-section--sea-green{color:var(--color-white)}.dnb-section--sea-green:after{color:var(--color-sea-green)}.dnb-section--fire-red{color:var(--color-white)}.dnb-section--fire-red:after{color:var(--color-fire-red)}.dnb-section--fire-red-8{color:var(--color-black-80)}.dnb-section--fire-red-8:after{color:var(--color-fire-red-8)}.dnb-section--emerald-green .dnb-anchor,.dnb-section--fire-red .dnb-anchor,.dnb-section--sea-green .dnb-anchor{color:var(--color-white)}.dnb-section--emerald-green .dnb-anchor:hover,.dnb-section--fire-red .dnb-anchor:hover,.dnb-section--sea-green .dnb-anchor:hover{box-shadow:inset 100vw 100vw 0 0 var(--color-white),-.125em 0 0 0 var(--color-white),.125em 0 0 0 var(--color-white);color:var(--color-emerald-green)}.dnb-section--emerald-green .dnb-anchor:active,.dnb-section--fire-red .dnb-anchor:active,.dnb-section--sea-green .dnb-anchor:active{background-color:transparent;box-shadow:inset 100vw 100vw 0 0 transparent,-.125em 0 0 0 transparent,.125em 0 0 0 transparent;color:var(--color-white)}.dnb-section--emerald-green .dnb-anchor.focus-visible,.dnb-section--fire-red .dnb-anchor.focus-visible,.dnb-section--sea-green .dnb-anchor.focus-visible{--border-color:var(--color-white);--border-width:var(--focus-ring-width);background-color:transparent;border-color:transparent;box-shadow:0 0 0 var(--border-width) var(--border-color);color:var(--color-white);outline:none}.dnb-section--emerald-green .dnb-anchor:focus-visible,.dnb-section--fire-red .dnb-anchor:focus-visible,.dnb-section--sea-green .dnb-anchor:focus-visible{--border-color:var(--color-white);--border-width:var(--focus-ring-width);background-color:transparent;border-color:transparent;box-shadow:0 0 0 var(--border-width) var(--border-color);color:var(--color-white);outline:none}.dnb-section--emerald-green .dnb-button--tertiary,.dnb-section--emerald-green .dnb-button--tertiary:hover,.dnb-section--fire-red .dnb-button--tertiary,.dnb-section--fire-red .dnb-button--tertiary:hover,.dnb-section--sea-green .dnb-button--tertiary,.dnb-section--sea-green .dnb-button--tertiary:hover{color:var(--color-white)}.dnb-section--emerald-green .dnb-button--tertiary:hover .dnb-button__text:after,.dnb-section--fire-red .dnb-button--tertiary:hover .dnb-button__text:after,.dnb-section--sea-green .dnb-button--tertiary:hover .dnb-button__text:after{color:var(--color-white)!important}.dnb-section--emerald-green .dnb-button--tertiary:focus,.dnb-section--fire-red .dnb-button--tertiary:focus,.dnb-section--sea-green .dnb-button--tertiary:focus{color:var(--color-white)}.dnb-section--emerald-green .dnb-button--tertiary:focus:before,.dnb-section--fire-red .dnb-button--tertiary:focus:before,.dnb-section--sea-green .dnb-button--tertiary:focus:before{outline:none}html[data-whatinput=keyboard] .dnb-section--emerald-green .dnb-button--tertiary:focus:before,html[data-whatinput=keyboard] .dnb-section--fire-red .dnb-button--tertiary:focus:before,html[data-whatinput=keyboard] .dnb-section--sea-green .dnb-button--tertiary:focus:before{--border-color:var(--color-white);--border-width:var(--focus-ring-width);border-color:transparent;box-shadow:0 0 0 var(--border-width) var(--border-color)}.dnb-section--fire-red ::selection,.dnb-section--mint-green ::selection{background-color:var(--color-white)}
|
|
1
|
+
.dnb-section--divider{color:var(--color-black-80)}.dnb-section--divider:after{box-shadow:99vw 0 0 0 currentcolor,198vw 0 0 0 currentcolor,297vw 0 0 0 currentcolor,396vw 0 0 0 currentcolor,0 .0625rem 0 0 var(--color-mint-green-50),99vw .0625rem 0 0 var(--color-mint-green-50),0 -.0625rem 0 0 var(--color-mint-green-50),99vw -.0625rem 0 0 var(--color-mint-green-50),198vw .0625rem 0 0 var(--color-mint-green-50),198vw -.0625rem 0 0 var(--color-mint-green-50);color:var(--color-white)}.dnb-section--transparent:after{color:transparent}.dnb-section--default,.dnb-section--mint-green-12{color:var(--color-black-80)}.dnb-section--default:after,.dnb-section--mint-green-12:after{color:var(--color-mint-green-12)}.dnb-section--white{color:var(--color-black-80)}.dnb-section--white:after{color:var(--color-white)}.dnb-section--mint-green{color:var(--color-black-80)}.dnb-section--mint-green:after{color:var(--color-mint-green)}.dnb-section--lavender{color:var(--color-black-80)}.dnb-section--lavender:after{color:var(--color-lavender)}.dnb-section--sand-yellow,.dnb-section--warning{color:var(--color-black-80)}.dnb-section--sand-yellow:after,.dnb-section--warning:after{color:var(--color-sand-yellow)}.dnb-section--info,.dnb-section--pistachio{color:var(--color-black-80)}.dnb-section--info:after,.dnb-section--pistachio:after{color:var(--color-pistachio)}.dnb-section--black-3{color:var(--color-black-80)}.dnb-section--black-3:after{color:var(--color-black-3)}.dnb-section--emerald-green{color:var(--color-mint-green)}.dnb-section--emerald-green:after{color:var(--color-emerald-green)}.dnb-section--sea-green{color:var(--color-white)}.dnb-section--sea-green:after{color:var(--color-sea-green)}.dnb-section--fire-red{color:var(--color-white)}.dnb-section--fire-red:after{color:var(--color-fire-red)}.dnb-section--error,.dnb-section--fire-red-8{color:var(--color-black-80)}.dnb-section--error:after,.dnb-section--fire-red-8:after{color:var(--color-fire-red-8)}.dnb-section--success{color:var(--color-white)}.dnb-section--success:after{color:var(--color-success-green)}.dnb-section--emerald-green .dnb-anchor,.dnb-section--fire-red .dnb-anchor,.dnb-section--sea-green .dnb-anchor,.dnb-section--success .dnb-anchor{color:var(--color-white)}.dnb-section--emerald-green .dnb-anchor:hover,.dnb-section--fire-red .dnb-anchor:hover,.dnb-section--sea-green .dnb-anchor:hover,.dnb-section--success .dnb-anchor:hover{box-shadow:inset 100vw 100vw 0 0 var(--color-white),-.125em 0 0 0 var(--color-white),.125em 0 0 0 var(--color-white);color:var(--color-emerald-green)}.dnb-section--emerald-green .dnb-anchor:active,.dnb-section--fire-red .dnb-anchor:active,.dnb-section--sea-green .dnb-anchor:active,.dnb-section--success .dnb-anchor:active{background-color:transparent;box-shadow:inset 100vw 100vw 0 0 transparent,-.125em 0 0 0 transparent,.125em 0 0 0 transparent;color:var(--color-white)}.dnb-section--emerald-green .dnb-anchor.focus-visible,.dnb-section--fire-red .dnb-anchor.focus-visible,.dnb-section--sea-green .dnb-anchor.focus-visible,.dnb-section--success .dnb-anchor.focus-visible{--border-color:var(--color-white);--border-width:var(--focus-ring-width);background-color:transparent;border-color:transparent;box-shadow:0 0 0 var(--border-width) var(--border-color);color:var(--color-white);outline:none}.dnb-section--emerald-green .dnb-anchor:focus-visible,.dnb-section--fire-red .dnb-anchor:focus-visible,.dnb-section--sea-green .dnb-anchor:focus-visible,.dnb-section--success .dnb-anchor:focus-visible{--border-color:var(--color-white);--border-width:var(--focus-ring-width);background-color:transparent;border-color:transparent;box-shadow:0 0 0 var(--border-width) var(--border-color);color:var(--color-white);outline:none}.dnb-section--emerald-green .dnb-button--tertiary,.dnb-section--emerald-green .dnb-button--tertiary:hover,.dnb-section--fire-red .dnb-button--tertiary,.dnb-section--fire-red .dnb-button--tertiary:hover,.dnb-section--sea-green .dnb-button--tertiary,.dnb-section--sea-green .dnb-button--tertiary:hover{color:var(--color-white)}.dnb-section--emerald-green .dnb-button--tertiary:hover .dnb-button__text:after,.dnb-section--fire-red .dnb-button--tertiary:hover .dnb-button__text:after,.dnb-section--sea-green .dnb-button--tertiary:hover .dnb-button__text:after{color:var(--color-white)!important}.dnb-section--emerald-green .dnb-button--tertiary:focus,.dnb-section--fire-red .dnb-button--tertiary:focus,.dnb-section--sea-green .dnb-button--tertiary:focus{color:var(--color-white)}.dnb-section--emerald-green .dnb-button--tertiary:focus:before,.dnb-section--fire-red .dnb-button--tertiary:focus:before,.dnb-section--sea-green .dnb-button--tertiary:focus:before{outline:none}html[data-whatinput=keyboard] .dnb-section--emerald-green .dnb-button--tertiary:focus:before,html[data-whatinput=keyboard] .dnb-section--fire-red .dnb-button--tertiary:focus:before,html[data-whatinput=keyboard] .dnb-section--sea-green .dnb-button--tertiary:focus:before{--border-color:var(--color-white);--border-width:var(--focus-ring-width);border-color:transparent;box-shadow:0 0 0 var(--border-width) var(--border-color)}.dnb-section--fire-red ::selection,.dnb-section--mint-green ::selection{background-color:var(--color-white)}
|
|
@@ -28,7 +28,7 @@
|
|
|
28
28
|
}
|
|
29
29
|
}
|
|
30
30
|
|
|
31
|
-
&--mint-green-12 {
|
|
31
|
+
&--mint-green-12, &--default {
|
|
32
32
|
color: var(--color-black-80);
|
|
33
33
|
|
|
34
34
|
&::after {
|
|
@@ -60,7 +60,7 @@
|
|
|
60
60
|
}
|
|
61
61
|
}
|
|
62
62
|
|
|
63
|
-
&--sand-yellow {
|
|
63
|
+
&--sand-yellow, &--warning {
|
|
64
64
|
color: var(--color-black-80);
|
|
65
65
|
|
|
66
66
|
&::after {
|
|
@@ -68,7 +68,7 @@
|
|
|
68
68
|
}
|
|
69
69
|
}
|
|
70
70
|
|
|
71
|
-
&--pistachio {
|
|
71
|
+
&--pistachio, &--info {
|
|
72
72
|
color: var(--color-black-80);
|
|
73
73
|
|
|
74
74
|
&::after {
|
|
@@ -108,7 +108,7 @@
|
|
|
108
108
|
}
|
|
109
109
|
}
|
|
110
110
|
|
|
111
|
-
&--fire-red-8 {
|
|
111
|
+
&--fire-red-8, &--error {
|
|
112
112
|
color: var(--color-black-80);
|
|
113
113
|
|
|
114
114
|
&::after {
|
|
@@ -116,10 +116,19 @@
|
|
|
116
116
|
}
|
|
117
117
|
}
|
|
118
118
|
|
|
119
|
+
&--success {
|
|
120
|
+
color: var(--color-white);
|
|
121
|
+
|
|
122
|
+
&::after {
|
|
123
|
+
color: var(--color-success-green);
|
|
124
|
+
}
|
|
125
|
+
}
|
|
126
|
+
|
|
119
127
|
// Contrast styles
|
|
120
128
|
&--fire-red .dnb-anchor,
|
|
121
129
|
&--emerald-green .dnb-anchor,
|
|
122
|
-
&--sea-green .dnb-anchor
|
|
130
|
+
&--sea-green .dnb-anchor,
|
|
131
|
+
&--success .dnb-anchor {
|
|
123
132
|
@include useAnchorContrastStyle();
|
|
124
133
|
}
|
|
125
134
|
|
|
@@ -5,6 +5,10 @@
|
|
|
5
5
|
/*
|
|
6
6
|
* Utilities
|
|
7
7
|
*/
|
|
8
|
+
/*
|
|
9
|
+
* Button mixins
|
|
10
|
+
*
|
|
11
|
+
*/
|
|
8
12
|
/*
|
|
9
13
|
* Utilities
|
|
10
14
|
*/
|
|
@@ -50,19 +54,64 @@ html:not([data-whatintent=touch]) .dnb-table > thead > tr > th.dnb-table--sortab
|
|
|
50
54
|
color: var(--sb-color-violet);
|
|
51
55
|
}
|
|
52
56
|
.dnb-table > thead > tr > th.dnb-table--sortable .dnb-table__sort-button.dnb-button:active:not([disabled])::before, html:not([data-whatintent=touch]) .dnb-table > thead > tr > th.dnb-table--sortable .dnb-table__sort-button.dnb-button:active:not([disabled])::before, .dnb-table .dnb-table__th.dnb-table--sortable .dnb-table__sort-button.dnb-button:active:not([disabled])::before, html:not([data-whatintent=touch]) .dnb-table .dnb-table__th.dnb-table--sortable .dnb-table__sort-button.dnb-button:active:not([disabled])::before {
|
|
53
|
-
|
|
54
|
-
|
|
57
|
+
content: "";
|
|
58
|
+
position: absolute;
|
|
59
|
+
z-index: 1;
|
|
60
|
+
top: 0;
|
|
61
|
+
left: -0.5rem;
|
|
62
|
+
bottom: 0;
|
|
63
|
+
right: -0.5rem;
|
|
64
|
+
height: inherit;
|
|
65
|
+
border-radius: inherit;
|
|
66
|
+
outline: none;
|
|
67
|
+
}
|
|
68
|
+
html[data-whatinput=mouse] .dnb-table > thead > tr > th.dnb-table--sortable .dnb-table__sort-button.dnb-button:active:not([disabled])::before, html[data-whatinput=mouse] html:not([data-whatintent=touch]) .dnb-table > thead > tr > th.dnb-table--sortable .dnb-table__sort-button.dnb-button:active:not([disabled])::before, html[data-whatinput=mouse] .dnb-table .dnb-table__th.dnb-table--sortable .dnb-table__sort-button.dnb-button:active:not([disabled])::before, html[data-whatinput=mouse] html:not([data-whatintent=touch]) .dnb-table .dnb-table__th.dnb-table--sortable .dnb-table__sort-button.dnb-button:active:not([disabled])::before {
|
|
69
|
+
--border-color: var(--focus-ring-color);
|
|
70
|
+
--border-width: var(--focus-ring-width);
|
|
71
|
+
box-shadow: inset 0 0 0 var(--border-width) var(--border-color);
|
|
72
|
+
border-color: transparent;
|
|
73
|
+
}
|
|
74
|
+
.dnb-table > thead > tr > th.dnb-table--sortable .dnb-table__sort-button.dnb-button:active:not([disabled])::before, html:not([data-whatintent=touch]) .dnb-table > thead > tr > th.dnb-table--sortable .dnb-table__sort-button.dnb-button:active:not([disabled])::before, .dnb-table .dnb-table__th.dnb-table--sortable .dnb-table__sort-button.dnb-button:active:not([disabled])::before, html:not([data-whatintent=touch]) .dnb-table .dnb-table__th.dnb-table--sortable .dnb-table__sort-button.dnb-button:active:not([disabled])::before {
|
|
75
|
+
content: "";
|
|
76
|
+
position: absolute;
|
|
77
|
+
z-index: 1;
|
|
78
|
+
top: 0;
|
|
55
79
|
left: -0.5rem;
|
|
56
|
-
|
|
80
|
+
bottom: 0;
|
|
81
|
+
right: -0.5rem;
|
|
82
|
+
height: inherit;
|
|
83
|
+
border-radius: inherit;
|
|
84
|
+
outline: none;
|
|
85
|
+
}
|
|
86
|
+
html[data-whatinput=touch] .dnb-table > thead > tr > th.dnb-table--sortable .dnb-table__sort-button.dnb-button:active:not([disabled])::before, html[data-whatinput=touch] html:not([data-whatintent=touch]) .dnb-table > thead > tr > th.dnb-table--sortable .dnb-table__sort-button.dnb-button:active:not([disabled])::before, html[data-whatinput=touch] .dnb-table .dnb-table__th.dnb-table--sortable .dnb-table__sort-button.dnb-button:active:not([disabled])::before, html[data-whatinput=touch] html:not([data-whatintent=touch]) .dnb-table .dnb-table__th.dnb-table--sortable .dnb-table__sort-button.dnb-button:active:not([disabled])::before {
|
|
87
|
+
--border-color: var(--focus-ring-color);
|
|
88
|
+
--border-width: var(--focus-ring-width);
|
|
89
|
+
box-shadow: inset 0 0 0 var(--border-width) var(--border-color);
|
|
90
|
+
border-color: transparent;
|
|
91
|
+
}
|
|
92
|
+
.dnb-table > thead > tr > th.dnb-table--sortable .dnb-table__sort-button.dnb-button:active:not([disabled])::before, html:not([data-whatintent=touch]) .dnb-table > thead > tr > th.dnb-table--sortable .dnb-table__sort-button.dnb-button:active:not([disabled])::before, .dnb-table .dnb-table__th.dnb-table--sortable .dnb-table__sort-button.dnb-button:active:not([disabled])::before, html:not([data-whatintent=touch]) .dnb-table .dnb-table__th.dnb-table--sortable .dnb-table__sort-button.dnb-button:active:not([disabled])::before {
|
|
93
|
+
top: -0.375rem;
|
|
94
|
+
bottom: -0.25rem;
|
|
95
|
+
left: -0.6875rem;
|
|
96
|
+
right: -0.4375rem;
|
|
57
97
|
}
|
|
58
98
|
.dnb-table > thead > tr > th.dnb-table--sortable .dnb-table__sort-button.dnb-button:focus[disabled], html:not([data-whatintent=touch]) .dnb-table > thead > tr > th.dnb-table--sortable .dnb-table__sort-button.dnb-button:focus[disabled], .dnb-table .dnb-table__th.dnb-table--sortable .dnb-table__sort-button.dnb-button:focus[disabled], html:not([data-whatintent=touch]) .dnb-table .dnb-table__th.dnb-table--sortable .dnb-table__sort-button.dnb-button:focus[disabled] {
|
|
59
99
|
cursor: not-allowed;
|
|
60
100
|
}
|
|
61
101
|
.dnb-table > thead > tr > th.dnb-table--sortable .dnb-table__sort-button.dnb-button:focus:not([disabled])::before, html:not([data-whatintent=touch]) .dnb-table > thead > tr > th.dnb-table--sortable .dnb-table__sort-button.dnb-button:focus:not([disabled])::before, .dnb-table .dnb-table__th.dnb-table--sortable .dnb-table__sort-button.dnb-button:focus:not([disabled])::before, html:not([data-whatintent=touch]) .dnb-table .dnb-table__th.dnb-table--sortable .dnb-table__sort-button.dnb-button:focus:not([disabled])::before {
|
|
62
|
-
top: -0.
|
|
63
|
-
bottom: -0.
|
|
64
|
-
left: -0.
|
|
65
|
-
right: -0.
|
|
102
|
+
top: -0.375rem;
|
|
103
|
+
bottom: -0.25rem;
|
|
104
|
+
left: -0.6875rem;
|
|
105
|
+
right: -0.4375rem;
|
|
106
|
+
}
|
|
107
|
+
.dnb-table > thead > tr > th.dnb-table--sortable .dnb-table__sort-button.dnb-button:focus:not([disabled]).focus-visible, html:not([data-whatintent=touch]) .dnb-table > thead > tr > th.dnb-table--sortable .dnb-table__sort-button.dnb-button:focus:not([disabled]).focus-visible, .dnb-table .dnb-table__th.dnb-table--sortable .dnb-table__sort-button.dnb-button:focus:not([disabled]).focus-visible, html:not([data-whatintent=touch]) .dnb-table .dnb-table__th.dnb-table--sortable .dnb-table__sort-button.dnb-button:focus:not([disabled]).focus-visible {
|
|
108
|
+
color: var(--sb-color-blue-dark);
|
|
109
|
+
}
|
|
110
|
+
.dnb-table > thead > tr > th.dnb-table--sortable .dnb-table__sort-button.dnb-button:focus:not([disabled]):focus-visible, html:not([data-whatintent=touch]) .dnb-table > thead > tr > th.dnb-table--sortable .dnb-table__sort-button.dnb-button:focus:not([disabled]):focus-visible, .dnb-table .dnb-table__th.dnb-table--sortable .dnb-table__sort-button.dnb-button:focus:not([disabled]):focus-visible, html:not([data-whatintent=touch]) .dnb-table .dnb-table__th.dnb-table--sortable .dnb-table__sort-button.dnb-button:focus:not([disabled]):focus-visible {
|
|
111
|
+
color: var(--sb-color-blue-dark);
|
|
112
|
+
}
|
|
113
|
+
.dnb-table > thead > tr > th.dnb-table--sortable .dnb-table__sort-button.dnb-button:focus:not([disabled]):not(:active) .dnb-button__text::after, html:not([data-whatintent=touch]) .dnb-table > thead > tr > th.dnb-table--sortable .dnb-table__sort-button.dnb-button:focus:not([disabled]):not(:active) .dnb-button__text::after, .dnb-table .dnb-table__th.dnb-table--sortable .dnb-table__sort-button.dnb-button:focus:not([disabled]):not(:active) .dnb-button__text::after, html:not([data-whatintent=touch]) .dnb-table .dnb-table__th.dnb-table--sortable .dnb-table__sort-button.dnb-button:focus:not([disabled]):not(:active) .dnb-button__text::after {
|
|
114
|
+
visibility: hidden;
|
|
66
115
|
}
|
|
67
116
|
html:not([data-whatintent=touch]) .dnb-table > thead > tr > th.dnb-table--active .dnb-table__sort-button.dnb-button:hover[disabled], html:not([data-whatintent=touch]) .dnb-table .dnb-table__th.dnb-table--active .dnb-table__sort-button.dnb-button:hover[disabled] {
|
|
68
117
|
cursor: not-allowed;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
.dnb-table{text-align:left}.dnb-table thead{border-bottom:var(--border)}.dnb-table thead th,.dnb-table__th{background-color:var(--sb-color-white);padding:.5rem 1.5rem .25rem}.dnb-table .dnb-table__tr--even{background-color:var(--sb-color-gray-light-3)}.dnb-table tbody .dnb-table__th,.dnb-table tbody td,.dnb-table tbody th,.dnb-table__td{padding:1rem 1.5rem}.dnb-table .dnb-table__th.dnb-table--sortable .dnb-table__sort-button.dnb-button,.dnb-table>thead>tr>th.dnb-table--sortable .dnb-table__sort-button.dnb-button{color:var(--sb-color-violet)}.dnb-table .dnb-table__th.dnb-table--sortable .dnb-table__sort-button.dnb-button .dnb-button__text:after,.dnb-table>thead>tr>th.dnb-table--sortable .dnb-table__sort-button.dnb-button .dnb-button__text:after{bottom:-.0625rem;color:var(--sb-color-violet);left:0;opacity:0}.dnb-table .dnb-table__th.dnb-table--sortable .dnb-table__sort-button.dnb-button:not(:focus) .dnb-button__text:after,.dnb-table>thead>tr>th.dnb-table--sortable .dnb-table__sort-button.dnb-button:not(:focus) .dnb-button__text:after{color:var(--sb-color-violet)}html:not([data-whatintent=touch]) .dnb-table .dnb-table__th.dnb-table--sortable .dnb-table__sort-button.dnb-button:hover[disabled],html:not([data-whatintent=touch]) .dnb-table>thead>tr>th.dnb-table--sortable .dnb-table__sort-button.dnb-button:hover[disabled]{cursor:not-allowed}html:not([data-whatintent=touch]) .dnb-table .dnb-table__th.dnb-table--sortable .dnb-table__sort-button.dnb-button:hover:not([disabled]),html:not([data-whatintent=touch]) .dnb-table>thead>tr>th.dnb-table--sortable .dnb-table__sort-button.dnb-button:hover:not([disabled]){color:var(--sb-color-violet)}.dnb-table .dnb-table__th.dnb-table--sortable .dnb-table__sort-button.dnb-button:active[disabled],.dnb-table>thead>tr>th.dnb-table--sortable .dnb-table__sort-button.dnb-button:active[disabled],html:not([data-whatintent=touch]) .dnb-table .dnb-table__th.dnb-table--sortable .dnb-table__sort-button.dnb-button:active[disabled],html:not([data-whatintent=touch]) .dnb-table>thead>tr>th.dnb-table--sortable .dnb-table__sort-button.dnb-button:active[disabled]{cursor:not-allowed}.dnb-table .dnb-table__th.dnb-table--sortable .dnb-table__sort-button.dnb-button:active:not([disabled]),.dnb-table>thead>tr>th.dnb-table--sortable .dnb-table__sort-button.dnb-button:active:not([disabled]),html:not([data-whatintent=touch]) .dnb-table .dnb-table__th.dnb-table--sortable .dnb-table__sort-button.dnb-button:active:not([disabled]),html:not([data-whatintent=touch]) .dnb-table>thead>tr>th.dnb-table--sortable .dnb-table__sort-button.dnb-button:active:not([disabled]){color:var(--sb-color-violet)}.dnb-table .dnb-table__th.dnb-table--sortable .dnb-table__sort-button.dnb-button:active:not([disabled]):before,.dnb-table>thead>tr>th.dnb-table--sortable .dnb-table__sort-button.dnb-button:active:not([disabled]):before,html:not([data-whatintent=touch]) .dnb-table .dnb-table__th.dnb-table--sortable .dnb-table__sort-button.dnb-button:active:not([disabled]):before,html:not([data-whatintent=touch]) .dnb-table>thead>tr>th.dnb-table--sortable .dnb-table__sort-button.dnb-button:active:not([disabled]):before{bottom
|
|
1
|
+
.dnb-table{text-align:left}.dnb-table thead{border-bottom:var(--border)}.dnb-table thead th,.dnb-table__th{background-color:var(--sb-color-white);padding:.5rem 1.5rem .25rem}.dnb-table .dnb-table__tr--even{background-color:var(--sb-color-gray-light-3)}.dnb-table tbody .dnb-table__th,.dnb-table tbody td,.dnb-table tbody th,.dnb-table__td{padding:1rem 1.5rem}.dnb-table .dnb-table__th.dnb-table--sortable .dnb-table__sort-button.dnb-button,.dnb-table>thead>tr>th.dnb-table--sortable .dnb-table__sort-button.dnb-button{color:var(--sb-color-violet)}.dnb-table .dnb-table__th.dnb-table--sortable .dnb-table__sort-button.dnb-button .dnb-button__text:after,.dnb-table>thead>tr>th.dnb-table--sortable .dnb-table__sort-button.dnb-button .dnb-button__text:after{bottom:-.0625rem;color:var(--sb-color-violet);left:0;opacity:0}.dnb-table .dnb-table__th.dnb-table--sortable .dnb-table__sort-button.dnb-button:not(:focus) .dnb-button__text:after,.dnb-table>thead>tr>th.dnb-table--sortable .dnb-table__sort-button.dnb-button:not(:focus) .dnb-button__text:after{color:var(--sb-color-violet)}html:not([data-whatintent=touch]) .dnb-table .dnb-table__th.dnb-table--sortable .dnb-table__sort-button.dnb-button:hover[disabled],html:not([data-whatintent=touch]) .dnb-table>thead>tr>th.dnb-table--sortable .dnb-table__sort-button.dnb-button:hover[disabled]{cursor:not-allowed}html:not([data-whatintent=touch]) .dnb-table .dnb-table__th.dnb-table--sortable .dnb-table__sort-button.dnb-button:hover:not([disabled]),html:not([data-whatintent=touch]) .dnb-table>thead>tr>th.dnb-table--sortable .dnb-table__sort-button.dnb-button:hover:not([disabled]){color:var(--sb-color-violet)}.dnb-table .dnb-table__th.dnb-table--sortable .dnb-table__sort-button.dnb-button:active[disabled],.dnb-table>thead>tr>th.dnb-table--sortable .dnb-table__sort-button.dnb-button:active[disabled],html:not([data-whatintent=touch]) .dnb-table .dnb-table__th.dnb-table--sortable .dnb-table__sort-button.dnb-button:active[disabled],html:not([data-whatintent=touch]) .dnb-table>thead>tr>th.dnb-table--sortable .dnb-table__sort-button.dnb-button:active[disabled]{cursor:not-allowed}.dnb-table .dnb-table__th.dnb-table--sortable .dnb-table__sort-button.dnb-button:active:not([disabled]),.dnb-table>thead>tr>th.dnb-table--sortable .dnb-table__sort-button.dnb-button:active:not([disabled]),html:not([data-whatintent=touch]) .dnb-table .dnb-table__th.dnb-table--sortable .dnb-table__sort-button.dnb-button:active:not([disabled]),html:not([data-whatintent=touch]) .dnb-table>thead>tr>th.dnb-table--sortable .dnb-table__sort-button.dnb-button:active:not([disabled]){color:var(--sb-color-violet)}html[data-whatinput=mouse] .dnb-table .dnb-table__th.dnb-table--sortable .dnb-table__sort-button.dnb-button:active:not([disabled]):before,html[data-whatinput=mouse] .dnb-table>thead>tr>th.dnb-table--sortable .dnb-table__sort-button.dnb-button:active:not([disabled]):before,html[data-whatinput=mouse] html:not([data-whatintent=touch]) .dnb-table .dnb-table__th.dnb-table--sortable .dnb-table__sort-button.dnb-button:active:not([disabled]):before,html[data-whatinput=mouse] html:not([data-whatintent=touch]) .dnb-table>thead>tr>th.dnb-table--sortable .dnb-table__sort-button.dnb-button:active:not([disabled]):before{--border-color:var(--focus-ring-color);--border-width:var(--focus-ring-width);border-color:transparent;box-shadow:inset 0 0 0 var(--border-width) var(--border-color)}.dnb-table .dnb-table__th.dnb-table--sortable .dnb-table__sort-button.dnb-button:active:not([disabled]):before,.dnb-table>thead>tr>th.dnb-table--sortable .dnb-table__sort-button.dnb-button:active:not([disabled]):before,html:not([data-whatintent=touch]) .dnb-table .dnb-table__th.dnb-table--sortable .dnb-table__sort-button.dnb-button:active:not([disabled]):before,html:not([data-whatintent=touch]) .dnb-table>thead>tr>th.dnb-table--sortable .dnb-table__sort-button.dnb-button:active:not([disabled]):before{border-radius:inherit;bottom:0;content:"";height:inherit;left:-.5rem;outline:none;position:absolute;right:-.5rem;top:0;z-index:1}html[data-whatinput=touch] .dnb-table .dnb-table__th.dnb-table--sortable .dnb-table__sort-button.dnb-button:active:not([disabled]):before,html[data-whatinput=touch] .dnb-table>thead>tr>th.dnb-table--sortable .dnb-table__sort-button.dnb-button:active:not([disabled]):before,html[data-whatinput=touch] html:not([data-whatintent=touch]) .dnb-table .dnb-table__th.dnb-table--sortable .dnb-table__sort-button.dnb-button:active:not([disabled]):before,html[data-whatinput=touch] html:not([data-whatintent=touch]) .dnb-table>thead>tr>th.dnb-table--sortable .dnb-table__sort-button.dnb-button:active:not([disabled]):before{--border-color:var(--focus-ring-color);--border-width:var(--focus-ring-width);border-color:transparent;box-shadow:inset 0 0 0 var(--border-width) var(--border-color)}.dnb-table .dnb-table__th.dnb-table--sortable .dnb-table__sort-button.dnb-button:active:not([disabled]):before,.dnb-table>thead>tr>th.dnb-table--sortable .dnb-table__sort-button.dnb-button:active:not([disabled]):before,html:not([data-whatintent=touch]) .dnb-table .dnb-table__th.dnb-table--sortable .dnb-table__sort-button.dnb-button:active:not([disabled]):before,html:not([data-whatintent=touch]) .dnb-table>thead>tr>th.dnb-table--sortable .dnb-table__sort-button.dnb-button:active:not([disabled]):before{bottom:-.25rem;left:-.6875rem;right:-.4375rem;top:-.375rem}.dnb-table .dnb-table__th.dnb-table--sortable .dnb-table__sort-button.dnb-button:focus[disabled],.dnb-table>thead>tr>th.dnb-table--sortable .dnb-table__sort-button.dnb-button:focus[disabled],html:not([data-whatintent=touch]) .dnb-table .dnb-table__th.dnb-table--sortable .dnb-table__sort-button.dnb-button:focus[disabled],html:not([data-whatintent=touch]) .dnb-table>thead>tr>th.dnb-table--sortable .dnb-table__sort-button.dnb-button:focus[disabled]{cursor:not-allowed}.dnb-table .dnb-table__th.dnb-table--sortable .dnb-table__sort-button.dnb-button:focus:not([disabled]):before,.dnb-table>thead>tr>th.dnb-table--sortable .dnb-table__sort-button.dnb-button:focus:not([disabled]):before,html:not([data-whatintent=touch]) .dnb-table .dnb-table__th.dnb-table--sortable .dnb-table__sort-button.dnb-button:focus:not([disabled]):before,html:not([data-whatintent=touch]) .dnb-table>thead>tr>th.dnb-table--sortable .dnb-table__sort-button.dnb-button:focus:not([disabled]):before{bottom:-.25rem;left:-.6875rem;right:-.4375rem;top:-.375rem}.dnb-table .dnb-table__th.dnb-table--sortable .dnb-table__sort-button.dnb-button:focus:not([disabled]).focus-visible,.dnb-table>thead>tr>th.dnb-table--sortable .dnb-table__sort-button.dnb-button:focus:not([disabled]).focus-visible,html:not([data-whatintent=touch]) .dnb-table .dnb-table__th.dnb-table--sortable .dnb-table__sort-button.dnb-button:focus:not([disabled]).focus-visible,html:not([data-whatintent=touch]) .dnb-table>thead>tr>th.dnb-table--sortable .dnb-table__sort-button.dnb-button:focus:not([disabled]).focus-visible{color:var(--sb-color-blue-dark)}.dnb-table .dnb-table__th.dnb-table--sortable .dnb-table__sort-button.dnb-button:focus:not([disabled]):focus-visible,.dnb-table>thead>tr>th.dnb-table--sortable .dnb-table__sort-button.dnb-button:focus:not([disabled]):focus-visible,html:not([data-whatintent=touch]) .dnb-table .dnb-table__th.dnb-table--sortable .dnb-table__sort-button.dnb-button:focus:not([disabled]):focus-visible,html:not([data-whatintent=touch]) .dnb-table>thead>tr>th.dnb-table--sortable .dnb-table__sort-button.dnb-button:focus:not([disabled]):focus-visible{color:var(--sb-color-blue-dark)}.dnb-table .dnb-table__th.dnb-table--sortable .dnb-table__sort-button.dnb-button:focus:not([disabled]):not(:active) .dnb-button__text:after,.dnb-table>thead>tr>th.dnb-table--sortable .dnb-table__sort-button.dnb-button:focus:not([disabled]):not(:active) .dnb-button__text:after,html:not([data-whatintent=touch]) .dnb-table .dnb-table__th.dnb-table--sortable .dnb-table__sort-button.dnb-button:focus:not([disabled]):not(:active) .dnb-button__text:after,html:not([data-whatintent=touch]) .dnb-table>thead>tr>th.dnb-table--sortable .dnb-table__sort-button.dnb-button:focus:not([disabled]):not(:active) .dnb-button__text:after{visibility:hidden}html:not([data-whatintent=touch]) .dnb-table .dnb-table__th.dnb-table--active .dnb-table__sort-button.dnb-button:hover[disabled],html:not([data-whatintent=touch]) .dnb-table>thead>tr>th.dnb-table--active .dnb-table__sort-button.dnb-button:hover[disabled]{cursor:not-allowed}html:not([data-whatintent=touch]) .dnb-table .dnb-table__th.dnb-table--active .dnb-table__sort-button.dnb-button:hover:not([disabled]) .dnb-button__text:after,html:not([data-whatintent=touch]) .dnb-table>thead>tr>th.dnb-table--active .dnb-table__sort-button.dnb-button:hover:not([disabled]) .dnb-button__text:after{color:var(--sb-color-violet)}.dnb-table,.dnb-table__container{--border-width:0.0625rem;--outline-width:0.0625rem;--border:var(--border-width) solid var(--sb-color-gray-light-2);--outline:var(--outline-width) solid var(--sb-color-gray-light-2);background-color:var(--sb-color-white)}
|
|
@@ -4,14 +4,15 @@
|
|
|
4
4
|
*/
|
|
5
5
|
|
|
6
6
|
@import '../../../../style/core/utilities.scss';
|
|
7
|
+
@import '../../../button/style/themes/button-mixins.scss';
|
|
7
8
|
@import '../table-mixins.scss';
|
|
8
9
|
|
|
9
10
|
@mixin tableFocusRing() {
|
|
10
11
|
&::before {
|
|
11
|
-
top: -0.
|
|
12
|
-
bottom: -0.
|
|
13
|
-
left: -0.
|
|
14
|
-
right: -0.
|
|
12
|
+
top: -0.375rem;
|
|
13
|
+
bottom: -0.25rem;
|
|
14
|
+
left: -0.6875rem;
|
|
15
|
+
right: -0.4375rem;
|
|
15
16
|
}
|
|
16
17
|
}
|
|
17
18
|
|
|
@@ -60,10 +61,25 @@
|
|
|
60
61
|
}
|
|
61
62
|
@include active() {
|
|
62
63
|
color: var(--sb-color-violet);
|
|
64
|
+
@include buttonFocusRing(
|
|
65
|
+
'mouse',
|
|
66
|
+
inset
|
|
67
|
+
); // also, make a mouse ring
|
|
68
|
+
@include buttonFocusRing(
|
|
69
|
+
'touch',
|
|
70
|
+
inset
|
|
71
|
+
); // also, make a touch ring
|
|
63
72
|
@include tableFocusRing();
|
|
64
73
|
}
|
|
65
74
|
@include focus() {
|
|
66
75
|
@include tableFocusRing();
|
|
76
|
+
&:focus-visible {
|
|
77
|
+
color: var(--sb-color-blue-dark);
|
|
78
|
+
}
|
|
79
|
+
|
|
80
|
+
&:not(:active) .dnb-button__text::after {
|
|
81
|
+
visibility: hidden;
|
|
82
|
+
}
|
|
67
83
|
}
|
|
68
84
|
}
|
|
69
85
|
}
|
|
@@ -92,4 +108,4 @@
|
|
|
92
108
|
--outline: var(--outline-width) solid var(--sb-color-gray-light-2);
|
|
93
109
|
|
|
94
110
|
background-color: var(--sb-color-white);
|
|
95
|
-
}
|
|
111
|
+
}
|
|
@@ -19,14 +19,14 @@ export default function Provider({
|
|
|
19
19
|
children
|
|
20
20
|
}) {
|
|
21
21
|
const ajvSchemaValidator = useMemo(() => schema ? ajv.compile(schema) : undefined, [schema]);
|
|
22
|
-
const internalData =
|
|
22
|
+
const [internalData, setInternalData] = useState(externalData);
|
|
23
23
|
const mountedFieldPathsRef = useRef([]);
|
|
24
24
|
const errorsRef = useRef({});
|
|
25
25
|
const [showAllErrors, setShowAllErrors] = useState(false);
|
|
26
26
|
const pathsWithErrorRef = useRef([]);
|
|
27
27
|
const hasErrors = useCallback(() => Boolean(mountedFieldPathsRef.current.find(mountedFieldPath => errorsRef.current[mountedFieldPath] !== undefined || pathsWithErrorRef.current.includes(mountedFieldPath))), []);
|
|
28
28
|
useEffect(() => {
|
|
29
|
-
|
|
29
|
+
setInternalData(externalData);
|
|
30
30
|
}, [externalData]);
|
|
31
31
|
const validateBySchema = useCallback(data => {
|
|
32
32
|
if (!ajvSchemaValidator) {
|
|
@@ -47,15 +47,15 @@ export default function Provider({
|
|
|
47
47
|
}, []);
|
|
48
48
|
const handlePathChange = useCallback((path, value) => {
|
|
49
49
|
onPathChange === null || onPathChange === void 0 ? void 0 : onPathChange(path, value);
|
|
50
|
-
const newData = structuredClone(internalData
|
|
50
|
+
const newData = structuredClone(internalData);
|
|
51
51
|
if (path) {
|
|
52
52
|
pointer.set(newData, path, value);
|
|
53
53
|
}
|
|
54
54
|
onChange === null || onChange === void 0 ? void 0 : onChange(newData);
|
|
55
55
|
validateBySchemaAndUpdateState(newData);
|
|
56
|
-
|
|
56
|
+
setInternalData(newData);
|
|
57
57
|
setShowAllErrors(false);
|
|
58
|
-
}, [onChange, onPathChange, validateBySchemaAndUpdateState]);
|
|
58
|
+
}, [internalData, onChange, onPathChange, validateBySchemaAndUpdateState]);
|
|
59
59
|
const handleMountField = useCallback(path => {
|
|
60
60
|
mountedFieldPathsRef.current = addListPath(mountedFieldPathsRef.current, path);
|
|
61
61
|
}, []);
|
|
@@ -64,7 +64,7 @@ export default function Provider({
|
|
|
64
64
|
}, []);
|
|
65
65
|
const handleSubmit = useCallback(() => {
|
|
66
66
|
if (!hasErrors()) {
|
|
67
|
-
onSubmit === null || onSubmit === void 0 ? void 0 : onSubmit(internalData
|
|
67
|
+
onSubmit === null || onSubmit === void 0 ? void 0 : onSubmit(internalData);
|
|
68
68
|
if (scrollTopOnSubmit) {
|
|
69
69
|
var _window;
|
|
70
70
|
window && ((_window = window) === null || _window === void 0 ? void 0 : _window.scrollTo({
|
|
@@ -76,8 +76,8 @@ export default function Provider({
|
|
|
76
76
|
setShowAllErrors(true);
|
|
77
77
|
onSubmitRequest === null || onSubmitRequest === void 0 ? void 0 : onSubmitRequest();
|
|
78
78
|
}
|
|
79
|
-
return internalData
|
|
80
|
-
}, [scrollTopOnSubmit, hasErrors, onSubmit, onSubmitRequest]);
|
|
79
|
+
return internalData;
|
|
80
|
+
}, [internalData, scrollTopOnSubmit, hasErrors, onSubmit, onSubmitRequest]);
|
|
81
81
|
useEffect(() => {
|
|
82
82
|
if (externalData) {
|
|
83
83
|
validateBySchemaAndUpdateState(externalData);
|
|
@@ -85,7 +85,7 @@ export default function Provider({
|
|
|
85
85
|
}, []);
|
|
86
86
|
return React.createElement(Context.Provider, {
|
|
87
87
|
value: {
|
|
88
|
-
data: internalData
|
|
88
|
+
data: internalData,
|
|
89
89
|
handlePathChange,
|
|
90
90
|
handleSubmit,
|
|
91
91
|
errors: errorsRef.current,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Provider.js","names":["React","useEffect","useRef","useMemo","useCallback","useState","pointer","ajv","ajvErrorsToFormErrors","Context","addListPath","paths","path","includes","concat","removeListPath","filter","thisPath","Provider","data","externalData","schema","onChange","onPathChange","onSubmit","onSubmitRequest","scrollTopOnSubmit","children","ajvSchemaValidator","compile","undefined","internalData","mountedFieldPathsRef","errorsRef","showAllErrors","setShowAllErrors","pathsWithErrorRef","hasErrors","Boolean","current","find","mountedFieldPath","validateBySchema","errors","validateBySchemaAndUpdateState","setPathWithError","hasError","handlePathChange","value","newData","structuredClone","set","handleMountField","handleUnMountField","handleSubmit","_window","window","scrollTo","top","behavior","createElement","mountedFieldPaths"],"sources":["../../../../../src/extensions/forms/DataContext/Provider.tsx"],"sourcesContent":["import React, {\n useEffect,\n useRef,\n useMemo,\n useCallback,\n useState,\n} from 'react'\nimport pointer, { JsonObject } from 'json-pointer'\nimport { JSONSchema7 } from 'json-schema'\nimport ajv, { ajvErrorsToFormErrors } from '../utils/ajv'\nimport { FormError } from '../types'\nimport Context from './Context'\n\nexport interface Props<Data extends JsonObject> {\n data: Partial<Data>\n /** JSON Schema for validating the data, like during input or after attempting submit */\n schema?: JSONSchema7\n /** Change handler for the whole data set */\n onChange?: (data: Data) => void\n /** Change handler for each value */\n onPathChange?: (path: string, value: any) => void\n /** Submit called, data was valid (if validation available) */\n onSubmit?: (data: Data) => void\n /** Submit was requested, but data was invalid */\n onSubmitRequest?: () => void\n scrollTopOnSubmit?: boolean\n children: React.ReactNode\n}\n\ntype PathList = string[]\n\nfunction addListPath(paths: PathList, path: string): PathList {\n return paths.includes(path) ? paths : paths.concat(path)\n}\n\nfunction removeListPath(paths: PathList, path: string): PathList {\n return paths.filter((thisPath) => thisPath !== path)\n}\n\nexport default function Provider<Data extends JsonObject>({\n data: externalData,\n schema,\n onChange,\n onPathChange,\n onSubmit,\n onSubmitRequest,\n scrollTopOnSubmit,\n children,\n}: Props<Data>) {\n const ajvSchemaValidator = useMemo(\n () => (schema ? ajv.compile(schema) : undefined),\n [schema]\n )\n const internalData = useRef<Partial<Data>>(externalData)\n const mountedFieldPathsRef = useRef<string[]>([])\n\n // Errors from provider validation (the whole data set)\n const errorsRef = useRef<Record<string, FormError>>({})\n const [showAllErrors, setShowAllErrors] = useState<boolean>(false)\n // Errors reported by fields, based on their direct validation rules\n const pathsWithErrorRef = useRef<string[]>([])\n\n const hasErrors = useCallback(\n () =>\n Boolean(\n mountedFieldPathsRef.current.find(\n (mountedFieldPath) =>\n errorsRef.current[mountedFieldPath] !== undefined ||\n pathsWithErrorRef.current.includes(mountedFieldPath)\n )\n ),\n []\n )\n\n useEffect(() => {\n // When receivint the initial data, or receiving updated data by props, update the internal data (controlled state)\n internalData.current = externalData\n }, [externalData])\n\n const validateBySchema = useCallback(\n (data: Partial<Data>): Record<string, Error> | undefined => {\n if (!ajvSchemaValidator) {\n // No schema-based validator. Assume data is valid.\n return\n }\n\n if (!ajvSchemaValidator(data)) {\n // Errors found\n const errors = ajvErrorsToFormErrors(ajvSchemaValidator.errors)\n return errors\n } else {\n return\n }\n },\n [ajvSchemaValidator]\n )\n\n const validateBySchemaAndUpdateState = useCallback(\n (data: Partial<Data>) => {\n errorsRef.current = validateBySchema(data) ?? {}\n },\n [validateBySchema]\n )\n\n const setPathWithError = useCallback(\n (path: string, hasError: boolean) => {\n pathsWithErrorRef.current = hasError\n ? addListPath(pathsWithErrorRef.current, path)\n : removeListPath(pathsWithErrorRef.current, path)\n },\n []\n )\n\n const handlePathChange = useCallback(\n (path, value) => {\n onPathChange?.(path, value)\n // Update the data even if it contains errors. Submit/SubmitRequest will be called accordingly\n const newData = structuredClone(internalData.current) as Data\n if (path) {\n pointer.set(newData, path, value)\n }\n onChange?.(newData)\n\n validateBySchemaAndUpdateState(newData)\n\n internalData.current = newData\n\n setShowAllErrors(false)\n },\n [onChange, onPathChange, validateBySchemaAndUpdateState]\n )\n\n // Mounted fields\n const handleMountField = useCallback((path: string) => {\n mountedFieldPathsRef.current = addListPath(\n mountedFieldPathsRef.current,\n path\n )\n }, [])\n\n const handleUnMountField = useCallback((path: string) => {\n mountedFieldPathsRef.current = removeListPath(\n mountedFieldPathsRef.current,\n path\n )\n }, [])\n\n /**\n * Request to submit the whole form\n */\n const handleSubmit = useCallback(() => {\n if (!hasErrors()) {\n onSubmit?.(internalData.current as Data)\n if (scrollTopOnSubmit) {\n window && window?.scrollTo({ top: 0, behavior: 'smooth' })\n }\n } else {\n setShowAllErrors(true)\n onSubmitRequest?.()\n }\n return internalData.current\n }, [scrollTopOnSubmit, hasErrors, onSubmit, onSubmitRequest])\n\n useEffect(() => {\n // Mount procedure\n if (externalData) {\n // Validate the initial data to know if the user can submit, and to show errors if inputs are requested to with props\n validateBySchemaAndUpdateState(externalData)\n }\n // eslint-disable-next-line react-hooks/exhaustive-deps -- Only run for mount and unmount\n }, [])\n\n return (\n <Context.Provider\n value={{\n data: internalData.current,\n handlePathChange,\n handleSubmit,\n errors: errorsRef.current,\n showAllErrors,\n setShowAllErrors,\n mountedFieldPaths: mountedFieldPathsRef.current,\n handleMountField,\n handleUnMountField,\n hasErrors,\n setPathWithError,\n }}\n >\n {children}\n </Context.Provider>\n )\n}\n"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"Provider.js","names":["React","useEffect","useRef","useMemo","useCallback","useState","pointer","ajv","ajvErrorsToFormErrors","Context","addListPath","paths","path","includes","concat","removeListPath","filter","thisPath","Provider","data","externalData","schema","onChange","onPathChange","onSubmit","onSubmitRequest","scrollTopOnSubmit","children","ajvSchemaValidator","compile","undefined","internalData","setInternalData","mountedFieldPathsRef","errorsRef","showAllErrors","setShowAllErrors","pathsWithErrorRef","hasErrors","Boolean","current","find","mountedFieldPath","validateBySchema","errors","validateBySchemaAndUpdateState","setPathWithError","hasError","handlePathChange","value","newData","structuredClone","set","handleMountField","handleUnMountField","handleSubmit","_window","window","scrollTo","top","behavior","createElement","mountedFieldPaths"],"sources":["../../../../../src/extensions/forms/DataContext/Provider.tsx"],"sourcesContent":["import React, {\n useEffect,\n useRef,\n useMemo,\n useCallback,\n useState,\n} from 'react'\nimport pointer, { JsonObject } from 'json-pointer'\nimport { JSONSchema7 } from 'json-schema'\nimport ajv, { ajvErrorsToFormErrors } from '../utils/ajv'\nimport { FormError } from '../types'\nimport Context from './Context'\n\nexport interface Props<Data extends JsonObject> {\n data: Partial<Data>\n /** JSON Schema for validating the data, like during input or after attempting submit */\n schema?: JSONSchema7\n /** Change handler for the whole data set */\n onChange?: (data: Data) => void\n /** Change handler for each value */\n onPathChange?: (path: string, value: any) => void\n /** Submit called, data was valid (if validation available) */\n onSubmit?: (data: Data) => void\n /** Submit was requested, but data was invalid */\n onSubmitRequest?: () => void\n scrollTopOnSubmit?: boolean\n children: React.ReactNode\n}\n\ntype PathList = string[]\n\nfunction addListPath(paths: PathList, path: string): PathList {\n return paths.includes(path) ? paths : paths.concat(path)\n}\n\nfunction removeListPath(paths: PathList, path: string): PathList {\n return paths.filter((thisPath) => thisPath !== path)\n}\n\nexport default function Provider<Data extends JsonObject>({\n data: externalData,\n schema,\n onChange,\n onPathChange,\n onSubmit,\n onSubmitRequest,\n scrollTopOnSubmit,\n children,\n}: Props<Data>) {\n const ajvSchemaValidator = useMemo(\n () => (schema ? ajv.compile(schema) : undefined),\n [schema]\n )\n const [internalData, setInternalData] =\n useState<Partial<Data>>(externalData)\n const mountedFieldPathsRef = useRef<string[]>([])\n\n // Errors from provider validation (the whole data set)\n const errorsRef = useRef<Record<string, FormError>>({})\n const [showAllErrors, setShowAllErrors] = useState<boolean>(false)\n // Errors reported by fields, based on their direct validation rules\n const pathsWithErrorRef = useRef<string[]>([])\n\n const hasErrors = useCallback(\n () =>\n Boolean(\n mountedFieldPathsRef.current.find(\n (mountedFieldPath) =>\n errorsRef.current[mountedFieldPath] !== undefined ||\n pathsWithErrorRef.current.includes(mountedFieldPath)\n )\n ),\n []\n )\n\n useEffect(() => {\n // When receivint the initial data, or receiving updated data by props, update the internal data (controlled state)\n setInternalData(externalData)\n }, [externalData])\n\n const validateBySchema = useCallback(\n (data: Partial<Data>): Record<string, Error> | undefined => {\n if (!ajvSchemaValidator) {\n // No schema-based validator. Assume data is valid.\n return\n }\n\n if (!ajvSchemaValidator(data)) {\n // Errors found\n const errors = ajvErrorsToFormErrors(ajvSchemaValidator.errors)\n return errors\n } else {\n return\n }\n },\n [ajvSchemaValidator]\n )\n\n const validateBySchemaAndUpdateState = useCallback(\n (data: Partial<Data>) => {\n errorsRef.current = validateBySchema(data) ?? {}\n },\n [validateBySchema]\n )\n\n const setPathWithError = useCallback(\n (path: string, hasError: boolean) => {\n pathsWithErrorRef.current = hasError\n ? addListPath(pathsWithErrorRef.current, path)\n : removeListPath(pathsWithErrorRef.current, path)\n },\n []\n )\n\n const handlePathChange = useCallback(\n (path, value) => {\n onPathChange?.(path, value)\n // Update the data even if it contains errors. Submit/SubmitRequest will be called accordingly\n const newData = structuredClone(internalData) as Data\n if (path) {\n pointer.set(newData, path, value)\n }\n onChange?.(newData)\n\n validateBySchemaAndUpdateState(newData)\n\n setInternalData(newData)\n\n setShowAllErrors(false)\n },\n [internalData, onChange, onPathChange, validateBySchemaAndUpdateState]\n )\n\n // Mounted fields\n const handleMountField = useCallback((path: string) => {\n mountedFieldPathsRef.current = addListPath(\n mountedFieldPathsRef.current,\n path\n )\n }, [])\n\n const handleUnMountField = useCallback((path: string) => {\n mountedFieldPathsRef.current = removeListPath(\n mountedFieldPathsRef.current,\n path\n )\n }, [])\n\n /**\n * Request to submit the whole form\n */\n const handleSubmit = useCallback(() => {\n if (!hasErrors()) {\n onSubmit?.(internalData as Data)\n if (scrollTopOnSubmit) {\n window && window?.scrollTo({ top: 0, behavior: 'smooth' })\n }\n } else {\n setShowAllErrors(true)\n onSubmitRequest?.()\n }\n return internalData\n }, [\n internalData,\n scrollTopOnSubmit,\n hasErrors,\n onSubmit,\n onSubmitRequest,\n ])\n\n useEffect(() => {\n // Mount procedure\n if (externalData) {\n // Validate the initial data to know if the user can submit, and to show errors if inputs are requested to with props\n validateBySchemaAndUpdateState(externalData)\n }\n // eslint-disable-next-line react-hooks/exhaustive-deps -- Only run for mount and unmount\n }, [])\n\n return (\n <Context.Provider\n value={{\n data: internalData,\n handlePathChange,\n handleSubmit,\n errors: errorsRef.current,\n showAllErrors,\n setShowAllErrors,\n mountedFieldPaths: mountedFieldPathsRef.current,\n handleMountField,\n handleUnMountField,\n hasErrors,\n setPathWithError,\n }}\n >\n {children}\n </Context.Provider>\n )\n}\n"],"mappings":"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"}
|
|
@@ -72,10 +72,11 @@ function NumberComponent(props) {
|
|
|
72
72
|
labelSecondary: labelSecondary,
|
|
73
73
|
info: info,
|
|
74
74
|
warning: warning,
|
|
75
|
-
error: error
|
|
75
|
+
error: error,
|
|
76
|
+
contentsWidth: width !== false ? width : undefined
|
|
76
77
|
}, forwardSpaceProps(props)), React.createElement(InputMasked, {
|
|
77
78
|
id: id,
|
|
78
|
-
className: classnames('dnb-forms-field-number__input', inputClassName
|
|
79
|
+
className: classnames('dnb-forms-field-number__input', inputClassName),
|
|
79
80
|
placeholder: placeholder,
|
|
80
81
|
value: value,
|
|
81
82
|
as_number: true,
|
|
@@ -92,7 +93,7 @@ function NumberComponent(props) {
|
|
|
92
93
|
on_blur: onBlur,
|
|
93
94
|
on_change: onChange,
|
|
94
95
|
disabled: disabled,
|
|
95
|
-
stretch: width
|
|
96
|
+
stretch: width !== undefined
|
|
96
97
|
}));
|
|
97
98
|
}
|
|
98
99
|
NumberComponent._supportsEufemiaSpacingProps = true;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Number.js","names":["React","InputMasked","classnames","forwardSpaceProps","FieldBlock","useField","NumberComponent","props","thousandSeparator","decimalSymbol","decimalLimit","prefix","suffix","rightAligned","preparedProps","_objectSpread","schema","type","minimum","maximum","exclusiveMinimum","exclusiveMaximum","multipleOf","toInput","external","undefined","fromInput","value","numberValue","emptyValue","width","id","className","inputClassName","layout","placeholder","label","labelDescription","labelSecondary","disabled","info","warning","error","onFocus","onBlur","onChange","createElement","_extends","forId","as_number","number_mask","includeThousandsSeparator","thousandsSeparatorSymbol","right","on_focus","on_blur","on_change","stretch","_supportsEufemiaSpacingProps"],"sources":["../../../../../src/extensions/forms/Field/Number.tsx"],"sourcesContent":["import React from 'react'\nimport { InputMasked } from '../../../components'\nimport classnames from 'classnames'\nimport { forwardSpaceProps } from '../utils'\nimport FieldBlock from '../FieldBlock'\nimport { useField } from './hooks'\nimport type { ComponentProps } from '../component-types'\nimport type { FieldProps } from '../field-types'\n\ninterface ErrorMessages {\n required?: string\n schema?: string\n minimum?: string\n maximum?: string\n exclusiveMinimum?: string\n exclusiveMaximum?: string\n multipleOf?: string\n}\n\nexport type Props = ComponentProps &\n FieldProps<number, undefined, ErrorMessages> & {\n inputClassName?: string\n // Formatting\n thousandSeparator?: string | true\n decimalSymbol?: string\n decimalLimit?: number\n prefix?: string\n suffix?: string\n // Validation\n minimum?: number // aka greater than or equal to\n maximum?: number // aka less than or equal to\n exclusiveMinimum?: number // aka greater than\n exclusiveMaximum?: number // aka less than\n multipleOf?: number\n // Styling\n width?: false | 'medium' | 'large' | 'stretch'\n rightAligned?: boolean\n }\n\nfunction NumberComponent(props: Props) {\n const {\n thousandSeparator,\n decimalSymbol = ',',\n decimalLimit = 12,\n prefix,\n suffix,\n rightAligned,\n } = props\n\n const preparedProps: Props = {\n ...props,\n schema: props.schema ?? {\n type: 'number',\n minimum: props.minimum,\n maximum: props.maximum,\n exclusiveMinimum: props.exclusiveMinimum,\n exclusiveMaximum: props.exclusiveMaximum,\n multipleOf: props.multipleOf,\n },\n toInput: (external: number | undefined) => {\n if (external === undefined) {\n return ''\n }\n return external\n },\n fromInput: ({\n value,\n numberValue,\n }: {\n value: string\n numberValue: number\n }) => {\n if (value === '') {\n return emptyValue\n }\n return numberValue\n },\n width: props.width ?? 'medium',\n }\n\n const {\n id,\n className,\n inputClassName,\n layout,\n placeholder,\n label,\n labelDescription,\n labelSecondary,\n value,\n disabled,\n info,\n warning,\n error,\n emptyValue,\n width,\n onFocus,\n onBlur,\n onChange,\n } = useField(preparedProps)\n\n return (\n <FieldBlock\n className={classnames('dnb-forms-field-number', className)}\n forId={id}\n layout={layout}\n label={label}\n labelDescription={labelDescription}\n labelSecondary={labelSecondary}\n info={info}\n warning={warning}\n error={error}\n {...forwardSpaceProps(props)}\n >\n <InputMasked\n id={id}\n className={classnames(\n 'dnb-forms-field-number__input',\n
|
|
1
|
+
{"version":3,"file":"Number.js","names":["React","InputMasked","classnames","forwardSpaceProps","FieldBlock","useField","NumberComponent","props","thousandSeparator","decimalSymbol","decimalLimit","prefix","suffix","rightAligned","preparedProps","_objectSpread","schema","type","minimum","maximum","exclusiveMinimum","exclusiveMaximum","multipleOf","toInput","external","undefined","fromInput","value","numberValue","emptyValue","width","id","className","inputClassName","layout","placeholder","label","labelDescription","labelSecondary","disabled","info","warning","error","onFocus","onBlur","onChange","createElement","_extends","forId","contentsWidth","as_number","number_mask","includeThousandsSeparator","thousandsSeparatorSymbol","right","on_focus","on_blur","on_change","stretch","_supportsEufemiaSpacingProps"],"sources":["../../../../../src/extensions/forms/Field/Number.tsx"],"sourcesContent":["import React from 'react'\nimport { InputMasked } from '../../../components'\nimport classnames from 'classnames'\nimport { forwardSpaceProps } from '../utils'\nimport FieldBlock from '../FieldBlock'\nimport { useField } from './hooks'\nimport type { ComponentProps } from '../component-types'\nimport type { FieldProps } from '../field-types'\n\ninterface ErrorMessages {\n required?: string\n schema?: string\n minimum?: string\n maximum?: string\n exclusiveMinimum?: string\n exclusiveMaximum?: string\n multipleOf?: string\n}\n\nexport type Props = ComponentProps &\n FieldProps<number, undefined, ErrorMessages> & {\n inputClassName?: string\n // Formatting\n thousandSeparator?: string | true\n decimalSymbol?: string\n decimalLimit?: number\n prefix?: string\n suffix?: string\n // Validation\n minimum?: number // aka greater than or equal to\n maximum?: number // aka less than or equal to\n exclusiveMinimum?: number // aka greater than\n exclusiveMaximum?: number // aka less than\n multipleOf?: number\n // Styling\n width?: false | 'medium' | 'large' | 'stretch'\n rightAligned?: boolean\n }\n\nfunction NumberComponent(props: Props) {\n const {\n thousandSeparator,\n decimalSymbol = ',',\n decimalLimit = 12,\n prefix,\n suffix,\n rightAligned,\n } = props\n\n const preparedProps: Props = {\n ...props,\n schema: props.schema ?? {\n type: 'number',\n minimum: props.minimum,\n maximum: props.maximum,\n exclusiveMinimum: props.exclusiveMinimum,\n exclusiveMaximum: props.exclusiveMaximum,\n multipleOf: props.multipleOf,\n },\n toInput: (external: number | undefined) => {\n if (external === undefined) {\n return ''\n }\n return external\n },\n fromInput: ({\n value,\n numberValue,\n }: {\n value: string\n numberValue: number\n }) => {\n if (value === '') {\n return emptyValue\n }\n return numberValue\n },\n width: props.width ?? 'medium',\n }\n\n const {\n id,\n className,\n inputClassName,\n layout,\n placeholder,\n label,\n labelDescription,\n labelSecondary,\n value,\n disabled,\n info,\n warning,\n error,\n emptyValue,\n width,\n onFocus,\n onBlur,\n onChange,\n } = useField(preparedProps)\n\n return (\n <FieldBlock\n className={classnames('dnb-forms-field-number', className)}\n forId={id}\n layout={layout}\n label={label}\n labelDescription={labelDescription}\n labelSecondary={labelSecondary}\n info={info}\n warning={warning}\n error={error}\n contentsWidth={width !== false ? width : undefined}\n {...forwardSpaceProps(props)}\n >\n <InputMasked\n id={id}\n className={classnames(\n 'dnb-forms-field-number__input',\n inputClassName\n )}\n placeholder={placeholder}\n value={value}\n as_number\n number_mask={{\n decimalLimit,\n decimalSymbol,\n includeThousandsSeparator: thousandSeparator !== undefined,\n thousandsSeparatorSymbol:\n thousandSeparator === true ? ' ' : thousandSeparator,\n prefix,\n suffix,\n }}\n right={rightAligned}\n on_focus={onFocus}\n on_blur={onBlur}\n on_change={onChange}\n disabled={disabled}\n stretch={width !== undefined}\n />\n </FieldBlock>\n )\n}\n\nNumberComponent._supportsEufemiaSpacingProps = true\nexport default NumberComponent\n"],"mappings":"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"}
|
|
@@ -3,7 +3,7 @@ import type { FieldProps } from '../field-types';
|
|
|
3
3
|
export type Props = ComponentProps & FieldProps<string> & {
|
|
4
4
|
countryCodeFieldClassName?: string;
|
|
5
5
|
numberFieldClassName?: string;
|
|
6
|
-
width?:
|
|
6
|
+
width?: 'medium' | 'large';
|
|
7
7
|
};
|
|
8
8
|
declare function PhoneNumber(props: Props): import("react/jsx-runtime").JSX.Element;
|
|
9
9
|
declare namespace PhoneNumber {
|
|
@@ -58,7 +58,7 @@ function PhoneNumber(props) {
|
|
|
58
58
|
onChange === null || onChange === void 0 ? void 0 : onChange([countryCode, value].filter(Boolean).join(' '));
|
|
59
59
|
}, [countryCode, emptyValue, onChange]);
|
|
60
60
|
return React.createElement(Div, _extends({
|
|
61
|
-
className: classnames('dnb-forms-field-phone-number', className, width !==
|
|
61
|
+
className: classnames('dnb-forms-field-phone-number', className, width !== undefined && `dnb-forms-field-phone-number--width-${width}`)
|
|
62
62
|
}, forwardSpaceProps(preparedProps)), React.createElement(Autocomplete, {
|
|
63
63
|
className: classnames('dnb-forms-field-phone-number__country-code', countryCodeFieldClassName),
|
|
64
64
|
label_direction: "vertical",
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"PhoneNumber.js","names":["React","useContext","useCallback","useMemo","Div","Autocomplete","Input","classnames","countries","forwardSpaceProps","useField","SharedContext","PhoneNumber","props","_ref","sharedContext","preparedProps","_objectSpread","errorMessages","required","translation","Forms","phoneNumberErrorRequired","className","countryCodeFieldClassName","numberFieldClassName","placeholder","label","phoneNumberLabel","value","emptyValue","error","disabled","width","onFocus","onBlur","onChange","countryCode","phoneNumber","match","countriesDropdownData","map","country","selected_key","code","selected_value","iso","content","name","handleCountryCodeChange","data","changedData","trim","handleNumberChange","filter","Boolean","join","createElement","_extends","label_direction","countryCodeLabel","on_change","independent_width","on_focus","on_blur","status","message","type","_supportsEufemiaSpacingProps"],"sources":["../../../../../src/extensions/forms/Field/PhoneNumber.tsx"],"sourcesContent":["import React, { useContext, useCallback, useMemo } from 'react'\nimport { Div } from '../../../elements'\nimport { Autocomplete, Input } from '../../../components'\nimport classnames from 'classnames'\nimport countries from '../constants/countries'\nimport { forwardSpaceProps } from '../utils'\nimport { useField } from './hooks'\nimport type { ComponentProps } from '../component-types'\nimport type { FieldProps } from '../field-types'\nimport SharedContext from '../../../shared/Context'\n\nexport type Props = ComponentProps &\n FieldProps<string> & {\n countryCodeFieldClassName?: string\n numberFieldClassName?: string\n // Styling\n width?:
|
|
1
|
+
{"version":3,"file":"PhoneNumber.js","names":["React","useContext","useCallback","useMemo","Div","Autocomplete","Input","classnames","countries","forwardSpaceProps","useField","SharedContext","PhoneNumber","props","_ref","sharedContext","preparedProps","_objectSpread","errorMessages","required","translation","Forms","phoneNumberErrorRequired","className","countryCodeFieldClassName","numberFieldClassName","placeholder","label","phoneNumberLabel","value","emptyValue","error","disabled","width","onFocus","onBlur","onChange","countryCode","phoneNumber","match","countriesDropdownData","map","country","selected_key","code","selected_value","iso","content","name","handleCountryCodeChange","data","changedData","trim","handleNumberChange","filter","Boolean","join","createElement","_extends","undefined","label_direction","countryCodeLabel","on_change","independent_width","on_focus","on_blur","status","message","type","_supportsEufemiaSpacingProps"],"sources":["../../../../../src/extensions/forms/Field/PhoneNumber.tsx"],"sourcesContent":["import React, { useContext, useCallback, useMemo } from 'react'\nimport { Div } from '../../../elements'\nimport { Autocomplete, Input } from '../../../components'\nimport classnames from 'classnames'\nimport countries from '../constants/countries'\nimport { forwardSpaceProps } from '../utils'\nimport { useField } from './hooks'\nimport type { ComponentProps } from '../component-types'\nimport type { FieldProps } from '../field-types'\nimport SharedContext from '../../../shared/Context'\n\nexport type Props = ComponentProps &\n FieldProps<string> & {\n countryCodeFieldClassName?: string\n numberFieldClassName?: string\n // Styling\n width?: 'medium' | 'large'\n }\n\nfunction PhoneNumber(props: Props) {\n const sharedContext = useContext(SharedContext)\n const preparedProps: Props = {\n ...props,\n errorMessages: {\n required: sharedContext?.translation.Forms.phoneNumberErrorRequired,\n ...props?.errorMessages,\n },\n }\n\n const {\n className,\n countryCodeFieldClassName,\n numberFieldClassName,\n placeholder,\n label = sharedContext?.translation.Forms.phoneNumberLabel,\n value,\n emptyValue,\n error,\n disabled,\n width = 'large',\n onFocus,\n onBlur,\n onChange,\n } = useField(preparedProps)\n\n // Split the value into country code and phone number correctly, even if one of them is not\n // filled in (avoiding number ending up in country code etc)\n const [, countryCode = '+47', phoneNumber = ''] =\n (value ?? '')?.match(/^(\\+[^ ]+)? ?(.*)$/) ?? []\n\n const countriesDropdownData = useMemo(\n () =>\n countries.map((country) => ({\n selected_key: `+${country.code}`,\n selected_value: `${country.iso} (+${country.code})`,\n content: `+${country.code} ${country.name}`,\n })),\n []\n )\n\n const handleCountryCodeChange = useCallback(\n ({ data: changedData }: { data: { selected_key: string } }) => {\n if (\n (!changedData || !changedData.selected_key.trim()) &&\n !phoneNumber.trim()\n ) {\n onChange?.(emptyValue)\n return\n }\n\n onChange?.(`${changedData?.selected_key || ''} ${phoneNumber}`)\n },\n [phoneNumber, emptyValue, onChange]\n )\n\n const handleNumberChange = useCallback(\n ({ value }: { value: string }) => {\n if (!value.trim() && !countryCode.trim()) {\n onChange?.(emptyValue)\n return\n }\n\n onChange?.([countryCode, value].filter(Boolean).join(' '))\n },\n [countryCode, emptyValue, onChange]\n )\n\n return (\n <Div\n className={classnames(\n 'dnb-forms-field-phone-number',\n width !== undefined &&\n `dnb-forms-field-phone-number--width-${width}`,\n className\n )}\n {...forwardSpaceProps(preparedProps)}\n >\n <Autocomplete\n className={classnames(\n 'dnb-forms-field-phone-number__country-code',\n countryCodeFieldClassName\n )}\n label_direction=\"vertical\"\n label={sharedContext?.translation.Forms.countryCodeLabel}\n data={countriesDropdownData}\n value={countryCode ?? '+47'}\n disabled={disabled}\n on_change={handleCountryCodeChange}\n independent_width\n />\n <Input\n className={classnames(\n 'dnb-forms-field-phone-number__number',\n numberFieldClassName\n )}\n label_direction=\"vertical\"\n label={label ?? ' '}\n placeholder={placeholder ?? '00 00 00 00'}\n on_change={handleNumberChange}\n on_focus={onFocus}\n on_blur={onBlur}\n value={phoneNumber}\n status={error?.message}\n disabled={disabled}\n type=\"tel\"\n />\n </Div>\n )\n}\n\nPhoneNumber._supportsEufemiaSpacingProps = true\nexport default PhoneNumber\n"],"mappings":";;;;AAAA,OAAOA,KAAK,IAAIC,UAAU,EAAEC,WAAW,EAAEC,OAAO,QAAQ,OAAO;AAC/D,SAASC,GAAG,QAAQ,mBAAmB;AACvC,SAASC,YAAY,EAAEC,KAAK,QAAQ,qBAAqB;AACzD,OAAOC,UAAU,MAAM,YAAY;AACnC,OAAOC,SAAS,MAAM,wBAAwB;AAC9C,SAASC,iBAAiB,QAAQ,UAAU;AAC5C,SAASC,QAAQ,QAAQ,SAAS;AAGlC,OAAOC,aAAa,MAAM,yBAAyB;AAUnD,SAASC,WAAWA,CAACC,KAAY,EAAE;EAAA,IAAAC,IAAA;EACjC,MAAMC,aAAa,GAAGd,UAAU,CAACU,aAAa,CAAC;EAC/C,MAAMK,aAAoB,GAAAC,aAAA,CAAAA,aAAA,KACrBJ,KAAK;IACRK,aAAa,EAAAD,aAAA;MACXE,QAAQ,EAAEJ,aAAa,aAAbA,aAAa,uBAAbA,aAAa,CAAEK,WAAW,CAACC,KAAK,CAACC;IAAwB,GAChET,KAAK,aAALA,KAAK,uBAALA,KAAK,CAAEK,aAAa;EACxB,EACF;EAED,MAAM;IACJK,SAAS;IACTC,yBAAyB;IACzBC,oBAAoB;IACpBC,WAAW;IACXC,KAAK,GAAGZ,aAAa,aAAbA,aAAa,uBAAbA,aAAa,CAAEK,WAAW,CAACC,KAAK,CAACO,gBAAgB;IACzDC,KAAK;IACLC,UAAU;IACVC,KAAK;IACLC,QAAQ;IACRC,KAAK,GAAG,OAAO;IACfC,OAAO;IACPC,MAAM;IACNC;EACF,CAAC,GAAG1B,QAAQ,CAACM,aAAa,CAAC;EAI3B,MAAM,GAAGqB,WAAW,GAAG,KAAK,EAAEC,WAAW,GAAG,EAAE,CAAC,GAC7C,EAAAxB,IAAA,GAACe,KAAK,IAAI,EAAE,cAAAf,IAAA,uBAAZA,IAAA,CAAeyB,KAAK,CAAC,oBAAoB,CAAC,KAAI,EAAE;EAElD,MAAMC,qBAAqB,GAAGrC,OAAO,CACnC,MACEK,SAAS,CAACiC,GAAG,CAAEC,OAAO,KAAM;IAC1BC,YAAY,EAAG,IAAGD,OAAO,CAACE,IAAK,EAAC;IAChCC,cAAc,EAAG,GAAEH,OAAO,CAACI,GAAI,MAAKJ,OAAO,CAACE,IAAK,GAAE;IACnDG,OAAO,EAAG,IAAGL,OAAO,CAACE,IAAK,IAAGF,OAAO,CAACM,IAAK;EAC5C,CAAC,CAAC,CAAC,EACL,EACF,CAAC;EAED,MAAMC,uBAAuB,GAAG/C,WAAW,CACzC,CAAC;IAAEgD,IAAI,EAAEC;EAAgD,CAAC,KAAK;IAC7D,IACE,CAAC,CAACA,WAAW,IAAI,CAACA,WAAW,CAACR,YAAY,CAACS,IAAI,CAAC,CAAC,KACjD,CAACd,WAAW,CAACc,IAAI,CAAC,CAAC,EACnB;MACAhB,QAAQ,aAARA,QAAQ,uBAARA,QAAQ,CAAGN,UAAU,CAAC;MACtB;IACF;IAEAM,QAAQ,aAARA,QAAQ,uBAARA,QAAQ,CAAI,GAAE,CAAAe,WAAW,aAAXA,WAAW,uBAAXA,WAAW,CAAER,YAAY,KAAI,EAAG,IAAGL,WAAY,EAAC,CAAC;EACjE,CAAC,EACD,CAACA,WAAW,EAAER,UAAU,EAAEM,QAAQ,CACpC,CAAC;EAED,MAAMiB,kBAAkB,GAAGnD,WAAW,CACpC,CAAC;IAAE2B;EAAyB,CAAC,KAAK;IAChC,IAAI,CAACA,KAAK,CAACuB,IAAI,CAAC,CAAC,IAAI,CAACf,WAAW,CAACe,IAAI,CAAC,CAAC,EAAE;MACxChB,QAAQ,aAARA,QAAQ,uBAARA,QAAQ,CAAGN,UAAU,CAAC;MACtB;IACF;IAEAM,QAAQ,aAARA,QAAQ,uBAARA,QAAQ,CAAG,CAACC,WAAW,EAAER,KAAK,CAAC,CAACyB,MAAM,CAACC,OAAO,CAAC,CAACC,IAAI,CAAC,GAAG,CAAC,CAAC;EAC5D,CAAC,EACD,CAACnB,WAAW,EAAEP,UAAU,EAAEM,QAAQ,CACpC,CAAC;EAED,OACEpC,KAAA,CAAAyD,aAAA,CAACrD,GAAG,EAAAsD,QAAA;IACFnC,SAAS,EAAEhB,UAAU,CACnB,8BAA8B,EAG9BgB,SAAS,EAFTU,KAAK,KAAK0B,SAAS,IAChB,uCAAsC1B,KAAM,EAEjD;EAAE,GACExB,iBAAiB,CAACO,aAAa,CAAC,GAEpChB,KAAA,CAAAyD,aAAA,CAACpD,YAAY;IACXkB,SAAS,EAAEhB,UAAU,CACnB,4CAA4C,EAC5CiB,yBACF,CAAE;IACFoC,eAAe,EAAC,UAAU;IAC1BjC,KAAK,EAAEZ,aAAa,aAAbA,aAAa,uBAAbA,aAAa,CAAEK,WAAW,CAACC,KAAK,CAACwC,gBAAiB;IACzDX,IAAI,EAAEV,qBAAsB;IAC5BX,KAAK,EAAEQ,WAAW,IAAI,KAAM;IAC5BL,QAAQ,EAAEA,QAAS;IACnB8B,SAAS,EAAEb,uBAAwB;IACnCc,iBAAiB;EAAA,CAClB,CAAC,EACF/D,KAAA,CAAAyD,aAAA,CAACnD,KAAK;IACJiB,SAAS,EAAEhB,UAAU,CACnB,sCAAsC,EACtCkB,oBACF,CAAE;IACFmC,eAAe,EAAC,UAAU;IAC1BjC,KAAK,EAAEA,KAAK,IAAI,GAAI;IACpBD,WAAW,EAAEA,WAAW,IAAI,aAAc;IAC1CoC,SAAS,EAAET,kBAAmB;IAC9BW,QAAQ,EAAE9B,OAAQ;IAClB+B,OAAO,EAAE9B,MAAO;IAChBN,KAAK,EAAES,WAAY;IACnB4B,MAAM,EAAEnC,KAAK,aAALA,KAAK,uBAALA,KAAK,CAAEoC,OAAQ;IACvBnC,QAAQ,EAAEA,QAAS;IACnBoC,IAAI,EAAC;EAAK,CACX,CACE,CAAC;AAEV;AAEAxD,WAAW,CAACyD,4BAA4B,GAAG,IAAI;AAC/C,eAAezD,WAAW"}
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { Props as FieldGroupProps } from '../FieldGroup';
|
|
2
2
|
import { Props as StringComponentProps } from './String';
|
|
3
3
|
export type Props = Omit<FieldGroupProps, 'children'> & Record<'postalCode' | 'city', StringComponentProps> & {
|
|
4
|
-
width?:
|
|
4
|
+
width?: 'medium' | 'large';
|
|
5
5
|
};
|
|
6
6
|
declare function PostalCodeAndCity(props: Props): import("react/jsx-runtime").JSX.Element;
|
|
7
7
|
declare namespace PostalCodeAndCity {
|
|
@@ -20,7 +20,7 @@ function PostalCodeAndCity(props) {
|
|
|
20
20
|
return React.createElement(FieldGroup, _extends({
|
|
21
21
|
className: classnames('dnb-forms-field-postal-code-and-city', props.className)
|
|
22
22
|
}, fieldGroupProps), React.createElement("div", {
|
|
23
|
-
className: 'dnb-forms-field-postal-code-and-city__fields' + (width !==
|
|
23
|
+
className: 'dnb-forms-field-postal-code-and-city__fields' + (width !== undefined ? ` dnb-forms-field-postal-code-and-city--width-${width}` : "")
|
|
24
24
|
}, React.createElement(StringComponent, _extends({}, postalCode, {
|
|
25
25
|
pattern: postalCode.pattern ?? '^[0-9]{4}$',
|
|
26
26
|
className: classnames('dnb-forms-field-postal-code-and-city__postal-code', postalCode.className),
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"PostalCodeAndCity.js","names":["React","useContext","classnames","SharedContext","FieldGroup","StringComponent","PostalCodeAndCity","props","sharedContext","postalCode","city","width","fieldGroupProps","_objectWithoutProperties","_excluded","createElement","_extends","className","pattern","label","translation","Forms","postalCodeLabel","errorMessages","_objectSpread","required","postalCodeErrorRequired","postalCodeErrorPattern","placeholder","inputClassName","cityLabel","cityErrorRequired","_supportsEufemiaSpacingProps"],"sources":["../../../../../src/extensions/forms/Field/PostalCodeAndCity.tsx"],"sourcesContent":["import React, { useContext } from 'react'\nimport classnames from 'classnames'\nimport SharedContext from '../../../shared/Context'\nimport FieldGroup, { Props as FieldGroupProps } from '../FieldGroup'\nimport StringComponent, { Props as StringComponentProps } from './String'\n\nexport type Props = Omit<FieldGroupProps, 'children'> &\n Record<'postalCode' | 'city', StringComponentProps> & {\n width?:
|
|
1
|
+
{"version":3,"file":"PostalCodeAndCity.js","names":["React","useContext","classnames","SharedContext","FieldGroup","StringComponent","PostalCodeAndCity","props","sharedContext","postalCode","city","width","fieldGroupProps","_objectWithoutProperties","_excluded","createElement","_extends","className","undefined","pattern","label","translation","Forms","postalCodeLabel","errorMessages","_objectSpread","required","postalCodeErrorRequired","postalCodeErrorPattern","placeholder","inputClassName","cityLabel","cityErrorRequired","_supportsEufemiaSpacingProps"],"sources":["../../../../../src/extensions/forms/Field/PostalCodeAndCity.tsx"],"sourcesContent":["import React, { useContext } from 'react'\nimport classnames from 'classnames'\nimport SharedContext from '../../../shared/Context'\nimport FieldGroup, { Props as FieldGroupProps } from '../FieldGroup'\nimport StringComponent, { Props as StringComponentProps } from './String'\n\nexport type Props = Omit<FieldGroupProps, 'children'> &\n Record<'postalCode' | 'city', StringComponentProps> & {\n width?: 'medium' | 'large'\n }\n\nfunction PostalCodeAndCity(props: Props) {\n const sharedContext = useContext(SharedContext)\n\n const {\n postalCode = {},\n city = {},\n width = 'large',\n ...fieldGroupProps\n } = props\n\n return (\n <FieldGroup\n className={classnames(\n 'dnb-forms-field-postal-code-and-city',\n props.className\n )}\n {...fieldGroupProps}\n >\n <div\n className={classnames(\n 'dnb-forms-field-postal-code-and-city__fields',\n width !== undefined &&\n `dnb-forms-field-postal-code-and-city--width-${width}`\n )}\n >\n <StringComponent\n {...postalCode}\n pattern={postalCode.pattern ?? '^[0-9]{4}$'}\n className={classnames(\n 'dnb-forms-field-postal-code-and-city__postal-code',\n postalCode.className\n )}\n label={\n postalCode.label ??\n sharedContext?.translation.Forms.postalCodeLabel\n }\n errorMessages={{\n required:\n sharedContext?.translation.Forms.postalCodeErrorRequired,\n pattern:\n sharedContext?.translation.Forms.postalCodeErrorPattern,\n ...postalCode.errorMessages,\n }}\n placeholder={postalCode.placeholder ?? '0000'}\n width={false}\n inputClassName=\"dnb-forms-field-postal-code-and-city__postal-code-input\"\n />\n <StringComponent\n {...city}\n className={classnames(\n 'dnb-forms-field-postal-code-and-city__city',\n city.className\n )}\n label={city.label ?? sharedContext?.translation.Forms.cityLabel}\n errorMessages={{\n required: sharedContext?.translation.Forms.cityErrorRequired,\n ...city.errorMessages,\n }}\n width=\"stretch\"\n />\n </div>\n </FieldGroup>\n )\n}\n\nPostalCodeAndCity._supportsEufemiaSpacingProps = true\nexport default PostalCodeAndCity\n"],"mappings":";;;;;;AAAA,OAAOA,KAAK,IAAIC,UAAU,QAAQ,OAAO;AACzC,OAAOC,UAAU,MAAM,YAAY;AACnC,OAAOC,aAAa,MAAM,yBAAyB;AACnD,OAAOC,UAAU,MAAoC,eAAe;AACpE,OAAOC,eAAe,MAAyC,UAAU;AAOzE,SAASC,iBAAiBA,CAACC,KAAY,EAAE;EACvC,MAAMC,aAAa,GAAGP,UAAU,CAACE,aAAa,CAAC;EAE/C,MAAM;MACJM,UAAU,GAAG,CAAC,CAAC;MACfC,IAAI,GAAG,CAAC,CAAC;MACTC,KAAK,GAAG;IAEV,CAAC,GAAGJ,KAAK;IADJK,eAAe,GAAAC,wBAAA,CAChBN,KAAK,EAAAO,SAAA;EAET,OACEd,KAAA,CAAAe,aAAA,CAACX,UAAU,EAAAY,QAAA;IACTC,SAAS,EAAEf,UAAU,CACnB,sCAAsC,EACtCK,KAAK,CAACU,SACR;EAAE,GACEL,eAAe,GAEnBZ,KAAA,CAAAe,aAAA;IACEE,SAAS,EACP,8CAA8C,IAC9CN,KAAK,KAAKO,SAAS,mDAC8BP,KAAM;EACvD,GAEFX,KAAA,CAAAe,aAAA,CAACV,eAAe,EAAAW,QAAA,KACVP,UAAU;IACdU,OAAO,EAAEV,UAAU,CAACU,OAAO,IAAI,YAAa;IAC5CF,SAAS,EAAEf,UAAU,CACnB,mDAAmD,EACnDO,UAAU,CAACQ,SACb,CAAE;IACFG,KAAK,EACHX,UAAU,CAACW,KAAK,KAChBZ,aAAa,aAAbA,aAAa,uBAAbA,aAAa,CAAEa,WAAW,CAACC,KAAK,CAACC,eAAe,CACjD;IACDC,aAAa,EAAAC,aAAA;MACXC,QAAQ,EACNlB,aAAa,aAAbA,aAAa,uBAAbA,aAAa,CAAEa,WAAW,CAACC,KAAK,CAACK,uBAAuB;MAC1DR,OAAO,EACLX,aAAa,aAAbA,aAAa,uBAAbA,aAAa,CAAEa,WAAW,CAACC,KAAK,CAACM;IAAsB,GACtDnB,UAAU,CAACe,aAAa,CAC3B;IACFK,WAAW,EAAEpB,UAAU,CAACoB,WAAW,IAAI,MAAO;IAC9ClB,KAAK,EAAE,KAAM;IACbmB,cAAc,EAAC;EAAyD,EACzE,CAAC,EACF9B,KAAA,CAAAe,aAAA,CAACV,eAAe,EAAAW,QAAA,KACVN,IAAI;IACRO,SAAS,EAAEf,UAAU,CACnB,4CAA4C,EAC5CQ,IAAI,CAACO,SACP,CAAE;IACFG,KAAK,EAAEV,IAAI,CAACU,KAAK,KAAIZ,aAAa,aAAbA,aAAa,uBAAbA,aAAa,CAAEa,WAAW,CAACC,KAAK,CAACS,SAAS,CAAC;IAChEP,aAAa,EAAAC,aAAA;MACXC,QAAQ,EAAElB,aAAa,aAAbA,aAAa,uBAAbA,aAAa,CAAEa,WAAW,CAACC,KAAK,CAACU;IAAiB,GACzDtB,IAAI,CAACc,aAAa,CACrB;IACFb,KAAK,EAAC;EAAS,EAChB,CACE,CACK,CAAC;AAEjB;AAEAL,iBAAiB,CAAC2B,4BAA4B,GAAG,IAAI;AACrD,eAAe3B,iBAAiB"}
|
|
@@ -4,7 +4,7 @@ import type { FieldProps } from '../field-types';
|
|
|
4
4
|
export type Props = ComponentProps & FieldProps<string | number> & {
|
|
5
5
|
children?: React.ReactNode;
|
|
6
6
|
variant?: 'dropdown' | 'radio' | 'checkbox';
|
|
7
|
-
width?:
|
|
7
|
+
width?: 'medium' | 'large' | 'stretch';
|
|
8
8
|
};
|
|
9
9
|
declare function Selection(props: Props): import("react/jsx-runtime").JSX.Element;
|
|
10
10
|
declare namespace Selection {
|
|
@@ -83,7 +83,7 @@ function Selection(props) {
|
|
|
83
83
|
};
|
|
84
84
|
});
|
|
85
85
|
return React.createElement(Dropdown, _extends({
|
|
86
|
-
className: classnames('dnb-forms-field-selection', className, width !==
|
|
86
|
+
className: classnames('dnb-forms-field-selection', className, width !== 'stretch' && `dnb-forms-field-selection--width-${width}`),
|
|
87
87
|
list_class: "dnb-forms-field-selection__list",
|
|
88
88
|
portal_class: "dnb-forms-field-selection__portal",
|
|
89
89
|
title: placeholder,
|