top of page

Explorez la collection

Les seules limites à la création sont les limites de notre imagination .

Capture d'écran 2025-08-29 172246 - Copie.png
Capture d'écran 2025-08-29 172233 - Copie.png
Capture d'écran 2025-08-16 151549.png
Capture d'écran 2025-08-16 164158.png
Capture d'écran 2025-08-16 164142.png
Capture d'écran 2025-08-29 172119 - Copie.png
Capture d'écran 2025-08-29 172132 - Copie.png
Capture d'écran 2025-08-29 172148 - Copie.png
Capture d'écran 2025-08-29 172205 - Copie.png
Capture d'écran 2025-08-29 172219 - Copie.png
Capture d'écran 2025-08-16 164830.png
Capture d'écran 2025-08-16 165007.png
Capture d'écran 2025-08-16 165114.png
Capture d'écran 2025-08-16 165142.png
Capture d'écran 2025-08-16 165248.png
Capture d'écran 2025-08-16 165236.png
Capture d'écran 2025-08-16 165314.png
Capture d'écran 2025-08-16 165329.png
Capture d'écran 2025-08-16 165439.png
Capture d'écran 2025-08-16 165452.png
Capture d'écran 2025-08-16 164725.png
Capture d'écran 2025-08-16 165302.png
Capture d'écran 2025-08-16 165425.png
Capture d'écran 2025-08-16 164338.png
Capture d'écran 2025-08-16 164354.png
Capture d'écran 2025-08-16 164407.png
Capture d'écran 2025-08-16 164753.png
Capture d'écran 2025-08-16 164912.png
Capture d'écran 2025-08-16 165129.png
Capture d'écran 2025-08-16 165411.png
Capture d'écran 2025-08-16 165358.png
Capture d'écran 2025-08-16 164645.png
Capture d'écran 2025-08-16 164659.png
Capture d'écran 2025-08-16 164711.png
Capture d'écran 2025-08-16 165058.png
Capture d'écran 2025-08-16 165641 - Copie.png
Capture d'écran 2025-08-16 165226 - Copie.png
Capture d'écran 2025-08-16 164859.png
Capture d'écran 2025-08-16 165616 - Copie.png
Capture d'écran 2025-08-16 164603.png
Capture d'écran 2025-08-16 164618.png
Capture d'écran 2025-08-16 164421.png
Capture d'écran 2025-08-16 164435.png
Capture d'écran 2025-08-16 164448.png
Capture d'écran 2025-08-16 164504.png
Capture d'écran 2025-08-16 164550.png
Capture d'écran 2025-08-16 164534.png
Capture d'écran 2025-08-16 165019.png
Capture d'écran 2025-08-16 165044.png
Capture d'écran 2025-08-16 165155.png
Capture d'écran 2025-08-16 165208 - Copie.png
Capture d'écran 2025-08-16 165507.png
Capture d'écran 2025-08-16 165030.png
Capture d'écran 2025-08-16 165520 - Copie.png
Capture d'écran 2025-08-16 164517.png
Capture d'écran 2025-08-16 165345.png
Capture d'écran 2025-08-16 164938.png
Capture d'écran 2025-08-16 165532 - Copie.png
Capture d'écran 2025-08-16 165716 - Copie.png
Capture d'écran 2025-08-16 164818.png
Capture d'écran 2025-08-16 165707 - Copie.png
Capture d'écran 2025-08-16 164924.png
Capture d'écran 2025-08-16 164807.png
Capture d'écran 2025-08-29 172010 - Copie.png
Capture d'écran 2025-08-16 164847.png
Capture d'écran 2025-08-16 165654 - Copie.png

Éléments essentiels

Nourissez leur bidou et leurs neurones ....Balle à renifler interactive pour chiens, recommandée pour les petits chiens ou chiots, tissu durable, lavable en machine,pour la recherche de nourriture et le reniflage

 

Voed hun buikje en brein. Snuffelbal voor kleine honjes of puppy's.  Duurzame stof, machinewasbaar

SNUFFELBALL 10cm

SKU : SNUFFBAL - S
9,70 €Prix
TVA Incluse |
Quantité
    Commentaires

    Partagez vos idéesSoyez le premier à rédiger un commentaire.
    Alain-Thimmesch-Nieuwvliet-12042025-Moll
    bottom of page
    function syncTiles(){ $grid.querySelectorAll('.pc-item').forEach(el=>{ const name = el.getAttribute('data-name'); const active = (selectionMode==='single') ? (selected[0]===name) : selected.includes(name); el.setAttribute('aria-pressed', active); el.classList.toggle('is-selected', active); updateBadge(el, name); }); } function updateBadge(el, name){ // Nettoie el.querySelectorAll('.pc-badge').forEach(b=>b.remove()); if(selectionMode==='double'){ const idx = selected.indexOf(name); if(idx>-1){ const b = document.createElement('div'); b.className='pc-badge'; b.textContent = idx===0? 'A' : 'B'; el.appendChild(b); } } } function updateSummary(){ if(selected.length===0){ $summary.textContent = 'Aucune sélection'; return; } if(selectionMode==='single'){ $summary.textContent = `Sélection: ${selected[0]}`; } else { const [a,b] = selected; $summary.textContent = `Couleurs: ${a || '—'} ${b? ' + '+b : ''}`; } } function syncHiddenFields(){ // Injection facultative dans des champs existants de formulaire try{ if(selectionMode==='single' && CONFIG.formFieldSingleId){ const i = document.getElementById(CONFIG.formFieldSingleId); if(i) i.value = selected[0] || ''; } if(selectionMode==='double'){ if(CONFIG.formFieldDoubleIdA){ const ia = document.getElementById(CONFIG.formFieldDoubleIdA); if(ia) ia.value = selected[0] || ''; } if(CONFIG.formFieldDoubleIdB){ const ib = document.getElementById(CONFIG.formFieldDoubleIdB); if(ib) ib.value = selected[1] || ''; } } }catch(err){ /* silencieux */ } } // Toolbar (changer le mode à la volée) $root.querySelectorAll('.pc-chip').forEach(btn=>{ btn.addEventListener('click', ()=>{ selectionMode = btn.getAttribute('data-mode'); selected = []; $root.querySelectorAll('.pc-chip').forEach(b=>b.setAttribute('aria-pressed','false')); btn.setAttribute('aria-pressed','true'); $grid.setAttribute('role', selectionMode==='single'?'radiogroup':'group'); renderGrid(); }) }); // Actions $copy.addEventListener('click', async ()=>{ const text = (selectionMode==='single') ? (selected[0] || '') : selected.join(' / '); try{ await navigator.clipboard.writeText(text); $copy.textContent = 'Copié !'; setTimeout(()=>{$copy.textContent='Copier la sélection'},1200); }catch(err){ alert(text); } }); $clear.addEventListener('click', ()=>{ selected=[]; syncTiles(); updateSummary(); syncHiddenFields(); }); // Premier rendu renderGrid(); })();