@bytebrand/fe-ui-core-autobahn 1.0.1 → 1.0.3
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/assets/autode-logo.svg +6 -6
- package/cards/CarCard.tsx +174 -174
- package/cards/CarRow.tsx +186 -182
- package/cards/cardParts.tsx +529 -489
- package/cards/index.ts +37 -35
- package/cards/types.ts +124 -114
- package/chrome/Footer.tsx +189 -189
- package/chrome/TopBar.tsx +405 -405
- package/chrome/index.ts +20 -20
- package/chrome/svg.d.ts +11 -11
- package/compat/AccardionSection/AccardionSection.styl +45 -45
- package/compat/AccardionSection/AccardionSection.tsx +56 -56
- package/compat/AccordionWidget/AccordionWidget.styl +220 -220
- package/compat/AccordionWidget/AccordionWidget.tsx +257 -257
- package/compat/AccordionWrapper/AccordionItem/AccordionItem.styl +34 -34
- package/compat/AccordionWrapper/AccordionItem/AccordionItem.tsx +64 -64
- package/compat/AccordionWrapper/AccordionWrapper.tsx +34 -34
- package/compat/AdvantageItem/AdvantageItem.styl +47 -47
- package/compat/AdvantageItem/AdvantageItem.tsx +26 -26
- package/compat/Alternative/DealerInfo.styl +116 -116
- package/compat/Alternative/DealerInfo.tsx +171 -171
- package/compat/Badge/Badge.styl +44 -44
- package/compat/Badge/Badge.tsx +25 -25
- package/compat/BodyTypeIcons/Audi.tsx +9 -9
- package/compat/BodyTypeIcons/Bmw.tsx +860 -860
- package/compat/BodyTypeIcons/Ford.tsx +31 -31
- package/compat/BodyTypeIcons/IconsConfig.tsx +44 -44
- package/compat/BodyTypeIcons/IconsConfigCompact.tsx +30 -30
- package/compat/BodyTypeIcons/Mazda.tsx +44 -44
- package/compat/BodyTypeIcons/MercedesBenz.tsx +38 -38
- package/compat/BodyTypeIcons/Opel.tsx +19 -19
- package/compat/BodyTypeIcons/Search.tsx +19 -19
- package/compat/BodyTypeIcons/SelectorCategoryCombi.tsx +68 -68
- package/compat/BodyTypeIcons/SelectorCategoryCompact.tsx +20 -20
- package/compat/BodyTypeIcons/SelectorCategoryConvertible.tsx +68 -68
- package/compat/BodyTypeIcons/SelectorCategoryCoupe.tsx +60 -60
- package/compat/BodyTypeIcons/SelectorCategoryMinibus.tsx +64 -64
- package/compat/BodyTypeIcons/SelectorCategorySedan.tsx +69 -69
- package/compat/BodyTypeIcons/SelectorCategorySuv.tsx +77 -77
- package/compat/BodyTypeIcons/SelectorCategoryTransporter.tsx +68 -68
- package/compat/BodyTypeIcons/SelectorCategoryVan.tsx +72 -72
- package/compat/BodyTypeIcons/Volkswagen.tsx +330 -330
- package/compat/BodyTypeIcons/index.ts +17 -17
- package/compat/Button/Button.tsx +65 -65
- package/compat/ButtonOld/Button.styl +65 -65
- package/compat/ButtonOld/Button.tsx +84 -84
- package/compat/Checkbox/Checkbox.styl +119 -119
- package/compat/Checkbox/Checkbox.tsx +151 -151
- package/compat/Checkbox/FormCheckbox.styl +22 -22
- package/compat/Checkbox/FormCheckbox.tsx +86 -86
- package/compat/Co2Widget/CO2Efficiency.styl +219 -219
- package/compat/Co2Widget/CO2Efficiency.tsx +93 -93
- package/compat/ContactInfo/ContactInfo.styl +22 -22
- package/compat/ContactInfo/ContactInfo.tsx +161 -161
- package/compat/ContactInfo/TemporaryTranslation.ts +11 -11
- package/compat/CookieModal/CookieModal.tsx +49 -49
- package/compat/CookieModal/Modal.tsx +43 -43
- package/compat/CookieModal/ModalsConfig.tsx +23 -23
- package/compat/CookieModal/modals/ManageCookieModal/ManageCookieModal.styl +86 -86
- package/compat/CookieModal/modals/ManageCookieModal/ManageCookieModal.tsx +184 -184
- package/compat/CookieModal/modals/PreviewCookieModal/PreviewCookieModal.styl +66 -66
- package/compat/CookieModal/modals/PreviewCookieModal/PreviewCookieModal.tsx +51 -51
- package/compat/CookieModal/modals/TestModal.tsx +7 -7
- package/compat/CookieModal/useModal.ts +13 -13
- package/compat/CustomerQuote/CustomerQuote.styl +79 -79
- package/compat/CustomerQuote/CustomerQuote.tsx +68 -68
- package/compat/CustomerQuotesSlider/CustomerQuotesSlider.styl +46 -46
- package/compat/CustomerQuotesSlider/CustomerQuotesSlider.tsx +79 -79
- package/compat/CustomerQuotesSlider/SliderArrow.tsx +20 -20
- package/compat/CustomerQuotesSlider/slider.global.styl +2 -2
- package/compat/ExpansionPanel/ExpansionPanel.tsx +68 -68
- package/compat/FirstInfoBlock/FirstInfoBlock.styl +33 -33
- package/compat/FirstInfoBlock/FirstInfoBlock.tsx +49 -49
- package/compat/FirstInfoBlock/FirstInfoBlockItem/FirstInfoBlockItem.styl +66 -66
- package/compat/FirstInfoBlock/FirstInfoBlockItem/FirstInfoBlockItem.tsx +21 -21
- package/compat/FormattedNumber/FormattedNumber.styl +1 -1
- package/compat/FormattedNumber/FormattedNumber.tsx +90 -90
- package/compat/IconContainer/IconContainer.styl +23 -23
- package/compat/IconContainer/IconContainer.tsx +34 -34
- package/compat/Image/Image.styl +109 -109
- package/compat/Image/Image.tsx +302 -302
- package/compat/ImageSettings/EditableOptionsTable/CustomCheckbox/CustomCheckbox.styl +7 -7
- package/compat/ImageSettings/EditableOptionsTable/CustomCheckbox/CustomCheckbox.tsx +30 -30
- package/compat/ImageSettings/EditableOptionsTable/EditableOptionsTable.styl +122 -122
- package/compat/ImageSettings/EditableOptionsTable/EditableOptionsTable.tsx +199 -199
- package/compat/ImageSettings/EditableOptionsTable/ImageIcon/ImageIcon.styl +3 -3
- package/compat/ImageSettings/EditableOptionsTable/ImageIcon/ImageIcon.tsx +15 -15
- package/compat/ImageSettings/OptionsTable/OptionsTable.styl +47 -47
- package/compat/ImageSettings/OptionsTable/OptionsTable.tsx +122 -122
- package/compat/ImageSettings/PricePlan/PricePlan.styl +63 -63
- package/compat/ImageSettings/PricePlan/PricePlan.tsx +32 -32
- package/compat/ImageSettings/index.ts +42 -42
- package/compat/ImagesSet/ImagesSet.styl +27 -27
- package/compat/ImagesSet/ImagesSet.tsx +76 -76
- package/compat/InfoBlockWrapper/InfoBlockWrapper.styl +41 -41
- package/compat/InfoBlockWrapper/InfoBlockWrapper.tsx +46 -46
- package/compat/Loader/Loader.styl +39 -39
- package/compat/Loader/Loader.tsx +32 -32
- package/compat/MagnifyGlass/MagnifyGlass.styl +33 -33
- package/compat/MagnifyGlass/MagnifyGlass.tsx +213 -213
- package/compat/MdAccordionGroup/MdAccordionGroup.tsx +53 -53
- package/compat/MdCheckbox/MdCheckbox.tsx +69 -69
- package/compat/MdField/MdField.tsx +100 -100
- package/compat/MdSelect/MdSelect.tsx +103 -103
- package/compat/MdSwitch/MdSwitch.tsx +29 -29
- package/compat/MdTabs/MdTabs.tsx +47 -47
- package/compat/MdTooltip/MdTooltip.tsx +31 -31
- package/compat/OfferDetailedSection/OfferDetailedSection.styl +31 -31
- package/compat/OfferDetailedSection/OfferDetailedSection.tsx +100 -100
- package/compat/OfferDetailedSection/partials/PanelConfig.styl +131 -131
- package/compat/OfferDetailedSection/partials/PanelConfig.tsx +121 -121
- package/compat/OfferPanel/AboAccordion/AboAccordion.styl +24 -24
- package/compat/OfferPanel/AboAccordion/AboAccordion.tsx +128 -128
- package/compat/OfferPanel/AboAccordion/AboColorOptions/AboColorOptions.styl +11 -11
- package/compat/OfferPanel/AboAccordion/AboColorOptions/AboColorOptions.tsx +35 -35
- package/compat/OfferPanel/AboAccordion/AboFaq/AboFaq.styl +20 -20
- package/compat/OfferPanel/AboAccordion/AboFaq/AboFaq.tsx +25 -25
- package/compat/OfferPanel/AboAccordion/AboIncludedServices/AboIncludedServices.styl +13 -13
- package/compat/OfferPanel/AboAccordion/AboIncludedServices/AboIncludedServices.tsx +39 -39
- package/compat/OfferPanel/MuiOfferPeriod/MuiOfferPeriod.tsx +42 -42
- package/compat/OfferPanel/OfferCheckboxGroup/CheckboxContainer.tsx +140 -140
- package/compat/OfferPanel/OfferCheckboxGroup/OfferCheckboxGroup.styl +144 -144
- package/compat/OfferPanel/OfferCheckboxGroup/OfferCheckboxGroup.tsx +23 -23
- package/compat/OfferPanel/OfferPanel.styl +193 -193
- package/compat/OfferPanel/OfferPanel.tsx +81 -81
- package/compat/OfferPanel/OfferPeriod/OfferPeriod.styl +24 -24
- package/compat/OfferPanel/OfferPeriod/OfferPeriod.tsx +45 -45
- package/compat/OfferPanel/RangeGroup/RangeGroup.tsx +39 -39
- package/compat/OfferRequestButtonWrapper/OfferRequestButtonWrapper.styl +119 -119
- package/compat/OfferRequestButtonWrapper/OfferRequestButtonWrapper.styled.tsx +33 -33
- package/compat/OfferRequestButtonWrapper/OfferRequestButtonWrapper.tsx +122 -122
- package/compat/PriceRating/PriceRating.styl +47 -47
- package/compat/PriceRating/PriceRating.tsx +64 -64
- package/compat/PriceRatingDetailed/PriceRatingDetailed.styl +120 -120
- package/compat/PriceRatingDetailed/PriceRatingDetailed.tsx +191 -191
- package/compat/PricingToolBlock/PricingTool.styl +6 -6
- package/compat/PricingToolBlock/PricingTool.tsx +29 -29
- package/compat/Radio/Radio.styl +115 -115
- package/compat/Radio/Radio.tsx +141 -141
- package/compat/Radio/RadioGroup.styl +5 -5
- package/compat/Radio/RadioGroup.tsx +65 -65
- package/compat/Range/Range.tsx +79 -79
- package/compat/RateSearchValue/RateSearchValue.styl +22 -22
- package/compat/RateSearchValue/RateSearchValue.tsx +55 -55
- package/compat/RateSearchWidget/RateSearchWidget.styl +106 -106
- package/compat/RateSearchWidget/RateSearchWidget.tsx +163 -163
- package/compat/ServiceBlockItem/ServiceBlockItem.styl +47 -47
- package/compat/ServiceBlockItem/ServiceBlockItem.tsx +25 -25
- package/compat/SkeletonItem/SkeletonItem.styl +80 -80
- package/compat/SkeletonItem/SkeletonItem.tsx +80 -80
- package/compat/StarButton/StarButton.styl +39 -39
- package/compat/StarButton/StarButton.tsx +31 -31
- package/compat/TabPanel/TabPanel.tsx +28 -28
- package/compat/TimePicker/TimePicker.styl +22 -22
- package/compat/TimePicker/TimePicker.tsx +156 -156
- package/compat/Tooltip/Tooltip.styl +117 -117
- package/compat/Tooltip/Tooltip.tsx +63 -63
- package/compat/Usp/Usp.styl +78 -78
- package/compat/Usp/Usp.tsx +30 -30
- package/compat/Usp/uspTranslate.ts +12 -12
- package/compat/VehicleDetailedSidebar/VehicleDetailedSidebar.styl +36 -36
- package/compat/VehicleDetailedSidebar/VehicleDetailedSidebar.tsx +178 -178
- package/compat/VehicleDetailedSidebar/partials/Price.styl +27 -27
- package/compat/VehicleDetailedSidebar/partials/Price.tsx +41 -41
- package/compat/VehicleDetailedSidebar/partials/PriceContent.styl +123 -123
- package/compat/VehicleDetailedSidebar/partials/PriceContent.tsx +128 -128
- package/compat/VehicleDetailedSidebar/partials/Properties.styl +58 -58
- package/compat/VehicleDetailedSidebar/partials/Properties.tsx +155 -155
- package/compat/VehicleDetailedSidebar/partials/Title.styl +35 -35
- package/compat/VehicleDetailedSidebar/partials/Title.tsx +33 -33
- package/compat/VehicleDetailedSlider/VehicleDetailedSlider.styl +146 -146
- package/compat/VehicleDetailedSlider/VehicleDetailedSlider.tsx +382 -382
- package/compat/VehicleDetailedSlider/partials/MobileStast.tsx +61 -61
- package/compat/VehicleDetailedSlider/partials/MobileStats.styl +71 -71
- package/compat/VehicleDetailedSlider/partials/PriceData.styl +50 -50
- package/compat/VehicleDetailedSlider/partials/PriceData.tsx +67 -67
- package/compat/VehicleDetailedSlider/partials/Stats.styl +80 -80
- package/compat/VehicleDetailedSlider/partials/Stats.tsx +62 -62
- package/compat/VehicleDetailedSlider/partials/Title.styl +44 -44
- package/compat/VehicleDetailedSlider/partials/Title.tsx +36 -36
- package/compat/VehicleFormattedPrice/VehicleFormattedPrice.styl +148 -148
- package/compat/VehicleFormattedPrice/VehicleFormattedPrice.tsx +163 -163
- package/compat/VehicleSlider/VehicleSlider.styl +62 -62
- package/compat/VehicleSlider/VehicleSlider.tsx +125 -125
- package/compat/VehicleSlider/VehicleSliderForSRL.tsx +175 -175
- package/compat/VehicleSmallCard/SeoText/SeoText.styl +8 -8
- package/compat/VehicleSmallCard/SeoText/SeoText.tsx +16 -16
- package/compat/VehicleSmallCard/VehicleData/VechiclePriceItem/VechiclePriceItem.styl +204 -204
- package/compat/VehicleSmallCard/VehicleData/VechiclePriceItem/VechiclePriceItem.tsx +199 -199
- package/compat/VehicleSmallCard/VehicleData/VehicleInfo/VehicleInfo.styl +273 -273
- package/compat/VehicleSmallCard/VehicleData/VehicleInfo/VehicleInfo.tsx +179 -179
- package/compat/VehicleSmallCard/VehicleData/VehiclePrice/VehiclePrice.styl +165 -165
- package/compat/VehicleSmallCard/VehicleData/VehiclePrice/VehiclePrice.tsx +299 -299
- package/compat/VehicleSmallCard/VehicleData/VehicleProperty/VehicleProperty.styl +32 -32
- package/compat/VehicleSmallCard/VehicleData/VehicleProperty/VehicleProperty.tsx +35 -35
- package/compat/VehicleSmallCard/VehicleData/VehicleTitle/VehicleTitle.styl +135 -135
- package/compat/VehicleSmallCard/VehicleData/VehicleTitle/VehicleTitle.tsx +91 -91
- package/compat/VehicleSmallCard/VehicleSmallCard.styl +309 -309
- package/compat/VehicleSmallCard/VehicleSmallCard.tsx +448 -448
- package/compat/index.ts +77 -77
- package/compat/legacy-theme/mixins.styl +93 -93
- package/compat/legacy-theme/priceReviewColors.styl +12 -12
- package/compat/legacy-theme/slider.global.styl +5 -5
- package/compat/legacy-theme/theme.styl +136 -136
- package/compat/withLabel/withLabel.styl +33 -33
- package/compat/withLabel/withLabel.tsx +44 -44
- package/compat/withStats/withStats.styl +174 -174
- package/compat/withStats/withStats.tsx +238 -238
- package/constants/RateSearchWidget.ts +15 -15
- package/constants/Search.ts +290 -290
- package/constants/SearchWidget.ts +108 -108
- package/constants/app.ts +223 -223
- package/constants/common.ts +127 -127
- package/constants/core.ts +131 -131
- package/constants/highlights.ts +165 -165
- package/constants/price.ts +9 -9
- package/constants/selectors.ts +38 -38
- package/constants.ts +91 -91
- package/data/DataTransformers.ts +88 -88
- package/data/fieldMapping.ts +364 -342
- package/data/toAutobahnCar.ts +455 -442
- package/iconsvg/IconSVG.tsx +30 -30
- package/iconsvg/IconSVGConfig.tsx +768 -768
- package/iconsvg/SVG/AboPartner.tsx +16 -16
- package/iconsvg/SVG/ArrowQuotes.tsx +22 -22
- package/iconsvg/SVG/CloseIcon.tsx +17 -17
- package/iconsvg/SVG/CloseIconSelect.tsx +18 -18
- package/iconsvg/SVG/ClosedLockIcon.tsx +18 -18
- package/iconsvg/SVG/DealerCheckIcon.tsx +18 -18
- package/iconsvg/SVG/DealerPopoverMail.tsx +21 -21
- package/iconsvg/SVG/DealerPopoverPhone.tsx +21 -21
- package/iconsvg/SVG/GrayPhoneIcon.tsx +22 -22
- package/iconsvg/SVG/InternetIcon.tsx +18 -18
- package/iconsvg/SVG/WhiteEnvelopeIcon.tsx +21 -21
- package/iconsvg/SVG/bodyType/Cabrio.tsx +23 -23
- package/iconsvg/SVG/bodyType/Coupe.tsx +22 -22
- package/iconsvg/SVG/bodyType/Minibus.tsx +22 -22
- package/iconsvg/SVG/bodyType/Other.tsx +25 -25
- package/iconsvg/SVG/bodyType/Sedan.tsx +22 -22
- package/iconsvg/SVG/bodyType/SelectorCategoryCombi.tsx +68 -68
- package/iconsvg/SVG/bodyType/SelectorCategoryCompact.tsx +20 -20
- package/iconsvg/SVG/bodyType/SelectorCategoryConvertible.tsx +68 -68
- package/iconsvg/SVG/bodyType/SelectorCategoryCoupe.tsx +60 -60
- package/iconsvg/SVG/bodyType/SelectorCategoryMinibus.tsx +64 -64
- package/iconsvg/SVG/bodyType/SelectorCategoryOther.tsx +60 -60
- package/iconsvg/SVG/bodyType/SelectorCategorySedan.tsx +69 -69
- package/iconsvg/SVG/bodyType/SelectorCategorySuv.tsx +77 -77
- package/iconsvg/SVG/bodyType/SelectorCategoryTransporter.tsx +68 -68
- package/iconsvg/SVG/bodyType/SelectorCategoryVan.tsx +72 -72
- package/iconsvg/SVG/bodyType/Small.tsx +23 -23
- package/iconsvg/SVG/bodyType/Suv.tsx +23 -23
- package/iconsvg/SVG/bodyType/Van.tsx +23 -23
- package/iconsvg/SVG/bodyType/Wagon.tsx +23 -23
- package/iconsvg/SVG/common/AddIcon.tsx +16 -16
- package/iconsvg/SVG/common/AddPlus.tsx +16 -16
- package/iconsvg/SVG/common/AddressDashboard.tsx +29 -29
- package/iconsvg/SVG/common/AddressIcon.tsx +20 -20
- package/iconsvg/SVG/common/ArrowDetailedAccordionBlue.tsx +26 -26
- package/iconsvg/SVG/common/ArrowDownBlue.tsx +21 -21
- package/iconsvg/SVG/common/ArrowSelect.tsx +23 -23
- package/iconsvg/SVG/common/ArrowStepDown.tsx +18 -18
- package/iconsvg/SVG/common/Autocheck.tsx +19 -19
- package/iconsvg/SVG/common/AutodeLogo.tsx +36 -36
- package/iconsvg/SVG/common/Avatar.tsx +17 -17
- package/iconsvg/SVG/common/BellGray.tsx +19 -19
- package/iconsvg/SVG/common/BigInfoTransparent.tsx +13 -13
- package/iconsvg/SVG/common/Browse.tsx +20 -20
- package/iconsvg/SVG/common/Calendar.tsx +24 -24
- package/iconsvg/SVG/common/CallbackDashboard.tsx +30 -30
- package/iconsvg/SVG/common/Camera.tsx +17 -17
- package/iconsvg/SVG/common/Car.tsx +16 -16
- package/iconsvg/SVG/common/CarBody.tsx +19 -19
- package/iconsvg/SVG/common/CarFront.tsx +43 -43
- package/iconsvg/SVG/common/CarInspectionCheck.tsx +21 -21
- package/iconsvg/SVG/common/CarInspectionScheme0.tsx +32 -32
- package/iconsvg/SVG/common/CarInspectionScheme1.tsx +53 -53
- package/iconsvg/SVG/common/CarInspectionScheme2.tsx +52 -52
- package/iconsvg/SVG/common/CarInspectionScheme3.tsx +32 -32
- package/iconsvg/SVG/common/CarInspectionScheme4.tsx +32 -32
- package/iconsvg/SVG/common/CarInspectionScheme5.tsx +32 -32
- package/iconsvg/SVG/common/CarInspectionScheme6.tsx +32 -32
- package/iconsvg/SVG/common/CarInspectionSchemeGeneral copy.tsx +24 -24
- package/iconsvg/SVG/common/CarInspectionSchemeGeneral.tsx +24 -24
- package/iconsvg/SVG/common/CheckBlue.tsx +18 -18
- package/iconsvg/SVG/common/CheckGreen.tsx +22 -22
- package/iconsvg/SVG/common/CheckMark.tsx +16 -16
- package/iconsvg/SVG/common/CheckWhite.tsx +19 -19
- package/iconsvg/SVG/common/Chevron.tsx +17 -17
- package/iconsvg/SVG/common/CircledCheckmark.tsx +25 -25
- package/iconsvg/SVG/common/Clock.tsx +18 -18
- package/iconsvg/SVG/common/Close.tsx +19 -19
- package/iconsvg/SVG/common/CloseGrey.tsx +22 -22
- package/iconsvg/SVG/common/ContactEmail.tsx +21 -21
- package/iconsvg/SVG/common/ContactPhone.tsx +28 -28
- package/iconsvg/SVG/common/CopyIcon copy.tsx +22 -22
- package/iconsvg/SVG/common/CopyIcon.tsx +22 -22
- package/iconsvg/SVG/common/CopyIconForDealer.tsx +21 -21
- package/iconsvg/SVG/common/DashboardIcon.tsx +20 -20
- package/iconsvg/SVG/common/DashboardQuestionMark.tsx +20 -20
- package/iconsvg/SVG/common/DealersIcon.tsx +20 -20
- package/iconsvg/SVG/common/DeleteCircle.tsx +31 -31
- package/iconsvg/SVG/common/DeleteV1Icon.tsx +18 -18
- package/iconsvg/SVG/common/DeliveryDashboard.tsx +25 -25
- package/iconsvg/SVG/common/DeliveryMail.tsx +24 -24
- package/iconsvg/SVG/common/Discount100De.tsx +18 -18
- package/iconsvg/SVG/common/Discount100En.tsx +19 -19
- package/iconsvg/SVG/common/Discount66De.tsx +28 -28
- package/iconsvg/SVG/common/Discount66En.tsx +20 -20
- package/iconsvg/SVG/common/DoneIcon.tsx +18 -18
- package/iconsvg/SVG/common/EditCircle.tsx +32 -32
- package/iconsvg/SVG/common/EditPriceIcon.tsx +20 -20
- package/iconsvg/SVG/common/EuroCurrency.tsx +18 -18
- package/iconsvg/SVG/common/Export.tsx +20 -20
- package/iconsvg/SVG/common/Eye.tsx +17 -17
- package/iconsvg/SVG/common/EyeCatch.tsx +19 -19
- package/iconsvg/SVG/common/FavoritesIcon.tsx +20 -20
- package/iconsvg/SVG/common/FilterRange.tsx +16 -16
- package/iconsvg/SVG/common/FilterToolBlack.tsx +23 -23
- package/iconsvg/SVG/common/FlagDe.tsx +21 -21
- package/iconsvg/SVG/common/FlagEn.tsx +43 -43
- package/iconsvg/SVG/common/GrayEnvelopeIcon.tsx +19 -19
- package/iconsvg/SVG/common/HamburgerMenuIcon.tsx +18 -18
- package/iconsvg/SVG/common/HandingOverDashboard.tsx +32 -32
- package/iconsvg/SVG/common/ImageSettingsIcon.tsx +20 -20
- package/iconsvg/SVG/common/Info.tsx +16 -16
- package/iconsvg/SVG/common/InfoIcon.tsx +17 -17
- package/iconsvg/SVG/common/InfoTransparent.tsx +18 -18
- package/iconsvg/SVG/common/LogoutIcon.tsx +20 -20
- package/iconsvg/SVG/common/MagnifyingGlass.tsx +31 -31
- package/iconsvg/SVG/common/MenuArrow.tsx +16 -16
- package/iconsvg/SVG/common/MenuGrey.tsx +22 -22
- package/iconsvg/SVG/common/MobileDeLogo.tsx +108 -108
- package/iconsvg/SVG/common/MyOrderIcon.tsx +20 -20
- package/iconsvg/SVG/common/MyVehiclesIcon.tsx +20 -20
- package/iconsvg/SVG/common/NewFlagDe.tsx +25 -25
- package/iconsvg/SVG/common/NewFlagEn.tsx +34 -34
- package/iconsvg/SVG/common/OrderReceivedDashboard.tsx +27 -27
- package/iconsvg/SVG/common/Package.tsx +30 -30
- package/iconsvg/SVG/common/Phone.tsx +18 -18
- package/iconsvg/SVG/common/PhoneGrey.tsx +22 -22
- package/iconsvg/SVG/common/PickupDashboard.tsx +30 -30
- package/iconsvg/SVG/common/Picture.tsx +24 -24
- package/iconsvg/SVG/common/Pictures.tsx +32 -32
- package/iconsvg/SVG/common/Plus.tsx +16 -16
- package/iconsvg/SVG/common/PlusNew.tsx +16 -16
- package/iconsvg/SVG/common/PreparationDashboard.tsx +29 -29
- package/iconsvg/SVG/common/ProfileDashboard.tsx +24 -24
- package/iconsvg/SVG/common/ProfileIcon.tsx +17 -17
- package/iconsvg/SVG/common/Question.tsx +19 -19
- package/iconsvg/SVG/common/QuestionBold.tsx +25 -25
- package/iconsvg/SVG/common/RegistrationDashboard.tsx +31 -31
- package/iconsvg/SVG/common/SavedSearchsIcon.tsx +20 -20
- package/iconsvg/SVG/common/Search.tsx +19 -19
- package/iconsvg/SVG/common/SearchGrey.tsx +22 -22
- package/iconsvg/SVG/common/SettingPenIcon.tsx +20 -20
- package/iconsvg/SVG/common/Share.tsx +16 -16
- package/iconsvg/SVG/common/ShoppingCart.tsx +18 -18
- package/iconsvg/SVG/common/SliderArrow.tsx +21 -21
- package/iconsvg/SVG/common/SliderEye.tsx +17 -17
- package/iconsvg/SVG/common/SortUpDownArrows.tsx +18 -18
- package/iconsvg/SVG/common/Speedometer.tsx +23 -23
- package/iconsvg/SVG/common/Star.tsx +20 -20
- package/iconsvg/SVG/common/StarNew.tsx +16 -16
- package/iconsvg/SVG/common/StarOutline.tsx +20 -20
- package/iconsvg/SVG/common/StarRoundedCorners.tsx +18 -18
- package/iconsvg/SVG/common/Stats.tsx +17 -17
- package/iconsvg/SVG/common/Step1.tsx +21 -21
- package/iconsvg/SVG/common/Step2.tsx +20 -20
- package/iconsvg/SVG/common/Step3.tsx +21 -21
- package/iconsvg/SVG/common/SupportCallbackIcon.tsx +20 -20
- package/iconsvg/SVG/common/Telephone.tsx +22 -22
- package/iconsvg/SVG/common/Time.tsx +17 -17
- package/iconsvg/SVG/common/Timetable.tsx +18 -18
- package/iconsvg/SVG/common/Trash.tsx +22 -22
- package/iconsvg/SVG/common/TrashRed.tsx +23 -23
- package/iconsvg/SVG/common/Upload.tsx +17 -17
- package/iconsvg/SVG/common/UserGrey.tsx +22 -22
- package/iconsvg/SVG/common/UserProfileIcon.tsx +20 -20
- package/iconsvg/SVG/common/ValidateFailure.tsx +21 -21
- package/iconsvg/SVG/common/ValidateSuccess.tsx +21 -21
- package/iconsvg/SVG/common/WarningTriangle.tsx +20 -20
- package/iconsvg/SVG/common/WhiteArrowUp.tsx +21 -21
- package/iconsvg/SVG/common/WhiteKey.tsx +21 -21
- package/iconsvg/SVG/common/WhitePeople.tsx +23 -23
- package/iconsvg/SVG/common/WhiteTick.tsx +19 -19
- package/iconsvg/SVG/flags/AT.tsx +19 -19
- package/iconsvg/SVG/flags/BE.tsx +20 -20
- package/iconsvg/SVG/flags/BG.tsx +20 -20
- package/iconsvg/SVG/flags/CH.tsx +22 -22
- package/iconsvg/SVG/flags/CZ.tsx +18 -18
- package/iconsvg/SVG/flags/DE.tsx +18 -18
- package/iconsvg/SVG/flags/DK.tsx +18 -18
- package/iconsvg/SVG/flags/ES.tsx +2585 -2585
- package/iconsvg/SVG/flags/FI.tsx +18 -18
- package/iconsvg/SVG/flags/FR.tsx +20 -20
- package/iconsvg/SVG/flags/GB.tsx +26 -26
- package/iconsvg/SVG/flags/HR.tsx +135 -135
- package/iconsvg/SVG/flags/HU.tsx +20 -20
- package/iconsvg/SVG/flags/IT.tsx +20 -20
- package/iconsvg/SVG/flags/LI.tsx +106 -106
- package/iconsvg/SVG/flags/LU.tsx +18 -18
- package/iconsvg/SVG/flags/NL.tsx +18 -18
- package/iconsvg/SVG/flags/NO.tsx +20 -20
- package/iconsvg/SVG/flags/PL.tsx +19 -19
- package/iconsvg/SVG/flags/RO.tsx +20 -20
- package/iconsvg/SVG/flags/RU.tsx +20 -20
- package/iconsvg/SVG/flags/SE.tsx +20 -20
- package/iconsvg/SVG/flags/SI.tsx +54 -54
- package/iconsvg/SVG/flags/SK.tsx +34 -34
- package/iconsvg/SVG/flags/UA.tsx +19 -19
- package/iconsvg/SVG/infoBlocks/14DaysReturnPolicy.tsx +18 -18
- package/iconsvg/SVG/infoBlocks/AlertInfo.tsx +19 -19
- package/iconsvg/SVG/infoBlocks/Autocheck.tsx +19 -19
- package/iconsvg/SVG/infoBlocks/CheckTheStory.tsx +22 -22
- package/iconsvg/SVG/infoBlocks/CustomerServiceWhite.tsx +16 -16
- package/iconsvg/SVG/infoBlocks/Guarantee.tsx +16 -16
- package/iconsvg/SVG/infoBlocks/OrderWhite.tsx +13 -13
- package/iconsvg/SVG/infoBlocks/PriceGuarantee.tsx +19 -19
- package/iconsvg/SVG/infoBlocks/PriceGuaranteeWhite.tsx +17 -17
- package/iconsvg/SVG/infoBlocks/TransportAndDelivery.tsx +21 -21
- package/iconsvg/SVG/infoBlocks/Warranty.tsx +23 -23
- package/iconsvg/SVG/popower/Mail.tsx +18 -18
- package/iconsvg/SVG/popower/Phone.tsx +19 -19
- package/iconsvg/SVG/popower/Schedule.tsx +18 -18
- package/iconsvg/SVG/searchWidgets/drive/AAllWheelDrive.tsx +26 -26
- package/iconsvg/SVG/searchWidgets/drive/AllWheelDrive.tsx +26 -26
- package/iconsvg/SVG/searchWidgets/drive/FrontWheelDrive.tsx +25 -25
- package/iconsvg/SVG/searchWidgets/drive/OtherWheelDrive.tsx +26 -26
- package/iconsvg/SVG/searchWidgets/drive/RearWheelDrive.tsx +25 -25
- package/iconsvg/SVG/searchWidgets/fuel/FuelDiesel.tsx +18 -18
- package/iconsvg/SVG/searchWidgets/fuel/FuelElectrical.tsx +19 -19
- package/iconsvg/SVG/searchWidgets/fuel/FuelElectricalDiesel.tsx +34 -34
- package/iconsvg/SVG/searchWidgets/fuel/FuelElectricalPetrol.tsx +20 -20
- package/iconsvg/SVG/searchWidgets/fuel/FuelEthanol.tsx +53 -53
- package/iconsvg/SVG/searchWidgets/fuel/FuelHydrogen.tsx +24 -24
- package/iconsvg/SVG/searchWidgets/fuel/FuelLpg.tsx +24 -24
- package/iconsvg/SVG/searchWidgets/fuel/FuelNaturalGas.tsx +23 -23
- package/iconsvg/SVG/searchWidgets/fuel/FuelOther.tsx +28 -28
- package/iconsvg/SVG/searchWidgets/fuel/FuelPetrol.tsx +18 -18
- package/iconsvg/SVG/settings/Account.tsx +17 -17
- package/iconsvg/SVG/settings/DataUsage.tsx +17 -17
- package/iconsvg/SVG/settings/MarketResearch.tsx +17 -17
- package/iconsvg/SVG/settings/Newsletter.tsx +17 -17
- package/iconsvg/SVG/settings/RemoveEye.tsx +17 -17
- package/iconsvg/SVG/settings/RemoveEyeOff.tsx +17 -17
- package/iconsvg/SVG/settings/Security.tsx +17 -17
- package/iconsvg/SVG/settings/Warning.tsx +17 -17
- package/iconsvg/SVG/slider/360.tsx +23 -23
- package/iconsvg/SVG/slider/360New.tsx +20 -20
- package/iconsvg/SVG/slider/Checked.tsx +19 -19
- package/iconsvg/SVG/slider/DiscountRibbon.tsx +51 -51
- package/iconsvg/SVG/slider/DiscountRibbonMobile.tsx +47 -47
- package/iconsvg/SVG/slider/DiscountRibbonNew.tsx +29 -29
- package/iconsvg/SVG/slider/Easy.tsx +19 -19
- package/iconsvg/SVG/slider/Fullscreen.tsx +16 -16
- package/iconsvg/SVG/slider/FullscreenWindow.tsx +23 -23
- package/iconsvg/SVG/slider/Safe.tsx +19 -19
- package/iconsvg/SVG/slider/ToBuy.tsx +19 -19
- package/iconsvg/SVG/slider/YoutubeButton.tsx +26 -26
- package/iconsvg/SVG/slider/ZoomIn.tsx +21 -21
- package/iconsvg/SVG/slider/ZoomOut.tsx +21 -21
- package/iconsvg/SVG/social/AndroidLogo.tsx +18 -18
- package/iconsvg/SVG/social/Apple.tsx +19 -19
- package/iconsvg/SVG/social/FacebookF.tsx +19 -19
- package/iconsvg/SVG/social/GooglePlusG.tsx +19 -19
- package/iconsvg/SVG/social/Instagram.tsx +17 -17
- package/iconsvg/SVG/social/Pinterest.tsx +19 -19
- package/iconsvg/SVG/social/SharingInterface.tsx +21 -21
- package/iconsvg/SVG/social/Twitter.tsx +19 -19
- package/iconsvg/SVG/social/Youtube.tsx +19 -19
- package/iconsvg/SVG/vehicle/AboIcon.tsx +11 -11
- package/iconsvg/SVG/vehicle/Abs.tsx +24 -24
- package/iconsvg/SVG/vehicle/AirCond.tsx +34 -34
- package/iconsvg/SVG/vehicle/Airbag.tsx +21 -21
- package/iconsvg/SVG/vehicle/AuxiliaryHeating.tsx +23 -23
- package/iconsvg/SVG/vehicle/Bluetooth.tsx +22 -22
- package/iconsvg/SVG/vehicle/BuyIcon.tsx +15 -15
- package/iconsvg/SVG/vehicle/CarAvailability.tsx +22 -22
- package/iconsvg/SVG/vehicle/CarInspectionCheck.tsx +21 -21
- package/iconsvg/SVG/vehicle/CarInspectionCross.tsx +21 -21
- package/iconsvg/SVG/vehicle/CheckoutChecked.tsx +15 -15
- package/iconsvg/SVG/vehicle/Co2.tsx +24 -24
- package/iconsvg/SVG/vehicle/CruiseControl.tsx +25 -25
- package/iconsvg/SVG/vehicle/Date.tsx +21 -21
- package/iconsvg/SVG/vehicle/Delivery.tsx +12 -12
- package/iconsvg/SVG/vehicle/Diesel.tsx +28 -28
- package/iconsvg/SVG/vehicle/Display.tsx +25 -25
- package/iconsvg/SVG/vehicle/Done.tsx +11 -11
- package/iconsvg/SVG/vehicle/Door.tsx +19 -19
- package/iconsvg/SVG/vehicle/DoubleDone.tsx +18 -18
- package/iconsvg/SVG/vehicle/EditIcon.tsx +11 -11
- package/iconsvg/SVG/vehicle/EmergencyBrakeAssistant.tsx +27 -27
- package/iconsvg/SVG/vehicle/Eps.tsx +24 -24
- package/iconsvg/SVG/vehicle/Esp.tsx +24 -24
- package/iconsvg/SVG/vehicle/FinancingIcon.tsx +20 -20
- package/iconsvg/SVG/vehicle/FuelConsumption.tsx +20 -20
- package/iconsvg/SVG/vehicle/Fueling.tsx +22 -22
- package/iconsvg/SVG/vehicle/FullDrive.tsx +24 -24
- package/iconsvg/SVG/vehicle/GasElectric.tsx +28 -28
- package/iconsvg/SVG/vehicle/HandsFreePhoneSystem.tsx +24 -24
- package/iconsvg/SVG/vehicle/Kw.tsx +23 -23
- package/iconsvg/SVG/vehicle/LastCrawledAt.tsx +22 -22
- package/iconsvg/SVG/vehicle/LeasingIcon.tsx +14 -14
- package/iconsvg/SVG/vehicle/Led.tsx +24 -24
- package/iconsvg/SVG/vehicle/LightSensor.tsx +22 -22
- package/iconsvg/SVG/vehicle/LinkAlternative.tsx +15 -15
- package/iconsvg/SVG/vehicle/Location.tsx +17 -17
- package/iconsvg/SVG/vehicle/MinusIcon.tsx +11 -11
- package/iconsvg/SVG/vehicle/Mirror.tsx +19 -19
- package/iconsvg/SVG/vehicle/Navigation.tsx +27 -27
- package/iconsvg/SVG/vehicle/NewCar.tsx +21 -21
- package/iconsvg/SVG/vehicle/NoImage.tsx +17 -17
- package/iconsvg/SVG/vehicle/Owner.tsx +18 -18
- package/iconsvg/SVG/vehicle/PanoramicRoof.tsx +23 -23
- package/iconsvg/SVG/vehicle/ParkingAssistants.tsx +24 -24
- package/iconsvg/SVG/vehicle/PickYourself.tsx +18 -18
- package/iconsvg/SVG/vehicle/PlusIcon.tsx +11 -11
- package/iconsvg/SVG/vehicle/Power.tsx +21 -21
- package/iconsvg/SVG/vehicle/Ps.tsx +19 -19
- package/iconsvg/SVG/vehicle/Question.tsx +24 -24
- package/iconsvg/SVG/vehicle/Seats.tsx +21 -21
- package/iconsvg/SVG/vehicle/SeatsHeating.tsx +26 -26
- package/iconsvg/SVG/vehicle/SelectorGearboxAutomatic.tsx +24 -24
- package/iconsvg/SVG/vehicle/SelectorGearboxManualShift.tsx +19 -19
- package/iconsvg/SVG/vehicle/SelectorGearboxOther.tsx +24 -24
- package/iconsvg/SVG/vehicle/SelectorGearboxSemiAutomatic.tsx +30 -30
- package/iconsvg/SVG/vehicle/SelectorInteriorTypeAlcantara.tsx +225 -225
- package/iconsvg/SVG/vehicle/SelectorInteriorTypeFabric.tsx +29 -29
- package/iconsvg/SVG/vehicle/SelectorInteriorTypeFullLeather.tsx +29 -29
- package/iconsvg/SVG/vehicle/SelectorInteriorTypeOther.tsx +26 -26
- package/iconsvg/SVG/vehicle/SelectorInteriorTypePartLeather.tsx +142 -142
- package/iconsvg/SVG/vehicle/SelectorInteriorTypeSyntheticLeather.tsx +27 -27
- package/iconsvg/SVG/vehicle/SelectorInteriorTypeVelours.tsx +39 -39
- package/iconsvg/SVG/vehicle/Shield.tsx +39 -39
- package/iconsvg/SVG/vehicle/Speedometer.tsx +17 -17
- package/iconsvg/SVG/vehicle/StartStopSystem.tsx +30 -30
- package/iconsvg/SVG/vehicle/Stop.tsx +25 -25
- package/iconsvg/SVG/vehicle/TickMark.tsx +21 -21
- package/iconsvg/SVG/vehicle/TrafficSignRecognition.tsx +29 -29
- package/iconsvg/SVG/vehicle/TrailerCoupling.tsx +24 -24
- package/iconsvg/SVG/vehicle/Transmission.tsx +27 -27
- package/iconsvg/SVG/vehicle/Wheel.tsx +43 -43
- package/iconsvg/SVG/vehicle/Wipers.tsx +22 -22
- package/iconsvg/SVG/vehicle/Wrench.tsx +17 -17
- package/iconsvg/index.ts +7 -7
- package/index.ts +18 -18
- package/locales/de/autobahn.json +676 -671
- package/locales/en/autobahn.json +676 -671
- package/locales/legacy/SearchDetailedPage.ts +205 -205
- package/locales/legacy/cbd.ts +719 -719
- package/locales/legacy/common.ts +109 -109
- package/locales/legacy/data.ts +1118 -1118
- package/locales/legacy/priceRating.ts +10 -10
- package/locales/legacy/sortingOptions.ts +21 -21
- package/media/images/raiting-stars-min.svg +7 -7
- package/media/images/refresh-button.svg +49 -49
- package/media/images/user-icon.svg +16 -16
- package/media/svg/infoBlocks/whyAutodeIconSet-F.svg +9 -9
- package/media/svg/infoBlocks/whyAutodeIconSet-G.svg +8 -8
- package/media/svg/infoBlocks/whyAutodeIconSet-Q.svg +6 -6
- package/media/svg/infoBlocks/whyAutodeIconSet-R.svg +9 -9
- package/media/svg/usp/icon1.svg +16 -16
- package/media/svg/usp/icon2.svg +13 -13
- package/media/svg/usp/icon3.svg +10 -10
- package/media/svg/usp/icon4.svg +14 -14
- package/package.json +30 -30
- package/schemes/AggregationScheme.ts +73 -73
- package/searchFilters/filterOptions.ts +119 -119
- package/searchFilters/filterProps.ts +35 -35
- package/searchFilters/index.ts +15 -15
- package/theme/autobahn.css +25 -25
- package/theme/colors_and_type.css +113 -113
- package/theme/md3.css +2045 -2034
- package/types/types.ts +373 -373
- package/types.ts +8 -8
- package/ui/Accordion.tsx +134 -134
- package/ui/Button.tsx +62 -62
- package/ui/CardCarousel.tsx +133 -133
- package/ui/Chip.tsx +29 -29
- package/ui/DatePicker.tsx +145 -145
- package/ui/Dropdown.tsx +205 -205
- package/ui/FileUpload.tsx +154 -154
- package/ui/FormCheckbox.tsx +79 -79
- package/ui/FormDropdown.tsx +327 -327
- package/ui/FormField.tsx +88 -88
- package/ui/FormRadio.tsx +93 -93
- package/ui/FormRadioGroup.tsx +106 -106
- package/ui/Icon.tsx +391 -391
- package/ui/IconButton.tsx +44 -44
- package/ui/Modal.tsx +187 -187
- package/ui/Pagination.tsx +140 -140
- package/ui/Price.tsx +25 -25
- package/ui/PriceEvalBar.tsx +48 -48
- package/ui/SaveChip.tsx +34 -34
- package/ui/Segmented.tsx +48 -48
- package/ui/Skeleton.tsx +75 -75
- package/ui/Spec.tsx +24 -24
- package/ui/Stars.tsx +29 -29
- package/ui/StatChip.tsx +21 -21
- package/ui/Stepper.tsx +106 -106
- package/ui/Switch.tsx +65 -65
- package/ui/Table.tsx +156 -156
- package/ui/Textarea.tsx +58 -58
- package/ui/index.ts +88 -88
- package/utils/CommonUtils.ts +648 -648
- package/utils/DateUtils.ts +101 -101
- package/utils/index.ts +74 -74
- package/utils/power.ts +11 -11
- package/utils/query.ts +21 -21
- package/vdp/FinanceCalculator.tsx +465 -465
- package/vdp/VdpModules.tsx +1490 -1490
- package/vdp/VdpViewer.tsx +209 -209
- package/vdp/index.ts +75 -75
- package/vdp/types.ts +197 -197
- package/vehiclesProps/cbdSelectors.ts +117 -117
- package/vehiclesProps/decoratedLightProps.tsx +572 -572
- package/vehiclesProps/decoratedProps.tsx +1746 -1746
- package/vehiclesProps/equipment.ts +129 -129
- package/vehiclesProps/vehicleDetails.ts +428 -428
- package/widgets/SearchBox.tsx +256 -256
- package/widgets/index.ts +5 -5
package/types.ts
CHANGED
|
@@ -1,8 +1,8 @@
|
|
|
1
|
-
// Framework-agnostic i18n contract for the whole kit.
|
|
2
|
-
//
|
|
3
|
-
// Components take `t` as a PROP (never a hook), so any host works: fe-main's
|
|
4
|
-
// react-i18next v7, fe-landing's plain i18next/react-i18next, or a test stub.
|
|
5
|
-
// This local type replaces the former `import { TranslationFunction } from
|
|
6
|
-
// 'react-i18next'` — that name only resolved through fe-main's tsconfig path
|
|
7
|
-
// shim and would break every other consumer.
|
|
8
|
-
export type TranslationFunction = (key: string, options?: Record<string, unknown>) => string;
|
|
1
|
+
// Framework-agnostic i18n contract for the whole kit.
|
|
2
|
+
//
|
|
3
|
+
// Components take `t` as a PROP (never a hook), so any host works: fe-main's
|
|
4
|
+
// react-i18next v7, fe-landing's plain i18next/react-i18next, or a test stub.
|
|
5
|
+
// This local type replaces the former `import { TranslationFunction } from
|
|
6
|
+
// 'react-i18next'` — that name only resolved through fe-main's tsconfig path
|
|
7
|
+
// shim and would break every other consumer.
|
|
8
|
+
export type TranslationFunction = (key: string, options?: Record<string, unknown>) => string;
|
package/ui/Accordion.tsx
CHANGED
|
@@ -1,134 +1,134 @@
|
|
|
1
|
-
// Autobahn (auto.de redesign) — md3 Accordion.
|
|
2
|
-
//
|
|
3
|
-
// Drop-in visual replacement for the legacy fe-ui-core ExpansionPanel (which wrapped
|
|
4
|
-
// the MUI Accordion/AccordionSummary/AccordionDetails). Same data contract, re-skinned:
|
|
5
|
-
// - legacy `title`/`subTitle` (node + muted string) -> `title` + `subtitle`.
|
|
6
|
-
// - legacy `defaultExpanded` (every legacy call site passed it) -> `defaultExpanded`,
|
|
7
|
-
// used only in the UNCONTROLLED mode.
|
|
8
|
-
// - legacy `onChange(expanded)` -> `onToggle(expanded)`.
|
|
9
|
-
// - the validation badge a page renders in the header gets a dedicated `status` slot
|
|
10
|
-
// (VehicleEdit maps each section's `field.isValid` -> a StatChip / IconSVG today).
|
|
11
|
-
//
|
|
12
|
-
// Controlled vs uncontrolled:
|
|
13
|
-
// - CONTROLLED: pass `expanded` (+ usually `onToggle`). The parent owns the open/closed
|
|
14
|
-
// state — this is what VehicleEdit needs so the page can keep an `activeIndex` and let
|
|
15
|
-
// the sticky sidebar jump-to-section open the right panel. We never store open state
|
|
16
|
-
// internally in this mode; we just reflect `expanded` and report intent via `onToggle`.
|
|
17
|
-
// - UNCONTROLLED: omit `expanded`; we keep our own open state seeded from `defaultExpanded`.
|
|
18
|
-
//
|
|
19
|
-
// Scroll anchors are NOT swallowed. The legacy ExpansionPanel optionally wrapped itself in a
|
|
20
|
-
// react-scroll <Element name=...>. In the redesign the PARENT does that wrapping (it owns the
|
|
21
|
-
// section name / scroll target), so this component must not introduce its own wrapper that
|
|
22
|
-
// would break the anchor. We render a plain <section> (optional `id` passthrough) and emit
|
|
23
|
-
// `children` as-is — the parent's <Element> stays the scroll target.
|
|
24
|
-
//
|
|
25
|
-
// Pure/presentational: no store, no API, no window access. Renders correctly only inside a
|
|
26
|
-
// `<div className="md3">` subtree (scoped theme). Not observer-wrapped — it binds to no mobx
|
|
27
|
-
// field itself; any field-driven content (title, status badge) is passed in by the (observer)
|
|
28
|
-
// parent and re-renders there.
|
|
29
|
-
|
|
30
|
-
import * as React from 'react';
|
|
31
|
-
|
|
32
|
-
import Icon from './Icon';
|
|
33
|
-
|
|
34
|
-
export interface AccordionProps {
|
|
35
|
-
/** header title — node so callers can pass a styled span (legacy passed string | JSX.Element). */
|
|
36
|
-
title: React.ReactNode;
|
|
37
|
-
/** muted text after the title (legacy `subTitle`, e.g. "12 Fahrzeuge" / "retailPriceSub"). */
|
|
38
|
-
subtitle?: React.ReactNode;
|
|
39
|
-
/** CONTROLLED open state. When provided the parent owns open/closed (sidebar jump-to-section). */
|
|
40
|
-
expanded?: boolean;
|
|
41
|
-
/** initial open state in UNCONTROLLED mode (ignored when `expanded` is provided). Default true. */
|
|
42
|
-
defaultExpanded?: boolean;
|
|
43
|
-
/** fired with the NEXT desired open state on header activation (legacy `onChange`). */
|
|
44
|
-
onToggle?: (expanded: boolean) => void;
|
|
45
|
-
/** header-right slot, e.g. a validation badge (<StatChip/>) or count. */
|
|
46
|
-
status?: React.ReactNode;
|
|
47
|
-
children?: React.ReactNode;
|
|
48
|
-
/** id passthrough on the root (does NOT replace a parent react-scroll <Element> wrapper). */
|
|
49
|
-
id?: string;
|
|
50
|
-
/** extra class(es) appended after the `macc` classes. */
|
|
51
|
-
className?: string;
|
|
52
|
-
}
|
|
53
|
-
|
|
54
|
-
const Accordion: React.FunctionComponent<AccordionProps> = ({
|
|
55
|
-
title,
|
|
56
|
-
subtitle,
|
|
57
|
-
expanded,
|
|
58
|
-
defaultExpanded = true,
|
|
59
|
-
onToggle,
|
|
60
|
-
status,
|
|
61
|
-
children,
|
|
62
|
-
id,
|
|
63
|
-
className,
|
|
64
|
-
}) => {
|
|
65
|
-
const isControlled = expanded !== undefined;
|
|
66
|
-
const [openUncontrolled, setOpenUncontrolled] = React.useState<boolean>(defaultExpanded);
|
|
67
|
-
const open = isControlled ? (expanded as boolean) : openUncontrolled;
|
|
68
|
-
|
|
69
|
-
// stable region id for aria-controls / aria-labelledby (no Math.random / Date.now).
|
|
70
|
-
const baseId = React.useMemo(() => {
|
|
71
|
-
if (id) return id;
|
|
72
|
-
const seed = typeof title === 'string' ? title : '';
|
|
73
|
-
return `macc-${Math.round(seed.length)}-${defaultExpanded ? 1 : 0}`;
|
|
74
|
-
}, [id, title, defaultExpanded]);
|
|
75
|
-
const headerId = `${baseId}__hd`;
|
|
76
|
-
const panelId = `${baseId}__panel`;
|
|
77
|
-
|
|
78
|
-
const toggle = () => {
|
|
79
|
-
const next = !open;
|
|
80
|
-
// notify the parent first so a controlled page can update its activeIndex.
|
|
81
|
-
if (onToggle) onToggle(next);
|
|
82
|
-
// only mutate internal state when we actually own it.
|
|
83
|
-
if (!isControlled) setOpenUncontrolled(next);
|
|
84
|
-
};
|
|
85
|
-
|
|
86
|
-
const onHeaderKeyDown = (e: React.KeyboardEvent) => {
|
|
87
|
-
if (e.key === 'Enter' || e.key === ' ') {
|
|
88
|
-
e.preventDefault();
|
|
89
|
-
toggle();
|
|
90
|
-
}
|
|
91
|
-
};
|
|
92
|
-
|
|
93
|
-
const cls = ['macc', open ? 'macc--open' : 'macc--closed', className].filter(Boolean).join(' ');
|
|
94
|
-
|
|
95
|
-
return (
|
|
96
|
-
<section className={cls} id={id}>
|
|
97
|
-
<button
|
|
98
|
-
type="button"
|
|
99
|
-
id={headerId}
|
|
100
|
-
className="macc-hd"
|
|
101
|
-
aria-expanded={open}
|
|
102
|
-
aria-controls={panelId}
|
|
103
|
-
onClick={toggle}
|
|
104
|
-
onKeyDown={onHeaderKeyDown}
|
|
105
|
-
>
|
|
106
|
-
<span className="macc-hd-text">
|
|
107
|
-
<span className="macc-title md-title">{title}</span>
|
|
108
|
-
{subtitle != null && subtitle !== '' ? (
|
|
109
|
-
<span className="macc-subtitle md-body">{subtitle}</span>
|
|
110
|
-
) : null}
|
|
111
|
-
</span>
|
|
112
|
-
{status != null && status !== '' ? <span className="macc-status">{status}</span> : null}
|
|
113
|
-
<Icon name="chevron-down" cls="macc-chev" />
|
|
114
|
-
</button>
|
|
115
|
-
{/* grid 0fr->1fr collapse: animates height smoothly without a magic max-height.
|
|
116
|
-
NOT using `hidden`/display:none — that would kill the close transition. The closed
|
|
117
|
-
region is collapsed to 0 height + faded; children stay mounted (cheap sections, and
|
|
118
|
-
react-scroll anchors inside must stay measurable for jump-to-section). */}
|
|
119
|
-
<div
|
|
120
|
-
className="macc-region"
|
|
121
|
-
role="region"
|
|
122
|
-
id={panelId}
|
|
123
|
-
aria-labelledby={headerId}
|
|
124
|
-
aria-hidden={!open}
|
|
125
|
-
>
|
|
126
|
-
<div className="macc-region-inner">
|
|
127
|
-
<div className="macc-body">{children}</div>
|
|
128
|
-
</div>
|
|
129
|
-
</div>
|
|
130
|
-
</section>
|
|
131
|
-
);
|
|
132
|
-
};
|
|
133
|
-
|
|
134
|
-
export default Accordion;
|
|
1
|
+
// Autobahn (auto.de redesign) — md3 Accordion.
|
|
2
|
+
//
|
|
3
|
+
// Drop-in visual replacement for the legacy fe-ui-core ExpansionPanel (which wrapped
|
|
4
|
+
// the MUI Accordion/AccordionSummary/AccordionDetails). Same data contract, re-skinned:
|
|
5
|
+
// - legacy `title`/`subTitle` (node + muted string) -> `title` + `subtitle`.
|
|
6
|
+
// - legacy `defaultExpanded` (every legacy call site passed it) -> `defaultExpanded`,
|
|
7
|
+
// used only in the UNCONTROLLED mode.
|
|
8
|
+
// - legacy `onChange(expanded)` -> `onToggle(expanded)`.
|
|
9
|
+
// - the validation badge a page renders in the header gets a dedicated `status` slot
|
|
10
|
+
// (VehicleEdit maps each section's `field.isValid` -> a StatChip / IconSVG today).
|
|
11
|
+
//
|
|
12
|
+
// Controlled vs uncontrolled:
|
|
13
|
+
// - CONTROLLED: pass `expanded` (+ usually `onToggle`). The parent owns the open/closed
|
|
14
|
+
// state — this is what VehicleEdit needs so the page can keep an `activeIndex` and let
|
|
15
|
+
// the sticky sidebar jump-to-section open the right panel. We never store open state
|
|
16
|
+
// internally in this mode; we just reflect `expanded` and report intent via `onToggle`.
|
|
17
|
+
// - UNCONTROLLED: omit `expanded`; we keep our own open state seeded from `defaultExpanded`.
|
|
18
|
+
//
|
|
19
|
+
// Scroll anchors are NOT swallowed. The legacy ExpansionPanel optionally wrapped itself in a
|
|
20
|
+
// react-scroll <Element name=...>. In the redesign the PARENT does that wrapping (it owns the
|
|
21
|
+
// section name / scroll target), so this component must not introduce its own wrapper that
|
|
22
|
+
// would break the anchor. We render a plain <section> (optional `id` passthrough) and emit
|
|
23
|
+
// `children` as-is — the parent's <Element> stays the scroll target.
|
|
24
|
+
//
|
|
25
|
+
// Pure/presentational: no store, no API, no window access. Renders correctly only inside a
|
|
26
|
+
// `<div className="md3">` subtree (scoped theme). Not observer-wrapped — it binds to no mobx
|
|
27
|
+
// field itself; any field-driven content (title, status badge) is passed in by the (observer)
|
|
28
|
+
// parent and re-renders there.
|
|
29
|
+
|
|
30
|
+
import * as React from 'react';
|
|
31
|
+
|
|
32
|
+
import Icon from './Icon';
|
|
33
|
+
|
|
34
|
+
export interface AccordionProps {
|
|
35
|
+
/** header title — node so callers can pass a styled span (legacy passed string | JSX.Element). */
|
|
36
|
+
title: React.ReactNode;
|
|
37
|
+
/** muted text after the title (legacy `subTitle`, e.g. "12 Fahrzeuge" / "retailPriceSub"). */
|
|
38
|
+
subtitle?: React.ReactNode;
|
|
39
|
+
/** CONTROLLED open state. When provided the parent owns open/closed (sidebar jump-to-section). */
|
|
40
|
+
expanded?: boolean;
|
|
41
|
+
/** initial open state in UNCONTROLLED mode (ignored when `expanded` is provided). Default true. */
|
|
42
|
+
defaultExpanded?: boolean;
|
|
43
|
+
/** fired with the NEXT desired open state on header activation (legacy `onChange`). */
|
|
44
|
+
onToggle?: (expanded: boolean) => void;
|
|
45
|
+
/** header-right slot, e.g. a validation badge (<StatChip/>) or count. */
|
|
46
|
+
status?: React.ReactNode;
|
|
47
|
+
children?: React.ReactNode;
|
|
48
|
+
/** id passthrough on the root (does NOT replace a parent react-scroll <Element> wrapper). */
|
|
49
|
+
id?: string;
|
|
50
|
+
/** extra class(es) appended after the `macc` classes. */
|
|
51
|
+
className?: string;
|
|
52
|
+
}
|
|
53
|
+
|
|
54
|
+
const Accordion: React.FunctionComponent<AccordionProps> = ({
|
|
55
|
+
title,
|
|
56
|
+
subtitle,
|
|
57
|
+
expanded,
|
|
58
|
+
defaultExpanded = true,
|
|
59
|
+
onToggle,
|
|
60
|
+
status,
|
|
61
|
+
children,
|
|
62
|
+
id,
|
|
63
|
+
className,
|
|
64
|
+
}) => {
|
|
65
|
+
const isControlled = expanded !== undefined;
|
|
66
|
+
const [openUncontrolled, setOpenUncontrolled] = React.useState<boolean>(defaultExpanded);
|
|
67
|
+
const open = isControlled ? (expanded as boolean) : openUncontrolled;
|
|
68
|
+
|
|
69
|
+
// stable region id for aria-controls / aria-labelledby (no Math.random / Date.now).
|
|
70
|
+
const baseId = React.useMemo(() => {
|
|
71
|
+
if (id) return id;
|
|
72
|
+
const seed = typeof title === 'string' ? title : '';
|
|
73
|
+
return `macc-${Math.round(seed.length)}-${defaultExpanded ? 1 : 0}`;
|
|
74
|
+
}, [id, title, defaultExpanded]);
|
|
75
|
+
const headerId = `${baseId}__hd`;
|
|
76
|
+
const panelId = `${baseId}__panel`;
|
|
77
|
+
|
|
78
|
+
const toggle = () => {
|
|
79
|
+
const next = !open;
|
|
80
|
+
// notify the parent first so a controlled page can update its activeIndex.
|
|
81
|
+
if (onToggle) onToggle(next);
|
|
82
|
+
// only mutate internal state when we actually own it.
|
|
83
|
+
if (!isControlled) setOpenUncontrolled(next);
|
|
84
|
+
};
|
|
85
|
+
|
|
86
|
+
const onHeaderKeyDown = (e: React.KeyboardEvent) => {
|
|
87
|
+
if (e.key === 'Enter' || e.key === ' ') {
|
|
88
|
+
e.preventDefault();
|
|
89
|
+
toggle();
|
|
90
|
+
}
|
|
91
|
+
};
|
|
92
|
+
|
|
93
|
+
const cls = ['macc', open ? 'macc--open' : 'macc--closed', className].filter(Boolean).join(' ');
|
|
94
|
+
|
|
95
|
+
return (
|
|
96
|
+
<section className={cls} id={id}>
|
|
97
|
+
<button
|
|
98
|
+
type="button"
|
|
99
|
+
id={headerId}
|
|
100
|
+
className="macc-hd"
|
|
101
|
+
aria-expanded={open}
|
|
102
|
+
aria-controls={panelId}
|
|
103
|
+
onClick={toggle}
|
|
104
|
+
onKeyDown={onHeaderKeyDown}
|
|
105
|
+
>
|
|
106
|
+
<span className="macc-hd-text">
|
|
107
|
+
<span className="macc-title md-title">{title}</span>
|
|
108
|
+
{subtitle != null && subtitle !== '' ? (
|
|
109
|
+
<span className="macc-subtitle md-body">{subtitle}</span>
|
|
110
|
+
) : null}
|
|
111
|
+
</span>
|
|
112
|
+
{status != null && status !== '' ? <span className="macc-status">{status}</span> : null}
|
|
113
|
+
<Icon name="chevron-down" cls="macc-chev" />
|
|
114
|
+
</button>
|
|
115
|
+
{/* grid 0fr->1fr collapse: animates height smoothly without a magic max-height.
|
|
116
|
+
NOT using `hidden`/display:none — that would kill the close transition. The closed
|
|
117
|
+
region is collapsed to 0 height + faded; children stay mounted (cheap sections, and
|
|
118
|
+
react-scroll anchors inside must stay measurable for jump-to-section). */}
|
|
119
|
+
<div
|
|
120
|
+
className="macc-region"
|
|
121
|
+
role="region"
|
|
122
|
+
id={panelId}
|
|
123
|
+
aria-labelledby={headerId}
|
|
124
|
+
aria-hidden={!open}
|
|
125
|
+
>
|
|
126
|
+
<div className="macc-region-inner">
|
|
127
|
+
<div className="macc-body">{children}</div>
|
|
128
|
+
</div>
|
|
129
|
+
</div>
|
|
130
|
+
</section>
|
|
131
|
+
);
|
|
132
|
+
};
|
|
133
|
+
|
|
134
|
+
export default Accordion;
|
package/ui/Button.tsx
CHANGED
|
@@ -1,62 +1,62 @@
|
|
|
1
|
-
import React from 'react';
|
|
2
|
-
|
|
3
|
-
import Icon from './Icon';
|
|
4
|
-
|
|
5
|
-
export type ButtonVariant = 'filled' | 'tonal' | 'outlined' | 'text';
|
|
6
|
-
export type ButtonSize = 'sm' | 'lg';
|
|
7
|
-
|
|
8
|
-
export interface ButtonProps {
|
|
9
|
-
variant?: ButtonVariant;
|
|
10
|
-
size?: ButtonSize;
|
|
11
|
-
block?: boolean;
|
|
12
|
-
/** kebab-case lucide icon name rendered before the label. */
|
|
13
|
-
icon?: string;
|
|
14
|
-
/** kebab-case lucide icon name rendered after the label. */
|
|
15
|
-
iconRight?: string;
|
|
16
|
-
children?: React.ReactNode;
|
|
17
|
-
onClick?: React.MouseEventHandler<HTMLButtonElement>;
|
|
18
|
-
style?: React.CSSProperties;
|
|
19
|
-
/** when true, the button is non-interactive and dimmed. */
|
|
20
|
-
disabled?: boolean;
|
|
21
|
-
/** extra class(es) appended after the mbtn classes (e.g. layout hooks like "pp-cta"). */
|
|
22
|
-
className?: string;
|
|
23
|
-
/**
|
|
24
|
-
* native `<button>` type; defaults to "button" so this never accidentally submits an
|
|
25
|
-
* ancestor `<form>` (e.g. the checkout/auth forms, which drive submission via onClick, not
|
|
26
|
-
* native form submit). Pass "submit"/"reset" explicitly for the rare caller that needs it.
|
|
27
|
-
*/
|
|
28
|
-
type?: 'button' | 'submit' | 'reset';
|
|
29
|
-
}
|
|
30
|
-
|
|
31
|
-
const Button: React.FunctionComponent<ButtonProps> = ({
|
|
32
|
-
variant = 'filled',
|
|
33
|
-
size,
|
|
34
|
-
block,
|
|
35
|
-
icon,
|
|
36
|
-
iconRight,
|
|
37
|
-
children,
|
|
38
|
-
onClick,
|
|
39
|
-
style,
|
|
40
|
-
disabled,
|
|
41
|
-
className,
|
|
42
|
-
type = 'button',
|
|
43
|
-
}) => {
|
|
44
|
-
const cn = ['mbtn', `mbtn--${variant}`, size && `mbtn--${size}`, block && 'mbtn--block', className]
|
|
45
|
-
.filter(Boolean)
|
|
46
|
-
.join(' ');
|
|
47
|
-
return (
|
|
48
|
-
<button
|
|
49
|
-
type={type}
|
|
50
|
-
className={cn}
|
|
51
|
-
onClick={onClick}
|
|
52
|
-
disabled={disabled}
|
|
53
|
-
style={disabled ? { ...style, opacity: 0.5, cursor: 'not-allowed' } : style}
|
|
54
|
-
>
|
|
55
|
-
{icon && <Icon name={icon} size={18} />}
|
|
56
|
-
{children}
|
|
57
|
-
{iconRight && <Icon name={iconRight} size={18} />}
|
|
58
|
-
</button>
|
|
59
|
-
);
|
|
60
|
-
};
|
|
61
|
-
|
|
62
|
-
export default Button;
|
|
1
|
+
import React from 'react';
|
|
2
|
+
|
|
3
|
+
import Icon from './Icon';
|
|
4
|
+
|
|
5
|
+
export type ButtonVariant = 'filled' | 'tonal' | 'outlined' | 'text';
|
|
6
|
+
export type ButtonSize = 'sm' | 'lg';
|
|
7
|
+
|
|
8
|
+
export interface ButtonProps {
|
|
9
|
+
variant?: ButtonVariant;
|
|
10
|
+
size?: ButtonSize;
|
|
11
|
+
block?: boolean;
|
|
12
|
+
/** kebab-case lucide icon name rendered before the label. */
|
|
13
|
+
icon?: string;
|
|
14
|
+
/** kebab-case lucide icon name rendered after the label. */
|
|
15
|
+
iconRight?: string;
|
|
16
|
+
children?: React.ReactNode;
|
|
17
|
+
onClick?: React.MouseEventHandler<HTMLButtonElement>;
|
|
18
|
+
style?: React.CSSProperties;
|
|
19
|
+
/** when true, the button is non-interactive and dimmed. */
|
|
20
|
+
disabled?: boolean;
|
|
21
|
+
/** extra class(es) appended after the mbtn classes (e.g. layout hooks like "pp-cta"). */
|
|
22
|
+
className?: string;
|
|
23
|
+
/**
|
|
24
|
+
* native `<button>` type; defaults to "button" so this never accidentally submits an
|
|
25
|
+
* ancestor `<form>` (e.g. the checkout/auth forms, which drive submission via onClick, not
|
|
26
|
+
* native form submit). Pass "submit"/"reset" explicitly for the rare caller that needs it.
|
|
27
|
+
*/
|
|
28
|
+
type?: 'button' | 'submit' | 'reset';
|
|
29
|
+
}
|
|
30
|
+
|
|
31
|
+
const Button: React.FunctionComponent<ButtonProps> = ({
|
|
32
|
+
variant = 'filled',
|
|
33
|
+
size,
|
|
34
|
+
block,
|
|
35
|
+
icon,
|
|
36
|
+
iconRight,
|
|
37
|
+
children,
|
|
38
|
+
onClick,
|
|
39
|
+
style,
|
|
40
|
+
disabled,
|
|
41
|
+
className,
|
|
42
|
+
type = 'button',
|
|
43
|
+
}) => {
|
|
44
|
+
const cn = ['mbtn', `mbtn--${variant}`, size && `mbtn--${size}`, block && 'mbtn--block', className]
|
|
45
|
+
.filter(Boolean)
|
|
46
|
+
.join(' ');
|
|
47
|
+
return (
|
|
48
|
+
<button
|
|
49
|
+
type={type}
|
|
50
|
+
className={cn}
|
|
51
|
+
onClick={onClick}
|
|
52
|
+
disabled={disabled}
|
|
53
|
+
style={disabled ? { ...style, opacity: 0.5, cursor: 'not-allowed' } : style}
|
|
54
|
+
>
|
|
55
|
+
{icon && <Icon name={icon} size={18} />}
|
|
56
|
+
{children}
|
|
57
|
+
{iconRight && <Icon name={iconRight} size={18} />}
|
|
58
|
+
</button>
|
|
59
|
+
);
|
|
60
|
+
};
|
|
61
|
+
|
|
62
|
+
export default Button;
|