
{"success":true,"html":"<div class=\"card-market group\">\n        \n        <div class=\"relative h-48 sm:h-52 md:h-44 lg:h-48 overflow-hidden bg-gradient-to-br from-[#ff6347]\/20 to-[#00bfff]\/20 rounded-t-xl\">\n            <a href=\"https:\/\/gifitech.digivora.com\/products\/rujukan-para-logo-desainer-koleksi-inspirasi-logo-profesional\" class=\"block w-full h-full\">\n                <img src=\"storage\/products\/1780141090_main_rujukan-para-logo-desainer-koleksi-inspirasi-logo-profesional.jpg\"\n                    alt=\"Rujukan Para Logo Desainer \u2013 Koleksi Inspirasi Logo Profesional\" loading=\"lazy\"\n                    class=\"w-full h-full object-cover transition-transform duration-500 ease-out hover:scale-110\">\n                \n                                    <div class=\"sale-ribbon\">Best Price<\/div>\n                                \n                <div class=\"absolute inset-0 bg-black\/0 hover:bg-black\/20 transition-all duration-300\"><\/div>\n            <\/a>\n        <\/div>\n\n        <div class=\"p-5\">\n            <div class=\"flex justify-between\">\n                <div class=\"star-rating text-sm\">\n                    <i class=\"fa-solid fa-star\"><\/i>\n                    <i class=\"fa-solid fa-star\"><\/i>\n                    <i class=\"fa-solid fa-star\"><\/i>\n                    <i class=\"fa-solid fa-star\"><\/i>\n                    <i class=\"fa-regular fa-star\"><\/i>\n                <\/div>\n                <span class=\"text-xs text-[#333333] bg-green-50 px-2 py-0.5 rounded-full border border-green-100\">\n                    <i class=\"fa-solid fa-eye\"><\/i> 63\n                <\/span>\n            <\/div>\n            <a href=\"https:\/\/gifitech.digivora.com\/products\/rujukan-para-logo-desainer-koleksi-inspirasi-logo-profesional\">\n                <h3 class=\"font-bold text-lg mt-2 text-[#1e1e1e]\">Rujukan Para Logo Desainer \u2013 Koleksi Inspirasi Logo Profesional<\/h3>\n            <\/a>\n            <p class=\"text-[#333333] text-sm\">Desain Grafis<\/p>\n\n            <div class=\"flex justify-between items-center mt-5\">\n                <span class=\"text-2xl font-black text-[#ff6347]\">\n                    <span class=\"text-xs align-top inline-block mt-0.5\">Rp<\/span>\n                    13,000\n                <\/span>\n                <span class=\"text-[#333333] line-through text-sm\">\n                    <span class=\"text-xs\">Rp<\/span>65,000\n                <\/span>\n                \n                \n                <button class=\"bg-[#eeeeee] rounded-full hover:bg-[#ff6347]\/10 transition\" \n                    onclick=\"shareProduct('https:\/\/gifitech.digivora.com\/products\/rujukan-para-logo-desainer-koleksi-inspirasi-logo-profesional', 'Produk GifiTech')\">\n                    <i class=\"fa-solid fa-share-nodes\"><\/i>\n                <\/button>\n            <\/div>\n        <\/div>\n    <\/div>\n\n\n\n<script>\n\n\n\/**\n * Share produk menggunakan Web Share API atau fallback copy\n *\/\nfunction shareProduct(url, productName) {\n    let fullUrl = url || window.location.href;\n    \n    const shareData = {\n        title: productName,\n        text: 'Lihat produk ini di GifiTech!',\n        url: fullUrl\n    };\n\n    if (navigator.share) {\n        navigator.share(shareData).catch(() => copyToClipboard(fullUrl));\n    } else {\n        copyToClipboard(fullUrl);\n    }\n}\n\n\/**\n * Copy URL ke clipboard\n *\/\nfunction copyToClipboard(url) {\n    navigator.clipboard.writeText(url)\n        .then(() => alert('Link produk disalin: ' + url))\n        .catch(() => {\n            const success = prompt('Salin link manual:', url);\n            return success !== null;\n        });\n}\n\n\/**\n * Handle share dengan tracking ke server\n *\/\nasync function handleShare(button, productUrl, productId) {\n    const originalHTML = button.innerHTML;\n    button.innerHTML = '<i class=\"fa-solid fa-spinner fa-spin\"><\/i>';\n    button.disabled = true;\n    \n    try {\n        const shareData = {\n            title: document.title,\n            text: 'Cek produk ini di GifiTech!',\n            url: productUrl\n        };\n        \n        let shareSuccess = false;\n        \n        if (navigator.share) {\n            try {\n                await navigator.share(shareData);\n                shareSuccess = true;\n            } catch (error) {\n                if (error.name !== 'AbortError') {\n                    shareSuccess = await copyToClipboard(productUrl);\n                }\n            }\n        } else {\n            shareSuccess = await copyToClipboard(productUrl);\n        }\n        \n        if (shareSuccess) {\n            const response = await fetch(`\/products\/${productId}\/track-share`, {\n                method: 'POST',\n                headers: {\n                    'Content-Type': 'application\/json',\n                    'X-CSRF-TOKEN': csrfToken\n                }\n            });\n            \n            const data = await response.json();\n            \n            \/\/ Update share counter\n            const shareCounterSpan = button.querySelector('.share-counter');\n            if (shareCounterSpan) {\n                shareCounterSpan.textContent = data.shares_count;\n                shareCounterSpan.style.transform = 'scale(1.2)';\n                setTimeout(() => shareCounterSpan.style.transform = '', 300);\n            }\n            \n            \/\/ Update total views\n            const totalViewsSpan = document.querySelector('.fa-eye')?.parentElement?.querySelector('span:first-of-type');\n            if (totalViewsSpan && data.views_count !== undefined) {\n                totalViewsSpan.textContent = data.views_count;\n                totalViewsSpan.style.transform = 'scale(1.2)';\n                setTimeout(() => totalViewsSpan.style.transform = '', 300);\n            }\n        }\n        \n    } catch (error) {\n        console.error('Error:', error);\n        alert('Gagal membagikan. Silakan coba lagi.');\n    } finally {\n        button.innerHTML = originalHTML;\n        button.disabled = false;\n    }\n}\n<\/script>\n\n<div class=\"card-market group\">\n        \n        <div class=\"relative h-48 sm:h-52 md:h-44 lg:h-48 overflow-hidden bg-gradient-to-br from-[#ff6347]\/20 to-[#00bfff]\/20 rounded-t-xl\">\n            <a href=\"https:\/\/gifitech.digivora.com\/products\/master-collection-coreldraw-premium-5000-template-desain-siap-pakai\" class=\"block w-full h-full\">\n                <img src=\"storage\/products\/1780115346_main_master-collection-coreldraw-premium-5000-template-desain-siap-pakai.jpg\"\n                    alt=\"Master Collection CorelDRAW Premium \u2013 5000+ Template Desain Siap Pakai\" loading=\"lazy\"\n                    class=\"w-full h-full object-cover transition-transform duration-500 ease-out hover:scale-110\">\n                \n                                    <div class=\"sale-ribbon\">Best Price<\/div>\n                                \n                <div class=\"absolute inset-0 bg-black\/0 hover:bg-black\/20 transition-all duration-300\"><\/div>\n            <\/a>\n        <\/div>\n\n        <div class=\"p-5\">\n            <div class=\"flex justify-between\">\n                <div class=\"star-rating text-sm\">\n                    <i class=\"fa-solid fa-star\"><\/i>\n                    <i class=\"fa-solid fa-star\"><\/i>\n                    <i class=\"fa-solid fa-star\"><\/i>\n                    <i class=\"fa-solid fa-star\"><\/i>\n                    <i class=\"fa-regular fa-star\"><\/i>\n                <\/div>\n                <span class=\"text-xs text-[#333333] bg-green-50 px-2 py-0.5 rounded-full border border-green-100\">\n                    <i class=\"fa-solid fa-eye\"><\/i> 220\n                <\/span>\n            <\/div>\n            <a href=\"https:\/\/gifitech.digivora.com\/products\/master-collection-coreldraw-premium-5000-template-desain-siap-pakai\">\n                <h3 class=\"font-bold text-lg mt-2 text-[#1e1e1e]\">Master Collection CorelDRAW Premium \u2013 5000+ Template Desain Siap Pakai<\/h3>\n            <\/a>\n            <p class=\"text-[#333333] text-sm\">Desain Grafis<\/p>\n\n            <div class=\"flex justify-between items-center mt-5\">\n                <span class=\"text-2xl font-black text-[#ff6347]\">\n                    <span class=\"text-xs align-top inline-block mt-0.5\">Rp<\/span>\n                    15,000\n                <\/span>\n                <span class=\"text-[#333333] line-through text-sm\">\n                    <span class=\"text-xs\">Rp<\/span>99,000\n                <\/span>\n                \n                \n                <button class=\"bg-[#eeeeee] rounded-full hover:bg-[#ff6347]\/10 transition\" \n                    onclick=\"shareProduct('https:\/\/gifitech.digivora.com\/products\/master-collection-coreldraw-premium-5000-template-desain-siap-pakai', 'Produk GifiTech')\">\n                    <i class=\"fa-solid fa-share-nodes\"><\/i>\n                <\/button>\n            <\/div>\n        <\/div>\n    <\/div>\n\n\n\n<script>\n\n\n\/**\n * Share produk menggunakan Web Share API atau fallback copy\n *\/\nfunction shareProduct(url, productName) {\n    let fullUrl = url || window.location.href;\n    \n    const shareData = {\n        title: productName,\n        text: 'Lihat produk ini di GifiTech!',\n        url: fullUrl\n    };\n\n    if (navigator.share) {\n        navigator.share(shareData).catch(() => copyToClipboard(fullUrl));\n    } else {\n        copyToClipboard(fullUrl);\n    }\n}\n\n\/**\n * Copy URL ke clipboard\n *\/\nfunction copyToClipboard(url) {\n    navigator.clipboard.writeText(url)\n        .then(() => alert('Link produk disalin: ' + url))\n        .catch(() => {\n            const success = prompt('Salin link manual:', url);\n            return success !== null;\n        });\n}\n\n\/**\n * Handle share dengan tracking ke server\n *\/\nasync function handleShare(button, productUrl, productId) {\n    const originalHTML = button.innerHTML;\n    button.innerHTML = '<i class=\"fa-solid fa-spinner fa-spin\"><\/i>';\n    button.disabled = true;\n    \n    try {\n        const shareData = {\n            title: document.title,\n            text: 'Cek produk ini di GifiTech!',\n            url: productUrl\n        };\n        \n        let shareSuccess = false;\n        \n        if (navigator.share) {\n            try {\n                await navigator.share(shareData);\n                shareSuccess = true;\n            } catch (error) {\n                if (error.name !== 'AbortError') {\n                    shareSuccess = await copyToClipboard(productUrl);\n                }\n            }\n        } else {\n            shareSuccess = await copyToClipboard(productUrl);\n        }\n        \n        if (shareSuccess) {\n            const response = await fetch(`\/products\/${productId}\/track-share`, {\n                method: 'POST',\n                headers: {\n                    'Content-Type': 'application\/json',\n                    'X-CSRF-TOKEN': csrfToken\n                }\n            });\n            \n            const data = await response.json();\n            \n            \/\/ Update share counter\n            const shareCounterSpan = button.querySelector('.share-counter');\n            if (shareCounterSpan) {\n                shareCounterSpan.textContent = data.shares_count;\n                shareCounterSpan.style.transform = 'scale(1.2)';\n                setTimeout(() => shareCounterSpan.style.transform = '', 300);\n            }\n            \n            \/\/ Update total views\n            const totalViewsSpan = document.querySelector('.fa-eye')?.parentElement?.querySelector('span:first-of-type');\n            if (totalViewsSpan && data.views_count !== undefined) {\n                totalViewsSpan.textContent = data.views_count;\n                totalViewsSpan.style.transform = 'scale(1.2)';\n                setTimeout(() => totalViewsSpan.style.transform = '', 300);\n            }\n        }\n        \n    } catch (error) {\n        console.error('Error:', error);\n        alert('Gagal membagikan. Silakan coba lagi.');\n    } finally {\n        button.innerHTML = originalHTML;\n        button.disabled = false;\n    }\n}\n<\/script>\n\n<div class=\"card-market group\">\n        \n        <div class=\"relative h-48 sm:h-52 md:h-44 lg:h-48 overflow-hidden bg-gradient-to-br from-[#ff6347]\/20 to-[#00bfff]\/20 rounded-t-xl\">\n            <a href=\"https:\/\/gifitech.digivora.com\/products\/mega-paket-desain-photoshop-koleksi-asset-grafis-premium\" class=\"block w-full h-full\">\n                <img src=\"storage\/products\/1780067210_main_mega-paket-desain-photoshop-koleksi-asset-grafis-premium.jpg\"\n                    alt=\"Mega Paket Desain Photoshop &amp; Koleksi Asset Grafis Premium\" loading=\"lazy\"\n                    class=\"w-full h-full object-cover transition-transform duration-500 ease-out hover:scale-110\">\n                \n                                    <div class=\"sale-ribbon\">Best Price<\/div>\n                                \n                <div class=\"absolute inset-0 bg-black\/0 hover:bg-black\/20 transition-all duration-300\"><\/div>\n            <\/a>\n        <\/div>\n\n        <div class=\"p-5\">\n            <div class=\"flex justify-between\">\n                <div class=\"star-rating text-sm\">\n                    <i class=\"fa-solid fa-star\"><\/i>\n                    <i class=\"fa-solid fa-star\"><\/i>\n                    <i class=\"fa-solid fa-star\"><\/i>\n                    <i class=\"fa-solid fa-star\"><\/i>\n                    <i class=\"fa-regular fa-star\"><\/i>\n                <\/div>\n                <span class=\"text-xs text-[#333333] bg-green-50 px-2 py-0.5 rounded-full border border-green-100\">\n                    <i class=\"fa-solid fa-eye\"><\/i> 250\n                <\/span>\n            <\/div>\n            <a href=\"https:\/\/gifitech.digivora.com\/products\/mega-paket-desain-photoshop-koleksi-asset-grafis-premium\">\n                <h3 class=\"font-bold text-lg mt-2 text-[#1e1e1e]\">Mega Paket Desain Photoshop &amp; Koleksi Asset Grafis Premium<\/h3>\n            <\/a>\n            <p class=\"text-[#333333] text-sm\">Desain Grafis<\/p>\n\n            <div class=\"flex justify-between items-center mt-5\">\n                <span class=\"text-2xl font-black text-[#ff6347]\">\n                    <span class=\"text-xs align-top inline-block mt-0.5\">Rp<\/span>\n                    12,000\n                <\/span>\n                <span class=\"text-[#333333] line-through text-sm\">\n                    <span class=\"text-xs\">Rp<\/span>66,000\n                <\/span>\n                \n                \n                <button class=\"bg-[#eeeeee] rounded-full hover:bg-[#ff6347]\/10 transition\" \n                    onclick=\"shareProduct('https:\/\/gifitech.digivora.com\/products\/mega-paket-desain-photoshop-koleksi-asset-grafis-premium', 'Produk GifiTech')\">\n                    <i class=\"fa-solid fa-share-nodes\"><\/i>\n                <\/button>\n            <\/div>\n        <\/div>\n    <\/div>\n\n\n\n<script>\n\n\n\/**\n * Share produk menggunakan Web Share API atau fallback copy\n *\/\nfunction shareProduct(url, productName) {\n    let fullUrl = url || window.location.href;\n    \n    const shareData = {\n        title: productName,\n        text: 'Lihat produk ini di GifiTech!',\n        url: fullUrl\n    };\n\n    if (navigator.share) {\n        navigator.share(shareData).catch(() => copyToClipboard(fullUrl));\n    } else {\n        copyToClipboard(fullUrl);\n    }\n}\n\n\/**\n * Copy URL ke clipboard\n *\/\nfunction copyToClipboard(url) {\n    navigator.clipboard.writeText(url)\n        .then(() => alert('Link produk disalin: ' + url))\n        .catch(() => {\n            const success = prompt('Salin link manual:', url);\n            return success !== null;\n        });\n}\n\n\/**\n * Handle share dengan tracking ke server\n *\/\nasync function handleShare(button, productUrl, productId) {\n    const originalHTML = button.innerHTML;\n    button.innerHTML = '<i class=\"fa-solid fa-spinner fa-spin\"><\/i>';\n    button.disabled = true;\n    \n    try {\n        const shareData = {\n            title: document.title,\n            text: 'Cek produk ini di GifiTech!',\n            url: productUrl\n        };\n        \n        let shareSuccess = false;\n        \n        if (navigator.share) {\n            try {\n                await navigator.share(shareData);\n                shareSuccess = true;\n            } catch (error) {\n                if (error.name !== 'AbortError') {\n                    shareSuccess = await copyToClipboard(productUrl);\n                }\n            }\n        } else {\n            shareSuccess = await copyToClipboard(productUrl);\n        }\n        \n        if (shareSuccess) {\n            const response = await fetch(`\/products\/${productId}\/track-share`, {\n                method: 'POST',\n                headers: {\n                    'Content-Type': 'application\/json',\n                    'X-CSRF-TOKEN': csrfToken\n                }\n            });\n            \n            const data = await response.json();\n            \n            \/\/ Update share counter\n            const shareCounterSpan = button.querySelector('.share-counter');\n            if (shareCounterSpan) {\n                shareCounterSpan.textContent = data.shares_count;\n                shareCounterSpan.style.transform = 'scale(1.2)';\n                setTimeout(() => shareCounterSpan.style.transform = '', 300);\n            }\n            \n            \/\/ Update total views\n            const totalViewsSpan = document.querySelector('.fa-eye')?.parentElement?.querySelector('span:first-of-type');\n            if (totalViewsSpan && data.views_count !== undefined) {\n                totalViewsSpan.textContent = data.views_count;\n                totalViewsSpan.style.transform = 'scale(1.2)';\n                setTimeout(() => totalViewsSpan.style.transform = '', 300);\n            }\n        }\n        \n    } catch (error) {\n        console.error('Error:', error);\n        alert('Gagal membagikan. Silakan coba lagi.');\n    } finally {\n        button.innerHTML = originalHTML;\n        button.disabled = false;\n    }\n}\n<\/script>\n\n"}