{
  "version": 3,
  "sources": ["/cdn/shop/t/1022/assets/ada-compliance-script.js?cv=16"],
  "sourcesContent": ["// This function will try to find the elements and move them.\nconst findAndMoveElements = () => {\n  // We still check periodically because the buttons are loaded dynamically.\n  console.log(\"Checking for elements...\");\n  \n  const priceDescriptors = document.querySelector('.price-descriptors');\n  // --- THIS IS THE CORRECTED LINE ---\n  // We are now looking for the class '.shopify-payment-button' instead of the non-existent ID.\n  const paymentButtonContainer = document.querySelector('.shopify-payment-button');\n\n  // Check if both elements are finally available.\n  if (priceDescriptors && paymentButtonContainer) {\n    \n    // --- SUCCESS! ---\n    // The elements exist, so we can move them.\n    paymentButtonContainer.insertAdjacentElement('afterend', priceDescriptors);\n    \n    // IMPORTANT: Stop the interval now that our job is done.\n    clearInterval(checkInterval);\n    \n    console.log('Success! The payment button container was found and the element was moved.');\n  }\n};\n\n// Start an interval to run our check function every 100ms.\nconst checkInterval = setInterval(findAndMoveElements, 100);\n\n// As a safety measure, stop checking after 10 seconds.\nsetTimeout(() => {\n  // This will only run if the element was not found in time.\n  clearInterval(checkInterval); \n}, 10000);\n\n\n///END MOVE OF UFE TO BELLOW SWATCHES\n\n\n// ADA Compliance Script for UFE Elements\n\n// Style for visually hidden labels accessible to screen readers\nconst style = document.createElement('style');\nstyle.textContent = `\n  .ada-sr-only {\n    position: absolute;\n    width: 1px;\n    height: 1px;\n    padding: 0;\n    margin: -1px;\n    overflow: hidden;\n    clip: rect(0, 0, 0, 0);\n    white-space: nowrap;\n    border-width: 0;\n  }\n`;\ndocument.head.appendChild(style);\n\n// Warn about duplicate IDs - this is a fundamental HTML issue to fix at the source.\nconsole.warn(\"ADA Compliance Script: Found elements with duplicate IDs ('ufe-qty-control', 'uprice'). IDs MUST be unique in HTML for proper accessibility and functionality. Please fix this in the source HTML.\");\n\nlet uniqueIdCounter = 0;\nconst ensureId = (element, baseName) => {\n    if (!element.id) {\n        element.id = `${baseName}-${uniqueIdCounter++}`;\n    }\n    return element.id;\n};\n\nconst makeButtonAccessible = (element) => {\n    if (element) {\n        element.setAttribute('tabindex', '0');\n        element.addEventListener('keydown', (event) => {\n            if (event.key === 'Enter' || event.key === ' ') {\n                event.preventDefault();\n                element.click();\n            }\n        });\n    }\n};\n\n// Function to enhance swatch radio button keyboard navigation\nconst enhanceSwatchKeyboardNav = (swatchInput) => {\n    if (swatchInput && swatchInput.type === 'radio') {\n        swatchInput.addEventListener('keydown', (event) => {\n            if (event.key === 'Enter') {\n                event.preventDefault();\n                if (!swatchInput.checked) {\n                    swatchInput.checked = true;\n                    // Dispatch a change event to ensure any listeners are notified\n                    swatchInput.dispatchEvent(new Event('change', { bubbles: true }));\n                    console.log(`ADA script: Selected swatch '${swatchInput.value}' with Enter key.`);\n                }\n            }\n        });\n    }\n};\n\nconst processUfeElement = (elementToProcess, isTriggerProduct = false) => {\n    if (!elementToProcess) return;\n\n    if (isTriggerProduct) {\n        // Handle .ufe-trigger-product\n        const triggerProductDiv = elementToProcess;\n        const triggerImgSpan = triggerProductDiv.querySelector('.ufe-trigger-product--img .ufe-trigger-img');\n        const triggerTitleMainSpan = triggerProductDiv.querySelector('.ufe-trigger-title > span'); // Main title text part\n        const triggerTitleSmall = triggerProductDiv.querySelector('.ufe-trigger-title small');\n        const triggerPriceMoney = triggerProductDiv.querySelector('.ufe-trigger-price .money');\n\n        if (triggerImgSpan && triggerTitleMainSpan) {\n            triggerImgSpan.setAttribute('aria-label', `Image of ${triggerTitleMainSpan.textContent.trim()}`);\n            triggerImgSpan.setAttribute('role', 'img');\n        }\n        const triggerSvg = triggerProductDiv.querySelector('.ufe-trigger-product--img svg');\n        if (triggerSvg) {\n            triggerSvg.setAttribute('aria-hidden', 'true');\n        }\n\n        // Contrast improvements for .ufe-trigger-product\n        if (triggerTitleMainSpan) {\n            triggerTitleMainSpan.style.color = '#000000';\n            triggerTitleMainSpan.style.fontWeight = 'bold';\n        }\n        if (triggerTitleSmall) {\n            triggerTitleSmall.style.color = '#000000';\n            triggerTitleSmall.style.fontWeight = 'bold';\n        }\n        if (triggerPriceMoney) {\n            triggerPriceMoney.style.setProperty('color', '#000000', 'important');\n            triggerPriceMoney.style.fontWeight = 'bold';\n        }\n\n    } else {\n        // Handle .upsellWrapper (elementToProcess is an upsellWrapper)\n        const upsellWrapper = elementToProcess;\n        const itemIndex = uniqueIdCounter; // Use global counter for unique IDs across wrappers\n\n        const upsellImgSpan = upsellWrapper.querySelector('.upsellImg > span');\n        const upsellTitleElement = upsellWrapper.querySelector('.upsellTitle > span'); // This is often the one acting as a button or main title\n        const productTitleText = (upsellTitleElement && upsellTitleElement.textContent) ? upsellTitleElement.textContent.trim() : 'the displayed item';\n\n        if (upsellImgSpan && upsellTitleElement) {\n            upsellImgSpan.setAttribute('aria-label', `Image of ${productTitleText}`);\n            upsellImgSpan.setAttribute('role', 'img');\n        }\n        \n        // Contrast for upsell title\n        if (upsellTitleElement) {\n            upsellTitleElement.style.color = '#000000';\n            upsellTitleElement.style.fontWeight = 'bold';\n        }\n\n        const upsellTitleButton = upsellWrapper.querySelector('.upsellTitle > span[role=\"button\"].ufe-has-no-link');\n        if (upsellTitleButton) { // This might be the same as upsellTitleElement\n            makeButtonAccessible(upsellTitleButton);\n            upsellTitleButton.setAttribute('aria-label', productTitleText);\n            // Ensure its style is also updated if it's a separate element or if styling above didn't catch it\n            upsellTitleButton.style.color = '#000000';\n            upsellTitleButton.style.fontWeight = 'bold';\n        }\n        \n        // Contrast for upsell price\n        const upsellPriceMoney = upsellWrapper.querySelector('.upsellPrice .money');\n        if (upsellPriceMoney) {\n            upsellPriceMoney.style.setProperty('color', '#000000', 'important'); // Override inline green\n            upsellPriceMoney.style.fontWeight = 'bold';\n        }\n\n        const quantityInput = upsellWrapper.querySelector('.ufe-quantity input.ufe-input');\n        if (quantityInput) {\n            const inputId = ensureId(quantityInput, `ufe-qty-input-${itemIndex}`);\n            quantityInput.removeAttribute('aria-label'); // Remove aria-label, will use explicit label\n\n            let label = upsellWrapper.querySelector(`label[for=\"${inputId}\"]`);\n            if (!label) {\n                label = document.createElement('label');\n                label.setAttribute('for', inputId);\n                label.className = 'ada-sr-only';\n                quantityInput.parentNode.insertBefore(label, quantityInput);\n            }\n            label.textContent = `Quantity for ${productTitleText}`;\n\n            // Style for touch target size\n            quantityInput.style.minHeight = '44px';\n            quantityInput.style.paddingTop = '10px';\n            quantityInput.style.paddingBottom = '10px';\n            quantityInput.style.boxSizing = 'border-box';\n        }\n\n        const variantSelect = upsellWrapper.querySelector('select.ufe-input.ufe-variants');\n        if (variantSelect) {\n            const selectId = ensureId(variantSelect, `ufe-variant-select-${itemIndex}`);\n            variantSelect.removeAttribute('aria-label'); // Remove aria-label, will use explicit label\n\n            let label = upsellWrapper.querySelector(`label[for=\"${selectId}\"]`);\n            if (!label) {\n                label = document.createElement('label');\n                label.setAttribute('for', selectId);\n                label.className = 'ada-sr-only';\n                // Insert before the select, or its wrapper if it has one (e.g. .ufe-s)\n                const selectParent = variantSelect.closest('.ufe-s') || variantSelect.parentNode;\n                selectParent.parentNode.insertBefore(label, selectParent);\n\n            }\n            label.textContent = `Select option for ${productTitleText}`;\n        }\n\n        const quantityControls = upsellWrapper.querySelectorAll('.ufe-quantity > span[role=\"button\"]');\n        quantityControls.forEach(control => {\n            makeButtonAccessible(control);\n            const controlText = control.textContent.trim();\n            let ariaLabel = '';\n            if (controlText === '-') {\n                ariaLabel = `Decrease quantity for ${productTitleText}`;\n            } else if (controlText === '+') {\n                ariaLabel = `Increase quantity for ${productTitleText}`;\n            }\n            if (ariaLabel) {\n                control.setAttribute('aria-label', ariaLabel);\n            }\n            if (control.style.cursor === 'not-allowed') {\n                control.setAttribute('aria-disabled', 'true');\n            } else {\n                control.removeAttribute('aria-disabled');\n            }\n\n            // Style for touch target size\n            control.style.minWidth = '44px';\n            control.style.minHeight = '44px';\n            control.style.padding = '10px';\n            control.style.display = 'inline-flex';\n            control.style.alignItems = 'center';\n            control.style.justifyContent = 'center';\n            control.style.boxSizing = 'border-box';\n        });\n\n        const atcButton = upsellWrapper.querySelector('button.atcBtn');\n        if (atcButton) {\n            const atcButtonImgs = atcButton.querySelectorAll('img.ufe-ico');\n            atcButtonImgs.forEach(img => {\n                img.setAttribute('alt', ''); // Mark as decorative\n            });\n            const currentButtonTextSpan = atcButton.querySelector('span');\n            if (currentButtonTextSpan) {\n                atcButton.setAttribute('aria-label', `Yes, I want ${productTitleText}`);\n            }\n        }\n        console.log(`ADA script processed upsellWrapper for: ${productTitleText}`);\n    }\n};\n\nconst removeProblematicYotpoDropdowns = (scanRootNode) => {\n    // Selector for the placeholder span within the Yotpo dropdown component.\n    const dropdownPlaceholders = scanRootNode.querySelectorAll('span[id^=\"yotpo-dropdown-\"].yotpo-dropdown-placeholder');\n\n    dropdownPlaceholders.forEach(placeholder => {\n        const componentToRemove = placeholder.parentElement;\n        if (componentToRemove && componentToRemove.parentElement) { // Ensure parent exists and is not the document root itself\n            // Check if the parent has a data-v attribute (common for Vue component roots)\n            const isLikelyYotpoComponentParent = Array.from(componentToRemove.attributes).some(attr => attr.name.startsWith('data-v-'));\n\n            // Check if this parent contains other known parts of the Yotpo dropdown or the placeholder itself is clearly Yotpo.\n            if (isLikelyYotpoComponentParent &&\n                (componentToRemove.querySelector('.yotpo-selected-value') ||\n                 componentToRemove.querySelector('.yotpo-dropdown-content-wrapper') ||\n                 placeholder.id.startsWith(\"yotpo-dropdown-\"))) {\n                console.log(`ADA script: Removing Yotpo sort dropdown component (parent: ${componentToRemove.tagName}, id: ${componentToRemove.id || 'N/A'}, class: \"${componentToRemove.className || 'N/A'}\") containing placeholder: ${placeholder.id}`);\n                componentToRemove.remove();\n            } else {\n                let parentDetails = `tag: ${componentToRemove.tagName}`;\n                if (componentToRemove.id) parentDetails += `, id: ${componentToRemove.id}`;\n                if (componentToRemove.className) parentDetails += `, class: \"${componentToRemove.className}\"`;\n                let childDetails = `selected_value: ${!!componentToRemove.querySelector('.yotpo-selected-value')}, content_wrapper: ${!!componentToRemove.querySelector('.yotpo-dropdown-content-wrapper')}, placeholder_id_is_yotpo: ${placeholder.id.startsWith(\"yotpo-dropdown-\")}`;\n                console.warn(`ADA script: Found Yotpo placeholder ${placeholder.id}. Its parent (${parentDetails}) did not meet removal criteria (isLikelyYotpoParent: ${isLikelyYotpoComponentParent}, childChecks: ${childDetails}). Not removing.`);\n            }\n        } else if (componentToRemove && !componentToRemove.parentElement) {\n             console.warn(`ADA script: Found Yotpo placeholder ${placeholder.id}, its parent is likely document.body or detached, or is the html element. Not removing directly.`);\n        } else {\n            console.warn(`ADA script: Found Yotpo dropdown placeholder ${placeholder.id} but it has no parentElement to inspect or remove.`);\n        }\n    });\n};\nconst initAdaCompliance = () => {\n    // Process any elements already in the DOM\n    const initialTrigger = document.querySelector('.ufe-trigger-product');\n    if (initialTrigger) {\n        processUfeElement(initialTrigger, true);\n    }\n    document.querySelectorAll('.upsellWrapper').forEach(wrapper => processUfeElement(wrapper));\n\n    // Process initially present PayPal buttons\n    const initialPayPalButtons = document.querySelectorAll('shopify-paypal-button');\n    initialPayPalButtons.forEach(button => {\n        if (!button.hasAttribute('aria-label')) {\n            button.setAttribute('aria-label', 'Checkout with PayPal');\n            console.log('ADA script: Added aria-label to initially present shopify-paypal-button');\n        }\n    });\n\n    // Process initially present product swatch radio buttons\n    const initialSwatchInputs = document.querySelectorAll('input.opt-btn.js-option[type=\"radio\"]');\n    initialSwatchInputs.forEach(swatch => {\n        enhanceSwatchKeyboardNav(swatch);\n    });\n    if (initialSwatchInputs.length > 0) {\n        console.log(`ADA script: Enhanced keyboard navigation for ${initialSwatchInputs.length} initial product swatches.`);\n    }\n\n    // Remove problematic Yotpo dropdowns initially present\n    removeProblematicYotpoDropdowns(document);\n    console.log('ADA script: Initial check for Yotpo sort dropdowns complete.');\n\n    // Observe the body for dynamically added UFE elements\n    const observer = new MutationObserver((mutationsList, observerInstance) => {\n        for (const mutation of mutationsList) {\n            if (mutation.type === 'childList' && mutation.addedNodes.length > 0) {\n                mutation.addedNodes.forEach(node => {\n                    if (node.nodeType === Node.ELEMENT_NODE) {\n                        // Check if the added node itself is a ufe-trigger-product\n                        if (node.matches && node.matches('.ufe-trigger-product')) {\n                            console.log('ADA script: Detected new .ufe-trigger-product');\n                            processUfeElement(node, true);\n                        }\n                        // Check if the added node itself is an upsellWrapper\n                        if (node.matches && node.matches('.upsellWrapper')) {\n                            console.log('ADA script: Detected new .upsellWrapper');\n                            processUfeElement(node);\n                        }\n                        // Check for ufe-trigger-product within the added node\n                        const triggersInNode = node.querySelectorAll ? node.querySelectorAll('.ufe-trigger-product') : [];\n                        triggersInNode.forEach(trigger => {\n                             console.log('ADA script: Detected new .ufe-trigger-product (child)');\n                            processUfeElement(trigger, true);\n                        });\n                        // Check for upsellWrappers within the added node\n                        const wrappersInNode = node.querySelectorAll ? node.querySelectorAll('.upsellWrapper') : [];\n                        wrappersInNode.forEach(wrapper => {\n                            console.log('ADA script: Detected new .upsellWrapper (child)');\n                            processUfeElement(wrapper);\n                        });\n\n                        // --- Yotpo Specific Fixes ---\n                        // Check for Yotpo scoreDropdownInput\n                        if (node.matches && node.matches('#scoreDropdownInput')) {\n                            console.log('ADA script: Detected #scoreDropdownInput');\n                            node.setAttribute('role', 'textbox');\n                            if (node.hasAttribute('readonly')) {\n                                node.removeAttribute('aria-autocomplete');\n                                console.log('ADA script: Removed aria-autocomplete from readonly #scoreDropdownInput');\n                            }\n                        }\n                        // Check for #scoreDropdownInput within the added node\n                        const yotpoScoreInput = node.querySelector ? node.querySelector('#scoreDropdownInput') : null;\n                        if (yotpoScoreInput) {\n                            console.log('ADA script: Detected #scoreDropdownInput (child)');\n                            yotpoScoreInput.setAttribute('role', 'textbox');\n                            if (yotpoScoreInput.hasAttribute('readonly')) {\n                                yotpoScoreInput.removeAttribute('aria-autocomplete');\n                                console.log('ADA script: Removed aria-autocomplete from readonly #scoreDropdownInput (child)');\n                           }\n                       }\n\n                       // --- PayPal Button Specific Fixes ---\n                       // Check if the added node itself is a shopify-paypal-button\n                       if (node.matches && node.matches('shopify-paypal-button')) {\n                           if (!node.hasAttribute('aria-label')) {\n                               node.setAttribute('aria-label', 'Checkout with PayPal');\n                               console.log('ADA script: Added aria-label to new shopify-paypal-button');\n                           }\n                       }\n                       // Check for shopify-paypal-button within the added node\n                       const payPalButtonsInNode = node.querySelectorAll ? node.querySelectorAll('shopify-paypal-button') : [];\n                       payPalButtonsInNode.forEach(button => {\n                           if (!button.hasAttribute('aria-label')) {\n                               button.setAttribute('aria-label', 'Checkout with PayPal');\n                               console.log('ADA script: Added aria-label to new shopify-paypal-button (child)');\n                           }\n                       });\n\n                       // --- Product Swatch Radio Button Keyboard Navigation Enhancement ---\n                       // Check if the added node itself is a product swatch radio input\n                       if (node.matches && node.matches('input.opt-btn.js-option[type=\"radio\"]')) {\n                           enhanceSwatchKeyboardNav(node);\n                           console.log('ADA script: Enhanced keyboard nav for new product swatch radio.');\n                       }\n                       // Check for product swatch radio inputs within the added node\n                       const swatchInputsInNode = node.querySelectorAll ? node.querySelectorAll('input.opt-btn.js-option[type=\"radio\"]') : [];\n                       swatchInputsInNode.forEach(swatch => {\n                           enhanceSwatchKeyboardNav(swatch);\n                           console.log('ADA script: Enhanced keyboard nav for new product swatch radio (child).');\n                       });\n\n                        // Remove problematic Yotpo dropdowns if added dynamically\n                        removeProblematicYotpoDropdowns(node); // This scans the added node and its children\n                   }\n               });\n           }\n       }\n   });\n\n    observer.observe(document.body, { childList: true, subtree: true });\n    console.log('ADA compliance MutationObserver initialized.');\n};\n\nif (document.readyState === 'loading') {\n    document.addEventListener('DOMContentLoaded', initAdaCompliance);\n} else {\n    // DOMContentLoaded has already fired\n    initAdaCompliance();\n}"],
  "mappings": "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",
  "names": []
}
