**Note: Parent task T186129 may require a larger refactor so depending on timeline we may want to wait until that has happened before working on this task.**
The Popup's empty / generic / error / disambiguation "preview" and page preview templates have similar outer divs and LESS. This task encompasses the work to make a new popup template that accepts an unescaped HTML "children" string and update the LESS so that empty / generic / error / disambiguation LESS is in preview.less, page preview LESS is in pagePreview.less, and generic popup LESS is in popup.less.
```lang=jsx
<div class='mwe-popups mwe-popups-type-${ type }' role='tooltip' aria-hidden>
<div class='mwe-popups-container'>
<div class='mw-ui-icon mw-ui-icon-element mw-ui-icon-preview-${ type }'></div>
${ showTitle ? `<strong class='mwe-popups-title'>${ title }</strong>` : '' }
<a href='${ url }' class='mwe-popups-extract'>
<span class='mwe-popups-message'>${ extractMsg }</span>
</a>
<footer>
<a href='${ url }' class='mwe-popups-read-link'>${ linkMsg }</a>
</footer>
</div>
</div>
```
```lang=jsx
<div class='mwe-popups' role='tooltip' aria-hidden>
<div class='mwe-popups-container'>
${ hasThumbnail ? `<a href='${ url }' class='mwe-popups-discreet'></a>` : '' }
<a dir='${ languageDirection }' lang='${ languageCode }' class='mwe-popups-extract' href='${ url }'></a>
<footer>
<a class='mwe-popups-settings-icon mw-ui-icon mw-ui-icon-element mw-ui-icon-popups-settings'></a>
</footer>
</div>
</div>
```
== AC
[] A generic popup container element is extracted
[] The generic popup accepts an unescaped HTML string
[] LESS is reorgnaized into three files: popup.less for the generic container, preview.less for empty / generic / error / disambiguation LESS, pagePreview.less for page preveiw LESS.
== Testing
[] Verify that no regressions are introduced by checking page previews, disambiguation previews, and error previews in LTR, RTL, and mixed locales in each of the four orientations for portrait and landscape.