@smg-automotive/components 25.11.0-chakra-v3.8 → 25.11.0-chakra-v3.10

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 (131) hide show
  1. package/dist/cjs/components/colorPicker/index.d.ts +8 -0
  2. package/dist/cjs/components/colorPicker/index.d.ts.map +1 -0
  3. package/dist/cjs/components/errorPage/content/index.d.ts +10 -0
  4. package/dist/cjs/components/errorPage/content/index.d.ts.map +1 -0
  5. package/dist/cjs/components/errorPage/index.d.ts +2 -9
  6. package/dist/cjs/components/errorPage/index.d.ts.map +1 -1
  7. package/dist/cjs/components/filterPatterns/ActionButton.d.ts.map +1 -1
  8. package/dist/cjs/components/filterPatterns/Heading.d.ts +2 -9
  9. package/dist/cjs/components/filterPatterns/Heading.d.ts.map +1 -1
  10. package/dist/cjs/components/filterPatterns/HeadingContent.d.ts +10 -0
  11. package/dist/cjs/components/filterPatterns/HeadingContent.d.ts.map +1 -0
  12. package/dist/cjs/components/filterPatterns/dialog/Content.d.ts +4 -0
  13. package/dist/cjs/components/filterPatterns/dialog/Content.d.ts.map +1 -0
  14. package/dist/cjs/components/filterPatterns/dialog/index.d.ts +1 -2
  15. package/dist/cjs/components/filterPatterns/dialog/index.d.ts.map +1 -1
  16. package/dist/cjs/components/filterPatterns/popover/Content.d.ts +4 -0
  17. package/dist/cjs/components/filterPatterns/popover/Content.d.ts.map +1 -0
  18. package/dist/cjs/components/filterPatterns/popover/index.d.ts +1 -2
  19. package/dist/cjs/components/filterPatterns/popover/index.d.ts.map +1 -1
  20. package/dist/cjs/components/galleryHeader/Content.d.ts +10 -0
  21. package/dist/cjs/components/galleryHeader/Content.d.ts.map +1 -0
  22. package/dist/cjs/components/galleryHeader/index.d.ts +3 -9
  23. package/dist/cjs/components/galleryHeader/index.d.ts.map +1 -1
  24. package/dist/cjs/components/index.d.ts +10 -9
  25. package/dist/cjs/components/index.d.ts.map +1 -1
  26. package/dist/cjs/components/link/index.d.ts +3 -2
  27. package/dist/cjs/components/link/index.d.ts.map +1 -1
  28. package/dist/cjs/components/navigation/header/NavigationAvatar.d.ts.map +1 -1
  29. package/dist/cjs/components/navigation/header/drawer/DrawerLoginToggle.d.ts.map +1 -1
  30. package/dist/cjs/components/navigation/header/links/NavigationLink.d.ts.map +1 -1
  31. package/dist/cjs/components/navigation/header/navigationTenantMenu/index.d.ts.map +1 -1
  32. package/dist/cjs/components/skeleton/index.d.ts +1 -1
  33. package/dist/cjs/components/skeleton/index.d.ts.map +1 -1
  34. package/dist/cjs/components/tab/index.d.ts +4 -4
  35. package/dist/cjs/components/tab/index.d.ts.map +1 -1
  36. package/dist/cjs/components/tenantSelection/Overview.d.ts.map +1 -1
  37. package/dist/cjs/components/tenantSelection/select/index.d.ts.map +1 -1
  38. package/dist/cjs/components/text/index.d.ts +1 -1
  39. package/dist/cjs/components/text/index.d.ts.map +1 -1
  40. package/dist/cjs/components/translationProvider/index.d.ts.map +1 -1
  41. package/dist/cjs/components/translationProvider/withTranslationProvider.d.ts +8 -0
  42. package/dist/cjs/components/translationProvider/withTranslationProvider.d.ts.map +1 -0
  43. package/dist/cjs/index.js +1025 -1004
  44. package/dist/cjs/index.js.map +1 -1
  45. package/dist/cjs/utilities/i18nInit.d.ts +18 -0
  46. package/dist/cjs/utilities/i18nInit.d.ts.map +1 -0
  47. package/dist/esm/components/colorPicker/index.d.ts +8 -0
  48. package/dist/esm/components/colorPicker/index.d.ts.map +1 -0
  49. package/dist/esm/components/colorPicker/index.js +13 -0
  50. package/dist/esm/components/colorPicker/index.js.map +1 -0
  51. package/dist/esm/components/errorPage/content/EmailChangeVerification.js +1 -1
  52. package/dist/esm/components/errorPage/content/index.d.ts +10 -0
  53. package/dist/esm/components/errorPage/content/index.d.ts.map +1 -0
  54. package/dist/esm/components/errorPage/content/index.js +283 -0
  55. package/dist/esm/components/errorPage/content/index.js.map +1 -0
  56. package/dist/esm/components/errorPage/index.d.ts +2 -9
  57. package/dist/esm/components/errorPage/index.d.ts.map +1 -1
  58. package/dist/esm/components/errorPage/index.js +5 -283
  59. package/dist/esm/components/errorPage/index.js.map +1 -1
  60. package/dist/esm/components/filterPatterns/ActionButton.d.ts.map +1 -1
  61. package/dist/esm/components/filterPatterns/Heading.d.ts +2 -9
  62. package/dist/esm/components/filterPatterns/Heading.d.ts.map +1 -1
  63. package/dist/esm/components/filterPatterns/HeadingContent.d.ts +10 -0
  64. package/dist/esm/components/filterPatterns/HeadingContent.d.ts.map +1 -0
  65. package/dist/esm/components/filterPatterns/dialog/Content.d.ts +4 -0
  66. package/dist/esm/components/filterPatterns/dialog/Content.d.ts.map +1 -0
  67. package/dist/esm/components/filterPatterns/dialog/index.d.ts +1 -2
  68. package/dist/esm/components/filterPatterns/dialog/index.d.ts.map +1 -1
  69. package/dist/esm/components/filterPatterns/popover/Content.d.ts +4 -0
  70. package/dist/esm/components/filterPatterns/popover/Content.d.ts.map +1 -0
  71. package/dist/esm/components/filterPatterns/popover/index.d.ts +1 -2
  72. package/dist/esm/components/filterPatterns/popover/index.d.ts.map +1 -1
  73. package/dist/esm/components/galleryHeader/Content.d.ts +10 -0
  74. package/dist/esm/components/galleryHeader/Content.d.ts.map +1 -0
  75. package/dist/esm/components/galleryHeader/Content.js +196 -0
  76. package/dist/esm/components/galleryHeader/Content.js.map +1 -0
  77. package/dist/esm/components/galleryHeader/index.d.ts +3 -9
  78. package/dist/esm/components/galleryHeader/index.d.ts.map +1 -1
  79. package/dist/esm/components/galleryHeader/index.js +3 -196
  80. package/dist/esm/components/galleryHeader/index.js.map +1 -1
  81. package/dist/esm/components/index.d.ts +10 -9
  82. package/dist/esm/components/index.d.ts.map +1 -1
  83. package/dist/esm/components/link/index.d.ts +3 -2
  84. package/dist/esm/components/link/index.d.ts.map +1 -1
  85. package/dist/esm/components/link/index.js.map +1 -1
  86. package/dist/esm/components/navigation/footer/Apps.js +1 -1
  87. package/dist/esm/components/navigation/footer/Copyright.js +1 -1
  88. package/dist/esm/components/navigation/footer/Link.js +1 -1
  89. package/dist/esm/components/navigation/footer/Sections.js +1 -1
  90. package/dist/esm/components/navigation/header/ComparisonItem.js +1 -1
  91. package/dist/esm/components/navigation/header/FavoritesItem.js +1 -1
  92. package/dist/esm/components/navigation/header/NavigationAvatar.d.ts.map +1 -1
  93. package/dist/esm/components/navigation/header/NavigationAvatar.js +1 -1
  94. package/dist/esm/components/navigation/header/NavigationItem.js +1 -1
  95. package/dist/esm/components/navigation/header/drawer/DrawerLoginToggle.d.ts.map +1 -1
  96. package/dist/esm/components/navigation/header/drawer/DrawerLoginToggle.js +1 -1
  97. package/dist/esm/components/navigation/header/drawer/DrawerSections.js +1 -1
  98. package/dist/esm/components/navigation/header/drawer/index.js +1 -1
  99. package/dist/esm/components/navigation/header/drawer/index.js.map +1 -1
  100. package/dist/esm/components/navigation/header/links/NavigationLink.d.ts.map +1 -1
  101. package/dist/esm/components/navigation/header/links/NavigationLink.js +1 -1
  102. package/dist/esm/components/navigation/header/links/NavigationLink.js.map +1 -1
  103. package/dist/esm/components/navigation/header/navigationTenantMenu/index.d.ts.map +1 -1
  104. package/dist/esm/components/navigation/header/navigationTenantMenu/index.js +1 -1
  105. package/dist/esm/components/skeleton/index.d.ts +1 -1
  106. package/dist/esm/components/skeleton/index.d.ts.map +1 -1
  107. package/dist/esm/components/tab/index.d.ts +4 -4
  108. package/dist/esm/components/tab/index.d.ts.map +1 -1
  109. package/dist/esm/components/tenantSelection/Overview.d.ts.map +1 -1
  110. package/dist/esm/components/tenantSelection/Overview.js +1 -1
  111. package/dist/esm/components/tenantSelection/Overview.js.map +1 -1
  112. package/dist/esm/components/tenantSelection/select/index.d.ts.map +1 -1
  113. package/dist/esm/components/tenantSelection/select/index.js +1 -1
  114. package/dist/esm/components/tenantSelection/select/index.js.map +1 -1
  115. package/dist/esm/components/text/index.d.ts +1 -1
  116. package/dist/esm/components/text/index.d.ts.map +1 -1
  117. package/dist/esm/components/translationProvider/index.d.ts.map +1 -1
  118. package/dist/esm/components/translationProvider/index.js +2 -1
  119. package/dist/esm/components/translationProvider/index.js.map +1 -1
  120. package/dist/esm/components/translationProvider/withTranslationProvider.d.ts +8 -0
  121. package/dist/esm/components/translationProvider/withTranslationProvider.d.ts.map +1 -0
  122. package/dist/esm/components/translationProvider/withTranslationProvider.js +16 -0
  123. package/dist/esm/components/translationProvider/withTranslationProvider.js.map +1 -0
  124. package/dist/esm/index.js +10 -9
  125. package/dist/esm/index.js.map +1 -1
  126. package/dist/esm/utilities/i18nInit.d.ts +18 -0
  127. package/dist/esm/utilities/i18nInit.d.ts.map +1 -0
  128. package/dist/esm/utilities/i18nInit.js +7 -0
  129. package/dist/esm/utilities/i18nInit.js.map +1 -0
  130. package/dist/index.d.ts +257 -197
  131. 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 },
@@ -5947,173 +5947,510 @@ var Card = {
5947
5947
  Footer: Footer$2,
5948
5948
  };
5949
5949
 
5950
- var Center = function (_a) {
5951
- var children = _a.children, padding = _a.padding;
5952
- 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));
5953
5953
  };
5954
5954
 
5955
- var Checkbox = React.forwardRef(function (_a, ref) {
5956
- 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"]);
5957
- var recipe = react$1.useSlotRecipe({ key: 'checkbox' });
5958
- var combinedProps = __assign(__assign({}, props), { variant: variant });
5959
- var recipeProps = recipe.splitVariantProps(combinedProps)[0];
5960
- var styles = recipe(recipeProps);
5961
- 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 }),
5962
- React.createElement(react$1.Checkbox.HiddenInput, { ref: ref }),
5963
- React.createElement(react$1.Checkbox.Control, { css: styles.control }),
5964
- label && (React.createElement(react$1.Checkbox.Label, { css: __assign(__assign({}, styles.label), { fontWeight: fontWeight }) }, label))));
5965
- });
5966
-
5967
- var Separator = react$1.Separator;
5968
- Separator.displayName = 'Separator';
5969
-
5970
- var CheckboxGroup = function (_a) {
5971
- 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;
5972
- return (React.createElement(Stack, { gap: "md" },
5973
- 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 :
5974
- checkboxes.map(function (item, index) { return (React.createElement(React.Fragment, { key: item.name },
5975
- React.createElement(react$1.Box, { ps: "md", asChild: true },
5976
- React.createElement(Checkbox, { name: item.name, label: item.label, value: item.value, onChange: item.onChange, checked: item.checked, variant: variant, disabled: disabled })),
5977
- (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),
5978
5958
  };
5979
- CheckboxGroup.displayName = 'CheckboxGroup';
5980
-
5981
- var Count = function (_a) {
5982
- var count = _a.count, ariaLabel = _a.ariaLabel, props = __rest(_a, ["count", "ariaLabel"]);
5983
- var recipe = react$1.useRecipe({ key: 'count' });
5984
- var recipeProps = recipe.splitVariantProps(props)[0];
5985
- var styles = recipe(recipeProps);
5986
- 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])));
5987
5966
  };
5988
5967
 
5989
- var DatePicker = React.forwardRef(function (_a, ref) {
5990
- var min = _a.min, props = __rest(_a, ["min"]);
5991
- var recipe = react$1.useSlotRecipe({ key: 'input' });
5992
- var recipeProps = recipe.splitVariantProps(props)[0];
5993
- var styles = recipe(recipeProps);
5994
- return (React.createElement(react$1.Field.Root, { invalid: props.invalid },
5995
- 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 }))));
5996
- });
5997
- DatePicker.displayName = 'DatePicker';
5998
-
5999
- var Brand;
6000
- (function (Brand) {
6001
- Brand["AutoScout24"] = "autoscout24";
6002
- Brand["MotoScout24"] = "motoscout24";
6003
- })(Brand || (Brand = {}));
6004
-
6005
- var Switch = function (_a) {
6006
- _a.id; var disabled = _a.disabled, onCheckedChange = _a.onCheckedChange, checked = _a.checked, label = _a.label, props = __rest(_a, ["id", "disabled", "onCheckedChange", "checked", "label"]);
6007
- var recipe = react$1.useSlotRecipe({ key: 'switch' });
6008
- var recipeProps = recipe.splitVariantProps(props)[0];
6009
- var styles = recipe(recipeProps);
6010
- return (React.createElement(react$1.Switch.Root, { onCheckedChange: onCheckedChange, checked: checked, disabled: disabled, css: styles.root },
6011
- React.createElement(react$1.Switch.HiddenInput, null),
6012
- React.createElement(react$1.Switch.Control, { css: styles.control },
6013
- React.createElement(react$1.Switch.Thumb, { css: styles.thumb })),
6014
- 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));
6015
5971
  };
6016
5972
 
6017
- var DevOverlay = function (_a) {
6018
- 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;
6019
- var isThemeSwitcherChecked = Brand.AutoScout24 !== activeTheme;
6020
- 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)' } },
6021
- React.createElement(react$1.Flex, null,
6022
- React.createElement(react$1.Heading, { as: "h3", textStyle: "heading3" }, "Dev Overlay\u00A0"),
6023
- React.createElement(react$1.Spacer, null),
6024
- React.createElement(Button, { onClick: hideDevOverlay, "data-testid": "close-dev-overlay" },
6025
- React.createElement(CloseIcon, null))),
6026
- React.createElement(react$1.Heading, { as: "h4", textStyle: "heading4" }, "Variables"),
6027
- !variables || variables.length === 0 ? null : (React.createElement(react$1.Table.Root, null,
6028
- React.createElement(react$1.Table.Body, null,
6029
- React.createElement(react$1.Table.Row, null,
6030
- React.createElement(react$1.Table.ColumnHeader, { padding: "0" }, "Name"),
6031
- React.createElement(react$1.Table.ColumnHeader, null, "Value"))),
6032
- React.createElement(react$1.Table.Body, null, variables.map(function (_a) {
6033
- var name = _a.name, value = _a.value;
6034
- return (React.createElement(react$1.Table.Row, { key: name, wordBreak: "break-all" },
6035
- React.createElement(react$1.Table.Cell, { padding: "0" }, name),
6036
- React.createElement(react$1.Table.Cell, null, value)));
6037
- })))),
6038
- React.createElement("br", null),
6039
- React.createElement(react$1.Heading, { as: "h4", textStyle: "heading4" }, "Switch Theme"),
6040
- 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 }),
6041
- React.createElement(react$1.Heading, { as: "h4", textStyle: "heading4" }, "Switch Translation"),
6042
- 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));
6043
6009
  };
6044
6010
 
6045
- var H1 = function (_a) {
6046
- var _b = _a.textStyle, textStyle = _b === void 0 ? 'heading1' : _b, children = _a.children, rest = __rest(_a, ["textStyle", "children"]);
6047
- return (React.createElement(react$1.Heading, __assign({ as: "h1", textStyle: textStyle }, rest), children));
6048
- };
6049
- var H2 = function (_a) {
6050
- var _b = _a.textStyle, textStyle = _b === void 0 ? 'heading2' : _b, children = _a.children, rest = __rest(_a, ["textStyle", "children"]);
6051
- return (React.createElement(react$1.Heading, __assign({ as: "h2", textStyle: textStyle }, rest), children));
6052
- };
6053
- var H3 = function (_a) {
6054
- var _b = _a.textStyle, textStyle = _b === void 0 ? 'heading3' : _b, children = _a.children, rest = __rest(_a, ["textStyle", "children"]);
6055
- return (React.createElement(react$1.Heading, __assign({ as: "h3", textStyle: textStyle }, rest), children));
6056
- };
6057
- var H4 = function (_a) {
6058
- var _b = _a.textStyle, textStyle = _b === void 0 ? 'heading4' : _b, children = _a.children, rest = __rest(_a, ["textStyle", "children"]);
6059
- return (React.createElement(react$1.Heading, __assign({ as: "h4", textStyle: textStyle }, rest), children));
6060
- };
6061
- var H5 = function (_a) {
6062
- var _b = _a.textStyle, textStyle = _b === void 0 ? 'heading5' : _b, children = _a.children, rest = __rest(_a, ["textStyle", "children"]);
6063
- return (React.createElement(react$1.Heading, __assign({ as: "h5", textStyle: textStyle }, rest), children));
6064
- };
6065
- var H6 = function (_a) {
6066
- var _b = _a.textStyle, textStyle = _b === void 0 ? 'heading6' : _b, children = _a.children, rest = __rest(_a, ["textStyle", "children"]);
6067
- return (React.createElement(react$1.Heading, __assign({ as: "h6", 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));
6068
6032
  };
6069
6033
 
6070
- var DialogCloseButton = React.forwardRef(function (props, ref) { return (React.createElement(react$1.CloseButton, __assign({ ref: ref, cursor: 'pointer' }, props))); });
6071
-
6072
- var Dialog = function (_a) {
6073
- 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"]);
6074
- var dialogSize = size || variant !== 'fullScreen' ? { xs: 'full', sm: size } : 'full';
6075
- var bothActionButtons = primaryActionButton && secondaryActionButton;
6076
- var recipe = react$1.useSlotRecipe({ key: 'dialog' });
6077
- var recipeProps = recipe.splitVariantProps({
6078
- size: dialogSize,
6079
- motionPreset: motionPreset,
6080
- variant: variant,
6081
- overlayColor: overlayColor,
6082
- })[0];
6083
- var styles = recipe(recipeProps);
6084
- return (React.createElement(react$1.Dialog.Root, __assign({ open: open, onOpenChange: onOpenChange }, props),
6085
- React.createElement(react$1.Portal, null,
6086
- React.createElement(react$1.Dialog.Backdrop, { css: styles.backdrop }),
6087
- React.createElement(react$1.Dialog.Positioner, { css: styles.positioner },
6088
- React.createElement(react$1.Dialog.Content, { css: styles.content },
6089
- title && (React.createElement(react$1.Box, { borderBottom: "1px", borderColor: "gray.100" },
6090
- React.createElement(react$1.Dialog.Header, { css: styles.header },
6091
- React.createElement(H3, null, title),
6092
- React.createElement(react$1.Dialog.CloseTrigger, { asChild: true, css: styles.closeTrigger },
6093
- React.createElement(DialogCloseButton, { fontSize: "base" }))))),
6094
- React.createElement(react$1.Dialog.Body, { css: styles.body, p: disableBodyPadding ? '0' : undefined }, children),
6095
- (primaryActionButton || secondaryActionButton) && (React.createElement(react$1.Box, { borderTop: "1px", borderColor: "gray.100" },
6096
- React.createElement(react$1.Dialog.Footer, { display: "flex", justifyContent: bothActionButtons ? 'space-between' : 'flex-start', gap: bothActionButtons ? 'sm' : '0', css: styles.footer },
6097
- secondaryActionButton ? (React.createElement(Button, { variant: "secondary", onClick: secondaryActionButton.action, width: { base: 'full', sm: 'fit' } }, secondaryActionButton.label)) : null,
6098
- primaryActionButton ? (React.createElement(Button, { variant: "primary", onClick: primaryActionButton.action, width: { base: 'full', sm: 'fit' } }, primaryActionButton.label)) : null))))))));
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));
6099
6039
  };
6100
6040
 
6101
- var DrawerOverlay = function (props) {
6102
- return React.createElement(react$1.Drawer.Backdrop, __assign({}, props));
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); } })); }))));
6103
6051
  };
6104
6052
 
6105
- var DrawerContent = function (props) {
6106
- var children = props.children, withCloseButton = props.withCloseButton, drawerContentProps = __rest(props, ["children", "withCloseButton"]);
6107
- return (React.createElement(react$1.Drawer.Positioner, null,
6108
- React.createElement(react$1.Drawer.Content, __assign({}, drawerContentProps),
6109
- withCloseButton ? (React.createElement(react$1.Drawer.CloseTrigger, { asChild: true, fontSize: "base" },
6110
- React.createElement(CloseIcon, null))) : null,
6111
- children)));
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])));
6112
6064
  };
6113
6065
 
6114
- var DrawerBody = function (props) {
6115
- var children = props.children, drawerBodyProps = __rest(props, ["children"]);
6116
- return React.createElement(react$1.Drawer.Body, __assign({}, drawerBodyProps), children);
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 }));
6071
+ };
6072
+
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
+ };
6081
+
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, invalid = _a.invalid, rest = __rest(_a, ["width", "height", "padding", "backgroundColor", "invalid"]);
6217
+ return (React.createElement(react$1.Field.Root, { invalid: invalid },
6218
+ React.createElement(react$1.Input, __assign({}, rest, { ref: ref, type: "color", width: width, height: height, padding: padding, backgroundColor: backgroundColor, cursor: "pointer", _invalid: { borderColor: 'red.500' } }))));
6219
+ });
6220
+ ColorPicker.displayName = 'ColorPicker';
6221
+
6222
+ var Center = function (_a) {
6223
+ var children = _a.children, padding = _a.padding;
6224
+ return (React.createElement(react$1.Center, { padding: padding }, children));
6225
+ };
6226
+
6227
+ var Checkbox = React.forwardRef(function (_a, ref) {
6228
+ 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"]);
6229
+ var recipe = react$1.useSlotRecipe({ key: 'checkbox' });
6230
+ var combinedProps = __assign(__assign({}, props), { variant: variant });
6231
+ var recipeProps = recipe.splitVariantProps(combinedProps)[0];
6232
+ var styles = recipe(recipeProps);
6233
+ 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 }),
6234
+ React.createElement(react$1.Checkbox.HiddenInput, { ref: ref }),
6235
+ React.createElement(react$1.Checkbox.Control, { css: styles.control }),
6236
+ label && (React.createElement(react$1.Checkbox.Label, { css: __assign(__assign({}, styles.label), { fontWeight: fontWeight }) }, label))));
6237
+ });
6238
+
6239
+ var Separator = react$1.Separator;
6240
+ Separator.displayName = 'Separator';
6241
+
6242
+ var CheckboxGroup = function (_a) {
6243
+ 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;
6244
+ return (React.createElement(Stack, { gap: "md" },
6245
+ 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 :
6246
+ checkboxes.map(function (item, index) { return (React.createElement(React.Fragment, { key: item.name },
6247
+ React.createElement(react$1.Box, { ps: "md", asChild: true },
6248
+ React.createElement(Checkbox, { name: item.name, label: item.label, value: item.value, onChange: item.onChange, checked: item.checked, variant: variant, disabled: disabled })),
6249
+ (addDividerAfterIndex === null || addDividerAfterIndex === void 0 ? void 0 : addDividerAfterIndex.includes(index)) ? (React.createElement(Separator, { orientation: "horizontal" })) : null)); })));
6250
+ };
6251
+ CheckboxGroup.displayName = 'CheckboxGroup';
6252
+
6253
+ var Chip = function (_a) {
6254
+ var children = _a.children, onClick = _a.onClick, href = _a.href, ariaLabel = _a["aria-label"], rest = __rest(_a, ["children", "onClick", "href", 'aria-label']);
6255
+ var recipe = react$1.useRecipe({ recipe: chipRecipe });
6256
+ var recipeProps = recipe.splitVariantProps(rest)[0];
6257
+ var styles = recipe(recipeProps);
6258
+ var handleClick = function () {
6259
+ onClick === null || onClick === void 0 ? void 0 : onClick();
6260
+ };
6261
+ var handleKeyDown = function (event) {
6262
+ if (event.key === 'Enter' || event.key === ' ') {
6263
+ event.preventDefault();
6264
+ onClick === null || onClick === void 0 ? void 0 : onClick();
6265
+ }
6266
+ };
6267
+ var commonProps = __assign({ css: styles, 'aria-label': ariaLabel }, rest);
6268
+ var isLink = Boolean(href);
6269
+ var asType = isLink ? 'a' : 'button';
6270
+ return (React.createElement(react$1.Flex, __assign({ as: asType }, (isLink && onClick ? { href: href } : {}), (!isLink ? { type: 'button' } : {}), { onClick: handleClick, onKeyDown: handleKeyDown }, commonProps),
6271
+ recipeProps.selected ? (React.createElement(react$1.Box, { mx: "xs", color: "currentColor", display: "flex", alignItems: "center", justifyContent: "center" },
6272
+ React.createElement(CheckmarkIcon, { height: "xs", width: "xs" }))) : null,
6273
+ React.createElement(react$1.Box, { as: "span", whiteSpace: "nowrap" },
6274
+ React.createElement(react$1.Text, { textStyle: "body-small" }, children))));
6275
+ };
6276
+ Chip.displayName = 'Chip';
6277
+
6278
+ var Count = function (_a) {
6279
+ var count = _a.count, ariaLabel = _a.ariaLabel, props = __rest(_a, ["count", "ariaLabel"]);
6280
+ var recipe = react$1.useRecipe({ key: 'count' });
6281
+ var recipeProps = recipe.splitVariantProps(props)[0];
6282
+ var styles = recipe(recipeProps);
6283
+ return (React.createElement(react$1.chakra.span, { css: styles, "aria-label": ariaLabel }, count));
6284
+ };
6285
+
6286
+ var DatePicker = React.forwardRef(function (_a, ref) {
6287
+ var min = _a.min, props = __rest(_a, ["min"]);
6288
+ var recipe = react$1.useSlotRecipe({ key: 'input' });
6289
+ var recipeProps = recipe.splitVariantProps(props)[0];
6290
+ var styles = recipe(recipeProps);
6291
+ return (React.createElement(react$1.Field.Root, { invalid: props.invalid },
6292
+ 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 }))));
6293
+ });
6294
+ DatePicker.displayName = 'DatePicker';
6295
+
6296
+ var Brand;
6297
+ (function (Brand) {
6298
+ Brand["AutoScout24"] = "autoscout24";
6299
+ Brand["MotoScout24"] = "motoscout24";
6300
+ })(Brand || (Brand = {}));
6301
+
6302
+ var Switch = function (_a) {
6303
+ _a.id; var disabled = _a.disabled, onCheckedChange = _a.onCheckedChange, checked = _a.checked, label = _a.label, props = __rest(_a, ["id", "disabled", "onCheckedChange", "checked", "label"]);
6304
+ var recipe = react$1.useSlotRecipe({ key: 'switch' });
6305
+ var recipeProps = recipe.splitVariantProps(props)[0];
6306
+ var styles = recipe(recipeProps);
6307
+ return (React.createElement(react$1.Switch.Root, { onCheckedChange: onCheckedChange, checked: checked, disabled: disabled, css: styles.root },
6308
+ React.createElement(react$1.Switch.HiddenInput, null),
6309
+ React.createElement(react$1.Switch.Control, { css: styles.control },
6310
+ React.createElement(react$1.Switch.Thumb, { css: styles.thumb })),
6311
+ label ? (React.createElement(react$1.Switch.Label, { css: styles.label }, label)) : null));
6312
+ };
6313
+
6314
+ var DevOverlay = function (_a) {
6315
+ 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;
6316
+ var isThemeSwitcherChecked = Brand.AutoScout24 !== activeTheme;
6317
+ 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)' } },
6318
+ React.createElement(react$1.Flex, null,
6319
+ React.createElement(react$1.Heading, { as: "h3", textStyle: "heading3" }, "Dev Overlay\u00A0"),
6320
+ React.createElement(react$1.Spacer, null),
6321
+ React.createElement(Button, { onClick: hideDevOverlay, "data-testid": "close-dev-overlay" },
6322
+ React.createElement(CloseIcon, null))),
6323
+ React.createElement(react$1.Heading, { as: "h4", textStyle: "heading4" }, "Variables"),
6324
+ !variables || variables.length === 0 ? null : (React.createElement(react$1.Table.Root, null,
6325
+ React.createElement(react$1.Table.Body, null,
6326
+ React.createElement(react$1.Table.Row, null,
6327
+ React.createElement(react$1.Table.ColumnHeader, { padding: "0" }, "Name"),
6328
+ React.createElement(react$1.Table.ColumnHeader, null, "Value"))),
6329
+ React.createElement(react$1.Table.Body, null, variables.map(function (_a) {
6330
+ var name = _a.name, value = _a.value;
6331
+ return (React.createElement(react$1.Table.Row, { key: name, wordBreak: "break-all" },
6332
+ React.createElement(react$1.Table.Cell, { padding: "0" }, name),
6333
+ React.createElement(react$1.Table.Cell, null, value)));
6334
+ })))),
6335
+ React.createElement("br", null),
6336
+ React.createElement(react$1.Heading, { as: "h4", textStyle: "heading4" }, "Switch Theme"),
6337
+ 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 }),
6338
+ React.createElement(react$1.Heading, { as: "h4", textStyle: "heading4" }, "Switch Translation"),
6339
+ 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 })));
6340
+ };
6341
+
6342
+ var H1 = function (_a) {
6343
+ var _b = _a.textStyle, textStyle = _b === void 0 ? 'heading1' : _b, children = _a.children, rest = __rest(_a, ["textStyle", "children"]);
6344
+ return (React.createElement(react$1.Heading, __assign({ as: "h1", textStyle: textStyle }, rest), children));
6345
+ };
6346
+ var H2 = function (_a) {
6347
+ var _b = _a.textStyle, textStyle = _b === void 0 ? 'heading2' : _b, children = _a.children, rest = __rest(_a, ["textStyle", "children"]);
6348
+ return (React.createElement(react$1.Heading, __assign({ as: "h2", textStyle: textStyle }, rest), children));
6349
+ };
6350
+ var H3 = function (_a) {
6351
+ var _b = _a.textStyle, textStyle = _b === void 0 ? 'heading3' : _b, children = _a.children, rest = __rest(_a, ["textStyle", "children"]);
6352
+ return (React.createElement(react$1.Heading, __assign({ as: "h3", textStyle: textStyle }, rest), children));
6353
+ };
6354
+ var H4 = function (_a) {
6355
+ var _b = _a.textStyle, textStyle = _b === void 0 ? 'heading4' : _b, children = _a.children, rest = __rest(_a, ["textStyle", "children"]);
6356
+ return (React.createElement(react$1.Heading, __assign({ as: "h4", textStyle: textStyle }, rest), children));
6357
+ };
6358
+ var H5 = function (_a) {
6359
+ var _b = _a.textStyle, textStyle = _b === void 0 ? 'heading5' : _b, children = _a.children, rest = __rest(_a, ["textStyle", "children"]);
6360
+ return (React.createElement(react$1.Heading, __assign({ as: "h5", textStyle: textStyle }, rest), children));
6361
+ };
6362
+ var H6 = function (_a) {
6363
+ var _b = _a.textStyle, textStyle = _b === void 0 ? 'heading6' : _b, children = _a.children, rest = __rest(_a, ["textStyle", "children"]);
6364
+ return (React.createElement(react$1.Heading, __assign({ as: "h6", textStyle: textStyle }, rest), children));
6365
+ };
6366
+
6367
+ var DialogCloseButton = React.forwardRef(function (props, ref) { return (React.createElement(react$1.CloseButton, __assign({ ref: ref, cursor: 'pointer' }, props))); });
6368
+
6369
+ var Dialog = function (_a) {
6370
+ 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"]);
6371
+ var dialogSize = size || variant !== 'fullScreen' ? { xs: 'full', sm: size } : 'full';
6372
+ var bothActionButtons = primaryActionButton && secondaryActionButton;
6373
+ var recipe = react$1.useSlotRecipe({ key: 'dialog' });
6374
+ var recipeProps = recipe.splitVariantProps({
6375
+ size: dialogSize,
6376
+ motionPreset: motionPreset,
6377
+ variant: variant,
6378
+ overlayColor: overlayColor,
6379
+ })[0];
6380
+ var styles = recipe(recipeProps);
6381
+ return (React.createElement(react$1.Dialog.Root, __assign({ open: open, onOpenChange: onOpenChange }, props),
6382
+ React.createElement(react$1.Portal, null,
6383
+ React.createElement(react$1.Dialog.Backdrop, { css: styles.backdrop }),
6384
+ React.createElement(react$1.Dialog.Positioner, { css: styles.positioner },
6385
+ React.createElement(react$1.Dialog.Content, { css: styles.content },
6386
+ title && (React.createElement(react$1.Box, { borderBottom: "1px", borderColor: "gray.100" },
6387
+ React.createElement(react$1.Dialog.Header, { css: styles.header },
6388
+ React.createElement(H3, null, title),
6389
+ React.createElement(react$1.Dialog.CloseTrigger, { asChild: true, css: styles.closeTrigger },
6390
+ React.createElement(DialogCloseButton, { fontSize: "base" }))))),
6391
+ React.createElement(react$1.Dialog.Body, { css: styles.body, p: disableBodyPadding ? '0' : undefined }, children),
6392
+ (primaryActionButton || secondaryActionButton) && (React.createElement(react$1.Box, { borderTop: "1px", borderColor: "gray.100" },
6393
+ React.createElement(react$1.Dialog.Footer, { display: "flex", justifyContent: bothActionButtons ? 'space-between' : 'flex-start', gap: bothActionButtons ? 'sm' : '0', css: styles.footer },
6394
+ secondaryActionButton ? (React.createElement(Button, { variant: "secondary", onClick: secondaryActionButton.action, width: { base: 'full', sm: 'fit' } }, secondaryActionButton.label)) : null,
6395
+ primaryActionButton ? (React.createElement(Button, { variant: "primary", onClick: primaryActionButton.action, width: { base: 'full', sm: 'fit' } }, primaryActionButton.label)) : null))))))));
6396
+ };
6397
+
6398
+ var emptyItemOffset = 0;
6399
+ var firstItemOffset = 1;
6400
+ var getItemOffset = function (applyIndentation) {
6401
+ return applyIndentation ? firstItemOffset : emptyItemOffset;
6402
+ };
6403
+ var getSliderStepValue = function (marks, applyIndentation, value) {
6404
+ var selectedMarkIndex = marks.findIndex(function (mark) { return mark.value === value; });
6405
+ if (selectedMarkIndex < emptyItemOffset) {
6406
+ return getItemOffset(applyIndentation);
6407
+ }
6408
+ return selectedMarkIndex + getItemOffset(applyIndentation);
6409
+ };
6410
+ var getSliderMarks = function (marks, applyIndentation) {
6411
+ return marks.map(function (mark, index) { return (__assign(__assign({}, mark), { stepValue: index + getItemOffset(applyIndentation) })); });
6412
+ };
6413
+ var DiscreteSlider = function (_a) {
6414
+ var marks = _a.marks, _b = _a.applyIndentation, applyIndentation = _b === void 0 ? true : _b, onValueChanged = _a.onValueChanged, value = _a.value;
6415
+ var sliderStepValue = getSliderStepValue(marks, applyIndentation, value);
6416
+ var sliderMarks = getSliderMarks(marks, applyIndentation);
6417
+ var handleOnChange = function (newStepValue) {
6418
+ var _a;
6419
+ if (applyIndentation && newStepValue < firstItemOffset)
6420
+ return;
6421
+ var newSliderMark = (_a = sliderMarks.find(function (mark) { return mark.stepValue === newStepValue; })) === null || _a === void 0 ? void 0 : _a.value;
6422
+ onValueChanged(newSliderMark);
6423
+ };
6424
+ 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); } },
6425
+ React.createElement(react$1.Slider.Control, null,
6426
+ React.createElement(react$1.Slider.Track, null,
6427
+ React.createElement(react$1.Slider.Range, null)),
6428
+ React.createElement(react$1.Slider.Thumbs, null),
6429
+ React.createElement(react$1.Slider.MarkerGroup, null, sliderMarks.map(function (_a, index) {
6430
+ var stepValue = _a.stepValue, label = _a.label;
6431
+ return (React.createElement(react$1.Slider.Marker, { key: index, value: stepValue, style: {
6432
+ pointerEvents: 'all',
6433
+ fontWeight: sliderStepValue === stepValue ? 'bold' : 'normal',
6434
+ } }, label));
6435
+ })))));
6436
+ };
6437
+
6438
+ var DrawerOverlay = function (props) {
6439
+ return React.createElement(react$1.Drawer.Backdrop, __assign({}, props));
6440
+ };
6441
+
6442
+ var DrawerContent = function (props) {
6443
+ var children = props.children, withCloseButton = props.withCloseButton, drawerContentProps = __rest(props, ["children", "withCloseButton"]);
6444
+ return (React.createElement(react$1.Drawer.Positioner, null,
6445
+ React.createElement(react$1.Drawer.Content, __assign({}, drawerContentProps),
6446
+ withCloseButton ? (React.createElement(react$1.Drawer.CloseTrigger, { asChild: true, fontSize: "base" },
6447
+ React.createElement(CloseIcon, null))) : null,
6448
+ children)));
6449
+ };
6450
+
6451
+ var DrawerBody = function (props) {
6452
+ var children = props.children, drawerBodyProps = __rest(props, ["children"]);
6453
+ return React.createElement(react$1.Drawer.Body, __assign({}, drawerBodyProps), children);
6117
6454
  };
6118
6455
 
6119
6456
  var Drawer = function (props) {
@@ -6125,11 +6462,6 @@ var Drawer = function (props) {
6125
6462
  var Text = react$1.Text;
6126
6463
  Text.displayName = 'Text';
6127
6464
 
6128
- var Flex = function (_a) {
6129
- var children = _a.children, rest = __rest(_a, ["children"]);
6130
- return (React.createElement(react$1.Flex, __assign({}, rest), children));
6131
- };
6132
-
6133
6465
  var EnergyLabel = function (props) {
6134
6466
  var efficiency = props.efficiency;
6135
6467
  var recipe = react$1.useSlotRecipe({ key: 'energyLabel' });
@@ -6141,6 +6473,9 @@ var EnergyLabel = function (props) {
6141
6473
  React.createElement(Text, { css: styles.text }, efficiency.toString()))));
6142
6474
  };
6143
6475
 
6476
+ var _a$2;
6477
+ var useI18n = (_a$2 = i18nPkg.createI18nScope(), _a$2.useI18n), I18nProvider = _a$2.I18nProvider, Trans = _a$2.Trans;
6478
+
6144
6479
  var auth$3 = {
6145
6480
  tenantSelection: {
6146
6481
  description: "Puoi passare a un altro garage più tardi nel tuo portale rivenditori.",
@@ -7002,13 +7337,23 @@ var logger = new Logger();
7002
7337
 
7003
7338
  var TranslationProvider = function (_a) {
7004
7339
  var language = _a.language, scopes = _a.scopes, children = _a.children;
7005
- return (React.createElement(i18nPkg.I18nProvider, { language: language, lngDict: i18nPkg.filterDictionaryScopes({
7340
+ return (React.createElement(I18nProvider, { language: language, lngDict: i18nPkg.filterDictionaryScopes({
7006
7341
  dictionaries: dictionaries,
7007
7342
  language: language,
7008
7343
  dictionaryScopes: scopes,
7009
7344
  }), onMissingTranslation: logger.onMissingTranslation }, children));
7010
7345
  };
7011
7346
 
7347
+ function withTranslationProvider(scopes) {
7348
+ return function (WrappedComponent) {
7349
+ return function (props) {
7350
+ var language = props.language;
7351
+ return (React.createElement(TranslationProvider, { language: language, scopes: scopes },
7352
+ React.createElement(WrappedComponent, __assign({}, props))));
7353
+ };
7354
+ };
7355
+ }
7356
+
7012
7357
  var SimpleGrid = function (props) { return React.createElement(react$1.SimpleGrid, __assign({}, props)); };
7013
7358
 
7014
7359
  var BaseLayout = function (_a) {
@@ -7038,19 +7383,6 @@ var img$6 = "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAZAAAAEqBAMAAADJwBvsA
7038
7383
 
7039
7384
  var img$5 = "data:image/png;base64,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";
7040
7385
 
7041
- var EmailChangeVerificationErrorContent = function () {
7042
- return (React.createElement(react$1.Box, { width: "full" },
7043
- React.createElement("p", null,
7044
- React.createElement(i18nPkg.Trans, { i18nKey: "errorPage.EMAIL_CHANGE_VERIFICATION_ERROR.content.email" },
7045
- React.createElement("strong", null))),
7046
- React.createElement("p", null,
7047
- React.createElement(i18nPkg.Trans, { i18nKey: "errorPage.EMAIL_CHANGE_VERIFICATION_ERROR.content.workingHours" },
7048
- React.createElement("strong", null))),
7049
- React.createElement("p", null,
7050
- React.createElement(i18nPkg.Trans, { i18nKey: "errorPage.EMAIL_CHANGE_VERIFICATION_ERROR.content.phone" },
7051
- React.createElement("strong", null)))));
7052
- };
7053
-
7054
7386
  var ContactSupport = function (_a) {
7055
7387
  var t = _a.t, _b = _a.language, language = _b === void 0 ? 'de' : _b;
7056
7388
  var languageToUse = language === 'en' ? 'de' : language;
@@ -7093,6 +7425,19 @@ var BackToHomepagePrimary = function (props) {
7093
7425
  return React.createElement(BackToHomepage, __assign({}, props, { variant: "primary" }));
7094
7426
  };
7095
7427
 
7428
+ var EmailChangeVerificationErrorContent = function () {
7429
+ return (React.createElement(react$1.Box, { width: "full" },
7430
+ React.createElement("p", null,
7431
+ React.createElement(Trans, { i18nKey: "errorPage.EMAIL_CHANGE_VERIFICATION_ERROR.content.email" },
7432
+ React.createElement("strong", null))),
7433
+ React.createElement("p", null,
7434
+ React.createElement(Trans, { i18nKey: "errorPage.EMAIL_CHANGE_VERIFICATION_ERROR.content.workingHours" },
7435
+ React.createElement("strong", null))),
7436
+ React.createElement("p", null,
7437
+ React.createElement(Trans, { i18nKey: "errorPage.EMAIL_CHANGE_VERIFICATION_ERROR.content.phone" },
7438
+ React.createElement("strong", null)))));
7439
+ };
7440
+
7096
7441
  var Nonce = function () {
7097
7442
  return null;
7098
7443
  };
@@ -7154,39 +7499,76 @@ var config = {
7154
7499
  secondaryAction: Nonce,
7155
7500
  },
7156
7501
  };
7157
- var ErrorPage = function (_a) {
7502
+ var ErrorPageContent = function (_a) {
7158
7503
  var statusCode = _a.statusCode, language = _a.language, onButtonClick = _a.onButtonClick;
7159
7504
  var PrimaryAction = config[statusCode].primaryAction;
7160
7505
  var SecondaryAction = config[statusCode].secondaryAction;
7161
7506
  var Content = config[statusCode].content;
7162
- return (React.createElement(TranslationProvider, { language: language, scopes: ['errorPage'] },
7163
- React.createElement(i18nPkg.I18nContext.Consumer, null, function (_a) {
7164
- var t = _a.t;
7165
- var actionButtonProps = {
7166
- t: t,
7167
- language: language,
7168
- };
7169
- return (React.createElement(PageLayout, { maxContentWidth: "md", header: null },
7170
- React.createElement(Flex, { justifyContent: "center", pt: { base: '3xl', md: 'xl' } },
7171
- React.createElement(Stack, { align: "center", gap: "4xl" },
7172
- React.createElement(SimpleGrid, { columns: 2, gap: "4xl" },
7173
- React.createElement(AutoScout24AppLogo, { width: "2xl", height: "xl" }),
7174
- React.createElement(MotoScout24AppLogo, { width: "2xl", height: "xl" })),
7175
- React.createElement(Separator, { orientation: "horizontal" }),
7176
- React.createElement(Stack, { align: "center", gap: "2xl" },
7177
- React.createElement(AspectRatio, { ratio: 4 / 3, css: { maxWidth: '400px', width: 'full' } },
7178
- React.createElement(react$1.chakra.img, { src: config[statusCode].illustration, alt: "a ".concat(statusCode, " error occurred.") })),
7179
- React.createElement(Stack, { align: "center", gap: "md" },
7180
- React.createElement(H1, { textAlign: "center" }, t("errorPage.".concat(statusCode, ".title"))),
7181
- React.createElement(Text, { textAlign: "center" }, t("errorPage.".concat(statusCode, ".description"))),
7182
- React.createElement(Content, __assign({}, actionButtonProps))),
7183
- React.createElement(SimpleGrid, { columns: {
7184
- base: 1,
7185
- sm: config[statusCode].buttonColumns,
7186
- }, alignItems: "center", gap: "md" },
7187
- React.createElement(PrimaryAction, __assign({}, actionButtonProps)),
7188
- React.createElement(SecondaryAction, __assign({}, actionButtonProps, { onButtonClick: onButtonClick }))))))));
7189
- })));
7507
+ var t = useI18n().t;
7508
+ var actionButtonProps = {
7509
+ t: t,
7510
+ language: language,
7511
+ };
7512
+ return (React.createElement(PageLayout, { maxContentWidth: "md", header: null },
7513
+ React.createElement(Flex, { justifyContent: "center", pt: { base: '3xl', md: 'xl' } },
7514
+ React.createElement(Stack, { align: "center", gap: "4xl" },
7515
+ React.createElement(SimpleGrid, { columns: 2, gap: "4xl" },
7516
+ React.createElement(AutoScout24AppLogo, { width: "2xl", height: "xl" }),
7517
+ React.createElement(MotoScout24AppLogo, { width: "2xl", height: "xl" })),
7518
+ React.createElement(Separator, { orientation: "horizontal" }),
7519
+ React.createElement(Stack, { align: "center", gap: "2xl" },
7520
+ React.createElement(AspectRatio, { ratio: 4 / 3, css: { maxWidth: '400px', width: 'full' } },
7521
+ React.createElement(react$1.chakra.img, { src: config[statusCode].illustration, alt: "a ".concat(statusCode, " error occurred.") })),
7522
+ React.createElement(Stack, { align: "center", gap: "md" },
7523
+ React.createElement(H1, { textAlign: "center" }, t("errorPage.".concat(statusCode, ".title"))),
7524
+ React.createElement(Text, { textAlign: "center" }, t("errorPage.".concat(statusCode, ".description"))),
7525
+ React.createElement(Content, __assign({}, actionButtonProps))),
7526
+ React.createElement(SimpleGrid, { columns: {
7527
+ base: 1,
7528
+ sm: config[statusCode].buttonColumns,
7529
+ }, alignItems: "center", gap: "md" },
7530
+ React.createElement(PrimaryAction, __assign({}, actionButtonProps)),
7531
+ React.createElement(SecondaryAction, __assign({}, actionButtonProps, { onButtonClick: onButtonClick }))))))));
7532
+ };
7533
+
7534
+ var ErrorPage = withTranslationProvider([
7535
+ 'errorPage',
7536
+ ])(ErrorPageContent);
7537
+
7538
+ var Tooltip = function (_a) {
7539
+ 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;
7540
+ var _d = React.useState(false), isOpen = _d[0], setIsOpen = _d[1];
7541
+ // eslint-disable-next-line @typescript-eslint/no-explicit-any
7542
+ var childrenWithProps = React.cloneElement(children, {
7543
+ onMouseEnter: function () { return setIsOpen(true); },
7544
+ onMouseLeave: function () { return setIsOpen(false); },
7545
+ onClick: function () { return setIsOpen(true); },
7546
+ });
7547
+ return (React.createElement(react$1.TooltipRoot, { positioning: {
7548
+ placement: placement,
7549
+ }, open: isOpen },
7550
+ React.createElement(react$1.TooltipTrigger, { asChild: true }, childrenWithProps),
7551
+ React.createElement(react$1.TooltipPositioner, null,
7552
+ React.createElement(react$1.TooltipContent, { maxWidth: maxWidth },
7553
+ React.createElement(react$1.TooltipArrow, null,
7554
+ React.createElement(react$1.TooltipArrowTip, null)),
7555
+ label))));
7556
+ };
7557
+
7558
+ var FormControlSection = function (_a) {
7559
+ var children = _a.children, errorMessage = _a.errorMessage, id = _a.id, label = _a.label, hint = _a.hint, tooltip = _a.tooltip;
7560
+ var isInvalid = !!errorMessage;
7561
+ return (React.createElement(react$1.Field.Root, { id: id, invalid: isInvalid },
7562
+ React.createElement(react$1.Box, { border: "1px", borderRadius: "sm", borderColor: isInvalid ? 'red.500' : 'gray.400', padding: "2xl" },
7563
+ React.createElement(Flex, { flexDirection: "column" },
7564
+ React.createElement(react$1.Box, { mb: "lg" },
7565
+ React.createElement(Flex, { alignItems: "center" },
7566
+ label ? (React.createElement(Text, { color: "gray.900", textStyle: "heading4" }, label)) : null,
7567
+ tooltip ? (React.createElement(Tooltip, { label: tooltip },
7568
+ React.createElement(InformationIcon, { ml: "md" }))) : null),
7569
+ hint ? (React.createElement(Text, { color: "gray.900", textStyle: "body" }, hint)) : null),
7570
+ children)),
7571
+ React.createElement(react$1.Field.ErrorText, null, errorMessage)));
7190
7572
  };
7191
7573
 
7192
7574
  var FullHeight = function (_a) {
@@ -7199,30 +7581,29 @@ var Link$1 = function (_a) {
7199
7581
  return (React.createElement(react$1.Link, __assign({ target: target || (isExternal ? '_blank' : undefined), rel: rel || (isExternal ? 'noopener noreferrer' : undefined) }, props)));
7200
7582
  };
7201
7583
 
7202
- var GalleryHeader = function (_a) {
7203
- var currentSlide = _a.currentSlide, slidesCount = _a.slidesCount, onClose = _a.onClose, language = _a.language, children = _a.children;
7584
+ var GalleryHeaderContent = function (_a) {
7585
+ var currentSlide = _a.currentSlide, slidesCount = _a.slidesCount, onClose = _a.onClose, children = _a.children;
7586
+ var t = useI18n().t;
7204
7587
  var recipe = react$1.useSlotRecipe({ key: 'galleryHeader' });
7205
7588
  var styles = recipe();
7206
- return (React.createElement(TranslationProvider, { language: language, scopes: ['galleryHeader'] },
7207
- React.createElement(i18nPkg.I18nContext.Consumer, null, function (_a) {
7208
- var t = _a.t;
7209
- return (React.createElement(react$1.Box, { css: styles.container },
7210
- React.createElement(react$1.Box, { css: styles.grid },
7211
- React.createElement(SimpleGrid, { columns: {
7212
- base: 2,
7213
- md: 3,
7214
- }, alignItems: "center" },
7215
- React.createElement(react$1.Box, { hideBelow: "md" }, children),
7216
- React.createElement(react$1.Box, { css: styles.countContainer },
7217
- React.createElement(react$1.Box, null, t('galleryHeader.imageCount', {
7218
- x: currentSlide,
7219
- of: slidesCount,
7220
- }))),
7221
- React.createElement(react$1.Box, { css: styles.closeContainer },
7222
- React.createElement(Link$1, { "aria-label": "Close gallery", onClick: function () { return onClose(); } },
7223
- React.createElement(CloseIcon, { color: "white" })))))));
7224
- })));
7225
- };
7589
+ return (React.createElement(react$1.Box, { css: styles.container },
7590
+ React.createElement(react$1.Box, { css: styles.grid },
7591
+ React.createElement(SimpleGrid, { columns: {
7592
+ base: 2,
7593
+ md: 3,
7594
+ }, alignItems: "center" },
7595
+ React.createElement(react$1.Box, { hideBelow: "md" }, children),
7596
+ React.createElement(react$1.Box, { css: styles.countContainer },
7597
+ React.createElement(react$1.Box, null, t('galleryHeader.imageCount', {
7598
+ x: currentSlide,
7599
+ of: slidesCount,
7600
+ }))),
7601
+ React.createElement(react$1.Box, { css: styles.closeContainer },
7602
+ React.createElement(Link$1, { "aria-label": "Close gallery", onClick: function () { return onClose(); } },
7603
+ React.createElement(CloseIcon, { color: "white" })))))));
7604
+ };
7605
+
7606
+ var GalleryHeader = withTranslationProvider(['galleryHeader'])(GalleryHeaderContent);
7226
7607
 
7227
7608
  var Grid = react$1.Grid;
7228
7609
  Grid.displayName = 'Grid';
@@ -7402,30 +7783,183 @@ var List = {
7402
7783
  Item: Item,
7403
7784
  };
7404
7785
 
7405
- var Chip = function (_a) {
7406
- var children = _a.children, onClick = _a.onClick, href = _a.href, ariaLabel = _a["aria-label"], rest = __rest(_a, ["children", "onClick", "href", 'aria-label']);
7407
- var recipe = react$1.useRecipe({ recipe: chipRecipe });
7408
- var recipeProps = recipe.splitVariantProps(rest)[0];
7409
- var styles = recipe(recipeProps);
7410
- var handleClick = function () {
7411
- onClick === null || onClick === void 0 ? void 0 : onClick();
7412
- };
7413
- var handleKeyDown = function (event) {
7414
- if (event.key === 'Enter' || event.key === ' ') {
7415
- event.preventDefault();
7416
- onClick === null || onClick === void 0 ? void 0 : onClick();
7786
+ var SearchField = function (_a) {
7787
+ 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;
7788
+ var isDesktopOnly = useMediaQuery({ above: 'md' });
7789
+ var inputRef = React.useRef(null);
7790
+ React.useEffect(function () {
7791
+ var _a;
7792
+ if (autofocusOnDesktop && isDesktopOnly) {
7793
+ (_a = inputRef.current) === null || _a === void 0 ? void 0 : _a.focus();
7417
7794
  }
7795
+ }, [isDesktopOnly, autofocusOnDesktop]);
7796
+ 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 }));
7797
+ };
7798
+
7799
+ var HighlightedText = function (_a) {
7800
+ var text = _a.text, _b = _a.highlightIndices, highlightIndices = _b === void 0 ? [] : _b, textProps = __rest(_a, ["text", "highlightIndices"]);
7801
+ if (highlightIndices.length === 0)
7802
+ return (React.createElement(Text, __assign({ as: "span" }, textProps), text));
7803
+ var result = [];
7804
+ var currentIndex = 0;
7805
+ for (var _i = 0, highlightIndices_1 = highlightIndices; _i < highlightIndices_1.length; _i++) {
7806
+ var _c = highlightIndices_1[_i], start = _c[0], end = _c[1];
7807
+ // Append the non-matching part
7808
+ result.push(React.createElement(Text, __assign({ key: "non-highlight-".concat(currentIndex, "-").concat(start, "-").concat(text), as: "span" }, textProps), text.substring(currentIndex, start)));
7809
+ // Append the matching part
7810
+ 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)));
7811
+ currentIndex = end + 1;
7812
+ }
7813
+ // Append the remaining non-matching part
7814
+ result.push(React.createElement(Text, __assign({ key: "non-highlight-end-".concat(text), as: "span" }, textProps), text.substring(currentIndex)));
7815
+ return (React.createElement(Text, __assign({ as: "span" }, textProps), result));
7816
+ };
7817
+
7818
+ var SearchableListItemLabel = function (_a) {
7819
+ 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;
7820
+ return (React.createElement(Flex, { width: "full", justifyContent: "space-between", whiteSpace: "pre-wrap", fontWeight: isSelected && !isCheckbox ? 'bold' : undefined, color: "gray.900", cursor: "pointer" },
7821
+ React.createElement(Flex, null,
7822
+ isSelected && !isCheckbox ? (React.createElement(CheckmarkIcon, { w: "xs", mr: "xs", color: "gray.900" })) : null,
7823
+ React.createElement(HighlightedText, { text: label, highlightIndices: highlightIndices, textAlign: "left" })),
7824
+ React.createElement(Flex, { as: "span" },
7825
+ facet ? (React.createElement(Text, { as: "span", color: "gray.400", mr: showChevron ? 'lg' : undefined, ml: "sm", minW: "lg", textAlign: "right", fontWeight: "regular" }, facet)) : null,
7826
+ showChevron ? (React.createElement(ChevronRightSmallIcon, { color: "gray.500", w: "sm", h: "sm" })) : null)));
7827
+ };
7828
+
7829
+ var isCheckboxType = function (listItem) {
7830
+ return !!listItem.isCheckbox;
7831
+ };
7832
+ var SearchableListItem = function (props) {
7833
+ var isCheckbox = isCheckboxType(props);
7834
+ 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;
7835
+ var labelProps = {
7836
+ label: label,
7837
+ isSelected: isSelected,
7838
+ showChevron: showChevron,
7839
+ highlightIndices: highlightIndices,
7840
+ isCheckbox: isCheckbox,
7841
+ facet: facet,
7418
7842
  };
7419
- var commonProps = __assign({ css: styles, 'aria-label': ariaLabel }, rest);
7420
- var isLink = Boolean(href);
7421
- var asType = isLink ? 'a' : 'button';
7422
- return (React.createElement(react$1.Flex, __assign({ as: asType }, (isLink && onClick ? { href: href } : {}), (!isLink ? { type: 'button' } : {}), { onClick: handleClick, onKeyDown: handleKeyDown }, commonProps),
7423
- recipeProps.selected ? (React.createElement(react$1.Box, { mx: "xs", color: "currentColor", display: "flex", alignItems: "center", justifyContent: "center" },
7424
- React.createElement(CheckmarkIcon, { height: "xs", width: "xs" }))) : null,
7425
- React.createElement(react$1.Box, { as: "span", whiteSpace: "nowrap" },
7426
- React.createElement(react$1.Text, { textStyle: "body-small" }, children))));
7843
+ var commonProps = {
7844
+ value: value,
7845
+ paddingY: 'sm',
7846
+ name: "searchable-list-item-".concat(value),
7847
+ 'aria-current': isSelected,
7848
+ };
7849
+ 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 });
7850
+ return (React.createElement(List.Item, { css: { breakInside: 'avoid' }, paddingLeft: props.paddingLeft },
7851
+ 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" },
7852
+ React.createElement(SearchableListItemLabel, __assign({}, labelProps)))),
7853
+ children));
7854
+ };
7855
+
7856
+ var fuseOptions = {
7857
+ keys: ['label', 'children.label'],
7858
+ includeMatches: true,
7859
+ threshold: 0,
7860
+ ignoreLocation: true,
7861
+ minMatchCharLength: 1,
7862
+ shouldSort: false,
7863
+ };
7864
+ var mapItemsFromSearchResult = function (searchResults) {
7865
+ return searchResults.map(function (_a) {
7866
+ var _b = _a.matches, matches = _b === void 0 ? [] : _b, item = _a.item;
7867
+ var parentMatch = matches.find(function (match) { return match.key === 'label'; });
7868
+ var parentHighlightIndices = parentMatch ? parentMatch.indices : [];
7869
+ var childMatches = item.children
7870
+ ? matches.filter(function (match) { return match.key === 'children.label'; })
7871
+ : [];
7872
+ if (!item.children ||
7873
+ item.children.length === 0 ||
7874
+ childMatches.length === 0) {
7875
+ return __assign(__assign({}, item), { highlightIndices: parentHighlightIndices });
7876
+ }
7877
+ var itemChildren = item.children || [];
7878
+ var children = childMatches.reduce(function (accumulator, childMatch) {
7879
+ if (childMatch.refIndex === undefined) {
7880
+ return accumulator;
7881
+ }
7882
+ var child = itemChildren[childMatch.refIndex];
7883
+ accumulator.push(__assign(__assign({}, child), { highlightIndices: childMatch.indices }));
7884
+ return accumulator;
7885
+ }, []);
7886
+ return __assign(__assign(__assign({}, item), (children ? { children: children } : {})), { highlightIndices: parentMatch ? parentMatch.indices : [] });
7887
+ });
7888
+ };
7889
+ var empty = function () { return null; };
7890
+ var search = function (_a) {
7891
+ var query = _a.query, fuse = _a.fuse;
7892
+ fuse.options.minMatchCharLength = query.length || 1;
7893
+ return fuse.search(query);
7894
+ };
7895
+ var getFuseInstance = function (listItems) {
7896
+ // Not casting the instance will result in the options not being typed
7897
+ return new Fuse(listItems, fuseOptions);
7898
+ };
7899
+ var SearchableList = function (_a) {
7900
+ 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;
7901
+ var gray200 = useToken('colors', ['gray.200'])[0];
7902
+ var _g = React.useState({
7903
+ query: '',
7904
+ listItems: listItems,
7905
+ fullListItems: __spreadArray([], listItems, true),
7906
+ fuse: getFuseInstance(listItems),
7907
+ }), searchState = _g[0], setSearchState = _g[1];
7908
+ var _h = searchFieldOptions.placeholder, placeholder = _h === void 0 ? '' : _h, _j = searchFieldOptions.autofocusOnDesktop, autofocusOnDesktop = _j === void 0 ? true : _j, autoComplete = searchFieldOptions.autoComplete;
7909
+ var _k = listOptions.columns, columns = _k === void 0 ? 1 : _k, _l = listOptions.childrenSpacing, childrenSpacing = _l === void 0 ? 'md' : _l;
7910
+ var areaId = 'searchableList';
7911
+ var query = searchState.query;
7912
+ React.useEffect(function () {
7913
+ setSearchState(function (currentState) {
7914
+ var fuse = getFuseInstance(listItems);
7915
+ if (currentState.query === '') {
7916
+ return {
7917
+ listItems: listItems,
7918
+ fullListItems: __spreadArray([], listItems, true),
7919
+ fuse: fuse,
7920
+ query: currentState.query,
7921
+ };
7922
+ }
7923
+ var searchResults = search({ fuse: fuse, query: currentState.query });
7924
+ var filteredListItems = mapItemsFromSearchResult(searchResults);
7925
+ return {
7926
+ listItems: filteredListItems,
7927
+ fuse: fuse,
7928
+ query: currentState.query,
7929
+ fullListItems: __spreadArray([], listItems, true),
7930
+ };
7931
+ });
7932
+ }, [listItems]);
7933
+ var setSearchQuery = React.useCallback(function (newQuery) {
7934
+ setSearchState(function (currentState) {
7935
+ var trimmedQuery = newQuery.trim();
7936
+ if (!trimmedQuery) {
7937
+ return __assign(__assign({}, currentState), { listItems: currentState.fullListItems, query: trimmedQuery });
7938
+ }
7939
+ var searchResults = search({
7940
+ fuse: currentState.fuse,
7941
+ query: trimmedQuery,
7942
+ });
7943
+ var filteredListItems = mapItemsFromSearchResult(searchResults);
7944
+ return __assign(__assign({}, currentState), { listItems: filteredListItems, query: trimmedQuery });
7945
+ });
7946
+ }, []);
7947
+ return (React.createElement(Flex, { gridGap: "md", direction: "column", width: "full" },
7948
+ React.createElement(SearchField, { name: "searchableListSearchFiled", searchQuery: query, setSearchQuery: setSearchQuery, ariaControls: areaId, placeholder: placeholder, autofocusOnDesktop: autofocusOnDesktop, autoComplete: autoComplete }),
7949
+ searchState.query.length === 0 ? React.createElement(EmptyQueryPlaceholder, null) : null,
7950
+ searchState.listItems.length > 0 ? (React.createElement(List.Root, { ref: listRef, width: "full", height: "full", id: areaId, "aria-live": "polite", css: {
7951
+ columns: { base: 1, md: columns },
7952
+ columnGap: '4xl',
7953
+ columnRule: "1px solid ".concat(gray200),
7954
+ }, "aria-label": listAriaLabel }, searchState.listItems.map(function (item, itemIndex) {
7955
+ var parentKey = "".concat(itemIndex, "-").concat(item.value);
7956
+ var children = item.children || [];
7957
+ return (React.createElement(SearchableListItem, __assign({}, item, { key: parentKey }), children.length > 0 ? (React.createElement(List.Root, { width: "full" }, children.map(function (child, childIndex) {
7958
+ var childKey = "".concat(childIndex, "-").concat(child.value);
7959
+ return (React.createElement(SearchableListItem, __assign({}, child, { key: childKey, paddingLeft: childrenSpacing })));
7960
+ }))) : null));
7961
+ }))) : (React.createElement(NoResults, null))));
7427
7962
  };
7428
- Chip.displayName = 'Chip';
7429
7963
 
7430
7964
  var Menu = function (_a) {
7431
7965
  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;
@@ -7461,7 +7995,7 @@ var MobileOnlyAccordion = function (props) {
7461
7995
  var FooterLink = function (_a) {
7462
7996
  var _b, _c;
7463
7997
  var linkInstance = _a.linkInstance, children = _a.children, _d = _a.bold, bold = _d === void 0 ? false : _d;
7464
- var _e = i18nPkg.useI18n(), t = _e.t, language = _e.language;
7998
+ var _e = useI18n(), t = _e.t, language = _e.language;
7465
7999
  if (!linkInstance) {
7466
8000
  return null;
7467
8001
  }
@@ -7564,7 +8098,7 @@ var MobileOnlyAccordionButton = function (props) {
7564
8098
 
7565
8099
  var FooterSections = function (_a) {
7566
8100
  var config = _a.config;
7567
- var t = i18nPkg.useI18n().t;
8101
+ var t = useI18n().t;
7568
8102
  var sectionChunks = chunkArray({
7569
8103
  array: config.sections,
7570
8104
  chunkSize: 2,
@@ -7590,7 +8124,7 @@ var img$3 = "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAARAAAABQCAMAAADm+9r/A
7590
8124
 
7591
8125
  var FooterApps = function (_a) {
7592
8126
  var config = _a.config;
7593
- var t = i18nPkg.useI18n().t;
8127
+ var t = useI18n().t;
7594
8128
  return (React.createElement(GridItem, null,
7595
8129
  React.createElement(Stack, { paddingY: { base: '2xl', md: 'md' }, paddingX: { base: 'md', md: '0' }, gap: "md" },
7596
8130
  React.createElement(Text, { textStyle: "heading5" }, t('footer.apps.title')),
@@ -7625,7 +8159,7 @@ var FooterLanguageNavigation = function () {
7625
8159
  };
7626
8160
 
7627
8161
  var FooterCopyright = function () {
7628
- var t = i18nPkg.useI18n().t;
8162
+ var t = useI18n().t;
7629
8163
  return (React.createElement(react$1.Box, { textStyle: "body-small", textAlign: "center", opacity: "80" }, t('footer.copyright', { year: new Date().getFullYear() })));
7630
8164
  };
7631
8165
 
@@ -8463,235 +8997,57 @@ var footerConfig = function () {
8463
8997
  fr: 'https://www.motoscout24.ch/fr/',
8464
8998
  it: 'https://www.motoscout24.ch/it/',
8465
8999
  },
8466
- target: '_blank',
8467
- },
8468
- {
8469
- translationKey: 'footer.companies.anibis',
8470
- visibilitySettings: {
8471
- brand: (_24 = {}, _24[Brand.AutoScout24] = true, _24[Brand.MotoScout24] = true, _24),
8472
- },
8473
- link: {
8474
- de: 'https://www.anibis.ch/de',
8475
- en: 'https://www.anibis.ch/de',
8476
- fr: 'https://www.anibis.ch/fr',
8477
- it: 'https://www.anibis.ch/it',
8478
- },
8479
- target: '_blank',
8480
- },
8481
- ],
8482
- });
8483
- };
8484
-
8485
- var FooterCompanies = function (_a) {
8486
- var config = _a.config;
8487
- 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) {
8488
- return (React.createElement(FooterLink, { key: "company-".concat(index), linkInstance: companyLink, bold: true }));
8489
- })));
8490
- };
8491
-
8492
- var Footer$1 = function (_a) {
8493
- var brand = _a.brand, language = _a.language, environment = _a.environment, useAbsoluteUrls = _a.useAbsoluteUrls, project = _a.project;
8494
- var config = React.useMemo(function () {
8495
- var footerConfigInstance = new FooterConfig({
8496
- config: footerConfig(),
8497
- brand: brand,
8498
- environment: environment,
8499
- useAbsoluteUrls: useAbsoluteUrls,
8500
- project: project,
8501
- });
8502
- return footerConfigInstance.getMappedConfig();
8503
- }, [brand, environment, useAbsoluteUrls, project]);
8504
- return (React.createElement(TranslationProvider, { language: language, scopes: ['footer'] },
8505
- React.createElement("footer", null,
8506
- React.createElement(react$1.Box, { width: "full", background: "gray.900", color: "white", paddingTop: { md: 'md' }, paddingBottom: { base: 'lg', md: '2xl' } },
8507
- React.createElement(Center, null,
8508
- React.createElement(react$1.Container, { width: "full", maxWidth: "container.2xl", paddingX: { md: 'xs' } },
8509
- React.createElement(FooterSectionGrid, { config: config }),
8510
- React.createElement(FooterLanguageNavigation, null),
8511
- React.createElement(SocialMedia, { config: config }))),
8512
- React.createElement(Separator, { orientation: "horizontal", borderColor: "gray.700" }),
8513
- React.createElement(Center, null,
8514
- React.createElement(react$1.Container, { width: "full", maxWidth: "container.xl", paddingX: "lg" },
8515
- React.createElement(FooterCompanies, { config: config }),
8516
- React.createElement(FooterCopyright, null)))))));
8517
- };
8518
-
8519
- var SearchField = function (_a) {
8520
- 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;
8521
- var isDesktopOnly = useMediaQuery({ above: 'md' });
8522
- var inputRef = React.useRef(null);
8523
- React.useEffect(function () {
8524
- var _a;
8525
- if (autofocusOnDesktop && isDesktopOnly) {
8526
- (_a = inputRef.current) === null || _a === void 0 ? void 0 : _a.focus();
8527
- }
8528
- }, [isDesktopOnly, autofocusOnDesktop]);
8529
- 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 }));
8530
- };
8531
-
8532
- var HighlightedText = function (_a) {
8533
- var text = _a.text, _b = _a.highlightIndices, highlightIndices = _b === void 0 ? [] : _b, textProps = __rest(_a, ["text", "highlightIndices"]);
8534
- if (highlightIndices.length === 0)
8535
- return (React.createElement(Text, __assign({ as: "span" }, textProps), text));
8536
- var result = [];
8537
- var currentIndex = 0;
8538
- for (var _i = 0, highlightIndices_1 = highlightIndices; _i < highlightIndices_1.length; _i++) {
8539
- var _c = highlightIndices_1[_i], start = _c[0], end = _c[1];
8540
- // Append the non-matching part
8541
- result.push(React.createElement(Text, __assign({ key: "non-highlight-".concat(currentIndex, "-").concat(start, "-").concat(text), as: "span" }, textProps), text.substring(currentIndex, start)));
8542
- // Append the matching part
8543
- 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)));
8544
- currentIndex = end + 1;
8545
- }
8546
- // Append the remaining non-matching part
8547
- result.push(React.createElement(Text, __assign({ key: "non-highlight-end-".concat(text), as: "span" }, textProps), text.substring(currentIndex)));
8548
- return (React.createElement(Text, __assign({ as: "span" }, textProps), result));
8549
- };
8550
-
8551
- var SearchableListItemLabel = function (_a) {
8552
- 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;
8553
- return (React.createElement(Flex, { width: "full", justifyContent: "space-between", whiteSpace: "pre-wrap", fontWeight: isSelected && !isCheckbox ? 'bold' : undefined, color: "gray.900", cursor: "pointer" },
8554
- React.createElement(Flex, null,
8555
- isSelected && !isCheckbox ? (React.createElement(CheckmarkIcon, { w: "xs", mr: "xs", color: "gray.900" })) : null,
8556
- React.createElement(HighlightedText, { text: label, highlightIndices: highlightIndices, textAlign: "left" })),
8557
- React.createElement(Flex, { as: "span" },
8558
- facet ? (React.createElement(Text, { as: "span", color: "gray.400", mr: showChevron ? 'lg' : undefined, ml: "sm", minW: "lg", textAlign: "right", fontWeight: "regular" }, facet)) : null,
8559
- showChevron ? (React.createElement(ChevronRightSmallIcon, { color: "gray.500", w: "sm", h: "sm" })) : null)));
8560
- };
8561
-
8562
- var isCheckboxType = function (listItem) {
8563
- return !!listItem.isCheckbox;
8564
- };
8565
- var SearchableListItem = function (props) {
8566
- var isCheckbox = isCheckboxType(props);
8567
- 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;
8568
- var labelProps = {
8569
- label: label,
8570
- isSelected: isSelected,
8571
- showChevron: showChevron,
8572
- highlightIndices: highlightIndices,
8573
- isCheckbox: isCheckbox,
8574
- facet: facet,
8575
- };
8576
- var commonProps = {
8577
- value: value,
8578
- paddingY: 'sm',
8579
- name: "searchable-list-item-".concat(value),
8580
- 'aria-current': isSelected,
8581
- };
8582
- 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 });
8583
- return (React.createElement(List.Item, { css: { breakInside: 'avoid' }, paddingLeft: props.paddingLeft },
8584
- 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" },
8585
- React.createElement(SearchableListItemLabel, __assign({}, labelProps)))),
8586
- children));
8587
- };
8588
-
8589
- var fuseOptions = {
8590
- keys: ['label', 'children.label'],
8591
- includeMatches: true,
8592
- threshold: 0,
8593
- ignoreLocation: true,
8594
- minMatchCharLength: 1,
8595
- shouldSort: false,
8596
- };
8597
- var mapItemsFromSearchResult = function (searchResults) {
8598
- return searchResults.map(function (_a) {
8599
- var _b = _a.matches, matches = _b === void 0 ? [] : _b, item = _a.item;
8600
- var parentMatch = matches.find(function (match) { return match.key === 'label'; });
8601
- var parentHighlightIndices = parentMatch ? parentMatch.indices : [];
8602
- var childMatches = item.children
8603
- ? matches.filter(function (match) { return match.key === 'children.label'; })
8604
- : [];
8605
- if (!item.children ||
8606
- item.children.length === 0 ||
8607
- childMatches.length === 0) {
8608
- return __assign(__assign({}, item), { highlightIndices: parentHighlightIndices });
8609
- }
8610
- var itemChildren = item.children || [];
8611
- var children = childMatches.reduce(function (accumulator, childMatch) {
8612
- if (childMatch.refIndex === undefined) {
8613
- return accumulator;
8614
- }
8615
- var child = itemChildren[childMatch.refIndex];
8616
- accumulator.push(__assign(__assign({}, child), { highlightIndices: childMatch.indices }));
8617
- return accumulator;
8618
- }, []);
8619
- return __assign(__assign(__assign({}, item), (children ? { children: children } : {})), { highlightIndices: parentMatch ? parentMatch.indices : [] });
8620
- });
8621
- };
8622
- var empty = function () { return null; };
8623
- var search = function (_a) {
8624
- var query = _a.query, fuse = _a.fuse;
8625
- fuse.options.minMatchCharLength = query.length || 1;
8626
- return fuse.search(query);
8627
- };
8628
- var getFuseInstance = function (listItems) {
8629
- // Not casting the instance will result in the options not being typed
8630
- return new Fuse(listItems, fuseOptions);
8631
- };
8632
- var SearchableList = function (_a) {
8633
- 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;
8634
- var gray200 = useToken('colors', ['gray.200'])[0];
8635
- var _g = React.useState({
8636
- query: '',
8637
- listItems: listItems,
8638
- fullListItems: __spreadArray([], listItems, true),
8639
- fuse: getFuseInstance(listItems),
8640
- }), searchState = _g[0], setSearchState = _g[1];
8641
- var _h = searchFieldOptions.placeholder, placeholder = _h === void 0 ? '' : _h, _j = searchFieldOptions.autofocusOnDesktop, autofocusOnDesktop = _j === void 0 ? true : _j, autoComplete = searchFieldOptions.autoComplete;
8642
- var _k = listOptions.columns, columns = _k === void 0 ? 1 : _k, _l = listOptions.childrenSpacing, childrenSpacing = _l === void 0 ? 'md' : _l;
8643
- var areaId = 'searchableList';
8644
- var query = searchState.query;
8645
- React.useEffect(function () {
8646
- setSearchState(function (currentState) {
8647
- var fuse = getFuseInstance(listItems);
8648
- if (currentState.query === '') {
8649
- return {
8650
- listItems: listItems,
8651
- fullListItems: __spreadArray([], listItems, true),
8652
- fuse: fuse,
8653
- query: currentState.query,
8654
- };
8655
- }
8656
- var searchResults = search({ fuse: fuse, query: currentState.query });
8657
- var filteredListItems = mapItemsFromSearchResult(searchResults);
8658
- return {
8659
- listItems: filteredListItems,
8660
- fuse: fuse,
8661
- query: currentState.query,
8662
- fullListItems: __spreadArray([], listItems, true),
8663
- };
8664
- });
8665
- }, [listItems]);
8666
- var setSearchQuery = React.useCallback(function (newQuery) {
8667
- setSearchState(function (currentState) {
8668
- var trimmedQuery = newQuery.trim();
8669
- if (!trimmedQuery) {
8670
- return __assign(__assign({}, currentState), { listItems: currentState.fullListItems, query: trimmedQuery });
8671
- }
8672
- var searchResults = search({
8673
- fuse: currentState.fuse,
8674
- query: trimmedQuery,
8675
- });
8676
- var filteredListItems = mapItemsFromSearchResult(searchResults);
8677
- return __assign(__assign({}, currentState), { listItems: filteredListItems, query: trimmedQuery });
9000
+ target: '_blank',
9001
+ },
9002
+ {
9003
+ translationKey: 'footer.companies.anibis',
9004
+ visibilitySettings: {
9005
+ brand: (_24 = {}, _24[Brand.AutoScout24] = true, _24[Brand.MotoScout24] = true, _24),
9006
+ },
9007
+ link: {
9008
+ de: 'https://www.anibis.ch/de',
9009
+ en: 'https://www.anibis.ch/de',
9010
+ fr: 'https://www.anibis.ch/fr',
9011
+ it: 'https://www.anibis.ch/it',
9012
+ },
9013
+ target: '_blank',
9014
+ },
9015
+ ],
9016
+ });
9017
+ };
9018
+
9019
+ var FooterCompanies = function (_a) {
9020
+ var config = _a.config;
9021
+ 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) {
9022
+ return (React.createElement(FooterLink, { key: "company-".concat(index), linkInstance: companyLink, bold: true }));
9023
+ })));
9024
+ };
9025
+
9026
+ var Footer$1 = function (_a) {
9027
+ var brand = _a.brand, language = _a.language, environment = _a.environment, useAbsoluteUrls = _a.useAbsoluteUrls, project = _a.project;
9028
+ var config = React.useMemo(function () {
9029
+ var footerConfigInstance = new FooterConfig({
9030
+ config: footerConfig(),
9031
+ brand: brand,
9032
+ environment: environment,
9033
+ useAbsoluteUrls: useAbsoluteUrls,
9034
+ project: project,
8678
9035
  });
8679
- }, []);
8680
- return (React.createElement(Flex, { gridGap: "md", direction: "column", width: "full" },
8681
- React.createElement(SearchField, { name: "searchableListSearchFiled", searchQuery: query, setSearchQuery: setSearchQuery, ariaControls: areaId, placeholder: placeholder, autofocusOnDesktop: autofocusOnDesktop, autoComplete: autoComplete }),
8682
- searchState.query.length === 0 ? React.createElement(EmptyQueryPlaceholder, null) : null,
8683
- searchState.listItems.length > 0 ? (React.createElement(List.Root, { ref: listRef, width: "full", height: "full", id: areaId, "aria-live": "polite", css: {
8684
- columns: { base: 1, md: columns },
8685
- columnGap: '4xl',
8686
- columnRule: "1px solid ".concat(gray200),
8687
- }, "aria-label": listAriaLabel }, searchState.listItems.map(function (item, itemIndex) {
8688
- var parentKey = "".concat(itemIndex, "-").concat(item.value);
8689
- var children = item.children || [];
8690
- return (React.createElement(SearchableListItem, __assign({}, item, { key: parentKey }), children.length > 0 ? (React.createElement(List.Root, { width: "full" }, children.map(function (child, childIndex) {
8691
- var childKey = "".concat(childIndex, "-").concat(child.value);
8692
- return (React.createElement(SearchableListItem, __assign({}, child, { key: childKey, paddingLeft: childrenSpacing })));
8693
- }))) : null));
8694
- }))) : (React.createElement(NoResults, null))));
9036
+ return footerConfigInstance.getMappedConfig();
9037
+ }, [brand, environment, useAbsoluteUrls, project]);
9038
+ return (React.createElement(TranslationProvider, { language: language, scopes: ['footer'] },
9039
+ React.createElement("footer", null,
9040
+ React.createElement(react$1.Box, { width: "full", background: "gray.900", color: "white", paddingTop: { md: 'md' }, paddingBottom: { base: 'lg', md: '2xl' } },
9041
+ React.createElement(Center, null,
9042
+ React.createElement(react$1.Container, { width: "full", maxWidth: "container.2xl", paddingX: { md: 'xs' } },
9043
+ React.createElement(FooterSectionGrid, { config: config }),
9044
+ React.createElement(FooterLanguageNavigation, null),
9045
+ React.createElement(SocialMedia, { config: config }))),
9046
+ React.createElement(Separator, { orientation: "horizontal", borderColor: "gray.700" }),
9047
+ React.createElement(Center, null,
9048
+ React.createElement(react$1.Container, { width: "full", maxWidth: "container.xl", paddingX: "lg" },
9049
+ React.createElement(FooterCompanies, { config: config }),
9050
+ React.createElement(FooterCopyright, null)))))));
8695
9051
  };
8696
9052
 
8697
9053
  var createTenantLabel = function (managedSeller) {
@@ -8765,7 +9121,7 @@ var NavigationTenantMenuContent = function (_a) {
8765
9121
  var NavigationTenantMenu = function (_a) {
8766
9122
  var user = _a.user, selectTenant = _a.selectTenant;
8767
9123
  var _b = react$1.useDisclosure(), onClose = _b.onClose, open = _b.open, onToggle = _b.onToggle;
8768
- var t = i18nPkg.useI18n().t;
9124
+ var t = useI18n().t;
8769
9125
  var selectedTenant = React.useMemo(function () {
8770
9126
  var _a;
8771
9127
  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); });
@@ -8845,7 +9201,7 @@ var DrawerIndicator = function (_a) {
8845
9201
 
8846
9202
  var NavigationItem = function (_a) {
8847
9203
  var translationKey = _a.translationKey, drawerHandler = _a.drawerHandler, isOpen = _a.isOpen;
8848
- var t = i18nPkg.useI18n().t;
9204
+ var t = useI18n().t;
8849
9205
  var recipe = react$1.useSlotRecipe({ key: 'link' });
8850
9206
  var styles = recipe({ variant: 'navigationLink' });
8851
9207
  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" },
@@ -8856,7 +9212,7 @@ var NavigationItem = function (_a) {
8856
9212
 
8857
9213
  var NavigationLink = function (_a) {
8858
9214
  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;
8859
- var _e = i18nPkg.useI18n(), t = _e.t, language = _e.language;
9215
+ var _e = useI18n(), t = _e.t, language = _e.language;
8860
9216
  var linkColor = color || 'gray.900';
8861
9217
  var hoverStyle = variant === 'navigationLink' ? { color: 'blue.700' } : undefined;
8862
9218
  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" },
@@ -9903,7 +10259,7 @@ var getComparisonUrl = function (comparisonItemIds) {
9903
10259
  var ComparisonItem = function (_a) {
9904
10260
  var _b, _c;
9905
10261
  var link = _a.link, count = _a.count;
9906
- var _d = i18nPkg.useI18n(), t = _d.t, language = _d.language;
10262
+ var _d = useI18n(), t = _d.t, language = _d.language;
9907
10263
  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" },
9908
10264
  React.createElement(CompareIcon, { color: "gray.900" }),
9909
10265
  React.createElement(react$1.Box, { position: "absolute", css: { top: '-10px', right: '-15px' } }, count > 0 ? React.createElement(Count, { count: count }) : null)));
@@ -10314,7 +10670,7 @@ var NavigationAvatar = function (_a) {
10314
10670
  var isDrawerOpened = isOpen && (drawer === null || drawer === void 0 ? void 0 : drawer.current) === DrawerNode.User;
10315
10671
  var recipe = react$1.useSlotRecipe({ key: 'link' });
10316
10672
  var styles = recipe({ variant: 'navigationLink' });
10317
- var t = i18nPkg.useI18n().t;
10673
+ var t = useI18n().t;
10318
10674
  if (user) {
10319
10675
  return (React.createElement(react$1.Box, { hideBelow: "sm" },
10320
10676
  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({
@@ -10385,7 +10741,7 @@ var useNavigationDrawer = function (_a) {
10385
10741
  var FavoritesItem = function (_a) {
10386
10742
  var _b, _c;
10387
10743
  var link = _a.link;
10388
- var _d = i18nPkg.useI18n(), t = _d.t, language = _d.language;
10744
+ var _d = useI18n(), t = _d.t, language = _d.language;
10389
10745
  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 : '') },
10390
10746
  React.createElement(HeartIcon, { color: "gray.900" })));
10391
10747
  };
@@ -10479,7 +10835,7 @@ var NonCollapsibleSection = function (_a) {
10479
10835
  };
10480
10836
  var CollapsibleSection = function (_a) {
10481
10837
  var node = _a.node;
10482
- var t = i18nPkg.useI18n().t;
10838
+ var t = useI18n().t;
10483
10839
  if (!node.translationKey && !node.title) {
10484
10840
  return null;
10485
10841
  }
@@ -10503,7 +10859,7 @@ var DrawerMenu = function (_a) {
10503
10859
 
10504
10860
  var DrawerLoginToggle = function (_a) {
10505
10861
  var user = _a.user, onLogin = _a.onLogin, onLogout = _a.onLogout;
10506
- var t = i18nPkg.useI18n().t;
10862
+ var t = useI18n().t;
10507
10863
  return (React.createElement(Button, { as: "button", variant: "secondary", size: "md", marginTop: "md", marginX: "lg", onClick: user ? onLogout : onLogin },
10508
10864
  user ? React.createElement(LogoutIcon, null) : React.createElement(AvatarIcon, null),
10509
10865
  user ? t('header.userMenu.logout') : t('header.login')));
@@ -10529,7 +10885,7 @@ var NavigationDrawer = function (_a) {
10529
10885
  maxWidth: '100vw',
10530
10886
  width: '100%',
10531
10887
  } },
10532
- 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: {
10888
+ 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: {
10533
10889
  '2xs': 'minmax(0, 1fr)',
10534
10890
  md: 'repeat(5, 1fr)',
10535
10891
  }, gap: { md: '3xl' } },
@@ -10836,196 +11192,7 @@ var Pagination = function (_a) {
10836
11192
  }),
10837
11193
  React.createElement(react$1.Pagination.NextTrigger, { asChild: true, css: styles.paginationButton, display: { base: 'none', xs: 'inline-flex' } },
10838
11194
  React.createElement(react$1.IconButton, null,
10839
- React.createElement(ChevronRightSmallIcon, null))))));
10840
- };
10841
-
10842
- var Rating = function (_a) {
10843
- var rating = _a.rating, props = __rest(_a, ["rating"]);
10844
- var percent = "calc((".concat(rating.toString(), " - 0.16) / 5 * 100%)");
10845
- var recipe = react$1.useRecipe({ key: 'rating' });
10846
- var recipeProps = recipe.splitVariantProps(props)[0];
10847
- var styles = recipe(recipeProps);
10848
- 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': {
10849
- content: '"★★★★★"',
10850
- letterSpacing: '0.5em',
10851
- color: 'var(--star-color)',
10852
- background: 'linear-gradient(90deg, var(--star-color) var(--percent), white var(--percent))',
10853
- backgroundClip: 'text',
10854
- WebkitTextFillColor: 'transparent',
10855
- WebkitTextStroke: '0.1em var(--star-color)',
10856
- } }) }));
10857
- };
10858
-
10859
- var Section = function (_a) {
10860
- var _b = _a.maxImgW, maxImgW = _b === void 0 ? '2xl' : _b, props = __rest(_a, ["maxImgW"]);
10861
- var recipe = react$1.useSlotRecipe({ key: 'section' });
10862
- var _c = recipe.splitVariantProps(props), recipeProps = _c[0], componentProps = _c[1];
10863
- var styles = recipe(recipeProps);
10864
- var title = componentProps.title, text = componentProps.text, image = componentProps.image;
10865
- return (React.createElement(react$1.Stack, { css: styles.root },
10866
- image ? (React.createElement(react$1.Box, { css: styles.imageContainer, maxW: maxImgW }, image)) : null,
10867
- React.createElement(react$1.Stack, { css: styles.textContainer },
10868
- React.createElement(react$1.chakra.span, { css: styles.title }, title),
10869
- text ? React.createElement(react$1.chakra.span, { css: styles.text }, text) : null)));
10870
- };
10871
-
10872
- var Select = React.forwardRef(function (_a, ref) {
10873
- var options = _a.options, props = __rest(_a, ["options"]);
10874
- var selectRecipe = react$1.useSlotRecipe({ key: 'select' });
10875
- var _b = selectRecipe.splitVariantProps(props), selectRecipeProps = _b[0], restProps = _b[1];
10876
- var selectStyles = selectRecipe(selectRecipeProps);
10877
- var disabled = restProps.disabled, invalid = restProps.invalid, rest = __rest(restProps, ["disabled", "invalid"]);
10878
- return (React.createElement(react$1.NativeSelect.Root, { disabled: disabled, invalid: invalid, css: selectStyles.root },
10879
- 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)); })),
10880
- React.createElement(react$1.NativeSelect.Indicator, { css: [
10881
- selectStyles.indicator,
10882
- disabled && selectStyles.indicator._disabled,
10883
- ] })));
10884
- });
10885
- Select.displayName = 'Select';
10886
-
10887
- var SimpleHeader = function (props) {
10888
- var recipe = react$1.useSlotRecipe({ key: 'simpleHeader' });
10889
- var _a = recipe.splitVariantProps(props), recipeProps = _a[0], componentProps = _a[1];
10890
- var styles = recipe(recipeProps);
10891
- var title = componentProps.title, url = componentProps.url;
10892
- return (React.createElement(react$1.chakra.header, { css: styles.header },
10893
- React.createElement(Center, null,
10894
- React.createElement(Flex, { css: styles.mainContainer },
10895
- React.createElement(Flex, { justify: "space-between", minWidth: "full" },
10896
- React.createElement(react$1.chakra.h1, { css: styles.title }, title),
10897
- React.createElement(Flex, { css: styles.iconWrapper },
10898
- React.createElement("a", { href: url },
10899
- React.createElement(CloseIcon, null))))))));
10900
- };
10901
-
10902
- var Tab = function (_a) {
10903
- var variant = _a.variant, children = _a.children, rest = __rest(_a, ["variant", "children"]);
10904
- var recipe = react$1.useSlotRecipe({ key: 'tabs' });
10905
- var styles = recipe({ variant: variant });
10906
- return (React.createElement(react$1.Tabs.Trigger, __assign({}, rest, { css: styles.trigger }), children));
10907
- };
10908
-
10909
- var TabList = function (_a) {
10910
- var variant = _a.variant, children = _a.children, rest = __rest(_a, ["variant", "children"]);
10911
- var recipe = react$1.useSlotRecipe({ key: 'tabs' });
10912
- var styles = recipe({ variant: variant });
10913
- return (React.createElement(react$1.Box, { overflowX: "auto" },
10914
- React.createElement(react$1.Tabs.List, __assign({}, rest, { css: styles.list }), React.Children.map(children, function (child) {
10915
- return React.isValidElement(child)
10916
- ? React.cloneElement(child, { variant: variant })
10917
- : child;
10918
- }))));
10919
- };
10920
-
10921
- var TabPanel = function (_a) {
10922
- var variant = _a.variant, children = _a.children, rest = __rest(_a, ["variant", "children"]);
10923
- var recipe = react$1.useSlotRecipe({ key: 'tabs' });
10924
- var styles = recipe({ variant: variant });
10925
- return (React.createElement(react$1.Tabs.Content, __assign({}, rest, { css: styles.content }), children));
10926
- };
10927
-
10928
- var TabPanels = function (_a) {
10929
- var variant = _a.variant, children = _a.children;
10930
- var recipe = react$1.useSlotRecipe({ key: 'tabs' });
10931
- var styles = recipe({ variant: variant });
10932
- return (React.createElement(react$1.Box, { css: styles.contentGroup }, React.Children.map(children, function (child) {
10933
- return React.isValidElement(child)
10934
- ? React.cloneElement(child, { variant: variant })
10935
- : child;
10936
- })));
10937
- };
10938
-
10939
- var Tabs = function (_a) {
10940
- var variant = _a.variant, children = _a.children, rest = __rest(_a, ["variant", "children"]);
10941
- var recipe = react$1.useSlotRecipe({ key: 'tabs' });
10942
- var styles = recipe({ variant: variant });
10943
- return (React.createElement(react$1.Tabs.Root, __assign({}, rest, { css: styles.root }), React.Children.map(children, function (child) {
10944
- return React.isValidElement(child)
10945
- ? React.cloneElement(child, { variant: variant })
10946
- : child;
10947
- })));
10948
- };
10949
-
10950
- 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;
10951
- Body.displayName = 'Table.Body';
10952
- Caption.displayName = 'Table.Caption';
10953
- Column.displayName = 'Table.Column';
10954
- ColumnGroup.displayName = 'Table.ColumnGroup';
10955
- Footer.displayName = 'Table.Footer';
10956
- Header.displayName = 'Table.Header';
10957
- Root.displayName = 'Table.Root';
10958
- Row.displayName = 'Table.Row';
10959
- ScrollArea.displayName = 'Table.ScrollArea';
10960
- Cell.displayName = 'Table.Cell';
10961
- ColumnHeader.displayName = 'Table.ColumnHeader';
10962
- var Table = {
10963
- Body: Body,
10964
- Caption: Caption,
10965
- Cell: Cell,
10966
- Column: Column,
10967
- ColumnGroup: ColumnGroup,
10968
- ColumnHeader: ColumnHeader,
10969
- Footer: Footer,
10970
- Header: Header,
10971
- Root: Root,
10972
- Row: Row,
10973
- ScrollArea: ScrollArea,
10974
- };
10975
-
10976
- var Underline = function (props) {
10977
- var recipe = react$1.useSlotRecipe({ key: 'markedText' });
10978
- var recipeProps = recipe.splitVariantProps(props)[0];
10979
- var styles = recipe(recipeProps);
10980
- 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" },
10981
- 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" })));
10982
- };
10983
-
10984
- var Highlight = function (props) {
10985
- var recipe = react$1.useSlotRecipe({ key: 'markedText' });
10986
- var recipeProps = recipe.splitVariantProps(props)[0];
10987
- var styles = recipe(recipeProps);
10988
- 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" },
10989
- 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" })));
10990
- };
10991
-
10992
- var MarkedTextMark = function (props) {
10993
- if (props.variant === 'highlight') {
10994
- return React.createElement(Highlight, __assign({}, props));
10995
- }
10996
- if (props.variant === 'underline') {
10997
- return React.createElement(Underline, __assign({}, props));
10998
- }
10999
- return null;
11000
- };
11001
-
11002
- var MarkedText = function (_a) {
11003
- var children = _a.children, props = __rest(_a, ["children"]);
11004
- var recipe = react$1.useSlotRecipe({ key: 'markedText' });
11005
- var _b = recipe.splitVariantProps(props), recipeProps = _b[0], boxProps = _b[1];
11006
- var styles = recipe(recipeProps);
11007
- var variant = props.variant, highlightColor = props.highlightColor;
11008
- return (React.createElement(react$1.Box, __assign({ css: styles.container }, boxProps),
11009
- React.createElement(MarkedTextMark, { variant: variant, highlightColor: highlightColor }),
11010
- React.createElement(react$1.Box, { css: styles.text }, children)));
11011
- };
11012
-
11013
- var _a$1;
11014
- var themes = (_a$1 = {},
11015
- _a$1[Brand.AutoScout24] = autoScout24System,
11016
- _a$1[Brand.MotoScout24] = motoScout24System,
11017
- _a$1);
11018
- var ThemeProvider = function (_a) {
11019
- var children = _a.children, theme = _a.theme;
11020
- return React.createElement(react$1.ChakraProvider, { value: themes[theme] }, children);
11021
- };
11022
-
11023
- var TopListingBadge = function (_a) {
11024
- var children = _a.children, aspectRatio = _a.aspectRatio;
11025
- return (React.createElement(react$1.Grid, null,
11026
- React.createElement(react$1.GridItem, { gridColumn: 1, gridRow: 1 }, aspectRatio ? (React.createElement(react$1.AspectRatio, { ratio: aspectRatio }, children)) : (children)),
11027
- React.createElement(react$1.GridItem, { gridColumn: 1, gridRow: 1, zIndex: "docked", overflow: "hidden", position: "relative", pointerEvents: "none", css: { touchAction: 'none' } },
11028
- 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"))));
11195
+ React.createElement(ChevronRightSmallIcon, null))))));
11029
11196
  };
11030
11197
 
11031
11198
  var InputLeftElement = function (_a) {
@@ -11103,94 +11270,6 @@ var RangeFilterInput = function (_a) {
11103
11270
  React.createElement(InputGroup, __assign({ inputProps: to, variant: "inputRight", handleChange: handleChange, onBlur: onBlur, unit: unit }, rest))));
11104
11271
  };
11105
11272
 
11106
- var _a;
11107
- var badgeText = (_a = {},
11108
- _a[Brand.AutoScout24] = 'TopCar',
11109
- _a[Brand.MotoScout24] = 'TopMoto',
11110
- _a);
11111
- var TopVehicleSharedBadge = function (_a) {
11112
- var children = _a.children, aspectRatio = _a.aspectRatio, brand = _a.brand;
11113
- return (React.createElement(react$1.Box, null,
11114
- React.createElement(react$1.Box, { w: "full", textAlign: "center", textStyle: "heading4", p: "xs", color: "gray.900" }, badgeText[brand]),
11115
- aspectRatio ? (React.createElement(AspectRatio, { ratio: aspectRatio }, children)) : (children)));
11116
- };
11117
-
11118
- var emptyItemOffset = 0;
11119
- var firstItemOffset = 1;
11120
- var getItemOffset = function (applyIndentation) {
11121
- return applyIndentation ? firstItemOffset : emptyItemOffset;
11122
- };
11123
- var getSliderStepValue = function (marks, applyIndentation, value) {
11124
- var selectedMarkIndex = marks.findIndex(function (mark) { return mark.value === value; });
11125
- if (selectedMarkIndex < emptyItemOffset) {
11126
- return getItemOffset(applyIndentation);
11127
- }
11128
- return selectedMarkIndex + getItemOffset(applyIndentation);
11129
- };
11130
- var getSliderMarks = function (marks, applyIndentation) {
11131
- return marks.map(function (mark, index) { return (__assign(__assign({}, mark), { stepValue: index + getItemOffset(applyIndentation) })); });
11132
- };
11133
- var DiscreteSlider = function (_a) {
11134
- var marks = _a.marks, _b = _a.applyIndentation, applyIndentation = _b === void 0 ? true : _b, onValueChanged = _a.onValueChanged, value = _a.value;
11135
- var sliderStepValue = getSliderStepValue(marks, applyIndentation, value);
11136
- var sliderMarks = getSliderMarks(marks, applyIndentation);
11137
- var handleOnChange = function (newStepValue) {
11138
- var _a;
11139
- if (applyIndentation && newStepValue < firstItemOffset)
11140
- return;
11141
- var newSliderMark = (_a = sliderMarks.find(function (mark) { return mark.stepValue === newStepValue; })) === null || _a === void 0 ? void 0 : _a.value;
11142
- onValueChanged(newSliderMark);
11143
- };
11144
- 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); } },
11145
- React.createElement(react$1.Slider.Control, null,
11146
- React.createElement(react$1.Slider.Track, null,
11147
- React.createElement(react$1.Slider.Range, null)),
11148
- React.createElement(react$1.Slider.Thumbs, null),
11149
- React.createElement(react$1.Slider.MarkerGroup, null, sliderMarks.map(function (_a, index) {
11150
- var stepValue = _a.stepValue, label = _a.label;
11151
- return (React.createElement(react$1.Slider.Marker, { key: index, value: stepValue, style: {
11152
- pointerEvents: 'all',
11153
- fontWeight: sliderStepValue === stepValue ? 'bold' : 'normal',
11154
- } }, label));
11155
- })))));
11156
- };
11157
-
11158
- var Tooltip = function (_a) {
11159
- 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;
11160
- var _d = React.useState(false), isOpen = _d[0], setIsOpen = _d[1];
11161
- // eslint-disable-next-line @typescript-eslint/no-explicit-any
11162
- var childrenWithProps = React.cloneElement(children, {
11163
- onMouseEnter: function () { return setIsOpen(true); },
11164
- onMouseLeave: function () { return setIsOpen(false); },
11165
- onClick: function () { return setIsOpen(true); },
11166
- });
11167
- return (React.createElement(react$1.TooltipRoot, { positioning: {
11168
- placement: placement,
11169
- }, open: isOpen },
11170
- React.createElement(react$1.TooltipTrigger, { asChild: true }, childrenWithProps),
11171
- React.createElement(react$1.TooltipPositioner, null,
11172
- React.createElement(react$1.TooltipContent, { maxWidth: maxWidth },
11173
- React.createElement(react$1.TooltipArrow, null,
11174
- React.createElement(react$1.TooltipArrowTip, null)),
11175
- label))));
11176
- };
11177
-
11178
- var FormControlSection = function (_a) {
11179
- var children = _a.children, errorMessage = _a.errorMessage, id = _a.id, label = _a.label, hint = _a.hint, tooltip = _a.tooltip;
11180
- var isInvalid = !!errorMessage;
11181
- return (React.createElement(react$1.Field.Root, { id: id, invalid: isInvalid },
11182
- React.createElement(react$1.Box, { border: "1px", borderRadius: "sm", borderColor: isInvalid ? 'red.500' : 'gray.400', padding: "2xl" },
11183
- React.createElement(Flex, { flexDirection: "column" },
11184
- React.createElement(react$1.Box, { mb: "lg" },
11185
- React.createElement(Flex, { alignItems: "center" },
11186
- label ? (React.createElement(Text, { color: "gray.900", textStyle: "heading4" }, label)) : null,
11187
- tooltip ? (React.createElement(Tooltip, { label: tooltip },
11188
- React.createElement(InformationIcon, { ml: "md" }))) : null),
11189
- hint ? (React.createElement(Text, { color: "gray.900", textStyle: "body" }, hint)) : null),
11190
- children)),
11191
- React.createElement(react$1.Field.ErrorText, null, errorMessage)));
11192
- };
11193
-
11194
11273
  var RangeSlider = function (_a) {
11195
11274
  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"]);
11196
11275
  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),
@@ -11201,264 +11280,138 @@ var RangeSlider = function (_a) {
11201
11280
  React.createElement(react$1.Slider.Thumb, { index: 1, "aria-label": "Max", width: { base: 'md', sm: 'sm' }, height: { base: 'md', sm: 'sm' } }))));
11202
11281
  };
11203
11282
 
11204
- var icons = {
11205
- previous: React.createElement(ChevronLeftSmallIcon, null),
11206
- next: React.createElement(ChevronRightSmallIcon, null),
11207
- };
11208
- var ThumbnailNavigationButton = function (_a) {
11209
- var direction = _a.direction, onClick = _a.onClick;
11210
- var recipe = react$1.useSlotRecipe({ key: 'carousel' });
11211
- var styles = recipe({ variant: 'fullScreen' });
11212
- var side = direction === 'previous' ? { left: '0' } : { right: '0' };
11213
- 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) },
11214
- React.createElement(Flex, { css: styles.paginationIconContainer }, icons[direction])));
11283
+ var Rating = function (_a) {
11284
+ var rating = _a.rating, props = __rest(_a, ["rating"]);
11285
+ var percent = "calc((".concat(rating.toString(), " - 0.16) / 5 * 100%)");
11286
+ var recipe = react$1.useRecipe({ key: 'rating' });
11287
+ var recipeProps = recipe.splitVariantProps(props)[0];
11288
+ var styles = recipe(recipeProps);
11289
+ 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': {
11290
+ content: '"★★★★★"',
11291
+ letterSpacing: '0.5em',
11292
+ color: 'var(--star-color)',
11293
+ background: 'linear-gradient(90deg, var(--star-color) var(--percent), white var(--percent))',
11294
+ backgroundClip: 'text',
11295
+ WebkitTextFillColor: 'transparent',
11296
+ WebkitTextStroke: '0.1em var(--star-color)',
11297
+ } }) }));
11215
11298
  };
11216
11299
 
11217
- var Thumbnail = function (_a) {
11218
- var onClick = _a.onClick, isCurrent = _a.isCurrent, thumbnailIndex = _a.thumbnailIndex, totalThumbnails = _a.totalThumbnails, children = _a.children;
11219
- 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));
11300
+ var Section = function (_a) {
11301
+ var _b = _a.maxImgW, maxImgW = _b === void 0 ? '2xl' : _b, props = __rest(_a, ["maxImgW"]);
11302
+ var recipe = react$1.useSlotRecipe({ key: 'section' });
11303
+ var _c = recipe.splitVariantProps(props), recipeProps = _c[0], componentProps = _c[1];
11304
+ var styles = recipe(recipeProps);
11305
+ var title = componentProps.title, text = componentProps.text, image = componentProps.image;
11306
+ return (React.createElement(react$1.Stack, { css: styles.root },
11307
+ image ? (React.createElement(react$1.Box, { css: styles.imageContainer, maxW: maxImgW }, image)) : null,
11308
+ React.createElement(react$1.Stack, { css: styles.textContainer },
11309
+ React.createElement(react$1.chakra.span, { css: styles.title }, title),
11310
+ text ? React.createElement(react$1.chakra.span, { css: styles.text }, text) : null)));
11220
11311
  };
11221
11312
 
11222
- var ThumbnailPagination = function (_a) {
11223
- var currentSlideIndex = _a.currentSlideIndex, thumbnails = _a.thumbnails, mainCarousel = _a.mainCarousel, paginationCarouselRef = _a.paginationCarouselRef, paginationCarousel = _a.paginationCarousel;
11224
- var _b = React.useState({ previous: false, next: true }), paginationButtonVisibility = _b[0], setPaginationButtonVisibility = _b[1];
11225
- var recipe = react$1.useSlotRecipe({ key: 'carousel' });
11226
- var styles = recipe({ variant: 'fullScreen' });
11227
- var scrollPrev = React.useCallback(function () { return paginationCarousel && paginationCarousel.scrollPrev(true); }, [paginationCarousel]);
11228
- var scrollNext = React.useCallback(function () { return paginationCarousel && paginationCarousel.scrollNext(true); }, [paginationCarousel]);
11229
- var onThumbnailClick = React.useCallback(function (index) {
11230
- if (!mainCarousel || !paginationCarousel)
11231
- return;
11232
- mainCarousel.scrollTo(index, true);
11233
- }, [mainCarousel, paginationCarousel]);
11234
- var evalPaginationButtonVisibility = React.useCallback(function () {
11235
- if (!paginationCarousel ||
11236
- paginationCarousel.slidesNotInView().length === 0) {
11237
- setPaginationButtonVisibility({ previous: false, next: false });
11238
- return;
11239
- }
11240
- var progress = Math.max(0, Math.min(1, paginationCarousel.scrollProgress()));
11241
- var slideWidth = 1 / thumbnails.length;
11242
- setPaginationButtonVisibility({
11243
- previous: progress > slideWidth,
11244
- next: progress < 1 - slideWidth,
11245
- });
11246
- }, [paginationCarousel, thumbnails.length]);
11247
- React.useEffect(function () {
11248
- if (!paginationCarousel)
11249
- return;
11250
- evalPaginationButtonVisibility();
11251
- paginationCarousel.on('scroll', evalPaginationButtonVisibility);
11252
- paginationCarousel.on('slidesInView', evalPaginationButtonVisibility);
11253
- }, [paginationCarousel, evalPaginationButtonVisibility]);
11254
- return (React.createElement(react$1.Box, { ref: paginationCarouselRef, css: styles.pagination, "aria-label": "Pagination" },
11255
- 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" })))); })),
11256
- paginationButtonVisibility.previous ? (React.createElement(ThumbnailNavigationButton, { onClick: scrollPrev, direction: "previous" })) : null,
11257
- paginationButtonVisibility.next ? (React.createElement(ThumbnailNavigationButton, { onClick: scrollNext, direction: "next" })) : null));
11258
- };
11313
+ var Select = React.forwardRef(function (_a, ref) {
11314
+ var options = _a.options, props = __rest(_a, ["options"]);
11315
+ var selectRecipe = react$1.useSlotRecipe({ key: 'select' });
11316
+ var _b = selectRecipe.splitVariantProps(props), selectRecipeProps = _b[0], restProps = _b[1];
11317
+ var selectStyles = selectRecipe(selectRecipeProps);
11318
+ var disabled = restProps.disabled, invalid = restProps.invalid, rest = __rest(restProps, ["disabled", "invalid"]);
11319
+ return (React.createElement(react$1.NativeSelect.Root, { disabled: disabled, invalid: invalid, css: selectStyles.root },
11320
+ 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)); })),
11321
+ React.createElement(react$1.NativeSelect.Indicator, { css: [
11322
+ selectStyles.indicator,
11323
+ disabled && selectStyles.indicator._disabled,
11324
+ ] })));
11325
+ });
11326
+ Select.displayName = 'Select';
11259
11327
 
11260
- var Slide = function (_a) {
11261
- var onClick = _a.onClick, slideIndex = _a.slideIndex, totalSlides = _a.totalSlides, isCurrent = _a.isCurrent, children = _a.children, fullScreen = _a.fullScreen, slidesPerView = _a.slidesPerView;
11262
- var recipe = react$1.useSlotRecipe({ key: 'carousel' });
11263
- var styles = recipe(fullScreen ? { variant: 'fullScreen' } : {});
11264
- var flexBasisTokenOrVar = slidesPerView === 1 ? 'full' : 'var(--carousel-slide-basis)';
11265
- var basisVarResponsive = slidesPerView === 1
11266
- ? undefined
11267
- : (function () {
11268
- var map = slidesPerView;
11269
- var result = {};
11270
- Object.keys(map).forEach(function (bp) {
11271
- var value = map[bp];
11272
- if (typeof value === 'number') {
11273
- result[bp] = "calc(100% / ".concat(value, ")");
11274
- }
11275
- });
11276
- return result;
11277
- })();
11278
- return (React.createElement(react$1.Box, { css: __assign(__assign({}, styles.slide), (basisVarResponsive
11279
- ? { '--carousel-slide-basis': basisVarResponsive }
11280
- : {})), 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));
11328
+ var SimpleHeader = function (props) {
11329
+ var recipe = react$1.useSlotRecipe({ key: 'simpleHeader' });
11330
+ var _a = recipe.splitVariantProps(props), recipeProps = _a[0], componentProps = _a[1];
11331
+ var styles = recipe(recipeProps);
11332
+ var title = componentProps.title, url = componentProps.url;
11333
+ return (React.createElement(react$1.chakra.header, { css: styles.header },
11334
+ React.createElement(Center, null,
11335
+ React.createElement(Flex, { css: styles.mainContainer },
11336
+ React.createElement(Flex, { justify: "space-between", minWidth: "full" },
11337
+ React.createElement(react$1.chakra.h1, { css: styles.title }, title),
11338
+ React.createElement(Flex, { css: styles.iconWrapper },
11339
+ React.createElement("a", { href: url },
11340
+ React.createElement(CloseIcon, null))))))));
11281
11341
  };
11282
11342
 
11283
- var NumbersPaginationButton = function (_a) {
11284
- var onClick = _a.onClick, isCurrent = _a.isCurrent, currentPageNumber = _a.currentPageNumber, totalNumbers = _a.totalNumbers;
11285
- var recipe = react$1.useSlotRecipe({ key: 'carousel' });
11286
- var styles = recipe();
11287
- 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));
11343
+ var Tab = function (_a) {
11344
+ var variant = _a.variant, children = _a.children, rest = __rest(_a, ["variant", "children"]);
11345
+ var recipe = react$1.useSlotRecipe({ key: 'tabs' });
11346
+ var styles = recipe({ variant: variant });
11347
+ return (React.createElement(react$1.Tabs.Trigger, __assign({}, rest, { css: styles.trigger }), children));
11288
11348
  };
11289
11349
 
11290
- var NumbersPagination = function (_a) {
11291
- var currentSlideIndex = _a.currentSlideIndex, numberOfSlides = _a.numberOfSlides, mainCarousel = _a.mainCarousel;
11292
- var onClick = React.useCallback(function (index) {
11293
- if (mainCarousel) {
11294
- mainCarousel.scrollTo(index);
11295
- }
11296
- }, [mainCarousel]);
11297
- var pagination = Array.from({ length: numberOfSlides }, function (_, i) { return i; });
11298
- return (React.createElement(react$1.Box, { "aria-label": "Numbers Pagination" },
11299
- 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); } })); }))));
11350
+ var TabList = function (_a) {
11351
+ var variant = _a.variant, children = _a.children, rest = __rest(_a, ["variant", "children"]);
11352
+ var recipe = react$1.useSlotRecipe({ key: 'tabs' });
11353
+ var styles = recipe({ variant: variant });
11354
+ return (React.createElement(react$1.Box, { overflowX: "auto" },
11355
+ React.createElement(react$1.Tabs.List, __assign({}, rest, { css: styles.list }), React.Children.map(children, function (child) {
11356
+ return React.isValidElement(child)
11357
+ ? React.cloneElement(child, { variant: variant })
11358
+ : child;
11359
+ }))));
11300
11360
  };
11301
11361
 
11302
- var NavigationButton = function (_a) {
11303
- var direction = _a.direction, onClick = _a.onClick, fullScreen = _a.fullScreen, _b = _a.isHovered, isHovered = _b === void 0 ? false : _b;
11304
- var recipe = react$1.useSlotRecipe({ key: 'carousel' });
11305
- var styles = recipe(fullScreen ? { variant: 'fullScreen' } : {});
11306
- var side = direction === 'previous' ? { left: '0' } : { right: '0' };
11307
- var icons = {
11308
- previous: React.createElement(ChevronLeftLargeIcon, { boxSize: undefined, css: styles.icon }),
11309
- next: React.createElement(ChevronRightLargeIcon, { boxSize: undefined, css: styles.icon }),
11310
- };
11311
- 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) },
11312
- React.createElement(Flex, { css: styles.button }, icons[direction])));
11362
+ var TabPanel = function (_a) {
11363
+ var variant = _a.variant, children = _a.children, rest = __rest(_a, ["variant", "children"]);
11364
+ var recipe = react$1.useSlotRecipe({ key: 'tabs' });
11365
+ var styles = recipe({ variant: variant });
11366
+ return (React.createElement(react$1.Tabs.Content, __assign({}, rest, { css: styles.content }), children));
11313
11367
  };
11314
11368
 
11315
- var DotsPaginationIndicator = function (_a) {
11316
- var isCurrent = _a.isCurrent;
11317
- var recipe = react$1.useSlotRecipe({ key: 'carousel' });
11318
- var styles = recipe();
11319
- return (React.createElement(react$1.chakra.span, { "aria-current": isCurrent, css: styles.dotsPaginationIndicator }));
11369
+ var TabPanels = function (_a) {
11370
+ var variant = _a.variant, children = _a.children;
11371
+ var recipe = react$1.useSlotRecipe({ key: 'tabs' });
11372
+ var styles = recipe({ variant: variant });
11373
+ return (React.createElement(react$1.Box, { css: styles.contentGroup }, React.Children.map(children, function (child) {
11374
+ return React.isValidElement(child)
11375
+ ? React.cloneElement(child, { variant: variant })
11376
+ : child;
11377
+ })));
11320
11378
  };
11321
11379
 
11322
- var DotsPagination = function (_a) {
11323
- var currentSlideIndex = _a.currentSlideIndex, numberOfSlides = _a.numberOfSlides;
11324
- var pagination = Array.from({ length: numberOfSlides }, function (_, i) { return i; });
11325
- var recipe = react$1.useSlotRecipe({ key: 'carousel' });
11326
- var styles = recipe();
11327
- return (React.createElement(react$1.Box, { "aria-label": "Dots Pagination", css: styles.dotsPaginationContainer },
11328
- React.createElement(Flex, { flexDirection: "row", alignItems: "center", justifyContent: "center" }, pagination.map(function (index) { return (React.createElement(DotsPaginationIndicator, { key: "slide-".concat(index), isCurrent: index === currentSlideIndex })); }))));
11380
+ var Tabs = function (_a) {
11381
+ var variant = _a.variant, children = _a.children, rest = __rest(_a, ["variant", "children"]);
11382
+ var recipe = react$1.useSlotRecipe({ key: 'tabs' });
11383
+ var styles = recipe({ variant: variant });
11384
+ return (React.createElement(react$1.Tabs.Root, __assign({}, rest, { css: styles.root }), React.Children.map(children, function (child) {
11385
+ return React.isValidElement(child)
11386
+ ? React.cloneElement(child, { variant: variant })
11387
+ : child;
11388
+ })));
11329
11389
  };
11330
11390
 
11331
- exports.PaginationType = void 0;
11332
- (function (PaginationType) {
11333
- PaginationType["Thumbnail"] = "thumbnail";
11334
- PaginationType["Number"] = "number";
11335
- PaginationType["None"] = "none";
11336
- PaginationType["Dot"] = "dot";
11337
- })(exports.PaginationType || (exports.PaginationType = {}));
11338
- var isFullScreenSlide = function (value) {
11339
- return typeof value === 'object' && value !== null && 'slide' in value;
11340
- };
11341
- // eslint-disable-next-line sonarjs/cognitive-complexity
11342
- var Carousel = function (props) {
11343
- var _a;
11344
- var _b;
11345
- 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;
11346
- var _h = React.useState(loop), canScrollPrevious = _h[0], setCanScrollPrevious = _h[1];
11347
- var _j = React.useState(loop), canScrollNext = _j[0], setCanScrollNext = _j[1];
11348
- var _k = React.useState(startIndex), selectedIndex = _k[0], setSelectedIndex = _k[1];
11349
- var isSmallLandscapeViewport = react$1.useMediaQuery(["(max-height: ".concat(breakpoints.sm.px, "px) and (orientation: landscape)")], {
11350
- ssr: true,
11351
- fallback: [false],
11352
- })[0];
11353
- var recipe = react$1.useSlotRecipe({ key: 'carousel' });
11354
- var styles = recipe(fullScreen ? { variant: 'fullScreen' } : {});
11355
- var _l = useEmblaCarousel({
11356
- loop: loop,
11357
- startIndex: startIndex,
11358
- duration: 20,
11359
- align: 'start',
11360
- slidesToScroll: slidesToScroll,
11361
- }), mainCarouselRef = _l[0], mainCarousel = _l[1];
11362
- var _m = useEmblaCarousel({
11363
- containScroll: 'keepSnaps',
11364
- dragFree: true,
11365
- slidesToScroll: 'auto',
11366
- inViewThreshold: 1,
11367
- duration: 20,
11368
- }), paginationCarouselRef = _m[0], paginationCarousel = _m[1];
11369
- var scrollPrev = React.useCallback(function () { return mainCarousel && mainCarousel.scrollPrev(true); }, [mainCarousel]);
11370
- var scrollNext = React.useCallback(function () { return mainCarousel && mainCarousel.scrollNext(true); }, [mainCarousel]);
11371
- var onClick = React.useCallback(function (index) {
11372
- if (onSlideClick) {
11373
- onSlideClick(index);
11374
- }
11375
- }, [onSlideClick]);
11376
- var numberOfSlides = props.children.length;
11377
- var hasThumbnailPagination = fullScreen && !isSmallLandscapeViewport;
11378
- var onSelect = React.useCallback(function () {
11379
- var _a, _b;
11380
- if (!mainCarousel)
11381
- return;
11382
- var newIndex = mainCarousel.selectedScrollSnap();
11383
- var previousIndex = mainCarousel.previousScrollSnap();
11384
- setSelectedIndex(newIndex);
11385
- setCanScrollPrevious(mainCarousel.canScrollPrev());
11386
- setCanScrollNext(mainCarousel.canScrollNext());
11387
- if (paginationCarousel && hasThumbnailPagination) {
11388
- var slideRegistry = paginationCarousel.internalEngine().slideRegistry;
11389
- var snapIndexThatSlideBelongsTo = slideRegistry.findIndex(function (group) {
11390
- return group.includes(newIndex);
11391
- });
11392
- if (typeof snapIndexThatSlideBelongsTo !== 'undefined') {
11393
- paginationCarousel.scrollTo(snapIndexThatSlideBelongsTo);
11394
- }
11395
- }
11396
- if (onSlideSelect) {
11397
- onSlideSelect(newIndex);
11398
- }
11399
- if (!props.fullScreen) {
11400
- return;
11401
- }
11402
- var fullScreenChildren = props.children;
11403
- if (newIndex !== undefined) {
11404
- var currentSlide = fullScreenChildren[newIndex];
11405
- (_a = currentSlide === null || currentSlide === void 0 ? void 0 : currentSlide.onSlideEnter) === null || _a === void 0 ? void 0 : _a.call(currentSlide);
11406
- }
11407
- if (previousIndex !== undefined && previousIndex !== newIndex) {
11408
- var previousSlide = fullScreenChildren[previousIndex];
11409
- (_b = previousSlide === null || previousSlide === void 0 ? void 0 : previousSlide.onSlideLeave) === null || _b === void 0 ? void 0 : _b.call(previousSlide);
11410
- }
11411
- }, [
11412
- mainCarousel,
11413
- paginationCarousel,
11414
- onSlideSelect,
11415
- hasThumbnailPagination,
11416
- props.children,
11417
- props.fullScreen,
11418
- ]);
11419
- React.useEffect(function () {
11420
- if (!mainCarousel)
11421
- return;
11422
- onSelect();
11423
- mainCarousel.on('select', onSelect);
11424
- }, [mainCarousel, onSelect]);
11425
- React.useEffect(function () {
11426
- var keydownListener = function (e) {
11427
- if (fullScreen) {
11428
- switch (e.code) {
11429
- case 'ArrowRight':
11430
- scrollNext();
11431
- break;
11432
- case 'ArrowLeft':
11433
- scrollPrev();
11434
- break;
11435
- }
11436
- }
11437
- };
11438
- document.addEventListener('keydown', keydownListener);
11439
- return function () { return document.removeEventListener('keydown', keydownListener); };
11440
- }, [fullScreen, scrollNext, scrollPrev]);
11441
- var prerenderFallbackSlide = startIndex !== 0 && !mainCarouselRef;
11442
- var carouselHeightByPaginationTypeMap = (_a = {},
11443
- _a[exports.PaginationType.None] = '100%',
11444
- _a[exports.PaginationType.Dot] = '100%',
11445
- _a[exports.PaginationType.Thumbnail] = 'calc(100% - var(--carousel-pagination-height))',
11446
- _a[exports.PaginationType.Number] = 'calc(100% - var(--carousel-numbers-pagination-height))',
11447
- _a);
11448
- var carouselHeightCssVarValue = hasThumbnailPagination
11449
- ? carouselHeightByPaginationTypeMap[exports.PaginationType.Thumbnail]
11450
- : carouselHeightByPaginationTypeMap[paginationType];
11451
- var _o = React.useState(false), isHovered = _o[0], setIsHovered = _o[1];
11452
- return (React.createElement(react$1.Box, { css: styles.container, "data-group": true },
11453
- prerenderFallbackSlide ? (React.createElement(Slide, { slideIndex: startIndex, onClick: function () { return onClick(startIndex); }, totalSlides: numberOfSlides, isCurrent: startIndex === selectedIndex, fullScreen: !!fullScreen, slidesPerView: slidesPerView }, props.fullScreen
11454
- ? (_b = props.children[startIndex]) === null || _b === void 0 ? void 0 : _b.slide
11455
- : 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 }) },
11456
- 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)); })),
11457
- canScrollPrevious ? (React.createElement(NavigationButton, { onClick: scrollPrev, direction: "previous", fullScreen: !!fullScreen, isHovered: isHovered || (!!fullScreen && !isSmallLandscapeViewport) })) : null,
11458
- canScrollNext ? (React.createElement(NavigationButton, { onClick: scrollNext, direction: "next", fullScreen: !!fullScreen, isHovered: isHovered || (!!fullScreen && !isSmallLandscapeViewport) })) : null,
11459
- paginationType === exports.PaginationType.Dot ? (React.createElement(DotsPagination, { currentSlideIndex: selectedIndex, numberOfSlides: props.children.length })) : null)),
11460
- hasThumbnailPagination ? (React.createElement(ThumbnailPagination, { currentSlideIndex: selectedIndex, thumbnails: props.children.map(function (slide) { return slide.thumbnail; }), mainCarousel: mainCarousel, paginationCarousel: paginationCarousel, paginationCarouselRef: paginationCarouselRef })) : null,
11461
- paginationType === exports.PaginationType.Number ? (React.createElement(NumbersPagination, { mainCarousel: mainCarousel, currentSlideIndex: selectedIndex, numberOfSlides: props.children.length })) : null));
11391
+ 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;
11392
+ Body.displayName = 'Table.Body';
11393
+ Caption.displayName = 'Table.Caption';
11394
+ Column.displayName = 'Table.Column';
11395
+ ColumnGroup.displayName = 'Table.ColumnGroup';
11396
+ Footer.displayName = 'Table.Footer';
11397
+ Header.displayName = 'Table.Header';
11398
+ Root.displayName = 'Table.Root';
11399
+ Row.displayName = 'Table.Row';
11400
+ ScrollArea.displayName = 'Table.ScrollArea';
11401
+ Cell.displayName = 'Table.Cell';
11402
+ ColumnHeader.displayName = 'Table.ColumnHeader';
11403
+ var Table = {
11404
+ Body: Body,
11405
+ Caption: Caption,
11406
+ Cell: Cell,
11407
+ Column: Column,
11408
+ ColumnGroup: ColumnGroup,
11409
+ ColumnHeader: ColumnHeader,
11410
+ Footer: Footer,
11411
+ Header: Header,
11412
+ Root: Root,
11413
+ Row: Row,
11414
+ ScrollArea: ScrollArea,
11462
11415
  };
11463
11416
 
11464
11417
  var TenantSelectionModalLayout = function (_a) {
@@ -11469,7 +11422,7 @@ var TenantSelectionModalLayout = function (_a) {
11469
11422
 
11470
11423
  var TenantSelectionSelect = function (_a) {
11471
11424
  var tenantSelection = _a.tenantSelection, setTenantSelection = _a.setTenantSelection, user = _a.user;
11472
- var t = i18nPkg.useI18n().t;
11425
+ var t = useI18n().t;
11473
11426
  var onTenantSelect = React.useCallback(function (selectedTenantId) {
11474
11427
  setTenantSelection(function (current) {
11475
11428
  return __assign(__assign({}, current), { selectedTenant: selectedTenantId, showSelection: false });
@@ -11483,7 +11436,7 @@ var img = "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAQAAAAEBCAMAAACg8IvxAAA
11483
11436
 
11484
11437
  var TenantSelectionOverview = function (_a) {
11485
11438
  var tenantSelection = _a.tenantSelection, setTenantSelection = _a.setTenantSelection, user = _a.user, selectTenant = _a.selectTenant;
11486
- var t = i18nPkg.useI18n().t;
11439
+ var t = useI18n().t;
11487
11440
  var getSelectButtonLabel = function () {
11488
11441
  if (!tenantSelection.selectedTenant)
11489
11442
  return t('auth.tenantSelection.selectButton');
@@ -11541,6 +11494,73 @@ var TenantSelection = function (_a) {
11541
11494
  React.createElement(TenantSelectionOverview, { user: user, tenantSelection: tenantSelection, setTenantSelection: setTenantSelection, selectTenant: selectTenant })));
11542
11495
  };
11543
11496
 
11497
+ var Underline = function (props) {
11498
+ var recipe = react$1.useSlotRecipe({ key: 'markedText' });
11499
+ var recipeProps = recipe.splitVariantProps(props)[0];
11500
+ var styles = recipe(recipeProps);
11501
+ 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" },
11502
+ 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" })));
11503
+ };
11504
+
11505
+ var Highlight = function (props) {
11506
+ var recipe = react$1.useSlotRecipe({ key: 'markedText' });
11507
+ var recipeProps = recipe.splitVariantProps(props)[0];
11508
+ var styles = recipe(recipeProps);
11509
+ 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" },
11510
+ 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" })));
11511
+ };
11512
+
11513
+ var MarkedTextMark = function (props) {
11514
+ if (props.variant === 'highlight') {
11515
+ return React.createElement(Highlight, __assign({}, props));
11516
+ }
11517
+ if (props.variant === 'underline') {
11518
+ return React.createElement(Underline, __assign({}, props));
11519
+ }
11520
+ return null;
11521
+ };
11522
+
11523
+ var MarkedText = function (_a) {
11524
+ var children = _a.children, props = __rest(_a, ["children"]);
11525
+ var recipe = react$1.useSlotRecipe({ key: 'markedText' });
11526
+ var _b = recipe.splitVariantProps(props), recipeProps = _b[0], boxProps = _b[1];
11527
+ var styles = recipe(recipeProps);
11528
+ var variant = props.variant, highlightColor = props.highlightColor;
11529
+ return (React.createElement(react$1.Box, __assign({ css: styles.container }, boxProps),
11530
+ React.createElement(MarkedTextMark, { variant: variant, highlightColor: highlightColor }),
11531
+ React.createElement(react$1.Box, { css: styles.text }, children)));
11532
+ };
11533
+
11534
+ var _a$1;
11535
+ var themes = (_a$1 = {},
11536
+ _a$1[Brand.AutoScout24] = autoScout24System,
11537
+ _a$1[Brand.MotoScout24] = motoScout24System,
11538
+ _a$1);
11539
+ var ThemeProvider = function (_a) {
11540
+ var children = _a.children, theme = _a.theme;
11541
+ return React.createElement(react$1.ChakraProvider, { value: themes[theme] }, children);
11542
+ };
11543
+
11544
+ var TopListingBadge = function (_a) {
11545
+ var children = _a.children, aspectRatio = _a.aspectRatio;
11546
+ return (React.createElement(react$1.Grid, null,
11547
+ React.createElement(react$1.GridItem, { gridColumn: 1, gridRow: 1 }, aspectRatio ? (React.createElement(react$1.AspectRatio, { ratio: aspectRatio }, children)) : (children)),
11548
+ React.createElement(react$1.GridItem, { gridColumn: 1, gridRow: 1, zIndex: "docked", overflow: "hidden", position: "relative", pointerEvents: "none", css: { touchAction: 'none' } },
11549
+ 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"))));
11550
+ };
11551
+
11552
+ var _a;
11553
+ var badgeText = (_a = {},
11554
+ _a[Brand.AutoScout24] = 'TopCar',
11555
+ _a[Brand.MotoScout24] = 'TopMoto',
11556
+ _a);
11557
+ var TopVehicleSharedBadge = function (_a) {
11558
+ var children = _a.children, aspectRatio = _a.aspectRatio, brand = _a.brand;
11559
+ return (React.createElement(react$1.Box, null,
11560
+ React.createElement(react$1.Box, { w: "full", textAlign: "center", textStyle: "heading4", p: "xs", color: "gray.900" }, badgeText[brand]),
11561
+ aspectRatio ? (React.createElement(AspectRatio, { ratio: aspectRatio }, children)) : (children)));
11562
+ };
11563
+
11544
11564
  Object.defineProperty(exports, "Box", {
11545
11565
  enumerable: true,
11546
11566
  get: function () { return react$1.Box; }
@@ -11631,6 +11651,7 @@ exports.ChfCurrencyIcon = ChfCurrencyIcon;
11631
11651
  exports.Chip = Chip;
11632
11652
  exports.CloseIcon = CloseIcon;
11633
11653
  exports.CollapseIcon = CollapseIcon;
11654
+ exports.ColorPicker = ColorPicker;
11634
11655
  exports.CompareIcon = CompareIcon;
11635
11656
  exports.ConsumptionIcon = ConsumptionIcon;
11636
11657
  exports.CopyIcon = CopyIcon;