diff --git a/.github/ISSUE_TEMPLATE/bug_report.md b/.github/ISSUE_TEMPLATE/bug_report.md
index 2ba4257..1705fdb 100644
--- a/.github/ISSUE_TEMPLATE/bug_report.md
+++ b/.github/ISSUE_TEMPLATE/bug_report.md
@@ -10,8 +10,6 @@ assignees: ''
**Library version**
Which version of the library that you use, eg: v0.7.35 or v2.0.0-alpha.3
-For the issue related with detection result, you can use the demo section in https://uaparser.js.org to confirm
-
**Describe the bug**
A clear and concise description of what the bug is.
@@ -23,11 +21,13 @@ Steps to reproduce the behavior:
4. See error
**Expected behavior**
-A clear and concise description of what you expected to happen.
+A clear and concise description of what you expected to happen, or what's referred in the docs https://docs.uaparser.dev/
**Screenshots**
If applicable, add screenshots to help explain your problem.
+For issues related to detection results, you can send the screenshots of the demo section at https://uaparser.dev/#demo to confirm.
+
**Desktop (please complete the following information):**
- OS: [e.g. iOS]
- Browser [e.g. chrome, safari]
@@ -40,4 +40,4 @@ If applicable, add screenshots to help explain your problem.
- Version [e.g. 22]
**Additional context**
-Add any other context about the problem here.
+Add any other context about the problem here.
\ No newline at end of file
diff --git a/PULL_REQUEST_TEMPLATE.md b/.github/PULL_REQUEST_TEMPLATE.md
similarity index 100%
rename from PULL_REQUEST_TEMPLATE.md
rename to .github/PULL_REQUEST_TEMPLATE.md
diff --git a/CHANGELOG.md b/CHANGELOG.md
index cc30afa..0e1966d 100644
--- a/CHANGELOG.md
+++ b/CHANGELOG.md
@@ -1,27 +1,114 @@
# UAParser.js Changelog
-# Version 2.0
-- What's breaking:
- - Dual-licensed under AGPLv3 or PRO License
- - Browser detection on mobile device: `"Chrome" => "Mobile Chrome"`, `"Firefox" => "Mobile Firefox"`
- - OS detection: `"Mac OS" => "macOS"`, `"Chromium OS" => "Chrome OS"`
-- What's new:
- - Some new methods in result object:
- - Support for client hints: `withClientHints()`
- - Support for feature detection: `withFeatureCheck()`
- - Utility for easy comparison: `is()`
- - Utility to print full-name: `toString()`
- - Support for ES module `import { UAParser } from 'ua-parser-js'`
- - Provided Enums submodule `'ua-parser-js/enums'`
- - Provided Extensions submodule `'ua-parser-js/extensions'`
- - Provided Helpers submodule `'ua-parser-js/helpers'`
+## Migrating from v1 to v2
+
+### What's Breaking:
+
+- **Licensing Changes:**
+ - UAParser.js is now licensed under AGPLv3 for open-source use, with PRO Licenses available for commercial/proprietary use
+
+- **Browser Detection on Mobile Devices:**
+ - `"Chrome"` => `"Mobile Chrome"`
+ - `"Firefox"` => `"Mobile Firefox"`
+
+- **OS Detection:**
+ - `"Mac OS"` => `"macOS"`
+ - `"Chromium OS"` => `"Chrome OS"`
+
+### What's New:
+
+- **Support for ES Modules & TypeScript:**
+ - Import directly as an ES module with TypeScript support: `import { UAParser } from 'ua-parser-js'`
+
+- **Support for Custom/Predefined Extensions:**
+ - Pass custom regexes or predefined extensions as a list to `UAParser()`
+
+- **Support for CLI Parsing:**
+ - Parse a user-agent directly from the command line using `npx ua-parser-js "[User-Agent]"`
+
+- **Enhanced Detection with Client Hints:**
+ - `withClientHints()`: Improves detection accuracy by leveraging client hints
+
+- **Enhanced Detection with Feature Detection:**
+ - `withFeatureCheck()`: Refines detection results using feature detection
+
+- **Simple Comparison for Detection Results:**
+ - `is()`: Enables easy comparison checks against the detection result
+
+- **Detailed Result Output:**
+ - `toString()`: Returns the detection result in form of a full-name string
+
+- **New Device Type:**
+ - Added `xr` to identify AR/VR devices
+
+- **New Browser Property:**
+ - Added `browser.type` to identify additional browser types:
+ - `crawler`, `cli`, `email`, `fetcher`, `inapp`, `library`, `mediaplayer`
+
+- **New Submodules:**
+ - **`'ua-parser-js/enums'`**: Provides constants for these specific properties:
+ - `browser.name`, `browser.type`, `cpu.architecture`, `device.type`, `device.vendor`, `engine.name`, `os.name`
+
+ - **`'ua-parser-js/extensions'`**: Predefined extensions for various use cases:
+ - `Bots`, `Crawlers`, `CLIs`, `Emails`, `ExtraDevices`, `Fetchers`, `InApps`, `Libraries`, `Mediaplayers`
+
+ - **`'ua-parser-js/helpers'`**: Provides utility methods to extend detection functionality:
+ - `getDeviceVendor()`: Guesses the device vendor based on its model name
+ - `isAppleSilicon()`: Detects Apple Silicon device properties
+ - `isBot()`: Checks if the browser is a bot
+ - `isChromeFamily()`: Checks if the browser is Chrome-based (uses Blink engine) — e.g., New Opera, New Edge, Vivaldi, Brave, Arc, etc.
+ - `isElectron()`: Detects if current window is running within Electron
+ - `isFromEU()`: Detects if current browser's timezone is from an EU country
+ - `isFrozenUA()`: Checks if the user-agent matches a frozen/reduced user-agent pattern
+ - `isStandalonePWA()`: Detects if current window is a standalone PWA
+
+---
+
+## Version 2.0.0-rc.3
+
+- Add support for Headers object
+- Add new device: Advan, Cat, Energizer, Honor, IMO, Micromax, Smartfren
+- Add new engine: Servo
+- `ua-parser-js/extensions` submodule:
+ - Breaking change: rename `module` to `library`
+ - Add new email clients: Evolution, KMail, Kontact
+ - Add new bots: 360Spider, Archive.org Bots, CCBot, DataForSeoBot, DuckAssistBot, Exabot, Google Bots, Meta Bots, MojeekBot, PerplexityBot, PetalBot, TurnitinBot, Yeti, YisouSpider
+
+## Version 2.0.0-rc.2
+
+- Fix incorrect import path in ESM files
+- Add new browser: 115, SlimBoat, Slimjet, LibreWolf
+- Improve browser detection: 2345, 360, Dragon, Iron, Maxthon
+- `ua-parser-js/enums` submodule:
+ - Add Chromecast OS variants: Android/Fuchsia/Linux/SmartSpeaker
+- `ua-parser-js/helpers` submodule:
+ - Add new method: `isBot()` to check if the browser is identified as a bot
+
+## Version 2.0.0-rc.1
+
+- Fix Python Request mistakenly identified as Meta Quest
+- Add new browser: Helio
+- Add new device: itel, Nothing, Pico, TCL
+- Add new engine: ArkWeb
+- Add new OS: OpenHarmony, Pico
+- Improve browser detection: Quark
+- Improve device detection: Xiaomi, Amazon Echo Show, Google Chromecast, Samsung Galaxy Watch
+- `ua-parser-js/helpers` submodule:
+ - Add new method:
+ - `getDeviceVendor()` to guess for a device vendor based on its model name
+ - `isElectron()` to check if current window is running inside Electron
+ - `isFromEU()` to check if current window is from an EU (European Union) country
+ - `isStandalonePWA()` to check if current window is a standalone PWA
+ - Rename `isChromiumBased()` to `isChromeFamily()`
+ - Update `isAppleSilicon()` to also checks for WebGL renderer info
+- `ua-parser-js/extensions` submodule:
+ - Restore `Bots` as a compilation of all these browser types: `cli`, `crawler`, `fetcher`, and `library`
## Version 2.0.0-beta.3
- Breaking:
- AR/VR devices moved to new device type: `xr`
- New property in `browser`: `type`
- - In `ua-parser-js/extensions` submodule, `bots` divided into `crawler` / `fetcher`
- New features:
- Parse directly from command line using `npx ua-parser-js`
- Extensions can be passed as a list to `UAParser()`
@@ -29,6 +116,7 @@
- Improve browser detection: DuckDuckGo, ICEBrowser, Klar, QQ, Sleipnir
- Improve device detection: Oculus Quest & Oppo Pad
- Update latest client hints spec: `formFactor` -> `formFactors`
+- In `ua-parser-js/extensions` submodule, `bots` divided into `crawler` / `fetcher`
## Version 2.0.0-beta.2
@@ -64,13 +152,15 @@
- Initial work on new major version
+---
-# Version 0.7 / 1.0
-
-Version 1.0.x is basically the equivalent of version 0.7.x. See [#536](https://github.com/faisalman/ua-parser-js/issues/536) for the reason behind this confusion.
-
-## Version 0.7.37
+## Version 0.7.38 / 1.0.38
+- Fix error on getOS() when userAgentData.platform is undefined
+- Add new browser: Opera GX, Twitter
+- Improve browser detection: DuckDuckGo
+- Improve device detection: OPPO Pad, Oculus Quest
+## Version 0.7.37 / 1.0.37
- Fix misidentified WebView token as device model
- Increase UA_MAX_LENGTH to 500
- Add new browser: Alipay, Klarna, Smart Lenovo Browser, Vivo Browser
@@ -143,6 +233,10 @@ Version 1.0.x is basically the equivalent of version 0.7.x. See [#536](https://g
- Fix trailing comma for ES3 compatibility
- Some code refactor
-# Version 0.8
+## Version 0.7 / 1.0
+
+Version 1.0.x is basically the equivalent of version 0.7.x (mirror/duplicate). See [#536](https://github.com/faisalman/ua-parser-js/issues/536) for the reason behind this confusion.
+
+## Version 0.8
Version 0.8 was created by accident. This version is now deprecated and no longer maintained, please update to version 0.7 / 1.0.
\ No newline at end of file
diff --git a/dist/icons/color/LICENSE.md b/dist/icons/color/LICENSE.md
new file mode 100644
index 0000000..c025cd0
--- /dev/null
+++ b/dist/icons/color/LICENSE.md
@@ -0,0 +1,3 @@
+MIT License
+Copyright (c) Cătălin Mariș
+https://github.com/alrra/browser-logos
\ No newline at end of file
diff --git a/dist/icons/color/browser/android-browser.svg b/dist/icons/color/browser/android-browser.svg
new file mode 100644
index 0000000..92d5927
--- /dev/null
+++ b/dist/icons/color/browser/android-browser.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/dist/icons/color/browser/avant.png b/dist/icons/color/browser/avant.png
new file mode 100644
index 0000000..e0b715d
Binary files /dev/null and b/dist/icons/color/browser/avant.png differ
diff --git a/dist/icons/color/browser/basilisk.png b/dist/icons/color/browser/basilisk.png
new file mode 100644
index 0000000..19a59d6
Binary files /dev/null and b/dist/icons/color/browser/basilisk.png differ
diff --git a/dist/icons/color/browser/basilisk.svg b/dist/icons/color/browser/basilisk.svg
new file mode 100644
index 0000000..64e1f61
--- /dev/null
+++ b/dist/icons/color/browser/basilisk.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/dist/icons/color/browser/brave.png b/dist/icons/color/browser/brave.png
new file mode 100644
index 0000000..06fa477
Binary files /dev/null and b/dist/icons/color/browser/brave.png differ
diff --git a/dist/icons/color/browser/brave.svg b/dist/icons/color/browser/brave.svg
new file mode 100644
index 0000000..fb5ed8b
--- /dev/null
+++ b/dist/icons/color/browser/brave.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/dist/icons/color/browser/chrome.png b/dist/icons/color/browser/chrome.png
new file mode 100644
index 0000000..f251ad8
Binary files /dev/null and b/dist/icons/color/browser/chrome.png differ
diff --git a/dist/icons/color/browser/chrome.svg b/dist/icons/color/browser/chrome.svg
new file mode 100644
index 0000000..dcc3b11
--- /dev/null
+++ b/dist/icons/color/browser/chrome.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/dist/icons/color/browser/chromium.png b/dist/icons/color/browser/chromium.png
new file mode 100644
index 0000000..7a3cb15
Binary files /dev/null and b/dist/icons/color/browser/chromium.png differ
diff --git a/dist/icons/color/browser/chromium.svg b/dist/icons/color/browser/chromium.svg
new file mode 100644
index 0000000..97b24f2
--- /dev/null
+++ b/dist/icons/color/browser/chromium.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/dist/icons/color/browser/coc-coc.png b/dist/icons/color/browser/coc-coc.png
new file mode 100644
index 0000000..f917dbc
Binary files /dev/null and b/dist/icons/color/browser/coc-coc.png differ
diff --git a/dist/icons/color/browser/default.png b/dist/icons/color/browser/default.png
new file mode 100644
index 0000000..61e01e6
Binary files /dev/null and b/dist/icons/color/browser/default.png differ
diff --git a/dist/icons/color/browser/default.svg b/dist/icons/color/browser/default.svg
new file mode 100644
index 0000000..4d9afe0
--- /dev/null
+++ b/dist/icons/color/browser/default.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/dist/icons/color/browser/dolphin.png b/dist/icons/color/browser/dolphin.png
new file mode 100644
index 0000000..d53805f
Binary files /dev/null and b/dist/icons/color/browser/dolphin.png differ
diff --git a/dist/icons/color/browser/edge.png b/dist/icons/color/browser/edge.png
new file mode 100644
index 0000000..931cb1c
Binary files /dev/null and b/dist/icons/color/browser/edge.png differ
diff --git a/dist/icons/color/browser/edge.svg b/dist/icons/color/browser/edge.svg
new file mode 100644
index 0000000..b2afc8e
--- /dev/null
+++ b/dist/icons/color/browser/edge.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/dist/icons/color/browser/electron.png b/dist/icons/color/browser/electron.png
new file mode 100644
index 0000000..e177990
Binary files /dev/null and b/dist/icons/color/browser/electron.png differ
diff --git a/dist/icons/color/browser/electron.svg b/dist/icons/color/browser/electron.svg
new file mode 100644
index 0000000..a766fed
--- /dev/null
+++ b/dist/icons/color/browser/electron.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/dist/icons/color/browser/falkon.png b/dist/icons/color/browser/falkon.png
new file mode 100644
index 0000000..d7fe06d
Binary files /dev/null and b/dist/icons/color/browser/falkon.png differ
diff --git a/dist/icons/color/browser/falkon.svg b/dist/icons/color/browser/falkon.svg
new file mode 100644
index 0000000..0a2e489
--- /dev/null
+++ b/dist/icons/color/browser/falkon.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/dist/icons/color/browser/firefox-reality.png b/dist/icons/color/browser/firefox-reality.png
new file mode 100644
index 0000000..9a901a4
Binary files /dev/null and b/dist/icons/color/browser/firefox-reality.png differ
diff --git a/dist/icons/color/browser/firefox-reality.svg b/dist/icons/color/browser/firefox-reality.svg
new file mode 100644
index 0000000..a157540
--- /dev/null
+++ b/dist/icons/color/browser/firefox-reality.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/dist/icons/color/browser/firefox.png b/dist/icons/color/browser/firefox.png
new file mode 100644
index 0000000..fc71232
Binary files /dev/null and b/dist/icons/color/browser/firefox.png differ
diff --git a/dist/icons/color/browser/firefox.svg b/dist/icons/color/browser/firefox.svg
new file mode 100644
index 0000000..f153ced
--- /dev/null
+++ b/dist/icons/color/browser/firefox.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/dist/icons/color/browser/gsa.svg b/dist/icons/color/browser/gsa.svg
new file mode 100644
index 0000000..05d397a
--- /dev/null
+++ b/dist/icons/color/browser/gsa.svg
@@ -0,0 +1,9 @@
+
+
\ No newline at end of file
diff --git a/dist/icons/color/browser/icecat.png b/dist/icons/color/browser/icecat.png
new file mode 100644
index 0000000..ad1953a
Binary files /dev/null and b/dist/icons/color/browser/icecat.png differ
diff --git a/dist/icons/color/browser/ie.svg b/dist/icons/color/browser/ie.svg
new file mode 100644
index 0000000..4ac80b3
--- /dev/null
+++ b/dist/icons/color/browser/ie.svg
@@ -0,0 +1,6 @@
+
+
\ No newline at end of file
diff --git a/dist/icons/color/browser/konqueror.png b/dist/icons/color/browser/konqueror.png
new file mode 100644
index 0000000..8d28831
Binary files /dev/null and b/dist/icons/color/browser/konqueror.png differ
diff --git a/dist/icons/color/browser/konqueror.svg b/dist/icons/color/browser/konqueror.svg
new file mode 100644
index 0000000..a65c880
--- /dev/null
+++ b/dist/icons/color/browser/konqueror.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/dist/icons/color/browser/maxthon.png b/dist/icons/color/browser/maxthon.png
new file mode 100644
index 0000000..987020e
Binary files /dev/null and b/dist/icons/color/browser/maxthon.png differ
diff --git a/dist/icons/color/browser/midori.png b/dist/icons/color/browser/midori.png
new file mode 100644
index 0000000..681d94f
Binary files /dev/null and b/dist/icons/color/browser/midori.png differ
diff --git a/dist/icons/color/browser/midori.svg b/dist/icons/color/browser/midori.svg
new file mode 100644
index 0000000..66bc085
--- /dev/null
+++ b/dist/icons/color/browser/midori.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/dist/icons/color/browser/netsurf.png b/dist/icons/color/browser/netsurf.png
new file mode 100644
index 0000000..0e0e371
Binary files /dev/null and b/dist/icons/color/browser/netsurf.png differ
diff --git a/dist/icons/color/browser/netsurf.svg b/dist/icons/color/browser/netsurf.svg
new file mode 100644
index 0000000..67aa01b
--- /dev/null
+++ b/dist/icons/color/browser/netsurf.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/dist/icons/color/browser/opera-gx.png b/dist/icons/color/browser/opera-gx.png
new file mode 100644
index 0000000..250cc25
Binary files /dev/null and b/dist/icons/color/browser/opera-gx.png differ
diff --git a/dist/icons/color/browser/opera-gx.svg b/dist/icons/color/browser/opera-gx.svg
new file mode 100644
index 0000000..aeb51a5
--- /dev/null
+++ b/dist/icons/color/browser/opera-gx.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/dist/icons/color/browser/opera-mini.png b/dist/icons/color/browser/opera-mini.png
new file mode 100644
index 0000000..bf22003
Binary files /dev/null and b/dist/icons/color/browser/opera-mini.png differ
diff --git a/dist/icons/color/browser/opera-touch.png b/dist/icons/color/browser/opera-touch.png
new file mode 100644
index 0000000..3beaa36
Binary files /dev/null and b/dist/icons/color/browser/opera-touch.png differ
diff --git a/dist/icons/color/browser/opera.png b/dist/icons/color/browser/opera.png
new file mode 100644
index 0000000..472a152
Binary files /dev/null and b/dist/icons/color/browser/opera.png differ
diff --git a/dist/icons/color/browser/opera.svg b/dist/icons/color/browser/opera.svg
new file mode 100644
index 0000000..6e79822
--- /dev/null
+++ b/dist/icons/color/browser/opera.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/dist/icons/color/browser/palemoon.png b/dist/icons/color/browser/palemoon.png
new file mode 100644
index 0000000..8696c06
Binary files /dev/null and b/dist/icons/color/browser/palemoon.png differ
diff --git a/dist/icons/color/browser/puffin.png b/dist/icons/color/browser/puffin.png
new file mode 100644
index 0000000..f511493
Binary files /dev/null and b/dist/icons/color/browser/puffin.png differ
diff --git a/dist/icons/color/browser/safari.png b/dist/icons/color/browser/safari.png
new file mode 100644
index 0000000..6fe6f54
Binary files /dev/null and b/dist/icons/color/browser/safari.png differ
diff --git a/dist/icons/color/browser/safari.svg b/dist/icons/color/browser/safari.svg
new file mode 100644
index 0000000..214ccc5
--- /dev/null
+++ b/dist/icons/color/browser/safari.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/dist/icons/color/browser/samsung-internet.png b/dist/icons/color/browser/samsung-internet.png
new file mode 100644
index 0000000..543645c
Binary files /dev/null and b/dist/icons/color/browser/samsung-internet.png differ
diff --git a/dist/icons/color/browser/samsung-internet.svg b/dist/icons/color/browser/samsung-internet.svg
new file mode 100644
index 0000000..5b2caa9
--- /dev/null
+++ b/dist/icons/color/browser/samsung-internet.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/dist/icons/color/browser/seamonkey.png b/dist/icons/color/browser/seamonkey.png
new file mode 100644
index 0000000..5592978
Binary files /dev/null and b/dist/icons/color/browser/seamonkey.png differ
diff --git a/dist/icons/color/browser/silk.png b/dist/icons/color/browser/silk.png
new file mode 100644
index 0000000..161e5c4
Binary files /dev/null and b/dist/icons/color/browser/silk.png differ
diff --git a/dist/icons/color/browser/sogou-mobile.png b/dist/icons/color/browser/sogou-mobile.png
new file mode 100644
index 0000000..33bb210
Binary files /dev/null and b/dist/icons/color/browser/sogou-mobile.png differ
diff --git a/dist/icons/color/browser/ucbrowser.png b/dist/icons/color/browser/ucbrowser.png
new file mode 100644
index 0000000..a7f0f97
Binary files /dev/null and b/dist/icons/color/browser/ucbrowser.png differ
diff --git a/dist/icons/color/browser/ucbrowser.svg b/dist/icons/color/browser/ucbrowser.svg
new file mode 100644
index 0000000..cb461fb
--- /dev/null
+++ b/dist/icons/color/browser/ucbrowser.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/dist/icons/color/browser/vivaldi.png b/dist/icons/color/browser/vivaldi.png
new file mode 100644
index 0000000..64f0d32
Binary files /dev/null and b/dist/icons/color/browser/vivaldi.png differ
diff --git a/dist/icons/color/browser/vivaldi.svg b/dist/icons/color/browser/vivaldi.svg
new file mode 100644
index 0000000..2084b97
--- /dev/null
+++ b/dist/icons/color/browser/vivaldi.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/dist/icons/color/browser/webkit.png b/dist/icons/color/browser/webkit.png
new file mode 100644
index 0000000..cbc0f1b
Binary files /dev/null and b/dist/icons/color/browser/webkit.png differ
diff --git a/dist/icons/color/browser/webkit.svg b/dist/icons/color/browser/webkit.svg
new file mode 100644
index 0000000..e1ba7d3
--- /dev/null
+++ b/dist/icons/color/browser/webkit.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/dist/icons/color/browser/yandex.png b/dist/icons/color/browser/yandex.png
new file mode 100644
index 0000000..896456d
Binary files /dev/null and b/dist/icons/color/browser/yandex.png differ
diff --git a/dist/icons/color/os/centos.svg b/dist/icons/color/os/centos.svg
new file mode 100644
index 0000000..2338e18
--- /dev/null
+++ b/dist/icons/color/os/centos.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/dist/icons/mono/LICENSE.md b/dist/icons/mono/LICENSE.md
new file mode 100644
index 0000000..a4c806b
--- /dev/null
+++ b/dist/icons/mono/LICENSE.md
@@ -0,0 +1,3 @@
+CC0-1.0
+https://github.com/simple-icons/simple-icons
+https://github.com/coreui/coreui-icons
\ No newline at end of file
diff --git a/dist/icons/mono/browser/alipay.svg b/dist/icons/mono/browser/alipay.svg
new file mode 100644
index 0000000..30fa27f
--- /dev/null
+++ b/dist/icons/mono/browser/alipay.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/dist/icons/mono/browser/android-browser.svg b/dist/icons/mono/browser/android-browser.svg
new file mode 100644
index 0000000..2482150
--- /dev/null
+++ b/dist/icons/mono/browser/android-browser.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/dist/icons/mono/browser/avast-secure-browser.svg b/dist/icons/mono/browser/avast-secure-browser.svg
new file mode 100644
index 0000000..b77658a
--- /dev/null
+++ b/dist/icons/mono/browser/avast-secure-browser.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/dist/icons/mono/browser/baidu-browser.svg b/dist/icons/mono/browser/baidu-browser.svg
new file mode 100644
index 0000000..f7f0dd1
--- /dev/null
+++ b/dist/icons/mono/browser/baidu-browser.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/dist/icons/mono/browser/brave.svg b/dist/icons/mono/browser/brave.svg
new file mode 100644
index 0000000..fa798a4
--- /dev/null
+++ b/dist/icons/mono/browser/brave.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/dist/icons/mono/browser/chrome-headless.svg b/dist/icons/mono/browser/chrome-headless.svg
new file mode 100644
index 0000000..5fc57d2
--- /dev/null
+++ b/dist/icons/mono/browser/chrome-headless.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/dist/icons/mono/browser/chrome-webview.svg b/dist/icons/mono/browser/chrome-webview.svg
new file mode 100644
index 0000000..38b45e3
--- /dev/null
+++ b/dist/icons/mono/browser/chrome-webview.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/dist/icons/mono/browser/chrome.svg b/dist/icons/mono/browser/chrome.svg
new file mode 100644
index 0000000..3404d6e
--- /dev/null
+++ b/dist/icons/mono/browser/chrome.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/dist/icons/mono/browser/chromium.svg b/dist/icons/mono/browser/chromium.svg
new file mode 100644
index 0000000..9060541
--- /dev/null
+++ b/dist/icons/mono/browser/chromium.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/dist/icons/mono/browser/duckduckgo.svg b/dist/icons/mono/browser/duckduckgo.svg
new file mode 100644
index 0000000..2f466f4
--- /dev/null
+++ b/dist/icons/mono/browser/duckduckgo.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/dist/icons/mono/browser/edge.svg b/dist/icons/mono/browser/edge.svg
new file mode 100644
index 0000000..958a7ed
--- /dev/null
+++ b/dist/icons/mono/browser/edge.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/dist/icons/mono/browser/electron.svg b/dist/icons/mono/browser/electron.svg
new file mode 100644
index 0000000..8e855ab
--- /dev/null
+++ b/dist/icons/mono/browser/electron.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/dist/icons/mono/browser/facebook.svg b/dist/icons/mono/browser/facebook.svg
new file mode 100644
index 0000000..f66767e
--- /dev/null
+++ b/dist/icons/mono/browser/facebook.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/dist/icons/mono/browser/firefox-focus.svg b/dist/icons/mono/browser/firefox-focus.svg
new file mode 100644
index 0000000..009082e
--- /dev/null
+++ b/dist/icons/mono/browser/firefox-focus.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/dist/icons/mono/browser/firefox-reality.svg b/dist/icons/mono/browser/firefox-reality.svg
new file mode 100644
index 0000000..e02dcdf
--- /dev/null
+++ b/dist/icons/mono/browser/firefox-reality.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/dist/icons/mono/browser/firefox.svg b/dist/icons/mono/browser/firefox.svg
new file mode 100644
index 0000000..baace0b
--- /dev/null
+++ b/dist/icons/mono/browser/firefox.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/dist/icons/mono/browser/gsa.svg b/dist/icons/mono/browser/gsa.svg
new file mode 100644
index 0000000..753feb5
--- /dev/null
+++ b/dist/icons/mono/browser/gsa.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/dist/icons/mono/browser/huawei-browser.svg b/dist/icons/mono/browser/huawei-browser.svg
new file mode 100644
index 0000000..200489d
--- /dev/null
+++ b/dist/icons/mono/browser/huawei-browser.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/dist/icons/mono/browser/icecat.svg b/dist/icons/mono/browser/icecat.svg
new file mode 100644
index 0000000..05b0173
--- /dev/null
+++ b/dist/icons/mono/browser/icecat.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/dist/icons/mono/browser/ie.svg b/dist/icons/mono/browser/ie.svg
new file mode 100644
index 0000000..f444f15
--- /dev/null
+++ b/dist/icons/mono/browser/ie.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/dist/icons/mono/browser/instagram.svg b/dist/icons/mono/browser/instagram.svg
new file mode 100644
index 0000000..c0e86b0
--- /dev/null
+++ b/dist/icons/mono/browser/instagram.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/dist/icons/mono/browser/jasmine.svg b/dist/icons/mono/browser/jasmine.svg
new file mode 100644
index 0000000..bda1b3e
--- /dev/null
+++ b/dist/icons/mono/browser/jasmine.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/dist/icons/mono/browser/kakaotalk.svg b/dist/icons/mono/browser/kakaotalk.svg
new file mode 100644
index 0000000..8e9f9b1
--- /dev/null
+++ b/dist/icons/mono/browser/kakaotalk.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/dist/icons/mono/browser/klarna.svg b/dist/icons/mono/browser/klarna.svg
new file mode 100644
index 0000000..c12c2ce
--- /dev/null
+++ b/dist/icons/mono/browser/klarna.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/dist/icons/mono/browser/line.svg b/dist/icons/mono/browser/line.svg
new file mode 100644
index 0000000..9e4dc98
--- /dev/null
+++ b/dist/icons/mono/browser/line.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/dist/icons/mono/browser/linkedin.svg b/dist/icons/mono/browser/linkedin.svg
new file mode 100644
index 0000000..caa6e69
--- /dev/null
+++ b/dist/icons/mono/browser/linkedin.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/dist/icons/mono/browser/miui-browser.svg b/dist/icons/mono/browser/miui-browser.svg
new file mode 100644
index 0000000..a864334
--- /dev/null
+++ b/dist/icons/mono/browser/miui-browser.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/dist/icons/mono/browser/mobile-chrome.svg b/dist/icons/mono/browser/mobile-chrome.svg
new file mode 100644
index 0000000..cc67926
--- /dev/null
+++ b/dist/icons/mono/browser/mobile-chrome.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/dist/icons/mono/browser/mobile-firefox.svg b/dist/icons/mono/browser/mobile-firefox.svg
new file mode 100644
index 0000000..b00ccef
--- /dev/null
+++ b/dist/icons/mono/browser/mobile-firefox.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/dist/icons/mono/browser/mobile-safari.svg b/dist/icons/mono/browser/mobile-safari.svg
new file mode 100644
index 0000000..ac9eab6
--- /dev/null
+++ b/dist/icons/mono/browser/mobile-safari.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/dist/icons/mono/browser/mozilla.svg b/dist/icons/mono/browser/mozilla.svg
new file mode 100644
index 0000000..507eb66
--- /dev/null
+++ b/dist/icons/mono/browser/mozilla.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/dist/icons/mono/browser/naver.svg b/dist/icons/mono/browser/naver.svg
new file mode 100644
index 0000000..611ad4b
--- /dev/null
+++ b/dist/icons/mono/browser/naver.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/dist/icons/mono/browser/nokia-browser.svg b/dist/icons/mono/browser/nokia-browser.svg
new file mode 100644
index 0000000..bf4b85c
--- /dev/null
+++ b/dist/icons/mono/browser/nokia-browser.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/dist/icons/mono/browser/oculus-browser.svg b/dist/icons/mono/browser/oculus-browser.svg
new file mode 100644
index 0000000..a0d272f
--- /dev/null
+++ b/dist/icons/mono/browser/oculus-browser.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/dist/icons/mono/browser/opera-coast.svg b/dist/icons/mono/browser/opera-coast.svg
new file mode 100644
index 0000000..f7c88c1
--- /dev/null
+++ b/dist/icons/mono/browser/opera-coast.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/dist/icons/mono/browser/opera-gx.svg b/dist/icons/mono/browser/opera-gx.svg
new file mode 100644
index 0000000..b560822
--- /dev/null
+++ b/dist/icons/mono/browser/opera-gx.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/dist/icons/mono/browser/opera-mini.svg b/dist/icons/mono/browser/opera-mini.svg
new file mode 100644
index 0000000..1cc6485
--- /dev/null
+++ b/dist/icons/mono/browser/opera-mini.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/dist/icons/mono/browser/opera-mobi.svg b/dist/icons/mono/browser/opera-mobi.svg
new file mode 100644
index 0000000..dfc1026
--- /dev/null
+++ b/dist/icons/mono/browser/opera-mobi.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/dist/icons/mono/browser/opera-tablet.svg b/dist/icons/mono/browser/opera-tablet.svg
new file mode 100644
index 0000000..d47eea2
--- /dev/null
+++ b/dist/icons/mono/browser/opera-tablet.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/dist/icons/mono/browser/opera-touch.svg b/dist/icons/mono/browser/opera-touch.svg
new file mode 100644
index 0000000..50211d4
--- /dev/null
+++ b/dist/icons/mono/browser/opera-touch.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/dist/icons/mono/browser/opera.svg b/dist/icons/mono/browser/opera.svg
new file mode 100644
index 0000000..d1194ee
--- /dev/null
+++ b/dist/icons/mono/browser/opera.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/dist/icons/mono/browser/qqbrowser.svg b/dist/icons/mono/browser/qqbrowser.svg
new file mode 100644
index 0000000..6a94a49
--- /dev/null
+++ b/dist/icons/mono/browser/qqbrowser.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/dist/icons/mono/browser/qqbrowserlite.svg b/dist/icons/mono/browser/qqbrowserlite.svg
new file mode 100644
index 0000000..d4ccef2
--- /dev/null
+++ b/dist/icons/mono/browser/qqbrowserlite.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/dist/icons/mono/browser/safari.svg b/dist/icons/mono/browser/safari.svg
new file mode 100644
index 0000000..5d15438
--- /dev/null
+++ b/dist/icons/mono/browser/safari.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/dist/icons/mono/browser/sailfish-browser.svg b/dist/icons/mono/browser/sailfish-browser.svg
new file mode 100644
index 0000000..0884da1
--- /dev/null
+++ b/dist/icons/mono/browser/sailfish-browser.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/dist/icons/mono/browser/samsung-internet.svg b/dist/icons/mono/browser/samsung-internet.svg
new file mode 100644
index 0000000..15e8952
--- /dev/null
+++ b/dist/icons/mono/browser/samsung-internet.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/dist/icons/mono/browser/smart-lenovo-browser.svg b/dist/icons/mono/browser/smart-lenovo-browser.svg
new file mode 100644
index 0000000..e9be150
--- /dev/null
+++ b/dist/icons/mono/browser/smart-lenovo-browser.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/dist/icons/mono/browser/snapchat.svg b/dist/icons/mono/browser/snapchat.svg
new file mode 100644
index 0000000..3110fba
--- /dev/null
+++ b/dist/icons/mono/browser/snapchat.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/dist/icons/mono/browser/sogou-explorer.svg b/dist/icons/mono/browser/sogou-explorer.svg
new file mode 100644
index 0000000..1449ecb
--- /dev/null
+++ b/dist/icons/mono/browser/sogou-explorer.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/dist/icons/mono/browser/sogou-mobile.svg b/dist/icons/mono/browser/sogou-mobile.svg
new file mode 100644
index 0000000..36165fe
--- /dev/null
+++ b/dist/icons/mono/browser/sogou-mobile.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/dist/icons/mono/browser/tesla.svg b/dist/icons/mono/browser/tesla.svg
new file mode 100644
index 0000000..77e6601
--- /dev/null
+++ b/dist/icons/mono/browser/tesla.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/dist/icons/mono/browser/tiktok.svg b/dist/icons/mono/browser/tiktok.svg
new file mode 100644
index 0000000..57ce3ae
--- /dev/null
+++ b/dist/icons/mono/browser/tiktok.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/dist/icons/mono/browser/twitter.svg b/dist/icons/mono/browser/twitter.svg
new file mode 100644
index 0000000..b4aeefd
--- /dev/null
+++ b/dist/icons/mono/browser/twitter.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/dist/icons/mono/browser/vivaldi.svg b/dist/icons/mono/browser/vivaldi.svg
new file mode 100644
index 0000000..167e8ad
--- /dev/null
+++ b/dist/icons/mono/browser/vivaldi.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/dist/icons/mono/browser/vivo-browser.svg b/dist/icons/mono/browser/vivo-browser.svg
new file mode 100644
index 0000000..db52706
--- /dev/null
+++ b/dist/icons/mono/browser/vivo-browser.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/dist/icons/mono/browser/wechat.svg b/dist/icons/mono/browser/wechat.svg
new file mode 100644
index 0000000..c3eb6c4
--- /dev/null
+++ b/dist/icons/mono/browser/wechat.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/dist/icons/mono/browser/weibo.svg b/dist/icons/mono/browser/weibo.svg
new file mode 100644
index 0000000..1394408
--- /dev/null
+++ b/dist/icons/mono/browser/weibo.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/dist/icons/mono/browser/yandex.svg b/dist/icons/mono/browser/yandex.svg
new file mode 100644
index 0000000..16a76fe
--- /dev/null
+++ b/dist/icons/mono/browser/yandex.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/dist/icons/mono/device/acer.svg b/dist/icons/mono/device/acer.svg
new file mode 100644
index 0000000..ca9b2bb
--- /dev/null
+++ b/dist/icons/mono/device/acer.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/dist/icons/mono/device/amazon.svg b/dist/icons/mono/device/amazon.svg
new file mode 100644
index 0000000..70316ba
--- /dev/null
+++ b/dist/icons/mono/device/amazon.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/dist/icons/mono/device/apple.svg b/dist/icons/mono/device/apple.svg
new file mode 100644
index 0000000..de4b0d1
--- /dev/null
+++ b/dist/icons/mono/device/apple.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/dist/icons/mono/device/asus.svg b/dist/icons/mono/device/asus.svg
new file mode 100644
index 0000000..18ef199
--- /dev/null
+++ b/dist/icons/mono/device/asus.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/dist/icons/mono/device/att.svg b/dist/icons/mono/device/att.svg
new file mode 100644
index 0000000..166ca39
--- /dev/null
+++ b/dist/icons/mono/device/att.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/dist/icons/mono/device/blackberry.svg b/dist/icons/mono/device/blackberry.svg
new file mode 100644
index 0000000..b0c5583
--- /dev/null
+++ b/dist/icons/mono/device/blackberry.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/dist/icons/mono/device/dell.svg b/dist/icons/mono/device/dell.svg
new file mode 100644
index 0000000..d272bbf
--- /dev/null
+++ b/dist/icons/mono/device/dell.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/dist/icons/mono/device/facebook.svg b/dist/icons/mono/device/facebook.svg
new file mode 100644
index 0000000..f66767e
--- /dev/null
+++ b/dist/icons/mono/device/facebook.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/dist/icons/mono/device/fairphone.svg b/dist/icons/mono/device/fairphone.svg
new file mode 100644
index 0000000..3262e30
--- /dev/null
+++ b/dist/icons/mono/device/fairphone.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/dist/icons/mono/device/google.svg b/dist/icons/mono/device/google.svg
new file mode 100644
index 0000000..2eaf915
--- /dev/null
+++ b/dist/icons/mono/device/google.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/dist/icons/mono/device/hp.svg b/dist/icons/mono/device/hp.svg
new file mode 100644
index 0000000..04b5f0e
--- /dev/null
+++ b/dist/icons/mono/device/hp.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/dist/icons/mono/device/huawei.svg b/dist/icons/mono/device/huawei.svg
new file mode 100644
index 0000000..0c72bab
--- /dev/null
+++ b/dist/icons/mono/device/huawei.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/dist/icons/mono/device/lenovo.svg b/dist/icons/mono/device/lenovo.svg
new file mode 100644
index 0000000..c03719a
--- /dev/null
+++ b/dist/icons/mono/device/lenovo.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/dist/icons/mono/device/lg.svg b/dist/icons/mono/device/lg.svg
new file mode 100644
index 0000000..5eedc79
--- /dev/null
+++ b/dist/icons/mono/device/lg.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/dist/icons/mono/device/meizu.svg b/dist/icons/mono/device/meizu.svg
new file mode 100644
index 0000000..8f903f6
--- /dev/null
+++ b/dist/icons/mono/device/meizu.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/dist/icons/mono/device/microsoft.svg b/dist/icons/mono/device/microsoft.svg
new file mode 100644
index 0000000..eeacf25
--- /dev/null
+++ b/dist/icons/mono/device/microsoft.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/dist/icons/mono/device/motorola.svg b/dist/icons/mono/device/motorola.svg
new file mode 100644
index 0000000..3e744bd
--- /dev/null
+++ b/dist/icons/mono/device/motorola.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/dist/icons/mono/device/nintendo.svg b/dist/icons/mono/device/nintendo.svg
new file mode 100644
index 0000000..5cad964
--- /dev/null
+++ b/dist/icons/mono/device/nintendo.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/dist/icons/mono/device/nokia.svg b/dist/icons/mono/device/nokia.svg
new file mode 100644
index 0000000..a4a2113
--- /dev/null
+++ b/dist/icons/mono/device/nokia.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/dist/icons/mono/device/nvidia.svg b/dist/icons/mono/device/nvidia.svg
new file mode 100644
index 0000000..2c7ff66
--- /dev/null
+++ b/dist/icons/mono/device/nvidia.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/dist/icons/mono/device/oneplus.svg b/dist/icons/mono/device/oneplus.svg
new file mode 100644
index 0000000..11c3131
--- /dev/null
+++ b/dist/icons/mono/device/oneplus.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/dist/icons/mono/device/oppo.svg b/dist/icons/mono/device/oppo.svg
new file mode 100644
index 0000000..b886af3
--- /dev/null
+++ b/dist/icons/mono/device/oppo.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/dist/icons/mono/device/panasonic.svg b/dist/icons/mono/device/panasonic.svg
new file mode 100644
index 0000000..e590243
--- /dev/null
+++ b/dist/icons/mono/device/panasonic.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/dist/icons/mono/device/roku.svg b/dist/icons/mono/device/roku.svg
new file mode 100644
index 0000000..17dde5e
--- /dev/null
+++ b/dist/icons/mono/device/roku.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/dist/icons/mono/device/samsung.svg b/dist/icons/mono/device/samsung.svg
new file mode 100644
index 0000000..627cbf2
--- /dev/null
+++ b/dist/icons/mono/device/samsung.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/dist/icons/mono/device/siemens.svg b/dist/icons/mono/device/siemens.svg
new file mode 100644
index 0000000..ec60e7b
--- /dev/null
+++ b/dist/icons/mono/device/siemens.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/dist/icons/mono/device/sony.svg b/dist/icons/mono/device/sony.svg
new file mode 100644
index 0000000..38d17e1
--- /dev/null
+++ b/dist/icons/mono/device/sony.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/dist/icons/mono/device/tesla.svg b/dist/icons/mono/device/tesla.svg
new file mode 100644
index 0000000..77e6601
--- /dev/null
+++ b/dist/icons/mono/device/tesla.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/dist/icons/mono/device/vivo.svg b/dist/icons/mono/device/vivo.svg
new file mode 100644
index 0000000..0591ac4
--- /dev/null
+++ b/dist/icons/mono/device/vivo.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/dist/icons/mono/device/vodafone.svg b/dist/icons/mono/device/vodafone.svg
new file mode 100644
index 0000000..f882e2f
--- /dev/null
+++ b/dist/icons/mono/device/vodafone.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/dist/icons/mono/device/xiaomi.svg b/dist/icons/mono/device/xiaomi.svg
new file mode 100644
index 0000000..f08eae5
--- /dev/null
+++ b/dist/icons/mono/device/xiaomi.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/dist/icons/mono/device/zebra.svg b/dist/icons/mono/device/zebra.svg
new file mode 100644
index 0000000..8282e77
--- /dev/null
+++ b/dist/icons/mono/device/zebra.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/dist/icons/mono/os/android.svg b/dist/icons/mono/os/android.svg
new file mode 100644
index 0000000..3f44ef6
--- /dev/null
+++ b/dist/icons/mono/os/android.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/dist/icons/mono/os/arch.svg b/dist/icons/mono/os/arch.svg
new file mode 100644
index 0000000..a331ef9
--- /dev/null
+++ b/dist/icons/mono/os/arch.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/dist/icons/mono/os/blackberry.svg b/dist/icons/mono/os/blackberry.svg
new file mode 100644
index 0000000..b0c5583
--- /dev/null
+++ b/dist/icons/mono/os/blackberry.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/dist/icons/mono/os/centos.svg b/dist/icons/mono/os/centos.svg
new file mode 100644
index 0000000..3f16a9e
--- /dev/null
+++ b/dist/icons/mono/os/centos.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/dist/icons/mono/os/chrome-os.svg b/dist/icons/mono/os/chrome-os.svg
new file mode 100644
index 0000000..0a28262
--- /dev/null
+++ b/dist/icons/mono/os/chrome-os.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/dist/icons/mono/os/chromecast.svg b/dist/icons/mono/os/chromecast.svg
new file mode 100644
index 0000000..6b251ed
--- /dev/null
+++ b/dist/icons/mono/os/chromecast.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/dist/icons/mono/os/debian.svg b/dist/icons/mono/os/debian.svg
new file mode 100644
index 0000000..c983b32
--- /dev/null
+++ b/dist/icons/mono/os/debian.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/dist/icons/mono/os/deepin.svg b/dist/icons/mono/os/deepin.svg
new file mode 100644
index 0000000..2a5fbca
--- /dev/null
+++ b/dist/icons/mono/os/deepin.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/dist/icons/mono/os/elementary-os.svg b/dist/icons/mono/os/elementary-os.svg
new file mode 100644
index 0000000..2b4c951
--- /dev/null
+++ b/dist/icons/mono/os/elementary-os.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/dist/icons/mono/os/fedora.svg b/dist/icons/mono/os/fedora.svg
new file mode 100644
index 0000000..7f461d0
--- /dev/null
+++ b/dist/icons/mono/os/fedora.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/dist/icons/mono/os/firefox.svg b/dist/icons/mono/os/firefox.svg
new file mode 100644
index 0000000..e7c9fff
--- /dev/null
+++ b/dist/icons/mono/os/firefox.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/dist/icons/mono/os/freebsd.svg b/dist/icons/mono/os/freebsd.svg
new file mode 100644
index 0000000..8febe9d
--- /dev/null
+++ b/dist/icons/mono/os/freebsd.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/dist/icons/mono/os/gentoo.svg b/dist/icons/mono/os/gentoo.svg
new file mode 100644
index 0000000..4c48a02
--- /dev/null
+++ b/dist/icons/mono/os/gentoo.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/dist/icons/mono/os/gnu.svg b/dist/icons/mono/os/gnu.svg
new file mode 100644
index 0000000..f29f4d7
--- /dev/null
+++ b/dist/icons/mono/os/gnu.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/dist/icons/mono/os/harmonyos.svg b/dist/icons/mono/os/harmonyos.svg
new file mode 100644
index 0000000..99b8d7e
--- /dev/null
+++ b/dist/icons/mono/os/harmonyos.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/dist/icons/mono/os/ios.svg b/dist/icons/mono/os/ios.svg
new file mode 100644
index 0000000..a163697
--- /dev/null
+++ b/dist/icons/mono/os/ios.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/dist/icons/mono/os/kaios.svg b/dist/icons/mono/os/kaios.svg
new file mode 100644
index 0000000..27a0ec7
--- /dev/null
+++ b/dist/icons/mono/os/kaios.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/dist/icons/mono/os/linux.svg b/dist/icons/mono/os/linux.svg
new file mode 100644
index 0000000..381d3d8
--- /dev/null
+++ b/dist/icons/mono/os/linux.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/dist/icons/mono/os/macos.svg b/dist/icons/mono/os/macos.svg
new file mode 100644
index 0000000..87630c4
--- /dev/null
+++ b/dist/icons/mono/os/macos.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/dist/icons/mono/os/manjaro.svg b/dist/icons/mono/os/manjaro.svg
new file mode 100644
index 0000000..d99972e
--- /dev/null
+++ b/dist/icons/mono/os/manjaro.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/dist/icons/mono/os/mint.svg b/dist/icons/mono/os/mint.svg
new file mode 100644
index 0000000..442c8b2
--- /dev/null
+++ b/dist/icons/mono/os/mint.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/dist/icons/mono/os/netbsd.svg b/dist/icons/mono/os/netbsd.svg
new file mode 100644
index 0000000..511f066
--- /dev/null
+++ b/dist/icons/mono/os/netbsd.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/dist/icons/mono/os/nintendo.svg b/dist/icons/mono/os/nintendo.svg
new file mode 100644
index 0000000..5cad964
--- /dev/null
+++ b/dist/icons/mono/os/nintendo.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/dist/icons/mono/os/openbsd.svg b/dist/icons/mono/os/openbsd.svg
new file mode 100644
index 0000000..e78fbc7
--- /dev/null
+++ b/dist/icons/mono/os/openbsd.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/dist/icons/mono/os/playstation.svg b/dist/icons/mono/os/playstation.svg
new file mode 100644
index 0000000..be33703
--- /dev/null
+++ b/dist/icons/mono/os/playstation.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/dist/icons/mono/os/raspbian.svg b/dist/icons/mono/os/raspbian.svg
new file mode 100644
index 0000000..de6feed
--- /dev/null
+++ b/dist/icons/mono/os/raspbian.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/dist/icons/mono/os/redhat.svg b/dist/icons/mono/os/redhat.svg
new file mode 100644
index 0000000..b68e413
--- /dev/null
+++ b/dist/icons/mono/os/redhat.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/dist/icons/mono/os/sailfish.svg b/dist/icons/mono/os/sailfish.svg
new file mode 100644
index 0000000..b695e10
--- /dev/null
+++ b/dist/icons/mono/os/sailfish.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/dist/icons/mono/os/slackware.svg b/dist/icons/mono/os/slackware.svg
new file mode 100644
index 0000000..611bf80
--- /dev/null
+++ b/dist/icons/mono/os/slackware.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/dist/icons/mono/os/suse.svg b/dist/icons/mono/os/suse.svg
new file mode 100644
index 0000000..a4e474a
--- /dev/null
+++ b/dist/icons/mono/os/suse.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/dist/icons/mono/os/ubuntu.svg b/dist/icons/mono/os/ubuntu.svg
new file mode 100644
index 0000000..227f86a
--- /dev/null
+++ b/dist/icons/mono/os/ubuntu.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/dist/icons/mono/os/windows.svg b/dist/icons/mono/os/windows.svg
new file mode 100644
index 0000000..9c79dff
--- /dev/null
+++ b/dist/icons/mono/os/windows.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/dist/icons/mono/os/xbox.svg b/dist/icons/mono/os/xbox.svg
new file mode 100644
index 0000000..85a9689
--- /dev/null
+++ b/dist/icons/mono/os/xbox.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/dist/ua-parser.min.js b/dist/ua-parser.min.js
index c4f6d6a..a1eadda 100644
--- a/dist/ua-parser.min.js
+++ b/dist/ua-parser.min.js
@@ -1,4 +1,4 @@
-/* UAParser.js v2.0.0-beta.3
+/* UAParser.js v2.0.0-rc.3
Copyright © 2012-2024 Faisal Salman
UAParser.js PRO Personal License */
-(function(window,undefined){"use strict";var LIBVERSION="2.0.0-beta.3",EMPTY="",UNKNOWN="?",FUNC_TYPE="function",UNDEF_TYPE="undefined",OBJ_TYPE="object",STR_TYPE="string",MAJOR="major",MODEL="model",NAME="name",TYPE="type",VENDOR="vendor",VERSION="version",ARCHITECTURE="architecture",CONSOLE="console",MOBILE="mobile",TABLET="tablet",SMARTTV="smarttv",WEARABLE="wearable",XR="xr",EMBEDDED="embedded",USER_AGENT="user-agent",UA_MAX_LENGTH=500,BRANDS="brands",FORMFACTORS="formFactors",FULLVERLIST="fullVersionList",PLATFORM="platform",PLATFORMVER="platformVersion",BITNESS="bitness",CH_HEADER="sec-ch-ua",CH_HEADER_FULL_VER_LIST=CH_HEADER+"-full-version-list",CH_HEADER_ARCH=CH_HEADER+"-arch",CH_HEADER_BITNESS=CH_HEADER+"-"+BITNESS,CH_HEADER_FORM_FACTORS=CH_HEADER+"-form-factors",CH_HEADER_MOBILE=CH_HEADER+"-"+MOBILE,CH_HEADER_MODEL=CH_HEADER+"-"+MODEL,CH_HEADER_PLATFORM=CH_HEADER+"-"+PLATFORM,CH_HEADER_PLATFORM_VER=CH_HEADER_PLATFORM+"-version",CH_ALL_VALUES=[BRANDS,FULLVERLIST,MOBILE,MODEL,PLATFORM,PLATFORMVER,ARCHITECTURE,FORMFACTORS,BITNESS],UA_BROWSER="browser",UA_CPU="cpu",UA_DEVICE="device",UA_ENGINE="engine",UA_OS="os",UA_RESULT="result",AMAZON="Amazon",APPLE="Apple",ASUS="ASUS",BLACKBERRY="BlackBerry",GOOGLE="Google",HUAWEI="Huawei",LENOVO="Lenovo",LG="LG",MICROSOFT="Microsoft",MOTOROLA="Motorola",SAMSUNG="Samsung",SHARP="Sharp",SONY="Sony",XIAOMI="Xiaomi",ZEBRA="Zebra",PREFIX_MOBILE="Mobile ",SUFFIX_BROWSER=" Browser",CHROME="Chrome",EDGE="Edge",FIREFOX="Firefox",OPERA="Opera",FACEBOOK="Facebook",SOGOU="Sogou",WINDOWS="Windows";var isWindow=typeof window!==UNDEF_TYPE,NAVIGATOR=isWindow&&window.navigator?window.navigator:undefined,NAVIGATOR_UADATA=NAVIGATOR&&NAVIGATOR.userAgentData?NAVIGATOR.userAgentData:undefined;var extend=function(defaultRgx,extensions){var mergedRgx={};var extraRgx=extensions;if(!isExtensions(extensions)){extraRgx={};for(var i in extensions){for(var j in extensions[i]){extraRgx[j]=extensions[i][j].concat(extraRgx[j]?extraRgx[j]:[])}}}for(var k in defaultRgx){mergedRgx[k]=extraRgx[k]&&extraRgx[k].length%2===0?extraRgx[k].concat(defaultRgx[k]):defaultRgx[k]}return mergedRgx},enumerize=function(arr){var enums={};for(var i=0;i0){for(var i in str1){if(lowerize(str1[i])==lowerize(str2))return true}return false}return isString(str1)?lowerize(str2).indexOf(lowerize(str1))!==-1:false},isExtensions=function(obj,deep){for(var prop in obj){return/^(browser|cpu|device|engine|os)$/.test(prop)||(deep?isExtensions(obj[prop]):false)}},isString=function(val){return typeof val===STR_TYPE},itemListToArray=function(header){if(!header)return undefined;var arr=[];var tokens=strip(/\\?\"/g,header).split(",");for(var i=0;i-1){var token=trim(tokens[i]).split(";v=");arr[i]={brand:token[0],version:token[1]}}else{arr[i]=trim(tokens[i])}}return arr},lowerize=function(str){return isString(str)?str.toLowerCase():str},majorize=function(version){return isString(version)?strip(/[^\d\.]/g,version).split(".")[0]:undefined},setProps=function(arr){for(var i in arr){var propName=arr[i];if(typeof propName==OBJ_TYPE&&propName.length==2){this[propName[0]]=propName[1]}else{this[propName]=undefined}}return this},strip=function(pattern,str){return isString(str)?str.replace(pattern,EMPTY):str},stripQuotes=function(str){return strip(/\\?\"/g,str)},trim=function(str,len){if(isString(str)){str=strip(/^\s\s*/,str);return typeof len===UNDEF_TYPE?str:str.substring(0,UA_MAX_LENGTH)}};var rgxMapper=function(ua,arrays){if(!ua||!arrays)return;var i=0,j,k,p,q,matches,match;while(i0){if(q.length===2){if(typeof q[1]==FUNC_TYPE){this[q[0]]=q[1].call(this,match)}else{this[q[0]]=q[1]}}else if(q.length===3){if(typeof q[1]===FUNC_TYPE&&!(q[1].exec&&q[1].test)){this[q[0]]=match?q[1].call(this,match,q[2]):undefined}else{this[q[0]]=match?match.replace(q[1],q[2]):undefined}}else if(q.length===4){this[q[0]]=match?q[3].call(this,match.replace(q[1],q[2])):undefined}}else{this[q]=match?match:undefined}}}}i+=2}},strMapper=function(str,map){for(var i in map){if(typeof map[i]===OBJ_TYPE&&map[i].length>0){for(var j=0;j