summaryrefslogtreecommitdiff
path: root/api-docs
diff options
context:
space:
mode:
authorJordan Wiens <github@psifertex.com>2025-10-28 18:39:11 -0400
committerJordan <github@psifertex.com>2025-11-06 10:32:46 -0500
commit5ed12c4574ea5c3cb82aa6c7f77e3003d49442b2 (patch)
treea728fcfb04498c39dfc3b768799cc87666c5b292 /api-docs
parent5a6b4fcc110effbb3e87c85d3d22876697b5b9e9 (diff)
simplify CSS, light/dark switch on auto, fix RST tables to be html
Diffstat (limited to 'api-docs')
-rw-r--r--api-docs/cppdocs/Doxyfile-HTML20
-rw-r--r--api-docs/cppdocs/binaryninja-darkmode.js100
-rw-r--r--api-docs/cppdocs/binaryninja-docs.css1232
-rw-r--r--api-docs/cppdocs/custom.css200
-rw-r--r--api-docs/cppdocs/doxygen-awesome-css/LICENSE21
-rw-r--r--api-docs/cppdocs/doxygen-awesome-css/README.md4
-rw-r--r--api-docs/cppdocs/doxygen-awesome-css/doxygen-awesome-darkmode-toggle.js138
-rw-r--r--api-docs/cppdocs/doxygen-awesome-css/doxygen-awesome-fragment-copy-button.js66
-rw-r--r--api-docs/cppdocs/doxygen-awesome-css/doxygen-awesome-paragraph-link.js32
-rw-r--r--api-docs/cppdocs/doxygen-awesome-css/doxygen-awesome-sidebar-only-darkmode-toggle.css20
-rw-r--r--api-docs/cppdocs/doxygen-awesome-css/doxygen-awesome-sidebar-only.css105
-rw-r--r--api-docs/cppdocs/doxygen-awesome-css/doxygen-awesome.css3020
-rw-r--r--api-docs/cppdocs/header.html38
13 files changed, 1363 insertions, 3633 deletions
diff --git a/api-docs/cppdocs/Doxyfile-HTML b/api-docs/cppdocs/Doxyfile-HTML
index e54da627..69cdb814 100644
--- a/api-docs/cppdocs/Doxyfile-HTML
+++ b/api-docs/cppdocs/Doxyfile-HTML
@@ -334,7 +334,7 @@ MARKDOWN_SUPPORT = NO
# Minimum value: 0, maximum value: 99, default value: 5.
# This tag requires that the tag MARKDOWN_SUPPORT is set to YES.
-TOC_INCLUDE_HEADINGS = 5
+TOC_INCLUDE_HEADINGS = 0
# When enabled doxygen tries to link words that correspond to documented
# classes, or namespaces to their corresponding documentation. Such a link can
@@ -1053,7 +1053,7 @@ REFERENCES_LINK_SOURCE = NO
# The default value is: YES.
# This tag requires that the tag SOURCE_BROWSER is set to YES.
-SOURCE_TOOLTIPS = YES
+SOURCE_TOOLTIPS = NO
# If the USE_HTAGS tag is set to YES then the references to source code will
# point to the HTML generated by the htags(1) tool instead of doxygen built-in
@@ -1175,7 +1175,7 @@ HTML_FOOTER = footer.html
# obsolete.
# This tag requires that the tag GENERATE_HTML is set to YES.
-HTML_STYLESHEET =
+HTML_STYLESHEET = binaryninja-docs.css
# The HTML_EXTRA_STYLESHEET tag can be used to specify additional user-defined
# cascading style sheets that are included after the standard style sheets
@@ -1188,10 +1188,7 @@ HTML_STYLESHEET =
# list). For an example see the documentation.
# This tag requires that the tag GENERATE_HTML is set to YES.
-HTML_EXTRA_STYLESHEET = doxygen-awesome-css/doxygen-awesome.css \
- doxygen-awesome-css/doxygen-awesome-sidebar-only.css \
- doxygen-awesome-css/doxygen-awesome-sidebar-only-darkmode-toggle.css \
- custom.css
+HTML_EXTRA_STYLESHEET =
# The HTML_EXTRA_FILES tag can be used to specify one or more extra images or
# other source files which should be copied to the HTML output directory. Note
@@ -1201,7 +1198,7 @@ HTML_EXTRA_STYLESHEET = doxygen-awesome-css/doxygen-awesome.css \
# files will be copied as-is; there are no commands or markers available.
# This tag requires that the tag GENERATE_HTML is set to YES.
-HTML_EXTRA_FILES = doxygen-awesome-css/doxygen-awesome-darkmode-toggle.js
+HTML_EXTRA_FILES = binaryninja-darkmode.js
# The HTML_COLORSTYLE_HUE tag controls the color of the HTML output. Doxygen
# will adjust the colors in the style sheet and background images according to
@@ -1251,7 +1248,7 @@ HTML_TIMESTAMP = NO
# The default value is: YES.
# This tag requires that the tag GENERATE_HTML is set to YES.
-HTML_DYNAMIC_MENUS = NO
+HTML_DYNAMIC_MENUS = YES
# If the HTML_DYNAMIC_SECTIONS tag is set to YES then the generated HTML
# documentation will contain sections that can be hidden and shown after the
@@ -1259,7 +1256,7 @@ HTML_DYNAMIC_MENUS = NO
# The default value is: NO.
# This tag requires that the tag GENERATE_HTML is set to YES.
-HTML_DYNAMIC_SECTIONS = NO
+HTML_DYNAMIC_SECTIONS = YES
# With HTML_INDEX_NUM_ENTRIES one can control the preferred number of entries
# shown in the various tree structured indices initially; the user can expand
@@ -1490,6 +1487,9 @@ DISABLE_INDEX = YES
GENERATE_TREEVIEW = YES
+# Disable the page outline panel on the right side
+PAGE_OUTLINE_PANEL = NO
+
# The ENUM_VALUES_PER_LINE tag can be used to set the number of enum values that
# doxygen will group on one line in the generated HTML documentation.
#
diff --git a/api-docs/cppdocs/binaryninja-darkmode.js b/api-docs/cppdocs/binaryninja-darkmode.js
new file mode 100644
index 00000000..aed1b8dd
--- /dev/null
+++ b/api-docs/cppdocs/binaryninja-darkmode.js
@@ -0,0 +1,100 @@
+/**
+ * Binary Ninja Dark Mode - System Preference with Cookie Persistence
+ * Follows system color scheme automatically via CSS
+ * Provides console toggle for testing with cookie-based persistence
+ */
+
+(function() {
+ 'use strict';
+
+ const COOKIE_NAME = 'bn-docs-theme';
+ const COOKIE_DAYS = 365;
+
+ /**
+ * Get cookie value by name
+ */
+ function getCookie(name) {
+ const value = `; ${document.cookie}`;
+ const parts = value.split(`; ${name}=`);
+ if (parts.length === 2) return parts.pop().split(';').shift();
+ return null;
+ }
+
+ /**
+ * Set cookie value
+ */
+ function setCookie(name, value, days) {
+ const date = new Date();
+ date.setTime(date.getTime() + (days * 24 * 60 * 60 * 1000));
+ const expires = `expires=${date.toUTCString()}`;
+ document.cookie = `${name}=${value};${expires};path=/`;
+ }
+
+ /**
+ * Delete cookie
+ */
+ function deleteCookie(name) {
+ document.cookie = `${name}=;expires=Thu, 01 Jan 1970 00:00:00 UTC;path=/`;
+ }
+
+ /**
+ * Apply theme mode
+ */
+ function applyTheme(mode) {
+ const html = document.documentElement;
+
+ if (mode === 'dark') {
+ html.classList.remove('light-mode');
+ html.classList.add('dark-mode');
+ } else if (mode === 'light') {
+ html.classList.remove('dark-mode');
+ html.classList.add('light-mode');
+ } else {
+ // Auto mode - remove both classes to follow system preference
+ html.classList.remove('dark-mode');
+ html.classList.remove('light-mode');
+ }
+ }
+
+ /**
+ * Console-accessible toggle function with cookie persistence
+ * Usage: bnToggleDarkMode('dark'), bnToggleDarkMode('light'), or bnToggleDarkMode('auto')
+ */
+ window.bnToggleDarkMode = function(mode) {
+ if (mode === 'dark') {
+ applyTheme('dark');
+ setCookie(COOKIE_NAME, 'dark', COOKIE_DAYS);
+ console.log('Dark mode: FORCED ON (saved to cookie, will persist across reloads)');
+ } else if (mode === 'light') {
+ applyTheme('light');
+ setCookie(COOKIE_NAME, 'light', COOKIE_DAYS);
+ console.log('Dark mode: FORCED OFF (saved to cookie, will persist across reloads)');
+ } else if (mode === 'auto') {
+ applyTheme('auto');
+ deleteCookie(COOKIE_NAME);
+ console.log('Dark mode: AUTO (following system preference, cookie cleared)');
+ } else {
+ console.log('Usage: bnToggleDarkMode("dark"), bnToggleDarkMode("light"), or bnToggleDarkMode("auto")');
+ console.log('Current setting:', getCookie(COOKIE_NAME) || 'auto (system preference)');
+ }
+ };
+
+ /**
+ * Initialize theme on page load
+ */
+ function init() {
+ const savedTheme = getCookie(COOKIE_NAME);
+
+ if (savedTheme) {
+ applyTheme(savedTheme);
+ console.log(`Binary Ninja Docs: Theme loaded from cookie: ${savedTheme}`);
+ } else {
+ console.log('Binary Ninja Docs: Following system preference (no cookie set)');
+ }
+
+ console.log('Use bnToggleDarkMode("dark"), bnToggleDarkMode("light"), or bnToggleDarkMode("auto") to change theme');
+ }
+
+ // Initialize on page load
+ init();
+})();
diff --git a/api-docs/cppdocs/binaryninja-docs.css b/api-docs/cppdocs/binaryninja-docs.css
new file mode 100644
index 00000000..5079b072
--- /dev/null
+++ b/api-docs/cppdocs/binaryninja-docs.css
@@ -0,0 +1,1232 @@
+/* Binary Ninja C++ API Documentation Styles
+ * Clean CSS implementation replacing Doxygen defaults
+ * No !important declarations needed
+ */
+
+/* ============================================================================
+ * CSS VARIABLES - LIGHT MODE (Base)
+ * ============================================================================ */
+:root {
+ /* Binary Ninja Brand Colors */
+ --bn-red: #c74433;
+ --bn-red-dark: #d0584d;
+ --bn-red-light: #a2382a;
+
+ /* Page Structure */
+ --page-bg: #ffffff;
+ --page-text: #2f4153;
+ --page-text-secondary: #6f7e8e;
+ --border-color: #dedede;
+
+ /* Sidebar */
+ --sidebar-bg: #fbfbfb;
+ --sidebar-text: #2f4153;
+
+ /* Code/Fragments */
+ --code-bg: #f5f5f5;
+ --code-text: #2f4153;
+ --fragment-bg: #F8F9FA;
+ --fragment-text: #37474F;
+ --fragment-border: #e3e5e7;
+
+ /* Syntax Highlighting (Light) */
+ --syntax-keyword: #bb6bb2;
+ --syntax-type: #8258b3;
+ --syntax-flow: #d67c3b;
+ --syntax-string: #438a59;
+ --syntax-comment: #969696;
+ --syntax-preprocessor: #46aaa5;
+ --syntax-link: #5383d6;
+
+ /* Tables */
+ --table-header-bg: #f1f1f1;
+ --table-row-odd: #ffffff;
+ --table-row-even: #f7f7f7;
+
+ /* Content Boxes */
+ --warning-bg: #faf3d8;
+ --warning-border: #f3a600;
+ --note-bg: #e4f3ff;
+ --note-border: #1879C4;
+ --deprecated-bg: #ecf0f3;
+ --deprecated-border: #5b6269;
+ --bug-bg: #f8d1cc;
+ --bug-border: #b61825;
+ --todo-bg: #e4dafd;
+ --todo-border: #5b2bdd;
+
+ /* Typography */
+ --font-family: -apple-system, BlinkMacSystemFont, Segoe UI, Roboto, Oxygen, Ubuntu, Cantarell, Fira Sans, Droid Sans, Helvetica Neue, sans-serif;
+ --font-family-monospace: ui-monospace, SFMono-Regular, SF Mono, Menlo, Consolas, Liberation Mono, monospace;
+ --font-size-base: 15.6px;
+ --font-size-code: 14px;
+ --font-size-nav: 14.4px;
+ --font-size-title: 22px;
+ --line-height-content: 27px;
+
+ /* Layout */
+ --sidebar-width: 335px;
+ --top-height: 120px;
+ --content-maxwidth: 1050px;
+ --spacing-small: 5px;
+ --spacing-medium: 10px;
+ --spacing-large: 16px;
+ --spacing-xlarge: 20px;
+ --border-radius-small: 5px;
+ --border-radius-medium: 8px;
+ --border-radius-large: 10px;
+ --searchbar-height: 33px;
+ --searchbar-border-radius: 33px;
+ --tree-item-height: 30px;
+}
+
+/* ============================================================================
+ * CSS VARIABLES - DARK MODE
+ * ============================================================================ */
+html.dark-mode {
+ color-scheme: dark;
+
+ /* Brand Colors (same) */
+ --bn-red: #c74433;
+ --bn-red-dark: #d0584d;
+ --bn-red-light: #a2382a;
+
+ /* Page Structure */
+ --page-bg: #1C1D1F;
+ --page-text: #d2dbde;
+ --page-text-secondary: #859399;
+ --border-color: #38393b;
+
+ /* Sidebar */
+ --sidebar-bg: #252628;
+ --sidebar-text: #d2dbde;
+
+ /* Code/Fragments */
+ --code-bg: #2a2c2f;
+ --code-text: #d2dbde;
+ --fragment-bg: #282c34;
+ --fragment-text: #dbe4eb;
+ --fragment-border: #1f1f1f;
+
+ /* Syntax Highlighting (Dark) */
+ --syntax-keyword: #cc99cd;
+ --syntax-type: #ab99cd;
+ --syntax-flow: #e08000;
+ --syntax-string: #7ec699;
+ --syntax-comment: #999999;
+ --syntax-preprocessor: #65cabe;
+ --syntax-link: #98c0e3;
+
+ /* Tables */
+ --table-header-bg: #2a2c2f;
+ --table-row-odd: #1C1D1F;
+ --table-row-even: #252628;
+
+ /* Content Boxes */
+ --warning-bg: #3b2e04;
+ --warning-border: #f1b602;
+ --note-bg: #163750;
+ --note-border: #1982D2;
+ --deprecated-bg: #2e323b;
+ --deprecated-border: #738396;
+ --bug-bg: #2e1917;
+ --bug-border: #ad2617;
+ --todo-bg: #2a2536;
+ --todo-border: #7661b3;
+}
+
+/* Respect system color preference */
+@media (prefers-color-scheme: dark) {
+ html:not(.light-mode) {
+ color-scheme: dark;
+
+ --bn-red: #c74433;
+ --bn-red-dark: #d0584d;
+ --bn-red-light: #a2382a;
+
+ --page-bg: #1C1D1F;
+ --page-text: #d2dbde;
+ --page-text-secondary: #859399;
+ --border-color: #38393b;
+
+ --sidebar-bg: #252628;
+ --sidebar-text: #d2dbde;
+
+ --code-bg: #2a2c2f;
+ --code-text: #d2dbde;
+ --fragment-bg: #282c34;
+ --fragment-text: #dbe4eb;
+ --fragment-border: #1f1f1f;
+
+ --syntax-keyword: #cc99cd;
+ --syntax-type: #ab99cd;
+ --syntax-flow: #e08000;
+ --syntax-string: #7ec699;
+ --syntax-comment: #999999;
+ --syntax-preprocessor: #65cabe;
+ --syntax-link: #98c0e3;
+
+ --table-header-bg: #2a2c2f;
+ --table-row-odd: #1C1D1F;
+ --table-row-even: #252628;
+
+ --warning-bg: #3b2e04;
+ --warning-border: #f1b602;
+ --note-bg: #163750;
+ --note-border: #1982D2;
+ --deprecated-bg: #2e323b;
+ --deprecated-border: #738396;
+ --bug-bg: #2e1917;
+ --bug-border: #ad2617;
+ --todo-bg: #2a2536;
+ --todo-border: #7661b3;
+ }
+}
+
+/* ============================================================================
+ * BASE STYLES
+ * ============================================================================ */
+* {
+ box-sizing: border-box;
+}
+
+html {
+ font-size: var(--font-size-base);
+}
+
+body {
+ margin: 0;
+ padding: 0;
+ font-family: var(--font-family);
+ font-size: var(--font-size-base);
+ line-height: 1.6;
+ color: var(--page-text);
+ background-color: var(--page-bg);
+}
+
+/* ============================================================================
+ * TYPOGRAPHY
+ * ============================================================================ */
+h1, h2, h3, h4, h5, h6 {
+ margin: 1em 0 0.5em 0;
+ font-weight: 600;
+ line-height: 1.3;
+ color: var(--page-text);
+}
+
+h1 { font-size: 2em; }
+h2 { font-size: 1.5em; }
+h3 { font-size: 1.25em; }
+h4 { font-size: 1.1em; }
+h5, h6 { font-size: 1em; }
+
+p, div, table, dl {
+ font-size: var(--font-size-base);
+ line-height: var(--line-height-content);
+}
+
+a {
+ color: var(--bn-red);
+ text-decoration: none;
+ font-weight: 500;
+}
+
+a:hover {
+ text-decoration: underline;
+}
+
+code, tt {
+ font-family: var(--font-family-monospace);
+ font-size: var(--font-size-code);
+ background-color: var(--code-bg);
+ color: var(--code-text);
+ padding: 2px 6px;
+ border-radius: var(--border-radius-small);
+ word-wrap: break-word;
+ overflow-wrap: break-word;
+}
+
+/* ============================================================================
+ * HEADER AND TOP NAVIGATION
+ * ============================================================================ */
+#top {
+ background: var(--sidebar-bg);
+ border-bottom: 1px solid var(--border-color);
+ position: relative;
+ z-index: 99;
+ height: var(--top-height);
+ max-width: var(--sidebar-width);
+ overflow: hidden;
+}
+
+#titlearea {
+ width: auto;
+ padding: var(--spacing-medium) var(--spacing-large);
+ background: var(--sidebar-bg);
+ color: var(--page-text);
+ border-bottom: none;
+ position: relative;
+}
+
+#titlearea table {
+ background: transparent;
+}
+
+#titlearea table tbody tr {
+ height: auto;
+ background: transparent;
+}
+
+#titlearea table tbody tr td {
+ background: transparent;
+}
+
+#projectalign {
+ padding-left: var(--spacing-medium);
+}
+
+#projectname {
+ font-size: var(--font-size-title);
+ font-weight: 600;
+ white-space: nowrap;
+}
+
+#projectname a {
+ color: var(--page-text);
+}
+
+#projectnumber {
+ font-family: inherit;
+ font-size: 60%;
+ color: var(--page-text-secondary);
+}
+
+#projectlogo img {
+ max-height: calc(var(--font-size-title) * 2);
+}
+
+tr#projectrow {
+ margin-top: 7px;
+ display: block;
+}
+
+/* ============================================================================
+ * SIDEBAR LAYOUT (Desktop)
+ * ============================================================================ */
+#side-nav {
+ min-width: var(--sidebar-width);
+ max-width: var(--sidebar-width);
+ top: var(--top-height);
+ position: fixed;
+ left: 0;
+ bottom: 0;
+ overflow: visible;
+ background: var(--sidebar-bg);
+}
+
+#nav-tree, #side-nav {
+ height: calc(100vh - var(--top-height));
+}
+
+#top {
+ position: fixed;
+ left: 0;
+ top: 0;
+ width: var(--sidebar-width);
+ border-bottom: none;
+ margin-bottom: calc(0px - var(--top-height));
+ background: var(--sidebar-bg);
+}
+
+#main-nav {
+ float: left;
+ padding-right: 0;
+}
+
+.ui-resizable-handle {
+ display: none;
+}
+
+.ui-resizable-e {
+ width: 0;
+}
+
+#nav-path {
+ position: fixed;
+ right: 0;
+ left: calc(var(--sidebar-width) + 1px);
+ bottom: 0;
+ width: auto;
+ background: var(--page-bg);
+ border-top: 1px solid var(--border-color);
+}
+
+#container {
+ min-height: 100vh;
+ background-color: var(--page-bg);
+}
+
+#doc-content {
+ min-height: calc(100vh - 31px);
+ padding-bottom: calc(3 * var(--spacing-large));
+ padding-top: calc(var(--top-height) - 80px);
+ padding-left: var(--spacing-large);
+ padding-right: var(--spacing-large);
+ box-sizing: border-box;
+ background-color: var(--page-bg);
+}
+
+#MSearchBox {
+ width: calc(var(--sidebar-width) - calc(2 * var(--spacing-medium)) - 1px);
+}
+
+#MSearchField {
+ width: calc(var(--sidebar-width) - calc(2 * var(--spacing-medium)) - 66px);
+ padding-left: 10px;
+ top: -1px;
+}
+
+#MSearchResultsWindow {
+ left: var(--spacing-medium);
+ right: auto;
+}
+
+#nav-sync {
+ display: none;
+}
+
+#splitbar {
+ display: none;
+}
+
+/* ============================================================================
+ * RESPONSIVE (Tablet and Mobile)
+ * ============================================================================ */
+
+/* Tablet: Hide sidebar, adjust margins */
+@media screen and (max-width: 1024px) {
+ #side-nav {
+ display: none;
+ }
+
+ #top {
+ position: relative;
+ width: 100%;
+ max-width: none;
+ border-right: none;
+ }
+
+ #container {
+ margin-left: 0;
+ min-height: 100vh;
+ }
+
+ #doc-content {
+ margin-left: 0;
+ padding-top: var(--spacing-large);
+ min-height: calc(100vh - var(--spacing-large));
+ }
+
+ #nav-path {
+ position: relative;
+ left: 0;
+ right: 0;
+ width: 100%;
+ }
+}
+
+/* Mobile: Compact layout */
+@media screen and (max-width: 767px) {
+ #top {
+ height: 125px;
+ }
+
+ #doc-content {
+ padding-top: 125px;
+ padding-left: var(--spacing-medium);
+ padding-right: var(--spacing-medium);
+ }
+
+ div.contents {
+ padding: 0 var(--spacing-small);
+ }
+
+ #MSearchBox {
+ top: -16px;
+ }
+}
+
+/* Small mobile: Even more compact */
+@media screen and (max-width: 480px) {
+ #titlearea {
+ padding: var(--spacing-small);
+ }
+
+ div.contents {
+ padding: 0;
+ }
+
+ #doc-content {
+ padding-left: var(--spacing-small);
+ padding-right: var(--spacing-small);
+ }
+}
+
+/* ============================================================================
+ * SEARCH BAR
+ * ============================================================================ */
+#titlearea #projectalign + td {
+ position: absolute;
+ left: 20px;
+ top: 80px;
+}
+
+#MSearchBox {
+ height: var(--searchbar-height);
+ background: var(--sidebar-bg);
+ border-radius: var(--searchbar-border-radius);
+ border: 1px solid var(--border-color);
+ overflow: hidden;
+ position: relative;
+ box-shadow: none;
+ display: block;
+ margin-top: 0;
+}
+
+#MSearchBox.MSearchBoxActive {
+ border-color: var(--bn-red);
+ box-shadow: inset 0 0 0 1px var(--bn-red);
+}
+
+#MSearchBox span.left {
+ left: 5px;
+ top: 1px;
+ background: none;
+ background-image: none;
+}
+
+#MSearchBox span.right {
+ padding-top: calc(calc(var(--searchbar-height) / 2) - 12px);
+ position: absolute;
+ right: var(--spacing-small);
+ background: none;
+ background-image: none;
+}
+
+#MSearchField {
+ font-size: var(--font-size-nav);
+ font-family: var(--font-family);
+ height: calc(var(--searchbar-height) - 2px);
+ background: transparent;
+ border: none;
+ color: var(--page-text);
+}
+
+.MSearchBoxActive #MSearchField {
+ color: var(--page-text);
+}
+
+#MSearchSelect {
+ top: calc(calc(var(--searchbar-height) / 2) - 11px);
+ background-repeat: no-repeat;
+}
+
+#MSearchSelectWindow, #MSearchResultsWindow {
+ z-index: 9999;
+ background-color: var(--page-bg);
+ border: 1px solid var(--border-color);
+}
+
+/* ============================================================================
+ * NAVIGATION TREE
+ * ============================================================================ */
+#side-nav {
+ background-color: var(--sidebar-bg);
+}
+
+#nav-tree {
+ background-color: var(--sidebar-bg);
+ overflow-x: auto;
+ overflow-y: auto;
+}
+
+#nav-tree .label {
+ font-size: var(--font-size-nav);
+ color: var(--sidebar-text);
+}
+
+#nav-tree a {
+ color: var(--sidebar-text);
+ text-decoration: none;
+}
+
+#nav-tree a:hover {
+ text-decoration: underline;
+}
+
+#nav-tree .arrow {
+ opacity: 0.6;
+ transition: opacity 0.2s;
+}
+
+#nav-tree .item:hover .arrow {
+ opacity: 1;
+}
+
+#nav-tree .selected {
+ background-color: var(--bn-red);
+ color: #ffffff;
+}
+
+#nav-tree .selected a {
+ color: #ffffff;
+}
+
+html.dark-mode #nav-tree .selected {
+ background-color: var(--bn-red);
+ color: #ffffff;
+}
+
+html.dark-mode #nav-tree .selected a {
+ color: #ffffff;
+}
+
+#nav-tree .item {
+ height: var(--tree-item-height);
+ line-height: var(--tree-item-height);
+}
+
+#nav-tree .item:hover {
+ background-color: rgba(0,0,0,.05);
+}
+
+html.dark-mode #nav-tree .item:hover {
+ background-color: rgba(0,0,0,.4);
+}
+
+/* Undecorated root node */
+.children_ul a.index\.html {
+ display: initial;
+}
+
+a.index\.html {
+ display: none;
+}
+
+#nav-tree-contents > ul > li > .item {
+ height: 0px;
+}
+
+/* ============================================================================
+ * COLLAPSIBLE SECTIONS (dynsections.js)
+ * ============================================================================ */
+.arrowhead {
+ display: inline-block;
+ margin-right: 5px;
+ opacity: 0;
+ transition: opacity 0.2s;
+ font-size: 11px;
+ line-height: 1;
+ color: var(--text-color);
+}
+
+.arrow:hover .arrowhead,
+tr:hover .arrowhead {
+ opacity: 1;
+}
+
+/* Right-pointing triangle when closed */
+.arrowhead.closed::before {
+ content: '▶';
+}
+
+/* Down-pointing triangle when opened */
+.arrowhead.opened::before {
+ content: '▼';
+}
+
+/* ============================================================================
+ * CONTENT AREA
+ * ============================================================================ */
+div.contents, div.header .title, div.header .summary {
+ max-width: 100%;
+}
+
+div.contents, div.header .title {
+ line-height: initial;
+ margin: calc(var(--spacing-medium) + .2em) 0 var(--spacing-medium) 0;
+}
+
+div.header .summary {
+ margin: var(--spacing-medium) 0 0 0;
+}
+
+div.headertitle {
+ padding: 0;
+ border-bottom: 0;
+ background-color: var(--page-bg);
+}
+
+div.headertitle .title {
+ font-size: 2em;
+ font-weight: 600;
+ margin: var(--spacing-large) 0;
+}
+
+div.contents {
+ padding: 0 var(--spacing-xlarge);
+}
+
+div.contents p, div.contents li {
+ line-height: var(--line-height-content);
+}
+
+div.contents div.dyncontent {
+ margin: var(--spacing-medium) 0;
+}
+
+@media screen and (max-width: 767px) {
+ div.contents {
+ padding: 0 var(--spacing-large);
+ }
+
+ div.header .title {
+ padding: var(--spacing-medium) var(--spacing-large);
+ }
+}
+
+.contents img, .contents .center, .contents center, .contents div.image object {
+ max-width: 100%;
+ overflow: auto;
+}
+
+.contents hr {
+ border: none;
+ border-top: 1px solid var(--border-color);
+ margin: var(--spacing-large) 0;
+}
+
+/* ============================================================================
+ * TABLES
+ * ============================================================================ */
+table {
+ border-collapse: collapse;
+ border-spacing: 0;
+ width: 100%;
+ word-wrap: break-word;
+}
+
+/* Content tables (HTML tables in documentation) */
+div.contents > table,
+div.contents p + table,
+div.textblock table {
+ margin: var(--spacing-medium) 0;
+ border: 1px solid var(--border-color);
+}
+
+div.contents > table th,
+div.contents p + table th,
+div.textblock table th {
+ background-color: var(--table-header-bg);
+ color: var(--page-text);
+ padding: var(--spacing-small) var(--spacing-medium);
+ text-align: left;
+ border: 1px solid var(--border-color);
+ font-weight: 600;
+}
+
+div.contents > table td,
+div.contents p + table td,
+div.textblock table td {
+ padding: var(--spacing-small) var(--spacing-medium);
+ border: 1px solid var(--border-color);
+ vertical-align: top;
+}
+
+div.contents > table tr:nth-child(odd),
+div.contents p + table tr:nth-child(odd),
+div.textblock table tr:nth-child(odd) {
+ background-color: var(--page-bg);
+}
+
+div.contents > table tr:nth-child(even),
+div.contents p + table tr:nth-child(even),
+div.textblock table tr:nth-child(even) {
+ background-color: var(--table-row-even);
+}
+
+table.memberdecls {
+ width: 100%;
+}
+
+table.memberdecls .memItemLeft {
+ white-space: normal;
+ word-wrap: break-word;
+ overflow-wrap: break-word;
+ padding: var(--spacing-small) var(--spacing-medium);
+ border-bottom: 1px solid var(--border-color);
+ width: 40%;
+}
+
+table.memberdecls .memItemRight {
+ padding: var(--spacing-small) var(--spacing-medium);
+ border-bottom: 1px solid var(--border-color);
+ word-wrap: break-word;
+ overflow-wrap: break-word;
+ width: 60%;
+}
+
+table.memberdecls td {
+ vertical-align: top;
+}
+
+/* Markdown tables */
+table.markdownTable {
+ border-collapse: collapse;
+ width: 100%;
+ margin: var(--spacing-medium) 0;
+ border: 1px solid var(--border-color);
+}
+
+table.markdownTable th {
+ background-color: var(--sidebar-bg);
+ color: var(--sidebar-text);
+ padding: var(--spacing-small) var(--spacing-medium);
+ text-align: left;
+ border: 1px solid var(--border-color);
+ font-weight: 600;
+}
+
+table.markdownTable td {
+ padding: var(--spacing-small) var(--spacing-medium);
+ border: 1px solid var(--border-color);
+ vertical-align: top;
+}
+
+table.markdownTable tr.markdownTableRowOdd {
+ background-color: var(--fragment-bg);
+}
+
+table.markdownTable tr.markdownTableRowEven {
+ background-color: var(--page-bg);
+}
+
+/* Detail level labels (default, inline, virtual, etc.) */
+table.mlabels {
+ border-spacing: 0;
+}
+
+table.mlabels td.mlabels-left {
+ width: 100%;
+}
+
+table.mlabels td.mlabels-right {
+ vertical-align: bottom;
+}
+
+span.mlabel {
+ background: var(--bn-red);
+ color: #ffffff;
+ margin-left: 2px;
+ padding: 2px 5px;
+ border-radius: 6px;
+ font-size: 9pt;
+ white-space: nowrap;
+ font-weight: 600;
+}
+
+/* Function signature tables */
+table.memname {
+ font-family: var(--font-family-monospace);
+ color: var(--code-text);
+ border-collapse: collapse;
+ border-spacing: 0;
+ width: auto;
+ table-layout: auto;
+}
+
+table.memname td {
+ vertical-align: top;
+ font-family: var(--font-family-monospace);
+ padding: 0 10px 0 0;
+}
+
+/* Keep function name on first column from wrapping */
+table.memname td.memname {
+ white-space: nowrap;
+ width: 1%;
+}
+
+/* Constrain parameter type column width */
+table.memname td.paramtype {
+ white-space: nowrap;
+ width: 1%;
+}
+
+/* Parameter names should not wrap and stay compact */
+table.memname td.paramname {
+ white-space: nowrap;
+}
+
+/* Empty cells (paramkey) should not take space */
+table.memname td.paramkey {
+ width: 1%;
+}
+
+/* Type/Namespace icons (C, N, S, etc.) */
+.icon {
+ display: inline-block;
+ background-color: var(--bn-red);
+ color: #ffffff;
+ font-family: var(--font-family-monospace);
+ font-size: 11px;
+ font-weight: 700;
+ padding: 3px 5px 2px 5px;
+ margin-right: 6px;
+ border-radius: 3px;
+ text-align: center;
+ min-width: 16px;
+ line-height: 1.2;
+ vertical-align: middle;
+}
+
+table thead th {
+ background-color: var(--table-header-bg);
+ color: var(--page-text);
+ font-weight: 600;
+ padding: var(--spacing-small) var(--spacing-medium);
+ border-bottom: 1px solid var(--border-color);
+}
+
+table tbody tr:nth-child(odd) {
+ background-color: var(--table-row-odd);
+}
+
+table tbody tr:nth-child(even) {
+ background-color: var(--table-row-even);
+}
+
+/* ============================================================================
+ * CODE BLOCKS AND FRAGMENTS
+ * ============================================================================ */
+pre.fragment, div.fragment {
+ font-family: var(--font-family-monospace);
+ font-size: var(--font-size-code);
+ background-color: var(--fragment-bg);
+ color: var(--fragment-text);
+ border-radius: var(--border-radius-small);
+ padding: var(--spacing-medium);
+ overflow-x: auto;
+ overflow-y: auto;
+ border: 1px solid var(--fragment-border);
+ max-width: 100%;
+}
+
+.line {
+ line-height: 20px;
+ font-family: var(--font-family-monospace);
+}
+
+.lineno {
+ color: #797979;
+ background-color: #f4f4f5;
+ border-right: 1px solid var(--fragment-border);
+ padding-right: 8px;
+ padding-left: 8px;
+ margin-right: 8px;
+}
+
+html.dark-mode .lineno {
+ color: #cccccc;
+ background-color: #35393c;
+}
+
+/* Syntax highlighting */
+span.keyword { color: var(--syntax-keyword); }
+span.keywordtype { color: var(--syntax-type); }
+span.keywordflow { color: var(--syntax-flow); }
+span.stringliteral { color: var(--syntax-string); }
+span.comment { color: var(--syntax-comment); }
+span.preprocessor { color: var(--syntax-preprocessor); }
+span.lineno a { color: var(--syntax-comment); }
+
+/* ============================================================================
+ * CONTENT BOXES (@note, @warning, etc.)
+ * ============================================================================ */
+dl.warning, dl.attention {
+ background-color: var(--warning-bg);
+ border-left: 4px solid var(--warning-border);
+ padding: var(--spacing-medium);
+ border-radius: var(--border-radius-small);
+ margin: var(--spacing-medium) 0;
+}
+
+dl.note {
+ background-color: var(--note-bg);
+ border-left: 4px solid var(--note-border);
+ padding: var(--spacing-medium);
+ border-radius: var(--border-radius-small);
+ margin: var(--spacing-medium) 0;
+}
+
+dl.todo {
+ background-color: var(--todo-bg);
+ border-left: 4px solid var(--todo-border);
+ padding: var(--spacing-medium);
+ border-radius: var(--border-radius-small);
+ margin: var(--spacing-medium) 0;
+}
+
+dl.deprecated {
+ background-color: var(--deprecated-bg);
+ border-left: 4px solid var(--deprecated-border);
+ padding: var(--spacing-medium);
+ border-radius: var(--border-radius-small);
+ margin: var(--spacing-medium) 0;
+}
+
+dl.bug {
+ background-color: var(--bug-bg);
+ border-left: 4px solid var(--bug-border);
+ padding: var(--spacing-medium);
+ border-radius: var(--border-radius-small);
+ margin: var(--spacing-medium) 0;
+}
+
+/* ============================================================================
+ * MEMBER DOCUMENTATION
+ * ============================================================================ */
+.memitem {
+ margin-bottom: var(--spacing-large);
+ position: relative;
+}
+
+.memtitle {
+ background-color: var(--code-bg);
+ border: 1px solid var(--border-color);
+ border-radius: var(--border-radius-small) var(--border-radius-small) 0 0;
+ padding: var(--spacing-small) var(--spacing-medium);
+ font-size: 18px;
+ font-weight: 600;
+ font-family: var(--font-family-monospace);
+}
+
+.memname {
+ font-family: var(--font-family-monospace);
+}
+
+.memdoc {
+ border: 1px solid var(--border-color);
+ border-top: none;
+ border-radius: 0 0 var(--border-radius-small) var(--border-radius-small);
+ padding: var(--spacing-medium);
+ background-color: var(--page-bg);
+}
+
+.memproto {
+ background-color: var(--fragment-bg);
+ border: 1px solid var(--border-color);
+ padding: var(--spacing-small) var(--spacing-medium);
+ border-radius: var(--border-radius-small);
+}
+
+.paramname {
+ color: var(--bn-red-light);
+ font-style: italic;
+}
+
+.paramtype .el {
+ color: var(--bn-red-dark);
+}
+
+/* ============================================================================
+ * THREAD SAFETY BADGES (Binary Ninja specific)
+ * ============================================================================ */
+dl.threadsafe {
+ position: absolute;
+ top: 0px;
+ right: 8px;
+ margin-top: 10px;
+ background-color: #d0d6e2;
+ font-weight: normal;
+ padding: 2px 10px;
+ border-radius: 4px;
+}
+
+html.dark-mode dl.threadsafe {
+ background-color: #434956;
+}
+
+.threadsafe dt {
+ padding-right: 35px;
+}
+
+.threadsafe.Main.Thread.Only dt {
+ padding-right: 145px;
+}
+
+.threadsafe.Yes dd {
+ display: inline;
+ margin-inline-start: 0;
+ position: absolute;
+ top: 1px;
+ right: 1px;
+ padding: 1px 6px 1px 5px;
+ background-color: #9af78c;
+ border-bottom-right-radius: 3px;
+ border-top-right-radius: 3px;
+ width: 25px;
+ text-align: center;
+}
+
+html.dark-mode .threadsafe.Yes dd {
+ background-color: #4e8646;
+}
+
+.threadsafe.No dd {
+ display: inline;
+ margin-inline-start: 0;
+ position: absolute;
+ top: 1px;
+ right: 1px;
+ padding: 1px 6px 1px 5px;
+ background-color: #fb877d;
+ border-bottom-right-radius: 3px;
+ border-top-right-radius: 3px;
+ width: 25px;
+ text-align: center;
+}
+
+html.dark-mode .threadsafe.No dd {
+ background-color: #d0584d;
+}
+
+.threadsafe.Main.Thread.Only dd {
+ display: inline;
+ margin-inline-start: 0;
+ position: absolute;
+ top: 1px;
+ right: 1px;
+ padding: 1px 6px 1px 5px;
+ background-color: #fb877d;
+ border-bottom-right-radius: 3px;
+ border-top-right-radius: 3px;
+ width: 135px;
+ text-align: center;
+}
+
+html.dark-mode .threadsafe.Main.Thread.Only dd {
+ background-color: #d0584d;
+}
+
+img.thread {
+ max-width: 15px;
+ position: relative;
+ top: 2px;
+ padding-right: 3px;
+}
+
+html.dark-mode img.thread {
+ filter: invert(0.7);
+}
+
+/* ============================================================================
+ * BINARY NINJA CUSTOMIZATIONS
+ * ============================================================================ */
+
+/* External link icon */
+div.contents a[href^="http"]:after {
+ content: " " url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAoAAAAKCAYAAACNMs+9AAAAVklEQVR4Xn3PgQkAMQhDUXfqTu7kTtkpd5RA8AInfArtQ2iRXFWT2QedAfttj2FsPIOE1eCOlEuoWWjgzYaB/IkeGOrxXhqB+uA9Bfcm0lAZuh+YIeAD+cAqSz4kCMUAAAAASUVORK5CYII=);
+}
+
+/* GitHub logo */
+.githublogo {
+ content: url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACAAAAAgCAYAAABzenr0AAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAyRpVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADw/eHBhY2tldCBiZWdpbj0i77u/IiBpZD0iVzVNME1wQ2VoaUh6cmVTek5UY3prYzlkIj8+IDx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IkFkb2JlIFhNUCBDb3JlIDUuNS1jMDIxIDc5LjE1NDkxMSwgMjAxMy8xMC8yOS0xMTo0NzoxNiAgICAgICAgIj4gPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4gPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIgeG1sbnM6eG1wTU09Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9tbS8iIHhtbG5zOnN0UmVmPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvc1R5cGUvUmVzb3VyY2VSZWYjIiB4bWxuczp4bXA9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC8iIHhtcE1NOkRvY3VtZW50SUQ9InhtcC5kaWQ6RERCMUIwOUY4NkNFMTFFM0FBNTJFRTMzNTJEMUJDNDYiIHhtcE1NOkluc3RhbmNlSUQ9InhtcC5paWQ6RERCMUIwOUU4NkNFMTFFM0FBNTJFRTMzNTJEMUJDNDYiIHhtcDpDcmVhdG9yVG9vbD0iQWRvYmUgUGhvdG9zaG9wIENTNiAoTWFjaW50b3NoKSI+IDx4bXBNTTpEZXJpdmVkRnJvbSBzdFJlZjppbnN0YW5jZUlEPSJ4bXAuaWlkOkU1MTc4QTJBOTlBMDExRTI5QTE1QkMxMDQ2QTg5MDREIiBzdFJlZjpkb2N1bWVudElEPSJ4bXAuZGlkOkU1MTc4QTJCOTlBMDExRTI5QTE1QkMxMDQ2QTg5MDREIi8+IDwvcmRmOkRlc2NyaXB0aW9uPiA8L3JkZjpSREY+IDwveDp4bXBtZXRhPiA8P3hwYWNrZXQgZW5kPSJyIj8+jUqS1wAAApVJREFUeNq0l89rE1EQx3e3gVJoSPzZeNEWPKgHoa0HBak0iHiy/4C3WvDmoZ56qJ7txVsPQu8qlqqHIhRKJZceesmhioQEfxTEtsoSpdJg1u/ABJ7Pmc1m8zLwgWTmzcw3L+/te+tHUeQltONgCkyCi2AEDHLsJ6iBMlgHL8FeoqokoA2j4CloRMmtwTmj7erHBXPgCWhG6a3JNXKdCiDl1sidVbXZkJoXQRi5t5BrxwoY71FzU8S4JuAIqFkJ2+BFSlEh525b/hr3+k/AklDkNsf6wTT4yv46KIMNpsy+iMdMc47HNWxbsgVcUn7FmLAzzoFAWDsBx+wVP6bUpp5ewI+DOeUx0Wd9D8F70BTGNjkWtqnhmT1JQAHcUgZd8Lo3rQb1LAT8eJVUfgGvHQigGp+V2Z0iAUUl8QH47kAA1XioxIo+bRN8OG8F/oBjwv+Z1nJgX5jpdzQDw0LCjsPmrcW7I/iHScCAEDj03FtD8A0EyuChHgg4KTlJQF3wZ7WELppnBX+dBFSVpJsOBWi1qiRgSwnOgoyD5hmuJdkWCVhTgnTvW3AgYIFrSbZGh0UW/Io5Vp+DQoK7o80pztWMemZbgxeNwCNwDbw1fIfgGZjhU6xPaJgBV8BdsMw5cbZoHsenwYFxkZzl83xTSKTiviCAfCsJLysH3POfC8m8NegyGAGfLP/VmGmfSChgXroR0RSWjEFv2J/nG84cuKFMf4sTCZqXuJd4KaXFVjEG3+tw4eXbNK/YC9oXXs3O8NY8y99L4BXY5cvLY/Bb2VZ58EOJVcB18DHJq9lRsKr8inyKGVjlmh29mtHs3AHfuhCwy1vXT/Nu2GKQt+UHsGdctyX6eQyNvc+5sfX9Dl7Pe2J/BRgAl2CpwmrsHR0AAAAASUVORK5CYII=);
+}
+
+/* Group headers */
+td h2.groupheader, h2.groupheader {
+ border-bottom: 0px;
+ color: var(--page-text);
+ background: var(--page-bg);
+ font-weight: 600;
+ margin-top: var(--spacing-large);
+}
+
+/* Table of Contents - Disabled */
+div.contents .toc {
+ display: none;
+}
+
+div.toc {
+ display: none;
+}
+
+/* ============================================================================
+ * SCROLLBAR STYLING
+ * ============================================================================ */
+::-webkit-scrollbar {
+ width: 7px;
+ height: 7px;
+}
+
+::-webkit-scrollbar-track {
+ background: transparent;
+}
+
+::-webkit-scrollbar-thumb {
+ background-color: var(--border-color);
+ border-radius: var(--border-radius-small);
+}
+
+::-webkit-scrollbar-thumb:hover {
+ background-color: var(--page-text-secondary);
+}
+
+#nav-tree::-webkit-scrollbar-thumb,
+div.fragment::-webkit-scrollbar-thumb,
+pre.fragment::-webkit-scrollbar-thumb {
+ background-color: transparent;
+ border: 4px solid transparent;
+ border-radius: 12px;
+ background-clip: padding-box;
+}
+
+#nav-tree:hover::-webkit-scrollbar-thumb,
+div.fragment:hover::-webkit-scrollbar-thumb,
+pre.fragment:hover::-webkit-scrollbar-thumb {
+ background-color: var(--border-color);
+}
+
+#nav-tree::-webkit-scrollbar-corner {
+ background-color: var(--sidebar-bg);
+}
+
+/* Firefox scrollbar */
+#nav-tree,
+div.fragment,
+pre.fragment {
+ scrollbar-width: thin;
+ scrollbar-color: var(--border-color) transparent;
+}
+
+/* ============================================================================
+ * DARK MODE TOGGLE (Hidden - CSS-only system preference)
+ * ============================================================================ */
+#bn-darkmode-toggle {
+ display: none;
+}
+
+/* ============================================================================
+ * IMAGE HANDLING IN DARK MODE
+ * ============================================================================ */
+html.dark-mode div.contents div.dyncontent img,
+html.dark-mode div.contents center img,
+html.dark-mode div.contents > table img {
+ filter: brightness(89%) hue-rotate(180deg) invert();
+}
+
+html.dark-mode .darkmode_inverted_image img,
+html.dark-mode .darkmode_inverted_image object[type="image/svg+xml"] {
+ filter: brightness(89%) hue-rotate(180deg) invert();
+}
diff --git a/api-docs/cppdocs/custom.css b/api-docs/cppdocs/custom.css
deleted file mode 100644
index 3c7b8483..00000000
--- a/api-docs/cppdocs/custom.css
+++ /dev/null
@@ -1,200 +0,0 @@
-
-/* external link icon */
-div.contents a[href ^= "http"]:after {
- content: " " url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAoAAAAKCAYAAACNMs+9AAAAVklEQVR4Xn3PgQkAMQhDUXfqTu7kTtkpd5RA8AInfArtQ2iRXFWT2QedAfttj2FsPIOE1eCOlEuoWWjgzYaB/IkeGOrxXhqB+uA9Bfcm0lAZuh+YIeAD+cAqSz4kCMUAAAAASUVORK5CYII=);
-}
-
-.githublogo {
- content: url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACAAAAAgCAYAAABzenr0AAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAyRpVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADw/eHBhY2tldCBiZWdpbj0i77u/IiBpZD0iVzVNME1wQ2VoaUh6cmVTek5UY3prYzlkIj8+IDx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IkFkb2JlIFhNUCBDb3JlIDUuNS1jMDIxIDc5LjE1NDkxMSwgMjAxMy8xMC8yOS0xMTo0NzoxNiAgICAgICAgIj4gPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4gPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIgeG1sbnM6eG1wTU09Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9tbS8iIHhtbG5zOnN0UmVmPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvc1R5cGUvUmVzb3VyY2VSZWYjIiB4bWxuczp4bXA9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC8iIHhtcE1NOkRvY3VtZW50SUQ9InhtcC5kaWQ6RERCMUIwOUY4NkNFMTFFM0FBNTJFRTMzNTJEMUJDNDYiIHhtcE1NOkluc3RhbmNlSUQ9InhtcC5paWQ6RERCMUIwOUU4NkNFMTFFM0FBNTJFRTMzNTJEMUJDNDYiIHhtcDpDcmVhdG9yVG9vbD0iQWRvYmUgUGhvdG9zaG9wIENTNiAoTWFjaW50b3NoKSI+IDx4bXBNTTpEZXJpdmVkRnJvbSBzdFJlZjppbnN0YW5jZUlEPSJ4bXAuaWlkOkU1MTc4QTJBOTlBMDExRTI5QTE1QkMxMDQ2QTg5MDREIiBzdFJlZjpkb2N1bWVudElEPSJ4bXAuZGlkOkU1MTc4QTJCOTlBMDExRTI5QTE1QkMxMDQ2QTg5MDREIi8+IDwvcmRmOkRlc2NyaXB0aW9uPiA8L3JkZjpSREY+IDwveDp4bXBtZXRhPiA8P3hwYWNrZXQgZW5kPSJyIj8+jUqS1wAAApVJREFUeNq0l89rE1EQx3e3gVJoSPzZeNEWPKgHoa0HBak0iHiy/4C3WvDmoZ56qJ7txVsPQu8qlqqHIhRKJZceesmhioQEfxTEtsoSpdJg1u/ABJ7Pmc1m8zLwgWTmzcw3L+/te+tHUeQltONgCkyCi2AEDHLsJ6iBMlgHL8FeoqokoA2j4CloRMmtwTmj7erHBXPgCWhG6a3JNXKdCiDl1cidVbXZkJoXQRi5t5BrxwoY71FzU8S4JuAIqFkJ2+BFSlEh525b/hr3+k/AklDkNsf6wTT4yv46KIMNpsy+iMdMc47HNWxbsgVcUn7FmLAzzoFAWDsBx+wVP6bUpp5ewI+DOeUx0Wd9D8F70BTGNjkWtqnhmT1JQAHcUgZd8Lo3rQb1LAT8eJVUfgGvHQigGp+V2Z0iAUUl8QH47kAA1XioxIo+bRN8OG8F/oBjwv+Z1nJgX5jpdzQDw0LCjsPmrcW7I/iHScCAEDj03FtD8A0EyuChHgg4KTlJQF3wZ7WELppnBX+dBFSVpJsOBWi1qiRgSwnOgoyD5hmuJdkWCVhTgnTvW3AgYIFrSbZGh0UW/Io5Vp+DQoK7o80pztWMemZbgxeNwCNwDbw1fIfgGZjhU6xPaJgBV8BdsMw5cbZoHsenwYFxkZzl83xTSKTiviCAfCsJLysH3POfC8m8NegyGAGfLP/VmGmfSChgXroR0RSWjEFv2J/nG84cuKFMf4sTCZqXuJd4KaXFVjEG3+tw4eXbNK/YC9oXXs3O8NY8y99L4BXY5cvLY/Bb2VZ58EOJVcB18DHJq9lRsKr8inyKGVjlmh29mtHs3AHfuhCwy1vXT/Nu2GKQt+UHsGdctyX6eQyNvc+5sfX9Dl7Pe2J/BRgAl2CpwmrsHR0AAAAASUVORK5CYII=);
-}
-
-/* search bar wrapper */
-#titlearea #projectalign + td {
- position: absolute;
- left: 20px;
- top: 80px;
-}
-
-doxygen-awesome-dark-mode-toggle {
- display: inline-block !important;
- position: absolute;
- right: -27px;
- top: 0px;
- padding-top: 5px;
- height: 29px;
-}
-/*
-Doxygen by default does this horrible table layout thing where it tries to figure the default width of the left
- column by taking the largest item in that column (the type), unwrapped, and making that the width for the entire column
-We are working with C++, type declarations can be massive. So lock it to 350px and turn on word wrapping for the Types
- column.
-*/
-table.memberdecls .memItemLeft {
- white-space: normal;
- min-width: 350px;
-}
-
-html.dark-mode {
- --primary-color: #c74433!important;
- --primary-dark-color: #d0584d !important;;
- --primary-light-color: #a2382a !important;;
-}
-html {
- --primary-color: #c74433!important;
- --primary-dark-color: #d0584d !important;;
- --primary-light-color: #a2382a !important;;
-}
-
-.paramname {
- color: var(--primary-light-color);
-}
-.paramtype .el {
- color: var(--primary-dark-color) !important;
-}
-
-tr#projectrow {
- margin-top: 7px;
- display: block;
-}
-
-#MSearchBox span.left {
- left: 5px;
- top: 1px;
-}
-
-input#MSearchField {
- padding-left: 10px;
- top: -1px;
-}
-
-#MSearchSelect {
- background-repeat: no-repeat !important;
-}
-
-/* Replicating an "undecorated root node" */
-
-.children_ul a.index\.html {
- display: initial !important;
-}
-
-a.index\.html {
- display: none;
-}
-
-
-#nav-tree-contents > ul > li > .item {
- height: 0px;
-}
-
-/* --- */
-
-/* Move the "Deprecated Items" item to the end of the list. */
-#nav-tree-contents > ul > li > ul.children_ul {
- margin: 0px;
- padding: 0px;
- display: flex!important;
- flex-direction: column!important;
-}
-#nav-tree-contents > ul > li > ul > li:nth-of-type(2) {
- order: 9999999;
-}
-
-/* Basic Mobile functionality fixes */
-@media screen and (max-width: 767px) {
- div#top {
- height: 125px;
- }
- div#MSearchBox {
- top: -16px;
- }
- doxygen-awesome-dark-mode-toggle {
- padding-top: 0px;
- right: -22px;
- }
-}
-
-.memitem {
- position:relative;
-}
-
-dl.threadsafe {
- position: absolute;
- top: 0px;
- right: 8px;
- margin-top: 10px;
- background-color: #434956;
- font-weight: normal;
- padding: 2px 10px;
- border-radius: 4px;
-}
-.threadsafe dt {
- padding-right: 35px;
-}
-.threadsafe.Main.Thread.Only dt {
- padding-right: 145px;
-}
-.threadsafe.Yes dd {
- display: inline!important;
- margin-inline-start: 0;
- position: absolute;
- top: 1px;
- right: 1px;
- padding: 1px 6px 1px 5px;
- background-color: #4e8646;
- border-bottom-right-radius: 3px;
- border-top-right-radius: 3px;
- width: 25px;
- text-align: center;
-}
-
-.threadsafe.No dd {
- display: inline!important;
- margin-inline-start: 0;
- position: absolute;
- top: 1px;
- right: 1px;
- padding: 1px 6px 1px 5px;
- background-color: #d0584d;
- border-bottom-right-radius: 3px;
- border-top-right-radius: 3px;
- width: 25px;
- text-align: center;
-}
-
-.threadsafe.Main.Thread.Only dd {
- display: inline!important;
- margin-inline-start: 0;
- position: absolute;
- top: 1px;
- right: 1px;
- padding: 1px 6px 1px 5px;
- background-color: #d0584d;
- border-bottom-right-radius: 3px;
- border-top-right-radius: 3px;
- width: 135px;
- text-align: center;
-}
-
-.light-mode dl.threadsafe {
- background-color: #d0d6e2;
-}
-.light-mode .threadsafe.Yes dd {
- background-color: #9af78c;
-}
-.light-mode .threadsafe.No dd {
- background-color: #fb877d;
-}
-.light-mode .threadsafe.Main.Thread.Only dd {
- background-color: #fb877d;
-}
-
-img.thread {
- max-width: 15px;
- position: relative;
- top: 2px;
- padding-right: 3px;
-}
-
-.dark-mode img.thread {
- filter: invert(0.7);
-}
diff --git a/api-docs/cppdocs/doxygen-awesome-css/LICENSE b/api-docs/cppdocs/doxygen-awesome-css/LICENSE
deleted file mode 100644
index 1d8b99a9..00000000
--- a/api-docs/cppdocs/doxygen-awesome-css/LICENSE
+++ /dev/null
@@ -1,21 +0,0 @@
-MIT License
-
-Copyright (c) 2021 jothepro
-
-Permission is hereby granted, free of charge, to any person obtaining a copy
-of this software and associated documentation files (the "Software"), to deal
-in the Software without restriction, including without limitation the rights
-to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
-copies of the Software, and to permit persons to whom the Software is
-furnished to do so, subject to the following conditions:
-
-The above copyright notice and this permission notice shall be included in all
-copies or substantial portions of the Software.
-
-THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
-IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
-FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
-AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
-LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
-OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
-SOFTWARE.
diff --git a/api-docs/cppdocs/doxygen-awesome-css/README.md b/api-docs/cppdocs/doxygen-awesome-css/README.md
deleted file mode 100644
index b823a109..00000000
--- a/api-docs/cppdocs/doxygen-awesome-css/README.md
+++ /dev/null
@@ -1,4 +0,0 @@
-This doxygen theme is from https://github.com/jothepro/doxygen-awesome-css
-
-Do not edit any of the files in this directory unless *absolutely necessary*; instead edit ../custom.css .
-
diff --git a/api-docs/cppdocs/doxygen-awesome-css/doxygen-awesome-darkmode-toggle.js b/api-docs/cppdocs/doxygen-awesome-css/doxygen-awesome-darkmode-toggle.js
deleted file mode 100644
index 440e4e08..00000000
--- a/api-docs/cppdocs/doxygen-awesome-css/doxygen-awesome-darkmode-toggle.js
+++ /dev/null
@@ -1,138 +0,0 @@
-// SPDX-License-Identifier: MIT
-/**
-
-Doxygen Awesome
-https://github.com/jothepro/doxygen-awesome-css
-
-Copyright (c) 2021 - 2025 jothepro
-
-*/
-
-class DoxygenAwesomeDarkModeToggle extends HTMLElement {
- // SVG icons from https://fonts.google.com/icons
- // Licensed under the Apache 2.0 license:
- // https://www.apache.org/licenses/LICENSE-2.0.html
- static lightModeIcon = `<svg xmlns="http://www.w3.org/2000/svg" enable-background="new 0 0 24 24" height="24px" viewBox="0 0 24 24" width="24px" fill="#FCBF00"><rect fill="none" height="24" width="24"/><circle cx="12" cy="12" opacity=".3" r="3"/><path d="M12,9c1.65,0,3,1.35,3,3s-1.35,3-3,3s-3-1.35-3-3S10.35,9,12,9 M12,7c-2.76,0-5,2.24-5,5s2.24,5,5,5s5-2.24,5-5 S14.76,7,12,7L12,7z M2,13l2,0c0.55,0,1-0.45,1-1s-0.45-1-1-1l-2,0c-0.55,0-1,0.45-1,1S1.45,13,2,13z M20,13l2,0c0.55,0,1-0.45,1-1 s-0.45-1-1-1l-2,0c-0.55,0-1,0.45-1,1S19.45,13,20,13z M11,2v2c0,0.55,0.45,1,1,1s1-0.45,1-1V2c0-0.55-0.45-1-1-1S11,1.45,11,2z M11,20v2c0,0.55,0.45,1,1,1s1-0.45,1-1v-2c0-0.55-0.45-1-1-1C11.45,19,11,19.45,11,20z M5.99,4.58c-0.39-0.39-1.03-0.39-1.41,0 c-0.39,0.39-0.39,1.03,0,1.41l1.06,1.06c0.39,0.39,1.03,0.39,1.41,0s0.39-1.03,0-1.41L5.99,4.58z M18.36,16.95 c-0.39-0.39-1.03-0.39-1.41,0c-0.39,0.39-0.39,1.03,0,1.41l1.06,1.06c0.39,0.39,1.03,0.39,1.41,0c0.39-0.39,0.39-1.03,0-1.41 L18.36,16.95z M19.42,5.99c0.39-0.39,0.39-1.03,0-1.41c-0.39-0.39-1.03-0.39-1.41,0l-1.06,1.06c-0.39,0.39-0.39,1.03,0,1.41 s1.03,0.39,1.41,0L19.42,5.99z M7.05,18.36c0.39-0.39,0.39-1.03,0-1.41c-0.39-0.39-1.03-0.39-1.41,0l-1.06,1.06 c-0.39,0.39-0.39,1.03,0,1.41s1.03,0.39,1.41,0L7.05,18.36z"/></svg>`
- static darkModeIcon = `<svg xmlns="http://www.w3.org/2000/svg" enable-background="new 0 0 24 24" height="24px" viewBox="0 0 24 24" width="24px" fill="#FE9700"><rect fill="none" height="24" width="24"/><path d="M9.37,5.51C9.19,6.15,9.1,6.82,9.1,7.5c0,4.08,3.32,7.4,7.4,7.4c0.68,0,1.35-0.09,1.99-0.27 C17.45,17.19,14.93,19,12,19c-3.86,0-7-3.14-7-7C5,9.07,6.81,6.55,9.37,5.51z" opacity=".3"/><path d="M9.37,5.51C9.19,6.15,9.1,6.82,9.1,7.5c0,4.08,3.32,7.4,7.4,7.4c0.68,0,1.35-0.09,1.99-0.27C17.45,17.19,14.93,19,12,19 c-3.86,0-7-3.14-7-7C5,9.07,6.81,6.55,9.37,5.51z M12,3c-4.97,0-9,4.03-9,9s4.03,9,9,9s9-4.03,9-9c0-0.46-0.04-0.92-0.1-1.36 c-0.98,1.37-2.58,2.26-4.4,2.26c-2.98,0-5.4-2.42-5.4-5.4c0-1.81,0.89-3.42,2.26-4.4C12.92,3.04,12.46,3,12,3L12,3z"/></svg>`
- static title = "Toggle Light/Dark Mode"
-
- static prefersLightModeInDarkModeKey = "prefers-light-mode-in-dark-mode"
- static prefersDarkModeInLightModeKey = "prefers-dark-mode-in-light-mode"
-
- static _staticConstructor = function() {
- DoxygenAwesomeDarkModeToggle.enableDarkMode(DoxygenAwesomeDarkModeToggle.userPreference)
- // Update the color scheme when the browsers preference changes
- // without user interaction on the website.
- window.matchMedia('(prefers-color-scheme: dark)').addEventListener('change', event => {
- DoxygenAwesomeDarkModeToggle.onSystemPreferenceChanged()
- })
- // Update the color scheme when the tab is made visible again.
- // It is possible that the appearance was changed in another tab
- // while this tab was in the background.
- document.addEventListener("visibilitychange", visibilityState => {
- if (document.visibilityState === 'visible') {
- DoxygenAwesomeDarkModeToggle.onSystemPreferenceChanged()
- }
- });
- }()
-
- static init() {
- $(function() {
- $(document).ready(function() {
- const toggleButton = document.createElement('doxygen-awesome-dark-mode-toggle')
- toggleButton.title = DoxygenAwesomeDarkModeToggle.title
- toggleButton.updateIcon()
-
- window.matchMedia('(prefers-color-scheme: dark)').addEventListener('change', event => {
- toggleButton.updateIcon()
- })
- document.addEventListener("visibilitychange", visibilityState => {
- if (document.visibilityState === 'visible') {
- toggleButton.updateIcon()
- }
- });
-
- $(document).ready(function(){
- document.getElementById("MSearchBox").parentNode.appendChild(toggleButton)
- })
- $(window).resize(function(){
- document.getElementById("MSearchBox").parentNode.appendChild(toggleButton)
- })
- })
- })
- }
-
- constructor() {
- super();
- this.onclick=this.toggleDarkMode
- }
-
- /**
- * @returns `true` for dark-mode, `false` for light-mode system preference
- */
- static get systemPreference() {
- return window.matchMedia('(prefers-color-scheme: dark)').matches
- }
-
- /**
- * @returns `true` for dark-mode, `false` for light-mode user preference
- */
- static get userPreference() {
- return (!DoxygenAwesomeDarkModeToggle.systemPreference && localStorage.getItem(DoxygenAwesomeDarkModeToggle.prefersDarkModeInLightModeKey)) ||
- (DoxygenAwesomeDarkModeToggle.systemPreference && !localStorage.getItem(DoxygenAwesomeDarkModeToggle.prefersLightModeInDarkModeKey))
- }
-
- static set userPreference(userPreference) {
- DoxygenAwesomeDarkModeToggle.darkModeEnabled = userPreference
- if(!userPreference) {
- if(DoxygenAwesomeDarkModeToggle.systemPreference) {
- localStorage.setItem(DoxygenAwesomeDarkModeToggle.prefersLightModeInDarkModeKey, true)
- } else {
- localStorage.removeItem(DoxygenAwesomeDarkModeToggle.prefersDarkModeInLightModeKey)
- }
- } else {
- if(!DoxygenAwesomeDarkModeToggle.systemPreference) {
- localStorage.setItem(DoxygenAwesomeDarkModeToggle.prefersDarkModeInLightModeKey, true)
- } else {
- localStorage.removeItem(DoxygenAwesomeDarkModeToggle.prefersLightModeInDarkModeKey)
- }
- }
- DoxygenAwesomeDarkModeToggle.onUserPreferenceChanged()
- }
-
- static enableDarkMode(enable) {
- if(enable) {
- DoxygenAwesomeDarkModeToggle.darkModeEnabled = true
- document.documentElement.classList.add("dark-mode")
- document.documentElement.classList.remove("light-mode")
- } else {
- DoxygenAwesomeDarkModeToggle.darkModeEnabled = false
- document.documentElement.classList.remove("dark-mode")
- document.documentElement.classList.add("light-mode")
- }
- }
-
- static onSystemPreferenceChanged() {
- DoxygenAwesomeDarkModeToggle.darkModeEnabled = DoxygenAwesomeDarkModeToggle.userPreference
- DoxygenAwesomeDarkModeToggle.enableDarkMode(DoxygenAwesomeDarkModeToggle.darkModeEnabled)
- }
-
- static onUserPreferenceChanged() {
- DoxygenAwesomeDarkModeToggle.enableDarkMode(DoxygenAwesomeDarkModeToggle.darkModeEnabled)
- }
-
- toggleDarkMode() {
- DoxygenAwesomeDarkModeToggle.userPreference = !DoxygenAwesomeDarkModeToggle.userPreference
- this.updateIcon()
- }
-
- updateIcon() {
- if(DoxygenAwesomeDarkModeToggle.darkModeEnabled) {
- this.innerHTML = DoxygenAwesomeDarkModeToggle.darkModeIcon
- } else {
- this.innerHTML = DoxygenAwesomeDarkModeToggle.lightModeIcon
- }
- }
-}
-
-customElements.define("doxygen-awesome-dark-mode-toggle", DoxygenAwesomeDarkModeToggle);
diff --git a/api-docs/cppdocs/doxygen-awesome-css/doxygen-awesome-fragment-copy-button.js b/api-docs/cppdocs/doxygen-awesome-css/doxygen-awesome-fragment-copy-button.js
deleted file mode 100644
index e0994dca..00000000
--- a/api-docs/cppdocs/doxygen-awesome-css/doxygen-awesome-fragment-copy-button.js
+++ /dev/null
@@ -1,66 +0,0 @@
-// SPDX-License-Identifier: MIT
-/**
-
-Doxygen Awesome
-https://github.com/jothepro/doxygen-awesome-css
-
-Copyright (c) 2022 - 2025 jothepro
-
-*/
-
-class DoxygenAwesomeFragmentCopyButton extends HTMLElement {
- constructor() {
- super();
- this.onclick=this.copyContent
- }
- static title = "Copy to clipboard"
- static copyIcon = `<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" width="24" height="24"><path d="M0 0h24v24H0V0z" fill="none"/><path d="M23.04,10.322c0,-2.582 -2.096,-4.678 -4.678,-4.678l-6.918,-0c-2.582,-0 -4.678,2.096 -4.678,4.678c0,-0 0,8.04 0,8.04c0,2.582 2.096,4.678 4.678,4.678c0,-0 6.918,-0 6.918,-0c2.582,-0 4.678,-2.096 4.678,-4.678c0,-0 0,-8.04 0,-8.04Zm-2.438,-0l-0,8.04c-0,1.236 -1.004,2.24 -2.24,2.24l-6.918,-0c-1.236,-0 -2.239,-1.004 -2.239,-2.24l-0,-8.04c-0,-1.236 1.003,-2.24 2.239,-2.24c0,0 6.918,0 6.918,0c1.236,0 2.24,1.004 2.24,2.24Z"/><path d="M5.327,16.748c-0,0.358 -0.291,0.648 -0.649,0.648c0,0 0,0 0,0c-2.582,0 -4.678,-2.096 -4.678,-4.678c0,0 0,-8.04 0,-8.04c0,-2.582 2.096,-4.678 4.678,-4.678l6.918,0c2.168,0 3.994,1.478 4.523,3.481c0.038,0.149 0.005,0.306 -0.09,0.428c-0.094,0.121 -0.239,0.191 -0.392,0.191c-0.451,0.005 -1.057,0.005 -1.457,0.005c-0.238,0 -0.455,-0.14 -0.553,-0.357c-0.348,-0.773 -1.128,-1.31 -2.031,-1.31c-0,0 -6.918,0 -6.918,0c-1.236,0 -2.24,1.004 -2.24,2.24l0,8.04c0,1.236 1.004,2.24 2.24,2.24l0,-0c0.358,-0 0.649,0.29 0.649,0.648c-0,0.353 -0,0.789 -0,1.142Z" style="fill-opacity:0.6;"/></svg>`
- static successIcon = `<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" width="24" height="24"><path d="M8.084,16.111c-0.09,0.09 -0.212,0.141 -0.34,0.141c-0.127,-0 -0.249,-0.051 -0.339,-0.141c-0.746,-0.746 -2.538,-2.538 -3.525,-3.525c-0.375,-0.375 -0.983,-0.375 -1.357,0c-0.178,0.178 -0.369,0.369 -0.547,0.547c-0.375,0.375 -0.375,0.982 -0,1.357c1.135,1.135 3.422,3.422 4.75,4.751c0.27,0.27 0.637,0.421 1.018,0.421c0.382,0 0.749,-0.151 1.019,-0.421c2.731,-2.732 10.166,-10.167 12.454,-12.455c0.375,-0.375 0.375,-0.982 -0,-1.357c-0.178,-0.178 -0.369,-0.369 -0.547,-0.547c-0.375,-0.375 -0.982,-0.375 -1.357,0c-2.273,2.273 -9.567,9.567 -11.229,11.229Z"/></svg>`
- static successDuration = 980
- static init() {
- $(function() {
- $(document).ready(function() {
- if(navigator.clipboard) {
- const fragments = document.getElementsByClassName("fragment")
- for(const fragment of fragments) {
- const fragmentWrapper = document.createElement("div")
- fragmentWrapper.className = "doxygen-awesome-fragment-wrapper"
- const fragmentCopyButton = document.createElement("doxygen-awesome-fragment-copy-button")
- fragmentCopyButton.innerHTML = DoxygenAwesomeFragmentCopyButton.copyIcon
- fragmentCopyButton.title = DoxygenAwesomeFragmentCopyButton.title
-
- fragment.parentNode.replaceChild(fragmentWrapper, fragment)
- fragmentWrapper.appendChild(fragment)
- fragmentWrapper.appendChild(fragmentCopyButton)
-
- }
- }
- })
- })
- }
-
-
- copyContent() {
- const content = this.previousSibling.cloneNode(true)
- // filter out line number from file listings
- content.querySelectorAll(".lineno, .ttc").forEach((node) => {
- node.remove()
- })
- let textContent = content.textContent
- // remove trailing newlines that appear in file listings
- let numberOfTrailingNewlines = 0
- while(textContent.charAt(textContent.length - (numberOfTrailingNewlines + 1)) == '\n') {
- numberOfTrailingNewlines++;
- }
- textContent = textContent.substring(0, textContent.length - numberOfTrailingNewlines)
- navigator.clipboard.writeText(textContent);
- this.classList.add("success")
- this.innerHTML = DoxygenAwesomeFragmentCopyButton.successIcon
- window.setTimeout(() => {
- this.classList.remove("success")
- this.innerHTML = DoxygenAwesomeFragmentCopyButton.copyIcon
- }, DoxygenAwesomeFragmentCopyButton.successDuration);
- }
-}
-
-customElements.define("doxygen-awesome-fragment-copy-button", DoxygenAwesomeFragmentCopyButton)
diff --git a/api-docs/cppdocs/doxygen-awesome-css/doxygen-awesome-paragraph-link.js b/api-docs/cppdocs/doxygen-awesome-css/doxygen-awesome-paragraph-link.js
deleted file mode 100644
index 1c4c227e..00000000
--- a/api-docs/cppdocs/doxygen-awesome-css/doxygen-awesome-paragraph-link.js
+++ /dev/null
@@ -1,32 +0,0 @@
-// SPDX-License-Identifier: MIT
-/**
-
-Doxygen Awesome
-https://github.com/jothepro/doxygen-awesome-css
-
-Copyright (c) 2022 - 2025 jothepro
-
-*/
-
-class DoxygenAwesomeParagraphLink {
- // Icon from https://fonts.google.com/icons
- // Licensed under the Apache 2.0 license:
- // https://www.apache.org/licenses/LICENSE-2.0.html
- static icon = `<svg xmlns="http://www.w3.org/2000/svg" height="20px" viewBox="0 0 24 24" width="20px"><path d="M0 0h24v24H0V0z" fill="none"/><path d="M17 7h-4v2h4c1.65 0 3 1.35 3 3s-1.35 3-3 3h-4v2h4c2.76 0 5-2.24 5-5s-2.24-5-5-5zm-6 8H7c-1.65 0-3-1.35-3-3s1.35-3 3-3h4V7H7c-2.76 0-5 2.24-5 5s2.24 5 5 5h4v-2zm-3-4h8v2H8z"/></svg>`
- static title = "Permanent Link"
- static init() {
- $(function() {
- $(document).ready(function() {
- document.querySelectorAll(".contents a.anchor[id], .contents .groupheader > a[id]").forEach((node) => {
- let anchorlink = document.createElement("a")
- anchorlink.setAttribute("href", `#${node.getAttribute("id")}`)
- anchorlink.setAttribute("title", DoxygenAwesomeParagraphLink.title)
- anchorlink.classList.add("anchorlink")
- node.classList.add("anchor")
- anchorlink.innerHTML = DoxygenAwesomeParagraphLink.icon
- node.parentElement.appendChild(anchorlink)
- })
- })
- })
- }
-}
diff --git a/api-docs/cppdocs/doxygen-awesome-css/doxygen-awesome-sidebar-only-darkmode-toggle.css b/api-docs/cppdocs/doxygen-awesome-css/doxygen-awesome-sidebar-only-darkmode-toggle.css
deleted file mode 100644
index 2ab5c768..00000000
--- a/api-docs/cppdocs/doxygen-awesome-css/doxygen-awesome-sidebar-only-darkmode-toggle.css
+++ /dev/null
@@ -1,20 +0,0 @@
-/* SPDX-License-Identifier: MIT */
-/**
-
-Doxygen Awesome
-https://github.com/jothepro/doxygen-awesome-css
-
-Copyright (c) 2021 - 2025 jothepro
-
-*/
-
-@media screen and (min-width: 768px) {
-
- #MSearchBox {
- width: calc(var(--side-nav-fixed-width) - calc(2 * var(--spacing-medium)) - var(--searchbar-height) - 1px);
- }
-
- #MSearchField {
- width: calc(var(--side-nav-fixed-width) - calc(2 * var(--spacing-medium)) - 66px - var(--searchbar-height));
- }
-}
diff --git a/api-docs/cppdocs/doxygen-awesome-css/doxygen-awesome-sidebar-only.css b/api-docs/cppdocs/doxygen-awesome-css/doxygen-awesome-sidebar-only.css
deleted file mode 100644
index f7c644d6..00000000
--- a/api-docs/cppdocs/doxygen-awesome-css/doxygen-awesome-sidebar-only.css
+++ /dev/null
@@ -1,105 +0,0 @@
-/* SPDX-License-Identifier: MIT */
-/**
-
-Doxygen Awesome
-https://github.com/jothepro/doxygen-awesome-css
-
-Copyright (c) 2021 - 2025 jothepro
-
- */
-
-html {
- /* side nav width. MUST be = `TREEVIEW_WIDTH`.
- * Make sure it is wide enough to contain the page title (logo + title + version)
- */
- --side-nav-fixed-width: 335px;
- --menu-display: none;
-
- --top-height: 120px;
- --toc-sticky-top: -25px;
- --toc-max-height: calc(100vh - 2 * var(--spacing-medium) - 25px);
-}
-
-#projectname {
- white-space: nowrap;
-}
-
-
-@media screen and (min-width: 768px) {
- html {
- --searchbar-background: var(--page-background-color);
- }
-
- #side-nav {
- min-width: var(--side-nav-fixed-width);
- max-width: var(--side-nav-fixed-width);
- top: var(--top-height);
- overflow: visible;
- }
-
- #nav-tree, #side-nav {
- height: calc(100vh - var(--top-height)) !important;
- }
-
- #top {
- display: block;
- border-bottom: none;
- height: var(--top-height);
- margin-bottom: calc(0px - var(--top-height));
- max-width: var(--side-nav-fixed-width);
- overflow: hidden;
- background: var(--side-nav-background);
- }
-
- #main-nav {
- float: left;
- padding-right: 0;
- }
-
- .ui-resizable-handle {
- display: none;
- }
-
- .ui-resizable-e {
- width: 0;
- }
-
- #nav-path {
- position: fixed;
- right: 0;
- left: calc(var(--side-nav-fixed-width) + 1px);
- bottom: 0;
- width: auto;
- }
-
- #doc-content {
- height: calc(100vh - 31px) !important;
- padding-bottom: calc(3 * var(--spacing-large));
- padding-top: calc(var(--top-height) - 80px);
- box-sizing: border-box;
- margin-left: var(--side-nav-fixed-width) !important;
- }
-
- #MSearchBox {
- width: calc(var(--side-nav-fixed-width) - calc(2 * var(--spacing-medium)));
- }
-
- #MSearchField {
- width: calc(var(--side-nav-fixed-width) - calc(2 * var(--spacing-medium)) - 65px);
- }
-
- #MSearchResultsWindow {
- left: var(--spacing-medium) !important;
- right: auto;
- }
-
- #nav-sync {
- bottom: 4px;
- right: auto;
- left: 300px;
- width: 35px;
- top: auto !important;
- user-select: none;
- position: fixed
- }
-}
diff --git a/api-docs/cppdocs/doxygen-awesome-css/doxygen-awesome.css b/api-docs/cppdocs/doxygen-awesome-css/doxygen-awesome.css
deleted file mode 100644
index f992c232..00000000
--- a/api-docs/cppdocs/doxygen-awesome-css/doxygen-awesome.css
+++ /dev/null
@@ -1,3020 +0,0 @@
-/* SPDX-License-Identifier: MIT */
-/**
-
-Doxygen Awesome
-https://github.com/jothepro/doxygen-awesome-css
-
-Copyright (c) 2021 - 2025 jothepro
-
-*/
-
-html {
- /* primary theme color. This will affect the entire websites color scheme: links, arrows, labels, ... */
- --primary-color: #1779c4;
- --primary-dark-color: #335c80;
- --primary-light-color: #70b1e9;
- --on-primary-color: #ffffff;
-
- --link-color: var(--primary-color);
-
- /* page base colors */
- --page-background-color: #ffffff;
- --page-foreground-color: #2f4153;
- --page-secondary-foreground-color: #6f7e8e;
-
- /* color for all separators on the website: hr, borders, ... */
- --separator-color: #dedede;
-
- /* border radius for all rounded components. Will affect many components, like dropdowns, memitems, codeblocks, ... */
- --border-radius-large: 10px;
- --border-radius-small: 5px;
- --border-radius-medium: 8px;
-
- /* default spacings. Most components reference these values for spacing, to provide uniform spacing on the page. */
- --spacing-small: 5px;
- --spacing-medium: 10px;
- --spacing-large: 16px;
- --spacing-xlarge: 20px;
-
- /* default box shadow used for raising an element above the normal content. Used in dropdowns, search result, ... */
- --box-shadow: 0 2px 8px 0 rgba(0,0,0,.075);
-
- --odd-color: rgba(0,0,0,.028);
-
- /* font-families. will affect all text on the website
- * font-family: the normal font for text, headlines, menus
- * font-family-monospace: used for preformatted text in memtitle, code, fragments
- */
- --font-family: -apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Oxygen,Ubuntu,Cantarell,Fira Sans,Droid Sans,Helvetica Neue,sans-serif;
- --font-family-monospace: ui-monospace,SFMono-Regular,SF Mono,Menlo,Consolas,Liberation Mono,monospace;
-
- /* font sizes */
- --page-font-size: 15.6px;
- --navigation-font-size: 14.4px;
- --toc-font-size: 13.4px;
- --code-font-size: 14px; /* affects code, fragment */
- --title-font-size: 22px;
-
- /* content text properties. These only affect the page content, not the navigation or any other ui elements */
- --content-line-height: 27px;
- /* The content is centered and constraint in it's width. To make the content fill the whole page, set the variable to auto.*/
- --content-maxwidth: 1050px;
- --table-line-height: 24px;
- --toc-sticky-top: var(--spacing-medium);
- --toc-width: 200px;
- --toc-max-height: calc(100vh - 2 * var(--spacing-medium) - 85px);
-
- /* colors for various content boxes: @warning, @note, @deprecated @bug */
- --warning-color: #faf3d8;
- --warning-color-dark: #f3a600;
- --warning-color-darker: #5f4204;
- --note-color: #e4f3ff;
- --note-color-dark: #1879C4;
- --note-color-darker: #274a5c;
- --todo-color: #e4dafd;
- --todo-color-dark: #5b2bdd;
- --todo-color-darker: #2a0d72;
- --deprecated-color: #ecf0f3;
- --deprecated-color-dark: #5b6269;
- --deprecated-color-darker: #43454a;
- --bug-color: #f8d1cc;
- --bug-color-dark: #b61825;
- --bug-color-darker: #75070f;
- --invariant-color: #d8f1e3;
- --invariant-color-dark: #44b86f;
- --invariant-color-darker: #265532;
-
- /* blockquote colors */
- --blockquote-background: #f8f9fa;
- --blockquote-foreground: #636568;
-
- /* table colors */
- --tablehead-background: #f1f1f1;
- --tablehead-foreground: var(--page-foreground-color);
-
- /* menu-display: block | none
- * Visibility of the top navigation on screens >= 768px. On smaller screen the menu is always visible.
- * `GENERATE_TREEVIEW` MUST be enabled!
- */
- --menu-display: block;
-
- --menu-focus-foreground: var(--on-primary-color);
- --menu-focus-background: var(--primary-color);
- --menu-selected-background: rgba(0,0,0,.05);
-
-
- --header-background: var(--page-background-color);
- --header-foreground: var(--page-foreground-color);
-
- /* searchbar colors */
- --searchbar-background: var(--side-nav-background);
- --searchbar-foreground: var(--page-foreground-color);
-
- /* searchbar size
- * (`searchbar-width` is only applied on screens >= 768px.
- * on smaller screens the searchbar will always fill the entire screen width) */
- --searchbar-height: 33px;
- --searchbar-width: 210px;
- --searchbar-border-radius: var(--searchbar-height);
-
- /* code block colors */
- --code-background: #f5f5f5;
- --code-foreground: var(--page-foreground-color);
-
- /* fragment colors */
- --fragment-background: #F8F9FA;
- --fragment-foreground: #37474F;
- --fragment-keyword: #bb6bb2;
- --fragment-keywordtype: #8258b3;
- --fragment-keywordflow: #d67c3b;
- --fragment-token: #438a59;
- --fragment-comment: #969696;
- --fragment-link: #5383d6;
- --fragment-preprocessor: #46aaa5;
- --fragment-linenumber-color: #797979;
- --fragment-linenumber-background: #f4f4f5;
- --fragment-linenumber-border: #e3e5e7;
- --fragment-lineheight: 20px;
-
- /* sidebar navigation (treeview) colors */
- --side-nav-background: #fbfbfb;
- --side-nav-foreground: var(--page-foreground-color);
- --side-nav-arrow-opacity: 0;
- --side-nav-arrow-hover-opacity: 0.9;
-
- --toc-background: var(--side-nav-background);
- --toc-foreground: var(--side-nav-foreground);
-
- /* height of an item in any tree / collapsible table */
- --tree-item-height: 30px;
-
- --memname-font-size: var(--code-font-size);
- --memtitle-font-size: 18px;
-
- --webkit-scrollbar-size: 7px;
- --webkit-scrollbar-padding: 4px;
- --webkit-scrollbar-color: var(--separator-color);
-
- --animation-duration: .12s
-}
-
-@media screen and (max-width: 767px) {
- html {
- --page-font-size: 16px;
- --navigation-font-size: 16px;
- --toc-font-size: 15px;
- --code-font-size: 15px; /* affects code, fragment */
- --title-font-size: 22px;
- }
-}
-
-@media (prefers-color-scheme: dark) {
- html:not(.light-mode) {
- color-scheme: dark;
-
- --primary-color: #1982d2;
- --primary-dark-color: #86a9c4;
- --primary-light-color: #4779ac;
-
- --box-shadow: 0 2px 8px 0 rgba(0,0,0,.35);
-
- --odd-color: rgba(100,100,100,.06);
-
- --menu-selected-background: rgba(0,0,0,.4);
-
- --page-background-color: #1C1D1F;
- --page-foreground-color: #d2dbde;
- --page-secondary-foreground-color: #859399;
- --separator-color: #38393b;
- --side-nav-background: #252628;
-
- --code-background: #2a2c2f;
-
- --tablehead-background: #2a2c2f;
-
- --blockquote-background: #222325;
- --blockquote-foreground: #7e8c92;
-
- --warning-color: #3b2e04;
- --warning-color-dark: #f1b602;
- --warning-color-darker: #ceb670;
- --note-color: #163750;
- --note-color-dark: #1982D2;
- --note-color-darker: #dcf0fa;
- --todo-color: #2a2536;
- --todo-color-dark: #7661b3;
- --todo-color-darker: #ae9ed6;
- --deprecated-color: #2e323b;
- --deprecated-color-dark: #738396;
- --deprecated-color-darker: #abb0bd;
- --bug-color: #2e1917;
- --bug-color-dark: #ad2617;
- --bug-color-darker: #f5b1aa;
- --invariant-color: #303a35;
- --invariant-color-dark: #76ce96;
- --invariant-color-darker: #cceed5;
-
- --fragment-background: #282c34;
- --fragment-foreground: #dbe4eb;
- --fragment-keyword: #cc99cd;
- --fragment-keywordtype: #ab99cd;
- --fragment-keywordflow: #e08000;
- --fragment-token: #7ec699;
- --fragment-comment: #999999;
- --fragment-link: #98c0e3;
- --fragment-preprocessor: #65cabe;
- --fragment-linenumber-color: #cccccc;
- --fragment-linenumber-background: #35393c;
- --fragment-linenumber-border: #1f1f1f;
- }
-}
-
-/* dark mode variables are defined twice, to support both the dark-mode without and with doxygen-awesome-darkmode-toggle.js */
-html.dark-mode {
- color-scheme: dark;
-
- --primary-color: #1982d2;
- --primary-dark-color: #86a9c4;
- --primary-light-color: #4779ac;
-
- --box-shadow: 0 2px 8px 0 rgba(0,0,0,.30);
-
- --odd-color: rgba(100,100,100,.06);
-
- --menu-selected-background: rgba(0,0,0,.4);
-
- --page-background-color: #1C1D1F;
- --page-foreground-color: #d2dbde;
- --page-secondary-foreground-color: #859399;
- --separator-color: #38393b;
- --side-nav-background: #252628;
-
- --code-background: #2a2c2f;
-
- --tablehead-background: #2a2c2f;
-
- --blockquote-background: #222325;
- --blockquote-foreground: #7e8c92;
-
- --warning-color: #3b2e04;
- --warning-color-dark: #f1b602;
- --warning-color-darker: #ceb670;
- --note-color: #163750;
- --note-color-dark: #1982D2;
- --note-color-darker: #dcf0fa;
- --todo-color: #2a2536;
- --todo-color-dark: #7661b3;
- --todo-color-darker: #ae9ed6;
- --deprecated-color: #2e323b;
- --deprecated-color-dark: #738396;
- --deprecated-color-darker: #abb0bd;
- --bug-color: #2e1917;
- --bug-color-dark: #ad2617;
- --bug-color-darker: #f5b1aa;
- --invariant-color: #303a35;
- --invariant-color-dark: #76ce96;
- --invariant-color-darker: #cceed5;
-
- --fragment-background: #282c34;
- --fragment-foreground: #dbe4eb;
- --fragment-keyword: #cc99cd;
- --fragment-keywordtype: #ab99cd;
- --fragment-keywordflow: #e08000;
- --fragment-token: #7ec699;
- --fragment-comment: #999999;
- --fragment-link: #98c0e3;
- --fragment-preprocessor: #65cabe;
- --fragment-linenumber-color: #cccccc;
- --fragment-linenumber-background: #35393c;
- --fragment-linenumber-border: #1f1f1f;
-}
-
-body {
- color: var(--page-foreground-color);
- background-color: var(--page-background-color);
- font-size: var(--page-font-size);
-}
-
-body, table, div, p, dl, #nav-tree .label, #nav-tree a, .title,
-.sm-dox a, .sm-dox a:hover, .sm-dox a:focus, #projectname,
-.SelectItem, #MSearchField, .navpath li.navelem a,
-.navpath li.navelem a:hover, p.reference, p.definition, div.toc li, div.toc h3,
-#page-nav ul.page-outline li a {
- font-family: var(--font-family);
-}
-
-h1, h2, h3, h4, h5 {
- margin-top: 1em;
- font-weight: 600;
- line-height: initial;
-}
-
-p, div, table, dl, p.reference, p.definition {
- font-size: var(--page-font-size);
-}
-
-p.reference, p.definition {
- color: var(--page-secondary-foreground-color);
-}
-
-a:link, a:visited, a:hover, a:focus, a:active {
- color: var(--link-color) !important;
- font-weight: 500;
- background: none;
-}
-
-a:hover {
- text-decoration: underline;
-}
-
-a.anchor {
- scroll-margin-top: var(--spacing-large);
- display: block;
-}
-
-/*
- Title and top navigation
- */
-
-#top {
- background: var(--header-background);
- border-bottom: 1px solid var(--separator-color);
- position: relative;
- z-index: 99;
-}
-
-@media screen and (min-width: 768px) {
- #top {
- display: flex;
- flex-wrap: wrap;
- justify-content: space-between;
- align-items: center;
- }
-}
-
-#main-nav {
- flex-grow: 5;
- padding: var(--spacing-small) var(--spacing-medium);
- border-bottom: 0;
-}
-
-#titlearea {
- width: auto;
- padding: var(--spacing-medium) var(--spacing-large);
- background: none;
- color: var(--header-foreground);
- border-bottom: none;
-}
-
-@media screen and (max-width: 767px) {
- #titlearea {
- padding-bottom: var(--spacing-small);
- }
-}
-
-#titlearea table tbody tr {
- height: auto !important;
-}
-
-#projectname {
- font-size: var(--title-font-size);
- font-weight: 600;
-}
-
-#projectnumber {
- font-family: inherit;
- font-size: 60%;
-}
-
-#projectbrief {
- font-family: inherit;
- font-size: 80%;
-}
-
-#projectlogo {
- vertical-align: middle;
-}
-
-#projectlogo img {
- max-height: calc(var(--title-font-size) * 2);
- margin-right: var(--spacing-small);
-}
-
-.sm-dox, .tabs, .tabs2, .tabs3 {
- background: none;
- padding: 0;
-}
-
-.tabs, .tabs2, .tabs3 {
- border-bottom: 1px solid var(--separator-color);
- margin-bottom: -1px;
-}
-
-.main-menu-btn-icon, .main-menu-btn-icon:before, .main-menu-btn-icon:after {
- background: var(--page-secondary-foreground-color);
-}
-
-@media screen and (max-width: 767px) {
- .sm-dox a span.sub-arrow {
- background: var(--code-background);
- }
-
- #main-menu a.has-submenu span.sub-arrow {
- color: var(--page-secondary-foreground-color);
- border-radius: var(--border-radius-medium);
- }
-
- #main-menu a.has-submenu:hover span.sub-arrow {
- color: var(--page-foreground-color);
- }
-}
-
-@media screen and (min-width: 768px) {
- .sm-dox li, .tablist li {
- display: var(--menu-display);
- }
-
- .sm-dox a span.sub-arrow {
- top: 15px;
- right: 10px;
- box-sizing: content-box;
- padding: 0;
- margin: 0;
- display: inline-block;
- width: 5px;
- height: 5px;
- transform: rotate(45deg);
- border-width: 0;
- border-right: 2px solid var(--header-foreground);
- border-bottom: 2px solid var(--header-foreground);
- background: none;
- }
-
- .sm-dox a:hover span.sub-arrow {
- border-color: var(--menu-focus-foreground);
- background: none;
- }
-
- .sm-dox ul a span.sub-arrow {
- transform: rotate(-45deg);
- border-width: 0;
- border-right: 2px solid var(--header-foreground);
- border-bottom: 2px solid var(--header-foreground);
- }
-
- .sm-dox ul a:hover span.sub-arrow {
- border-color: var(--menu-focus-foreground);
- background: none;
- }
-}
-
-.sm-dox ul {
- background: var(--page-background-color);
- box-shadow: var(--box-shadow);
- border: 1px solid var(--separator-color);
- border-radius: var(--border-radius-medium) !important;
- padding: var(--spacing-small);
- animation: ease-out 150ms slideInMenu;
-}
-
-@keyframes slideInMenu {
- from {
- opacity: 0;
- transform: translate(0px, -2px);
- }
-
- to {
- opacity: 1;
- transform: translate(0px, 0px);
- }
-}
-
-.sm-dox ul a {
- color: var(--page-foreground-color) !important;
- background: none;
- font-size: var(--navigation-font-size);
-}
-
-.sm-dox>li>ul:after {
- border-bottom-color: var(--page-background-color) !important;
-}
-
-.sm-dox>li>ul:before {
- border-bottom-color: var(--separator-color) !important;
-}
-
-.sm-dox ul a:hover, .sm-dox ul a:active, .sm-dox ul a:focus {
- font-size: var(--navigation-font-size) !important;
- color: var(--menu-focus-foreground) !important;
- text-shadow: none;
- background-color: var(--menu-focus-background);
- border-radius: var(--border-radius-small) !important;
-}
-
-.sm-dox a, .sm-dox a:focus, .tablist li, .tablist li a, .tablist li.current a {
- text-shadow: none;
- background: transparent;
- background-image: none !important;
- color: var(--header-foreground) !important;
- font-weight: normal;
- font-size: var(--navigation-font-size);
- border-radius: var(--border-radius-small) !important;
-}
-
-.sm-dox a:focus {
- outline: auto;
-}
-
-.sm-dox a:hover, .sm-dox a:active, .tablist li a:hover {
- text-shadow: none;
- font-weight: normal;
- background: var(--menu-focus-background);
- color: var(--menu-focus-foreground) !important;
- border-radius: var(--border-radius-small) !important;
- font-size: var(--navigation-font-size);
-}
-
-.tablist li.current {
- border-radius: var(--border-radius-small);
- background: var(--menu-selected-background);
-}
-
-.tablist li {
- margin: var(--spacing-small) 0 var(--spacing-small) var(--spacing-small);
-}
-
-.tablist a {
- padding: 0 var(--spacing-large);
-}
-
-
-/*
- Search box
- */
-
-#MSearchBox {
- height: var(--searchbar-height);
- background: var(--searchbar-background);
- border-radius: var(--searchbar-border-radius);
- border: 1px solid var(--separator-color);
- overflow: hidden;
- width: var(--searchbar-width);
- position: relative;
- box-shadow: none;
- display: block;
- margin-top: 0;
- margin-right: 0;
-}
-
-@media (min-width: 768px) {
- .sm-dox li {
- padding: 0;
- }
-}
-
-/* until Doxygen 1.9.4 */
-.left img#MSearchSelect {
- left: 0;
- user-select: none;
- padding-left: 8px;
-}
-
-/* Doxygen 1.9.5 */
-.left span#MSearchSelect {
- left: 0;
- user-select: none;
- margin-left: 8px;
- padding: 0;
-}
-
-.left #MSearchSelect[src$=".png"] {
- padding-left: 0
-}
-
-/* Doxygen 1.14.0 */
-.search-icon::before {
- background: none;
- top: 5px;
-}
-
-.search-icon::after {
- background: none;
- top: 12px;
-}
-
-.SelectionMark {
- user-select: none;
-}
-
-.tabs .left #MSearchSelect {
- padding-left: 0;
-}
-
-.tabs #MSearchBox {
- position: absolute;
- right: var(--spacing-medium);
-}
-
-@media screen and (max-width: 767px) {
- .tabs #MSearchBox {
- position: relative;
- right: 0;
- margin-left: var(--spacing-medium);
- margin-top: 0;
- }
-}
-
-#MSearchSelectWindow, #MSearchResultsWindow {
- z-index: 9999;
-}
-
-#MSearchBox.MSearchBoxActive {
- border-color: var(--primary-color);
- box-shadow: inset 0 0 0 1px var(--primary-color);
-}
-
-#main-menu > li:last-child {
- margin-right: 0;
-}
-
-@media screen and (max-width: 767px) {
- #main-menu > li:last-child {
- height: 50px;
- }
-}
-
-#MSearchField {
- font-size: var(--navigation-font-size);
- height: calc(var(--searchbar-height) - 2px);
- background: transparent;
- width: calc(var(--searchbar-width) - 64px);
-}
-
-.MSearchBoxActive #MSearchField {
- color: var(--searchbar-foreground);
-}
-
-#MSearchSelect {
- top: calc(calc(var(--searchbar-height) / 2) - 11px);
-}
-
-#MSearchBox span.left, #MSearchBox span.right {
- background: none;
- background-image: none;
-}
-
-#MSearchBox span.right {
- padding-top: calc(calc(var(--searchbar-height) / 2) - 12px);
- position: absolute;
- right: var(--spacing-small);
-}
-
-.tabs #MSearchBox span.right {
- top: calc(calc(var(--searchbar-height) / 2) - 12px);
-}
-
-@keyframes slideInSearchResults {
- from {
- opacity: 0;
- transform: translate(0, 15px);
- }
-
- to {
- opacity: 1;
- transform: translate(0, 20px);
- }
-}
-
-#MSearchResultsWindow {
- left: auto !important;
- right: var(--spacing-medium);
- border-radius: var(--border-radius-large);
- border: 1px solid var(--separator-color);
- transform: translate(0, 20px);
- box-shadow: var(--box-shadow);
- animation: ease-out 280ms slideInSearchResults;
- background: var(--page-background-color);
-}
-
-iframe#MSearchResults {
- margin: 4px;
-}
-
-iframe {
- color-scheme: normal;
-}
-
-@media (prefers-color-scheme: dark) {
- html:not(.light-mode) iframe#MSearchResults {
- filter: invert() hue-rotate(180deg);
- }
-}
-
-html.dark-mode iframe#MSearchResults {
- filter: invert() hue-rotate(180deg);
-}
-
-#MSearchResults .SRPage {
- background-color: transparent;
-}
-
-#MSearchResults .SRPage .SREntry {
- font-size: 10pt;
- padding: var(--spacing-small) var(--spacing-medium);
-}
-
-#MSearchSelectWindow {
- border: 1px solid var(--separator-color);
- border-radius: var(--border-radius-medium);
- box-shadow: var(--box-shadow);
- background: var(--page-background-color);
- padding-top: var(--spacing-small);
- padding-bottom: var(--spacing-small);
-}
-
-#MSearchSelectWindow a.SelectItem {
- font-size: var(--navigation-font-size);
- line-height: var(--content-line-height);
- margin: 0 var(--spacing-small);
- border-radius: var(--border-radius-small);
- color: var(--page-foreground-color) !important;
- font-weight: normal;
-}
-
-#MSearchSelectWindow a.SelectItem:hover {
- background: var(--menu-focus-background);
- color: var(--menu-focus-foreground) !important;
-}
-
-@media screen and (max-width: 767px) {
- #MSearchBox {
- margin-top: var(--spacing-medium);
- margin-bottom: var(--spacing-medium);
- width: calc(100vw - 30px);
- }
-
- #main-menu > li:last-child {
- float: none !important;
- }
-
- #MSearchField {
- width: calc(100vw - 110px);
- }
-
- @keyframes slideInSearchResultsMobile {
- from {
- opacity: 0;
- transform: translate(0, 15px);
- }
-
- to {
- opacity: 1;
- transform: translate(0, 20px);
- }
- }
-
- #MSearchResultsWindow {
- left: var(--spacing-medium) !important;
- right: var(--spacing-medium);
- overflow: auto;
- transform: translate(0, 20px);
- animation: ease-out 280ms slideInSearchResultsMobile;
- width: auto !important;
- }
-
- /*
- * Overwrites for fixing the searchbox on mobile in doxygen 1.9.2
- */
- label.main-menu-btn ~ #searchBoxPos1 {
- top: 3px !important;
- right: 6px !important;
- left: 45px;
- display: flex;
- }
-
- label.main-menu-btn ~ #searchBoxPos1 > #MSearchBox {
- margin-top: 0;
- margin-bottom: 0;
- flex-grow: 2;
- float: left;
- }
-}
-
-/*
- Tree view
- */
-
-#side-nav {
- min-width: 8px;
- max-width: 50vw;
-}
-
-
-#nav-tree, #top {
- border-right: 1px solid var(--separator-color);
-}
-
-@media screen and (max-width: 767px) {
- #side-nav {
- display: none;
- }
-
- #doc-content {
- margin-left: 0 !important;
- }
-
- #top {
- border-right: none;
- }
-}
-
-#nav-tree {
- background: var(--side-nav-background);
- margin-right: -1px;
- padding: 0;
-}
-
-#nav-tree .label {
- font-size: var(--navigation-font-size);
- line-height: var(--tree-item-height);
-}
-
-#nav-tree span.label a:hover {
- background: none;
-}
-
-#nav-tree .item {
- height: var(--tree-item-height);
- line-height: var(--tree-item-height);
- overflow: hidden;
- text-overflow: ellipsis;
- margin: 0;
- padding: 0;
-}
-
-#nav-tree-contents {
- margin: 0;
-}
-
-#main-menu > li:last-child {
- height: auto;
-}
-
-#nav-tree .item > a:focus {
- outline: none;
-}
-
-#nav-sync {
- bottom: var(--spacing-medium);
- right: var(--spacing-medium) !important;
- top: auto !important;
- user-select: none;
-}
-
-div.nav-sync-icon {
- border: 1px solid var(--separator-color);
- border-radius: var(--border-radius-medium);
- background: var(--page-background-color);
- width: 30px;
- height: 20px;
-}
-
-div.nav-sync-icon:hover {
- background: var(--page-background-color);
-}
-
-span.sync-icon-left, div.nav-sync-icon:hover span.sync-icon-left {
- border-left: 2px solid var(--primary-color);
- border-top: 2px solid var(--primary-color);
- top: 5px;
- left: 6px;
-}
-span.sync-icon-right, div.nav-sync-icon:hover span.sync-icon-right {
- border-right: 2px solid var(--primary-color);
- border-bottom: 2px solid var(--primary-color);
- top: 5px;
- left: initial;
- right: 6px;
-}
-
-div.nav-sync-icon.active::after, div.nav-sync-icon.active:hover::after {
- border-top: 2px solid var(--primary-color);
- top: 9px;
- left: 6px;
- width: 19px;
-}
-
-#nav-tree .selected {
- text-shadow: none;
- background-image: none;
- background-color: transparent;
- position: relative;
- color: var(--primary-color) !important;
- font-weight: 500;
-}
-
-#nav-tree .selected::after {
- content: "";
- position: absolute;
- top: 1px;
- bottom: 1px;
- left: 0;
- width: 4px;
- border-radius: 0 var(--border-radius-small) var(--border-radius-small) 0;
- background: var(--primary-color);
-}
-
-
-#nav-tree a {
- color: var(--side-nav-foreground) !important;
- font-weight: normal;
-}
-
-#nav-tree a:focus {
- outline-style: auto;
-}
-
-#nav-tree .arrow {
- opacity: var(--side-nav-arrow-opacity);
- background: none;
-}
-
-#nav-tree span.arrowhead {
- margin: 0 0 1px 2px;
-}
-
-span.arrowhead {
- border-color: var(--primary-light-color);
-}
-
-.selected span.arrowhead {
- border-color: var(--primary-color);
-}
-
-#nav-tree-contents > ul > li:first-child > div > a {
- opacity: 0;
- pointer-events: none;
-}
-
-.contents .arrow {
- color: inherit;
- cursor: pointer;
- font-size: 45%;
- vertical-align: middle;
- margin-right: 2px;
- font-family: serif;
- height: auto;
- padding-bottom: 4px;
-}
-
-#nav-tree div.item:hover .arrow, #nav-tree a:focus .arrow {
- opacity: var(--side-nav-arrow-hover-opacity);
-}
-
-#nav-tree .selected a {
- color: var(--primary-color) !important;
- font-weight: bolder;
- font-weight: 600;
-}
-
-.ui-resizable-e {
- background: none;
-}
-
-.ui-resizable-e:hover {
- background: var(--separator-color);
-}
-
-/*
- Contents
- */
-
-div.header {
- border-bottom: 1px solid var(--separator-color);
- background: none;
- background-image: none;
-}
-
-@media screen and (min-width: 1000px) {
- #doc-content > div > div.contents,
- .PageDoc > div.contents {
- display: flex;
- flex-direction: row-reverse;
- flex-wrap: nowrap;
- align-items: flex-start;
- }
-
- div.contents .textblock {
- min-width: 200px;
- flex-grow: 1;
- }
-}
-
-div.contents, div.header .title, div.header .summary {
- max-width: var(--content-maxwidth);
-}
-
-div.contents, div.header .title {
- line-height: initial;
- margin: calc(var(--spacing-medium) + .2em) auto var(--spacing-medium) auto;
-}
-
-div.header .summary {
- margin: var(--spacing-medium) auto 0 auto;
-}
-
-div.headertitle {
- padding: 0;
-}
-
-div.header .title {
- font-weight: 600;
- font-size: 225%;
- padding: var(--spacing-medium) var(--spacing-xlarge);
- word-break: break-word;
-}
-
-div.header .summary {
- width: auto;
- display: block;
- float: none;
- padding: 0 var(--spacing-large);
-}
-
-td.memSeparator {
- border-color: var(--separator-color);
-}
-
-span.mlabel {
- background: var(--primary-color);
- color: var(--on-primary-color);
- border: none;
- padding: 4px 9px;
- border-radius: var(--border-radius-large);
- margin-right: var(--spacing-medium);
-}
-
-span.mlabel:last-of-type {
- margin-right: 2px;
-}
-
-div.contents {
- padding: 0 var(--spacing-xlarge);
-}
-
-div.contents p, div.contents li {
- line-height: var(--content-line-height);
-}
-
-div.contents div.dyncontent {
- margin: var(--spacing-medium) 0;
-}
-
-@media screen and (max-width: 767px) {
- div.contents {
- padding: 0 var(--spacing-large);
- }
-
- div.header .title {
- padding: var(--spacing-medium) var(--spacing-large);
- }
-}
-
-@media (prefers-color-scheme: dark) {
- html:not(.light-mode) div.contents div.dyncontent img,
- html:not(.light-mode) div.contents center img,
- html:not(.light-mode) div.contents > table img,
- html:not(.light-mode) div.contents div.dyncontent iframe,
- html:not(.light-mode) div.contents center iframe,
- html:not(.light-mode) div.contents table iframe,
- html:not(.light-mode) div.contents .dotgraph iframe {
- filter: brightness(89%) hue-rotate(180deg) invert();
- }
-}
-
-html.dark-mode div.contents div.dyncontent img,
-html.dark-mode div.contents center img,
-html.dark-mode div.contents > table img,
-html.dark-mode div.contents div.dyncontent iframe,
-html.dark-mode div.contents center iframe,
-html.dark-mode div.contents table iframe,
-html.dark-mode div.contents .dotgraph iframe
- {
- filter: brightness(89%) hue-rotate(180deg) invert();
-}
-
-td h2.groupheader, h2.groupheader {
- border-bottom: 0px;
- color: var(--page-foreground-color);
- box-shadow:
- 100px 0 var(--page-background-color),
- -100px 0 var(--page-background-color),
- 100px 0.75px var(--separator-color),
- -100px 0.75px var(--separator-color),
- 500px 0 var(--page-background-color),
- -500px 0 var(--page-background-color),
- 500px 0.75px var(--separator-color),
- -500px 0.75px var(--separator-color),
- 900px 0 var(--page-background-color),
- -900px 0 var(--page-background-color),
- 900px 0.75px var(--separator-color),
- -900px 0.75px var(--separator-color),
- 1400px 0 var(--page-background-color),
- -1400px 0 var(--page-background-color),
- 1400px 0.75px var(--separator-color),
- -1400px 0.75px var(--separator-color),
- 1900px 0 var(--page-background-color),
- -1900px 0 var(--page-background-color),
- 1900px 0.75px var(--separator-color),
- -1900px 0.75px var(--separator-color);
-}
-
-blockquote {
- margin: 0 var(--spacing-medium) 0 var(--spacing-medium);
- padding: var(--spacing-small) var(--spacing-large);
- background: var(--blockquote-background);
- color: var(--blockquote-foreground);
- border-left: 0;
- overflow: visible;
- border-radius: var(--border-radius-medium);
- overflow: visible;
- position: relative;
-}
-
-blockquote::before, blockquote::after {
- font-weight: bold;
- font-family: serif;
- font-size: 360%;
- opacity: .15;
- position: absolute;
-}
-
-blockquote::before {
- content: "“";
- left: -10px;
- top: 4px;
-}
-
-blockquote::after {
- content: "”";
- right: -8px;
- bottom: -25px;
-}
-
-blockquote p {
- margin: var(--spacing-small) 0 var(--spacing-medium) 0;
-}
-.paramname, .paramname em {
- font-weight: 600;
- color: var(--primary-dark-color);
-}
-
-.paramname > code {
- border: 0;
-}
-
-table.params .paramname {
- font-weight: 600;
- font-family: var(--font-family-monospace);
- font-size: var(--code-font-size);
- padding-right: var(--spacing-small);
- line-height: var(--table-line-height);
-}
-
-h1.glow, h2.glow, h3.glow, h4.glow, h5.glow, h6.glow {
- text-shadow: 0 0 15px var(--primary-light-color);
-}
-
-.alphachar a {
- color: var(--page-foreground-color);
-}
-
-.dotgraph {
- max-width: 100%;
- overflow-x: scroll;
-}
-
-.dotgraph .caption {
- position: sticky;
- left: 0;
-}
-
-/* Wrap Graphviz graphs with the `interactive_dotgraph` class if `INTERACTIVE_SVG = YES` */
-.interactive_dotgraph .dotgraph iframe {
- max-width: 100%;
-}
-
-/*
- Table of Contents
- */
-
-div.contents .toc {
- max-height: var(--toc-max-height);
- min-width: var(--toc-width);
- border: 0;
- border-left: 1px solid var(--separator-color);
- border-radius: 0;
- background-color: var(--page-background-color);
- box-shadow: none;
- position: sticky;
- top: var(--toc-sticky-top);
- padding: 0 var(--spacing-large);
- margin: var(--spacing-small) 0 var(--spacing-large) var(--spacing-large);
-}
-
-div.toc h3 {
- color: var(--toc-foreground);
- font-size: var(--navigation-font-size);
- margin: var(--spacing-large) 0 var(--spacing-medium) 0;
-}
-
-div.toc li {
- padding: 0;
- background: none;
- line-height: var(--toc-font-size);
- margin: var(--toc-font-size) 0 0 0;
-}
-
-div.toc li::before {
- display: none;
-}
-
-div.toc ul {
- margin-top: 0
-}
-
-div.toc li a {
- font-size: var(--toc-font-size);
- color: var(--page-foreground-color) !important;
- text-decoration: none;
-}
-
-div.toc li a:hover, div.toc li a.active {
- color: var(--primary-color) !important;
-}
-
-div.toc li a.aboveActive {
- color: var(--page-secondary-foreground-color) !important;
-}
-
-
-@media screen and (max-width: 999px) {
- div.contents .toc {
- max-height: 45vh;
- float: none;
- width: auto;
- margin: 0 0 var(--spacing-medium) 0;
- position: relative;
- top: 0;
- position: relative;
- border: 1px solid var(--separator-color);
- border-radius: var(--border-radius-medium);
- background-color: var(--toc-background);
- box-shadow: var(--box-shadow);
- }
-
- div.contents .toc.interactive {
- max-height: calc(var(--navigation-font-size) + 2 * var(--spacing-large));
- overflow: hidden;
- }
-
- div.contents .toc > h3 {
- -webkit-tap-highlight-color: transparent;
- cursor: pointer;
- position: sticky;
- top: 0;
- background-color: var(--toc-background);
- margin: 0;
- padding: var(--spacing-large) 0;
- display: block;
- }
-
- div.contents .toc.interactive > h3::before {
- content: "";
- width: 0;
- height: 0;
- border-left: 4px solid transparent;
- border-right: 4px solid transparent;
- border-top: 5px solid var(--primary-color);
- display: inline-block;
- margin-right: var(--spacing-small);
- margin-bottom: calc(var(--navigation-font-size) / 4);
- transform: rotate(-90deg);
- transition: transform var(--animation-duration) ease-out;
- }
-
- div.contents .toc.interactive.open > h3::before {
- transform: rotate(0deg);
- }
-
- div.contents .toc.interactive.open {
- max-height: 45vh;
- overflow: auto;
- transition: max-height 0.2s ease-in-out;
- }
-
- div.contents .toc a, div.contents .toc a.active {
- color: var(--primary-color) !important;
- }
-
- div.contents .toc a:hover {
- text-decoration: underline;
- }
-}
-
-/*
- Page Outline (Doxygen >= 1.14.0)
-*/
-
-#page-nav {
- background: var(--page-background-color);
- border-left: 1px solid var(--separator-color);
-}
-
-#page-nav #page-nav-resize-handle {
- background: var(--separator-color);
-}
-
-#page-nav #page-nav-resize-handle::after {
- border-left: 1px solid var(--primary-color);
- border-right: 1px solid var(--primary-color);
-}
-
-#page-nav #page-nav-tree #page-nav-contents {
- top: var(--spacing-large);
-}
-
-#page-nav ul.page-outline {
- margin: 0;
- padding: 0;
-}
-
-#page-nav ul.page-outline li a {
- font-size: var(--toc-font-size) !important;
- color: var(--page-secondary-foreground-color) !important;
- display: inline-block;
- line-height: calc(2 * var(--toc-font-size));
-}
-
-#page-nav ul.page-outline li a a.anchorlink {
- display: none;
-}
-
-#page-nav ul.page-outline li.vis ~ * a {
- color: var(--page-foreground-color) !important;
-}
-
-#page-nav ul.page-outline li.vis:not(.vis ~ .vis) a, #page-nav ul.page-outline li a:hover {
- color: var(--primary-color) !important;
-}
-
-#page-nav ul.page-outline .vis {
- background: var(--page-background-color);
- position: relative;
-}
-
-#page-nav ul.page-outline .vis::after {
- content: "";
- position: absolute;
- top: 0;
- bottom: 0;
- left: 0;
- width: 4px;
- background: var(--page-secondary-foreground-color);
-}
-
-#page-nav ul.page-outline .vis:not(.vis ~ .vis)::after {
- top: 1px;
- border-top-right-radius: var(--border-radius-small);
-}
-
-#page-nav ul.page-outline .vis:not(:has(~ .vis))::after {
- bottom: 1px;
- border-bottom-right-radius: var(--border-radius-small);
-}
-
-
-#page-nav ul.page-outline .arrow {
- display: inline-block;
-}
-
-#page-nav ul.page-outline .arrow span {
- display: none;
-}
-
-@media screen and (max-width: 767px) {
- #container {
- grid-template-columns: initial !important;
- }
-
- #page-nav {
- display: none;
- }
-}
-
-/*
- Code & Fragments
- */
-
-code, div.fragment, pre.fragment, span.tt {
- border: 1px solid var(--separator-color);
- overflow: hidden;
-}
-
-code, span.tt {
- display: inline;
- background: var(--code-background);
- color: var(--code-foreground);
- padding: 2px 6px;
- border-radius: var(--border-radius-small);
-}
-
-div.fragment, pre.fragment {
- border-radius: var(--border-radius-medium);
- margin: var(--spacing-medium) 0;
- padding: calc(var(--spacing-large) - (var(--spacing-large) / 6)) var(--spacing-large);
- background: var(--fragment-background);
- color: var(--fragment-foreground);
- overflow-x: auto;
-}
-
-@media screen and (max-width: 767px) {
- div.fragment, pre.fragment {
- border-top-right-radius: 0;
- border-bottom-right-radius: 0;
- border-right: 0;
- }
-
- .contents > div.fragment,
- .textblock > div.fragment,
- .textblock > pre.fragment,
- .textblock > .tabbed > ul > li > div.fragment,
- .textblock > .tabbed > ul > li > pre.fragment,
- .contents > .doxygen-awesome-fragment-wrapper > div.fragment,
- .textblock > .doxygen-awesome-fragment-wrapper > div.fragment,
- .textblock > .doxygen-awesome-fragment-wrapper > pre.fragment,
- .textblock > .tabbed > ul > li > .doxygen-awesome-fragment-wrapper > div.fragment,
- .textblock > .tabbed > ul > li > .doxygen-awesome-fragment-wrapper > pre.fragment {
- margin: var(--spacing-medium) calc(0px - var(--spacing-large));
- border-radius: 0;
- border-left: 0;
- }
-
- .textblock li > .fragment,
- .textblock li > .doxygen-awesome-fragment-wrapper > .fragment {
- margin: var(--spacing-medium) calc(0px - var(--spacing-large));
- }
-
- .memdoc li > .fragment,
- .memdoc li > .doxygen-awesome-fragment-wrapper > .fragment {
- margin: var(--spacing-medium) calc(0px - var(--spacing-medium));
- }
-
- .textblock ul, .memdoc ul {
- overflow: initial;
- }
-
- .memdoc > div.fragment,
- .memdoc > pre.fragment,
- dl dd > div.fragment,
- dl dd pre.fragment,
- .memdoc > .doxygen-awesome-fragment-wrapper > div.fragment,
- .memdoc > .doxygen-awesome-fragment-wrapper > pre.fragment,
- dl dd > .doxygen-awesome-fragment-wrapper > div.fragment,
- dl dd .doxygen-awesome-fragment-wrapper > pre.fragment {
- margin: var(--spacing-medium) calc(0px - var(--spacing-medium));
- border-radius: 0;
- border-left: 0;
- }
-}
-
-code, code a, pre.fragment, div.fragment, div.fragment .line, div.fragment span, div.fragment .line a, div.fragment .line span, span.tt {
- font-family: var(--font-family-monospace);
- font-size: var(--code-font-size) !important;
-}
-
-div.line:after {
- margin-right: var(--spacing-medium);
-}
-
-div.fragment .line, pre.fragment {
- white-space: pre;
- word-wrap: initial;
- line-height: var(--fragment-lineheight);
-}
-
-div.fragment span.keyword {
- color: var(--fragment-keyword);
-}
-
-div.fragment span.keywordtype {
- color: var(--fragment-keywordtype);
-}
-
-div.fragment span.keywordflow {
- color: var(--fragment-keywordflow);
-}
-
-div.fragment span.stringliteral {
- color: var(--fragment-token)
-}
-
-div.fragment span.comment {
- color: var(--fragment-comment);
-}
-
-div.fragment a.code {
- color: var(--fragment-link) !important;
-}
-
-div.fragment span.preprocessor {
- color: var(--fragment-preprocessor);
-}
-
-div.fragment span.lineno {
- display: inline-block;
- width: 27px;
- border-right: none;
- background: var(--fragment-linenumber-background);
- color: var(--fragment-linenumber-color);
-}
-
-div.fragment span.lineno a {
- background: none;
- color: var(--fragment-link) !important;
-}
-
-div.fragment > .line:first-child .lineno {
- box-shadow: -999999px 0px 0 999999px var(--fragment-linenumber-background), -999998px 0px 0 999999px var(--fragment-linenumber-border);
- background-color: var(--fragment-linenumber-background) !important;
-}
-
-div.line {
- border-radius: var(--border-radius-small);
-}
-
-div.line.glow {
- background-color: var(--primary-light-color);
- box-shadow: none;
-}
-
-/*
- dl warning, attention, note, deprecated, bug, ...
- */
-
-dl {
- line-height: calc(1.65 * var(--page-font-size));
-}
-
-dl.bug dt a, dl.deprecated dt a, dl.todo dt a {
- font-weight: bold !important;
-}
-
-dl.warning, dl.attention, dl.note, dl.deprecated, dl.bug, dl.invariant, dl.pre, dl.post, dl.todo, dl.remark {
- padding: var(--spacing-medium);
- margin: var(--spacing-medium) 0;
- color: var(--page-background-color);
- overflow: hidden;
- margin-left: 0;
- border-radius: var(--border-radius-small);
-}
-
-dl.section dd {
- margin-bottom: 2px;
-}
-
-dl.warning, dl.attention {
- background: var(--warning-color);
- border-left: 8px solid var(--warning-color-dark);
- color: var(--warning-color-darker);
-}
-
-dl.warning dt, dl.attention dt {
- color: var(--warning-color-dark);
-}
-
-dl.note, dl.remark {
- background: var(--note-color);
- border-left: 8px solid var(--note-color-dark);
- color: var(--note-color-darker);
-}
-
-dl.note dt, dl.remark dt {
- color: var(--note-color-dark);
-}
-
-dl.todo {
- background: var(--todo-color);
- border-left: 8px solid var(--todo-color-dark);
- color: var(--todo-color-darker);
-}
-
-dl.todo dt a {
- color: var(--todo-color-dark) !important;
-}
-
-dl.bug dt a {
- color: var(--todo-color-dark) !important;
-}
-
-dl.bug {
- background: var(--bug-color);
- border-left: 8px solid var(--bug-color-dark);
- color: var(--bug-color-darker);
-}
-
-dl.bug dt a {
- color: var(--bug-color-dark) !important;
-}
-
-dl.deprecated {
- background: var(--deprecated-color);
- border-left: 8px solid var(--deprecated-color-dark);
- color: var(--deprecated-color-darker);
-}
-
-dl.deprecated dt a {
- color: var(--deprecated-color-dark) !important;
-}
-
-dl.section dd, dl.bug dd, dl.deprecated dd, dl.todo dd {
- margin-inline-start: 0px;
-}
-
-dl.invariant, dl.pre, dl.post {
- background: var(--invariant-color);
- border-left: 8px solid var(--invariant-color-dark);
- color: var(--invariant-color-darker);
-}
-
-dl.invariant dt, dl.pre dt, dl.post dt {
- color: var(--invariant-color-dark);
-}
-
-/*
- memitem
- */
-
-div.memdoc, div.memproto, h2.memtitle {
- box-shadow: none;
- background-image: none;
- border: none;
-}
-
-div.memdoc {
- padding: 0 var(--spacing-medium);
- background: var(--page-background-color);
-}
-
-h2.memtitle, div.memitem {
- border: 1px solid var(--separator-color);
- box-shadow: var(--box-shadow);
-}
-
-h2.memtitle {
- box-shadow: 0px var(--spacing-medium) 0 -1px var(--fragment-background), var(--box-shadow);
-}
-
-div.memitem {
- transition: none;
-}
-
-div.memproto, h2.memtitle {
- background: var(--fragment-background);
-}
-
-h2.memtitle {
- font-weight: 500;
- font-size: var(--memtitle-font-size);
- font-family: var(--font-family-monospace);
- border-bottom: none;
- border-top-left-radius: var(--border-radius-medium);
- border-top-right-radius: var(--border-radius-medium);
- word-break: break-all;
- position: relative;
-}
-
-h2.memtitle:after {
- content: "";
- display: block;
- background: var(--fragment-background);
- height: var(--spacing-medium);
- bottom: calc(0px - var(--spacing-medium));
- left: 0;
- right: -14px;
- position: absolute;
- border-top-right-radius: var(--border-radius-medium);
-}
-
-h2.memtitle > span.permalink {
- font-size: inherit;
-}
-
-h2.memtitle > span.permalink > a {
- text-decoration: none;
- padding-left: 3px;
- margin-right: -4px;
- user-select: none;
- display: inline-block;
- margin-top: -6px;
-}
-
-h2.memtitle > span.permalink > a:hover {
- color: var(--primary-dark-color) !important;
-}
-
-a:target + h2.memtitle, a:target + h2.memtitle + div.memitem {
- border-color: var(--primary-light-color);
-}
-
-div.memitem {
- border-top-right-radius: var(--border-radius-medium);
- border-bottom-right-radius: var(--border-radius-medium);
- border-bottom-left-radius: var(--border-radius-medium);
- border-top-left-radius: 0;
- overflow: hidden;
- display: block !important;
-}
-
-div.memdoc {
- border-radius: 0;
-}
-
-div.memproto {
- border-radius: 0 var(--border-radius-small) 0 0;
- overflow: auto;
- border-bottom: 1px solid var(--separator-color);
- padding: var(--spacing-medium);
- margin-bottom: -1px;
-}
-
-div.memtitle {
- border-top-right-radius: var(--border-radius-medium);
- border-top-left-radius: var(--border-radius-medium);
-}
-
-div.memproto table.memname {
- font-family: var(--font-family-monospace);
- color: var(--page-foreground-color);
- font-size: var(--memname-font-size);
- text-shadow: none;
-}
-
-div.memproto div.memtemplate {
- font-family: var(--font-family-monospace);
- color: var(--primary-dark-color);
- font-size: var(--memname-font-size);
- margin-left: 2px;
- text-shadow: none;
-}
-
-table.mlabels, table.mlabels > tbody {
- display: block;
-}
-
-td.mlabels-left {
- width: auto;
-}
-
-td.mlabels-right {
- margin-top: 3px;
- position: sticky;
- left: 0;
-}
-
-table.mlabels > tbody > tr:first-child {
- display: flex;
- justify-content: space-between;
- flex-wrap: wrap;
-}
-
-.memname, .memitem span.mlabels {
- margin: 0
-}
-
-/*
- reflist
- */
-
-dl.reflist {
- box-shadow: var(--box-shadow);
- border-radius: var(--border-radius-medium);
- border: 1px solid var(--separator-color);
- overflow: hidden;
- padding: 0;
-}
-
-
-dl.reflist dt, dl.reflist dd {
- box-shadow: none;
- text-shadow: none;
- background-image: none;
- border: none;
- padding: 12px;
-}
-
-
-dl.reflist dt {
- font-weight: 500;
- border-radius: 0;
- background: var(--code-background);
- border-bottom: 1px solid var(--separator-color);
- color: var(--page-foreground-color)
-}
-
-
-dl.reflist dd {
- background: none;
-}
-
-/*
- Table
- */
-
-.contents table:not(.memberdecls):not(.mlabels):not(.fieldtable):not(.memname),
-.contents table:not(.memberdecls):not(.mlabels):not(.fieldtable):not(.memname) tbody {
- display: inline-block;
- max-width: 100%;
-}
-
-.contents > table:not(.memberdecls):not(.mlabels):not(.fieldtable):not(.memname):not(.classindex) {
- margin-left: calc(0px - var(--spacing-large));
- margin-right: calc(0px - var(--spacing-large));
- max-width: calc(100% + 2 * var(--spacing-large));
-}
-
-table.fieldtable,
-table.markdownTable tbody,
-table.doxtable tbody {
- border: none;
- margin: var(--spacing-medium) 0;
- box-shadow: 0 0 0 1px var(--separator-color);
- border-radius: var(--border-radius-small);
-}
-
-table.markdownTable, table.doxtable, table.fieldtable {
- padding: 1px;
-}
-
-table.doxtable caption {
- display: block;
-}
-
-table.fieldtable {
- border-collapse: collapse;
- width: 100%;
-}
-
-th.markdownTableHeadLeft,
-th.markdownTableHeadRight,
-th.markdownTableHeadCenter,
-th.markdownTableHeadNone,
-table.doxtable th {
- background: var(--tablehead-background);
- color: var(--tablehead-foreground);
- font-weight: 600;
- font-size: var(--page-font-size);
-}
-
-th.markdownTableHeadLeft:first-child,
-th.markdownTableHeadRight:first-child,
-th.markdownTableHeadCenter:first-child,
-th.markdownTableHeadNone:first-child,
-table.doxtable tr th:first-child {
- border-top-left-radius: var(--border-radius-small);
-}
-
-th.markdownTableHeadLeft:last-child,
-th.markdownTableHeadRight:last-child,
-th.markdownTableHeadCenter:last-child,
-th.markdownTableHeadNone:last-child,
-table.doxtable tr th:last-child {
- border-top-right-radius: var(--border-radius-small);
-}
-
-table.markdownTable td,
-table.markdownTable th,
-table.fieldtable td,
-table.fieldtable th,
-table.doxtable td,
-table.doxtable th {
- border: 1px solid var(--separator-color);
- padding: var(--spacing-small) var(--spacing-medium);
-}
-
-table.markdownTable td:last-child,
-table.markdownTable th:last-child,
-table.fieldtable td:last-child,
-table.fieldtable th:last-child,
-table.doxtable td:last-child,
-table.doxtable th:last-child {
- border-right: none;
-}
-
-table.markdownTable td:first-child,
-table.markdownTable th:first-child,
-table.fieldtable td:first-child,
-table.fieldtable th:first-child,
-table.doxtable td:first-child,
-table.doxtable th:first-child {
- border-left: none;
-}
-
-table.markdownTable tr:first-child td,
-table.markdownTable tr:first-child th,
-table.fieldtable tr:first-child td,
-table.fieldtable tr:first-child th,
-table.doxtable tr:first-child td,
-table.doxtable tr:first-child th {
- border-top: none;
-}
-
-table.markdownTable tr:last-child td,
-table.markdownTable tr:last-child th,
-table.fieldtable tr:last-child td,
-table.fieldtable tr:last-child th,
-table.doxtable tr:last-child td,
-table.doxtable tr:last-child th {
- border-bottom: none;
-}
-
-table.markdownTable tr, table.doxtable tr {
- border-bottom: 1px solid var(--separator-color);
-}
-
-table.markdownTable tr:last-child, table.doxtable tr:last-child {
- border-bottom: none;
-}
-
-.full_width_table table:not(.memberdecls):not(.mlabels):not(.fieldtable):not(.memname) {
- display: block;
-}
-
-.full_width_table table:not(.memberdecls):not(.mlabels):not(.fieldtable):not(.memname) tbody {
- display: table;
- width: 100%;
-}
-
-table.fieldtable th {
- font-size: var(--page-font-size);
- font-weight: 600;
- background-image: none;
- background-color: var(--tablehead-background);
- color: var(--tablehead-foreground);
-}
-
-table.fieldtable td.fieldtype, .fieldtable td.fieldname, .fieldtable td.fieldinit, .fieldtable td.fielddoc, .fieldtable th {
- border-bottom: 1px solid var(--separator-color);
- border-right: 1px solid var(--separator-color);
-}
-
-table.fieldtable tr:last-child td:first-child {
- border-bottom-left-radius: var(--border-radius-small);
-}
-
-table.fieldtable tr:last-child td:last-child {
- border-bottom-right-radius: var(--border-radius-small);
-}
-
-.memberdecls td.glow, .fieldtable tr.glow {
- background-color: var(--primary-light-color);
- box-shadow: none;
-}
-
-table.memberdecls {
- display: block;
- -webkit-tap-highlight-color: transparent;
-}
-
-table.memberdecls tr[class^='memitem'] {
- font-family: var(--font-family-monospace);
- font-size: var(--code-font-size);
-}
-
-table.memberdecls tr[class^='memitem'] .memTemplParams {
- font-family: var(--font-family-monospace);
- font-size: var(--code-font-size);
- color: var(--primary-dark-color);
- white-space: normal;
-}
-
-table.memberdecls tr.heading + tr[class^='memitem'] td.memItemLeft,
-table.memberdecls tr.heading + tr[class^='memitem'] td.memItemRight,
-table.memberdecls td.memItemLeft,
-table.memberdecls td.memItemRight,
-table.memberdecls .memTemplItemLeft,
-table.memberdecls .memTemplItemRight,
-table.memberdecls .memTemplParams {
- transition: none;
- padding-top: var(--spacing-small);
- padding-bottom: var(--spacing-small);
- border-top: 1px solid var(--separator-color);
- border-bottom: 1px solid var(--separator-color);
- background-color: var(--fragment-background);
-}
-
-@media screen and (min-width: 768px) {
-
- tr.heading + tr[class^='memitem'] td.memItemRight, tr.groupHeader + tr[class^='memitem'] td.memItemRight, tr.inherit_header + tr[class^='memitem'] td.memItemRight {
- border-top-right-radius: var(--border-radius-small);
- }
-
- table.memberdecls tr:last-child td.memItemRight, table.memberdecls tr:last-child td.mdescRight, table.memberdecls tr[class^='memitem']:has(+ tr.groupHeader) td.memItemRight, table.memberdecls tr[class^='memitem']:has(+ tr.inherit_header) td.memItemRight, table.memberdecls tr[class^='memdesc']:has(+ tr.groupHeader) td.mdescRight, table.memberdecls tr[class^='memdesc']:has(+ tr.inherit_header) td.mdescRight {
- border-bottom-right-radius: var(--border-radius-small);
- }
-
- table.memberdecls tr:last-child td.memItemLeft, table.memberdecls tr:last-child td.mdescLeft, table.memberdecls tr[class^='memitem']:has(+ tr.groupHeader) td.memItemLeft, table.memberdecls tr[class^='memitem']:has(+ tr.inherit_header) td.memItemLeft, table.memberdecls tr[class^='memdesc']:has(+ tr.groupHeader) td.mdescLeft, table.memberdecls tr[class^='memdesc']:has(+ tr.inherit_header) td.mdescLeft {
- border-bottom-left-radius: var(--border-radius-small);
- }
-
- tr.heading + tr[class^='memitem'] td.memItemLeft, tr.groupHeader + tr[class^='memitem'] td.memItemLeft, tr.inherit_header + tr[class^='memitem'] td.memItemLeft {
- border-top-left-radius: var(--border-radius-small);
- }
-
-}
-
-table.memname td.memname {
- font-size: var(--memname-font-size);
-}
-
-table.memberdecls .memTemplItemLeft,
-table.memberdecls .template .memItemLeft,
-table.memberdecls .memTemplItemRight,
-table.memberdecls .template .memItemRight {
- padding-top: 2px;
-}
-
-table.memberdecls .memTemplParams {
- border-bottom: 0;
- border-left: 1px solid var(--separator-color);
- border-right: 1px solid var(--separator-color);
- border-radius: var(--border-radius-small) var(--border-radius-small) 0 0;
- padding-bottom: var(--spacing-small);
-}
-
-table.memberdecls .memTemplItemLeft, table.memberdecls .template .memItemLeft {
- border-radius: 0 0 0 var(--border-radius-small);
- border-left: 1px solid var(--separator-color);
- border-top: 0;
-}
-
-table.memberdecls .memTemplItemRight, table.memberdecls .template .memItemRight {
- border-radius: 0 0 var(--border-radius-small) 0;
- border-right: 1px solid var(--separator-color);
- padding-left: 0;
- border-top: 0;
-}
-
-table.memberdecls .memItemLeft {
- border-radius: var(--border-radius-small) 0 0 var(--border-radius-small);
- border-left: 1px solid var(--separator-color);
- padding-left: var(--spacing-medium);
- padding-right: 0;
-}
-
-table.memberdecls .memItemRight {
- border-radius: 0 var(--border-radius-small) var(--border-radius-small) 0;
- border-right: 1px solid var(--separator-color);
- padding-right: var(--spacing-medium);
- padding-left: 0;
-
-}
-
-table.memberdecls .mdescLeft, table.memberdecls .mdescRight {
- background: none;
- color: var(--page-foreground-color);
- padding: var(--spacing-small) 0;
- border: 0;
-}
-
-table.memberdecls [class^="memdesc"] {
- box-shadow: none;
-}
-
-
-table.memberdecls .memItemLeft,
-table.memberdecls .memTemplItemLeft {
- padding-right: var(--spacing-medium);
-}
-
-table.memberdecls .memSeparator {
- background: var(--page-background-color);
- height: var(--spacing-large);
- border: 0;
- transition: none;
-}
-
-table.memberdecls .groupheader {
- margin-bottom: var(--spacing-large);
-}
-
-table.memberdecls .inherit_header td {
- padding: 0 0 var(--spacing-medium) 0;
- text-indent: -12px;
- color: var(--page-secondary-foreground-color);
-}
-
-table.memberdecls span.dynarrow {
- left: 10px;
-}
-
-table.memberdecls img[src="closed.png"],
-table.memberdecls img[src="open.png"],
-div.dynheader img[src="open.png"],
-div.dynheader img[src="closed.png"] {
- width: 0;
- height: 0;
- border-left: 4px solid transparent;
- border-right: 4px solid transparent;
- border-top: 5px solid var(--primary-color);
- margin-top: 8px;
- display: block;
- float: left;
- margin-left: -10px;
- transition: transform var(--animation-duration) ease-out;
-}
-
-tr.heading + tr[class^='memitem'] td.memItemLeft, tr.groupHeader + tr[class^='memitem'] td.memItemLeft, tr.inherit_header + tr[class^='memitem'] td.memItemLeft, tr.heading + tr[class^='memitem'] td.memItemRight, tr.groupHeader + tr[class^='memitem'] td.memItemRight, tr.inherit_header + tr[class^='memitem'] td.memItemRight {
- border-top: 1px solid var(--separator-color);
-}
-
-table.memberdecls img {
- margin-right: 10px;
-}
-
-table.memberdecls img[src="closed.png"],
-div.dynheader img[src="closed.png"] {
- transform: rotate(-90deg);
-
-}
-
-.compoundTemplParams {
- font-family: var(--font-family-monospace);
- color: var(--primary-dark-color);
- font-size: var(--code-font-size);
-}
-
-@media screen and (max-width: 767px) {
-
- table.memberdecls .memItemLeft,
- table.memberdecls .memItemRight,
- table.memberdecls .mdescLeft,
- table.memberdecls .mdescRight,
- table.memberdecls .memTemplItemLeft,
- table.memberdecls .memTemplItemRight,
- table.memberdecls .memTemplParams,
- table.memberdecls .template .memItemLeft,
- table.memberdecls .template .memItemRight,
- table.memberdecls .template .memParams {
- display: block;
- text-align: left;
- padding-left: var(--spacing-large);
- margin: 0 calc(0px - var(--spacing-large)) 0 calc(0px - var(--spacing-large));
- border-right: none;
- border-left: none;
- border-radius: 0;
- white-space: normal;
- }
-
- table.memberdecls .memItemLeft,
- table.memberdecls .mdescLeft,
- table.memberdecls .memTemplItemLeft,
- table.memberdecls .template .memItemLeft {
- border-bottom: 0 !important;
- padding-bottom: 0 !important;
- }
-
- table.memberdecls .memTemplItemLeft,
- table.memberdecls .template .memItemLeft {
- padding-top: 0;
- }
-
- table.memberdecls .mdescLeft {
- margin-bottom: calc(0px - var(--page-font-size));
- }
-
- table.memberdecls .memItemRight,
- table.memberdecls .mdescRight,
- table.memberdecls .memTemplItemRight,
- table.memberdecls .template .memItemRight {
- border-top: 0 !important;
- padding-top: 0 !important;
- padding-right: var(--spacing-large);
- padding-bottom: var(--spacing-medium);
- overflow-x: auto;
- }
-
- table.memberdecls tr[class^='memitem']:not(.inherit) {
- display: block;
- width: calc(100vw - 2 * var(--spacing-large));
- }
-
- table.memberdecls .mdescRight {
- color: var(--page-foreground-color);
- }
-
- table.memberdecls tr.inherit {
- visibility: hidden;
- }
-
- table.memberdecls tr[style="display: table-row;"] {
- display: block !important;
- visibility: visible;
- width: calc(100vw - 2 * var(--spacing-large));
- animation: fade .5s;
- }
-
- @keyframes fade {
- 0% {
- opacity: 0;
- max-height: 0;
- }
-
- 100% {
- opacity: 1;
- max-height: 200px;
- }
- }
-
- tr.heading + tr[class^='memitem'] td.memItemRight, tr.groupHeader + tr[class^='memitem'] td.memItemRight, tr.inherit_header + tr[class^='memitem'] td.memItemRight {
- border-top-right-radius: 0;
- }
-
- table.memberdecls tr:last-child td.memItemRight, table.memberdecls tr:last-child td.mdescRight, table.memberdecls tr[class^='memitem']:has(+ tr.groupHeader) td.memItemRight, table.memberdecls tr[class^='memitem']:has(+ tr.inherit_header) td.memItemRight, table.memberdecls tr[class^='memdesc']:has(+ tr.groupHeader) td.mdescRight, table.memberdecls tr[class^='memdesc']:has(+ tr.inherit_header) td.mdescRight {
- border-bottom-right-radius: 0;
- }
-
- table.memberdecls tr:last-child td.memItemLeft, table.memberdecls tr:last-child td.mdescLeft, table.memberdecls tr[class^='memitem']:has(+ tr.groupHeader) td.memItemLeft, table.memberdecls tr[class^='memitem']:has(+ tr.inherit_header) td.memItemLeft, table.memberdecls tr[class^='memdesc']:has(+ tr.groupHeader) td.mdescLeft, table.memberdecls tr[class^='memdesc']:has(+ tr.inherit_header) td.mdescLeft {
- border-bottom-left-radius: 0;
- }
-
- tr.heading + tr[class^='memitem'] td.memItemLeft, tr.groupHeader + tr[class^='memitem'] td.memItemLeft, tr.inherit_header + tr[class^='memitem'] td.memItemLeft {
- border-top-left-radius: 0;
- }
-}
-
-
-/*
- Horizontal Rule
- */
-
-hr {
- margin-top: var(--spacing-large);
- margin-bottom: var(--spacing-large);
- height: 1px;
- background-color: var(--separator-color);
- border: 0;
-}
-
-.contents hr {
- box-shadow: 100px 0 var(--separator-color),
- -100px 0 var(--separator-color),
- 500px 0 var(--separator-color),
- -500px 0 var(--separator-color),
- 900px 0 var(--separator-color),
- -900px 0 var(--separator-color),
- 1400px 0 var(--separator-color),
- -1400px 0 var(--separator-color),
- 1900px 0 var(--separator-color),
- -1900px 0 var(--separator-color);
-}
-
-.contents img, .contents .center, .contents center, .contents div.image object {
- max-width: 100%;
- overflow: auto;
-}
-
-@media screen and (max-width: 767px) {
- .contents .dyncontent > .center, .contents > center {
- margin-left: calc(0px - var(--spacing-large));
- margin-right: calc(0px - var(--spacing-large));
- max-width: calc(100% + 2 * var(--spacing-large));
- }
-}
-
-/*
- Directories
- */
-div.directory {
- border-top: 1px solid var(--separator-color);
- border-bottom: 1px solid var(--separator-color);
- width: auto;
-}
-
-table.directory {
- font-family: var(--font-family);
- font-size: var(--page-font-size);
- font-weight: normal;
- width: 100%;
-}
-
-table.directory td.entry, table.directory td.desc {
- padding: calc(var(--spacing-small) / 2) var(--spacing-small);
- line-height: var(--table-line-height);
-}
-
-table.directory tr.even td:last-child {
- border-radius: 0 var(--border-radius-small) var(--border-radius-small) 0;
-}
-
-table.directory tr.even td:first-child {
- border-radius: var(--border-radius-small) 0 0 var(--border-radius-small);
-}
-
-table.directory tr.even:last-child td:last-child {
- border-radius: 0 var(--border-radius-small) 0 0;
-}
-
-table.directory tr.even:last-child td:first-child {
- border-radius: var(--border-radius-small) 0 0 0;
-}
-
-table.directory td.desc {
- min-width: 250px;
-}
-
-table.directory tr.even {
- background-color: var(--odd-color);
-}
-
-table.directory tr.odd {
- background-color: transparent;
-}
-
-.icona {
- width: auto;
- height: auto;
- margin: 0 var(--spacing-small);
-}
-
-.icon {
- background: var(--primary-color);
- border-radius: var(--border-radius-small);
- font-size: var(--page-font-size);
- padding: calc(var(--page-font-size) / 5);
- line-height: var(--page-font-size);
- transform: scale(0.8);
- height: auto;
- width: var(--page-font-size);
- user-select: none;
-}
-
-.iconfopen, .icondoc, .iconfclosed {
- background-position: center;
- margin-bottom: 0;
- height: var(--table-line-height);
-}
-
-.icondoc {
- filter: saturate(0.2);
-}
-
-@media screen and (max-width: 767px) {
- div.directory {
- margin-left: calc(0px - var(--spacing-large));
- margin-right: calc(0px - var(--spacing-large));
- }
-}
-
-@media (prefers-color-scheme: dark) {
- html:not(.light-mode) .iconfopen, html:not(.light-mode) .iconfclosed {
- filter: hue-rotate(180deg) invert();
- }
-}
-
-html.dark-mode .iconfopen, html.dark-mode .iconfclosed {
- filter: hue-rotate(180deg) invert();
-}
-
-/*
- Class list
- */
-
-.classindex dl.odd {
- background: var(--odd-color);
- border-radius: var(--border-radius-small);
-}
-
-.classindex dl.even {
- background-color: transparent;
-}
-
-/*
- Class Index Doxygen 1.8
-*/
-
-table.classindex {
- margin-left: 0;
- margin-right: 0;
- width: 100%;
-}
-
-table.classindex table div.ah {
- background-image: none;
- background-color: initial;
- border-color: var(--separator-color);
- color: var(--page-foreground-color);
- box-shadow: var(--box-shadow);
- border-radius: var(--border-radius-large);
- padding: var(--spacing-small);
-}
-
-div.qindex {
- background-color: var(--odd-color);
- border-radius: var(--border-radius-small);
- border: 1px solid var(--separator-color);
- padding: var(--spacing-small) 0;
-}
-
-/*
- Footer and nav-path
- */
-
-#nav-path {
- width: 100%;
-}
-
-#nav-path ul {
- background-image: none;
- background: var(--page-background-color);
- border: none;
- border-top: 1px solid var(--separator-color);
- border-bottom: 0;
- font-size: var(--navigation-font-size);
-}
-
-img.footer {
- width: 60px;
-}
-
-.navpath li.footer {
- color: var(--page-secondary-foreground-color);
-}
-
-address.footer {
- color: var(--page-secondary-foreground-color);
- margin-bottom: var(--spacing-large);
-}
-
-#nav-path li.navelem {
- background-image: none;
- display: flex;
- align-items: center;
-}
-
-.navpath li.navelem a {
- text-shadow: none;
- display: inline-block;
- color: var(--primary-color) !important;
-}
-
-.navpath li.navelem a:hover {
- text-shadow: none;
-}
-
-.navpath li.navelem b {
- color: var(--primary-dark-color);
- font-weight: 500;
-}
-
-li.navelem {
- padding: 0;
- margin-left: -8px;
-}
-
-li.navelem:first-child {
- margin-left: var(--spacing-large);
-}
-
-li.navelem:first-child:before {
- display: none;
-}
-
-#nav-path ul {
- padding-left: 0;
-}
-
-#nav-path li.navelem:has(.el):after {
- content: '';
- border: 5px solid var(--page-background-color);
- border-bottom-color: transparent;
- border-right-color: transparent;
- border-top-color: transparent;
- transform: translateY(-1px) scaleY(4.2);
- z-index: 10;
- margin-left: 6px;
-}
-
-#nav-path li.navelem:not(:has(.el)):after {
- background: var(--page-background-color);
- box-shadow: 1px -1px 0 1px var(--separator-color);
- border-radius: 0 var(--border-radius-medium) 0 50px;
-}
-
-#nav-path li.navelem:not(:has(.el)) {
- margin-left: 0;
-}
-
-#nav-path li.navelem:not(:has(.el)):hover, #nav-path li.navelem:not(:has(.el)):hover:after {
- background-color: var(--separator-color);
-}
-
-#nav-path li.navelem:has(.el):before {
- content: '';
- border: 5px solid var(--separator-color);
- border-bottom-color: transparent;
- border-right-color: transparent;
- border-top-color: transparent;
- transform: translateY(-1px) scaleY(3.2);
- margin-right: var(--spacing-small);
-}
-
-.navpath li.navelem a:hover {
- color: var(--primary-color);
-}
-
-/*
- Scrollbars for Webkit
-*/
-
-#nav-tree::-webkit-scrollbar,
-div.fragment::-webkit-scrollbar,
-pre.fragment::-webkit-scrollbar,
-div.memproto::-webkit-scrollbar,
-.contents center::-webkit-scrollbar,
-.contents .center::-webkit-scrollbar,
-.contents table:not(.memberdecls):not(.mlabels):not(.fieldtable):not(.memname) tbody::-webkit-scrollbar,
-div.contents .toc::-webkit-scrollbar,
-.contents .dotgraph::-webkit-scrollbar,
-.contents .tabs-overview-container::-webkit-scrollbar {
- background: transparent;
- width: calc(var(--webkit-scrollbar-size) + var(--webkit-scrollbar-padding) + var(--webkit-scrollbar-padding));
- height: calc(var(--webkit-scrollbar-size) + var(--webkit-scrollbar-padding) + var(--webkit-scrollbar-padding));
-}
-
-#nav-tree::-webkit-scrollbar-thumb,
-div.fragment::-webkit-scrollbar-thumb,
-pre.fragment::-webkit-scrollbar-thumb,
-div.memproto::-webkit-scrollbar-thumb,
-.contents center::-webkit-scrollbar-thumb,
-.contents .center::-webkit-scrollbar-thumb,
-.contents table:not(.memberdecls):not(.mlabels):not(.fieldtable):not(.memname) tbody::-webkit-scrollbar-thumb,
-div.contents .toc::-webkit-scrollbar-thumb,
-.contents .dotgraph::-webkit-scrollbar-thumb,
-.contents .tabs-overview-container::-webkit-scrollbar-thumb {
- background-color: transparent;
- border: var(--webkit-scrollbar-padding) solid transparent;
- border-radius: calc(var(--webkit-scrollbar-padding) + var(--webkit-scrollbar-padding));
- background-clip: padding-box;
-}
-
-#nav-tree:hover::-webkit-scrollbar-thumb,
-div.fragment:hover::-webkit-scrollbar-thumb,
-pre.fragment:hover::-webkit-scrollbar-thumb,
-div.memproto:hover::-webkit-scrollbar-thumb,
-.contents center:hover::-webkit-scrollbar-thumb,
-.contents .center:hover::-webkit-scrollbar-thumb,
-.contents table:not(.memberdecls):not(.mlabels):not(.fieldtable):not(.memname) tbody:hover::-webkit-scrollbar-thumb,
-div.contents .toc:hover::-webkit-scrollbar-thumb,
-.contents .dotgraph:hover::-webkit-scrollbar-thumb,
-.contents .tabs-overview-container:hover::-webkit-scrollbar-thumb {
- background-color: var(--webkit-scrollbar-color);
-}
-
-#nav-tree::-webkit-scrollbar-track,
-div.fragment::-webkit-scrollbar-track,
-pre.fragment::-webkit-scrollbar-track,
-div.memproto::-webkit-scrollbar-track,
-.contents center::-webkit-scrollbar-track,
-.contents .center::-webkit-scrollbar-track,
-.contents table:not(.memberdecls):not(.mlabels):not(.fieldtable):not(.memname) tbody::-webkit-scrollbar-track,
-div.contents .toc::-webkit-scrollbar-track,
-.contents .dotgraph::-webkit-scrollbar-track,
-.contents .tabs-overview-container::-webkit-scrollbar-track {
- background: transparent;
-}
-
-#nav-tree::-webkit-scrollbar-corner {
- background-color: var(--side-nav-background);
-}
-
-#nav-tree,
-div.fragment,
-pre.fragment,
-div.memproto,
-.contents center,
-.contents .center,
-.contents table:not(.memberdecls):not(.mlabels):not(.fieldtable):not(.memname) tbody,
-div.contents .toc {
- overflow-x: auto;
- overflow-x: overlay;
-}
-
-#nav-tree {
- overflow-x: auto;
- overflow-y: auto;
- overflow-y: overlay;
-}
-
-/*
- Scrollbars for Firefox
-*/
-
-#nav-tree,
-div.fragment,
-pre.fragment,
-div.memproto,
-.contents center,
-.contents .center,
-.contents table:not(.memberdecls):not(.mlabels):not(.fieldtable):not(.memname) tbody,
-div.contents .toc,
-.contents .dotgraph,
-.contents .tabs-overview-container {
- scrollbar-width: thin;
-}
-
-/*
- Optional Dark mode toggle button
-*/
-
-doxygen-awesome-dark-mode-toggle {
- display: inline-block;
- margin: 0 0 0 var(--spacing-small);
- padding: 0;
- width: var(--searchbar-height);
- height: var(--searchbar-height);
- background: none;
- border: none;
- border-radius: var(--searchbar-border-radius);
- vertical-align: middle;
- text-align: center;
- line-height: var(--searchbar-height);
- font-size: 22px;
- display: flex;
- align-items: center;
- justify-content: center;
- user-select: none;
- cursor: pointer;
-}
-
-doxygen-awesome-dark-mode-toggle > svg {
- transition: transform var(--animation-duration) ease-in-out;
-}
-
-doxygen-awesome-dark-mode-toggle:active > svg {
- transform: scale(.5);
-}
-
-doxygen-awesome-dark-mode-toggle:hover {
- background-color: rgba(0,0,0,.03);
-}
-
-html.dark-mode doxygen-awesome-dark-mode-toggle:hover {
- background-color: rgba(0,0,0,.18);
-}
-
-/*
- Optional fragment copy button
-*/
-.doxygen-awesome-fragment-wrapper {
- position: relative;
-}
-
-doxygen-awesome-fragment-copy-button {
- opacity: 0;
- background: var(--fragment-background);
- width: 28px;
- height: 28px;
- position: absolute;
- right: calc(var(--spacing-large) - (var(--spacing-large) / 2.5));
- top: calc(var(--spacing-large) - (var(--spacing-large) / 2.5));
- border: 1px solid var(--fragment-foreground);
- cursor: pointer;
- border-radius: var(--border-radius-small);
- display: flex;
- justify-content: center;
- align-items: center;
-}
-
-.doxygen-awesome-fragment-wrapper:hover doxygen-awesome-fragment-copy-button, doxygen-awesome-fragment-copy-button.success {
- opacity: .28;
-}
-
-doxygen-awesome-fragment-copy-button:hover, doxygen-awesome-fragment-copy-button.success {
- opacity: 1 !important;
-}
-
-doxygen-awesome-fragment-copy-button:active:not([class~=success]) svg {
- transform: scale(.91);
-}
-
-doxygen-awesome-fragment-copy-button svg {
- fill: var(--fragment-foreground);
- width: 18px;
- height: 18px;
-}
-
-doxygen-awesome-fragment-copy-button.success svg {
- fill: rgb(14, 168, 14);
-}
-
-doxygen-awesome-fragment-copy-button.success {
- border-color: rgb(14, 168, 14);
-}
-
-@media screen and (max-width: 767px) {
- .textblock > .doxygen-awesome-fragment-wrapper > doxygen-awesome-fragment-copy-button,
- .textblock li > .doxygen-awesome-fragment-wrapper > doxygen-awesome-fragment-copy-button,
- .memdoc li > .doxygen-awesome-fragment-wrapper > doxygen-awesome-fragment-copy-button,
- .memdoc > .doxygen-awesome-fragment-wrapper > doxygen-awesome-fragment-copy-button,
- dl dd > .doxygen-awesome-fragment-wrapper > doxygen-awesome-fragment-copy-button {
- right: 0;
- }
-}
-
-/*
- Optional paragraph link button
-*/
-
-a.anchorlink {
- font-size: 90%;
- margin-left: var(--spacing-small);
- color: var(--page-foreground-color) !important;
- text-decoration: none;
- opacity: .15;
- display: none;
- transition: opacity var(--animation-duration) ease-in-out, color var(--animation-duration) ease-in-out;
-}
-
-a.anchorlink svg {
- fill: var(--page-foreground-color);
-}
-
-h3 a.anchorlink svg, h4 a.anchorlink svg {
- margin-bottom: -3px;
- margin-top: -4px;
-}
-
-a.anchorlink:hover {
- opacity: .45;
-}
-
-h2:hover a.anchorlink, h1:hover a.anchorlink, h3:hover a.anchorlink, h4:hover a.anchorlink {
- display: inline-block;
-}
-
-/*
- Optional tab feature
-*/
-
-.tabbed > ul {
- padding-inline-start: 0px;
- margin: 0;
- padding: var(--spacing-small) 0;
-}
-
-.tabbed > ul > li {
- display: none;
-}
-
-.tabbed > ul > li.selected {
- display: block;
-}
-
-.tabs-overview-container {
- overflow-x: auto;
- display: block;
- overflow-y: visible;
-}
-
-.tabs-overview {
- border-bottom: 1px solid var(--separator-color);
- display: flex;
- flex-direction: row;
-}
-
-@media screen and (max-width: 767px) {
- .tabs-overview-container {
- margin: 0 calc(0px - var(--spacing-large));
- }
- .tabs-overview {
- padding: 0 var(--spacing-large)
- }
-}
-
-.tabs-overview button.tab-button {
- color: var(--page-foreground-color);
- margin: 0;
- border: none;
- background: transparent;
- padding: calc(var(--spacing-large) / 2) 0;
- display: inline-block;
- font-size: var(--page-font-size);
- cursor: pointer;
- box-shadow: 0 1px 0 0 var(--separator-color);
- position: relative;
-
- -webkit-tap-highlight-color: transparent;
-}
-
-.tabs-overview button.tab-button .tab-title::before {
- display: block;
- content: attr(title);
- font-weight: 600;
- height: 0;
- overflow: hidden;
- visibility: hidden;
-}
-
-.tabs-overview button.tab-button .tab-title {
- float: left;
- white-space: nowrap;
- font-weight: normal;
- font-family: var(--font-family);
- padding: calc(var(--spacing-large) / 2) var(--spacing-large);
- border-radius: var(--border-radius-medium);
- transition: background-color var(--animation-duration) ease-in-out, font-weight var(--animation-duration) ease-in-out;
-}
-
-.tabs-overview button.tab-button:not(:last-child) .tab-title {
- box-shadow: 8px 0 0 -7px var(--separator-color);
-}
-
-.tabs-overview button.tab-button:hover .tab-title {
- background: var(--separator-color);
- box-shadow: none;
-}
-
-.tabs-overview button.tab-button.active .tab-title {
- font-weight: 600;
-}
-
-.tabs-overview button.tab-button::after {
- content: '';
- display: block;
- position: absolute;
- left: 0;
- bottom: 0;
- right: 0;
- height: 0;
- width: 0%;
- margin: 0 auto;
- border-radius: var(--border-radius-small) var(--border-radius-small) 0 0;
- background-color: var(--primary-color);
- transition: width var(--animation-duration) ease-in-out, height var(--animation-duration) ease-in-out;
-}
-
-.tabs-overview button.tab-button.active::after {
- width: 100%;
- box-sizing: border-box;
- height: 3px;
-}
-
-
-/*
- Navigation Buttons
-*/
-
-.section_buttons:not(:empty) {
- margin-top: calc(var(--spacing-large) * 3);
-}
-
-.section_buttons table.markdownTable {
- display: block;
- width: 100%;
-}
-
-.section_buttons table.markdownTable tbody {
- display: table !important;
- width: 100%;
- box-shadow: none;
- border-spacing: 10px;
-}
-
-.section_buttons table.markdownTable td {
- padding: 0;
-}
-
-.section_buttons table.markdownTable th {
- display: none;
-}
-
-.section_buttons table.markdownTable tr.markdownTableHead {
- border: none;
-}
-
-.section_buttons tr th, .section_buttons tr td {
- background: none;
- border: none;
- padding: var(--spacing-large) 0 var(--spacing-small);
-}
-
-.section_buttons a {
- display: inline-block;
- border: 1px solid var(--separator-color);
- border-radius: var(--border-radius-medium);
- color: var(--page-secondary-foreground-color) !important;
- text-decoration: none;
- transition: color var(--animation-duration) ease-in-out, background-color var(--animation-duration) ease-in-out;
-}
-
-.section_buttons a:hover {
- color: var(--page-foreground-color) !important;
- background-color: var(--odd-color);
-}
-
-.section_buttons tr td.markdownTableBodyLeft a {
- padding: var(--spacing-medium) var(--spacing-large) var(--spacing-medium) calc(var(--spacing-large) / 2);
-}
-
-.section_buttons tr td.markdownTableBodyRight a {
- padding: var(--spacing-medium) calc(var(--spacing-large) / 2) var(--spacing-medium) var(--spacing-large);
-}
-
-.section_buttons tr td.markdownTableBodyLeft a::before,
-.section_buttons tr td.markdownTableBodyRight a::after {
- color: var(--page-secondary-foreground-color) !important;
- display: inline-block;
- transition: color .08s ease-in-out, transform .09s ease-in-out;
-}
-
-.section_buttons tr td.markdownTableBodyLeft a::before {
- content: '〈';
- padding-right: var(--spacing-large);
-}
-
-
-.section_buttons tr td.markdownTableBodyRight a::after {
- content: '〉';
- padding-left: var(--spacing-large);
-}
-
-
-.section_buttons tr td.markdownTableBodyLeft a:hover::before {
- color: var(--page-foreground-color) !important;
- transform: translateX(-3px);
-}
-
-.section_buttons tr td.markdownTableBodyRight a:hover::after {
- color: var(--page-foreground-color) !important;
- transform: translateX(3px);
-}
-
-@media screen and (max-width: 450px) {
- .section_buttons a {
- width: 100%;
- box-sizing: border-box;
- }
-
- .section_buttons tr td:nth-of-type(1).markdownTableBodyLeft a {
- border-radius: var(--border-radius-medium) 0 0 var(--border-radius-medium);
- border-right: none;
- }
-
- .section_buttons tr td:nth-of-type(2).markdownTableBodyRight a {
- border-radius: 0 var(--border-radius-medium) var(--border-radius-medium) 0;
- }
-}
-
-/*
- Bordered image
-*/
-
-html.dark-mode .darkmode_inverted_image img, /* < doxygen 1.9.3 */
-html.dark-mode .darkmode_inverted_image object[type="image/svg+xml"] /* doxygen 1.9.3 */ {
- filter: brightness(89%) hue-rotate(180deg) invert();
-}
-
-.bordered_image {
- border-radius: var(--border-radius-small);
- border: 1px solid var(--separator-color);
- display: inline-block;
- overflow: hidden;
-}
-
-.bordered_image:empty {
- border: none;
-}
-
-html.dark-mode .bordered_image img, /* < doxygen 1.9.3 */
-html.dark-mode .bordered_image object[type="image/svg+xml"] /* doxygen 1.9.3 */ {
- border-radius: var(--border-radius-small);
-}
-
-/*
- Button
-*/
-
-.primary-button {
- display: inline-block;
- cursor: pointer;
- background: var(--primary-color);
- color: var(--page-background-color) !important;
- border-radius: var(--border-radius-medium);
- padding: var(--spacing-small) var(--spacing-medium);
- text-decoration: none;
-}
-
-.primary-button:hover {
- background: var(--primary-dark-color);
-} \ No newline at end of file
diff --git a/api-docs/cppdocs/header.html b/api-docs/cppdocs/header.html
index cf41aa50..a73a36bb 100644
--- a/api-docs/cppdocs/header.html
+++ b/api-docs/cppdocs/header.html
@@ -1,37 +1,36 @@
-<!-- HTML header for doxygen 1.9.4-->
+<!-- HTML header for doxygen 1.15.0-->
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
-<html xmlns="http://www.w3.org/1999/xhtml">
+<html xmlns="http://www.w3.org/1999/xhtml" lang="$langISO">
<head>
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
<meta http-equiv="X-UA-Compatible" content="IE=11"/>
<meta name="generator" content="Doxygen $doxygenversion"/>
<meta name="viewport" content="width=device-width, initial-scale=1"/>
-<!--BEGIN PROJECT_NAME--><title>BinaryNinja C++ API: $title</title><!--END PROJECT_NAME-->
-<!--BEGIN !PROJECT_NAME--><title>BinaryNinja C++ API</title><!--END !PROJECT_NAME-->
+<!--BEGIN PROJECT_NAME--><title>$projectname: $title</title><!--END PROJECT_NAME-->
+<!--BEGIN !PROJECT_NAME--><title>$title</title><!--END !PROJECT_NAME-->
+<!--BEGIN PROJECT_ICON-->
+<link rel="icon" href="$relpath^$projecticon" type="image/x-icon" />
+<!--END PROJECT_ICON-->
<link href="$relpath^tabs.css" rel="stylesheet" type="text/css"/>
-<!--BEGIN DISABLE_INDEX-->
- <!--BEGIN FULL_SIDEBAR-->
+<!--BEGIN FULL_SIDEBAR-->
<script type="text/javascript">var page_layout=1;</script>
- <!--END FULL_SIDEBAR-->
-<!--END DISABLE_INDEX-->
+<!--END FULL_SIDEBAR-->
<script type="text/javascript" src="$relpath^jquery.js"></script>
<script type="text/javascript" src="$relpath^dynsections.js"></script>
+<!--BEGIN COPY_CLIPBOARD-->
+<script type="text/javascript" src="$relpath^clipboard.js"></script>
+<!--END COPY_CLIPBOARD-->
$treeview
$search
$mathjax
<link href="$relpath^$stylesheet" rel="stylesheet" type="text/css" />
$extrastylesheet
-<script type="text/javascript" src="$relpath^doxygen-awesome-darkmode-toggle.js"></script>
-<script type="text/javascript">
- DoxygenAwesomeDarkModeToggle.init()
-</script>
+<script type="text/javascript" src="$relpath^binaryninja-darkmode.js"></script>
</head>
<body>
-<!--BEGIN DISABLE_INDEX-->
- <!--BEGIN FULL_SIDEBAR-->
+<!--BEGIN FULL_SIDEBAR-->
<div id="side-nav" class="ui-resizable side-nav-resizable"><!-- do not remove this div, it is closed by doxygen! -->
- <!--END FULL_SIDEBAR-->
-<!--END DISABLE_INDEX-->
+<!--END FULL_SIDEBAR-->
<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
@@ -41,7 +40,7 @@ $extrastylesheet
<tbody>
<tr id="projectrow">
<!--BEGIN PROJECT_LOGO-->
- <td id="projectlogo"><img alt="Logo" src="$relpath^$projectlogo"/></td>
+ <td id="projectlogo"><img alt="Logo" src="$relpath^$projectlogo"$logosize/></td>
<!--END PROJECT_LOGO-->
<!--BEGIN PROJECT_NAME-->
<td id="projectalign">
@@ -50,6 +49,11 @@ $extrastylesheet
</td>
<!--END PROJECT_NAME-->
<!--BEGIN !PROJECT_NAME-->
+ <!--BEGIN PROJECT_BRIEF-->
+ <td>
+ <div id="projectbrief">$projectbrief</div>
+ </td>
+ <!--END PROJECT_BRIEF-->
<!--END !PROJECT_NAME-->
<!--BEGIN DISABLE_INDEX-->
<!--BEGIN SEARCHENGINE-->