diff --git a/.DS_Store b/.DS_Store
new file mode 100644
index 0000000..351f72d
Binary files /dev/null and b/.DS_Store differ
diff --git a/.github/workflows/jekyll-docker.yml b/.github/workflows/jekyll-docker.yml
new file mode 100644
index 0000000..60e5736
--- /dev/null
+++ b/.github/workflows/jekyll-docker.yml
@@ -0,0 +1,20 @@
+name: Jekyll site CI
+
+on:
+ push:
+ branches: [ "master" ]
+ pull_request:
+ branches: [ "master" ]
+
+jobs:
+ build:
+
+ runs-on: ubuntu-latest
+
+ steps:
+ - uses: actions/checkout@v4
+ - name: Build the site in the jekyll/builder container
+ run: |
+ docker run \
+ -v ${{ github.workspace }}:/srv/jekyll -v ${{ github.workspace }}/_site:/srv/jekyll/_site \
+ jekyll/builder:latest /bin/bash -c "chmod -R 777 /srv/jekyll && jekyll build --future"
diff --git a/CatalogVisualMockupGrid.jsx b/CatalogVisualMockupGrid.jsx
new file mode 100644
index 0000000..faec14f
--- /dev/null
+++ b/CatalogVisualMockupGrid.jsx
@@ -0,0 +1,54 @@
+import { useEffect, useState } from "react";
+import products from "./data/products.json";
+
+export default function CatalogVisualMockupGrid() {
+ const [productList, setProductList] = useState(products || []);
+
+ useEffect(() => {
+ if (!products || products.length === 0) {
+ fetch("/data/products.json")
+ .then((res) => res.json())
+ .then((data) => setProductList(data))
+ .catch((err) => console.error("Failed to load products", err));
+ }
+ }, []);
+
+ return (
+
+
+
+
+ {productList.map((product, idx) => (
+
+
+

+
+
+
+ {product.name}
+
+
+ L.{product.price}
+
+
+
+ ))}
+
+
+ );
+}
+
diff --git a/Pastebin.wdgt/main.js b/Pastebin.wdgt/main.js
index 4c220d5..a000283 100644
--- a/Pastebin.wdgt/main.js
+++ b/Pastebin.wdgt/main.js
@@ -25,7 +25,7 @@ $(document).ready(function() {
$("#loading_notice").fadeIn(200);
if ($("#paste_username").val() != "" && $("#paste_password").val() != "") {
- $.post("http://pastebin.com/api/api_login.php", {
+ $.post("https://pastebin.com/api/api_login.php", {
api_dev_key: api_key,
api_user_name: $("#paste_username").val(),
api_user_password: $("#paste_password").val()
@@ -51,7 +51,7 @@ $(document).ready(function() {
});
function post_paste(userkey) {
-$.post("http://pastebin.com/api/api_post.php",
+$.post("https://pastebin.com/api/api_post.php",
{
api_dev_key: api_key,
api_option: 'paste',
diff --git a/data/products.json b/data/products.json
new file mode 100644
index 0000000..69501b7
--- /dev/null
+++ b/data/products.json
@@ -0,0 +1,13 @@
+[
+ { "name": "NailFrida", "price": 299, "img": "/images/catalog/nailfrida.jpg" },
+ { "name": "BreatheFrida Vapor Bath Bomb", "price": 295, "img": "/images/catalog/breathefrida.jpg" },
+ { "name": "Sleep Vapor Bath Bombs", "price": 295, "img": "/images/catalog/sleepvapor.jpg" },
+ { "name": "Baby Basics Kit", "price": 1195, "img": "/images/catalog/babybasics.jpg" },
+ { "name": "Gas + Colic Heating Pad", "price": 750, "img": "/images/catalog/gascolic.jpg" },
+ { "name": "Baby Grooming Kit", "price": 1095, "img": "/images/catalog/babygrooming.jpg" },
+ { "name": "Windi the Gaspasser", "price": 395, "img": "/images/catalog/windi.jpg" },
+ { "name": "Push Pop Feeder", "price": 295, "img": "/images/catalog/pushpop.jpg" },
+ { "name": "SmileFrida Finger Toothbrush", "price": 195, "img": "/images/catalog/smilefrida.jpg" },
+ { "name": "NailFrida S-Curved Nail Files", "price": 395, "img": "/images/catalog/nailfridafile.jpg" },
+ { "name": "Not-Too-Cold-To-Hold Teether", "price": 295, "img": "/images/catalog/teether.jpg" }
+]
diff --git a/frida-catalog-premium (1).jsx b/frida-catalog-premium (1).jsx
new file mode 100644
index 0000000..fe886d6
--- /dev/null
+++ b/frida-catalog-premium (1).jsx
@@ -0,0 +1,597 @@
+import React, { useState, useEffect, useRef } from 'react';
+import { Search, Filter, ShoppingCart, MessageCircle, Package, TrendingUp, Users, DollarSign, Eye, Heart, Share2, X, ChevronRight, Star, Zap, Award, Check, Sparkles } from 'lucide-react';
+
+const FridaCatalog = () => {
+ // Product data with inventory
+ const products = [
+ {
+ id: 1,
+ name: "NoseFrida Aspirador Nasal",
+ category: "nasal",
+ image: "https://i.ibb.co/sJDFRvGz/FB-Nose-Fridasolo-Thumbnail-badgeupdate3-992x-progressive-4.webp",
+ description: "El aspirador nasal #1 recomendado por pediatras. Diseño higiénico y efectivo para aliviar la congestión nasal del bebé.",
+ features: ["Recomendado por pediatras", "Higiénico", "Sin BPA"],
+ badge: "Bestseller",
+ price: 450,
+ stock: 24,
+ sold: 156,
+ rating: 4.9
+ },
+ {
+ id: 2,
+ name: "Kit Ultimate Baby Essentials",
+ category: "kits",
+ image: "https://i.ibb.co/Q3rzP4cB/Ultimate-Baby-Kit-B0-BLCTTMRB-Frame-1-992x-progressive-3.webp",
+ description: "Kit completo con todos los esenciales para el cuidado del bebé. Incluye 10+ productos premium.",
+ features: ["Kit completo", "10+ productos", "Regalo perfecto"],
+ badge: "Premium",
+ price: 2850,
+ stock: 8,
+ sold: 42,
+ rating: 5.0
+ },
+ {
+ id: 3,
+ name: "Electric NoseFrida 2.0",
+ category: "nasal",
+ image: "https://i.ibb.co/GvNYyZ69/Electric-Nose-Frida-2-0-A-Frame-1-992x-progressive-3.webp",
+ description: "Versión eléctrica del famoso aspirador nasal. 3 niveles de succión para máxima efectividad.",
+ features: ["Eléctrico", "3 niveles", "Silencioso"],
+ price: 1250,
+ stock: 15,
+ sold: 89,
+ rating: 4.8
+ },
+ {
+ id: 4,
+ name: "3 en 1 Humidificador + Purificador",
+ category: "sleep",
+ image: "https://i.ibb.co/Y7K93ZXh/3-in-1-Sound-Machine-Air-Purifier-Nightlight-B08-Q2-R8-KQ7-Frame-1-992x-progressive.webp",
+ description: "Máquina de sonido, purificador de aire y luz nocturna en un solo dispositivo.",
+ features: ["3 en 1", "Sonidos relajantes", "Purifica el aire"],
+ badge: "Innovación",
+ price: 1890,
+ stock: 12,
+ sold: 67,
+ rating: 4.7
+ },
+ {
+ id: 5,
+ name: "Cortaúñas Eléctrico",
+ category: "grooming",
+ image: "https://i.ibb.co/8LY11rTc/Electric-Nail-Trimmer-1-992x-progressive-2.webp",
+ description: "Cortaúñas eléctrico ultra seguro con luz LED. Ideal para recién nacidos.",
+ features: ["Luz LED", "Ultra seguro", "Silencioso"],
+ price: 680,
+ stock: 31,
+ sold: 103,
+ rating: 4.6
+ },
+ {
+ id: 6,
+ name: "Kit Baby Basics",
+ category: "kits",
+ image: "https://i.ibb.co/X0VQWJM/Baby-Basics-Kit-B07-BYLG8-R8-Frame-1-1-992x-progressive-1.webp",
+ description: "Kit esencial con productos básicos de higiene y cuidado del bebé.",
+ features: ["Esenciales", "Alta calidad", "Compacto"],
+ price: 1450,
+ stock: 18,
+ sold: 94,
+ rating: 4.7
+ },
+ {
+ id: 7,
+ name: "Humidificador BreatheFrida XL",
+ category: "sleep",
+ image: "https://i.ibb.co/HWrw0s1/FB-Humi-XL-Hero-CAN-992x-progressive-3.webp",
+ description: "Humidificador de gran capacidad con tecnología de vapor frío.",
+ features: ["XL capacidad", "Vapor frío", "12h duración"],
+ price: 1350,
+ stock: 9,
+ sold: 51,
+ rating: 4.8
+ },
+ {
+ id: 8,
+ name: "Push & Pop Alimentador",
+ category: "grooming",
+ image: "https://i.ibb.co/FbZs4M3F/Push-Pop-Feeder-Vibrant-Teal-1ct-Hero-992x-progressive-1.webp",
+ description: "Alimentador de frutas innovador para introducir sólidos de forma segura.",
+ features: ["Seguro", "Fácil limpieza", "Sin BPA"],
+ price: 320,
+ stock: 45,
+ sold: 178,
+ rating: 4.5
+ },
+ {
+ id: 9,
+ name: "Spray Nasal con Solución Salina",
+ category: "nasal",
+ image: "https://i.ibb.co/hx3QjX3P/FB-Nose-Frida-Saline-Rinse-Digital-Shelf-Ecomm-1-992x-progressive-1.webp",
+ description: "Spray nasal suave con solución salina natural para aliviar la congestión.",
+ features: ["Natural", "Suave", "0+ meses"],
+ price: 280,
+ stock: 52,
+ sold: 234,
+ rating: 4.6
+ },
+ {
+ id: 10,
+ name: "Vapor Rub Eucalipto",
+ category: "health",
+ image: "https://i.ibb.co/x8134tXc/202307-FBVapor-Rub-Eucalyptus-Digital-Shelfv1copy-992x-progressive.webp",
+ description: "Bálsamo calmante con eucalipto para aliviar la congestión y mejorar el sueño.",
+ features: ["Eucalipto natural", "Calmante", "3+ meses"],
+ price: 380,
+ stock: 38,
+ sold: 145,
+ rating: 4.7
+ }
+ ];
+
+ const [filteredProducts, setFilteredProducts] = useState(products);
+ const [selectedCategory, setSelectedCategory] = useState('all');
+ const [searchQuery, setSearchQuery] = useState('');
+ const [selectedProduct, setSelectedProduct] = useState(null);
+ const [showModal, setShowModal] = useState(false);
+ const [cartItems, setCartItems] = useState([]);
+ const [showCart, setShowCart] = useState(false);
+ const [viewMode, setViewMode] = useState('grid');
+ const [sortBy, setSortBy] = useState('popular');
+ const [favorites, setFavorites] = useState([]);
+ const [showDashboard, setShowDashboard] = useState(false);
+
+ // Categories
+ const categories = [
+ { id: 'all', name: 'Todos', icon: '📦', color: 'bg-gradient-to-r from-purple-500 to-pink-500' },
+ { id: 'nasal', name: 'Cuidado Nasal', icon: '👃', color: 'bg-gradient-to-r from-blue-500 to-cyan-500' },
+ { id: 'bath', name: 'Baño', icon: '🛁', color: 'bg-gradient-to-r from-teal-500 to-green-500' },
+ { id: 'grooming', name: 'Aseo', icon: '✨', color: 'bg-gradient-to-r from-yellow-500 to-orange-500' },
+ { id: 'health', name: 'Salud', icon: '💊', color: 'bg-gradient-to-r from-red-500 to-pink-500' },
+ { id: 'sleep', name: 'Sueño', icon: '🌙', color: 'bg-gradient-to-r from-indigo-500 to-purple-500' },
+ { id: 'kits', name: 'Kits', icon: '🎁', color: 'bg-gradient-to-r from-pink-500 to-rose-500' },
+ ];
+
+ // Stats calculation
+ const stats = {
+ totalProducts: products.length,
+ totalStock: products.reduce((sum, p) => sum + p.stock, 0),
+ totalSold: products.reduce((sum, p) => sum + p.sold, 0),
+ revenue: products.reduce((sum, p) => sum + (p.sold * p.price), 0),
+ lowStock: products.filter(p => p.stock < 10).length,
+ topSeller: products.reduce((max, p) => p.sold > max.sold ? p : max, products[0])
+ };
+
+ // Filter and sort products
+ useEffect(() => {
+ let filtered = products;
+
+ // Category filter
+ if (selectedCategory !== 'all') {
+ filtered = filtered.filter(p => p.category === selectedCategory);
+ }
+
+ // Search filter
+ if (searchQuery) {
+ filtered = filtered.filter(p =>
+ p.name.toLowerCase().includes(searchQuery.toLowerCase()) ||
+ p.description.toLowerCase().includes(searchQuery.toLowerCase())
+ );
+ }
+
+ // Sorting
+ switch(sortBy) {
+ case 'popular':
+ filtered.sort((a, b) => b.sold - a.sold);
+ break;
+ case 'price-low':
+ filtered.sort((a, b) => a.price - b.price);
+ break;
+ case 'price-high':
+ filtered.sort((a, b) => b.price - a.price);
+ break;
+ case 'rating':
+ filtered.sort((a, b) => b.rating - a.rating);
+ break;
+ case 'stock':
+ filtered.sort((a, b) => a.stock - b.stock);
+ break;
+ default:
+ break;
+ }
+
+ setFilteredProducts(filtered);
+ }, [selectedCategory, searchQuery, sortBy]);
+
+ // WhatsApp integration
+ const sendWhatsApp = (message) => {
+ const phone = "50494840343";
+ window.open(`https://wa.me/${phone}?text=${encodeURIComponent(message)}`, '_blank');
+ };
+
+ // Add to cart
+ const addToCart = (product) => {
+ setCartItems([...cartItems, { ...product, quantity: 1 }]);
+ };
+
+ // Toggle favorite
+ const toggleFavorite = (productId) => {
+ setFavorites(prev =>
+ prev.includes(productId)
+ ? prev.filter(id => id !== productId)
+ : [...prev, productId]
+ );
+ };
+
+ // Dashboard Component
+ const Dashboard = () => (
+
+
+
+
+
+ Dashboard ColorPlay
+
+
Análisis en tiempo real - Frida Baby Collection
+
+
+
+
+ {/* Stats Grid */}
+
+
+
+
+
{stats.totalProducts}
+
+
Productos Totales
+
+12% este mes
+
+
+
+
+
+ {stats.totalSold}
+
+
Unidades Vendidas
+
+24% este mes
+
+
+
+
+
+ L{(stats.revenue / 1000).toFixed(1)}K
+
+
Ingresos Totales
+
+18% este mes
+
+
+
+
+
+ {stats.lowStock}
+
+
Inventario Bajo
+
Requiere atención
+
+
+
+ {/* Top Products */}
+
+
+
+ Top 5 Productos Más Vendidos
+
+
+ {products.sort((a, b) => b.sold - a.sold).slice(0, 5).map((product, idx) => (
+
+
+
#{idx + 1}
+

+
+
{product.name}
+
{product.sold} vendidos
+
+
+
+
L{(product.sold * product.price).toLocaleString()}
+
Stock: {product.stock}
+
+
+ ))}
+
+
+
+ {/* Quick Actions */}
+
+
+
+
+
+
+
+ );
+
+ // Product Modal
+ const ProductModal = () => {
+ if (!selectedProduct) return null;
+
+ return (
+
+
+
+

+
+ {selectedProduct.badge && (
+
+ {selectedProduct.badge}
+
+ )}
+
+
+
+
+
+
{selectedProduct.name}
+
+
+
+ {selectedProduct.rating}
+
+
•
+
{selectedProduct.sold} vendidos
+
•
+
+ {selectedProduct.stock} en stock
+
+
+
+
+
L{selectedProduct.price}
+
Precio exclusivo ColorPlay
+
+
+
+
{selectedProduct.description}
+
+
+
Características Premium:
+
+ {selectedProduct.features.map(feature => (
+
+
+ {feature}
+
+ ))}
+
+
+
+
+
+
+
+
+
+
+
+ );
+ };
+
+ return (
+
+ {/* Header */}
+
+
+
+
+
+
+ FRIDA BABY
+
+
Colección Premium • ColorPlay Honduras
+
+
+
+
+
+
+
+
+
+
+
+
+ {/* Quick Stats Bar */}
+
+
+
+
+ {stats.totalProducts} Productos
+
+
+
+ Envío Express 24h
+
+
+
+ Distribuidor Exclusivo
+
+
+
+
+ {/* Search and Filters */}
+
+
+
+
+
+ setSearchQuery(e.target.value)}
+ className="w-full pl-12 pr-4 py-3 bg-gray-50 rounded-xl focus:outline-none focus:ring-2 focus:ring-purple-500"
+ />
+
+
+
+
+ {/* Category Pills */}
+
+ {categories.map(cat => (
+
+ ))}
+
+
+
+ {/* Products Grid */}
+
+ {filteredProducts.map((product, idx) => (
+
{
+ setSelectedProduct(product);
+ setShowModal(true);
+ }}
+ style={{ animationDelay: `${idx * 50}ms` }}>
+
+
+

+ {product.badge && (
+
+ {product.badge}
+
+ )}
+ {product.stock < 10 && (
+
+ ¡Últimas {product.stock}!
+
+ )}
+
+
+
+
+
{product.name}
+
+
+
+
+ {product.rating}
+
+
{product.sold} vendidos
+
+
+
+ {product.features.slice(0, 2).map(feature => (
+
+ {feature}
+
+ ))}
+
+
+
+ L{product.price}
+
+
+
+
+ ))}
+
+
+ {filteredProducts.length === 0 && (
+
+
+
No se encontraron productos
+
+ )}
+
+
+ {/* Floating WhatsApp Button */}
+
+
+ {/* Modals */}
+ {showModal &&
}
+ {showDashboard &&
}
+
+ );
+};
+
+export default FridaCatalog;
\ No newline at end of file
diff --git a/package.json b/package.json
new file mode 100644
index 0000000..c24d7de
--- /dev/null
+++ b/package.json
@@ -0,0 +1,8 @@
+{
+ "name": "pastebin-widget",
+ "version": "1.0.0",
+ "description": "Pastebin dashboard widget",
+ "scripts": {
+ "test": "echo 'No tests configured'"
+ }
+}