@bytebrand/fe-ui-core-autobahn 1.0.1 → 1.0.2

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.
Files changed (621) hide show
  1. package/assets/autode-logo.svg +6 -6
  2. package/cards/CarCard.tsx +174 -174
  3. package/cards/CarRow.tsx +186 -182
  4. package/cards/cardParts.tsx +529 -489
  5. package/cards/index.ts +37 -35
  6. package/cards/types.ts +122 -114
  7. package/chrome/Footer.tsx +189 -189
  8. package/chrome/TopBar.tsx +405 -405
  9. package/chrome/index.ts +20 -20
  10. package/chrome/svg.d.ts +11 -11
  11. package/compat/AccardionSection/AccardionSection.styl +45 -45
  12. package/compat/AccardionSection/AccardionSection.tsx +56 -56
  13. package/compat/AccordionWidget/AccordionWidget.styl +220 -220
  14. package/compat/AccordionWidget/AccordionWidget.tsx +257 -257
  15. package/compat/AccordionWrapper/AccordionItem/AccordionItem.styl +34 -34
  16. package/compat/AccordionWrapper/AccordionItem/AccordionItem.tsx +64 -64
  17. package/compat/AccordionWrapper/AccordionWrapper.tsx +34 -34
  18. package/compat/AdvantageItem/AdvantageItem.styl +47 -47
  19. package/compat/AdvantageItem/AdvantageItem.tsx +26 -26
  20. package/compat/Alternative/DealerInfo.styl +116 -116
  21. package/compat/Alternative/DealerInfo.tsx +171 -171
  22. package/compat/Badge/Badge.styl +44 -44
  23. package/compat/Badge/Badge.tsx +25 -25
  24. package/compat/BodyTypeIcons/Audi.tsx +9 -9
  25. package/compat/BodyTypeIcons/Bmw.tsx +860 -860
  26. package/compat/BodyTypeIcons/Ford.tsx +31 -31
  27. package/compat/BodyTypeIcons/IconsConfig.tsx +44 -44
  28. package/compat/BodyTypeIcons/IconsConfigCompact.tsx +30 -30
  29. package/compat/BodyTypeIcons/Mazda.tsx +44 -44
  30. package/compat/BodyTypeIcons/MercedesBenz.tsx +38 -38
  31. package/compat/BodyTypeIcons/Opel.tsx +19 -19
  32. package/compat/BodyTypeIcons/Search.tsx +19 -19
  33. package/compat/BodyTypeIcons/SelectorCategoryCombi.tsx +68 -68
  34. package/compat/BodyTypeIcons/SelectorCategoryCompact.tsx +20 -20
  35. package/compat/BodyTypeIcons/SelectorCategoryConvertible.tsx +68 -68
  36. package/compat/BodyTypeIcons/SelectorCategoryCoupe.tsx +60 -60
  37. package/compat/BodyTypeIcons/SelectorCategoryMinibus.tsx +64 -64
  38. package/compat/BodyTypeIcons/SelectorCategorySedan.tsx +69 -69
  39. package/compat/BodyTypeIcons/SelectorCategorySuv.tsx +77 -77
  40. package/compat/BodyTypeIcons/SelectorCategoryTransporter.tsx +68 -68
  41. package/compat/BodyTypeIcons/SelectorCategoryVan.tsx +72 -72
  42. package/compat/BodyTypeIcons/Volkswagen.tsx +330 -330
  43. package/compat/BodyTypeIcons/index.ts +17 -17
  44. package/compat/Button/Button.tsx +65 -65
  45. package/compat/ButtonOld/Button.styl +65 -65
  46. package/compat/ButtonOld/Button.tsx +84 -84
  47. package/compat/Checkbox/Checkbox.styl +119 -119
  48. package/compat/Checkbox/Checkbox.tsx +151 -151
  49. package/compat/Checkbox/FormCheckbox.styl +22 -22
  50. package/compat/Checkbox/FormCheckbox.tsx +86 -86
  51. package/compat/Co2Widget/CO2Efficiency.styl +219 -219
  52. package/compat/Co2Widget/CO2Efficiency.tsx +93 -93
  53. package/compat/ContactInfo/ContactInfo.styl +22 -22
  54. package/compat/ContactInfo/ContactInfo.tsx +161 -161
  55. package/compat/ContactInfo/TemporaryTranslation.ts +11 -11
  56. package/compat/CookieModal/CookieModal.tsx +49 -49
  57. package/compat/CookieModal/Modal.tsx +43 -43
  58. package/compat/CookieModal/ModalsConfig.tsx +23 -23
  59. package/compat/CookieModal/modals/ManageCookieModal/ManageCookieModal.styl +86 -86
  60. package/compat/CookieModal/modals/ManageCookieModal/ManageCookieModal.tsx +184 -184
  61. package/compat/CookieModal/modals/PreviewCookieModal/PreviewCookieModal.styl +66 -66
  62. package/compat/CookieModal/modals/PreviewCookieModal/PreviewCookieModal.tsx +51 -51
  63. package/compat/CookieModal/modals/TestModal.tsx +7 -7
  64. package/compat/CookieModal/useModal.ts +13 -13
  65. package/compat/CustomerQuote/CustomerQuote.styl +79 -79
  66. package/compat/CustomerQuote/CustomerQuote.tsx +68 -68
  67. package/compat/CustomerQuotesSlider/CustomerQuotesSlider.styl +46 -46
  68. package/compat/CustomerQuotesSlider/CustomerQuotesSlider.tsx +79 -79
  69. package/compat/CustomerQuotesSlider/SliderArrow.tsx +20 -20
  70. package/compat/CustomerQuotesSlider/slider.global.styl +2 -2
  71. package/compat/ExpansionPanel/ExpansionPanel.tsx +68 -68
  72. package/compat/FirstInfoBlock/FirstInfoBlock.styl +33 -33
  73. package/compat/FirstInfoBlock/FirstInfoBlock.tsx +49 -49
  74. package/compat/FirstInfoBlock/FirstInfoBlockItem/FirstInfoBlockItem.styl +66 -66
  75. package/compat/FirstInfoBlock/FirstInfoBlockItem/FirstInfoBlockItem.tsx +21 -21
  76. package/compat/FormattedNumber/FormattedNumber.styl +1 -1
  77. package/compat/FormattedNumber/FormattedNumber.tsx +90 -90
  78. package/compat/IconContainer/IconContainer.styl +23 -23
  79. package/compat/IconContainer/IconContainer.tsx +34 -34
  80. package/compat/Image/Image.styl +109 -109
  81. package/compat/Image/Image.tsx +302 -302
  82. package/compat/ImageSettings/EditableOptionsTable/CustomCheckbox/CustomCheckbox.styl +7 -7
  83. package/compat/ImageSettings/EditableOptionsTable/CustomCheckbox/CustomCheckbox.tsx +30 -30
  84. package/compat/ImageSettings/EditableOptionsTable/EditableOptionsTable.styl +122 -122
  85. package/compat/ImageSettings/EditableOptionsTable/EditableOptionsTable.tsx +199 -199
  86. package/compat/ImageSettings/EditableOptionsTable/ImageIcon/ImageIcon.styl +3 -3
  87. package/compat/ImageSettings/EditableOptionsTable/ImageIcon/ImageIcon.tsx +15 -15
  88. package/compat/ImageSettings/OptionsTable/OptionsTable.styl +47 -47
  89. package/compat/ImageSettings/OptionsTable/OptionsTable.tsx +122 -122
  90. package/compat/ImageSettings/PricePlan/PricePlan.styl +63 -63
  91. package/compat/ImageSettings/PricePlan/PricePlan.tsx +32 -32
  92. package/compat/ImageSettings/index.ts +42 -42
  93. package/compat/ImagesSet/ImagesSet.styl +27 -27
  94. package/compat/ImagesSet/ImagesSet.tsx +76 -76
  95. package/compat/InfoBlockWrapper/InfoBlockWrapper.styl +41 -41
  96. package/compat/InfoBlockWrapper/InfoBlockWrapper.tsx +46 -46
  97. package/compat/Loader/Loader.styl +39 -39
  98. package/compat/Loader/Loader.tsx +32 -32
  99. package/compat/MagnifyGlass/MagnifyGlass.styl +33 -33
  100. package/compat/MagnifyGlass/MagnifyGlass.tsx +213 -213
  101. package/compat/MdAccordionGroup/MdAccordionGroup.tsx +53 -53
  102. package/compat/MdCheckbox/MdCheckbox.tsx +69 -69
  103. package/compat/MdField/MdField.tsx +100 -100
  104. package/compat/MdSelect/MdSelect.tsx +103 -103
  105. package/compat/MdSwitch/MdSwitch.tsx +29 -29
  106. package/compat/MdTabs/MdTabs.tsx +47 -47
  107. package/compat/MdTooltip/MdTooltip.tsx +31 -31
  108. package/compat/OfferDetailedSection/OfferDetailedSection.styl +31 -31
  109. package/compat/OfferDetailedSection/OfferDetailedSection.tsx +100 -100
  110. package/compat/OfferDetailedSection/partials/PanelConfig.styl +131 -131
  111. package/compat/OfferDetailedSection/partials/PanelConfig.tsx +121 -121
  112. package/compat/OfferPanel/AboAccordion/AboAccordion.styl +24 -24
  113. package/compat/OfferPanel/AboAccordion/AboAccordion.tsx +128 -128
  114. package/compat/OfferPanel/AboAccordion/AboColorOptions/AboColorOptions.styl +11 -11
  115. package/compat/OfferPanel/AboAccordion/AboColorOptions/AboColorOptions.tsx +35 -35
  116. package/compat/OfferPanel/AboAccordion/AboFaq/AboFaq.styl +20 -20
  117. package/compat/OfferPanel/AboAccordion/AboFaq/AboFaq.tsx +25 -25
  118. package/compat/OfferPanel/AboAccordion/AboIncludedServices/AboIncludedServices.styl +13 -13
  119. package/compat/OfferPanel/AboAccordion/AboIncludedServices/AboIncludedServices.tsx +39 -39
  120. package/compat/OfferPanel/MuiOfferPeriod/MuiOfferPeriod.tsx +42 -42
  121. package/compat/OfferPanel/OfferCheckboxGroup/CheckboxContainer.tsx +140 -140
  122. package/compat/OfferPanel/OfferCheckboxGroup/OfferCheckboxGroup.styl +144 -144
  123. package/compat/OfferPanel/OfferCheckboxGroup/OfferCheckboxGroup.tsx +23 -23
  124. package/compat/OfferPanel/OfferPanel.styl +193 -193
  125. package/compat/OfferPanel/OfferPanel.tsx +81 -81
  126. package/compat/OfferPanel/OfferPeriod/OfferPeriod.styl +24 -24
  127. package/compat/OfferPanel/OfferPeriod/OfferPeriod.tsx +45 -45
  128. package/compat/OfferPanel/RangeGroup/RangeGroup.tsx +39 -39
  129. package/compat/OfferRequestButtonWrapper/OfferRequestButtonWrapper.styl +119 -119
  130. package/compat/OfferRequestButtonWrapper/OfferRequestButtonWrapper.styled.tsx +33 -33
  131. package/compat/OfferRequestButtonWrapper/OfferRequestButtonWrapper.tsx +122 -122
  132. package/compat/PriceRating/PriceRating.styl +47 -47
  133. package/compat/PriceRating/PriceRating.tsx +64 -64
  134. package/compat/PriceRatingDetailed/PriceRatingDetailed.styl +120 -120
  135. package/compat/PriceRatingDetailed/PriceRatingDetailed.tsx +191 -191
  136. package/compat/PricingToolBlock/PricingTool.styl +6 -6
  137. package/compat/PricingToolBlock/PricingTool.tsx +29 -29
  138. package/compat/Radio/Radio.styl +115 -115
  139. package/compat/Radio/Radio.tsx +141 -141
  140. package/compat/Radio/RadioGroup.styl +5 -5
  141. package/compat/Radio/RadioGroup.tsx +65 -65
  142. package/compat/Range/Range.tsx +79 -79
  143. package/compat/RateSearchValue/RateSearchValue.styl +22 -22
  144. package/compat/RateSearchValue/RateSearchValue.tsx +55 -55
  145. package/compat/RateSearchWidget/RateSearchWidget.styl +106 -106
  146. package/compat/RateSearchWidget/RateSearchWidget.tsx +163 -163
  147. package/compat/ServiceBlockItem/ServiceBlockItem.styl +47 -47
  148. package/compat/ServiceBlockItem/ServiceBlockItem.tsx +25 -25
  149. package/compat/SkeletonItem/SkeletonItem.styl +80 -80
  150. package/compat/SkeletonItem/SkeletonItem.tsx +80 -80
  151. package/compat/StarButton/StarButton.styl +39 -39
  152. package/compat/StarButton/StarButton.tsx +31 -31
  153. package/compat/TabPanel/TabPanel.tsx +28 -28
  154. package/compat/TimePicker/TimePicker.styl +22 -22
  155. package/compat/TimePicker/TimePicker.tsx +156 -156
  156. package/compat/Tooltip/Tooltip.styl +117 -117
  157. package/compat/Tooltip/Tooltip.tsx +63 -63
  158. package/compat/Usp/Usp.styl +78 -78
  159. package/compat/Usp/Usp.tsx +30 -30
  160. package/compat/Usp/uspTranslate.ts +12 -12
  161. package/compat/VehicleDetailedSidebar/VehicleDetailedSidebar.styl +36 -36
  162. package/compat/VehicleDetailedSidebar/VehicleDetailedSidebar.tsx +178 -178
  163. package/compat/VehicleDetailedSidebar/partials/Price.styl +27 -27
  164. package/compat/VehicleDetailedSidebar/partials/Price.tsx +41 -41
  165. package/compat/VehicleDetailedSidebar/partials/PriceContent.styl +123 -123
  166. package/compat/VehicleDetailedSidebar/partials/PriceContent.tsx +128 -128
  167. package/compat/VehicleDetailedSidebar/partials/Properties.styl +58 -58
  168. package/compat/VehicleDetailedSidebar/partials/Properties.tsx +155 -155
  169. package/compat/VehicleDetailedSidebar/partials/Title.styl +35 -35
  170. package/compat/VehicleDetailedSidebar/partials/Title.tsx +33 -33
  171. package/compat/VehicleDetailedSlider/VehicleDetailedSlider.styl +146 -146
  172. package/compat/VehicleDetailedSlider/VehicleDetailedSlider.tsx +382 -382
  173. package/compat/VehicleDetailedSlider/partials/MobileStast.tsx +61 -61
  174. package/compat/VehicleDetailedSlider/partials/MobileStats.styl +71 -71
  175. package/compat/VehicleDetailedSlider/partials/PriceData.styl +50 -50
  176. package/compat/VehicleDetailedSlider/partials/PriceData.tsx +67 -67
  177. package/compat/VehicleDetailedSlider/partials/Stats.styl +80 -80
  178. package/compat/VehicleDetailedSlider/partials/Stats.tsx +62 -62
  179. package/compat/VehicleDetailedSlider/partials/Title.styl +44 -44
  180. package/compat/VehicleDetailedSlider/partials/Title.tsx +36 -36
  181. package/compat/VehicleFormattedPrice/VehicleFormattedPrice.styl +148 -148
  182. package/compat/VehicleFormattedPrice/VehicleFormattedPrice.tsx +163 -163
  183. package/compat/VehicleSlider/VehicleSlider.styl +62 -62
  184. package/compat/VehicleSlider/VehicleSlider.tsx +125 -125
  185. package/compat/VehicleSlider/VehicleSliderForSRL.tsx +175 -175
  186. package/compat/VehicleSmallCard/SeoText/SeoText.styl +8 -8
  187. package/compat/VehicleSmallCard/SeoText/SeoText.tsx +16 -16
  188. package/compat/VehicleSmallCard/VehicleData/VechiclePriceItem/VechiclePriceItem.styl +204 -204
  189. package/compat/VehicleSmallCard/VehicleData/VechiclePriceItem/VechiclePriceItem.tsx +199 -199
  190. package/compat/VehicleSmallCard/VehicleData/VehicleInfo/VehicleInfo.styl +273 -273
  191. package/compat/VehicleSmallCard/VehicleData/VehicleInfo/VehicleInfo.tsx +179 -179
  192. package/compat/VehicleSmallCard/VehicleData/VehiclePrice/VehiclePrice.styl +165 -165
  193. package/compat/VehicleSmallCard/VehicleData/VehiclePrice/VehiclePrice.tsx +299 -299
  194. package/compat/VehicleSmallCard/VehicleData/VehicleProperty/VehicleProperty.styl +32 -32
  195. package/compat/VehicleSmallCard/VehicleData/VehicleProperty/VehicleProperty.tsx +35 -35
  196. package/compat/VehicleSmallCard/VehicleData/VehicleTitle/VehicleTitle.styl +135 -135
  197. package/compat/VehicleSmallCard/VehicleData/VehicleTitle/VehicleTitle.tsx +91 -91
  198. package/compat/VehicleSmallCard/VehicleSmallCard.styl +309 -309
  199. package/compat/VehicleSmallCard/VehicleSmallCard.tsx +448 -448
  200. package/compat/index.ts +77 -77
  201. package/compat/legacy-theme/mixins.styl +93 -93
  202. package/compat/legacy-theme/priceReviewColors.styl +12 -12
  203. package/compat/legacy-theme/slider.global.styl +5 -5
  204. package/compat/legacy-theme/theme.styl +136 -136
  205. package/compat/withLabel/withLabel.styl +33 -33
  206. package/compat/withLabel/withLabel.tsx +44 -44
  207. package/compat/withStats/withStats.styl +174 -174
  208. package/compat/withStats/withStats.tsx +238 -238
  209. package/constants/RateSearchWidget.ts +15 -15
  210. package/constants/Search.ts +290 -290
  211. package/constants/SearchWidget.ts +108 -108
  212. package/constants/app.ts +223 -223
  213. package/constants/common.ts +127 -127
  214. package/constants/core.ts +131 -131
  215. package/constants/highlights.ts +165 -165
  216. package/constants/price.ts +9 -9
  217. package/constants/selectors.ts +38 -38
  218. package/constants.ts +91 -91
  219. package/data/DataTransformers.ts +88 -88
  220. package/data/fieldMapping.ts +364 -342
  221. package/data/toAutobahnCar.ts +455 -442
  222. package/iconsvg/IconSVG.tsx +30 -30
  223. package/iconsvg/IconSVGConfig.tsx +768 -768
  224. package/iconsvg/SVG/AboPartner.tsx +16 -16
  225. package/iconsvg/SVG/ArrowQuotes.tsx +22 -22
  226. package/iconsvg/SVG/CloseIcon.tsx +17 -17
  227. package/iconsvg/SVG/CloseIconSelect.tsx +18 -18
  228. package/iconsvg/SVG/ClosedLockIcon.tsx +18 -18
  229. package/iconsvg/SVG/DealerCheckIcon.tsx +18 -18
  230. package/iconsvg/SVG/DealerPopoverMail.tsx +21 -21
  231. package/iconsvg/SVG/DealerPopoverPhone.tsx +21 -21
  232. package/iconsvg/SVG/GrayPhoneIcon.tsx +22 -22
  233. package/iconsvg/SVG/InternetIcon.tsx +18 -18
  234. package/iconsvg/SVG/WhiteEnvelopeIcon.tsx +21 -21
  235. package/iconsvg/SVG/bodyType/Cabrio.tsx +23 -23
  236. package/iconsvg/SVG/bodyType/Coupe.tsx +22 -22
  237. package/iconsvg/SVG/bodyType/Minibus.tsx +22 -22
  238. package/iconsvg/SVG/bodyType/Other.tsx +25 -25
  239. package/iconsvg/SVG/bodyType/Sedan.tsx +22 -22
  240. package/iconsvg/SVG/bodyType/SelectorCategoryCombi.tsx +68 -68
  241. package/iconsvg/SVG/bodyType/SelectorCategoryCompact.tsx +20 -20
  242. package/iconsvg/SVG/bodyType/SelectorCategoryConvertible.tsx +68 -68
  243. package/iconsvg/SVG/bodyType/SelectorCategoryCoupe.tsx +60 -60
  244. package/iconsvg/SVG/bodyType/SelectorCategoryMinibus.tsx +64 -64
  245. package/iconsvg/SVG/bodyType/SelectorCategoryOther.tsx +60 -60
  246. package/iconsvg/SVG/bodyType/SelectorCategorySedan.tsx +69 -69
  247. package/iconsvg/SVG/bodyType/SelectorCategorySuv.tsx +77 -77
  248. package/iconsvg/SVG/bodyType/SelectorCategoryTransporter.tsx +68 -68
  249. package/iconsvg/SVG/bodyType/SelectorCategoryVan.tsx +72 -72
  250. package/iconsvg/SVG/bodyType/Small.tsx +23 -23
  251. package/iconsvg/SVG/bodyType/Suv.tsx +23 -23
  252. package/iconsvg/SVG/bodyType/Van.tsx +23 -23
  253. package/iconsvg/SVG/bodyType/Wagon.tsx +23 -23
  254. package/iconsvg/SVG/common/AddIcon.tsx +16 -16
  255. package/iconsvg/SVG/common/AddPlus.tsx +16 -16
  256. package/iconsvg/SVG/common/AddressDashboard.tsx +29 -29
  257. package/iconsvg/SVG/common/AddressIcon.tsx +20 -20
  258. package/iconsvg/SVG/common/ArrowDetailedAccordionBlue.tsx +26 -26
  259. package/iconsvg/SVG/common/ArrowDownBlue.tsx +21 -21
  260. package/iconsvg/SVG/common/ArrowSelect.tsx +23 -23
  261. package/iconsvg/SVG/common/ArrowStepDown.tsx +18 -18
  262. package/iconsvg/SVG/common/Autocheck.tsx +19 -19
  263. package/iconsvg/SVG/common/AutodeLogo.tsx +36 -36
  264. package/iconsvg/SVG/common/Avatar.tsx +17 -17
  265. package/iconsvg/SVG/common/BellGray.tsx +19 -19
  266. package/iconsvg/SVG/common/BigInfoTransparent.tsx +13 -13
  267. package/iconsvg/SVG/common/Browse.tsx +20 -20
  268. package/iconsvg/SVG/common/Calendar.tsx +24 -24
  269. package/iconsvg/SVG/common/CallbackDashboard.tsx +30 -30
  270. package/iconsvg/SVG/common/Camera.tsx +17 -17
  271. package/iconsvg/SVG/common/Car.tsx +16 -16
  272. package/iconsvg/SVG/common/CarBody.tsx +19 -19
  273. package/iconsvg/SVG/common/CarFront.tsx +43 -43
  274. package/iconsvg/SVG/common/CarInspectionCheck.tsx +21 -21
  275. package/iconsvg/SVG/common/CarInspectionScheme0.tsx +32 -32
  276. package/iconsvg/SVG/common/CarInspectionScheme1.tsx +53 -53
  277. package/iconsvg/SVG/common/CarInspectionScheme2.tsx +52 -52
  278. package/iconsvg/SVG/common/CarInspectionScheme3.tsx +32 -32
  279. package/iconsvg/SVG/common/CarInspectionScheme4.tsx +32 -32
  280. package/iconsvg/SVG/common/CarInspectionScheme5.tsx +32 -32
  281. package/iconsvg/SVG/common/CarInspectionScheme6.tsx +32 -32
  282. package/iconsvg/SVG/common/CarInspectionSchemeGeneral copy.tsx +24 -24
  283. package/iconsvg/SVG/common/CarInspectionSchemeGeneral.tsx +24 -24
  284. package/iconsvg/SVG/common/CheckBlue.tsx +18 -18
  285. package/iconsvg/SVG/common/CheckGreen.tsx +22 -22
  286. package/iconsvg/SVG/common/CheckMark.tsx +16 -16
  287. package/iconsvg/SVG/common/CheckWhite.tsx +19 -19
  288. package/iconsvg/SVG/common/Chevron.tsx +17 -17
  289. package/iconsvg/SVG/common/CircledCheckmark.tsx +25 -25
  290. package/iconsvg/SVG/common/Clock.tsx +18 -18
  291. package/iconsvg/SVG/common/Close.tsx +19 -19
  292. package/iconsvg/SVG/common/CloseGrey.tsx +22 -22
  293. package/iconsvg/SVG/common/ContactEmail.tsx +21 -21
  294. package/iconsvg/SVG/common/ContactPhone.tsx +28 -28
  295. package/iconsvg/SVG/common/CopyIcon copy.tsx +22 -22
  296. package/iconsvg/SVG/common/CopyIcon.tsx +22 -22
  297. package/iconsvg/SVG/common/CopyIconForDealer.tsx +21 -21
  298. package/iconsvg/SVG/common/DashboardIcon.tsx +20 -20
  299. package/iconsvg/SVG/common/DashboardQuestionMark.tsx +20 -20
  300. package/iconsvg/SVG/common/DealersIcon.tsx +20 -20
  301. package/iconsvg/SVG/common/DeleteCircle.tsx +31 -31
  302. package/iconsvg/SVG/common/DeleteV1Icon.tsx +18 -18
  303. package/iconsvg/SVG/common/DeliveryDashboard.tsx +25 -25
  304. package/iconsvg/SVG/common/DeliveryMail.tsx +24 -24
  305. package/iconsvg/SVG/common/Discount100De.tsx +18 -18
  306. package/iconsvg/SVG/common/Discount100En.tsx +19 -19
  307. package/iconsvg/SVG/common/Discount66De.tsx +28 -28
  308. package/iconsvg/SVG/common/Discount66En.tsx +20 -20
  309. package/iconsvg/SVG/common/DoneIcon.tsx +18 -18
  310. package/iconsvg/SVG/common/EditCircle.tsx +32 -32
  311. package/iconsvg/SVG/common/EditPriceIcon.tsx +20 -20
  312. package/iconsvg/SVG/common/EuroCurrency.tsx +18 -18
  313. package/iconsvg/SVG/common/Export.tsx +20 -20
  314. package/iconsvg/SVG/common/Eye.tsx +17 -17
  315. package/iconsvg/SVG/common/EyeCatch.tsx +19 -19
  316. package/iconsvg/SVG/common/FavoritesIcon.tsx +20 -20
  317. package/iconsvg/SVG/common/FilterRange.tsx +16 -16
  318. package/iconsvg/SVG/common/FilterToolBlack.tsx +23 -23
  319. package/iconsvg/SVG/common/FlagDe.tsx +21 -21
  320. package/iconsvg/SVG/common/FlagEn.tsx +43 -43
  321. package/iconsvg/SVG/common/GrayEnvelopeIcon.tsx +19 -19
  322. package/iconsvg/SVG/common/HamburgerMenuIcon.tsx +18 -18
  323. package/iconsvg/SVG/common/HandingOverDashboard.tsx +32 -32
  324. package/iconsvg/SVG/common/ImageSettingsIcon.tsx +20 -20
  325. package/iconsvg/SVG/common/Info.tsx +16 -16
  326. package/iconsvg/SVG/common/InfoIcon.tsx +17 -17
  327. package/iconsvg/SVG/common/InfoTransparent.tsx +18 -18
  328. package/iconsvg/SVG/common/LogoutIcon.tsx +20 -20
  329. package/iconsvg/SVG/common/MagnifyingGlass.tsx +31 -31
  330. package/iconsvg/SVG/common/MenuArrow.tsx +16 -16
  331. package/iconsvg/SVG/common/MenuGrey.tsx +22 -22
  332. package/iconsvg/SVG/common/MobileDeLogo.tsx +108 -108
  333. package/iconsvg/SVG/common/MyOrderIcon.tsx +20 -20
  334. package/iconsvg/SVG/common/MyVehiclesIcon.tsx +20 -20
  335. package/iconsvg/SVG/common/NewFlagDe.tsx +25 -25
  336. package/iconsvg/SVG/common/NewFlagEn.tsx +34 -34
  337. package/iconsvg/SVG/common/OrderReceivedDashboard.tsx +27 -27
  338. package/iconsvg/SVG/common/Package.tsx +30 -30
  339. package/iconsvg/SVG/common/Phone.tsx +18 -18
  340. package/iconsvg/SVG/common/PhoneGrey.tsx +22 -22
  341. package/iconsvg/SVG/common/PickupDashboard.tsx +30 -30
  342. package/iconsvg/SVG/common/Picture.tsx +24 -24
  343. package/iconsvg/SVG/common/Pictures.tsx +32 -32
  344. package/iconsvg/SVG/common/Plus.tsx +16 -16
  345. package/iconsvg/SVG/common/PlusNew.tsx +16 -16
  346. package/iconsvg/SVG/common/PreparationDashboard.tsx +29 -29
  347. package/iconsvg/SVG/common/ProfileDashboard.tsx +24 -24
  348. package/iconsvg/SVG/common/ProfileIcon.tsx +17 -17
  349. package/iconsvg/SVG/common/Question.tsx +19 -19
  350. package/iconsvg/SVG/common/QuestionBold.tsx +25 -25
  351. package/iconsvg/SVG/common/RegistrationDashboard.tsx +31 -31
  352. package/iconsvg/SVG/common/SavedSearchsIcon.tsx +20 -20
  353. package/iconsvg/SVG/common/Search.tsx +19 -19
  354. package/iconsvg/SVG/common/SearchGrey.tsx +22 -22
  355. package/iconsvg/SVG/common/SettingPenIcon.tsx +20 -20
  356. package/iconsvg/SVG/common/Share.tsx +16 -16
  357. package/iconsvg/SVG/common/ShoppingCart.tsx +18 -18
  358. package/iconsvg/SVG/common/SliderArrow.tsx +21 -21
  359. package/iconsvg/SVG/common/SliderEye.tsx +17 -17
  360. package/iconsvg/SVG/common/SortUpDownArrows.tsx +18 -18
  361. package/iconsvg/SVG/common/Speedometer.tsx +23 -23
  362. package/iconsvg/SVG/common/Star.tsx +20 -20
  363. package/iconsvg/SVG/common/StarNew.tsx +16 -16
  364. package/iconsvg/SVG/common/StarOutline.tsx +20 -20
  365. package/iconsvg/SVG/common/StarRoundedCorners.tsx +18 -18
  366. package/iconsvg/SVG/common/Stats.tsx +17 -17
  367. package/iconsvg/SVG/common/Step1.tsx +21 -21
  368. package/iconsvg/SVG/common/Step2.tsx +20 -20
  369. package/iconsvg/SVG/common/Step3.tsx +21 -21
  370. package/iconsvg/SVG/common/SupportCallbackIcon.tsx +20 -20
  371. package/iconsvg/SVG/common/Telephone.tsx +22 -22
  372. package/iconsvg/SVG/common/Time.tsx +17 -17
  373. package/iconsvg/SVG/common/Timetable.tsx +18 -18
  374. package/iconsvg/SVG/common/Trash.tsx +22 -22
  375. package/iconsvg/SVG/common/TrashRed.tsx +23 -23
  376. package/iconsvg/SVG/common/Upload.tsx +17 -17
  377. package/iconsvg/SVG/common/UserGrey.tsx +22 -22
  378. package/iconsvg/SVG/common/UserProfileIcon.tsx +20 -20
  379. package/iconsvg/SVG/common/ValidateFailure.tsx +21 -21
  380. package/iconsvg/SVG/common/ValidateSuccess.tsx +21 -21
  381. package/iconsvg/SVG/common/WarningTriangle.tsx +20 -20
  382. package/iconsvg/SVG/common/WhiteArrowUp.tsx +21 -21
  383. package/iconsvg/SVG/common/WhiteKey.tsx +21 -21
  384. package/iconsvg/SVG/common/WhitePeople.tsx +23 -23
  385. package/iconsvg/SVG/common/WhiteTick.tsx +19 -19
  386. package/iconsvg/SVG/flags/AT.tsx +19 -19
  387. package/iconsvg/SVG/flags/BE.tsx +20 -20
  388. package/iconsvg/SVG/flags/BG.tsx +20 -20
  389. package/iconsvg/SVG/flags/CH.tsx +22 -22
  390. package/iconsvg/SVG/flags/CZ.tsx +18 -18
  391. package/iconsvg/SVG/flags/DE.tsx +18 -18
  392. package/iconsvg/SVG/flags/DK.tsx +18 -18
  393. package/iconsvg/SVG/flags/ES.tsx +2585 -2585
  394. package/iconsvg/SVG/flags/FI.tsx +18 -18
  395. package/iconsvg/SVG/flags/FR.tsx +20 -20
  396. package/iconsvg/SVG/flags/GB.tsx +26 -26
  397. package/iconsvg/SVG/flags/HR.tsx +135 -135
  398. package/iconsvg/SVG/flags/HU.tsx +20 -20
  399. package/iconsvg/SVG/flags/IT.tsx +20 -20
  400. package/iconsvg/SVG/flags/LI.tsx +106 -106
  401. package/iconsvg/SVG/flags/LU.tsx +18 -18
  402. package/iconsvg/SVG/flags/NL.tsx +18 -18
  403. package/iconsvg/SVG/flags/NO.tsx +20 -20
  404. package/iconsvg/SVG/flags/PL.tsx +19 -19
  405. package/iconsvg/SVG/flags/RO.tsx +20 -20
  406. package/iconsvg/SVG/flags/RU.tsx +20 -20
  407. package/iconsvg/SVG/flags/SE.tsx +20 -20
  408. package/iconsvg/SVG/flags/SI.tsx +54 -54
  409. package/iconsvg/SVG/flags/SK.tsx +34 -34
  410. package/iconsvg/SVG/flags/UA.tsx +19 -19
  411. package/iconsvg/SVG/infoBlocks/14DaysReturnPolicy.tsx +18 -18
  412. package/iconsvg/SVG/infoBlocks/AlertInfo.tsx +19 -19
  413. package/iconsvg/SVG/infoBlocks/Autocheck.tsx +19 -19
  414. package/iconsvg/SVG/infoBlocks/CheckTheStory.tsx +22 -22
  415. package/iconsvg/SVG/infoBlocks/CustomerServiceWhite.tsx +16 -16
  416. package/iconsvg/SVG/infoBlocks/Guarantee.tsx +16 -16
  417. package/iconsvg/SVG/infoBlocks/OrderWhite.tsx +13 -13
  418. package/iconsvg/SVG/infoBlocks/PriceGuarantee.tsx +19 -19
  419. package/iconsvg/SVG/infoBlocks/PriceGuaranteeWhite.tsx +17 -17
  420. package/iconsvg/SVG/infoBlocks/TransportAndDelivery.tsx +21 -21
  421. package/iconsvg/SVG/infoBlocks/Warranty.tsx +23 -23
  422. package/iconsvg/SVG/popower/Mail.tsx +18 -18
  423. package/iconsvg/SVG/popower/Phone.tsx +19 -19
  424. package/iconsvg/SVG/popower/Schedule.tsx +18 -18
  425. package/iconsvg/SVG/searchWidgets/drive/AAllWheelDrive.tsx +26 -26
  426. package/iconsvg/SVG/searchWidgets/drive/AllWheelDrive.tsx +26 -26
  427. package/iconsvg/SVG/searchWidgets/drive/FrontWheelDrive.tsx +25 -25
  428. package/iconsvg/SVG/searchWidgets/drive/OtherWheelDrive.tsx +26 -26
  429. package/iconsvg/SVG/searchWidgets/drive/RearWheelDrive.tsx +25 -25
  430. package/iconsvg/SVG/searchWidgets/fuel/FuelDiesel.tsx +18 -18
  431. package/iconsvg/SVG/searchWidgets/fuel/FuelElectrical.tsx +19 -19
  432. package/iconsvg/SVG/searchWidgets/fuel/FuelElectricalDiesel.tsx +34 -34
  433. package/iconsvg/SVG/searchWidgets/fuel/FuelElectricalPetrol.tsx +20 -20
  434. package/iconsvg/SVG/searchWidgets/fuel/FuelEthanol.tsx +53 -53
  435. package/iconsvg/SVG/searchWidgets/fuel/FuelHydrogen.tsx +24 -24
  436. package/iconsvg/SVG/searchWidgets/fuel/FuelLpg.tsx +24 -24
  437. package/iconsvg/SVG/searchWidgets/fuel/FuelNaturalGas.tsx +23 -23
  438. package/iconsvg/SVG/searchWidgets/fuel/FuelOther.tsx +28 -28
  439. package/iconsvg/SVG/searchWidgets/fuel/FuelPetrol.tsx +18 -18
  440. package/iconsvg/SVG/settings/Account.tsx +17 -17
  441. package/iconsvg/SVG/settings/DataUsage.tsx +17 -17
  442. package/iconsvg/SVG/settings/MarketResearch.tsx +17 -17
  443. package/iconsvg/SVG/settings/Newsletter.tsx +17 -17
  444. package/iconsvg/SVG/settings/RemoveEye.tsx +17 -17
  445. package/iconsvg/SVG/settings/RemoveEyeOff.tsx +17 -17
  446. package/iconsvg/SVG/settings/Security.tsx +17 -17
  447. package/iconsvg/SVG/settings/Warning.tsx +17 -17
  448. package/iconsvg/SVG/slider/360.tsx +23 -23
  449. package/iconsvg/SVG/slider/360New.tsx +20 -20
  450. package/iconsvg/SVG/slider/Checked.tsx +19 -19
  451. package/iconsvg/SVG/slider/DiscountRibbon.tsx +51 -51
  452. package/iconsvg/SVG/slider/DiscountRibbonMobile.tsx +47 -47
  453. package/iconsvg/SVG/slider/DiscountRibbonNew.tsx +29 -29
  454. package/iconsvg/SVG/slider/Easy.tsx +19 -19
  455. package/iconsvg/SVG/slider/Fullscreen.tsx +16 -16
  456. package/iconsvg/SVG/slider/FullscreenWindow.tsx +23 -23
  457. package/iconsvg/SVG/slider/Safe.tsx +19 -19
  458. package/iconsvg/SVG/slider/ToBuy.tsx +19 -19
  459. package/iconsvg/SVG/slider/YoutubeButton.tsx +26 -26
  460. package/iconsvg/SVG/slider/ZoomIn.tsx +21 -21
  461. package/iconsvg/SVG/slider/ZoomOut.tsx +21 -21
  462. package/iconsvg/SVG/social/AndroidLogo.tsx +18 -18
  463. package/iconsvg/SVG/social/Apple.tsx +19 -19
  464. package/iconsvg/SVG/social/FacebookF.tsx +19 -19
  465. package/iconsvg/SVG/social/GooglePlusG.tsx +19 -19
  466. package/iconsvg/SVG/social/Instagram.tsx +17 -17
  467. package/iconsvg/SVG/social/Pinterest.tsx +19 -19
  468. package/iconsvg/SVG/social/SharingInterface.tsx +21 -21
  469. package/iconsvg/SVG/social/Twitter.tsx +19 -19
  470. package/iconsvg/SVG/social/Youtube.tsx +19 -19
  471. package/iconsvg/SVG/vehicle/AboIcon.tsx +11 -11
  472. package/iconsvg/SVG/vehicle/Abs.tsx +24 -24
  473. package/iconsvg/SVG/vehicle/AirCond.tsx +34 -34
  474. package/iconsvg/SVG/vehicle/Airbag.tsx +21 -21
  475. package/iconsvg/SVG/vehicle/AuxiliaryHeating.tsx +23 -23
  476. package/iconsvg/SVG/vehicle/Bluetooth.tsx +22 -22
  477. package/iconsvg/SVG/vehicle/BuyIcon.tsx +15 -15
  478. package/iconsvg/SVG/vehicle/CarAvailability.tsx +22 -22
  479. package/iconsvg/SVG/vehicle/CarInspectionCheck.tsx +21 -21
  480. package/iconsvg/SVG/vehicle/CarInspectionCross.tsx +21 -21
  481. package/iconsvg/SVG/vehicle/CheckoutChecked.tsx +15 -15
  482. package/iconsvg/SVG/vehicle/Co2.tsx +24 -24
  483. package/iconsvg/SVG/vehicle/CruiseControl.tsx +25 -25
  484. package/iconsvg/SVG/vehicle/Date.tsx +21 -21
  485. package/iconsvg/SVG/vehicle/Delivery.tsx +12 -12
  486. package/iconsvg/SVG/vehicle/Diesel.tsx +28 -28
  487. package/iconsvg/SVG/vehicle/Display.tsx +25 -25
  488. package/iconsvg/SVG/vehicle/Done.tsx +11 -11
  489. package/iconsvg/SVG/vehicle/Door.tsx +19 -19
  490. package/iconsvg/SVG/vehicle/DoubleDone.tsx +18 -18
  491. package/iconsvg/SVG/vehicle/EditIcon.tsx +11 -11
  492. package/iconsvg/SVG/vehicle/EmergencyBrakeAssistant.tsx +27 -27
  493. package/iconsvg/SVG/vehicle/Eps.tsx +24 -24
  494. package/iconsvg/SVG/vehicle/Esp.tsx +24 -24
  495. package/iconsvg/SVG/vehicle/FinancingIcon.tsx +20 -20
  496. package/iconsvg/SVG/vehicle/FuelConsumption.tsx +20 -20
  497. package/iconsvg/SVG/vehicle/Fueling.tsx +22 -22
  498. package/iconsvg/SVG/vehicle/FullDrive.tsx +24 -24
  499. package/iconsvg/SVG/vehicle/GasElectric.tsx +28 -28
  500. package/iconsvg/SVG/vehicle/HandsFreePhoneSystem.tsx +24 -24
  501. package/iconsvg/SVG/vehicle/Kw.tsx +23 -23
  502. package/iconsvg/SVG/vehicle/LastCrawledAt.tsx +22 -22
  503. package/iconsvg/SVG/vehicle/LeasingIcon.tsx +14 -14
  504. package/iconsvg/SVG/vehicle/Led.tsx +24 -24
  505. package/iconsvg/SVG/vehicle/LightSensor.tsx +22 -22
  506. package/iconsvg/SVG/vehicle/LinkAlternative.tsx +15 -15
  507. package/iconsvg/SVG/vehicle/Location.tsx +17 -17
  508. package/iconsvg/SVG/vehicle/MinusIcon.tsx +11 -11
  509. package/iconsvg/SVG/vehicle/Mirror.tsx +19 -19
  510. package/iconsvg/SVG/vehicle/Navigation.tsx +27 -27
  511. package/iconsvg/SVG/vehicle/NewCar.tsx +21 -21
  512. package/iconsvg/SVG/vehicle/NoImage.tsx +17 -17
  513. package/iconsvg/SVG/vehicle/Owner.tsx +18 -18
  514. package/iconsvg/SVG/vehicle/PanoramicRoof.tsx +23 -23
  515. package/iconsvg/SVG/vehicle/ParkingAssistants.tsx +24 -24
  516. package/iconsvg/SVG/vehicle/PickYourself.tsx +18 -18
  517. package/iconsvg/SVG/vehicle/PlusIcon.tsx +11 -11
  518. package/iconsvg/SVG/vehicle/Power.tsx +21 -21
  519. package/iconsvg/SVG/vehicle/Ps.tsx +19 -19
  520. package/iconsvg/SVG/vehicle/Question.tsx +24 -24
  521. package/iconsvg/SVG/vehicle/Seats.tsx +21 -21
  522. package/iconsvg/SVG/vehicle/SeatsHeating.tsx +26 -26
  523. package/iconsvg/SVG/vehicle/SelectorGearboxAutomatic.tsx +24 -24
  524. package/iconsvg/SVG/vehicle/SelectorGearboxManualShift.tsx +19 -19
  525. package/iconsvg/SVG/vehicle/SelectorGearboxOther.tsx +24 -24
  526. package/iconsvg/SVG/vehicle/SelectorGearboxSemiAutomatic.tsx +30 -30
  527. package/iconsvg/SVG/vehicle/SelectorInteriorTypeAlcantara.tsx +225 -225
  528. package/iconsvg/SVG/vehicle/SelectorInteriorTypeFabric.tsx +29 -29
  529. package/iconsvg/SVG/vehicle/SelectorInteriorTypeFullLeather.tsx +29 -29
  530. package/iconsvg/SVG/vehicle/SelectorInteriorTypeOther.tsx +26 -26
  531. package/iconsvg/SVG/vehicle/SelectorInteriorTypePartLeather.tsx +142 -142
  532. package/iconsvg/SVG/vehicle/SelectorInteriorTypeSyntheticLeather.tsx +27 -27
  533. package/iconsvg/SVG/vehicle/SelectorInteriorTypeVelours.tsx +39 -39
  534. package/iconsvg/SVG/vehicle/Shield.tsx +39 -39
  535. package/iconsvg/SVG/vehicle/Speedometer.tsx +17 -17
  536. package/iconsvg/SVG/vehicle/StartStopSystem.tsx +30 -30
  537. package/iconsvg/SVG/vehicle/Stop.tsx +25 -25
  538. package/iconsvg/SVG/vehicle/TickMark.tsx +21 -21
  539. package/iconsvg/SVG/vehicle/TrafficSignRecognition.tsx +29 -29
  540. package/iconsvg/SVG/vehicle/TrailerCoupling.tsx +24 -24
  541. package/iconsvg/SVG/vehicle/Transmission.tsx +27 -27
  542. package/iconsvg/SVG/vehicle/Wheel.tsx +43 -43
  543. package/iconsvg/SVG/vehicle/Wipers.tsx +22 -22
  544. package/iconsvg/SVG/vehicle/Wrench.tsx +17 -17
  545. package/iconsvg/index.ts +7 -7
  546. package/index.ts +18 -18
  547. package/locales/de/autobahn.json +676 -671
  548. package/locales/en/autobahn.json +676 -671
  549. package/locales/legacy/SearchDetailedPage.ts +205 -205
  550. package/locales/legacy/cbd.ts +719 -719
  551. package/locales/legacy/common.ts +109 -109
  552. package/locales/legacy/data.ts +1118 -1118
  553. package/locales/legacy/priceRating.ts +10 -10
  554. package/locales/legacy/sortingOptions.ts +21 -21
  555. package/media/images/raiting-stars-min.svg +7 -7
  556. package/media/images/refresh-button.svg +49 -49
  557. package/media/images/user-icon.svg +16 -16
  558. package/media/svg/infoBlocks/whyAutodeIconSet-F.svg +9 -9
  559. package/media/svg/infoBlocks/whyAutodeIconSet-G.svg +8 -8
  560. package/media/svg/infoBlocks/whyAutodeIconSet-Q.svg +6 -6
  561. package/media/svg/infoBlocks/whyAutodeIconSet-R.svg +9 -9
  562. package/media/svg/usp/icon1.svg +16 -16
  563. package/media/svg/usp/icon2.svg +13 -13
  564. package/media/svg/usp/icon3.svg +10 -10
  565. package/media/svg/usp/icon4.svg +14 -14
  566. package/package.json +30 -30
  567. package/schemes/AggregationScheme.ts +73 -73
  568. package/searchFilters/filterOptions.ts +119 -119
  569. package/searchFilters/filterProps.ts +35 -35
  570. package/searchFilters/index.ts +15 -15
  571. package/theme/autobahn.css +25 -25
  572. package/theme/colors_and_type.css +113 -113
  573. package/theme/md3.css +2045 -2034
  574. package/types/types.ts +373 -373
  575. package/types.ts +8 -8
  576. package/ui/Accordion.tsx +134 -134
  577. package/ui/Button.tsx +62 -62
  578. package/ui/CardCarousel.tsx +133 -133
  579. package/ui/Chip.tsx +29 -29
  580. package/ui/DatePicker.tsx +145 -145
  581. package/ui/Dropdown.tsx +205 -205
  582. package/ui/FileUpload.tsx +154 -154
  583. package/ui/FormCheckbox.tsx +79 -79
  584. package/ui/FormDropdown.tsx +327 -327
  585. package/ui/FormField.tsx +88 -88
  586. package/ui/FormRadio.tsx +93 -93
  587. package/ui/FormRadioGroup.tsx +106 -106
  588. package/ui/Icon.tsx +391 -391
  589. package/ui/IconButton.tsx +44 -44
  590. package/ui/Modal.tsx +187 -187
  591. package/ui/Pagination.tsx +140 -140
  592. package/ui/Price.tsx +25 -25
  593. package/ui/PriceEvalBar.tsx +48 -48
  594. package/ui/SaveChip.tsx +34 -34
  595. package/ui/Segmented.tsx +48 -48
  596. package/ui/Skeleton.tsx +75 -75
  597. package/ui/Spec.tsx +24 -24
  598. package/ui/Stars.tsx +29 -29
  599. package/ui/StatChip.tsx +21 -21
  600. package/ui/Stepper.tsx +106 -106
  601. package/ui/Switch.tsx +65 -65
  602. package/ui/Table.tsx +156 -156
  603. package/ui/Textarea.tsx +58 -58
  604. package/ui/index.ts +88 -88
  605. package/utils/CommonUtils.ts +648 -648
  606. package/utils/DateUtils.ts +101 -101
  607. package/utils/index.ts +74 -74
  608. package/utils/power.ts +11 -11
  609. package/utils/query.ts +21 -21
  610. package/vdp/FinanceCalculator.tsx +465 -465
  611. package/vdp/VdpModules.tsx +1490 -1490
  612. package/vdp/VdpViewer.tsx +209 -209
  613. package/vdp/index.ts +75 -75
  614. package/vdp/types.ts +197 -197
  615. package/vehiclesProps/cbdSelectors.ts +117 -117
  616. package/vehiclesProps/decoratedLightProps.tsx +572 -572
  617. package/vehiclesProps/decoratedProps.tsx +1746 -1746
  618. package/vehiclesProps/equipment.ts +129 -129
  619. package/vehiclesProps/vehicleDetails.ts +428 -428
  620. package/widgets/SearchBox.tsx +256 -256
  621. package/widgets/index.ts +5 -5
package/ui/Skeleton.tsx CHANGED
@@ -1,75 +1,75 @@
1
- // Autobahn (auto.de redesign) — md3 loading skeleton.
2
- //
3
- // md3.css ships no skeleton class, so this is the ONE addition covering every
4
- // legacy `Skeleton`/`SkeletonItem` (MUI) call site: a div with an animated
5
- // gradient shimmer built from --md surface tokens. Prop surface mirrors the
6
- // subset fe-main actually used (variant / width / height / className / style;
7
- // `animation` is accepted and ignored — the shimmer always runs).
8
- // Renders correctly only inside a `<div className="md3">` subtree.
9
-
10
- import React from 'react';
11
-
12
- export interface SkeletonProps {
13
- variant?: 'text' | 'rectangular' | 'circular';
14
- width?: number | string;
15
- height?: number | string;
16
- className?: string;
17
- style?: React.CSSProperties;
18
- /** legacy MUI prop, accepted and ignored. */
19
- animation?: 'pulse' | 'wave' | false;
20
- children?: React.ReactNode;
21
- }
22
-
23
- const SKELETON_CSS = `
24
- .md3 .mskeleton {
25
- display: block;
26
- background: linear-gradient(90deg, var(--md-sc) 25%, var(--md-sc-high, var(--md-sc-lowest)) 37%, var(--md-sc) 63%);
27
- background-size: 400% 100%;
28
- animation: md3-skeleton-shimmer 1.4s ease infinite;
29
- border-radius: var(--md-r-sm);
30
- }
31
- .md3 .mskeleton--text { border-radius: var(--md-r-xs, 4px); transform: scale(1, 0.7); }
32
- .md3 .mskeleton--circular { border-radius: 50%; }
33
- @keyframes md3-skeleton-shimmer {
34
- 0% { background-position: 100% 50%; }
35
- 100% { background-position: 0 50%; }
36
- }`;
37
-
38
- const SKELETON_STYLE_ID = 'md3-skeleton-styles';
39
-
40
- // one <style id> in document.head no matter how many skeletons mount — the same
41
- // pattern fe-main's VehicleSmallCardMd3 uses. SSR-safe (guarded document access).
42
- function ensureStylesInjected(): void {
43
- if (typeof document === 'undefined' || document.getElementById(SKELETON_STYLE_ID)) {
44
- return;
45
- }
46
- const style = document.createElement('style');
47
- style.id = SKELETON_STYLE_ID;
48
- style.innerHTML = SKELETON_CSS;
49
- document.head.appendChild(style);
50
- }
51
-
52
- const Skeleton: React.FunctionComponent<SkeletonProps> = ({
53
- variant = 'rectangular', width, height, className, style, children,
54
- }) => {
55
- React.useEffect(() => { ensureStylesInjected(); }, []);
56
- const dims: React.CSSProperties = {};
57
- if (width != null) dims.width = width;
58
- if (height != null) dims.height = height;
59
- if (variant === 'text' && height == null) dims.height = '1.2em';
60
- return (
61
- <span
62
- className={
63
- 'mskeleton' +
64
- (variant !== 'rectangular' ? ` mskeleton--${variant}` : '') +
65
- (className ? ` ${className}` : '')
66
- }
67
- style={{ ...dims, ...style }}
68
- aria-hidden='true'
69
- >
70
- {children}
71
- </span>
72
- );
73
- };
74
-
75
- export default Skeleton;
1
+ // Autobahn (auto.de redesign) — md3 loading skeleton.
2
+ //
3
+ // md3.css ships no skeleton class, so this is the ONE addition covering every
4
+ // legacy `Skeleton`/`SkeletonItem` (MUI) call site: a div with an animated
5
+ // gradient shimmer built from --md surface tokens. Prop surface mirrors the
6
+ // subset fe-main actually used (variant / width / height / className / style;
7
+ // `animation` is accepted and ignored — the shimmer always runs).
8
+ // Renders correctly only inside a `<div className="md3">` subtree.
9
+
10
+ import React from 'react';
11
+
12
+ export interface SkeletonProps {
13
+ variant?: 'text' | 'rectangular' | 'circular';
14
+ width?: number | string;
15
+ height?: number | string;
16
+ className?: string;
17
+ style?: React.CSSProperties;
18
+ /** legacy MUI prop, accepted and ignored. */
19
+ animation?: 'pulse' | 'wave' | false;
20
+ children?: React.ReactNode;
21
+ }
22
+
23
+ const SKELETON_CSS = `
24
+ .md3 .mskeleton {
25
+ display: block;
26
+ background: linear-gradient(90deg, var(--md-sc) 25%, var(--md-sc-high, var(--md-sc-lowest)) 37%, var(--md-sc) 63%);
27
+ background-size: 400% 100%;
28
+ animation: md3-skeleton-shimmer 1.4s ease infinite;
29
+ border-radius: var(--md-r-sm);
30
+ }
31
+ .md3 .mskeleton--text { border-radius: var(--md-r-xs, 4px); transform: scale(1, 0.7); }
32
+ .md3 .mskeleton--circular { border-radius: 50%; }
33
+ @keyframes md3-skeleton-shimmer {
34
+ 0% { background-position: 100% 50%; }
35
+ 100% { background-position: 0 50%; }
36
+ }`;
37
+
38
+ const SKELETON_STYLE_ID = 'md3-skeleton-styles';
39
+
40
+ // one <style id> in document.head no matter how many skeletons mount — the same
41
+ // pattern fe-main's VehicleSmallCardMd3 uses. SSR-safe (guarded document access).
42
+ function ensureStylesInjected(): void {
43
+ if (typeof document === 'undefined' || document.getElementById(SKELETON_STYLE_ID)) {
44
+ return;
45
+ }
46
+ const style = document.createElement('style');
47
+ style.id = SKELETON_STYLE_ID;
48
+ style.innerHTML = SKELETON_CSS;
49
+ document.head.appendChild(style);
50
+ }
51
+
52
+ const Skeleton: React.FunctionComponent<SkeletonProps> = ({
53
+ variant = 'rectangular', width, height, className, style, children,
54
+ }) => {
55
+ React.useEffect(() => { ensureStylesInjected(); }, []);
56
+ const dims: React.CSSProperties = {};
57
+ if (width != null) dims.width = width;
58
+ if (height != null) dims.height = height;
59
+ if (variant === 'text' && height == null) dims.height = '1.2em';
60
+ return (
61
+ <span
62
+ className={
63
+ 'mskeleton' +
64
+ (variant !== 'rectangular' ? ` mskeleton--${variant}` : '') +
65
+ (className ? ` ${className}` : '')
66
+ }
67
+ style={{ ...dims, ...style }}
68
+ aria-hidden='true'
69
+ >
70
+ {children}
71
+ </span>
72
+ );
73
+ };
74
+
75
+ export default Skeleton;
package/ui/Spec.tsx CHANGED
@@ -1,24 +1,24 @@
1
- import React from 'react';
2
-
3
- import Icon from './Icon';
4
-
5
- export interface SpecProps {
6
- /** kebab-case lucide icon name. */
7
- icon: string;
8
- /** caption shown beneath the bold value. */
9
- label?: React.ReactNode;
10
- /** the bold value. */
11
- children?: React.ReactNode;
12
- }
13
-
14
- const Spec: React.FunctionComponent<SpecProps> = ({ icon, label, children }) => (
15
- <div className="specitem">
16
- <Icon name={icon} size={20} stroke={1.75} />
17
- <div>
18
- <b>{children}</b>
19
- <span>{label}</span>
20
- </div>
21
- </div>
22
- );
23
-
24
- export default Spec;
1
+ import React from 'react';
2
+
3
+ import Icon from './Icon';
4
+
5
+ export interface SpecProps {
6
+ /** kebab-case lucide icon name. */
7
+ icon: string;
8
+ /** caption shown beneath the bold value. */
9
+ label?: React.ReactNode;
10
+ /** the bold value. */
11
+ children?: React.ReactNode;
12
+ }
13
+
14
+ const Spec: React.FunctionComponent<SpecProps> = ({ icon, label, children }) => (
15
+ <div className="specitem">
16
+ <Icon name={icon} size={20} stroke={1.75} />
17
+ <div>
18
+ <b>{children}</b>
19
+ <span>{label}</span>
20
+ </div>
21
+ </div>
22
+ );
23
+
24
+ export default Spec;
package/ui/Stars.tsx CHANGED
@@ -1,29 +1,29 @@
1
- import React from 'react';
2
-
3
- import Icon from './Icon';
4
-
5
- export interface StarsProps {
6
- /** rating value 0–5; each star fills when value − index >= 0.5. */
7
- value: number;
8
- size?: number;
9
- }
10
-
11
- /** 5-star row (rounded to nearest .5). */
12
- const Stars: React.FunctionComponent<StarsProps> = ({ value, size = 16 }) => (
13
- <span style={{ display: 'inline-flex', gap: 1 }}>
14
- {[0, 1, 2, 3, 4].map((i) => {
15
- const fill = value - i;
16
- return (
17
- <Icon
18
- key={i}
19
- name={fill >= 0.5 ? 'star' : 'star'}
20
- size={size}
21
- color={fill >= 0.5 ? '#F2A900' : '#D8D6DC'}
22
- style={{ fill: fill >= 0.5 ? '#F2A900' : '#D8D6DC' }}
23
- />
24
- );
25
- })}
26
- </span>
27
- );
28
-
29
- export default Stars;
1
+ import React from 'react';
2
+
3
+ import Icon from './Icon';
4
+
5
+ export interface StarsProps {
6
+ /** rating value 0–5; each star fills when value − index >= 0.5. */
7
+ value: number;
8
+ size?: number;
9
+ }
10
+
11
+ /** 5-star row (rounded to nearest .5). */
12
+ const Stars: React.FunctionComponent<StarsProps> = ({ value, size = 16 }) => (
13
+ <span style={{ display: 'inline-flex', gap: 1 }}>
14
+ {[0, 1, 2, 3, 4].map((i) => {
15
+ const fill = value - i;
16
+ return (
17
+ <Icon
18
+ key={i}
19
+ name={fill >= 0.5 ? 'star' : 'star'}
20
+ size={size}
21
+ color={fill >= 0.5 ? '#F2A900' : '#D8D6DC'}
22
+ style={{ fill: fill >= 0.5 ? '#F2A900' : '#D8D6DC' }}
23
+ />
24
+ );
25
+ })}
26
+ </span>
27
+ );
28
+
29
+ export default Stars;
package/ui/StatChip.tsx CHANGED
@@ -1,21 +1,21 @@
1
- import React from 'react';
2
-
3
- import Icon from './Icon';
4
-
5
- export type StatChipTone = 'good' | 'warn';
6
-
7
- export interface StatChipProps {
8
- tone?: StatChipTone;
9
- /** kebab-case lucide icon name rendered before the content. */
10
- icon?: string;
11
- children?: React.ReactNode;
12
- }
13
-
14
- const StatChip: React.FunctionComponent<StatChipProps> = ({ tone = 'good', icon, children }) => (
15
- <span className={`statchip statchip--${tone}`}>
16
- {icon && <Icon name={icon} size={14} />}
17
- {children}
18
- </span>
19
- );
20
-
21
- export default StatChip;
1
+ import React from 'react';
2
+
3
+ import Icon from './Icon';
4
+
5
+ export type StatChipTone = 'good' | 'warn';
6
+
7
+ export interface StatChipProps {
8
+ tone?: StatChipTone;
9
+ /** kebab-case lucide icon name rendered before the content. */
10
+ icon?: string;
11
+ children?: React.ReactNode;
12
+ }
13
+
14
+ const StatChip: React.FunctionComponent<StatChipProps> = ({ tone = 'good', icon, children }) => (
15
+ <span className={`statchip statchip--${tone}`}>
16
+ {icon && <Icon name={icon} size={14} />}
17
+ {children}
18
+ </span>
19
+ );
20
+
21
+ export default StatChip;
package/ui/Stepper.tsx CHANGED
@@ -1,106 +1,106 @@
1
- // Autobahn (auto.de redesign) — md3 step indicator (numbered circles + connectors).
2
- //
3
- // A reusable, presentational MD3 stepper for multi-step flows (Checkout, …). Mirrors the
4
- // visual language of the inline `.co-stepper` in CheckoutChromeNext (30px numbered dots,
5
- // primary-filled done/active states, 2px connectors) but generalised: it takes a plain
6
- // `steps` array + `activeStep`, supports horizontal/vertical orientation, and is non-linear
7
- // (any step is clickable via `onStepClick`). Step state is derived from `activeStep` unless a
8
- // step carries an explicit `status` (so a flow that tracks per-step completion — e.g. the
9
- // checkout store's `completed` set — can mark a later step done or an earlier one still todo).
10
- //
11
- // Pure/presentational: no store, no API, no window access. Not observer-wrapped — it binds to
12
- // no mobx field; callers that read observable state (e.g. checkoutStore.activeStep) should wrap
13
- // their own render. Renders correctly only inside a `<div className="md3">` subtree.
14
-
15
- import React from 'react';
16
-
17
- import Icon from './Icon';
18
-
19
- export type StepStatus = 'done' | 'active' | 'todo';
20
-
21
- export interface StepperStep {
22
- /** visible step label. */
23
- label: string;
24
- /** explicit state override; when omitted it's derived from `activeStep` (index < active = done). */
25
- status?: StepStatus;
26
- }
27
-
28
- export interface StepperProps {
29
- /** the steps, in order. */
30
- steps: StepperStep[];
31
- /** index of the current step (0-based). */
32
- activeStep: number;
33
- /** layout direction (default 'horizontal'). */
34
- orientation?: 'horizontal' | 'vertical';
35
- /** non-linear: fired with the clicked step's index. When omitted, steps are not interactive. */
36
- onStepClick?: (index: number) => void;
37
- /** accessible label for the stepper nav (e.g. the flow name). */
38
- ariaLabel?: string;
39
- /** extra class(es) appended after the mstep classes (layout hooks). */
40
- className?: string;
41
- }
42
-
43
- const Stepper: React.FunctionComponent<StepperProps> = ({
44
- steps,
45
- activeStep,
46
- orientation = 'horizontal',
47
- onStepClick,
48
- ariaLabel,
49
- className,
50
- }) => {
51
- // derive state: explicit `status` wins; otherwise index vs activeStep.
52
- const resolve = (step: StepperStep, index: number): StepStatus => {
53
- if (step.status) return step.status;
54
- if (index < activeStep) return 'done';
55
- if (index === activeStep) return 'active';
56
- return 'todo';
57
- };
58
-
59
- const clickable = typeof onStepClick === 'function';
60
-
61
- const wrapCls = ['mstep', `mstep--${orientation}`, clickable && 'mstep--clickable', className]
62
- .filter(Boolean)
63
- .join(' ');
64
-
65
- return (
66
- <nav className={wrapCls} aria-label={ariaLabel}>
67
- <ol className="mstep-list">
68
- {steps.map((step, i) => {
69
- const status = resolve(step, i);
70
- const isLast = i === steps.length - 1;
71
- const itemCls = `mstep-item mstep-item--${status}`;
72
- const dot = status === 'done' ? <Icon name="check" size={16} /> : i + 1;
73
-
74
- // the dot + label are a button when interactive, a plain span otherwise — so a
75
- // non-linear flow gets real focus/keyboard semantics without forcing them on a
76
- // read-only indicator.
77
- const inner = clickable ? (
78
- <button
79
- type="button"
80
- className="mstep-btn"
81
- aria-current={status === 'active' ? 'step' : undefined}
82
- onClick={() => onStepClick && onStepClick(i)}
83
- >
84
- <span className="mstep-dot">{dot}</span>
85
- <span className="mstep-label">{step.label}</span>
86
- </button>
87
- ) : (
88
- <span className="mstep-btn" aria-current={status === 'active' ? 'step' : undefined}>
89
- <span className="mstep-dot">{dot}</span>
90
- <span className="mstep-label">{step.label}</span>
91
- </span>
92
- );
93
-
94
- return (
95
- <li key={`${step.label}_${i}`} className={itemCls}>
96
- {inner}
97
- {!isLast ? <span className="mstep-connector" aria-hidden="true" /> : null}
98
- </li>
99
- );
100
- })}
101
- </ol>
102
- </nav>
103
- );
104
- };
105
-
106
- export default Stepper;
1
+ // Autobahn (auto.de redesign) — md3 step indicator (numbered circles + connectors).
2
+ //
3
+ // A reusable, presentational MD3 stepper for multi-step flows (Checkout, …). Mirrors the
4
+ // visual language of the inline `.co-stepper` in CheckoutChromeNext (30px numbered dots,
5
+ // primary-filled done/active states, 2px connectors) but generalised: it takes a plain
6
+ // `steps` array + `activeStep`, supports horizontal/vertical orientation, and is non-linear
7
+ // (any step is clickable via `onStepClick`). Step state is derived from `activeStep` unless a
8
+ // step carries an explicit `status` (so a flow that tracks per-step completion — e.g. the
9
+ // checkout store's `completed` set — can mark a later step done or an earlier one still todo).
10
+ //
11
+ // Pure/presentational: no store, no API, no window access. Not observer-wrapped — it binds to
12
+ // no mobx field; callers that read observable state (e.g. checkoutStore.activeStep) should wrap
13
+ // their own render. Renders correctly only inside a `<div className="md3">` subtree.
14
+
15
+ import React from 'react';
16
+
17
+ import Icon from './Icon';
18
+
19
+ export type StepStatus = 'done' | 'active' | 'todo';
20
+
21
+ export interface StepperStep {
22
+ /** visible step label. */
23
+ label: string;
24
+ /** explicit state override; when omitted it's derived from `activeStep` (index < active = done). */
25
+ status?: StepStatus;
26
+ }
27
+
28
+ export interface StepperProps {
29
+ /** the steps, in order. */
30
+ steps: StepperStep[];
31
+ /** index of the current step (0-based). */
32
+ activeStep: number;
33
+ /** layout direction (default 'horizontal'). */
34
+ orientation?: 'horizontal' | 'vertical';
35
+ /** non-linear: fired with the clicked step's index. When omitted, steps are not interactive. */
36
+ onStepClick?: (index: number) => void;
37
+ /** accessible label for the stepper nav (e.g. the flow name). */
38
+ ariaLabel?: string;
39
+ /** extra class(es) appended after the mstep classes (layout hooks). */
40
+ className?: string;
41
+ }
42
+
43
+ const Stepper: React.FunctionComponent<StepperProps> = ({
44
+ steps,
45
+ activeStep,
46
+ orientation = 'horizontal',
47
+ onStepClick,
48
+ ariaLabel,
49
+ className,
50
+ }) => {
51
+ // derive state: explicit `status` wins; otherwise index vs activeStep.
52
+ const resolve = (step: StepperStep, index: number): StepStatus => {
53
+ if (step.status) return step.status;
54
+ if (index < activeStep) return 'done';
55
+ if (index === activeStep) return 'active';
56
+ return 'todo';
57
+ };
58
+
59
+ const clickable = typeof onStepClick === 'function';
60
+
61
+ const wrapCls = ['mstep', `mstep--${orientation}`, clickable && 'mstep--clickable', className]
62
+ .filter(Boolean)
63
+ .join(' ');
64
+
65
+ return (
66
+ <nav className={wrapCls} aria-label={ariaLabel}>
67
+ <ol className="mstep-list">
68
+ {steps.map((step, i) => {
69
+ const status = resolve(step, i);
70
+ const isLast = i === steps.length - 1;
71
+ const itemCls = `mstep-item mstep-item--${status}`;
72
+ const dot = status === 'done' ? <Icon name="check" size={16} /> : i + 1;
73
+
74
+ // the dot + label are a button when interactive, a plain span otherwise — so a
75
+ // non-linear flow gets real focus/keyboard semantics without forcing them on a
76
+ // read-only indicator.
77
+ const inner = clickable ? (
78
+ <button
79
+ type="button"
80
+ className="mstep-btn"
81
+ aria-current={status === 'active' ? 'step' : undefined}
82
+ onClick={() => onStepClick && onStepClick(i)}
83
+ >
84
+ <span className="mstep-dot">{dot}</span>
85
+ <span className="mstep-label">{step.label}</span>
86
+ </button>
87
+ ) : (
88
+ <span className="mstep-btn" aria-current={status === 'active' ? 'step' : undefined}>
89
+ <span className="mstep-dot">{dot}</span>
90
+ <span className="mstep-label">{step.label}</span>
91
+ </span>
92
+ );
93
+
94
+ return (
95
+ <li key={`${step.label}_${i}`} className={itemCls}>
96
+ {inner}
97
+ {!isLast ? <span className="mstep-connector" aria-hidden="true" /> : null}
98
+ </li>
99
+ );
100
+ })}
101
+ </ol>
102
+ </nav>
103
+ );
104
+ };
105
+
106
+ export default Stepper;
package/ui/Switch.tsx CHANGED
@@ -1,65 +1,65 @@
1
- // Autobahn (auto.de redesign) — md3 toggle switch.
2
- //
3
- // Drop-in visual replacement for the legacy fe-ui-core `Switch` (used in
4
- // SettingsPage → ProfileTabDataUsage as `<Switch checked={field.checked} onChange={field.onChange} />`,
5
- // bound to DataUsageForm.$('email') / $('research')). It emits the `.mswitch` track+thumb
6
- // markup that already lives in theme/autobahn/md3.css.
7
- //
8
- // BINDING (must match the legacy signature exactly or validation/submit breaks):
9
- // mobx-react-form fields expose `field.checked` (boolean) and `field.onChange`, which is a
10
- // NATIVE change-event handler — it reads `event.target.checked` itself. So when `field` is
11
- // passed we render `<input type="checkbox" checked={field.checked} onChange={field.onChange}>`
12
- // and let the native event flow straight through, unchanged. No wrapping, no boolean coercion.
13
- //
14
- // Two modes:
15
- // - BOUND: pass `field` → reads field.checked, forwards the native event to field.onChange.
16
- // - CONTROLLED: pass `checked` + `onChange` → `onChange` receives the native React change event
17
- // (same shape the field handler gets), so callers can read e.target.checked.
18
- //
19
- // observer-wrapped so the bound mode re-renders when field.checked changes. Pure/presentational
20
- // otherwise. Renders correctly only inside a `<div className="md3">` subtree (scoped theme).
21
-
22
- import * as React from 'react';
23
- import { observer } from 'mobx-react';
24
-
25
- export interface SwitchProps {
26
- /** mobx-react-form field (DataUsageForm.$('email') etc.). Typed any — the lib ships no TS types. */
27
- field?: any;
28
- /** controlled checked state (ignored when `field` is supplied). */
29
- checked?: boolean;
30
- /** native change-event handler. Bound mode forwards the field's own handler; controlled mode gets the React event. */
31
- onChange?: (event: React.ChangeEvent<HTMLInputElement>) => void;
32
- /** optional visible label rendered after the track. */
33
- label?: React.ReactNode;
34
- disabled?: boolean;
35
- id?: string;
36
- /** accessible label when there is no visible `label`. */
37
- ariaLabel?: string;
38
- }
39
-
40
- const Switch: React.FunctionComponent<SwitchProps> = observer(
41
- ({ field, checked, onChange, label, disabled, id, ariaLabel }) => {
42
- // Bound mode reads straight off the field; controlled mode uses the `checked` prop.
43
- const isChecked = field ? !!field.checked : !!checked;
44
- const handleChange = field ? field.onChange : onChange;
45
-
46
- return (
47
- <label className={'mswitch' + (disabled ? ' mswitch--disabled' : '') + (label ? ' mswitch--labeled' : '')}>
48
- <input
49
- id={id}
50
- type="checkbox"
51
- role="switch"
52
- checked={isChecked}
53
- disabled={disabled}
54
- aria-label={ariaLabel}
55
- aria-checked={isChecked}
56
- onChange={handleChange}
57
- />
58
- <span className="mswitch-track"><span className="mswitch-thumb" /></span>
59
- {label ? <span className="mswitch-label">{label}</span> : null}
60
- </label>
61
- );
62
- },
63
- );
64
-
65
- export default Switch;
1
+ // Autobahn (auto.de redesign) — md3 toggle switch.
2
+ //
3
+ // Drop-in visual replacement for the legacy fe-ui-core `Switch` (used in
4
+ // SettingsPage → ProfileTabDataUsage as `<Switch checked={field.checked} onChange={field.onChange} />`,
5
+ // bound to DataUsageForm.$('email') / $('research')). It emits the `.mswitch` track+thumb
6
+ // markup that already lives in theme/autobahn/md3.css.
7
+ //
8
+ // BINDING (must match the legacy signature exactly or validation/submit breaks):
9
+ // mobx-react-form fields expose `field.checked` (boolean) and `field.onChange`, which is a
10
+ // NATIVE change-event handler — it reads `event.target.checked` itself. So when `field` is
11
+ // passed we render `<input type="checkbox" checked={field.checked} onChange={field.onChange}>`
12
+ // and let the native event flow straight through, unchanged. No wrapping, no boolean coercion.
13
+ //
14
+ // Two modes:
15
+ // - BOUND: pass `field` → reads field.checked, forwards the native event to field.onChange.
16
+ // - CONTROLLED: pass `checked` + `onChange` → `onChange` receives the native React change event
17
+ // (same shape the field handler gets), so callers can read e.target.checked.
18
+ //
19
+ // observer-wrapped so the bound mode re-renders when field.checked changes. Pure/presentational
20
+ // otherwise. Renders correctly only inside a `<div className="md3">` subtree (scoped theme).
21
+
22
+ import * as React from 'react';
23
+ import { observer } from 'mobx-react';
24
+
25
+ export interface SwitchProps {
26
+ /** mobx-react-form field (DataUsageForm.$('email') etc.). Typed any — the lib ships no TS types. */
27
+ field?: any;
28
+ /** controlled checked state (ignored when `field` is supplied). */
29
+ checked?: boolean;
30
+ /** native change-event handler. Bound mode forwards the field's own handler; controlled mode gets the React event. */
31
+ onChange?: (event: React.ChangeEvent<HTMLInputElement>) => void;
32
+ /** optional visible label rendered after the track. */
33
+ label?: React.ReactNode;
34
+ disabled?: boolean;
35
+ id?: string;
36
+ /** accessible label when there is no visible `label`. */
37
+ ariaLabel?: string;
38
+ }
39
+
40
+ const Switch: React.FunctionComponent<SwitchProps> = observer(
41
+ ({ field, checked, onChange, label, disabled, id, ariaLabel }) => {
42
+ // Bound mode reads straight off the field; controlled mode uses the `checked` prop.
43
+ const isChecked = field ? !!field.checked : !!checked;
44
+ const handleChange = field ? field.onChange : onChange;
45
+
46
+ return (
47
+ <label className={'mswitch' + (disabled ? ' mswitch--disabled' : '') + (label ? ' mswitch--labeled' : '')}>
48
+ <input
49
+ id={id}
50
+ type="checkbox"
51
+ role="switch"
52
+ checked={isChecked}
53
+ disabled={disabled}
54
+ aria-label={ariaLabel}
55
+ aria-checked={isChecked}
56
+ onChange={handleChange}
57
+ />
58
+ <span className="mswitch-track"><span className="mswitch-thumb" /></span>
59
+ {label ? <span className="mswitch-label">{label}</span> : null}
60
+ </label>
61
+ );
62
+ },
63
+ );
64
+
65
+ export default Switch;