Files
OpenFrontIO/proprietary/images/Favicon.svg
T
Evan 1ebac8e854 Move brand images to proprietary/ and support multi-dir asset pipeline (#3662)
## Description:

* Move proprietary brand images (logos, favicon) from resources/images/
to proprietary/images/ to separate open-source assets from proprietary
ones
* Extend the asset pipeline (PublicAssetManifest, vite.config.ts) to
support multiple source directories (resources/ + proprietary/), so
buildAssetUrl resolves assets from either location transparently
* In dev, serve proprietary/ as a fallback middleware (registered after
Vite's publicDir handler) so resources/ takes precedence when files
exist in both. The idea is we could have placeholder assets placeholders
that can be used by forks, and only the production build uses
proprietary assets.

## Please complete the following:

- [x] I have added screenshots for all UI updates
- [x] I process any text displayed to the user through translateText()
and I've added it to the en.json file
- [x] I have added relevant tests to the test directory
- [x] I confirm I have thoroughly tested these changes and take full
responsibility for any bugs introduced

## Please put your Discord username so you can be contacted if a bug or
regression is found:

evan
2026-04-16 08:42:11 -07:00

137 lines
12 KiB
XML

<?xml version="1.0" encoding="UTF-8"?>
<svg id="warship" xmlns="http://www.w3.org/2000/svg" version="1.1" viewBox="0 0 11 11">
<!-- Generator: Adobe Illustrator 30.1.0, SVG Export Plug-In . SVG Version: 2.1.1 Build 136) -->
<defs>
<style>
.st0 {
fill: none;
}
.st1 {
fill: #0084d1;
}
</style>
</defs>
<rect id="_x36_-1" class="st0" x="10" y="5" width="1" height="1" shape-rendering="crispEdges"/>
<rect id="_x33_-2" class="st0" x="9" y="2" width="1" height="1" shape-rendering="crispEdges"/>
<rect id="_x34_-2" class="st0" x="9" y="3" width="1" height="1" shape-rendering="crispEdges"/>
<rect id="_x35_-2" class="st1" x="9" y="4" width="1" height="1" shape-rendering="crispEdges"/>
<rect id="_x36_-2" class="st1" x="9" y="5" width="1" height="1" shape-rendering="crispEdges"/>
<rect id="_x37_-2" class="st1" x="9" y="6" width="1" height="1" shape-rendering="crispEdges"/>
<rect id="_x38_-2" class="st0" x="9" y="7" width="1" height="1" shape-rendering="crispEdges"/>
<rect id="_x39_-2" class="st0" x="9" y="8" width="1" height="1" shape-rendering="crispEdges"/>
<rect id="_x33_-21" class="st0" x="10" y="2" width="1" height="1" shape-rendering="crispEdges"/>
<rect id="_x34_-21" class="st0" x="10" y="3" width="1" height="1" shape-rendering="crispEdges"/>
<rect id="_x35_-21" class="st0" x="10" y="4" width="1" height="1" shape-rendering="crispEdges"/>
<rect id="_x37_-21" class="st0" x="10" y="6" width="1" height="1" shape-rendering="crispEdges"/>
<rect id="_x38_-21" class="st0" x="10" y="7" width="1" height="1" shape-rendering="crispEdges"/>
<rect id="_x39_-21" class="st0" x="10" y="8" width="1" height="1" shape-rendering="crispEdges"/>
<rect id="_x32_-3" class="st0" x="8" y="1" width="1" height="1" shape-rendering="crispEdges"/>
<rect id="_x33_-3" class="st0" x="8" y="2" width="1" height="1" shape-rendering="crispEdges"/>
<rect id="_x34_-3" class="st0" x="8" y="3" width="1" height="1" shape-rendering="crispEdges"/>
<rect id="_x35_-3" class="st1" x="8" y="4" width="1" height="1" shape-rendering="crispEdges"/>
<rect id="_x36_-3" class="st1" x="8" y="5" width="1" height="1" shape-rendering="crispEdges"/>
<rect id="_x37_-3" class="st1" x="8" y="6" width="1" height="1" shape-rendering="crispEdges"/>
<rect id="_x38_-3" class="st0" x="8" y="7" width="1" height="1" shape-rendering="crispEdges"/>
<rect id="_x39_-3" class="st0" x="8" y="8" width="1" height="1" shape-rendering="crispEdges"/>
<rect id="_x31_0-3" class="st0" x="8" y="9" width="1" height="1" shape-rendering="crispEdges"/>
<rect id="_x32_-4" class="st0" x="7" y="1" width="1" height="1" shape-rendering="crispEdges"/>
<rect id="_x33_-4" class="st1" x="7" y="2" width="1" height="1" shape-rendering="crispEdges"/>
<rect id="_x34_-4" class="st1" x="7" y="3" width="1" height="1" shape-rendering="crispEdges"/>
<rect id="_x35_-4" class="st1" x="7" y="4" width="1" height="1" shape-rendering="crispEdges"/>
<rect id="_x36_-4" class="st1" x="7" y="5" width="1" height="1" shape-rendering="crispEdges"/>
<rect id="_x37_-4" class="st1" x="7" y="6" width="1" height="1" shape-rendering="crispEdges"/>
<rect id="_x38_-4" class="st1" x="7" y="7" width="1" height="1" shape-rendering="crispEdges"/>
<rect id="_x39_-4" class="st1" x="7" y="8" width="1" height="1" shape-rendering="crispEdges"/>
<rect id="_x31_0-4" class="st0" x="7" y="9" width="1" height="1" shape-rendering="crispEdges"/>
<rect id="_x32_-5" class="st0" x="6" y="1" width="1" height="1" shape-rendering="crispEdges"/>
<rect id="_x33_-5" class="st1" x="6" y="2" width="1" height="1" shape-rendering="crispEdges"/>
<rect id="_x34_-5" class="st1" x="6" y="3" width="1" height="1" shape-rendering="crispEdges"/>
<rect id="_x35_-5" class="st1" x="6" y="4" width="1" height="1" shape-rendering="crispEdges"/>
<rect id="_x36_-5" class="st1" x="6" y="5" width="1" height="1" shape-rendering="crispEdges"/>
<rect id="_x37_-5" class="st1" x="6" y="6" width="1" height="1" shape-rendering="crispEdges"/>
<rect id="_x38_-5" class="st1" x="6" y="7" width="1" height="1" shape-rendering="crispEdges"/>
<rect id="_x39_-5" class="st1" x="6" y="8" width="1" height="1" shape-rendering="crispEdges"/>
<rect id="_x31_0-5" class="st0" x="6" y="9" width="1" height="1" shape-rendering="crispEdges"/>
<rect id="_x31_-6" class="st1" x="5" width="1" height="1" shape-rendering="crispEdges"/>
<rect id="_x32_-6" class="st1" x="5" y="1" width="1" height="1" shape-rendering="crispEdges"/>
<rect id="_x33_-6" class="st1" x="5" y="2" width="1" height="1" shape-rendering="crispEdges"/>
<rect id="_x34_-6" class="st1" x="5" y="3" width="1" height="1" shape-rendering="crispEdges"/>
<rect id="_x35_-6" class="st0" x="5" y="4" width="1" height="1" shape-rendering="crispEdges"/>
<rect id="_x36_-6" class="st0" x="5" y="5" width="1" height="1" shape-rendering="crispEdges"/>
<rect id="_x37_-6" class="st0" x="5" y="6" width="1" height="1" shape-rendering="crispEdges"/>
<rect id="_x38_-6" class="st1" x="5" y="7" width="1" height="1" shape-rendering="crispEdges"/>
<rect id="_x39_-6" class="st1" x="5" y="8" width="1" height="1" shape-rendering="crispEdges"/>
<rect id="_x31_0-6" class="st1" x="5" y="9" width="1" height="1" shape-rendering="crispEdges"/>
<rect id="_x31_1-6" class="st1" x="5" y="10" width="1" height="1" shape-rendering="crispEdges"/>
<rect id="_x32_-7" class="st1" x="4" y="1" width="1" height="1" shape-rendering="crispEdges"/>
<rect id="_x33_-7" class="st1" x="4" y="2" width="1" height="1" shape-rendering="crispEdges"/>
<rect id="_x34_-7" class="st1" x="4" y="3" width="1" height="1" shape-rendering="crispEdges"/>
<rect id="_x35_-7" class="st0" x="4" y="4" width="1" height="1" shape-rendering="crispEdges"/>
<rect id="_x36_-7" class="st0" x="4" y="5" width="1" height="1" shape-rendering="crispEdges"/>
<rect id="_x37_-7" class="st0" x="4" y="6" width="1" height="1" shape-rendering="crispEdges"/>
<rect id="_x38_-7" class="st1" x="4" y="7" width="1" height="1" shape-rendering="crispEdges"/>
<rect id="_x39_-7" class="st1" x="4" y="8" width="1" height="1" shape-rendering="crispEdges"/>
<rect id="_x31_0-7" class="st1" x="4" y="9" width="1" height="1" shape-rendering="crispEdges"/>
<rect id="_x32_-8" class="st1" x="3" y="1" width="1" height="1" shape-rendering="crispEdges"/>
<rect id="_x32_-81" class="st0" x="3" y="2" width="1" height="1" shape-rendering="crispEdges"/>
<rect id="_x34_-8" class="st0" x="3" y="3" width="1" height="1" shape-rendering="crispEdges"/>
<rect id="_x35_-8" class="st0" x="3" y="4" width="1" height="1" shape-rendering="crispEdges"/>
<rect id="_x36_-8" class="st0" x="3" y="5" width="1" height="1" shape-rendering="crispEdges"/>
<rect id="_x37_-8" class="st0" x="3" y="6" width="1" height="1" shape-rendering="crispEdges"/>
<rect id="_x38_-8" class="st0" x="3" y="7" width="1" height="1" shape-rendering="crispEdges"/>
<rect id="_x39_-8" class="st0" x="3" y="8" width="1" height="1" shape-rendering="crispEdges"/>
<rect id="_x31_0-8" class="st1" x="3" y="9" width="1" height="1" shape-rendering="crispEdges"/>
<rect id="_x32_-9" class="st1" x="2" y="1" width="1" height="1" shape-rendering="crispEdges"/>
<rect id="_x33_-9" class="st0" x="2" y="2" width="1" height="1" shape-rendering="crispEdges"/>
<rect id="_x34_-9" class="st0" x="2" y="3" width="1" height="1" shape-rendering="crispEdges"/>
<rect id="_x35_-9" class="st0" x="2" y="4" width="1" height="1" shape-rendering="crispEdges"/>
<rect id="_x36_-9" class="st0" x="2" y="5" width="1" height="1" shape-rendering="crispEdges"/>
<rect id="_x37_-9" class="st0" x="2" y="6" width="1" height="1" shape-rendering="crispEdges"/>
<rect id="_x38_-9" class="st0" x="2" y="7" width="1" height="1" shape-rendering="crispEdges"/>
<rect id="_x39_-9" class="st0" x="2" y="8" width="1" height="1" shape-rendering="crispEdges"/>
<rect id="_x31_0-9" class="st1" x="2" y="9" width="1" height="1" shape-rendering="crispEdges"/>
<rect id="_x33_-10" class="st0" x="1" y="2" width="1" height="1" shape-rendering="crispEdges"/>
<rect id="_x34_-10" class="st0" x="1" y="3" width="1" height="1" shape-rendering="crispEdges"/>
<rect id="_x35_-10" class="st0" x="1" y="4" width="1" height="1" shape-rendering="crispEdges"/>
<rect id="_x36_-10" class="st0" x="1" y="5" width="1" height="1" shape-rendering="crispEdges"/>
<rect id="_x37_-10" class="st0" x="1" y="6" width="1" height="1" shape-rendering="crispEdges"/>
<rect id="_x38_-10" class="st0" x="1" y="7" width="1" height="1" shape-rendering="crispEdges"/>
<rect id="_x39_-10" class="st0" x="1" y="8" width="1" height="1" shape-rendering="crispEdges"/>
<rect id="_x33_-101" class="st0" y="2" width="1" height="1" shape-rendering="crispEdges"/>
<rect id="_x33_-22" class="st0" x="9" y="1" width="1" height="1" shape-rendering="crispEdges"/>
<rect id="_x33_-23" class="st0" x="10" y="1" width="1" height="1" shape-rendering="crispEdges"/>
<rect id="_x33_-102" class="st0" x="1" y="1" width="1" height="1" shape-rendering="crispEdges"/>
<rect id="_x33_-103" class="st0" y="1" width="1" height="1" shape-rendering="crispEdges"/>
<rect id="_x32_-31" class="st0" x="8" width="1" height="1" shape-rendering="crispEdges"/>
<rect id="_x32_-41" class="st0" x="7" width="1" height="1" shape-rendering="crispEdges"/>
<rect id="_x32_-51" class="st0" x="6" width="1" height="1" shape-rendering="crispEdges"/>
<rect id="_x32_-71" class="st1" x="4" width="1" height="1" shape-rendering="crispEdges"/>
<rect id="_x32_-82" class="st1" x="3" width="1" height="1" shape-rendering="crispEdges"/>
<rect id="_x32_-91" class="st1" x="2" width="1" height="1" shape-rendering="crispEdges"/>
<rect id="_x33_-24" class="st0" x="9" width="1" height="1" shape-rendering="crispEdges"/>
<rect id="_x33_-25" class="st0" x="10" width="1" height="1" shape-rendering="crispEdges"/>
<rect id="_x33_-104" class="st0" x="1" width="1" height="1" shape-rendering="crispEdges"/>
<rect id="_x33_-105" class="st0" width="1" height="1" shape-rendering="crispEdges"/>
<rect id="_x33_-106" class="st0" width="11" height="11" shape-rendering="crispEdges"/>
<rect id="_x34_-101" class="st0" y="3" width="1" height="1" shape-rendering="crispEdges"/>
<rect id="_x35_-101" class="st0" y="4" width="1" height="1" shape-rendering="crispEdges"/>
<rect id="_x37_-101" class="st0" y="6" width="1" height="1" shape-rendering="crispEdges"/>
<rect id="_x38_-101" class="st0" y="7" width="1" height="1" shape-rendering="crispEdges"/>
<rect id="_x39_-101" class="st0" y="8" width="1" height="1" shape-rendering="crispEdges"/>
<rect id="_x39_-22" class="st0" x="9" y="9" width="1" height="1" shape-rendering="crispEdges"/>
<rect id="_x39_-23" class="st0" x="10" y="9" width="1" height="1" shape-rendering="crispEdges"/>
<rect id="_x39_-102" class="st0" x="1" y="9" width="1" height="1" shape-rendering="crispEdges"/>
<rect id="_x39_-103" class="st0" y="9" width="1" height="1" shape-rendering="crispEdges"/>
<rect id="_x31_0-31" class="st0" x="8" y="10" width="1" height="1" shape-rendering="crispEdges"/>
<rect id="_x31_0-41" class="st0" x="7" y="10" width="1" height="1" shape-rendering="crispEdges"/>
<rect id="_x31_0-51" class="st0" x="6" y="10" width="1" height="1" shape-rendering="crispEdges"/>
<rect id="_x31_0-71" class="st1" x="4" y="10" width="1" height="1" shape-rendering="crispEdges"/>
<rect id="_x31_0-81" class="st1" x="3" y="10" width="1" height="1" shape-rendering="crispEdges"/>
<rect id="_x31_0-91" class="st1" x="2" y="10" width="1" height="1" shape-rendering="crispEdges"/>
<rect id="_x39_-24" class="st0" x="9" y="10" width="1" height="1" shape-rendering="crispEdges"/>
<rect id="_x39_-25" class="st0" x="10" y="10" width="1" height="1" shape-rendering="crispEdges"/>
<rect id="_x39_-104" class="st0" x="1" y="10" width="1" height="1" shape-rendering="crispEdges"/>
<rect id="_x39_-105" class="st0" y="10" width="1" height="1" shape-rendering="crispEdges"/>
<rect id="_x36_-11" class="st0" y="5" width="1" height="1" shape-rendering="crispEdges"/>
</svg>