about summary refs log tree commit diff stats
path: root/html/matt-chat
diff options
context:
space:
mode:
authorelioat <elioat@tilde.institute>2025-01-05 09:37:47 -0500
committerelioat <elioat@tilde.institute>2025-01-05 09:37:47 -0500
commit7772f62651bd7d40d9638e55b02abf9fffd0f6ac (patch)
treea003545fb41f4768e318a4bab6bc82c47fec642a /html/matt-chat
parent7bb5ea3372c81f25c0ad9bae889acf9d7e61da40 (diff)
downloadtour-7772f62651bd7d40d9638e55b02abf9fffd0f6ac.tar.gz
*
Diffstat (limited to 'html/matt-chat')
-rw-r--r--html/matt-chat/index.html205
1 files changed, 188 insertions, 17 deletions
diff --git a/html/matt-chat/index.html b/html/matt-chat/index.html
index 535dc29..eac9a05 100644
--- a/html/matt-chat/index.html
+++ b/html/matt-chat/index.html
@@ -516,6 +516,177 @@
             top: -2px;
             font-size: 14px;
         }
+
+        /* LCARS Theme */
+        body.theme-lcars {
+            font-family: "Helvetica Neue", Arial, sans-serif;
+            font-size: 18px;
+            margin: 0;
+            padding: 20px;
+            background-color: #000;
+            color: #FF9966;
+            max-width: 800px;
+            margin: 0 auto;
+            display: flex;
+            flex-direction: column;
+            align-items: center;
+            height: 100vh;
+            overflow: hidden;
+        }
+
+        .theme-lcars #chat-container {
+            background-color: #000;
+            border: none;
+            border-radius: 0;
+            padding: 1em;
+            margin: 0 auto;
+            flex: 1;
+            overflow-y: auto;
+            width: 100%;
+            max-height: 400px;
+            scroll-behavior: smooth;
+            position: relative;
+        }
+
+        .theme-lcars #chat-container::before {
+            content: '';
+            position: absolute;
+            top: 0;
+            left: 0;
+            right: 0;
+            height: 2em;
+            background: #CC6699;
+            border-radius: 20px 20px 0 0;
+        }
+
+        .theme-lcars #user-input {
+            width: 100%;
+            padding: 10px;
+            border: none;
+            background-color: #000;
+            color: #FF9966;
+            font-family: "Helvetica Neue", Arial, sans-serif;
+            font-size: 16px;
+            margin-top: 10px;
+            box-sizing: border-box;
+            border-left: 2em solid #CC6699;
+        }
+
+        .theme-lcars #send-button {
+            padding: 10px 15px;
+            background-color: #CC6699;
+            color: #000;
+            border: none;
+            cursor: pointer;
+            margin-top: 10px;
+            width: 100%;
+            font-family: "Helvetica Neue", Arial, sans-serif;
+            font-weight: bold;
+            font-size: 16px;
+            text-transform: uppercase;
+            border-radius: 0 0 20px 20px;
+        }
+
+        .theme-lcars #send-button:hover {
+            background-color: #FF9966;
+        }
+
+        .theme-lcars .message {
+            white-space: pre-wrap;
+            margin-bottom: 10px;
+            padding: 1em;
+            border: none;
+            display: block;
+            max-width: 100%;
+            position: relative;
+        }
+
+        .theme-lcars .user-message {
+            background-color: #000;
+            color: #FF9966;
+            text-align: right;
+            margin-left: 20px;
+            border-right: 1em solid #CC6699;
+        }
+
+        .theme-lcars .bot-message {
+            background-color: #000;
+            color: #99CCFF;
+            text-align: left;
+            margin-right: 20px;
+            border-left: 1em solid #9999CC;
+        }
+
+        .theme-lcars .bot-time {
+            color: #CC6699;
+            font-size: 0.8em;
+            text-align: center;
+            margin: 4px 0;
+        }
+
+        .theme-lcars #counter {
+            color: #99CCFF !important;
+        }
+
+        .theme-lcars .model-select-container {
+            background-color: #000;
+            border: none;
+            padding: 10px;
+            margin-bottom: 10px;
+            width: 100%;
+            box-sizing: border-box;
+            display: flex;
+            align-items: center;
+            border-radius: 20px;
+            position: relative;
+            overflow: hidden;
+        }
+
+        .theme-lcars .model-select-container::before {
+            content: '';
+            position: absolute;
+            top: 0;
+            left: 0;
+            bottom: 0;
+            width: 2em;
+            background: #9999CC;
+            border-radius: 20px 0 0 20px;
+        }
+
+        .theme-lcars #model-select {
+            background-color: #000;
+            color: #FF9966;
+            border: none;
+            padding: 5px;
+            margin-left: 3em;
+            font-family: "Helvetica Neue", Arial, sans-serif;
+            font-size: 16px;
+        }
+
+        .theme-lcars input[type="checkbox"] {
+            appearance: none;
+            -webkit-appearance: none;
+            width: 16px;
+            height: 16px;
+            border: 2px solid #CC6699;
+            background-color: #000;
+            position: relative;
+            vertical-align: middle;
+            margin-right: 5px;
+        }
+
+        .theme-lcars input[type="checkbox"]:checked {
+            background-color: #CC6699;
+        }
+
+        .theme-lcars input[type="checkbox"]:checked::after {
+            content: '✓';
+            position: absolute;
+            left: 2px;
+            top: -2px;
+            color: #000;
+            font-size: 14px;
+        }
     </style>
 </head>
 <body>
@@ -572,10 +743,11 @@
 
         // Add this near the top with other constants
         const AVAILABLE_THEMES = {
-            'professional': 'Professional Theme',
-            'molly-millions': 'Molly Millions Cyberpunk Theme',
-            'cloud': 'Cloud JRPG Theme',
-            'classic': 'Classic Mac OS Theme'
+            'professional': 'Boring, like wearing a tie',
+            'molly-millions': 'Molly Millions\' manicure',
+            'cloud': 'It took a lot of self control not to add sound effects',
+            'classic': 'This is not a fish',
+            'engage': 'Boldly going'
         };
 
         // Function to handle errors
@@ -629,24 +801,19 @@
         }
 
         document.addEventListener("DOMContentLoaded", () => {
-            populateModelSelect(); // Populate the model select dropdown
-            // Load the saved model from local storage
+            populateModelSelect();
             const modelSelect = document.getElementById("model-select");
             const savedModel = localStorage.getItem("selectedModel");
             if (savedModel) {
                 modelSelect.value = savedModel;
             }
-            // Save the selected model to local storage when changed
             modelSelect.addEventListener("change", () => {
                 localStorage.setItem("selectedModel", modelSelect.value);
             });
-            
-            // Load saved theme
             const savedTheme = localStorage.getItem('selectedTheme') || 'professional';
             switchTheme(savedTheme);
         });
 
-        // Add a message to the chat container
         function addMessage(message, sender = "user") {
             const chatContainer = document.getElementById("chat-container");
             const messageElement = document.createElement("div");
@@ -656,9 +823,9 @@
             
             // Scroll to the new message with a smooth animation
             messageElement.scrollIntoView({ behavior: "smooth", block: "end" });
-            chatContainer.scrollTop = chatContainer.scrollHeight; // Ensure the chat is scrolled to the bottom
+            chatContainer.scrollTop = chatContainer.scrollHeight; // Make sure the chat is scrolled to the bottom
 
-            return messageElement; // Return the message element for further manipulation
+            return messageElement; // Return the message element so it is easier to use
         }
 
         // Fancy format milliseconds into a more readable format
@@ -690,13 +857,12 @@
         // Event listener to update the counter on input
         document.getElementById("user-input").addEventListener("input", updateCounter);
 
-        // Function to toggle cat mode
         function toggleCatMode() {
             isCatMode = !isCatMode; // Toggle the flag
             if (isCatMode) {
                 config.systemMessage += " You are a cat."; // Append the phrase
             } else {
-                config.systemMessage = config.systemMessage.replace(" You are a cat.", ""); // Remove the phrase
+                config.systemMessage = config.systemMessage.replace(" You are a large, fluffy cat. You are a little aloof, but kind.", ""); // Remove the phrase
             }
             addMessage(`Cat mode is now ${isCatMode ? "enabled" : "disabled"}.`, "bot"); // Inform the user
         }
@@ -748,6 +914,8 @@
                 if (!requestedTheme) {
                     // No theme specified, show available themes
                     addMessage(`Available themes: ${Object.keys(AVAILABLE_THEMES).join(', ')}`, "bot");
+                } else if (requestedTheme === 'engage') {
+                    switchTheme('lcars');
                 } else if (AVAILABLE_THEMES[requestedTheme]) {
                     switchTheme(requestedTheme);
                 } else {
@@ -759,7 +927,7 @@
             }
 
             addMessage(userMessage, "user");
-            userInput.value = ""; // Add this line back to clear the input
+            userInput.value = ""; // Clear input after sending the message
             
             // Reset the counter
             document.getElementById("char-count").textContent = "0";
@@ -843,7 +1011,7 @@
             }
         }
 
-        // Basic animmation for the loading indicator
+        // Basic animation for the loading indicator
         function animateLoadingIndicator(indicator) {
             let dots = 0;
             return setInterval(() => {
@@ -908,7 +1076,7 @@
         function displayHelp() {
             const helpMessage = `
 Available commands:\n
-  /darkmode - Toggle dark mode
+  /dark - Toggle dark mode when using the professional theme
   /cat - Toggle cat mode
   /context - Show the current conversation's context
   /clear - Clear the chat history
@@ -1059,6 +1227,9 @@ Available commands:\n
                     case 'classic':
                         metaThemeColor.setAttribute('content', '#DDDDDD');
                         break;
+                    case 'lcars':
+                        metaThemeColor.setAttribute('content', '#CC6699');
+                        break;
                     case 'professional':
                     default:
                         metaThemeColor.setAttribute('content', '#007BFF');