diff --git a/map/app/public/css/style.css b/map/app/public/css/style.css
index c89bc199..ff10ef3b 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 85467eca..901f083e 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 00000000..be3081eb 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 e7b2447d..d21b0cac 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 cda4a3f2..426077df 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 d9bbaa88..85a40006 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 2e763bf9..9de05227 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 2ee70fbd..9825e6f0 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 cf41b4d3..f2adfe7b 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 415430a6..088b388e 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 b4339b7b..acedbfc3 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 0e135968..f0662dbe 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 fda06553..7bb683aa 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 068e6ecf..0829284d 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 4e408c05..bbf391bc 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 @@