{
  "compiler": {
    "name": "@stencil/core",
    "version": "4.31.0",
    "typescriptVersion": "5.5.4"
  },
  "components": [
    {
      "filePath": "src/components/vviinn-cropper/vviinn-cropper.tsx",
      "encapsulation": "shadow",
      "tag": "vviinn-cropper",
      "docs": "",
      "docsTags": [],
      "usage": {},
      "props": [
        {
          "name": "apiPath",
          "type": "string",
          "complexType": {
            "original": "string",
            "resolved": "string",
            "references": {}
          },
          "mutable": false,
          "attr": "api-path",
          "reflectToAttr": false,
          "docs": "API endpoint URL (optional, defaults to production)",
          "docsTags": [],
          "values": [
            {
              "type": "string"
            }
          ],
          "optional": true,
          "required": false,
          "getter": false,
          "setter": false
        },
        {
          "name": "autoSearch",
          "type": "boolean",
          "complexType": {
            "original": "boolean",
            "resolved": "boolean",
            "references": {}
          },
          "mutable": false,
          "attr": "auto-search",
          "reflectToAttr": false,
          "docs": "Automatically trigger visual search after crop. Set to false to handle search manually via vviinnCropperCropEnd event",
          "docsTags": [],
          "default": "true",
          "values": [
            {
              "type": "boolean"
            }
          ],
          "optional": true,
          "required": false,
          "getter": false,
          "setter": false
        },
        {
          "name": "cssUrl",
          "type": "string",
          "complexType": {
            "original": "string | null",
            "resolved": "string",
            "references": {}
          },
          "mutable": false,
          "attr": "css-url",
          "reflectToAttr": false,
          "docs": "URL to external CSS file for custom styling",
          "docsTags": [],
          "default": "null",
          "values": [
            {
              "type": "string"
            }
          ],
          "optional": false,
          "required": false,
          "getter": false,
          "setter": false
        },
        {
          "name": "saveImageMode",
          "type": "\"always\" | \"never\" | \"once\"",
          "complexType": {
            "original": "\"once\" | \"always\" | \"never\"",
            "resolved": "\"always\" | \"never\" | \"once\"",
            "references": {}
          },
          "mutable": false,
          "attr": "save-image-mode",
          "reflectToAttr": false,
          "docs": "Save to Local Storage mode for uploaded image",
          "docsTags": [],
          "default": "\"once\"",
          "values": [
            {
              "value": "always",
              "type": "string"
            },
            {
              "value": "never",
              "type": "string"
            },
            {
              "value": "once",
              "type": "string"
            }
          ],
          "optional": true,
          "required": false,
          "getter": false,
          "setter": false
        },
        {
          "name": "token",
          "type": "string",
          "complexType": {
            "original": "string",
            "resolved": "string",
            "references": {}
          },
          "mutable": false,
          "attr": "token",
          "reflectToAttr": false,
          "docs": "Vviinn customer's token",
          "docsTags": [],
          "values": [
            {
              "type": "string"
            }
          ],
          "optional": false,
          "required": false,
          "getter": false,
          "setter": false
        },
        {
          "name": "width",
          "type": "number",
          "complexType": {
            "original": "number",
            "resolved": "number",
            "references": {}
          },
          "mutable": true,
          "attr": "width",
          "reflectToAttr": false,
          "docs": "",
          "docsTags": [],
          "default": "288",
          "values": [
            {
              "type": "number"
            }
          ],
          "optional": false,
          "required": false,
          "getter": false,
          "setter": false
        }
      ],
      "methods": [],
      "events": [
        {
          "event": "vviinnCropperCropEnd",
          "detail": "{ searchArea: { left?: number; top?: number; width?: number; height?: number; }; normalizedSearchArea: { left?: number; top?: number; width?: number; height?: number; }; imageBounds: { left?: number; top?: number; width?: number; height?: number; }; requestId?: string; }",
          "bubbles": true,
          "complexType": {
            "original": "CropEndEventData",
            "resolved": "{ searchArea: { left?: number; top?: number; width?: number; height?: number; }; normalizedSearchArea: { left?: number; top?: number; width?: number; height?: number; }; imageBounds: { left?: number; top?: number; width?: number; height?: number; }; requestId?: string; }",
            "references": {
              "CropEndEventData": {
                "location": "import",
                "path": "./types",
                "id": "src/components/vviinn-cropper/types.ts::CropEndEventData"
              }
            }
          },
          "cancelable": true,
          "composed": true,
          "docs": "Triggered when crop ends with enriched data including normalized coordinates for visual-search API",
          "docsTags": []
        },
        {
          "event": "vviinnCropperLoadImage",
          "detail": "{ imageBounds: { left?: number; top?: number; width?: number; height?: number; }; }",
          "bubbles": true,
          "complexType": {
            "original": "LoadImageEventData",
            "resolved": "{ imageBounds: { left?: number; top?: number; width?: number; height?: number; }; }",
            "references": {
              "LoadImageEventData": {
                "location": "import",
                "path": "./types",
                "id": "src/components/vviinn-cropper/types.ts::LoadImageEventData"
              }
            }
          },
          "cancelable": true,
          "composed": true,
          "docs": "",
          "docsTags": []
        },
        {
          "event": "vviinnImageCrop",
          "detail": "{ isTriggeredByVpsWidget: boolean; } & { widget?: Widget; campaignTypeId: \"VPR\" | \"VPS\" | \"TPS\" | \"VCS\"; campaignTypeName: \"Similar Products\" | \"Visual Search\" | \"Cross-Selling\" | \"Text Product Search\"; widgetId?: string; widgetVersion: string; }",
          "bubbles": true,
          "complexType": {
            "original": "ImageCropEventData",
            "resolved": "{ isTriggeredByVpsWidget: boolean; } & { widget?: Widget; campaignTypeId: \"VPR\" | \"VPS\" | \"TPS\" | \"VCS\"; campaignTypeName: \"Similar Products\" | \"Visual Search\" | \"Cross-Selling\" | \"Text Product Search\"; widgetId?: string; widgetVersion: string; }",
            "references": {
              "ImageCropEventData": {
                "location": "import",
                "path": "../../recommendation/events",
                "id": "src/recommendation/events.ts::ImageCropEventData"
              }
            }
          },
          "cancelable": true,
          "composed": true,
          "docs": "",
          "docsTags": []
        },
        {
          "event": "vviinnNoResult",
          "detail": "{ widget?: Widget; } & { campaignTypeId: \"VPR\" | \"VPS\" | \"TPS\" | \"VCS\"; campaignTypeName: \"Similar Products\" | \"Visual Search\" | \"Cross-Selling\" | \"Text Product Search\"; widgetId?: string; widgetVersion: string; }",
          "bubbles": true,
          "complexType": {
            "original": "BasicEventData",
            "resolved": "{ widget?: Widget; } & { campaignTypeId: \"VPR\" | \"VPS\" | \"TPS\" | \"VCS\"; campaignTypeName: \"Similar Products\" | \"Visual Search\" | \"Cross-Selling\" | \"Text Product Search\"; widgetId?: string; widgetVersion: string; }",
            "references": {
              "BasicEventData": {
                "location": "import",
                "path": "../../recommendation/events",
                "id": "src/recommendation/events.ts::BasicEventData"
              }
            }
          },
          "cancelable": true,
          "composed": true,
          "docs": "Triggered when a visual search request fails",
          "docsTags": []
        }
      ],
      "listeners": [
        {
          "event": "vviinnSelectObject",
          "capture": false,
          "passive": false
        }
      ],
      "styles": [],
      "slots": [],
      "parts": [],
      "dependents": [
        "vviinn-vps-widget"
      ],
      "dependencies": [
        "vviinn-detected-object",
        "vviinn-preloader"
      ],
      "dependencyGraph": {
        "vviinn-cropper": [
          "vviinn-detected-object",
          "vviinn-preloader"
        ],
        "vviinn-vps-widget": [
          "vviinn-cropper"
        ]
      }
    },
    {
      "filePath": "src/components/vviinn-filters/vviinn-extended-filters.tsx",
      "encapsulation": "shadow",
      "tag": "vviinn-extended-filters",
      "docs": "",
      "docsTags": [
        {
          "name": "slot",
          "text": "vviinn-extended-filters-title - Text on widget's header."
        },
        {
          "name": "slot",
          "text": "vviinn-extended-filters-apply - Title of Apply Button."
        },
        {
          "name": "slot",
          "text": "vviinn-extended-filters-reset - Title of Reset Button."
        },
        {
          "name": "slot",
          "text": "vviinn-extended-filters-no-filters - Message shown when no filters are available."
        },
        {
          "name": "slot",
          "text": "vviinn-filters-search-icon - Custom icon for the search input."
        },
        {
          "name": "slot",
          "text": "vviinn-range-filter-from-label - Label text for the \"From\" input field in range filters."
        },
        {
          "name": "slot",
          "text": "vviinn-range-filter-to-label - Label text for the \"To\" input field in range filters."
        },
        {
          "name": "part",
          "text": "extended-filters-modal - Modal itself."
        },
        {
          "name": "part",
          "text": "extended-filters-modal-wrapper - Wrapper for the modal."
        },
        {
          "name": "part",
          "text": "extended-filters-header - Header of the modal."
        },
        {
          "name": "part",
          "text": "extended-filters-title - Title heading (h2) of the modal."
        },
        {
          "name": "part",
          "text": "extended-filters-modal-close - Close button of the modal."
        },
        {
          "name": "part",
          "text": "extended-filters-no-filters - No filters message container."
        },
        {
          "name": "part",
          "text": "extended-filters-main - Wrapper for the main modal content."
        },
        {
          "name": "part",
          "text": "extended-filters-list - List of filters."
        },
        {
          "name": "part",
          "text": "extended-filters-row - Row of the filters."
        },
        {
          "name": "part",
          "text": "extended-filters-row-wrapper - Wrapper for the row."
        },
        {
          "name": "part",
          "text": "extended-filters-main-button - Main button of the row."
        },
        {
          "name": "part",
          "text": "extended-filters-selected-wrapper - Wrapper for the selected options."
        },
        {
          "name": "part",
          "text": "extended-filters-sub-list - List of sub filters."
        },
        {
          "name": "part",
          "text": "extended-filters-actions - Wrapper for the actions."
        },
        {
          "name": "part",
          "text": "extended-filters-apply - Apply button."
        },
        {
          "name": "part",
          "text": "extended-filters-reset - Reset button."
        },
        {
          "name": "part",
          "text": "filters-search-container - Container wrapping search input and filter list."
        },
        {
          "name": "part",
          "text": "filters-search-input-container - Container for the search input with icon."
        },
        {
          "name": "part",
          "text": "filters-search-icon - Icon wrapper for the search input."
        },
        {
          "name": "part",
          "text": "filters-search-input - Search input field."
        },
        {
          "name": "part",
          "text": "filters-sub-row - Row of the sub filters."
        },
        {
          "name": "part",
          "text": "filters-option-button - Button of the sub filter."
        },
        {
          "name": "part",
          "text": "filters-option-image - Image of the sub filter."
        },
        {
          "name": "part",
          "text": "filters-option-color-dot - Color Dot of the sub filter."
        },
        {
          "name": "part",
          "text": "filters-option-text - Text of the sub filter."
        },
        {
          "name": "part",
          "text": "filters-option-icon-wrapper - Icon Wrapper of the sub filter."
        },
        {
          "name": "part",
          "text": "histogram - Wrapper itself."
        },
        {
          "name": "part",
          "text": "histogram-bar - Bar of the histogram."
        },
        {
          "name": "part",
          "text": "histogram-range-container - Container for the range sliders."
        },
        {
          "name": "part",
          "text": "histogram-sliders-control - Container for the range sliders control."
        },
        {
          "name": "part",
          "text": "histogram-from-slider - Slider for the minimum value."
        },
        {
          "name": "part",
          "text": "histogram-to-slider - Slider for the maximum value."
        },
        {
          "name": "part",
          "text": "histogram-label-wrapper - Wrapper for the labels/inputs."
        },
        {
          "name": "part",
          "text": "histogram-label - Label for the histogram (when showIntervalInputs is false)."
        },
        {
          "name": "part",
          "text": "histogram-input-container - Container for the input field (when showIntervalInputs is true)."
        },
        {
          "name": "part",
          "text": "histogram-input-label - Label text for the input (From/Till)."
        },
        {
          "name": "part",
          "text": "histogram-from-input - Input field for the minimum value."
        },
        {
          "name": "part",
          "text": "histogram-to-input - Input field for the maximum value."
        }
      ],
      "usage": {},
      "props": [
        {
          "name": "currencySign",
          "type": "string",
          "complexType": {
            "original": "string",
            "resolved": "string",
            "references": {}
          },
          "mutable": false,
          "attr": "currency-sign",
          "reflectToAttr": false,
          "docs": "The currency sign displayed after price values",
          "docsTags": [],
          "values": [
            {
              "type": "string"
            }
          ],
          "optional": true,
          "required": false,
          "getter": false,
          "setter": false
        },
        {
          "name": "locale",
          "type": "\"de-DE\" | \"en-US\"",
          "complexType": {
            "original": "Locale",
            "resolved": "\"de-DE\" | \"en-US\"",
            "references": {
              "Locale": {
                "location": "import",
                "path": "../../locale",
                "id": "src/locale/index.ts::Locale"
              }
            }
          },
          "mutable": false,
          "attr": "locale",
          "reflectToAttr": false,
          "docs": "Locale for text localization",
          "docsTags": [],
          "values": [
            {
              "value": "de-DE",
              "type": "string"
            },
            {
              "value": "en-US",
              "type": "string"
            }
          ],
          "optional": true,
          "required": false,
          "getter": false,
          "setter": false
        },
        {
          "name": "mode",
          "type": "\"button\" | \"modal\" | \"preview\" | \"preview-inline\"",
          "complexType": {
            "original": "| \"button\"\n    | \"preview\"\n    | \"preview-inline\"\n    | \"modal\"",
            "resolved": "\"button\" | \"modal\" | \"preview\" | \"preview-inline\"",
            "references": {}
          },
          "mutable": false,
          "attr": "mode",
          "reflectToAttr": true,
          "docs": "",
          "docsTags": [],
          "default": "\"button\"",
          "values": [
            {
              "value": "button",
              "type": "string"
            },
            {
              "value": "modal",
              "type": "string"
            },
            {
              "value": "preview",
              "type": "string"
            },
            {
              "value": "preview-inline",
              "type": "string"
            }
          ],
          "optional": false,
          "required": false,
          "getter": false,
          "setter": false
        },
        {
          "name": "searchThreshold",
          "type": "number",
          "complexType": {
            "original": "number",
            "resolved": "number",
            "references": {}
          },
          "mutable": false,
          "attr": "search-threshold",
          "reflectToAttr": false,
          "docs": "Minimum number of filter options required to show search bar in preview-inline mode. Set to 0 to always show, or a high number to never show.",
          "docsTags": [],
          "default": "0",
          "values": [
            {
              "type": "number"
            }
          ],
          "optional": true,
          "required": false,
          "getter": false,
          "setter": false
        },
        {
          "name": "showHeader",
          "type": "boolean",
          "complexType": {
            "original": "boolean",
            "resolved": "boolean",
            "references": {}
          },
          "mutable": false,
          "attr": "show-header",
          "reflectToAttr": false,
          "docs": "",
          "docsTags": [],
          "default": "true",
          "values": [
            {
              "type": "boolean"
            }
          ],
          "optional": true,
          "required": false,
          "getter": false,
          "setter": false
        },
        {
          "name": "showIntervalInputs",
          "type": "boolean",
          "complexType": {
            "original": "boolean",
            "resolved": "boolean",
            "references": {}
          },
          "mutable": false,
          "attr": "show-interval-inputs",
          "reflectToAttr": false,
          "docs": "Show editable input fields in interval filters instead of readonly labels",
          "docsTags": [],
          "default": "false",
          "values": [
            {
              "type": "boolean"
            }
          ],
          "optional": false,
          "required": false,
          "getter": false,
          "setter": false
        }
      ],
      "methods": [],
      "events": [
        {
          "event": "vviinnFiltersChanged",
          "detail": "{ filters: { column: string; values: string[] | { start?: number; end?: number; }[]; }[]; el: HTMLElement; isTriggeredByVpsWidget?: boolean; }",
          "bubbles": true,
          "complexType": {
            "original": "ChangedFiltersEventData",
            "resolved": "{ filters: { column: string; values: string[] | { start?: number; end?: number; }[]; }[]; el: HTMLElement; isTriggeredByVpsWidget?: boolean; }",
            "references": {
              "ChangedFiltersEventData": {
                "location": "import",
                "path": "../../recommendation/events",
                "id": "src/recommendation/events.ts::ChangedFiltersEventData"
              }
            }
          },
          "cancelable": true,
          "composed": true,
          "docs": "The filter's state changes",
          "docsTags": []
        },
        {
          "event": "vviinnFilterTriggered",
          "detail": "{ action: FilterAction; value?: DynamicFilterValue; kind?: string; isTriggeredByVpsWidget?: boolean; }",
          "bubbles": true,
          "complexType": {
            "original": "DynamicFilterTrackingData",
            "resolved": "{ action: FilterAction; value?: DynamicFilterValue; kind?: string; isTriggeredByVpsWidget?: boolean; }",
            "references": {
              "DynamicFilterTrackingData": {
                "location": "import",
                "path": "../../recommendation/events",
                "id": "src/recommendation/events.ts::DynamicFilterTrackingData"
              }
            }
          },
          "cancelable": true,
          "composed": true,
          "docs": "",
          "docsTags": []
        }
      ],
      "listeners": [
        {
          "event": "mousedown",
          "target": "body",
          "capture": false,
          "passive": true
        }
      ],
      "styles": [
        {
          "name": "--font-family",
          "annotation": "prop",
          "docs": "The font family of the filters."
        }
      ],
      "slots": [
        {
          "name": "vviinn-extended-filters-apply",
          "docs": "Title of Apply Button."
        },
        {
          "name": "vviinn-extended-filters-no-filters",
          "docs": "Message shown when no filters are available."
        },
        {
          "name": "vviinn-extended-filters-reset",
          "docs": "Title of Reset Button."
        },
        {
          "name": "vviinn-extended-filters-title",
          "docs": "Text on widget's header."
        },
        {
          "name": "vviinn-filters-search-icon",
          "docs": "Custom icon for the search input."
        },
        {
          "name": "vviinn-range-filter-from-label",
          "docs": "Label text for the \"From\" input field in range filters."
        },
        {
          "name": "vviinn-range-filter-to-label",
          "docs": "Label text for the \"To\" input field in range filters."
        }
      ],
      "parts": [
        {
          "name": "extended-filters-actions",
          "docs": "Wrapper for the actions."
        },
        {
          "name": "extended-filters-apply",
          "docs": "Apply button."
        },
        {
          "name": "extended-filters-header",
          "docs": "Header of the modal."
        },
        {
          "name": "extended-filters-list",
          "docs": "List of filters."
        },
        {
          "name": "extended-filters-main",
          "docs": "Wrapper for the main modal content."
        },
        {
          "name": "extended-filters-main-button",
          "docs": "Main button of the row."
        },
        {
          "name": "extended-filters-modal",
          "docs": "Modal itself."
        },
        {
          "name": "extended-filters-modal-close",
          "docs": "Close button of the modal."
        },
        {
          "name": "extended-filters-modal-wrapper",
          "docs": "Wrapper for the modal."
        },
        {
          "name": "extended-filters-no-filters",
          "docs": "No filters message container."
        },
        {
          "name": "extended-filters-reset",
          "docs": "Reset button."
        },
        {
          "name": "extended-filters-row",
          "docs": "Row of the filters."
        },
        {
          "name": "extended-filters-row-wrapper",
          "docs": "Wrapper for the row."
        },
        {
          "name": "extended-filters-selected-wrapper",
          "docs": "Wrapper for the selected options."
        },
        {
          "name": "extended-filters-sub-list",
          "docs": "List of sub filters."
        },
        {
          "name": "extended-filters-title",
          "docs": "Title heading (h2) of the modal."
        },
        {
          "name": "filters-option-button",
          "docs": "Button of the sub filter."
        },
        {
          "name": "filters-option-color-dot",
          "docs": "Color Dot of the sub filter."
        },
        {
          "name": "filters-option-icon-wrapper",
          "docs": "Icon Wrapper of the sub filter."
        },
        {
          "name": "filters-option-image",
          "docs": "Image of the sub filter."
        },
        {
          "name": "filters-option-text",
          "docs": "Text of the sub filter."
        },
        {
          "name": "filters-search-container",
          "docs": "Container wrapping search input and filter list."
        },
        {
          "name": "filters-search-icon",
          "docs": "Icon wrapper for the search input."
        },
        {
          "name": "filters-search-input",
          "docs": "Search input field."
        },
        {
          "name": "filters-search-input-container",
          "docs": "Container for the search input with icon."
        },
        {
          "name": "filters-sub-row",
          "docs": "Row of the sub filters."
        },
        {
          "name": "histogram",
          "docs": "Wrapper itself."
        },
        {
          "name": "histogram-bar",
          "docs": "Bar of the histogram."
        },
        {
          "name": "histogram-from-input",
          "docs": "Input field for the minimum value."
        },
        {
          "name": "histogram-from-slider",
          "docs": "Slider for the minimum value."
        },
        {
          "name": "histogram-input-container",
          "docs": "Container for the input field (when showIntervalInputs is true)."
        },
        {
          "name": "histogram-input-label",
          "docs": "Label text for the input (From/Till)."
        },
        {
          "name": "histogram-label",
          "docs": "Label for the histogram (when showIntervalInputs is false)."
        },
        {
          "name": "histogram-label-wrapper",
          "docs": "Wrapper for the labels/inputs."
        },
        {
          "name": "histogram-range-container",
          "docs": "Container for the range sliders."
        },
        {
          "name": "histogram-sliders-control",
          "docs": "Container for the range sliders control."
        },
        {
          "name": "histogram-to-input",
          "docs": "Input field for the maximum value."
        },
        {
          "name": "histogram-to-slider",
          "docs": "Slider for the maximum value."
        }
      ],
      "dependents": [
        "vviinn-vpr-widget",
        "vviinn-vps-widget"
      ],
      "dependencies": [
        "vviinn-range-filter",
        "vviinn-extended-filters-button"
      ],
      "dependencyGraph": {
        "vviinn-extended-filters": [
          "vviinn-range-filter",
          "vviinn-extended-filters-button"
        ],
        "vviinn-vpr-widget": [
          "vviinn-extended-filters"
        ],
        "vviinn-vps-widget": [
          "vviinn-extended-filters"
        ]
      }
    },
    {
      "filePath": "src/components/vviinn-filters/vviinn-filters.tsx",
      "encapsulation": "shadow",
      "tag": "vviinn-filters",
      "docs": "",
      "docsTags": [
        {
          "name": "slot",
          "text": "vviinn-range-filter-from-label - Label text for the \"From\" input field in range filters."
        },
        {
          "name": "slot",
          "text": "vviinn-range-filter-to-label - Label text for the \"To\" input field in range filters."
        },
        {
          "name": "part",
          "text": "filters-wrapper - Wrapper for the main filters."
        },
        {
          "name": "part",
          "text": "filters-list - List of main filters."
        },
        {
          "name": "part",
          "text": "filters-main-button - Main filter button."
        },
        {
          "name": "part",
          "text": "filters-footer - Wrapper for the sub filters."
        },
        {
          "name": "part",
          "text": "filters-footer-list - List of sub filters."
        },
        {
          "name": "part",
          "text": "filters-sub-row - Row of the sub filters."
        },
        {
          "name": "part",
          "text": "filters-option-button - Button of the sub filter."
        },
        {
          "name": "part",
          "text": "filters-option-image - Image of the sub filter."
        },
        {
          "name": "part",
          "text": "filters-option-color-dot - Color Dot of the sub filter."
        },
        {
          "name": "part",
          "text": "filters-option-text - Text of the sub filter."
        },
        {
          "name": "part",
          "text": "filters-option-icon-wrapper - Icon Wrapper of the sub filter."
        },
        {
          "name": "part",
          "text": "histogram - Wrapper itself."
        },
        {
          "name": "part",
          "text": "histogram-bar - Bar of the histogram."
        },
        {
          "name": "part",
          "text": "histogram-range-container - Container for the range sliders."
        },
        {
          "name": "part",
          "text": "histogram-sliders-control - Container for the range sliders control."
        },
        {
          "name": "part",
          "text": "histogram-from-slider - Slider for the minimum value."
        },
        {
          "name": "part",
          "text": "histogram-to-slider - Slider for the maximum value."
        },
        {
          "name": "part",
          "text": "histogram-label-wrapper - Wrapper for the labels/inputs."
        },
        {
          "name": "part",
          "text": "histogram-label - Label for the histogram (when showIntervalInputs is false)."
        },
        {
          "name": "part",
          "text": "histogram-input-container - Container for the input field (when showIntervalInputs is true)."
        },
        {
          "name": "part",
          "text": "histogram-input-label - Label text for the input (From/Till)."
        },
        {
          "name": "part",
          "text": "histogram-from-input - Input field for the minimum value."
        },
        {
          "name": "part",
          "text": "histogram-to-input - Input field for the maximum value."
        }
      ],
      "usage": {},
      "props": [
        {
          "name": "showIntervalInputs",
          "type": "boolean",
          "complexType": {
            "original": "boolean",
            "resolved": "boolean",
            "references": {}
          },
          "mutable": false,
          "attr": "show-interval-inputs",
          "reflectToAttr": false,
          "docs": "Show editable input fields in interval filters instead of readonly labels",
          "docsTags": [],
          "default": "false",
          "values": [
            {
              "type": "boolean"
            }
          ],
          "optional": false,
          "required": false,
          "getter": false,
          "setter": false
        }
      ],
      "methods": [],
      "events": [
        {
          "event": "vviinnFiltersChanged",
          "detail": "{ filters: { column: string; values: string[] | { start?: number; end?: number; }[]; }[]; el: HTMLElement; isTriggeredByVpsWidget?: boolean; }",
          "bubbles": true,
          "complexType": {
            "original": "ChangedFiltersEventData",
            "resolved": "{ filters: { column: string; values: string[] | { start?: number; end?: number; }[]; }[]; el: HTMLElement; isTriggeredByVpsWidget?: boolean; }",
            "references": {
              "ChangedFiltersEventData": {
                "location": "import",
                "path": "../../recommendation/events",
                "id": "src/recommendation/events.ts::ChangedFiltersEventData"
              }
            }
          },
          "cancelable": true,
          "composed": true,
          "docs": "The filter's state changes",
          "docsTags": []
        },
        {
          "event": "vviinnFilterTriggered",
          "detail": "DynamicFilterTrackingData & { customTrigger?: Widget; filter?: ResponseDynamicFilterItem; }",
          "bubbles": true,
          "complexType": {
            "original": "DynamicFilterInternalData",
            "resolved": "DynamicFilterTrackingData & { customTrigger?: Widget; filter?: ResponseDynamicFilterItem; }",
            "references": {
              "DynamicFilterInternalData": {
                "location": "import",
                "path": "../../recommendation/events",
                "id": "src/recommendation/events.ts::DynamicFilterInternalData"
              }
            }
          },
          "cancelable": true,
          "composed": true,
          "docs": "",
          "docsTags": []
        }
      ],
      "listeners": [],
      "styles": [
        {
          "name": "--font-family",
          "annotation": "prop",
          "docs": "The font family of the filters."
        }
      ],
      "slots": [
        {
          "name": "vviinn-range-filter-from-label",
          "docs": "Label text for the \"From\" input field in range filters."
        },
        {
          "name": "vviinn-range-filter-to-label",
          "docs": "Label text for the \"To\" input field in range filters."
        }
      ],
      "parts": [
        {
          "name": "filters-footer",
          "docs": "Wrapper for the sub filters."
        },
        {
          "name": "filters-footer-list",
          "docs": "List of sub filters."
        },
        {
          "name": "filters-list",
          "docs": "List of main filters."
        },
        {
          "name": "filters-main-button",
          "docs": "Main filter button."
        },
        {
          "name": "filters-option-button",
          "docs": "Button of the sub filter."
        },
        {
          "name": "filters-option-color-dot",
          "docs": "Color Dot of the sub filter."
        },
        {
          "name": "filters-option-icon-wrapper",
          "docs": "Icon Wrapper of the sub filter."
        },
        {
          "name": "filters-option-image",
          "docs": "Image of the sub filter."
        },
        {
          "name": "filters-option-text",
          "docs": "Text of the sub filter."
        },
        {
          "name": "filters-sub-row",
          "docs": "Row of the sub filters."
        },
        {
          "name": "filters-wrapper",
          "docs": "Wrapper for the main filters."
        },
        {
          "name": "histogram",
          "docs": "Wrapper itself."
        },
        {
          "name": "histogram-bar",
          "docs": "Bar of the histogram."
        },
        {
          "name": "histogram-from-input",
          "docs": "Input field for the minimum value."
        },
        {
          "name": "histogram-from-slider",
          "docs": "Slider for the minimum value."
        },
        {
          "name": "histogram-input-container",
          "docs": "Container for the input field (when showIntervalInputs is true)."
        },
        {
          "name": "histogram-input-label",
          "docs": "Label text for the input (From/Till)."
        },
        {
          "name": "histogram-label",
          "docs": "Label for the histogram (when showIntervalInputs is false)."
        },
        {
          "name": "histogram-label-wrapper",
          "docs": "Wrapper for the labels/inputs."
        },
        {
          "name": "histogram-range-container",
          "docs": "Container for the range sliders."
        },
        {
          "name": "histogram-sliders-control",
          "docs": "Container for the range sliders control."
        },
        {
          "name": "histogram-to-input",
          "docs": "Input field for the maximum value."
        },
        {
          "name": "histogram-to-slider",
          "docs": "Slider for the maximum value."
        }
      ],
      "dependents": [
        "vviinn-vpr-widget",
        "vviinn-vps-widget"
      ],
      "dependencies": [
        "vviinn-range-filter"
      ],
      "dependencyGraph": {
        "vviinn-filters": [
          "vviinn-range-filter"
        ],
        "vviinn-vpr-widget": [
          "vviinn-filters"
        ],
        "vviinn-vps-widget": [
          "vviinn-filters"
        ]
      }
    },
    {
      "filePath": "src/components/vviinn-product-card/vviinn-product-card.tsx",
      "encapsulation": "shadow",
      "tag": "vviinn-product-card",
      "docs": "Card for one search result or recommendation. Renders a product, a content entry or a list entry, depending on `entity-type`.",
      "docsTags": [
        {
          "name": "part",
          "text": "product-card - Card container. Styled through an embedding widget, e.g. `vviinn-results::part(product-card)`."
        },
        {
          "name": "part",
          "text": "image-container - Product Card's image container."
        },
        {
          "name": "part",
          "text": "image-skeleton - Placeholder shown while the image loads."
        },
        {
          "name": "part",
          "text": "content-container - Product Card's content container. On content cards, not exported to the widgets."
        },
        {
          "name": "part",
          "text": "basket-button-container - Product Card's basket button container."
        },
        {
          "name": "part",
          "text": "brand - Product brand."
        },
        {
          "name": "part",
          "text": "product-type - Product type."
        },
        {
          "name": "part",
          "text": "currency - Currency sign. Renders after price-amount."
        },
        {
          "name": "part",
          "text": "deeplink - Anchor element for title. Rendered only if \"deeplink\" property is filled."
        },
        {
          "name": "part",
          "text": "image - Product image."
        },
        {
          "name": "part",
          "text": "image-link - Anchor element for image. Rendered only if \"deeplink\" property filled."
        },
        {
          "name": "part",
          "text": "image-picture - Picture element for image."
        },
        {
          "name": "part",
          "text": "image-placeholder - Placeholder shown when no image is available."
        },
        {
          "name": "part",
          "text": "price-container - Wrapper around the price values. Rendered only if \"add-price-container\" property is set."
        },
        {
          "name": "part",
          "text": "price-amount-regular - Numeric part of the regular price."
        },
        {
          "name": "part",
          "text": "price-amount-sale - Numeric part of the sale price."
        },
        {
          "name": "part",
          "text": "price-amount-outdated - Numeric part of the regular price shown as outdated."
        },
        {
          "name": "part",
          "text": "price-amount-base-sale - Numeric part of the sale price per unit."
        },
        {
          "name": "part",
          "text": "price-amount-base-outdated - Numeric part of the regular price per unit shown as outdated."
        },
        {
          "name": "part",
          "text": "price-amount-base-regular - Numeric part of the regular price per unit."
        },
        {
          "name": "part",
          "text": "price-outdated - Renders when \"sale-price\" property filled. Contains regular price."
        },
        {
          "name": "part",
          "text": "price-regular - Renders when \"sale-price\" property is empty."
        },
        {
          "name": "part",
          "text": "price-sale - Renders when \"sale-price\" property filled. Contains sale price."
        },
        {
          "name": "part",
          "text": "price-prefix - Renders before price-amount. Can be set with \"price-prefix\" property or inherited from parent component."
        },
        {
          "name": "part",
          "text": "title - Product title"
        },
        {
          "name": "part",
          "text": "basket-button - Add to Basket button."
        },
        {
          "name": "part",
          "text": "favorite-button - Favorite button."
        },
        {
          "name": "part",
          "text": "update-button-item - Update button in Product Card (Set mode)."
        },
        {
          "name": "part",
          "text": "discount-label - Discount label in Product Card (Set mode)."
        },
        {
          "name": "part",
          "text": "discount-percentage - Discount percentage inside the Add to Basket button (Set mode)."
        },
        {
          "name": "part",
          "text": "product-images-pagination - Container for product images pagination dots (mobile only)."
        },
        {
          "name": "part",
          "text": "product-images-pagination-bullet - Individual pagination dot."
        },
        {
          "name": "part",
          "text": "product-images-pagination-bullet-active - Active pagination dot."
        },
        {
          "name": "part",
          "text": "energy-label-container - Energy label container."
        },
        {
          "name": "part",
          "text": "energy-label-icon - Icon with an energy class."
        },
        {
          "name": "part",
          "text": "energy-label-product-type - Product type."
        },
        {
          "name": "part",
          "text": "energy-label-data-sheet-link - Data sheet link."
        },
        {
          "name": "part",
          "text": "custom-label-0 - Custom label with index 0."
        },
        {
          "name": "part",
          "text": "custom-label-1 - Custom label with index 1."
        },
        {
          "name": "part",
          "text": "custom-label-2 - Custom label with index 2."
        },
        {
          "name": "part",
          "text": "custom-label-3 - Custom label with index 3."
        },
        {
          "name": "part",
          "text": "custom-label-4 - Custom label with index 4."
        },
        {
          "name": "part",
          "text": "custom-label-content - Custom labels in the content area. Combine with custom-label-N to pick one place."
        },
        {
          "name": "part",
          "text": "custom-label-image - Custom labels on the image. Combine with custom-label-N to pick one place."
        },
        {
          "name": "part",
          "text": "product-card-actions - Style actions wrapper."
        },
        {
          "name": "part",
          "text": "product-card-actions-top - Style top actions wrapper."
        },
        {
          "name": "part",
          "text": "content-card - Content card container. Styled through an embedding widget, e.g. `vviinn-results::part(content-card)`."
        },
        {
          "name": "part",
          "text": "content-card-content-container - Content card's content container."
        },
        {
          "name": "part",
          "text": "content-label - Content card's label."
        },
        {
          "name": "part",
          "text": "content-title - Content card's title."
        },
        {
          "name": "part",
          "text": "content-link - Content card's link."
        },
        {
          "name": "part",
          "text": "content-card-image - Content card's image."
        },
        {
          "name": "part",
          "text": "content-card-image-container - Content card's image container."
        },
        {
          "name": "part",
          "text": "content-card-image-picture - Picture element for content card's image."
        },
        {
          "name": "part",
          "text": "list-card - List card container. Styled through an embedding widget, e.g. `vviinn-results::part(list-card)`."
        },
        {
          "name": "part",
          "text": "list-container - Same element as list-card-content-container. Not exported to the widgets."
        },
        {
          "name": "part",
          "text": "list-card-content-container - List card's content container."
        },
        {
          "name": "part",
          "text": "list-label - List card's label (e.g., \"Category\")."
        },
        {
          "name": "part",
          "text": "list-title - List card's title."
        },
        {
          "name": "part",
          "text": "list-card-image - List card's image."
        },
        {
          "name": "part",
          "text": "list-card-image-container - List card's image container."
        },
        {
          "name": "part",
          "text": "list-card-image-picture - Picture element for list card's image."
        },
        {
          "name": "slot",
          "text": "vviinn-update-button-icon - Icon of Update Button (Set mode)."
        },
        {
          "name": "slot",
          "text": "vviinn-basket-button-text - Text of Add to Basket button."
        },
        {
          "name": "slot",
          "text": "vviinn-basket-button-icon - Icon of Add to Basket button."
        },
        {
          "name": "slot",
          "text": "vviinn-basket-button-text-pressed - Text of pressed Add to Basket button (Set mode)."
        },
        {
          "name": "slot",
          "text": "vviinn-basket-button-icon-pressed - Icon of pressed Add to Basket button (Set mode)."
        },
        {
          "name": "slot",
          "text": "vviinn-energy-label-data-sheet-text - Data sheet link's text."
        },
        {
          "name": "slot",
          "text": "vviinn-product-card-actions - Add action buttons like One-Click Discovery to this slot."
        },
        {
          "name": "slot",
          "text": "vviinn-favorite-icon - Icon of Favorite button."
        },
        {
          "name": "slot",
          "text": "vviinn-favorite-icon-pressed - Icon of pressed Favorite button."
        },
        {
          "name": "slot",
          "text": "vviinn-custom-label-0 - Custom label with index 0."
        },
        {
          "name": "slot",
          "text": "vviinn-custom-label-1 - Custom label with index 1."
        },
        {
          "name": "slot",
          "text": "vviinn-custom-label-2 - Custom label with index 2."
        },
        {
          "name": "slot",
          "text": "vviinn-custom-label-3 - Custom label with index 3."
        },
        {
          "name": "slot",
          "text": "vviinn-custom-label-4 - Custom label with index 4."
        },
        {
          "name": "slot",
          "text": "vviinn-image-placeholder-icon - Icon or content for the image placeholder."
        }
      ],
      "usage": {},
      "props": [
        {
          "name": "addPriceContainer",
          "type": "boolean",
          "complexType": {
            "original": "boolean",
            "resolved": "boolean",
            "references": {}
          },
          "mutable": false,
          "attr": "add-price-container",
          "reflectToAttr": false,
          "docs": "Wrap the Product Card's price values in the container.",
          "docsTags": [],
          "default": "false",
          "values": [
            {
              "type": "boolean"
            }
          ],
          "optional": true,
          "required": false,
          "getter": false,
          "setter": false
        },
        {
          "name": "addToBasketShow",
          "type": "boolean",
          "complexType": {
            "original": "boolean",
            "resolved": "boolean",
            "references": {}
          },
          "mutable": false,
          "attr": "add-to-basket-show",
          "reflectToAttr": false,
          "docs": "Show or hide the Add to Basket button",
          "docsTags": [],
          "values": [
            {
              "type": "boolean"
            }
          ],
          "optional": false,
          "required": false,
          "getter": false,
          "setter": false
        },
        {
          "name": "basePrice",
          "type": "string | { price?: number; quantity?: number; measure?: string; }",
          "complexType": {
            "original": "BasePrice | string | null",
            "resolved": "string | { price?: number; quantity?: number; measure?: string; }",
            "references": {
              "BasePrice": {
                "location": "import",
                "path": "../../interfaces",
                "id": "src/interfaces/index.ts::BasePrice"
              }
            }
          },
          "mutable": false,
          "attr": "base-price",
          "reflectToAttr": false,
          "docs": "Price per unit, as an object or a JSON string: `{\"price\": 9.99, \"quantity\": 100, \"measure\": \"ml\"}`",
          "docsTags": [],
          "values": [
            {
              "type": "string"
            },
            {
              "type": "{ price?: number; quantity?: number; measure?: string; }"
            }
          ],
          "optional": true,
          "required": false,
          "getter": false,
          "setter": false
        },
        {
          "name": "baseSalePrice",
          "type": "string | { price?: number; quantity?: number; measure?: string; }",
          "complexType": {
            "original": "BasePrice | string | null",
            "resolved": "string | { price?: number; quantity?: number; measure?: string; }",
            "references": {
              "BasePrice": {
                "location": "import",
                "path": "../../interfaces",
                "id": "src/interfaces/index.ts::BasePrice"
              }
            }
          },
          "mutable": false,
          "attr": "base-sale-price",
          "reflectToAttr": false,
          "docs": "Price per unit for the sale price, in the same shape as `base-price`",
          "docsTags": [],
          "values": [
            {
              "type": "string"
            },
            {
              "type": "{ price?: number; quantity?: number; measure?: string; }"
            }
          ],
          "optional": false,
          "required": false,
          "getter": false,
          "setter": false
        },
        {
          "name": "brand",
          "type": "string",
          "complexType": {
            "original": "string | undefined",
            "resolved": "string",
            "references": {}
          },
          "mutable": false,
          "attr": "brand",
          "reflectToAttr": false,
          "docs": "Product brand. Also set as `data-brand` on the card, so CSS can target cards by brand",
          "docsTags": [],
          "values": [
            {
              "type": "string"
            }
          ],
          "optional": false,
          "required": false,
          "getter": false,
          "setter": false
        },
        {
          "name": "cssUrl",
          "type": "string",
          "complexType": {
            "original": "string | null",
            "resolved": "string",
            "references": {}
          },
          "mutable": false,
          "attr": "css-url",
          "reflectToAttr": false,
          "docs": "URL to external CSS file for custom styling",
          "docsTags": [],
          "default": "null",
          "values": [
            {
              "type": "string"
            }
          ],
          "optional": false,
          "required": false,
          "getter": false,
          "setter": false
        },
        {
          "name": "currencySign",
          "type": "string",
          "complexType": {
            "original": "string | undefined",
            "resolved": "string",
            "references": {}
          },
          "mutable": false,
          "attr": "currency-sign",
          "reflectToAttr": false,
          "docs": "The currency sign is displayed after the price",
          "docsTags": [],
          "default": "undefined",
          "values": [
            {
              "type": "string"
            }
          ],
          "optional": false,
          "required": false,
          "getter": false,
          "setter": false
        },
        {
          "name": "customLabels",
          "type": "string",
          "complexType": {
            "original": "string",
            "resolved": "string",
            "references": {}
          },
          "mutable": false,
          "attr": "custom-labels",
          "reflectToAttr": false,
          "docs": "Labels from the product feed, separated by `|`. Hidden by default — show them with the `custom-label-N` parts, which exist for the first five. Also set as `data-custom-label-N`",
          "docsTags": [],
          "default": "\"\"",
          "values": [
            {
              "type": "string"
            }
          ],
          "optional": false,
          "required": false,
          "getter": false,
          "setter": false
        },
        {
          "name": "deeplink",
          "type": "string",
          "complexType": {
            "original": "string | undefined",
            "resolved": "string",
            "references": {}
          },
          "mutable": false,
          "attr": "deeplink",
          "reflectToAttr": false,
          "docs": "Product page URL for the title and image links. Standalone, the card doesn't navigate — handle `vviinnProductClick`",
          "docsTags": [],
          "values": [
            {
              "type": "string"
            }
          ],
          "optional": false,
          "required": false,
          "getter": false,
          "setter": false
        },
        {
          "name": "energyCertifications",
          "type": "{ certificationClass?: \"A+++\" | \"A++\" | \"A+\" | \"A\" | \"B\" | \"C\" | \"D\" | \"E\" | \"F\" | \"G\"; classIconUrls?: { left: string; right: string; }; classRange?: { min?: \"A+++\" | \"A++\" | \"A+\" | \"A\" | \"B\" | \"C\" | \"D\" | \"E\" | \"F\" | \"G\"; max?: \"A+++\" | \"A++\" | \"A+\" | \"A\" | \"B\" | \"C\" | \"D\" | \"E\" | \"F\" | \"G\"; }; classLabelUrl?: string; classDataSheetUrl?: string; productType?: string; }[]",
          "complexType": {
            "original": "EnergyCertification[]",
            "resolved": "{ certificationClass?: \"A+++\" | \"A++\" | \"A+\" | \"A\" | \"B\" | \"C\" | \"D\" | \"E\" | \"F\" | \"G\"; classIconUrls?: { left: string; right: string; }; classRange?: { min?: \"A+++\" | \"A++\" | \"A+\" | \"A\" | \"B\" | \"C\" | \"D\" | \"E\" | \"F\" | \"G\"; max?: \"A+++\" | \"A++\" | \"A+\" | \"A\" | \"B\" | \"C\" | \"D\" | \"E\" | \"F\" | \"G\"; }; classLabelUrl?: string; classDataSheetUrl?: string; productType?: string; }[]",
            "references": {
              "EnergyCertification": {
                "location": "import",
                "path": "../../interfaces",
                "id": "src/interfaces/index.ts::EnergyCertification"
              }
            }
          },
          "mutable": true,
          "attr": "energy-certifications",
          "reflectToAttr": false,
          "docs": "Energy labels, set as a JS property",
          "docsTags": [],
          "values": [
            {
              "type": "{ certificationClass?: \"A+++\""
            },
            {
              "value": "A++",
              "type": "string"
            },
            {
              "value": "A+",
              "type": "string"
            },
            {
              "value": "A",
              "type": "string"
            },
            {
              "value": "B",
              "type": "string"
            },
            {
              "value": "C",
              "type": "string"
            },
            {
              "value": "D",
              "type": "string"
            },
            {
              "value": "E",
              "type": "string"
            },
            {
              "value": "F",
              "type": "string"
            },
            {
              "value": "G\"; classIconUrls?: { left: string; right: string; }; classRange?: { min?: \"A+++",
              "type": "string"
            },
            {
              "value": "A++",
              "type": "string"
            },
            {
              "value": "A+",
              "type": "string"
            },
            {
              "value": "A",
              "type": "string"
            },
            {
              "value": "B",
              "type": "string"
            },
            {
              "value": "C",
              "type": "string"
            },
            {
              "value": "D",
              "type": "string"
            },
            {
              "value": "E",
              "type": "string"
            },
            {
              "value": "F",
              "type": "string"
            },
            {
              "value": "G\"; max?: \"A+++",
              "type": "string"
            },
            {
              "value": "A++",
              "type": "string"
            },
            {
              "value": "A+",
              "type": "string"
            },
            {
              "value": "A",
              "type": "string"
            },
            {
              "value": "B",
              "type": "string"
            },
            {
              "value": "C",
              "type": "string"
            },
            {
              "value": "D",
              "type": "string"
            },
            {
              "value": "E",
              "type": "string"
            },
            {
              "value": "F",
              "type": "string"
            },
            {
              "type": "\"G\"; }; classLabelUrl?: string; classDataSheetUrl?: string; productType?: string; }[]"
            }
          ],
          "optional": true,
          "required": false,
          "getter": false,
          "setter": false
        },
        {
          "name": "entityType",
          "type": "\"content\" | \"list\" | \"product\"",
          "complexType": {
            "original": "EntityType",
            "resolved": "\"content\" | \"list\" | \"product\"",
            "references": {
              "EntityType": {
                "location": "import",
                "path": "../../interfaces",
                "id": "src/interfaces/index.ts::EntityType"
              }
            }
          },
          "mutable": false,
          "attr": "entity-type",
          "reflectToAttr": false,
          "docs": "What the card shows: a `product`, a `content` entry or a `list` entry",
          "docsTags": [],
          "default": "\"product\"",
          "values": [
            {
              "value": "content",
              "type": "string"
            },
            {
              "value": "list",
              "type": "string"
            },
            {
              "value": "product",
              "type": "string"
            }
          ],
          "optional": false,
          "required": false,
          "getter": false,
          "setter": false
        },
        {
          "name": "favoriteShow",
          "type": "boolean",
          "complexType": {
            "original": "boolean",
            "resolved": "boolean",
            "references": {}
          },
          "mutable": false,
          "attr": "favorite-show",
          "reflectToAttr": false,
          "docs": "Show or hide Favorite button",
          "docsTags": [],
          "values": [
            {
              "type": "boolean"
            }
          ],
          "optional": false,
          "required": false,
          "getter": false,
          "setter": false
        },
        {
          "name": "image",
          "type": "string",
          "complexType": {
            "original": "string | undefined",
            "resolved": "string",
            "references": {}
          },
          "mutable": false,
          "attr": "image",
          "reflectToAttr": false,
          "docs": "URL of the main product image",
          "docsTags": [],
          "values": [
            {
              "type": "string"
            }
          ],
          "optional": false,
          "required": false,
          "getter": false,
          "setter": false
        },
        {
          "name": "imageWidth",
          "type": "number",
          "complexType": {
            "original": "number",
            "resolved": "number",
            "references": {}
          },
          "mutable": false,
          "attr": "image-width",
          "reflectToAttr": false,
          "docs": "Image width in pixels. Ignored when `responsive` is set",
          "docsTags": [],
          "default": "PRODUCT_CARD_IMAGE_WIDTH",
          "values": [
            {
              "type": "number"
            }
          ],
          "optional": false,
          "required": false,
          "getter": false,
          "setter": false
        },
        {
          "name": "images",
          "type": "{ original: string; thumbnail: string; }[]",
          "complexType": {
            "original": "ProductImage[]",
            "resolved": "{ original: string; thumbnail: string; }[]",
            "references": {
              "ProductImage": {
                "location": "import",
                "path": "../../interfaces",
                "id": "src/interfaces/index.ts::ProductImage"
              }
            }
          },
          "mutable": false,
          "attr": "images",
          "reflectToAttr": false,
          "docs": "Product images, set as a JS property. Used by `show-multiple-images` when there are at least two",
          "docsTags": [],
          "default": "[]",
          "values": [
            {
              "type": "{ original: string; thumbnail: string; }[]"
            }
          ],
          "optional": false,
          "required": false,
          "getter": false,
          "setter": false
        },
        {
          "name": "isSetMode",
          "type": "boolean",
          "complexType": {
            "original": "boolean",
            "resolved": "boolean",
            "references": {}
          },
          "mutable": false,
          "attr": "is-set-mode",
          "reflectToAttr": false,
          "docs": "Render the card for Set mode: Update button, discount label, and Add to Basket regardless of `add-to-basket-show`",
          "docsTags": [],
          "default": "false",
          "values": [
            {
              "type": "boolean"
            }
          ],
          "optional": false,
          "required": false,
          "getter": false,
          "setter": false
        },
        {
          "name": "locale",
          "type": "\"de-DE\" | \"en-US\"",
          "complexType": {
            "original": "Locale",
            "resolved": "\"de-DE\" | \"en-US\"",
            "references": {
              "Locale": {
                "location": "import",
                "path": "../../locale",
                "id": "src/locale/index.ts::Locale"
              }
            }
          },
          "mutable": false,
          "attr": "locale",
          "reflectToAttr": false,
          "docs": "Locale for text localization",
          "docsTags": [],
          "values": [
            {
              "value": "de-DE",
              "type": "string"
            },
            {
              "value": "en-US",
              "type": "string"
            }
          ],
          "optional": true,
          "required": false,
          "getter": false,
          "setter": false
        },
        {
          "name": "numberLocale",
          "type": "string",
          "complexType": {
            "original": "string",
            "resolved": "string",
            "references": {}
          },
          "mutable": false,
          "attr": "number-locale",
          "reflectToAttr": false,
          "docs": "Locale for number formatting. Falls back to locale",
          "docsTags": [],
          "values": [
            {
              "type": "string"
            }
          ],
          "optional": true,
          "required": false,
          "getter": false,
          "setter": false
        },
        {
          "name": "price",
          "type": "number",
          "complexType": {
            "original": "number | undefined",
            "resolved": "number",
            "references": {}
          },
          "mutable": false,
          "attr": "price",
          "reflectToAttr": false,
          "docs": "Regular price",
          "docsTags": [],
          "values": [
            {
              "type": "number"
            }
          ],
          "optional": false,
          "required": false,
          "getter": false,
          "setter": false
        },
        {
          "name": "pricePrefix",
          "type": "string",
          "complexType": {
            "original": "string",
            "resolved": "string",
            "references": {}
          },
          "mutable": false,
          "attr": "price-prefix",
          "reflectToAttr": false,
          "docs": "Prefix is displayed before the price",
          "docsTags": [],
          "values": [
            {
              "type": "string"
            }
          ],
          "optional": true,
          "required": false,
          "getter": false,
          "setter": false
        },
        {
          "name": "productTitle",
          "type": "string",
          "complexType": {
            "original": "string",
            "resolved": "string",
            "references": {}
          },
          "mutable": false,
          "attr": "product-title",
          "reflectToAttr": false,
          "docs": "Product title",
          "docsTags": [],
          "values": [
            {
              "type": "string"
            }
          ],
          "optional": false,
          "required": false,
          "getter": false,
          "setter": false
        },
        {
          "name": "productType",
          "type": "string",
          "complexType": {
            "original": "string | undefined",
            "resolved": "string",
            "references": {}
          },
          "mutable": false,
          "attr": "product-type",
          "reflectToAttr": false,
          "docs": "Product type",
          "docsTags": [],
          "values": [
            {
              "type": "string"
            }
          ],
          "optional": false,
          "required": false,
          "getter": false,
          "setter": false
        },
        {
          "name": "responsive",
          "type": "boolean",
          "complexType": {
            "original": "boolean",
            "resolved": "boolean",
            "references": {}
          },
          "mutable": false,
          "attr": "responsive",
          "reflectToAttr": false,
          "docs": "Let the image fill the card width instead of `image-width`",
          "docsTags": [],
          "default": "false",
          "values": [
            {
              "type": "boolean"
            }
          ],
          "optional": false,
          "required": false,
          "getter": false,
          "setter": false
        },
        {
          "name": "salePrice",
          "type": "number",
          "complexType": {
            "original": "number | undefined",
            "resolved": "number",
            "references": {}
          },
          "mutable": false,
          "attr": "sale-price",
          "reflectToAttr": false,
          "docs": "Sale price. When set, the regular price is shown as outdated next to it",
          "docsTags": [],
          "values": [
            {
              "type": "number"
            }
          ],
          "optional": false,
          "required": false,
          "getter": false,
          "setter": false
        },
        {
          "name": "showMultipleImages",
          "type": "boolean",
          "complexType": {
            "original": "boolean",
            "resolved": "boolean",
            "references": {}
          },
          "mutable": false,
          "attr": "show-multiple-images",
          "reflectToAttr": false,
          "docs": "Show multiple images: swiper on mobile, hover on desktop",
          "docsTags": [],
          "default": "false",
          "values": [
            {
              "type": "boolean"
            }
          ],
          "optional": false,
          "required": false,
          "getter": false,
          "setter": false
        },
        {
          "name": "updateButtonLocation",
          "type": "\"onItem\" | \"onTop\" | \"topAndItem\"",
          "complexType": {
            "original": "UpdateButtonLocation",
            "resolved": "\"onItem\" | \"onTop\" | \"topAndItem\"",
            "references": {
              "UpdateButtonLocation": {
                "location": "import",
                "path": "../vviinn-vpr-widget/vviinn-vpr-widget",
                "id": "src/components/vviinn-vpr-widget/vviinn-vpr-widget.tsx::UpdateButtonLocation"
              }
            }
          },
          "mutable": false,
          "attr": "update-button-location",
          "reflectToAttr": false,
          "docs": "Location of Update button for Set mode",
          "docsTags": [],
          "values": [
            {
              "value": "onItem",
              "type": "string"
            },
            {
              "value": "onTop",
              "type": "string"
            },
            {
              "value": "topAndItem",
              "type": "string"
            }
          ],
          "optional": false,
          "required": false,
          "getter": false,
          "setter": false
        }
      ],
      "methods": [],
      "events": [
        {
          "event": "vviinnAddToBasket",
          "detail": "{ productId: string; productRank: number; productName: string; productType: string; clickEvent?: MouseEvent; discount?: number; } & { campaignTypeId: \"VPR\" | \"VPS\" | \"TPS\" | \"VCS\"; campaignTypeName: \"Similar Products\" | \"Visual Search\" | \"Cross-Selling\" | \"Text Product Search\"; widgetId?: string; widgetVersion: string; }",
          "bubbles": true,
          "complexType": {
            "original": "ProductCardEventData",
            "resolved": "{ productId: string; productRank: number; productName: string; productType: string; clickEvent?: MouseEvent; discount?: number; } & { campaignTypeId: \"VPR\" | \"VPS\" | \"TPS\" | \"VCS\"; campaignTypeName: \"Similar Products\" | \"Visual Search\" | \"Cross-Selling\" | \"Text Product Search\"; widgetId?: string; widgetVersion: string; }",
            "references": {
              "ProductCardEventData": {
                "location": "import",
                "path": "../../recommendation/events",
                "id": "src/recommendation/events.ts::ProductCardEventData"
              }
            }
          },
          "cancelable": true,
          "composed": true,
          "docs": "User clicks on Add to Basket button",
          "docsTags": []
        },
        {
          "event": "vviinnAddToFavorite",
          "detail": "{ productId: string; productRank: number; productName: string; productType: string; clickEvent?: MouseEvent; discount?: number; } & { campaignTypeId: \"VPR\" | \"VPS\" | \"TPS\" | \"VCS\"; campaignTypeName: \"Similar Products\" | \"Visual Search\" | \"Cross-Selling\" | \"Text Product Search\"; widgetId?: string; widgetVersion: string; }",
          "bubbles": true,
          "complexType": {
            "original": "ProductCardEventData",
            "resolved": "{ productId: string; productRank: number; productName: string; productType: string; clickEvent?: MouseEvent; discount?: number; } & { campaignTypeId: \"VPR\" | \"VPS\" | \"TPS\" | \"VCS\"; campaignTypeName: \"Similar Products\" | \"Visual Search\" | \"Cross-Selling\" | \"Text Product Search\"; widgetId?: string; widgetVersion: string; }",
            "references": {
              "ProductCardEventData": {
                "location": "import",
                "path": "../../recommendation/events",
                "id": "src/recommendation/events.ts::ProductCardEventData"
              }
            }
          },
          "cancelable": true,
          "composed": true,
          "docs": "User clicks on Favorite button",
          "docsTags": []
        },
        {
          "event": "vviinnProductClick",
          "detail": "{ productId: string; productRank: number; productName: string; productType: string; clickEvent?: MouseEvent; discount?: number; } & { campaignTypeId: \"VPR\" | \"VPS\" | \"TPS\" | \"VCS\"; campaignTypeName: \"Similar Products\" | \"Visual Search\" | \"Cross-Selling\" | \"Text Product Search\"; widgetId?: string; widgetVersion: string; }",
          "bubbles": true,
          "complexType": {
            "original": "ProductCardEventData",
            "resolved": "{ productId: string; productRank: number; productName: string; productType: string; clickEvent?: MouseEvent; discount?: number; } & { campaignTypeId: \"VPR\" | \"VPS\" | \"TPS\" | \"VCS\"; campaignTypeName: \"Similar Products\" | \"Visual Search\" | \"Cross-Selling\" | \"Text Product Search\"; widgetId?: string; widgetVersion: string; }",
            "references": {
              "ProductCardEventData": {
                "location": "import",
                "path": "../../recommendation/events",
                "id": "src/recommendation/events.ts::ProductCardEventData"
              }
            }
          },
          "cancelable": true,
          "composed": true,
          "docs": "Emitted on a click on a link in the card, instead of following the link",
          "docsTags": []
        },
        {
          "event": "vviinnProductLoad",
          "detail": "{ productId: string; productRank: number; productName: string; productType: string; clickEvent?: MouseEvent; discount?: number; } & { campaignTypeId: \"VPR\" | \"VPS\" | \"TPS\" | \"VCS\"; campaignTypeName: \"Similar Products\" | \"Visual Search\" | \"Cross-Selling\" | \"Text Product Search\"; widgetId?: string; widgetVersion: string; }",
          "bubbles": true,
          "complexType": {
            "original": "ProductCardEventData",
            "resolved": "{ productId: string; productRank: number; productName: string; productType: string; clickEvent?: MouseEvent; discount?: number; } & { campaignTypeId: \"VPR\" | \"VPS\" | \"TPS\" | \"VCS\"; campaignTypeName: \"Similar Products\" | \"Visual Search\" | \"Cross-Selling\" | \"Text Product Search\"; widgetId?: string; widgetVersion: string; }",
            "references": {
              "ProductCardEventData": {
                "location": "import",
                "path": "../../recommendation/events",
                "id": "src/recommendation/events.ts::ProductCardEventData"
              }
            }
          },
          "cancelable": true,
          "composed": true,
          "docs": "Emitted once when the card has rendered",
          "docsTags": []
        },
        {
          "event": "vviinnProductView",
          "detail": "{ productId: string; productRank: number; productName: string; productType: string; clickEvent?: MouseEvent; discount?: number; } & { campaignTypeId: \"VPR\" | \"VPS\" | \"TPS\" | \"VCS\"; campaignTypeName: \"Similar Products\" | \"Visual Search\" | \"Cross-Selling\" | \"Text Product Search\"; widgetId?: string; widgetVersion: string; }",
          "bubbles": true,
          "complexType": {
            "original": "ProductCardEventData",
            "resolved": "{ productId: string; productRank: number; productName: string; productType: string; clickEvent?: MouseEvent; discount?: number; } & { campaignTypeId: \"VPR\" | \"VPS\" | \"TPS\" | \"VCS\"; campaignTypeName: \"Similar Products\" | \"Visual Search\" | \"Cross-Selling\" | \"Text Product Search\"; widgetId?: string; widgetVersion: string; }",
            "references": {
              "ProductCardEventData": {
                "location": "import",
                "path": "../../recommendation/events",
                "id": "src/recommendation/events.ts::ProductCardEventData"
              }
            }
          },
          "cancelable": true,
          "composed": true,
          "docs": "Emitted when at least 95% of the card's image is visible",
          "docsTags": []
        }
      ],
      "listeners": [
        {
          "event": "vviinnCrossSellingClick",
          "capture": false,
          "passive": false
        }
      ],
      "styles": [
        {
          "name": "--basket-button-bg-color-pressed",
          "annotation": "prop",
          "docs": "The background color of the pressed Basket Button."
        },
        {
          "name": "--font-family",
          "annotation": "prop",
          "docs": "The font family of the product card."
        },
        {
          "name": "--product-card-content-align",
          "annotation": "prop",
          "docs": "The alignment of the content inside the product card's flex container."
        },
        {
          "name": "--product-card-image-aspect-ratio",
          "annotation": "prop",
          "docs": "The aspect ratio of the product card image (e.g., \"1 / 1\", \"3 / 4\")."
        },
        {
          "name": "--product-card-image-bg-color",
          "annotation": "prop",
          "docs": "The background color of the product card image."
        },
        {
          "name": "--product-card-image-border",
          "annotation": "prop",
          "docs": "The border of the product card image."
        },
        {
          "name": "--product-card-text-align",
          "annotation": "prop",
          "docs": "The alignment of the text inside the product card."
        },
        {
          "name": "--product-card-transition-duration",
          "annotation": "prop",
          "docs": "Duration of skeleton to content transitions."
        }
      ],
      "slots": [
        {
          "name": "vviinn-basket-button-icon",
          "docs": "Icon of Add to Basket button."
        },
        {
          "name": "vviinn-basket-button-icon-pressed",
          "docs": "Icon of pressed Add to Basket button (Set mode)."
        },
        {
          "name": "vviinn-basket-button-text",
          "docs": "Text of Add to Basket button."
        },
        {
          "name": "vviinn-basket-button-text-pressed",
          "docs": "Text of pressed Add to Basket button (Set mode)."
        },
        {
          "name": "vviinn-custom-label-0",
          "docs": "Custom label with index 0."
        },
        {
          "name": "vviinn-custom-label-1",
          "docs": "Custom label with index 1."
        },
        {
          "name": "vviinn-custom-label-2",
          "docs": "Custom label with index 2."
        },
        {
          "name": "vviinn-custom-label-3",
          "docs": "Custom label with index 3."
        },
        {
          "name": "vviinn-custom-label-4",
          "docs": "Custom label with index 4."
        },
        {
          "name": "vviinn-energy-label-data-sheet-text",
          "docs": "Data sheet link's text."
        },
        {
          "name": "vviinn-favorite-icon",
          "docs": "Icon of Favorite button."
        },
        {
          "name": "vviinn-favorite-icon-pressed",
          "docs": "Icon of pressed Favorite button."
        },
        {
          "name": "vviinn-image-placeholder-icon",
          "docs": "Icon or content for the image placeholder."
        },
        {
          "name": "vviinn-product-card-actions",
          "docs": "Add action buttons like One-Click Discovery to this slot."
        },
        {
          "name": "vviinn-update-button-icon",
          "docs": "Icon of Update Button (Set mode)."
        }
      ],
      "parts": [
        {
          "name": "basket-button",
          "docs": "Add to Basket button."
        },
        {
          "name": "basket-button-container",
          "docs": "Product Card's basket button container."
        },
        {
          "name": "brand",
          "docs": "Product brand."
        },
        {
          "name": "content-card",
          "docs": "Content card container. Styled through an embedding widget, e.g. `vviinn-results::part(content-card)`."
        },
        {
          "name": "content-card-content-container",
          "docs": "Content card's content container."
        },
        {
          "name": "content-card-image",
          "docs": "Content card's image."
        },
        {
          "name": "content-card-image-container",
          "docs": "Content card's image container."
        },
        {
          "name": "content-card-image-picture",
          "docs": "Picture element for content card's image."
        },
        {
          "name": "content-container",
          "docs": "Product Card's content container. On content cards, not exported to the widgets."
        },
        {
          "name": "content-label",
          "docs": "Content card's label."
        },
        {
          "name": "content-link",
          "docs": "Content card's link."
        },
        {
          "name": "content-title",
          "docs": "Content card's title."
        },
        {
          "name": "currency",
          "docs": "Currency sign. Renders after price-amount."
        },
        {
          "name": "custom-label-0",
          "docs": "Custom label with index 0."
        },
        {
          "name": "custom-label-1",
          "docs": "Custom label with index 1."
        },
        {
          "name": "custom-label-2",
          "docs": "Custom label with index 2."
        },
        {
          "name": "custom-label-3",
          "docs": "Custom label with index 3."
        },
        {
          "name": "custom-label-4",
          "docs": "Custom label with index 4."
        },
        {
          "name": "custom-label-content",
          "docs": "Custom labels in the content area. Combine with custom-label-N to pick one place."
        },
        {
          "name": "custom-label-image",
          "docs": "Custom labels on the image. Combine with custom-label-N to pick one place."
        },
        {
          "name": "deeplink",
          "docs": "Anchor element for title. Rendered only if \"deeplink\" property is filled."
        },
        {
          "name": "discount-label",
          "docs": "Discount label in Product Card (Set mode)."
        },
        {
          "name": "discount-percentage",
          "docs": "Discount percentage inside the Add to Basket button (Set mode)."
        },
        {
          "name": "energy-label-container",
          "docs": "Energy label container."
        },
        {
          "name": "energy-label-data-sheet-link",
          "docs": "Data sheet link."
        },
        {
          "name": "energy-label-icon",
          "docs": "Icon with an energy class."
        },
        {
          "name": "energy-label-product-type",
          "docs": "Product type."
        },
        {
          "name": "favorite-button",
          "docs": "Favorite button."
        },
        {
          "name": "image",
          "docs": "Product image."
        },
        {
          "name": "image-container",
          "docs": "Product Card's image container."
        },
        {
          "name": "image-link",
          "docs": "Anchor element for image. Rendered only if \"deeplink\" property filled."
        },
        {
          "name": "image-picture",
          "docs": "Picture element for image."
        },
        {
          "name": "image-placeholder",
          "docs": "Placeholder shown when no image is available."
        },
        {
          "name": "image-skeleton",
          "docs": "Placeholder shown while the image loads."
        },
        {
          "name": "list-card",
          "docs": "List card container. Styled through an embedding widget, e.g. `vviinn-results::part(list-card)`."
        },
        {
          "name": "list-card-content-container",
          "docs": "List card's content container."
        },
        {
          "name": "list-card-image",
          "docs": "List card's image."
        },
        {
          "name": "list-card-image-container",
          "docs": "List card's image container."
        },
        {
          "name": "list-card-image-picture",
          "docs": "Picture element for list card's image."
        },
        {
          "name": "list-container",
          "docs": "Same element as list-card-content-container. Not exported to the widgets."
        },
        {
          "name": "list-label",
          "docs": "List card's label (e.g., \"Category\")."
        },
        {
          "name": "list-title",
          "docs": "List card's title."
        },
        {
          "name": "price-amount-base-outdated",
          "docs": "Numeric part of the regular price per unit shown as outdated."
        },
        {
          "name": "price-amount-base-regular",
          "docs": "Numeric part of the regular price per unit."
        },
        {
          "name": "price-amount-base-sale",
          "docs": "Numeric part of the sale price per unit."
        },
        {
          "name": "price-amount-outdated",
          "docs": "Numeric part of the regular price shown as outdated."
        },
        {
          "name": "price-amount-regular",
          "docs": "Numeric part of the regular price."
        },
        {
          "name": "price-amount-sale",
          "docs": "Numeric part of the sale price."
        },
        {
          "name": "price-container",
          "docs": "Wrapper around the price values. Rendered only if \"add-price-container\" property is set."
        },
        {
          "name": "price-outdated",
          "docs": "Renders when \"sale-price\" property filled. Contains regular price."
        },
        {
          "name": "price-prefix",
          "docs": "Renders before price-amount. Can be set with \"price-prefix\" property or inherited from parent component."
        },
        {
          "name": "price-regular",
          "docs": "Renders when \"sale-price\" property is empty."
        },
        {
          "name": "price-sale",
          "docs": "Renders when \"sale-price\" property filled. Contains sale price."
        },
        {
          "name": "product-card",
          "docs": "Card container. Styled through an embedding widget, e.g. `vviinn-results::part(product-card)`."
        },
        {
          "name": "product-card-actions",
          "docs": "Style actions wrapper."
        },
        {
          "name": "product-card-actions-top",
          "docs": "Style top actions wrapper."
        },
        {
          "name": "product-images-pagination",
          "docs": "Container for product images pagination dots (mobile only)."
        },
        {
          "name": "product-images-pagination-bullet",
          "docs": "Individual pagination dot."
        },
        {
          "name": "product-images-pagination-bullet-active",
          "docs": "Active pagination dot."
        },
        {
          "name": "product-type",
          "docs": "Product type."
        },
        {
          "name": "title",
          "docs": "Product title"
        },
        {
          "name": "update-button-item",
          "docs": "Update button in Product Card (Set mode)."
        }
      ],
      "dependents": [
        "vviinn-carousel",
        "vviinn-results",
        "vviinn-shop-the-look",
        "vviinn-vpr-widget"
      ],
      "dependencies": [
        "vviinn-skeleton",
        "vviinn-energy-label",
        "vviinn-image"
      ],
      "dependencyGraph": {
        "vviinn-product-card": [
          "vviinn-skeleton",
          "vviinn-energy-label",
          "vviinn-image"
        ],
        "vviinn-image": [
          "vviinn-skeleton"
        ],
        "vviinn-carousel": [
          "vviinn-product-card"
        ],
        "vviinn-results": [
          "vviinn-product-card"
        ],
        "vviinn-shop-the-look": [
          "vviinn-product-card"
        ],
        "vviinn-vpr-widget": [
          "vviinn-product-card"
        ]
      }
    },
    {
      "filePath": "src/components/vviinn-results/vviinn-results.tsx",
      "encapsulation": "shadow",
      "tag": "vviinn-results",
      "docs": "",
      "docsTags": [
        {
          "name": "part",
          "text": "products - Products container."
        },
        {
          "name": "part",
          "text": "product-card - Product Card itself."
        },
        {
          "name": "part",
          "text": "image-container - Product Card's image container."
        },
        {
          "name": "part",
          "text": "content-container - Product Card's content container."
        },
        {
          "name": "part",
          "text": "basket-button-container - Product Card's basket button container."
        },
        {
          "name": "part",
          "text": "brand - Brand inside Product Card."
        },
        {
          "name": "part",
          "text": "product-type - Product Type inside Product Card."
        },
        {
          "name": "part",
          "text": "currency - Currency related to price."
        },
        {
          "name": "part",
          "text": "deeplink - Anchor element around product title. Rendered only if \"deeplink\" property is filled."
        },
        {
          "name": "part",
          "text": "image - Product Card image."
        },
        {
          "name": "part",
          "text": "image-link - Anchor element around product image. Rendered only if \"deeplink\" property is filled."
        },
        {
          "name": "part",
          "text": "image-picture - Picture element for image."
        },
        {
          "name": "part",
          "text": "image-placeholder - Placeholder shown when no image is available."
        },
        {
          "name": "part",
          "text": "price-amount-regular - Numeric part of the price."
        },
        {
          "name": "part",
          "text": "price-amount-sale - Numeric part of the price."
        },
        {
          "name": "part",
          "text": "price-amount-outdated - Numeric part of the price."
        },
        {
          "name": "part",
          "text": "price-amount-base-sale - Numeric part of the base price."
        },
        {
          "name": "part",
          "text": "price-amount-base-outdated - Numeric part of the base price."
        },
        {
          "name": "part",
          "text": "price-amount-base-regular - Numeric part of the base price."
        },
        {
          "name": "part",
          "text": "price-outdated - Block for outdated price. Rendered when the product contains the sale price."
        },
        {
          "name": "part",
          "text": "price-regular - Block for a price if no sale price is presented."
        },
        {
          "name": "part",
          "text": "price-sale - Block for sale price. Rendered only if the sale price is presented."
        },
        {
          "name": "part",
          "text": "price-prefix - Block rendered before each price element (for ex. \"from\")."
        },
        {
          "name": "part",
          "text": "title - Title inside Product Card."
        },
        {
          "name": "part",
          "text": "basket-button - Add to Basket button."
        },
        {
          "name": "part",
          "text": "basket-button-container - Product Card's basket button container."
        },
        {
          "name": "part",
          "text": "favorite-button - Favorite button."
        },
        {
          "name": "part",
          "text": "product-card-actions - Product Card actions wrapper."
        },
        {
          "name": "part",
          "text": "product-card-actions-top - Product Card top actions wrapper."
        },
        {
          "name": "part",
          "text": "energy-label-container - Energy label container."
        },
        {
          "name": "part",
          "text": "energy-label-icon - Icon with an energy class."
        },
        {
          "name": "part",
          "text": "energy-label-product-type - Product type."
        },
        {
          "name": "part",
          "text": "energy-label-data-sheet-link - Data sheet link."
        },
        {
          "name": "part",
          "text": "product-images-pagination - Container for product images pagination dots (mobile only)."
        },
        {
          "name": "part",
          "text": "product-images-pagination-bullet - Individual pagination dot."
        },
        {
          "name": "part",
          "text": "product-images-pagination-bullet-active - Active pagination dot."
        },
        {
          "name": "part",
          "text": "custom-label-0 - Custom label with index 0."
        },
        {
          "name": "part",
          "text": "custom-label-1 - Custom label with index 1."
        },
        {
          "name": "part",
          "text": "custom-label-2 - Custom label with index 2."
        },
        {
          "name": "part",
          "text": "custom-label-3 - Custom label with index 3."
        },
        {
          "name": "part",
          "text": "custom-label-4 - Custom label with index 4."
        },
        {
          "name": "part",
          "text": "list-card - List card container (for entity-type=\"list\")."
        },
        {
          "name": "part",
          "text": "list-card-content-container - List card's content container."
        },
        {
          "name": "part",
          "text": "list-label - List card's label (e.g., \"Category\")."
        },
        {
          "name": "part",
          "text": "list-title - List card's title."
        },
        {
          "name": "part",
          "text": "list-card-image-container - List card's image container."
        },
        {
          "name": "part",
          "text": "list-card-image - List card's image element."
        },
        {
          "name": "part",
          "text": "list-card-image-picture - List card's image picture element."
        },
        {
          "name": "part",
          "text": "content-card - Content card container (for entity-type=\"content\")."
        },
        {
          "name": "part",
          "text": "content-card-content-container - Content card's content container."
        },
        {
          "name": "part",
          "text": "content-label - Content card's label."
        },
        {
          "name": "part",
          "text": "content-title - Content card's title."
        },
        {
          "name": "part",
          "text": "content-link - Content card's link."
        },
        {
          "name": "part",
          "text": "content-card-image - Content card's image element."
        },
        {
          "name": "part",
          "text": "content-card-image-container - Content card's image container."
        },
        {
          "name": "part",
          "text": "content-card-image-picture - Content card's image picture element."
        },
        {
          "name": "slot",
          "text": "vviinn-results-vpr-icon - One-Click Discovery icon."
        },
        {
          "name": "slot",
          "text": "vviinn-favorite-icon - Icon of Favorite button."
        },
        {
          "name": "slot",
          "text": "vviinn-favorite-icon-pressed - Icon of pressed Favorite button."
        },
        {
          "name": "slot",
          "text": "vviinn-basket-button-text - Text of Add to Basket button."
        },
        {
          "name": "slot",
          "text": "vviinn-basket-button-icon - Text of Add to Basket icon."
        },
        {
          "name": "slot",
          "text": "vviinn-basket-button-text-pressed - Text of pressed Add to Basket button."
        },
        {
          "name": "slot",
          "text": "vviinn-basket-button-icon-pressed - Icon of pressed Add to Basket button."
        },
        {
          "name": "slot",
          "text": "vviinn-custom-label-0 - Custom label with index 0."
        },
        {
          "name": "slot",
          "text": "vviinn-custom-label-1 - Custom label with index 1."
        },
        {
          "name": "slot",
          "text": "vviinn-custom-label-2 - Custom label with index 2."
        },
        {
          "name": "slot",
          "text": "vviinn-custom-label-3 - Custom label with index 3."
        },
        {
          "name": "slot",
          "text": "vviinn-custom-label-4 - Custom label with index 4."
        },
        {
          "name": "slot",
          "text": "vviinn-image-placeholder-icon - Icon or content for the image placeholder."
        }
      ],
      "usage": {},
      "props": [
        {
          "name": "addPriceContainer",
          "type": "boolean",
          "complexType": {
            "original": "boolean",
            "resolved": "boolean",
            "references": {}
          },
          "mutable": false,
          "attr": "add-price-container",
          "reflectToAttr": false,
          "docs": "Wrap the Product Card's price values in the container.",
          "docsTags": [],
          "default": "false",
          "values": [
            {
              "type": "boolean"
            }
          ],
          "optional": true,
          "required": false,
          "getter": false,
          "setter": false
        },
        {
          "name": "addToBasketShow",
          "type": "boolean",
          "complexType": {
            "original": "boolean",
            "resolved": "boolean",
            "references": {}
          },
          "mutable": false,
          "attr": "add-to-basket-show",
          "reflectToAttr": false,
          "docs": "Show or hide Add to Basket buttons",
          "docsTags": [],
          "default": "false",
          "values": [
            {
              "type": "boolean"
            }
          ],
          "optional": false,
          "required": false,
          "getter": false,
          "setter": false
        },
        {
          "name": "apiPath",
          "type": "string",
          "complexType": {
            "original": "string",
            "resolved": "string",
            "references": {}
          },
          "mutable": false,
          "attr": "api-path",
          "reflectToAttr": false,
          "docs": "API endpoint URL (optional, defaults to production)",
          "docsTags": [],
          "values": [
            {
              "type": "string"
            }
          ],
          "optional": true,
          "required": false,
          "getter": false,
          "setter": false
        },
        {
          "name": "campaignIdTextSearch",
          "type": "string",
          "complexType": {
            "original": "string",
            "resolved": "string",
            "references": {}
          },
          "mutable": false,
          "attr": "campaign-id-text-search",
          "reflectToAttr": false,
          "docs": "Campaign ID used for Text Search",
          "docsTags": [],
          "default": "\"\"",
          "values": [
            {
              "type": "string"
            }
          ],
          "optional": false,
          "required": false,
          "getter": false,
          "setter": false
        },
        {
          "name": "campaignIdVisualSearch",
          "type": "string",
          "complexType": {
            "original": "string",
            "resolved": "string",
            "references": {}
          },
          "mutable": false,
          "attr": "campaign-id-visual-search",
          "reflectToAttr": false,
          "docs": "Campaign ID used for Visual Search",
          "docsTags": [],
          "default": "\"\"",
          "values": [
            {
              "type": "string"
            }
          ],
          "optional": false,
          "required": false,
          "getter": false,
          "setter": false
        },
        {
          "name": "cssUrl",
          "type": "string",
          "complexType": {
            "original": "string | null",
            "resolved": "string",
            "references": {}
          },
          "mutable": false,
          "attr": "css-url",
          "reflectToAttr": false,
          "docs": "URL to external CSS file for custom styling",
          "docsTags": [],
          "default": "null",
          "values": [
            {
              "type": "string"
            }
          ],
          "optional": false,
          "required": false,
          "getter": false,
          "setter": false
        },
        {
          "name": "currencySign",
          "type": "string",
          "complexType": {
            "original": "string",
            "resolved": "string",
            "references": {}
          },
          "mutable": false,
          "attr": "currency-sign",
          "reflectToAttr": false,
          "docs": "The currency sign is displayed after the price",
          "docsTags": [],
          "values": [
            {
              "type": "string"
            }
          ],
          "optional": true,
          "required": false,
          "getter": false,
          "setter": false
        },
        {
          "name": "favoriteShow",
          "type": "boolean",
          "complexType": {
            "original": "boolean",
            "resolved": "boolean",
            "references": {}
          },
          "mutable": false,
          "attr": "favorite-show",
          "reflectToAttr": false,
          "docs": "Show or hide Favorite button",
          "docsTags": [],
          "default": "false",
          "values": [
            {
              "type": "boolean"
            }
          ],
          "optional": false,
          "required": false,
          "getter": false,
          "setter": false
        },
        {
          "name": "filterColumn",
          "type": "string",
          "complexType": {
            "original": "string",
            "resolved": "string",
            "references": {}
          },
          "mutable": false,
          "attr": "filter-column",
          "reflectToAttr": false,
          "docs": "Column for performing Product Listing Page request",
          "docsTags": [],
          "default": "\"product_type\"",
          "values": [
            {
              "type": "string"
            }
          ],
          "optional": true,
          "required": false,
          "getter": false,
          "setter": false
        },
        {
          "name": "filterValue",
          "type": "string",
          "complexType": {
            "original": "string",
            "resolved": "string",
            "references": {}
          },
          "mutable": false,
          "attr": "filter-value",
          "reflectToAttr": false,
          "docs": "Value for performing Product Listing Page request",
          "docsTags": [],
          "values": [
            {
              "type": "string"
            }
          ],
          "optional": true,
          "required": false,
          "getter": false,
          "setter": false
        },
        {
          "name": "imageResolutionWidth",
          "type": "number",
          "complexType": {
            "original": "number",
            "resolved": "number",
            "references": {}
          },
          "mutable": false,
          "attr": "image-resolution-width",
          "reflectToAttr": false,
          "docs": "Resolution width of an image in the product card",
          "docsTags": [],
          "default": "RESULTS_WIDGET_IMAGE_RESOLUTION_WIDTH",
          "values": [
            {
              "type": "number"
            }
          ],
          "optional": true,
          "required": false,
          "getter": false,
          "setter": false
        },
        {
          "name": "locale",
          "type": "Locale",
          "complexType": {
            "original": "Locale",
            "resolved": "Locale",
            "references": {
              "Locale": {
                "location": "global",
                "id": "global::Locale"
              }
            }
          },
          "mutable": false,
          "attr": "locale",
          "reflectToAttr": false,
          "docs": "Locale for text localization",
          "docsTags": [],
          "values": [
            {
              "type": "Locale"
            }
          ],
          "optional": true,
          "required": false,
          "getter": false,
          "setter": false
        },
        {
          "name": "numberLocale",
          "type": "string",
          "complexType": {
            "original": "string",
            "resolved": "string",
            "references": {}
          },
          "mutable": false,
          "attr": "number-locale",
          "reflectToAttr": false,
          "docs": "Locale for number formatting. Falls back to locale",
          "docsTags": [],
          "values": [
            {
              "type": "string"
            }
          ],
          "optional": true,
          "required": false,
          "getter": false,
          "setter": false
        },
        {
          "name": "oneClickDiscoveryCampaigns",
          "type": "string",
          "complexType": {
            "original": "string",
            "resolved": "string",
            "references": {}
          },
          "mutable": false,
          "attr": "one-click-discovery-campaigns",
          "reflectToAttr": false,
          "docs": "Comma-separated list of campaign IDs",
          "docsTags": [],
          "default": "\"\"",
          "values": [
            {
              "type": "string"
            }
          ],
          "optional": false,
          "required": false,
          "getter": false,
          "setter": false
        },
        {
          "name": "oneClickDiscoveryMode",
          "type": "\"append-grid\" | \"append-slider\" | \"modal\" | \"unset\"",
          "complexType": {
            "original": "OneClickDiscoveryMode",
            "resolved": "\"append-grid\" | \"append-slider\" | \"modal\" | \"unset\"",
            "references": {
              "OneClickDiscoveryMode": {
                "location": "import",
                "path": "../../widget/types",
                "id": "src/widget/types.ts::OneClickDiscoveryMode"
              }
            }
          },
          "mutable": false,
          "attr": "one-click-discovery-mode",
          "reflectToAttr": false,
          "docs": "One-Click Discovery Mode",
          "docsTags": [],
          "default": "\"append-grid\"",
          "values": [
            {
              "value": "append-grid",
              "type": "string"
            },
            {
              "value": "append-slider",
              "type": "string"
            },
            {
              "value": "modal",
              "type": "string"
            },
            {
              "value": "unset",
              "type": "string"
            }
          ],
          "optional": true,
          "required": false,
          "getter": false,
          "setter": false
        },
        {
          "name": "pricePrefix",
          "type": "string",
          "complexType": {
            "original": "string",
            "resolved": "string",
            "references": {}
          },
          "mutable": false,
          "attr": "price-prefix",
          "reflectToAttr": false,
          "docs": "Prefix is displayed before the price",
          "docsTags": [],
          "values": [
            {
              "type": "string"
            }
          ],
          "optional": true,
          "required": false,
          "getter": false,
          "setter": false
        },
        {
          "name": "productDetailsNewTab",
          "type": "boolean",
          "complexType": {
            "original": "boolean",
            "resolved": "boolean",
            "references": {}
          },
          "mutable": false,
          "attr": "product-details-new-tab",
          "reflectToAttr": false,
          "docs": "Toggle for opening product link in new tab or not",
          "docsTags": [],
          "default": "false",
          "values": [
            {
              "type": "boolean"
            }
          ],
          "optional": true,
          "required": false,
          "getter": false,
          "setter": false
        },
        {
          "name": "productDetailsRedirect",
          "type": "boolean",
          "complexType": {
            "original": "boolean",
            "resolved": "boolean",
            "references": {}
          },
          "mutable": false,
          "attr": "product-details-redirect",
          "reflectToAttr": false,
          "docs": "Toggle for redirection to PDP on product's click",
          "docsTags": [],
          "default": "true",
          "values": [
            {
              "type": "boolean"
            }
          ],
          "optional": true,
          "required": false,
          "getter": false,
          "setter": false
        },
        {
          "name": "resultsCount",
          "type": "number",
          "complexType": {
            "original": "number",
            "resolved": "number",
            "references": {}
          },
          "mutable": false,
          "attr": "results-count",
          "reflectToAttr": false,
          "docs": "Number of results displayed for text search and product listing page (less or equal to the value, set in the campaign)",
          "docsTags": [],
          "values": [
            {
              "type": "number"
            }
          ],
          "optional": true,
          "required": false,
          "getter": false,
          "setter": false
        },
        {
          "name": "resultsPageParams",
          "type": "string",
          "complexType": {
            "original": "string",
            "resolved": "string",
            "references": {}
          },
          "mutable": false,
          "attr": "results-page-params",
          "reflectToAttr": false,
          "docs": "Custom URL param names parsed from results page URL. Default: \"query=query&searchId=searchId\".",
          "docsTags": [],
          "values": [
            {
              "type": "string"
            }
          ],
          "optional": true,
          "required": false,
          "getter": false,
          "setter": false
        },
        {
          "name": "resultsPageUrl",
          "type": "string",
          "complexType": {
            "original": "string",
            "resolved": "string",
            "references": {}
          },
          "mutable": false,
          "attr": "results-page-url",
          "reflectToAttr": false,
          "docs": "URL of the results page. When set, the component parses URL parameters (query, searchId) on load.",
          "docsTags": [],
          "values": [
            {
              "type": "string"
            }
          ],
          "optional": true,
          "required": false,
          "getter": false,
          "setter": false
        },
        {
          "name": "searchId",
          "type": "string",
          "complexType": {
            "original": "string",
            "resolved": "string",
            "references": {}
          },
          "mutable": false,
          "attr": "search-id",
          "reflectToAttr": false,
          "docs": "Search ID for results request",
          "docsTags": [],
          "values": [
            {
              "type": "string"
            }
          ],
          "optional": true,
          "required": false,
          "getter": false,
          "setter": false
        },
        {
          "name": "showMultipleImages",
          "type": "boolean",
          "complexType": {
            "original": "boolean",
            "resolved": "boolean",
            "references": {}
          },
          "mutable": false,
          "attr": "show-multiple-images",
          "reflectToAttr": false,
          "docs": "Show multiple images: swiper on mobile, hover on desktop in product cards",
          "docsTags": [],
          "default": "false",
          "values": [
            {
              "type": "boolean"
            }
          ],
          "optional": false,
          "required": false,
          "getter": false,
          "setter": false
        },
        {
          "name": "textSearchQuery",
          "type": "string",
          "complexType": {
            "original": "string",
            "resolved": "string",
            "references": {}
          },
          "mutable": false,
          "attr": "text-search-query",
          "reflectToAttr": false,
          "docs": "Query to perform a text search. It is recommended to use the search-query prop for vviinn-text-search instead, when using the Search Bar on the same page.",
          "docsTags": [],
          "values": [
            {
              "type": "string"
            }
          ],
          "optional": true,
          "required": false,
          "getter": false,
          "setter": false
        },
        {
          "name": "token",
          "type": "string",
          "complexType": {
            "original": "string",
            "resolved": "string",
            "references": {}
          },
          "mutable": false,
          "attr": "token",
          "reflectToAttr": false,
          "docs": "Vviinn customer's token (required)",
          "docsTags": [],
          "values": [
            {
              "type": "string"
            }
          ],
          "optional": false,
          "required": false,
          "getter": false,
          "setter": false
        }
      ],
      "methods": [],
      "events": [
        {
          "event": "vviinnNoResult",
          "detail": "BasicEventData",
          "bubbles": true,
          "complexType": {
            "original": "BasicEventData",
            "resolved": "BasicEventData",
            "references": {
              "BasicEventData": {
                "location": "global",
                "id": "global::BasicEventData"
              }
            }
          },
          "cancelable": true,
          "composed": true,
          "docs": "Triggered when a text search request fails",
          "docsTags": []
        },
        {
          "event": "vviinnProductClick",
          "detail": "{ productId: string; productRank: number; productName: string; productType: string; clickEvent?: MouseEvent; discount?: number; } & { campaignTypeId: \"VPR\" | \"VPS\" | \"TPS\" | \"VCS\"; campaignTypeName: \"Similar Products\" | \"Visual Search\" | \"Cross-Selling\" | \"Text Product Search\"; widgetId?: string; widgetVersion: string; }",
          "bubbles": true,
          "complexType": {
            "original": "ProductCardEventData",
            "resolved": "{ productId: string; productRank: number; productName: string; productType: string; clickEvent?: MouseEvent; discount?: number; } & { campaignTypeId: \"VPR\" | \"VPS\" | \"TPS\" | \"VCS\"; campaignTypeName: \"Similar Products\" | \"Visual Search\" | \"Cross-Selling\" | \"Text Product Search\"; widgetId?: string; widgetVersion: string; }",
            "references": {
              "ProductCardEventData": {
                "location": "import",
                "path": "../../recommendation/events",
                "id": "src/recommendation/events.ts::ProductCardEventData"
              }
            }
          },
          "cancelable": true,
          "composed": true,
          "docs": "Click on the product's link",
          "docsTags": []
        },
        {
          "event": "vviinnProductLoad",
          "detail": "{ productId: string; productRank: number; productName: string; productType: string; clickEvent?: MouseEvent; discount?: number; } & { campaignTypeId: \"VPR\" | \"VPS\" | \"TPS\" | \"VCS\"; campaignTypeName: \"Similar Products\" | \"Visual Search\" | \"Cross-Selling\" | \"Text Product Search\"; widgetId?: string; widgetVersion: string; }",
          "bubbles": true,
          "complexType": {
            "original": "ProductCardEventData",
            "resolved": "{ productId: string; productRank: number; productName: string; productType: string; clickEvent?: MouseEvent; discount?: number; } & { campaignTypeId: \"VPR\" | \"VPS\" | \"TPS\" | \"VCS\"; campaignTypeName: \"Similar Products\" | \"Visual Search\" | \"Cross-Selling\" | \"Text Product Search\"; widgetId?: string; widgetVersion: string; }",
            "references": {
              "ProductCardEventData": {
                "location": "import",
                "path": "../../recommendation/events",
                "id": "src/recommendation/events.ts::ProductCardEventData"
              }
            }
          },
          "cancelable": true,
          "composed": true,
          "docs": "Recommended product renders on the page",
          "docsTags": []
        },
        {
          "event": "vviinnProductView",
          "detail": "{ productId: string; productRank: number; productName: string; productType: string; clickEvent?: MouseEvent; discount?: number; } & { campaignTypeId: \"VPR\" | \"VPS\" | \"TPS\" | \"VCS\"; campaignTypeName: \"Similar Products\" | \"Visual Search\" | \"Cross-Selling\" | \"Text Product Search\"; widgetId?: string; widgetVersion: string; }",
          "bubbles": true,
          "complexType": {
            "original": "ProductCardEventData",
            "resolved": "{ productId: string; productRank: number; productName: string; productType: string; clickEvent?: MouseEvent; discount?: number; } & { campaignTypeId: \"VPR\" | \"VPS\" | \"TPS\" | \"VCS\"; campaignTypeName: \"Similar Products\" | \"Visual Search\" | \"Cross-Selling\" | \"Text Product Search\"; widgetId?: string; widgetVersion: string; }",
            "references": {
              "ProductCardEventData": {
                "location": "import",
                "path": "../../recommendation/events",
                "id": "src/recommendation/events.ts::ProductCardEventData"
              }
            }
          },
          "cancelable": true,
          "composed": true,
          "docs": "Recommended product appears in the viewport",
          "docsTags": []
        },
        {
          "event": "vviinnResultLoad",
          "detail": "BasicEventData",
          "bubbles": true,
          "complexType": {
            "original": "BasicEventData",
            "resolved": "BasicEventData",
            "references": {
              "BasicEventData": {
                "location": "global",
                "id": "global::BasicEventData"
              }
            }
          },
          "cancelable": true,
          "composed": true,
          "docs": "The search result renders on the page",
          "docsTags": []
        },
        {
          "event": "vviinnResultView",
          "detail": "BasicEventData",
          "bubbles": true,
          "complexType": {
            "original": "BasicEventData",
            "resolved": "BasicEventData",
            "references": {
              "BasicEventData": {
                "location": "global",
                "id": "global::BasicEventData"
              }
            }
          },
          "cancelable": true,
          "composed": true,
          "docs": "The search result appears in the viewport",
          "docsTags": []
        }
      ],
      "listeners": [
        {
          "event": "vviinnProductLoad",
          "capture": false,
          "passive": false
        },
        {
          "event": "vviinnProductView",
          "capture": false,
          "passive": false
        },
        {
          "event": "vviinnProductClick",
          "capture": false,
          "passive": false
        },
        {
          "event": "vviinnAuxClick",
          "capture": false,
          "passive": false
        },
        {
          "event": "vviinnAddToBasket",
          "capture": false,
          "passive": false
        },
        {
          "event": "vviinnAddToFavorite",
          "capture": false,
          "passive": false
        }
      ],
      "styles": [
        {
          "name": "--basket-button-bg-color-pressed",
          "annotation": "prop",
          "docs": "The background color of the pressed Basket Button."
        },
        {
          "name": "--font-family",
          "annotation": "prop",
          "docs": "The font family of the widget."
        },
        {
          "name": "--product-card-content-align",
          "annotation": "prop",
          "docs": "The alignment of the content inside the product card's flex container."
        },
        {
          "name": "--product-card-image-aspect-ratio",
          "annotation": "prop",
          "docs": "The aspect ratio of the product card image (e.g., \"1 / 1\", \"3 / 4\")."
        },
        {
          "name": "--product-card-image-bg-color",
          "annotation": "prop",
          "docs": "The background color of the product card image."
        },
        {
          "name": "--product-card-image-border",
          "annotation": "prop",
          "docs": "The border of the product card image."
        },
        {
          "name": "--product-card-text-align",
          "annotation": "prop",
          "docs": "The alignment of the text inside the product card."
        },
        {
          "name": "--product-card-width",
          "annotation": "prop",
          "docs": "Minimum width of product card inside the grid."
        },
        {
          "name": "--vviinn-results-row-gap",
          "annotation": "prop",
          "docs": "Vertical gap between rows of product cards."
        }
      ],
      "slots": [
        {
          "name": "vviinn-basket-button-icon",
          "docs": "Text of Add to Basket icon."
        },
        {
          "name": "vviinn-basket-button-icon-pressed",
          "docs": "Icon of pressed Add to Basket button."
        },
        {
          "name": "vviinn-basket-button-text",
          "docs": "Text of Add to Basket button."
        },
        {
          "name": "vviinn-basket-button-text-pressed",
          "docs": "Text of pressed Add to Basket button."
        },
        {
          "name": "vviinn-custom-label-0",
          "docs": "Custom label with index 0."
        },
        {
          "name": "vviinn-custom-label-1",
          "docs": "Custom label with index 1."
        },
        {
          "name": "vviinn-custom-label-2",
          "docs": "Custom label with index 2."
        },
        {
          "name": "vviinn-custom-label-3",
          "docs": "Custom label with index 3."
        },
        {
          "name": "vviinn-custom-label-4",
          "docs": "Custom label with index 4."
        },
        {
          "name": "vviinn-favorite-icon",
          "docs": "Icon of Favorite button."
        },
        {
          "name": "vviinn-favorite-icon-pressed",
          "docs": "Icon of pressed Favorite button."
        },
        {
          "name": "vviinn-image-placeholder-icon",
          "docs": "Icon or content for the image placeholder."
        },
        {
          "name": "vviinn-results-vpr-icon",
          "docs": "One-Click Discovery icon."
        }
      ],
      "parts": [
        {
          "name": "basket-button",
          "docs": "Add to Basket button."
        },
        {
          "name": "basket-button-container",
          "docs": "Product Card's basket button container."
        },
        {
          "name": "brand",
          "docs": "Brand inside Product Card."
        },
        {
          "name": "content-card",
          "docs": "Content card container (for entity-type=\"content\")."
        },
        {
          "name": "content-card-content-container",
          "docs": "Content card's content container."
        },
        {
          "name": "content-card-image",
          "docs": "Content card's image element."
        },
        {
          "name": "content-card-image-container",
          "docs": "Content card's image container."
        },
        {
          "name": "content-card-image-picture",
          "docs": "Content card's image picture element."
        },
        {
          "name": "content-container",
          "docs": "Product Card's content container."
        },
        {
          "name": "content-label",
          "docs": "Content card's label."
        },
        {
          "name": "content-link",
          "docs": "Content card's link."
        },
        {
          "name": "content-title",
          "docs": "Content card's title."
        },
        {
          "name": "currency",
          "docs": "Currency related to price."
        },
        {
          "name": "custom-label-0",
          "docs": "Custom label with index 0."
        },
        {
          "name": "custom-label-1",
          "docs": "Custom label with index 1."
        },
        {
          "name": "custom-label-2",
          "docs": "Custom label with index 2."
        },
        {
          "name": "custom-label-3",
          "docs": "Custom label with index 3."
        },
        {
          "name": "custom-label-4",
          "docs": "Custom label with index 4."
        },
        {
          "name": "deeplink",
          "docs": "Anchor element around product title. Rendered only if \"deeplink\" property is filled."
        },
        {
          "name": "energy-label-container",
          "docs": "Energy label container."
        },
        {
          "name": "energy-label-data-sheet-link",
          "docs": "Data sheet link."
        },
        {
          "name": "energy-label-icon",
          "docs": "Icon with an energy class."
        },
        {
          "name": "energy-label-product-type",
          "docs": "Product type."
        },
        {
          "name": "favorite-button",
          "docs": "Favorite button."
        },
        {
          "name": "image",
          "docs": "Product Card image."
        },
        {
          "name": "image-container",
          "docs": "Product Card's image container."
        },
        {
          "name": "image-link",
          "docs": "Anchor element around product image. Rendered only if \"deeplink\" property is filled."
        },
        {
          "name": "image-picture",
          "docs": "Picture element for image."
        },
        {
          "name": "image-placeholder",
          "docs": "Placeholder shown when no image is available."
        },
        {
          "name": "list-card",
          "docs": "List card container (for entity-type=\"list\")."
        },
        {
          "name": "list-card-content-container",
          "docs": "List card's content container."
        },
        {
          "name": "list-card-image",
          "docs": "List card's image element."
        },
        {
          "name": "list-card-image-container",
          "docs": "List card's image container."
        },
        {
          "name": "list-card-image-picture",
          "docs": "List card's image picture element."
        },
        {
          "name": "list-label",
          "docs": "List card's label (e.g., \"Category\")."
        },
        {
          "name": "list-title",
          "docs": "List card's title."
        },
        {
          "name": "price-amount-base-outdated",
          "docs": "Numeric part of the base price."
        },
        {
          "name": "price-amount-base-regular",
          "docs": "Numeric part of the base price."
        },
        {
          "name": "price-amount-base-sale",
          "docs": "Numeric part of the base price."
        },
        {
          "name": "price-amount-outdated",
          "docs": "Numeric part of the price."
        },
        {
          "name": "price-amount-regular",
          "docs": "Numeric part of the price."
        },
        {
          "name": "price-amount-sale",
          "docs": "Numeric part of the price."
        },
        {
          "name": "price-outdated",
          "docs": "Block for outdated price. Rendered when the product contains the sale price."
        },
        {
          "name": "price-prefix",
          "docs": "Block rendered before each price element (for ex. \"from\")."
        },
        {
          "name": "price-regular",
          "docs": "Block for a price if no sale price is presented."
        },
        {
          "name": "price-sale",
          "docs": "Block for sale price. Rendered only if the sale price is presented."
        },
        {
          "name": "product-card",
          "docs": "Product Card itself."
        },
        {
          "name": "product-card-actions",
          "docs": "Product Card actions wrapper."
        },
        {
          "name": "product-card-actions-top",
          "docs": "Product Card top actions wrapper."
        },
        {
          "name": "product-images-pagination",
          "docs": "Container for product images pagination dots (mobile only)."
        },
        {
          "name": "product-images-pagination-bullet",
          "docs": "Individual pagination dot."
        },
        {
          "name": "product-images-pagination-bullet-active",
          "docs": "Active pagination dot."
        },
        {
          "name": "product-type",
          "docs": "Product Type inside Product Card."
        },
        {
          "name": "products",
          "docs": "Products container."
        },
        {
          "name": "title",
          "docs": "Title inside Product Card."
        }
      ],
      "dependents": [
        "vviinn-vps-widget"
      ],
      "dependencies": [
        "vviinn-product-card",
        "vviinn-vpr-button",
        "vviinn-error"
      ],
      "dependencyGraph": {
        "vviinn-results": [
          "vviinn-product-card",
          "vviinn-vpr-button",
          "vviinn-error"
        ],
        "vviinn-product-card": [
          "vviinn-skeleton",
          "vviinn-energy-label",
          "vviinn-image"
        ],
        "vviinn-image": [
          "vviinn-skeleton"
        ],
        "vviinn-vpr-button": [
          "vviinn-button",
          "vviinn-recommendations-sidebar"
        ],
        "vviinn-recommendations-sidebar": [
          "vviinn-vpr-widget"
        ],
        "vviinn-vpr-widget": [
          "vviinn-product-card",
          "vviinn-carousel",
          "vviinn-filters",
          "vviinn-extended-filters"
        ],
        "vviinn-carousel": [
          "vviinn-product-card"
        ],
        "vviinn-filters": [
          "vviinn-range-filter"
        ],
        "vviinn-extended-filters": [
          "vviinn-range-filter",
          "vviinn-extended-filters-button"
        ],
        "vviinn-vps-widget": [
          "vviinn-results"
        ]
      }
    },
    {
      "filePath": "src/components/vviinn-filters/vviinn-selected-filters.tsx",
      "encapsulation": "shadow",
      "tag": "vviinn-selected-filters",
      "docs": "",
      "docsTags": [
        {
          "name": "part",
          "text": "selected-filters-list - List of selected filters."
        },
        {
          "name": "part",
          "text": "filters-sub-row - Row of the sub filters."
        },
        {
          "name": "part",
          "text": "filters-option-button - Button of the sub filter."
        },
        {
          "name": "part",
          "text": "filters-option-image - Image of the sub filter."
        },
        {
          "name": "part",
          "text": "filters-option-color-dot - Color Dot of the sub filter."
        },
        {
          "name": "part",
          "text": "filters-option-text - Text of the sub filter."
        },
        {
          "name": "part",
          "text": "filters-option-icon-wrapper - Icon Wrapper of the sub filter."
        }
      ],
      "usage": {},
      "props": [
        {
          "name": "currencySign",
          "type": "string",
          "complexType": {
            "original": "string",
            "resolved": "string",
            "references": {}
          },
          "mutable": false,
          "attr": "currency-sign",
          "reflectToAttr": false,
          "docs": "The currency sign displayed after price values",
          "docsTags": [],
          "values": [
            {
              "type": "string"
            }
          ],
          "optional": true,
          "required": false,
          "getter": false,
          "setter": false
        },
        {
          "name": "locale",
          "type": "\"de-DE\" | \"en-US\"",
          "complexType": {
            "original": "Locale",
            "resolved": "\"de-DE\" | \"en-US\"",
            "references": {
              "Locale": {
                "location": "import",
                "path": "../../locale",
                "id": "src/locale/index.ts::Locale"
              }
            }
          },
          "mutable": false,
          "attr": "locale",
          "reflectToAttr": false,
          "docs": "Locale for text localization",
          "docsTags": [],
          "values": [
            {
              "value": "de-DE",
              "type": "string"
            },
            {
              "value": "en-US",
              "type": "string"
            }
          ],
          "optional": true,
          "required": false,
          "getter": false,
          "setter": false
        }
      ],
      "methods": [],
      "events": [
        {
          "event": "vviinnFiltersChanged",
          "detail": "{ filters: { column: string; values: string[] | { start?: number; end?: number; }[]; }[]; el: HTMLElement; isTriggeredByVpsWidget?: boolean; }",
          "bubbles": true,
          "complexType": {
            "original": "ChangedFiltersEventData",
            "resolved": "{ filters: { column: string; values: string[] | { start?: number; end?: number; }[]; }[]; el: HTMLElement; isTriggeredByVpsWidget?: boolean; }",
            "references": {
              "ChangedFiltersEventData": {
                "location": "import",
                "path": "../../recommendation/events",
                "id": "src/recommendation/events.ts::ChangedFiltersEventData"
              }
            }
          },
          "cancelable": true,
          "composed": true,
          "docs": "The filter's state changes",
          "docsTags": []
        },
        {
          "event": "vviinnFilterTriggered",
          "detail": "DynamicFilterTrackingData & { customTrigger?: Widget; filter?: ResponseDynamicFilterItem; }",
          "bubbles": true,
          "complexType": {
            "original": "DynamicFilterInternalData",
            "resolved": "DynamicFilterTrackingData & { customTrigger?: Widget; filter?: ResponseDynamicFilterItem; }",
            "references": {
              "DynamicFilterInternalData": {
                "location": "import",
                "path": "../../recommendation/events",
                "id": "src/recommendation/events.ts::DynamicFilterInternalData"
              }
            }
          },
          "cancelable": true,
          "composed": true,
          "docs": "",
          "docsTags": []
        }
      ],
      "listeners": [],
      "styles": [
        {
          "name": "--font-family",
          "annotation": "prop",
          "docs": "The font family of the filters."
        }
      ],
      "slots": [],
      "parts": [
        {
          "name": "filters-option-button",
          "docs": "Button of the sub filter."
        },
        {
          "name": "filters-option-color-dot",
          "docs": "Color Dot of the sub filter."
        },
        {
          "name": "filters-option-icon-wrapper",
          "docs": "Icon Wrapper of the sub filter."
        },
        {
          "name": "filters-option-image",
          "docs": "Image of the sub filter."
        },
        {
          "name": "filters-option-text",
          "docs": "Text of the sub filter."
        },
        {
          "name": "filters-sub-row",
          "docs": "Row of the sub filters."
        },
        {
          "name": "selected-filters-list",
          "docs": "List of selected filters."
        }
      ],
      "dependents": [
        "vviinn-vps-widget"
      ],
      "dependencies": [],
      "dependencyGraph": {
        "vviinn-vps-widget": [
          "vviinn-selected-filters"
        ]
      }
    },
    {
      "filePath": "src/components/vviinn-shop-the-look/vviinn-shop-the-look.tsx",
      "encapsulation": "shadow",
      "tag": "vviinn-shop-the-look",
      "docs": "Interactive \"Shop-the-Look\" widget that enables visual product search on fashion/interior images.\nUsers can click on hotspots (detected objects) to discover similar products and see recommendations in a modal.\n\nSupports multiple images with swiper navigation, responsive design, and customizable styling.",
      "docsTags": [
        {
          "name": "part",
          "text": "shop-the-look-actions-container - The actions container wrapping the upload button"
        },
        {
          "name": "part",
          "text": "shop-the-look-upload-button - The upload button element"
        },
        {
          "name": "part",
          "text": "shop-the-look-upload-button-icon - The upload button icon wrapper"
        },
        {
          "name": "part",
          "text": "shop-the-look-upload-button-text - The upload button text wrapper"
        },
        {
          "name": "part",
          "text": "shop-the-look-results-grid - The tiles grid in the grid view"
        },
        {
          "name": "part",
          "text": "shop-the-look-result-item - A single tile in the grid view"
        },
        {
          "name": "part",
          "text": "shop-the-look-result-image-container - The image container inside a tile"
        }
      ],
      "usage": {},
      "props": [
        {
          "name": "apiPath",
          "type": "string",
          "complexType": {
            "original": "string",
            "resolved": "string",
            "references": {}
          },
          "mutable": false,
          "attr": "api-path",
          "reflectToAttr": false,
          "docs": "API endpoint URL (optional, defaults to production)",
          "docsTags": [],
          "values": [
            {
              "type": "string"
            }
          ],
          "optional": true,
          "required": false,
          "getter": false,
          "setter": false
        },
        {
          "name": "campaignId",
          "type": "string",
          "complexType": {
            "original": "string",
            "resolved": "string",
            "references": {}
          },
          "mutable": false,
          "attr": "campaign-id",
          "reflectToAttr": false,
          "docs": "Campaign ID for visual search requests",
          "docsTags": [],
          "default": "\"\"",
          "values": [
            {
              "type": "string"
            }
          ],
          "optional": false,
          "required": false,
          "getter": false,
          "setter": false
        },
        {
          "name": "cssUrl",
          "type": "string",
          "complexType": {
            "original": "string | null",
            "resolved": "string",
            "references": {}
          },
          "mutable": false,
          "attr": "css-url",
          "reflectToAttr": false,
          "docs": "URL to external CSS file for custom styling",
          "docsTags": [],
          "default": "null",
          "values": [
            {
              "type": "string"
            }
          ],
          "optional": false,
          "required": false,
          "getter": false,
          "setter": false
        },
        {
          "name": "currencySign",
          "type": "string",
          "complexType": {
            "original": "string",
            "resolved": "string",
            "references": {}
          },
          "mutable": false,
          "attr": "currency-sign",
          "reflectToAttr": false,
          "docs": "The currency sign is displayed after the price",
          "docsTags": [],
          "values": [
            {
              "type": "string"
            }
          ],
          "optional": true,
          "required": false,
          "getter": false,
          "setter": false
        },
        {
          "name": "height",
          "type": "number",
          "complexType": {
            "original": "number",
            "resolved": "number",
            "references": {}
          },
          "mutable": false,
          "attr": "height",
          "reflectToAttr": false,
          "docs": "Height of the widget in pixels",
          "docsTags": [],
          "default": "500",
          "values": [
            {
              "type": "number"
            }
          ],
          "optional": false,
          "required": false,
          "getter": false,
          "setter": false
        },
        {
          "name": "imageResolutionWidth",
          "type": "number",
          "complexType": {
            "original": "number",
            "resolved": "number",
            "references": {}
          },
          "mutable": false,
          "attr": "image-resolution-width",
          "reflectToAttr": false,
          "docs": "Resolution width of the recommendation tile and product card images",
          "docsTags": [],
          "default": "PRODUCT_CARD_IMAGE_RESOLUTION_WIDTH",
          "values": [
            {
              "type": "number"
            }
          ],
          "optional": false,
          "required": false,
          "getter": false,
          "setter": false
        },
        {
          "name": "imageUrls",
          "type": "string",
          "complexType": {
            "original": "string",
            "resolved": "string",
            "references": {}
          },
          "mutable": false,
          "attr": "image-urls",
          "reflectToAttr": false,
          "docs": "Comma-separated list of image URLs to display in the widget",
          "docsTags": [],
          "default": "\"\"",
          "values": [
            {
              "type": "string"
            }
          ],
          "optional": false,
          "required": false,
          "getter": false,
          "setter": false
        },
        {
          "name": "locale",
          "type": "\"de-DE\" | \"en-US\"",
          "complexType": {
            "original": "Locale",
            "resolved": "\"de-DE\" | \"en-US\"",
            "references": {
              "Locale": {
                "location": "import",
                "path": "../../locale",
                "id": "src/locale/index.ts::Locale"
              }
            }
          },
          "mutable": false,
          "attr": "locale",
          "reflectToAttr": false,
          "docs": "Locale for text localization",
          "docsTags": [],
          "values": [
            {
              "value": "de-DE",
              "type": "string"
            },
            {
              "value": "en-US",
              "type": "string"
            }
          ],
          "optional": true,
          "required": false,
          "getter": false,
          "setter": false
        },
        {
          "name": "numberLocale",
          "type": "string",
          "complexType": {
            "original": "string",
            "resolved": "string",
            "references": {}
          },
          "mutable": false,
          "attr": "number-locale",
          "reflectToAttr": false,
          "docs": "Locale for number formatting. Falls back to locale",
          "docsTags": [],
          "values": [
            {
              "type": "string"
            }
          ],
          "optional": true,
          "required": false,
          "getter": false,
          "setter": false
        },
        {
          "name": "productDetailsNewTab",
          "type": "boolean",
          "complexType": {
            "original": "boolean",
            "resolved": "boolean",
            "references": {}
          },
          "mutable": false,
          "attr": "product-details-new-tab",
          "reflectToAttr": false,
          "docs": "Open product links in new tab",
          "docsTags": [],
          "default": "false",
          "values": [
            {
              "type": "boolean"
            }
          ],
          "optional": false,
          "required": false,
          "getter": false,
          "setter": false
        },
        {
          "name": "productDetailsRedirect",
          "type": "boolean",
          "complexType": {
            "original": "boolean",
            "resolved": "boolean",
            "references": {}
          },
          "mutable": false,
          "attr": "product-details-redirect",
          "reflectToAttr": false,
          "docs": "Enable product detail redirects on click",
          "docsTags": [],
          "default": "true",
          "values": [
            {
              "type": "boolean"
            }
          ],
          "optional": false,
          "required": false,
          "getter": false,
          "setter": false
        },
        {
          "name": "showCropper",
          "type": "boolean",
          "complexType": {
            "original": "boolean",
            "resolved": "boolean",
            "references": {}
          },
          "mutable": false,
          "attr": "show-cropper",
          "reflectToAttr": false,
          "docs": "Enable cropper mode for manual area selection",
          "docsTags": [],
          "default": "false",
          "values": [
            {
              "type": "boolean"
            }
          ],
          "optional": false,
          "required": false,
          "getter": false,
          "setter": false
        },
        {
          "name": "showMultipleImages",
          "type": "boolean",
          "complexType": {
            "original": "boolean",
            "resolved": "boolean",
            "references": {}
          },
          "mutable": false,
          "attr": "show-multiple-images",
          "reflectToAttr": false,
          "docs": "Show multiple images: swiper on mobile, hover on desktop in product cards",
          "docsTags": [],
          "default": "false",
          "values": [
            {
              "type": "boolean"
            }
          ],
          "optional": false,
          "required": false,
          "getter": false,
          "setter": false
        },
        {
          "name": "token",
          "type": "string",
          "complexType": {
            "original": "string",
            "resolved": "string",
            "references": {}
          },
          "mutable": false,
          "attr": "token",
          "reflectToAttr": false,
          "docs": "Vviinn customer's token (required)",
          "docsTags": [],
          "values": [
            {
              "type": "string"
            }
          ],
          "optional": false,
          "required": false,
          "getter": false,
          "setter": false
        },
        {
          "name": "uploadMode",
          "type": "boolean",
          "complexType": {
            "original": "boolean",
            "resolved": "boolean",
            "references": {}
          },
          "mutable": false,
          "attr": "upload-mode",
          "reflectToAttr": false,
          "docs": "Enable upload mode to allow users to upload their own images",
          "docsTags": [],
          "default": "false",
          "values": [
            {
              "type": "boolean"
            }
          ],
          "optional": false,
          "required": false,
          "getter": false,
          "setter": false
        },
        {
          "name": "widgetStyle",
          "type": "\"cornered\" | \"rounded\"",
          "complexType": {
            "original": "\"rounded\" | \"cornered\"",
            "resolved": "\"cornered\" | \"rounded\"",
            "references": {}
          },
          "mutable": false,
          "attr": "widget-style",
          "reflectToAttr": false,
          "docs": "Style variant for corner styling — 'rounded' for rounded corners, 'cornered' for sharp corners",
          "docsTags": [],
          "default": "\"rounded\"",
          "values": [
            {
              "value": "cornered",
              "type": "string"
            },
            {
              "value": "rounded",
              "type": "string"
            }
          ],
          "optional": false,
          "required": false,
          "getter": false,
          "setter": false
        }
      ],
      "methods": [],
      "events": [
        {
          "event": "vviinnShopTheLookDetectedObjectClick",
          "detail": "ShopTheLookEventData",
          "bubbles": true,
          "complexType": {
            "original": "ShopTheLookEventData",
            "resolved": "ShopTheLookEventData",
            "references": {
              "ShopTheLookEventData": {
                "location": "local",
                "path": "src/components/vviinn-shop-the-look/vviinn-shop-the-look.tsx",
                "id": "src/components/vviinn-shop-the-look/vviinn-shop-the-look.tsx::ShopTheLookEventData"
              }
            }
          },
          "cancelable": true,
          "composed": true,
          "docs": "Emitted when a detected object/hotspot is clicked. Contains the object ID and first recommended product.",
          "docsTags": []
        },
        {
          "event": "vviinnShopTheLookModalClose",
          "detail": "{ widget?: Widget; } & { campaignTypeId: \"VPR\" | \"VPS\" | \"TPS\" | \"VCS\"; campaignTypeName: \"Similar Products\" | \"Visual Search\" | \"Cross-Selling\" | \"Text Product Search\"; widgetId?: string; widgetVersion: string; }",
          "bubbles": true,
          "complexType": {
            "original": "BasicEventData",
            "resolved": "{ widget?: Widget; } & { campaignTypeId: \"VPR\" | \"VPS\" | \"TPS\" | \"VCS\"; campaignTypeName: \"Similar Products\" | \"Visual Search\" | \"Cross-Selling\" | \"Text Product Search\"; widgetId?: string; widgetVersion: string; }",
            "references": {
              "BasicEventData": {
                "location": "import",
                "path": "../../recommendation/events",
                "id": "src/recommendation/events.ts::BasicEventData"
              }
            }
          },
          "cancelable": true,
          "composed": true,
          "docs": "Emitted when the recommendation modal is closed by the user.",
          "docsTags": []
        },
        {
          "event": "vviinnShopTheLookProductClick",
          "detail": "ShopTheLookEventData",
          "bubbles": true,
          "complexType": {
            "original": "ShopTheLookEventData",
            "resolved": "ShopTheLookEventData",
            "references": {
              "ShopTheLookEventData": {
                "location": "local",
                "path": "src/components/vviinn-shop-the-look/vviinn-shop-the-look.tsx",
                "id": "src/components/vviinn-shop-the-look/vviinn-shop-the-look.tsx::ShopTheLookEventData"
              }
            }
          },
          "cancelable": true,
          "composed": true,
          "docs": "Emitted when a product in the recommendation modal is clicked. Contains the product details and detected object ID.",
          "docsTags": []
        }
      ],
      "listeners": [
        {
          "event": "vviinnProductClick",
          "capture": false,
          "passive": false
        }
      ],
      "styles": [
        {
          "name": "--shop-the-look-product-card-width",
          "annotation": "prop",
          "docs": "Width of the product card in the detail view. Defaults to 160px on desktop and 120px on mobile — a set value applies to both."
        },
        {
          "name": "--shop-the-look-results-grid-width",
          "annotation": "prop",
          "docs": "Width of the tiles grid in the grid view — tiles scale with it. Defaults to 140px."
        }
      ],
      "slots": [],
      "parts": [
        {
          "name": "shop-the-look-actions-container",
          "docs": "The actions container wrapping the upload button"
        },
        {
          "name": "shop-the-look-result-image-container",
          "docs": "The image container inside a tile"
        },
        {
          "name": "shop-the-look-result-item",
          "docs": "A single tile in the grid view"
        },
        {
          "name": "shop-the-look-results-grid",
          "docs": "The tiles grid in the grid view"
        },
        {
          "name": "shop-the-look-upload-button",
          "docs": "The upload button element"
        },
        {
          "name": "shop-the-look-upload-button-icon",
          "docs": "The upload button icon wrapper"
        },
        {
          "name": "shop-the-look-upload-button-text",
          "docs": "The upload button text wrapper"
        }
      ],
      "dependents": [],
      "dependencies": [
        "vviinn-preloader",
        "vviinn-detected-object",
        "vviinn-image",
        "vviinn-product-card"
      ],
      "dependencyGraph": {
        "vviinn-shop-the-look": [
          "vviinn-preloader",
          "vviinn-detected-object",
          "vviinn-image",
          "vviinn-product-card"
        ],
        "vviinn-image": [
          "vviinn-skeleton"
        ],
        "vviinn-product-card": [
          "vviinn-skeleton",
          "vviinn-energy-label",
          "vviinn-image"
        ]
      }
    },
    {
      "filePath": "src/components/vviinn-suggestions/vviinn-suggestions.tsx",
      "encapsulation": "shadow",
      "tag": "vviinn-suggestions",
      "docs": "",
      "docsTags": [
        {
          "name": "slot",
          "text": "vviinn-suggestions-title - Custom title text to replace default \"AI Suggestions\"."
        },
        {
          "name": "slot",
          "text": "vviinn-suggestions-icon - Custom icon to replace default sparkle emoji."
        },
        {
          "name": "part",
          "text": "suggestions-container - The main suggestions container element."
        },
        {
          "name": "part",
          "text": "suggestions-header - The header section containing icon and title."
        },
        {
          "name": "part",
          "text": "suggestions-icon - The sparkle icon wrapper."
        },
        {
          "name": "part",
          "text": "suggestions-title - The title text element."
        },
        {
          "name": "part",
          "text": "suggestions-wrapper - The wrapper around the suggestions list."
        },
        {
          "name": "part",
          "text": "suggestions-list - The list container for all suggestions."
        },
        {
          "name": "part",
          "text": "suggestion-item - Individual suggestion item."
        },
        {
          "name": "part",
          "text": "suggestion-link - Clickable suggestion text/link."
        },
        {
          "name": "part",
          "text": "suggestion-filter-button - Toggle button for filter suggestions."
        },
        {
          "name": "part",
          "text": "suggestion-info-text - Informational markdown text block (e.g. barcode scan result, search explanation)."
        }
      ],
      "usage": {},
      "props": [
        {
          "name": "apiPath",
          "type": "string",
          "complexType": {
            "original": "string",
            "resolved": "string",
            "references": {}
          },
          "mutable": false,
          "attr": "api-path",
          "reflectToAttr": false,
          "docs": "",
          "docsTags": [],
          "values": [
            {
              "type": "string"
            }
          ],
          "optional": true,
          "required": false,
          "getter": false,
          "setter": false
        },
        {
          "name": "currencySign",
          "type": "string",
          "complexType": {
            "original": "string",
            "resolved": "string",
            "references": {}
          },
          "mutable": false,
          "attr": "currency-sign",
          "reflectToAttr": false,
          "docs": "",
          "docsTags": [],
          "values": [
            {
              "type": "string"
            }
          ],
          "optional": true,
          "required": false,
          "getter": false,
          "setter": false
        },
        {
          "name": "locale",
          "type": "\"de-DE\" | \"en-US\"",
          "complexType": {
            "original": "Locale",
            "resolved": "\"de-DE\" | \"en-US\"",
            "references": {
              "Locale": {
                "location": "import",
                "path": "../../locale",
                "id": "src/locale/index.ts::Locale"
              }
            }
          },
          "mutable": false,
          "attr": "locale",
          "reflectToAttr": false,
          "docs": "",
          "docsTags": [],
          "values": [
            {
              "value": "de-DE",
              "type": "string"
            },
            {
              "value": "en-US",
              "type": "string"
            }
          ],
          "optional": true,
          "required": false,
          "getter": false,
          "setter": false
        },
        {
          "name": "pricePrefix",
          "type": "string",
          "complexType": {
            "original": "string",
            "resolved": "string",
            "references": {}
          },
          "mutable": false,
          "attr": "price-prefix",
          "reflectToAttr": false,
          "docs": "",
          "docsTags": [],
          "values": [
            {
              "type": "string"
            }
          ],
          "optional": true,
          "required": false,
          "getter": false,
          "setter": false
        },
        {
          "name": "showInWidget",
          "type": "boolean",
          "complexType": {
            "original": "boolean",
            "resolved": "boolean",
            "references": {}
          },
          "mutable": false,
          "attr": "show-in-widget",
          "reflectToAttr": false,
          "docs": "",
          "docsTags": [],
          "default": "false",
          "values": [
            {
              "type": "boolean"
            }
          ],
          "optional": false,
          "required": false,
          "getter": false,
          "setter": false
        },
        {
          "name": "token",
          "type": "string",
          "complexType": {
            "original": "string",
            "resolved": "string",
            "references": {}
          },
          "mutable": false,
          "attr": "token",
          "reflectToAttr": false,
          "docs": "",
          "docsTags": [],
          "values": [
            {
              "type": "string"
            }
          ],
          "optional": true,
          "required": false,
          "getter": false,
          "setter": false
        }
      ],
      "methods": [],
      "events": [
        {
          "event": "vviinnFiltersChanged",
          "detail": "{ filters: { column: string; values: string[] | { start?: number; end?: number; }[]; }[]; el: HTMLElement; isTriggeredByVpsWidget?: boolean; }",
          "bubbles": true,
          "complexType": {
            "original": "ChangedFiltersEventData",
            "resolved": "{ filters: { column: string; values: string[] | { start?: number; end?: number; }[]; }[]; el: HTMLElement; isTriggeredByVpsWidget?: boolean; }",
            "references": {
              "ChangedFiltersEventData": {
                "location": "import",
                "path": "../../recommendation/events",
                "id": "src/recommendation/events.ts::ChangedFiltersEventData"
              }
            }
          },
          "cancelable": true,
          "composed": true,
          "docs": "",
          "docsTags": []
        },
        {
          "event": "vviinnFilterTriggered",
          "detail": "DynamicFilterTrackingData & { customTrigger?: Widget; filter?: ResponseDynamicFilterItem; }",
          "bubbles": true,
          "complexType": {
            "original": "DynamicFilterInternalData",
            "resolved": "DynamicFilterTrackingData & { customTrigger?: Widget; filter?: ResponseDynamicFilterItem; }",
            "references": {
              "DynamicFilterInternalData": {
                "location": "import",
                "path": "../../recommendation/events",
                "id": "src/recommendation/events.ts::DynamicFilterInternalData"
              }
            }
          },
          "cancelable": true,
          "composed": true,
          "docs": "",
          "docsTags": []
        }
      ],
      "listeners": [],
      "styles": [],
      "slots": [
        {
          "name": "vviinn-suggestions-icon",
          "docs": "Custom icon to replace default sparkle emoji."
        },
        {
          "name": "vviinn-suggestions-title",
          "docs": "Custom title text to replace default \"AI Suggestions\"."
        }
      ],
      "parts": [
        {
          "name": "suggestion-filter-button",
          "docs": "Toggle button for filter suggestions."
        },
        {
          "name": "suggestion-info-text",
          "docs": "Informational markdown text block (e.g. barcode scan result, search explanation)."
        },
        {
          "name": "suggestion-item",
          "docs": "Individual suggestion item."
        },
        {
          "name": "suggestion-link",
          "docs": "Clickable suggestion text/link."
        },
        {
          "name": "suggestions-container",
          "docs": "The main suggestions container element."
        },
        {
          "name": "suggestions-header",
          "docs": "The header section containing icon and title."
        },
        {
          "name": "suggestions-icon",
          "docs": "The sparkle icon wrapper."
        },
        {
          "name": "suggestions-list",
          "docs": "The list container for all suggestions."
        },
        {
          "name": "suggestions-title",
          "docs": "The title text element."
        },
        {
          "name": "suggestions-wrapper",
          "docs": "The wrapper around the suggestions list."
        }
      ],
      "dependents": [
        "vviinn-vps-widget"
      ],
      "dependencies": [],
      "dependencyGraph": {
        "vviinn-vps-widget": [
          "vviinn-suggestions"
        ]
      }
    },
    {
      "filePath": "src/components/vviinn-text-search/vviinn-text-search.tsx",
      "encapsulation": "shadow",
      "tag": "vviinn-text-search",
      "docs": "",
      "docsTags": [
        {
          "name": "part",
          "text": "text-search-container - Container for the text search block."
        },
        {
          "name": "part",
          "text": "text-search-input - Text search input."
        },
        {
          "name": "part",
          "text": "text-search-tooltip - Text search tooltip."
        },
        {
          "name": "part",
          "text": "text-search-button - Text search input's search button."
        },
        {
          "name": "part",
          "text": "speech-button - Speech recognition button."
        },
        {
          "name": "part",
          "text": "suggestions-container - Auto-suggest dropdown container."
        },
        {
          "name": "part",
          "text": "suggestion-item - Individual auto-suggest item."
        },
        {
          "name": "part",
          "text": "close-button - Close Button in the search modal's header."
        },
        {
          "name": "part",
          "text": "secondary-action - Back Button in the search modal's header."
        },
        {
          "name": "part",
          "text": "upload-photo_button - Upload Photo Button in the search modal."
        },
        {
          "name": "part",
          "text": "start-camera_button - Start Camera Button in the search modal."
        },
        {
          "name": "part",
          "text": "vviinn-button - Visual search button element in the search bar (extended mode)."
        },
        {
          "name": "slot",
          "text": "vviinn-text-search-icon - Icon of the text search block."
        },
        {
          "name": "slot",
          "text": "vviinn-text-search-actions - Additional actions for the text search block, e.g., a button to open the Search Modal."
        },
        {
          "name": "slot",
          "text": "vviinn-teaser-text - Text on the search modal's main screen."
        },
        {
          "name": "slot",
          "text": "vviinn-image-upload-button-text - Title of Upload Button in the search modal."
        },
        {
          "name": "slot",
          "text": "vviinn-image-upload-icon - Icon of Upload Button in the search modal."
        },
        {
          "name": "slot",
          "text": "vviinn-camera-button-text-start - Title of Start Camera button in the search modal."
        },
        {
          "name": "slot",
          "text": "vviinn-camera-button-text-stop - Title of Stop Camera button in the search modal."
        },
        {
          "name": "slot",
          "text": "vviinn-camera-icon - Icon of Camera Button in the search modal."
        },
        {
          "name": "slot",
          "text": "vviinn-privacy-badge-text - Text content of privacy notification in the search modal."
        },
        {
          "name": "slot",
          "text": "vviinn-image-search-modal-title - Search modal title."
        }
      ],
      "usage": {},
      "props": [
        {
          "name": "apiPath",
          "type": "string",
          "complexType": {
            "original": "string",
            "resolved": "string",
            "references": {}
          },
          "mutable": false,
          "attr": "api-path",
          "reflectToAttr": false,
          "docs": "API endpoint URL (optional, defaults to production)",
          "docsTags": [],
          "values": [
            {
              "type": "string"
            }
          ],
          "optional": true,
          "required": false,
          "getter": false,
          "setter": false
        },
        {
          "name": "autoSuggestShow",
          "type": "boolean",
          "complexType": {
            "original": "boolean",
            "resolved": "boolean",
            "references": {}
          },
          "mutable": false,
          "attr": "auto-suggest-show",
          "reflectToAttr": false,
          "docs": "Show auto-suggest dropdown with search completions",
          "docsTags": [],
          "default": "true",
          "values": [
            {
              "type": "boolean"
            }
          ],
          "optional": false,
          "required": false,
          "getter": false,
          "setter": false
        },
        {
          "name": "cssUrl",
          "type": "string",
          "complexType": {
            "original": "string | null",
            "resolved": "string",
            "references": {}
          },
          "mutable": false,
          "attr": "css-url",
          "reflectToAttr": false,
          "docs": "URL to external CSS file for custom styling of the visual search modal",
          "docsTags": [],
          "values": [
            {
              "type": "string"
            }
          ],
          "optional": true,
          "required": false,
          "getter": false,
          "setter": false
        },
        {
          "name": "exampleImageSource",
          "type": "string",
          "complexType": {
            "original": "string",
            "resolved": "string",
            "references": {}
          },
          "mutable": false,
          "attr": "example-image-source",
          "reflectToAttr": false,
          "docs": "Example image shown in the visual search modal",
          "docsTags": [],
          "values": [
            {
              "type": "string"
            }
          ],
          "optional": true,
          "required": false,
          "getter": false,
          "setter": false
        },
        {
          "name": "locale",
          "type": "\"de-DE\" | \"en-US\"",
          "complexType": {
            "original": "Locale",
            "resolved": "\"de-DE\" | \"en-US\"",
            "references": {
              "Locale": {
                "location": "import",
                "path": "../../locale",
                "id": "src/locale/index.ts::Locale"
              }
            }
          },
          "mutable": false,
          "attr": "locale",
          "reflectToAttr": false,
          "docs": "Locale for text localization",
          "docsTags": [],
          "values": [
            {
              "value": "de-DE",
              "type": "string"
            },
            {
              "value": "en-US",
              "type": "string"
            }
          ],
          "optional": true,
          "required": false,
          "getter": false,
          "setter": false
        },
        {
          "name": "mode",
          "type": "\"basic\" | \"extended\"",
          "complexType": {
            "original": "SearchBarMode",
            "resolved": "\"basic\" | \"extended\"",
            "references": {
              "SearchBarMode": {
                "location": "import",
                "path": "../../widget/types",
                "id": "src/widget/types.ts::SearchBarMode"
              }
            }
          },
          "mutable": false,
          "attr": "mode",
          "reflectToAttr": false,
          "docs": "Basic or extended text search with search modal and speech recognition",
          "docsTags": [],
          "default": "\"basic\"",
          "values": [
            {
              "value": "basic",
              "type": "string"
            },
            {
              "value": "extended",
              "type": "string"
            }
          ],
          "optional": false,
          "required": false,
          "getter": false,
          "setter": false
        },
        {
          "name": "placeholder",
          "type": "string",
          "complexType": {
            "original": "string",
            "resolved": "string",
            "references": {}
          },
          "mutable": false,
          "attr": "placeholder",
          "reflectToAttr": false,
          "docs": "Custom placeholder for the text search input",
          "docsTags": [],
          "default": "\"\"",
          "values": [
            {
              "type": "string"
            }
          ],
          "optional": true,
          "required": false,
          "getter": false,
          "setter": false
        },
        {
          "name": "resultsPageParams",
          "type": "string",
          "complexType": {
            "original": "string",
            "resolved": "string",
            "references": {}
          },
          "mutable": false,
          "attr": "results-page-params",
          "reflectToAttr": false,
          "docs": "Custom URL param names for results page redirect. Default: \"query=query&searchId=searchId\".",
          "docsTags": [],
          "values": [
            {
              "type": "string"
            }
          ],
          "optional": true,
          "required": false,
          "getter": false,
          "setter": false
        },
        {
          "name": "resultsPageUrl",
          "type": "string",
          "complexType": {
            "original": "string",
            "resolved": "string",
            "references": {}
          },
          "mutable": false,
          "attr": "results-page-url",
          "reflectToAttr": false,
          "docs": "URL of the results page for automatic search redirect.",
          "docsTags": [],
          "values": [
            {
              "type": "string"
            }
          ],
          "optional": true,
          "required": false,
          "getter": false,
          "setter": false
        },
        {
          "name": "searchQuery",
          "type": "string",
          "complexType": {
            "original": "string",
            "resolved": "string",
            "references": {}
          },
          "mutable": false,
          "attr": "search-query",
          "reflectToAttr": false,
          "docs": "Query for the text search passed from widget",
          "docsTags": [],
          "values": [
            {
              "type": "string"
            }
          ],
          "optional": true,
          "required": false,
          "getter": false,
          "setter": false
        },
        {
          "name": "token",
          "type": "string",
          "complexType": {
            "original": "string",
            "resolved": "string",
            "references": {}
          },
          "mutable": false,
          "attr": "token",
          "reflectToAttr": false,
          "docs": "Vviinn customer's token (required)",
          "docsTags": [],
          "values": [
            {
              "type": "string"
            }
          ],
          "optional": false,
          "required": false,
          "getter": false,
          "setter": false
        },
        {
          "name": "useDragAndDrop",
          "type": "boolean",
          "complexType": {
            "original": "boolean",
            "resolved": "boolean",
            "references": {}
          },
          "mutable": false,
          "attr": "use-drag-and-drop",
          "reflectToAttr": false,
          "docs": "Accept image files dropped from the OS onto the upload button (desktop only)",
          "docsTags": [],
          "default": "false",
          "values": [
            {
              "type": "boolean"
            }
          ],
          "optional": false,
          "required": false,
          "getter": false,
          "setter": false
        },
        {
          "name": "visualSearchMode",
          "type": "\"camera\" | \"modal\" | \"upload\"",
          "complexType": {
            "original": "VisualSearchMode",
            "resolved": "\"camera\" | \"modal\" | \"upload\"",
            "references": {
              "VisualSearchMode": {
                "location": "import",
                "path": "../../widget/types",
                "id": "src/widget/types.ts::VisualSearchMode"
              }
            }
          },
          "mutable": false,
          "attr": "visual-search-mode",
          "reflectToAttr": false,
          "docs": "Visual search modal mode (modal/camera/upload)",
          "docsTags": [],
          "values": [
            {
              "value": "camera",
              "type": "string"
            },
            {
              "value": "modal",
              "type": "string"
            },
            {
              "value": "upload",
              "type": "string"
            }
          ],
          "optional": true,
          "required": false,
          "getter": false,
          "setter": false
        }
      ],
      "methods": [],
      "events": [
        {
          "event": "vviinnFilterTriggered",
          "detail": "DynamicFilterTrackingData & { customTrigger?: Widget; filter?: ResponseDynamicFilterItem; }",
          "bubbles": true,
          "complexType": {
            "original": "DynamicFilterInternalData",
            "resolved": "DynamicFilterTrackingData & { customTrigger?: Widget; filter?: ResponseDynamicFilterItem; }",
            "references": {
              "DynamicFilterInternalData": {
                "location": "import",
                "path": "../../recommendation/events",
                "id": "src/recommendation/events.ts::DynamicFilterInternalData"
              }
            }
          },
          "cancelable": true,
          "composed": true,
          "docs": "A filter was triggered",
          "docsTags": []
        },
        {
          "event": "vviinnImageUploadFinished",
          "detail": "{ isTriggeredByVpsWidget: boolean; searchId: string; }",
          "bubbles": true,
          "complexType": {
            "original": "SearchIdEventData",
            "resolved": "{ isTriggeredByVpsWidget: boolean; searchId: string; }",
            "references": {
              "SearchIdEventData": {
                "location": "import",
                "path": "../../recommendation/events",
                "id": "src/recommendation/events.ts::SearchIdEventData"
              }
            }
          },
          "cancelable": true,
          "composed": true,
          "docs": "An image search ID was received (used by vviinn-results component)",
          "docsTags": []
        },
        {
          "event": "vviinnNoResult",
          "detail": "{ widget?: Widget; } & { campaignTypeId: \"VPR\" | \"VPS\" | \"TPS\" | \"VCS\"; campaignTypeName: \"Similar Products\" | \"Visual Search\" | \"Cross-Selling\" | \"Text Product Search\"; widgetId?: string; widgetVersion: string; }",
          "bubbles": true,
          "complexType": {
            "original": "BasicEventData",
            "resolved": "{ widget?: Widget; } & { campaignTypeId: \"VPR\" | \"VPS\" | \"TPS\" | \"VCS\"; campaignTypeName: \"Similar Products\" | \"Visual Search\" | \"Cross-Selling\" | \"Text Product Search\"; widgetId?: string; widgetVersion: string; }",
            "references": {
              "BasicEventData": {
                "location": "import",
                "path": "../../recommendation/events",
                "id": "src/recommendation/events.ts::BasicEventData"
              }
            }
          },
          "cancelable": true,
          "composed": true,
          "docs": "Triggered when a text search request fails",
          "docsTags": []
        },
        {
          "event": "vviinnRedirect",
          "detail": "{ url: string; source: RedirectSource; query?: string; searchId?: string; widget?: Widget; } & { campaignTypeId: \"VPR\" | \"VPS\" | \"TPS\" | \"VCS\"; campaignTypeName: \"Similar Products\" | \"Visual Search\" | \"Cross-Selling\" | \"Text Product Search\"; widgetId?: string; widgetVersion: string; }",
          "bubbles": true,
          "complexType": {
            "original": "RedirectEventData",
            "resolved": "{ url: string; source: RedirectSource; query?: string; searchId?: string; widget?: Widget; } & { campaignTypeId: \"VPR\" | \"VPS\" | \"TPS\" | \"VCS\"; campaignTypeName: \"Similar Products\" | \"Visual Search\" | \"Cross-Selling\" | \"Text Product Search\"; widgetId?: string; widgetVersion: string; }",
            "references": {
              "RedirectEventData": {
                "location": "import",
                "path": "../../recommendation/events",
                "id": "src/recommendation/events.ts::RedirectEventData"
              }
            }
          },
          "cancelable": true,
          "composed": true,
          "docs": "A redirect URL is received from the API (can be intercepted by client)",
          "docsTags": []
        }
      ],
      "listeners": [],
      "styles": [
        {
          "name": "--font-family",
          "annotation": "prop",
          "docs": "The font family of the text search."
        }
      ],
      "slots": [
        {
          "name": "vviinn-camera-button-text-start",
          "docs": "Title of Start Camera button in the search modal."
        },
        {
          "name": "vviinn-camera-button-text-stop",
          "docs": "Title of Stop Camera button in the search modal."
        },
        {
          "name": "vviinn-camera-icon",
          "docs": "Icon of Camera Button in the search modal."
        },
        {
          "name": "vviinn-image-search-modal-title",
          "docs": "Search modal title."
        },
        {
          "name": "vviinn-image-upload-button-text",
          "docs": "Title of Upload Button in the search modal."
        },
        {
          "name": "vviinn-image-upload-icon",
          "docs": "Icon of Upload Button in the search modal."
        },
        {
          "name": "vviinn-privacy-badge-text",
          "docs": "Text content of privacy notification in the search modal."
        },
        {
          "name": "vviinn-teaser-text",
          "docs": "Text on the search modal's main screen."
        },
        {
          "name": "vviinn-text-search-actions",
          "docs": "Additional actions for the text search block, e.g., a button to open the Search Modal."
        },
        {
          "name": "vviinn-text-search-icon",
          "docs": "Icon of the text search block."
        }
      ],
      "parts": [
        {
          "name": "close-button",
          "docs": "Close Button in the search modal's header."
        },
        {
          "name": "secondary-action",
          "docs": "Back Button in the search modal's header."
        },
        {
          "name": "speech-button",
          "docs": "Speech recognition button."
        },
        {
          "name": "start-camera_button",
          "docs": "Start Camera Button in the search modal."
        },
        {
          "name": "suggestion-item",
          "docs": "Individual auto-suggest item."
        },
        {
          "name": "suggestions-container",
          "docs": "Auto-suggest dropdown container."
        },
        {
          "name": "text-search-button",
          "docs": "Text search input's search button."
        },
        {
          "name": "text-search-container",
          "docs": "Container for the text search block."
        },
        {
          "name": "text-search-input",
          "docs": "Text search input."
        },
        {
          "name": "text-search-tooltip",
          "docs": "Text search tooltip."
        },
        {
          "name": "upload-photo_button",
          "docs": "Upload Photo Button in the search modal."
        },
        {
          "name": "vviinn-button",
          "docs": "Visual search button element in the search bar (extended mode)."
        }
      ],
      "dependents": [
        "vviinn-vps-widget"
      ],
      "dependencies": [
        "vviinn-vps-button",
        "vviinn-preloader"
      ],
      "dependencyGraph": {
        "vviinn-text-search": [
          "vviinn-vps-button",
          "vviinn-preloader"
        ],
        "vviinn-vps-button": [
          "vviinn-button",
          "vviinn-vps-widget"
        ],
        "vviinn-vps-widget": [
          "vviinn-text-search"
        ],
        "vviinn-image-selector": [
          "vviinn-preloader"
        ],
        "vviinn-overlayed-modal": [
          "vviinn-overlay",
          "vviinn-modal"
        ],
        "vviinn-cropper": [
          "vviinn-detected-object",
          "vviinn-preloader"
        ],
        "vviinn-filters": [
          "vviinn-range-filter"
        ],
        "vviinn-extended-filters": [
          "vviinn-range-filter",
          "vviinn-extended-filters-button"
        ],
        "vviinn-results": [
          "vviinn-product-card",
          "vviinn-vpr-button",
          "vviinn-error"
        ],
        "vviinn-product-card": [
          "vviinn-skeleton",
          "vviinn-energy-label",
          "vviinn-image"
        ],
        "vviinn-image": [
          "vviinn-skeleton"
        ],
        "vviinn-vpr-button": [
          "vviinn-button",
          "vviinn-recommendations-sidebar"
        ],
        "vviinn-recommendations-sidebar": [
          "vviinn-vpr-widget"
        ],
        "vviinn-vpr-widget": [
          "vviinn-product-card",
          "vviinn-carousel",
          "vviinn-filters",
          "vviinn-extended-filters"
        ],
        "vviinn-carousel": [
          "vviinn-product-card"
        ]
      }
    },
    {
      "filePath": "src/components/vviinn-vpr-button/vviinn-vpr-button.tsx",
      "encapsulation": "shadow",
      "tag": "vviinn-vpr-button",
      "docs": "",
      "docsTags": [
        {
          "name": "part",
          "text": "button - Clickable button element."
        },
        {
          "name": "part",
          "text": "vviinn-button - Button element container."
        },
        {
          "name": "part",
          "text": "product-card - Product Card itself."
        },
        {
          "name": "part",
          "text": "title - Title inside Product Card."
        },
        {
          "name": "part",
          "text": "brand - Brand inside Product Card."
        },
        {
          "name": "part",
          "text": "product-type - Product Type inside Product Card."
        },
        {
          "name": "part",
          "text": "currency - Currency related to price."
        },
        {
          "name": "part",
          "text": "image - Product Card image."
        },
        {
          "name": "part",
          "text": "image-link - Anchor element around product image. Rendered only if \"deeplink\" property is filled."
        },
        {
          "name": "part",
          "text": "image-picture - Picture element for image."
        },
        {
          "name": "part",
          "text": "image-placeholder - Placeholder shown when no image is available."
        },
        {
          "name": "part",
          "text": "image-container - Product Card's image container."
        },
        {
          "name": "part",
          "text": "content-container - Product Card's content container."
        },
        {
          "name": "part",
          "text": "basket-button-container - Product Card's basket button container."
        },
        {
          "name": "part",
          "text": "deeplink - Anchor element around product title. Rendered only if \"deeplink\" property is filled."
        },
        {
          "name": "part",
          "text": "price-amount-regular - Numeric part of the price."
        },
        {
          "name": "part",
          "text": "price-amount-sale - Numeric part of the price."
        },
        {
          "name": "part",
          "text": "price-amount-outdated - Numeric part of the price."
        },
        {
          "name": "part",
          "text": "price-amount-base-sale - Numeric part of the base price."
        },
        {
          "name": "part",
          "text": "price-amount-base-outdated - Numeric part of the base price."
        },
        {
          "name": "part",
          "text": "price-amount-base-regular - Numeric part of the base price."
        },
        {
          "name": "part",
          "text": "price-outdated - Block for outdated price. Rendered when the product contains the sale price."
        },
        {
          "name": "part",
          "text": "price-regular - Block for a price if no sale price is presented."
        },
        {
          "name": "part",
          "text": "price-sale - Block for sale price. Rendered only if the sale price is presented."
        },
        {
          "name": "part",
          "text": "price-prefix - Block rendered before each price element (for ex. \"from\")."
        },
        {
          "name": "part",
          "text": "product-card-actions - Product Card actions wrapper."
        },
        {
          "name": "part",
          "text": "product-card-actions-top - Product Card top actions wrapper."
        },
        {
          "name": "part",
          "text": "carousel-button - Both carousel navigation buttons (generic part)."
        },
        {
          "name": "part",
          "text": "carousel-button-prev - The previous/back carousel navigation button."
        },
        {
          "name": "part",
          "text": "carousel-button-next - The next/forward carousel navigation button."
        },
        {
          "name": "part",
          "text": "recommendations-results - For internal usage only!"
        },
        {
          "name": "part",
          "text": "recommendations-title - Title of the recommendations grid."
        },
        {
          "name": "part",
          "text": "recommendations-subtitle - Subtitle of the recommendations grid."
        },
        {
          "name": "part",
          "text": "basket-button - Add to Basket button."
        },
        {
          "name": "part",
          "text": "favorite-button - Favorite button."
        },
        {
          "name": "part",
          "text": "energy-label-container - Energy label container."
        },
        {
          "name": "part",
          "text": "energy-label-icon - Icon with an energy class."
        },
        {
          "name": "part",
          "text": "energy-label-product-type - Product type."
        },
        {
          "name": "part",
          "text": "energy-label-data-sheet-link - Data sheet link."
        },
        {
          "name": "part",
          "text": "product-images-pagination - Container for product images pagination dots (mobile only)."
        },
        {
          "name": "part",
          "text": "product-images-pagination-bullet - Individual pagination dot."
        },
        {
          "name": "part",
          "text": "product-images-pagination-bullet-active - Active pagination dot."
        },
        {
          "name": "part",
          "text": "update-button-top - Update Button on the top (Set mode)."
        },
        {
          "name": "part",
          "text": "update-button-item - Update Button inside the Product Card (Set mode)."
        },
        {
          "name": "part",
          "text": "discount-label - Discount label in Product Card (Set mode)."
        },
        {
          "name": "part",
          "text": "discount-percentage - Discount percentage inside the Add to Basket button (Set mode)."
        },
        {
          "name": "part",
          "text": "list-card - List card container."
        },
        {
          "name": "part",
          "text": "list-card-content-container - List card's content container."
        },
        {
          "name": "part",
          "text": "list-card-image-container - List card's image container."
        },
        {
          "name": "part",
          "text": "list-label - List card's label (e.g., \"Category\")."
        },
        {
          "name": "part",
          "text": "list-title - List card's title."
        },
        {
          "name": "part",
          "text": "custom-label-0 - Custom label with index 0."
        },
        {
          "name": "part",
          "text": "custom-label-1 - Custom label with index 1."
        },
        {
          "name": "part",
          "text": "custom-label-2 - Custom label with index 2."
        },
        {
          "name": "part",
          "text": "custom-label-3 - Custom label with index 3."
        },
        {
          "name": "part",
          "text": "custom-label-4 - Custom label with index 4."
        },
        {
          "name": "slot",
          "text": "vviinn-recommendations-title - Recommendations title text."
        },
        {
          "name": "slot",
          "text": "vviinn-favorite-icon - Icon of Favorite button."
        },
        {
          "name": "slot",
          "text": "vviinn-favorite-icon-pressed - Icon of pressed Favorite button."
        },
        {
          "name": "slot",
          "text": "vviinn-basket-button-text - Text of Add to Basket button."
        },
        {
          "name": "slot",
          "text": "vviinn-basket-button-icon - Text of Add to Basket icon."
        },
        {
          "name": "slot",
          "text": "vviinn-basket-button-text-pressed - Text of pressed Add to Basket button."
        },
        {
          "name": "slot",
          "text": "vviinn-basket-button-icon-pressed - Icon of pressed Add to Basket button."
        },
        {
          "name": "slot",
          "text": "vviinn-energy-label-data-sheet-text - Text of the data sheet link for the energy label."
        },
        {
          "name": "slot",
          "text": "vviinn-recommendations-subtitle - Recommendations subtitle text."
        },
        {
          "name": "slot",
          "text": "vviinn-update-button-text - Text of Update Button on the top (Set mode)."
        },
        {
          "name": "slot",
          "text": "vviinn-update-button-icon - Icon of Update Button (Set mode)."
        },
        {
          "name": "slot",
          "text": "vviinn-custom-label-0 - Custom label with index 0."
        },
        {
          "name": "slot",
          "text": "vviinn-custom-label-1 - Custom label with index 1."
        },
        {
          "name": "slot",
          "text": "vviinn-custom-label-2 - Custom label with index 2."
        },
        {
          "name": "slot",
          "text": "vviinn-custom-label-3 - Custom label with index 3."
        },
        {
          "name": "slot",
          "text": "vviinn-custom-label-4 - Custom label with index 4."
        },
        {
          "name": "slot",
          "text": "vviinn-image-placeholder-icon - Icon or content for the image placeholder."
        }
      ],
      "usage": {},
      "props": [
        {
          "name": "addPriceContainer",
          "type": "boolean",
          "complexType": {
            "original": "boolean",
            "resolved": "boolean",
            "references": {}
          },
          "mutable": false,
          "attr": "add-price-container",
          "reflectToAttr": false,
          "docs": "Wrap the Product Card's price values in the container.",
          "docsTags": [],
          "default": "false",
          "values": [
            {
              "type": "boolean"
            }
          ],
          "optional": true,
          "required": false,
          "getter": false,
          "setter": false
        },
        {
          "name": "addStyle",
          "type": "boolean",
          "complexType": {
            "original": "boolean",
            "resolved": "boolean",
            "references": {}
          },
          "mutable": false,
          "attr": "add-style",
          "reflectToAttr": false,
          "docs": "Add default styles to the button",
          "docsTags": [],
          "default": "true",
          "values": [
            {
              "type": "boolean"
            }
          ],
          "optional": false,
          "required": false,
          "getter": false,
          "setter": false
        },
        {
          "name": "addToBasketShow",
          "type": "boolean",
          "complexType": {
            "original": "boolean",
            "resolved": "boolean",
            "references": {}
          },
          "mutable": false,
          "attr": "add-to-basket-show",
          "reflectToAttr": false,
          "docs": "Show or hide Add to Basket buttons",
          "docsTags": [],
          "default": "false",
          "values": [
            {
              "type": "boolean"
            }
          ],
          "optional": false,
          "required": false,
          "getter": false,
          "setter": false
        },
        {
          "name": "apiPath",
          "type": "string",
          "complexType": {
            "original": "string",
            "resolved": "string",
            "references": {}
          },
          "mutable": false,
          "attr": "api-path",
          "reflectToAttr": false,
          "docs": "API endpoint URL (optional, defaults to production)",
          "docsTags": [],
          "values": [
            {
              "type": "string"
            }
          ],
          "optional": true,
          "required": false,
          "getter": false,
          "setter": false
        },
        {
          "name": "campaignType",
          "type": "\"VCS\" | \"VPR\"",
          "complexType": {
            "original": "CampaignName",
            "resolved": "\"VCS\" | \"VPR\"",
            "references": {
              "CampaignName": {
                "location": "import",
                "path": "../../campaign/Campaign",
                "id": "src/campaign/Campaign.ts::CampaignName"
              }
            }
          },
          "mutable": false,
          "attr": "campaign-type",
          "reflectToAttr": false,
          "docs": "Campaign type",
          "docsTags": [],
          "default": "this.mode === \"set\" ? \"VCS\" : \"VPR\"",
          "values": [
            {
              "value": "VCS",
              "type": "string"
            },
            {
              "value": "VPR",
              "type": "string"
            }
          ],
          "optional": false,
          "required": false,
          "getter": false,
          "setter": false
        },
        {
          "name": "campaigns",
          "type": "string",
          "complexType": {
            "original": "string",
            "resolved": "string",
            "references": {}
          },
          "mutable": false,
          "attr": "campaigns",
          "reflectToAttr": false,
          "docs": "Comma-separated list of campaign IDs",
          "docsTags": [],
          "default": "\"\"",
          "values": [
            {
              "type": "string"
            }
          ],
          "optional": false,
          "required": false,
          "getter": false,
          "setter": false
        },
        {
          "name": "color",
          "type": "string",
          "complexType": {
            "original": "string",
            "resolved": "string",
            "references": {}
          },
          "mutable": false,
          "attr": "color",
          "reflectToAttr": false,
          "docs": "Accepts any hex color code",
          "docsTags": [],
          "default": "\"\"",
          "values": [
            {
              "type": "string"
            }
          ],
          "optional": false,
          "required": false,
          "getter": false,
          "setter": false
        },
        {
          "name": "cssUrl",
          "type": "string",
          "complexType": {
            "original": "string | null",
            "resolved": "string",
            "references": {}
          },
          "mutable": false,
          "attr": "css-url",
          "reflectToAttr": false,
          "docs": "URL to external CSS file for custom styling",
          "docsTags": [],
          "default": "null",
          "values": [
            {
              "type": "string"
            }
          ],
          "optional": false,
          "required": false,
          "getter": false,
          "setter": false
        },
        {
          "name": "currencySign",
          "type": "string",
          "complexType": {
            "original": "string",
            "resolved": "string",
            "references": {}
          },
          "mutable": false,
          "attr": "currency-sign",
          "reflectToAttr": false,
          "docs": "The currency sign is displayed after the price",
          "docsTags": [],
          "values": [
            {
              "type": "string"
            }
          ],
          "optional": true,
          "required": false,
          "getter": false,
          "setter": false
        },
        {
          "name": "excluded",
          "type": "string",
          "complexType": {
            "original": "string",
            "resolved": "string",
            "references": {}
          },
          "mutable": false,
          "attr": "excluded",
          "reflectToAttr": false,
          "docs": "Excluded filter. Example: \"brand:Nike,Vans;custom_label_0:summer\"",
          "docsTags": [],
          "default": "\"\"",
          "values": [
            {
              "type": "string"
            }
          ],
          "optional": false,
          "required": false,
          "getter": false,
          "setter": false
        },
        {
          "name": "favoriteShow",
          "type": "boolean",
          "complexType": {
            "original": "boolean",
            "resolved": "boolean",
            "references": {}
          },
          "mutable": false,
          "attr": "favorite-show",
          "reflectToAttr": false,
          "docs": "Show or hide Favorite button",
          "docsTags": [],
          "default": "false",
          "values": [
            {
              "type": "boolean"
            }
          ],
          "optional": false,
          "required": false,
          "getter": false,
          "setter": false
        },
        {
          "name": "gridArrowsDynamic",
          "type": "boolean",
          "complexType": {
            "original": "boolean",
            "resolved": "boolean",
            "references": {}
          },
          "mutable": false,
          "attr": "grid-arrows-dynamic",
          "reflectToAttr": false,
          "docs": "Hiding disabled arrows in the carousel if true",
          "docsTags": [],
          "default": "false",
          "values": [
            {
              "type": "boolean"
            }
          ],
          "optional": false,
          "required": false,
          "getter": false,
          "setter": false
        },
        {
          "name": "imageResolutionWidth",
          "type": "number",
          "complexType": {
            "original": "number",
            "resolved": "number",
            "references": {}
          },
          "mutable": false,
          "attr": "image-resolution-width",
          "reflectToAttr": false,
          "docs": "Resolution width of an image in the product card",
          "docsTags": [],
          "default": "DISCOVERY_WIDGET_IMAGE_RESOLUTION_WIDTH",
          "values": [
            {
              "type": "number"
            }
          ],
          "optional": false,
          "required": false,
          "getter": false,
          "setter": false
        },
        {
          "name": "imageWidth",
          "type": "number",
          "complexType": {
            "original": "number",
            "resolved": "number",
            "references": {}
          },
          "mutable": false,
          "attr": "image-width",
          "reflectToAttr": false,
          "docs": "Width of each recommended product image in Continuity mode",
          "docsTags": [],
          "default": "PRODUCT_CARD_IMAGE_WIDTH",
          "values": [
            {
              "type": "number"
            }
          ],
          "optional": false,
          "required": false,
          "getter": false,
          "setter": false
        },
        {
          "name": "locale",
          "type": "\"de-DE\" | \"en-US\"",
          "complexType": {
            "original": "Locale",
            "resolved": "\"de-DE\" | \"en-US\"",
            "references": {
              "Locale": {
                "location": "import",
                "path": "../../locale",
                "id": "src/locale/index.ts::Locale"
              }
            }
          },
          "mutable": false,
          "attr": "locale",
          "reflectToAttr": false,
          "docs": "Locale for text localization",
          "docsTags": [],
          "values": [
            {
              "value": "de-DE",
              "type": "string"
            },
            {
              "value": "en-US",
              "type": "string"
            }
          ],
          "optional": true,
          "required": false,
          "getter": false,
          "setter": false
        },
        {
          "name": "modalScrollbar",
          "type": "boolean",
          "complexType": {
            "original": "boolean",
            "resolved": "boolean",
            "references": {}
          },
          "mutable": false,
          "attr": "modal-scrollbar",
          "reflectToAttr": false,
          "docs": "Show or hide the scrollbar",
          "docsTags": [],
          "default": "false",
          "values": [
            {
              "type": "boolean"
            }
          ],
          "optional": false,
          "required": false,
          "getter": false,
          "setter": false
        },
        {
          "name": "mode",
          "type": "\"continuity\" | \"grid\" | \"set\"",
          "complexType": {
            "original": "CarouselMode",
            "resolved": "\"continuity\" | \"grid\" | \"set\"",
            "references": {
              "CarouselMode": {
                "location": "import",
                "path": "../vviinn-carousel/vviinn-carousel",
                "id": "src/components/vviinn-carousel/vviinn-carousel.tsx::CarouselMode"
              }
            }
          },
          "mutable": false,
          "attr": "mode",
          "reflectToAttr": false,
          "docs": "Switch between carousel modes",
          "docsTags": [],
          "default": "\"continuity\"",
          "values": [
            {
              "value": "continuity",
              "type": "string"
            },
            {
              "value": "grid",
              "type": "string"
            },
            {
              "value": "set",
              "type": "string"
            }
          ],
          "optional": false,
          "required": false,
          "getter": false,
          "setter": false
        },
        {
          "name": "noResultShow",
          "type": "boolean",
          "complexType": {
            "original": "boolean",
            "resolved": "boolean",
            "references": {}
          },
          "mutable": false,
          "attr": "no-result-show",
          "reflectToAttr": false,
          "docs": "Showing a message (when true) or hiding the whole widget, when no results",
          "docsTags": [],
          "default": "true",
          "values": [
            {
              "type": "boolean"
            }
          ],
          "optional": false,
          "required": false,
          "getter": false,
          "setter": false
        },
        {
          "name": "noResultText",
          "type": "string",
          "complexType": {
            "original": "string",
            "resolved": "string",
            "references": {}
          },
          "mutable": false,
          "attr": "no-result-text",
          "reflectToAttr": false,
          "docs": "A custom message is displayed when no results",
          "docsTags": [],
          "default": "\"\"",
          "values": [
            {
              "type": "string"
            }
          ],
          "optional": false,
          "required": false,
          "getter": false,
          "setter": false
        },
        {
          "name": "numberLocale",
          "type": "string",
          "complexType": {
            "original": "string",
            "resolved": "string",
            "references": {}
          },
          "mutable": false,
          "attr": "number-locale",
          "reflectToAttr": false,
          "docs": "Locale for number formatting. Falls back to locale",
          "docsTags": [],
          "values": [
            {
              "type": "string"
            }
          ],
          "optional": true,
          "required": false,
          "getter": false,
          "setter": false
        },
        {
          "name": "oneClickDiscoveryMode",
          "type": "\"append-grid\" | \"append-slider\" | \"modal\" | \"unset\"",
          "complexType": {
            "original": "OneClickDiscoveryMode",
            "resolved": "\"append-grid\" | \"append-slider\" | \"modal\" | \"unset\"",
            "references": {
              "OneClickDiscoveryMode": {
                "location": "import",
                "path": "../../widget/types",
                "id": "src/widget/types.ts::OneClickDiscoveryMode"
              }
            }
          },
          "mutable": false,
          "attr": "one-click-discovery-mode",
          "reflectToAttr": false,
          "docs": "One-Click Discovery mode",
          "docsTags": [],
          "default": "\"modal\"",
          "values": [
            {
              "value": "append-grid",
              "type": "string"
            },
            {
              "value": "append-slider",
              "type": "string"
            },
            {
              "value": "modal",
              "type": "string"
            },
            {
              "value": "unset",
              "type": "string"
            }
          ],
          "optional": true,
          "required": false,
          "getter": false,
          "setter": false
        },
        {
          "name": "position",
          "type": "\"bottom\" | \"right\"",
          "complexType": {
            "original": "\"bottom\" | \"right\"",
            "resolved": "\"bottom\" | \"right\"",
            "references": {}
          },
          "mutable": false,
          "attr": "position",
          "reflectToAttr": false,
          "docs": "Position of the modal",
          "docsTags": [],
          "default": "\"bottom\"",
          "values": [
            {
              "value": "bottom",
              "type": "string"
            },
            {
              "value": "right",
              "type": "string"
            }
          ],
          "optional": false,
          "required": false,
          "getter": false,
          "setter": false
        },
        {
          "name": "pricePrefix",
          "type": "string",
          "complexType": {
            "original": "string",
            "resolved": "string",
            "references": {}
          },
          "mutable": false,
          "attr": "price-prefix",
          "reflectToAttr": false,
          "docs": "Prefix is displayed before the price",
          "docsTags": [],
          "values": [
            {
              "type": "string"
            }
          ],
          "optional": true,
          "required": false,
          "getter": false,
          "setter": false
        },
        {
          "name": "productDetailsNewTab",
          "type": "boolean",
          "complexType": {
            "original": "boolean",
            "resolved": "boolean",
            "references": {}
          },
          "mutable": false,
          "attr": "product-details-new-tab",
          "reflectToAttr": false,
          "docs": "Toggle for opening product link in new tab or not",
          "docsTags": [],
          "default": "false",
          "values": [
            {
              "type": "boolean"
            }
          ],
          "optional": false,
          "required": false,
          "getter": false,
          "setter": false
        },
        {
          "name": "productDetailsRedirect",
          "type": "boolean",
          "complexType": {
            "original": "boolean",
            "resolved": "boolean",
            "references": {}
          },
          "mutable": false,
          "attr": "product-details-redirect",
          "reflectToAttr": false,
          "docs": "Toggle for redirection to PDP on product's click",
          "docsTags": [],
          "default": "true",
          "values": [
            {
              "type": "boolean"
            }
          ],
          "optional": false,
          "required": false,
          "getter": false,
          "setter": false
        },
        {
          "name": "productId",
          "type": "string",
          "complexType": {
            "original": "string",
            "resolved": "string",
            "references": {}
          },
          "mutable": false,
          "attr": "product-id",
          "reflectToAttr": false,
          "docs": "ID of product you need recommendations for (required)",
          "docsTags": [],
          "values": [
            {
              "type": "string"
            }
          ],
          "optional": false,
          "required": false,
          "getter": false,
          "setter": false
        },
        {
          "name": "setItemsAmount",
          "type": "number",
          "complexType": {
            "original": "number",
            "resolved": "number",
            "references": {}
          },
          "mutable": false,
          "attr": "set-items-amount",
          "reflectToAttr": false,
          "docs": "Items amount in set mode grid",
          "docsTags": [],
          "default": "4",
          "values": [
            {
              "type": "number"
            }
          ],
          "optional": true,
          "required": false,
          "getter": false,
          "setter": false
        },
        {
          "name": "setModeDiscounts",
          "type": "string",
          "complexType": {
            "original": "string",
            "resolved": "string",
            "references": {}
          },
          "mutable": false,
          "attr": "set-mode-discounts",
          "reflectToAttr": false,
          "docs": "List of discounts for Set mode. Example: \"5, 10, 15, 20\" (could be less than 4 numbers)",
          "docsTags": [],
          "default": "this.mode === \"set\" ? \"5, 10, 15\" : \"\"",
          "values": [
            {
              "type": "string"
            }
          ],
          "optional": false,
          "required": false,
          "getter": false,
          "setter": false
        },
        {
          "name": "showFilters",
          "type": "boolean",
          "complexType": {
            "original": "boolean",
            "resolved": "boolean",
            "references": {}
          },
          "mutable": false,
          "attr": "show-filters",
          "reflectToAttr": false,
          "docs": "Show filters on top",
          "docsTags": [],
          "default": "false",
          "values": [
            {
              "type": "boolean"
            }
          ],
          "optional": false,
          "required": false,
          "getter": false,
          "setter": false
        },
        {
          "name": "showMultipleImages",
          "type": "boolean",
          "complexType": {
            "original": "boolean",
            "resolved": "boolean",
            "references": {}
          },
          "mutable": false,
          "attr": "show-multiple-images",
          "reflectToAttr": false,
          "docs": "Show multiple images on hover (desktop only)",
          "docsTags": [],
          "default": "false",
          "values": [
            {
              "type": "boolean"
            }
          ],
          "optional": false,
          "required": false,
          "getter": false,
          "setter": false
        },
        {
          "name": "sidebarSubtitle",
          "type": "string",
          "complexType": {
            "original": "string",
            "resolved": "string",
            "references": {}
          },
          "mutable": false,
          "attr": "sidebar-subtitle",
          "reflectToAttr": false,
          "docs": "Widget's subtitle",
          "docsTags": [],
          "values": [
            {
              "type": "string"
            }
          ],
          "optional": false,
          "required": false,
          "getter": false,
          "setter": false
        },
        {
          "name": "sidebarTitle",
          "type": "string",
          "complexType": {
            "original": "string",
            "resolved": "string",
            "references": {}
          },
          "mutable": false,
          "attr": "sidebar-title",
          "reflectToAttr": false,
          "docs": "Sidebar title",
          "docsTags": [],
          "values": [
            {
              "type": "string"
            }
          ],
          "optional": false,
          "required": false,
          "getter": false,
          "setter": false
        },
        {
          "name": "token",
          "type": "string",
          "complexType": {
            "original": "string",
            "resolved": "string",
            "references": {}
          },
          "mutable": false,
          "attr": "token",
          "reflectToAttr": false,
          "docs": "Vviinn customer's token (required)",
          "docsTags": [],
          "values": [
            {
              "type": "string"
            }
          ],
          "optional": false,
          "required": false,
          "getter": false,
          "setter": false
        },
        {
          "name": "updateButtonLocation",
          "type": "\"onItem\" | \"onTop\" | \"topAndItem\"",
          "complexType": {
            "original": "UpdateButtonLocation",
            "resolved": "\"onItem\" | \"onTop\" | \"topAndItem\"",
            "references": {
              "UpdateButtonLocation": {
                "location": "import",
                "path": "../vviinn-vpr-widget/vviinn-vpr-widget",
                "id": "src/components/vviinn-vpr-widget/vviinn-vpr-widget.tsx::UpdateButtonLocation"
              }
            }
          },
          "mutable": false,
          "attr": "update-button-location",
          "reflectToAttr": false,
          "docs": "Location of Update button for Set mode",
          "docsTags": [],
          "default": "\"topAndItem\"",
          "values": [
            {
              "value": "onItem",
              "type": "string"
            },
            {
              "value": "onTop",
              "type": "string"
            },
            {
              "value": "topAndItem",
              "type": "string"
            }
          ],
          "optional": false,
          "required": false,
          "getter": false,
          "setter": false
        }
      ],
      "methods": [],
      "events": [
        {
          "event": "vviinnAddToBasket",
          "detail": "{ widget?: Widget; } & { campaignTypeId: \"VPR\" | \"VPS\" | \"TPS\" | \"VCS\"; campaignTypeName: \"Similar Products\" | \"Visual Search\" | \"Cross-Selling\" | \"Text Product Search\"; widgetId?: string; widgetVersion: string; }",
          "bubbles": true,
          "complexType": {
            "original": "BasicEventData",
            "resolved": "{ widget?: Widget; } & { campaignTypeId: \"VPR\" | \"VPS\" | \"TPS\" | \"VCS\"; campaignTypeName: \"Similar Products\" | \"Visual Search\" | \"Cross-Selling\" | \"Text Product Search\"; widgetId?: string; widgetVersion: string; }",
            "references": {
              "BasicEventData": {
                "location": "import",
                "path": "../../recommendation/events",
                "id": "src/recommendation/events.ts::BasicEventData"
              }
            }
          },
          "cancelable": true,
          "composed": true,
          "docs": "Add to Basket button clicked",
          "docsTags": []
        },
        {
          "event": "vviinnNoResult",
          "detail": "{ widget?: Widget; } & { campaignTypeId: \"VPR\" | \"VPS\" | \"TPS\" | \"VCS\"; campaignTypeName: \"Similar Products\" | \"Visual Search\" | \"Cross-Selling\" | \"Text Product Search\"; widgetId?: string; widgetVersion: string; }",
          "bubbles": true,
          "complexType": {
            "original": "BasicEventData",
            "resolved": "{ widget?: Widget; } & { campaignTypeId: \"VPR\" | \"VPS\" | \"TPS\" | \"VCS\"; campaignTypeName: \"Similar Products\" | \"Visual Search\" | \"Cross-Selling\" | \"Text Product Search\"; widgetId?: string; widgetVersion: string; }",
            "references": {
              "BasicEventData": {
                "location": "import",
                "path": "../../recommendation/events",
                "id": "src/recommendation/events.ts::BasicEventData"
              }
            }
          },
          "cancelable": true,
          "composed": true,
          "docs": "Recommendation request failed",
          "docsTags": []
        },
        {
          "event": "vviinnProductClick",
          "detail": "{ productId: string; productRank: number; productName: string; productType: string; clickEvent?: MouseEvent; discount?: number; } & { campaignTypeId: \"VPR\" | \"VPS\" | \"TPS\" | \"VCS\"; campaignTypeName: \"Similar Products\" | \"Visual Search\" | \"Cross-Selling\" | \"Text Product Search\"; widgetId?: string; widgetVersion: string; }",
          "bubbles": true,
          "complexType": {
            "original": "ProductCardEventData",
            "resolved": "{ productId: string; productRank: number; productName: string; productType: string; clickEvent?: MouseEvent; discount?: number; } & { campaignTypeId: \"VPR\" | \"VPS\" | \"TPS\" | \"VCS\"; campaignTypeName: \"Similar Products\" | \"Visual Search\" | \"Cross-Selling\" | \"Text Product Search\"; widgetId?: string; widgetVersion: string; }",
            "references": {
              "ProductCardEventData": {
                "location": "import",
                "path": "../../recommendation/events",
                "id": "src/recommendation/events.ts::ProductCardEventData"
              }
            }
          },
          "cancelable": true,
          "composed": true,
          "docs": "Click on the product's link",
          "docsTags": []
        },
        {
          "event": "vviinnProductLoad",
          "detail": "{ productId: string; productRank: number; productName: string; productType: string; clickEvent?: MouseEvent; discount?: number; } & { campaignTypeId: \"VPR\" | \"VPS\" | \"TPS\" | \"VCS\"; campaignTypeName: \"Similar Products\" | \"Visual Search\" | \"Cross-Selling\" | \"Text Product Search\"; widgetId?: string; widgetVersion: string; }",
          "bubbles": true,
          "complexType": {
            "original": "ProductCardEventData",
            "resolved": "{ productId: string; productRank: number; productName: string; productType: string; clickEvent?: MouseEvent; discount?: number; } & { campaignTypeId: \"VPR\" | \"VPS\" | \"TPS\" | \"VCS\"; campaignTypeName: \"Similar Products\" | \"Visual Search\" | \"Cross-Selling\" | \"Text Product Search\"; widgetId?: string; widgetVersion: string; }",
            "references": {
              "ProductCardEventData": {
                "location": "import",
                "path": "../../recommendation/events",
                "id": "src/recommendation/events.ts::ProductCardEventData"
              }
            }
          },
          "cancelable": true,
          "composed": true,
          "docs": "The recommendation renders on the page",
          "docsTags": []
        },
        {
          "event": "vviinnProductView",
          "detail": "{ productId: string; productRank: number; productName: string; productType: string; clickEvent?: MouseEvent; discount?: number; } & { campaignTypeId: \"VPR\" | \"VPS\" | \"TPS\" | \"VCS\"; campaignTypeName: \"Similar Products\" | \"Visual Search\" | \"Cross-Selling\" | \"Text Product Search\"; widgetId?: string; widgetVersion: string; }",
          "bubbles": true,
          "complexType": {
            "original": "ProductCardEventData",
            "resolved": "{ productId: string; productRank: number; productName: string; productType: string; clickEvent?: MouseEvent; discount?: number; } & { campaignTypeId: \"VPR\" | \"VPS\" | \"TPS\" | \"VCS\"; campaignTypeName: \"Similar Products\" | \"Visual Search\" | \"Cross-Selling\" | \"Text Product Search\"; widgetId?: string; widgetVersion: string; }",
            "references": {
              "ProductCardEventData": {
                "location": "import",
                "path": "../../recommendation/events",
                "id": "src/recommendation/events.ts::ProductCardEventData"
              }
            }
          },
          "cancelable": true,
          "composed": true,
          "docs": "The recommendation appears in the viewport",
          "docsTags": []
        },
        {
          "event": "vviinnResultLoad",
          "detail": "{ widget?: Widget; } & { campaignTypeId: \"VPR\" | \"VPS\" | \"TPS\" | \"VCS\"; campaignTypeName: \"Similar Products\" | \"Visual Search\" | \"Cross-Selling\" | \"Text Product Search\"; widgetId?: string; widgetVersion: string; }",
          "bubbles": true,
          "complexType": {
            "original": "BasicEventData",
            "resolved": "{ widget?: Widget; } & { campaignTypeId: \"VPR\" | \"VPS\" | \"TPS\" | \"VCS\"; campaignTypeName: \"Similar Products\" | \"Visual Search\" | \"Cross-Selling\" | \"Text Product Search\"; widgetId?: string; widgetVersion: string; }",
            "references": {
              "BasicEventData": {
                "location": "import",
                "path": "../../recommendation/events",
                "id": "src/recommendation/events.ts::BasicEventData"
              }
            }
          },
          "cancelable": true,
          "composed": true,
          "docs": "The recommendation result renders on the page",
          "docsTags": []
        },
        {
          "event": "vviinnResultView",
          "detail": "{ widget?: Widget; } & { campaignTypeId: \"VPR\" | \"VPS\" | \"TPS\" | \"VCS\"; campaignTypeName: \"Similar Products\" | \"Visual Search\" | \"Cross-Selling\" | \"Text Product Search\"; widgetId?: string; widgetVersion: string; }",
          "bubbles": true,
          "complexType": {
            "original": "BasicEventData",
            "resolved": "{ widget?: Widget; } & { campaignTypeId: \"VPR\" | \"VPS\" | \"TPS\" | \"VCS\"; campaignTypeName: \"Similar Products\" | \"Visual Search\" | \"Cross-Selling\" | \"Text Product Search\"; widgetId?: string; widgetVersion: string; }",
            "references": {
              "BasicEventData": {
                "location": "import",
                "path": "../../recommendation/events",
                "id": "src/recommendation/events.ts::BasicEventData"
              }
            }
          },
          "cancelable": true,
          "composed": true,
          "docs": "The recommendation result appears in the viewport",
          "docsTags": []
        },
        {
          "event": "vviinnVprButtonActivated",
          "detail": "void",
          "bubbles": true,
          "complexType": {
            "original": "void",
            "resolved": "void",
            "references": {}
          },
          "cancelable": true,
          "composed": true,
          "docs": "The VPR button is activated",
          "docsTags": []
        },
        {
          "event": "vviinnWidgetClose",
          "detail": "{ widget?: Widget; } & { campaignTypeId: \"VPR\" | \"VPS\" | \"TPS\" | \"VCS\"; campaignTypeName: \"Similar Products\" | \"Visual Search\" | \"Cross-Selling\" | \"Text Product Search\"; widgetId?: string; widgetVersion: string; }",
          "bubbles": true,
          "complexType": {
            "original": "BasicEventData",
            "resolved": "{ widget?: Widget; } & { campaignTypeId: \"VPR\" | \"VPS\" | \"TPS\" | \"VCS\"; campaignTypeName: \"Similar Products\" | \"Visual Search\" | \"Cross-Selling\" | \"Text Product Search\"; widgetId?: string; widgetVersion: string; }",
            "references": {
              "BasicEventData": {
                "location": "import",
                "path": "../../recommendation/events",
                "id": "src/recommendation/events.ts::BasicEventData"
              }
            }
          },
          "cancelable": true,
          "composed": true,
          "docs": "Event emitted on modal close",
          "docsTags": []
        },
        {
          "event": "vviinnWidgetLoad",
          "detail": "{ widget?: Widget; } & { campaignTypeId: \"VPR\" | \"VPS\" | \"TPS\" | \"VCS\"; campaignTypeName: \"Similar Products\" | \"Visual Search\" | \"Cross-Selling\" | \"Text Product Search\"; widgetId?: string; widgetVersion: string; }",
          "bubbles": true,
          "complexType": {
            "original": "BasicEventData",
            "resolved": "{ widget?: Widget; } & { campaignTypeId: \"VPR\" | \"VPS\" | \"TPS\" | \"VCS\"; campaignTypeName: \"Similar Products\" | \"Visual Search\" | \"Cross-Selling\" | \"Text Product Search\"; widgetId?: string; widgetVersion: string; }",
            "references": {
              "BasicEventData": {
                "location": "import",
                "path": "../../recommendation/events",
                "id": "src/recommendation/events.ts::BasicEventData"
              }
            }
          },
          "cancelable": true,
          "composed": true,
          "docs": "Event emitted on widget load",
          "docsTags": []
        },
        {
          "event": "vviinnWidgetOpen",
          "detail": "{ widget?: Widget; } & { campaignTypeId: \"VPR\" | \"VPS\" | \"TPS\" | \"VCS\"; campaignTypeName: \"Similar Products\" | \"Visual Search\" | \"Cross-Selling\" | \"Text Product Search\"; widgetId?: string; widgetVersion: string; }",
          "bubbles": true,
          "complexType": {
            "original": "BasicEventData",
            "resolved": "{ widget?: Widget; } & { campaignTypeId: \"VPR\" | \"VPS\" | \"TPS\" | \"VCS\"; campaignTypeName: \"Similar Products\" | \"Visual Search\" | \"Cross-Selling\" | \"Text Product Search\"; widgetId?: string; widgetVersion: string; }",
            "references": {
              "BasicEventData": {
                "location": "import",
                "path": "../../recommendation/events",
                "id": "src/recommendation/events.ts::BasicEventData"
              }
            }
          },
          "cancelable": true,
          "composed": true,
          "docs": "Event emitted on modal open",
          "docsTags": []
        }
      ],
      "listeners": [],
      "styles": [
        {
          "name": "--basket-button-bg-color-pressed",
          "annotation": "prop",
          "docs": "The background color of the pressed Basket Button."
        },
        {
          "name": "--font-family",
          "annotation": "prop",
          "docs": "The font family of the widget."
        },
        {
          "name": "--product-card-content-align",
          "annotation": "prop",
          "docs": "The alignment of the content inside the product card's flex container."
        },
        {
          "name": "--product-card-image-aspect-ratio",
          "annotation": "prop",
          "docs": "The aspect ratio of the product card image (e.g., \"1 / 1\", \"3 / 4\")."
        },
        {
          "name": "--product-card-image-bg-color",
          "annotation": "prop",
          "docs": "The background color of the product card image."
        },
        {
          "name": "--product-card-image-border",
          "annotation": "prop",
          "docs": "The border of the product card image."
        },
        {
          "name": "--product-card-text-align",
          "annotation": "prop",
          "docs": "The alignment of the text inside the product card."
        },
        {
          "name": "--sidebar-animation-duration",
          "annotation": "prop",
          "docs": "The animation duration of the recommendations sidebar."
        },
        {
          "name": "--vviinn-carousel-columns",
          "annotation": "prop",
          "docs": "A number of items in grid mode."
        }
      ],
      "slots": [
        {
          "name": "vviinn-basket-button-icon",
          "docs": "Text of Add to Basket icon."
        },
        {
          "name": "vviinn-basket-button-icon-pressed",
          "docs": "Icon of pressed Add to Basket button."
        },
        {
          "name": "vviinn-basket-button-text",
          "docs": "Text of Add to Basket button."
        },
        {
          "name": "vviinn-basket-button-text-pressed",
          "docs": "Text of pressed Add to Basket button."
        },
        {
          "name": "vviinn-custom-label-0",
          "docs": "Custom label with index 0."
        },
        {
          "name": "vviinn-custom-label-1",
          "docs": "Custom label with index 1."
        },
        {
          "name": "vviinn-custom-label-2",
          "docs": "Custom label with index 2."
        },
        {
          "name": "vviinn-custom-label-3",
          "docs": "Custom label with index 3."
        },
        {
          "name": "vviinn-custom-label-4",
          "docs": "Custom label with index 4."
        },
        {
          "name": "vviinn-energy-label-data-sheet-text",
          "docs": "Text of the data sheet link for the energy label."
        },
        {
          "name": "vviinn-favorite-icon",
          "docs": "Icon of Favorite button."
        },
        {
          "name": "vviinn-favorite-icon-pressed",
          "docs": "Icon of pressed Favorite button."
        },
        {
          "name": "vviinn-image-placeholder-icon",
          "docs": "Icon or content for the image placeholder."
        },
        {
          "name": "vviinn-recommendations-subtitle",
          "docs": "Recommendations subtitle text."
        },
        {
          "name": "vviinn-recommendations-title",
          "docs": "Recommendations title text."
        },
        {
          "name": "vviinn-update-button-icon",
          "docs": "Icon of Update Button (Set mode)."
        },
        {
          "name": "vviinn-update-button-text",
          "docs": "Text of Update Button on the top (Set mode)."
        }
      ],
      "parts": [
        {
          "name": "basket-button",
          "docs": "Add to Basket button."
        },
        {
          "name": "basket-button-container",
          "docs": "Product Card's basket button container."
        },
        {
          "name": "brand",
          "docs": "Brand inside Product Card."
        },
        {
          "name": "button",
          "docs": "Clickable button element."
        },
        {
          "name": "carousel-button",
          "docs": "Both carousel navigation buttons (generic part)."
        },
        {
          "name": "carousel-button-next",
          "docs": "The next/forward carousel navigation button."
        },
        {
          "name": "carousel-button-prev",
          "docs": "The previous/back carousel navigation button."
        },
        {
          "name": "content-container",
          "docs": "Product Card's content container."
        },
        {
          "name": "currency",
          "docs": "Currency related to price."
        },
        {
          "name": "custom-label-0",
          "docs": "Custom label with index 0."
        },
        {
          "name": "custom-label-1",
          "docs": "Custom label with index 1."
        },
        {
          "name": "custom-label-2",
          "docs": "Custom label with index 2."
        },
        {
          "name": "custom-label-3",
          "docs": "Custom label with index 3."
        },
        {
          "name": "custom-label-4",
          "docs": "Custom label with index 4."
        },
        {
          "name": "deeplink",
          "docs": "Anchor element around product title. Rendered only if \"deeplink\" property is filled."
        },
        {
          "name": "discount-label",
          "docs": "Discount label in Product Card (Set mode)."
        },
        {
          "name": "discount-percentage",
          "docs": "Discount percentage inside the Add to Basket button (Set mode)."
        },
        {
          "name": "energy-label-container",
          "docs": "Energy label container."
        },
        {
          "name": "energy-label-data-sheet-link",
          "docs": "Data sheet link."
        },
        {
          "name": "energy-label-icon",
          "docs": "Icon with an energy class."
        },
        {
          "name": "energy-label-product-type",
          "docs": "Product type."
        },
        {
          "name": "favorite-button",
          "docs": "Favorite button."
        },
        {
          "name": "image",
          "docs": "Product Card image."
        },
        {
          "name": "image-container",
          "docs": "Product Card's image container."
        },
        {
          "name": "image-link",
          "docs": "Anchor element around product image. Rendered only if \"deeplink\" property is filled."
        },
        {
          "name": "image-picture",
          "docs": "Picture element for image."
        },
        {
          "name": "image-placeholder",
          "docs": "Placeholder shown when no image is available."
        },
        {
          "name": "list-card",
          "docs": "List card container."
        },
        {
          "name": "list-card-content-container",
          "docs": "List card's content container."
        },
        {
          "name": "list-card-image-container",
          "docs": "List card's image container."
        },
        {
          "name": "list-label",
          "docs": "List card's label (e.g., \"Category\")."
        },
        {
          "name": "list-title",
          "docs": "List card's title."
        },
        {
          "name": "price-amount-base-outdated",
          "docs": "Numeric part of the base price."
        },
        {
          "name": "price-amount-base-regular",
          "docs": "Numeric part of the base price."
        },
        {
          "name": "price-amount-base-sale",
          "docs": "Numeric part of the base price."
        },
        {
          "name": "price-amount-outdated",
          "docs": "Numeric part of the price."
        },
        {
          "name": "price-amount-regular",
          "docs": "Numeric part of the price."
        },
        {
          "name": "price-amount-sale",
          "docs": "Numeric part of the price."
        },
        {
          "name": "price-outdated",
          "docs": "Block for outdated price. Rendered when the product contains the sale price."
        },
        {
          "name": "price-prefix",
          "docs": "Block rendered before each price element (for ex. \"from\")."
        },
        {
          "name": "price-regular",
          "docs": "Block for a price if no sale price is presented."
        },
        {
          "name": "price-sale",
          "docs": "Block for sale price. Rendered only if the sale price is presented."
        },
        {
          "name": "product-card",
          "docs": "Product Card itself."
        },
        {
          "name": "product-card-actions",
          "docs": "Product Card actions wrapper."
        },
        {
          "name": "product-card-actions-top",
          "docs": "Product Card top actions wrapper."
        },
        {
          "name": "product-images-pagination",
          "docs": "Container for product images pagination dots (mobile only)."
        },
        {
          "name": "product-images-pagination-bullet",
          "docs": "Individual pagination dot."
        },
        {
          "name": "product-images-pagination-bullet-active",
          "docs": "Active pagination dot."
        },
        {
          "name": "product-type",
          "docs": "Product Type inside Product Card."
        },
        {
          "name": "recommendations-results",
          "docs": "For internal usage only!"
        },
        {
          "name": "recommendations-subtitle",
          "docs": "Subtitle of the recommendations grid."
        },
        {
          "name": "recommendations-title",
          "docs": "Title of the recommendations grid."
        },
        {
          "name": "title",
          "docs": "Title inside Product Card."
        },
        {
          "name": "update-button-item",
          "docs": "Update Button inside the Product Card (Set mode)."
        },
        {
          "name": "update-button-top",
          "docs": "Update Button on the top (Set mode)."
        },
        {
          "name": "vviinn-button",
          "docs": "Button element container."
        }
      ],
      "dependents": [
        "vviinn-results"
      ],
      "dependencies": [
        "vviinn-button",
        "vviinn-recommendations-sidebar"
      ],
      "dependencyGraph": {
        "vviinn-vpr-button": [
          "vviinn-button",
          "vviinn-recommendations-sidebar"
        ],
        "vviinn-recommendations-sidebar": [
          "vviinn-vpr-widget"
        ],
        "vviinn-vpr-widget": [
          "vviinn-product-card",
          "vviinn-carousel",
          "vviinn-filters",
          "vviinn-extended-filters"
        ],
        "vviinn-product-card": [
          "vviinn-skeleton",
          "vviinn-energy-label",
          "vviinn-image"
        ],
        "vviinn-image": [
          "vviinn-skeleton"
        ],
        "vviinn-carousel": [
          "vviinn-product-card"
        ],
        "vviinn-filters": [
          "vviinn-range-filter"
        ],
        "vviinn-extended-filters": [
          "vviinn-range-filter",
          "vviinn-extended-filters-button"
        ],
        "vviinn-results": [
          "vviinn-vpr-button"
        ]
      }
    },
    {
      "filePath": "src/components/vviinn-vpr-widget/vviinn-vpr-widget.tsx",
      "encapsulation": "shadow",
      "tag": "vviinn-vpr-widget",
      "docs": "",
      "docsTags": [
        {
          "name": "part",
          "text": "product-card - Product Card itself."
        },
        {
          "name": "part",
          "text": "title - Title inside Product Card."
        },
        {
          "name": "part",
          "text": "brand - Brand inside Product Card."
        },
        {
          "name": "part",
          "text": "product-type - Product Type inside Product Card."
        },
        {
          "name": "part",
          "text": "currency - Currency related to price."
        },
        {
          "name": "part",
          "text": "image - Product Card image."
        },
        {
          "name": "part",
          "text": "image-link - Anchor element around product image. Rendered only if \"deeplink\" property is filled."
        },
        {
          "name": "part",
          "text": "image-picture - Picture element for image."
        },
        {
          "name": "part",
          "text": "image-placeholder - Placeholder shown when no image is available."
        },
        {
          "name": "part",
          "text": "image-container - Product Card's image container."
        },
        {
          "name": "part",
          "text": "content-container - Product Card's content container."
        },
        {
          "name": "part",
          "text": "basket-button-container - Product Card's basket button container."
        },
        {
          "name": "part",
          "text": "deeplink - Anchor element around product title. Rendered only if \"deeplink\" property is filled."
        },
        {
          "name": "part",
          "text": "price-amount-sale - Numeric part of the price."
        },
        {
          "name": "part",
          "text": "price-amount-outdated - Numeric part of the price."
        },
        {
          "name": "part",
          "text": "price-amount-regular - Numeric part of the price."
        },
        {
          "name": "part",
          "text": "price-amount-base-sale - Numeric part of the base price."
        },
        {
          "name": "part",
          "text": "price-amount-base-outdated - Numeric part of the base price."
        },
        {
          "name": "part",
          "text": "price-amount-base-regular - Numeric part of the base price."
        },
        {
          "name": "part",
          "text": "price-outdated - Block for outdated price. Rendered when the product contains the sale price."
        },
        {
          "name": "part",
          "text": "price-regular - Block for a price if no sale price is presented."
        },
        {
          "name": "part",
          "text": "price-sale - Block for sale price. Rendered only if the sale price is presented."
        },
        {
          "name": "part",
          "text": "price-prefix - Block rendered before each price element (for ex. \"from\")."
        },
        {
          "name": "part",
          "text": "product-card-actions - Product Card actions wrapper."
        },
        {
          "name": "part",
          "text": "product-card-actions-top - Product Card top actions wrapper."
        },
        {
          "name": "part",
          "text": "carousel-button - Both carousel navigation buttons (generic part)."
        },
        {
          "name": "part",
          "text": "carousel-button-prev - The previous/back carousel navigation button."
        },
        {
          "name": "part",
          "text": "carousel-button-next - The next/forward carousel navigation button."
        },
        {
          "name": "part",
          "text": "recommendations-results - For internal usage only!"
        },
        {
          "name": "part",
          "text": "recommendations-title - Title of the recommendations grid."
        },
        {
          "name": "part",
          "text": "recommendations-subtitle - Subtitle of the recommendations grid."
        },
        {
          "name": "part",
          "text": "basket-button - Add to Basket button."
        },
        {
          "name": "part",
          "text": "favorite-button - Favorite button."
        },
        {
          "name": "part",
          "text": "energy-label-container - Energy label container."
        },
        {
          "name": "part",
          "text": "energy-label-icon - Icon with an energy class."
        },
        {
          "name": "part",
          "text": "energy-label-product-type - Product type."
        },
        {
          "name": "part",
          "text": "energy-label-data-sheet-link - Data sheet link."
        },
        {
          "name": "part",
          "text": "update-button-top - Update Button on the top (Set mode)."
        },
        {
          "name": "part",
          "text": "update-button-item - Update Button inside the Product Card (Set mode)."
        },
        {
          "name": "part",
          "text": "discount-label - Discount label in Product Card (Set mode)."
        },
        {
          "name": "part",
          "text": "discount-percentage - Discount percentage inside the Add to Basket button (Set mode)."
        },
        {
          "name": "part",
          "text": "product-images-pagination - Container for product images pagination dots (mobile only)."
        },
        {
          "name": "part",
          "text": "product-images-pagination-bullet - Individual pagination dot."
        },
        {
          "name": "part",
          "text": "product-images-pagination-bullet-active - Active pagination dot."
        },
        {
          "name": "part",
          "text": "list-card - List card container."
        },
        {
          "name": "part",
          "text": "list-card-content-container - List card's content container."
        },
        {
          "name": "part",
          "text": "list-card-image-container - List card's image container."
        },
        {
          "name": "part",
          "text": "list-label - List card's label (e.g., \"Category\")."
        },
        {
          "name": "part",
          "text": "list-title - List card's title."
        },
        {
          "name": "part",
          "text": "custom-label-0 - Custom label with index 0."
        },
        {
          "name": "part",
          "text": "custom-label-1 - Custom label with index 1."
        },
        {
          "name": "part",
          "text": "custom-label-2 - Custom label with index 2."
        },
        {
          "name": "part",
          "text": "custom-label-3 - Custom label with index 3."
        },
        {
          "name": "part",
          "text": "custom-label-4 - Custom label with index 4."
        },
        {
          "name": "slot",
          "text": "vviinn-recommendations-title - Recommendations title text."
        },
        {
          "name": "slot",
          "text": "vviinn-favorite-icon - Icon of Favorite button."
        },
        {
          "name": "slot",
          "text": "vviinn-favorite-icon-pressed - Icon of pressed Favorite button."
        },
        {
          "name": "slot",
          "text": "vviinn-basket-button-text - Text of Add to Basket button."
        },
        {
          "name": "slot",
          "text": "vviinn-basket-button-icon - Text of Add to Basket icon."
        },
        {
          "name": "slot",
          "text": "vviinn-basket-button-text-pressed - Text of pressed Add to Basket button."
        },
        {
          "name": "slot",
          "text": "vviinn-basket-button-icon-pressed - Icon of pressed Add to Basket button."
        },
        {
          "name": "slot",
          "text": "vviinn-energy-label-data-sheet-text - Text of the data sheet link for the energy label."
        },
        {
          "name": "slot",
          "text": "vviinn-recommendations-subtitle - Recommendations subtitle text."
        },
        {
          "name": "slot",
          "text": "vviinn-update-button-text - Text of Update Button on the top (Set mode)."
        },
        {
          "name": "slot",
          "text": "vviinn-update-button-icon - Icon of Update Button (Set mode)."
        },
        {
          "name": "slot",
          "text": "vviinn-custom-label-0 - Custom label with index 0."
        },
        {
          "name": "slot",
          "text": "vviinn-custom-label-1 - Custom label with index 1."
        },
        {
          "name": "slot",
          "text": "vviinn-custom-label-2 - Custom label with index 2."
        },
        {
          "name": "slot",
          "text": "vviinn-custom-label-3 - Custom label with index 3."
        },
        {
          "name": "slot",
          "text": "vviinn-custom-label-4 - Custom label with index 4."
        },
        {
          "name": "slot",
          "text": "vviinn-image-placeholder-icon - Icon or content for the image placeholder."
        }
      ],
      "usage": {},
      "props": [
        {
          "name": "addPriceContainer",
          "type": "boolean",
          "complexType": {
            "original": "boolean",
            "resolved": "boolean",
            "references": {}
          },
          "mutable": false,
          "attr": "add-price-container",
          "reflectToAttr": false,
          "docs": "Wrap the Product Card's price values in the container.",
          "docsTags": [],
          "default": "false",
          "values": [
            {
              "type": "boolean"
            }
          ],
          "optional": true,
          "required": false,
          "getter": false,
          "setter": false
        },
        {
          "name": "addToBasketShow",
          "type": "boolean",
          "complexType": {
            "original": "boolean",
            "resolved": "boolean",
            "references": {}
          },
          "mutable": false,
          "attr": "add-to-basket-show",
          "reflectToAttr": false,
          "docs": "Show or hide Add to Basket buttons",
          "docsTags": [],
          "default": "false",
          "values": [
            {
              "type": "boolean"
            }
          ],
          "optional": false,
          "required": false,
          "getter": false,
          "setter": false
        },
        {
          "name": "apiPath",
          "type": "string",
          "complexType": {
            "original": "string",
            "resolved": "string",
            "references": {}
          },
          "mutable": false,
          "attr": "api-path",
          "reflectToAttr": false,
          "docs": "API endpoint URL (optional, defaults to production)",
          "docsTags": [],
          "values": [
            {
              "type": "string"
            }
          ],
          "optional": true,
          "required": false,
          "getter": false,
          "setter": false
        },
        {
          "name": "blockSubtitle",
          "type": "string",
          "complexType": {
            "original": "string",
            "resolved": "string",
            "references": {}
          },
          "mutable": false,
          "attr": "block-subtitle",
          "reflectToAttr": false,
          "docs": "Widget's subtitle",
          "docsTags": [],
          "values": [
            {
              "type": "string"
            }
          ],
          "optional": false,
          "required": false,
          "getter": false,
          "setter": false
        },
        {
          "name": "blockTitle",
          "type": "string",
          "complexType": {
            "original": "string",
            "resolved": "string",
            "references": {}
          },
          "mutable": false,
          "attr": "block-title",
          "reflectToAttr": false,
          "docs": "Widget's title",
          "docsTags": [],
          "values": [
            {
              "type": "string"
            }
          ],
          "optional": false,
          "required": false,
          "getter": false,
          "setter": false
        },
        {
          "name": "campaignType",
          "type": "\"VCS\" | \"VPR\"",
          "complexType": {
            "original": "CampaignName",
            "resolved": "\"VCS\" | \"VPR\"",
            "references": {
              "CampaignName": {
                "location": "import",
                "path": "../../campaign/Campaign",
                "id": "src/campaign/Campaign.ts::CampaignName"
              }
            }
          },
          "mutable": false,
          "attr": "campaign-type",
          "reflectToAttr": false,
          "docs": "Campaign type",
          "docsTags": [],
          "default": "this.mode === \"set\" ? \"VCS\" : \"VPR\"",
          "values": [
            {
              "value": "VCS",
              "type": "string"
            },
            {
              "value": "VPR",
              "type": "string"
            }
          ],
          "optional": false,
          "required": false,
          "getter": false,
          "setter": false
        },
        {
          "name": "campaigns",
          "type": "string",
          "complexType": {
            "original": "string",
            "resolved": "string",
            "references": {}
          },
          "mutable": false,
          "attr": "campaigns",
          "reflectToAttr": false,
          "docs": "Comma-separated list of campaign IDs",
          "docsTags": [],
          "default": "\"\"",
          "values": [
            {
              "type": "string"
            }
          ],
          "optional": false,
          "required": false,
          "getter": false,
          "setter": false
        },
        {
          "name": "color",
          "type": "string",
          "complexType": {
            "original": "string",
            "resolved": "string",
            "references": {}
          },
          "mutable": false,
          "attr": "color",
          "reflectToAttr": false,
          "docs": "Accepts any hex color code",
          "docsTags": [],
          "default": "\"\"",
          "values": [
            {
              "type": "string"
            }
          ],
          "optional": false,
          "required": false,
          "getter": false,
          "setter": false
        },
        {
          "name": "cssUrl",
          "type": "string",
          "complexType": {
            "original": "string | null",
            "resolved": "string",
            "references": {}
          },
          "mutable": false,
          "attr": "css-url",
          "reflectToAttr": false,
          "docs": "URL to external CSS file for custom styling",
          "docsTags": [],
          "default": "null",
          "values": [
            {
              "type": "string"
            }
          ],
          "optional": false,
          "required": false,
          "getter": false,
          "setter": false
        },
        {
          "name": "currencySign",
          "type": "string",
          "complexType": {
            "original": "string",
            "resolved": "string",
            "references": {}
          },
          "mutable": false,
          "attr": "currency-sign",
          "reflectToAttr": false,
          "docs": "The currency sign is displayed after the price",
          "docsTags": [],
          "values": [
            {
              "type": "string"
            }
          ],
          "optional": true,
          "required": false,
          "getter": false,
          "setter": false
        },
        {
          "name": "excluded",
          "type": "string",
          "complexType": {
            "original": "string",
            "resolved": "string",
            "references": {}
          },
          "mutable": false,
          "attr": "excluded",
          "reflectToAttr": false,
          "docs": "Excluded filter. Example: \"brand:Nike,Vans;custom_label_0:summer\"",
          "docsTags": [],
          "default": "\"\"",
          "values": [
            {
              "type": "string"
            }
          ],
          "optional": false,
          "required": false,
          "getter": false,
          "setter": false
        },
        {
          "name": "favoriteShow",
          "type": "boolean",
          "complexType": {
            "original": "boolean",
            "resolved": "boolean",
            "references": {}
          },
          "mutable": false,
          "attr": "favorite-show",
          "reflectToAttr": false,
          "docs": "Show or hide Favorite button",
          "docsTags": [],
          "default": "false",
          "values": [
            {
              "type": "boolean"
            }
          ],
          "optional": false,
          "required": false,
          "getter": false,
          "setter": false
        },
        {
          "name": "gridArrowsDynamic",
          "type": "boolean",
          "complexType": {
            "original": "boolean",
            "resolved": "boolean",
            "references": {}
          },
          "mutable": false,
          "attr": "grid-arrows-dynamic",
          "reflectToAttr": false,
          "docs": "Hiding disabled arrows in the carousel if true",
          "docsTags": [],
          "default": "false",
          "values": [
            {
              "type": "boolean"
            }
          ],
          "optional": false,
          "required": false,
          "getter": false,
          "setter": false
        },
        {
          "name": "imageResolutionWidth",
          "type": "number",
          "complexType": {
            "original": "number",
            "resolved": "number",
            "references": {}
          },
          "mutable": false,
          "attr": "image-resolution-width",
          "reflectToAttr": false,
          "docs": "Resolution width of an image in the product card",
          "docsTags": [],
          "default": "DISCOVERY_WIDGET_IMAGE_RESOLUTION_WIDTH",
          "values": [
            {
              "type": "number"
            }
          ],
          "optional": false,
          "required": false,
          "getter": false,
          "setter": false
        },
        {
          "name": "imageWidth",
          "type": "number",
          "complexType": {
            "original": "number",
            "resolved": "number",
            "references": {}
          },
          "mutable": false,
          "attr": "image-width",
          "reflectToAttr": false,
          "docs": "Width of each recommended product image in Continuity mode",
          "docsTags": [],
          "default": "PRODUCT_CARD_IMAGE_WIDTH",
          "values": [
            {
              "type": "number"
            }
          ],
          "optional": false,
          "required": false,
          "getter": false,
          "setter": false
        },
        {
          "name": "locale",
          "type": "\"de-DE\" | \"en-US\"",
          "complexType": {
            "original": "Locale",
            "resolved": "\"de-DE\" | \"en-US\"",
            "references": {
              "Locale": {
                "location": "import",
                "path": "../../locale",
                "id": "src/locale/index.ts::Locale"
              }
            }
          },
          "mutable": false,
          "attr": "locale",
          "reflectToAttr": false,
          "docs": "Locale for text localization",
          "docsTags": [],
          "values": [
            {
              "value": "de-DE",
              "type": "string"
            },
            {
              "value": "en-US",
              "type": "string"
            }
          ],
          "optional": true,
          "required": false,
          "getter": false,
          "setter": false
        },
        {
          "name": "mode",
          "type": "\"continuity\" | \"grid\" | \"pure-grid\" | \"set\"",
          "complexType": {
            "original": "Mode",
            "resolved": "\"continuity\" | \"grid\" | \"pure-grid\" | \"set\"",
            "references": {
              "Mode": {
                "location": "local",
                "path": "src/components/vviinn-vpr-widget/vviinn-vpr-widget.tsx",
                "id": "src/components/vviinn-vpr-widget/vviinn-vpr-widget.tsx::Mode"
              }
            }
          },
          "mutable": false,
          "attr": "mode",
          "reflectToAttr": false,
          "docs": "Switch between carousel modes",
          "docsTags": [],
          "default": "\"continuity\"",
          "values": [
            {
              "value": "continuity",
              "type": "string"
            },
            {
              "value": "grid",
              "type": "string"
            },
            {
              "value": "pure-grid",
              "type": "string"
            },
            {
              "value": "set",
              "type": "string"
            }
          ],
          "optional": false,
          "required": false,
          "getter": false,
          "setter": false
        },
        {
          "name": "noResultShow",
          "type": "boolean",
          "complexType": {
            "original": "boolean",
            "resolved": "boolean",
            "references": {}
          },
          "mutable": false,
          "attr": "no-result-show",
          "reflectToAttr": false,
          "docs": "Showing a message (when true) or hiding the whole widget, when no results",
          "docsTags": [],
          "default": "true",
          "values": [
            {
              "type": "boolean"
            }
          ],
          "optional": false,
          "required": false,
          "getter": false,
          "setter": false
        },
        {
          "name": "noResultText",
          "type": "string",
          "complexType": {
            "original": "string",
            "resolved": "string",
            "references": {}
          },
          "mutable": false,
          "attr": "no-result-text",
          "reflectToAttr": false,
          "docs": "A custom message is displayed when no results",
          "docsTags": [],
          "default": "\"\"",
          "values": [
            {
              "type": "string"
            }
          ],
          "optional": false,
          "required": false,
          "getter": false,
          "setter": false
        },
        {
          "name": "numberLocale",
          "type": "string",
          "complexType": {
            "original": "string",
            "resolved": "string",
            "references": {}
          },
          "mutable": false,
          "attr": "number-locale",
          "reflectToAttr": false,
          "docs": "Locale for number formatting. Falls back to locale",
          "docsTags": [],
          "values": [
            {
              "type": "string"
            }
          ],
          "optional": true,
          "required": false,
          "getter": false,
          "setter": false
        },
        {
          "name": "pricePrefix",
          "type": "string",
          "complexType": {
            "original": "string",
            "resolved": "string",
            "references": {}
          },
          "mutable": false,
          "attr": "price-prefix",
          "reflectToAttr": false,
          "docs": "Prefix is displayed before the price",
          "docsTags": [],
          "values": [
            {
              "type": "string"
            }
          ],
          "optional": true,
          "required": false,
          "getter": false,
          "setter": false
        },
        {
          "name": "productDetailsNewTab",
          "type": "boolean",
          "complexType": {
            "original": "boolean",
            "resolved": "boolean",
            "references": {}
          },
          "mutable": false,
          "attr": "product-details-new-tab",
          "reflectToAttr": false,
          "docs": "Toggle for opening product link in new tab or not",
          "docsTags": [],
          "default": "false",
          "values": [
            {
              "type": "boolean"
            }
          ],
          "optional": false,
          "required": false,
          "getter": false,
          "setter": false
        },
        {
          "name": "productDetailsRedirect",
          "type": "boolean",
          "complexType": {
            "original": "boolean",
            "resolved": "boolean",
            "references": {}
          },
          "mutable": false,
          "attr": "product-details-redirect",
          "reflectToAttr": false,
          "docs": "Toggle for redirection to PDP on product's click",
          "docsTags": [],
          "default": "true",
          "values": [
            {
              "type": "boolean"
            }
          ],
          "optional": false,
          "required": false,
          "getter": false,
          "setter": false
        },
        {
          "name": "productId",
          "type": "string",
          "complexType": {
            "original": "string",
            "resolved": "string",
            "references": {}
          },
          "mutable": false,
          "attr": "product-id",
          "reflectToAttr": false,
          "docs": "ID of product you need recommendations for (required)",
          "docsTags": [],
          "values": [
            {
              "type": "string"
            }
          ],
          "optional": false,
          "required": false,
          "getter": false,
          "setter": false
        },
        {
          "name": "setItemsAmount",
          "type": "number",
          "complexType": {
            "original": "number",
            "resolved": "number",
            "references": {}
          },
          "mutable": false,
          "attr": "set-items-amount",
          "reflectToAttr": false,
          "docs": "Items amount in set mode grid",
          "docsTags": [],
          "default": "4",
          "values": [
            {
              "type": "number"
            }
          ],
          "optional": true,
          "required": false,
          "getter": false,
          "setter": false
        },
        {
          "name": "setModeDiscounts",
          "type": "string",
          "complexType": {
            "original": "string",
            "resolved": "string",
            "references": {}
          },
          "mutable": false,
          "attr": "set-mode-discounts",
          "reflectToAttr": false,
          "docs": "List of discounts for Set mode. Example: \"5, 10, 15, 20\" (could be less than 4 numbers)",
          "docsTags": [],
          "default": "this.mode === \"set\" ? \"5, 10, 15\" : \"\"",
          "values": [
            {
              "type": "string"
            }
          ],
          "optional": false,
          "required": false,
          "getter": false,
          "setter": false
        },
        {
          "name": "showExtendedFilters",
          "type": "boolean",
          "complexType": {
            "original": "boolean",
            "resolved": "boolean",
            "references": {}
          },
          "mutable": false,
          "attr": "show-extended-filters",
          "reflectToAttr": false,
          "docs": "Show extended filters on top",
          "docsTags": [],
          "default": "false",
          "values": [
            {
              "type": "boolean"
            }
          ],
          "optional": false,
          "required": false,
          "getter": false,
          "setter": false
        },
        {
          "name": "showFilters",
          "type": "boolean",
          "complexType": {
            "original": "boolean",
            "resolved": "boolean",
            "references": {}
          },
          "mutable": false,
          "attr": "show-filters",
          "reflectToAttr": false,
          "docs": "Show filters on top",
          "docsTags": [],
          "default": "false",
          "values": [
            {
              "type": "boolean"
            }
          ],
          "optional": false,
          "required": false,
          "getter": false,
          "setter": false
        },
        {
          "name": "showMultipleImages",
          "type": "boolean",
          "complexType": {
            "original": "boolean",
            "resolved": "boolean",
            "references": {}
          },
          "mutable": false,
          "attr": "show-multiple-images",
          "reflectToAttr": false,
          "docs": "Show multiple images on hover (desktop only)",
          "docsTags": [],
          "default": "false",
          "values": [
            {
              "type": "boolean"
            }
          ],
          "optional": false,
          "required": false,
          "getter": false,
          "setter": false
        },
        {
          "name": "showScroll",
          "type": "boolean",
          "complexType": {
            "original": "boolean",
            "resolved": "boolean",
            "references": {}
          },
          "mutable": false,
          "attr": "show-scroll",
          "reflectToAttr": false,
          "docs": "Show or hide the widget's scrollbar",
          "docsTags": [],
          "default": "true",
          "values": [
            {
              "type": "boolean"
            }
          ],
          "optional": false,
          "required": false,
          "getter": false,
          "setter": false
        },
        {
          "name": "token",
          "type": "string",
          "complexType": {
            "original": "string",
            "resolved": "string",
            "references": {}
          },
          "mutable": false,
          "attr": "token",
          "reflectToAttr": false,
          "docs": "Vviinn customer's token (required)",
          "docsTags": [],
          "values": [
            {
              "type": "string"
            }
          ],
          "optional": false,
          "required": false,
          "getter": false,
          "setter": false
        },
        {
          "name": "updateButtonLocation",
          "type": "\"onItem\" | \"onTop\" | \"topAndItem\"",
          "complexType": {
            "original": "UpdateButtonLocation",
            "resolved": "\"onItem\" | \"onTop\" | \"topAndItem\"",
            "references": {
              "UpdateButtonLocation": {
                "location": "local",
                "path": "src/components/vviinn-vpr-widget/vviinn-vpr-widget.tsx",
                "id": "src/components/vviinn-vpr-widget/vviinn-vpr-widget.tsx::UpdateButtonLocation"
              }
            }
          },
          "mutable": false,
          "attr": "update-button-location",
          "reflectToAttr": false,
          "docs": "Location of Update button for Set mode",
          "docsTags": [],
          "default": "\"topAndItem\"",
          "values": [
            {
              "value": "onItem",
              "type": "string"
            },
            {
              "value": "onTop",
              "type": "string"
            },
            {
              "value": "topAndItem",
              "type": "string"
            }
          ],
          "optional": false,
          "required": false,
          "getter": false,
          "setter": false
        }
      ],
      "methods": [],
      "events": [
        {
          "event": "vviinnAddToBasket",
          "detail": "{ widget?: Widget; } & { campaignTypeId: \"VPR\" | \"VPS\" | \"TPS\" | \"VCS\"; campaignTypeName: \"Similar Products\" | \"Visual Search\" | \"Cross-Selling\" | \"Text Product Search\"; widgetId?: string; widgetVersion: string; }",
          "bubbles": true,
          "complexType": {
            "original": "BasicEventData",
            "resolved": "{ widget?: Widget; } & { campaignTypeId: \"VPR\" | \"VPS\" | \"TPS\" | \"VCS\"; campaignTypeName: \"Similar Products\" | \"Visual Search\" | \"Cross-Selling\" | \"Text Product Search\"; widgetId?: string; widgetVersion: string; }",
            "references": {
              "BasicEventData": {
                "location": "import",
                "path": "../../recommendation/events",
                "id": "src/recommendation/events.ts::BasicEventData"
              }
            }
          },
          "cancelable": true,
          "composed": true,
          "docs": "Add to Basket button clicked",
          "docsTags": []
        },
        {
          "event": "vviinnFiltersChanged",
          "detail": "{ filters: { column: string; values: string[] | { start?: number; end?: number; }[]; }[]; el: HTMLElement; isTriggeredByVpsWidget?: boolean; }",
          "bubbles": true,
          "complexType": {
            "original": "ChangedFiltersEventData",
            "resolved": "{ filters: { column: string; values: string[] | { start?: number; end?: number; }[]; }[]; el: HTMLElement; isTriggeredByVpsWidget?: boolean; }",
            "references": {
              "ChangedFiltersEventData": {
                "location": "import",
                "path": "../../recommendation/events",
                "id": "src/recommendation/events.ts::ChangedFiltersEventData"
              }
            }
          },
          "cancelable": true,
          "composed": true,
          "docs": "The filter's state changes",
          "docsTags": []
        },
        {
          "event": "vviinnNoResult",
          "detail": "{ widget?: Widget; } & { campaignTypeId: \"VPR\" | \"VPS\" | \"TPS\" | \"VCS\"; campaignTypeName: \"Similar Products\" | \"Visual Search\" | \"Cross-Selling\" | \"Text Product Search\"; widgetId?: string; widgetVersion: string; }",
          "bubbles": true,
          "complexType": {
            "original": "BasicEventData",
            "resolved": "{ widget?: Widget; } & { campaignTypeId: \"VPR\" | \"VPS\" | \"TPS\" | \"VCS\"; campaignTypeName: \"Similar Products\" | \"Visual Search\" | \"Cross-Selling\" | \"Text Product Search\"; widgetId?: string; widgetVersion: string; }",
            "references": {
              "BasicEventData": {
                "location": "import",
                "path": "../../recommendation/events",
                "id": "src/recommendation/events.ts::BasicEventData"
              }
            }
          },
          "cancelable": true,
          "composed": true,
          "docs": "Recommendation request failed",
          "docsTags": []
        },
        {
          "event": "vviinnProductClick",
          "detail": "{ productId: string; productRank: number; productName: string; productType: string; clickEvent?: MouseEvent; discount?: number; } & { campaignTypeId: \"VPR\" | \"VPS\" | \"TPS\" | \"VCS\"; campaignTypeName: \"Similar Products\" | \"Visual Search\" | \"Cross-Selling\" | \"Text Product Search\"; widgetId?: string; widgetVersion: string; }",
          "bubbles": true,
          "complexType": {
            "original": "ProductCardEventData",
            "resolved": "{ productId: string; productRank: number; productName: string; productType: string; clickEvent?: MouseEvent; discount?: number; } & { campaignTypeId: \"VPR\" | \"VPS\" | \"TPS\" | \"VCS\"; campaignTypeName: \"Similar Products\" | \"Visual Search\" | \"Cross-Selling\" | \"Text Product Search\"; widgetId?: string; widgetVersion: string; }",
            "references": {
              "ProductCardEventData": {
                "location": "import",
                "path": "../../recommendation/events",
                "id": "src/recommendation/events.ts::ProductCardEventData"
              }
            }
          },
          "cancelable": true,
          "composed": true,
          "docs": "Click on the product's link",
          "docsTags": []
        },
        {
          "event": "vviinnProductLoad",
          "detail": "{ productId: string; productRank: number; productName: string; productType: string; clickEvent?: MouseEvent; discount?: number; } & { campaignTypeId: \"VPR\" | \"VPS\" | \"TPS\" | \"VCS\"; campaignTypeName: \"Similar Products\" | \"Visual Search\" | \"Cross-Selling\" | \"Text Product Search\"; widgetId?: string; widgetVersion: string; }",
          "bubbles": true,
          "complexType": {
            "original": "ProductCardEventData",
            "resolved": "{ productId: string; productRank: number; productName: string; productType: string; clickEvent?: MouseEvent; discount?: number; } & { campaignTypeId: \"VPR\" | \"VPS\" | \"TPS\" | \"VCS\"; campaignTypeName: \"Similar Products\" | \"Visual Search\" | \"Cross-Selling\" | \"Text Product Search\"; widgetId?: string; widgetVersion: string; }",
            "references": {
              "ProductCardEventData": {
                "location": "import",
                "path": "../../recommendation/events",
                "id": "src/recommendation/events.ts::ProductCardEventData"
              }
            }
          },
          "cancelable": true,
          "composed": true,
          "docs": "Recommended product renders on the page",
          "docsTags": []
        },
        {
          "event": "vviinnProductView",
          "detail": "{ productId: string; productRank: number; productName: string; productType: string; clickEvent?: MouseEvent; discount?: number; } & { campaignTypeId: \"VPR\" | \"VPS\" | \"TPS\" | \"VCS\"; campaignTypeName: \"Similar Products\" | \"Visual Search\" | \"Cross-Selling\" | \"Text Product Search\"; widgetId?: string; widgetVersion: string; }",
          "bubbles": true,
          "complexType": {
            "original": "ProductCardEventData",
            "resolved": "{ productId: string; productRank: number; productName: string; productType: string; clickEvent?: MouseEvent; discount?: number; } & { campaignTypeId: \"VPR\" | \"VPS\" | \"TPS\" | \"VCS\"; campaignTypeName: \"Similar Products\" | \"Visual Search\" | \"Cross-Selling\" | \"Text Product Search\"; widgetId?: string; widgetVersion: string; }",
            "references": {
              "ProductCardEventData": {
                "location": "import",
                "path": "../../recommendation/events",
                "id": "src/recommendation/events.ts::ProductCardEventData"
              }
            }
          },
          "cancelable": true,
          "composed": true,
          "docs": "Recommended product appears in the viewport",
          "docsTags": []
        },
        {
          "event": "vviinnResultLoad",
          "detail": "{ widget?: Widget; } & { campaignTypeId: \"VPR\" | \"VPS\" | \"TPS\" | \"VCS\"; campaignTypeName: \"Similar Products\" | \"Visual Search\" | \"Cross-Selling\" | \"Text Product Search\"; widgetId?: string; widgetVersion: string; }",
          "bubbles": true,
          "complexType": {
            "original": "BasicEventData",
            "resolved": "{ widget?: Widget; } & { campaignTypeId: \"VPR\" | \"VPS\" | \"TPS\" | \"VCS\"; campaignTypeName: \"Similar Products\" | \"Visual Search\" | \"Cross-Selling\" | \"Text Product Search\"; widgetId?: string; widgetVersion: string; }",
            "references": {
              "BasicEventData": {
                "location": "import",
                "path": "../../recommendation/events",
                "id": "src/recommendation/events.ts::BasicEventData"
              }
            }
          },
          "cancelable": true,
          "composed": true,
          "docs": "The recommendation result renders on the page",
          "docsTags": []
        },
        {
          "event": "vviinnResultView",
          "detail": "{ widget?: Widget; } & { campaignTypeId: \"VPR\" | \"VPS\" | \"TPS\" | \"VCS\"; campaignTypeName: \"Similar Products\" | \"Visual Search\" | \"Cross-Selling\" | \"Text Product Search\"; widgetId?: string; widgetVersion: string; }",
          "bubbles": true,
          "complexType": {
            "original": "BasicEventData",
            "resolved": "{ widget?: Widget; } & { campaignTypeId: \"VPR\" | \"VPS\" | \"TPS\" | \"VCS\"; campaignTypeName: \"Similar Products\" | \"Visual Search\" | \"Cross-Selling\" | \"Text Product Search\"; widgetId?: string; widgetVersion: string; }",
            "references": {
              "BasicEventData": {
                "location": "import",
                "path": "../../recommendation/events",
                "id": "src/recommendation/events.ts::BasicEventData"
              }
            }
          },
          "cancelable": true,
          "composed": true,
          "docs": "The recommendation result appears in the viewport",
          "docsTags": []
        },
        {
          "event": "vviinnWidgetLoad",
          "detail": "{ widget?: Widget; } & { campaignTypeId: \"VPR\" | \"VPS\" | \"TPS\" | \"VCS\"; campaignTypeName: \"Similar Products\" | \"Visual Search\" | \"Cross-Selling\" | \"Text Product Search\"; widgetId?: string; widgetVersion: string; }",
          "bubbles": true,
          "complexType": {
            "original": "BasicEventData",
            "resolved": "{ widget?: Widget; } & { campaignTypeId: \"VPR\" | \"VPS\" | \"TPS\" | \"VCS\"; campaignTypeName: \"Similar Products\" | \"Visual Search\" | \"Cross-Selling\" | \"Text Product Search\"; widgetId?: string; widgetVersion: string; }",
            "references": {
              "BasicEventData": {
                "location": "import",
                "path": "../../recommendation/events",
                "id": "src/recommendation/events.ts::BasicEventData"
              }
            }
          },
          "cancelable": true,
          "composed": true,
          "docs": "Event emitted on widget load",
          "docsTags": []
        }
      ],
      "listeners": [
        {
          "event": "vviinnProductLoad",
          "capture": false,
          "passive": false
        },
        {
          "event": "vviinnProductView",
          "capture": false,
          "passive": false
        },
        {
          "event": "vviinnProductClick",
          "capture": false,
          "passive": false
        },
        {
          "event": "vviinnAuxClick",
          "capture": false,
          "passive": false
        },
        {
          "event": "vviinnAddToBasket",
          "capture": false,
          "passive": false
        },
        {
          "event": "vviinnAddToFavorite",
          "capture": false,
          "passive": false
        },
        {
          "event": "vviinnUpdatingAllCardsFinished",
          "capture": false,
          "passive": false
        },
        {
          "event": "vviinnFiltersChanged",
          "capture": false,
          "passive": false
        }
      ],
      "styles": [
        {
          "name": "--basket-button-bg-color-pressed",
          "annotation": "prop",
          "docs": "The background color of the pressed Basket Button."
        },
        {
          "name": "--font-family",
          "annotation": "prop",
          "docs": "The font family of the widget."
        },
        {
          "name": "--product-card-content-align",
          "annotation": "prop",
          "docs": "The alignment of the content inside the product card's flex container."
        },
        {
          "name": "--product-card-image-aspect-ratio",
          "annotation": "prop",
          "docs": "The aspect ratio of the product card image (e.g., \"1 / 1\", \"3 / 4\")."
        },
        {
          "name": "--product-card-image-bg-color",
          "annotation": "prop",
          "docs": "The background color of the product card image."
        },
        {
          "name": "--product-card-image-border",
          "annotation": "prop",
          "docs": "The border of the product card image."
        },
        {
          "name": "--product-card-text-align",
          "annotation": "prop",
          "docs": "The alignment of the text inside the product card."
        },
        {
          "name": "--sidebar-animation-duration",
          "annotation": "prop",
          "docs": "The animation duration of the recommendations sidebar."
        },
        {
          "name": "--vviinn-carousel-columns",
          "annotation": "prop",
          "docs": "A number of items in grid mode."
        }
      ],
      "slots": [
        {
          "name": "vviinn-basket-button-icon",
          "docs": "Text of Add to Basket icon."
        },
        {
          "name": "vviinn-basket-button-icon-pressed",
          "docs": "Icon of pressed Add to Basket button."
        },
        {
          "name": "vviinn-basket-button-text",
          "docs": "Text of Add to Basket button."
        },
        {
          "name": "vviinn-basket-button-text-pressed",
          "docs": "Text of pressed Add to Basket button."
        },
        {
          "name": "vviinn-custom-label-0",
          "docs": "Custom label with index 0."
        },
        {
          "name": "vviinn-custom-label-1",
          "docs": "Custom label with index 1."
        },
        {
          "name": "vviinn-custom-label-2",
          "docs": "Custom label with index 2."
        },
        {
          "name": "vviinn-custom-label-3",
          "docs": "Custom label with index 3."
        },
        {
          "name": "vviinn-custom-label-4",
          "docs": "Custom label with index 4."
        },
        {
          "name": "vviinn-energy-label-data-sheet-text",
          "docs": "Text of the data sheet link for the energy label."
        },
        {
          "name": "vviinn-favorite-icon",
          "docs": "Icon of Favorite button."
        },
        {
          "name": "vviinn-favorite-icon-pressed",
          "docs": "Icon of pressed Favorite button."
        },
        {
          "name": "vviinn-image-placeholder-icon",
          "docs": "Icon or content for the image placeholder."
        },
        {
          "name": "vviinn-recommendations-subtitle",
          "docs": "Recommendations subtitle text."
        },
        {
          "name": "vviinn-recommendations-title",
          "docs": "Recommendations title text."
        },
        {
          "name": "vviinn-update-button-icon",
          "docs": "Icon of Update Button (Set mode)."
        },
        {
          "name": "vviinn-update-button-text",
          "docs": "Text of Update Button on the top (Set mode)."
        }
      ],
      "parts": [
        {
          "name": "basket-button",
          "docs": "Add to Basket button."
        },
        {
          "name": "basket-button-container",
          "docs": "Product Card's basket button container."
        },
        {
          "name": "brand",
          "docs": "Brand inside Product Card."
        },
        {
          "name": "carousel-button",
          "docs": "Both carousel navigation buttons (generic part)."
        },
        {
          "name": "carousel-button-next",
          "docs": "The next/forward carousel navigation button."
        },
        {
          "name": "carousel-button-prev",
          "docs": "The previous/back carousel navigation button."
        },
        {
          "name": "content-container",
          "docs": "Product Card's content container."
        },
        {
          "name": "currency",
          "docs": "Currency related to price."
        },
        {
          "name": "custom-label-0",
          "docs": "Custom label with index 0."
        },
        {
          "name": "custom-label-1",
          "docs": "Custom label with index 1."
        },
        {
          "name": "custom-label-2",
          "docs": "Custom label with index 2."
        },
        {
          "name": "custom-label-3",
          "docs": "Custom label with index 3."
        },
        {
          "name": "custom-label-4",
          "docs": "Custom label with index 4."
        },
        {
          "name": "deeplink",
          "docs": "Anchor element around product title. Rendered only if \"deeplink\" property is filled."
        },
        {
          "name": "discount-label",
          "docs": "Discount label in Product Card (Set mode)."
        },
        {
          "name": "discount-percentage",
          "docs": "Discount percentage inside the Add to Basket button (Set mode)."
        },
        {
          "name": "energy-label-container",
          "docs": "Energy label container."
        },
        {
          "name": "energy-label-data-sheet-link",
          "docs": "Data sheet link."
        },
        {
          "name": "energy-label-icon",
          "docs": "Icon with an energy class."
        },
        {
          "name": "energy-label-product-type",
          "docs": "Product type."
        },
        {
          "name": "favorite-button",
          "docs": "Favorite button."
        },
        {
          "name": "image",
          "docs": "Product Card image."
        },
        {
          "name": "image-container",
          "docs": "Product Card's image container."
        },
        {
          "name": "image-link",
          "docs": "Anchor element around product image. Rendered only if \"deeplink\" property is filled."
        },
        {
          "name": "image-picture",
          "docs": "Picture element for image."
        },
        {
          "name": "image-placeholder",
          "docs": "Placeholder shown when no image is available."
        },
        {
          "name": "list-card",
          "docs": "List card container."
        },
        {
          "name": "list-card-content-container",
          "docs": "List card's content container."
        },
        {
          "name": "list-card-image-container",
          "docs": "List card's image container."
        },
        {
          "name": "list-label",
          "docs": "List card's label (e.g., \"Category\")."
        },
        {
          "name": "list-title",
          "docs": "List card's title."
        },
        {
          "name": "price-amount-base-outdated",
          "docs": "Numeric part of the base price."
        },
        {
          "name": "price-amount-base-regular",
          "docs": "Numeric part of the base price."
        },
        {
          "name": "price-amount-base-sale",
          "docs": "Numeric part of the base price."
        },
        {
          "name": "price-amount-outdated",
          "docs": "Numeric part of the price."
        },
        {
          "name": "price-amount-regular",
          "docs": "Numeric part of the price."
        },
        {
          "name": "price-amount-sale",
          "docs": "Numeric part of the price."
        },
        {
          "name": "price-outdated",
          "docs": "Block for outdated price. Rendered when the product contains the sale price."
        },
        {
          "name": "price-prefix",
          "docs": "Block rendered before each price element (for ex. \"from\")."
        },
        {
          "name": "price-regular",
          "docs": "Block for a price if no sale price is presented."
        },
        {
          "name": "price-sale",
          "docs": "Block for sale price. Rendered only if the sale price is presented."
        },
        {
          "name": "product-card",
          "docs": "Product Card itself."
        },
        {
          "name": "product-card-actions",
          "docs": "Product Card actions wrapper."
        },
        {
          "name": "product-card-actions-top",
          "docs": "Product Card top actions wrapper."
        },
        {
          "name": "product-images-pagination",
          "docs": "Container for product images pagination dots (mobile only)."
        },
        {
          "name": "product-images-pagination-bullet",
          "docs": "Individual pagination dot."
        },
        {
          "name": "product-images-pagination-bullet-active",
          "docs": "Active pagination dot."
        },
        {
          "name": "product-type",
          "docs": "Product Type inside Product Card."
        },
        {
          "name": "recommendations-results",
          "docs": "For internal usage only!"
        },
        {
          "name": "recommendations-subtitle",
          "docs": "Subtitle of the recommendations grid."
        },
        {
          "name": "recommendations-title",
          "docs": "Title of the recommendations grid."
        },
        {
          "name": "title",
          "docs": "Title inside Product Card."
        },
        {
          "name": "update-button-item",
          "docs": "Update Button inside the Product Card (Set mode)."
        },
        {
          "name": "update-button-top",
          "docs": "Update Button on the top (Set mode)."
        }
      ],
      "dependents": [
        "vviinn-recommendations-sidebar"
      ],
      "dependencies": [
        "vviinn-product-card",
        "vviinn-carousel",
        "vviinn-filters",
        "vviinn-extended-filters"
      ],
      "dependencyGraph": {
        "vviinn-vpr-widget": [
          "vviinn-product-card",
          "vviinn-carousel",
          "vviinn-filters",
          "vviinn-extended-filters"
        ],
        "vviinn-product-card": [
          "vviinn-skeleton",
          "vviinn-energy-label",
          "vviinn-image"
        ],
        "vviinn-image": [
          "vviinn-skeleton"
        ],
        "vviinn-carousel": [
          "vviinn-product-card"
        ],
        "vviinn-filters": [
          "vviinn-range-filter"
        ],
        "vviinn-extended-filters": [
          "vviinn-range-filter",
          "vviinn-extended-filters-button"
        ],
        "vviinn-recommendations-sidebar": [
          "vviinn-vpr-widget"
        ]
      }
    },
    {
      "filePath": "src/components/vviinn-vps-button/vviinn-vps-button.tsx",
      "encapsulation": "shadow",
      "tag": "vviinn-vps-button",
      "docs": "",
      "docsTags": [
        {
          "name": "slot",
          "text": "vviinn-teaser-text - Text on the widget's main screen."
        },
        {
          "name": "slot",
          "text": "vviinn-image-upload-button-text - Title of Upload Button."
        },
        {
          "name": "slot",
          "text": "vviinn-image-upload-icon - Icon of Upload Button."
        },
        {
          "name": "slot",
          "text": "vviinn-drag-drop-icon - Icon of the drag & drop zone."
        },
        {
          "name": "slot",
          "text": "vviinn-drag-drop-text - Hint text of the drag & drop zone."
        },
        {
          "name": "slot",
          "text": "vviinn-camera-button-text-start - Title of Start Camera button."
        },
        {
          "name": "slot",
          "text": "vviinn-camera-button-text-stop - Title of Stop Camera button (for Desktop)."
        },
        {
          "name": "slot",
          "text": "vviinn-camera-icon - Icon of Camera Button."
        },
        {
          "name": "slot",
          "text": "vviinn-privacy-badge-text - Text content of privacy notification block."
        },
        {
          "name": "slot",
          "text": "vviinn-image-search-modal-title - Image search modal title."
        },
        {
          "name": "slot",
          "text": "vviinn-text-search-icon - Icon of the text search block."
        },
        {
          "name": "slot",
          "text": "vviinn-energy-label-data-sheet-text - Text of the data sheet link for the energy label."
        },
        {
          "name": "slot",
          "text": "vviinn-results-vpr-icon - One-Click Discovery icon"
        },
        {
          "name": "slot",
          "text": "vviinn-favorite-icon - Icon of Favorite button."
        },
        {
          "name": "slot",
          "text": "vviinn-favorite-icon-pressed - Icon of pressed Favorite button."
        },
        {
          "name": "slot",
          "text": "vviinn-basket-button-text - Text of Add to Basket button."
        },
        {
          "name": "slot",
          "text": "vviinn-basket-button-icon - Icon of Add to Basket button."
        },
        {
          "name": "slot",
          "text": "vviinn-basket-button-text-pressed - Text of pressed Add to Basket button."
        },
        {
          "name": "slot",
          "text": "vviinn-basket-button-icon-pressed - Icon of pressed Add to Basket button."
        },
        {
          "name": "slot",
          "text": "vviinn-custom-label-0 - Custom label with index 0."
        },
        {
          "name": "slot",
          "text": "vviinn-custom-label-1 - Custom label with index 1."
        },
        {
          "name": "slot",
          "text": "vviinn-custom-label-2 - Custom label with index 2."
        },
        {
          "name": "slot",
          "text": "vviinn-custom-label-3 - Custom label with index 3."
        },
        {
          "name": "slot",
          "text": "vviinn-custom-label-4 - Custom label with index 4."
        },
        {
          "name": "slot",
          "text": "vviinn-suggestions-title - Custom title text to replace default \"AI Suggestions\"."
        },
        {
          "name": "slot",
          "text": "vviinn-suggestions-icon - Custom icon to replace default sparkle emoji."
        },
        {
          "name": "part",
          "text": "close-button - Close Button in the modal's header."
        },
        {
          "name": "part",
          "text": "secondary-action - Back Button in the modal's header."
        },
        {
          "name": "part",
          "text": "results-title - Title on the results page."
        },
        {
          "name": "part",
          "text": "upload-photo_button - Upload Photo Button."
        },
        {
          "name": "part",
          "text": "drop-zone - Drag & drop container (when useDragAndDrop is enabled)."
        },
        {
          "name": "part",
          "text": "start-camera_button - Start Camera Button."
        },
        {
          "name": "part",
          "text": "products - Products container."
        },
        {
          "name": "part",
          "text": "product-card - Product Card itself."
        },
        {
          "name": "part",
          "text": "brand - Brand inside Product Card."
        },
        {
          "name": "part",
          "text": "product-type - Product Type inside Product Card."
        },
        {
          "name": "part",
          "text": "currency - Currency related to price."
        },
        {
          "name": "part",
          "text": "deeplink - Anchor element around product title. Rendered only if \"deeplink\" property is filled."
        },
        {
          "name": "part",
          "text": "image - Product Card image."
        },
        {
          "name": "part",
          "text": "image-link - Anchor element around product image. Rendered only if \"deeplink\" property is filled."
        },
        {
          "name": "part",
          "text": "image-picture - Picture element for image."
        },
        {
          "name": "part",
          "text": "price-amount-regular - Numeric part of the price."
        },
        {
          "name": "part",
          "text": "price-amount-sale - Numeric part of the price."
        },
        {
          "name": "part",
          "text": "price-amount-outdated - Numeric part of the price."
        },
        {
          "name": "part",
          "text": "price-amount-base-sale - Numeric part of the base price."
        },
        {
          "name": "part",
          "text": "price-amount-base-outdated - Numeric part of the base price."
        },
        {
          "name": "part",
          "text": "price-amount-base-regular - Numeric part of the base price."
        },
        {
          "name": "part",
          "text": "price-outdated - Block for outdated price. Rendered when the product contains the sale price."
        },
        {
          "name": "part",
          "text": "price-regular - Block for a price if no sale price is presented."
        },
        {
          "name": "part",
          "text": "price-sale - Block for sale price. Rendered only if the sale price is presented."
        },
        {
          "name": "part",
          "text": "price-prefix - Block rendered before each price element (for ex. \"from\")."
        },
        {
          "name": "part",
          "text": "title - Title inside Product Card."
        },
        {
          "name": "part",
          "text": "basket-button - Add to Basket button."
        },
        {
          "name": "part",
          "text": "basket-button-container - Product Card's basket button container."
        },
        {
          "name": "part",
          "text": "favorite-button - Favorite button."
        },
        {
          "name": "part",
          "text": "product-card-actions - Product Card actions wrapper."
        },
        {
          "name": "part",
          "text": "product-card-actions-top - Product Card top actions wrapper."
        },
        {
          "name": "part",
          "text": "text-search-input - Text search input."
        },
        {
          "name": "part",
          "text": "button - Clickable button element."
        },
        {
          "name": "part",
          "text": "vviinn-button - Button element container."
        },
        {
          "name": "part",
          "text": "custom-label-0 - Custom label with index 0."
        },
        {
          "name": "part",
          "text": "custom-label-1 - Custom label with index 1."
        },
        {
          "name": "part",
          "text": "custom-label-2 - Custom label with index 2."
        },
        {
          "name": "part",
          "text": "custom-label-3 - Custom label with index 3."
        },
        {
          "name": "part",
          "text": "custom-label-4 - Custom label with index 4."
        },
        {
          "name": "part",
          "text": "energy-label-container - Energy label container."
        },
        {
          "name": "part",
          "text": "energy-label-icon - Icon with an energy class."
        },
        {
          "name": "part",
          "text": "energy-label-product-type - Product type."
        },
        {
          "name": "part",
          "text": "energy-label-data-sheet-link - Data sheet link."
        },
        {
          "name": "part",
          "text": "product-images-pagination - Container for product images pagination dots (mobile only)."
        },
        {
          "name": "part",
          "text": "product-images-pagination-bullet - Individual pagination dot."
        },
        {
          "name": "part",
          "text": "product-images-pagination-bullet-active - Active pagination dot."
        },
        {
          "name": "part",
          "text": "suggestions-container - The main suggestions container element."
        },
        {
          "name": "part",
          "text": "suggestions-header - The header section containing icon and title."
        },
        {
          "name": "part",
          "text": "suggestions-icon - The sparkle icon wrapper."
        },
        {
          "name": "part",
          "text": "suggestions-title - The title text element."
        },
        {
          "name": "part",
          "text": "suggestions-description - The description text element."
        },
        {
          "name": "part",
          "text": "suggestions-wrapper - The wrapper around the suggestions list."
        },
        {
          "name": "part",
          "text": "suggestions-list - The list container for all suggestions."
        },
        {
          "name": "part",
          "text": "suggestion-item - Individual suggestion item."
        },
        {
          "name": "part",
          "text": "suggestion-link - Clickable suggestion text/link."
        },
        {
          "name": "part",
          "text": "suggestion-filter-button - Toggle button for filter suggestions."
        }
      ],
      "usage": {},
      "props": [
        {
          "name": "addPriceContainer",
          "type": "boolean",
          "complexType": {
            "original": "boolean",
            "resolved": "boolean",
            "references": {}
          },
          "mutable": false,
          "attr": "add-price-container",
          "reflectToAttr": false,
          "docs": "Wrap the Product Card's price values in the container.",
          "docsTags": [],
          "default": "false",
          "values": [
            {
              "type": "boolean"
            }
          ],
          "optional": true,
          "required": false,
          "getter": false,
          "setter": false
        },
        {
          "name": "addStyle",
          "type": "boolean",
          "complexType": {
            "original": "boolean",
            "resolved": "boolean",
            "references": {}
          },
          "mutable": false,
          "attr": "add-style",
          "reflectToAttr": false,
          "docs": "Add style to the button",
          "docsTags": [],
          "default": "false",
          "values": [
            {
              "type": "boolean"
            }
          ],
          "optional": false,
          "required": false,
          "getter": false,
          "setter": false
        },
        {
          "name": "addToBasketShow",
          "type": "boolean",
          "complexType": {
            "original": "boolean",
            "resolved": "boolean",
            "references": {}
          },
          "mutable": false,
          "attr": "add-to-basket-show",
          "reflectToAttr": false,
          "docs": "Show or hide Add to Basket buttons",
          "docsTags": [],
          "default": "false",
          "values": [
            {
              "type": "boolean"
            }
          ],
          "optional": false,
          "required": false,
          "getter": false,
          "setter": false
        },
        {
          "name": "aiSuggestionsShow",
          "type": "boolean",
          "complexType": {
            "original": "boolean",
            "resolved": "boolean",
            "references": {}
          },
          "mutable": false,
          "attr": "ai-suggestions-show",
          "reflectToAttr": false,
          "docs": "Show the AI Suggestions block in search results",
          "docsTags": [],
          "default": "false",
          "values": [
            {
              "type": "boolean"
            }
          ],
          "optional": false,
          "required": false,
          "getter": false,
          "setter": false
        },
        {
          "name": "apiPath",
          "type": "string",
          "complexType": {
            "original": "string",
            "resolved": "string",
            "references": {}
          },
          "mutable": false,
          "attr": "api-path",
          "reflectToAttr": false,
          "docs": "API endpoint URL (optional, defaults to production)",
          "docsTags": [],
          "values": [
            {
              "type": "string"
            }
          ],
          "optional": true,
          "required": false,
          "getter": false,
          "setter": false
        },
        {
          "name": "autoSuggestShow",
          "type": "boolean",
          "complexType": {
            "original": "boolean",
            "resolved": "boolean",
            "references": {}
          },
          "mutable": false,
          "attr": "auto-suggest-show",
          "reflectToAttr": false,
          "docs": "Show auto-suggest dropdown with search completions",
          "docsTags": [],
          "default": "true",
          "values": [
            {
              "type": "boolean"
            }
          ],
          "optional": false,
          "required": false,
          "getter": false,
          "setter": false
        },
        {
          "name": "campaignId",
          "type": "string",
          "complexType": {
            "original": "string",
            "resolved": "string",
            "references": {}
          },
          "mutable": false,
          "attr": "campaign-id",
          "reflectToAttr": false,
          "docs": "Campaign ID used for Visual Search (deprecated)",
          "docsTags": [],
          "default": "\"\"",
          "values": [
            {
              "type": "string"
            }
          ],
          "optional": false,
          "required": false,
          "getter": false,
          "setter": false
        },
        {
          "name": "campaignIdTextSearch",
          "type": "string",
          "complexType": {
            "original": "string",
            "resolved": "string",
            "references": {}
          },
          "mutable": false,
          "attr": "campaign-id-text-search",
          "reflectToAttr": false,
          "docs": "Campaign ID used for Text Search",
          "docsTags": [],
          "default": "\"\"",
          "values": [
            {
              "type": "string"
            }
          ],
          "optional": false,
          "required": false,
          "getter": false,
          "setter": false
        },
        {
          "name": "campaignIdVisualSearch",
          "type": "string",
          "complexType": {
            "original": "string",
            "resolved": "string",
            "references": {}
          },
          "mutable": false,
          "attr": "campaign-id-visual-search",
          "reflectToAttr": false,
          "docs": "Campaign ID used for Visual Search",
          "docsTags": [],
          "default": "\"\"",
          "values": [
            {
              "type": "string"
            }
          ],
          "optional": false,
          "required": false,
          "getter": false,
          "setter": false
        },
        {
          "name": "cssUrl",
          "type": "string",
          "complexType": {
            "original": "string | null",
            "resolved": "string",
            "references": {}
          },
          "mutable": false,
          "attr": "css-url",
          "reflectToAttr": false,
          "docs": "URL to external CSS file for custom styling",
          "docsTags": [],
          "default": "null",
          "values": [
            {
              "type": "string"
            }
          ],
          "optional": false,
          "required": false,
          "getter": false,
          "setter": false
        },
        {
          "name": "currencySign",
          "type": "string",
          "complexType": {
            "original": "string",
            "resolved": "string",
            "references": {}
          },
          "mutable": false,
          "attr": "currency-sign",
          "reflectToAttr": false,
          "docs": "The currency sign is displayed after the price",
          "docsTags": [],
          "values": [
            {
              "type": "string"
            }
          ],
          "optional": true,
          "required": false,
          "getter": false,
          "setter": false
        },
        {
          "name": "exampleImageSource",
          "type": "string",
          "complexType": {
            "original": "string",
            "resolved": "string",
            "references": {}
          },
          "mutable": false,
          "attr": "example-image-source",
          "reflectToAttr": false,
          "docs": "Example image source",
          "docsTags": [],
          "default": "DEFAULT_EXAMPLE_IMAGE",
          "values": [
            {
              "type": "string"
            }
          ],
          "optional": false,
          "required": false,
          "getter": false,
          "setter": false
        },
        {
          "name": "excluded",
          "type": "string",
          "complexType": {
            "original": "string",
            "resolved": "string",
            "references": {}
          },
          "mutable": false,
          "attr": "excluded",
          "reflectToAttr": false,
          "docs": "Excluded filter. Example: \"brand:Nike,Vans;custom_label_0:summer\"",
          "docsTags": [],
          "default": "\"\"",
          "values": [
            {
              "type": "string"
            }
          ],
          "optional": false,
          "required": false,
          "getter": false,
          "setter": false
        },
        {
          "name": "favoriteShow",
          "type": "boolean",
          "complexType": {
            "original": "boolean",
            "resolved": "boolean",
            "references": {}
          },
          "mutable": false,
          "attr": "favorite-show",
          "reflectToAttr": false,
          "docs": "Show or hide Favorite button",
          "docsTags": [],
          "default": "false",
          "values": [
            {
              "type": "boolean"
            }
          ],
          "optional": false,
          "required": false,
          "getter": false,
          "setter": false
        },
        {
          "name": "imageResolutionWidth",
          "type": "number",
          "complexType": {
            "original": "number",
            "resolved": "number",
            "references": {}
          },
          "mutable": false,
          "attr": "image-resolution-width",
          "reflectToAttr": false,
          "docs": "Resolution width of an image in the product card",
          "docsTags": [],
          "default": "SEARCH_WIDGET_IMAGE_RESOLUTION_WIDTH",
          "values": [
            {
              "type": "number"
            }
          ],
          "optional": false,
          "required": false,
          "getter": false,
          "setter": false
        },
        {
          "name": "locale",
          "type": "\"de-DE\" | \"en-US\"",
          "complexType": {
            "original": "Locale",
            "resolved": "\"de-DE\" | \"en-US\"",
            "references": {
              "Locale": {
                "location": "import",
                "path": "../../locale",
                "id": "src/locale/index.ts::Locale"
              }
            }
          },
          "mutable": false,
          "attr": "locale",
          "reflectToAttr": false,
          "docs": "Locale for text localization",
          "docsTags": [],
          "values": [
            {
              "value": "de-DE",
              "type": "string"
            },
            {
              "value": "en-US",
              "type": "string"
            }
          ],
          "optional": true,
          "required": false,
          "getter": false,
          "setter": false
        },
        {
          "name": "mode",
          "type": "\"camera\" | \"modal\" | \"upload\"",
          "complexType": {
            "original": "VisualSearchMode",
            "resolved": "\"camera\" | \"modal\" | \"upload\"",
            "references": {
              "VisualSearchMode": {
                "location": "import",
                "path": "../../widget/types",
                "id": "src/widget/types.ts::VisualSearchMode"
              }
            }
          },
          "mutable": false,
          "attr": "mode",
          "reflectToAttr": false,
          "docs": "Show the onboarding step, start the camera on opening, or skip the onboarding and move to the direct image upload.",
          "docsTags": [],
          "default": "\"modal\"",
          "values": [
            {
              "value": "camera",
              "type": "string"
            },
            {
              "value": "modal",
              "type": "string"
            },
            {
              "value": "upload",
              "type": "string"
            }
          ],
          "optional": false,
          "required": false,
          "getter": false,
          "setter": false
        },
        {
          "name": "numberLocale",
          "type": "string",
          "complexType": {
            "original": "string",
            "resolved": "string",
            "references": {}
          },
          "mutable": false,
          "attr": "number-locale",
          "reflectToAttr": false,
          "docs": "Locale for number formatting. Falls back to locale",
          "docsTags": [],
          "values": [
            {
              "type": "string"
            }
          ],
          "optional": true,
          "required": false,
          "getter": false,
          "setter": false
        },
        {
          "name": "oneClickDiscoveryCampaigns",
          "type": "string",
          "complexType": {
            "original": "string",
            "resolved": "string",
            "references": {}
          },
          "mutable": false,
          "attr": "one-click-discovery-campaigns",
          "reflectToAttr": false,
          "docs": "Comma-separated list of campaign IDs",
          "docsTags": [],
          "default": "\"\"",
          "values": [
            {
              "type": "string"
            }
          ],
          "optional": false,
          "required": false,
          "getter": false,
          "setter": false
        },
        {
          "name": "oneClickDiscoveryMode",
          "type": "\"append-grid\" | \"append-slider\" | \"unset\"",
          "complexType": {
            "original": "OneClickDiscoveryAppendMode",
            "resolved": "\"append-grid\" | \"append-slider\" | \"unset\"",
            "references": {
              "OneClickDiscoveryAppendMode": {
                "location": "import",
                "path": "../../widget/types",
                "id": "src/widget/types.ts::OneClickDiscoveryAppendMode"
              }
            }
          },
          "mutable": false,
          "attr": "one-click-discovery-mode",
          "reflectToAttr": false,
          "docs": "One-Click Discovery mode, restricted to append only (no modal supported for this component)",
          "docsTags": [],
          "default": "\"append-grid\"",
          "values": [
            {
              "value": "append-grid",
              "type": "string"
            },
            {
              "value": "append-slider",
              "type": "string"
            },
            {
              "value": "unset",
              "type": "string"
            }
          ],
          "optional": true,
          "required": false,
          "getter": false,
          "setter": false
        },
        {
          "name": "pricePrefix",
          "type": "string",
          "complexType": {
            "original": "string",
            "resolved": "string",
            "references": {}
          },
          "mutable": false,
          "attr": "price-prefix",
          "reflectToAttr": false,
          "docs": "Prefix is displayed before the price",
          "docsTags": [],
          "values": [
            {
              "type": "string"
            }
          ],
          "optional": true,
          "required": false,
          "getter": false,
          "setter": false
        },
        {
          "name": "productDetailsNewTab",
          "type": "boolean",
          "complexType": {
            "original": "boolean",
            "resolved": "boolean",
            "references": {}
          },
          "mutable": false,
          "attr": "product-details-new-tab",
          "reflectToAttr": false,
          "docs": "Toggle for opening product link in new tab or not",
          "docsTags": [],
          "default": "true",
          "values": [
            {
              "type": "boolean"
            }
          ],
          "optional": false,
          "required": false,
          "getter": false,
          "setter": false
        },
        {
          "name": "productDetailsRedirect",
          "type": "boolean",
          "complexType": {
            "original": "boolean",
            "resolved": "boolean",
            "references": {}
          },
          "mutable": false,
          "attr": "product-details-redirect",
          "reflectToAttr": false,
          "docs": "Toggle for redirection to PDP on product's click",
          "docsTags": [],
          "default": "true",
          "values": [
            {
              "type": "boolean"
            }
          ],
          "optional": false,
          "required": false,
          "getter": false,
          "setter": false
        },
        {
          "name": "resultsPageParams",
          "type": "string",
          "complexType": {
            "original": "string",
            "resolved": "string",
            "references": {}
          },
          "mutable": false,
          "attr": "results-page-params",
          "reflectToAttr": false,
          "docs": "Custom URL param names for results page redirect. Default: \"query=query&searchId=searchId\".",
          "docsTags": [],
          "values": [
            {
              "type": "string"
            }
          ],
          "optional": true,
          "required": false,
          "getter": false,
          "setter": false
        },
        {
          "name": "resultsPageUrl",
          "type": "string",
          "complexType": {
            "original": "string",
            "resolved": "string",
            "references": {}
          },
          "mutable": false,
          "attr": "results-page-url",
          "reflectToAttr": false,
          "docs": "URL of the results page for automatic search redirect.",
          "docsTags": [],
          "values": [
            {
              "type": "string"
            }
          ],
          "optional": true,
          "required": false,
          "getter": false,
          "setter": false
        },
        {
          "name": "showIntervalInputs",
          "type": "boolean",
          "complexType": {
            "original": "boolean",
            "resolved": "boolean",
            "references": {}
          },
          "mutable": false,
          "attr": "show-interval-inputs",
          "reflectToAttr": false,
          "docs": "Show editable input fields in interval filters instead of readonly labels",
          "docsTags": [],
          "default": "false",
          "values": [
            {
              "type": "boolean"
            }
          ],
          "optional": false,
          "required": false,
          "getter": false,
          "setter": false
        },
        {
          "name": "showMultipleImages",
          "type": "boolean",
          "complexType": {
            "original": "boolean",
            "resolved": "boolean",
            "references": {}
          },
          "mutable": false,
          "attr": "show-multiple-images",
          "reflectToAttr": false,
          "docs": "Show multiple images: swiper on mobile, hover on desktop in product cards",
          "docsTags": [],
          "default": "false",
          "values": [
            {
              "type": "boolean"
            }
          ],
          "optional": false,
          "required": false,
          "getter": false,
          "setter": false
        },
        {
          "name": "showResultsInModal",
          "type": "boolean",
          "complexType": {
            "original": "boolean",
            "resolved": "boolean",
            "references": {}
          },
          "mutable": false,
          "attr": "show-results-in-modal",
          "reflectToAttr": false,
          "docs": "Render results in modal. Set false to redirect or show results on the page.",
          "docsTags": [],
          "default": "true",
          "values": [
            {
              "type": "boolean"
            }
          ],
          "optional": true,
          "required": false,
          "getter": false,
          "setter": false
        },
        {
          "name": "textSearchShow",
          "type": "boolean",
          "complexType": {
            "original": "boolean",
            "resolved": "boolean",
            "references": {}
          },
          "mutable": false,
          "attr": "text-search-show",
          "reflectToAttr": false,
          "docs": "Show the text search",
          "docsTags": [],
          "default": "false",
          "values": [
            {
              "type": "boolean"
            }
          ],
          "optional": false,
          "required": false,
          "getter": false,
          "setter": false
        },
        {
          "name": "token",
          "type": "string",
          "complexType": {
            "original": "string",
            "resolved": "string",
            "references": {}
          },
          "mutable": false,
          "attr": "token",
          "reflectToAttr": false,
          "docs": "Vviinn customer's token (required)",
          "docsTags": [],
          "values": [
            {
              "type": "string"
            }
          ],
          "optional": false,
          "required": false,
          "getter": false,
          "setter": false
        },
        {
          "name": "useDragAndDrop",
          "type": "boolean",
          "complexType": {
            "original": "boolean",
            "resolved": "boolean",
            "references": {}
          },
          "mutable": false,
          "attr": "use-drag-and-drop",
          "reflectToAttr": false,
          "docs": "Accept image files dropped from the OS onto the upload button (desktop only)",
          "docsTags": [],
          "default": "false",
          "values": [
            {
              "type": "boolean"
            }
          ],
          "optional": false,
          "required": false,
          "getter": false,
          "setter": false
        }
      ],
      "methods": [],
      "events": [
        {
          "event": "vviinnImageCrop",
          "detail": "{ isTriggeredByVpsWidget: boolean; } & { widget?: Widget; campaignTypeId: \"VPR\" | \"VPS\" | \"TPS\" | \"VCS\"; campaignTypeName: \"Similar Products\" | \"Visual Search\" | \"Cross-Selling\" | \"Text Product Search\"; widgetId?: string; widgetVersion: string; }",
          "bubbles": true,
          "complexType": {
            "original": "ImageCropEventData",
            "resolved": "{ isTriggeredByVpsWidget: boolean; } & { widget?: Widget; campaignTypeId: \"VPR\" | \"VPS\" | \"TPS\" | \"VCS\"; campaignTypeName: \"Similar Products\" | \"Visual Search\" | \"Cross-Selling\" | \"Text Product Search\"; widgetId?: string; widgetVersion: string; }",
            "references": {
              "ImageCropEventData": {
                "location": "import",
                "path": "../../recommendation/events",
                "id": "src/recommendation/events.ts::ImageCropEventData"
              }
            }
          },
          "cancelable": true,
          "composed": true,
          "docs": "Crop area changes",
          "docsTags": []
        },
        {
          "event": "vviinnImageUploadStarted",
          "detail": "{ isTriggeredByVpsWidget?: boolean; } & { widget?: Widget; campaignTypeId: \"VPR\" | \"VPS\" | \"TPS\" | \"VCS\"; campaignTypeName: \"Similar Products\" | \"Visual Search\" | \"Cross-Selling\" | \"Text Product Search\"; widgetId?: string; widgetVersion: string; }",
          "bubbles": true,
          "complexType": {
            "original": "ImageUploadEventData",
            "resolved": "{ isTriggeredByVpsWidget?: boolean; } & { widget?: Widget; campaignTypeId: \"VPR\" | \"VPS\" | \"TPS\" | \"VCS\"; campaignTypeName: \"Similar Products\" | \"Visual Search\" | \"Cross-Selling\" | \"Text Product Search\"; widgetId?: string; widgetVersion: string; }",
            "references": {
              "ImageUploadEventData": {
                "location": "import",
                "path": "../../recommendation/events",
                "id": "src/recommendation/events.ts::ImageUploadEventData"
              }
            }
          },
          "cancelable": true,
          "composed": true,
          "docs": "The image upload has started",
          "docsTags": []
        },
        {
          "event": "vviinnNoResult",
          "detail": "{ widget?: Widget; } & { campaignTypeId: \"VPR\" | \"VPS\" | \"TPS\" | \"VCS\"; campaignTypeName: \"Similar Products\" | \"Visual Search\" | \"Cross-Selling\" | \"Text Product Search\"; widgetId?: string; widgetVersion: string; }",
          "bubbles": true,
          "complexType": {
            "original": "BasicEventData",
            "resolved": "{ widget?: Widget; } & { campaignTypeId: \"VPR\" | \"VPS\" | \"TPS\" | \"VCS\"; campaignTypeName: \"Similar Products\" | \"Visual Search\" | \"Cross-Selling\" | \"Text Product Search\"; widgetId?: string; widgetVersion: string; }",
            "references": {
              "BasicEventData": {
                "location": "import",
                "path": "../../recommendation/events",
                "id": "src/recommendation/events.ts::BasicEventData"
              }
            }
          },
          "cancelable": true,
          "composed": true,
          "docs": "Wrong image format (supported formats depend on the browser), or the request failed",
          "docsTags": []
        },
        {
          "event": "vviinnProductClick",
          "detail": "{ productId: string; productRank: number; productName: string; productType: string; clickEvent?: MouseEvent; discount?: number; } & { campaignTypeId: \"VPR\" | \"VPS\" | \"TPS\" | \"VCS\"; campaignTypeName: \"Similar Products\" | \"Visual Search\" | \"Cross-Selling\" | \"Text Product Search\"; widgetId?: string; widgetVersion: string; }",
          "bubbles": true,
          "complexType": {
            "original": "ProductCardEventData",
            "resolved": "{ productId: string; productRank: number; productName: string; productType: string; clickEvent?: MouseEvent; discount?: number; } & { campaignTypeId: \"VPR\" | \"VPS\" | \"TPS\" | \"VCS\"; campaignTypeName: \"Similar Products\" | \"Visual Search\" | \"Cross-Selling\" | \"Text Product Search\"; widgetId?: string; widgetVersion: string; }",
            "references": {
              "ProductCardEventData": {
                "location": "import",
                "path": "../../recommendation/events",
                "id": "src/recommendation/events.ts::ProductCardEventData"
              }
            }
          },
          "cancelable": true,
          "composed": true,
          "docs": "Click on the product's link",
          "docsTags": []
        },
        {
          "event": "vviinnProductLoad",
          "detail": "{ productId: string; productRank: number; productName: string; productType: string; clickEvent?: MouseEvent; discount?: number; } & { campaignTypeId: \"VPR\" | \"VPS\" | \"TPS\" | \"VCS\"; campaignTypeName: \"Similar Products\" | \"Visual Search\" | \"Cross-Selling\" | \"Text Product Search\"; widgetId?: string; widgetVersion: string; }",
          "bubbles": true,
          "complexType": {
            "original": "ProductCardEventData",
            "resolved": "{ productId: string; productRank: number; productName: string; productType: string; clickEvent?: MouseEvent; discount?: number; } & { campaignTypeId: \"VPR\" | \"VPS\" | \"TPS\" | \"VCS\"; campaignTypeName: \"Similar Products\" | \"Visual Search\" | \"Cross-Selling\" | \"Text Product Search\"; widgetId?: string; widgetVersion: string; }",
            "references": {
              "ProductCardEventData": {
                "location": "import",
                "path": "../../recommendation/events",
                "id": "src/recommendation/events.ts::ProductCardEventData"
              }
            }
          },
          "cancelable": true,
          "composed": true,
          "docs": "The recommendation renders on the page",
          "docsTags": []
        },
        {
          "event": "vviinnProductView",
          "detail": "{ productId: string; productRank: number; productName: string; productType: string; clickEvent?: MouseEvent; discount?: number; } & { campaignTypeId: \"VPR\" | \"VPS\" | \"TPS\" | \"VCS\"; campaignTypeName: \"Similar Products\" | \"Visual Search\" | \"Cross-Selling\" | \"Text Product Search\"; widgetId?: string; widgetVersion: string; }",
          "bubbles": true,
          "complexType": {
            "original": "ProductCardEventData",
            "resolved": "{ productId: string; productRank: number; productName: string; productType: string; clickEvent?: MouseEvent; discount?: number; } & { campaignTypeId: \"VPR\" | \"VPS\" | \"TPS\" | \"VCS\"; campaignTypeName: \"Similar Products\" | \"Visual Search\" | \"Cross-Selling\" | \"Text Product Search\"; widgetId?: string; widgetVersion: string; }",
            "references": {
              "ProductCardEventData": {
                "location": "import",
                "path": "../../recommendation/events",
                "id": "src/recommendation/events.ts::ProductCardEventData"
              }
            }
          },
          "cancelable": true,
          "composed": true,
          "docs": "The recommendation appears in the viewport",
          "docsTags": []
        },
        {
          "event": "vviinnResultLoad",
          "detail": "{ widget?: Widget; } & { campaignTypeId: \"VPR\" | \"VPS\" | \"TPS\" | \"VCS\"; campaignTypeName: \"Similar Products\" | \"Visual Search\" | \"Cross-Selling\" | \"Text Product Search\"; widgetId?: string; widgetVersion: string; }",
          "bubbles": true,
          "complexType": {
            "original": "BasicEventData",
            "resolved": "{ widget?: Widget; } & { campaignTypeId: \"VPR\" | \"VPS\" | \"TPS\" | \"VCS\"; campaignTypeName: \"Similar Products\" | \"Visual Search\" | \"Cross-Selling\" | \"Text Product Search\"; widgetId?: string; widgetVersion: string; }",
            "references": {
              "BasicEventData": {
                "location": "import",
                "path": "../../recommendation/events",
                "id": "src/recommendation/events.ts::BasicEventData"
              }
            }
          },
          "cancelable": true,
          "composed": true,
          "docs": "The search result renders on the page",
          "docsTags": []
        },
        {
          "event": "vviinnResultView",
          "detail": "{ widget?: Widget; } & { campaignTypeId: \"VPR\" | \"VPS\" | \"TPS\" | \"VCS\"; campaignTypeName: \"Similar Products\" | \"Visual Search\" | \"Cross-Selling\" | \"Text Product Search\"; widgetId?: string; widgetVersion: string; }",
          "bubbles": true,
          "complexType": {
            "original": "BasicEventData",
            "resolved": "{ widget?: Widget; } & { campaignTypeId: \"VPR\" | \"VPS\" | \"TPS\" | \"VCS\"; campaignTypeName: \"Similar Products\" | \"Visual Search\" | \"Cross-Selling\" | \"Text Product Search\"; widgetId?: string; widgetVersion: string; }",
            "references": {
              "BasicEventData": {
                "location": "import",
                "path": "../../recommendation/events",
                "id": "src/recommendation/events.ts::BasicEventData"
              }
            }
          },
          "cancelable": true,
          "composed": true,
          "docs": "The search result appears in the viewport",
          "docsTags": []
        },
        {
          "event": "vviinnSelectObject",
          "detail": "{ detectedObject: { left?: number; top?: number; width?: number; height?: number; }; searchArea: { left?: number; top?: number; width?: number; height?: number; }; } & { campaignTypeId: \"VPR\" | \"VPS\" | \"TPS\" | \"VCS\"; campaignTypeName: \"Similar Products\" | \"Visual Search\" | \"Cross-Selling\" | \"Text Product Search\"; widgetId?: string; widgetVersion: string; }",
          "bubbles": true,
          "complexType": {
            "original": "SelectObjectEventData",
            "resolved": "{ detectedObject: { left?: number; top?: number; width?: number; height?: number; }; searchArea: { left?: number; top?: number; width?: number; height?: number; }; } & { campaignTypeId: \"VPR\" | \"VPS\" | \"TPS\" | \"VCS\"; campaignTypeName: \"Similar Products\" | \"Visual Search\" | \"Cross-Selling\" | \"Text Product Search\"; widgetId?: string; widgetVersion: string; }",
            "references": {
              "SelectObjectEventData": {
                "location": "import",
                "path": "../../recommendation/events",
                "id": "src/recommendation/events.ts::SelectObjectEventData"
              }
            }
          },
          "cancelable": true,
          "composed": true,
          "docs": "User selects the detected object",
          "docsTags": []
        },
        {
          "event": "vviinnWidgetClose",
          "detail": "{ widget?: Widget; } & { campaignTypeId: \"VPR\" | \"VPS\" | \"TPS\" | \"VCS\"; campaignTypeName: \"Similar Products\" | \"Visual Search\" | \"Cross-Selling\" | \"Text Product Search\"; widgetId?: string; widgetVersion: string; }",
          "bubbles": true,
          "complexType": {
            "original": "BasicEventData",
            "resolved": "{ widget?: Widget; } & { campaignTypeId: \"VPR\" | \"VPS\" | \"TPS\" | \"VCS\"; campaignTypeName: \"Similar Products\" | \"Visual Search\" | \"Cross-Selling\" | \"Text Product Search\"; widgetId?: string; widgetVersion: string; }",
            "references": {
              "BasicEventData": {
                "location": "import",
                "path": "../../recommendation/events",
                "id": "src/recommendation/events.ts::BasicEventData"
              }
            }
          },
          "cancelable": true,
          "composed": true,
          "docs": "Event emitted on modal close.",
          "docsTags": []
        },
        {
          "event": "vviinnWidgetLoad",
          "detail": "{ widget?: Widget; } & { campaignTypeId: \"VPR\" | \"VPS\" | \"TPS\" | \"VCS\"; campaignTypeName: \"Similar Products\" | \"Visual Search\" | \"Cross-Selling\" | \"Text Product Search\"; widgetId?: string; widgetVersion: string; }",
          "bubbles": true,
          "complexType": {
            "original": "BasicEventData",
            "resolved": "{ widget?: Widget; } & { campaignTypeId: \"VPR\" | \"VPS\" | \"TPS\" | \"VCS\"; campaignTypeName: \"Similar Products\" | \"Visual Search\" | \"Cross-Selling\" | \"Text Product Search\"; widgetId?: string; widgetVersion: string; }",
            "references": {
              "BasicEventData": {
                "location": "import",
                "path": "../../recommendation/events",
                "id": "src/recommendation/events.ts::BasicEventData"
              }
            }
          },
          "cancelable": true,
          "composed": true,
          "docs": "Event emitted on widget load.",
          "docsTags": []
        },
        {
          "event": "vviinnWidgetOpen",
          "detail": "{ widget?: Widget; } & { campaignTypeId: \"VPR\" | \"VPS\" | \"TPS\" | \"VCS\"; campaignTypeName: \"Similar Products\" | \"Visual Search\" | \"Cross-Selling\" | \"Text Product Search\"; widgetId?: string; widgetVersion: string; }",
          "bubbles": true,
          "complexType": {
            "original": "BasicEventData",
            "resolved": "{ widget?: Widget; } & { campaignTypeId: \"VPR\" | \"VPS\" | \"TPS\" | \"VCS\"; campaignTypeName: \"Similar Products\" | \"Visual Search\" | \"Cross-Selling\" | \"Text Product Search\"; widgetId?: string; widgetVersion: string; }",
            "references": {
              "BasicEventData": {
                "location": "import",
                "path": "../../recommendation/events",
                "id": "src/recommendation/events.ts::BasicEventData"
              }
            }
          },
          "cancelable": true,
          "composed": true,
          "docs": "Event emitted on modal open.",
          "docsTags": []
        }
      ],
      "listeners": [
        {
          "event": "vviinnWidgetClose",
          "capture": false,
          "passive": false
        }
      ],
      "styles": [
        {
          "name": "--basket-button-bg-color-pressed",
          "annotation": "prop",
          "docs": "The background color of the pressed Basket Button."
        },
        {
          "name": "--color-primary",
          "annotation": "prop",
          "docs": "The color of Search Button and bullets in Onboarding Block."
        },
        {
          "name": "--color-primary-hover",
          "annotation": "prop",
          "docs": "The color of Search Button and bullets in Onboarding Block on mouse hover."
        },
        {
          "name": "--font-family",
          "annotation": "prop",
          "docs": "The font family of the widget."
        },
        {
          "name": "--modal-border-radius",
          "annotation": "prop",
          "docs": "The border radius of the modal."
        },
        {
          "name": "--product-card-content-align",
          "annotation": "prop",
          "docs": "The alignment of the content inside the product card's flex container."
        },
        {
          "name": "--product-card-image-aspect-ratio",
          "annotation": "prop",
          "docs": "The aspect ratio of the product card image (e.g., \"1 / 1\", \"3 / 4\")."
        },
        {
          "name": "--product-card-image-bg-color",
          "annotation": "prop",
          "docs": "The background color of the product card image."
        },
        {
          "name": "--product-card-image-border",
          "annotation": "prop",
          "docs": "The border of the product card image."
        },
        {
          "name": "--product-card-text-align",
          "annotation": "prop",
          "docs": "The alignment of the text inside the product card."
        },
        {
          "name": "--product-card-width",
          "annotation": "prop",
          "docs": "Minimum width of product card inside the grid."
        },
        {
          "name": "--search-modal-animation-duration",
          "annotation": "prop",
          "docs": "The animation duration of the modal on desktop devices."
        },
        {
          "name": "--search-modal-animation-duration-mobile",
          "annotation": "prop",
          "docs": "The animation duration of the modal on mobile devices."
        }
      ],
      "slots": [
        {
          "name": "vviinn-basket-button-icon",
          "docs": "Icon of Add to Basket button."
        },
        {
          "name": "vviinn-basket-button-icon-pressed",
          "docs": "Icon of pressed Add to Basket button."
        },
        {
          "name": "vviinn-basket-button-text",
          "docs": "Text of Add to Basket button."
        },
        {
          "name": "vviinn-basket-button-text-pressed",
          "docs": "Text of pressed Add to Basket button."
        },
        {
          "name": "vviinn-camera-button-text-start",
          "docs": "Title of Start Camera button."
        },
        {
          "name": "vviinn-camera-button-text-stop",
          "docs": "Title of Stop Camera button (for Desktop)."
        },
        {
          "name": "vviinn-camera-icon",
          "docs": "Icon of Camera Button."
        },
        {
          "name": "vviinn-custom-label-0",
          "docs": "Custom label with index 0."
        },
        {
          "name": "vviinn-custom-label-1",
          "docs": "Custom label with index 1."
        },
        {
          "name": "vviinn-custom-label-2",
          "docs": "Custom label with index 2."
        },
        {
          "name": "vviinn-custom-label-3",
          "docs": "Custom label with index 3."
        },
        {
          "name": "vviinn-custom-label-4",
          "docs": "Custom label with index 4."
        },
        {
          "name": "vviinn-drag-drop-icon",
          "docs": "Icon of the drag & drop zone."
        },
        {
          "name": "vviinn-drag-drop-text",
          "docs": "Hint text of the drag & drop zone."
        },
        {
          "name": "vviinn-energy-label-data-sheet-text",
          "docs": "Text of the data sheet link for the energy label."
        },
        {
          "name": "vviinn-favorite-icon",
          "docs": "Icon of Favorite button."
        },
        {
          "name": "vviinn-favorite-icon-pressed",
          "docs": "Icon of pressed Favorite button."
        },
        {
          "name": "vviinn-image-search-modal-title",
          "docs": "Image search modal title."
        },
        {
          "name": "vviinn-image-upload-button-text",
          "docs": "Title of Upload Button."
        },
        {
          "name": "vviinn-image-upload-icon",
          "docs": "Icon of Upload Button."
        },
        {
          "name": "vviinn-privacy-badge-text",
          "docs": "Text content of privacy notification block."
        },
        {
          "name": "vviinn-results-vpr-icon",
          "docs": "One-Click Discovery icon"
        },
        {
          "name": "vviinn-suggestions-icon",
          "docs": "Custom icon to replace default sparkle emoji."
        },
        {
          "name": "vviinn-suggestions-title",
          "docs": "Custom title text to replace default \"AI Suggestions\"."
        },
        {
          "name": "vviinn-teaser-text",
          "docs": "Text on the widget's main screen."
        },
        {
          "name": "vviinn-text-search-icon",
          "docs": "Icon of the text search block."
        }
      ],
      "parts": [
        {
          "name": "basket-button",
          "docs": "Add to Basket button."
        },
        {
          "name": "basket-button-container",
          "docs": "Product Card's basket button container."
        },
        {
          "name": "brand",
          "docs": "Brand inside Product Card."
        },
        {
          "name": "button",
          "docs": "Clickable button element."
        },
        {
          "name": "close-button",
          "docs": "Close Button in the modal's header."
        },
        {
          "name": "currency",
          "docs": "Currency related to price."
        },
        {
          "name": "custom-label-0",
          "docs": "Custom label with index 0."
        },
        {
          "name": "custom-label-1",
          "docs": "Custom label with index 1."
        },
        {
          "name": "custom-label-2",
          "docs": "Custom label with index 2."
        },
        {
          "name": "custom-label-3",
          "docs": "Custom label with index 3."
        },
        {
          "name": "custom-label-4",
          "docs": "Custom label with index 4."
        },
        {
          "name": "deeplink",
          "docs": "Anchor element around product title. Rendered only if \"deeplink\" property is filled."
        },
        {
          "name": "drop-zone",
          "docs": "Drag & drop container (when useDragAndDrop is enabled)."
        },
        {
          "name": "energy-label-container",
          "docs": "Energy label container."
        },
        {
          "name": "energy-label-data-sheet-link",
          "docs": "Data sheet link."
        },
        {
          "name": "energy-label-icon",
          "docs": "Icon with an energy class."
        },
        {
          "name": "energy-label-product-type",
          "docs": "Product type."
        },
        {
          "name": "favorite-button",
          "docs": "Favorite button."
        },
        {
          "name": "image",
          "docs": "Product Card image."
        },
        {
          "name": "image-link",
          "docs": "Anchor element around product image. Rendered only if \"deeplink\" property is filled."
        },
        {
          "name": "image-picture",
          "docs": "Picture element for image."
        },
        {
          "name": "price-amount-base-outdated",
          "docs": "Numeric part of the base price."
        },
        {
          "name": "price-amount-base-regular",
          "docs": "Numeric part of the base price."
        },
        {
          "name": "price-amount-base-sale",
          "docs": "Numeric part of the base price."
        },
        {
          "name": "price-amount-outdated",
          "docs": "Numeric part of the price."
        },
        {
          "name": "price-amount-regular",
          "docs": "Numeric part of the price."
        },
        {
          "name": "price-amount-sale",
          "docs": "Numeric part of the price."
        },
        {
          "name": "price-outdated",
          "docs": "Block for outdated price. Rendered when the product contains the sale price."
        },
        {
          "name": "price-prefix",
          "docs": "Block rendered before each price element (for ex. \"from\")."
        },
        {
          "name": "price-regular",
          "docs": "Block for a price if no sale price is presented."
        },
        {
          "name": "price-sale",
          "docs": "Block for sale price. Rendered only if the sale price is presented."
        },
        {
          "name": "product-card",
          "docs": "Product Card itself."
        },
        {
          "name": "product-card-actions",
          "docs": "Product Card actions wrapper."
        },
        {
          "name": "product-card-actions-top",
          "docs": "Product Card top actions wrapper."
        },
        {
          "name": "product-images-pagination",
          "docs": "Container for product images pagination dots (mobile only)."
        },
        {
          "name": "product-images-pagination-bullet",
          "docs": "Individual pagination dot."
        },
        {
          "name": "product-images-pagination-bullet-active",
          "docs": "Active pagination dot."
        },
        {
          "name": "product-type",
          "docs": "Product Type inside Product Card."
        },
        {
          "name": "products",
          "docs": "Products container."
        },
        {
          "name": "results-title",
          "docs": "Title on the results page."
        },
        {
          "name": "secondary-action",
          "docs": "Back Button in the modal's header."
        },
        {
          "name": "start-camera_button",
          "docs": "Start Camera Button."
        },
        {
          "name": "suggestion-filter-button",
          "docs": "Toggle button for filter suggestions."
        },
        {
          "name": "suggestion-item",
          "docs": "Individual suggestion item."
        },
        {
          "name": "suggestion-link",
          "docs": "Clickable suggestion text/link."
        },
        {
          "name": "suggestions-container",
          "docs": "The main suggestions container element."
        },
        {
          "name": "suggestions-description",
          "docs": "The description text element."
        },
        {
          "name": "suggestions-header",
          "docs": "The header section containing icon and title."
        },
        {
          "name": "suggestions-icon",
          "docs": "The sparkle icon wrapper."
        },
        {
          "name": "suggestions-list",
          "docs": "The list container for all suggestions."
        },
        {
          "name": "suggestions-title",
          "docs": "The title text element."
        },
        {
          "name": "suggestions-wrapper",
          "docs": "The wrapper around the suggestions list."
        },
        {
          "name": "text-search-input",
          "docs": "Text search input."
        },
        {
          "name": "title",
          "docs": "Title inside Product Card."
        },
        {
          "name": "upload-photo_button",
          "docs": "Upload Photo Button."
        },
        {
          "name": "vviinn-button",
          "docs": "Button element container."
        }
      ],
      "dependents": [
        "vviinn-text-search"
      ],
      "dependencies": [
        "vviinn-button",
        "vviinn-vps-widget"
      ],
      "dependencyGraph": {
        "vviinn-vps-button": [
          "vviinn-button",
          "vviinn-vps-widget"
        ],
        "vviinn-vps-widget": [
          "vviinn-preloader",
          "vviinn-image-selector",
          "vviinn-overlayed-modal",
          "vviinn-slider",
          "vviinn-slide",
          "vviinn-camera",
          "vviinn-error",
          "vviinn-teaser",
          "vviinn-text-search",
          "vviinn-privacy-badge",
          "vviinn-cropper",
          "vviinn-suggestions",
          "vviinn-selected-filters",
          "vviinn-filters",
          "vviinn-extended-filters",
          "vviinn-extended-filters-button",
          "vviinn-results"
        ],
        "vviinn-image-selector": [
          "vviinn-preloader"
        ],
        "vviinn-overlayed-modal": [
          "vviinn-overlay",
          "vviinn-modal"
        ],
        "vviinn-text-search": [
          "vviinn-vps-button"
        ],
        "vviinn-cropper": [
          "vviinn-detected-object",
          "vviinn-preloader"
        ],
        "vviinn-filters": [
          "vviinn-range-filter"
        ],
        "vviinn-extended-filters": [
          "vviinn-range-filter",
          "vviinn-extended-filters-button"
        ],
        "vviinn-results": [
          "vviinn-product-card",
          "vviinn-vpr-button",
          "vviinn-error"
        ],
        "vviinn-product-card": [
          "vviinn-skeleton",
          "vviinn-energy-label",
          "vviinn-image"
        ],
        "vviinn-image": [
          "vviinn-skeleton"
        ],
        "vviinn-vpr-button": [
          "vviinn-button",
          "vviinn-recommendations-sidebar"
        ],
        "vviinn-recommendations-sidebar": [
          "vviinn-vpr-widget"
        ],
        "vviinn-vpr-widget": [
          "vviinn-product-card",
          "vviinn-carousel",
          "vviinn-filters",
          "vviinn-extended-filters"
        ],
        "vviinn-carousel": [
          "vviinn-product-card"
        ]
      }
    },
    {
      "filePath": "src/components/vviinn-vps-widget/vviinn-vps-widget.tsx",
      "encapsulation": "shadow",
      "tag": "vviinn-vps-widget",
      "docs": "",
      "docsTags": [
        {
          "name": "slot",
          "text": "vviinn-teaser-text - Text on the widget's main screen."
        },
        {
          "name": "slot",
          "text": "vviinn-image-upload-button-text - Title of Upload Button."
        },
        {
          "name": "slot",
          "text": "vviinn-image-upload-icon - Icon of Upload Button."
        },
        {
          "name": "slot",
          "text": "vviinn-camera-button-text-start - Title of Start Camera button."
        },
        {
          "name": "slot",
          "text": "vviinn-camera-button-text-stop - Title of Stop Camera button (for Desktop)."
        },
        {
          "name": "slot",
          "text": "vviinn-camera-icon - Icon of Camera Button."
        },
        {
          "name": "slot",
          "text": "vviinn-camera-capture-text - Text above the Camera Capture button."
        },
        {
          "name": "slot",
          "text": "vviinn-text-search-icon - Icon of the text search block."
        },
        {
          "name": "slot",
          "text": "vviinn-privacy-badge-text - Text content of privacy notification block."
        },
        {
          "name": "slot",
          "text": "vviinn-image-search-modal-title - Image search modal title."
        },
        {
          "name": "slot",
          "text": "vviinn-energy-label-data-sheet-text - Text of the data sheet link for the energy label."
        },
        {
          "name": "slot",
          "text": "vviinn-favorite-icon - Icon of Favorite button."
        },
        {
          "name": "slot",
          "text": "vviinn-favorite-icon-pressed - Icon of pressed Favorite button."
        },
        {
          "name": "slot",
          "text": "vviinn-basket-button-text - Text of Add to Basket button."
        },
        {
          "name": "slot",
          "text": "vviinn-basket-button-icon - Icon of Add to Basket button."
        },
        {
          "name": "slot",
          "text": "vviinn-basket-button-text-pressed - Text of pressed Add to Basket button."
        },
        {
          "name": "slot",
          "text": "vviinn-basket-button-icon-pressed - Icon of pressed Add to Basket button."
        },
        {
          "name": "slot",
          "text": "vviinn-custom-label-0 - Custom label with index 0."
        },
        {
          "name": "slot",
          "text": "vviinn-custom-label-1 - Custom label with index 1."
        },
        {
          "name": "slot",
          "text": "vviinn-custom-label-2 - Custom label with index 2."
        },
        {
          "name": "slot",
          "text": "vviinn-custom-label-3 - Custom label with index 3."
        },
        {
          "name": "slot",
          "text": "vviinn-custom-label-4 - Custom label with index 4."
        },
        {
          "name": "slot",
          "text": "vviinn-results-vpr-icon - One-Click Discovery icon."
        },
        {
          "name": "part",
          "text": "close-button - Close Button in the modal's header."
        },
        {
          "name": "part",
          "text": "secondary-action - Back Button in the modal's header."
        },
        {
          "name": "part",
          "text": "results-title - Title on the results page."
        },
        {
          "name": "part",
          "text": "upload-photo_button - Upload Photo Button."
        },
        {
          "name": "part",
          "text": "start-camera_button - Start Camera Button."
        },
        {
          "name": "part",
          "text": "products - Products container."
        },
        {
          "name": "part",
          "text": "product-card - Product Card itself."
        },
        {
          "name": "part",
          "text": "image-container - Product Card's image container."
        },
        {
          "name": "part",
          "text": "content-container - Product Card's content container."
        },
        {
          "name": "part",
          "text": "basket-button-container - Product Card's basket button container."
        },
        {
          "name": "part",
          "text": "brand - Brand inside Product Card."
        },
        {
          "name": "part",
          "text": "product-type - Product Type inside Product Card."
        },
        {
          "name": "part",
          "text": "currency - Currency related to price."
        },
        {
          "name": "part",
          "text": "deeplink - Anchor element around product title. Rendered only if \"deeplink\" property is filled."
        },
        {
          "name": "part",
          "text": "image - Product Card image."
        },
        {
          "name": "part",
          "text": "image-link - Anchor element around product image. Rendered only if \"deeplink\" property is filled."
        },
        {
          "name": "part",
          "text": "image-picture - Picture element for image."
        },
        {
          "name": "part",
          "text": "price-amount-regular - Numeric part of the price."
        },
        {
          "name": "part",
          "text": "price-amount-sale - Numeric part of the price."
        },
        {
          "name": "part",
          "text": "price-amount-outdated - Numeric part of the price."
        },
        {
          "name": "part",
          "text": "price-amount-base-sale - Numeric part of the base price."
        },
        {
          "name": "part",
          "text": "price-amount-base-outdated - Numeric part of the base price."
        },
        {
          "name": "part",
          "text": "price-amount-base-regular - Numeric part of the base price."
        },
        {
          "name": "part",
          "text": "price-outdated - Block for outdated price. Rendered when the product contains the sale price."
        },
        {
          "name": "part",
          "text": "price-regular - Block for a price if no sale price is presented."
        },
        {
          "name": "part",
          "text": "price-sale - Block for sale price. Rendered only if the sale price is presented."
        },
        {
          "name": "part",
          "text": "price-prefix - Block rendered before each price element (for ex. \"from\")."
        },
        {
          "name": "part",
          "text": "title - Title inside Product Card."
        },
        {
          "name": "part",
          "text": "basket-button - Add to Basket button."
        },
        {
          "name": "part",
          "text": "basket-button-container - Product Card's basket button container."
        },
        {
          "name": "part",
          "text": "favorite-button - Favorite button."
        },
        {
          "name": "part",
          "text": "product-card-actions - Product Card actions wrapper."
        },
        {
          "name": "part",
          "text": "product-card-actions-top - Product Card top actions wrapper."
        },
        {
          "name": "part",
          "text": "text-search-input - Text search input."
        },
        {
          "name": "part",
          "text": "custom-label-0 - Custom label with index 0."
        },
        {
          "name": "part",
          "text": "custom-label-1 - Custom label with index 1."
        },
        {
          "name": "part",
          "text": "custom-label-2 - Custom label with index 2."
        },
        {
          "name": "part",
          "text": "custom-label-3 - Custom label with index 3."
        },
        {
          "name": "part",
          "text": "custom-label-4 - Custom label with index 4."
        },
        {
          "name": "part",
          "text": "energy-label-container - Energy label container."
        },
        {
          "name": "part",
          "text": "energy-label-icon - Icon with an energy class."
        },
        {
          "name": "part",
          "text": "energy-label-product-type - Product type."
        },
        {
          "name": "part",
          "text": "energy-label-data-sheet-link - Data sheet link."
        },
        {
          "name": "part",
          "text": "product-images-pagination - Container for product images pagination dots (mobile only)."
        },
        {
          "name": "part",
          "text": "product-images-pagination-bullet - Individual pagination dot."
        },
        {
          "name": "part",
          "text": "product-images-pagination-bullet-active - Active pagination dot."
        }
      ],
      "usage": {},
      "props": [
        {
          "name": "active",
          "type": "boolean",
          "complexType": {
            "original": "boolean",
            "resolved": "boolean",
            "references": {}
          },
          "mutable": true,
          "attr": "active",
          "reflectToAttr": false,
          "docs": "Toggle the widget's modal showing",
          "docsTags": [],
          "default": "true",
          "values": [
            {
              "type": "boolean"
            }
          ],
          "optional": false,
          "required": false,
          "getter": false,
          "setter": false
        },
        {
          "name": "addPriceContainer",
          "type": "boolean",
          "complexType": {
            "original": "boolean",
            "resolved": "boolean",
            "references": {}
          },
          "mutable": false,
          "attr": "add-price-container",
          "reflectToAttr": false,
          "docs": "Wrap the Product Card's price values in the container.",
          "docsTags": [],
          "default": "false",
          "values": [
            {
              "type": "boolean"
            }
          ],
          "optional": true,
          "required": false,
          "getter": false,
          "setter": false
        },
        {
          "name": "addToBasketShow",
          "type": "boolean",
          "complexType": {
            "original": "boolean",
            "resolved": "boolean",
            "references": {}
          },
          "mutable": false,
          "attr": "add-to-basket-show",
          "reflectToAttr": false,
          "docs": "Show or hide Add to Basket buttons",
          "docsTags": [],
          "default": "false",
          "values": [
            {
              "type": "boolean"
            }
          ],
          "optional": false,
          "required": false,
          "getter": false,
          "setter": false
        },
        {
          "name": "aiSuggestionsShow",
          "type": "boolean",
          "complexType": {
            "original": "boolean",
            "resolved": "boolean",
            "references": {}
          },
          "mutable": false,
          "attr": "ai-suggestions-show",
          "reflectToAttr": false,
          "docs": "Show the AI Suggestions block in search results",
          "docsTags": [],
          "default": "false",
          "values": [
            {
              "type": "boolean"
            }
          ],
          "optional": false,
          "required": false,
          "getter": false,
          "setter": false
        },
        {
          "name": "apiPath",
          "type": "string",
          "complexType": {
            "original": "string",
            "resolved": "string",
            "references": {}
          },
          "mutable": false,
          "attr": "api-path",
          "reflectToAttr": false,
          "docs": "API endpoint URL (optional, defaults to production)",
          "docsTags": [],
          "values": [
            {
              "type": "string"
            }
          ],
          "optional": true,
          "required": false,
          "getter": false,
          "setter": false
        },
        {
          "name": "autoSuggestShow",
          "type": "boolean",
          "complexType": {
            "original": "boolean",
            "resolved": "boolean",
            "references": {}
          },
          "mutable": false,
          "attr": "auto-suggest-show",
          "reflectToAttr": false,
          "docs": "Show auto-suggest dropdown with search completions",
          "docsTags": [],
          "default": "true",
          "values": [
            {
              "type": "boolean"
            }
          ],
          "optional": false,
          "required": false,
          "getter": false,
          "setter": false
        },
        {
          "name": "campaignId",
          "type": "string",
          "complexType": {
            "original": "string",
            "resolved": "string",
            "references": {}
          },
          "mutable": false,
          "attr": "campaign-id",
          "reflectToAttr": false,
          "docs": "Campaign ID used for Visual Search (deprecated)",
          "docsTags": [],
          "default": "\"\"",
          "values": [
            {
              "type": "string"
            }
          ],
          "optional": false,
          "required": false,
          "getter": false,
          "setter": false
        },
        {
          "name": "campaignIdTextSearch",
          "type": "string",
          "complexType": {
            "original": "string",
            "resolved": "string",
            "references": {}
          },
          "mutable": false,
          "attr": "campaign-id-text-search",
          "reflectToAttr": false,
          "docs": "Campaign ID used for Text Search",
          "docsTags": [],
          "default": "\"\"",
          "values": [
            {
              "type": "string"
            }
          ],
          "optional": false,
          "required": false,
          "getter": false,
          "setter": false
        },
        {
          "name": "campaignIdVisualSearch",
          "type": "string",
          "complexType": {
            "original": "string",
            "resolved": "string",
            "references": {}
          },
          "mutable": false,
          "attr": "campaign-id-visual-search",
          "reflectToAttr": false,
          "docs": "Campaign ID used for Visual Search",
          "docsTags": [],
          "default": "\"\"",
          "values": [
            {
              "type": "string"
            }
          ],
          "optional": false,
          "required": false,
          "getter": false,
          "setter": false
        },
        {
          "name": "cssUrl",
          "type": "string",
          "complexType": {
            "original": "string | null",
            "resolved": "string",
            "references": {}
          },
          "mutable": false,
          "attr": "css-url",
          "reflectToAttr": false,
          "docs": "URL to external CSS file for custom styling",
          "docsTags": [],
          "default": "null",
          "values": [
            {
              "type": "string"
            }
          ],
          "optional": false,
          "required": false,
          "getter": false,
          "setter": false
        },
        {
          "name": "currencySign",
          "type": "string",
          "complexType": {
            "original": "string",
            "resolved": "string",
            "references": {}
          },
          "mutable": false,
          "attr": "currency-sign",
          "reflectToAttr": false,
          "docs": "The currency sign is displayed after the price",
          "docsTags": [],
          "values": [
            {
              "type": "string"
            }
          ],
          "optional": true,
          "required": false,
          "getter": false,
          "setter": false
        },
        {
          "name": "exampleImageSource",
          "type": "string",
          "complexType": {
            "original": "string",
            "resolved": "string",
            "references": {}
          },
          "mutable": false,
          "attr": "example-image-source",
          "reflectToAttr": false,
          "docs": "Example image source",
          "docsTags": [],
          "default": "DEFAULT_EXAMPLE_IMAGE",
          "values": [
            {
              "type": "string"
            }
          ],
          "optional": false,
          "required": false,
          "getter": false,
          "setter": false
        },
        {
          "name": "excluded",
          "type": "string",
          "complexType": {
            "original": "string",
            "resolved": "string",
            "references": {}
          },
          "mutable": false,
          "attr": "excluded",
          "reflectToAttr": false,
          "docs": "Excluded filter. Example: \"brand:Nike,Vans;custom_label_0:summer\"",
          "docsTags": [],
          "default": "\"\"",
          "values": [
            {
              "type": "string"
            }
          ],
          "optional": false,
          "required": false,
          "getter": false,
          "setter": false
        },
        {
          "name": "favoriteShow",
          "type": "boolean",
          "complexType": {
            "original": "boolean",
            "resolved": "boolean",
            "references": {}
          },
          "mutable": false,
          "attr": "favorite-show",
          "reflectToAttr": false,
          "docs": "Show or hide Favorite button",
          "docsTags": [],
          "default": "false",
          "values": [
            {
              "type": "boolean"
            }
          ],
          "optional": false,
          "required": false,
          "getter": false,
          "setter": false
        },
        {
          "name": "imageResolutionWidth",
          "type": "number",
          "complexType": {
            "original": "number",
            "resolved": "number",
            "references": {}
          },
          "mutable": false,
          "attr": "image-resolution-width",
          "reflectToAttr": false,
          "docs": "Resolution width of an image in the product card",
          "docsTags": [],
          "default": "SEARCH_WIDGET_IMAGE_RESOLUTION_WIDTH",
          "values": [
            {
              "type": "number"
            }
          ],
          "optional": false,
          "required": false,
          "getter": false,
          "setter": false
        },
        {
          "name": "locale",
          "type": "\"de-DE\" | \"en-US\"",
          "complexType": {
            "original": "Locale",
            "resolved": "\"de-DE\" | \"en-US\"",
            "references": {
              "Locale": {
                "location": "import",
                "path": "../../locale",
                "id": "src/locale/index.ts::Locale"
              }
            }
          },
          "mutable": false,
          "attr": "locale",
          "reflectToAttr": false,
          "docs": "Locale for text localization",
          "docsTags": [],
          "values": [
            {
              "value": "de-DE",
              "type": "string"
            },
            {
              "value": "en-US",
              "type": "string"
            }
          ],
          "optional": true,
          "required": false,
          "getter": false,
          "setter": false
        },
        {
          "name": "numberLocale",
          "type": "string",
          "complexType": {
            "original": "string",
            "resolved": "string",
            "references": {}
          },
          "mutable": false,
          "attr": "number-locale",
          "reflectToAttr": false,
          "docs": "Locale for number formatting. Falls back to locale",
          "docsTags": [],
          "values": [
            {
              "type": "string"
            }
          ],
          "optional": true,
          "required": false,
          "getter": false,
          "setter": false
        },
        {
          "name": "oneClickDiscoveryCampaigns",
          "type": "string",
          "complexType": {
            "original": "string",
            "resolved": "string",
            "references": {}
          },
          "mutable": false,
          "attr": "one-click-discovery-campaigns",
          "reflectToAttr": false,
          "docs": "Comma-separated list of campaign IDs",
          "docsTags": [],
          "default": "\"\"",
          "values": [
            {
              "type": "string"
            }
          ],
          "optional": false,
          "required": false,
          "getter": false,
          "setter": false
        },
        {
          "name": "oneClickDiscoveryMode",
          "type": "\"append-grid\" | \"append-slider\" | \"unset\"",
          "complexType": {
            "original": "OneClickDiscoveryAppendMode",
            "resolved": "\"append-grid\" | \"append-slider\" | \"unset\"",
            "references": {
              "OneClickDiscoveryAppendMode": {
                "location": "import",
                "path": "../../widget/types",
                "id": "src/widget/types.ts::OneClickDiscoveryAppendMode"
              }
            }
          },
          "mutable": false,
          "attr": "one-click-discovery-mode",
          "reflectToAttr": false,
          "docs": "One-Click Discovery mode, restricted to append only (no modal supported for this component)",
          "docsTags": [],
          "default": "\"append-grid\"",
          "values": [
            {
              "value": "append-grid",
              "type": "string"
            },
            {
              "value": "append-slider",
              "type": "string"
            },
            {
              "value": "unset",
              "type": "string"
            }
          ],
          "optional": true,
          "required": false,
          "getter": false,
          "setter": false
        },
        {
          "name": "pricePrefix",
          "type": "string",
          "complexType": {
            "original": "string",
            "resolved": "string",
            "references": {}
          },
          "mutable": false,
          "attr": "price-prefix",
          "reflectToAttr": false,
          "docs": "Prefix is displayed before the price",
          "docsTags": [],
          "values": [
            {
              "type": "string"
            }
          ],
          "optional": true,
          "required": false,
          "getter": false,
          "setter": false
        },
        {
          "name": "productDetailsNewTab",
          "type": "boolean",
          "complexType": {
            "original": "boolean",
            "resolved": "boolean",
            "references": {}
          },
          "mutable": false,
          "attr": "product-details-new-tab",
          "reflectToAttr": false,
          "docs": "Toggle for opening product link in new tab or not",
          "docsTags": [],
          "default": "true",
          "values": [
            {
              "type": "boolean"
            }
          ],
          "optional": false,
          "required": false,
          "getter": false,
          "setter": false
        },
        {
          "name": "productDetailsRedirect",
          "type": "boolean",
          "complexType": {
            "original": "boolean",
            "resolved": "boolean",
            "references": {}
          },
          "mutable": false,
          "attr": "product-details-redirect",
          "reflectToAttr": false,
          "docs": "Toggle for redirection to PDP on product's click",
          "docsTags": [],
          "default": "true",
          "values": [
            {
              "type": "boolean"
            }
          ],
          "optional": false,
          "required": false,
          "getter": false,
          "setter": false
        },
        {
          "name": "resultsPageParams",
          "type": "string",
          "complexType": {
            "original": "string",
            "resolved": "string",
            "references": {}
          },
          "mutable": false,
          "attr": "results-page-params",
          "reflectToAttr": false,
          "docs": "Custom URL param names for results page redirect. Default: \"query=query&searchId=searchId\".",
          "docsTags": [],
          "values": [
            {
              "type": "string"
            }
          ],
          "optional": true,
          "required": false,
          "getter": false,
          "setter": false
        },
        {
          "name": "resultsPageUrl",
          "type": "string",
          "complexType": {
            "original": "string",
            "resolved": "string",
            "references": {}
          },
          "mutable": false,
          "attr": "results-page-url",
          "reflectToAttr": false,
          "docs": "URL of the results page for automatic search redirect.",
          "docsTags": [],
          "values": [
            {
              "type": "string"
            }
          ],
          "optional": true,
          "required": false,
          "getter": false,
          "setter": false
        },
        {
          "name": "showIntervalInputs",
          "type": "boolean",
          "complexType": {
            "original": "boolean",
            "resolved": "boolean",
            "references": {}
          },
          "mutable": false,
          "attr": "show-interval-inputs",
          "reflectToAttr": false,
          "docs": "Show editable input fields in interval filters instead of readonly labels",
          "docsTags": [],
          "default": "false",
          "values": [
            {
              "type": "boolean"
            }
          ],
          "optional": false,
          "required": false,
          "getter": false,
          "setter": false
        },
        {
          "name": "showMultipleImages",
          "type": "boolean",
          "complexType": {
            "original": "boolean",
            "resolved": "boolean",
            "references": {}
          },
          "mutable": false,
          "attr": "show-multiple-images",
          "reflectToAttr": false,
          "docs": "Show multiple images: swiper on mobile, hover on desktop in product cards",
          "docsTags": [],
          "default": "false",
          "values": [
            {
              "type": "boolean"
            }
          ],
          "optional": false,
          "required": false,
          "getter": false,
          "setter": false
        },
        {
          "name": "showResultsInModal",
          "type": "boolean",
          "complexType": {
            "original": "boolean",
            "resolved": "boolean",
            "references": {}
          },
          "mutable": false,
          "attr": "show-results-in-modal",
          "reflectToAttr": false,
          "docs": "Render results in modal. Set false to redirect or show results on the page.",
          "docsTags": [],
          "default": "true",
          "values": [
            {
              "type": "boolean"
            }
          ],
          "optional": true,
          "required": false,
          "getter": false,
          "setter": false
        },
        {
          "name": "textSearchShow",
          "type": "boolean",
          "complexType": {
            "original": "boolean",
            "resolved": "boolean",
            "references": {}
          },
          "mutable": false,
          "attr": "text-search-show",
          "reflectToAttr": false,
          "docs": "Show the text search",
          "docsTags": [],
          "default": "false",
          "values": [
            {
              "type": "boolean"
            }
          ],
          "optional": false,
          "required": false,
          "getter": false,
          "setter": false
        },
        {
          "name": "token",
          "type": "string",
          "complexType": {
            "original": "string",
            "resolved": "string",
            "references": {}
          },
          "mutable": false,
          "attr": "token",
          "reflectToAttr": false,
          "docs": "Vviinn customer's token (required)",
          "docsTags": [],
          "values": [
            {
              "type": "string"
            }
          ],
          "optional": false,
          "required": false,
          "getter": false,
          "setter": false
        },
        {
          "name": "useDragAndDrop",
          "type": "boolean",
          "complexType": {
            "original": "boolean",
            "resolved": "boolean",
            "references": {}
          },
          "mutable": false,
          "attr": "use-drag-and-drop",
          "reflectToAttr": false,
          "docs": "Accept image files dropped from the OS onto the upload button (desktop only)",
          "docsTags": [],
          "default": "false",
          "values": [
            {
              "type": "boolean"
            }
          ],
          "optional": false,
          "required": false,
          "getter": false,
          "setter": false
        }
      ],
      "methods": [],
      "events": [
        {
          "event": "vviinnImageCrop",
          "detail": "{ isTriggeredByVpsWidget: boolean; } & { widget?: Widget; campaignTypeId: \"VPR\" | \"VPS\" | \"TPS\" | \"VCS\"; campaignTypeName: \"Similar Products\" | \"Visual Search\" | \"Cross-Selling\" | \"Text Product Search\"; widgetId?: string; widgetVersion: string; }",
          "bubbles": true,
          "complexType": {
            "original": "ImageCropEventData",
            "resolved": "{ isTriggeredByVpsWidget: boolean; } & { widget?: Widget; campaignTypeId: \"VPR\" | \"VPS\" | \"TPS\" | \"VCS\"; campaignTypeName: \"Similar Products\" | \"Visual Search\" | \"Cross-Selling\" | \"Text Product Search\"; widgetId?: string; widgetVersion: string; }",
            "references": {
              "ImageCropEventData": {
                "location": "import",
                "path": "../../recommendation/events",
                "id": "src/recommendation/events.ts::ImageCropEventData"
              }
            }
          },
          "cancelable": true,
          "composed": true,
          "docs": "Crop area changes",
          "docsTags": []
        },
        {
          "event": "vviinnImageUploadStarted",
          "detail": "{ isTriggeredByVpsWidget?: boolean; } & { widget?: Widget; campaignTypeId: \"VPR\" | \"VPS\" | \"TPS\" | \"VCS\"; campaignTypeName: \"Similar Products\" | \"Visual Search\" | \"Cross-Selling\" | \"Text Product Search\"; widgetId?: string; widgetVersion: string; }",
          "bubbles": true,
          "complexType": {
            "original": "ImageUploadEventData",
            "resolved": "{ isTriggeredByVpsWidget?: boolean; } & { widget?: Widget; campaignTypeId: \"VPR\" | \"VPS\" | \"TPS\" | \"VCS\"; campaignTypeName: \"Similar Products\" | \"Visual Search\" | \"Cross-Selling\" | \"Text Product Search\"; widgetId?: string; widgetVersion: string; }",
            "references": {
              "ImageUploadEventData": {
                "location": "import",
                "path": "../../recommendation/events",
                "id": "src/recommendation/events.ts::ImageUploadEventData"
              }
            }
          },
          "cancelable": true,
          "composed": true,
          "docs": "The image upload has started",
          "docsTags": []
        },
        {
          "event": "vviinnNoResult",
          "detail": "{ widget?: Widget; } & { campaignTypeId: \"VPR\" | \"VPS\" | \"TPS\" | \"VCS\"; campaignTypeName: \"Similar Products\" | \"Visual Search\" | \"Cross-Selling\" | \"Text Product Search\"; widgetId?: string; widgetVersion: string; }",
          "bubbles": true,
          "complexType": {
            "original": "BasicEventData",
            "resolved": "{ widget?: Widget; } & { campaignTypeId: \"VPR\" | \"VPS\" | \"TPS\" | \"VCS\"; campaignTypeName: \"Similar Products\" | \"Visual Search\" | \"Cross-Selling\" | \"Text Product Search\"; widgetId?: string; widgetVersion: string; }",
            "references": {
              "BasicEventData": {
                "location": "import",
                "path": "../../recommendation/events",
                "id": "src/recommendation/events.ts::BasicEventData"
              }
            }
          },
          "cancelable": true,
          "composed": true,
          "docs": "Wrong image format (supported formats depend on the browser), or the request failed",
          "docsTags": []
        },
        {
          "event": "vviinnRedirect",
          "detail": "{ url: string; source: RedirectSource; query?: string; searchId?: string; widget?: Widget; } & { campaignTypeId: \"VPR\" | \"VPS\" | \"TPS\" | \"VCS\"; campaignTypeName: \"Similar Products\" | \"Visual Search\" | \"Cross-Selling\" | \"Text Product Search\"; widgetId?: string; widgetVersion: string; }",
          "bubbles": true,
          "complexType": {
            "original": "RedirectEventData",
            "resolved": "{ url: string; source: RedirectSource; query?: string; searchId?: string; widget?: Widget; } & { campaignTypeId: \"VPR\" | \"VPS\" | \"TPS\" | \"VCS\"; campaignTypeName: \"Similar Products\" | \"Visual Search\" | \"Cross-Selling\" | \"Text Product Search\"; widgetId?: string; widgetVersion: string; }",
            "references": {
              "RedirectEventData": {
                "location": "import",
                "path": "../../recommendation/events",
                "id": "src/recommendation/events.ts::RedirectEventData"
              }
            }
          },
          "cancelable": true,
          "composed": true,
          "docs": "Redirect to results page (can be intercepted by client via preventDefault)",
          "docsTags": []
        },
        {
          "event": "vviinnSelectObject",
          "detail": "{ detectedObject: { left?: number; top?: number; width?: number; height?: number; }; searchArea: { left?: number; top?: number; width?: number; height?: number; }; } & { campaignTypeId: \"VPR\" | \"VPS\" | \"TPS\" | \"VCS\"; campaignTypeName: \"Similar Products\" | \"Visual Search\" | \"Cross-Selling\" | \"Text Product Search\"; widgetId?: string; widgetVersion: string; }",
          "bubbles": true,
          "complexType": {
            "original": "SelectObjectEventData",
            "resolved": "{ detectedObject: { left?: number; top?: number; width?: number; height?: number; }; searchArea: { left?: number; top?: number; width?: number; height?: number; }; } & { campaignTypeId: \"VPR\" | \"VPS\" | \"TPS\" | \"VCS\"; campaignTypeName: \"Similar Products\" | \"Visual Search\" | \"Cross-Selling\" | \"Text Product Search\"; widgetId?: string; widgetVersion: string; }",
            "references": {
              "SelectObjectEventData": {
                "location": "import",
                "path": "../../recommendation/events",
                "id": "src/recommendation/events.ts::SelectObjectEventData"
              }
            }
          },
          "cancelable": true,
          "composed": true,
          "docs": "User selects the detected object",
          "docsTags": []
        },
        {
          "event": "vviinnWidgetClose",
          "detail": "{ widget?: Widget; } & { campaignTypeId: \"VPR\" | \"VPS\" | \"TPS\" | \"VCS\"; campaignTypeName: \"Similar Products\" | \"Visual Search\" | \"Cross-Selling\" | \"Text Product Search\"; widgetId?: string; widgetVersion: string; }",
          "bubbles": true,
          "complexType": {
            "original": "BasicEventData",
            "resolved": "{ widget?: Widget; } & { campaignTypeId: \"VPR\" | \"VPS\" | \"TPS\" | \"VCS\"; campaignTypeName: \"Similar Products\" | \"Visual Search\" | \"Cross-Selling\" | \"Text Product Search\"; widgetId?: string; widgetVersion: string; }",
            "references": {
              "BasicEventData": {
                "location": "import",
                "path": "../../recommendation/events",
                "id": "src/recommendation/events.ts::BasicEventData"
              }
            }
          },
          "cancelable": true,
          "composed": true,
          "docs": "Event emitted on modal close",
          "docsTags": []
        },
        {
          "event": "vviinnWidgetLoad",
          "detail": "{ widget?: Widget; } & { campaignTypeId: \"VPR\" | \"VPS\" | \"TPS\" | \"VCS\"; campaignTypeName: \"Similar Products\" | \"Visual Search\" | \"Cross-Selling\" | \"Text Product Search\"; widgetId?: string; widgetVersion: string; }",
          "bubbles": true,
          "complexType": {
            "original": "BasicEventData",
            "resolved": "{ widget?: Widget; } & { campaignTypeId: \"VPR\" | \"VPS\" | \"TPS\" | \"VCS\"; campaignTypeName: \"Similar Products\" | \"Visual Search\" | \"Cross-Selling\" | \"Text Product Search\"; widgetId?: string; widgetVersion: string; }",
            "references": {
              "BasicEventData": {
                "location": "import",
                "path": "../../recommendation/events",
                "id": "src/recommendation/events.ts::BasicEventData"
              }
            }
          },
          "cancelable": true,
          "composed": true,
          "docs": "Event emitted on widget load",
          "docsTags": []
        },
        {
          "event": "vviinnWidgetOpen",
          "detail": "{ widget?: Widget; } & { campaignTypeId: \"VPR\" | \"VPS\" | \"TPS\" | \"VCS\"; campaignTypeName: \"Similar Products\" | \"Visual Search\" | \"Cross-Selling\" | \"Text Product Search\"; widgetId?: string; widgetVersion: string; }",
          "bubbles": true,
          "complexType": {
            "original": "BasicEventData",
            "resolved": "{ widget?: Widget; } & { campaignTypeId: \"VPR\" | \"VPS\" | \"TPS\" | \"VCS\"; campaignTypeName: \"Similar Products\" | \"Visual Search\" | \"Cross-Selling\" | \"Text Product Search\"; widgetId?: string; widgetVersion: string; }",
            "references": {
              "BasicEventData": {
                "location": "import",
                "path": "../../recommendation/events",
                "id": "src/recommendation/events.ts::BasicEventData"
              }
            }
          },
          "cancelable": true,
          "composed": true,
          "docs": "Event emitted on modal open",
          "docsTags": []
        }
      ],
      "listeners": [
        {
          "event": "widgetTextSearchFinished",
          "capture": false,
          "passive": false
        },
        {
          "event": "vviinnTextSearchStarted",
          "capture": false,
          "passive": false
        },
        {
          "event": "vviinnResultLoad",
          "capture": false,
          "passive": false
        },
        {
          "event": "vviinnResultView",
          "capture": false,
          "passive": false
        },
        {
          "event": "vviinnCameraEnabled",
          "capture": false,
          "passive": false
        }
      ],
      "styles": [
        {
          "name": "--basket-button-bg-color-pressed",
          "annotation": "prop",
          "docs": "The background color of the pressed Basket Button."
        },
        {
          "name": "--color-primary",
          "annotation": "prop",
          "docs": "The color of Search Button and bullets in Onboarding Block."
        },
        {
          "name": "--color-primary-hover",
          "annotation": "prop",
          "docs": "The color of Search Button and bullets in Onboarding Block on mouse hover."
        },
        {
          "name": "--font-family",
          "annotation": "prop",
          "docs": "The font family of the widget."
        },
        {
          "name": "--modal-border-radius",
          "annotation": "prop",
          "docs": "The border radius of the modal."
        },
        {
          "name": "--product-card-content-align",
          "annotation": "prop",
          "docs": "The alignment of the content inside the product card's flex container."
        },
        {
          "name": "--product-card-image-aspect-ratio",
          "annotation": "prop",
          "docs": "The aspect ratio of the product card image (e.g., \"1 / 1\", \"3 / 4\")."
        },
        {
          "name": "--product-card-image-bg-color",
          "annotation": "prop",
          "docs": "The background color of the product card image."
        },
        {
          "name": "--product-card-image-border",
          "annotation": "prop",
          "docs": "The border of the product card image."
        },
        {
          "name": "--product-card-text-align",
          "annotation": "prop",
          "docs": "The alignment of the text inside the product card."
        },
        {
          "name": "--product-card-width",
          "annotation": "prop",
          "docs": "Minimum width of product card inside the grid."
        },
        {
          "name": "--search-modal-animation-duration",
          "annotation": "prop",
          "docs": "The animation duration of the modal on desktop devices."
        },
        {
          "name": "--search-modal-animation-duration-mobile",
          "annotation": "prop",
          "docs": "The animation duration of the modal on mobile devices."
        }
      ],
      "slots": [
        {
          "name": "vviinn-basket-button-icon",
          "docs": "Icon of Add to Basket button."
        },
        {
          "name": "vviinn-basket-button-icon-pressed",
          "docs": "Icon of pressed Add to Basket button."
        },
        {
          "name": "vviinn-basket-button-text",
          "docs": "Text of Add to Basket button."
        },
        {
          "name": "vviinn-basket-button-text-pressed",
          "docs": "Text of pressed Add to Basket button."
        },
        {
          "name": "vviinn-camera-button-text-start",
          "docs": "Title of Start Camera button."
        },
        {
          "name": "vviinn-camera-button-text-stop",
          "docs": "Title of Stop Camera button (for Desktop)."
        },
        {
          "name": "vviinn-camera-capture-text",
          "docs": "Text above the Camera Capture button."
        },
        {
          "name": "vviinn-camera-icon",
          "docs": "Icon of Camera Button."
        },
        {
          "name": "vviinn-custom-label-0",
          "docs": "Custom label with index 0."
        },
        {
          "name": "vviinn-custom-label-1",
          "docs": "Custom label with index 1."
        },
        {
          "name": "vviinn-custom-label-2",
          "docs": "Custom label with index 2."
        },
        {
          "name": "vviinn-custom-label-3",
          "docs": "Custom label with index 3."
        },
        {
          "name": "vviinn-custom-label-4",
          "docs": "Custom label with index 4."
        },
        {
          "name": "vviinn-energy-label-data-sheet-text",
          "docs": "Text of the data sheet link for the energy label."
        },
        {
          "name": "vviinn-favorite-icon",
          "docs": "Icon of Favorite button."
        },
        {
          "name": "vviinn-favorite-icon-pressed",
          "docs": "Icon of pressed Favorite button."
        },
        {
          "name": "vviinn-image-search-modal-title",
          "docs": "Image search modal title."
        },
        {
          "name": "vviinn-image-upload-button-text",
          "docs": "Title of Upload Button."
        },
        {
          "name": "vviinn-image-upload-icon",
          "docs": "Icon of Upload Button."
        },
        {
          "name": "vviinn-privacy-badge-text",
          "docs": "Text content of privacy notification block."
        },
        {
          "name": "vviinn-results-vpr-icon",
          "docs": "One-Click Discovery icon."
        },
        {
          "name": "vviinn-teaser-text",
          "docs": "Text on the widget's main screen."
        },
        {
          "name": "vviinn-text-search-icon",
          "docs": "Icon of the text search block."
        }
      ],
      "parts": [
        {
          "name": "basket-button",
          "docs": "Add to Basket button."
        },
        {
          "name": "basket-button-container",
          "docs": "Product Card's basket button container."
        },
        {
          "name": "brand",
          "docs": "Brand inside Product Card."
        },
        {
          "name": "close-button",
          "docs": "Close Button in the modal's header."
        },
        {
          "name": "content-container",
          "docs": "Product Card's content container."
        },
        {
          "name": "currency",
          "docs": "Currency related to price."
        },
        {
          "name": "custom-label-0",
          "docs": "Custom label with index 0."
        },
        {
          "name": "custom-label-1",
          "docs": "Custom label with index 1."
        },
        {
          "name": "custom-label-2",
          "docs": "Custom label with index 2."
        },
        {
          "name": "custom-label-3",
          "docs": "Custom label with index 3."
        },
        {
          "name": "custom-label-4",
          "docs": "Custom label with index 4."
        },
        {
          "name": "deeplink",
          "docs": "Anchor element around product title. Rendered only if \"deeplink\" property is filled."
        },
        {
          "name": "energy-label-container",
          "docs": "Energy label container."
        },
        {
          "name": "energy-label-data-sheet-link",
          "docs": "Data sheet link."
        },
        {
          "name": "energy-label-icon",
          "docs": "Icon with an energy class."
        },
        {
          "name": "energy-label-product-type",
          "docs": "Product type."
        },
        {
          "name": "favorite-button",
          "docs": "Favorite button."
        },
        {
          "name": "image",
          "docs": "Product Card image."
        },
        {
          "name": "image-container",
          "docs": "Product Card's image container."
        },
        {
          "name": "image-link",
          "docs": "Anchor element around product image. Rendered only if \"deeplink\" property is filled."
        },
        {
          "name": "image-picture",
          "docs": "Picture element for image."
        },
        {
          "name": "price-amount-base-outdated",
          "docs": "Numeric part of the base price."
        },
        {
          "name": "price-amount-base-regular",
          "docs": "Numeric part of the base price."
        },
        {
          "name": "price-amount-base-sale",
          "docs": "Numeric part of the base price."
        },
        {
          "name": "price-amount-outdated",
          "docs": "Numeric part of the price."
        },
        {
          "name": "price-amount-regular",
          "docs": "Numeric part of the price."
        },
        {
          "name": "price-amount-sale",
          "docs": "Numeric part of the price."
        },
        {
          "name": "price-outdated",
          "docs": "Block for outdated price. Rendered when the product contains the sale price."
        },
        {
          "name": "price-prefix",
          "docs": "Block rendered before each price element (for ex. \"from\")."
        },
        {
          "name": "price-regular",
          "docs": "Block for a price if no sale price is presented."
        },
        {
          "name": "price-sale",
          "docs": "Block for sale price. Rendered only if the sale price is presented."
        },
        {
          "name": "product-card",
          "docs": "Product Card itself."
        },
        {
          "name": "product-card-actions",
          "docs": "Product Card actions wrapper."
        },
        {
          "name": "product-card-actions-top",
          "docs": "Product Card top actions wrapper."
        },
        {
          "name": "product-images-pagination",
          "docs": "Container for product images pagination dots (mobile only)."
        },
        {
          "name": "product-images-pagination-bullet",
          "docs": "Individual pagination dot."
        },
        {
          "name": "product-images-pagination-bullet-active",
          "docs": "Active pagination dot."
        },
        {
          "name": "product-type",
          "docs": "Product Type inside Product Card."
        },
        {
          "name": "products",
          "docs": "Products container."
        },
        {
          "name": "results-title",
          "docs": "Title on the results page."
        },
        {
          "name": "secondary-action",
          "docs": "Back Button in the modal's header."
        },
        {
          "name": "start-camera_button",
          "docs": "Start Camera Button."
        },
        {
          "name": "text-search-input",
          "docs": "Text search input."
        },
        {
          "name": "title",
          "docs": "Title inside Product Card."
        },
        {
          "name": "upload-photo_button",
          "docs": "Upload Photo Button."
        }
      ],
      "dependents": [
        "vviinn-vps-button"
      ],
      "dependencies": [
        "vviinn-preloader",
        "vviinn-image-selector",
        "vviinn-overlayed-modal",
        "vviinn-slider",
        "vviinn-slide",
        "vviinn-camera",
        "vviinn-error",
        "vviinn-teaser",
        "vviinn-text-search",
        "vviinn-privacy-badge",
        "vviinn-cropper",
        "vviinn-suggestions",
        "vviinn-selected-filters",
        "vviinn-filters",
        "vviinn-extended-filters",
        "vviinn-extended-filters-button",
        "vviinn-results"
      ],
      "dependencyGraph": {
        "vviinn-vps-widget": [
          "vviinn-preloader",
          "vviinn-image-selector",
          "vviinn-overlayed-modal",
          "vviinn-slider",
          "vviinn-slide",
          "vviinn-camera",
          "vviinn-error",
          "vviinn-teaser",
          "vviinn-text-search",
          "vviinn-privacy-badge",
          "vviinn-cropper",
          "vviinn-suggestions",
          "vviinn-selected-filters",
          "vviinn-filters",
          "vviinn-extended-filters",
          "vviinn-extended-filters-button",
          "vviinn-results"
        ],
        "vviinn-image-selector": [
          "vviinn-preloader"
        ],
        "vviinn-overlayed-modal": [
          "vviinn-overlay",
          "vviinn-modal"
        ],
        "vviinn-text-search": [
          "vviinn-vps-button",
          "vviinn-preloader"
        ],
        "vviinn-vps-button": [
          "vviinn-vps-widget"
        ],
        "vviinn-cropper": [
          "vviinn-detected-object",
          "vviinn-preloader"
        ],
        "vviinn-filters": [
          "vviinn-range-filter"
        ],
        "vviinn-extended-filters": [
          "vviinn-range-filter",
          "vviinn-extended-filters-button"
        ],
        "vviinn-results": [
          "vviinn-product-card",
          "vviinn-vpr-button",
          "vviinn-error"
        ],
        "vviinn-product-card": [
          "vviinn-skeleton",
          "vviinn-energy-label",
          "vviinn-image"
        ],
        "vviinn-image": [
          "vviinn-skeleton"
        ],
        "vviinn-vpr-button": [
          "vviinn-button",
          "vviinn-recommendations-sidebar"
        ],
        "vviinn-recommendations-sidebar": [
          "vviinn-vpr-widget"
        ],
        "vviinn-vpr-widget": [
          "vviinn-product-card",
          "vviinn-carousel",
          "vviinn-filters",
          "vviinn-extended-filters"
        ],
        "vviinn-carousel": [
          "vviinn-product-card"
        ]
      }
    }
  ],
  "typeLibrary": {
    "src/recommendation/events.ts::BasicEventData": {
      "declaration": "export type BasicEventData = { widget?: Widget } & {\n  [K in keyof CommonEventData]: CommonEventData[K];\n};",
      "docstring": "",
      "path": "src/recommendation/events.ts"
    },
    "src/store/search.store.ts::SearchStoreName": {
      "declaration": "export type SearchStoreName = \"widget\" | \"components\" | \"shopTheLook\";",
      "docstring": "",
      "path": "src/store/search.store.ts"
    },
    "src/store/search.store.ts::SearchStore": {
      "declaration": "export type SearchStore = AppStateGlobalDefaults &\n  AppStateDefaults &\n  ReceivedDataDefaults;",
      "docstring": "",
      "path": "src/store/search.store.ts"
    },
    "src/recommendation/events.ts::ImageUploadEventData": {
      "declaration": "export type ImageUploadEventData = { isTriggeredByVpsWidget?: boolean } & {\n  [K in keyof BasicEventData]: BasicEventData[K];\n};",
      "docstring": "",
      "path": "src/recommendation/events.ts"
    },
    "src/recommendation/events.ts::SearchIdEventData": {
      "declaration": "{\n  isTriggeredByVpsWidget: boolean;\n  searchId: string;\n}",
      "docstring": "",
      "path": "src/recommendation/events.ts"
    },
    "src/components/vviinn-vpr-widget/vviinn-vpr-widget.tsx::Mode": {
      "declaration": "export type Mode = \"pure-grid\" | CarouselMode;",
      "docstring": "",
      "path": "src/components/vviinn-vpr-widget/vviinn-vpr-widget.tsx"
    },
    "src/campaign/Campaign.ts::CampaignName": {
      "declaration": "export type CampaignName = \"VPR\" | \"VCS\";",
      "docstring": "",
      "path": "src/campaign/Campaign.ts"
    },
    "src/locale/index.ts::Locale": {
      "declaration": "any",
      "docstring": "",
      "path": "src/locale/index.ts"
    },
    "src/components/vviinn-vpr-widget/vviinn-vpr-widget.tsx::UpdateButtonLocation": {
      "declaration": "export type UpdateButtonLocation = \"onTop\" | \"onItem\" | \"topAndItem\";",
      "docstring": "",
      "path": "src/components/vviinn-vpr-widget/vviinn-vpr-widget.tsx"
    },
    "src/recommendation/events.ts::ProductCardEventData": {
      "declaration": "export type ProductCardEventData = {\n  productId: string;\n  productRank: number;\n  productName: string;\n  productType: string;\n  clickEvent?: MouseEvent;\n  discount?: number;\n} & {\n  [K in keyof CommonEventData]: CommonEventData[K];\n};",
      "docstring": "",
      "path": "src/recommendation/events.ts"
    },
    "src/recommendation/events.ts::ChangedFiltersEventData": {
      "declaration": "{\n  filters: RequestDynamicFilterItem[];\n  el: HTMLElement;\n  isTriggeredByVpsWidget?: boolean;\n}",
      "docstring": "",
      "path": "src/recommendation/events.ts"
    },
    "src/recommendation/events.ts::TriggerSourceEventData": {
      "declaration": "{\n  isTriggeredByVpsWidget: boolean;\n  triggerElement?: HTMLElement;\n}",
      "docstring": "",
      "path": "src/recommendation/events.ts"
    },
    "src/interfaces/index.ts::Recommendation": {
      "declaration": "any",
      "docstring": "",
      "path": "src/interfaces/index.ts"
    },
    "src/components/vviinn-carousel/vviinn-carousel.tsx::CarouselMode": {
      "declaration": "export type CarouselMode = \"grid\" | \"continuity\" | \"set\";",
      "docstring": "",
      "path": "src/components/vviinn-carousel/vviinn-carousel.tsx"
    },
    "src/campaign/Campaign.ts::CampaignTypeId": {
      "declaration": "\"VPR\" | \"VPS\" | \"TPS\" | \"VCS\"",
      "docstring": "",
      "path": "src/campaign/Campaign.ts"
    },
    "src/recommendation/events.ts::ImageCropEventData": {
      "declaration": "export type ImageCropEventData = {\n  isTriggeredByVpsWidget: boolean;\n} & {\n  [K in keyof BasicEventData]: BasicEventData[K];\n};",
      "docstring": "",
      "path": "src/recommendation/events.ts"
    },
    "src/components/vviinn-cropper/types.ts::LoadImageEventData": {
      "declaration": "{\n  imageBounds: Rectangle;\n}",
      "docstring": "",
      "path": "src/components/vviinn-cropper/types.ts"
    },
    "src/components/vviinn-cropper/types.ts::CropEndEventData": {
      "declaration": "{\n  searchArea: Rectangle;\n  normalizedSearchArea: Rectangle;\n  imageBounds: Rectangle;\n  requestId?: string;\n}",
      "docstring": "",
      "path": "src/components/vviinn-cropper/types.ts"
    },
    "src/interfaces/index.ts::Rectangle": {
      "declaration": "any",
      "docstring": "",
      "path": "src/interfaces/index.ts"
    },
    "src/recommendation/events.ts::SelectObjectEventData": {
      "declaration": "export type SelectObjectEventData = {\n  detectedObject: Rectangle;\n  searchArea: Rectangle;\n} & {\n  [K in keyof CommonEventData]: CommonEventData[K];\n};",
      "docstring": "",
      "path": "src/recommendation/events.ts"
    },
    "src/components/vviinn-error/index.ts::ErrorType": {
      "declaration": "export type ErrorType =\n  | \"empty-results\"\n  | \"server-error\"\n  | \"wrong-aspect-ratio\"\n  | \"wrong-format\"\n  | \"heic-not-supported\";",
      "docstring": "",
      "path": "src/components/vviinn-error/index.ts"
    },
    "src/components/vviinn-range-filter/vviinn-range-filter.tsx::Histogram": {
      "declaration": "interface Array<T> {\n    /**\n     * Gets or sets the length of the array. This is a number one higher than the highest index in the array.\n     */\n    length: number;\n    /**\n     * Returns a string representation of an array.\n     */\n    toString(): string;\n    /**\n     * Returns a string representation of an array. The elements are converted to string using their toLocaleString methods.\n     */\n    toLocaleString(): string;\n    /**\n     * Removes the last element from an array and returns it.\n     * If the array is empty, undefined is returned and the array is not modified.\n     */\n    pop(): T | undefined;\n    /**\n     * Appends new elements to the end of an array, and returns the new length of the array.\n     * @param items New elements to add to the array.\n     */\n    push(...items: T[]): number;\n    /**\n     * Combines two or more arrays.\n     * This method returns a new array without modifying any existing arrays.\n     * @param items Additional arrays and/or items to add to the end of the array.\n     */\n    concat(...items: ConcatArray<T>[]): T[];\n    /**\n     * Combines two or more arrays.\n     * This method returns a new array without modifying any existing arrays.\n     * @param items Additional arrays and/or items to add to the end of the array.\n     */\n    concat(...items: (T | ConcatArray<T>)[]): T[];\n    /**\n     * Adds all the elements of an array into a string, separated by the specified separator string.\n     * @param separator A string used to separate one element of the array from the next in the resulting string. If omitted, the array elements are separated with a comma.\n     */\n    join(separator?: string): string;\n    /**\n     * Reverses the elements in an array in place.\n     * This method mutates the array and returns a reference to the same array.\n     */\n    reverse(): T[];\n    /**\n     * Removes the first element from an array and returns it.\n     * If the array is empty, undefined is returned and the array is not modified.\n     */\n    shift(): T | undefined;\n    /**\n     * Returns a copy of a section of an array.\n     * For both start and end, a negative index can be used to indicate an offset from the end of the array.\n     * For example, -2 refers to the second to last element of the array.\n     * @param start The beginning index of the specified portion of the array.\n     * If start is undefined, then the slice begins at index 0.\n     * @param end The end index of the specified portion of the array. This is exclusive of the element at the index 'end'.\n     * If end is undefined, then the slice extends to the end of the array.\n     */\n    slice(start?: number, end?: number): T[];\n    /**\n     * Sorts an array in place.\n     * This method mutates the array and returns a reference to the same array.\n     * @param compareFn Function used to determine the order of the elements. It is expected to return\n     * a negative value if the first argument is less than the second argument, zero if they're equal, and a positive\n     * value otherwise. If omitted, the elements are sorted in ascending, ASCII character order.\n     * ```ts\n     * [11,2,22,1].sort((a, b) => a - b)\n     * ```\n     */\n    sort(compareFn?: (a: T, b: T) => number): this;\n    /**\n     * Removes elements from an array and, if necessary, inserts new elements in their place, returning the deleted elements.\n     * @param start The zero-based location in the array from which to start removing elements.\n     * @param deleteCount The number of elements to remove.\n     * @returns An array containing the elements that were deleted.\n     */\n    splice(start: number, deleteCount?: number): T[];\n    /**\n     * Removes elements from an array and, if necessary, inserts new elements in their place, returning the deleted elements.\n     * @param start The zero-based location in the array from which to start removing elements.\n     * @param deleteCount The number of elements to remove.\n     * @param items Elements to insert into the array in place of the deleted elements.\n     * @returns An array containing the elements that were deleted.\n     */\n    splice(start: number, deleteCount: number, ...items: T[]): T[];\n    /**\n     * Inserts new elements at the start of an array, and returns the new length of the array.\n     * @param items Elements to insert at the start of the array.\n     */\n    unshift(...items: T[]): number;\n    /**\n     * Returns the index of the first occurrence of a value in an array, or -1 if it is not present.\n     * @param searchElement The value to locate in the array.\n     * @param fromIndex The array index at which to begin the search. If fromIndex is omitted, the search starts at index 0.\n     */\n    indexOf(searchElement: T, fromIndex?: number): number;\n    /**\n     * Returns the index of the last occurrence of a specified value in an array, or -1 if it is not present.\n     * @param searchElement The value to locate in the array.\n     * @param fromIndex The array index at which to begin searching backward. If fromIndex is omitted, the search starts at the last index in the array.\n     */\n    lastIndexOf(searchElement: T, fromIndex?: number): number;\n    /**\n     * Determines whether all the members of an array satisfy the specified test.\n     * @param predicate A function that accepts up to three arguments. The every method calls\n     * the predicate function for each element in the array until the predicate returns a value\n     * which is coercible to the Boolean value false, or until the end of the array.\n     * @param thisArg An object to which the this keyword can refer in the predicate function.\n     * If thisArg is omitted, undefined is used as the this value.\n     */\n    every<S extends T>(predicate: (value: T, index: number, array: T[]) => value is S, thisArg?: any): this is S[];\n    /**\n     * Determines whether all the members of an array satisfy the specified test.\n     * @param predicate A function that accepts up to three arguments. The every method calls\n     * the predicate function for each element in the array until the predicate returns a value\n     * which is coercible to the Boolean value false, or until the end of the array.\n     * @param thisArg An object to which the this keyword can refer in the predicate function.\n     * If thisArg is omitted, undefined is used as the this value.\n     */\n    every(predicate: (value: T, index: number, array: T[]) => unknown, thisArg?: any): boolean;\n    /**\n     * Determines whether the specified callback function returns true for any element of an array.\n     * @param predicate A function that accepts up to three arguments. The some method calls\n     * the predicate function for each element in the array until the predicate returns a value\n     * which is coercible to the Boolean value true, or until the end of the array.\n     * @param thisArg An object to which the this keyword can refer in the predicate function.\n     * If thisArg is omitted, undefined is used as the this value.\n     */\n    some(predicate: (value: T, index: number, array: T[]) => unknown, thisArg?: any): boolean;\n    /**\n     * Performs the specified action for each element in an array.\n     * @param callbackfn  A function that accepts up to three arguments. forEach calls the callbackfn function one time for each element in the array.\n     * @param thisArg  An object to which the this keyword can refer in the callbackfn function. If thisArg is omitted, undefined is used as the this value.\n     */\n    forEach(callbackfn: (value: T, index: number, array: T[]) => void, thisArg?: any): void;\n    /**\n     * Calls a defined callback function on each element of an array, and returns an array that contains the results.\n     * @param callbackfn A function that accepts up to three arguments. The map method calls the callbackfn function one time for each element in the array.\n     * @param thisArg An object to which the this keyword can refer in the callbackfn function. If thisArg is omitted, undefined is used as the this value.\n     */\n    map<U>(callbackfn: (value: T, index: number, array: T[]) => U, thisArg?: any): U[];\n    /**\n     * Returns the elements of an array that meet the condition specified in a callback function.\n     * @param predicate A function that accepts up to three arguments. The filter method calls the predicate function one time for each element in the array.\n     * @param thisArg An object to which the this keyword can refer in the predicate function. If thisArg is omitted, undefined is used as the this value.\n     */\n    filter<S extends T>(predicate: (value: T, index: number, array: T[]) => value is S, thisArg?: any): S[];\n    /**\n     * Returns the elements of an array that meet the condition specified in a callback function.\n     * @param predicate A function that accepts up to three arguments. The filter method calls the predicate function one time for each element in the array.\n     * @param thisArg An object to which the this keyword can refer in the predicate function. If thisArg is omitted, undefined is used as the this value.\n     */\n    filter(predicate: (value: T, index: number, array: T[]) => unknown, thisArg?: any): T[];\n    /**\n     * Calls the specified callback function for all the elements in an array. The return value of the callback function is the accumulated result, and is provided as an argument in the next call to the callback function.\n     * @param callbackfn A function that accepts up to four arguments. The reduce method calls the callbackfn function one time for each element in the array.\n     * @param initialValue If initialValue is specified, it is used as the initial value to start the accumulation. The first call to the callbackfn function provides this value as an argument instead of an array value.\n     */\n    reduce(callbackfn: (previousValue: T, currentValue: T, currentIndex: number, array: T[]) => T): T;\n    reduce(callbackfn: (previousValue: T, currentValue: T, currentIndex: number, array: T[]) => T, initialValue: T): T;\n    /**\n     * Calls the specified callback function for all the elements in an array. The return value of the callback function is the accumulated result, and is provided as an argument in the next call to the callback function.\n     * @param callbackfn A function that accepts up to four arguments. The reduce method calls the callbackfn function one time for each element in the array.\n     * @param initialValue If initialValue is specified, it is used as the initial value to start the accumulation. The first call to the callbackfn function provides this value as an argument instead of an array value.\n     */\n    reduce<U>(callbackfn: (previousValue: U, currentValue: T, currentIndex: number, array: T[]) => U, initialValue: U): U;\n    /**\n     * Calls the specified callback function for all the elements in an array, in descending order. The return value of the callback function is the accumulated result, and is provided as an argument in the next call to the callback function.\n     * @param callbackfn A function that accepts up to four arguments. The reduceRight method calls the callbackfn function one time for each element in the array.\n     * @param initialValue If initialValue is specified, it is used as the initial value to start the accumulation. The first call to the callbackfn function provides this value as an argument instead of an array value.\n     */\n    reduceRight(callbackfn: (previousValue: T, currentValue: T, currentIndex: number, array: T[]) => T): T;\n    reduceRight(callbackfn: (previousValue: T, currentValue: T, currentIndex: number, array: T[]) => T, initialValue: T): T;\n    /**\n     * Calls the specified callback function for all the elements in an array, in descending order. The return value of the callback function is the accumulated result, and is provided as an argument in the next call to the callback function.\n     * @param callbackfn A function that accepts up to four arguments. The reduceRight method calls the callbackfn function one time for each element in the array.\n     * @param initialValue If initialValue is specified, it is used as the initial value to start the accumulation. The first call to the callbackfn function provides this value as an argument instead of an array value.\n     */\n    reduceRight<U>(callbackfn: (previousValue: U, currentValue: T, currentIndex: number, array: T[]) => U, initialValue: U): U;\n\n    [n: number]: T;\n}",
      "docstring": "",
      "path": "src/components/vviinn-range-filter/vviinn-range-filter.tsx"
    },
    "src/interfaces/index.ts::IntervalFilterValueItem": {
      "declaration": "any",
      "docstring": "",
      "path": "src/interfaces/index.ts"
    },
    "src/interfaces/index.ts::Interval": {
      "declaration": "any",
      "docstring": "",
      "path": "src/interfaces/index.ts"
    },
    "src/recommendation/events.ts::DynamicFilterTrackingData": {
      "declaration": "{\n  action: FilterAction;\n  value?: DynamicFilterValue;\n  kind?: string;\n  isTriggeredByVpsWidget?: boolean;\n}",
      "docstring": "",
      "path": "src/recommendation/events.ts"
    },
    "src/recommendation/events.ts::DynamicFilterInternalData": {
      "declaration": "export type DynamicFilterInternalData = DynamicFilterTrackingData & {\n  customTrigger?: Widget;\n  filter?: ResponseDynamicFilterItem;\n};",
      "docstring": "",
      "path": "src/recommendation/events.ts"
    },
    "src/interfaces/index.ts::EntityType": {
      "declaration": "any",
      "docstring": "",
      "path": "src/interfaces/index.ts"
    },
    "src/recommendation/events.ts::NoResultEventData": {
      "declaration": "export type NoResultEventData = {\n  reason: ErrorKind;\n  errorMessage?: string;\n  errorCode?: ErrorCode;\n} & {\n  [K in keyof CommonEventData]: CommonEventData[K];\n};",
      "docstring": "",
      "path": "src/recommendation/events.ts"
    },
    "src/interfaces/index.ts::ProductImage": {
      "declaration": "any",
      "docstring": "",
      "path": "src/interfaces/index.ts"
    },
    "src/interfaces/index.ts::BasePrice": {
      "declaration": "any",
      "docstring": "",
      "path": "src/interfaces/index.ts"
    },
    "src/interfaces/index.ts::EnergyCertification": {
      "declaration": "any",
      "docstring": "",
      "path": "src/interfaces/index.ts"
    },
    "src/recommendation/events.ts::CrossSellingClickEventData": {
      "declaration": "{\n  productData: ProductCardEventData;\n  animationInterval: number;\n}",
      "docstring": "",
      "path": "src/recommendation/events.ts"
    },
    "src/interfaces/index.ts::EnergyClassIconDirection": {
      "declaration": "any",
      "docstring": "",
      "path": "src/interfaces/index.ts"
    },
    "src/widget/types.ts::OneClickDiscoveryMode": {
      "declaration": "export type OneClickDiscoveryMode = OneClickDiscoveryAppendMode | \"modal\";",
      "docstring": "",
      "path": "src/widget/types.ts"
    },
    "src/components/vviinn-results/vviinn-results.tsx::ReplaceSlotsContentInParent": {
      "declaration": "(\n  childrenElement?: HTMLElement,\n) => void",
      "docstring": "",
      "path": "src/components/vviinn-results/vviinn-results.tsx"
    },
    "src/components/vviinn-shop-the-look/vviinn-shop-the-look.tsx::ShopTheLookEventData": {
      "declaration": "export interface ShopTheLookEventData extends BasicEventData {\n  detectedObjectId: string;\n  product: Recommendation;\n}",
      "docstring": "",
      "path": "src/components/vviinn-shop-the-look/vviinn-shop-the-look.tsx"
    },
    "src/widget/types.ts::SearchBarMode": {
      "declaration": "export type SearchBarMode = \"basic\" | \"extended\";",
      "docstring": "",
      "path": "src/widget/types.ts"
    },
    "src/widget/types.ts::VisualSearchMode": {
      "declaration": "export type VisualSearchMode = \"modal\" | \"upload\" | \"camera\";",
      "docstring": "",
      "path": "src/widget/types.ts"
    },
    "src/recommendation/events.ts::TextSearchEventData": {
      "declaration": "{\n  query: string;\n  requestId?: string;\n  isTriggeredByVpsWidget?: boolean;\n}",
      "docstring": "",
      "path": "src/recommendation/events.ts"
    },
    "src/recommendation/events.ts::RedirectEventData": {
      "declaration": "export type RedirectEventData = {\n  url: string;\n  source: RedirectSource;\n  query?: string;\n  searchId?: string;\n  widget?: Widget;\n} & {\n  [K in keyof CommonEventData]: CommonEventData[K];\n};",
      "docstring": "",
      "path": "src/recommendation/events.ts"
    },
    "src/widget/types.ts::OneClickDiscoveryAppendMode": {
      "declaration": "export type OneClickDiscoveryAppendMode =\n  | \"append-grid\"\n  | \"append-slider\"\n  | \"unset\";",
      "docstring": "",
      "path": "src/widget/types.ts"
    }
  }
}