<?xml version="1.0" encoding="UTF-8"?>
<!--
    OpenSearch description — lets Firefox (and Chrome/Edge, which build the same
    entry from a visit) offer "Penny Bricks" as a search engine, so a query typed
    in the address bar lands on /search?q=…

    Firefox finds this file through the <link rel="search"> in index.html.
    browser/actors/LinkHandlerChild.sys.mjs accepts the offer only when
    `type == "application/opensearchdescription+xml" && link.title &&
    /^https?:/i.test(link.href)` — no input or form on the page is ever
    consulted, which is why nothing about the header search had to change.

    Two things Firefox rejects the file outright for:
      * a missing `xmlns` — reported to the user as "could not download the
        search plugin", with no further detail;
      * a ShortName longer than 16 characters.

    The site-URL placeholder below is replaced at BUILD TIME by the
    `htmlSiteUrl` plugin in web/vite-plugins/html-site-url.ts. This file sits in
    web/public/, so Vite copies it verbatim and it never passes through
    `transformIndexHtml` — the plugin rewrites dist/opensearch.xml in
    `writeBundle` instead, exactly as it already does for robots.txt.

    (The token is deliberately not spelled out in this comment: the plugin
    substitutes every occurrence in the file, prose included.)
-->
<OpenSearchDescription xmlns="http://a9.com/-/spec/opensearch/1.1/"
                       xmlns:moz="http://www.mozilla.org/2006/browser/search/">
    <ShortName>Penny Bricks</ShortName>
    <Description>Klemmbausteine, Sets und Kiloware im Penny Bricks® Shop suchen.</Description>
    <InputEncoding>UTF-8</InputEncoding>
    <Image width="32" height="32" type="image/png">https://www.pennybricks.de/favicon-32.png</Image>
    <Url type="text/html" method="get" template="https://www.pennybricks.de/search?q={searchTerms}"/>
    <moz:SearchForm>https://www.pennybricks.de/search</moz:SearchForm>
</OpenSearchDescription>
