diff --git a/resources/css/app.css b/resources/css/app.css index 3e6abea..1fe3aea 100644 --- a/resources/css/app.css +++ b/resources/css/app.css @@ -9,3 +9,63 @@ --font-sans: 'Instrument Sans', ui-sans-serif, system-ui, sans-serif, 'Apple Color Emoji', 'Segoe UI Emoji', 'Segoe UI Symbol', 'Noto Color Emoji'; } + +.tab-button { + transition: all 0.2s ease-in-out; +} + +.tab-content { + animation: fadeIn 0.3s ease-in-out; +} + +@keyframes fadeIn { + from { + opacity: 0; + transform: translateY(10px); + } + to { + opacity: 1; + transform: translateY(0); + } +} + +.code-block-wrapper { + position: relative; +} + +.copy-button { + position: absolute; + top: 0.5rem; + right: 0.5rem; + padding: 0.375rem 0.75rem; + background-color: rgba(55, 65, 81, 0.8); + color: white; + border: 1px solid rgba(255, 255, 255, 0.2); + border-radius: 0.375rem; + font-size: 0.75rem; + font-weight: 500; + cursor: pointer; + opacity: 0; + transition: all 0.2s ease-in-out; + display: flex; + align-items: center; + gap: 0.25rem; +} + +.code-block-wrapper:hover .copy-button { + opacity: 1; +} + +.copy-button:hover { + background-color: rgba(55, 65, 81, 1); +} + +.copy-button.copied { + background-color: rgba(16, 185, 129, 0.9); + border-color: rgba(16, 185, 129, 1); +} + +.copy-button svg { + width: 1rem; + height: 1rem; +} diff --git a/resources/js/app.js b/resources/js/app.js index e59d6a0..1c58a0c 100644 --- a/resources/js/app.js +++ b/resources/js/app.js @@ -1 +1,38 @@ import './bootstrap'; + +document.addEventListener('DOMContentLoaded', () => { + const codeBlocks = document.querySelectorAll('pre'); + + codeBlocks.forEach((pre) => { + if (!pre.parentElement.classList.contains('code-block-wrapper')) { + const wrapper = document.createElement('div'); + wrapper.className = 'code-block-wrapper'; + pre.parentNode.insertBefore(wrapper, pre); + wrapper.appendChild(pre); + } + + const wrapper = pre.parentElement; + const copyButton = document.createElement('button'); + copyButton.className = 'copy-button'; + copyButton.innerHTML = ` Copy`; + + copyButton.addEventListener('click', () => { + const code = pre.querySelector('code'); + const text = code ? code.textContent : pre.textContent; + + navigator.clipboard.writeText(text).then(() => { + copyButton.classList.add('copied'); + copyButton.innerHTML = ` Copied!`; + + setTimeout(() => { + copyButton.classList.remove('copied'); + copyButton.innerHTML = `Copy`; + }, 2000); + }).catch((err) => { + console.error('Failed to copy:', err); + }); + }); + + wrapper.appendChild(copyButton); + }); +}); diff --git a/resources/views/docs/documentation.blade.php b/resources/views/docs/documentation.blade.php index 69eec19..ad0a549 100644 --- a/resources/views/docs/documentation.blade.php +++ b/resources/views/docs/documentation.blade.php @@ -3,27 +3,6 @@ @section('title', 'Full Documentation - FiveM MCP Server') @section('content') - -
{
"mcpServers": {
"fivem": {
- "url": "https://your-domain.com/mcp"
+ "url": "https://your-domain.com/fivem"
}
}
}
@@ -103,7 +82,7 @@
"mcp": {
"servers": {
"fivem": {
- "url": "https://your-domain.com/mcp"
+ "url": "https://your-domain.com/fivem"
}
}
}
diff --git a/resources/views/docs/index.blade.php b/resources/views/docs/index.blade.php
index 1941fb7..9880d6d 100644
--- a/resources/views/docs/index.blade.php
+++ b/resources/views/docs/index.blade.php
@@ -22,7 +22,7 @@