@smg-automotive/components 25.11.0-dgajin-vsst-4352-migrate-carousel.2 → 25.11.0-feat-migrate-color-picker.1

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 (157) hide show
  1. package/dist/cjs/components/carousel/DotsPagination.d.ts +1 -1
  2. package/dist/cjs/components/carousel/DotsPagination.d.ts.map +1 -1
  3. package/dist/cjs/components/carousel/DotsPaginationIndicator.d.ts.map +1 -1
  4. package/dist/cjs/components/carousel/NumbersPaginationButton.d.ts.map +1 -1
  5. package/dist/cjs/components/colorPicker/index.d.ts +9 -0
  6. package/dist/cjs/components/colorPicker/index.d.ts.map +1 -0
  7. package/dist/cjs/components/errorPage/content/index.d.ts +10 -0
  8. package/dist/cjs/components/errorPage/content/index.d.ts.map +1 -0
  9. package/dist/cjs/components/errorPage/index.d.ts +2 -9
  10. package/dist/cjs/components/errorPage/index.d.ts.map +1 -1
  11. package/dist/cjs/components/filterPatterns/ActionButton.d.ts.map +1 -1
  12. package/dist/cjs/components/filterPatterns/Heading.d.ts +2 -9
  13. package/dist/cjs/components/filterPatterns/Heading.d.ts.map +1 -1
  14. package/dist/cjs/components/filterPatterns/HeadingContent.d.ts +10 -0
  15. package/dist/cjs/components/filterPatterns/HeadingContent.d.ts.map +1 -0
  16. package/dist/cjs/components/filterPatterns/dialog/Content.d.ts +4 -0
  17. package/dist/cjs/components/filterPatterns/dialog/Content.d.ts.map +1 -0
  18. package/dist/cjs/components/filterPatterns/dialog/index.d.ts +1 -2
  19. package/dist/cjs/components/filterPatterns/dialog/index.d.ts.map +1 -1
  20. package/dist/cjs/components/filterPatterns/popover/Content.d.ts +4 -0
  21. package/dist/cjs/components/filterPatterns/popover/Content.d.ts.map +1 -0
  22. package/dist/cjs/components/filterPatterns/popover/index.d.ts +1 -2
  23. package/dist/cjs/components/filterPatterns/popover/index.d.ts.map +1 -1
  24. package/dist/cjs/components/galleryHeader/Content.d.ts +10 -0
  25. package/dist/cjs/components/galleryHeader/Content.d.ts.map +1 -0
  26. package/dist/cjs/components/galleryHeader/index.d.ts +3 -9
  27. package/dist/cjs/components/galleryHeader/index.d.ts.map +1 -1
  28. package/dist/cjs/components/index.d.ts +10 -9
  29. package/dist/cjs/components/index.d.ts.map +1 -1
  30. package/dist/cjs/components/link/index.d.ts +3 -2
  31. package/dist/cjs/components/link/index.d.ts.map +1 -1
  32. package/dist/cjs/components/navigation/header/NavigationAvatar.d.ts.map +1 -1
  33. package/dist/cjs/components/navigation/header/drawer/DrawerLoginToggle.d.ts.map +1 -1
  34. package/dist/cjs/components/navigation/header/links/NavigationLink.d.ts.map +1 -1
  35. package/dist/cjs/components/navigation/header/navigationTenantMenu/index.d.ts.map +1 -1
  36. package/dist/cjs/components/skeleton/index.d.ts +1 -1
  37. package/dist/cjs/components/skeleton/index.d.ts.map +1 -1
  38. package/dist/cjs/components/tab/index.d.ts +4 -4
  39. package/dist/cjs/components/tab/index.d.ts.map +1 -1
  40. package/dist/cjs/components/tenantSelection/Overview.d.ts.map +1 -1
  41. package/dist/cjs/components/tenantSelection/select/index.d.ts.map +1 -1
  42. package/dist/cjs/components/text/index.d.ts +1 -1
  43. package/dist/cjs/components/text/index.d.ts.map +1 -1
  44. package/dist/cjs/components/translationProvider/index.d.ts.map +1 -1
  45. package/dist/cjs/components/translationProvider/withTranslationProvider.d.ts +8 -0
  46. package/dist/cjs/components/translationProvider/withTranslationProvider.d.ts.map +1 -0
  47. package/dist/cjs/index.js +1020 -997
  48. package/dist/cjs/index.js.map +1 -1
  49. package/dist/cjs/themes/shared/index.d.ts +1 -1
  50. package/dist/cjs/themes/shared/slotRecipes/carousel.d.ts +1 -1
  51. package/dist/cjs/themes/shared/slotRecipes/carousel.d.ts.map +1 -1
  52. package/dist/cjs/themes/shared/slotRecipes/index.d.ts +1 -1
  53. package/dist/cjs/utilities/i18nInit.d.ts +18 -0
  54. package/dist/cjs/utilities/i18nInit.d.ts.map +1 -0
  55. package/dist/esm/components/carousel/DotsPagination.d.ts +1 -1
  56. package/dist/esm/components/carousel/DotsPagination.d.ts.map +1 -1
  57. package/dist/esm/components/carousel/DotsPagination.js +2 -2
  58. package/dist/esm/components/carousel/DotsPagination.js.map +1 -1
  59. package/dist/esm/components/carousel/DotsPaginationIndicator.d.ts.map +1 -1
  60. package/dist/esm/components/carousel/DotsPaginationIndicator.js +1 -3
  61. package/dist/esm/components/carousel/DotsPaginationIndicator.js.map +1 -1
  62. package/dist/esm/components/carousel/NumbersPaginationButton.d.ts.map +1 -1
  63. package/dist/esm/components/carousel/NumbersPaginationButton.js +1 -3
  64. package/dist/esm/components/carousel/NumbersPaginationButton.js.map +1 -1
  65. package/dist/esm/components/carousel/index.js +2 -2
  66. package/dist/esm/components/carousel/index.js.map +1 -1
  67. package/dist/esm/components/colorPicker/index.d.ts +9 -0
  68. package/dist/esm/components/colorPicker/index.d.ts.map +1 -0
  69. package/dist/esm/components/colorPicker/index.js +14 -0
  70. package/dist/esm/components/colorPicker/index.js.map +1 -0
  71. package/dist/esm/components/errorPage/content/EmailChangeVerification.js +1 -1
  72. package/dist/esm/components/errorPage/content/index.d.ts +10 -0
  73. package/dist/esm/components/errorPage/content/index.d.ts.map +1 -0
  74. package/dist/esm/components/errorPage/content/index.js +283 -0
  75. package/dist/esm/components/errorPage/content/index.js.map +1 -0
  76. package/dist/esm/components/errorPage/index.d.ts +2 -9
  77. package/dist/esm/components/errorPage/index.d.ts.map +1 -1
  78. package/dist/esm/components/errorPage/index.js +5 -283
  79. package/dist/esm/components/errorPage/index.js.map +1 -1
  80. package/dist/esm/components/filterPatterns/ActionButton.d.ts.map +1 -1
  81. package/dist/esm/components/filterPatterns/Heading.d.ts +2 -9
  82. package/dist/esm/components/filterPatterns/Heading.d.ts.map +1 -1
  83. package/dist/esm/components/filterPatterns/HeadingContent.d.ts +10 -0
  84. package/dist/esm/components/filterPatterns/HeadingContent.d.ts.map +1 -0
  85. package/dist/esm/components/filterPatterns/dialog/Content.d.ts +4 -0
  86. package/dist/esm/components/filterPatterns/dialog/Content.d.ts.map +1 -0
  87. package/dist/esm/components/filterPatterns/dialog/index.d.ts +1 -2
  88. package/dist/esm/components/filterPatterns/dialog/index.d.ts.map +1 -1
  89. package/dist/esm/components/filterPatterns/popover/Content.d.ts +4 -0
  90. package/dist/esm/components/filterPatterns/popover/Content.d.ts.map +1 -0
  91. package/dist/esm/components/filterPatterns/popover/index.d.ts +1 -2
  92. package/dist/esm/components/filterPatterns/popover/index.d.ts.map +1 -1
  93. package/dist/esm/components/galleryHeader/Content.d.ts +10 -0
  94. package/dist/esm/components/galleryHeader/Content.d.ts.map +1 -0
  95. package/dist/esm/components/galleryHeader/Content.js +196 -0
  96. package/dist/esm/components/galleryHeader/Content.js.map +1 -0
  97. package/dist/esm/components/galleryHeader/index.d.ts +3 -9
  98. package/dist/esm/components/galleryHeader/index.d.ts.map +1 -1
  99. package/dist/esm/components/galleryHeader/index.js +3 -196
  100. package/dist/esm/components/galleryHeader/index.js.map +1 -1
  101. package/dist/esm/components/index.d.ts +10 -9
  102. package/dist/esm/components/index.d.ts.map +1 -1
  103. package/dist/esm/components/link/index.d.ts +3 -2
  104. package/dist/esm/components/link/index.d.ts.map +1 -1
  105. package/dist/esm/components/link/index.js.map +1 -1
  106. package/dist/esm/components/navigation/footer/Apps.js +1 -1
  107. package/dist/esm/components/navigation/footer/Copyright.js +1 -1
  108. package/dist/esm/components/navigation/footer/Link.js +1 -1
  109. package/dist/esm/components/navigation/footer/Sections.js +1 -1
  110. package/dist/esm/components/navigation/header/ComparisonItem.js +1 -1
  111. package/dist/esm/components/navigation/header/FavoritesItem.js +1 -1
  112. package/dist/esm/components/navigation/header/NavigationAvatar.d.ts.map +1 -1
  113. package/dist/esm/components/navigation/header/NavigationAvatar.js +1 -1
  114. package/dist/esm/components/navigation/header/NavigationItem.js +1 -1
  115. package/dist/esm/components/navigation/header/drawer/DrawerLoginToggle.d.ts.map +1 -1
  116. package/dist/esm/components/navigation/header/drawer/DrawerLoginToggle.js +1 -1
  117. package/dist/esm/components/navigation/header/drawer/DrawerSections.js +1 -1
  118. package/dist/esm/components/navigation/header/drawer/index.js +1 -1
  119. package/dist/esm/components/navigation/header/drawer/index.js.map +1 -1
  120. package/dist/esm/components/navigation/header/links/NavigationLink.d.ts.map +1 -1
  121. package/dist/esm/components/navigation/header/links/NavigationLink.js +1 -1
  122. package/dist/esm/components/navigation/header/links/NavigationLink.js.map +1 -1
  123. package/dist/esm/components/navigation/header/navigationTenantMenu/index.d.ts.map +1 -1
  124. package/dist/esm/components/navigation/header/navigationTenantMenu/index.js +1 -1
  125. package/dist/esm/components/skeleton/index.d.ts +1 -1
  126. package/dist/esm/components/skeleton/index.d.ts.map +1 -1
  127. package/dist/esm/components/tab/index.d.ts +4 -4
  128. package/dist/esm/components/tab/index.d.ts.map +1 -1
  129. package/dist/esm/components/tenantSelection/Overview.d.ts.map +1 -1
  130. package/dist/esm/components/tenantSelection/Overview.js +1 -1
  131. package/dist/esm/components/tenantSelection/Overview.js.map +1 -1
  132. package/dist/esm/components/tenantSelection/select/index.d.ts.map +1 -1
  133. package/dist/esm/components/tenantSelection/select/index.js +1 -1
  134. package/dist/esm/components/tenantSelection/select/index.js.map +1 -1
  135. package/dist/esm/components/text/index.d.ts +1 -1
  136. package/dist/esm/components/text/index.d.ts.map +1 -1
  137. package/dist/esm/components/translationProvider/index.d.ts.map +1 -1
  138. package/dist/esm/components/translationProvider/index.js +2 -1
  139. package/dist/esm/components/translationProvider/index.js.map +1 -1
  140. package/dist/esm/components/translationProvider/withTranslationProvider.d.ts +8 -0
  141. package/dist/esm/components/translationProvider/withTranslationProvider.d.ts.map +1 -0
  142. package/dist/esm/components/translationProvider/withTranslationProvider.js +16 -0
  143. package/dist/esm/components/translationProvider/withTranslationProvider.js.map +1 -0
  144. package/dist/esm/index.js +10 -9
  145. package/dist/esm/index.js.map +1 -1
  146. package/dist/esm/themes/shared/index.d.ts +1 -1
  147. package/dist/esm/themes/shared/slotRecipes/carousel.d.ts +1 -1
  148. package/dist/esm/themes/shared/slotRecipes/carousel.d.ts.map +1 -1
  149. package/dist/esm/themes/shared/slotRecipes/carousel.js +22 -18
  150. package/dist/esm/themes/shared/slotRecipes/carousel.js.map +1 -1
  151. package/dist/esm/themes/shared/slotRecipes/index.d.ts +1 -1
  152. package/dist/esm/utilities/i18nInit.d.ts +18 -0
  153. package/dist/esm/utilities/i18nInit.d.ts.map +1 -0
  154. package/dist/esm/utilities/i18nInit.js +7 -0
  155. package/dist/esm/utilities/i18nInit.js.map +1 -0
  156. package/dist/index.d.ts +262 -201
  157. package/package.json +12 -12
package/dist/cjs/index.js CHANGED
@@ -4,10 +4,10 @@ var react$1 = require('@chakra-ui/react');
4
4
  var react = require('@emotion/react');
5
5
  var useDebounce = require('use-debounce');
6
6
  var React = require('react');
7
+ var useEmblaCarousel = require('embla-carousel-react');
7
8
  var i18nPkg = require('@smg-automotive/i18n-pkg');
8
9
  var Fuse = require('fuse.js');
9
10
  var auth$4 = require('@smg-automotive/auth');
10
- var useEmblaCarousel = require('embla-carousel-react');
11
11
 
12
12
  var zIndex = react$1.defineTokens.zIndex({
13
13
  hide: { value: -1 },
@@ -2535,9 +2535,7 @@ var slots = [
2535
2535
  'paginationIconContainer',
2536
2536
  'dotsPaginationContainer',
2537
2537
  'dotsPaginationIndicator',
2538
- 'dotsPaginationIndicatorActive',
2539
2538
  'numbersPaginationButton',
2540
- 'numbersPaginationButtonActive',
2541
2539
  ];
2542
2540
  var baseContainer = react$1.defineStyle({
2543
2541
  height: 'full',
@@ -2608,10 +2606,14 @@ var numbersPaginationButton = react$1.defineStyle({
2608
2606
  _hover: {
2609
2607
  backgroundColor: 'gray.100',
2610
2608
  },
2611
- });
2612
- var numbersPaginationButtonActive = react$1.defineStyle(__assign(__assign({}, numbersPaginationButton), { color: 'white', backgroundColor: 'gray.900', _hover: {
2609
+ '&[aria-current="true"]': {
2610
+ color: 'white',
2613
2611
  backgroundColor: 'gray.900',
2614
- } }));
2612
+ _hover: {
2613
+ backgroundColor: 'gray.900',
2614
+ },
2615
+ },
2616
+ });
2615
2617
  var dotsPaginationIndicator = react$1.defineStyle({
2616
2618
  backgroundColor: 'transparent',
2617
2619
  touchAction: 'pan-x',
@@ -2639,23 +2641,28 @@ var dotsPaginationIndicator = react$1.defineStyle({
2639
2641
  height: 'var(--carousel-dot-size)',
2640
2642
  content: '""',
2641
2643
  },
2642
- });
2643
- var dotsPaginationIndicatorActive = react$1.defineStyle(__assign(__assign({}, dotsPaginationIndicator), { width: 'var(--carousel-dot-size-active)', height: 'var(--carousel-dot-size-active)', _last: {
2644
+ '&[aria-current="true"]': {
2644
2645
  width: 'var(--carousel-dot-size-active)',
2645
2646
  height: 'var(--carousel-dot-size-active)',
2647
+ _last: {
2648
+ width: 'var(--carousel-dot-size-active)',
2649
+ height: 'var(--carousel-dot-size-active)',
2650
+ _after: {
2651
+ width: 'full',
2652
+ height: 'var(--carousel-dot-size-active)',
2653
+ content: '""',
2654
+ },
2655
+ },
2646
2656
  _after: {
2657
+ backgroundColor: 'white',
2658
+ borderRadius: 'full',
2659
+ opacity: '100',
2647
2660
  width: 'full',
2648
2661
  height: 'var(--carousel-dot-size-active)',
2649
2662
  content: '""',
2650
2663
  },
2651
- }, _after: {
2652
- backgroundColor: 'white',
2653
- borderRadius: 'full',
2654
- opacity: '100',
2655
- width: 'full',
2656
- height: 'var(--carousel-dot-size-active)',
2657
- content: '""',
2658
- } }));
2664
+ },
2665
+ });
2659
2666
  var fullScreenVariant = {
2660
2667
  container: react$1.defineStyle({
2661
2668
  backgroundColor: 'black',
@@ -2727,7 +2734,6 @@ var carouselRecipe = react$1.defineSlotRecipe({
2727
2734
  button: baseButton,
2728
2735
  icon: baseIcon,
2729
2736
  numbersPaginationButton: numbersPaginationButton,
2730
- numbersPaginationButtonActive: numbersPaginationButtonActive,
2731
2737
  dotsPaginationContainer: react$1.defineStyle({
2732
2738
  position: 'absolute',
2733
2739
  width: 'full',
@@ -2737,7 +2743,6 @@ var carouselRecipe = react$1.defineSlotRecipe({
2737
2743
  alignItems: 'center',
2738
2744
  }),
2739
2745
  dotsPaginationIndicator: dotsPaginationIndicator,
2740
- dotsPaginationIndicatorActive: dotsPaginationIndicatorActive,
2741
2746
  },
2742
2747
  variants: {
2743
2748
  variant: {
@@ -5942,143 +5947,441 @@ var Card = {
5942
5947
  Footer: Footer$2,
5943
5948
  };
5944
5949
 
5945
- var Center = function (_a) {
5946
- var children = _a.children, padding = _a.padding;
5947
- return (React.createElement(react$1.Center, { padding: padding }, children));
5950
+ var Flex = function (_a) {
5951
+ var children = _a.children, rest = __rest(_a, ["children"]);
5952
+ return (React.createElement(react$1.Flex, __assign({}, rest), children));
5948
5953
  };
5949
5954
 
5950
- var Checkbox = React.forwardRef(function (_a, ref) {
5951
- var _b = _a.disabled, disabled = _b === void 0 ? false : _b, _c = _a.checked, checked = _c === void 0 ? false : _c, _d = _a.indeterminate, indeterminate = _d === void 0 ? false : _d, _e = _a.readOnly, readOnly = _e === void 0 ? false : _e, _f = _a.fullWidth, fullWidth = _f === void 0 ? false : _f, label = _a.label, _g = _a.fontWeight, fontWeight = _g === void 0 ? 'regular' : _g, _h = _a.variant, variant = _h === void 0 ? 'alignCenter' : _h, onChange = _a.onChange, props = __rest(_a, ["disabled", "checked", "indeterminate", "readOnly", "fullWidth", "label", "fontWeight", "variant", "onChange"]);
5952
- var recipe = react$1.useSlotRecipe({ key: 'checkbox' });
5953
- var combinedProps = __assign(__assign({}, props), { variant: variant });
5954
- var recipeProps = recipe.splitVariantProps(combinedProps)[0];
5955
- var styles = recipe(recipeProps);
5956
- return (React.createElement(react$1.Checkbox.Root, __assign({}, props, { disabled: disabled, checked: indeterminate ? 'indeterminate' : checked, readOnly: readOnly, width: fullWidth ? 'full' : undefined, onCheckedChange: onChange, css: styles.root }),
5957
- React.createElement(react$1.Checkbox.HiddenInput, { ref: ref }),
5958
- React.createElement(react$1.Checkbox.Control, { css: styles.control }),
5959
- label && (React.createElement(react$1.Checkbox.Label, { css: __assign(__assign({}, styles.label), { fontWeight: fontWeight }) }, label))));
5960
- });
5961
-
5962
- var Separator = react$1.Separator;
5963
- Separator.displayName = 'Separator';
5964
-
5965
- var CheckboxGroup = function (_a) {
5966
- var name = _a.name, label = _a.label, value = _a.value, onChange = _a.onChange, checked = _a.checked, disabled = _a.disabled, invalid = _a.invalid, indeterminate = _a.indeterminate, addDividerAfterIndex = _a.addDividerAfterIndex, _b = _a.variant, variant = _b === void 0 ? 'alignCenter' : _b, checkboxes = _a.checkboxes;
5967
- return (React.createElement(Stack, { gap: "md" },
5968
- React.createElement(Checkbox, { name: name, label: label, value: value, onChange: onChange, checked: checked, disabled: disabled, invalid: invalid, indeterminate: indeterminate, variant: variant, fontWeight: "bold" }), checkboxes === null || checkboxes === void 0 ? void 0 :
5969
- checkboxes.map(function (item, index) { return (React.createElement(React.Fragment, { key: item.name },
5970
- React.createElement(react$1.Box, { ps: "md", asChild: true },
5971
- React.createElement(Checkbox, { name: item.name, label: item.label, value: item.value, onChange: item.onChange, checked: item.checked, variant: variant, disabled: disabled })),
5972
- (addDividerAfterIndex === null || addDividerAfterIndex === void 0 ? void 0 : addDividerAfterIndex.includes(index)) ? (React.createElement(Separator, { orientation: "horizontal" })) : null)); })));
5955
+ var icons = {
5956
+ previous: React.createElement(ChevronLeftSmallIcon, null),
5957
+ next: React.createElement(ChevronRightSmallIcon, null),
5973
5958
  };
5974
- CheckboxGroup.displayName = 'CheckboxGroup';
5975
-
5976
- var Count = function (_a) {
5977
- var count = _a.count, ariaLabel = _a.ariaLabel, props = __rest(_a, ["count", "ariaLabel"]);
5978
- var recipe = react$1.useRecipe({ key: 'count' });
5979
- var recipeProps = recipe.splitVariantProps(props)[0];
5980
- var styles = recipe(recipeProps);
5981
- return (React.createElement(react$1.chakra.span, { css: styles, "aria-label": ariaLabel }, count));
5959
+ var ThumbnailNavigationButton = function (_a) {
5960
+ var direction = _a.direction, onClick = _a.onClick;
5961
+ var recipe = react$1.useSlotRecipe({ key: 'carousel' });
5962
+ var styles = recipe({ variant: 'fullScreen' });
5963
+ var side = direction === 'previous' ? { left: '0' } : { right: '0' };
5964
+ return (React.createElement(react$1.chakra.button, { onClick: onClick, "aria-label": "scroll to ".concat(direction, " thumbnail group"), "aria-controls": "thumbnails-wrapper", css: __assign(__assign({}, styles.paginationButton), side) },
5965
+ React.createElement(Flex, { css: styles.paginationIconContainer }, icons[direction])));
5982
5966
  };
5983
5967
 
5984
- var DatePicker = React.forwardRef(function (_a, ref) {
5985
- var min = _a.min, props = __rest(_a, ["min"]);
5986
- var recipe = react$1.useSlotRecipe({ key: 'input' });
5987
- var recipeProps = recipe.splitVariantProps(props)[0];
5988
- var styles = recipe(recipeProps);
5989
- return (React.createElement(react$1.Field.Root, { invalid: props.invalid },
5990
- React.createElement(react$1.Input, __assign({}, props, { css: __assign(__assign({}, styles.field), { display: 'block', textAlign: 'start' }), type: "date", min: min ? min.toISOString().split('T')[0] : undefined, ref: ref }))));
5991
- });
5992
- DatePicker.displayName = 'DatePicker';
5993
-
5994
- var Brand;
5995
- (function (Brand) {
5996
- Brand["AutoScout24"] = "autoscout24";
5997
- Brand["MotoScout24"] = "motoscout24";
5998
- })(Brand || (Brand = {}));
5999
-
6000
- var Switch = function (_a) {
6001
- _a.id; var disabled = _a.disabled, onCheckedChange = _a.onCheckedChange, checked = _a.checked, label = _a.label, props = __rest(_a, ["id", "disabled", "onCheckedChange", "checked", "label"]);
6002
- var recipe = react$1.useSlotRecipe({ key: 'switch' });
6003
- var recipeProps = recipe.splitVariantProps(props)[0];
6004
- var styles = recipe(recipeProps);
6005
- return (React.createElement(react$1.Switch.Root, { onCheckedChange: onCheckedChange, checked: checked, disabled: disabled, css: styles.root },
6006
- React.createElement(react$1.Switch.HiddenInput, null),
6007
- React.createElement(react$1.Switch.Control, { css: styles.control },
6008
- React.createElement(react$1.Switch.Thumb, { css: styles.thumb })),
6009
- label ? (React.createElement(react$1.Switch.Label, { css: styles.label }, label)) : null));
5968
+ var Thumbnail = function (_a) {
5969
+ var onClick = _a.onClick, isCurrent = _a.isCurrent, thumbnailIndex = _a.thumbnailIndex, totalThumbnails = _a.totalThumbnails, children = _a.children;
5970
+ return (React.createElement(AspectRatio, { ratio: 4 / 3, onClick: onClick, width: "3xl", flexShrink: "0", cursor: "pointer", mr: "xs", border: "4px", borderColor: isCurrent ? 'blue.400' : 'transparent', "aria-current": isCurrent, "aria-label": "thumbnail ".concat(thumbnailIndex + 1, " of ").concat(totalThumbnails) }, children));
6010
5971
  };
6011
5972
 
6012
- var DevOverlay = function (_a) {
6013
- var variables = _a.variables, hideDevOverlay = _a.hideDevOverlay, toggleTheme = _a.toggleTheme, toggleTranslation = _a.toggleTranslation, activeTheme = _a.activeTheme, _b = _a.displayTranslationKeys, displayTranslationKeys = _b === void 0 ? false : _b;
6014
- var isThemeSwitcherChecked = Brand.AutoScout24 !== activeTheme;
6015
- return (React.createElement(react$1.Box, { position: "absolute", right: "md", bottom: "md", borderRadius: "sm", padding: "md", backgroundColor: "gray.200", display: "inline-block", boxShadow: "md", as: "aside", css: { maxWidth: 'min(94%, 320px)' } },
6016
- React.createElement(react$1.Flex, null,
6017
- React.createElement(react$1.Heading, { as: "h3", textStyle: "heading3" }, "Dev Overlay\u00A0"),
6018
- React.createElement(react$1.Spacer, null),
6019
- React.createElement(Button, { onClick: hideDevOverlay, "data-testid": "close-dev-overlay" },
6020
- React.createElement(CloseIcon, null))),
6021
- React.createElement(react$1.Heading, { as: "h4", textStyle: "heading4" }, "Variables"),
6022
- !variables || variables.length === 0 ? null : (React.createElement(react$1.Table.Root, null,
6023
- React.createElement(react$1.Table.Body, null,
6024
- React.createElement(react$1.Table.Row, null,
6025
- React.createElement(react$1.Table.ColumnHeader, { padding: "0" }, "Name"),
6026
- React.createElement(react$1.Table.ColumnHeader, null, "Value"))),
6027
- React.createElement(react$1.Table.Body, null, variables.map(function (_a) {
6028
- var name = _a.name, value = _a.value;
6029
- return (React.createElement(react$1.Table.Row, { key: name, wordBreak: "break-all" },
6030
- React.createElement(react$1.Table.Cell, { padding: "0" }, name),
6031
- React.createElement(react$1.Table.Cell, null, value)));
6032
- })))),
6033
- React.createElement("br", null),
6034
- React.createElement(react$1.Heading, { as: "h4", textStyle: "heading4" }, "Switch Theme"),
6035
- React.createElement(Switch, { id: "theme-toggle", onCheckedChange: toggleTheme, checked: isThemeSwitcherChecked, label: isThemeSwitcherChecked ? React.createElement("span", null, "\uD83C\uDFCD\uFE0F") : React.createElement("span", null, "\uD83D\uDE97"), disabled: false }),
6036
- React.createElement(react$1.Heading, { as: "h4", textStyle: "heading4" }, "Switch Translation"),
6037
- React.createElement(Switch, { id: "translation-toggle", onCheckedChange: toggleTranslation, checked: displayTranslationKeys, label: displayTranslationKeys ? React.createElement("span", null, "\uD83D\uDD11") : React.createElement("span", null, "\uD83C\uDF10"), disabled: false })));
5973
+ var ThumbnailPagination = function (_a) {
5974
+ var currentSlideIndex = _a.currentSlideIndex, thumbnails = _a.thumbnails, mainCarousel = _a.mainCarousel, paginationCarouselRef = _a.paginationCarouselRef, paginationCarousel = _a.paginationCarousel;
5975
+ var _b = React.useState({ previous: false, next: true }), paginationButtonVisibility = _b[0], setPaginationButtonVisibility = _b[1];
5976
+ var recipe = react$1.useSlotRecipe({ key: 'carousel' });
5977
+ var styles = recipe({ variant: 'fullScreen' });
5978
+ var scrollPrev = React.useCallback(function () { return paginationCarousel && paginationCarousel.scrollPrev(true); }, [paginationCarousel]);
5979
+ var scrollNext = React.useCallback(function () { return paginationCarousel && paginationCarousel.scrollNext(true); }, [paginationCarousel]);
5980
+ var onThumbnailClick = React.useCallback(function (index) {
5981
+ if (!mainCarousel || !paginationCarousel)
5982
+ return;
5983
+ mainCarousel.scrollTo(index, true);
5984
+ }, [mainCarousel, paginationCarousel]);
5985
+ var evalPaginationButtonVisibility = React.useCallback(function () {
5986
+ if (!paginationCarousel ||
5987
+ paginationCarousel.slidesNotInView().length === 0) {
5988
+ setPaginationButtonVisibility({ previous: false, next: false });
5989
+ return;
5990
+ }
5991
+ var progress = Math.max(0, Math.min(1, paginationCarousel.scrollProgress()));
5992
+ var slideWidth = 1 / thumbnails.length;
5993
+ setPaginationButtonVisibility({
5994
+ previous: progress > slideWidth,
5995
+ next: progress < 1 - slideWidth,
5996
+ });
5997
+ }, [paginationCarousel, thumbnails.length]);
5998
+ React.useEffect(function () {
5999
+ if (!paginationCarousel)
6000
+ return;
6001
+ evalPaginationButtonVisibility();
6002
+ paginationCarousel.on('scroll', evalPaginationButtonVisibility);
6003
+ paginationCarousel.on('slidesInView', evalPaginationButtonVisibility);
6004
+ }, [paginationCarousel, evalPaginationButtonVisibility]);
6005
+ return (React.createElement(react$1.Box, { ref: paginationCarouselRef, css: styles.pagination, "aria-label": "Pagination" },
6006
+ React.createElement(Flex, { alignItems: "center", height: "full", id: "thumbnail-wrapper" }, thumbnails.map(function (slide, index) { return (React.createElement(Thumbnail, { key: "slide-".concat(index), onClick: function () { return onThumbnailClick(index); }, isCurrent: index === currentSlideIndex, thumbnailIndex: index, totalThumbnails: thumbnails.length }, paginationCarouselRef ? (slide) : (React.createElement(react$1.Box, { h: "full", w: "full", backgroundColor: "gray.50" })))); })),
6007
+ paginationButtonVisibility.previous ? (React.createElement(ThumbnailNavigationButton, { onClick: scrollPrev, direction: "previous" })) : null,
6008
+ paginationButtonVisibility.next ? (React.createElement(ThumbnailNavigationButton, { onClick: scrollNext, direction: "next" })) : null));
6038
6009
  };
6039
6010
 
6040
- var H1 = function (_a) {
6041
- var _b = _a.textStyle, textStyle = _b === void 0 ? 'heading1' : _b, children = _a.children, rest = __rest(_a, ["textStyle", "children"]);
6042
- return (React.createElement(react$1.Heading, __assign({ as: "h1", textStyle: textStyle }, rest), children));
6043
- };
6044
- var H2 = function (_a) {
6045
- var _b = _a.textStyle, textStyle = _b === void 0 ? 'heading2' : _b, children = _a.children, rest = __rest(_a, ["textStyle", "children"]);
6046
- return (React.createElement(react$1.Heading, __assign({ as: "h2", textStyle: textStyle }, rest), children));
6011
+ var Slide = function (_a) {
6012
+ var onClick = _a.onClick, slideIndex = _a.slideIndex, totalSlides = _a.totalSlides, isCurrent = _a.isCurrent, children = _a.children, fullScreen = _a.fullScreen, slidesPerView = _a.slidesPerView;
6013
+ var recipe = react$1.useSlotRecipe({ key: 'carousel' });
6014
+ var styles = recipe(fullScreen ? { variant: 'fullScreen' } : {});
6015
+ var flexBasisTokenOrVar = slidesPerView === 1 ? 'full' : 'var(--carousel-slide-basis)';
6016
+ var basisVarResponsive = slidesPerView === 1
6017
+ ? undefined
6018
+ : (function () {
6019
+ var map = slidesPerView;
6020
+ var result = {};
6021
+ Object.keys(map).forEach(function (bp) {
6022
+ var value = map[bp];
6023
+ if (typeof value === 'number') {
6024
+ result[bp] = "calc(100% / ".concat(value, ")");
6025
+ }
6026
+ });
6027
+ return result;
6028
+ })();
6029
+ return (React.createElement(react$1.Box, { css: __assign(__assign({}, styles.slide), (basisVarResponsive
6030
+ ? { '--carousel-slide-basis': basisVarResponsive }
6031
+ : {})), flexBasis: flexBasisTokenOrVar, paddingLeft: slidesPerView === 1 ? '0' : { base: 'md', md: '2xl' }, onClick: onClick, "aria-roledescription": "slide", "aria-label": "".concat(slideIndex + 1, " of ").concat(totalSlides), "aria-current": isCurrent }, children));
6047
6032
  };
6048
- var H3 = function (_a) {
6049
- var _b = _a.textStyle, textStyle = _b === void 0 ? 'heading3' : _b, children = _a.children, rest = __rest(_a, ["textStyle", "children"]);
6050
- return (React.createElement(react$1.Heading, __assign({ as: "h3", textStyle: textStyle }, rest), children));
6033
+
6034
+ var NumbersPaginationButton = function (_a) {
6035
+ var onClick = _a.onClick, isCurrent = _a.isCurrent, currentPageNumber = _a.currentPageNumber, totalNumbers = _a.totalNumbers;
6036
+ var recipe = react$1.useSlotRecipe({ key: 'carousel' });
6037
+ var styles = recipe();
6038
+ return (React.createElement(react$1.chakra.button, { css: styles.numbersPaginationButton, onClick: onClick, "aria-current": isCurrent, "aria-label": "numbers pagination ".concat(currentPageNumber, " of ").concat(totalNumbers) }, currentPageNumber));
6051
6039
  };
6052
- var H4 = function (_a) {
6053
- var _b = _a.textStyle, textStyle = _b === void 0 ? 'heading4' : _b, children = _a.children, rest = __rest(_a, ["textStyle", "children"]);
6054
- return (React.createElement(react$1.Heading, __assign({ as: "h4", textStyle: textStyle }, rest), children));
6040
+
6041
+ var NumbersPagination = function (_a) {
6042
+ var currentSlideIndex = _a.currentSlideIndex, numberOfSlides = _a.numberOfSlides, mainCarousel = _a.mainCarousel;
6043
+ var onClick = React.useCallback(function (index) {
6044
+ if (mainCarousel) {
6045
+ mainCarousel.scrollTo(index);
6046
+ }
6047
+ }, [mainCarousel]);
6048
+ var pagination = Array.from({ length: numberOfSlides }, function (_, i) { return i; });
6049
+ return (React.createElement(react$1.Box, { "aria-label": "Numbers Pagination" },
6050
+ React.createElement(Flex, { flexDirection: "row", alignItems: "center", justifyContent: "center" }, pagination.map(function (index) { return (React.createElement(NumbersPaginationButton, { key: "slide-".concat(index), isCurrent: index === currentSlideIndex, currentPageNumber: index + 1, totalNumbers: numberOfSlides, onClick: function () { return onClick(index); } })); }))));
6055
6051
  };
6056
- var H5 = function (_a) {
6057
- var _b = _a.textStyle, textStyle = _b === void 0 ? 'heading5' : _b, children = _a.children, rest = __rest(_a, ["textStyle", "children"]);
6058
- return (React.createElement(react$1.Heading, __assign({ as: "h5", textStyle: textStyle }, rest), children));
6052
+
6053
+ var NavigationButton = function (_a) {
6054
+ var direction = _a.direction, onClick = _a.onClick, fullScreen = _a.fullScreen, _b = _a.isHovered, isHovered = _b === void 0 ? false : _b;
6055
+ var recipe = react$1.useSlotRecipe({ key: 'carousel' });
6056
+ var styles = recipe(fullScreen ? { variant: 'fullScreen' } : {});
6057
+ var side = direction === 'previous' ? { left: '0' } : { right: '0' };
6058
+ var icons = {
6059
+ previous: React.createElement(ChevronLeftLargeIcon, { boxSize: undefined, css: styles.icon }),
6060
+ next: React.createElement(ChevronRightLargeIcon, { boxSize: undefined, css: styles.icon }),
6061
+ };
6062
+ return (React.createElement(react$1.chakra.button, { onClick: onClick, "aria-label": "".concat(direction, " slide"), css: __assign(__assign(__assign({}, styles.buttonContainer), (isHovered ? { visibility: 'visible', pointerEvents: 'auto' } : {})), side) },
6063
+ React.createElement(Flex, { css: styles.button }, icons[direction])));
6059
6064
  };
6060
- var H6 = function (_a) {
6061
- var _b = _a.textStyle, textStyle = _b === void 0 ? 'heading6' : _b, children = _a.children, rest = __rest(_a, ["textStyle", "children"]);
6062
- return (React.createElement(react$1.Heading, __assign({ as: "h6", textStyle: textStyle }, rest), children));
6065
+
6066
+ var DotsPaginationIndicator = function (_a) {
6067
+ var isCurrent = _a.isCurrent;
6068
+ var recipe = react$1.useSlotRecipe({ key: 'carousel' });
6069
+ var styles = recipe();
6070
+ return (React.createElement(react$1.chakra.span, { "aria-current": isCurrent, css: styles.dotsPaginationIndicator }));
6063
6071
  };
6064
6072
 
6065
- var DialogCloseButton = React.forwardRef(function (props, ref) { return (React.createElement(react$1.CloseButton, __assign({ ref: ref, cursor: 'pointer' }, props))); });
6073
+ var DotsPagination = function (_a) {
6074
+ var currentSlideIndex = _a.currentSlideIndex, numberOfSlides = _a.numberOfSlides;
6075
+ var pagination = Array.from({ length: numberOfSlides }, function (_, i) { return i; });
6076
+ var recipe = react$1.useSlotRecipe({ key: 'carousel' });
6077
+ var styles = recipe();
6078
+ return (React.createElement(react$1.Box, { "aria-label": "Dots Pagination", css: styles.dotsPaginationContainer },
6079
+ React.createElement(Flex, { flexDirection: "row", alignItems: "center", justifyContent: "center" }, pagination.map(function (index) { return (React.createElement(DotsPaginationIndicator, { key: "slide-".concat(index), isCurrent: index === currentSlideIndex })); }))));
6080
+ };
6066
6081
 
6067
- var Dialog = function (_a) {
6068
- var title = _a.title, open = _a.open, onOpenChange = _a.onOpenChange, primaryActionButton = _a.primaryActionButton, secondaryActionButton = _a.secondaryActionButton, children = _a.children, size = _a.size, _b = _a.motionPreset, motionPreset = _b === void 0 ? 'scale' : _b, variant = _a.variant, overlayColor = _a.overlayColor, _c = _a.disableBodyPadding, disableBodyPadding = _c === void 0 ? false : _c, props = __rest(_a, ["title", "open", "onOpenChange", "primaryActionButton", "secondaryActionButton", "children", "size", "motionPreset", "variant", "overlayColor", "disableBodyPadding"]);
6069
- var dialogSize = size || variant !== 'fullScreen' ? { xs: 'full', sm: size } : 'full';
6070
- var bothActionButtons = primaryActionButton && secondaryActionButton;
6071
- var recipe = react$1.useSlotRecipe({ key: 'dialog' });
6072
- var recipeProps = recipe.splitVariantProps({
6073
- size: dialogSize,
6074
- motionPreset: motionPreset,
6075
- variant: variant,
6076
- overlayColor: overlayColor,
6077
- })[0];
6078
- var styles = recipe(recipeProps);
6079
- return (React.createElement(react$1.Dialog.Root, __assign({ open: open, onOpenChange: onOpenChange }, props),
6080
- React.createElement(react$1.Portal, null,
6081
- React.createElement(react$1.Dialog.Backdrop, { css: styles.backdrop }),
6082
+ exports.PaginationType = void 0;
6083
+ (function (PaginationType) {
6084
+ PaginationType["Thumbnail"] = "thumbnail";
6085
+ PaginationType["Number"] = "number";
6086
+ PaginationType["None"] = "none";
6087
+ PaginationType["Dot"] = "dot";
6088
+ })(exports.PaginationType || (exports.PaginationType = {}));
6089
+ var isFullScreenSlide = function (value) {
6090
+ return typeof value === 'object' && value !== null && 'slide' in value;
6091
+ };
6092
+ // eslint-disable-next-line sonarjs/cognitive-complexity
6093
+ var Carousel = function (props) {
6094
+ var _a;
6095
+ var _b;
6096
+ var _c = props.startIndex, startIndex = _c === void 0 ? 0 : _c, onSlideClick = props.onSlideClick, onSlideSelect = props.onSlideSelect, fullScreen = props.fullScreen, _d = props.paginationType, paginationType = _d === void 0 ? exports.PaginationType.None : _d, _e = props.slidesPerView, slidesPerView = _e === void 0 ? 1 : _e, _f = props.loop, loop = _f === void 0 ? true : _f, _g = props.slidesToScroll, slidesToScroll = _g === void 0 ? 1 : _g;
6097
+ var _h = React.useState(loop), canScrollPrevious = _h[0], setCanScrollPrevious = _h[1];
6098
+ var _j = React.useState(loop), canScrollNext = _j[0], setCanScrollNext = _j[1];
6099
+ var _k = React.useState(startIndex), selectedIndex = _k[0], setSelectedIndex = _k[1];
6100
+ var isSmallLandscapeViewport = react$1.useMediaQuery(["(max-height: ".concat(breakpoints.sm.px, "px) and (orientation: landscape)")], {
6101
+ ssr: true,
6102
+ fallback: [false],
6103
+ })[0];
6104
+ var recipe = react$1.useSlotRecipe({ key: 'carousel' });
6105
+ var styles = recipe(fullScreen ? { variant: 'fullScreen' } : {});
6106
+ var _l = useEmblaCarousel({
6107
+ loop: loop,
6108
+ startIndex: startIndex,
6109
+ duration: 20,
6110
+ align: 'start',
6111
+ slidesToScroll: slidesToScroll,
6112
+ }), mainCarouselRef = _l[0], mainCarousel = _l[1];
6113
+ var _m = useEmblaCarousel({
6114
+ containScroll: 'keepSnaps',
6115
+ dragFree: true,
6116
+ slidesToScroll: 'auto',
6117
+ inViewThreshold: 1,
6118
+ duration: 20,
6119
+ }), paginationCarouselRef = _m[0], paginationCarousel = _m[1];
6120
+ var scrollPrev = React.useCallback(function () { return mainCarousel && mainCarousel.scrollPrev(true); }, [mainCarousel]);
6121
+ var scrollNext = React.useCallback(function () { return mainCarousel && mainCarousel.scrollNext(true); }, [mainCarousel]);
6122
+ var onClick = React.useCallback(function (index) {
6123
+ if (onSlideClick) {
6124
+ onSlideClick(index);
6125
+ }
6126
+ }, [onSlideClick]);
6127
+ var numberOfSlides = props.children.length;
6128
+ var hasThumbnailPagination = fullScreen && !isSmallLandscapeViewport;
6129
+ var onSelect = React.useCallback(function () {
6130
+ var _a, _b;
6131
+ if (!mainCarousel)
6132
+ return;
6133
+ var newIndex = mainCarousel.selectedScrollSnap();
6134
+ var previousIndex = mainCarousel.previousScrollSnap();
6135
+ setSelectedIndex(newIndex);
6136
+ setCanScrollPrevious(mainCarousel.canScrollPrev());
6137
+ setCanScrollNext(mainCarousel.canScrollNext());
6138
+ if (paginationCarousel && hasThumbnailPagination) {
6139
+ var slideRegistry = paginationCarousel.internalEngine().slideRegistry;
6140
+ var snapIndexThatSlideBelongsTo = slideRegistry.findIndex(function (group) {
6141
+ return group.includes(newIndex);
6142
+ });
6143
+ if (typeof snapIndexThatSlideBelongsTo !== 'undefined') {
6144
+ paginationCarousel.scrollTo(snapIndexThatSlideBelongsTo);
6145
+ }
6146
+ }
6147
+ if (onSlideSelect) {
6148
+ onSlideSelect(newIndex);
6149
+ }
6150
+ if (!props.fullScreen) {
6151
+ return;
6152
+ }
6153
+ var fullScreenChildren = props.children;
6154
+ if (newIndex !== undefined) {
6155
+ var currentSlide = fullScreenChildren[newIndex];
6156
+ (_a = currentSlide === null || currentSlide === void 0 ? void 0 : currentSlide.onSlideEnter) === null || _a === void 0 ? void 0 : _a.call(currentSlide);
6157
+ }
6158
+ if (previousIndex !== undefined && previousIndex !== newIndex) {
6159
+ var previousSlide = fullScreenChildren[previousIndex];
6160
+ (_b = previousSlide === null || previousSlide === void 0 ? void 0 : previousSlide.onSlideLeave) === null || _b === void 0 ? void 0 : _b.call(previousSlide);
6161
+ }
6162
+ }, [
6163
+ mainCarousel,
6164
+ paginationCarousel,
6165
+ onSlideSelect,
6166
+ hasThumbnailPagination,
6167
+ props.children,
6168
+ props.fullScreen,
6169
+ ]);
6170
+ React.useEffect(function () {
6171
+ if (!mainCarousel)
6172
+ return;
6173
+ onSelect();
6174
+ mainCarousel.on('select', onSelect);
6175
+ }, [mainCarousel, onSelect]);
6176
+ React.useEffect(function () {
6177
+ var keydownListener = function (e) {
6178
+ if (fullScreen) {
6179
+ switch (e.code) {
6180
+ case 'ArrowRight':
6181
+ scrollNext();
6182
+ break;
6183
+ case 'ArrowLeft':
6184
+ scrollPrev();
6185
+ break;
6186
+ }
6187
+ }
6188
+ };
6189
+ document.addEventListener('keydown', keydownListener);
6190
+ return function () { return document.removeEventListener('keydown', keydownListener); };
6191
+ }, [fullScreen, scrollNext, scrollPrev]);
6192
+ var prerenderFallbackSlide = startIndex !== 0 && !mainCarouselRef;
6193
+ var carouselHeightByPaginationTypeMap = (_a = {},
6194
+ _a[exports.PaginationType.None] = '100%',
6195
+ _a[exports.PaginationType.Dot] = '100%',
6196
+ _a[exports.PaginationType.Thumbnail] = 'calc(100% - var(--carousel-pagination-height))',
6197
+ _a[exports.PaginationType.Number] = 'calc(100% - var(--carousel-numbers-pagination-height))',
6198
+ _a);
6199
+ var carouselHeightCssVarValue = hasThumbnailPagination
6200
+ ? carouselHeightByPaginationTypeMap[exports.PaginationType.Thumbnail]
6201
+ : carouselHeightByPaginationTypeMap[paginationType];
6202
+ var _o = React.useState(false), isHovered = _o[0], setIsHovered = _o[1];
6203
+ return (React.createElement(react$1.Box, { css: styles.container, "data-group": true },
6204
+ prerenderFallbackSlide ? (React.createElement(Slide, { slideIndex: startIndex, onClick: function () { return onClick(startIndex); }, totalSlides: numberOfSlides, isCurrent: startIndex === selectedIndex, fullScreen: !!fullScreen, slidesPerView: slidesPerView }, props.fullScreen
6205
+ ? (_b = props.children[startIndex]) === null || _b === void 0 ? void 0 : _b.slide
6206
+ : props.children[startIndex])) : (React.createElement(react$1.Box, { ref: mainCarouselRef, "aria-label": "Carousel", "aria-roledescription": "Carousel", role: "group", "data-group": true, onMouseEnter: function () { return setIsHovered(true); }, onMouseLeave: function () { return setIsHovered(false); }, height: 'var(--carousel-height)', css: __assign(__assign({}, styles.carousel), { '--carousel-height': carouselHeightCssVarValue }) },
6207
+ React.createElement(Flex, { css: styles.slideContainer, marginLeft: slidesPerView === 1 ? '0' : { base: '-md', md: '-2xl' } }, props.children.map(function (slide, index) { return (React.createElement(Slide, { key: "slide-".concat(index), slideIndex: index, onClick: function () { return onClick(index); }, totalSlides: numberOfSlides, isCurrent: index === selectedIndex, fullScreen: !!fullScreen, slidesPerView: slidesPerView }, isFullScreenSlide(slide) ? slide.slide : slide)); })),
6208
+ canScrollPrevious ? (React.createElement(NavigationButton, { onClick: scrollPrev, direction: "previous", fullScreen: !!fullScreen, isHovered: isHovered || (!!fullScreen && !isSmallLandscapeViewport) })) : null,
6209
+ canScrollNext ? (React.createElement(NavigationButton, { onClick: scrollNext, direction: "next", fullScreen: !!fullScreen, isHovered: isHovered || (!!fullScreen && !isSmallLandscapeViewport) })) : null,
6210
+ paginationType === exports.PaginationType.Dot ? (React.createElement(DotsPagination, { currentSlideIndex: selectedIndex, numberOfSlides: props.children.length })) : null)),
6211
+ hasThumbnailPagination ? (React.createElement(ThumbnailPagination, { currentSlideIndex: selectedIndex, thumbnails: props.children.map(function (slide) { return slide.thumbnail; }), mainCarousel: mainCarousel, paginationCarousel: paginationCarousel, paginationCarouselRef: paginationCarouselRef })) : null,
6212
+ paginationType === exports.PaginationType.Number ? (React.createElement(NumbersPagination, { mainCarousel: mainCarousel, currentSlideIndex: selectedIndex, numberOfSlides: props.children.length })) : null));
6213
+ };
6214
+
6215
+ var ColorPicker = React.forwardRef(function (_a, ref) {
6216
+ var _b = _a.width, width = _b === void 0 ? 'md' : _b, _c = _a.height, height = _c === void 0 ? 'md' : _c, _d = _a.padding, padding = _d === void 0 ? '0' : _d, _e = _a.backgroundColor, backgroundColor = _e === void 0 ? 'whiteAlpha.100' : _e, props = __rest(_a, ["width", "height", "padding", "backgroundColor"]);
6217
+ var isInvalid = props.isInvalid, isDisabled = props.isDisabled, rest = __rest(props, ["isInvalid", "isDisabled"]);
6218
+ return (React.createElement(react$1.Field.Root, { invalid: isInvalid },
6219
+ React.createElement(react$1.Input, __assign({}, rest, { ref: ref, type: "color", width: width, height: height, padding: padding, backgroundColor: backgroundColor, cursor: "pointer", disabled: isDisabled, _invalid: { borderColor: 'red.500' } }))));
6220
+ });
6221
+ ColorPicker.displayName = 'ColorPicker';
6222
+
6223
+ var Center = function (_a) {
6224
+ var children = _a.children, padding = _a.padding;
6225
+ return (React.createElement(react$1.Center, { padding: padding }, children));
6226
+ };
6227
+
6228
+ var Checkbox = React.forwardRef(function (_a, ref) {
6229
+ var _b = _a.disabled, disabled = _b === void 0 ? false : _b, _c = _a.checked, checked = _c === void 0 ? false : _c, _d = _a.indeterminate, indeterminate = _d === void 0 ? false : _d, _e = _a.readOnly, readOnly = _e === void 0 ? false : _e, _f = _a.fullWidth, fullWidth = _f === void 0 ? false : _f, label = _a.label, _g = _a.fontWeight, fontWeight = _g === void 0 ? 'regular' : _g, _h = _a.variant, variant = _h === void 0 ? 'alignCenter' : _h, onChange = _a.onChange, props = __rest(_a, ["disabled", "checked", "indeterminate", "readOnly", "fullWidth", "label", "fontWeight", "variant", "onChange"]);
6230
+ var recipe = react$1.useSlotRecipe({ key: 'checkbox' });
6231
+ var combinedProps = __assign(__assign({}, props), { variant: variant });
6232
+ var recipeProps = recipe.splitVariantProps(combinedProps)[0];
6233
+ var styles = recipe(recipeProps);
6234
+ return (React.createElement(react$1.Checkbox.Root, __assign({}, props, { disabled: disabled, checked: indeterminate ? 'indeterminate' : checked, readOnly: readOnly, width: fullWidth ? 'full' : undefined, onCheckedChange: onChange, css: styles.root }),
6235
+ React.createElement(react$1.Checkbox.HiddenInput, { ref: ref }),
6236
+ React.createElement(react$1.Checkbox.Control, { css: styles.control }),
6237
+ label && (React.createElement(react$1.Checkbox.Label, { css: __assign(__assign({}, styles.label), { fontWeight: fontWeight }) }, label))));
6238
+ });
6239
+
6240
+ var Separator = react$1.Separator;
6241
+ Separator.displayName = 'Separator';
6242
+
6243
+ var CheckboxGroup = function (_a) {
6244
+ var name = _a.name, label = _a.label, value = _a.value, onChange = _a.onChange, checked = _a.checked, disabled = _a.disabled, invalid = _a.invalid, indeterminate = _a.indeterminate, addDividerAfterIndex = _a.addDividerAfterIndex, _b = _a.variant, variant = _b === void 0 ? 'alignCenter' : _b, checkboxes = _a.checkboxes;
6245
+ return (React.createElement(Stack, { gap: "md" },
6246
+ React.createElement(Checkbox, { name: name, label: label, value: value, onChange: onChange, checked: checked, disabled: disabled, invalid: invalid, indeterminate: indeterminate, variant: variant, fontWeight: "bold" }), checkboxes === null || checkboxes === void 0 ? void 0 :
6247
+ checkboxes.map(function (item, index) { return (React.createElement(React.Fragment, { key: item.name },
6248
+ React.createElement(react$1.Box, { ps: "md", asChild: true },
6249
+ React.createElement(Checkbox, { name: item.name, label: item.label, value: item.value, onChange: item.onChange, checked: item.checked, variant: variant, disabled: disabled })),
6250
+ (addDividerAfterIndex === null || addDividerAfterIndex === void 0 ? void 0 : addDividerAfterIndex.includes(index)) ? (React.createElement(Separator, { orientation: "horizontal" })) : null)); })));
6251
+ };
6252
+ CheckboxGroup.displayName = 'CheckboxGroup';
6253
+
6254
+ var Chip = function (_a) {
6255
+ var children = _a.children, onClick = _a.onClick, href = _a.href, ariaLabel = _a["aria-label"], rest = __rest(_a, ["children", "onClick", "href", 'aria-label']);
6256
+ var recipe = react$1.useRecipe({ recipe: chipRecipe });
6257
+ var recipeProps = recipe.splitVariantProps(rest)[0];
6258
+ var styles = recipe(recipeProps);
6259
+ var handleClick = function () {
6260
+ onClick === null || onClick === void 0 ? void 0 : onClick();
6261
+ };
6262
+ var handleKeyDown = function (event) {
6263
+ if (event.key === 'Enter' || event.key === ' ') {
6264
+ event.preventDefault();
6265
+ onClick === null || onClick === void 0 ? void 0 : onClick();
6266
+ }
6267
+ };
6268
+ var commonProps = __assign({ css: styles, 'aria-label': ariaLabel }, rest);
6269
+ var isLink = Boolean(href);
6270
+ var asType = isLink ? 'a' : 'button';
6271
+ return (React.createElement(react$1.Flex, __assign({ as: asType }, (isLink && onClick ? { href: href } : {}), (!isLink ? { type: 'button' } : {}), { onClick: handleClick, onKeyDown: handleKeyDown }, commonProps),
6272
+ recipeProps.selected ? (React.createElement(react$1.Box, { mx: "xs", color: "currentColor", display: "flex", alignItems: "center", justifyContent: "center" },
6273
+ React.createElement(CheckmarkIcon, { height: "xs", width: "xs" }))) : null,
6274
+ React.createElement(react$1.Box, { as: "span", whiteSpace: "nowrap" },
6275
+ React.createElement(react$1.Text, { textStyle: "body-small" }, children))));
6276
+ };
6277
+ Chip.displayName = 'Chip';
6278
+
6279
+ var Count = function (_a) {
6280
+ var count = _a.count, ariaLabel = _a.ariaLabel, props = __rest(_a, ["count", "ariaLabel"]);
6281
+ var recipe = react$1.useRecipe({ key: 'count' });
6282
+ var recipeProps = recipe.splitVariantProps(props)[0];
6283
+ var styles = recipe(recipeProps);
6284
+ return (React.createElement(react$1.chakra.span, { css: styles, "aria-label": ariaLabel }, count));
6285
+ };
6286
+
6287
+ var DatePicker = React.forwardRef(function (_a, ref) {
6288
+ var min = _a.min, props = __rest(_a, ["min"]);
6289
+ var recipe = react$1.useSlotRecipe({ key: 'input' });
6290
+ var recipeProps = recipe.splitVariantProps(props)[0];
6291
+ var styles = recipe(recipeProps);
6292
+ return (React.createElement(react$1.Field.Root, { invalid: props.invalid },
6293
+ React.createElement(react$1.Input, __assign({}, props, { css: __assign(__assign({}, styles.field), { display: 'block', textAlign: 'start' }), type: "date", min: min ? min.toISOString().split('T')[0] : undefined, ref: ref }))));
6294
+ });
6295
+ DatePicker.displayName = 'DatePicker';
6296
+
6297
+ var Brand;
6298
+ (function (Brand) {
6299
+ Brand["AutoScout24"] = "autoscout24";
6300
+ Brand["MotoScout24"] = "motoscout24";
6301
+ })(Brand || (Brand = {}));
6302
+
6303
+ var Switch = function (_a) {
6304
+ _a.id; var disabled = _a.disabled, onCheckedChange = _a.onCheckedChange, checked = _a.checked, label = _a.label, props = __rest(_a, ["id", "disabled", "onCheckedChange", "checked", "label"]);
6305
+ var recipe = react$1.useSlotRecipe({ key: 'switch' });
6306
+ var recipeProps = recipe.splitVariantProps(props)[0];
6307
+ var styles = recipe(recipeProps);
6308
+ return (React.createElement(react$1.Switch.Root, { onCheckedChange: onCheckedChange, checked: checked, disabled: disabled, css: styles.root },
6309
+ React.createElement(react$1.Switch.HiddenInput, null),
6310
+ React.createElement(react$1.Switch.Control, { css: styles.control },
6311
+ React.createElement(react$1.Switch.Thumb, { css: styles.thumb })),
6312
+ label ? (React.createElement(react$1.Switch.Label, { css: styles.label }, label)) : null));
6313
+ };
6314
+
6315
+ var DevOverlay = function (_a) {
6316
+ var variables = _a.variables, hideDevOverlay = _a.hideDevOverlay, toggleTheme = _a.toggleTheme, toggleTranslation = _a.toggleTranslation, activeTheme = _a.activeTheme, _b = _a.displayTranslationKeys, displayTranslationKeys = _b === void 0 ? false : _b;
6317
+ var isThemeSwitcherChecked = Brand.AutoScout24 !== activeTheme;
6318
+ return (React.createElement(react$1.Box, { position: "absolute", right: "md", bottom: "md", borderRadius: "sm", padding: "md", backgroundColor: "gray.200", display: "inline-block", boxShadow: "md", as: "aside", css: { maxWidth: 'min(94%, 320px)' } },
6319
+ React.createElement(react$1.Flex, null,
6320
+ React.createElement(react$1.Heading, { as: "h3", textStyle: "heading3" }, "Dev Overlay\u00A0"),
6321
+ React.createElement(react$1.Spacer, null),
6322
+ React.createElement(Button, { onClick: hideDevOverlay, "data-testid": "close-dev-overlay" },
6323
+ React.createElement(CloseIcon, null))),
6324
+ React.createElement(react$1.Heading, { as: "h4", textStyle: "heading4" }, "Variables"),
6325
+ !variables || variables.length === 0 ? null : (React.createElement(react$1.Table.Root, null,
6326
+ React.createElement(react$1.Table.Body, null,
6327
+ React.createElement(react$1.Table.Row, null,
6328
+ React.createElement(react$1.Table.ColumnHeader, { padding: "0" }, "Name"),
6329
+ React.createElement(react$1.Table.ColumnHeader, null, "Value"))),
6330
+ React.createElement(react$1.Table.Body, null, variables.map(function (_a) {
6331
+ var name = _a.name, value = _a.value;
6332
+ return (React.createElement(react$1.Table.Row, { key: name, wordBreak: "break-all" },
6333
+ React.createElement(react$1.Table.Cell, { padding: "0" }, name),
6334
+ React.createElement(react$1.Table.Cell, null, value)));
6335
+ })))),
6336
+ React.createElement("br", null),
6337
+ React.createElement(react$1.Heading, { as: "h4", textStyle: "heading4" }, "Switch Theme"),
6338
+ React.createElement(Switch, { id: "theme-toggle", onCheckedChange: toggleTheme, checked: isThemeSwitcherChecked, label: isThemeSwitcherChecked ? React.createElement("span", null, "\uD83C\uDFCD\uFE0F") : React.createElement("span", null, "\uD83D\uDE97"), disabled: false }),
6339
+ React.createElement(react$1.Heading, { as: "h4", textStyle: "heading4" }, "Switch Translation"),
6340
+ React.createElement(Switch, { id: "translation-toggle", onCheckedChange: toggleTranslation, checked: displayTranslationKeys, label: displayTranslationKeys ? React.createElement("span", null, "\uD83D\uDD11") : React.createElement("span", null, "\uD83C\uDF10"), disabled: false })));
6341
+ };
6342
+
6343
+ var H1 = function (_a) {
6344
+ var _b = _a.textStyle, textStyle = _b === void 0 ? 'heading1' : _b, children = _a.children, rest = __rest(_a, ["textStyle", "children"]);
6345
+ return (React.createElement(react$1.Heading, __assign({ as: "h1", textStyle: textStyle }, rest), children));
6346
+ };
6347
+ var H2 = function (_a) {
6348
+ var _b = _a.textStyle, textStyle = _b === void 0 ? 'heading2' : _b, children = _a.children, rest = __rest(_a, ["textStyle", "children"]);
6349
+ return (React.createElement(react$1.Heading, __assign({ as: "h2", textStyle: textStyle }, rest), children));
6350
+ };
6351
+ var H3 = function (_a) {
6352
+ var _b = _a.textStyle, textStyle = _b === void 0 ? 'heading3' : _b, children = _a.children, rest = __rest(_a, ["textStyle", "children"]);
6353
+ return (React.createElement(react$1.Heading, __assign({ as: "h3", textStyle: textStyle }, rest), children));
6354
+ };
6355
+ var H4 = function (_a) {
6356
+ var _b = _a.textStyle, textStyle = _b === void 0 ? 'heading4' : _b, children = _a.children, rest = __rest(_a, ["textStyle", "children"]);
6357
+ return (React.createElement(react$1.Heading, __assign({ as: "h4", textStyle: textStyle }, rest), children));
6358
+ };
6359
+ var H5 = function (_a) {
6360
+ var _b = _a.textStyle, textStyle = _b === void 0 ? 'heading5' : _b, children = _a.children, rest = __rest(_a, ["textStyle", "children"]);
6361
+ return (React.createElement(react$1.Heading, __assign({ as: "h5", textStyle: textStyle }, rest), children));
6362
+ };
6363
+ var H6 = function (_a) {
6364
+ var _b = _a.textStyle, textStyle = _b === void 0 ? 'heading6' : _b, children = _a.children, rest = __rest(_a, ["textStyle", "children"]);
6365
+ return (React.createElement(react$1.Heading, __assign({ as: "h6", textStyle: textStyle }, rest), children));
6366
+ };
6367
+
6368
+ var DialogCloseButton = React.forwardRef(function (props, ref) { return (React.createElement(react$1.CloseButton, __assign({ ref: ref, cursor: 'pointer' }, props))); });
6369
+
6370
+ var Dialog = function (_a) {
6371
+ var title = _a.title, open = _a.open, onOpenChange = _a.onOpenChange, primaryActionButton = _a.primaryActionButton, secondaryActionButton = _a.secondaryActionButton, children = _a.children, size = _a.size, _b = _a.motionPreset, motionPreset = _b === void 0 ? 'scale' : _b, variant = _a.variant, overlayColor = _a.overlayColor, _c = _a.disableBodyPadding, disableBodyPadding = _c === void 0 ? false : _c, props = __rest(_a, ["title", "open", "onOpenChange", "primaryActionButton", "secondaryActionButton", "children", "size", "motionPreset", "variant", "overlayColor", "disableBodyPadding"]);
6372
+ var dialogSize = size || variant !== 'fullScreen' ? { xs: 'full', sm: size } : 'full';
6373
+ var bothActionButtons = primaryActionButton && secondaryActionButton;
6374
+ var recipe = react$1.useSlotRecipe({ key: 'dialog' });
6375
+ var recipeProps = recipe.splitVariantProps({
6376
+ size: dialogSize,
6377
+ motionPreset: motionPreset,
6378
+ variant: variant,
6379
+ overlayColor: overlayColor,
6380
+ })[0];
6381
+ var styles = recipe(recipeProps);
6382
+ return (React.createElement(react$1.Dialog.Root, __assign({ open: open, onOpenChange: onOpenChange }, props),
6383
+ React.createElement(react$1.Portal, null,
6384
+ React.createElement(react$1.Dialog.Backdrop, { css: styles.backdrop }),
6082
6385
  React.createElement(react$1.Dialog.Positioner, { css: styles.positioner },
6083
6386
  React.createElement(react$1.Dialog.Content, { css: styles.content },
6084
6387
  title && (React.createElement(react$1.Box, { borderBottom: "1px", borderColor: "gray.100" },
@@ -6093,6 +6396,46 @@ var Dialog = function (_a) {
6093
6396
  primaryActionButton ? (React.createElement(Button, { variant: "primary", onClick: primaryActionButton.action, width: { base: 'full', sm: 'fit' } }, primaryActionButton.label)) : null))))))));
6094
6397
  };
6095
6398
 
6399
+ var emptyItemOffset = 0;
6400
+ var firstItemOffset = 1;
6401
+ var getItemOffset = function (applyIndentation) {
6402
+ return applyIndentation ? firstItemOffset : emptyItemOffset;
6403
+ };
6404
+ var getSliderStepValue = function (marks, applyIndentation, value) {
6405
+ var selectedMarkIndex = marks.findIndex(function (mark) { return mark.value === value; });
6406
+ if (selectedMarkIndex < emptyItemOffset) {
6407
+ return getItemOffset(applyIndentation);
6408
+ }
6409
+ return selectedMarkIndex + getItemOffset(applyIndentation);
6410
+ };
6411
+ var getSliderMarks = function (marks, applyIndentation) {
6412
+ return marks.map(function (mark, index) { return (__assign(__assign({}, mark), { stepValue: index + getItemOffset(applyIndentation) })); });
6413
+ };
6414
+ var DiscreteSlider = function (_a) {
6415
+ var marks = _a.marks, _b = _a.applyIndentation, applyIndentation = _b === void 0 ? true : _b, onValueChanged = _a.onValueChanged, value = _a.value;
6416
+ var sliderStepValue = getSliderStepValue(marks, applyIndentation, value);
6417
+ var sliderMarks = getSliderMarks(marks, applyIndentation);
6418
+ var handleOnChange = function (newStepValue) {
6419
+ var _a;
6420
+ if (applyIndentation && newStepValue < firstItemOffset)
6421
+ return;
6422
+ var newSliderMark = (_a = sliderMarks.find(function (mark) { return mark.stepValue === newStepValue; })) === null || _a === void 0 ? void 0 : _a.value;
6423
+ onValueChanged(newSliderMark);
6424
+ };
6425
+ return (React.createElement(react$1.Slider.Root, { step: 1, max: sliderMarks.length - 1 + getItemOffset(applyIndentation), value: [sliderStepValue], onValueChange: function (details) { var _a; return handleOnChange((_a = details.value[0]) !== null && _a !== void 0 ? _a : sliderStepValue); } },
6426
+ React.createElement(react$1.Slider.Control, null,
6427
+ React.createElement(react$1.Slider.Track, null,
6428
+ React.createElement(react$1.Slider.Range, null)),
6429
+ React.createElement(react$1.Slider.Thumbs, null),
6430
+ React.createElement(react$1.Slider.MarkerGroup, null, sliderMarks.map(function (_a, index) {
6431
+ var stepValue = _a.stepValue, label = _a.label;
6432
+ return (React.createElement(react$1.Slider.Marker, { key: index, value: stepValue, style: {
6433
+ pointerEvents: 'all',
6434
+ fontWeight: sliderStepValue === stepValue ? 'bold' : 'normal',
6435
+ } }, label));
6436
+ })))));
6437
+ };
6438
+
6096
6439
  var DrawerOverlay = function (props) {
6097
6440
  return React.createElement(react$1.Drawer.Backdrop, __assign({}, props));
6098
6441
  };
@@ -6120,11 +6463,6 @@ var Drawer = function (props) {
6120
6463
  var Text = react$1.Text;
6121
6464
  Text.displayName = 'Text';
6122
6465
 
6123
- var Flex = function (_a) {
6124
- var children = _a.children, rest = __rest(_a, ["children"]);
6125
- return (React.createElement(react$1.Flex, __assign({}, rest), children));
6126
- };
6127
-
6128
6466
  var EnergyLabel = function (props) {
6129
6467
  var efficiency = props.efficiency;
6130
6468
  var recipe = react$1.useSlotRecipe({ key: 'energyLabel' });
@@ -6136,6 +6474,9 @@ var EnergyLabel = function (props) {
6136
6474
  React.createElement(Text, { css: styles.text }, efficiency.toString()))));
6137
6475
  };
6138
6476
 
6477
+ var _a$2;
6478
+ var useI18n = (_a$2 = i18nPkg.createI18nScope(), _a$2.useI18n), I18nProvider = _a$2.I18nProvider, Trans = _a$2.Trans;
6479
+
6139
6480
  var auth$3 = {
6140
6481
  tenantSelection: {
6141
6482
  description: "Puoi passare a un altro garage più tardi nel tuo portale rivenditori.",
@@ -6997,13 +7338,23 @@ var logger = new Logger();
6997
7338
 
6998
7339
  var TranslationProvider = function (_a) {
6999
7340
  var language = _a.language, scopes = _a.scopes, children = _a.children;
7000
- return (React.createElement(i18nPkg.I18nProvider, { language: language, lngDict: i18nPkg.filterDictionaryScopes({
7341
+ return (React.createElement(I18nProvider, { language: language, lngDict: i18nPkg.filterDictionaryScopes({
7001
7342
  dictionaries: dictionaries,
7002
7343
  language: language,
7003
7344
  dictionaryScopes: scopes,
7004
7345
  }), onMissingTranslation: logger.onMissingTranslation }, children));
7005
7346
  };
7006
7347
 
7348
+ function withTranslationProvider(scopes) {
7349
+ return function (WrappedComponent) {
7350
+ return function (props) {
7351
+ var language = props.language;
7352
+ return (React.createElement(TranslationProvider, { language: language, scopes: scopes },
7353
+ React.createElement(WrappedComponent, __assign({}, props))));
7354
+ };
7355
+ };
7356
+ }
7357
+
7007
7358
  var SimpleGrid = function (props) { return React.createElement(react$1.SimpleGrid, __assign({}, props)); };
7008
7359
 
7009
7360
  var BaseLayout = function (_a) {
@@ -7033,19 +7384,6 @@ var img$6 = "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAZAAAAEqBAMAAADJwBvsA
7033
7384
 
7034
7385
  var img$5 = "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAZAAAAEqBAMAAADJwBvsAAAABGdBTUEAALGPC/xhBQAAAAFzUkdCAK7OHOkAAAAtUExURUdwTP///wEBAf///yQkJO/v78XFxQ0NDd3d3UBAQFVVVWpqaoGBgampqZaWltep7+wAAAACdFJOUwAgTf3t8AAAIABJREFUeNrsmktTU9kWx/uz7DrluQRlsti7Yl6DdAjyHNxNKCDAwBMCCDLITUur6KCDlg+6BwgI2DpAQBCagTxtgQEJD/ExMCBta/dAMNoXb3+Gu/Y+SaSqkeaE1iooz4AkJ8nJ/u31+q91+Oqrg3LAATm+gHwB+QLyT4NoBwVk/KCALBwQEDoDnoNhkdmDAjIMHs+BcK0HUHIgQKCWVzSE9KfmfQ3SzH3DXH/asq9Binh1f/zpCb4vQahHrjsz1NweP7O8P0FY8WiVANFKJUjdAAyG9iWI+WlhBa78aMjbJ16+PQVt0f0IYr7rVAc0AVI+Khyt5zx37UsQWCPqeRAgNgFidnbAZwfh/wAIBVsgmItXOsodQgCzoEZzPqukpycbonsH8dQALAZdWhLEmsZpjtwh+hlwWjSouB8I7hWEAsTmAbw5y2HMWjpI6WGIg7DPAPL2bNUaIST3Dd8LCK8PMddICGjv5riwiH1e1MVTQHPl27ZPHymVc+RsD4KQzr2AsKEb3BoIPgnBxqMlAAtIkLV2oHm6+Pr0FrE7iX6M7sW1LI1nntsCRO2A5psIUqaD9ISB5sv3H356EBrROc7yvYAcbQw+oRuEqFGLWwdBBzNj3NNCAAdnuZ+hvjMnURpzZrQ9BXsmUfxA5whx2849T4DYFYyZAjTXuiWfwyfXXLQBSWqSWDwlECsJrgKUO0kGyz8JcEWCWE0gQerWfR0ADZ/cKLSVqK4F2ZvaT/b2pwTiIMo6PlSMKZ7uiwLEgVorMwMv7gZ4z9vWgXYZCpOSFLCpDPegKMFFhDTxlLJWQE8WLDu6fJHDVQmC2RfoMTDPVuZqUDxvyN+HUvBEXIQ8TgkQJZSSRXAzsvSqdM3r1xDEjiDHs6RFKiaa82NQG2Ke3dukLC8FEFs8/6ZpUErSUgOBSXJO7w2/dbyJYn9rx37k2TU8cQyuTi12zrB6Tv87tfte2X3BOIg1DkLCaJzOFCt7nVOR++1oss+vQrl0rXuj0rV+jbnGbzoaOyp6Du9SpQJsyP7MQHiI/S+Ncyi4YYM8RRC2QgrFd2lb8dJzBBGu1SriP4s+rDtdVWBuTf9t0rRlRkTDO12ubdVQaqAPRR9XGq/tKgrwCymLxpaAKkfXi/53/jhItiZBbizmmQshYtIun7m0RVH07bQtucYMYnaKLohFXPEgkSf9qYGYF4kilGF11bvvoVKs0xwU9s5i3dkdrBDMNcAeJ5dXqV3Wdhir2gqMhYidCMf2Ztc4kyC0IdvVlwoI/8EpU7dF+6VFgLRjWyXOt9sHg6MOt67lk0u/Glrm9N32boIXKe0oMWaRVgxw8Cn8mQQxicvcI/H8Y7SxorVEHcDV3n7uDTFg7WA3SRDb9aBmPaZ/hIpSN42bV1dyS9eV2+wugvj6DU5cq8nXAK/JlL1VgMikcpmot1PrEEvuERMHmnWyHFeKII50HcSZxy3tyU95u7KRarM8C8q371FQGECkymBhLyWHMEsStb9YtCRHpJV6CnmKrS5KLVzwk8qGdQlilRvTWaa6+dEPe1NGzmJSeF87Cle3TUwUZR+9axTEStKF+sV6LppEdRY3lNu1lIcPtcI7vZW/j0oQS4YE8QUnporCW3REIaaTpyvr8OqvFyjmwFB8slseg4WdYYDLehidkwk4Sq8W7mGKwlrJOth+iPXpINLC/W9zXjX51re01sMxoLOR6Hb3516sS4ez9Rud4VOnGnIIhAnZ7aaFHIFtxNbux0E+4gbWMIHygHXC0UPi3Ex2vu+Ub0s42OYZgoyF6MBfL7AyLtV+WYcREJkXeogmLaII4ejqx+gnYYMgLaEPqdLhRK3WUIBWNXdCpgS5r3b0jEe0xA/i8QtHQdzN2Ta9dWTc/EQkrSUD2bf4rnDDOTJa3JrQWrEQvt6md98RhN4fmcbQiunjq0X8emUeXpp2wL9PiVNjyv9OVw0KkJc1H/L+dB44tklavbcrJ/BhucaAQKlWuMy/WRiica0VkoFfYAyEuVw52DZdz5ck5aQJ5daYJkC++1ZKltMrhZocbvmmk15rflAItsSrLbeC2sL1WCXNQ1VGQFTx4SLMvyyutTDtWzDglwxapLetbUqUH5kl6D01DG/HxoHehOMSZC1/cqlEDreqjyVB2F03eBOJqTmphGnbm2WRtEZqdpl9xQDTJ4PBIpZf1yZBMMlYA0TRDMbIlZzePA1YL+mQr7CsNred53ALjstyXn3LVVUhZ0JF52gSpNcNDckJDHjiGszc5X+ACI5p/y6zbxl6bzO5LbO6yFIlG9IiGqpIkm40a9GxGy4scT6nsiozsBq2BtI8MAzHv5HZduMct0p3tf/+KvGvHWzQDRPJmRiPxe+Zsu6WEUSw/ezfrVuliaL+td6ihhNtuykkHjM8RguirTuCAYIO2iT2wEfOMadaBUOy0wUYejsOlmP6dPhKU0JPDbppUrXY/Mh3QvyqJf/FT2KfRxY+5NUdjzkSxQb3kJ5/sxIgP2KuaVWHK6Ml3BAI/XU2Jyy0B+mUYzKlqoeMw114Jq7MZlzYQfdJR/KXJ4qU434BS6oWFnvqL3bNy059UNjJ9/M7sYKSv3UwJsxgl2IXQQ7LCo+HkHrODH9Zfn+Vx1BBtA9Fbgon0ht+H2lfDGTxOIhtE61QNGrPxmQb2Qz6dRLHYLc3nBDtdCp7yZsnvM7izBXuGel6jx+rGJyp+Zsf9oqqR524PRf9qBg1MZbC7CvnEP9CNe6ubzdW2V8+FkMru1PGe2Ugwxc4cqEbXguQljF0K9/6moIdia9zIRb3pqHhDd2DrXj+wZlQRN7WKA3+eCmKqTxXDNd8j2Mf863EFLGZoCRC0RuGletIMC/TrrRMKbmGql5R542BsNmI/GlpEjqp1JJ0zLivRRC+uoM/dcLvHMDdLR9JmLp8eMGl22YNQdY6sQyJ3fcFp1gfONoeRcW/gXjoR6MymuhCBMgaucauy9HcT5CJDyJkjmNhxs5K4Qa11svNXE1qxgHJMx1QLuog9FEQr7V5JTCOosPsX42vzTtSH7+TlT2NntfPsgdEBl4JrmJnWZTzGN9zLH38507oMzRcLgY72uWQV6+EGfAd/v2PjJh2XAdJNyoa2ewfN7mId5PInsTkJLEcmEOQig3Rbi7nRtyxrSOgsv5aPYHZTuN6M8979Rtmk3m8LApjZ7DA0t9CO0jdI0mLRIU7meI13cQRTZQVM4phrNFkyrD6rf+za17cjsZ0hb6lBkgHglzDhV4Xm9ejXPpTgCZBLvevxOd5WEvBevaPAvEeveOGR5zdOYPnKnYYo5gD6UkQGeCKp0VOS89jXEjV6xARz4Zi3DAIe7wpEk4ZERt9gpDGAh2ktlF0i86cee9A0iLoXrUDkW/AjK8Wb4kvpw2OAsMod/WxKewzsUWlC3ynGW/c96tlpmIBNXdI3OVBUYLdiCpn2BmpzrW+n36Im0t7VLR1sTOgmhDkNrAxUTl8ZN4zKXyHdom/VzR4MX7na5F7zP/n3Fq6msqy8H856y5TAdvJqXv7Sh6DGIIhgcmFdBPAgTcEEWWQRYkPikEloIDLgYZYijoIjwgUDgIBW20HBLFBuwYVkGp11YAkUGqVv6H3PufkAUoI5QADed3v7Ne3v72vE42vSONQax5TpTtt1em7NaglLfsZRIUnLLmmCYAEWRE0GIiErFdm3S7KEN/9VSBy19PVezr4JWQhecvZLTnp4hj1BnoZM508H2A9YgyvrylNl7O3x1AuMV8GZJoijVL6NklNTu03apnu6oeuYL/vuQrHbmGnzoGgaVgf0osWsbBAQRcfOyyQggecezL1QJNtRvhLh3TJJmnxOciMSE7M9tEMe0DXsdkxjcnjG7EkAmlwUTowYZEStHVGo756JUGHfgQXvRHcL/WGyAT6UkpkLeZjcQRiR6cy8TKiBIh+WCBn8kjkzing84xUKzP2uKRHk3KcnYz6/E04ZkTtcLgNXm6plqfaYilUGnYWwJQnzNKY3Al9/vJJry7PQ4Sq2/tGyGmIaADCacEvrIqDIxku3cEgSR3nJN68t4AcDER9XZDv1Y9To0GLDUVFbadG0mMpyIJZplefcg2iUkSH8fMVh3onCL2XB/qPBBDhOZPhQitQA8U+sU2tLig419v21epDPBJ4G7vFVd7TpPLNtVbIW+mrfMwT4hIdU2TKBGLtcRRlkyd3FuhWBQZie4+UiunWwJVOSEvynO9HM/vsZrS4ck+p1SC8B6gCIWKt0U2BOp8DPfB8kvpGgmBBvbEkT7Qx5o7kl/HFbwn4M8Z5ErNvNQK8yFEbMfU0lgPETCqLzq5zahrclCn8PVI2mjJ1P7ahS62EdZX1C1VJ1lVZXY12jfppVa9GveNpU08t7hB1ODs1NQzO17zt2b8aYthFecTlgDRjpkIgc6gFjWD032LOHoW+3Wp3BcsAAmFVpLrIn15NytFKVt3JSjzlM56JPoFE5avDCziqUVM10+3PuS2XKf2d4uJjZ3TMaq/pgzd/qJ2gw+5rVH2mlWissKfdEmUizqm7k1EuyF0PbWzxAbJamir96imI/3/HyfflAIHPurhLSW8E4plgAJ8vpjb7Wu5sQOyGAWxzAIiYBeu5vP7a7XVROUuXwQ5/xNKWzhrICcoqdC6ZSZ02L3j0ktUweFrEQJwBCnEzgDV6A6ywV2FpbHDnJlhHtHKAVHHr7vLiSuaxj6LZRcfAk9kgHUKFBTKYlJLt+KHv3PXrLk1Nq7Xwwp//FVR83dgFZOqpxenX5GfBMyXKOnxO8gfxpXEmV2P2dTAGydTSNL2KMXOaTIN9LmGF/E9jGUDA99N7/uSrAQMsBupi2zWPft2MtMnzc1wwh1oVxQJwzlgH5ErR0T7Kp5+oZxzL5o35JA3VvYFGVy05rvKR6n+I9Bon37A1AVY8/i6A6NzjAJ6RSK4/geAbctm8ZGXfJI69DaMdQmLH0Hf7UU+SDg+kTvFRM4QecfBmy+7oSFBLsAml1XcRYJaYH7anNXl8W5fXNvwHDKGPNYjSHocUJcs7hDUe3wp1Tge3PslCxh2oDLxohQfGbBlATHkBKT/v+B80Te09V2x32TNyRpBpiBLpJTq1KeZYT1KrBj+o59McHUTPUt5EgAafp9YHnrYDGnVjE6PvCOQW9c7YSDf+fjwnM1YxJh8jxgxwMP8CpuSjWhkC3U2DMInyQFjQAsEdIt2BMOvhLbUCKG4PSUjpLC+TZ3XaKo/D1fhXU3T5CrzCfCpL1yNpuv5i4ADNIUrOCmF3Cf7D0OjG38WUvQL+gvYacv6O5dFuvFnYRStNGn15k2RystXZCYwI1xJbnfJF8mc5Twx4Bepy8h2UEQW3H/2rQaUmAuj8P2uqvUtTRq+hQVSt1JhthvBCAUDkOL/+6tzewzGIGeR7st+/yWIGfyTKAQK1VsxUvLnZClyGl0iOOCZbpbDB3O+JMWlZflLtoXTDDDjVrtfUW/MnZK9nc9T7/QZtnsTBHWeX+yZKYLonOZCkHBU5llrEIgqECEvyi9JLxLEAIWTYKIvG+4gQK9SiBSAzMUza8NuaClsl7/XhAGuGX6EzZhsAiHJjhWaMEN3mVaCQszr9sHEeXx9LlVCfAhWMUTEgHiFcV2gqX6kZOc6qCjJLeMq5olmfhu0vygICJrnML9ZXGGxbCbnfM4GCauEOuFA95DhkAmexkCc34afa+UK53QcH1uGgSq0feBgLdauj9HRKzDsByA28+EtRpJJ8PAJ8i7k6q4ZSP64oyOXUEW4SwhGY6opG+KQPyba1aIHZakiZ2VlWQRuibkCHTpWPaW/Nc2C+kB+GHGna8ngAE0QmRUuyCTGBXiLpc/i4/yqBDoVHS/Ymf06pQQu56g/TISo3BXVU7moF+5NKPBlf8dnGHXBskLdMd8Cp/DZAf2Zaz1z2azTkBNtBqHS0oU7a7DhgqC6EniWSRX7yHR7/HBMeiNQVEKTJ897G9IjDtLqDIh3KmXQRm8RUK4eLJ3kvJb0drWcdD1LrdSiX1D8DngXlasoBabqNqqMecDN1qvScp4E3tGiaLGbfE5h6bzF8xBjKDQ9lzUtELJUNBFIHKznqWqQICLkUpM2u3V3RnAm9QoEKYg5hv3r+J28NlB/FNUZDEY02RQbQig9Lf10VERpilGxsCb4LaBrY0sNSoTvEMCnuMsoQH5pF4vroLkQkwVFLZmR3vrmIUloa6XBzOxrs3GymewUS9wh41q/wfvSslq9vz2nFiYRpJeCnDEgaGd8RHAeAK9nI0cK5EVZSDgFE3eFv9+adAnNIZVDZcxtMtBLHrRfk+TF6fQnbuqHZMEp0LWlqxfLe1Qju9fVbZyyR4iaIFW/4DlwHwoc4VGCl3U3yfQVu7+byadly0KmAIc3GBYnCDAbM2uzefbg+gx7C01ytpl02oOLq4D37LJcgfQ8wXTVqNBP5+raJIVFsbeTcAOSc8DLs3llFDJO8EsRWOhasK4fTtdZ5OV2bLLBiALLbs5BhjiCTmHvroP8NYBnpGA1viDnoCp+WDO2zEl5V5O5RrvACIJ9YagoRQ5Atmd4UfJLKA+hq7uxgkaBSDhCxMjE0HSw4aEX/3vSj2o7hOV0YcsjPkf6rH0aFzUy9DJDWut8dQPC+Ymtj9YbKGGMaPNvLTOK0Cqo5VyGVsBPgVqzQqvpDrnBssaJomcmRJGAKkn9y7+kuSXo8QIzX3cpTvBR12S5ahc37vBLFHu5fBiu0vLjFekLVJtkERwcQJ6z5KbsIdCAXuCV0SCBVPGW/ep4nW4S8/+J0r5KR0B82w293LRksPf+cFztVip2PQ9b3v9egic8o8d8PXIcDINhUIYEAL/tG8Pi/5cOIk65Dar84BEWbDuZusECP/XKd2koqWhNN5P789XXMDp418Wqviz0wOdtKUbpcv9AglFGb5NrkShaEzREvKVy8AHX0LwAB30KvstyP5Jv5L3YKWaJJfFZt7uW3p/GqWj/jW3CHZYVfa6lS2ERyXXUVLxBKQLKtEf41W6SSexOL9VyXIu2+nbM8IA3Ct14F84XE8TXJ80qLtmPMPP0FPb4VVfcPQWpxYajLm32le1G+xyoqIgKp2Km0ESZ2bhJje26jhsrr6HH2qdsukjg8EL6ySgdfJ/I58tjXspthQjsurdcvIexWaOfVMBSRWUQ/3H0gx+L0WuXTdCVQ6VkLSJ+DXBPmG6Z4FmZMxL1vNKW9kCDKBwJXjkej1G3nyXb3l5ErL4LjWg0d/6ftSrqiWLJw/5Y41WQDwibIOqWQLNKkEhFYdFqCwnPBkIBYLLLrUc4LQcRxQQsO+FwwKkddFNg+gXZRcPRply6AA8+hWKgPPU6/oeNGZtaQFVlQmZLnOEAVFfHdKb5740bQPQmWrUJh7gb2jf2gJPr6JqLSEKezUtFogC/E+40otQ9xeq44Tu1MXzHxQK4UxeDA+SDR561mIY3VoIMbNG7ZJ/7PDwk7r5KAI+zFZdWfgTqf3KzT4aPpvlG6IgrkqzLDEYnbaEZZSz82RvD5zkZDE7mbFvaN0Iix647JiE35WVVSgyO3f4POJz5Ihm04jVfgYFTDJoZF7RLpREUn71DhLzHq2eaRiwIjX/H8jq+MDV5qdxC1IKxAxdA7rKTyiEyVhEPL0doqCG6+I+St5/N80gZslw1tvr/3yeDl+2jQLSVAzhhjCMlDMHSvegeYxAeMHQHRt0Khw9LQiHE4xvIsaneitSF6lhdabT79o6w6SHLEwp4tBBSikutG2DpKBFdM+4Pghh+fvgJy04ZyKqCQpzgEQkIHuHsZpU8UCDNlbZRPRh6EQFpeKI5G/tUyoZKJbOmank9IbxMRoQDURlbxARJuoVRhlB5OKzpKgHflM3YKRNDAvfmZBWMdQUVMxT3yDNyj3FAgQPhrD5+vfsC9O5QtjSDq0mlBVBtFXnCKNYixI4lToULEkk/lDoR8NAR6moVQjexgrwea+GASPLsPugmkrnudzV5xYWsjtEGbNaUghURUeaWwVkXQhBFy6fwhoTIk6J0KOANSRqMKPzZkaKSQzZpkdGcMgAShXpTfOfEWt5zc4gjgycUKrW2QP911ELToDlyTfrhKJ0tmlGlLWw9zAEKEAT96Yc+yDqSA/bZFbYKWEo/AtmLBzOrElhVCKzbEgABPA4lRSzDlJuAl/0wk6HySXfb6HZoW2DBkPDPjOhC2qZLoOTQJ3Btofkv+cNd4R6GyZVmNQAiGIEX8xD8CXr0ToJUkLLksWTvhe5wCwR0abE9DhW0EIZt9ezLU0CSkqm+J4NY8/sOqmMNpy0ayYvx+logpqiG/6NHDlJ8G3TyTklWyfzQXIGQZAgd50UOd3dNsY+hDV3djHHhDMEc8T9/2Fig5DEGISqFKPl17hPZSL/RCCBOQWT+JMBlFrkCM5rOGBVqK5ZptytDVsLLXf4G+Vo96f2A8lxGIf3D/BTFFkUTDE3GKfMVrasQr6hatuARCVDJIjTOK9EjJJMpVJ+dJfjhH94CDNwp6chkBmvnzoZ4VRcbB2jUiMcFctnYBTykbvlGluAMCx2QVk6EiGx2/DxW/wfwvtyGL8b8V/TkNgH0RSnU9UZPNkbl/8JrOvgRU/gCqYnDQ3ICQcDWIzaTAJqq2Has5r/BXoAEFTazk56YQ83oHz3tTUkQbo4J5bG8APPPQq9YNtxoxTy6vZblIouWYv1Thob34gOfzQCXO9ek1gehOCGe3vQaQ8gSf4N0CId523cgK2I1s0JnmL1f4jofQwPPF05MzEB4KcyFiRJxiUKNiE0iLybn5Z08Vd0CIvMBL1hiFJfO54KkUMA/77G35Yu4KgVqzrhGPOaKnXqNAIOp/MMo4HrdAyLI7Sp3OJiEh0dkz6MWBZ2TEJc7T7AAICJ5ELRQya8pcq0ipHZAwxQiffpemBfFxt6ERGyCNnnEs/AGdp5Fs95hkFxYUrPMT1jwdoVWbg8nazZVm10B8kaMGkG72Gy6RTG5X7TUy0gD3Ejt6yPqtJVlpFO1uogtim63wnADBB34zIkuxjUZIXC4ZhvtfxBOqI43o0T2RJ/SioiagKHxiW+HnAIES+E5km5DgBuKQJXNSDzHpoVZnGmlDqYIqp/W5QVhRKG/jfxIQs0Brl5A0Eu5y7hYAQX5XQIoS7A1BT6POT6AAMvqzgSg2UasZrw2HFCLJWmeWZWyA5KVZ2gKu09dgPjr9k4F47IAo+PE8AVKG9jrDYTQs5qXUhWH5jRqZg6r8PCClZm2cNQuSwg0/IEBKUZVDILvSgdANxGliYYVZfsYZEAHZJyS9xZivnpAUMp1ih0BoGe7Gcko4JkAEm1KaeyDsZnvcdhr7ap7uASA7HAKhZbiUDBmqKNNETQ9/PhDN3D/KfFa6sbdmtQqAnHIIRLCICUxt4QzKSnicAdHvVmJnVl/82PtApUAqHQIx2x8SXwOQSFYXcaURdmb1lQCJqdUgxyEXQFJDCTTQ/SHacSJXGhHtM6u3fiz86KuF0OZ3CMQnamllMwASy3YloGMgeqF/1E4jwvr+WjemBQX5AsvXV1H2JO1vjkeyA/LGj8u76qsVXMKNOwSCRQuTE5Ft1dwdEP0M127mS4cpEBJ+67hpp0AGLNOm+wq/bgMQPjuQQ12B9R68FGaGtcuxGINL8ml3uI9YGhIiWao27jRCedxRdqJ6Ch+6DJ46woz73gHGBZj8kbFw6H7yu1HLKv7entq5BHLGHsibSnzwMvWj46yhD3piz5HVeQ5r6T4XteSCS5u6iFMgdWmsLu1p/YwvBOnyfIL18pof85HTGVriqsQUJ1iyRJIllC3LdQNkJ7LbRcQkSF6MU4bMZChRqNxZ9lYOEpdQzqf4XJOFNrzf1EWcAimzT9rJHC8AkJ0e5jKyRNbncou9t0Brr6D9agskitBmpT6HQLxZA/t5aGwS5pgVvAP5QUWwGN0+kHd5ivGcsSzjEdvEenuBHKYdWr5mti7lwQP+DNo+SAhWcu7nLD4yYmfHroHwWjYgXzOv0eRVtb2+XuED9QPouLX7F6rsL1+nGM854zRMikYqtgmIaF8PwjiWmQH5pm6EuWPxH7HYVzLruVfr34N9cbVPVdX+s4FAL0rv2a+zTDxiWzJ3C4Ru9Zywe/EVK5XzhsP6wWijiFA+P382UN+3KFVtrAZjs3enXsZVeNbj35r3Ic4KZHCbgNShLP4XY23k+sbCYZpRPAtrx4kV9YZl2KF4FNbPNq9MzU0BdYFesCHr5u02AimxnhZItbu5v5jcJSRTN2iUw7C0N8gyXL/ZKYVAs/wkh2gnFV4hH8wAsk0+QheSYjv2M8fcWu+QZQ1cWJBluIfTK4XhvtsGWaTkslMOh6nJERCFuywl8pHtAwI54lG7F2czfcTbg32Lskz7hDqlMByBHpM0EvcOSiEZbKtBCoc1sJ9SEfnLLEDEzUi8i19aN6IV2JKG55kZVSl580VJgpM+2DcjaTUYH5JCnr+wb0WWoFPWO0MQQf8R34YqhHQgECPdaIQP9Pep69/japDEE+u9AJez/OqJxcxeZS+8u+vF3dt0ARyT5AXMf5Q04maCJElQJC6XpRDddi4LQ09/KlGDnN0hEJ4gmL0qSXJY0ziNBM6QdHNqav672h9QNtfWzHVb0RB5lNfgQL9Kpuz9FptdhptwNtqJfloXZUmmdZfOD3w6EC9yBmT/u9mrJLKwHgJoz835Pzf50Mms5ZM2Jv2PTNcHv71aTTiFayDBb9dQ9ofEyWP3smHhJ7N2KzeNMpPnwfSk3R2Q+iN3tYyJh6rm5saIIae9wg2/tLUxr5z1aFvTv5nBoyI93hZZfCSnqHWFqQyaGfD9naLl+9V/2kAp5zaykgJm0SJq4SSnLJXHozkAuSQyTYlGWf51pqo8Q2wk5cZRJJshzzGF+74yncr5LRrJ2zqQi2wc+s06H1E6EHqPJXefmbY1+OHb3upQ7k/YAAAVNUlEQVRmG438nWlw3ekaqXAMxNRHhuS74bwUZ/nmf97I8A9zl9A3SDliOs9L7sWWMk2rpTLd2Ssszr5lILS9KHSTLBXx+LuvV1PgFDDsSjuF+2bgPxMKu/7wS4feOp3MGlfV9vbWAGQfPawd5saedE6SGhGEXICsEZt/0ppcEF8kDW25Ix1HGNFrUfnXYF3srQPfpGbpsYtUx2JPCEfZG9+IP5ZuqQSXqj/tBFxmAjpqAVK0dSDV6Xev7F9/LOsTv5XExEnS8LdrHEEyTi9lRohjMF1e6UDWnaA2YitCmKLjB6A9PRDo61Phr+CP2Ser8a7VzlerFFZ/P+bTqz8JjQS2AGT/90zH7XsH5lOV0Af3YBWE1xjm9N+W5oObF45lcq6WvRQ6F9/4P2/X8tREtsbv39KVul2gdzZdpytelUXu0Z7wcHHbzo08sjChRV6LrtT04MzcDZCKOjMLqq9WAsMCM2iCzsJBGR7DQp6SwEIgigILBCyGx99wzzndnXSS7hCSaG8sIUD/zne+7/t9j/Od9O/cwTevzMokF4r+mWEIycJnWa5zcheyC8Jbv1N5iWAEX/PaGFajjthC4VAozBfLfls5R+UnHcaAtvPAQ704TYZB5nb7/VvXJIPK3sQlRx9NGp/rZWxBqiS1C9onq+5uV5bVIPjNjD1zrJk+tdiqkHw6EGEWLv+lCcSWPuHbg/6kmngiJiJtujTRpy4LMeQnruNu/abHMr5vokeWdAT/w0RAJrk+FHARSTGNv2uHaoHgDgbxZruFFFOWIbmirRggoDMC97WZHhV7Rg6S6nIiyqApfGNMrY0Dd3oz4kiDHAy9SI5tNEAOj7N/KGPV8qH1OE8ASGSUIZQ59bfywvPKre14LBaC0DkSi02OO87hfIsodhcHpOMkBhVNHhlh+JisN7OpxwLViLCHosn5lN2vnxuB1NvwfFw7h8Nw8Bopxgzj43BwCNY4CZfTWxE6TDNboV/CDS6NMWT9aRQ3rLwLamN9759aV80HxJOYGtX3Veb00R4qdVrMPoYVnoh8gaLxZB7QV+mj0kPFcfoHC6ptOqkGOigUuazgqeEoKuTkGh4HvTLuc2YVP0lLXKed4ZGV5uyMctFAXOPOqVHthbIWpEqSUgmaS1hN6vAf2tC2koOa0oF8paZADCYIzOLj+oFmNzEWRyu4hffHaAxPGSWx8Hdor+0XELydAcjtSP+f2tJmnyIkVV09GY/dpe2FZu7n7R1Ibc7p8+rVM8PG0lWDbTS3T18Q3GIzEdfRcZE5BGsgSPz9Se3yEqOx6DyJx0IYSMWx2KtXBSgcbYPHlG3dh8kaPZsOAUBfRv2h5xu7SROtfVQuriO1ACAbMDqdUB3bXObqCUIvSdYOJCZikyvHYsChGbEepA1q95tTM3U8kd4/MoAwQ7mFlUuVW45HnweIBwXnh6rJMonAq1DAS18JBAU3Ut5trEmV+1vbn6iKF00E+50hnTjjqMgIpOE8czM3jX/h26xYt3xA1iAcifZZNZghDiFR353si8GgIDD45RGFmHqPr2dSf2YDc0v1xF1maQsMDThy014XfhAKP4p1JiBNirNmIiJZto7v0OQOuZFEYnJyZWuX0MlwOM2QIxQ1rtJf5Oarg2LHYUTTgUZHnYmEJdjV/TmAgPccnFCDEnMlJH2GtSKKLgId8dgzJ9c1GZ8OSam47JqDShBqxP+Tsn0iNFqPMP5jkhBhD6O1zOcA4lFgtZbbMs9RXTS0PoCg6zX0RydmVtLx2Fc+aZ6ilxMTAzeoSmL75AeIo2NL0aNOiWRbjMk+MGb7HBKxH0CocDS07pwgrWfppb2LmIdz+IG7M07sQ2W8OvFqX4W0S52/CQdOkqIQgc5FAfGoij+DQXevzw+dA82CsCn2YjrwWp7H2UeLymOxQBojHJSorlnrXlLcjULr+QLgrle6nEoYKzF7gP0IkqV0rGvL36+rRG1NnXPySSVu9XgpngjCkA32oyBR7KOla4gXtg0W49ctgLDjnJ9DxOmWdcUTDFFqOYARkBimm8Y5JBKvSiO1/bU4RMnIp/qob7SLlRDntyGX1ESiEdJdhrNXYzTpukRBl0SvI3P+VptiwT4oGYh9nCMC8e5Q1i2qPhqGXqIYcjIWVfrf8fb2aHhRZ1MqkJq1/aBACKaCzXCcxxTgPInniTlbQIahAld6JCKoBkTqsYG8pUXIN86XCgRsQIgEYvuFz9c5USU/3ZyaUCByH8tB1eOnvoXcCuwfotR7an2aMr2aYdgxMoCi0UFuBbgMSY3qIgoJMLBLHEccDutQgfRUlggEoPDAgQRSsY6b7a0YEHDBMOLiT5MtJnWGV9S5l91vKLWIe0vjl/fQ/5qgjOf635PI9lnjZAnRrgMkEjUcUfnWggrkra00IGAXcjLWkKs8dhamXVJA3F5SOP/IvoXFvEHV7uEbBDA5PFowKhpwtaD4o7ddqSU5PE6+g0cGQxLZ2iOQXKLJejWX210KEHcbiglkP2JLXlLxzAECXFtLyI6GRlas7WSVP7Q471NtFJ484qiIz2Wl44EaSp8k0G/xRMMKNnhVUWi4NfmVvFoCEA9aFUlGjJAEGHZHtvV1HcWjiE1OJ/NezsiOT60PocXA3Zm3IXbrGTNMdrJdO2AAj4ecAyGYXrcheaZoIMIHFHTKMqZR6oyvHSMQEOhMRJ3OkeVTDxyBtcTegh4g212biZOMutArs+TvWnd27Cb/XiQQ8FMUckj/SCCR1ImIJl9B3JwIKaH+5ZZC3NX730TXUmxl3vy7pkBm+WwaSf/LcqF+XnrKWwLpnFBrn2pEpHaCIra+ikXRcTQRgoXIQnvaB/N98o1ZGW08W88GJ761TCY4cq1pCgiIIBh6BZS2bTVrbq850LkUwu5iuqUwFCAQaAm8zPfhm2ZvGMuOGWeAuS9mlzizMx9pIIq2q9S6Yb96hLCBciqIe0yLvYVe9MmOI/64uN+RB8iOmUTC2dWij2DQ7Id/VMuD1kdc2YyCtP9pkneL23FFhiPHhJ4WigOHvfQVMXkaEFfmkoJQ1ofqV5kRE3G3OiTK9OxgCkgVZyyC2GA4FAopSC1a+LPYDrBL5jtfFfId3ENA7O+5K/mB9HiZAz53mfSX/DV/xSpVfKNltEHCy2c+R3iPuia2OdRhXNbKfvVQkQe8+ZX9rpfxZbv2plTVOXeWyd8ycm6pmpS/ejpZRMTG9tXywMv20XkyIsC1Q/urcy6AmsicdALue5nbWVh/Tr2i/0keP6InnmnaX3MYnmOKeXx3unvte4iRW/dwuOIKrDHRoBhyo+lBmEJAqT6JzGSph/6G11ryOcQFXIeS/TKsntrfflfU4VTwcI4R2T8YsGDe7sgmxc5RWG16a9IIeO/fS+dwEE3iMkZU2FMFWed8fs/ugaSUEppaEYWigk3cKcAzm+wcc3LB/MRFA6xWwsvmW3bkoGsva3fYpo5T64lDGfWLz/jTKEorB/3h5cI9hkmOCDHNNvYj++tlzrStBrRP71uwTZarMWyC54Yav5Yb1rXcKqI3ALHPwv69klIya91uptOzWr/KPv7+bD9pX6g1CmpHe2290KpHz1T1eiHslz0uLbXETDEeb1vAu8nUR04fA2iUVMdsHZ+T/vOH9bo/KYtpE2WLqI+c/dln7It3k717lwc85kpiZbWVwcw3ZKPO6WRz6msbmrV6xjNfAAjo5ZHcW32DYvMHr7Fjv4Anx7oAo6Kq530oephnvgAQVnnQhJwP21YjBlaZqsePyrZCjZrdfVJcWeGMj2uMckqVXmQxKuJJ12EkUjYgbZLWHMZ8CSAaC7rCeNZgf3Bpudn3qLzyoIeZLwGkqU83+572v+bcyFf0zJQHh95FNsx/ASDuD45UNVoUWr/Gquv7WM59Rf1SZDb+TNaqPV0VqXCv85ev4vvkfN5y4NC7E+v4zw+kadQQkNlQGAaeMR+8wnh3GXB4NByDBXC/EoGkuXW6I7WVZ2NP68qHgy6ovlAaENdoVrMjdoP1Xub+xosyWBCtge8ZXz4gwJTYgzYuuyMVB+JVM4isestlr+jhgnAUBIRdghwcaDZNmGQ9uDWAnWEulb6z7muyHi7w84VcEKw6CdtvGasMOs36nc81IW3fA7ulehGg+/NCcRQApC2lBjVeA/Eel8y6tm1jSDlabteWimOXOiOO04F4DAv/fXdKyS3azylb9dRRBJYoEPuBxttf8mUDwg4ZX/MaCVTtHxyWh0s4TvbLJWqIS1M+0kJYJiBgIfM98RDRnyLWh2RsG8guOEszWS4tDWf7gykfkPrcMxgNjjynff7LKn7nYmlu8GER8ijg9r2sp+7/7Z3NUxPZFsD/hvcvpLqmB33l5kxn8nzAInOlSfjYtOkSClgMSU8QwqKrn13ADJuQvPhKZ6EpeQnqQqOMYWQzEUo+XAw89AFxMWjkCbKQqIwj8ze8vunbkkgSku6mtSzuliLpX86955x7vrqjHEfNGnSUz8oduDRXQaoyDlIe5Nn+PqVyHNQ6GF2ajqyp9qPKgfAd+1WsXI7jz7BglIP8ToNVRzrLvXv6hrNYx1vp1eAJB82Rx1D1n1MaxLFY5FllsTQHehTwGMJgtLDPdR2/R0kQRzbv8WVJUveUhEphuGIzSxHOCIfjf+Wju/pA8uWhmDiZUmVBTZUQifuP5MyUIY73bsmSrn8vAdI5nncuZFaWZTVVSj8uqrWoyf7ZuR1DHJ33yTHXGX4mII7ZAvXfmd9ZKauLpnO3g2IgAxmh77HfmDknn+vW6xUQkFqbtJc/YZ47P+CgaUUeuU3VcGk/R5O/c90fMiSPjtF9DrY+EDx0k3ZNzK2++/Pd8gf3PlEWpViMVSthz93Yv6184bCfM8N80K361TcBGSmpVEVRpmvWPZ5OpygrYjn+8gPD4n7tDws+Y3q3r/Koz0Eg35bp+bZROEnJeWVc4UEXuMNUfF4QwpFw0JBAzlZ3Oy8L8rIkh2ijf2rGrYWOhIRrCvLUAD24K4TCkYseY2q3V4/XXgrk1zICGa7/a26KRjvLKgelhpx6m0iNLQlCJOyPeEwxHztwiCA507FwWgHp6QY7kpyyjerffY5QfGI53rTkF/yRwCvOiEC022DNUzAF5LdSJ91GH+e854BJKk+7iBRHRV7aSAueEJ96kFn3hAOCjzfiKPIk6zxglEMDOV9qY4m2RvCeglpcynAWsbJNMSnXQ56uxIQQEIS+XcGQPHqdqjs9aJhDA7GnxOIHBNcW//MyeC8DrjjGriOF7vL90etCJvxH5p3fY+iYO42awf2+lqN/5Q5y7t9ZuA7n25vwcM2RG8WCGynvzL9NpjOZSP9uIGSIQyvKaDaBo8BpZPhNMZ+Ctqlzd1/etLu5C5xyRnBx2rEscq933o78OLdkSF05siSpdo0Dk0HIDGeiDsdtuf6cxE2Y3j7/g+Mn6HKlJFxqfome3OpfD288NRRlcCxqQVFTOD4AOZ0XLmHVkqe+Rkh1T//7/HbXnVdZRIu0osjGXvPvMi8MuYlacYlR81ECZE8L17SLubN+jG+BRIS9N+G4/wiyiLXJtDwwuxWfWDckD/5GsV5m80D27OK971TJDzMxDwrLb091KRoyK8miLKGrK9GraSPiYC7oDpZUCPK+vGiII0yNML1DXZQSGazpnyBa8Ryb/xuPLRmxgsyyaJ7aLS8ReoEhsm8Abyv1o9TE4z9nWVampanlMUP2S/Ou6OYgHBaIFg89QQaqK77DVBtF8UitUcwiSbQdEx4b2hCdCS22y8GhgUBvDKmvrq4nSj7hek5T3EN11PAiq9jMmpChH/LipaKt/maDgIdXLh0teESD+nX8Ih7ScF5awH9MIdZZesxkZd4Va5aXeFA4iOEDuMvmJKncrruPJ0J1jeZuoSncz3DXyPF4rh1zHxw2SE4sAH9Tv/FEVzJBb4M3hXu8MIgs3TbAQVoUzT3mZUB+f6rZ+C+B8TZwZ59cdbfkOjNQdFD/3tasOW3uMS8N4hAHg6e1AgBmfGP7u7HhrOvnbuWK6IoO665psJPoJfUfAGtAam30FQLyDdN57dnayPdoE4kt9QglUesvetUusUzuNbAIBA9pGiTjNy7XvfUjru34m1spdOXvrAux13RaY60iw5TLx4EgTETgfVizUMT63tqcrx2Gk5T3REe8uw3FEJrU9SDM+1giBxaA9L+Iyth4K4uY+Gu/cCOnwCsL7K0QeFFsBj3V8yRaJTU1dVgchTfEFCoIBGF9vwBvFmBcnBr9h6J93fHkrB4DoCVbdKY+qgRh+oqUl5zjIBG0I7bx2TmwR5vcsXlOP8fAK7ACxFssF/UFwFWoHxpvaBuCDuRanddxodPKoZp9YAWIY3RfjDEHwlyBkz9kG+rQWjtyzcy9qloiJAZnUozhYJB/FY4qdWog9nvwVeOTYeZhs3LWo5NV/6p2ddpNzc7hcuyBeAtjc0hzUerX4KubPYNQxyIUm9iq1kki5nyoG8AikOnCSo1ZDaSDg6+32xEHb6hofLJa5UuCDE1BsAxkvDAtSEoKv4QzACNBZnobRmyxsddV7ixSat7KgXUgFxJ5qUNqjdwQv8Az03o4PGk0hVxjmz49HM0WcOTbkcAK0kpmjvlJgVNuWEMvQPvxWoRcyeoMM0lytwbBUhC8o7dW1DnLkgaSGzCwi3VPyhVfSVdVe1R/qeJ6cHMlwnk20sJb9R3W3Qxx8vDtA98fevBU76rCJ6QastUajjyQ2mR8wmcnIfJbWogLDy7EUslKysaq5u2yKgd92yKOPBC765H/9ygRxAJ5k6qNVqOBvYh1PchUkUZQ/RL6NoDVILy/N+kiQwboFk6bR0qPbePISlQRSDWt7faExRx5LgqazASWnbnkMx5juRczzU1LaXq95QtVDFI3qgYZ4COAqJNh+a3V1Vl1Bk0bsfGBTKgXuR+n/ZXnEdqcJlQAmBEOUt1h1WmR0xszKDrlz1QuD+ZXc1MfBkFIJbE0g2TUtJKuPO/J9FgvjwOmy2ISxLKSay697qlUIGqcgZqCTwcEZwCkF6ubc1uzlVsQBs+gs57joJLy0eueSCQ880CodGOpHdvWcxxU5M/jd4EJyztnuGrOx4APPjUQ3CcWDmcqFYhazDD4ETgqaE06wwcCFVaQMjlP7RByBqaAMJ6KK8tyNvQKB58mSOULv93MMrf9MEGUyxj9sThMBXE4pbtB+AxAoN8H8FmAfMx1BHIEcgRyBHIEcgRyBHIE8imC/OUzWf8HaHDGjHo2Eq0AAAAASUVORK5CYII=";
7035
7386
 
7036
- var EmailChangeVerificationErrorContent = function () {
7037
- return (React.createElement(react$1.Box, { width: "full" },
7038
- React.createElement("p", null,
7039
- React.createElement(i18nPkg.Trans, { i18nKey: "errorPage.EMAIL_CHANGE_VERIFICATION_ERROR.content.email" },
7040
- React.createElement("strong", null))),
7041
- React.createElement("p", null,
7042
- React.createElement(i18nPkg.Trans, { i18nKey: "errorPage.EMAIL_CHANGE_VERIFICATION_ERROR.content.workingHours" },
7043
- React.createElement("strong", null))),
7044
- React.createElement("p", null,
7045
- React.createElement(i18nPkg.Trans, { i18nKey: "errorPage.EMAIL_CHANGE_VERIFICATION_ERROR.content.phone" },
7046
- React.createElement("strong", null)))));
7047
- };
7048
-
7049
7387
  var ContactSupport = function (_a) {
7050
7388
  var t = _a.t, _b = _a.language, language = _b === void 0 ? 'de' : _b;
7051
7389
  var languageToUse = language === 'en' ? 'de' : language;
@@ -7088,6 +7426,19 @@ var BackToHomepagePrimary = function (props) {
7088
7426
  return React.createElement(BackToHomepage, __assign({}, props, { variant: "primary" }));
7089
7427
  };
7090
7428
 
7429
+ var EmailChangeVerificationErrorContent = function () {
7430
+ return (React.createElement(react$1.Box, { width: "full" },
7431
+ React.createElement("p", null,
7432
+ React.createElement(Trans, { i18nKey: "errorPage.EMAIL_CHANGE_VERIFICATION_ERROR.content.email" },
7433
+ React.createElement("strong", null))),
7434
+ React.createElement("p", null,
7435
+ React.createElement(Trans, { i18nKey: "errorPage.EMAIL_CHANGE_VERIFICATION_ERROR.content.workingHours" },
7436
+ React.createElement("strong", null))),
7437
+ React.createElement("p", null,
7438
+ React.createElement(Trans, { i18nKey: "errorPage.EMAIL_CHANGE_VERIFICATION_ERROR.content.phone" },
7439
+ React.createElement("strong", null)))));
7440
+ };
7441
+
7091
7442
  var Nonce = function () {
7092
7443
  return null;
7093
7444
  };
@@ -7149,39 +7500,76 @@ var config = {
7149
7500
  secondaryAction: Nonce,
7150
7501
  },
7151
7502
  };
7152
- var ErrorPage = function (_a) {
7503
+ var ErrorPageContent = function (_a) {
7153
7504
  var statusCode = _a.statusCode, language = _a.language, onButtonClick = _a.onButtonClick;
7154
7505
  var PrimaryAction = config[statusCode].primaryAction;
7155
7506
  var SecondaryAction = config[statusCode].secondaryAction;
7156
7507
  var Content = config[statusCode].content;
7157
- return (React.createElement(TranslationProvider, { language: language, scopes: ['errorPage'] },
7158
- React.createElement(i18nPkg.I18nContext.Consumer, null, function (_a) {
7159
- var t = _a.t;
7160
- var actionButtonProps = {
7161
- t: t,
7162
- language: language,
7163
- };
7164
- return (React.createElement(PageLayout, { maxContentWidth: "md", header: null },
7165
- React.createElement(Flex, { justifyContent: "center", pt: { base: '3xl', md: 'xl' } },
7166
- React.createElement(Stack, { align: "center", gap: "4xl" },
7167
- React.createElement(SimpleGrid, { columns: 2, gap: "4xl" },
7168
- React.createElement(AutoScout24AppLogo, { width: "2xl", height: "xl" }),
7169
- React.createElement(MotoScout24AppLogo, { width: "2xl", height: "xl" })),
7170
- React.createElement(Separator, { orientation: "horizontal" }),
7171
- React.createElement(Stack, { align: "center", gap: "2xl" },
7172
- React.createElement(AspectRatio, { ratio: 4 / 3, css: { maxWidth: '400px', width: 'full' } },
7173
- React.createElement(react$1.chakra.img, { src: config[statusCode].illustration, alt: "a ".concat(statusCode, " error occurred.") })),
7174
- React.createElement(Stack, { align: "center", gap: "md" },
7175
- React.createElement(H1, { textAlign: "center" }, t("errorPage.".concat(statusCode, ".title"))),
7176
- React.createElement(Text, { textAlign: "center" }, t("errorPage.".concat(statusCode, ".description"))),
7177
- React.createElement(Content, __assign({}, actionButtonProps))),
7178
- React.createElement(SimpleGrid, { columns: {
7179
- base: 1,
7180
- sm: config[statusCode].buttonColumns,
7181
- }, alignItems: "center", gap: "md" },
7182
- React.createElement(PrimaryAction, __assign({}, actionButtonProps)),
7183
- React.createElement(SecondaryAction, __assign({}, actionButtonProps, { onButtonClick: onButtonClick }))))))));
7184
- })));
7508
+ var t = useI18n().t;
7509
+ var actionButtonProps = {
7510
+ t: t,
7511
+ language: language,
7512
+ };
7513
+ return (React.createElement(PageLayout, { maxContentWidth: "md", header: null },
7514
+ React.createElement(Flex, { justifyContent: "center", pt: { base: '3xl', md: 'xl' } },
7515
+ React.createElement(Stack, { align: "center", gap: "4xl" },
7516
+ React.createElement(SimpleGrid, { columns: 2, gap: "4xl" },
7517
+ React.createElement(AutoScout24AppLogo, { width: "2xl", height: "xl" }),
7518
+ React.createElement(MotoScout24AppLogo, { width: "2xl", height: "xl" })),
7519
+ React.createElement(Separator, { orientation: "horizontal" }),
7520
+ React.createElement(Stack, { align: "center", gap: "2xl" },
7521
+ React.createElement(AspectRatio, { ratio: 4 / 3, css: { maxWidth: '400px', width: 'full' } },
7522
+ React.createElement(react$1.chakra.img, { src: config[statusCode].illustration, alt: "a ".concat(statusCode, " error occurred.") })),
7523
+ React.createElement(Stack, { align: "center", gap: "md" },
7524
+ React.createElement(H1, { textAlign: "center" }, t("errorPage.".concat(statusCode, ".title"))),
7525
+ React.createElement(Text, { textAlign: "center" }, t("errorPage.".concat(statusCode, ".description"))),
7526
+ React.createElement(Content, __assign({}, actionButtonProps))),
7527
+ React.createElement(SimpleGrid, { columns: {
7528
+ base: 1,
7529
+ sm: config[statusCode].buttonColumns,
7530
+ }, alignItems: "center", gap: "md" },
7531
+ React.createElement(PrimaryAction, __assign({}, actionButtonProps)),
7532
+ React.createElement(SecondaryAction, __assign({}, actionButtonProps, { onButtonClick: onButtonClick }))))))));
7533
+ };
7534
+
7535
+ var ErrorPage = withTranslationProvider([
7536
+ 'errorPage',
7537
+ ])(ErrorPageContent);
7538
+
7539
+ var Tooltip = function (_a) {
7540
+ var children = _a.children, _b = _a.placement, placement = _b === void 0 ? 'bottom' : _b, _c = _a.maxWidth, maxWidth = _c === void 0 ? '6xl' : _c, label = _a.label;
7541
+ var _d = React.useState(false), isOpen = _d[0], setIsOpen = _d[1];
7542
+ // eslint-disable-next-line @typescript-eslint/no-explicit-any
7543
+ var childrenWithProps = React.cloneElement(children, {
7544
+ onMouseEnter: function () { return setIsOpen(true); },
7545
+ onMouseLeave: function () { return setIsOpen(false); },
7546
+ onClick: function () { return setIsOpen(true); },
7547
+ });
7548
+ return (React.createElement(react$1.TooltipRoot, { positioning: {
7549
+ placement: placement,
7550
+ }, open: isOpen },
7551
+ React.createElement(react$1.TooltipTrigger, { asChild: true }, childrenWithProps),
7552
+ React.createElement(react$1.TooltipPositioner, null,
7553
+ React.createElement(react$1.TooltipContent, { maxWidth: maxWidth },
7554
+ React.createElement(react$1.TooltipArrow, null,
7555
+ React.createElement(react$1.TooltipArrowTip, null)),
7556
+ label))));
7557
+ };
7558
+
7559
+ var FormControlSection = function (_a) {
7560
+ var children = _a.children, errorMessage = _a.errorMessage, id = _a.id, label = _a.label, hint = _a.hint, tooltip = _a.tooltip;
7561
+ var isInvalid = !!errorMessage;
7562
+ return (React.createElement(react$1.Field.Root, { id: id, invalid: isInvalid },
7563
+ React.createElement(react$1.Box, { border: "1px", borderRadius: "sm", borderColor: isInvalid ? 'red.500' : 'gray.400', padding: "2xl" },
7564
+ React.createElement(Flex, { flexDirection: "column" },
7565
+ React.createElement(react$1.Box, { mb: "lg" },
7566
+ React.createElement(Flex, { alignItems: "center" },
7567
+ label ? (React.createElement(Text, { color: "gray.900", textStyle: "heading4" }, label)) : null,
7568
+ tooltip ? (React.createElement(Tooltip, { label: tooltip },
7569
+ React.createElement(InformationIcon, { ml: "md" }))) : null),
7570
+ hint ? (React.createElement(Text, { color: "gray.900", textStyle: "body" }, hint)) : null),
7571
+ children)),
7572
+ React.createElement(react$1.Field.ErrorText, null, errorMessage)));
7185
7573
  };
7186
7574
 
7187
7575
  var FullHeight = function (_a) {
@@ -7194,30 +7582,29 @@ var Link$1 = function (_a) {
7194
7582
  return (React.createElement(react$1.Link, __assign({ target: target || (isExternal ? '_blank' : undefined), rel: rel || (isExternal ? 'noopener noreferrer' : undefined) }, props)));
7195
7583
  };
7196
7584
 
7197
- var GalleryHeader = function (_a) {
7198
- var currentSlide = _a.currentSlide, slidesCount = _a.slidesCount, onClose = _a.onClose, language = _a.language, children = _a.children;
7585
+ var GalleryHeaderContent = function (_a) {
7586
+ var currentSlide = _a.currentSlide, slidesCount = _a.slidesCount, onClose = _a.onClose, children = _a.children;
7587
+ var t = useI18n().t;
7199
7588
  var recipe = react$1.useSlotRecipe({ key: 'galleryHeader' });
7200
7589
  var styles = recipe();
7201
- return (React.createElement(TranslationProvider, { language: language, scopes: ['galleryHeader'] },
7202
- React.createElement(i18nPkg.I18nContext.Consumer, null, function (_a) {
7203
- var t = _a.t;
7204
- return (React.createElement(react$1.Box, { css: styles.container },
7205
- React.createElement(react$1.Box, { css: styles.grid },
7206
- React.createElement(SimpleGrid, { columns: {
7207
- base: 2,
7208
- md: 3,
7209
- }, alignItems: "center" },
7210
- React.createElement(react$1.Box, { hideBelow: "md" }, children),
7211
- React.createElement(react$1.Box, { css: styles.countContainer },
7212
- React.createElement(react$1.Box, null, t('galleryHeader.imageCount', {
7213
- x: currentSlide,
7214
- of: slidesCount,
7215
- }))),
7216
- React.createElement(react$1.Box, { css: styles.closeContainer },
7217
- React.createElement(Link$1, { "aria-label": "Close gallery", onClick: function () { return onClose(); } },
7218
- React.createElement(CloseIcon, { color: "white" })))))));
7219
- })));
7220
- };
7590
+ return (React.createElement(react$1.Box, { css: styles.container },
7591
+ React.createElement(react$1.Box, { css: styles.grid },
7592
+ React.createElement(SimpleGrid, { columns: {
7593
+ base: 2,
7594
+ md: 3,
7595
+ }, alignItems: "center" },
7596
+ React.createElement(react$1.Box, { hideBelow: "md" }, children),
7597
+ React.createElement(react$1.Box, { css: styles.countContainer },
7598
+ React.createElement(react$1.Box, null, t('galleryHeader.imageCount', {
7599
+ x: currentSlide,
7600
+ of: slidesCount,
7601
+ }))),
7602
+ React.createElement(react$1.Box, { css: styles.closeContainer },
7603
+ React.createElement(Link$1, { "aria-label": "Close gallery", onClick: function () { return onClose(); } },
7604
+ React.createElement(CloseIcon, { color: "white" })))))));
7605
+ };
7606
+
7607
+ var GalleryHeader = withTranslationProvider(['galleryHeader'])(GalleryHeaderContent);
7221
7608
 
7222
7609
  var Grid = react$1.Grid;
7223
7610
  Grid.displayName = 'Grid';
@@ -7397,30 +7784,183 @@ var List = {
7397
7784
  Item: Item,
7398
7785
  };
7399
7786
 
7400
- var Chip = function (_a) {
7401
- var children = _a.children, onClick = _a.onClick, href = _a.href, ariaLabel = _a["aria-label"], rest = __rest(_a, ["children", "onClick", "href", 'aria-label']);
7402
- var recipe = react$1.useRecipe({ recipe: chipRecipe });
7403
- var recipeProps = recipe.splitVariantProps(rest)[0];
7404
- var styles = recipe(recipeProps);
7405
- var handleClick = function () {
7406
- onClick === null || onClick === void 0 ? void 0 : onClick();
7407
- };
7408
- var handleKeyDown = function (event) {
7409
- if (event.key === 'Enter' || event.key === ' ') {
7410
- event.preventDefault();
7411
- onClick === null || onClick === void 0 ? void 0 : onClick();
7787
+ var SearchField = function (_a) {
7788
+ var name = _a.name, _b = _a.placeholder, placeholder = _b === void 0 ? '' : _b, _c = _a.ariaControls, ariaControls = _c === void 0 ? '' : _c, searchQuery = _a.searchQuery, setSearchQuery = _a.setSearchQuery, _d = _a.onFocus, onFocus = _d === void 0 ? function () { return null; } : _d, _e = _a.onBlur, onBlur = _e === void 0 ? function () { return null; } : _e, _f = _a.autofocusOnDesktop, autofocusOnDesktop = _f === void 0 ? true : _f, autoComplete = _a.autoComplete;
7789
+ var isDesktopOnly = useMediaQuery({ above: 'md' });
7790
+ var inputRef = React.useRef(null);
7791
+ React.useEffect(function () {
7792
+ var _a;
7793
+ if (autofocusOnDesktop && isDesktopOnly) {
7794
+ (_a = inputRef.current) === null || _a === void 0 ? void 0 : _a.focus();
7412
7795
  }
7796
+ }, [isDesktopOnly, autofocusOnDesktop]);
7797
+ return (React.createElement(Input, { ref: inputRef, icon: MagnifierIcon, name: name, placeholder: placeholder, value: searchQuery, setInputValue: setSearchQuery, size: "lg", isClearable: true, debounce: true, onFocus: onFocus, onBlur: onBlur, "aria-controls": ariaControls, autoComplete: autoComplete }));
7798
+ };
7799
+
7800
+ var HighlightedText = function (_a) {
7801
+ var text = _a.text, _b = _a.highlightIndices, highlightIndices = _b === void 0 ? [] : _b, textProps = __rest(_a, ["text", "highlightIndices"]);
7802
+ if (highlightIndices.length === 0)
7803
+ return (React.createElement(Text, __assign({ as: "span" }, textProps), text));
7804
+ var result = [];
7805
+ var currentIndex = 0;
7806
+ for (var _i = 0, highlightIndices_1 = highlightIndices; _i < highlightIndices_1.length; _i++) {
7807
+ var _c = highlightIndices_1[_i], start = _c[0], end = _c[1];
7808
+ // Append the non-matching part
7809
+ result.push(React.createElement(Text, __assign({ key: "non-highlight-".concat(currentIndex, "-").concat(start, "-").concat(text), as: "span" }, textProps), text.substring(currentIndex, start)));
7810
+ // Append the matching part
7811
+ result.push(React.createElement(Text, __assign({ key: "highlight-".concat(start, "-").concat(end + 1, "-").concat(text), as: "u", fontWeight: "bold" }, textProps), text.substring(start, end + 1)));
7812
+ currentIndex = end + 1;
7813
+ }
7814
+ // Append the remaining non-matching part
7815
+ result.push(React.createElement(Text, __assign({ key: "non-highlight-end-".concat(text), as: "span" }, textProps), text.substring(currentIndex)));
7816
+ return (React.createElement(Text, __assign({ as: "span" }, textProps), result));
7817
+ };
7818
+
7819
+ var SearchableListItemLabel = function (_a) {
7820
+ var label = _a.label, isSelected = _a.isSelected, _b = _a.showChevron, showChevron = _b === void 0 ? true : _b, _c = _a.highlightIndices, highlightIndices = _c === void 0 ? [] : _c, _d = _a.isCheckbox, isCheckbox = _d === void 0 ? false : _d, facet = _a.facet;
7821
+ return (React.createElement(Flex, { width: "full", justifyContent: "space-between", whiteSpace: "pre-wrap", fontWeight: isSelected && !isCheckbox ? 'bold' : undefined, color: "gray.900", cursor: "pointer" },
7822
+ React.createElement(Flex, null,
7823
+ isSelected && !isCheckbox ? (React.createElement(CheckmarkIcon, { w: "xs", mr: "xs", color: "gray.900" })) : null,
7824
+ React.createElement(HighlightedText, { text: label, highlightIndices: highlightIndices, textAlign: "left" })),
7825
+ React.createElement(Flex, { as: "span" },
7826
+ facet ? (React.createElement(Text, { as: "span", color: "gray.400", mr: showChevron ? 'lg' : undefined, ml: "sm", minW: "lg", textAlign: "right", fontWeight: "regular" }, facet)) : null,
7827
+ showChevron ? (React.createElement(ChevronRightSmallIcon, { color: "gray.500", w: "sm", h: "sm" })) : null)));
7828
+ };
7829
+
7830
+ var isCheckboxType = function (listItem) {
7831
+ return !!listItem.isCheckbox;
7832
+ };
7833
+ var SearchableListItem = function (props) {
7834
+ var isCheckbox = isCheckboxType(props);
7835
+ var label = props.label, value = props.value, facet = props.facet, isSelected = props.isSelected, _a = props.showChevron, showChevron = _a === void 0 ? true : _a, _b = props.highlightIndices, highlightIndices = _b === void 0 ? [] : _b, children = props.children;
7836
+ var labelProps = {
7837
+ label: label,
7838
+ isSelected: isSelected,
7839
+ showChevron: showChevron,
7840
+ highlightIndices: highlightIndices,
7841
+ isCheckbox: isCheckbox,
7842
+ facet: facet,
7413
7843
  };
7414
- var commonProps = __assign({ css: styles, 'aria-label': ariaLabel }, rest);
7415
- var isLink = Boolean(href);
7416
- var asType = isLink ? 'a' : 'button';
7417
- return (React.createElement(react$1.Flex, __assign({ as: asType }, (isLink && onClick ? { href: href } : {}), (!isLink ? { type: 'button' } : {}), { onClick: handleClick, onKeyDown: handleKeyDown }, commonProps),
7418
- recipeProps.selected ? (React.createElement(react$1.Box, { mx: "xs", color: "currentColor", display: "flex", alignItems: "center", justifyContent: "center" },
7419
- React.createElement(CheckmarkIcon, { height: "xs", width: "xs" }))) : null,
7420
- React.createElement(react$1.Box, { as: "span", whiteSpace: "nowrap" },
7421
- React.createElement(react$1.Text, { textStyle: "body-small" }, children))));
7844
+ var commonProps = {
7845
+ value: value,
7846
+ paddingY: 'sm',
7847
+ name: "searchable-list-item-".concat(value),
7848
+ 'aria-current': isSelected,
7849
+ };
7850
+ var checkboxProps = __assign(__assign({}, commonProps), { label: React.createElement(SearchableListItemLabel, __assign({}, labelProps)), checked: isSelected, indeterminate: isCheckbox ? !!props.isIndeterminate : false, fullWidth: true, variant: 'alignTop', onChange: isCheckbox ? props.onClick : undefined });
7851
+ return (React.createElement(List.Item, { css: { breakInside: 'avoid' }, paddingLeft: props.paddingLeft },
7852
+ isCheckbox ? (React.createElement(Checkbox, __assign({}, checkboxProps))) : (React.createElement(react$1.Button, { value: value, paddingY: "sm", name: "searchable-list-item-".concat(value), "aria-current": isSelected, onClick: !isCheckbox ? props.onClick : undefined, width: "full", display: "flex", paddingX: "0" },
7853
+ React.createElement(SearchableListItemLabel, __assign({}, labelProps)))),
7854
+ children));
7855
+ };
7856
+
7857
+ var fuseOptions = {
7858
+ keys: ['label', 'children.label'],
7859
+ includeMatches: true,
7860
+ threshold: 0,
7861
+ ignoreLocation: true,
7862
+ minMatchCharLength: 1,
7863
+ shouldSort: false,
7864
+ };
7865
+ var mapItemsFromSearchResult = function (searchResults) {
7866
+ return searchResults.map(function (_a) {
7867
+ var _b = _a.matches, matches = _b === void 0 ? [] : _b, item = _a.item;
7868
+ var parentMatch = matches.find(function (match) { return match.key === 'label'; });
7869
+ var parentHighlightIndices = parentMatch ? parentMatch.indices : [];
7870
+ var childMatches = item.children
7871
+ ? matches.filter(function (match) { return match.key === 'children.label'; })
7872
+ : [];
7873
+ if (!item.children ||
7874
+ item.children.length === 0 ||
7875
+ childMatches.length === 0) {
7876
+ return __assign(__assign({}, item), { highlightIndices: parentHighlightIndices });
7877
+ }
7878
+ var itemChildren = item.children || [];
7879
+ var children = childMatches.reduce(function (accumulator, childMatch) {
7880
+ if (childMatch.refIndex === undefined) {
7881
+ return accumulator;
7882
+ }
7883
+ var child = itemChildren[childMatch.refIndex];
7884
+ accumulator.push(__assign(__assign({}, child), { highlightIndices: childMatch.indices }));
7885
+ return accumulator;
7886
+ }, []);
7887
+ return __assign(__assign(__assign({}, item), (children ? { children: children } : {})), { highlightIndices: parentMatch ? parentMatch.indices : [] });
7888
+ });
7889
+ };
7890
+ var empty = function () { return null; };
7891
+ var search = function (_a) {
7892
+ var query = _a.query, fuse = _a.fuse;
7893
+ fuse.options.minMatchCharLength = query.length || 1;
7894
+ return fuse.search(query);
7895
+ };
7896
+ var getFuseInstance = function (listItems) {
7897
+ // Not casting the instance will result in the options not being typed
7898
+ return new Fuse(listItems, fuseOptions);
7899
+ };
7900
+ var SearchableList = function (_a) {
7901
+ var listItems = _a.listItems, _b = _a.NoResults, NoResults = _b === void 0 ? empty : _b, _c = _a.EmptyQueryPlaceholder, EmptyQueryPlaceholder = _c === void 0 ? empty : _c, _d = _a.listAriaLabel, listAriaLabel = _d === void 0 ? 'searchable list' : _d, _e = _a.searchFieldOptions, searchFieldOptions = _e === void 0 ? {} : _e, _f = _a.listOptions, listOptions = _f === void 0 ? { columns: 1, childrenSpacing: 'md' } : _f, listRef = _a.listRef;
7902
+ var gray200 = useToken('colors', ['gray.200'])[0];
7903
+ var _g = React.useState({
7904
+ query: '',
7905
+ listItems: listItems,
7906
+ fullListItems: __spreadArray([], listItems, true),
7907
+ fuse: getFuseInstance(listItems),
7908
+ }), searchState = _g[0], setSearchState = _g[1];
7909
+ var _h = searchFieldOptions.placeholder, placeholder = _h === void 0 ? '' : _h, _j = searchFieldOptions.autofocusOnDesktop, autofocusOnDesktop = _j === void 0 ? true : _j, autoComplete = searchFieldOptions.autoComplete;
7910
+ var _k = listOptions.columns, columns = _k === void 0 ? 1 : _k, _l = listOptions.childrenSpacing, childrenSpacing = _l === void 0 ? 'md' : _l;
7911
+ var areaId = 'searchableList';
7912
+ var query = searchState.query;
7913
+ React.useEffect(function () {
7914
+ setSearchState(function (currentState) {
7915
+ var fuse = getFuseInstance(listItems);
7916
+ if (currentState.query === '') {
7917
+ return {
7918
+ listItems: listItems,
7919
+ fullListItems: __spreadArray([], listItems, true),
7920
+ fuse: fuse,
7921
+ query: currentState.query,
7922
+ };
7923
+ }
7924
+ var searchResults = search({ fuse: fuse, query: currentState.query });
7925
+ var filteredListItems = mapItemsFromSearchResult(searchResults);
7926
+ return {
7927
+ listItems: filteredListItems,
7928
+ fuse: fuse,
7929
+ query: currentState.query,
7930
+ fullListItems: __spreadArray([], listItems, true),
7931
+ };
7932
+ });
7933
+ }, [listItems]);
7934
+ var setSearchQuery = React.useCallback(function (newQuery) {
7935
+ setSearchState(function (currentState) {
7936
+ var trimmedQuery = newQuery.trim();
7937
+ if (!trimmedQuery) {
7938
+ return __assign(__assign({}, currentState), { listItems: currentState.fullListItems, query: trimmedQuery });
7939
+ }
7940
+ var searchResults = search({
7941
+ fuse: currentState.fuse,
7942
+ query: trimmedQuery,
7943
+ });
7944
+ var filteredListItems = mapItemsFromSearchResult(searchResults);
7945
+ return __assign(__assign({}, currentState), { listItems: filteredListItems, query: trimmedQuery });
7946
+ });
7947
+ }, []);
7948
+ return (React.createElement(Flex, { gridGap: "md", direction: "column", width: "full" },
7949
+ React.createElement(SearchField, { name: "searchableListSearchFiled", searchQuery: query, setSearchQuery: setSearchQuery, ariaControls: areaId, placeholder: placeholder, autofocusOnDesktop: autofocusOnDesktop, autoComplete: autoComplete }),
7950
+ searchState.query.length === 0 ? React.createElement(EmptyQueryPlaceholder, null) : null,
7951
+ searchState.listItems.length > 0 ? (React.createElement(List.Root, { ref: listRef, width: "full", height: "full", id: areaId, "aria-live": "polite", css: {
7952
+ columns: { base: 1, md: columns },
7953
+ columnGap: '4xl',
7954
+ columnRule: "1px solid ".concat(gray200),
7955
+ }, "aria-label": listAriaLabel }, searchState.listItems.map(function (item, itemIndex) {
7956
+ var parentKey = "".concat(itemIndex, "-").concat(item.value);
7957
+ var children = item.children || [];
7958
+ return (React.createElement(SearchableListItem, __assign({}, item, { key: parentKey }), children.length > 0 ? (React.createElement(List.Root, { width: "full" }, children.map(function (child, childIndex) {
7959
+ var childKey = "".concat(childIndex, "-").concat(child.value);
7960
+ return (React.createElement(SearchableListItem, __assign({}, child, { key: childKey, paddingLeft: childrenSpacing })));
7961
+ }))) : null));
7962
+ }))) : (React.createElement(NoResults, null))));
7422
7963
  };
7423
- Chip.displayName = 'Chip';
7424
7964
 
7425
7965
  var Menu = function (_a) {
7426
7966
  var title = _a.title, items = _a.items, value = _a.value, _b = _a.fontWeightTitle, fontWeightTitle = _b === void 0 ? 'regular' : _b, _c = _a.offset, offset = _c === void 0 ? [8, 0] : _c, menuColor = _a.menuColor, menuOptionColor = _a.menuOptionColor, _d = _a.showChevron, showChevron = _d === void 0 ? true : _d, icon = _a.icon, _e = _a.iconSpacing, iconSpacing = _e === void 0 ? 'sm' : _e, placement = _a.placement, _f = _a.showOptionsCheckmark, showOptionsCheckmark = _f === void 0 ? false : _f;
@@ -7456,7 +7996,7 @@ var MobileOnlyAccordion = function (props) {
7456
7996
  var FooterLink = function (_a) {
7457
7997
  var _b, _c;
7458
7998
  var linkInstance = _a.linkInstance, children = _a.children, _d = _a.bold, bold = _d === void 0 ? false : _d;
7459
- var _e = i18nPkg.useI18n(), t = _e.t, language = _e.language;
7999
+ var _e = useI18n(), t = _e.t, language = _e.language;
7460
8000
  if (!linkInstance) {
7461
8001
  return null;
7462
8002
  }
@@ -7559,7 +8099,7 @@ var MobileOnlyAccordionButton = function (props) {
7559
8099
 
7560
8100
  var FooterSections = function (_a) {
7561
8101
  var config = _a.config;
7562
- var t = i18nPkg.useI18n().t;
8102
+ var t = useI18n().t;
7563
8103
  var sectionChunks = chunkArray({
7564
8104
  array: config.sections,
7565
8105
  chunkSize: 2,
@@ -7585,7 +8125,7 @@ var img$3 = "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAARAAAABQCAMAAADm+9r/A
7585
8125
 
7586
8126
  var FooterApps = function (_a) {
7587
8127
  var config = _a.config;
7588
- var t = i18nPkg.useI18n().t;
8128
+ var t = useI18n().t;
7589
8129
  return (React.createElement(GridItem, null,
7590
8130
  React.createElement(Stack, { paddingY: { base: '2xl', md: 'md' }, paddingX: { base: 'md', md: '0' }, gap: "md" },
7591
8131
  React.createElement(Text, { textStyle: "heading5" }, t('footer.apps.title')),
@@ -7620,7 +8160,7 @@ var FooterLanguageNavigation = function () {
7620
8160
  };
7621
8161
 
7622
8162
  var FooterCopyright = function () {
7623
- var t = i18nPkg.useI18n().t;
8163
+ var t = useI18n().t;
7624
8164
  return (React.createElement(react$1.Box, { textStyle: "body-small", textAlign: "center", opacity: "80" }, t('footer.copyright', { year: new Date().getFullYear() })));
7625
8165
  };
7626
8166
 
@@ -8460,233 +9000,55 @@ var footerConfig = function () {
8460
9000
  },
8461
9001
  target: '_blank',
8462
9002
  },
8463
- {
8464
- translationKey: 'footer.companies.anibis',
8465
- visibilitySettings: {
8466
- brand: (_24 = {}, _24[Brand.AutoScout24] = true, _24[Brand.MotoScout24] = true, _24),
8467
- },
8468
- link: {
8469
- de: 'https://www.anibis.ch/de',
8470
- en: 'https://www.anibis.ch/de',
8471
- fr: 'https://www.anibis.ch/fr',
8472
- it: 'https://www.anibis.ch/it',
8473
- },
8474
- target: '_blank',
8475
- },
8476
- ],
8477
- });
8478
- };
8479
-
8480
- var FooterCompanies = function (_a) {
8481
- var config = _a.config;
8482
- return (React.createElement(react$1.Box, { gap: { base: 'md', md: '2xl' }, marginBottom: "md", marginTop: "2xl", as: Stack, flexDirection: "row", justifyContent: "center", flexWrap: "wrap" }, config.companies.map(function (companyLink, index) {
8483
- return (React.createElement(FooterLink, { key: "company-".concat(index), linkInstance: companyLink, bold: true }));
8484
- })));
8485
- };
8486
-
8487
- var Footer$1 = function (_a) {
8488
- var brand = _a.brand, language = _a.language, environment = _a.environment, useAbsoluteUrls = _a.useAbsoluteUrls, project = _a.project;
8489
- var config = React.useMemo(function () {
8490
- var footerConfigInstance = new FooterConfig({
8491
- config: footerConfig(),
8492
- brand: brand,
8493
- environment: environment,
8494
- useAbsoluteUrls: useAbsoluteUrls,
8495
- project: project,
8496
- });
8497
- return footerConfigInstance.getMappedConfig();
8498
- }, [brand, environment, useAbsoluteUrls, project]);
8499
- return (React.createElement(TranslationProvider, { language: language, scopes: ['footer'] },
8500
- React.createElement("footer", null,
8501
- React.createElement(react$1.Box, { width: "full", background: "gray.900", color: "white", paddingTop: { md: 'md' }, paddingBottom: { base: 'lg', md: '2xl' } },
8502
- React.createElement(Center, null,
8503
- React.createElement(react$1.Container, { width: "full", maxWidth: "container.2xl", paddingX: { md: 'xs' } },
8504
- React.createElement(FooterSectionGrid, { config: config }),
8505
- React.createElement(FooterLanguageNavigation, null),
8506
- React.createElement(SocialMedia, { config: config }))),
8507
- React.createElement(Separator, { orientation: "horizontal", borderColor: "gray.700" }),
8508
- React.createElement(Center, null,
8509
- React.createElement(react$1.Container, { width: "full", maxWidth: "container.xl", paddingX: "lg" },
8510
- React.createElement(FooterCompanies, { config: config }),
8511
- React.createElement(FooterCopyright, null)))))));
8512
- };
8513
-
8514
- var SearchField = function (_a) {
8515
- var name = _a.name, _b = _a.placeholder, placeholder = _b === void 0 ? '' : _b, _c = _a.ariaControls, ariaControls = _c === void 0 ? '' : _c, searchQuery = _a.searchQuery, setSearchQuery = _a.setSearchQuery, _d = _a.onFocus, onFocus = _d === void 0 ? function () { return null; } : _d, _e = _a.onBlur, onBlur = _e === void 0 ? function () { return null; } : _e, _f = _a.autofocusOnDesktop, autofocusOnDesktop = _f === void 0 ? true : _f, autoComplete = _a.autoComplete;
8516
- var isDesktopOnly = useMediaQuery({ above: 'md' });
8517
- var inputRef = React.useRef(null);
8518
- React.useEffect(function () {
8519
- var _a;
8520
- if (autofocusOnDesktop && isDesktopOnly) {
8521
- (_a = inputRef.current) === null || _a === void 0 ? void 0 : _a.focus();
8522
- }
8523
- }, [isDesktopOnly, autofocusOnDesktop]);
8524
- return (React.createElement(Input, { ref: inputRef, icon: MagnifierIcon, name: name, placeholder: placeholder, value: searchQuery, setInputValue: setSearchQuery, size: "lg", isClearable: true, debounce: true, onFocus: onFocus, onBlur: onBlur, "aria-controls": ariaControls, autoComplete: autoComplete }));
8525
- };
8526
-
8527
- var HighlightedText = function (_a) {
8528
- var text = _a.text, _b = _a.highlightIndices, highlightIndices = _b === void 0 ? [] : _b, textProps = __rest(_a, ["text", "highlightIndices"]);
8529
- if (highlightIndices.length === 0)
8530
- return (React.createElement(Text, __assign({ as: "span" }, textProps), text));
8531
- var result = [];
8532
- var currentIndex = 0;
8533
- for (var _i = 0, highlightIndices_1 = highlightIndices; _i < highlightIndices_1.length; _i++) {
8534
- var _c = highlightIndices_1[_i], start = _c[0], end = _c[1];
8535
- // Append the non-matching part
8536
- result.push(React.createElement(Text, __assign({ key: "non-highlight-".concat(currentIndex, "-").concat(start, "-").concat(text), as: "span" }, textProps), text.substring(currentIndex, start)));
8537
- // Append the matching part
8538
- result.push(React.createElement(Text, __assign({ key: "highlight-".concat(start, "-").concat(end + 1, "-").concat(text), as: "u", fontWeight: "bold" }, textProps), text.substring(start, end + 1)));
8539
- currentIndex = end + 1;
8540
- }
8541
- // Append the remaining non-matching part
8542
- result.push(React.createElement(Text, __assign({ key: "non-highlight-end-".concat(text), as: "span" }, textProps), text.substring(currentIndex)));
8543
- return (React.createElement(Text, __assign({ as: "span" }, textProps), result));
8544
- };
8545
-
8546
- var SearchableListItemLabel = function (_a) {
8547
- var label = _a.label, isSelected = _a.isSelected, _b = _a.showChevron, showChevron = _b === void 0 ? true : _b, _c = _a.highlightIndices, highlightIndices = _c === void 0 ? [] : _c, _d = _a.isCheckbox, isCheckbox = _d === void 0 ? false : _d, facet = _a.facet;
8548
- return (React.createElement(Flex, { width: "full", justifyContent: "space-between", whiteSpace: "pre-wrap", fontWeight: isSelected && !isCheckbox ? 'bold' : undefined, color: "gray.900", cursor: "pointer" },
8549
- React.createElement(Flex, null,
8550
- isSelected && !isCheckbox ? (React.createElement(CheckmarkIcon, { w: "xs", mr: "xs", color: "gray.900" })) : null,
8551
- React.createElement(HighlightedText, { text: label, highlightIndices: highlightIndices, textAlign: "left" })),
8552
- React.createElement(Flex, { as: "span" },
8553
- facet ? (React.createElement(Text, { as: "span", color: "gray.400", mr: showChevron ? 'lg' : undefined, ml: "sm", minW: "lg", textAlign: "right", fontWeight: "regular" }, facet)) : null,
8554
- showChevron ? (React.createElement(ChevronRightSmallIcon, { color: "gray.500", w: "sm", h: "sm" })) : null)));
8555
- };
8556
-
8557
- var isCheckboxType = function (listItem) {
8558
- return !!listItem.isCheckbox;
8559
- };
8560
- var SearchableListItem = function (props) {
8561
- var isCheckbox = isCheckboxType(props);
8562
- var label = props.label, value = props.value, facet = props.facet, isSelected = props.isSelected, _a = props.showChevron, showChevron = _a === void 0 ? true : _a, _b = props.highlightIndices, highlightIndices = _b === void 0 ? [] : _b, children = props.children;
8563
- var labelProps = {
8564
- label: label,
8565
- isSelected: isSelected,
8566
- showChevron: showChevron,
8567
- highlightIndices: highlightIndices,
8568
- isCheckbox: isCheckbox,
8569
- facet: facet,
8570
- };
8571
- var commonProps = {
8572
- value: value,
8573
- paddingY: 'sm',
8574
- name: "searchable-list-item-".concat(value),
8575
- 'aria-current': isSelected,
8576
- };
8577
- var checkboxProps = __assign(__assign({}, commonProps), { label: React.createElement(SearchableListItemLabel, __assign({}, labelProps)), checked: isSelected, indeterminate: isCheckbox ? !!props.isIndeterminate : false, fullWidth: true, variant: 'alignTop', onChange: isCheckbox ? props.onClick : undefined });
8578
- return (React.createElement(List.Item, { css: { breakInside: 'avoid' }, paddingLeft: props.paddingLeft },
8579
- isCheckbox ? (React.createElement(Checkbox, __assign({}, checkboxProps))) : (React.createElement(react$1.Button, { value: value, paddingY: "sm", name: "searchable-list-item-".concat(value), "aria-current": isSelected, onClick: !isCheckbox ? props.onClick : undefined, width: "full", display: "flex", paddingX: "0" },
8580
- React.createElement(SearchableListItemLabel, __assign({}, labelProps)))),
8581
- children));
8582
- };
8583
-
8584
- var fuseOptions = {
8585
- keys: ['label', 'children.label'],
8586
- includeMatches: true,
8587
- threshold: 0,
8588
- ignoreLocation: true,
8589
- minMatchCharLength: 1,
8590
- shouldSort: false,
8591
- };
8592
- var mapItemsFromSearchResult = function (searchResults) {
8593
- return searchResults.map(function (_a) {
8594
- var _b = _a.matches, matches = _b === void 0 ? [] : _b, item = _a.item;
8595
- var parentMatch = matches.find(function (match) { return match.key === 'label'; });
8596
- var parentHighlightIndices = parentMatch ? parentMatch.indices : [];
8597
- var childMatches = item.children
8598
- ? matches.filter(function (match) { return match.key === 'children.label'; })
8599
- : [];
8600
- if (!item.children ||
8601
- item.children.length === 0 ||
8602
- childMatches.length === 0) {
8603
- return __assign(__assign({}, item), { highlightIndices: parentHighlightIndices });
8604
- }
8605
- var itemChildren = item.children || [];
8606
- var children = childMatches.reduce(function (accumulator, childMatch) {
8607
- if (childMatch.refIndex === undefined) {
8608
- return accumulator;
8609
- }
8610
- var child = itemChildren[childMatch.refIndex];
8611
- accumulator.push(__assign(__assign({}, child), { highlightIndices: childMatch.indices }));
8612
- return accumulator;
8613
- }, []);
8614
- return __assign(__assign(__assign({}, item), (children ? { children: children } : {})), { highlightIndices: parentMatch ? parentMatch.indices : [] });
8615
- });
8616
- };
8617
- var empty = function () { return null; };
8618
- var search = function (_a) {
8619
- var query = _a.query, fuse = _a.fuse;
8620
- fuse.options.minMatchCharLength = query.length || 1;
8621
- return fuse.search(query);
8622
- };
8623
- var getFuseInstance = function (listItems) {
8624
- // Not casting the instance will result in the options not being typed
8625
- return new Fuse(listItems, fuseOptions);
8626
- };
8627
- var SearchableList = function (_a) {
8628
- var listItems = _a.listItems, _b = _a.NoResults, NoResults = _b === void 0 ? empty : _b, _c = _a.EmptyQueryPlaceholder, EmptyQueryPlaceholder = _c === void 0 ? empty : _c, _d = _a.listAriaLabel, listAriaLabel = _d === void 0 ? 'searchable list' : _d, _e = _a.searchFieldOptions, searchFieldOptions = _e === void 0 ? {} : _e, _f = _a.listOptions, listOptions = _f === void 0 ? { columns: 1, childrenSpacing: 'md' } : _f, listRef = _a.listRef;
8629
- var gray200 = useToken('colors', ['gray.200'])[0];
8630
- var _g = React.useState({
8631
- query: '',
8632
- listItems: listItems,
8633
- fullListItems: __spreadArray([], listItems, true),
8634
- fuse: getFuseInstance(listItems),
8635
- }), searchState = _g[0], setSearchState = _g[1];
8636
- var _h = searchFieldOptions.placeholder, placeholder = _h === void 0 ? '' : _h, _j = searchFieldOptions.autofocusOnDesktop, autofocusOnDesktop = _j === void 0 ? true : _j, autoComplete = searchFieldOptions.autoComplete;
8637
- var _k = listOptions.columns, columns = _k === void 0 ? 1 : _k, _l = listOptions.childrenSpacing, childrenSpacing = _l === void 0 ? 'md' : _l;
8638
- var areaId = 'searchableList';
8639
- var query = searchState.query;
8640
- React.useEffect(function () {
8641
- setSearchState(function (currentState) {
8642
- var fuse = getFuseInstance(listItems);
8643
- if (currentState.query === '') {
8644
- return {
8645
- listItems: listItems,
8646
- fullListItems: __spreadArray([], listItems, true),
8647
- fuse: fuse,
8648
- query: currentState.query,
8649
- };
8650
- }
8651
- var searchResults = search({ fuse: fuse, query: currentState.query });
8652
- var filteredListItems = mapItemsFromSearchResult(searchResults);
8653
- return {
8654
- listItems: filteredListItems,
8655
- fuse: fuse,
8656
- query: currentState.query,
8657
- fullListItems: __spreadArray([], listItems, true),
8658
- };
8659
- });
8660
- }, [listItems]);
8661
- var setSearchQuery = React.useCallback(function (newQuery) {
8662
- setSearchState(function (currentState) {
8663
- var trimmedQuery = newQuery.trim();
8664
- if (!trimmedQuery) {
8665
- return __assign(__assign({}, currentState), { listItems: currentState.fullListItems, query: trimmedQuery });
8666
- }
8667
- var searchResults = search({
8668
- fuse: currentState.fuse,
8669
- query: trimmedQuery,
8670
- });
8671
- var filteredListItems = mapItemsFromSearchResult(searchResults);
8672
- return __assign(__assign({}, currentState), { listItems: filteredListItems, query: trimmedQuery });
9003
+ {
9004
+ translationKey: 'footer.companies.anibis',
9005
+ visibilitySettings: {
9006
+ brand: (_24 = {}, _24[Brand.AutoScout24] = true, _24[Brand.MotoScout24] = true, _24),
9007
+ },
9008
+ link: {
9009
+ de: 'https://www.anibis.ch/de',
9010
+ en: 'https://www.anibis.ch/de',
9011
+ fr: 'https://www.anibis.ch/fr',
9012
+ it: 'https://www.anibis.ch/it',
9013
+ },
9014
+ target: '_blank',
9015
+ },
9016
+ ],
9017
+ });
9018
+ };
9019
+
9020
+ var FooterCompanies = function (_a) {
9021
+ var config = _a.config;
9022
+ return (React.createElement(react$1.Box, { gap: { base: 'md', md: '2xl' }, marginBottom: "md", marginTop: "2xl", as: Stack, flexDirection: "row", justifyContent: "center", flexWrap: "wrap" }, config.companies.map(function (companyLink, index) {
9023
+ return (React.createElement(FooterLink, { key: "company-".concat(index), linkInstance: companyLink, bold: true }));
9024
+ })));
9025
+ };
9026
+
9027
+ var Footer$1 = function (_a) {
9028
+ var brand = _a.brand, language = _a.language, environment = _a.environment, useAbsoluteUrls = _a.useAbsoluteUrls, project = _a.project;
9029
+ var config = React.useMemo(function () {
9030
+ var footerConfigInstance = new FooterConfig({
9031
+ config: footerConfig(),
9032
+ brand: brand,
9033
+ environment: environment,
9034
+ useAbsoluteUrls: useAbsoluteUrls,
9035
+ project: project,
8673
9036
  });
8674
- }, []);
8675
- return (React.createElement(Flex, { gridGap: "md", direction: "column", width: "full" },
8676
- React.createElement(SearchField, { name: "searchableListSearchFiled", searchQuery: query, setSearchQuery: setSearchQuery, ariaControls: areaId, placeholder: placeholder, autofocusOnDesktop: autofocusOnDesktop, autoComplete: autoComplete }),
8677
- searchState.query.length === 0 ? React.createElement(EmptyQueryPlaceholder, null) : null,
8678
- searchState.listItems.length > 0 ? (React.createElement(List.Root, { ref: listRef, width: "full", height: "full", id: areaId, "aria-live": "polite", css: {
8679
- columns: { base: 1, md: columns },
8680
- columnGap: '4xl',
8681
- columnRule: "1px solid ".concat(gray200),
8682
- }, "aria-label": listAriaLabel }, searchState.listItems.map(function (item, itemIndex) {
8683
- var parentKey = "".concat(itemIndex, "-").concat(item.value);
8684
- var children = item.children || [];
8685
- return (React.createElement(SearchableListItem, __assign({}, item, { key: parentKey }), children.length > 0 ? (React.createElement(List.Root, { width: "full" }, children.map(function (child, childIndex) {
8686
- var childKey = "".concat(childIndex, "-").concat(child.value);
8687
- return (React.createElement(SearchableListItem, __assign({}, child, { key: childKey, paddingLeft: childrenSpacing })));
8688
- }))) : null));
8689
- }))) : (React.createElement(NoResults, null))));
9037
+ return footerConfigInstance.getMappedConfig();
9038
+ }, [brand, environment, useAbsoluteUrls, project]);
9039
+ return (React.createElement(TranslationProvider, { language: language, scopes: ['footer'] },
9040
+ React.createElement("footer", null,
9041
+ React.createElement(react$1.Box, { width: "full", background: "gray.900", color: "white", paddingTop: { md: 'md' }, paddingBottom: { base: 'lg', md: '2xl' } },
9042
+ React.createElement(Center, null,
9043
+ React.createElement(react$1.Container, { width: "full", maxWidth: "container.2xl", paddingX: { md: 'xs' } },
9044
+ React.createElement(FooterSectionGrid, { config: config }),
9045
+ React.createElement(FooterLanguageNavigation, null),
9046
+ React.createElement(SocialMedia, { config: config }))),
9047
+ React.createElement(Separator, { orientation: "horizontal", borderColor: "gray.700" }),
9048
+ React.createElement(Center, null,
9049
+ React.createElement(react$1.Container, { width: "full", maxWidth: "container.xl", paddingX: "lg" },
9050
+ React.createElement(FooterCompanies, { config: config }),
9051
+ React.createElement(FooterCopyright, null)))))));
8690
9052
  };
8691
9053
 
8692
9054
  var createTenantLabel = function (managedSeller) {
@@ -8760,7 +9122,7 @@ var NavigationTenantMenuContent = function (_a) {
8760
9122
  var NavigationTenantMenu = function (_a) {
8761
9123
  var user = _a.user, selectTenant = _a.selectTenant;
8762
9124
  var _b = react$1.useDisclosure(), onClose = _b.onClose, open = _b.open, onToggle = _b.onToggle;
8763
- var t = i18nPkg.useI18n().t;
9125
+ var t = useI18n().t;
8764
9126
  var selectedTenant = React.useMemo(function () {
8765
9127
  var _a;
8766
9128
  return (_a = user === null || user === void 0 ? void 0 : user.managedSellers) === null || _a === void 0 ? void 0 : _a.find(function (seller) { return seller.id === Number(user.sellerId); });
@@ -8840,7 +9202,7 @@ var DrawerIndicator = function (_a) {
8840
9202
 
8841
9203
  var NavigationItem = function (_a) {
8842
9204
  var translationKey = _a.translationKey, drawerHandler = _a.drawerHandler, isOpen = _a.isOpen;
8843
- var t = i18nPkg.useI18n().t;
9205
+ var t = useI18n().t;
8844
9206
  var recipe = react$1.useSlotRecipe({ key: 'link' });
8845
9207
  var styles = recipe({ variant: 'navigationLink' });
8846
9208
  return (React.createElement(react$1.Box, { onClick: drawerHandler, css: __assign({}, styles.root), fontWeight: "bold", color: isOpen ? 'blue.700' : 'gray.900', _hover: { color: 'blue.700' }, position: "relative", cursor: "pointer", display: "flex", alignItems: "center" },
@@ -8851,7 +9213,7 @@ var NavigationItem = function (_a) {
8851
9213
 
8852
9214
  var NavigationLink = function (_a) {
8853
9215
  var link = _a.link, title = _a.title, translationKey = _a.translationKey, _b = _a.translationParameters, translationParameters = _b === void 0 ? {} : _b, isNew = _a.isNew, _c = _a.fontWeight, fontWeight = _c === void 0 ? 'regular' : _c, _d = _a.variant, variant = _d === void 0 ? 'navigationLink' : _d, color = _a.color, leftIcon = _a.leftIcon, rightIcon = _a.rightIcon, hideTextBelow = _a.hideTextBelow, onClick = _a.onClick;
8854
- var _e = i18nPkg.useI18n(), t = _e.t, language = _e.language;
9216
+ var _e = useI18n(), t = _e.t, language = _e.language;
8855
9217
  var linkColor = color || 'gray.900';
8856
9218
  var hoverStyle = variant === 'navigationLink' ? { color: 'blue.700' } : undefined;
8857
9219
  return (React.createElement(Link$1, { href: link && link[language], variant: variant, fontWeight: fontWeight, css: { color: linkColor }, _hover: hoverStyle, onClick: onClick, display: "flex", alignItems: "center", gap: "md" },
@@ -9898,7 +10260,7 @@ var getComparisonUrl = function (comparisonItemIds) {
9898
10260
  var ComparisonItem = function (_a) {
9899
10261
  var _b, _c;
9900
10262
  var link = _a.link, count = _a.count;
9901
- var _d = i18nPkg.useI18n(), t = _d.t, language = _d.language;
10263
+ var _d = useI18n(), t = _d.t, language = _d.language;
9902
10264
  return (React.createElement(react$1.chakra.a, { position: "relative", display: "block", href: (_b = link.link) === null || _b === void 0 ? void 0 : _b[language], onClick: link.onClick, "aria-label": t((_c = link.translationKey) !== null && _c !== void 0 ? _c : '', link.translationParameters), mr: "lg" },
9903
10265
  React.createElement(CompareIcon, { color: "gray.900" }),
9904
10266
  React.createElement(react$1.Box, { position: "absolute", css: { top: '-10px', right: '-15px' } }, count > 0 ? React.createElement(Count, { count: count }) : null)));
@@ -10309,7 +10671,7 @@ var NavigationAvatar = function (_a) {
10309
10671
  var isDrawerOpened = isOpen && (drawer === null || drawer === void 0 ? void 0 : drawer.current) === DrawerNode.User;
10310
10672
  var recipe = react$1.useSlotRecipe({ key: 'link' });
10311
10673
  var styles = recipe({ variant: 'navigationLink' });
10312
- var t = i18nPkg.useI18n().t;
10674
+ var t = useI18n().t;
10313
10675
  if (user) {
10314
10676
  return (React.createElement(react$1.Box, { hideBelow: "sm" },
10315
10677
  React.createElement(react$1.Box, { display: "flex", flexDirection: "row", gap: "xs", cursor: "pointer", _hover: { color: 'blue.700' }, color: isDrawerOpened ? 'blue.700' : 'gray.900', onClick: createDrawerHandler({
@@ -10380,7 +10742,7 @@ var useNavigationDrawer = function (_a) {
10380
10742
  var FavoritesItem = function (_a) {
10381
10743
  var _b, _c;
10382
10744
  var link = _a.link;
10383
- var _d = i18nPkg.useI18n(), t = _d.t, language = _d.language;
10745
+ var _d = useI18n(), t = _d.t, language = _d.language;
10384
10746
  return (React.createElement(react$1.chakra.a, { position: "relative", href: (_b = link.link) === null || _b === void 0 ? void 0 : _b[language], onClick: link.onClick, "aria-label": t((_c = link.translationKey) !== null && _c !== void 0 ? _c : '') },
10385
10747
  React.createElement(HeartIcon, { color: "gray.900" })));
10386
10748
  };
@@ -10474,7 +10836,7 @@ var NonCollapsibleSection = function (_a) {
10474
10836
  };
10475
10837
  var CollapsibleSection = function (_a) {
10476
10838
  var node = _a.node;
10477
- var t = i18nPkg.useI18n().t;
10839
+ var t = useI18n().t;
10478
10840
  if (!node.translationKey && !node.title) {
10479
10841
  return null;
10480
10842
  }
@@ -10498,7 +10860,7 @@ var DrawerMenu = function (_a) {
10498
10860
 
10499
10861
  var DrawerLoginToggle = function (_a) {
10500
10862
  var user = _a.user, onLogin = _a.onLogin, onLogout = _a.onLogout;
10501
- var t = i18nPkg.useI18n().t;
10863
+ var t = useI18n().t;
10502
10864
  return (React.createElement(Button, { as: "button", variant: "secondary", size: "md", marginTop: "md", marginX: "lg", onClick: user ? onLogout : onLogin },
10503
10865
  user ? React.createElement(LogoutIcon, null) : React.createElement(AvatarIcon, null),
10504
10866
  user ? t('header.userMenu.logout') : t('header.login')));
@@ -10524,7 +10886,7 @@ var NavigationDrawer = function (_a) {
10524
10886
  maxWidth: '100vw',
10525
10887
  width: '100%',
10526
10888
  } },
10527
- React.createElement(react$1.Box, { "data-testid": "drawer-body", py: "lg", px: { md: 'xs' }, maxWidth: "container.2xl", width: "full", margin: "auto" }, isOpen ? (React.createElement(Grid, { height: "full", width: "full", templateColumns: {
10889
+ React.createElement(react$1.Box, { py: "lg", px: { md: 'xs' }, maxWidth: "container.2xl", width: "full", margin: "auto" }, isOpen ? (React.createElement(Grid, { "data-testid": "drawer-body", height: "full", width: "full", templateColumns: {
10528
10890
  '2xs': 'minmax(0, 1fr)',
10529
10891
  md: 'repeat(5, 1fr)',
10530
10892
  }, gap: { md: '3xl' } },
@@ -10829,198 +11191,9 @@ var Pagination = function (_a) {
10829
11191
  return page.type === 'page' ? (React.createElement(react$1.Pagination.Item, __assign({ key: index }, page, { css: styles.paginationButton }), page.value)) : (React.createElement(react$1.Pagination.Ellipsis, { css: styles.dots, key: index, index: index }, "\u2026"));
10830
11192
  });
10831
11193
  }),
10832
- React.createElement(react$1.Pagination.NextTrigger, { asChild: true, css: styles.paginationButton, display: { base: 'none', xs: 'inline-flex' } },
10833
- React.createElement(react$1.IconButton, null,
10834
- React.createElement(ChevronRightSmallIcon, null))))));
10835
- };
10836
-
10837
- var Rating = function (_a) {
10838
- var rating = _a.rating, props = __rest(_a, ["rating"]);
10839
- var percent = "calc((".concat(rating.toString(), " - 0.16) / 5 * 100%)");
10840
- var recipe = react$1.useRecipe({ key: 'rating' });
10841
- var recipeProps = recipe.splitVariantProps(props)[0];
10842
- var styles = recipe(recipeProps);
10843
- return (React.createElement(react$1.Box, { "aria-label": "Rating is ".concat(rating, " out of 5"), css: __assign(__assign({}, styles), { '--percent': percent, '--star-color': 'colors.orange.300', '&::before': {
10844
- content: '"★★★★★"',
10845
- letterSpacing: '0.5em',
10846
- color: 'var(--star-color)',
10847
- background: 'linear-gradient(90deg, var(--star-color) var(--percent), white var(--percent))',
10848
- backgroundClip: 'text',
10849
- WebkitTextFillColor: 'transparent',
10850
- WebkitTextStroke: '0.1em var(--star-color)',
10851
- } }) }));
10852
- };
10853
-
10854
- var Section = function (_a) {
10855
- var _b = _a.maxImgW, maxImgW = _b === void 0 ? '2xl' : _b, props = __rest(_a, ["maxImgW"]);
10856
- var recipe = react$1.useSlotRecipe({ key: 'section' });
10857
- var _c = recipe.splitVariantProps(props), recipeProps = _c[0], componentProps = _c[1];
10858
- var styles = recipe(recipeProps);
10859
- var title = componentProps.title, text = componentProps.text, image = componentProps.image;
10860
- return (React.createElement(react$1.Stack, { css: styles.root },
10861
- image ? (React.createElement(react$1.Box, { css: styles.imageContainer, maxW: maxImgW }, image)) : null,
10862
- React.createElement(react$1.Stack, { css: styles.textContainer },
10863
- React.createElement(react$1.chakra.span, { css: styles.title }, title),
10864
- text ? React.createElement(react$1.chakra.span, { css: styles.text }, text) : null)));
10865
- };
10866
-
10867
- var Select = React.forwardRef(function (_a, ref) {
10868
- var options = _a.options, props = __rest(_a, ["options"]);
10869
- var selectRecipe = react$1.useSlotRecipe({ key: 'select' });
10870
- var _b = selectRecipe.splitVariantProps(props), selectRecipeProps = _b[0], restProps = _b[1];
10871
- var selectStyles = selectRecipe(selectRecipeProps);
10872
- var disabled = restProps.disabled, invalid = restProps.invalid, rest = __rest(restProps, ["disabled", "invalid"]);
10873
- return (React.createElement(react$1.NativeSelect.Root, { disabled: disabled, invalid: invalid, css: selectStyles.root },
10874
- React.createElement(react$1.NativeSelect.Field, __assign({ ref: ref }, rest, { css: selectStyles.field }), options.map(function (option) { return (React.createElement("option", { value: option.value, key: option.value }, option.label)); })),
10875
- React.createElement(react$1.NativeSelect.Indicator, { css: [
10876
- selectStyles.indicator,
10877
- disabled && selectStyles.indicator._disabled,
10878
- ] })));
10879
- });
10880
- Select.displayName = 'Select';
10881
-
10882
- var SimpleHeader = function (props) {
10883
- var recipe = react$1.useSlotRecipe({ key: 'simpleHeader' });
10884
- var _a = recipe.splitVariantProps(props), recipeProps = _a[0], componentProps = _a[1];
10885
- var styles = recipe(recipeProps);
10886
- var title = componentProps.title, url = componentProps.url;
10887
- return (React.createElement(react$1.chakra.header, { css: styles.header },
10888
- React.createElement(Center, null,
10889
- React.createElement(Flex, { css: styles.mainContainer },
10890
- React.createElement(Flex, { justify: "space-between", minWidth: "full" },
10891
- React.createElement(react$1.chakra.h1, { css: styles.title }, title),
10892
- React.createElement(Flex, { css: styles.iconWrapper },
10893
- React.createElement("a", { href: url },
10894
- React.createElement(CloseIcon, null))))))));
10895
- };
10896
-
10897
- var Tab = function (_a) {
10898
- var variant = _a.variant, children = _a.children, rest = __rest(_a, ["variant", "children"]);
10899
- var recipe = react$1.useSlotRecipe({ key: 'tabs' });
10900
- var styles = recipe({ variant: variant });
10901
- return (React.createElement(react$1.Tabs.Trigger, __assign({}, rest, { css: styles.trigger }), children));
10902
- };
10903
-
10904
- var TabList = function (_a) {
10905
- var variant = _a.variant, children = _a.children, rest = __rest(_a, ["variant", "children"]);
10906
- var recipe = react$1.useSlotRecipe({ key: 'tabs' });
10907
- var styles = recipe({ variant: variant });
10908
- return (React.createElement(react$1.Box, { overflowX: "auto" },
10909
- React.createElement(react$1.Tabs.List, __assign({}, rest, { css: styles.list }), React.Children.map(children, function (child) {
10910
- return React.isValidElement(child)
10911
- ? React.cloneElement(child, { variant: variant })
10912
- : child;
10913
- }))));
10914
- };
10915
-
10916
- var TabPanel = function (_a) {
10917
- var variant = _a.variant, children = _a.children, rest = __rest(_a, ["variant", "children"]);
10918
- var recipe = react$1.useSlotRecipe({ key: 'tabs' });
10919
- var styles = recipe({ variant: variant });
10920
- return (React.createElement(react$1.Tabs.Content, __assign({}, rest, { css: styles.content }), children));
10921
- };
10922
-
10923
- var TabPanels = function (_a) {
10924
- var variant = _a.variant, children = _a.children;
10925
- var recipe = react$1.useSlotRecipe({ key: 'tabs' });
10926
- var styles = recipe({ variant: variant });
10927
- return (React.createElement(react$1.Box, { css: styles.contentGroup }, React.Children.map(children, function (child) {
10928
- return React.isValidElement(child)
10929
- ? React.cloneElement(child, { variant: variant })
10930
- : child;
10931
- })));
10932
- };
10933
-
10934
- var Tabs = function (_a) {
10935
- var variant = _a.variant, children = _a.children, rest = __rest(_a, ["variant", "children"]);
10936
- var recipe = react$1.useSlotRecipe({ key: 'tabs' });
10937
- var styles = recipe({ variant: variant });
10938
- return (React.createElement(react$1.Tabs.Root, __assign({}, rest, { css: styles.root }), React.Children.map(children, function (child) {
10939
- return React.isValidElement(child)
10940
- ? React.cloneElement(child, { variant: variant })
10941
- : child;
10942
- })));
10943
- };
10944
-
10945
- var Body = react$1.Table.Body, Caption = react$1.Table.Caption, Cell = react$1.Table.Cell, Column = react$1.Table.Column, ColumnGroup = react$1.Table.ColumnGroup, ColumnHeader = react$1.Table.ColumnHeader, Footer = react$1.Table.Footer, Header = react$1.Table.Header, Root = react$1.Table.Root, Row = react$1.Table.Row, ScrollArea = react$1.Table.ScrollArea;
10946
- Body.displayName = 'Table.Body';
10947
- Caption.displayName = 'Table.Caption';
10948
- Column.displayName = 'Table.Column';
10949
- ColumnGroup.displayName = 'Table.ColumnGroup';
10950
- Footer.displayName = 'Table.Footer';
10951
- Header.displayName = 'Table.Header';
10952
- Root.displayName = 'Table.Root';
10953
- Row.displayName = 'Table.Row';
10954
- ScrollArea.displayName = 'Table.ScrollArea';
10955
- Cell.displayName = 'Table.Cell';
10956
- ColumnHeader.displayName = 'Table.ColumnHeader';
10957
- var Table = {
10958
- Body: Body,
10959
- Caption: Caption,
10960
- Cell: Cell,
10961
- Column: Column,
10962
- ColumnGroup: ColumnGroup,
10963
- ColumnHeader: ColumnHeader,
10964
- Footer: Footer,
10965
- Header: Header,
10966
- Root: Root,
10967
- Row: Row,
10968
- ScrollArea: ScrollArea,
10969
- };
10970
-
10971
- var Underline = function (props) {
10972
- var recipe = react$1.useSlotRecipe({ key: 'markedText' });
10973
- var recipeProps = recipe.splitVariantProps(props)[0];
10974
- var styles = recipe(recipeProps);
10975
- return (React.createElement(react$1.chakra.svg, { css: styles.mark, xmlns: "http://www.w3.org/2000/svg", viewBox: "0 0 150 11", fill: "none", preserveAspectRatio: "none" },
10976
- React.createElement(react$1.chakra.path, { fill: "brand.primary", d: "M147.274 5.414c-.221.13-.294.258-.218.427.151.21-.07.447-.291.661-.146.214-.516.43-.737.624-.222.151-.443.324-.665.496.523.185.374.166-.664.517.224.061.374.144.598.227-.892.073-1.71.146-2.678.157-2.381.026-4.762.116-7.144.184l-17.934.389c-2.158.045-4.243.025-6.401.049-.893.01-1.861 0-2.754.03-.446.005-.967.053-1.413.058a275.9 275.9 0 0 1-4.169.025c-.148.002-.372-.017-.521.006-2.306.089-4.689.009-6.996.055-1.116.034-2.232.046-3.349.058l-3.796.042c-3.2.035-6.4.07-9.6.085-2.83.01-5.658-.002-8.486.008-1.861 0-3.796.02-5.731.042-.968.01-1.936 0-2.903.01-.819.01-1.563.039-2.382.048-.595.007-1.191-.05-1.861-.043-.893.01-1.786.062-2.753.072l-9.974.046-11.462.127c-1.116.012-2.158.066-3.274.078-.447.005-.968-.032-1.415-.027-1.563.017-3.05.055-4.614.072-.297.003-.595.007-.743.115 0 .042-.371.046-.595.07l-9.6.169c-1.265.014-2.456.048-3.72.083-.67.029-1.265.1-1.935.107-1.34-.007-2.68-.013-4.02-.041a5.054 5.054 0 0 1-1.193-.2c-.821-.224-1.42-.493-1.498-.832-.077-.275-.23-.57-.307-.846-.001-.127.072-.256.145-.384.073-.086.072-.17.146-.256.144-.384.066-.787.36-1.172.145-.278.29-.555.139-.83 0-.063.222-.13.295-.215.294-.343.514-.707.807-1.05.147-.192.517-.409.366-.577-.226-.295.515-.579.065-.85-.15-.083.072-.213.22-.32 0-.043.222-.11.148-.109-.448-.122-.003-.255.145-.341.296-.173-.004-.361.664-.538a6.1 6.1 0 0 1 1.56-.208c1.638-.04 3.35-.08 4.987-.098 2.753-.051 5.433-.102 8.186-.132 3.052-.055 6.177-.09 9.229-.144l6.251-.07 7.964-.087a219.85 219.85 0 0 1 3.722-.02c1.563-.017 3.051-.033 4.614-.029 2.308-.025 4.54-.029 6.848-.033l6.997-.013c2.158-.003 4.242-.025 6.401-.007 2.903.01 5.806.021 8.71.01 2.009 0 4.018-.065 6.028-.066 2.158-.002 4.392.016 6.55-.008 2.53-.028 5.06-.077 7.666-.106 4.167-.045 8.336-.07 12.429-.115 2.977-.033 5.954-.087 9.005-.142l10.568-.18c3.051-.054 6.028-.15 9.004-.226 2.381-.069 4.837-.117 7.293-.165.521-.006.968.053 1.49.09-.221.257-.145.426.229.55-.594.112-.37.216.003.275-.222.13-.444.239-.517.346-.148.129-.072.255.598.248-.371.068-.669.113-1.115.182.075.042.15.083.225.104.596.078.972.392.527.546-.148.065-.595.07-.892.095v.063c.671.078.524.27.601.418.001.17-.146.3-.517.452-.148.065.003.191-.071.298.001.064.076.148.002.191-.666.283-.588.601-.659.92.001.085-.073.15-.147.214-.074.065-.593.198-.071.34Z" })));
10977
- };
10978
-
10979
- var Highlight = function (props) {
10980
- var recipe = react$1.useSlotRecipe({ key: 'markedText' });
10981
- var recipeProps = recipe.splitVariantProps(props)[0];
10982
- var styles = recipe(recipeProps);
10983
- return (React.createElement(react$1.chakra.svg, { css: styles.mark, xmlns: "http://www.w3.org/2000/svg", viewBox: "0 0 155 24", fill: "none", preserveAspectRatio: "none" },
10984
- React.createElement(react$1.chakra.path, { fill: props.highlightColor, d: "M152.76 13.91c-.231.328-.309.657-.231 1.095.154.547-.078 1.15-.309 1.697-.155.548-.541 1.096-.773 1.588-.231.384-.463.822-.695 1.26.541.493.387.438-.695 1.314.232.165.386.384.618.603-.927.164-1.776.328-2.78.328-2.471 0-4.943.164-7.414.274l-18.613.493c-2.239.055-4.402-.055-6.641-.055-.927 0-1.931-.055-2.858 0-.463 0-1.004.11-1.467.11-1.468 0-2.858 0-4.325-.055-.154 0-.386-.055-.541 0-2.394.164-4.865-.11-7.26-.055-1.158.055-2.316.055-3.475.055h-3.938c-3.321 0-6.642 0-9.963-.055-2.935-.055-5.87-.164-8.804-.219-1.93-.055-3.939-.055-5.947-.055-1.004 0-2.008-.054-3.012-.054-.85 0-1.622.054-2.471.054-.618 0-1.236-.164-1.93-.164-.928 0-1.854.11-2.858.11l-10.35-.165H34.137c-1.159 0-2.24.11-3.399.11-.463 0-1.004-.11-1.467-.11-1.622 0-3.166.055-4.788.055-.31 0-.618 0-.773.274 0 .11-.386.11-.617.164l-9.963.164c-1.313 0-2.548.055-3.861.11-.696.055-1.313.219-2.008.219-1.39-.055-2.78-.11-4.17-.219-.464-.055-.85-.274-1.236-.548-.85-.602-1.468-1.314-1.545-2.19-.077-.712-.232-1.479-.309-2.19 0-.33.077-.658.154-.986.078-.22.078-.438.155-.658.154-.985.077-2.026.386-3.011.155-.712.309-1.424.155-2.136 0-.164.231-.329.308-.548.31-.876.541-1.807.85-2.683.154-.493.54-1.04.386-1.479-.232-.766.54-1.478.077-2.19-.154-.22.078-.548.232-.822 0-.109.232-.273.155-.273-.464-.329 0-.657.154-.877.309-.438 0-.93.695-1.369C4.247.493 4.711.33 5.329.33c1.699-.055 3.475-.11 5.174-.11C13.361.164 16.141.109 19 .109 22.165.056 25.409.056 28.575 0h14.751c1.313 0 2.548 0 3.861.055 1.622 0 3.167 0 4.789.055 2.394 0 4.71.054 7.105.109l7.26.164c2.239.055 4.401.055 6.641.165 3.012.11 6.024.219 9.036.273 2.085.055 4.17-.054 6.255 0 2.24.055 4.557.165 6.797.165 2.626 0 5.251-.055 7.954-.055 4.325 0 8.65.055 12.898.055 3.089 0 6.178-.055 9.345-.11l10.966-.164c3.167-.055 6.256-.22 9.345-.329 2.471-.11 5.02-.164 7.568-.219.541 0 1.004.165 1.545.274-.232.657-.154 1.095.232 1.424-.618.274-.386.548 0 .712-.232.328-.464.602-.541.876-.154.329-.077.657.618.657-.386.164-.695.274-1.158.438.077.11.154.22.231.274.618.22 1.004 1.04.541 1.424-.155.164-.618.164-.927.219v.164c.695.22.541.712.618 1.095 0 .439-.155.767-.541 1.15-.154.165 0 .493-.077.767 0 .164.077.383 0 .493-.695.712-.618 1.533-.695 2.355 0 .219-.077.383-.154.547-.078.165-.618.493-.078.877" })));
10985
- };
10986
-
10987
- var MarkedTextMark = function (props) {
10988
- if (props.variant === 'highlight') {
10989
- return React.createElement(Highlight, __assign({}, props));
10990
- }
10991
- if (props.variant === 'underline') {
10992
- return React.createElement(Underline, __assign({}, props));
10993
- }
10994
- return null;
10995
- };
10996
-
10997
- var MarkedText = function (_a) {
10998
- var children = _a.children, props = __rest(_a, ["children"]);
10999
- var recipe = react$1.useSlotRecipe({ key: 'markedText' });
11000
- var _b = recipe.splitVariantProps(props), recipeProps = _b[0], boxProps = _b[1];
11001
- var styles = recipe(recipeProps);
11002
- var variant = props.variant, highlightColor = props.highlightColor;
11003
- return (React.createElement(react$1.Box, __assign({ css: styles.container }, boxProps),
11004
- React.createElement(MarkedTextMark, { variant: variant, highlightColor: highlightColor }),
11005
- React.createElement(react$1.Box, { css: styles.text }, children)));
11006
- };
11007
-
11008
- var _a$1;
11009
- var themes = (_a$1 = {},
11010
- _a$1[Brand.AutoScout24] = autoScout24System,
11011
- _a$1[Brand.MotoScout24] = motoScout24System,
11012
- _a$1);
11013
- var ThemeProvider = function (_a) {
11014
- var children = _a.children, theme = _a.theme;
11015
- return React.createElement(react$1.ChakraProvider, { value: themes[theme] }, children);
11016
- };
11017
-
11018
- var TopListingBadge = function (_a) {
11019
- var children = _a.children, aspectRatio = _a.aspectRatio;
11020
- return (React.createElement(react$1.Grid, null,
11021
- React.createElement(react$1.GridItem, { gridColumn: 1, gridRow: 1 }, aspectRatio ? (React.createElement(react$1.AspectRatio, { ratio: aspectRatio }, children)) : (children)),
11022
- React.createElement(react$1.GridItem, { gridColumn: 1, gridRow: 1, zIndex: "docked", overflow: "hidden", position: "relative", pointerEvents: "none", css: { touchAction: 'none' } },
11023
- React.createElement(react$1.Badge, { transform: "rotate(-45deg) translate(-50%) translateY(9px)", position: "absolute", transformOrigin: "top left", width: "4xl", textAlign: "center", paddingLeft: "sm", color: "gray.900" }, "Top"))));
11194
+ React.createElement(react$1.Pagination.NextTrigger, { asChild: true, css: styles.paginationButton, display: { base: 'none', xs: 'inline-flex' } },
11195
+ React.createElement(react$1.IconButton, null,
11196
+ React.createElement(ChevronRightSmallIcon, null))))));
11024
11197
  };
11025
11198
 
11026
11199
  var InputLeftElement = function (_a) {
@@ -11098,94 +11271,6 @@ var RangeFilterInput = function (_a) {
11098
11271
  React.createElement(InputGroup, __assign({ inputProps: to, variant: "inputRight", handleChange: handleChange, onBlur: onBlur, unit: unit }, rest))));
11099
11272
  };
11100
11273
 
11101
- var _a;
11102
- var badgeText = (_a = {},
11103
- _a[Brand.AutoScout24] = 'TopCar',
11104
- _a[Brand.MotoScout24] = 'TopMoto',
11105
- _a);
11106
- var TopVehicleSharedBadge = function (_a) {
11107
- var children = _a.children, aspectRatio = _a.aspectRatio, brand = _a.brand;
11108
- return (React.createElement(react$1.Box, null,
11109
- React.createElement(react$1.Box, { w: "full", textAlign: "center", textStyle: "heading4", p: "xs", color: "gray.900" }, badgeText[brand]),
11110
- aspectRatio ? (React.createElement(AspectRatio, { ratio: aspectRatio }, children)) : (children)));
11111
- };
11112
-
11113
- var emptyItemOffset = 0;
11114
- var firstItemOffset = 1;
11115
- var getItemOffset = function (applyIndentation) {
11116
- return applyIndentation ? firstItemOffset : emptyItemOffset;
11117
- };
11118
- var getSliderStepValue = function (marks, applyIndentation, value) {
11119
- var selectedMarkIndex = marks.findIndex(function (mark) { return mark.value === value; });
11120
- if (selectedMarkIndex < emptyItemOffset) {
11121
- return getItemOffset(applyIndentation);
11122
- }
11123
- return selectedMarkIndex + getItemOffset(applyIndentation);
11124
- };
11125
- var getSliderMarks = function (marks, applyIndentation) {
11126
- return marks.map(function (mark, index) { return (__assign(__assign({}, mark), { stepValue: index + getItemOffset(applyIndentation) })); });
11127
- };
11128
- var DiscreteSlider = function (_a) {
11129
- var marks = _a.marks, _b = _a.applyIndentation, applyIndentation = _b === void 0 ? true : _b, onValueChanged = _a.onValueChanged, value = _a.value;
11130
- var sliderStepValue = getSliderStepValue(marks, applyIndentation, value);
11131
- var sliderMarks = getSliderMarks(marks, applyIndentation);
11132
- var handleOnChange = function (newStepValue) {
11133
- var _a;
11134
- if (applyIndentation && newStepValue < firstItemOffset)
11135
- return;
11136
- var newSliderMark = (_a = sliderMarks.find(function (mark) { return mark.stepValue === newStepValue; })) === null || _a === void 0 ? void 0 : _a.value;
11137
- onValueChanged(newSliderMark);
11138
- };
11139
- return (React.createElement(react$1.Slider.Root, { step: 1, max: sliderMarks.length - 1 + getItemOffset(applyIndentation), value: [sliderStepValue], onValueChange: function (details) { var _a; return handleOnChange((_a = details.value[0]) !== null && _a !== void 0 ? _a : sliderStepValue); } },
11140
- React.createElement(react$1.Slider.Control, null,
11141
- React.createElement(react$1.Slider.Track, null,
11142
- React.createElement(react$1.Slider.Range, null)),
11143
- React.createElement(react$1.Slider.Thumbs, null),
11144
- React.createElement(react$1.Slider.MarkerGroup, null, sliderMarks.map(function (_a, index) {
11145
- var stepValue = _a.stepValue, label = _a.label;
11146
- return (React.createElement(react$1.Slider.Marker, { key: index, value: stepValue, style: {
11147
- pointerEvents: 'all',
11148
- fontWeight: sliderStepValue === stepValue ? 'bold' : 'normal',
11149
- } }, label));
11150
- })))));
11151
- };
11152
-
11153
- var Tooltip = function (_a) {
11154
- var children = _a.children, _b = _a.placement, placement = _b === void 0 ? 'bottom' : _b, _c = _a.maxWidth, maxWidth = _c === void 0 ? '6xl' : _c, label = _a.label;
11155
- var _d = React.useState(false), isOpen = _d[0], setIsOpen = _d[1];
11156
- // eslint-disable-next-line @typescript-eslint/no-explicit-any
11157
- var childrenWithProps = React.cloneElement(children, {
11158
- onMouseEnter: function () { return setIsOpen(true); },
11159
- onMouseLeave: function () { return setIsOpen(false); },
11160
- onClick: function () { return setIsOpen(true); },
11161
- });
11162
- return (React.createElement(react$1.TooltipRoot, { positioning: {
11163
- placement: placement,
11164
- }, open: isOpen },
11165
- React.createElement(react$1.TooltipTrigger, { asChild: true }, childrenWithProps),
11166
- React.createElement(react$1.TooltipPositioner, null,
11167
- React.createElement(react$1.TooltipContent, { maxWidth: maxWidth },
11168
- React.createElement(react$1.TooltipArrow, null,
11169
- React.createElement(react$1.TooltipArrowTip, null)),
11170
- label))));
11171
- };
11172
-
11173
- var FormControlSection = function (_a) {
11174
- var children = _a.children, errorMessage = _a.errorMessage, id = _a.id, label = _a.label, hint = _a.hint, tooltip = _a.tooltip;
11175
- var isInvalid = !!errorMessage;
11176
- return (React.createElement(react$1.Field.Root, { id: id, invalid: isInvalid },
11177
- React.createElement(react$1.Box, { border: "1px", borderRadius: "sm", borderColor: isInvalid ? 'red.500' : 'gray.400', padding: "2xl" },
11178
- React.createElement(Flex, { flexDirection: "column" },
11179
- React.createElement(react$1.Box, { mb: "lg" },
11180
- React.createElement(Flex, { alignItems: "center" },
11181
- label ? (React.createElement(Text, { color: "gray.900", textStyle: "heading4" }, label)) : null,
11182
- tooltip ? (React.createElement(Tooltip, { label: tooltip },
11183
- React.createElement(InformationIcon, { ml: "md" }))) : null),
11184
- hint ? (React.createElement(Text, { color: "gray.900", textStyle: "body" }, hint)) : null),
11185
- children)),
11186
- React.createElement(react$1.Field.ErrorText, null, errorMessage)));
11187
- };
11188
-
11189
11274
  var RangeSlider = function (_a) {
11190
11275
  var _b = _a.min, min = _b === void 0 ? 0 : _b, _c = _a.max, max = _c === void 0 ? 10 : _c, onChange = _a.onChange, onChangeEnd = _a.onChangeEnd, rest = __rest(_a, ["min", "max", "onChange", "onChangeEnd"]);
11191
11276
  return (React.createElement(react$1.Slider.Root, __assign({ defaultValue: [min, max], min: min, max: max, onValueChange: function (details) { return onChange === null || onChange === void 0 ? void 0 : onChange(details.value); }, onValueChangeEnd: function (details) { return onChangeEnd === null || onChangeEnd === void 0 ? void 0 : onChangeEnd(details.value); } }, rest),
@@ -11196,268 +11281,138 @@ var RangeSlider = function (_a) {
11196
11281
  React.createElement(react$1.Slider.Thumb, { index: 1, "aria-label": "Max", width: { base: 'md', sm: 'sm' }, height: { base: 'md', sm: 'sm' } }))));
11197
11282
  };
11198
11283
 
11199
- var icons = {
11200
- previous: React.createElement(ChevronLeftSmallIcon, null),
11201
- next: React.createElement(ChevronRightSmallIcon, null),
11202
- };
11203
- var ThumbnailNavigationButton = function (_a) {
11204
- var direction = _a.direction, onClick = _a.onClick;
11205
- var recipe = react$1.useSlotRecipe({ key: 'carousel' });
11206
- var styles = recipe({ variant: 'fullScreen' });
11207
- var side = direction === 'previous' ? { left: '0' } : { right: '0' };
11208
- return (React.createElement(react$1.chakra.button, { onClick: onClick, "aria-label": "scroll to ".concat(direction, " thumbnail group"), "aria-controls": "thumbnails-wrapper", css: __assign(__assign({}, styles.paginationButton), side) },
11209
- React.createElement(Flex, { css: styles.paginationIconContainer }, icons[direction])));
11210
- };
11211
-
11212
- var Thumbnail = function (_a) {
11213
- var onClick = _a.onClick, isCurrent = _a.isCurrent, thumbnailIndex = _a.thumbnailIndex, totalThumbnails = _a.totalThumbnails, children = _a.children;
11214
- return (React.createElement(AspectRatio, { ratio: 4 / 3, onClick: onClick, width: "3xl", flexShrink: "0", cursor: "pointer", mr: "xs", border: "4px", borderColor: isCurrent ? 'blue.400' : 'transparent', "aria-current": isCurrent, "aria-label": "thumbnail ".concat(thumbnailIndex + 1, " of ").concat(totalThumbnails) }, children));
11284
+ var Rating = function (_a) {
11285
+ var rating = _a.rating, props = __rest(_a, ["rating"]);
11286
+ var percent = "calc((".concat(rating.toString(), " - 0.16) / 5 * 100%)");
11287
+ var recipe = react$1.useRecipe({ key: 'rating' });
11288
+ var recipeProps = recipe.splitVariantProps(props)[0];
11289
+ var styles = recipe(recipeProps);
11290
+ return (React.createElement(react$1.Box, { "aria-label": "Rating is ".concat(rating, " out of 5"), css: __assign(__assign({}, styles), { '--percent': percent, '--star-color': 'colors.orange.300', '&::before': {
11291
+ content: '"★★★★★"',
11292
+ letterSpacing: '0.5em',
11293
+ color: 'var(--star-color)',
11294
+ background: 'linear-gradient(90deg, var(--star-color) var(--percent), white var(--percent))',
11295
+ backgroundClip: 'text',
11296
+ WebkitTextFillColor: 'transparent',
11297
+ WebkitTextStroke: '0.1em var(--star-color)',
11298
+ } }) }));
11215
11299
  };
11216
11300
 
11217
- var ThumbnailPagination = function (_a) {
11218
- var currentSlideIndex = _a.currentSlideIndex, thumbnails = _a.thumbnails, mainCarousel = _a.mainCarousel, paginationCarouselRef = _a.paginationCarouselRef, paginationCarousel = _a.paginationCarousel;
11219
- var _b = React.useState({ previous: false, next: true }), paginationButtonVisibility = _b[0], setPaginationButtonVisibility = _b[1];
11220
- var recipe = react$1.useSlotRecipe({ key: 'carousel' });
11221
- var styles = recipe({ variant: 'fullScreen' });
11222
- var scrollPrev = React.useCallback(function () { return paginationCarousel && paginationCarousel.scrollPrev(true); }, [paginationCarousel]);
11223
- var scrollNext = React.useCallback(function () { return paginationCarousel && paginationCarousel.scrollNext(true); }, [paginationCarousel]);
11224
- var onThumbnailClick = React.useCallback(function (index) {
11225
- if (!mainCarousel || !paginationCarousel)
11226
- return;
11227
- mainCarousel.scrollTo(index, true);
11228
- }, [mainCarousel, paginationCarousel]);
11229
- var evalPaginationButtonVisibility = React.useCallback(function () {
11230
- if (!paginationCarousel ||
11231
- paginationCarousel.slidesNotInView().length === 0) {
11232
- setPaginationButtonVisibility({ previous: false, next: false });
11233
- return;
11234
- }
11235
- var progress = Math.max(0, Math.min(1, paginationCarousel.scrollProgress()));
11236
- var slideWidth = 1 / thumbnails.length;
11237
- setPaginationButtonVisibility({
11238
- previous: progress > slideWidth,
11239
- next: progress < 1 - slideWidth,
11240
- });
11241
- }, [paginationCarousel, thumbnails.length]);
11242
- React.useEffect(function () {
11243
- if (!paginationCarousel)
11244
- return;
11245
- evalPaginationButtonVisibility();
11246
- paginationCarousel.on('scroll', evalPaginationButtonVisibility);
11247
- paginationCarousel.on('slidesInView', evalPaginationButtonVisibility);
11248
- }, [paginationCarousel, evalPaginationButtonVisibility]);
11249
- return (React.createElement(react$1.Box, { ref: paginationCarouselRef, css: styles.pagination, "aria-label": "Pagination" },
11250
- React.createElement(Flex, { alignItems: "center", height: "full", id: "thumbnail-wrapper" }, thumbnails.map(function (slide, index) { return (React.createElement(Thumbnail, { key: "slide-".concat(index), onClick: function () { return onThumbnailClick(index); }, isCurrent: index === currentSlideIndex, thumbnailIndex: index, totalThumbnails: thumbnails.length }, paginationCarouselRef ? (slide) : (React.createElement(react$1.Box, { h: "full", w: "full", backgroundColor: "gray.50" })))); })),
11251
- paginationButtonVisibility.previous ? (React.createElement(ThumbnailNavigationButton, { onClick: scrollPrev, direction: "previous" })) : null,
11252
- paginationButtonVisibility.next ? (React.createElement(ThumbnailNavigationButton, { onClick: scrollNext, direction: "next" })) : null));
11301
+ var Section = function (_a) {
11302
+ var _b = _a.maxImgW, maxImgW = _b === void 0 ? '2xl' : _b, props = __rest(_a, ["maxImgW"]);
11303
+ var recipe = react$1.useSlotRecipe({ key: 'section' });
11304
+ var _c = recipe.splitVariantProps(props), recipeProps = _c[0], componentProps = _c[1];
11305
+ var styles = recipe(recipeProps);
11306
+ var title = componentProps.title, text = componentProps.text, image = componentProps.image;
11307
+ return (React.createElement(react$1.Stack, { css: styles.root },
11308
+ image ? (React.createElement(react$1.Box, { css: styles.imageContainer, maxW: maxImgW }, image)) : null,
11309
+ React.createElement(react$1.Stack, { css: styles.textContainer },
11310
+ React.createElement(react$1.chakra.span, { css: styles.title }, title),
11311
+ text ? React.createElement(react$1.chakra.span, { css: styles.text }, text) : null)));
11253
11312
  };
11254
11313
 
11255
- var Slide = function (_a) {
11256
- var onClick = _a.onClick, slideIndex = _a.slideIndex, totalSlides = _a.totalSlides, isCurrent = _a.isCurrent, children = _a.children, fullScreen = _a.fullScreen, slidesPerView = _a.slidesPerView;
11257
- var recipe = react$1.useSlotRecipe({ key: 'carousel' });
11258
- var styles = recipe(fullScreen ? { variant: 'fullScreen' } : {});
11259
- var flexBasisTokenOrVar = slidesPerView === 1 ? 'full' : 'var(--carousel-slide-basis)';
11260
- var basisVarResponsive = slidesPerView === 1
11261
- ? undefined
11262
- : (function () {
11263
- var map = slidesPerView;
11264
- var result = {};
11265
- Object.keys(map).forEach(function (bp) {
11266
- var value = map[bp];
11267
- if (typeof value === 'number') {
11268
- result[bp] = "calc(100% / ".concat(value, ")");
11269
- }
11270
- });
11271
- return result;
11272
- })();
11273
- return (React.createElement(react$1.Box, { css: __assign(__assign({}, styles.slide), (basisVarResponsive
11274
- ? { '--carousel-slide-basis': basisVarResponsive }
11275
- : {})), flexBasis: flexBasisTokenOrVar, paddingLeft: slidesPerView === 1 ? '0' : { base: 'md', md: '2xl' }, onClick: onClick, "aria-roledescription": "slide", "aria-label": "".concat(slideIndex + 1, " of ").concat(totalSlides), "aria-current": isCurrent }, children));
11276
- };
11314
+ var Select = React.forwardRef(function (_a, ref) {
11315
+ var options = _a.options, props = __rest(_a, ["options"]);
11316
+ var selectRecipe = react$1.useSlotRecipe({ key: 'select' });
11317
+ var _b = selectRecipe.splitVariantProps(props), selectRecipeProps = _b[0], restProps = _b[1];
11318
+ var selectStyles = selectRecipe(selectRecipeProps);
11319
+ var disabled = restProps.disabled, invalid = restProps.invalid, rest = __rest(restProps, ["disabled", "invalid"]);
11320
+ return (React.createElement(react$1.NativeSelect.Root, { disabled: disabled, invalid: invalid, css: selectStyles.root },
11321
+ React.createElement(react$1.NativeSelect.Field, __assign({ ref: ref }, rest, { css: selectStyles.field }), options.map(function (option) { return (React.createElement("option", { value: option.value, key: option.value }, option.label)); })),
11322
+ React.createElement(react$1.NativeSelect.Indicator, { css: [
11323
+ selectStyles.indicator,
11324
+ disabled && selectStyles.indicator._disabled,
11325
+ ] })));
11326
+ });
11327
+ Select.displayName = 'Select';
11277
11328
 
11278
- var NumbersPaginationButton = function (_a) {
11279
- var onClick = _a.onClick, isCurrent = _a.isCurrent, currentPageNumber = _a.currentPageNumber, totalNumbers = _a.totalNumbers;
11280
- var recipe = react$1.useSlotRecipe({ key: 'carousel' });
11281
- var styles = recipe();
11282
- return (React.createElement(react$1.chakra.button, { css: isCurrent
11283
- ? styles.numbersPaginationButtonActive
11284
- : styles.numbersPaginationButton, onClick: onClick, "aria-current": isCurrent, "aria-label": "numbers pagination ".concat(currentPageNumber, " of ").concat(totalNumbers) }, currentPageNumber));
11329
+ var SimpleHeader = function (props) {
11330
+ var recipe = react$1.useSlotRecipe({ key: 'simpleHeader' });
11331
+ var _a = recipe.splitVariantProps(props), recipeProps = _a[0], componentProps = _a[1];
11332
+ var styles = recipe(recipeProps);
11333
+ var title = componentProps.title, url = componentProps.url;
11334
+ return (React.createElement(react$1.chakra.header, { css: styles.header },
11335
+ React.createElement(Center, null,
11336
+ React.createElement(Flex, { css: styles.mainContainer },
11337
+ React.createElement(Flex, { justify: "space-between", minWidth: "full" },
11338
+ React.createElement(react$1.chakra.h1, { css: styles.title }, title),
11339
+ React.createElement(Flex, { css: styles.iconWrapper },
11340
+ React.createElement("a", { href: url },
11341
+ React.createElement(CloseIcon, null))))))));
11285
11342
  };
11286
11343
 
11287
- var NumbersPagination = function (_a) {
11288
- var currentSlideIndex = _a.currentSlideIndex, numberOfSlides = _a.numberOfSlides, mainCarousel = _a.mainCarousel;
11289
- var onClick = React.useCallback(function (index) {
11290
- if (mainCarousel) {
11291
- mainCarousel.scrollTo(index);
11292
- }
11293
- }, [mainCarousel]);
11294
- var pagination = Array.from({ length: numberOfSlides }, function (_, i) { return i; });
11295
- return (React.createElement(react$1.Box, { "aria-label": "Numbers Pagination" },
11296
- React.createElement(Flex, { flexDirection: "row", alignItems: "center", justifyContent: "center" }, pagination.map(function (index) { return (React.createElement(NumbersPaginationButton, { key: "slide-".concat(index), isCurrent: index === currentSlideIndex, currentPageNumber: index + 1, totalNumbers: numberOfSlides, onClick: function () { return onClick(index); } })); }))));
11344
+ var Tab = function (_a) {
11345
+ var variant = _a.variant, children = _a.children, rest = __rest(_a, ["variant", "children"]);
11346
+ var recipe = react$1.useSlotRecipe({ key: 'tabs' });
11347
+ var styles = recipe({ variant: variant });
11348
+ return (React.createElement(react$1.Tabs.Trigger, __assign({}, rest, { css: styles.trigger }), children));
11297
11349
  };
11298
11350
 
11299
- var NavigationButton = function (_a) {
11300
- var direction = _a.direction, onClick = _a.onClick, fullScreen = _a.fullScreen, _b = _a.isHovered, isHovered = _b === void 0 ? false : _b;
11301
- var recipe = react$1.useSlotRecipe({ key: 'carousel' });
11302
- var styles = recipe(fullScreen ? { variant: 'fullScreen' } : {});
11303
- var side = direction === 'previous' ? { left: '0' } : { right: '0' };
11304
- var icons = {
11305
- previous: React.createElement(ChevronLeftLargeIcon, { boxSize: undefined, css: styles.icon }),
11306
- next: React.createElement(ChevronRightLargeIcon, { boxSize: undefined, css: styles.icon }),
11307
- };
11308
- return (React.createElement(react$1.chakra.button, { onClick: onClick, "aria-label": "".concat(direction, " slide"), css: __assign(__assign(__assign({}, styles.buttonContainer), (isHovered ? { visibility: 'visible', pointerEvents: 'auto' } : {})), side) },
11309
- React.createElement(Flex, { css: styles.button }, icons[direction])));
11351
+ var TabList = function (_a) {
11352
+ var variant = _a.variant, children = _a.children, rest = __rest(_a, ["variant", "children"]);
11353
+ var recipe = react$1.useSlotRecipe({ key: 'tabs' });
11354
+ var styles = recipe({ variant: variant });
11355
+ return (React.createElement(react$1.Box, { overflowX: "auto" },
11356
+ React.createElement(react$1.Tabs.List, __assign({}, rest, { css: styles.list }), React.Children.map(children, function (child) {
11357
+ return React.isValidElement(child)
11358
+ ? React.cloneElement(child, { variant: variant })
11359
+ : child;
11360
+ }))));
11310
11361
  };
11311
11362
 
11312
- var DotsPaginationIndicator = function (_a) {
11313
- var isCurrent = _a.isCurrent;
11314
- var recipe = react$1.useSlotRecipe({ key: 'carousel' });
11315
- var styles = recipe();
11316
- return (React.createElement(react$1.chakra.span, { css: isCurrent
11317
- ? styles.dotsPaginationIndicatorActive
11318
- : styles.dotsPaginationIndicator }));
11363
+ var TabPanel = function (_a) {
11364
+ var variant = _a.variant, children = _a.children, rest = __rest(_a, ["variant", "children"]);
11365
+ var recipe = react$1.useSlotRecipe({ key: 'tabs' });
11366
+ var styles = recipe({ variant: variant });
11367
+ return (React.createElement(react$1.Tabs.Content, __assign({}, rest, { css: styles.content }), children));
11319
11368
  };
11320
11369
 
11321
- var NumbersDotsPagination = function (_a) {
11322
- var currentSlideIndex = _a.currentSlideIndex, numberOfSlides = _a.numberOfSlides;
11323
- var pagination = Array.from({ length: numberOfSlides }, function (_, i) { return i; });
11324
- var recipe = react$1.useSlotRecipe({ key: 'carousel' });
11325
- var styles = recipe();
11326
- return (React.createElement(react$1.Box, { "aria-label": "Dots Pagination", css: styles.dotsPaginationContainer },
11327
- React.createElement(Flex, { flexDirection: "row", alignItems: "center", justifyContent: "center" }, pagination.map(function (index) { return (React.createElement(DotsPaginationIndicator, { key: "slide-".concat(index), isCurrent: index === currentSlideIndex })); }))));
11370
+ var TabPanels = function (_a) {
11371
+ var variant = _a.variant, children = _a.children;
11372
+ var recipe = react$1.useSlotRecipe({ key: 'tabs' });
11373
+ var styles = recipe({ variant: variant });
11374
+ return (React.createElement(react$1.Box, { css: styles.contentGroup }, React.Children.map(children, function (child) {
11375
+ return React.isValidElement(child)
11376
+ ? React.cloneElement(child, { variant: variant })
11377
+ : child;
11378
+ })));
11328
11379
  };
11329
11380
 
11330
- exports.PaginationType = void 0;
11331
- (function (PaginationType) {
11332
- PaginationType["Thumbnail"] = "thumbnail";
11333
- PaginationType["Number"] = "number";
11334
- PaginationType["None"] = "none";
11335
- PaginationType["Dot"] = "dot";
11336
- })(exports.PaginationType || (exports.PaginationType = {}));
11337
- var isFullScreenSlide = function (value) {
11338
- return typeof value === 'object' && value !== null && 'slide' in value;
11381
+ var Tabs = function (_a) {
11382
+ var variant = _a.variant, children = _a.children, rest = __rest(_a, ["variant", "children"]);
11383
+ var recipe = react$1.useSlotRecipe({ key: 'tabs' });
11384
+ var styles = recipe({ variant: variant });
11385
+ return (React.createElement(react$1.Tabs.Root, __assign({}, rest, { css: styles.root }), React.Children.map(children, function (child) {
11386
+ return React.isValidElement(child)
11387
+ ? React.cloneElement(child, { variant: variant })
11388
+ : child;
11389
+ })));
11339
11390
  };
11340
- // eslint-disable-next-line sonarjs/cognitive-complexity
11341
- var Carousel = function (props) {
11342
- var _a;
11343
- var _b;
11344
- var _c = props.startIndex, startIndex = _c === void 0 ? 0 : _c, onSlideClick = props.onSlideClick, onSlideSelect = props.onSlideSelect, fullScreen = props.fullScreen, _d = props.paginationType, paginationType = _d === void 0 ? exports.PaginationType.None : _d, _e = props.slidesPerView, slidesPerView = _e === void 0 ? 1 : _e, _f = props.loop, loop = _f === void 0 ? true : _f, _g = props.slidesToScroll, slidesToScroll = _g === void 0 ? 1 : _g;
11345
- var _h = React.useState(loop), canScrollPrevious = _h[0], setCanScrollPrevious = _h[1];
11346
- var _j = React.useState(loop), canScrollNext = _j[0], setCanScrollNext = _j[1];
11347
- var _k = React.useState(startIndex), selectedIndex = _k[0], setSelectedIndex = _k[1];
11348
- var isSmallLandscapeViewport = react$1.useMediaQuery(["(max-height: ".concat(breakpoints.sm.px, "px) and (orientation: landscape)")], {
11349
- ssr: true,
11350
- fallback: [false],
11351
- })[0];
11352
- var recipe = react$1.useSlotRecipe({ key: 'carousel' });
11353
- var styles = recipe(fullScreen ? { variant: 'fullScreen' } : {});
11354
- var _l = useEmblaCarousel({
11355
- loop: loop,
11356
- startIndex: startIndex,
11357
- duration: 20,
11358
- align: 'start',
11359
- slidesToScroll: slidesToScroll,
11360
- }), mainCarouselRef = _l[0], mainCarousel = _l[1];
11361
- var _m = useEmblaCarousel({
11362
- containScroll: 'keepSnaps',
11363
- dragFree: true,
11364
- slidesToScroll: 'auto',
11365
- inViewThreshold: 1,
11366
- duration: 20,
11367
- }), paginationCarouselRef = _m[0], paginationCarousel = _m[1];
11368
- var scrollPrev = React.useCallback(function () { return mainCarousel && mainCarousel.scrollPrev(true); }, [mainCarousel]);
11369
- var scrollNext = React.useCallback(function () { return mainCarousel && mainCarousel.scrollNext(true); }, [mainCarousel]);
11370
- var onClick = React.useCallback(function (index) {
11371
- if (onSlideClick) {
11372
- onSlideClick(index);
11373
- }
11374
- }, [onSlideClick]);
11375
- var numberOfSlides = props.children.length;
11376
- var hasThumbnailPagination = fullScreen && !isSmallLandscapeViewport;
11377
- var onSelect = React.useCallback(function () {
11378
- var _a, _b;
11379
- if (!mainCarousel)
11380
- return;
11381
- var newIndex = mainCarousel.selectedScrollSnap();
11382
- var previousIndex = mainCarousel.previousScrollSnap();
11383
- setSelectedIndex(newIndex);
11384
- setCanScrollPrevious(mainCarousel.canScrollPrev());
11385
- setCanScrollNext(mainCarousel.canScrollNext());
11386
- if (paginationCarousel && hasThumbnailPagination) {
11387
- var slideRegistry = paginationCarousel.internalEngine().slideRegistry;
11388
- var snapIndexThatSlideBelongsTo = slideRegistry.findIndex(function (group) {
11389
- return group.includes(newIndex);
11390
- });
11391
- if (typeof snapIndexThatSlideBelongsTo !== 'undefined') {
11392
- paginationCarousel.scrollTo(snapIndexThatSlideBelongsTo);
11393
- }
11394
- }
11395
- if (onSlideSelect) {
11396
- onSlideSelect(newIndex);
11397
- }
11398
- if (!props.fullScreen) {
11399
- return;
11400
- }
11401
- var fullScreenChildren = props.children;
11402
- if (newIndex !== undefined) {
11403
- var currentSlide = fullScreenChildren[newIndex];
11404
- (_a = currentSlide === null || currentSlide === void 0 ? void 0 : currentSlide.onSlideEnter) === null || _a === void 0 ? void 0 : _a.call(currentSlide);
11405
- }
11406
- if (previousIndex !== undefined && previousIndex !== newIndex) {
11407
- var previousSlide = fullScreenChildren[previousIndex];
11408
- (_b = previousSlide === null || previousSlide === void 0 ? void 0 : previousSlide.onSlideLeave) === null || _b === void 0 ? void 0 : _b.call(previousSlide);
11409
- }
11410
- }, [
11411
- mainCarousel,
11412
- paginationCarousel,
11413
- onSlideSelect,
11414
- hasThumbnailPagination,
11415
- props.children,
11416
- props.fullScreen,
11417
- ]);
11418
- React.useEffect(function () {
11419
- if (!mainCarousel)
11420
- return;
11421
- onSelect();
11422
- mainCarousel.on('select', onSelect);
11423
- }, [mainCarousel, onSelect]);
11424
- React.useEffect(function () {
11425
- var keydownListener = function (e) {
11426
- if (fullScreen) {
11427
- switch (e.code) {
11428
- case 'ArrowRight':
11429
- scrollNext();
11430
- break;
11431
- case 'ArrowLeft':
11432
- scrollPrev();
11433
- break;
11434
- }
11435
- }
11436
- };
11437
- document.addEventListener('keydown', keydownListener);
11438
- return function () { return document.removeEventListener('keydown', keydownListener); };
11439
- }, [fullScreen, scrollNext, scrollPrev]);
11440
- var prerenderFallbackSlide = startIndex !== 0 && !mainCarouselRef;
11441
- var carouselHeightByPaginationTypeMap = (_a = {},
11442
- _a[exports.PaginationType.None] = '100%',
11443
- _a[exports.PaginationType.Dot] = '100%',
11444
- _a[exports.PaginationType.Thumbnail] = 'calc(100% - var(--carousel-pagination-height))',
11445
- _a[exports.PaginationType.Number] = 'calc(100% - var(--carousel-numbers-pagination-height))',
11446
- _a);
11447
- var carouselHeightCssVarValue = hasThumbnailPagination
11448
- ? carouselHeightByPaginationTypeMap[exports.PaginationType.Thumbnail]
11449
- : carouselHeightByPaginationTypeMap[paginationType];
11450
- var _o = React.useState(false), isHovered = _o[0], setIsHovered = _o[1];
11451
- return (React.createElement(react$1.Box, { css: styles.container, "data-group": true },
11452
- prerenderFallbackSlide ? (React.createElement(Slide, { slideIndex: startIndex, onClick: function () { return onClick(startIndex); }, totalSlides: numberOfSlides, isCurrent: startIndex === selectedIndex, fullScreen: !!fullScreen, slidesPerView: slidesPerView }, props.fullScreen
11453
- ? (_b = props.children[startIndex]) === null || _b === void 0 ? void 0 : _b.slide
11454
- : props.children[startIndex])) : (React.createElement(react$1.Box, { ref: mainCarouselRef, "aria-label": "Carousel", "aria-roledescription": "Carousel", role: "group", "data-group": true, onMouseEnter: function () { return setIsHovered(true); }, onMouseLeave: function () { return setIsHovered(false); }, height: 'var(--carousel-height)', css: __assign(__assign({}, styles.carousel), { '--carousel-height': carouselHeightCssVarValue }) },
11455
- React.createElement(Flex, { css: styles.slideContainer, marginLeft: slidesPerView === 1 ? '0' : { base: '-md', md: '-2xl' } }, props.children.map(function (slide, index) { return (React.createElement(Slide, { key: "slide-".concat(index), slideIndex: index, onClick: function () { return onClick(index); }, totalSlides: numberOfSlides, isCurrent: index === selectedIndex, fullScreen: !!fullScreen, slidesPerView: slidesPerView }, isFullScreenSlide(slide) ? slide.slide : slide)); })),
11456
- canScrollPrevious ? (React.createElement(NavigationButton, { onClick: scrollPrev, direction: "previous", fullScreen: !!fullScreen, isHovered: isHovered || (!!fullScreen && !isSmallLandscapeViewport) })) : null,
11457
- canScrollNext ? (React.createElement(NavigationButton, { onClick: scrollNext, direction: "next", fullScreen: !!fullScreen, isHovered: isHovered || (!!fullScreen && !isSmallLandscapeViewport) })) : null,
11458
- paginationType === exports.PaginationType.Dot ? (React.createElement(NumbersDotsPagination, { currentSlideIndex: selectedIndex, numberOfSlides: props.children.length })) : null)),
11459
- hasThumbnailPagination ? (React.createElement(ThumbnailPagination, { currentSlideIndex: selectedIndex, thumbnails: props.children.map(function (slide) { return slide.thumbnail; }), mainCarousel: mainCarousel, paginationCarousel: paginationCarousel, paginationCarouselRef: paginationCarouselRef })) : null,
11460
- paginationType === exports.PaginationType.Number ? (React.createElement(NumbersPagination, { mainCarousel: mainCarousel, currentSlideIndex: selectedIndex, numberOfSlides: props.children.length })) : null));
11391
+
11392
+ var Body = react$1.Table.Body, Caption = react$1.Table.Caption, Cell = react$1.Table.Cell, Column = react$1.Table.Column, ColumnGroup = react$1.Table.ColumnGroup, ColumnHeader = react$1.Table.ColumnHeader, Footer = react$1.Table.Footer, Header = react$1.Table.Header, Root = react$1.Table.Root, Row = react$1.Table.Row, ScrollArea = react$1.Table.ScrollArea;
11393
+ Body.displayName = 'Table.Body';
11394
+ Caption.displayName = 'Table.Caption';
11395
+ Column.displayName = 'Table.Column';
11396
+ ColumnGroup.displayName = 'Table.ColumnGroup';
11397
+ Footer.displayName = 'Table.Footer';
11398
+ Header.displayName = 'Table.Header';
11399
+ Root.displayName = 'Table.Root';
11400
+ Row.displayName = 'Table.Row';
11401
+ ScrollArea.displayName = 'Table.ScrollArea';
11402
+ Cell.displayName = 'Table.Cell';
11403
+ ColumnHeader.displayName = 'Table.ColumnHeader';
11404
+ var Table = {
11405
+ Body: Body,
11406
+ Caption: Caption,
11407
+ Cell: Cell,
11408
+ Column: Column,
11409
+ ColumnGroup: ColumnGroup,
11410
+ ColumnHeader: ColumnHeader,
11411
+ Footer: Footer,
11412
+ Header: Header,
11413
+ Root: Root,
11414
+ Row: Row,
11415
+ ScrollArea: ScrollArea,
11461
11416
  };
11462
11417
 
11463
11418
  var TenantSelectionModalLayout = function (_a) {
@@ -11468,7 +11423,7 @@ var TenantSelectionModalLayout = function (_a) {
11468
11423
 
11469
11424
  var TenantSelectionSelect = function (_a) {
11470
11425
  var tenantSelection = _a.tenantSelection, setTenantSelection = _a.setTenantSelection, user = _a.user;
11471
- var t = i18nPkg.useI18n().t;
11426
+ var t = useI18n().t;
11472
11427
  var onTenantSelect = React.useCallback(function (selectedTenantId) {
11473
11428
  setTenantSelection(function (current) {
11474
11429
  return __assign(__assign({}, current), { selectedTenant: selectedTenantId, showSelection: false });
@@ -11482,7 +11437,7 @@ var img = "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAQAAAAEBCAMAAACg8IvxAAA
11482
11437
 
11483
11438
  var TenantSelectionOverview = function (_a) {
11484
11439
  var tenantSelection = _a.tenantSelection, setTenantSelection = _a.setTenantSelection, user = _a.user, selectTenant = _a.selectTenant;
11485
- var t = i18nPkg.useI18n().t;
11440
+ var t = useI18n().t;
11486
11441
  var getSelectButtonLabel = function () {
11487
11442
  if (!tenantSelection.selectedTenant)
11488
11443
  return t('auth.tenantSelection.selectButton');
@@ -11540,6 +11495,73 @@ var TenantSelection = function (_a) {
11540
11495
  React.createElement(TenantSelectionOverview, { user: user, tenantSelection: tenantSelection, setTenantSelection: setTenantSelection, selectTenant: selectTenant })));
11541
11496
  };
11542
11497
 
11498
+ var Underline = function (props) {
11499
+ var recipe = react$1.useSlotRecipe({ key: 'markedText' });
11500
+ var recipeProps = recipe.splitVariantProps(props)[0];
11501
+ var styles = recipe(recipeProps);
11502
+ return (React.createElement(react$1.chakra.svg, { css: styles.mark, xmlns: "http://www.w3.org/2000/svg", viewBox: "0 0 150 11", fill: "none", preserveAspectRatio: "none" },
11503
+ React.createElement(react$1.chakra.path, { fill: "brand.primary", d: "M147.274 5.414c-.221.13-.294.258-.218.427.151.21-.07.447-.291.661-.146.214-.516.43-.737.624-.222.151-.443.324-.665.496.523.185.374.166-.664.517.224.061.374.144.598.227-.892.073-1.71.146-2.678.157-2.381.026-4.762.116-7.144.184l-17.934.389c-2.158.045-4.243.025-6.401.049-.893.01-1.861 0-2.754.03-.446.005-.967.053-1.413.058a275.9 275.9 0 0 1-4.169.025c-.148.002-.372-.017-.521.006-2.306.089-4.689.009-6.996.055-1.116.034-2.232.046-3.349.058l-3.796.042c-3.2.035-6.4.07-9.6.085-2.83.01-5.658-.002-8.486.008-1.861 0-3.796.02-5.731.042-.968.01-1.936 0-2.903.01-.819.01-1.563.039-2.382.048-.595.007-1.191-.05-1.861-.043-.893.01-1.786.062-2.753.072l-9.974.046-11.462.127c-1.116.012-2.158.066-3.274.078-.447.005-.968-.032-1.415-.027-1.563.017-3.05.055-4.614.072-.297.003-.595.007-.743.115 0 .042-.371.046-.595.07l-9.6.169c-1.265.014-2.456.048-3.72.083-.67.029-1.265.1-1.935.107-1.34-.007-2.68-.013-4.02-.041a5.054 5.054 0 0 1-1.193-.2c-.821-.224-1.42-.493-1.498-.832-.077-.275-.23-.57-.307-.846-.001-.127.072-.256.145-.384.073-.086.072-.17.146-.256.144-.384.066-.787.36-1.172.145-.278.29-.555.139-.83 0-.063.222-.13.295-.215.294-.343.514-.707.807-1.05.147-.192.517-.409.366-.577-.226-.295.515-.579.065-.85-.15-.083.072-.213.22-.32 0-.043.222-.11.148-.109-.448-.122-.003-.255.145-.341.296-.173-.004-.361.664-.538a6.1 6.1 0 0 1 1.56-.208c1.638-.04 3.35-.08 4.987-.098 2.753-.051 5.433-.102 8.186-.132 3.052-.055 6.177-.09 9.229-.144l6.251-.07 7.964-.087a219.85 219.85 0 0 1 3.722-.02c1.563-.017 3.051-.033 4.614-.029 2.308-.025 4.54-.029 6.848-.033l6.997-.013c2.158-.003 4.242-.025 6.401-.007 2.903.01 5.806.021 8.71.01 2.009 0 4.018-.065 6.028-.066 2.158-.002 4.392.016 6.55-.008 2.53-.028 5.06-.077 7.666-.106 4.167-.045 8.336-.07 12.429-.115 2.977-.033 5.954-.087 9.005-.142l10.568-.18c3.051-.054 6.028-.15 9.004-.226 2.381-.069 4.837-.117 7.293-.165.521-.006.968.053 1.49.09-.221.257-.145.426.229.55-.594.112-.37.216.003.275-.222.13-.444.239-.517.346-.148.129-.072.255.598.248-.371.068-.669.113-1.115.182.075.042.15.083.225.104.596.078.972.392.527.546-.148.065-.595.07-.892.095v.063c.671.078.524.27.601.418.001.17-.146.3-.517.452-.148.065.003.191-.071.298.001.064.076.148.002.191-.666.283-.588.601-.659.92.001.085-.073.15-.147.214-.074.065-.593.198-.071.34Z" })));
11504
+ };
11505
+
11506
+ var Highlight = function (props) {
11507
+ var recipe = react$1.useSlotRecipe({ key: 'markedText' });
11508
+ var recipeProps = recipe.splitVariantProps(props)[0];
11509
+ var styles = recipe(recipeProps);
11510
+ return (React.createElement(react$1.chakra.svg, { css: styles.mark, xmlns: "http://www.w3.org/2000/svg", viewBox: "0 0 155 24", fill: "none", preserveAspectRatio: "none" },
11511
+ React.createElement(react$1.chakra.path, { fill: props.highlightColor, d: "M152.76 13.91c-.231.328-.309.657-.231 1.095.154.547-.078 1.15-.309 1.697-.155.548-.541 1.096-.773 1.588-.231.384-.463.822-.695 1.26.541.493.387.438-.695 1.314.232.165.386.384.618.603-.927.164-1.776.328-2.78.328-2.471 0-4.943.164-7.414.274l-18.613.493c-2.239.055-4.402-.055-6.641-.055-.927 0-1.931-.055-2.858 0-.463 0-1.004.11-1.467.11-1.468 0-2.858 0-4.325-.055-.154 0-.386-.055-.541 0-2.394.164-4.865-.11-7.26-.055-1.158.055-2.316.055-3.475.055h-3.938c-3.321 0-6.642 0-9.963-.055-2.935-.055-5.87-.164-8.804-.219-1.93-.055-3.939-.055-5.947-.055-1.004 0-2.008-.054-3.012-.054-.85 0-1.622.054-2.471.054-.618 0-1.236-.164-1.93-.164-.928 0-1.854.11-2.858.11l-10.35-.165H34.137c-1.159 0-2.24.11-3.399.11-.463 0-1.004-.11-1.467-.11-1.622 0-3.166.055-4.788.055-.31 0-.618 0-.773.274 0 .11-.386.11-.617.164l-9.963.164c-1.313 0-2.548.055-3.861.11-.696.055-1.313.219-2.008.219-1.39-.055-2.78-.11-4.17-.219-.464-.055-.85-.274-1.236-.548-.85-.602-1.468-1.314-1.545-2.19-.077-.712-.232-1.479-.309-2.19 0-.33.077-.658.154-.986.078-.22.078-.438.155-.658.154-.985.077-2.026.386-3.011.155-.712.309-1.424.155-2.136 0-.164.231-.329.308-.548.31-.876.541-1.807.85-2.683.154-.493.54-1.04.386-1.479-.232-.766.54-1.478.077-2.19-.154-.22.078-.548.232-.822 0-.109.232-.273.155-.273-.464-.329 0-.657.154-.877.309-.438 0-.93.695-1.369C4.247.493 4.711.33 5.329.33c1.699-.055 3.475-.11 5.174-.11C13.361.164 16.141.109 19 .109 22.165.056 25.409.056 28.575 0h14.751c1.313 0 2.548 0 3.861.055 1.622 0 3.167 0 4.789.055 2.394 0 4.71.054 7.105.109l7.26.164c2.239.055 4.401.055 6.641.165 3.012.11 6.024.219 9.036.273 2.085.055 4.17-.054 6.255 0 2.24.055 4.557.165 6.797.165 2.626 0 5.251-.055 7.954-.055 4.325 0 8.65.055 12.898.055 3.089 0 6.178-.055 9.345-.11l10.966-.164c3.167-.055 6.256-.22 9.345-.329 2.471-.11 5.02-.164 7.568-.219.541 0 1.004.165 1.545.274-.232.657-.154 1.095.232 1.424-.618.274-.386.548 0 .712-.232.328-.464.602-.541.876-.154.329-.077.657.618.657-.386.164-.695.274-1.158.438.077.11.154.22.231.274.618.22 1.004 1.04.541 1.424-.155.164-.618.164-.927.219v.164c.695.22.541.712.618 1.095 0 .439-.155.767-.541 1.15-.154.165 0 .493-.077.767 0 .164.077.383 0 .493-.695.712-.618 1.533-.695 2.355 0 .219-.077.383-.154.547-.078.165-.618.493-.078.877" })));
11512
+ };
11513
+
11514
+ var MarkedTextMark = function (props) {
11515
+ if (props.variant === 'highlight') {
11516
+ return React.createElement(Highlight, __assign({}, props));
11517
+ }
11518
+ if (props.variant === 'underline') {
11519
+ return React.createElement(Underline, __assign({}, props));
11520
+ }
11521
+ return null;
11522
+ };
11523
+
11524
+ var MarkedText = function (_a) {
11525
+ var children = _a.children, props = __rest(_a, ["children"]);
11526
+ var recipe = react$1.useSlotRecipe({ key: 'markedText' });
11527
+ var _b = recipe.splitVariantProps(props), recipeProps = _b[0], boxProps = _b[1];
11528
+ var styles = recipe(recipeProps);
11529
+ var variant = props.variant, highlightColor = props.highlightColor;
11530
+ return (React.createElement(react$1.Box, __assign({ css: styles.container }, boxProps),
11531
+ React.createElement(MarkedTextMark, { variant: variant, highlightColor: highlightColor }),
11532
+ React.createElement(react$1.Box, { css: styles.text }, children)));
11533
+ };
11534
+
11535
+ var _a$1;
11536
+ var themes = (_a$1 = {},
11537
+ _a$1[Brand.AutoScout24] = autoScout24System,
11538
+ _a$1[Brand.MotoScout24] = motoScout24System,
11539
+ _a$1);
11540
+ var ThemeProvider = function (_a) {
11541
+ var children = _a.children, theme = _a.theme;
11542
+ return React.createElement(react$1.ChakraProvider, { value: themes[theme] }, children);
11543
+ };
11544
+
11545
+ var TopListingBadge = function (_a) {
11546
+ var children = _a.children, aspectRatio = _a.aspectRatio;
11547
+ return (React.createElement(react$1.Grid, null,
11548
+ React.createElement(react$1.GridItem, { gridColumn: 1, gridRow: 1 }, aspectRatio ? (React.createElement(react$1.AspectRatio, { ratio: aspectRatio }, children)) : (children)),
11549
+ React.createElement(react$1.GridItem, { gridColumn: 1, gridRow: 1, zIndex: "docked", overflow: "hidden", position: "relative", pointerEvents: "none", css: { touchAction: 'none' } },
11550
+ React.createElement(react$1.Badge, { transform: "rotate(-45deg) translate(-50%) translateY(9px)", position: "absolute", transformOrigin: "top left", width: "4xl", textAlign: "center", paddingLeft: "sm", color: "gray.900" }, "Top"))));
11551
+ };
11552
+
11553
+ var _a;
11554
+ var badgeText = (_a = {},
11555
+ _a[Brand.AutoScout24] = 'TopCar',
11556
+ _a[Brand.MotoScout24] = 'TopMoto',
11557
+ _a);
11558
+ var TopVehicleSharedBadge = function (_a) {
11559
+ var children = _a.children, aspectRatio = _a.aspectRatio, brand = _a.brand;
11560
+ return (React.createElement(react$1.Box, null,
11561
+ React.createElement(react$1.Box, { w: "full", textAlign: "center", textStyle: "heading4", p: "xs", color: "gray.900" }, badgeText[brand]),
11562
+ aspectRatio ? (React.createElement(AspectRatio, { ratio: aspectRatio }, children)) : (children)));
11563
+ };
11564
+
11543
11565
  Object.defineProperty(exports, "Box", {
11544
11566
  enumerable: true,
11545
11567
  get: function () { return react$1.Box; }
@@ -11630,6 +11652,7 @@ exports.ChfCurrencyIcon = ChfCurrencyIcon;
11630
11652
  exports.Chip = Chip;
11631
11653
  exports.CloseIcon = CloseIcon;
11632
11654
  exports.CollapseIcon = CollapseIcon;
11655
+ exports.ColorPicker = ColorPicker;
11633
11656
  exports.CompareIcon = CompareIcon;
11634
11657
  exports.ConsumptionIcon = ConsumptionIcon;
11635
11658
  exports.CopyIcon = CopyIcon;