[object Object]

← back to Flockedwallpaper

flockedwallpaper: untrack 6 stale files at repo root (21MB freed from clone)

3e74f2c35b3eecf20698d32a61086bfa88b71238 · 2026-05-19 23:13:47 -0700 · Steve

- claude-skills-export.zip (21MB), claude-skills-md-only.zip (600K): stale ~/.claude/skills exports from May 7
- index-old-backup.html, server-old-backup.js: pre-rewrite snapshots, superseded
- test-hex-sort.html, test-load.html: throwaway test pages
All 6 now match patterns in .gitignore (previous commit). Files remain on disk; cache-only removal.

Files touched

Diff

commit 3e74f2c35b3eecf20698d32a61086bfa88b71238
Author: Steve <steve@designerwallcoverings.com>
Date:   Tue May 19 23:13:47 2026 -0700

    flockedwallpaper: untrack 6 stale files at repo root (21MB freed from clone)
    
    - claude-skills-export.zip (21MB), claude-skills-md-only.zip (600K): stale ~/.claude/skills exports from May 7
    - index-old-backup.html, server-old-backup.js: pre-rewrite snapshots, superseded
    - test-hex-sort.html, test-load.html: throwaway test pages
    All 6 now match patterns in .gitignore (previous commit). Files remain on disk; cache-only removal.
---
 claude-skills-export.zip  | Bin 22163040 -> 0 bytes
 claude-skills-md-only.zip | Bin 614252 -> 0 bytes
 index-old-backup.html     | 491 ----------------------------------------------
 server-old-backup.js      |  62 ------
 test-hex-sort.html        | 116 -----------
 test-load.html            |  19 --
 6 files changed, 688 deletions(-)

diff --git a/claude-skills-export.zip b/claude-skills-export.zip
deleted file mode 100644
index a7b1613..0000000
Binary files a/claude-skills-export.zip and /dev/null differ
diff --git a/claude-skills-md-only.zip b/claude-skills-md-only.zip
deleted file mode 100644
index d0ff84b..0000000
Binary files a/claude-skills-md-only.zip and /dev/null differ
diff --git a/index-old-backup.html b/index-old-backup.html
deleted file mode 100644
index e49ff53..0000000
--- a/index-old-backup.html
+++ /dev/null
@@ -1,491 +0,0 @@
-<!DOCTYPE html>
-<html lang="en">
-<head>
-    <meta charset="UTF-8">
-    <meta name="viewport" content="width=device-width, initial-scale=1.0">
-    <meta http-equiv="Cache-Control" content="no-cache, no-store, must-revalidate">
-    <meta http-equiv="Pragma" content="no-cache">
-    <meta http-equiv="Expires" content="0">
-    <title>FlockedWallpaper.com - Premium Flocked & Velvet Wallcoverings</title>
-
-    <!-- SEO Meta Tags -->
-    <meta name="description" content="Shop premium flocked and velvet wallcoverings. Curated collection of 300+ luxury textured wallpapers from top designers including Osborne & Little, Cole & Son, Designers Guild. Free samples available.">
-    <meta name="keywords" content="flocked wallpaper, velvet wallcoverings, textured wallpaper, luxury wallpaper, flock velvet wallpaper, designer wallcoverings, damask wallpaper, velvet flock, textured wall coverings, premium wallpaper">
-    <meta name="author" content="FlockedWallpaper.com">
-    <meta name="robots" content="index, follow, max-image-preview:large, max-snippet:-1, max-video-preview:-1">
-    <link rel="canonical" href="https://flockedwallpaper.com/">
-
-    <!-- Open Graph / Facebook -->
-    <meta property="og:type" content="website">
-    <meta property="og:url" content="https://flockedwallpaper.com/">
-    <meta property="og:site_name" content="FlockedWallpaper.com">
-    <meta property="og:title" content="Premium Flocked & Velvet Wallcoverings | 300+ Luxury Designer Wallpapers">
-    <meta property="og:description" content="Discover our curated collection of 300+ luxurious flocked and velvet textured wallpapers from the world's leading designers. Order samples today.">
-    <meta property="og:image" content="https://cdn.shopify.com/s/files/1/0015/4117/7456/files/flockedvelvetwallpaper_0c84de5f-7a44-4f3b-b8fe-c91417d0efdb.png?v=1760485642">
-    <meta property="og:image:width" content="1200">
-    <meta property="og:image:height" content="630">
-    <meta property="og:image:alt" content="Premium flocked and velvet wallpaper collection">
-
-    <!-- Twitter -->
-    <meta name="twitter:card" content="summary_large_image">
-    <meta name="twitter:url" content="https://flockedwallpaper.com/">
-    <meta name="twitter:title" content="Premium Flocked & Velvet Wallcoverings | 300+ Luxury Designer Wallpapers">
-    <meta name="twitter:description" content="Discover our curated collection of 300+ luxurious flocked and velvet textured wallpapers from the world's leading designers.">
-    <meta name="twitter:image" content="https://cdn.shopify.com/s/files/1/0015/4117/7456/files/flockedvelvetwallpaper_0c84de5f-7a44-4f3b-b8fe-c91417d0efdb.png?v=1760485642">
-
-    <!-- Additional SEO -->
-    <meta name="geo.region" content="US">
-    <meta name="geo.placename" content="United States">
-    <meta name="language" content="English">
-
-    <link rel="stylesheet" href="https://flockedwallpaper.com/styles.css?v=12">
-
-    <!-- Structured Data (JSON-LD) -->
-    <script type="application/ld+json">
-    {
-      "@context": "https://schema.org",
-      "@type": "WebSite",
-      "name": "FlockedWallpaper.com",
-      "url": "https://flockedwallpaper.com",
-      "description": "Premium flocked and velvet wallcoverings from top designers",
-      "potentialAction": {
-        "@type": "SearchAction",
-        "target": "https://flockedwallpaper.com/?search={search_term_string}",
-        "query-input": "required name=search_term_string"
-      }
-    }
-    </script>
-    <script type="application/ld+json">
-    {
-      "@context": "https://schema.org",
-      "@type": "Organization",
-      "name": "FlockedWallpaper.com",
-      "url": "https://flockedwallpaper.com",
-      "logo": "https://cdn.shopify.com/s/files/1/0015/4117/7456/files/flockedvelvetwallpaper_0c84de5f-7a44-4f3b-b8fe-c91417d0efdb.png?v=1760485642",
-      "sameAs": [
-        "https://designerwallcoverings.com"
-      ]
-    }
-    </script>
-</head>
-<body>
-    <!-- Header -->
-    <header class="header">
-        <div class="header-content">
-            <div class="header-left">
-                <div>
-                    <a href="/" style="text-decoration: none; color: inherit;">
-                        <div class="logo">FlockedWallpaper.com</div>
-                        <div class="tagline">Luxury Flocked & Velvet Wallcoverings</div>
-                    </a>
-                </div>
-                <button class="mobile-menu-toggle" onclick="toggleMobileMenu()" aria-label="Toggle menu">☰</button>
-            </div>
-            <nav class="main-nav" id="mainNav">
-                <a href="/">Browse Collection</a>
-                <a href="/about-flock-wallpaper.html">About Flock Wallpaper</a>
-                <a href="/custom-flock.html">Custom Flock Services</a>
-                <a href="/about-us.html">About Us</a>
-                <a href="https://www.designerwallcoverings.com/pages/contact-us?contact_posted=true">Contact Us</a>
-            </nav>
-            <div class="product-count" id="productCount">Loading products...</div>
-        </div>
-    </header>
-
-    <!-- Hero Section -->
-    <section class="hero">
-        <h1>Premium Flocked & Velvet Wallcoverings</h1>
-        <p>Discover our exquisite collection of flocked and velvet textured wallpapers. Each design combines luxurious tactile appeal with stunning visual elegance.</p>
-        <div class="product-count-hero" id="productCountHero">Loading collection...</div>
-    </section>
-
-    <!-- Products Container -->
-    <div class="container">
-        <div id="productsGrid" class="products-grid">
-            <div class="loading-message">
-                <div class="spinner"></div>
-                Loading flocked wallpapers...
-            </div>
-        </div>
-    </div>
-
-    <!-- Footer -->
-    <footer class="footer">
-        <div class="footer-content">
-            <div class="footer-section">
-                <h3>About Us</h3>
-                <p>FlockedWallpaper.com specializes in premium flocked and velvet textured wallcoverings. We curate the finest designs for discerning designers and homeowners.</p>
-            </div>
-            <div class="footer-section">
-                <h3>Quick Links</h3>
-                <ul>
-                    <li><a href="/">Browse Collection</a></li>
-                    <li><a href="/about-flock-wallpaper.html">About Flock Wallpaper</a></li>
-                    <li><a href="/custom-flock.html">Custom Flock Services</a></li>
-                    <li><a href="/about-us.html">About Us</a></li>
-                    <li><a href="https://www.designerwallcoverings.com/pages/contact-us?contact_posted=true">Contact Us</a></li>
-                </ul>
-            </div>
-            <div class="footer-section">
-                <h3>Resources</h3>
-                <ul>
-                    <li><a href="https://designerwallcoverings.com/pages/installation">Installation Guide</a></li>
-                    <li><a href="https://designerwallcoverings.com/pages/care">Care Instructions</a></li>
-                    <li><a href="https://designerwallcoverings.com/pages/samples">Order Samples</a></li>
-                </ul>
-            </div>
-        </div>
-        <div class="footer-bottom">
-            <p>&copy; 2025 FlockedWallpaper.com - Part of Designer Wallcoverings Collection</p>
-        </div>
-    </footer>
-
-    <script>
-        // Load flocked products from JSON
-        let allProducts = [];
-        let filteredProducts = [];
-        let displayedProducts = 0;
-        let selectedColor = null;
-        const batchSize = 40;
-
-        // Color mapping for swatches and sorting
-        const colorSwatches = {
-            'Black': '#000000',
-            'White': '#FFFFFF',
-            'Red': '#DC143C',
-            'Blue': '#4169E1',
-            'Green': '#228B22',
-            'Gold': '#FFD700',
-            'Silver': '#C0C0C0',
-            'Pink': '#FF69B4',
-            'Purple': '#9370DB',
-            'Beige': '#F5F5DC',
-            'Cream': '#FFFDD0',
-            'Gray': '#808080',
-            'Grey': '#808080',
-            'Brown': '#8B4513',
-            'Yellow': '#FFD700',
-            'Orange': '#FF8C00',
-            'Burgundy': '#800020',
-            'Navy': '#000080',
-            'Aqua': '#00FFFF',
-            'Teal': '#008080',
-            'Ivory': '#FFFFF0',
-            'Charcoal': '#36454F',
-            'Other': '#999999'
-        };
-
-        // Convert hex to HSL for better color sorting
-        function hexToHSL(hex) {
-            const result = /^#?([a-f\d]{2})([a-f\d]{2})([a-f\d]{2})$/i.exec(hex);
-            if (!result) return { h: 0, s: 0, l: 0 };
-
-            let r = parseInt(result[1], 16) / 255;
-            let g = parseInt(result[2], 16) / 255;
-            let b = parseInt(result[3], 16) / 255;
-
-            const max = Math.max(r, g, b);
-            const min = Math.min(r, g, b);
-            let h, s, l = (max + min) / 2;
-
-            if (max === min) {
-                h = s = 0; // achromatic
-            } else {
-                const d = max - min;
-                s = l > 0.5 ? d / (2 - max - min) : d / (max + min);
-
-                switch (max) {
-                    case r: h = ((g - b) / d + (g < b ? 6 : 0)) / 6; break;
-                    case g: h = ((b - r) / d + 2) / 6; break;
-                    case b: h = ((r - g) / d + 4) / 6; break;
-                }
-            }
-
-            return { h: h * 360, s: s * 100, l: l * 100 };
-        }
-
-        // Get color hex value for a product
-        function getProductColorHex(product) {
-            // If product has primaryColor and it matches a swatch, use it
-            if (product && product.primaryColor && colorSwatches[product.primaryColor]) {
-                return colorSwatches[product.primaryColor];
-            }
-
-            // Try to find a color from tags
-            if (product && product.tags && Array.isArray(product.tags)) {
-                for (const tag of product.tags) {
-                    const tagLower = tag.toLowerCase();
-                    for (const [colorName, hex] of Object.entries(colorSwatches)) {
-                        if (tagLower.includes(colorName.toLowerCase())) {
-                            return hex;
-                        }
-                    }
-                }
-            }
-
-            // Default gray for unknown colors
-            return '#999999';
-        }
-
-        // Sort products by color (HSL)
-        function sortProductsByColor(products) {
-            return products.sort((a, b) => {
-                const colorA = getProductColorHex(a);
-                const colorB = getProductColorHex(b);
-
-                const hslA = hexToHSL(colorA);
-                const hslB = hexToHSL(colorB);
-
-                // Sort by: Lightness first (dark to light), then by Hue
-                if (Math.abs(hslA.l - hslB.l) > 10) {
-                    return hslA.l - hslB.l; // Dark to light
-                }
-
-                // If similar lightness, sort by hue (creates rainbow effect)
-                return hslA.h - hslB.h;
-            });
-        }
-
-        async function loadProducts() {
-            const grid = document.getElementById('productsGrid');
-            console.log('Loading products...');
-
-            try {
-                // Add cache busting parameter
-                const cacheBuster = new Date().getTime();
-                console.log('Fetching products with cache buster:', cacheBuster);
-                const response = await fetch(`flocked-products.json?v=${cacheBuster}`);
-
-                if (!response.ok) {
-                    console.error('Response not OK:', response.status, response.statusText);
-                    throw new Error(`Failed to load products: ${response.status}`);
-                }
-
-                console.log('Response received, parsing JSON...');
-                allProducts = await response.json();
-                filteredProducts = allProducts;
-
-                console.log(`✓ Loaded ${allProducts.length} flocked products`);
-
-                // Sort products by color on load
-                try {
-                    allProducts = sortProductsByColor(allProducts);
-                    filteredProducts = allProducts;
-                    console.log('Products sorted by color');
-                } catch (err) {
-                    console.error('Error sorting products:', err);
-                }
-
-                // Clear loading message
-                console.log('Clearing loading message and displaying products...');
-                grid.innerHTML = '';
-
-                // Display first batch
-                displayBatch();
-                console.log(`✓ Displayed ${displayedProducts} products`);
-
-                // Update counts
-                updateCount();
-
-                // Setup infinite scroll
-                setupInfiniteScroll();
-
-            } catch (error) {
-                console.error('✗ ERROR loading products:', error);
-                console.error('Error stack:', error.stack);
-                grid.innerHTML = `<div class="loading-message">Error loading products: ${error.message}<br>Please check console and refresh the page.</div>`;
-            }
-        }
-
-        // Build color filters
-        function buildColorFilters() {
-            const colorCounts = {};
-
-            // Count products for each color
-            allProducts.forEach(product => {
-                if (!product || !product.tags || !Array.isArray(product.tags)) return;
-
-                product.tags.forEach(tag => {
-                    if (!tag) return;
-                    const colorMatch = Object.keys(colorSwatches).find(color =>
-                        tag.toLowerCase().includes(color.toLowerCase())
-                    );
-                    if (colorMatch) {
-                        colorCounts[colorMatch] = (colorCounts[colorMatch] || 0) + 1;
-                    }
-                });
-            });
-
-            // Create color chips
-            const filtersContainer = document.getElementById('colorFilters');
-
-            // Add "All" filter
-            const allChip = document.createElement('div');
-            allChip.className = 'color-chip active';
-            allChip.innerHTML = `All Colors <span class="filter-count">(${allProducts.length})</span>`;
-            allChip.onclick = () => filterByColor(null);
-            filtersContainer.appendChild(allChip);
-
-            // Sort colors by count and add chips
-            Object.entries(colorCounts)
-                .sort((a, b) => b[1] - a[1])
-                .forEach(([color, count]) => {
-                    const chip = document.createElement('div');
-                    chip.className = 'color-chip';
-                    chip.innerHTML = `
-                        <span class="color-swatch" style="background-color: ${colorSwatches[color]}"></span>
-                        ${color}
-                        <span class="filter-count">(${count})</span>
-                    `;
-                    chip.onclick = () => filterByColor(color);
-                    filtersContainer.appendChild(chip);
-                });
-        }
-
-        // Filter products by color
-        function filterByColor(color) {
-            selectedColor = color;
-            displayedProducts = 0;
-
-            if (color === null) {
-                filteredProducts = allProducts;
-            } else {
-                filteredProducts = allProducts.filter(product => {
-                    if (!product || !product.tags || !Array.isArray(product.tags)) return false;
-                    return product.tags.some(tag =>
-                        tag && tag.toLowerCase().includes(color.toLowerCase())
-                    );
-                });
-            }
-
-            // Sort filtered products by color hex
-            filteredProducts = sortProductsByColor([...filteredProducts]);
-
-            // Update active state on chips
-            document.querySelectorAll('.color-chip').forEach(chip => {
-                chip.classList.remove('active');
-            });
-            event.target.closest('.color-chip').classList.add('active');
-
-            // Clear grid and display filtered products
-            const grid = document.getElementById('productsGrid');
-            grid.innerHTML = '';
-            displayBatch();
-            updateCount();
-        }
-
-        // Display a batch of products
-        function displayBatch() {
-            const grid = document.getElementById('productsGrid');
-            const start = displayedProducts;
-            const end = Math.min(start + batchSize, filteredProducts.length);
-
-            for (let i = start; i < end; i++) {
-                const product = filteredProducts[i];
-                const card = createProductCard(product);
-                grid.appendChild(card);
-            }
-
-            displayedProducts = end;
-        }
-
-        // Create product card element
-        function createProductCard(product) {
-            const card = document.createElement('div');
-            card.className = 'product-card';
-            card.onclick = () => window.open(product.productUrl, '_blank');
-
-            const imageDiv = document.createElement('div');
-            imageDiv.className = 'product-image loading';
-
-            const img = document.createElement('img');
-            img.src = product.image || 'placeholder.jpg';
-            img.alt = product.imageAlt || product.title;
-            img.loading = 'lazy';
-
-            img.onload = () => {
-                imageDiv.classList.remove('loading');
-            };
-
-            img.onerror = () => {
-                imageDiv.classList.remove('loading');
-                img.src = `data:image/svg+xml,%3Csvg xmlns="http://www.w3.org/2000/svg" width="200" height="200" viewBox="0 0 200 200"%3E%3Crect width="200" height="200" fill="%23E8D4B0"/%3E%3Ctext x="50%25" y="45%25" text-anchor="middle" fill="%236B4423" font-family="sans-serif" font-size="16" font-weight="bold"%3E${product.primarySku}%3C/text%3E%3Ctext x="50%25" y="55%25" text-anchor="middle" fill="%238B6F47" font-family="sans-serif" font-size="12"%3EFlocked%3C/text%3E%3C/svg%3E`;
-            };
-
-            imageDiv.appendChild(img);
-
-            const info = document.createElement('div');
-            info.className = 'product-info';
-
-            const sku = document.createElement('div');
-            sku.className = 'product-sku';
-            sku.textContent = product.primarySku;
-
-            const name = document.createElement('div');
-            name.className = 'product-name';
-            name.textContent = product.title;
-
-            const link = document.createElement('div');
-            link.className = 'product-link';
-            link.innerHTML = 'View on DesignerWallcoverings.com →';
-
-            info.appendChild(sku);
-            info.appendChild(name);
-            info.appendChild(link);
-
-            card.appendChild(imageDiv);
-            card.appendChild(info);
-
-            return card;
-        }
-
-        // Update product count
-        function updateCount() {
-            const countEl = document.getElementById('productCount');
-            const countHeroEl = document.getElementById('productCountHero');
-            const count = selectedColor
-                ? `${filteredProducts.length} ${selectedColor} Products`
-                : `${allProducts.length} Products`;
-
-            countEl.textContent = count;
-            countHeroEl.textContent = count;
-        }
-
-        // Setup infinite scroll
-        function setupInfiniteScroll() {
-            let isLoading = false;
-
-            window.addEventListener('scroll', () => {
-                if (isLoading) return;
-
-                const scrollHeight = document.documentElement.scrollHeight;
-                const scrollTop = window.scrollY;
-                const clientHeight = window.innerHeight;
-
-                if (scrollTop + clientHeight >= scrollHeight - 500) {
-                    if (displayedProducts < filteredProducts.length) {
-                        isLoading = true;
-                        displayBatch();
-                        isLoading = false;
-                    }
-                }
-            });
-        }
-
-        // Initialize on page load
-        document.addEventListener('DOMContentLoaded', () => {
-            loadProducts();
-        });
-
-        // Mobile menu toggle
-        function toggleMobileMenu() {
-            const nav = document.getElementById('mainNav');
-            nav.classList.toggle('active');
-        }
-    </script>
-
-    <!-- Start of  Zendesk Widget script -->
-    <script id="ze-snippet" src="https://static.zdassets.com/ekr/snippet.js?key=4d4f52ea-1e3e-4837-8859-51f9abd5a82b"> </script>
-    <!-- End of  Zendesk Widget script -->
-</body>
-</html>
diff --git a/server-old-backup.js b/server-old-backup.js
deleted file mode 100644
index a1e3205..0000000
--- a/server-old-backup.js
+++ /dev/null
@@ -1,62 +0,0 @@
-const http = require('http');
-const fs = require('fs');
-const path = require('path');
-
-const PORT = process.env.PORT || 3200;
-
-const mimeTypes = {
-    '.html': 'text/html',
-    '.css': 'text/css',
-    '.js': 'text/javascript',
-    '.json': 'application/json',
-    '.png': 'image/png',
-    '.jpg': 'image/jpeg',
-    '.jpeg': 'image/jpeg',
-    '.gif': 'image/gif',
-    '.svg': 'image/svg+xml',
-    '.ico': 'image/x-icon'
-};
-
-const server = http.createServer((req, res) => {
-    // Add CORS headers for all requests
-    res.setHeader('Access-Control-Allow-Origin', '*');
-    res.setHeader('Access-Control-Allow-Methods', 'GET, OPTIONS');
-    res.setHeader('Access-Control-Allow-Headers', 'Content-Type');
-
-    // Prevent caching
-    res.setHeader('Cache-Control', 'no-cache, no-store, must-revalidate');
-    res.setHeader('Pragma', 'no-cache');
-    res.setHeader('Expires', '0');
-
-    // Remove query string parameters from URL
-    let requestPath = req.url.split('?')[0];
-    let filePath = '.' + requestPath;
-    if (filePath === './') {
-        filePath = './index.html';
-    }
-
-    const extname = String(path.extname(filePath)).toLowerCase();
-    const contentType = mimeTypes[extname] || 'application/octet-stream';
-
-    fs.readFile(filePath, (error, content) => {
-        if (error) {
-            if (error.code === 'ENOENT') {
-                res.writeHead(404, { 'Content-Type': 'text/html' });
-                res.end('<h1>404 - File Not Found</h1>', 'utf-8');
-            } else {
-                res.writeHead(500);
-                res.end(`Server Error: ${error.code}`, 'utf-8');
-            }
-        } else {
-            res.writeHead(200, { 'Content-Type': contentType });
-            res.end(content, 'utf-8');
-        }
-    });
-});
-
-server.listen(PORT, '0.0.0.0', () => {
-    console.log(`FlockedWallpaper.com server running at:`);
-    console.log(`  Local: http://localhost:${PORT}/`);
-    console.log(`  External: http://45.61.58.125:${PORT}/`);
-    console.log('Press Ctrl+C to stop the server');
-});
diff --git a/test-hex-sort.html b/test-hex-sort.html
deleted file mode 100644
index 426b52e..0000000
--- a/test-hex-sort.html
+++ /dev/null
@@ -1,116 +0,0 @@
-<!DOCTYPE html>
-<html>
-<head>
-    <title>Color Sorting Test</title>
-    <style>
-        body { font-family: sans-serif; padding: 20px; }
-        .color-box {
-            display: inline-block;
-            width: 100px;
-            height: 100px;
-            margin: 5px;
-            border: 1px solid #ccc;
-            text-align: center;
-            line-height: 100px;
-            color: white;
-            text-shadow: 1px 1px 2px black;
-            font-size: 12px;
-        }
-        h2 { margin-top: 30px; }
-    </style>
-</head>
-<body>
-    <h1>Flocked Wallpaper Color Sorting Test</h1>
-    <p>Products sorted by HSL (Lightness → Hue)</p>
-
-    <h2>Color Swatches (Sorted)</h2>
-    <div id="swatches"></div>
-
-    <h2>Sample Products by Primary Color</h2>
-    <div id="products"></div>
-
-    <script>
-        const colorSwatches = {
-            'Black': '#000000',
-            'White': '#FFFFFF',
-            'Red': '#DC143C',
-            'Blue': '#4169E1',
-            'Green': '#228B22',
-            'Gold': '#FFD700',
-            'Silver': '#C0C0C0',
-            'Pink': '#FF69B4',
-            'Purple': '#9370DB',
-            'Beige': '#F5F5DC',
-            'Cream': '#FFFDD0',
-            'Gray': '#808080',
-            'Brown': '#8B4513',
-            'Yellow': '#FFD700',
-            'Orange': '#FF8C00',
-            'Burgundy': '#800020',
-            'Navy': '#000080',
-            'Aqua': '#00FFFF',
-            'Teal': '#008080',
-            'Ivory': '#FFFFF0',
-            'Charcoal': '#36454F',
-            'Other': '#999999'
-        };
-
-        function hexToHSL(hex) {
-            const result = /^#?([a-f\d]{2})([a-f\d]{2})([a-f\d]{2})$/i.exec(hex);
-            if (!result) return { h: 0, s: 0, l: 0 };
-
-            let r = parseInt(result[1], 16) / 255;
-            let g = parseInt(result[2], 16) / 255;
-            let b = parseInt(result[3], 16) / 255;
-
-            const max = Math.max(r, g, b);
-            const min = Math.min(r, g, b);
-            let h, s, l = (max + min) / 2;
-
-            if (max === min) {
-                h = s = 0;
-            } else {
-                const d = max - min;
-                s = l > 0.5 ? d / (2 - max - min) : d / (max + min);
-
-                switch (max) {
-                    case r: h = ((g - b) / d + (g < b ? 6 : 0)) / 6; break;
-                    case g: h = ((b - r) / d + 2) / 6; break;
-                    case b: h = ((r - g) / d + 4) / 6; break;
-                }
-            }
-
-            return { h: Math.round(h * 360), s: Math.round(s * 100), l: Math.round(l * 100) };
-        }
-
-        // Sort colors
-        const sortedColors = Object.entries(colorSwatches).sort((a, b) => {
-            const hslA = hexToHSL(a[1]);
-            const hslB = hexToHSL(b[1]);
-
-            if (Math.abs(hslA.l - hslB.l) > 10) {
-                return hslA.l - hslB.l;
-            }
-            return hslA.h - hslB.h;
-        });
-
-        // Display swatches
-        const swatchesDiv = document.getElementById('swatches');
-        sortedColors.forEach(([name, hex]) => {
-            const hsl = hexToHSL(hex);
-            const box = document.createElement('div');
-            box.className = 'color-box';
-            box.style.backgroundColor = hex;
-            box.innerHTML = `${name}<br>L:${hsl.l}`;
-            swatchesDiv.appendChild(box);
-        });
-
-        // Show color order
-        const productsDiv = document.getElementById('products');
-        productsDiv.innerHTML = '<ol>' + sortedColors.map(([name, hex]) => {
-            const hsl = hexToHSL(hex);
-            return `<li><strong>${name}</strong> - ${hex} - HSL(${hsl.h}, ${hsl.s}%, ${hsl.l}%)</li>`;
-        }).join('') + '</ol>';
-    </script>
-</body>
-</html>
diff --git a/test-load.html b/test-load.html
deleted file mode 100644
index 5157bb1..0000000
--- a/test-load.html
+++ /dev/null
@@ -1,19 +0,0 @@
-<!DOCTYPE html>
-<html>
-<head><title>Test</title></head>
-<body>
-<div id="result"></div>
-<script>
-fetch('flocked-products.json')
-  .then(r => r.json())
-  .then(data => {
-    document.getElementById('result').textContent = 'SUCCESS: Loaded ' + data.length + ' products';
-    console.log('First product:', data[0]);
-  })
-  .catch(err => {
-    document.getElementById('result').textContent = 'ERROR: ' + err.message;
-    console.error(err);
-  });
-</script>
-</body>
-</html>

← 1e56daa flockedwallpaper: gitignore stale-file patterns + make doten  ·  back to Flockedwallpaper  ·  add: pre-stage Meta Pixel snippet (placeholder; flip via _dw 950ca66 →