From 6d3ab2d1bbd9b420748a96fb18c398fd785d6458 Mon Sep 17 00:00:00 2001 From: juNISHS <148309067+juNISHS@users.noreply.github.com> Date: Tue, 17 Oct 2023 23:31:58 -0600 Subject: [PATCH 1/7] Create .DS_Store --- .DS_Store | Bin 0 -> 6148 bytes 1 file changed, 0 insertions(+), 0 deletions(-) create mode 100644 .DS_Store diff --git a/.DS_Store b/.DS_Store new file mode 100644 index 0000000000000000000000000000000000000000..0018d6e0441dacc76fe600a0719ea4ff5b1367c1 GIT binary patch literal 6148 zcmeHK%Sr=55Ukc50usp4<9vbOA1ooc3;6++NDyQNP4v1azspav`hl=)Jb3UT)zDot zy>&Rd1cVocG#BzomQ4C*6(f opfE%`CPq8v#@q2_6lGoWHJ^8dLt@aG4?0ml1Fnlq3jDPKUql%eQUCw| literal 0 HcmV?d00001 From 396c4b673f5c0cb56ce1905285de17a9e89c9853 Mon Sep 17 00:00:00 2001 From: juNISHS <148309067+juNISHS@users.noreply.github.com> Date: Tue, 17 Oct 2023 23:34:54 -0600 Subject: [PATCH 2/7] Update .DS_Store --- .DS_Store | Bin 6148 -> 6148 bytes 1 file changed, 0 insertions(+), 0 deletions(-) diff --git a/.DS_Store b/.DS_Store index 0018d6e0441dacc76fe600a0719ea4ff5b1367c1..351f72dddf4ece251d4e66845b13cbc602967198 100644 GIT binary patch delta 110 zcmZoMXfc=|#>B`mu~2NHo+2aj!~pAw7aD+ckDN$ueu_&{PJR*t0|Uo`=!UpU`9~dr z;sOO3hQZ1CxdlLR1_ovYhK)V5**3Ft@N)po*?90f^JIPzT^^7eBM>(L@n#>99n2FO FSOE9z9jgEU delta 71 zcmZoMXfc=|#>CJzu~2NHo+2aT!~knX#>sY!a+|vtYuP4mV0^Hdor9kPsABU%#_!CN Z`9*X&85tND4gfL3WE&po%`qZNm;uHU5}^P9 From 5c4cc58d33f32dfdb470ff89991571f04b23922b Mon Sep 17 00:00:00 2001 From: juNISHS <148309067+juNISHS@users.noreply.github.com> Date: Sun, 10 Aug 2025 05:31:42 -0600 Subject: [PATCH 3/7] Add CatalogVisualMockupGrid component --- CatalogVisualMockupGrid.jsx | 54 +++++++++++++++++++++++++++++++++++++ 1 file changed, 54 insertions(+) create mode 100644 CatalogVisualMockupGrid.jsx diff --git a/CatalogVisualMockupGrid.jsx b/CatalogVisualMockupGrid.jsx new file mode 100644 index 0000000..6556875 --- /dev/null +++ b/CatalogVisualMockupGrid.jsx @@ -0,0 +1,54 @@ +export default function CatalogVisualMockupGrid() { + const products = [ + { 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" }, + ]; + + return ( +
+
+

+ Catalog — Grid View Mockup +

+

+ A clean grid layout showcasing products with images, names, and prices. +

+
+ +
+ {products.map((product, idx) => ( +
+
+ {product.name} +
+
+

+ {product.name} +

+
+ L.{product.price} +
+
+
+ ))} +
+
+ ); +} + From 6ae3e8b314b11f4a8c45fda03a409d1877db7bcf Mon Sep 17 00:00:00 2001 From: juNISHS <148309067+juNISHS@users.noreply.github.com> Date: Thu, 14 Aug 2025 00:01:07 -0600 Subject: [PATCH 4/7] refactor: move products to json file --- CatalogVisualMockupGrid.jsx | 28 ++++++++++++++-------------- data/products.json | 13 +++++++++++++ 2 files changed, 27 insertions(+), 14 deletions(-) create mode 100644 data/products.json diff --git a/CatalogVisualMockupGrid.jsx b/CatalogVisualMockupGrid.jsx index 6556875..faec14f 100644 --- a/CatalogVisualMockupGrid.jsx +++ b/CatalogVisualMockupGrid.jsx @@ -1,17 +1,17 @@ +import { useEffect, useState } from "react"; +import products from "./data/products.json"; + export default function CatalogVisualMockupGrid() { - const products = [ - { 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" }, - ]; + 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 (
@@ -25,7 +25,7 @@ export default function CatalogVisualMockupGrid() {
- {products.map((product, idx) => ( + {productList.map((product, idx) => (
Date: Wed, 27 Aug 2025 04:46:15 -0600 Subject: [PATCH 5/7] chore: add minimal package.json --- Pastebin.wdgt/main.js | 4 ++-- package.json | 8 ++++++++ 2 files changed, 10 insertions(+), 2 deletions(-) create mode 100644 package.json 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/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'" + } +} From aa112a55395f6e5564dfa1f62371f38f7567fd85 Mon Sep 17 00:00:00 2001 From: juNISHS <148309067+juNISHS@users.noreply.github.com> Date: Mon, 1 Sep 2025 09:58:08 -0600 Subject: [PATCH 6/7] Create jekyll-docker.yml --- .github/workflows/jekyll-docker.yml | 20 ++++++++++++++++++++ 1 file changed, 20 insertions(+) create mode 100644 .github/workflows/jekyll-docker.yml 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" From 803ef156ea1e06a4e74dadc817e19e1e892a981a Mon Sep 17 00:00:00 2001 From: juNISHS <148309067+juNISHS@users.noreply.github.com> Date: Wed, 29 Oct 2025 15:08:06 -0600 Subject: [PATCH 7/7] Add files via upload --- frida-catalog-premium (1).jsx | 597 ++++++++++++++++++++++++++++++++++ 1 file changed, 597 insertions(+) create mode 100644 frida-catalog-premium (1).jsx 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.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.name} + + {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.name} + {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