vviinn-widgets 2.34.0 → 2.36.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (132) hide show
  1. package/dist/cjs/constants-7684cbfc.js +5 -0
  2. package/dist/cjs/{customized-slots-0a8d663c.js → customized-slots-e6b1235d.js} +2 -11
  3. package/dist/cjs/index-8eb9f2c2.js +43 -0
  4. package/dist/cjs/loader.cjs.js +1 -1
  5. package/dist/cjs/{package-bec51a19.js → package-5713ea1d.js} +1 -1
  6. package/dist/cjs/{search-filters_20.cjs.entry.js → search-filters_15.cjs.entry.js} +66 -140
  7. package/dist/cjs/vviinn-button.cjs.entry.js +1 -1
  8. package/dist/cjs/vviinn-carousel_4.cjs.entry.js +3 -3
  9. package/dist/cjs/vviinn-error.cjs.entry.js +1 -1
  10. package/dist/cjs/vviinn-preloader.cjs.entry.js +1 -1
  11. package/dist/cjs/vviinn-recommendations-sidebar.cjs.entry.js +1 -1
  12. package/dist/cjs/vviinn-vpr-button.cjs.entry.js +2 -2
  13. package/dist/cjs/vviinn-vps-button.cjs.entry.js +6 -4
  14. package/dist/cjs/vviinn-vps-widget.cjs.entry.js +106 -53
  15. package/dist/cjs/vviinn-widgets.cjs.js +1 -1
  16. package/dist/collection/assets/constants.js +1 -0
  17. package/dist/collection/collection-manifest.json +1 -6
  18. package/dist/collection/components/customized-slots.js +2 -11
  19. package/dist/collection/components/vviinn-error/vviinn-empty-results/vviinn-empty-results.js +25 -8
  20. package/dist/collection/components/vviinn-error/vviinn-error.css +2 -1
  21. package/dist/collection/components/vviinn-error/vviinn-server-error/vviinn-server-error.js +3 -11
  22. package/dist/collection/components/vviinn-error/vviinn-wrong-format/vviinn-wrong-format.js +3 -11
  23. package/dist/collection/components/vviinn-example-image/vviinn-example-image.css +45 -0
  24. package/dist/collection/components/{vviinn-example-images/vviinn-example-image → vviinn-example-image}/vviinn-example-image.js +88 -19
  25. package/dist/collection/components/vviinn-icons/index.js +5 -3
  26. package/dist/collection/components/vviinn-image-selector/vviinn-image-selector.css +0 -8
  27. package/dist/collection/components/vviinn-image-selector/vviinn-image-selector.js +44 -9
  28. package/dist/collection/components/vviinn-image-view/vviinn-image-view.css +1 -0
  29. package/dist/collection/components/vviinn-modal/vviinn-modal.css +31 -9
  30. package/dist/collection/components/vviinn-modal/vviinn-modal.js +27 -1
  31. package/dist/collection/components/vviinn-overlayed-modal/vviinn-overlayed-modal.css +2 -2
  32. package/dist/collection/components/vviinn-overlayed-modal/vviinn-overlayed-modal.js +22 -1
  33. package/dist/collection/components/vviinn-preloader/vviinn-preloader.css +1 -1
  34. package/dist/collection/components/vviinn-privacy-badge/vviinn-privacy-badge.css +9 -12
  35. package/dist/collection/components/vviinn-privacy-badge/vviinn-privacy-badge.js +1 -1
  36. package/dist/collection/components/vviinn-teaser/vviinn-teaser.css +3 -3
  37. package/dist/collection/components/vviinn-teaser/vviinn-teaser.js +1 -1
  38. package/dist/collection/components/vviinn-vps-button/vviinn-vps-button.js +23 -7
  39. package/dist/collection/components/vviinn-vps-widget/vviinn-vps-widget.css +88 -83
  40. package/dist/collection/components/vviinn-vps-widget/vviinn-vps-widget.js +100 -17
  41. package/dist/collection/locale/resources-vps.js +32 -40
  42. package/dist/esm/constants-8bf233a9.js +3 -0
  43. package/dist/esm/{customized-slots-136b5f71.js → customized-slots-6b70a8f6.js} +2 -11
  44. package/dist/esm/index-a3dc4481.js +31 -0
  45. package/dist/esm/loader.js +1 -1
  46. package/dist/esm/{package-48870c30.js → package-eead6954.js} +1 -1
  47. package/dist/esm/{search-filters_20.entry.js → search-filters_15.entry.js} +67 -136
  48. package/dist/esm/vviinn-button.entry.js +1 -1
  49. package/dist/esm/vviinn-carousel_4.entry.js +3 -3
  50. package/dist/esm/vviinn-error.entry.js +1 -1
  51. package/dist/esm/vviinn-preloader.entry.js +1 -1
  52. package/dist/esm/vviinn-recommendations-sidebar.entry.js +1 -1
  53. package/dist/esm/vviinn-vpr-button.entry.js +2 -2
  54. package/dist/esm/vviinn-vps-button.entry.js +6 -4
  55. package/dist/esm/vviinn-vps-widget.entry.js +106 -53
  56. package/dist/esm/vviinn-widgets.js +1 -1
  57. package/dist/types/assets/constants.d.ts +1 -0
  58. package/dist/types/components/vviinn-error/vviinn-empty-results/vviinn-empty-results.d.ts +1 -0
  59. package/dist/types/components/vviinn-example-image/vviinn-example-image.d.ts +24 -0
  60. package/dist/types/components/vviinn-icons/index.d.ts +5 -3
  61. package/dist/types/components/vviinn-image-selector/vviinn-image-selector.d.ts +4 -3
  62. package/dist/types/components/vviinn-modal/vviinn-modal.d.ts +3 -0
  63. package/dist/types/components/vviinn-overlayed-modal/vviinn-overlayed-modal.d.ts +2 -0
  64. package/dist/types/components/vviinn-vps-button/vviinn-vps-button.d.ts +4 -6
  65. package/dist/types/components/vviinn-vps-widget/vviinn-vps-widget.d.ts +11 -6
  66. package/dist/types/components.d.ts +31 -92
  67. package/dist/types/error.d.ts +2 -1
  68. package/dist/types/recommendation/events.d.ts +9 -0
  69. package/dist/vviinn-widgets/{p-a8515396.entry.js → p-010b4979.entry.js} +1 -1
  70. package/dist/vviinn-widgets/{p-87cb4c54.entry.js → p-1bd2a3b8.entry.js} +1 -1
  71. package/dist/vviinn-widgets/{p-f52d84e5.entry.js → p-2eda4cc9.entry.js} +1 -1
  72. package/dist/vviinn-widgets/{p-8615ddd8.entry.js → p-42a9d0ba.entry.js} +1 -1
  73. package/dist/vviinn-widgets/p-5aef5b98.entry.js +11 -0
  74. package/dist/vviinn-widgets/p-7f7e6ec6.js +1 -0
  75. package/dist/vviinn-widgets/p-872a4ee9.entry.js +1 -0
  76. package/dist/vviinn-widgets/{p-40393244.entry.js → p-8e63a6d5.entry.js} +1 -1
  77. package/dist/vviinn-widgets/p-c7ad35cf.js +1 -0
  78. package/dist/vviinn-widgets/p-caf46c2b.js +1 -0
  79. package/dist/vviinn-widgets/p-cc013cd2.js +1 -0
  80. package/dist/vviinn-widgets/p-d665ffeb.entry.js +1 -0
  81. package/dist/vviinn-widgets/p-f0baedd7.entry.js +1 -0
  82. package/dist/vviinn-widgets/vviinn-widgets.esm.js +1 -1
  83. package/package.json +1 -1
  84. package/www/assets/constants.ts +2 -0
  85. package/www/build/{p-a8515396.entry.js → p-010b4979.entry.js} +1 -1
  86. package/www/build/{p-87cb4c54.entry.js → p-1bd2a3b8.entry.js} +1 -1
  87. package/www/build/{p-f52d84e5.entry.js → p-2eda4cc9.entry.js} +1 -1
  88. package/www/build/{p-8615ddd8.entry.js → p-42a9d0ba.entry.js} +1 -1
  89. package/www/build/p-5aef5b98.entry.js +11 -0
  90. package/www/build/p-7f7e6ec6.js +1 -0
  91. package/www/build/p-872a4ee9.entry.js +1 -0
  92. package/www/build/{p-40393244.entry.js → p-8e63a6d5.entry.js} +1 -1
  93. package/www/build/p-c7ad35cf.js +1 -0
  94. package/www/build/p-caf46c2b.js +1 -0
  95. package/www/build/p-cc013cd2.js +1 -0
  96. package/www/build/p-d665ffeb.entry.js +1 -0
  97. package/www/build/p-f0baedd7.entry.js +1 -0
  98. package/www/build/vviinn-widgets.esm.js +1 -1
  99. package/dist/cjs/index-0547e502.js +0 -40
  100. package/dist/collection/components/vviinn-error/vviinn-empty-results/vviinn-empty-results.css +0 -7
  101. package/dist/collection/components/vviinn-error/vviinn-server-error/vviinn-server-error.css +0 -3
  102. package/dist/collection/components/vviinn-error/vviinn-wrong-format/vviinn-wrong-format.css +0 -3
  103. package/dist/collection/components/vviinn-example-images/vviinn-example-image/vviinn-example-image.css +0 -37
  104. package/dist/collection/components/vviinn-example-images/vviinn-example-images.css +0 -19
  105. package/dist/collection/components/vviinn-example-images/vviinn-example-images.js +0 -134
  106. package/dist/collection/components/vviinn-onboarding/onboarding-cards/onboarding-card.css +0 -41
  107. package/dist/collection/components/vviinn-onboarding/onboarding-cards/vviinn-onboarding-card-1/vviinn-onboarding-card-1.js +0 -66
  108. package/dist/collection/components/vviinn-onboarding/onboarding-cards/vviinn-onboarding-card-2/vviinn-onboarding-card-2.js +0 -66
  109. package/dist/collection/components/vviinn-onboarding/onboarding-cards/vviinn-onboarding-card-3/vviinn-onboarding-card-3.js +0 -66
  110. package/dist/collection/components/vviinn-onboarding/vviinn-onboarding.css +0 -58
  111. package/dist/collection/components/vviinn-onboarding/vviinn-onboarding.js +0 -24
  112. package/dist/esm/index-77a778fc.js +0 -30
  113. package/dist/types/components/vviinn-example-images/vviinn-example-image/vviinn-example-image.d.ts +0 -17
  114. package/dist/types/components/vviinn-example-images/vviinn-example-images.d.ts +0 -15
  115. package/dist/types/components/vviinn-onboarding/onboarding-cards/vviinn-onboarding-card-1/vviinn-onboarding-card-1.d.ts +0 -7
  116. package/dist/types/components/vviinn-onboarding/onboarding-cards/vviinn-onboarding-card-2/vviinn-onboarding-card-2.d.ts +0 -7
  117. package/dist/types/components/vviinn-onboarding/onboarding-cards/vviinn-onboarding-card-3/vviinn-onboarding-card-3.d.ts +0 -7
  118. package/dist/types/components/vviinn-onboarding/vviinn-onboarding.d.ts +0 -5
  119. package/dist/vviinn-widgets/p-1b008776.entry.js +0 -1
  120. package/dist/vviinn-widgets/p-46ed6352.entry.js +0 -11
  121. package/dist/vviinn-widgets/p-5303d4a8.js +0 -1
  122. package/dist/vviinn-widgets/p-b58ea29c.js +0 -1
  123. package/dist/vviinn-widgets/p-c51bea44.entry.js +0 -1
  124. package/dist/vviinn-widgets/p-dc7e96d7.js +0 -1
  125. package/dist/vviinn-widgets/p-de571b44.entry.js +0 -1
  126. package/www/build/p-1b008776.entry.js +0 -1
  127. package/www/build/p-46ed6352.entry.js +0 -11
  128. package/www/build/p-5303d4a8.js +0 -1
  129. package/www/build/p-b58ea29c.js +0 -1
  130. package/www/build/p-c51bea44.entry.js +0 -1
  131. package/www/build/p-dc7e96d7.js +0 -1
  132. package/www/build/p-de571b44.entry.js +0 -1
@@ -0,0 +1,5 @@
1
+ 'use strict';
2
+
3
+ const DEFAULT_EXAMPLE_IMAGE = "https://cdn.vviinn.com/assets/merchant/default/vviinn_img_start-hero.jpg";
4
+
5
+ exports.DEFAULT_EXAMPLE_IMAGE = DEFAULT_EXAMPLE_IMAGE;
@@ -17,19 +17,10 @@ function fromString(s) {
17
17
 
18
18
  const defaultSlotsNames = [
19
19
  "vviinn-onboarding-title",
20
- "onboarding-card-1-icon",
21
- "onboarding-card-1-text",
22
- "onboarding-card-2-icon",
23
- "onboarding-card-2-text",
24
- "onboarding-card-3-icon",
25
- "onboarding-card-3-text",
26
- "vviinn-example-images-title",
27
- "vviinn-example-images-1",
28
- "vviinn-example-images-2",
29
- "vviinn-example-images-3",
30
- "vviinn-example-images-4",
31
20
  "vviinn-teaser-text",
32
21
  "vviinn-image-upload-button-text",
22
+ "vviinn-show-files-button-text",
23
+ "vviinn-camera-button-text",
33
24
  "vviinn-privacy-badge-text",
34
25
  "vviinn-image-search-modal-title",
35
26
  "vviinn-basket-button-text",
@@ -0,0 +1,43 @@
1
+ 'use strict';
2
+
3
+ const index = require('./index-5619b5ec.js');
4
+
5
+ const ArrowIcon = () => (index.h("svg", { width: "12", height: "20", fill: "none", xmlns: "http://www.w3.org/2000/svg" },
6
+ index.h("path", { d: "M0 10 10 0l1.4 1.4L2.8 10l8.6 8.6L10 20 0 10Z" })));
7
+ const CameraIcon = () => (index.h("svg", { width: "22", height: "20", fill: "none", xmlns: "http://www.w3.org/2000/svg" },
8
+ index.h("path", { "fill-rule": "evenodd", "clip-rule": "evenodd", d: "M16.567 3H19A3.01 3.01 0 0 1 22 6v7.69h-2V6c0-.55-.451-1-1.001-1h-3.502l-2.03-3H8.543L6.603 5H3.001c-.55 0-1 .45-1 1v11c0 .55.45 1 1 1h5.933v2H3.001A3.01 3.01 0 0 1 0 17V6c0-1.65 1.35-3 3.001-3h2.522l1.94-3h7.074l2.03 3Zm-5.562 3c1.28 0 2.561.48 3.542 1.46h-.01a4.992 4.992 0 0 1 .64 6.29l3.051 3.05-1.41 1.41-3.052-3.05c-.84.55-1.8.83-2.76.83-1.282 0-2.562-.48-3.543-1.46a5.002 5.002 0 0 1 0-7.07A5.026 5.026 0 0 1 11.005 6Zm-2.771 5a2.763 2.763 0 0 0 2.771 2.77A2.763 2.763 0 0 0 13.776 11a2.763 2.763 0 0 0-2.771-2.77A2.763 2.763 0 0 0 8.234 11Z", fill: "#161616" })));
9
+ const ChevronIcon = () => (index.h("svg", { width: "9", height: "16", xmlns: "http://www.w3.org/2000/svg" },
10
+ index.h("path", { d: "m9 8-7.895 8L0 14.88 6.79 8 0 1.12 1.105 0 9 8Z" })));
11
+ const VisualSearchIcon = () => (index.h("svg", { width: "20", height: "20", fill: "none", xmlns: "http://www.w3.org/2000/svg" },
12
+ index.h("path", { "fill-rule": "evenodd", "clip-rule": "evenodd", d: "M5 2C3.35 2 2 3.35 2 5v2H0V5c0-2.76 2.24-5 5-5h2v2H5Zm5 3c1.28 0 2.56.48 3.54 1.46h-.01a4.994 4.994 0 0 1 .64 6.29l3.05 3.05-1.41 1.41-3.05-3.05c-.84.55-1.8.83-2.76.83a4.98 4.98 0 0 1-3.54-1.46 5.003 5.003 0 0 1 0-7.07C7.44 5.49 8.72 5 10 5Zm-2.77 5c0 .74.29 1.44.81 1.96s1.22.81 1.96.81 1.44-.29 1.96-.81.81-1.22.81-1.96-.29-1.44-.81-1.96-1.22-.81-1.96-.81-1.44.29-1.96.81-.81 1.22-.81 1.96ZM2 15v-2H0v2c0 2.76 2.24 5 5 5h2v-2H5c-1.65 0-3-1.35-3-3ZM13 0h2c2.76 0 5 2.24 5 5v2h-2V5c0-1.65-1.35-3-3-3h-2V0Z", fill: "#161616" })));
13
+ const CrossIcon = () => (index.h("svg", { width: "16", height: "16", viewBox: "0 0 16 16", fill: "none", xmlns: "http://www.w3.org/2000/svg" },
14
+ index.h("path", { d: "M16 1.4L14.6 0L8 6.6L1.4 0L0 1.4L6.6 8L0 14.6L1.4 16L8 9.4L14.6 16L16 14.6L9.4 8L16 1.4Z", fill: "#161616" })));
15
+ const UploadActionIcon = () => (index.h("svg", { xmlns: "http://www.w3.org/2000/svg", width: "24", height: "24", viewBox: "0 0 24 24", fill: "none" },
16
+ index.h("path", { d: "M4.5 21C4.1 21 3.75 20.85 3.45 20.55C3.15 20.25 3 19.9 3 19.5V4.5C3 4.1 3.15 3.75 3.45 3.45C3.75 3.15 4.1 3 4.5 3H19.5C19.9 3 20.25 3.15 20.55 3.45C20.85 3.75 21 4.1 21 4.5V19.5C21 19.9 20.85 20.25 20.55 20.55C20.25 20.85 19.9 21 19.5 21H4.5ZM6.65 17.075H17.375C17.525 17.075 17.6333 17.0083 17.7 16.875C17.7667 16.7417 17.7583 16.6083 17.675 16.475L14.75 12.575C14.6667 12.475 14.5667 12.425 14.45 12.425C14.3333 12.425 14.2333 12.475 14.15 12.575L11.15 16.45L9.125 13.675C9.04167 13.575 8.94167 13.525 8.825 13.525C8.70833 13.525 8.60833 13.575 8.525 13.675L6.375 16.475C6.275 16.6083 6.25833 16.7417 6.325 16.875C6.39167 17.0083 6.5 17.075 6.65 17.075Z", fill: "currentColor" })));
17
+ const UpdateIcon = () => (index.h("svg", { xmlns: "http://www.w3.org/2000/svg", width: "24", height: "24", viewBox: "0 0 24 24", fill: "none" },
18
+ index.h("path", { "fill-rule": "evenodd", "clip-rule": "evenodd", d: "M23.5998 4.57C20.3898 4.19 19.8798 3.68 19.4198 0.37C19.3798 0.15 19.2198 0 19.0098 0C18.7998 0 18.6298 0.15 18.5898 0.37C18.1198 3.66 17.6298 4.13 14.4098 4.57C14.1698 4.61 14.0098 4.77 14.0098 5C14.0098 5.23 14.1698 5.39 14.4098 5.42C17.6298 5.81 18.1398 6.31 18.5898 9.62C18.6298 9.84 18.7998 10 19.0098 10C19.2198 10 19.3898 9.84 19.4198 9.62C19.8898 6.31 20.3898 5.81 23.5998 5.42C23.8398 5.38 23.9998 5.22 23.9998 5C23.9998 4.78 23.8298 4.6 23.5998 4.57Z", fill: "currentColor" }),
19
+ index.h("path", { "fill-rule": "evenodd", "clip-rule": "evenodd", d: "M19.93 13C19.43 13 19.01 13.37 18.95 13.86C18.52 17.36 15.51 20.06 11.89 20C8.24 19.94 5.15 16.92 5.01 13.27C4.92 10.79 6.13 8.58 8.01 7.27V11C8.01 11.55 8.46 12 9.01 12C9.56 12 10.01 11.55 10.01 11V5C10.01 4.45 9.56 4 9.01 4H3C2.45 4 2 4.45 2 5C2 5.55 2.45 6 3 6H6.35C4.24 7.71 2.91 10.35 3 13.3C3.15 17.98 7.06 21.87 11.74 22C16.45 22.13 20.37 18.65 20.93 14.13C21 13.53 20.53 13.01 19.93 13.01V13Z", fill: "currentColor" })));
20
+ const GalleryActionIcon = () => (index.h("svg", { xmlns: "http://www.w3.org/2000/svg", width: "25", height: "24", viewBox: "0 0 25 24", fill: "none" },
21
+ index.h("path", { d: "M5.5 21H8.175V16.325H3.5V19C3.5 19.55 3.69583 20.0208 4.0875 20.4125C4.47917 20.8042 4.95 21 5.5 21ZM10.175 21H14.825V16.325H10.175V21ZM16.825 21H19.5C20.05 21 20.5208 20.8042 20.9125 20.4125C21.3042 20.0208 21.5 19.55 21.5 19V16.325H16.825V21ZM3.5 14.325H8.175V9.675H3.5V14.325ZM10.175 14.325H14.825V9.675H10.175V14.325ZM16.825 14.325H21.5V9.675H16.825V14.325ZM3.5 7.675H8.175V3H5.5C4.95 3 4.47917 3.19583 4.0875 3.5875C3.69583 3.97917 3.5 4.45 3.5 5V7.675ZM10.175 7.675H14.825V3H10.175V7.675ZM16.825 7.675H21.5V5C21.5 4.45 21.3042 3.97917 20.9125 3.5875C20.5208 3.19583 20.05 3 19.5 3H16.825V7.675Z", fill: "currentColor" })));
22
+ const CameraActionIcon = () => (index.h("svg", { xmlns: "http://www.w3.org/2000/svg", width: "24", height: "24", viewBox: "0 0 24 24", fill: "none" },
23
+ index.h("path", { d: "M12 17.5C13.25 17.5 14.3125 17.0625 15.1875 16.1875C16.0625 15.3125 16.5 14.25 16.5 13C16.5 11.75 16.0625 10.6875 15.1875 9.8125C14.3125 8.9375 13.25 8.5 12 8.5C10.75 8.5 9.6875 8.9375 8.8125 9.8125C7.9375 10.6875 7.5 11.75 7.5 13C7.5 14.25 7.9375 15.3125 8.8125 16.1875C9.6875 17.0625 10.75 17.5 12 17.5ZM12 15.5C11.3 15.5 10.7083 15.2583 10.225 14.775C9.74167 14.2917 9.5 13.7 9.5 13C9.5 12.3 9.74167 11.7083 10.225 11.225C10.7083 10.7417 11.3 10.5 12 10.5C12.7 10.5 13.2917 10.7417 13.775 11.225C14.2583 11.7083 14.5 12.3 14.5 13C14.5 13.7 14.2583 14.2917 13.775 14.775C13.2917 15.2583 12.7 15.5 12 15.5ZM4 21C3.45 21 2.97917 20.8042 2.5875 20.4125C2.19583 20.0208 2 19.55 2 19V7C2 6.45 2.19583 5.97917 2.5875 5.5875C2.97917 5.19583 3.45 5 4 5H7.15L8.4 3.65C8.58333 3.45 8.80417 3.29167 9.0625 3.175C9.32083 3.05833 9.59167 3 9.875 3H14.125C14.4083 3 14.6792 3.05833 14.9375 3.175C15.1958 3.29167 15.4167 3.45 15.6 3.65L16.85 5H20C20.55 5 21.0208 5.19583 21.4125 5.5875C21.8042 5.97917 22 6.45 22 7V19C22 19.55 21.8042 20.0208 21.4125 20.4125C21.0208 20.8042 20.55 21 20 21H4Z", fill: "currentColor" })));
24
+ const RoundCameraIcon = () => (index.h("svg", { width: "72", height: "72", viewBox: "0 0 72 72", fill: "none", xmlns: "http://www.w3.org/2000/svg" },
25
+ index.h("path", { "fill-rule": "evenodd", "clip-rule": "evenodd", d: "M36 72C55.8823 72 72 55.8823 72 36C72 16.1177 55.8823 0 36 0C16.1177 0 0 16.1177 0 36C0 55.8823 16.1177 72 36 72ZM51.8333 25.4167C51.1667 24.75 50.1667 24.25 49.1667 24.25H44.1667L42 20.1667C41.8333 19.8333 41.3333 19.5 41 19.3333C40.5 19.1667 40 19 39.5 19H32.5C32 19 31.5 19.1667 31 19.3333C30.6667 19.5 30.1667 19.8333 29.8333 20.1667L27.6667 24.25H22.6667C21.6667 24.25 20.8333 24.5833 20.1667 25.4167C19.5 26.25 19 27.0833 19 28.0833V46C19 47 19.3333 48 20.1667 48.6667C21 49.3333 21.8333 49.8333 22.8333 49.8333H46.8333L39.6667 42.6667C38.5 43.3333 37.3333 43.6667 36 43.6667C33.8333 43.6667 32.1667 43 30.6667 41.5C29.1667 40 28.5 38.1667 28.5 36.1667C28.5 34.1667 29.1667 32.3333 30.6667 30.8333C32.1667 29.3333 34 28.6667 36 28.6667C38 28.6667 39.8333 29.3333 41.3333 30.8333C42.8333 32.3333 43.5 34.1667 43.5 36.1667C43.5 37.5 43.1667 38.6667 42.5 39.8333L51.5 48.8333L51.6667 48.6667C52.3333 48 52.8333 47 52.8333 46V28.0833C52.8333 26.8333 52.6667 26.0833 51.8333 25.4167ZM38.8333 33.1667C38 32.3333 37.1667 32 36 32C34.8333 32 34 32.3333 33.1667 33.1667C32.3333 34 32 34.8333 32 36C32 37.1667 32.3333 38 33.1667 38.8333C34 39.6667 34.8333 40 36 40C37.1667 40 38 39.6667 38.8333 38.8333C39.6667 38 40 37.1667 40 36C40 34.8333 39.6667 34 38.8333 33.1667Z", fill: "white" }),
26
+ index.h("g", { filter: "url(#filter0_b_5_4702)" },
27
+ index.h("path", { d: "M49.1667 24.25C50.1667 24.25 51.1667 24.75 51.8333 25.4167C52.6667 26.0833 52.8333 26.8333 52.8333 28.0833V46C52.8333 47 52.3333 48 51.6667 48.6667L51.5 48.8333L42.5 39.8333C43.1667 38.6667 43.5 37.5 43.5 36.1667C43.5 34.1667 42.8333 32.3333 41.3333 30.8333C39.8333 29.3333 38 28.6667 36 28.6667C34 28.6667 32.1667 29.3333 30.6667 30.8333C29.1667 32.3333 28.5 34.1667 28.5 36.1667C28.5 38.1667 29.1667 40 30.6667 41.5C32.1667 43 33.8333 43.6667 36 43.6667C37.3333 43.6667 38.5 43.3333 39.6667 42.6667L46.8333 49.8333H22.8333C21.8333 49.8333 21 49.3333 20.1667 48.6667C19.3333 48 19 47 19 46V28.0833C19 27.0833 19.5 26.25 20.1667 25.4167C20.8333 24.5833 21.6667 24.25 22.6667 24.25H27.6667L29.8333 20.1667C30.1667 19.8333 30.6667 19.5 31 19.3333C31.5 19.1667 32 19 32.5 19H39.5C40 19 40.5 19.1667 41 19.3333C41.3333 19.5 41.8333 19.8333 42 20.1667L44.1667 24.25H49.1667Z", fill: "black", "fill-opacity": "0.25" }),
28
+ index.h("path", { d: "M36 32C37.1667 32 38 32.3333 38.8333 33.1667C39.6667 34 40 34.8333 40 36C40 37.1667 39.6667 38 38.8333 38.8333C38 39.6667 37.1667 40 36 40C34.8333 40 34 39.6667 33.1667 38.8333C32.3333 38 32 37.1667 32 36C32 34.8333 32.3333 34 33.1667 33.1667C34 32.3333 34.8333 32 36 32Z", fill: "black", "fill-opacity": "0.25" }))));
29
+ const WarningIcon = () => (index.h("svg", { slot: "icon", class: "icon", width: "32", height: "32", fill: "none", xmlns: "http://www.w3.org/2000/svg" },
30
+ index.h("path", { d: "M16 2a14 14 0 1 0 0 28 14 14 0 0 0 0-28Zm0 26a12 12 0 1 1 0-24 12 12 0 0 1 0 24Z", fill: "#525252" }),
31
+ index.h("path", { d: "M17 8h-2v11h2V8Zm-1 14a1.5 1.5 0 1 0 0 3 1.5 1.5 0 0 0 0-3Z", fill: "#525252" })));
32
+
33
+ exports.ArrowIcon = ArrowIcon;
34
+ exports.CameraActionIcon = CameraActionIcon;
35
+ exports.CameraIcon = CameraIcon;
36
+ exports.ChevronIcon = ChevronIcon;
37
+ exports.CrossIcon = CrossIcon;
38
+ exports.GalleryActionIcon = GalleryActionIcon;
39
+ exports.RoundCameraIcon = RoundCameraIcon;
40
+ exports.UpdateIcon = UpdateIcon;
41
+ exports.UploadActionIcon = UploadActionIcon;
42
+ exports.VisualSearchIcon = VisualSearchIcon;
43
+ exports.WarningIcon = WarningIcon;
@@ -14,7 +14,7 @@ const patchEsm = () => {
14
14
  const defineCustomElements = (win, options) => {
15
15
  if (typeof window === 'undefined') return Promise.resolve();
16
16
  return patchEsm().then(() => {
17
- return index.bootstrapLazy([["vviinn-button.cjs",[[1,"vviinn-button",{"addStyle":[4,"add-style"]}]]],["vviinn-error.cjs",[[1,"vviinn-error"]]],["vviinn-preloader.cjs",[[1,"vviinn-preloader"]]],["vviinn-carousel_4.cjs",[[1,"vviinn-vpr-widget",{"blockTitle":[1,"block-title"],"imageRatio":[2,"image-ratio"],"imageWidth":[2,"image-width"],"productId":[1,"product-id"],"token":[1],"currencySign":[1,"currency-sign"],"pricePrefix":[1,"price-prefix"],"mode":[1],"campaignType":[1,"campaign-type"],"locale":[1],"campaigns":[1],"color":[1],"gridArrowsDynamic":[4,"grid-arrows-dynamic"],"noResultText":[1,"no-result-text"],"noResultShow":[4,"no-result-show"],"showScroll":[4,"show-scroll"],"cssUrl":[1,"css-url"],"excluded":[1],"productDetailNewTab":[4,"product-detail-new-tab"],"addToBasketShow":[4,"add-to-basket-show"],"updateButtonLocation":[1,"update-button-location"],"apiPath":[1,"api-path"],"useCarousel":[4,"use-carousel"],"showingInButton":[4,"showing-in-button"],"buttonElementId":[1,"button-element-id"],"closed":[4],"opened":[4],"recommendations":[32],"trackingDeactivated":[32],"hasErrorOnLoad":[32],"updatingAllCards":[32]},[[0,"vviinnProductLoad","trackProductLoad"],[0,"vviinnProductView","trackProductView"],[0,"vviinnProductClick","trackProductClick"],[0,"vviinnAuxClick","trackAuxClick"],[0,"vviinnAddToBasket","trackAddToBasket"],[0,"vviinnUpdatingAllCardsFinished","updatingAllCardsFinishedListener"]]],[0,"vviinn-carousel",{"mode":[1],"imageWidth":[2,"image-width"],"showScroll":[4,"show-scroll"],"campaignTypeId":[1,"campaign-type-id"],"widgetElementId":[1,"widget-element-id"],"gridArrowsDynamic":[4,"grid-arrows-dynamic"],"recommendations":[16],"widgetVersion":[1,"widget-version"],"addToBasketShow":[4,"add-to-basket-show"],"updatingAllCards":[4,"updating-all-cards"],"updateButtonLocation":[1,"update-button-location"],"moveDirection":[32],"contentGroups":[32],"activeContentGroup":[32],"isRTL":[32],"crossSellingRecommendations":[32]},[[0,"vviinnCrossSellingClick","crossSellingClickListener"]]],[1,"vviinn-product-card",{"brand":[1],"currency":[1],"deeplink":[1],"image":[1],"imageRatio":[2,"image-ratio"],"imageWidth":[2,"image-width"],"locale":[1],"price":[2],"pricePrefix":[1,"price-prefix"],"productId":[1,"product-id"],"productTitle":[1,"product-title"],"productType":[1,"product-type"],"salePrice":[2,"sale-price"],"responsive":[4],"dimmedBackground":[4,"dimmed-background"],"mode":[1],"addToBasketShow":[4,"add-to-basket-show"],"updateButtonLocation":[1,"update-button-location"],"campaignTypeId":[1,"campaign-type-id"],"widgetElementId":[1,"widget-element-id"],"buttonElementId":[1,"button-element-id"],"widgetVersion":[1,"widget-version"],"index":[2],"updatingAllCards":[4,"updating-all-cards"],"defaultAnimationInterval":[2,"default-animation-interval"],"imageLoaded":[32],"isTransitioning":[32]},[[0,"vviinnCrossSellingClick","crossSellingClickListener"]]],[1,"vviinn-skeleton",{"height":[2],"halfWidth":[4,"half-width"]}]]],["search-filters_20.cjs",[[1,"vviinn-onboarding"],[1,"vviinn-example-images",{"basicEventData":[16],"exampleImagesTitle":[1,"example-images-title"]}],[1,"vviinn-image-view",{"basicEventData":[16],"cropper":[32]},[[0,"vviinnSelectObject","selectDetectedObject"]]],[1,"vviinn-overlayed-modal",{"active":[4],"resetState":[16],"buttonElementId":[1,"button-element-id"],"hideBackButton":[4,"hide-back-button"],"widgetVersion":[1,"widget-version"]}],[1,"vviinn-empty-results"],[1,"vviinn-image-selector",{"basicEventData":[16],"startUpload":[4,"start-upload"],"resetVpsButton":[16]}],[1,"vviinn-server-error",{"handler":[16]}],[1,"vviinn-wrong-format",{"handler":[16]}],[1,"search-filters",{"filter":[16],"basicEventData":[16],"selectedFilter":[32],"hideFilters":[32]}],[1,"vviinn-privacy-badge",{"privacyBadgeText":[1,"privacy-badge-text"]}],[1,"vviinn-teaser"],[1,"vviinn-example-image",{"src":[1],"width":[2],"height":[2],"basicEventData":[16],"selected":[32]}],[1,"vviinn-detected-object",{"detectedObject":[16],"basicEventData":[16],"position":[32]}],[1,"vviinn-modal",{"active":[1540],"resetState":[16],"buttonElementId":[1,"button-element-id"],"widgetVersion":[1,"widget-version"],"hideBackButton":[4,"hide-back-button"],"slider":[32]}],[1,"vviinn-onboarding-card-1",{"cardTitle":[1,"card-title"],"cardText":[1,"card-text"]}],[1,"vviinn-onboarding-card-2",{"cardTitle":[1,"card-title"],"cardText":[1,"card-text"]}],[1,"vviinn-onboarding-card-3",{"cardTitle":[1,"card-title"],"cardText":[1,"card-text"]}],[1,"vviinn-overlay"],[1,"vviinn-slide"],[1,"vviinn-slider",{"showBullets":[4,"show-bullets"],"position":[514],"showArrows":[4,"show-arrows"],"elementsCount":[32],"internalPosition":[32],"swipeStartPosition":[32],"isRTL":[32]}]]],["vviinn-vps-widget.cjs",[[1,"vviinn-vps-widget",{"token":[1],"active":[1028],"currencySign":[1,"currency-sign"],"locale":[1],"campaignId":[1,"campaign-id"],"excluded":[1],"productDetailNewTab":[4,"product-detail-new-tab"],"imageResolutionWidth":[2,"image-resolution-width"],"apiPath":[1,"api-path"],"showingInButton":[4,"showing-in-button"],"buttonElementId":[1,"button-element-id"],"buttonPressed":[4,"button-pressed"],"mode":[1],"resetVpsButton":[16],"slidePosition":[32],"width":[32],"wrongImageFormat":[32],"trackingDeactivated":[32]},[[0,"vviinnProductLoad","trackProductLoad"],[0,"vviinnProductView","trackProductView"],[0,"vviinnProductClick","trackProductClick"],[0,"vviinnAuxClick","trackAuxClick"],[0,"vviinnImageCrop","trachSearchAreaChanges"],[0,"vviinnSelectObject","trackDetectedObject"],[0,"vviinnSelectFilter","trackFilter"],[0,"secondaryActionClicked","trackSecondaryAction"]]]]],["vviinn-vps-button.cjs",[[1,"vviinn-vps-button",{"token":[1],"currencySign":[1,"currency-sign"],"locale":[1],"campaignId":[1,"campaign-id"],"addStyle":[4,"add-style"],"mode":[1],"excluded":[1],"productDetailNewTab":[4,"product-detail-new-tab"],"imageResolutionWidth":[2,"image-resolution-width"],"apiPath":[1,"api-path"],"buttonPressed":[32]},[[0,"vviinnWidgetClose","handleModalClosed"]]]]],["vviinn-recommendations-sidebar.cjs",[[1,"vviinn-recommendations-sidebar",{"sidebarTitle":[1,"sidebar-title"],"token":[1],"productId":[1,"product-id"],"position":[1],"sourceImage":[1,"source-image"],"widgetScrollbar":[4,"widget-scrollbar"],"mode":[1],"campaigns":[1],"campaignType":[1,"campaign-type"],"color":[1],"locale":[1],"imageWidth":[2,"image-width"],"currencySign":[1,"currency-sign"],"noResultText":[1,"no-result-text"],"noResultShow":[4,"no-result-show"],"gridArrowsDynamic":[4,"grid-arrows-dynamic"],"excluded":[1],"productDetailNewTab":[4,"product-detail-new-tab"],"addToBasketShow":[4,"add-to-basket-show"],"buttonChildren":[16],"apiPath":[1,"api-path"],"buttonElementId":[1,"button-element-id"],"widgetVersion":[1,"widget-version"],"showingInButton":[4,"showing-in-button"],"state":[32]},[[16,"click","bodyClickListener"]]]]],["vviinn-vpr-button.cjs",[[1,"vviinn-vpr-button",{"token":[1],"productId":[1,"product-id"],"position":[1],"sourceImage":[1,"source-image"],"sidebarTitle":[1,"sidebar-title"],"modalScrollbar":[4,"modal-scrollbar"],"campaigns":[1],"campaignType":[1,"campaign-type"],"locale":[1],"color":[1],"addStyle":[4,"add-style"],"mode":[1],"imageWidth":[2,"image-width"],"currencySign":[1,"currency-sign"],"noResultText":[1,"no-result-text"],"noResultShow":[4,"no-result-show"],"gridArrowsDynamic":[4,"grid-arrows-dynamic"],"excluded":[1],"productDetailNewTab":[4,"product-detail-new-tab"],"addToBasketShow":[4,"add-to-basket-show"],"apiPath":[1,"api-path"]}]]]], options);
17
+ return index.bootstrapLazy([["vviinn-button.cjs",[[1,"vviinn-button",{"addStyle":[4,"add-style"]}]]],["vviinn-preloader.cjs",[[1,"vviinn-preloader"]]],["vviinn-error.cjs",[[1,"vviinn-error"]]],["vviinn-carousel_4.cjs",[[1,"vviinn-vpr-widget",{"blockTitle":[1,"block-title"],"imageRatio":[2,"image-ratio"],"imageWidth":[2,"image-width"],"productId":[1,"product-id"],"token":[1],"currencySign":[1,"currency-sign"],"pricePrefix":[1,"price-prefix"],"mode":[1],"campaignType":[1,"campaign-type"],"locale":[1],"campaigns":[1],"color":[1],"gridArrowsDynamic":[4,"grid-arrows-dynamic"],"noResultText":[1,"no-result-text"],"noResultShow":[4,"no-result-show"],"showScroll":[4,"show-scroll"],"cssUrl":[1,"css-url"],"excluded":[1],"productDetailNewTab":[4,"product-detail-new-tab"],"addToBasketShow":[4,"add-to-basket-show"],"updateButtonLocation":[1,"update-button-location"],"apiPath":[1,"api-path"],"useCarousel":[4,"use-carousel"],"showingInButton":[4,"showing-in-button"],"buttonElementId":[1,"button-element-id"],"closed":[4],"opened":[4],"recommendations":[32],"trackingDeactivated":[32],"hasErrorOnLoad":[32],"updatingAllCards":[32]},[[0,"vviinnProductLoad","trackProductLoad"],[0,"vviinnProductView","trackProductView"],[0,"vviinnProductClick","trackProductClick"],[0,"vviinnAuxClick","trackAuxClick"],[0,"vviinnAddToBasket","trackAddToBasket"],[0,"vviinnUpdatingAllCardsFinished","updatingAllCardsFinishedListener"]]],[0,"vviinn-carousel",{"mode":[1],"imageWidth":[2,"image-width"],"showScroll":[4,"show-scroll"],"campaignTypeId":[1,"campaign-type-id"],"widgetElementId":[1,"widget-element-id"],"gridArrowsDynamic":[4,"grid-arrows-dynamic"],"recommendations":[16],"widgetVersion":[1,"widget-version"],"addToBasketShow":[4,"add-to-basket-show"],"updatingAllCards":[4,"updating-all-cards"],"updateButtonLocation":[1,"update-button-location"],"moveDirection":[32],"contentGroups":[32],"activeContentGroup":[32],"isRTL":[32],"crossSellingRecommendations":[32]},[[0,"vviinnCrossSellingClick","crossSellingClickListener"]]],[1,"vviinn-product-card",{"brand":[1],"currency":[1],"deeplink":[1],"image":[1],"imageRatio":[2,"image-ratio"],"imageWidth":[2,"image-width"],"locale":[1],"price":[2],"pricePrefix":[1,"price-prefix"],"productId":[1,"product-id"],"productTitle":[1,"product-title"],"productType":[1,"product-type"],"salePrice":[2,"sale-price"],"responsive":[4],"dimmedBackground":[4,"dimmed-background"],"mode":[1],"addToBasketShow":[4,"add-to-basket-show"],"updateButtonLocation":[1,"update-button-location"],"campaignTypeId":[1,"campaign-type-id"],"widgetElementId":[1,"widget-element-id"],"buttonElementId":[1,"button-element-id"],"widgetVersion":[1,"widget-version"],"index":[2],"updatingAllCards":[4,"updating-all-cards"],"defaultAnimationInterval":[2,"default-animation-interval"],"imageLoaded":[32],"isTransitioning":[32]},[[0,"vviinnCrossSellingClick","crossSellingClickListener"]]],[1,"vviinn-skeleton",{"height":[2],"halfWidth":[4,"half-width"]}]]],["search-filters_15.cjs",[[1,"vviinn-image-view",{"basicEventData":[16],"cropper":[32]},[[0,"vviinnSelectObject","selectDetectedObject"]]],[1,"vviinn-overlayed-modal",{"active":[4],"resetState":[16],"buttonElementId":[1,"button-element-id"],"hideBackButton":[4,"hide-back-button"],"widgetVersion":[1,"widget-version"],"isFirstScreen":[4,"is-first-screen"]}],[1,"vviinn-empty-results",{"handler":[16]}],[1,"vviinn-image-selector",{"basicEventData":[16],"startUpload":[4,"start-upload"],"loading":[4],"accept":[1],"resetVpsButton":[16]}],[1,"vviinn-server-error",{"handler":[16]}],[1,"vviinn-wrong-format",{"handler":[16]}],[1,"search-filters",{"filter":[16],"basicEventData":[16],"selectedFilter":[32],"hideFilters":[32]}],[1,"vviinn-example-image",{"exampleImageSource":[1,"example-image-source"],"width":[2],"height":[2],"basicEventData":[16],"srcObject":[16],"selected":[32],"videoInitialized":[32]}],[1,"vviinn-privacy-badge",{"privacyBadgeText":[1,"privacy-badge-text"]}],[1,"vviinn-slide"],[1,"vviinn-slider",{"showBullets":[4,"show-bullets"],"position":[514],"showArrows":[4,"show-arrows"],"elementsCount":[32],"internalPosition":[32],"swipeStartPosition":[32],"isRTL":[32]}],[1,"vviinn-teaser"],[1,"vviinn-detected-object",{"detectedObject":[16],"basicEventData":[16],"position":[32]}],[1,"vviinn-modal",{"active":[1540],"resetState":[16],"buttonElementId":[1,"button-element-id"],"widgetVersion":[1,"widget-version"],"hideBackButton":[4,"hide-back-button"],"isFirstScreen":[4,"is-first-screen"],"slider":[32]}],[1,"vviinn-overlay"]]],["vviinn-vps-widget.cjs",[[1,"vviinn-vps-widget",{"token":[1],"active":[1028],"currencySign":[1,"currency-sign"],"locale":[1],"campaignId":[1,"campaign-id"],"excluded":[1],"productDetailNewTab":[4,"product-detail-new-tab"],"imageResolutionWidth":[2,"image-resolution-width"],"exampleImageSource":[1,"example-image-source"],"apiPath":[1,"api-path"],"showingInButton":[4,"showing-in-button"],"buttonElementId":[1,"button-element-id"],"buttonPressed":[4,"button-pressed"],"mode":[1],"resetVpsButton":[16],"slidePosition":[32],"width":[32],"wrongImageFormat":[32],"trackingDeactivated":[32],"stream":[32],"cameraEnabled":[32]},[[0,"vviinnCameraEnabled","trackCameraEnabled"],[0,"vviinnProductLoad","trackProductLoad"],[0,"vviinnProductView","trackProductView"],[0,"vviinnProductClick","trackProductClick"],[0,"vviinnAuxClick","trackAuxClick"],[0,"vviinnImageCrop","trachSearchAreaChanges"],[0,"vviinnSelectObject","trackDetectedObject"],[0,"vviinnSelectFilter","trackFilter"],[0,"secondaryActionClicked","trackSecondaryAction"]]]]],["vviinn-vps-button.cjs",[[1,"vviinn-vps-button",{"token":[1],"currencySign":[1,"currency-sign"],"locale":[1],"campaignId":[1,"campaign-id"],"addStyle":[4,"add-style"],"mode":[1],"excluded":[1],"productDetailNewTab":[4,"product-detail-new-tab"],"imageResolutionWidth":[2,"image-resolution-width"],"exampleImageSource":[1,"example-image-source"],"apiPath":[1,"api-path"],"buttonPressed":[32]},[[0,"vviinnWidgetClose","handleModalClosed"]]]]],["vviinn-recommendations-sidebar.cjs",[[1,"vviinn-recommendations-sidebar",{"sidebarTitle":[1,"sidebar-title"],"token":[1],"productId":[1,"product-id"],"position":[1],"sourceImage":[1,"source-image"],"widgetScrollbar":[4,"widget-scrollbar"],"mode":[1],"campaigns":[1],"campaignType":[1,"campaign-type"],"color":[1],"locale":[1],"imageWidth":[2,"image-width"],"currencySign":[1,"currency-sign"],"noResultText":[1,"no-result-text"],"noResultShow":[4,"no-result-show"],"gridArrowsDynamic":[4,"grid-arrows-dynamic"],"excluded":[1],"productDetailNewTab":[4,"product-detail-new-tab"],"addToBasketShow":[4,"add-to-basket-show"],"buttonChildren":[16],"apiPath":[1,"api-path"],"buttonElementId":[1,"button-element-id"],"widgetVersion":[1,"widget-version"],"showingInButton":[4,"showing-in-button"],"state":[32]},[[16,"click","bodyClickListener"]]]]],["vviinn-vpr-button.cjs",[[1,"vviinn-vpr-button",{"token":[1],"productId":[1,"product-id"],"position":[1],"sourceImage":[1,"source-image"],"sidebarTitle":[1,"sidebar-title"],"modalScrollbar":[4,"modal-scrollbar"],"campaigns":[1],"campaignType":[1,"campaign-type"],"locale":[1],"color":[1],"addStyle":[4,"add-style"],"mode":[1],"imageWidth":[2,"image-width"],"currencySign":[1,"currency-sign"],"noResultText":[1,"no-result-text"],"noResultShow":[4,"no-result-show"],"gridArrowsDynamic":[4,"grid-arrows-dynamic"],"excluded":[1],"productDetailNewTab":[4,"product-detail-new-tab"],"addToBasketShow":[4,"add-to-basket-show"],"apiPath":[1,"api-path"]}]]]], options);
18
18
  });
19
19
  };
20
20
 
@@ -1,5 +1,5 @@
1
1
  'use strict';
2
2
 
3
- const version = "2.34.0";
3
+ const version = "2.36.0";
4
4
 
5
5
  exports.version = version;
@@ -5,8 +5,8 @@ Object.defineProperty(exports, '__esModule', { value: true });
5
5
  const index = require('./index-5619b5ec.js');
6
6
  const imageSearch_store = require('./imageSearch.store-dc4e98b3.js');
7
7
  const i18next = require('./i18next-74ff3413.js');
8
- const customizedSlots = require('./customized-slots-0a8d663c.js');
9
- const index$1 = require('./index-0547e502.js');
8
+ const index$1 = require('./index-8eb9f2c2.js');
9
+ const customizedSlots = require('./customized-slots-e6b1235d.js');
10
10
 
11
11
  // -------------------------------------------------------------------------------------
12
12
  // -------------------------------------------------------------------------------------
@@ -188,19 +188,17 @@ const VviinnDetectedObject = class {
188
188
  };
189
189
  VviinnDetectedObject.style = vviinnDetectedObjectCss;
190
190
 
191
- const vviinnEmptyResultsCss = ":host{display:grid}vviinn-error{justify-items:center}";
192
-
193
191
  const VviinnEmptyResults = class {
194
192
  constructor(hostRef) {
195
193
  index.registerInstance(this, hostRef);
194
+ this.handler = undefined;
196
195
  }
197
196
  render() {
198
- return (index.h(index.Host, null, index.h("vviinn-error", null, index.h("svg", { slot: "icon", class: "icon", width: "32", height: "32", fill: "none", xmlns: "http://www.w3.org/2000/svg" }, index.h("path", { d: "M16 2a14 14 0 1 0 0 28 14 14 0 0 0 0-28Zm0 26a12 12 0 1 1 0-24 12 12 0 0 1 0 24Z", fill: "#525252" }), index.h("path", { d: "M17 8h-2v11h2V8Zm-1 14a1.5 1.5 0 1 0 0 3 1.5 1.5 0 0 0 0-3Z", fill: "#525252" })), index.h("h4", { slot: "title" }, i18next.instance.t("emptyResultsBlock.title")), index.h("span", { slot: "text" }, i18next.instance.t("emptyResultsBlock.text")))));
197
+ return (index.h(index.Host, null, index.h("vviinn-error", null, index.h(index$1.WarningIcon, null), index.h("h4", { slot: "title" }, i18next.instance.t("emptyResultsBlock.title")), index.h("button", { slot: "action", onClick: this.handler }, i18next.instance.t("emptyResultsBlock.button")))));
199
198
  }
200
199
  };
201
- VviinnEmptyResults.style = vviinnEmptyResultsCss;
202
200
 
203
- const vviinnExampleImageCss = ":host{display:block;margin-bottom:8px;position:relative}:host(:focus){border:2px solid var(--color-primary)}img{width:100%;height:auto;cursor:pointer}.image-preloader{background:rgba(0, 0, 0, 0.25);border-radius:4px;bottom:12px;display:none;padding:4px 6px;position:absolute;right:12px;z-index:4}vviinn-preloader{--preloader-size:12px}@media (max-width: 640px){.image-preloader{display:block}}";
201
+ const vviinnExampleImageCss = ":host{display:block;width:100%;height:100%;position:relative;overflow:hidden;flex-grow:1;transition:height 0.6s ease-in-out}img{width:100%;height:100%;min-height:100%;-o-object-fit:cover;object-fit:cover;-o-object-position:center;object-position:center}video{width:100%;min-height:100%;-o-object-fit:cover;object-fit:cover;-o-object-position:center;object-position:center}.example-button{cursor:pointer;padding:4px;border-radius:50%;border:2px solid white;position:absolute;bottom:26px;left:calc(50% - 36px);background-color:transparent;line-height:0;opacity:0.6}.hidden{display:none}";
204
202
 
205
203
  const VviinnExampleImage = class {
206
204
  constructor(hostRef) {
@@ -208,63 +206,66 @@ const VviinnExampleImage = class {
208
206
  this.vviinnImageUpload = index.createEvent(this, "vviinnImageUpload", 7);
209
207
  this.vviinnNoResult = index.createEvent(this, "vviinnNoResult", 7);
210
208
  this.vviinnImageUploadFinished = index.createEvent(this, "vviinnImageUploadFinished", 7);
211
- this.src = "";
209
+ this.vviinnCameraEnabled = index.createEvent(this, "vviinnCameraEnabled", 7);
210
+ this.exampleImageSource = undefined;
212
211
  this.width = 0;
213
212
  this.height = 0;
214
213
  this.basicEventData = undefined;
214
+ this.srcObject = undefined;
215
215
  this.selected = false;
216
+ this.videoInitialized = false;
217
+ }
218
+ componentDidLoad() {
219
+ this.videoElement = this.el.shadowRoot.getElementById("camera-preview");
216
220
  }
217
221
  async selectImage() {
218
222
  this.selected = true;
219
223
  this.vviinnImageUpload.emit(this.basicEventData);
220
- const file = await imageSearch_store.toFile(this.src);
221
- const processResult = await imageSearch_store.processSelectedFile(file);
222
- imageSearch_store._function.pipe(processResult, imageSearch_store.Either.match(() => this.vviinnNoResult.emit(this.basicEventData), () => this.vviinnImageUploadFinished.emit()));
224
+ let file;
225
+ if (this.srcObject) {
226
+ const video = this.videoElement;
227
+ const canvas = document.createElement("canvas");
228
+ this.videoElement.pause();
229
+ canvas.width = video.videoWidth;
230
+ canvas.height = video.videoHeight;
231
+ const ctx = canvas.getContext("2d");
232
+ ctx.drawImage(video, 0, 0, canvas.width, canvas.height);
233
+ const dataURI = canvas.toDataURL("image/jpeg");
234
+ file = await imageSearch_store.toFile(dataURI);
235
+ }
236
+ else {
237
+ file = await imageSearch_store.toFile(this.exampleImageSource);
238
+ }
239
+ imageSearch_store._function.pipe(await imageSearch_store.processSelectedFile(file), imageSearch_store.Either.match(() => this.vviinnNoResult.emit(this.basicEventData), () => this.vviinnImageUploadFinished.emit()));
223
240
  this.selected = false;
241
+ this.videoInitialized = false;
242
+ this.vviinnCameraEnabled.emit(false);
224
243
  }
225
244
  handleKeyPress({ key }) {
226
245
  if (key !== "Enter" && key !== " ")
227
246
  return;
228
247
  this.selectImage();
229
248
  }
230
- showPreloader() {
231
- return ((imageSearch_store.imageSearchState.objectDetectionInProgress ||
232
- imageSearch_store.imageSearchState.loading) &&
233
- this.selected);
234
- }
235
- render() {
236
- return (index.h(index.Host, { onClick: () => this.selectImage(), onKeyUp: (ev) => this.handleKeyPress(ev) }, this.showPreloader() ? (index.h("div", { class: "image-preloader" }, index.h("vviinn-preloader", null))) : null, index.h("img", { src: this.src, width: this.width, height: this.height, tabindex: 1 })));
237
- }
238
- };
239
- VviinnExampleImage.style = vviinnExampleImageCss;
240
-
241
- const vviinnExampleImagesCss = "h3{font-size:22px;font-weight:600;line-height:32px;margin:0;margin-bottom:16px;text-align:center}.images{display:block;-moz-column-count:2;column-count:2;-moz-column-gap:16px;column-gap:16px}";
242
-
243
- const VviinnExampleImages = class {
244
- constructor(hostRef) {
245
- index.registerInstance(this, hostRef);
246
- this.vviinnImageUpload = index.createEvent(this, "vviinnImageUpload", 7);
247
- this.vviinnNoResult = index.createEvent(this, "vviinnNoResult", 7);
248
- this.vviinnImageUploadFinished = index.createEvent(this, "vviinnImageUploadFinished", 7);
249
- this.basicEventData = undefined;
250
- this.exampleImagesTitle = undefined;
251
- }
252
- componentWillLoad() {
253
- customizedSlots.slotChangeListener(this, this.el);
254
- }
255
- delegateFocus() {
256
- const firstSlot = this.imagesBlock.childNodes[0];
257
- const firstExampleImage = firstSlot.childNodes[0];
258
- firstExampleImage.focus();
249
+ handleSrcObjectChange() {
250
+ if (!this.srcObject)
251
+ return;
252
+ this.videoElement.srcObject = this.srcObject;
253
+ this.videoElement.onloadedmetadata = () => {
254
+ this.vviinnCameraEnabled.emit(true);
255
+ this.videoInitialized = true;
256
+ };
259
257
  }
260
258
  render() {
261
- return (index.h(index.Host, { onFocus: () => this.delegateFocus() }, index.h("slot", { name: "vviinn-example-images-title" }, index.h("h3", null, this.exampleImagesTitle)), index.h("div", { class: "images", ref: (el) => (this.imagesBlock = el) }, index.h("slot", { name: "vviinn-example-images-1" }, index.h("vviinn-example-image", { width: 480, height: 640, src: "https://cdn.vviinn.com/0/fit/480/0/ce/0/Z3M6Ly9haWFhcy1pbWdwcm94eS9leGFtcGxlcy9pbWctaW5zcGlyYXRpb24tMDEtTC5qcGc=", basicEventData: this.basicEventData })), index.h("slot", { name: "vviinn-example-images-2" }, index.h("vviinn-example-image", { width: 280, height: 480, src: "https://cdn.vviinn.com/0/fit/480/0/ce/0/Z3M6Ly9haWFhcy1pbWdwcm94eS9leGFtcGxlcy9pbWctaW5zcGlyYXRpb24tMDItTS5qcGc=", basicEventData: this.basicEventData })), index.h("slot", { name: "vviinn-example-images-3" }, index.h("vviinn-example-image", { width: 280, height: 480, src: "https://cdn.vviinn.com/0/fit/480/0/ce/0/Z3M6Ly9haWFhcy1pbWdwcm94eS9leGFtcGxlcy9pbWctaW5zcGlyYXRpb24tMDMtTS5qcGc=", basicEventData: this.basicEventData })), index.h("slot", { name: "vviinn-example-images-4" }, index.h("vviinn-example-image", { width: 480, height: 640, src: "https://cdn.vviinn.com/0/fit/480/0/ce/0/Z3M6Ly9haWFhcy1pbWdwcm94eS9leGFtcGxlcy9pbWctaW5zcGlyYXRpb24tMDQtTC5qcGc=", basicEventData: this.basicEventData })))));
259
+ return (index.h(index.Host, { onKeyUp: (ev) => this.handleKeyPress(ev) }, index.h("video", { id: "camera-preview", class: { hidden: !this.videoInitialized }, autoplay: true, playsinline: true, muted: true }), index.h("img", { src: this.exampleImageSource, width: this.width, height: this.height, tabindex: 1, class: { hidden: this.videoInitialized } }), index.h("button", { class: { "example-button": true, hidden: !this.videoInitialized }, onClick: () => this.selectImage() }, index.h(index$1.RoundCameraIcon, null))));
262
260
  }
263
261
  get el() { return index.getElement(this); }
262
+ static get watchers() { return {
263
+ "srcObject": ["handleSrcObjectChange"]
264
+ }; }
264
265
  };
265
- VviinnExampleImages.style = vviinnExampleImagesCss;
266
+ VviinnExampleImage.style = vviinnExampleImageCss;
266
267
 
267
- const vviinnImageSelectorCss = ":host{display:block}:host(::hover){background:whitesmoke}.visually-hidden{clip:rect(0 0 0 0);-webkit-clip-path:inset(50%);clip-path:inset(50%);height:1px;overflow:hidden;position:absolute;white-space:nowrap;width:1px}label{cursor:pointer;display:grid;width:100%;height:100%;transition:background 0.1s ease-in-out}";
268
+ const vviinnImageSelectorCss = ".visually-hidden{clip:rect(0 0 0 0);-webkit-clip-path:inset(50%);clip-path:inset(50%);height:1px;overflow:hidden;position:absolute;white-space:nowrap;width:1px}label{cursor:pointer;display:grid;width:100%;height:100%;transition:background 0.1s ease-in-out}";
268
269
 
269
270
  const VviinnImageSelector = class {
270
271
  constructor(hostRef) {
@@ -274,18 +275,17 @@ const VviinnImageSelector = class {
274
275
  this.vviinnImageUploadFinished = index.createEvent(this, "vviinnImageUploadFinished", 7);
275
276
  this.basicEventData = undefined;
276
277
  this.startUpload = undefined;
278
+ this.loading = false;
279
+ this.accept = "image";
277
280
  this.resetVpsButton = undefined;
278
281
  }
279
282
  async handleInputChange(event) {
280
283
  this.vviinnImageUpload.emit(this.basicEventData);
281
284
  const input = event.target;
282
285
  const processingResult = await imageSearch_store.processSelectedFile(input.files[0]);
283
- imageSearch_store._function.pipe(processingResult, imageSearch_store.match$1(() => this.vviinnNoResult.emit(this.basicEventData), () => this.vviinnImageUploadFinished.emit()));
286
+ imageSearch_store._function.pipe(processingResult, imageSearch_store.match$1(({ kind }) => this.vviinnNoResult.emit(Object.assign(Object.assign({}, this.basicEventData), { reason: kind })), () => this.vviinnImageUploadFinished.emit()));
284
287
  input.value = null;
285
288
  }
286
- isLoading() {
287
- return imageSearch_store.imageSearchState.loading;
288
- }
289
289
  startUploadWatcher(upload) {
290
290
  if (upload) {
291
291
  this.fileInput.click();
@@ -293,7 +293,7 @@ const VviinnImageSelector = class {
293
293
  }
294
294
  }
295
295
  render() {
296
- return (index.h(index.Host, { exportparts: "button" }, this.isLoading() ? index.h("vviinn-preloader", null) : null, this.isLoading() ? null : (index.h("label", { htmlFor: "fileInput", part: "button" }, index.h("slot", { name: "upload-button-text" }, "Upload image"))), index.h("input", { id: "fileInput", class: "visually-hidden", type: "file", accept: "image/*", onChange: (event) => this.handleInputChange(event), ref: (el) => (this.fileInput = el) })));
296
+ return (index.h(index.Host, { exportparts: "button" }, this.loading ? (index.h("vviinn-preloader", null)) : (index.h("label", { htmlFor: "fileInput", part: "button" }, index.h("slot", { name: "upload-button-text" }, "Upload image"))), index.h("input", { id: "fileInput", class: "visually-hidden", type: "file", accept: this.accept === "image" ? "image/*" : "application/octet-stream", onChange: (event) => this.handleInputChange(event), ref: (el) => (this.fileInput = el) })));
297
297
  }
298
298
  static get watchers() { return {
299
299
  "startUpload": ["startUploadWatcher"]
@@ -3560,7 +3560,7 @@ var cropper = imageSearch_store.createCommonjsModule(function (module, exports)
3560
3560
  }));
3561
3561
  });
3562
3562
 
3563
- const vviinnImageViewCss = ":host {\n display: grid;\n position: relative;\n justify-self: center;\n direction: ltr;\n}\n\n.image-container > img {\n display: block;\n max-width: 100%;\n}\n\n.image-preloader {\n background: rgba(0, 0, 0, 0.25);\n border-radius: 4px;\n bottom: 18px;\n padding: 4px 6px;\n pointer-events: none;\n position: absolute;\n right: 18px;\n z-index: 4;\n}\nvviinn-preloader {\n --preloader-size: 12px;\n}\n\n.cropper-container {\n direction: ltr;\n font-size: 0;\n line-height: 0;\n position: relative;\n touch-action: none;\n -webkit-user-select: none;\n -moz-user-select: none;\n user-select: none;\n\n & img {\n backface-visibility: hidden;\n display: block;\n height: 100%;\n image-orientation: 0deg;\n max-height: none !important;\n max-width: none !important;\n min-height: 0 !important;\n min-width: 0 !important;\n width: 100%;\n }\n}\n\n.cropper-wrap-box,\n.cropper-canvas,\n.cropper-drag-box,\n.cropper-crop-box,\n.cropper-modal {\n bottom: 0;\n left: 0;\n position: absolute;\n right: 0;\n top: 0;\n}\n\n.cropper-wrap-box,\n.cropper-canvas {\n overflow: hidden;\n}\n\n.cropper-drag-box {\n background-color: #fff;\n opacity: 0;\n}\n\n.cropper-modal {\n background-color: #000;\n opacity: 0.4;\n}\n\n.cropper-view-box {\n display: block;\n height: 100%;\n overflow: hidden;\n width: 100%;\n}\n\n.cropper-face,\n.cropper-point {\n display: block;\n height: 100%;\n opacity: 0.1;\n position: absolute;\n width: 100%;\n}\n\n.cropper-face {\n background-color: #fff;\n left: 0;\n top: 0;\n}\n\n.cropper-point {\n height: 30px;\n width: 30px;\n opacity: 1;\n}\n\n.point-e,\n.point-s,\n.point-w,\n.point-n {\n display: none;\n}\n\n.point-ne {\n cursor: nesw-resize;\n right: -15px;\n top: -15px;\n}\n\n.point-nw {\n cursor: nwse-resize;\n left: -15px;\n top: -15px;\n}\n\n.point-sw {\n bottom: -15px;\n cursor: nesw-resize;\n left: -15px;\n}\n\n.point-se {\n bottom: -15px;\n cursor: nwse-resize;\n right: -15px;\n}\n\n.cropper-point::before {\n position: absolute;\n content: url(\"data:image/svg+xml,%3Csvg width='28' height='28' viewBox='0 0 28 28' fill='none' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath d='M26 2L26 22C26 24.2091 24.2091 26 22 26L2 26' stroke='white' stroke-width='4' stroke-linecap='square'/%3E%3C/svg%3E\");\n display: block;\n poiter-events: none;\n}\n\n.point-ne::before {\n transform: rotate(-90deg);\n left: -11px;\n top: 13px;\n}\n\n.point-nw::before {\n transform: rotate(180deg);\n left: 13px;\n top: 13px;\n}\n\n.point-sw::before {\n transform: rotate(90deg);\n left: 13px;\n top: -11px;\n}\n\n.point-se::before {\n left: -11px;\n top: -11px;\n}\n\n.cropper-invisible {\n opacity: 0;\n}\n\n.cropper-hide {\n display: block;\n height: 0;\n position: absolute;\n width: 0;\n}\n\n.cropper-hidden {\n display: none !important;\n}\n\n.cropper-move {\n cursor: move;\n}\n\n.cropper-crop {\n cursor: crosshair;\n}\n\n.cropper-disabled .cropper-drag-box,\n.cropper-disabled .cropper-face,\n.cropper-disabled .cropper-line,\n.cropper-disabled .cropper-point {\n cursor: not-allowed;\n}\n";
3563
+ const vviinnImageViewCss = ":host {\n display: grid;\n position: relative;\n justify-self: center;\n direction: ltr;\n}\n\n.image-container > img {\n display: block;\n max-width: 100%;\n}\n\n.image-preloader {\n background: rgba(0, 0, 0, 0.25);\n border-radius: 4px;\n bottom: 18px;\n padding: 4px 6px;\n pointer-events: none;\n color: white;\n position: absolute;\n right: 18px;\n z-index: 4;\n}\nvviinn-preloader {\n --preloader-size: 12px;\n}\n\n.cropper-container {\n direction: ltr;\n font-size: 0;\n line-height: 0;\n position: relative;\n touch-action: none;\n -webkit-user-select: none;\n -moz-user-select: none;\n user-select: none;\n\n & img {\n backface-visibility: hidden;\n display: block;\n height: 100%;\n image-orientation: 0deg;\n max-height: none !important;\n max-width: none !important;\n min-height: 0 !important;\n min-width: 0 !important;\n width: 100%;\n }\n}\n\n.cropper-wrap-box,\n.cropper-canvas,\n.cropper-drag-box,\n.cropper-crop-box,\n.cropper-modal {\n bottom: 0;\n left: 0;\n position: absolute;\n right: 0;\n top: 0;\n}\n\n.cropper-wrap-box,\n.cropper-canvas {\n overflow: hidden;\n}\n\n.cropper-drag-box {\n background-color: #fff;\n opacity: 0;\n}\n\n.cropper-modal {\n background-color: #000;\n opacity: 0.4;\n}\n\n.cropper-view-box {\n display: block;\n height: 100%;\n overflow: hidden;\n width: 100%;\n}\n\n.cropper-face,\n.cropper-point {\n display: block;\n height: 100%;\n opacity: 0.1;\n position: absolute;\n width: 100%;\n}\n\n.cropper-face {\n background-color: #fff;\n left: 0;\n top: 0;\n}\n\n.cropper-point {\n height: 30px;\n width: 30px;\n opacity: 1;\n}\n\n.point-e,\n.point-s,\n.point-w,\n.point-n {\n display: none;\n}\n\n.point-ne {\n cursor: nesw-resize;\n right: -15px;\n top: -15px;\n}\n\n.point-nw {\n cursor: nwse-resize;\n left: -15px;\n top: -15px;\n}\n\n.point-sw {\n bottom: -15px;\n cursor: nesw-resize;\n left: -15px;\n}\n\n.point-se {\n bottom: -15px;\n cursor: nwse-resize;\n right: -15px;\n}\n\n.cropper-point::before {\n position: absolute;\n content: url(\"data:image/svg+xml,%3Csvg width='28' height='28' viewBox='0 0 28 28' fill='none' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath d='M26 2L26 22C26 24.2091 24.2091 26 22 26L2 26' stroke='white' stroke-width='4' stroke-linecap='square'/%3E%3C/svg%3E\");\n display: block;\n poiter-events: none;\n}\n\n.point-ne::before {\n transform: rotate(-90deg);\n left: -11px;\n top: 13px;\n}\n\n.point-nw::before {\n transform: rotate(180deg);\n left: 13px;\n top: 13px;\n}\n\n.point-sw::before {\n transform: rotate(90deg);\n left: 13px;\n top: -11px;\n}\n\n.point-se::before {\n left: -11px;\n top: -11px;\n}\n\n.cropper-invisible {\n opacity: 0;\n}\n\n.cropper-hide {\n display: block;\n height: 0;\n position: absolute;\n width: 0;\n}\n\n.cropper-hidden {\n display: none !important;\n}\n\n.cropper-move {\n cursor: move;\n}\n\n.cropper-crop {\n cursor: crosshair;\n}\n\n.cropper-disabled .cropper-drag-box,\n.cropper-disabled .cropper-face,\n.cropper-disabled .cropper-line,\n.cropper-disabled .cropper-point {\n cursor: not-allowed;\n}\n";
3564
3564
 
3565
3565
  const INITIAL_CROP_AREA = 0.91;
3566
3566
  const INITIAL_CROP_AREA_OFFSET = 1 - INITIAL_CROP_AREA;
@@ -3679,7 +3679,7 @@ const VviinnImageView = class {
3679
3679
  };
3680
3680
  VviinnImageView.style = vviinnImageViewCss;
3681
3681
 
3682
- const vviinnModalCss = ":host{background:white;border-radius:4px;box-sizing:border-box;display:grid;grid-template-rows:min-content auto;max-width:960px;overflow:auto}@media (max-width: 768px){:host{animation-name:fade-in;animation-duration:0.5s;animation-fill-mode:forwards}:host(.closed){animation-name:fade-out;animation-fill-mode:none}.body{overflow-y:auto}}.head{display:flex;align-items:center;border-bottom:1px solid #f4f4f4;padding:16px}.title{display:flex;align-items:center;transform:translateX(-6px);font-weight:600;font-size:18px;line-height:24px;margin:0 auto}.title-image{border-radius:50%;border:1px solid rgb(244, 244, 244);-o-object-fit:cover;object-fit:cover;-o-object-position:center;object-position:center;margin-right:8px}button{-webkit-appearance:none;-moz-appearance:none;appearance:none;background:none;border:none;cursor:pointer;display:grid;padding:4px;color:#c6c6c6}button:hover{color:#000}@keyframes fade-in{from{transform:translateY(100%)}to{transform:translateY(0)}}@keyframes fade-out{from{transform:translateY(0)}to{transform:translateY(100%)}}";
3682
+ const vviinnModalCss = ":host{background:white;border-radius:24px;box-sizing:border-box;display:grid;grid-template-rows:min-content auto;max-width:960px;overflow:auto;position:relative}.head{position:absolute;width:100%;box-sizing:border-box;display:flex;align-items:center;z-index:1;padding:14px}@media (max-width: 768px){:host{animation-name:fade-in;animation-duration:0.5s;animation-fill-mode:forwards;border-radius:24px 24px 0 0}:host(.closed){animation-name:fade-out;animation-fill-mode:none}.head{position:sticky;z-index:1}:host(:not(.first-screen)) .head{background-color:white}.body{overflow-y:auto}:host(.first-screen) .body{transform:translateY(-64px)}:host(:not(.first-screen)) .body{padding-bottom:64px}}.title{display:flex;align-items:center;transform:translateX(-6px);font-weight:600;font-size:18px;line-height:24px;margin:0 auto}.title-image{border-radius:50%;border:1px solid rgb(244, 244, 244);-o-object-fit:cover;object-fit:cover;-o-object-position:center;object-position:center;margin-right:8px}button{-webkit-appearance:none;-moz-appearance:none;appearance:none;background:none;border:none;cursor:pointer;display:grid;padding:6px;color:#525252}button:hover{color:#000}@keyframes fade-in{from{transform:translateY(100%)}to{transform:translateY(0)}}@keyframes fade-out{from{transform:translateY(0)}to{transform:translateY(100%)}}";
3683
3683
 
3684
3684
  const VviinnModal = class {
3685
3685
  constructor(hostRef) {
@@ -3691,11 +3691,16 @@ const VviinnModal = class {
3691
3691
  this.buttonElementId = undefined;
3692
3692
  this.widgetVersion = undefined;
3693
3693
  this.hideBackButton = false;
3694
+ this.isFirstScreen = undefined;
3694
3695
  this.slider = false;
3695
3696
  }
3696
3697
  componentWillLoad() {
3697
3698
  customizedSlots.slotChangeListener(this, this.el);
3698
3699
  }
3700
+ resetTopScroll() {
3701
+ const element = this.el.shadowRoot.querySelector(".body");
3702
+ element.scroll({ top: 0 });
3703
+ }
3699
3704
  close() {
3700
3705
  this.active = false;
3701
3706
  setTimeout(() => {
@@ -3720,8 +3725,9 @@ const VviinnModal = class {
3720
3725
  }), imageSearch_store.Option.getOrElse(() => null));
3721
3726
  }
3722
3727
  render() {
3723
- return (index.h(index.Host, { exportparts: "secondary-action, title, close-button", class: { closed: !this.active }, onAnimationEnd: (ev) => this.handleAnimationEnd(ev) }, index.h("div", { class: "head" }, !this.hideBackButton && (index.h("button", { part: "secondary-action", onClick: () => {
3728
+ return (index.h(index.Host, { exportparts: "secondary-action, title, close-button", class: { closed: !this.active, "first-screen": this.isFirstScreen }, onAnimationEnd: (ev) => this.handleAnimationEnd(ev) }, index.h("div", { class: "head" }, !this.hideBackButton && (index.h("button", { part: "secondary-action", onClick: () => {
3724
3729
  this.resetState();
3730
+ this.resetTopScroll();
3725
3731
  this.secondaryActionClicked.emit();
3726
3732
  } }, index.h("svg", { width: "24", height: "24", viewBox: "0 0 24 24", fill: "none", xmlns: "http://www.w3.org/2000/svg" }, index.h("path", { d: "M20.25 12H3.75", stroke: "currentColor", "stroke-width": "2", "stroke-linecap": "round", "stroke-linejoin": "round" }), index.h("path", { d: "M10.5 5.25L3.75 12L10.5 18.75", stroke: "currentColor", "stroke-width": "2", "stroke-linecap": "round", "stroke-linejoin": "round" })))), index.h("div", { class: "title", part: "title" }, this.renderImage(), index.h("slot", { name: "vviinn-image-search-modal-title" }, i18next.instance.t("imageSearchModalTitle"))), index.h("button", { onClick: () => this.close(), class: "close-button", part: "close-button" }, index.h("svg", { width: "16", height: "16", viewBox: "0 0 16 16", fill: "none", xmlns: "http://www.w3.org/2000/svg" }, index.h("path", { d: "M16 1.4L14.6 0L8 6.6L1.4 0L0 1.4L6.6 8L0 14.6L1.4 16L8 9.4L14.6 16L16 14.6L9.4 8L16 1.4Z", fill: "currentColor" })))), index.h("div", { class: "body" }, index.h("slot", null))));
3727
3733
  }
@@ -3729,76 +3735,6 @@ const VviinnModal = class {
3729
3735
  };
3730
3736
  VviinnModal.style = vviinnModalCss;
3731
3737
 
3732
- const vviinnOnboardingCss = ":host{--color-primary-system:#0F62FE;--color-primary-hover-system:#014CDA;--color-icons-system:#2F8EDF;--spacer:8px}::host{display:block}h3{font-size:22px;font-weight:600;line-height:32px;margin:0;margin-bottom:16px;text-align:center}vviinn-slide{background:#f4f4f4;padding:24px}svg{padding:16px 0}.text{display:grid;grid-gap:8px}.text>h4{color:#161616;font-size:18px;font-weight:600;line-height:24px;margin:unset;text-align:center}.text>p{color:#525252;font-size:14px;font-style:normal;font-weight:normal;line-height:20px;margin:unset;text-align:center}.colored{fill:var(--color-icons, var(--color-icons-system))}";
3733
-
3734
- const VviinnOnboarding = class {
3735
- constructor(hostRef) {
3736
- index.registerInstance(this, hostRef);
3737
- }
3738
- componentWillLoad() {
3739
- customizedSlots.slotChangeListener(this, this.el);
3740
- }
3741
- render() {
3742
- return (index.h(index.Host, null, index.h("slot", { name: "vviinn-onboarding-title" }, index.h("h3", null, i18next.instance.t("onboardingBlock.onboardingTitleText"))), index.h("vviinn-slider", { showArrows: true }, index.h("vviinn-slide", null, index.h("vviinn-onboarding-card-1", { cardTitle: i18next.instance.t("onboardingBlock.onboardingCard1.title"), cardText: i18next.instance.t("onboardingBlock.onboardingCard1.text") })), index.h("vviinn-slide", null, index.h("vviinn-onboarding-card-2", { cardTitle: i18next.instance.t("onboardingBlock.onboardingCard2.title"), cardText: i18next.instance.t("onboardingBlock.onboardingCard2.text") })), index.h("vviinn-slide", null, index.h("vviinn-onboarding-card-3", { cardTitle: i18next.instance.t("onboardingBlock.onboardingCard3.title"), cardText: i18next.instance.t("onboardingBlock.onboardingCard3.text") })))));
3743
- }
3744
- get el() { return index.getElement(this); }
3745
- };
3746
- VviinnOnboarding.style = vviinnOnboardingCss;
3747
-
3748
- const onboardingCardCss$2 = ":host{align-items:center;background:#f4f4f4;display:grid;grid-template-rows:repeat(2, 1fr);justify-items:center;padding:24px;width:100%}h4{color:#161616;font-size:18px;font-weight:600;line-height:24px;margin:unset;text-align:center}svg{padding:16px 0}p{color:#525252;font-size:14px;font-style:normal;font-weight:normal;line-height:20px;margin:unset;text-align:center}.colored{fill:var(--color-icons, var(--color-icons-system))}.text{display:grid;grid-gap:8px}";
3749
-
3750
- const VviinnOnboardingCard1 = class {
3751
- constructor(hostRef) {
3752
- index.registerInstance(this, hostRef);
3753
- this.cardTitle = undefined;
3754
- this.cardText = undefined;
3755
- }
3756
- componentWillLoad() {
3757
- customizedSlots.slotChangeListener(this, this.el);
3758
- }
3759
- render() {
3760
- return (index.h(index.Host, null, index.h("slot", { name: "onboarding-card-1-icon" }, index.h(index$1.OnboardingCard1Icon, null)), index.h("slot", { name: "onboarding-card-1-text" }, index.h("div", { class: "text" }, index.h("h4", null, this.cardTitle), index.h("p", null, this.cardText)))));
3761
- }
3762
- get el() { return index.getElement(this); }
3763
- };
3764
- VviinnOnboardingCard1.style = onboardingCardCss$2;
3765
-
3766
- const onboardingCardCss$1 = ":host{align-items:center;background:#f4f4f4;display:grid;grid-template-rows:repeat(2, 1fr);justify-items:center;padding:24px;width:100%}h4{color:#161616;font-size:18px;font-weight:600;line-height:24px;margin:unset;text-align:center}svg{padding:16px 0}p{color:#525252;font-size:14px;font-style:normal;font-weight:normal;line-height:20px;margin:unset;text-align:center}.colored{fill:var(--color-icons, var(--color-icons-system))}.text{display:grid;grid-gap:8px}";
3767
-
3768
- const VviinnOnboardingCard2 = class {
3769
- constructor(hostRef) {
3770
- index.registerInstance(this, hostRef);
3771
- this.cardTitle = undefined;
3772
- this.cardText = undefined;
3773
- }
3774
- componentWillLoad() {
3775
- customizedSlots.slotChangeListener(this, this.el);
3776
- }
3777
- render() {
3778
- return (index.h(index.Host, null, index.h("slot", { name: "onboarding-card-2-icon" }, index.h(index$1.OnboardingCard2Icon, null)), index.h("slot", { name: "onboarding-card-2-text" }, index.h("div", { class: "text" }, index.h("h4", null, this.cardTitle), index.h("p", null, this.cardText)))));
3779
- }
3780
- get el() { return index.getElement(this); }
3781
- };
3782
- VviinnOnboardingCard2.style = onboardingCardCss$1;
3783
-
3784
- const onboardingCardCss = ":host{align-items:center;background:#f4f4f4;display:grid;grid-template-rows:repeat(2, 1fr);justify-items:center;padding:24px;width:100%}h4{color:#161616;font-size:18px;font-weight:600;line-height:24px;margin:unset;text-align:center}svg{padding:16px 0}p{color:#525252;font-size:14px;font-style:normal;font-weight:normal;line-height:20px;margin:unset;text-align:center}.colored{fill:var(--color-icons, var(--color-icons-system))}.text{display:grid;grid-gap:8px}";
3785
-
3786
- const VviinnOnboardingCard3 = class {
3787
- constructor(hostRef) {
3788
- index.registerInstance(this, hostRef);
3789
- this.cardTitle = undefined;
3790
- this.cardText = undefined;
3791
- }
3792
- componentWillLoad() {
3793
- customizedSlots.slotChangeListener(this, this.el);
3794
- }
3795
- render() {
3796
- return (index.h(index.Host, null, index.h("slot", { name: "onboarding-card-3-icon" }, index.h(index$1.OnboardingCard3Icon, null)), index.h("slot", { name: "onboarding-card-3-text" }, index.h("div", { class: "text" }, index.h("h4", null, this.cardTitle), index.h("p", null, this.cardText)))));
3797
- }
3798
- get el() { return index.getElement(this); }
3799
- };
3800
- VviinnOnboardingCard3.style = onboardingCardCss;
3801
-
3802
3738
  const vviinnOverlayCss = ":host{animation:fade-in 0.5s ease-in-out;background:rgba(0, 0, 0, 0.5);display:block;height:100vh;left:0;overflow:hidden;position:fixed;top:0;width:100vw;z-index:9999}@keyframes fade-in{from{opacity:0.1}to{opacity:1}}";
3803
3739
 
3804
3740
  const VviinnOverlay = class {
@@ -3811,7 +3747,7 @@ const VviinnOverlay = class {
3811
3747
  };
3812
3748
  VviinnOverlay.style = vviinnOverlayCss;
3813
3749
 
3814
- const vviinnOverlayedModalCss = ":host{display:none}:host(.active){display:block}vviinn-overlay{align-items:center;display:grid;justify-items:center;cursor:default}vviinn-modal{margin-left:24px;margin-right:24px}@media (max-width: 768px){vviinn-modal{border-radius:4px 4px 0 0;height:100vh;margin-top:32px;transform:translateY(100%);width:100vw;margin-left:0;margin-right:0}vviinn-overlay{align-items:end;display:grid;justify-items:center}}";
3750
+ const vviinnOverlayedModalCss = ":host{display:none}:host(.active){display:block}vviinn-overlay{align-items:center;display:grid;justify-items:center;cursor:default}vviinn-modal{margin-left:24px;margin-right:24px}@media (max-width: 768px){vviinn-modal{height:100vh;height:100svh;margin-top:64px;transform:translateY(100%);width:100vw;margin-left:0;margin-right:0}vviinn-overlay{align-items:end;display:grid;justify-items:center}}";
3815
3751
 
3816
3752
  const VviinnOverlayedModal = class {
3817
3753
  constructor(hostRef) {
@@ -3822,14 +3758,15 @@ const VviinnOverlayedModal = class {
3822
3758
  this.buttonElementId = undefined;
3823
3759
  this.hideBackButton = false;
3824
3760
  this.widgetVersion = undefined;
3761
+ this.isFirstScreen = undefined;
3825
3762
  }
3826
3763
  render() {
3827
- return (index.h(index.Host, { class: { active: this.active } }, index.h("vviinn-overlay", null, index.h("vviinn-modal", { resetState: this.resetState, active: this.active, buttonElementId: this.buttonElementId, hideBackButton: this.hideBackButton, widgetVersion: this.widgetVersion }, index.h("slot", null, "CONTENT")))));
3764
+ return (index.h(index.Host, { class: { active: this.active } }, index.h("vviinn-overlay", null, index.h("vviinn-modal", { resetState: this.resetState, active: this.active, buttonElementId: this.buttonElementId, hideBackButton: this.hideBackButton, widgetVersion: this.widgetVersion, isFirstScreen: this.isFirstScreen }, index.h("slot", null, "CONTENT")))));
3828
3765
  }
3829
3766
  };
3830
3767
  VviinnOverlayedModal.style = vviinnOverlayedModalCss;
3831
3768
 
3832
- const vviinnPrivacyBadgeCss = ":host{display:block;background:#F4F4F4;padding:17px}.content{display:grid;grid-template-columns:min-content auto;grid-gap:9px}.content p{color:#525252;font-size:12px;line-height:16px;margin:unset}";
3769
+ const vviinnPrivacyBadgeCss = ":host{color:#525252;font-size:12px;line-height:16px}:host(.visible){color:transparent}@media (max-width: 768px){:host(.visible){display:none}}";
3833
3770
 
3834
3771
  const VviinnPrivacyBadge = class {
3835
3772
  constructor(hostRef) {
@@ -3840,24 +3777,21 @@ const VviinnPrivacyBadge = class {
3840
3777
  customizedSlots.slotChangeListener(this, this.el);
3841
3778
  }
3842
3779
  render() {
3843
- return (index.h(index.Host, null, index.h("slot", null, index.h("div", { class: "content" }, index.h("svg", { xmlns: "http://www.w3.org/2000/svg", width: "16", height: "16", fill: "none" }, index.h("defs", null), index.h("path", { fill: "#525252", d: "M8.5 11V7h-2v1h1v3H6v1h4v-1H8.5zM8 4a.75.75 0 100 1.5A.75.75 0 008 4z" }), index.h("path", { fill: "#525252", d: "M8 15A7 7 0 118 1a7 7 0 010 14zM8 2a6 6 0 100 12A6 6 0 008 2z" })), index.h("slot", { name: "vviinn-privacy-badge-text" }, index.h("p", null, this.privacyBadgeText))))));
3780
+ return (index.h(index.Host, null, index.h("slot", { name: "vviinn-privacy-badge-text" }, index.h("div", null, this.privacyBadgeText))));
3844
3781
  }
3845
3782
  get el() { return index.getElement(this); }
3846
3783
  };
3847
3784
  VviinnPrivacyBadge.style = vviinnPrivacyBadgeCss;
3848
3785
 
3849
- const vviinnServerErrorCss = ":host{display:block}";
3850
-
3851
3786
  const VviinnServerError = class {
3852
3787
  constructor(hostRef) {
3853
3788
  index.registerInstance(this, hostRef);
3854
3789
  this.handler = undefined;
3855
3790
  }
3856
3791
  render() {
3857
- return (index.h(index.Host, null, index.h("vviinn-error", null, index.h("h4", { slot: "title" }, "Keine Verbindung"), index.h("span", { slot: "text" }, "Etwas hat leider nicht funktioniert. Bitte pr\u00FCfen Sie Ihre Internetverbindung und laden Sie das Bild noch einmal hoch."), index.h("button", { slot: "action", onClick: this.handler }, "Erneut versuchen"))));
3792
+ return (index.h(index.Host, null, index.h("vviinn-error", null, index.h(index$1.WarningIcon, null), index.h("h4", { slot: "title" }, i18next.instance.t("serverErrorBlock.title")), index.h("button", { slot: "action", onClick: this.handler }, i18next.instance.t("serverErrorBlock.button")))));
3858
3793
  }
3859
3794
  };
3860
- VviinnServerError.style = vviinnServerErrorCss;
3861
3795
 
3862
3796
  const vviinnSlideCss = ":host{display:grid;justify-items:center}";
3863
3797
 
@@ -3993,7 +3927,7 @@ const VviinnSlider = class {
3993
3927
  };
3994
3928
  VviinnSlider.style = vviinnSliderCss;
3995
3929
 
3996
- const vviinnTeaserCss = ":host{align-items:center;display:grid;justify-items:center;grid-gap:16px}.vviinn-teaser-text{font-size:28px;font-weight:600;line-height:40px;size:28px;text-align:center}";
3930
+ const vviinnTeaserCss = ":host{align-items:center;display:grid;justify-items:center;grid-gap:16px}.vviinn-teaser-text{font-size:22px;font-weight:600;line-height:28px;text-align:center;white-space:pre-line}";
3997
3931
 
3998
3932
  const VviinnTeaser = class {
3999
3933
  constructor(hostRef) {
@@ -4003,37 +3937,29 @@ const VviinnTeaser = class {
4003
3937
  customizedSlots.slotChangeListener(this, this.el);
4004
3938
  }
4005
3939
  render() {
4006
- return (index.h(index.Host, null, index.h("slot", null, index.h("svg", { xmlns: "http://www.w3.org/2000/svg", width: "64", height: "64", fill: "none" }, index.h("defs", null), index.h("path", { fill: "#C6C6C6", d: "M48 28a11.98 11.98 0 00-9.77 18.942L28 57.172 30.828 60l10.23-10.23A11.994 11.994 0 1048 28zm0 20a8 8 0 118-8 8.009 8.009 0 01-8 8zM34 24a6 6 0 10-6-6 6.006 6.006 0 006 6zm0-8a2 2 0 110 4 2 2 0 010-4z" }), index.h("path", { fill: "#C6C6C6", d: "M24 48H8V35.993L18 26l11.172 11.172L32 34.336 20.828 23.165a4 4 0 00-5.656 0L8 30.336V8h40v12h4V8a4.004 4.004 0 00-4-4H8a4.004 4.004 0 00-4 4v40a4.005 4.005 0 004 4h16v-4z" })), index.h("span", { class: "vviinn-teaser-text" }, index.h("slot", { name: "vviinn-teaser-text" }, i18next.instance.t("teaserText_1"), index.h("br", null), i18next.instance.t("teaserText_2"))))));
3940
+ return (index.h(index.Host, null, index.h("slot", null, index.h("span", { class: "vviinn-teaser-text" }, index.h("slot", { name: "vviinn-teaser-text" }, i18next.instance.t("teaserText"))))));
4007
3941
  }
4008
3942
  get el() { return index.getElement(this); }
4009
3943
  };
4010
3944
  VviinnTeaser.style = vviinnTeaserCss;
4011
3945
 
4012
- const vviinnWrongFormatCss = ":host{display:block}";
4013
-
4014
3946
  const VviinnWrongFormat = class {
4015
3947
  constructor(hostRef) {
4016
3948
  index.registerInstance(this, hostRef);
4017
3949
  this.handler = undefined;
4018
3950
  }
4019
3951
  render() {
4020
- return (index.h(index.Host, null, index.h("vviinn-error", null, index.h("h4", { slot: "title" }, "Dateityp wird nicht unterst\u00FCtzt"), index.h("span", { slot: "text" }, "Leider unterst\u00FCtzen wir dieses Format nicht. Bitte laden Sie eine .jpg, .png oder .webp Bilddatei hoch."), index.h("button", { slot: "action", onClick: this.handler }, "Neues Bild hochladen"))));
3952
+ return (index.h(index.Host, null, index.h("vviinn-error", null, index.h(index$1.WarningIcon, null), index.h("h4", { slot: "title" }, i18next.instance.t("wrongFormatBlock.title")), index.h("span", { slot: "text" }, i18next.instance.t("wrongFormatBlock.text")), index.h("button", { slot: "action", onClick: this.handler }, i18next.instance.t("wrongFormatBlock.button")))));
4021
3953
  }
4022
3954
  };
4023
- VviinnWrongFormat.style = vviinnWrongFormatCss;
4024
3955
 
4025
3956
  exports.search_filters = SearchFilters;
4026
3957
  exports.vviinn_detected_object = VviinnDetectedObject;
4027
3958
  exports.vviinn_empty_results = VviinnEmptyResults;
4028
3959
  exports.vviinn_example_image = VviinnExampleImage;
4029
- exports.vviinn_example_images = VviinnExampleImages;
4030
3960
  exports.vviinn_image_selector = VviinnImageSelector;
4031
3961
  exports.vviinn_image_view = VviinnImageView;
4032
3962
  exports.vviinn_modal = VviinnModal;
4033
- exports.vviinn_onboarding = VviinnOnboarding;
4034
- exports.vviinn_onboarding_card_1 = VviinnOnboardingCard1;
4035
- exports.vviinn_onboarding_card_2 = VviinnOnboardingCard2;
4036
- exports.vviinn_onboarding_card_3 = VviinnOnboardingCard3;
4037
3963
  exports.vviinn_overlay = VviinnOverlay;
4038
3964
  exports.vviinn_overlayed_modal = VviinnOverlayedModal;
4039
3965
  exports.vviinn_privacy_badge = VviinnPrivacyBadge;
@@ -3,7 +3,7 @@
3
3
  Object.defineProperty(exports, '__esModule', { value: true });
4
4
 
5
5
  const index = require('./index-5619b5ec.js');
6
- const index$1 = require('./index-0547e502.js');
6
+ const index$1 = require('./index-8eb9f2c2.js');
7
7
 
8
8
  const vviinnButtonCss = ":host{display:block}.open-button{align-items:center;background:rgba(255, 255, 255, 0.8);border-radius:50%;border:none;box-shadow:0px 2px 6px rgba(0, 0, 0, 0.15);box-sizing:border-box;cursor:pointer;display:grid;height:40px;justify-items:center;padding:0;width:40px;transition:all 0.25s ease-in-out}.raw-open-button{background:none;border:none;cursor:pointer}.open-button:hover{box-shadow:0px 2px 6px rgba(0, 0, 0, 0.25)}.open-button:focus{border:2px solid rgba(15, 98, 254, 0.5);outline:none}.open-button:active{background:#f4f4f4;outline:none}";
9
9
 
@@ -4,10 +4,10 @@ Object.defineProperty(exports, '__esModule', { value: true });
4
4
 
5
5
  const index = require('./index-5619b5ec.js');
6
6
  const imageSearch_store = require('./imageSearch.store-dc4e98b3.js');
7
- const index$1 = require('./index-0547e502.js');
7
+ const index$1 = require('./index-8eb9f2c2.js');
8
8
  const i18next = require('./i18next-74ff3413.js');
9
- const customizedSlots = require('./customized-slots-0a8d663c.js');
10
- const _package = require('./package-bec51a19.js');
9
+ const customizedSlots = require('./customized-slots-e6b1235d.js');
10
+ const _package = require('./package-5713ea1d.js');
11
11
  const index$2 = require('./index-7ff2ab5f.js');
12
12
 
13
13
  const vviinnCarouselCss = ":host{--vviinn-progressbar-width:0;--vviinn-carousel-item-width:150px;--vviinn-carousel-columns-internal:var(--vviinn-carousel-columns, 4);--vviinn-carousel-image-width-system:140px}.body{display:flex;position:relative;width:var(--vviinn-carousel-content-width);flex-direction:column}.content-wrapper *{box-sizing:border-box}.content-wrapper{overflow-y:hidden;overflow-x:auto;flex-grow:1}.bullets{margin-top:16px;display:flex;flex-direction:row;grid-gap:24px;justify-content:center}.bullet{width:10px;height:10px;background:#e0e0e0;border-radius:50%;cursor:pointer}.bullet.active{background:#161616}.content:not(.show-scrollbar),.content.grid{scrollbar-color:#fff0 #fff0}.content:not(.show-scrollbar)::-webkit-scrollbar,.content.grid::-webkit-scrollbar{opacity:0}.content{display:flex;flex-direction:row;grid-gap:8px;overflow-y:hidden;overflow-x:auto;flex-grow:1;padding-bottom:16px}.content.left>*{scroll-snap-align:start}.content.right>*{scroll-snap-align:end}:host(.continuity) .prev,:host(.continuity) .next{border-radius:2px}:host(.grid) .prev,:host(.grid) .next{border-radius:50%}.prev,.next{align-items:center;background-color:white;border:none;box-shadow:0px 2px 6px rgba(0, 0, 0, 0.15);fill:#525252;cursor:pointer;display:grid;height:40px;justify-items:center;position:absolute;top:calc(50% - 20px);width:40px;z-index:1;padding:0;margin:0}.next:disabled,.prev:disabled{display:none}.prev svg{transform:rotate(180deg);margin-left:-5px}.prev{left:0}.next{right:0}.items-group{display:grid;grid-gap:16px;grid-template-columns:repeat(var(--vviinn-carousel-columns-internal), 1fr);min-width:100%}vviinn-product-card::part(price-container){text-align:center}:host(.classic) vviinn-product-card::part(title),:host(.classic) vviinn-product-card::part(brand),:host(.classic) vviinn-product-card::part(type){text-align:center}@media (max-width: 480px){:host(.modern) button{display:none}.items-group{grid-template-columns:repeat(2, 1fr)}}";