> ## Documentation Index
> Fetch the complete documentation index at: https://motherfuckingsideproject.com/docs/llms.txt
> Use this file to discover all available pages before exploring further.

# Common selectors

> CSS selectors for popular third-party widgets to use with excludeSelectors.

# Common selectors

> CSS selectors for popular third-party widgets to use with `excludeSelectors`.

When third-party widgets inject elements inside your `<main>` content area, AgentXP may include them in the markdown output. Add their selectors to `excludeSelectors` to strip them.

```typescript middleware.ts theme={null}
export default withAgentXP({
  transform: {
    excludeSelectors: [
      '#intercom-container',
      '.crisp-client',
      // add more as needed
    ],
  },
})
```

## Chat widgets

| Widget       | Selectors                                                                       |
| ------------ | ------------------------------------------------------------------------------- |
| Intercom     | `#intercom-container`, `.intercom-lightweight-app`, `.intercom-messenger-frame` |
| Crisp        | `.crisp-client`, `#crisp-chatbox`                                               |
| Drift        | `#drift-widget`, `#drift-frame-controller`, `#drift-frame-chat`                 |
| HubSpot Chat | `#hubspot-messages-iframe-container`, `.hs-messages-widget-open`                |
| Zendesk      | `#launcher`, `#webWidget`, `iframe[title="Messaging window"]`                   |
| Freshdesk    | `#freshworks-container`, `#fc_frame`                                            |
| Tawk.to      | `#tawk-widget-container`, `.tawk-min-container`                                 |
| LiveChat     | `#chat-widget-container`, `#livechat-compact-container`                         |

## Cookie consent

| Tool                    | Selectors                                                    |
| ----------------------- | ------------------------------------------------------------ |
| Cookiebot               | `#CybotCookiebotDialog`, `#CybotCookiebotDialogBodyUnderlay` |
| OneTrust                | `#onetrust-consent-sdk`, `#onetrust-banner-sdk`              |
| Cookie Notice (generic) | `.cookie-consent`, `.cookie-banner`, `.cookie-notice`        |
| Quantcast               | `.qc-cmp2-container`                                         |
| Osano                   | `.osano-cm-window`                                           |
| Termly                  | `#termly-code-snippet-support`                               |

## Analytics and tracking

| Tool                          | Selectors                 |
| ----------------------------- | ------------------------- |
| Google reCAPTCHA              | `.grecaptcha-badge`       |
| Google Tag Manager (noscript) | `noscript`                |
| Hotjar                        | `#_hj_feedback_container` |

## Notification bars and popups

| Type              | Selectors                                               |
| ----------------- | ------------------------------------------------------- |
| Announcement bars | `.announcement-bar`, `.notification-bar`, `.promo-bar`  |
| Email popups      | `.popup-overlay`, `.newsletter-popup`, `.exit-intent`   |
| Social sharing    | `.social-sharing`, `.share-buttons`, `.addthis_toolbox` |

## E-commerce widgets

| Type                  | Selectors                                               |
| --------------------- | ------------------------------------------------------- |
| Cart drawers          | `.cart-drawer`, `.mini-cart`, `.cart-sidebar`           |
| Recently viewed       | `.recently-viewed`, `.recommended-products`             |
| Wishlist buttons      | `.wishlist-btn`, `.save-for-later`                      |
| Reviews (third-party) | `.yotpo-widget`, `.stamped-reviews`, `.judge-me-widget` |

## Copy-paste starter

Here's a combined config with the most common widgets:

```typescript middleware.ts theme={null}
export default withAgentXP({
  transform: {
    excludeSelectors: [
      // Chat widgets
      '#intercom-container',
      '.crisp-client',
      '#drift-widget',
      '#hubspot-messages-iframe-container',
      // Cookie consent
      '#CybotCookiebotDialog',
      '#onetrust-consent-sdk',
      '.cookie-consent',
      // Misc
      '.grecaptcha-badge',
      '.announcement-bar',
      '.social-sharing',
    ],
  },
})
```

<Note>
  AgentXP already strips `nav`, `header`, `footer`, `aside`, `script`, `style`, `noscript`, and elements with `navigation`/`banner`/`contentinfo` ARIA roles by default. You only need `excludeSelectors` for widgets injected inside your main content area.
</Note>
