diff --git a/map/app/public/css/style.css b/map/app/public/css/style.css
index c89bc19..ff10ef3 100644
--- a/map/app/public/css/style.css
+++ b/map/app/public/css/style.css
@@ -1013,6 +1013,105 @@ body {
color: #666;
}
+/* Search Result Item with QR Button */
+.search-result-item {
+ position: relative;
+ padding: 12px;
+ border-bottom: 1px solid #e0e0e0;
+}
+
+.search-result-item:last-child {
+ border-bottom: none;
+}
+
+.search-result-item .make-qr-btn {
+ position: absolute;
+ top: 12px;
+ right: 12px;
+ padding: 4px 8px;
+ font-size: 12px;
+}
+
+/* QR Code Modal Styles */
+.qr-modal {
+ z-index: 11000; /* Ensure QR modal is above everything else */
+}
+
+.qr-modal-content {
+ max-width: 400px;
+ text-align: center;
+ z-index: 11001; /* Even higher for the content */
+ position: relative;
+}
+
+.qr-modal-body {
+ padding: 30px;
+}
+
+.qr-code-image {
+ max-width: 256px;
+ height: auto;
+ margin: 0 auto 20px;
+ display: block;
+ border: 4px solid var(--light-color);
+ border-radius: var(--border-radius);
+}
+
+.qr-code-info {
+ margin-top: 20px;
+}
+
+.qr-code-info p {
+ margin-bottom: 10px;
+ color: var(--secondary-color);
+ font-size: 14px;
+}
+
+.qr-code-url {
+ color: var(--primary-color);
+ text-decoration: none;
+ word-break: break-all;
+ font-size: 14px;
+}
+
+.qr-code-url:hover {
+ text-decoration: underline;
+}
+
+.qr-loading {
+ padding: 40px;
+}
+
+/* Adjust search result layout to accommodate button */
+.docs-search-results-list .search-result {
+ display: block;
+ padding-right: 100px; /* Make room for QR button */
+}
+
+/* Mobile responsiveness for QR button */
+@media (max-width: 768px) {
+ .search-result-item .make-qr-btn {
+ position: static;
+ display: block;
+ width: 100%;
+ margin-top: 10px;
+ }
+
+ .docs-search-results-list .search-result {
+ padding-right: 12px;
+ }
+
+ .qr-modal-content {
+ width: 95%;
+ max-width: 350px;
+ z-index: 11001; /* Maintain high z-index on mobile */
+ }
+
+ .qr-modal {
+ z-index: 11000; /* Maintain high z-index on mobile */
+ }
+}
+
/* Mobile responsiveness */
@media (max-width: 768px) {
.docs-search-container {
@@ -1020,7 +1119,7 @@ body {
width: 100%;
margin: 10px 0;
padding: 0 0px;
- /* Remove z-index */
+ z-index:10002/* Remove z-index */
}
.docs-search-wrapper {
diff --git a/map/app/public/js/mkdocs-search.js b/map/app/public/js/mkdocs-search.js
index 85467ec..901f083 100644
--- a/map/app/public/js/mkdocs-search.js
+++ b/map/app/public/js/mkdocs-search.js
@@ -215,18 +215,128 @@ export class MkDocsSearch {
resultsCount.textContent = 'No results';
} else {
resultsCount.textContent = `${results.length} result${results.length > 1 ? 's' : ''}`;
- resultsContainer.innerHTML = results.map(result => `
-
-
Failed to generate QR code
'; + }; + } + + // Add method to create QR modal + createQRModal() { + const modal = document.createElement('div'); + modal.id = 'qr-code-modal'; + modal.className = 'modal qr-modal'; // Ensure both classes for styling + modal.innerHTML = ` + + `; + + // Add close functionality + const closeBtn = modal.querySelector('#close-qr-modal'); + closeBtn.addEventListener('click', () => { + modal.classList.add('hidden'); + }); + + // Close on background click + modal.addEventListener('click', (e) => { + if (e.target === modal) { + modal.classList.add('hidden'); + } + }); + + // Close on Escape key + document.addEventListener('keydown', (e) => { + if (e.key === 'Escape' && !modal.classList.contains('hidden')) { + modal.classList.add('hidden'); + } + }); + + return modal; + } + closeResults(inputElement, resultsElement) { resultsElement.classList.add('hidden'); inputElement.value = ''; diff --git a/mkdocs/docs/assets/built.png b/mkdocs/docs/assets/built.png new file mode 100644 index 0000000..be3081e Binary files /dev/null and b/mkdocs/docs/assets/built.png differ diff --git a/mkdocs/docs/assets/repo-data/admin-changemaker.lite.json b/mkdocs/docs/assets/repo-data/admin-changemaker.lite.json index e7b2447..d21b0ca 100644 --- a/mkdocs/docs/assets/repo-data/admin-changemaker.lite.json +++ b/mkdocs/docs/assets/repo-data/admin-changemaker.lite.json @@ -7,10 +7,10 @@ "stars_count": 0, "forks_count": 0, "open_issues_count": 10, - "updated_at": "2025-07-19T15:31:47-06:00", + "updated_at": "2025-07-20T10:26:01-06:00", "created_at": "2025-05-28T14:54:59-06:00", "clone_url": "https://gitea.bnkops.com/admin/changemaker.lite.git", "ssh_url": "git@gitea.bnkops.com:admin/changemaker.lite.git", "default_branch": "main", - "last_build_update": "2025-07-19T15:31:47-06:00" + "last_build_update": "2025-07-20T10:26:01-06:00" } \ No newline at end of file diff --git a/mkdocs/docs/assets/repo-data/anthropics-claude-code.json b/mkdocs/docs/assets/repo-data/anthropics-claude-code.json index cda4a3f..426077d 100644 --- a/mkdocs/docs/assets/repo-data/anthropics-claude-code.json +++ b/mkdocs/docs/assets/repo-data/anthropics-claude-code.json @@ -4,10 +4,10 @@ "description": "Claude Code is an agentic coding tool that lives in your terminal, understands your codebase, and helps you code faster by executing routine tasks, explaining complex code, and handling git workflows - all through natural language commands.", "html_url": "https://github.com/anthropics/claude-code", "language": "PowerShell", - "stars_count": 24630, - "forks_count": 1348, - "open_issues_count": 2163, - "updated_at": "2025-07-19T21:51:01Z", + "stars_count": 24785, + "forks_count": 1360, + "open_issues_count": 2190, + "updated_at": "2025-07-20T17:36:39Z", "created_at": "2025-02-22T17:41:21Z", "clone_url": "https://github.com/anthropics/claude-code.git", "ssh_url": "git@github.com:anthropics/claude-code.git", diff --git a/mkdocs/docs/assets/repo-data/coder-code-server.json b/mkdocs/docs/assets/repo-data/coder-code-server.json index d9bbaa8..85a4000 100644 --- a/mkdocs/docs/assets/repo-data/coder-code-server.json +++ b/mkdocs/docs/assets/repo-data/coder-code-server.json @@ -4,10 +4,10 @@ "description": "VS Code in the browser", "html_url": "https://github.com/coder/code-server", "language": "TypeScript", - "stars_count": 72971, - "forks_count": 6111, + "stars_count": 72988, + "forks_count": 6112, "open_issues_count": 139, - "updated_at": "2025-07-19T21:22:59Z", + "updated_at": "2025-07-20T17:46:07Z", "created_at": "2019-02-27T16:50:41Z", "clone_url": "https://github.com/coder/code-server.git", "ssh_url": "git@github.com:coder/code-server.git", diff --git a/mkdocs/docs/assets/repo-data/gethomepage-homepage.json b/mkdocs/docs/assets/repo-data/gethomepage-homepage.json index 2e763bf..9de0522 100644 --- a/mkdocs/docs/assets/repo-data/gethomepage-homepage.json +++ b/mkdocs/docs/assets/repo-data/gethomepage-homepage.json @@ -4,13 +4,13 @@ "description": "A highly customizable homepage (or startpage / application dashboard) with Docker and service API integrations.", "html_url": "https://github.com/gethomepage/homepage", "language": "JavaScript", - "stars_count": 24890, - "forks_count": 1543, + "stars_count": 24903, + "forks_count": 1544, "open_issues_count": 2, - "updated_at": "2025-07-19T20:23:14Z", + "updated_at": "2025-07-20T17:37:56Z", "created_at": "2022-08-24T07:29:42Z", "clone_url": "https://github.com/gethomepage/homepage.git", "ssh_url": "git@github.com:gethomepage/homepage.git", "default_branch": "dev", - "last_build_update": "2025-07-19T12:12:42Z" + "last_build_update": "2025-07-20T12:13:09Z" } \ No newline at end of file diff --git a/mkdocs/docs/assets/repo-data/go-gitea-gitea.json b/mkdocs/docs/assets/repo-data/go-gitea-gitea.json index 2ee70fb..9825e6f 100644 --- a/mkdocs/docs/assets/repo-data/go-gitea-gitea.json +++ b/mkdocs/docs/assets/repo-data/go-gitea-gitea.json @@ -4,13 +4,13 @@ "description": "Git with a cup of tea! Painless self-hosted all-in-one software development service, including Git hosting, code review, team collaboration, package registry and CI/CD", "html_url": "https://github.com/go-gitea/gitea", "language": "Go", - "stars_count": 49633, + "stars_count": 49648, "forks_count": 5914, - "open_issues_count": 2730, - "updated_at": "2025-07-19T20:29:59Z", + "open_issues_count": 2728, + "updated_at": "2025-07-20T16:44:42Z", "created_at": "2016-11-01T02:13:26Z", "clone_url": "https://github.com/go-gitea/gitea.git", "ssh_url": "git@github.com:go-gitea/gitea.git", "default_branch": "main", - "last_build_update": "2025-07-18T14:02:57Z" + "last_build_update": "2025-07-20T01:49:36Z" } \ No newline at end of file diff --git a/mkdocs/docs/assets/repo-data/knadh-listmonk.json b/mkdocs/docs/assets/repo-data/knadh-listmonk.json index cf41b4d..f2adfe7 100644 --- a/mkdocs/docs/assets/repo-data/knadh-listmonk.json +++ b/mkdocs/docs/assets/repo-data/knadh-listmonk.json @@ -4,13 +4,13 @@ "description": "High performance, self-hosted, newsletter and mailing list manager with a modern dashboard. Single binary app.", "html_url": "https://github.com/knadh/listmonk", "language": "Go", - "stars_count": 17349, - "forks_count": 1674, - "open_issues_count": 103, - "updated_at": "2025-07-19T19:01:50Z", + "stars_count": 17355, + "forks_count": 1673, + "open_issues_count": 98, + "updated_at": "2025-07-20T13:46:34Z", "created_at": "2019-06-26T05:08:39Z", "clone_url": "https://github.com/knadh/listmonk.git", "ssh_url": "git@github.com:knadh/listmonk.git", "default_branch": "master", - "last_build_update": "2025-07-17T13:58:21Z" + "last_build_update": "2025-07-20T12:18:04Z" } \ No newline at end of file diff --git a/mkdocs/docs/assets/repo-data/lyqht-mini-qr.json b/mkdocs/docs/assets/repo-data/lyqht-mini-qr.json index 415430a..088b388 100644 --- a/mkdocs/docs/assets/repo-data/lyqht-mini-qr.json +++ b/mkdocs/docs/assets/repo-data/lyqht-mini-qr.json @@ -4,10 +4,10 @@ "description": "Create & scan cute qr codes easily \ud83d\udc7e", "html_url": "https://github.com/lyqht/mini-qr", "language": "Vue", - "stars_count": 1288, + "stars_count": 1291, "forks_count": 172, - "open_issues_count": 12, - "updated_at": "2025-07-19T16:11:51Z", + "open_issues_count": 13, + "updated_at": "2025-07-20T11:49:09Z", "created_at": "2023-04-21T14:20:14Z", "clone_url": "https://github.com/lyqht/mini-qr.git", "ssh_url": "git@github.com:lyqht/mini-qr.git", diff --git a/mkdocs/docs/assets/repo-data/n8n-io-n8n.json b/mkdocs/docs/assets/repo-data/n8n-io-n8n.json index b4339b7..acedbfc 100644 --- a/mkdocs/docs/assets/repo-data/n8n-io-n8n.json +++ b/mkdocs/docs/assets/repo-data/n8n-io-n8n.json @@ -4,13 +4,13 @@ "description": "Fair-code workflow automation platform with native AI capabilities. Combine visual building with custom code, self-host or cloud, 400+ integrations.", "html_url": "https://github.com/n8n-io/n8n", "language": "TypeScript", - "stars_count": 120972, - "forks_count": 36362, - "open_issues_count": 983, - "updated_at": "2025-07-19T21:52:44Z", + "stars_count": 121441, + "forks_count": 36499, + "open_issues_count": 987, + "updated_at": "2025-07-20T17:49:04Z", "created_at": "2019-06-22T09:24:21Z", "clone_url": "https://github.com/n8n-io/n8n.git", "ssh_url": "git@github.com:n8n-io/n8n.git", "default_branch": "master", - "last_build_update": "2025-07-18T21:42:36Z" + "last_build_update": "2025-07-20T14:58:33Z" } \ No newline at end of file diff --git a/mkdocs/docs/assets/repo-data/nocodb-nocodb.json b/mkdocs/docs/assets/repo-data/nocodb-nocodb.json index 0e13596..f0662db 100644 --- a/mkdocs/docs/assets/repo-data/nocodb-nocodb.json +++ b/mkdocs/docs/assets/repo-data/nocodb-nocodb.json @@ -4,10 +4,10 @@ "description": "\ud83d\udd25 \ud83d\udd25 \ud83d\udd25 Open Source Airtable Alternative", "html_url": "https://github.com/nocodb/nocodb", "language": "TypeScript", - "stars_count": 55862, - "forks_count": 4023, + "stars_count": 55879, + "forks_count": 4026, "open_issues_count": 677, - "updated_at": "2025-07-19T21:43:09Z", + "updated_at": "2025-07-20T17:42:16Z", "created_at": "2017-10-29T18:51:48Z", "clone_url": "https://github.com/nocodb/nocodb.git", "ssh_url": "git@github.com:nocodb/nocodb.git", diff --git a/mkdocs/docs/assets/repo-data/ollama-ollama.json b/mkdocs/docs/assets/repo-data/ollama-ollama.json index fda0655..7bb683a 100644 --- a/mkdocs/docs/assets/repo-data/ollama-ollama.json +++ b/mkdocs/docs/assets/repo-data/ollama-ollama.json @@ -4,10 +4,10 @@ "description": "Get up and running with Llama 3.3, DeepSeek-R1, Phi-4, Gemma 3, Mistral Small 3.1 and other large language models.", "html_url": "https://github.com/ollama/ollama", "language": "Go", - "stars_count": 146966, - "forks_count": 12450, + "stars_count": 147025, + "forks_count": 12459, "open_issues_count": 1920, - "updated_at": "2025-07-19T21:40:59Z", + "updated_at": "2025-07-20T17:32:08Z", "created_at": "2023-06-26T19:39:32Z", "clone_url": "https://github.com/ollama/ollama.git", "ssh_url": "git@github.com:ollama/ollama.git", diff --git a/mkdocs/docs/assets/repo-data/squidfunk-mkdocs-material.json b/mkdocs/docs/assets/repo-data/squidfunk-mkdocs-material.json index 068e6ec..0829284 100644 --- a/mkdocs/docs/assets/repo-data/squidfunk-mkdocs-material.json +++ b/mkdocs/docs/assets/repo-data/squidfunk-mkdocs-material.json @@ -4,10 +4,10 @@ "description": "Documentation that simply works", "html_url": "https://github.com/squidfunk/mkdocs-material", "language": "Python", - "stars_count": 23942, - "forks_count": 3816, + "stars_count": 23952, + "forks_count": 3817, "open_issues_count": 7, - "updated_at": "2025-07-19T18:43:32Z", + "updated_at": "2025-07-20T17:36:49Z", "created_at": "2016-01-28T22:09:23Z", "clone_url": "https://github.com/squidfunk/mkdocs-material.git", "ssh_url": "git@github.com:squidfunk/mkdocs-material.git", diff --git a/mkdocs/docs/overrides/lander.html b/mkdocs/docs/overrides/lander.html index 4e408c0..bbf391b 100644 --- a/mkdocs/docs/overrides/lander.html +++ b/mkdocs/docs/overrides/lander.html @@ -223,7 +223,7 @@ } .stat-label { - color: var(--text-light); + color: var(--text-dark); font-size: 0.875rem; } @@ -611,6 +611,7 @@ opacity: 0.9; margin-bottom: 0.75rem; line-height: 1.4; + color: #dfbfe6; } .site-status { @@ -1034,7 +1035,7 @@- Give your canvassers instant answers at the door. Turn your campaign knowledge into a searchable, + Give your canvassers instant answers at the door. Turn your campaign website & knowledge into a searchable, mobile-first documentation system that actually works in the field. Your data, your servers, your control.
Your voter data on US servers. Your strategies in corporate clouds. Your movement's future in someone else's hands.
+Your data is locked behind expensive subscriptions. Your strategies in corporate clouds. Your movement's future in someone else's hands.
Build and deploy beautiful websites & documentation using the tools already used by the worlds largest organizations.
+
+ Create beautiful, searchable documentation that your team will actually use.
+
Live sites powered by Changemaker Lite in production today
@@ -1580,51 +1599,6 @@