{
  "version": 3,
  "sources": ["/cdn/shop/t/3/assets/awtomic-bundles.js?cv=402f958"],
  "sourcesContent": ["import { A, y, q, d, T, x, b, u, k, _, r as register } from \"./preact-core.js\";\nimport { l as layout } from \"./layout-store.js\";\nimport { S as SHOPIFY_STOREFRONT_API_ENDPOINT, a as SHOPIFY_STOREFRONT_HEADERS } from \"./shopifyStorefront.js\";\nimport { S as SvgMinus, a as SvgPlus, V as VariantSelects } from \"./minus.js\";\nimport { C as CustomSelect } from \"./custom-select.js\";\nimport { a as slideDown, s as slideUp } from \"./slide.js\";\nimport \"./preact-signals.js\";\nimport \"./graphql-client.js\";\nimport \"./utilities.js\";\nimport \"./lodash-utils.js\";\nfunction extractNumericId(id) {\n  const match = String(id).match(/(\\d+)$/);\n  return match ? parseInt(match[1], 10) : NaN;\n}\nfunction extractExtraProductIds(entries) {\n  const ids = [];\n  (Array.isArray(entries) ? entries : []).forEach((entry) => {\n    var _a;\n    const rawId = ((_a = entry == null ? void 0 : entry.productData) == null ? void 0 : _a.id) ?? (entry == null ? void 0 : entry.id);\n    if (!rawId) return;\n    const id = `gid://shopify/Product/${extractNumericId(rawId)}`;\n    if (!ids.includes(id)) {\n      ids.push(id);\n    }\n  });\n  return ids;\n}\nfunction extractExtraSellingPlans(entries) {\n  const plansByVariant = {};\n  (Array.isArray(entries) ? entries : []).forEach((entry) => {\n    var _a;\n    (((_a = entry == null ? void 0 : entry.productData) == null ? void 0 : _a.variants) || []).forEach((variant) => {\n      plansByVariant[variant.id] = (variant.selling_plan_allocations || []).map(\n        (allocation) => allocation.selling_plan_id\n      );\n    });\n  });\n  return plansByVariant;\n}\nfunction isRecurringExtra(variant, selectedSellingPlan) {\n  if (!(selectedSellingPlan == null ? void 0 : selectedSellingPlan.id)) return false;\n  return ((variant == null ? void 0 : variant.sellingPlanIds) || []).includes(\n    extractNumericId(selectedSellingPlan.id)\n  );\n}\nfunction buildExtrasCartItems({\n  selectedExtras,\n  bundleProductId,\n  selectedSellingPlan\n}) {\n  return (selectedExtras || []).filter((item) => {\n    var _a;\n    return ((_a = item == null ? void 0 : item.product) == null ? void 0 : _a.id) && Number(item.qty) > 0;\n  }).map((item) => {\n    const cartItem = {\n      id: extractNumericId(item.product.id),\n      quantity: Number(item.qty),\n      properties: {\n        _bundleProductId: bundleProductId,\n        _addon: 1\n      }\n    };\n    if (isRecurringExtra(item.product, selectedSellingPlan)) {\n      cartItem.selling_plan = extractNumericId(selectedSellingPlan.id);\n    }\n    return cartItem;\n  });\n}\nfunction extractVariantId(id) {\n  const str = String(id);\n  const match = str.match(/(\\d+)$/);\n  return match ? parseInt(match[1], 10) : parseInt(str, 10);\n}\nfunction useBundleSubmit({\n  bundleState,\n  setBundleState,\n  selectedVariants,\n  bundle,\n  bundleProduct,\n  isDynamicBundle,\n  layout: layout2,\n  generateUUID: generateUUID2,\n  feeId,\n  feePrice,\n  feeTitle,\n  selectedExtras = []\n}) {\n  const feeIdRef = A(feeId ?? null);\n  const feePriceRef = A(feePrice ?? null);\n  const feeTitleRef = A(feeTitle ?? null);\n  y(() => {\n    feeIdRef.current = feeId ?? null;\n    feePriceRef.current = feePrice ?? null;\n    feeTitleRef.current = feeTitle ?? null;\n  }, [feeId, feePrice, feeTitle]);\n  return q(async () => {\n    setBundleState((prev) => ({ ...prev, loading: true }));\n    let items = [];\n    const bundleUid = generateUUID2();\n    if (isDynamicBundle) {\n      selectedVariants.forEach((product) => {\n        let item = {\n          id: Number(extractVariantId(product.product.id)),\n          quantity: typeof product.qty === \"string\" ? parseInt(product.qty) : product.qty,\n          properties: {\n            _bundleUid: bundleUid,\n            _bundleHandle: bundleProduct.handle,\n            _bundleLabel: bundleState.activeSetting.Label,\n            _bundleProductId: bundle.ProductId,\n            _bundleType: \"dynamicBaB\",\n            _bundleName: bundle.Name,\n            _bundleBoxMinSize: parseInt(bundleState.activeSetting.MinSize) || parseInt(bundleState.activeSetting.Size) || 0,\n            _bundleBoxMaxSize: parseInt(bundleState.activeSetting.MaxSize) || parseInt(bundleState.activeSetting.Size) || 0,\n            _bundleBoxSize: parseInt(bundleState.activeSetting.Size) || 0,\n            _bundleBoxPrice: parseFloat(bundleState.activeSetting.Price),\n            _variantId: bundleState.activeSetting.VariantId,\n            _feeId: feeIdRef.current\n          }\n        };\n        if (bundleState.selectedSellingPlan && bundleState.selectedSellingPlan.id) {\n          item.selling_plan = parseInt(\n            bundleState.selectedSellingPlan.id.replace(\n              \"gid://shopify/SellingPlan/\",\n              \"\"\n            ),\n            10\n          );\n        }\n        items.push(item);\n      });\n    } else {\n      let item = {\n        id: Number(extractVariantId(bundleState.activeSetting.VariantId)),\n        quantity: 1,\n        properties: {\n          _bundleHandle: bundleProduct.handle,\n          _bundleLabel: bundleState.activeSetting.Label,\n          _bundleProductId: bundle.ProductId,\n          _bundleName: bundle.Name,\n          _bundleBoxSize: parseFloat(bundleState.activeSetting.Size),\n          _bundleBoxPrice: parseFloat(bundleState.activeSetting.Price),\n          _variantId: bundleState.activeSetting.VariantId,\n          _feeId: feeId || null\n        }\n      };\n      selectedVariants.forEach((product) => {\n        var _a, _b, _c;\n        const formattedTitle = JSON.stringify(\n          `${((_b = (_a = product.product) == null ? void 0 : _a.product) == null ? void 0 : _b.title) || \"Unknown\"} - ${((_c = product.product) == null ? void 0 : _c.title) || \"\"}`\n        ).slice(1, -1);\n        const floatQty = typeof product.qty === \"string\" ? parseFloat(product.qty) : product.qty;\n        item.properties[`_pv_${extractVariantId(product.product.id)}`] = floatQty;\n        item.properties[formattedTitle] = floatQty;\n      });\n      if (bundleState.selectedSellingPlan && bundleState.selectedSellingPlan.id) {\n        item.selling_plan = parseInt(\n          bundleState.selectedSellingPlan.id.replace(\n            \"gid://shopify/SellingPlan/\",\n            \"\"\n          ),\n          10\n        );\n      }\n      items.push(item);\n    }\n    items.push(\n      ...buildExtrasCartItems({\n        selectedExtras,\n        bundleProductId: bundle.ProductId,\n        selectedSellingPlan: bundleState.selectedSellingPlan\n      })\n    );\n    const currentFeeId = feeIdRef.current;\n    if (currentFeeId && String(currentFeeId).trim() !== \"\") {\n      try {\n        const feeIdStr = String(currentFeeId);\n        const cleanFeeId = feeIdStr.replace(\n          \"gid://shopify/ProductVariant/\",\n          \"\"\n        );\n        const feeItem = {\n          id: Number(extractVariantId(cleanFeeId)),\n          quantity: 1,\n          properties: {\n            _bundleUid: bundleUid,\n            _bundleHandle: bundleProduct.handle,\n            _bundleFeeFor: bundleProduct.handle,\n            _feeId: currentFeeId\n          }\n        };\n        items.unshift(feeItem);\n      } catch (feeError) {\n      }\n    }\n    try {\n      const body = JSON.stringify({ items });\n      const response = await layout2.cartAddItem(body);\n      if (response.status) {\n        layout2.cartError.value = response.description;\n      } else {\n        if (!bundleState.activeSetting.DynamicDiscountCode) {\n          layout2.slideover.value = \"cart\";\n        }\n      }\n      if (bundleState.activeSetting.DynamicDiscountCode) {\n        await fetch(\n          \"/discount/\" + bundleState.activeSetting.DynamicDiscountCode\n        );\n        layout2.slideover.value = \"cart\";\n      }\n    } catch (error) {\n    } finally {\n      setBundleState((prev) => ({ ...prev, loading: false }));\n    }\n  }, [\n    bundleState,\n    setBundleState,\n    selectedVariants,\n    bundle,\n    bundleProduct,\n    isDynamicBundle,\n    layout2,\n    generateUUID2,\n    feeId,\n    feePrice,\n    feeTitle,\n    selectedExtras\n  ]);\n}\nconst useToasts = () => {\n  const [toasts, setToasts] = d([]);\n  const removeToast = q((id) => {\n    setToasts((prevToasts) => prevToasts.filter((toast) => toast.id !== id));\n  }, []);\n  const addToast = q(\n    ({\n      message,\n      type,\n      duration,\n      secondaryMessage\n    }) => {\n      const id = (/* @__PURE__ */ new Date()).getTime().toString();\n      const toastId = `${id}-${type}`;\n      const newToast = {\n        id: toastId,\n        message,\n        secondaryMessage,\n        type,\n        duration\n      };\n      setToasts((prevToasts) => [...prevToasts, newToast]);\n      if (duration) {\n        setTimeout(() => {\n          removeToast(toastId);\n        }, duration);\n      }\n    },\n    [removeToast]\n  );\n  return { toasts, addToast, removeToast };\n};\nconst PRODUCTS_QUERY = `\n  query getProducts($ids: [ID!]!) {\n    nodes(ids: $ids) {\n      ... on Product {\n        id\n        title\n        handle\n        description\n        descriptionHtml\n        availableForSale\n        productType\n        vendor\n        tags\n        card_tags: metafield(namespace: \"custom\", key: \"card_tags\") {\n          value\n        }\n        short_description: metafield(namespace: \"custom\", key: \"short_description\") {\n          value\n        }\n        options {\n          name\n          values\n        }\n        priceRange {\n          minVariantPrice {\n            amount\n            currencyCode\n          }\n          maxVariantPrice {\n            amount\n            currencyCode\n          }\n        }\n        variants(first: 50) {\n          edges {\n            node {\n              id\n              title\n              price {\n                amount\n                currencyCode\n              }\n              compareAtPrice {\n                amount\n                currencyCode\n              }\n              availableForSale\n              sku\n              image {\n                id\n                url\n                altText\n                width\n                height\n              }\n              selectedOptions {\n                name\n                value\n              }\n              product {\n                title\n                productType\n                vendor\n              }\n            }\n          }\n        }\n        images(first: 10) {\n          edges {\n            node {\n              id\n              url\n              altText\n              width\n              height\n            }\n          }\n        }\n        sellingPlanGroups(first: 5) {\n          nodes {\n            sellingPlans(first: 10) {\n              edges {\n                node {\n                  id\n                  name\n                  priceAdjustments {\n                    adjustmentValue {\n                      ... on SellingPlanPercentagePriceAdjustment {\n                        adjustmentPercentage\n                      }\n                    }\n                  }\n                }\n              }\n            }\n          }\n        }\n      }\n    }\n  }\n`;\nfunction transformProductBundle(restProduct) {\n  if (!restProduct) return null;\n  return {\n    ...restProduct,\n    // Convert requires_selling_plan \u2192 requiresSellingPlan\n    requiresSellingPlan: restProduct.requires_selling_plan,\n    // Convert selling_plan_groups \u2192 sellingPlanGroups with GraphQL structure\n    sellingPlanGroups: {\n      nodes: (restProduct.selling_plan_groups || []).map((group) => ({\n        ...group,\n        sellingPlans: {\n          edges: (group.selling_plans || []).filter((plan) => plan && plan.id).map((plan) => {\n            var _a;\n            return {\n              node: {\n                id: `gid://shopify/SellingPlan/${plan.id}`,\n                name: plan.name,\n                priceAdjustments: ((_a = plan.price_adjustments) == null ? void 0 : _a.map((adj) => ({\n                  adjustmentValue: {\n                    adjustmentPercentage: adj.value\n                  }\n                }))) || []\n              }\n            };\n          })\n        }\n      }))\n    }\n  };\n}\nasync function fetchProductDetails(productIds) {\n  if (!productIds.length) return [];\n  const response = await fetch(SHOPIFY_STOREFRONT_API_ENDPOINT, {\n    method: \"POST\",\n    headers: SHOPIFY_STOREFRONT_HEADERS,\n    body: JSON.stringify({\n      query: PRODUCTS_QUERY,\n      variables: { ids: productIds }\n    })\n  });\n  if (!response.ok) {\n    throw new Error(`Storefront API error: ${response.status}`);\n  }\n  const result = await response.json();\n  if (result.errors) {\n    console.error(\"Storefront API errors:\", result.errors);\n    throw new Error(\"Storefront API returned errors\");\n  }\n  const products = result.data.nodes.filter((node) => node !== null).map((product) => {\n    var _a;\n    return {\n      ...product,\n      variants: (((_a = product == null ? void 0 : product.variants) == null ? void 0 : _a.edges) || []).map((edge) => edge == null ? void 0 : edge.node)\n    };\n  });\n  return products;\n}\nconst useBundleData = ({\n  bundleId,\n  countryCode,\n  lang\n}) => {\n  const [bundle, setBundle] = d(null);\n  const [products, setProducts] = d(null);\n  const [extras, setExtras] = d([]);\n  const [collectionIds, setCollectionIds] = d([]);\n  const [bundleProduct, setBundleProduct] = d(null);\n  const [isLoading, setIsLoading] = d(true);\n  const [hasSellingPlans, setHasSellingPlans] = d(false);\n  const [activeSetting, setActiveSetting] = d(null);\n  const [isDynamicBundle, setIsDynamicBundle] = d(false);\n  const loadBundle = q(async () => {\n    if (!bundleId) {\n      return;\n    }\n    try {\n      const response = await fetch(\n        `/tools/bundle-subscriptions/api/bundle/${bundleId}`,\n        {\n          method: \"GET\",\n          headers: {\n            Accept: \"application/json\"\n          }\n        }\n      );\n      if (!response.ok) {\n        throw new Error(`HTTP error! status: ${response.status}`);\n      }\n      const data = await response.json();\n      if (data.bundle) {\n        const bundleData = data.bundle;\n        let activeSettingValue = bundleData.Settings.find(\n          (setting) => setting.Active\n        );\n        if (bundleData.Type === \"dynamicBaB\" && bundleData.Settings.length === 1) {\n          activeSettingValue = bundleData.Settings[0];\n        }\n        const productIds = [];\n        if (bundleData.Sections) {\n          bundleData.Sections.forEach((section) => {\n            if (section.Products) {\n              section.Products.forEach((product) => {\n                if (product.Id && !productIds.includes(product.Id)) {\n                  productIds.push(product.Id);\n                }\n              });\n            }\n          });\n        }\n        const extraIds = extractExtraProductIds(\n          data.productsInAddonsCollection\n        );\n        extraIds.forEach((id) => {\n          if (!productIds.includes(id)) {\n            productIds.push(id);\n          }\n        });\n        let productsById = {};\n        if (productIds.length > 0) {\n          try {\n            const productDetails = await fetchProductDetails(productIds);\n            productDetails.forEach((product) => {\n              productsById[product.id] = product;\n            });\n          } catch (error) {\n            console.error(\"Failed to fetch product details:\", error);\n          }\n        }\n        const extraSellingPlans = extractExtraSellingPlans(\n          data.productsInAddonsCollection\n        );\n        setExtras(\n          extraIds.map((id) => productsById[id]).filter(Boolean).map((product) => ({\n            ...product,\n            variants: product.variants.map((variant) => ({\n              ...variant,\n              sellingPlanIds: extraSellingPlans[String(variant.id).split(\"/\").pop()] || []\n            }))\n          }))\n        );\n        setActiveSetting(activeSettingValue);\n        setBundleProduct(transformProductBundle(data.productBundle));\n        setCollectionIds([]);\n        setBundle(bundleData);\n        setProducts(productsById);\n        setHasSellingPlans(\n          bundleData.SellingPlans && bundleData.SellingPlans.length > 0\n        );\n        setIsDynamicBundle(bundleData.Type === \"dynamicBaB\");\n        setIsLoading(false);\n      } else {\n        console.warn(\"Bundle API: No bundle data in response\");\n        setIsLoading(false);\n      }\n    } catch (error) {\n      console.error(\"Bundle API Error:\", error);\n      setIsLoading(false);\n    }\n  }, [bundleId]);\n  return {\n    bundle,\n    products,\n    extras,\n    collectionIds,\n    bundleProduct,\n    isLoading,\n    hasSellingPlans,\n    activeSetting,\n    isDynamicBundle,\n    loadBundle\n  };\n};\nconst useBundleSelection = () => {\n  const [selectedVariants, setSelectedVariants] = d(\n    []\n  );\n  const addProductToSelection = q(\n    (product, sectionId) => {\n      setSelectedVariants((prevVariants) => {\n        const isProductSelected2 = prevVariants.some(\n          (item) => item.product.ID === product.ID && item.sectionId === sectionId\n        );\n        if (isProductSelected2) {\n          return prevVariants;\n        }\n        const newVariant = {\n          product,\n          qty: 1,\n          // Default quantity\n          sectionId,\n          addedAt: (/* @__PURE__ */ new Date()).toISOString()\n        };\n        return [...prevVariants, newVariant];\n      });\n    },\n    []\n  );\n  const removeProductFromSelection = q(\n    (productId, sectionId) => {\n      setSelectedVariants((prevVariants) => {\n        const filteredVariants = prevVariants.filter(\n          (item) => !(item.product.ID === productId && item.sectionId === sectionId)\n        );\n        return filteredVariants;\n      });\n    },\n    []\n  );\n  const updateProductQuantity = q(\n    (selectedVariant, qty, sectionId) => {\n      setSelectedVariants((prevVariants) => {\n        const existingProductIndex = prevVariants.findIndex(\n          (item) => item.product.id === selectedVariant.id\n        );\n        if (qty === 0) {\n          if (existingProductIndex !== -1) {\n            return prevVariants.filter(\n              (item) => item.product.id !== selectedVariant.id\n            );\n          }\n          return prevVariants;\n        }\n        if (existingProductIndex !== -1) {\n          const updatedVariants = [...prevVariants];\n          updatedVariants[existingProductIndex] = {\n            ...updatedVariants[existingProductIndex],\n            qty\n          };\n          return updatedVariants;\n        }\n        if (qty > 0) {\n          const newVariant = {\n            product: selectedVariant,\n            qty,\n            sectionId,\n            addedAt: (/* @__PURE__ */ new Date()).toISOString()\n          };\n          return [...prevVariants, newVariant];\n        }\n        return prevVariants;\n      });\n    },\n    []\n  );\n  const replaceVariant = q(\n    (oldVariant, newVariant) => {\n      setSelectedVariants((prevVariants) => {\n        return prevVariants.map((item) => {\n          if (item.product.id === oldVariant.id) {\n            return {\n              ...item,\n              product: newVariant\n            };\n          }\n          return item;\n        });\n      });\n    },\n    []\n  );\n  const isProductSelected = q(\n    (productId, sectionId) => {\n      return selectedVariants.some((item) => {\n        if (sectionId) {\n          return item.product.ID === productId && item.sectionId === sectionId;\n        }\n        return item.product.ID === productId;\n      });\n    },\n    [selectedVariants]\n  );\n  const getProductQuantity = q(\n    (productId, sectionId) => {\n      const variant = selectedVariants.find((item) => {\n        if (sectionId) {\n          return item.product.ID === productId && item.sectionId === sectionId;\n        }\n        return item.product.ID === productId;\n      });\n      return (variant == null ? void 0 : variant.qty) || 0;\n    },\n    [selectedVariants]\n  );\n  const getProductsBySection = q(\n    (sectionId) => {\n      return selectedVariants.filter((item) => item.sectionId === sectionId);\n    },\n    [selectedVariants]\n  );\n  const clearSelection = q(() => {\n    setSelectedVariants([]);\n  }, []);\n  const clearSection = q((sectionId) => {\n    setSelectedVariants(\n      (prevVariants) => prevVariants.filter((item) => item.sectionId !== sectionId)\n    );\n  }, []);\n  const totalQuantity = T(() => {\n    return selectedVariants.reduce((total, item) => total + (item.qty || 0), 0);\n  }, [selectedVariants]);\n  const totalItems = T(() => {\n    return selectedVariants.length;\n  }, [selectedVariants]);\n  const sectionCounts = T(() => {\n    return selectedVariants.reduce((acc, item) => {\n      if (item.sectionId) {\n        acc[item.sectionId] = (acc[item.sectionId] || 0) + item.qty;\n      }\n      return acc;\n    }, {});\n  }, [selectedVariants]);\n  const isEmpty = T(() => {\n    return selectedVariants.length === 0;\n  }, [selectedVariants]);\n  const activeSections = T(() => {\n    return [\n      ...new Set(\n        selectedVariants.map((item) => item.sectionId).filter(Boolean)\n      )\n    ];\n  }, [selectedVariants]);\n  return {\n    // State\n    selectedVariants,\n    sectionItems: sectionCounts,\n    // Actions\n    addProductToSelection,\n    removeProductFromSelection,\n    updateProductQuantity,\n    replaceVariant,\n    clearSelection,\n    clearSection,\n    // Queries\n    isProductSelected,\n    getProductQuantity,\n    getProductsBySection,\n    // Computed values\n    totalQuantity,\n    totalItems,\n    sectionCounts,\n    isEmpty,\n    activeSections\n  };\n};\nconst useBundleCalculations = ({\n  selectedVariants,\n  activeSetting,\n  bundle,\n  selectedSellingPlan\n}) => {\n  const totalQty = T(() => {\n    return selectedVariants.reduce((total, item) => total + (item.qty || 0), 0);\n  }, [selectedVariants]);\n  const totalItems = T(() => {\n    return selectedVariants.length;\n  }, [selectedVariants]);\n  const bundleLimits = T(() => {\n    {\n      return { min: 1, max: 1 };\n    }\n  }, [activeSetting, bundle]);\n  const variantsTotal = T(() => {\n    return selectedVariants.reduce((total, item) => {\n      var _a;\n      const price = parseFloat(((_a = item.product.price) == null ? void 0 : _a.amount) || \"0\");\n      return total + price * (item.qty || 0);\n    }, 0);\n  }, [selectedVariants]);\n  const basePrice = T(() => {\n    return 0;\n  }, [activeSetting, variantsTotal]);\n  const discountCalculation = T(() => {\n    {\n      return { amount: 0, type: null, percentage: 0 };\n    }\n  }, [activeSetting, basePrice]);\n  const sellingPlanDiscount = T(() => {\n    {\n      return { amount: 0, percentage: 0 };\n    }\n  }, [selectedSellingPlan, basePrice]);\n  const priceBreakdown = T(() => {\n    const totalDiscountAmount = discountCalculation.amount + sellingPlanDiscount.amount;\n    const finalPrice = Math.max(0, basePrice - totalDiscountAmount);\n    const savings = basePrice - finalPrice;\n    return {\n      basePrice,\n      variantsTotal,\n      discountAmount: totalDiscountAmount,\n      finalPrice,\n      savings,\n      formattedPrice: finalPrice.toFixed(2),\n      formattedSavings: savings > 0 ? savings.toFixed(2) : \"0.00\"\n    };\n  }, [\n    basePrice,\n    variantsTotal,\n    discountCalculation.amount,\n    sellingPlanDiscount.amount\n  ]);\n  const bundlePrice = T(\n    () => priceBreakdown.formattedPrice,\n    [priceBreakdown]\n  );\n  const progressInfo = T(() => {\n    const current = totalQty;\n    const { min, max } = bundleLimits;\n    const percentage = Math.min(100, Math.round(current / max * 100));\n    return {\n      current,\n      min,\n      max,\n      percentage: `${percentage}%`,\n      isComplete: current >= min,\n      isFull: current >= max,\n      remaining: Math.max(0, max - current)\n    };\n  }, [totalQty, bundleLimits]);\n  const percentComplete = T(\n    () => progressInfo.percentage,\n    [progressInfo]\n  );\n  const averagePricePerItem = T(() => {\n    if (totalQty === 0) return 0;\n    return priceBreakdown.finalPrice / totalQty;\n  }, [priceBreakdown.finalPrice, totalQty]);\n  const savingsPerItem = T(() => {\n    if (totalQty === 0) return 0;\n    return priceBreakdown.savings / totalQty;\n  }, [priceBreakdown.savings, totalQty]);\n  const sectionTotals = T(() => {\n    const totals = {};\n    selectedVariants.forEach((variant) => {\n      var _a;\n      const sectionId = variant.sectionId || \"default\";\n      const price = parseFloat(((_a = variant.product.price) == null ? void 0 : _a.amount) || \"0\");\n      const qty = variant.qty || 0;\n      if (!totals[sectionId]) {\n        totals[sectionId] = { qty: 0, value: 0, items: 0 };\n      }\n      totals[sectionId].qty += qty;\n      totals[sectionId].value += price * qty;\n      totals[sectionId].items += 1;\n    });\n    return totals;\n  }, [selectedVariants]);\n  const valueThresholds = T(() => {\n    const freeShippingThreshold = 50;\n    const premiumThreshold = 100;\n    return {\n      freeShipping: {\n        met: priceBreakdown.finalPrice >= freeShippingThreshold,\n        remaining: Math.max(\n          0,\n          freeShippingThreshold - priceBreakdown.finalPrice\n        ),\n        threshold: freeShippingThreshold\n      },\n      premium: {\n        met: priceBreakdown.finalPrice >= premiumThreshold,\n        remaining: Math.max(0, premiumThreshold - priceBreakdown.finalPrice),\n        threshold: premiumThreshold\n      }\n    };\n  }, [priceBreakdown.finalPrice]);\n  const bundleStats = T(() => {\n    const productTypes = new Set(\n      selectedVariants.map((v) => {\n        var _a;\n        return ((_a = v.product.product) == null ? void 0 : _a.productType) || \"Unknown\";\n      })\n    );\n    const brands = new Set(\n      selectedVariants.map((v) => {\n        var _a;\n        return ((_a = v.product.product) == null ? void 0 : _a.vendor) || \"Unknown\";\n      })\n    );\n    return {\n      uniqueProducts: totalItems,\n      totalQuantity: totalQty,\n      uniqueProductTypes: productTypes.size,\n      uniqueBrands: brands.size,\n      productTypes: Array.from(productTypes),\n      brands: Array.from(brands)\n    };\n  }, [selectedVariants, totalItems, totalQty]);\n  const formatCurrency = (amount, currency = \"USD\") => {\n    return new Intl.NumberFormat(\"en-US\", {\n      style: \"currency\",\n      currency,\n      minimumFractionDigits: 2\n    }).format(amount);\n  };\n  return {\n    // Basic calculations\n    totalQty,\n    totalItems,\n    bundlePrice,\n    // Legacy compatibility\n    percentComplete,\n    // Enhanced price breakdown\n    priceBreakdown,\n    variantsTotal,\n    basePrice,\n    finalPrice: priceBreakdown.finalPrice,\n    savings: priceBreakdown.savings,\n    // Discount information\n    discountCalculation,\n    sellingPlanDiscount,\n    // Progress information\n    progressInfo,\n    bundleLimits,\n    // Per-item calculations\n    averagePricePerItem,\n    savingsPerItem,\n    // Section calculations\n    sectionTotals,\n    // Value thresholds\n    valueThresholds,\n    // Bundle statistics\n    bundleStats,\n    // Utilities\n    formatCurrency\n  };\n};\nconst calculateSectionMax = (bundle, sectionId) => {\n  var _a, _b;\n  if (!sectionId || !(bundle == null ? void 0 : bundle.Sections)) return null;\n  const sectionObj = bundle.Sections.find((s) => s.Id === sectionId);\n  const maxSize = (_b = (_a = sectionObj == null ? void 0 : sectionObj.Settings) == null ? void 0 : _a[0]) == null ? void 0 : _b.MaxSize;\n  return maxSize ? parseInt(maxSize) : null;\n};\nconst calculateBundleLimit = (bundle, activeSetting) => {\n  if (!bundle || !activeSetting) return null;\n  if (bundle.Type === \"dynamicBaB\") {\n    return activeSetting.MaxSize ? activeSetting.MaxSize : activeSetting.Size !== \"0\" ? activeSetting.Size : null;\n  }\n  return activeSetting.Size;\n};\nconst calculateTotalSelectedQty = (selectedVariants) => {\n  return selectedVariants.reduce(\n    (total, item) => total + (typeof item.qty === \"string\" ? parseInt(item.qty) : item.qty),\n    0\n  );\n};\nconst useBundleLimits = (bundle, activeSetting, selectedVariants, sectionItems) => {\n  return T(() => {\n    const bundleLimit = calculateBundleLimit(bundle, activeSetting);\n    const totalSelectedQty = calculateTotalSelectedQty(selectedVariants);\n    return {\n      bundleLimit: bundleLimit ? parseInt(bundleLimit) : null,\n      totalSelectedQty,\n      getSectionData: (sectionId) => ({\n        sectionMax: calculateSectionMax(bundle, sectionId),\n        sectionCount: sectionItems[sectionId] || 0\n      })\n    };\n  }, [bundle, activeSetting, selectedVariants, sectionItems]);\n};\nconst useLimitMessageGenerator = () => {\n  return q((limits, sectionData) => {\n    const { bundleLimit, totalSelectedQty } = limits;\n    const { sectionMax, sectionCount } = sectionData;\n    const hitSection = sectionMax !== null && sectionCount >= sectionMax;\n    const hitBundle = bundleLimit && totalSelectedQty >= bundleLimit;\n    if (hitSection && hitBundle) {\n      return \"You have reached both the section and bundle maximum limits!\";\n    } else if (hitSection) {\n      return \"You have reached the maximum quantity for this section!\";\n    } else if (hitBundle) {\n      return \"You have reached the maximum quantity for this bundle!\";\n    }\n    return \"You have reached the maximum allowed quantity for this product!\";\n  }, []);\n};\nconst generateUUID = () => {\n  return \"xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx\".replace(/[xy]/g, (c) => {\n    const r = Math.random() * 16 | 0;\n    const v = c === \"x\" ? r : r & 3 | 8;\n    return v.toString(16);\n  });\n};\nfunction formatBundlePrice(price) {\n  const formatted = price.toLocaleString(void 0, {\n    minimumFractionDigits: 2,\n    maximumFractionDigits: 2\n  });\n  return formatted.replace(/\\.00$/, \"\");\n}\nfunction getDiscountedBundlePrice(args) {\n  return formatBundlePrice(getDiscountedBundleAmount(args));\n}\nfunction getDiscountedBundleAmount({\n  bundle,\n  bundlePrice,\n  selectedSellingPlan\n}) {\n  var _a;\n  let finalPrice = Number(bundlePrice);\n  if (selectedSellingPlan && selectedSellingPlan.priceAdjustments && selectedSellingPlan.priceAdjustments.length > 0) {\n    const adjustment = selectedSellingPlan.priceAdjustments[0];\n    if (adjustment.adjustmentValue && typeof adjustment.adjustmentValue.adjustmentPercentage === \"number\") {\n      const discount = finalPrice * (adjustment.adjustmentValue.adjustmentPercentage / 100);\n      if (discount !== 0) {\n        finalPrice -= discount;\n      }\n    } else if (adjustment.adjustmentValue && typeof ((_a = adjustment.adjustmentValue.adjustmentAmount) == null ? void 0 : _a.amount) === \"string\") {\n      const discount = Number(\n        adjustment.adjustmentValue.adjustmentAmount.amount\n      );\n      if (discount !== 0) {\n        finalPrice -= discount;\n      }\n    }\n  }\n  if (bundle) {\n    if (bundle.DynamicDiscountType === \"percentage\" && typeof bundle.DynamicDiscountAmount === \"string\" && !isNaN(Number(bundle.DynamicDiscountAmount))) {\n      const percent = Number(bundle.DynamicDiscountAmount);\n      const discount = finalPrice * (percent / 100);\n      if (discount !== 0) {\n        finalPrice -= discount;\n      }\n    }\n    if (bundle.DynamicDiscountType === \"fixed\" && typeof bundle.DynamicDiscountAmount === \"string\" && !isNaN(Number(bundle.DynamicDiscountAmount))) {\n      const discount = Number(bundle.DynamicDiscountAmount);\n      if (discount !== 0) {\n        finalPrice -= discount;\n      }\n    }\n  }\n  return finalPrice;\n}\nclass ProductFormQty extends x {\n  constructor(props) {\n    super(props);\n    this.setQty = (arg) => {\n      let direction = void 0;\n      if (arg && typeof arg === \"object\" && \"direction\" in arg) {\n        direction = arg.direction;\n      }\n      let value = parseInt(this.qtyInput.current.value);\n      const min = this.props.minQty != null ? parseInt(this.props.minQty.toString()) : 0;\n      const max = this.props.maxQty != null ? parseInt(this.props.maxQty.toString()) : 99;\n      if (isNaN(value)) value = min;\n      if (value < min) value = min;\n      let exceededMax = false;\n      if (value > max) {\n        value = max;\n        exceededMax = true;\n      }\n      if (direction) {\n        if (direction === \"up\") {\n          if (value >= max) {\n            exceededMax = true;\n          }\n        } else if (direction === \"down\") {\n          if (value <= min) {\n            value = min;\n          }\n        }\n      }\n      if (this.qtyInput.current.value !== value.toString()) {\n        this.qtyInput.current.value = value.toString();\n      }\n      this.setState({ qty: value });\n      if (this.props.onQtyChange) {\n        this.props.onQtyChange(value);\n      }\n      if (exceededMax && this.props.onMaxQtyReached) {\n        this.props.onMaxQtyReached();\n      }\n    };\n    this.getQtyOptions = () => {\n      const options = [];\n      for (let i = 1; i <= 10; i++) {\n        options.push({\n          id: `qty ${i}`,\n          label: i.toString(),\n          value: i\n        });\n      }\n      return options;\n    };\n    this.getDefaultQty = () => {\n      if (this.props.defaultQty != null) {\n        return {\n          label: this.props.defaultQty.toString(),\n          value: this.props.defaultQty,\n          id: `qty ${this.props.defaultQty}`\n        };\n      }\n      return {\n        id: \"qty 1\",\n        label: \"1\",\n        value: 1\n      };\n    };\n    this.qtyInput = b();\n    this.type = this.props.type ? this.props.type : \"number\";\n    this.show_buttons = this.props.showButtons !== void 0 ? this.props.showButtons : false;\n    this.showLabel = this.props.showLabel !== void 0 ? this.props.showLabel : true;\n    this.state = {\n      qty: this.props.defaultQty != null ? this.props.defaultQty : 1\n    };\n  }\n  componentDidUpdate(previousProps, previousState, snapshot) {\n    if (this.props.defaultQty !== previousProps.defaultQty && this.props.defaultQty !== null && this.props.defaultQty !== void 0 && this.state.qty !== this.props.defaultQty) {\n      if (this.qtyInput.current) {\n        this.qtyInput.current.value = this.props.defaultQty.toString();\n      }\n      this.setState({ qty: this.props.defaultQty }, () => {\n        if (this.props.onQtyChange) {\n          this.props.onQtyChange(this.props.defaultQty);\n        }\n      });\n    }\n  }\n  render() {\n    return /* @__PURE__ */ u(k, { children: /* @__PURE__ */ u(\"div\", { class: \"product-form__qty-wrap\", children: [\n      this.showLabel && /* @__PURE__ */ u(\"span\", { class: \"product-form__qty-label\", children: \"Qty\" }),\n      this.type === \"number\" && /* @__PURE__ */ u(\"div\", { class: \"product-form__qty h-full\", children: /* @__PURE__ */ u(\"div\", { class: \"product-form__qty-controls\", children: /* @__PURE__ */ u(k, { children: [\n        this.show_buttons && /* @__PURE__ */ u(\n          \"button\",\n          {\n            type: \"button\",\n            class: \"svg-fill border-y-1 border-l-1\",\n            onClick: () => {\n              var _a;\n              (_a = this.qtyInput.current) == null ? void 0 : _a.stepDown();\n              this.setQty({ direction: \"down\" });\n            },\n            children: /* @__PURE__ */ u(SvgMinus, {})\n          }\n        ),\n        /* @__PURE__ */ u(\"div\", { class: \"product-row__qty-control\", children: /* @__PURE__ */ u(\n          \"input\",\n          {\n            class: \"qtyInput\",\n            type: \"number\",\n            ref: this.qtyInput,\n            onInput: this.setQty,\n            onChange: this.setQty,\n            value: this.state.qty,\n            min: \"0\",\n            max: this.props.maxQty != null ? this.props.maxQty.toString() : \"99\",\n            step: \"1\"\n          }\n        ) }),\n        this.show_buttons && /* @__PURE__ */ u(\n          \"button\",\n          {\n            type: \"button\",\n            class: \"svg-fill border-x-1 border-y-1\",\n            onClick: () => {\n              var _a;\n              (_a = this.qtyInput.current) == null ? void 0 : _a.stepUp();\n              this.setQty({ direction: \"up\" });\n            },\n            children: /* @__PURE__ */ u(SvgPlus, {})\n          }\n        )\n      ] }) }) }),\n      this.type === \"select\" && /* @__PURE__ */ u(\"div\", { class: \"relative max-w-[320px]\", children: /* @__PURE__ */ u(\n        CustomSelect,\n        {\n          title: \"Select Quantity\",\n          default: this.getDefaultQty(),\n          options: this.getQtyOptions(),\n          onSelected: (e) => {\n            console.log(\"Selected qty:\", e);\n            this.setState({ qty: e.value.value });\n            if (this.props.onQtyChange) {\n              this.props.onQtyChange(e.value.value);\n            }\n          }\n        }\n      ) })\n    ] }) });\n  }\n}\nfunction formatPrice(amount) {\n  const num = typeof amount === \"string\" ? Number(amount) : amount;\n  const formatted = num.toFixed(2);\n  return formatted.replace(/\\.00$/, \"\");\n}\nfunction getImageClass(image) {\n  let image_class = \"u--cover-img\";\n  if (image && typeof image.height === \"number\" && typeof image.width === \"number\" && image.height > 0 && image.width > 0) {\n    const aspect_ratio = image.width / image.height;\n    const desired_aspect_ratio = 46 / 59;\n    if (aspect_ratio < desired_aspect_ratio) {\n      const height_width_ratio = image.height / image.width;\n      if (height_width_ratio > 1.3) {\n        image_class = \"w-full h-full object-center object-contain\";\n      }\n    }\n  }\n  return image_class;\n}\nfunction AwtomicProductCard({\n  activeSetting,\n  selectedVariants,\n  product,\n  handleVariantChange,\n  handleQtyChange,\n  maxQty,\n  sectionId,\n  onMaxQtyReached,\n  selectedSellingPlan\n}) {\n  var _a, _b, _c;\n  const [selectedVariant, setSelectedVariant] = d(product == null ? void 0 : product.variants[0]);\n  const [prevSelectedVariant, setPrevSelectedVariant] = d(\n    product == null ? void 0 : product.variants[0]\n  );\n  const qty = T(() => {\n    if (!selectedVariants || !(selectedVariant == null ? void 0 : selectedVariant.id)) return 0;\n    const existing = selectedVariants.find(\n      (item) => item.product.id === selectedVariant.id\n    );\n    return (existing == null ? void 0 : existing.qty) || 0;\n  }, [selectedVariants, selectedVariant == null ? void 0 : selectedVariant.id]);\n  const handleLocalQtyChange = q(\n    (newQty) => {\n      if (handleQtyChange && (selectedVariant == null ? void 0 : selectedVariant.id)) {\n        handleQtyChange({ sectionId, selectedVariant, qty: newQty });\n      }\n    },\n    [handleQtyChange, selectedVariant, sectionId]\n  );\n  y(() => {\n    if (handleVariantChange && (prevSelectedVariant == null ? void 0 : prevSelectedVariant.id) !== (selectedVariant == null ? void 0 : selectedVariant.id)) {\n      handleVariantChange(selectedVariant, prevSelectedVariant);\n    }\n  }, [selectedVariant, prevSelectedVariant, handleVariantChange]);\n  const formattedProduct = {\n    ...product,\n    Title: product.title,\n    variants: product == null ? void 0 : product.variants\n  };\n  const formatProductOptions = (product2) => {\n    var _a2;\n    if (!product2.variants || !product2.variants[0] || !product2.variants[0].selectedOptions) {\n      return [];\n    }\n    const optionNames = (((_a2 = product2.variants[0]) == null ? void 0 : _a2.selectedOptions) || []).map(\n      (opt) => opt.name\n    );\n    return optionNames.map((optionName, index) => {\n      const allValues = /* @__PURE__ */ new Set();\n      product2.variants.forEach((variant) => {\n        var _a3, _b2;\n        if ((_b2 = (_a3 = variant.selectedOptions) == null ? void 0 : _a3[index]) == null ? void 0 : _b2.value) {\n          allValues.add(variant.selectedOptions[index].value);\n        }\n      });\n      return {\n        name: optionName,\n        options: Array.from(allValues).map((value) => ({\n          label: value,\n          value\n        }))\n      };\n    });\n  };\n  const updateVariant = (variant) => {\n    setPrevSelectedVariant(selectedVariant);\n    setSelectedVariant(variant);\n  };\n  const discountedPrice = ((_a = selectedVariant == null ? void 0 : selectedVariant.price) == null ? void 0 : _a.amount) ? getDiscountedBundlePrice({\n    bundle: activeSetting,\n    bundlePrice: selectedVariant.price.amount,\n    selectedSellingPlan\n  }) : null;\n  const checkMark = /* @__PURE__ */ u(\n    \"svg\",\n    {\n      width: \"20\",\n      height: \"20\",\n      viewBox: \"0 0 20 20\",\n      fill: \"none\",\n      xmlns: \"http://www.w3.org/2000/svg\",\n      class: \"icon-checkmark\",\n      children: /* @__PURE__ */ u(\n        \"path\",\n        {\n          d: \"M4.75439 10.7485L7.68601 14.5888C7.79288 14.7288 7.84632 14.7988 7.91174 14.8242C7.96907 14.8466 8.03262 14.8469 8.09022 14.8253C8.15596 14.8007 8.21026 14.7314 8.31886 14.5927L15.2475 5.74658\",\n          stroke: \"currentColor\",\n          \"stroke-width\": \"var(--icon-stroke-width)\",\n          \"stroke-linecap\": \"round\",\n          \"stroke-linejoin\": \"round\"\n        }\n      )\n    }\n  );\n  return /* @__PURE__ */ u(\"div\", { class: \"awtomic-bundles___bundle-product xs:grid-cols-1 xs:flex xs:pr-0 xs:pb-15 relative grid grid-cols-[1.5fr,2fr] flex-col pr-15\", children: [\n    /* @__PURE__ */ u(\n      \"div\",\n      {\n        class: `card--product__image bg-background-dark relative aspect-[46/59] w-full overflow-hidden ${qty > 0 ? \"active\" : \"\"}`,\n        children: [\n          qty > 0 && /* @__PURE__ */ u(\"div\", { class: \"card--product__check fade-in\", children: checkMark }),\n          /* @__PURE__ */ u(\n            \"img\",\n            {\n              src: (_b = product.images.edges[0]) == null ? void 0 : _b.node.url,\n              alt: product.title,\n              class: getImageClass((_c = product.images.edges[0]) == null ? void 0 : _c.node)\n            }\n          )\n        ]\n      }\n    ),\n    /* @__PURE__ */ u(\"div\", { class: \"card--product__description flex grow flex-col py-20\", children: [\n      /* @__PURE__ */ u(\"span\", { class: \"card--product__title h4 leading-lh-20 mb-20\", children: product.title }),\n      product && /* @__PURE__ */ u(k, { children: [\n        /* @__PURE__ */ u(\"div\", { class: \"product-details\", children: product.variants.length > 1 && /* @__PURE__ */ u(\n          VariantSelects,\n          {\n            section: \"\",\n            url: \"\",\n            updateUrl: false,\n            productOptions: formatProductOptions(formattedProduct),\n            colorOptions: null,\n            initialVariant: formattedProduct.variants[0],\n            variantData: formattedProduct.variants,\n            option1Style: \"selects\",\n            option2Style: \"selects\",\n            option3Style: \"selects\",\n            lastOptionStyle: \"selects\",\n            updateVariant: updateVariant.bind(this),\n            variantMeta: null,\n            selectedVariant,\n            type: \"inline\",\n            showOptionLabel: true\n          }\n        ) }),\n        /* @__PURE__ */ u(\n          \"div\",\n          {\n            class: `mt-auto flex items-center justify-between gap-20 ${product.variants.length > 1 ? \"ml-10 sm:ml-0 sm:pl-[85px]\" : \"\"}`,\n            children: [\n              /* @__PURE__ */ u(\"div\", { class: \"product-price flex flex-wrap gap-20\", children: selectedVariant.price.amount && /* @__PURE__ */ u(k, { children: [\n                /* @__PURE__ */ u(\"div\", { class: \"product__regular-price\", children: `$${formatPrice(selectedVariant.price.amount)}` }),\n                discountedPrice && discountedPrice !== formatPrice(selectedVariant.price.amount) && /* @__PURE__ */ u(\"div\", { class: \"product__discounted-price\", children: [\n                  \"Your Price: $\",\n                  discountedPrice\n                ] })\n              ] }) }),\n              /* @__PURE__ */ u(\n                ProductFormQty,\n                {\n                  defaultQty: qty,\n                  onQtyChange: handleLocalQtyChange,\n                  maxQty,\n                  showButtons: true,\n                  showLabel: false,\n                  onMaxQtyReached\n                }\n              )\n            ]\n          }\n        )\n      ] })\n    ] })\n  ] });\n}\nfunction Toast({\n  message,\n  secondaryMessage,\n  isVisible,\n  position = \"bottom-right\",\n  type = \"info\",\n  autoHideDuration = 3500,\n  onClose,\n  style = {}\n}) {\n  const timerRef = A(null);\n  const clearAutoHideTimer = () => {\n    if (timerRef.current !== null) {\n      clearTimeout(timerRef.current);\n      timerRef.current = null;\n    }\n  };\n  const setAutoHideTimer = () => {\n    if (autoHideDuration && autoHideDuration > 0 && onClose) {\n      timerRef.current = window.setTimeout(() => {\n        onClose();\n      }, autoHideDuration);\n    }\n  };\n  y(() => {\n    if (isVisible) {\n      setAutoHideTimer();\n    } else {\n      clearAutoHideTimer();\n    }\n    return () => {\n      clearAutoHideTimer();\n    };\n  }, [isVisible, autoHideDuration, onClose]);\n  y(() => {\n    return () => {\n      clearAutoHideTimer();\n    };\n  }, []);\n  const positionClass = `toast--${position}`;\n  const typeClass = `toast--${type}`;\n  const visibilityClass = isVisible ? \"toast--visible\" : \"\";\n  return /* @__PURE__ */ u(\n    \"div\",\n    {\n      class: `toast ${positionClass} ${typeClass} ${visibilityClass}`,\n      style,\n      children: [\n        /* @__PURE__ */ u(\"div\", { class: \"toast__content\", children: [\n          /* @__PURE__ */ u(\"div\", { class: \"toast__message\", children: message }),\n          secondaryMessage && /* @__PURE__ */ u(\"div\", { class: \"toast__secondary-message\", children: secondaryMessage })\n        ] }),\n        /* @__PURE__ */ u(\n          \"button\",\n          {\n            type: \"button\",\n            class: \"toast__close-btn\",\n            onClick: onClose,\n            \"aria-label\": \"Close toast\",\n            children: \"\u00D7\"\n          }\n        )\n      ]\n    }\n  );\n}\nconst formatPriceAdjustment = (adjustment) => {\n  if (adjustment) {\n    if (adjustment.adjustmentPercentage) {\n      return `${adjustment.adjustmentPercentage}%`;\n    } else if (adjustment.adjustmentAmount) {\n      return `${adjustment.adjustmentAmount.amount} ${adjustment.adjustmentAmount.currencyCode}`;\n    }\n  }\n  return \"\";\n};\nconst hasValidPriceAdjustment = (sellingPlan) => {\n  var _a, _b, _c;\n  return sellingPlan.priceAdjustments && sellingPlan.priceAdjustments.length > 0 && ((_c = (_b = (_a = sellingPlan.priceAdjustments) == null ? void 0 : _a[0]) == null ? void 0 : _b.adjustmentValue) == null ? void 0 : _c.adjustmentPercentage) !== 0;\n};\nconst BundleFrequency = ({\n  bundleProduct,\n  selectedSellingPlan,\n  setSelectedSellingPlan\n}) => {\n  var _a, _b;\n  const sellingPlans = ((_a = bundleProduct == null ? void 0 : bundleProduct.sellingPlanGroups) == null ? void 0 : _a.nodes) ? bundleProduct.sellingPlanGroups.nodes.flatMap(\n    (node) => {\n      var _a2, _b2;\n      return ((_b2 = (_a2 = node.sellingPlans) == null ? void 0 : _a2.edges) == null ? void 0 : _b2.map(({ node: sellingPlan }) => sellingPlan)) || [];\n    }\n  ) : [];\n  y(() => {\n    if (sellingPlans.length > 0 && !selectedSellingPlan) {\n      setSelectedSellingPlan(sellingPlans[0]);\n    }\n  }, [sellingPlans, selectedSellingPlan, setSelectedSellingPlan]);\n  return sellingPlans.length > 1 ? /* @__PURE__ */ u(\"div\", { class: `flex w-full flex-wrap items-center justify-start gap-10`, children: ((_b = bundleProduct == null ? void 0 : bundleProduct.sellingPlanGroups) == null ? void 0 : _b.nodes) ? bundleProduct.sellingPlanGroups.nodes.flatMap(\n    (node) => {\n      var _a2, _b2;\n      return ((_b2 = (_a2 = node.sellingPlans) == null ? void 0 : _a2.edges) == null ? void 0 : _b2.map(({ node: sellingPlan }) => {\n        var _a3, _b3, _c;\n        return /* @__PURE__ */ u(\n          \"button\",\n          {\n            type: \"button\",\n            class: `btn btn--outline --small awtomic__selling-plan-btn ${(selectedSellingPlan == null ? void 0 : selectedSellingPlan.id) === sellingPlan.id ? \"active\" : \"\"}`,\n            onClick: () => setSelectedSellingPlan(sellingPlan),\n            children: [\n              /* @__PURE__ */ u(\"span\", { children: sellingPlan.name }),\n              hasValidPriceAdjustment(sellingPlan) && /* @__PURE__ */ u(\"span\", { children: [\n                \" \",\n                \"- Save\",\n                \" \",\n                formatPriceAdjustment(\n                  ((_b3 = (_a3 = sellingPlan.priceAdjustments) == null ? void 0 : _a3[0]) == null ? void 0 : _b3.adjustmentValue) || ((_c = sellingPlan.priceAdjustments) == null ? void 0 : _c[0])\n                )\n              ] })\n            ]\n          },\n          sellingPlan.id\n        );\n      })) || [];\n    }\n  ) : null }) : null;\n};\nfunction renderDiscountPrice({\n  bundlePrice,\n  selectedSellingPlan,\n  activeSetting,\n  extrasTotal = 0\n}) {\n  const discounted = getDiscountedBundlePrice({\n    bundle: activeSetting,\n    bundlePrice,\n    selectedSellingPlan\n  });\n  const discountedAmount = getDiscountedBundleAmount({\n    bundle: activeSetting,\n    bundlePrice,\n    selectedSellingPlan\n  });\n  const formattedOriginal = `$${formatBundlePrice(Number(bundlePrice))}`;\n  const showDiscount = selectedSellingPlan && selectedSellingPlan.priceAdjustments && selectedSellingPlan.priceAdjustments.length > 0 && discounted && bundlePrice !== \"0\" && discounted !== null && discounted !== void 0 && discounted !== Number(bundlePrice).toLocaleString(void 0, {\n    minimumFractionDigits: 2,\n    maximumFractionDigits: 2\n  }) && discounted !== formattedOriginal && discountedAmount.toFixed(2) !== Number(bundlePrice).toFixed(2);\n  if (extrasTotal > 0) {\n    const originalWithExtras = `$${formatBundlePrice(Number(bundlePrice) + extrasTotal)}`;\n    if (!showDiscount) {\n      return /* @__PURE__ */ u(k, { children: originalWithExtras });\n    }\n    const discountedWithExtras = formatBundlePrice(\n      discountedAmount + extrasTotal\n    );\n    return /* @__PURE__ */ u(k, { children: [\n      /* @__PURE__ */ u(\"span\", { class: \"mr-10 line-through opacity-60\", children: originalWithExtras }),\n      /* @__PURE__ */ u(\"span\", { children: [\n        \"$\",\n        discountedWithExtras\n      ] })\n    ] });\n  }\n  if (showDiscount) {\n    return /* @__PURE__ */ u(k, { children: [\n      /* @__PURE__ */ u(\"span\", { class: \"mr-10 line-through opacity-60\", children: formattedOriginal }),\n      /* @__PURE__ */ u(\"span\", { children: [\n        \"$\",\n        discounted\n      ] })\n    ] });\n  }\n  return /* @__PURE__ */ u(k, { children: formattedOriginal });\n}\nconst Footer = ({\n  bundlePrice,\n  selectedVariants,\n  selectedExtras = [],\n  bundleType,\n  activeSetting,\n  totalQty,\n  onClear,\n  addToCartDisabled,\n  onAddToCart,\n  onChooseExtras,\n  onBack,\n  selectedSellingPlan,\n  percentComplete = \"0%\",\n  // Default to '0' if not provided\n  feeId,\n  feePrice,\n  feeTitle,\n  loading = false\n}) => {\n  const calculatedTotal = selectedVariants.reduce((acc, item) => {\n    var _a, _b;\n    const price = parseFloat(((_b = (_a = item.product) == null ? void 0 : _a.price) == null ? void 0 : _b.amount) || \"0\") * item.qty;\n    return acc + price;\n  }, 0);\n  const extrasTotal = selectedExtras.reduce((acc, item) => {\n    var _a, _b;\n    const price = parseFloat(((_b = (_a = item.product) == null ? void 0 : _a.price) == null ? void 0 : _b.amount) || \"0\") * item.qty;\n    return acc + price;\n  }, 0);\n  let calculatedPercent = \"0%\";\n  let maxSize = (activeSetting == null ? void 0 : activeSetting.MaxSize) || (activeSetting == null ? void 0 : activeSetting.Size) || null;\n  let minSize = (activeSetting == null ? void 0 : activeSetting.MinSize) || null;\n  if (maxSize && maxSize > 0) {\n    calculatedPercent = `${Math.min(100, Math.round(totalQty / maxSize * 100))}%`;\n  } else if (minSize && minSize > 0) {\n    calculatedPercent = `${Math.min(100, Math.round(totalQty / minSize * 100))}%`;\n  }\n  const [showItems, setShowItems] = d(false);\n  const [itemsVisible, setItemsVisible] = d(true);\n  const [showItemToggle, setShowItemToggle] = d(false);\n  const itemsRef = A(null);\n  y(() => {\n    if (!itemsRef.current) return;\n    if (showItems) {\n      slideDown(itemsRef.current);\n    } else {\n      slideUp(itemsRef.current);\n    }\n  }, [showItems]);\n  y(() => {\n    const el = itemsRef.current;\n    if (!el) return;\n    const checkHeight = () => {\n      const maxHeight = window.innerHeight * 0.15;\n      const originalDisplay = el.style.display;\n      const originalVisibility = el.style.visibility;\n      el.style.display = \"block\";\n      el.style.visibility = \"hidden\";\n      const naturalHeight = el.scrollHeight;\n      el.style.display = originalDisplay;\n      el.style.visibility = originalVisibility;\n      if (naturalHeight > maxHeight) {\n        setShowItemToggle(true);\n        setItemsVisible(false);\n      } else {\n        setShowItemToggle(false);\n        setItemsVisible(true);\n      }\n    };\n    const timeoutId = setTimeout(checkHeight, 0);\n    let observer = null;\n    if (\"ResizeObserver\" in window) {\n      observer = new ResizeObserver(() => {\n        setTimeout(checkHeight, 0);\n      });\n      observer.observe(el);\n    }\n    const handleResize = () => {\n      setTimeout(checkHeight, 0);\n    };\n    window.addEventListener(\"resize\", handleResize);\n    return () => {\n      clearTimeout(timeoutId);\n      if (observer) observer.disconnect();\n      window.removeEventListener(\"resize\", handleResize);\n    };\n  }, [selectedVariants, selectedExtras]);\n  return /* @__PURE__ */ u(\"div\", { class: \"sticky right-0 bottom-0 z-50 mt-150 w-full\", children: /* @__PURE__ */ u(\"div\", { class: \"bg-background border-t-1 py-20\", children: /* @__PURE__ */ u(\"div\", { class: \"tw-row\", children: [\n    /* @__PURE__ */ u(\"div\", { class: \"tw-col flex w-full flex-wrap items-start gap-20 md:w-7/24\", children: [\n      /* @__PURE__ */ u(\"h3\", { class: \"shrink-0 whitespace-nowrap\", children: \"Your Club\" }),\n      /* @__PURE__ */ u(\"div\", { class: \"mb-15 flex w-full flex-wrap items-start gap-10 pt-5 md:mb-0\", children: [\n        (activeSetting == null ? void 0 : activeSetting.Label) ? /* @__PURE__ */ u(\"span\", { class: \"btn btn--outline --small --no-hover bg-white\", children: activeSetting.Label }) : null,\n        selectedSellingPlan ? /* @__PURE__ */ u(\"span\", { class: \"btn btn--outline --small --no-hover bg-white\", children: selectedSellingPlan.name }) : null\n      ] })\n    ] }),\n    /* @__PURE__ */ u(\"div\", { class: \"tw-col awtomic-bundles___bundle-price flex w-full flex-col md:w-8/24\", children: /* @__PURE__ */ u(\"div\", { class: \"awtomic-bundles___bundle-selected-products mb-15 flex flex-col text-left md:mb-0\", children: selectedVariants.length ? /* @__PURE__ */ u(k, { children: [\n      /* @__PURE__ */ u(\n        \"button\",\n        {\n          type: \"button\",\n          class: `general-hover mb-10 text-left capitalize underline ${!showItemToggle ? \"md:hidden\" : \"\"}`,\n          onClick: () => setShowItems((v) => !v),\n          \"aria-expanded\": showItems,\n          \"aria-controls\": \"bundle-items-list\",\n          children: showItems ? \"Hide Items\" : \"Show Items\"\n        }\n      ),\n      /* @__PURE__ */ u(\n        \"div\",\n        {\n          ref: itemsRef,\n          id: \"bundle-items-list\",\n          class: `hidden ${itemsVisible ? \"md:block\" : \"\"}`,\n          children: [\n            selectedVariants.map((item) => {\n              var _a, _b, _c, _d, _e;\n              return /* @__PURE__ */ u(\"span\", { class: \"mb-3 flex items-end justify-start\", children: [\n                /* @__PURE__ */ u(\"span\", { class: \"flex flex-col text-left\", children: [\n                  /* @__PURE__ */ u(\"span\", { class: \"font-body text-body capitalize\", children: ((_b = (_a = item.product) == null ? void 0 : _a.product) == null ? void 0 : _b.title) || \"Unknown Product\" }),\n                  /* @__PURE__ */ u(\"span\", { children: (((_c = item.product) == null ? void 0 : _c.selectedOptions) || []).map(\n                    (option, index) => {\n                      if (option.value === \"Default Title\") {\n                        return null;\n                      }\n                      return `${index != 0 ? \" | \" : \"\"} ${option.value}`;\n                    }\n                  ) })\n                ] }),\n                /* @__PURE__ */ u(\"span\", { class: \"ml-auto inline-flex pl-5\", children: [\n                  /* @__PURE__ */ u(\"span\", { class: \"font-body text-body inline-block shrink-0 pr-5\", children: [\n                    \"\u00A0X \",\n                    item.qty\n                  ] }),\n                  /* @__PURE__ */ u(\"span\", { children: renderDiscountPrice({\n                    bundlePrice: (parseFloat(((_e = (_d = item.product) == null ? void 0 : _d.price) == null ? void 0 : _e.amount) || \"0\") * item.qty).toString(),\n                    selectedSellingPlan,\n                    activeSetting\n                  }) })\n                ] })\n              ] });\n            }),\n            selectedExtras.length ? /* @__PURE__ */ u(\"div\", { class: \"mt-5 border-t-1 pt-5\", children: [\n              /* @__PURE__ */ u(\"span\", { class: \"text-sm opacity-70\", children: \"Extras\" }),\n              selectedExtras.map((item) => {\n                var _a, _b, _c, _d, _e;\n                return /* @__PURE__ */ u(\"span\", { class: \"mb-3 flex items-end justify-start\", children: [\n                  /* @__PURE__ */ u(\"span\", { class: \"flex flex-col text-left\", children: [\n                    /* @__PURE__ */ u(\"span\", { class: \"font-body text-body capitalize\", children: ((_b = (_a = item.product) == null ? void 0 : _a.product) == null ? void 0 : _b.title) || \"Unknown Product\" }),\n                    /* @__PURE__ */ u(\"span\", { children: (((_c = item.product) == null ? void 0 : _c.selectedOptions) || []).map(\n                      (option, index) => {\n                        if (option.value === \"Default Title\") {\n                          return null;\n                        }\n                        return `${index != 0 ? \" | \" : \"\"} ${option.value}`;\n                      }\n                    ) }),\n                    isRecurringExtra(\n                      item.product,\n                      selectedSellingPlan\n                    ) ? /* @__PURE__ */ u(\"span\", { class: \"text-sm opacity-70\", children: selectedSellingPlan.name }) : null\n                  ] }),\n                  /* @__PURE__ */ u(\"span\", { class: \"ml-auto inline-flex pl-5\", children: [\n                    /* @__PURE__ */ u(\"span\", { class: \"font-body text-body inline-block shrink-0 pr-5\", children: [\n                      \"\u00A0X \",\n                      item.qty\n                    ] }),\n                    /* @__PURE__ */ u(\"span\", { children: [\n                      \"$\",\n                      formatBundlePrice(\n                        parseFloat(\n                          ((_e = (_d = item.product) == null ? void 0 : _d.price) == null ? void 0 : _e.amount) || \"0\"\n                        ) * item.qty\n                      )\n                    ] })\n                  ] })\n                ] });\n              })\n            ] }) : null\n          ]\n        }\n      ),\n      feeId && feePrice && feeTitle && /* @__PURE__ */ u(\"div\", { class: \"mt-5 flex items-end justify-between border-t-1 pt-5\", children: [\n        /* @__PURE__ */ u(\"div\", { class: \"font-body text-body flex flex-col text-left\", children: [\n          /* @__PURE__ */ u(\"span\", { children: feeTitle }),\n          /* @__PURE__ */ u(\"span\", { class: \"text-sm opacity-70\", children: \"Annually\" })\n        ] }),\n        /* @__PURE__ */ u(\"span\", { class: \"inline-block\", children: [\n          \"$\",\n          formatBundlePrice(parseFloat(feePrice))\n        ] })\n      ] }),\n      /* @__PURE__ */ u(\"div\", { class: \"mt-5 flex items-end justify-between border-t-1 pt-5\", children: [\n        /* @__PURE__ */ u(\"div\", { class: \"font--heading\", children: \"Total\" }),\n        /* @__PURE__ */ u(\"span\", { class: \"inline-block\", children: renderDiscountPrice({\n          bundlePrice: (calculatedTotal + (feePrice ? parseFloat(feePrice) : 0)).toFixed(2),\n          selectedSellingPlan,\n          activeSetting,\n          extrasTotal\n        }) })\n      ] }),\n      /* @__PURE__ */ u(\n        \"button\",\n        {\n          type: \"button\",\n          class: `general-hover text-small mt-10 text-left underline ${totalQty == 0 ? \"opacity-50\" : \"general-hover\"}`,\n          disabled: totalQty == 0,\n          onClick: onClear,\n          children: \"Clear Items\"\n        }\n      )\n    ] }) : null }) }),\n    /* @__PURE__ */ u(\"div\", { class: \"tw-col flex w-full flex-col gap-20 md:w-9/24\", children: [\n      maxSize && maxSize != \"0\" ? /* @__PURE__ */ u(\"span\", { class: \"h5\", children: [\n        totalQty,\n        \"/\",\n        maxSize,\n        \" bottles added\"\n      ] }) : minSize && minSize != \"0\" ? /* @__PURE__ */ u(\"span\", { class: \"h5\", children: [\n        totalQty,\n        \" bottles added\",\n        \" \",\n        /* @__PURE__ */ u(\"span\", { class: \"text-small\", children: [\n          \"(minimum \",\n          minSize,\n          \")\"\n        ] })\n      ] }) : /* @__PURE__ */ u(\"span\", { class: \"h5\", children: [\n        totalQty,\n        \" bottles added\"\n      ] }),\n      /* @__PURE__ */ u(\n        \"div\",\n        {\n          class: \"awtomic-bundles___progress relative w-full\",\n          style: `--awtomic-progress:${calculatedPercent};`\n        }\n      ),\n      /* @__PURE__ */ u(\"div\", { class: \"flex w-full gap-10\", children: [\n        onChooseExtras ? /* @__PURE__ */ u(\n          \"button\",\n          {\n            type: \"button\",\n            class: \"btn btn--primary min-w-0 flex-1 px-5\",\n            disabled: addToCartDisabled || loading,\n            onClick: onChooseExtras,\n            children: \"Choose Extras\"\n          }\n        ) : null,\n        onBack ? /* @__PURE__ */ u(\n          \"button\",\n          {\n            type: \"button\",\n            class: \"btn btn--outline min-w-0 flex-1 px-5\",\n            disabled: loading,\n            onClick: onBack,\n            children: \"Back\"\n          }\n        ) : null,\n        /* @__PURE__ */ u(\n          \"button\",\n          {\n            type: \"button\",\n            class: `btn ${onChooseExtras ? \"btn--outline\" : \"btn--primary\"} min-w-0 flex-1 px-5 ${loading ? \"loading\" : \"\"}`,\n            disabled: addToCartDisabled || loading,\n            onClick: () => onAddToCart(),\n            children: \"Checkout\"\n          }\n        )\n      ] })\n    ] })\n  ] }) }) });\n};\nconst useBundleValidation = ({\n  selectedVariants,\n  activeSetting,\n  bundle,\n  bundleProduct,\n  selectedSellingPlan,\n  loading,\n  currentStep,\n  steps,\n  sectionItems\n}) => {\n  const totalQty = T(() => {\n    return selectedVariants.reduce((total, item) => total + (item.qty || 0), 0);\n  }, [selectedVariants]);\n  const bundleLimits = T(() => {\n    if (!activeSetting || !bundle) {\n      return { min: null, max: null };\n    }\n    let min = null;\n    let max = null;\n    if (bundle.Type === \"dynamicBaB\") {\n      max = activeSetting.MaxSize || (activeSetting.Size !== \"0\" ? activeSetting.Size : null);\n      min = activeSetting.MinSize;\n    } else {\n      max = activeSetting.Size;\n      min = activeSetting.Size;\n    }\n    const limits = {\n      min: min ? parseInt(min) : null,\n      max: max ? parseInt(max) : null\n    };\n    return limits;\n  }, [activeSetting, bundle]);\n  const isMinimumMet = T(() => {\n    const hasNoMinimum = !bundleLimits.min;\n    const meetsMinimum = totalQty >= bundleLimits.min;\n    const result = hasNoMinimum ? true : meetsMinimum;\n    return result;\n  }, [totalQty, bundleLimits.min]);\n  const isMaximumReached = T(() => {\n    if (!bundleLimits.max) return false;\n    return totalQty >= bundleLimits.max;\n  }, [totalQty, bundleLimits.max]);\n  const isBundleFull = T(() => {\n    return isMaximumReached;\n  }, [isMaximumReached]);\n  const canAddMore = T(() => {\n    return !isMaximumReached;\n  }, [isMaximumReached]);\n  const remainingCapacity = T(() => {\n    if (!bundleLimits.max) return null;\n    return bundleLimits.max - totalQty;\n  }, [bundleLimits.max, totalQty]);\n  const needsSellingPlan = T(() => {\n    return (bundleProduct == null ? void 0 : bundleProduct.requiresSellingPlan) && !selectedSellingPlan;\n  }, [bundleProduct == null ? void 0 : bundleProduct.requiresSellingPlan, selectedSellingPlan]);\n  const addToCartDisabled = T(() => {\n    let disabled = false;\n    if (loading) {\n      disabled = true;\n    } else if (!activeSetting) {\n      disabled = true;\n    } else if (!isMinimumMet) {\n      disabled = true;\n    } else if (needsSellingPlan) {\n      disabled = true;\n    }\n    return disabled;\n  }, [loading, activeSetting, isMinimumMet, needsSellingPlan]);\n  const addToCartValidationMessage = T(() => {\n    if (loading) return \"Processing...\";\n    if (!isMinimumMet && bundleLimits.min) {\n      const needed = bundleLimits.min - totalQty;\n      return `Add ${needed} more item${needed > 1 ? \"s\" : \"\"} to reach minimum (${bundleLimits.min})`;\n    }\n    if (needsSellingPlan) {\n      return \"Please select a subscription frequency\";\n    }\n    return \"\";\n  }, [loading, isMinimumMet, bundleLimits.min, totalQty, needsSellingPlan]);\n  const correctStep = q(\n    (step) => {\n      const stepObj = steps[currentStep];\n      return stepObj && (stepObj.key === step || stepObj.label === step);\n    },\n    [currentStep, steps]\n  );\n  const canProceedToNextStep = T(() => {\n    const currentStepObj = steps[currentStep];\n    if (!currentStepObj) return false;\n    switch (currentStepObj.key) {\n      case \"selectBundle\":\n        return !!activeSetting;\n      case \"selectFrequency\":\n        return !needsSellingPlan;\n      case \"chooseProducts\":\n        return isMinimumMet;\n      default:\n        return true;\n    }\n  }, [currentStep, steps, activeSetting, needsSellingPlan, isMinimumMet]);\n  const getSectionValidation = q(\n    (sectionId) => {\n      var _a;\n      if (!(bundle == null ? void 0 : bundle.Sections) || !sectionId) {\n        return {\n          isValid: true,\n          canAddMore: true,\n          remainingCapacity: null,\n          maxReached: false,\n          minReached: false\n        };\n      }\n      const section = bundle.Sections.find((s) => s.Id === sectionId);\n      const sectionSettings = ((_a = section == null ? void 0 : section.Settings) == null ? void 0 : _a[0]) || {};\n      const sectionMaxSize = sectionSettings.MaxSize;\n      const sectionMinSize = sectionSettings.MinSize;\n      const sectionCount = sectionItems[sectionId] || 0;\n      if (sectionMaxSize == null && sectionMinSize == null) {\n        return {\n          isValid: true,\n          canAddMore: true,\n          remainingCapacity: null,\n          maxReached: false,\n          minReached: false\n        };\n      }\n      const sectionMax = sectionMaxSize != null ? parseInt(sectionMaxSize) : null;\n      const sectionMin = sectionMinSize != null ? parseInt(sectionMinSize) : null;\n      const maxReached = sectionMax !== null ? sectionCount >= sectionMax : false;\n      const minReached = sectionMin !== null ? sectionCount >= sectionMin : false;\n      const remainingCapacity2 = sectionMax !== null ? sectionMax - sectionCount : null;\n      return {\n        isValid: (sectionMax !== null ? sectionCount <= sectionMax : true) && (sectionMin !== null ? sectionCount >= sectionMin : true),\n        canAddMore: sectionMax !== null ? !maxReached : true,\n        remainingCapacity: remainingCapacity2,\n        maxReached,\n        minReached,\n        sectionMax,\n        sectionMin,\n        currentCount: sectionCount\n      };\n    },\n    [bundle, sectionItems]\n  );\n  const getLimitHitMessage = q(\n    (sectionId) => {\n      let hitSection = false;\n      let hitBundle = false;\n      let message = \"You have reached the maximum allowed quantity for this product!\";\n      if (sectionId) {\n        const sectionValidation = getSectionValidation(sectionId);\n        if (sectionValidation.maxReached) {\n          hitSection = true;\n        }\n      }\n      if (isMaximumReached) {\n        hitBundle = true;\n      }\n      if (hitSection && hitBundle) {\n        message = \"You have reached both the section and bundle maximum limits!\";\n      } else if (hitSection) {\n        message = \"You have reached the maximum quantity for this section!\";\n      } else if (hitBundle) {\n        message = \"You have reached the maximum quantity for this bundle!\";\n      }\n      return message;\n    },\n    [getSectionValidation, isMaximumReached]\n  );\n  const canAddProductToSection = q(\n    (sectionId, quantity = 1) => {\n      const bundleHasCapacity = !bundleLimits.max || totalQty + quantity <= bundleLimits.max;\n      if (!bundleHasCapacity) {\n        return {\n          canAdd: false,\n          reason: \"bundle_full\",\n          bundleHasCapacity: false,\n          sectionHasCapacity: true\n          // irrelevant since bundle is full\n        };\n      }\n      const sectionValidation = getSectionValidation(sectionId);\n      const sectionHasCapacity = sectionValidation.remainingCapacity === null || sectionValidation.remainingCapacity >= quantity;\n      return {\n        canAdd: sectionHasCapacity,\n        reason: !sectionHasCapacity ? \"section_full\" : \"ok\",\n        bundleHasCapacity: true,\n        sectionHasCapacity\n      };\n    },\n    [getSectionValidation, bundleLimits.max, totalQty]\n  );\n  const progressValidation = T(() => {\n    const progress = bundleLimits.max ? totalQty / bundleLimits.max * 100 : 0;\n    const isComplete = isMinimumMet;\n    const isFull = isMaximumReached;\n    return {\n      progress: Math.min(100, Math.round(progress)),\n      isComplete,\n      isFull,\n      status: isFull ? \"full\" : isComplete ? \"complete\" : \"incomplete\"\n    };\n  }, [bundleLimits.max, totalQty, isMinimumMet, isMaximumReached]);\n  return {\n    // Basic validation states\n    isMinimumMet,\n    isMaximumReached,\n    isBundleFull,\n    canAddMore,\n    needsSellingPlan,\n    addToCartDisabled,\n    canProceedToNextStep,\n    // Capacity info\n    remainingCapacity,\n    bundleLimits,\n    totalQty,\n    // Messages\n    addToCartValidationMessage,\n    getLimitHitMessage,\n    // Step validation\n    correctStep,\n    // Section validation\n    getSectionValidation,\n    canAddProductToSection,\n    // Progress info\n    progressValidation\n  };\n};\nconst SvgQuizBack = (props) => /* @__PURE__ */ _(\"svg\", { width: 14, height: 11, viewBox: \"0 0 14 11\", fill: \"none\", xmlns: \"http://www.w3.org/2000/svg\", ...props }, /* @__PURE__ */ _(\"path\", { d: \"M6.207 0.292786C6.01947 0.105315 5.76516 0 5.5 0C5.23484 0 4.98053 0.105315 4.793 0.292786L0.293 4.79279C0.105529 4.98031 0.000213623 5.23462 0.000213623 5.49979C0.000213623 5.76495 0.105529 6.01926 0.293 6.20679L4.793 10.7068C4.9816 10.8889 5.2342 10.9897 5.4964 10.9875C5.7586 10.9852 6.00941 10.88 6.19482 10.6946C6.38023 10.5092 6.4854 10.2584 6.48767 9.99619C6.48995 9.73399 6.38916 9.48139 6.207 9.29279L3.5 6.49979H13C13.2652 6.49979 13.5196 6.39443 13.7071 6.20689C13.8946 6.01936 14 5.765 14 5.49979C14 5.23457 13.8946 4.98022 13.7071 4.79268C13.5196 4.60514 13.2652 4.49979 13 4.49979H3.5L6.207 1.70679C6.39447 1.51926 6.49979 1.26495 6.49979 0.999786C6.49979 0.734622 6.39447 0.480314 6.207 0.292786Z\", fill: \"#1A1A1A\" }));\nconst Header = ({\n  currentStep,\n  steps,\n  bundleType,\n  activeSetting,\n  onBack,\n  stepsEnabled = true,\n  // Default to true if not provided\n  state\n}) => {\n  const activeStep = () => {\n    return steps.find((step) => step.key === currentStep);\n  };\n  return /* @__PURE__ */ u(\"div\", { class: \"bg-background border-brand-border mb-15 w-full border-b-1 pt-20\", children: /* @__PURE__ */ u(\"div\", { class: \"flex w-full items-end justify-between pb-15\", children: [\n    /* @__PURE__ */ u(\"h2\", { class: \"awtomic-bundles___bundle-title h3 mr-30\", children: [\n      activeStep().label,\n      \" \u00A0\",\n      bundleType === \"dynamicBaB\" && activeStep().key == \"chooseBottles\" && /* @__PURE__ */ u(k, { children: /* @__PURE__ */ u(\"span\", { class: \"text-lead\", children: activeSetting == null ? void 0 : activeSetting.Label }) })\n    ] }),\n    stepsEnabled && activeStep().index > 0 && onBack != void 0 && /* @__PURE__ */ u(\n      \"button\",\n      {\n        type: \"button\",\n        class: \"text-brand-brown flex items-center\",\n        onClick: onBack,\n        children: [\n          /* @__PURE__ */ u(SvgQuizBack, {}),\n          /* @__PURE__ */ u(\"span\", { class: \"ml-5 inline-block pt-[3px]\", children: \"Back\" })\n        ]\n      }\n    )\n  ] }) });\n};\nconst BundleProductSelect = ({\n  stepsEnabled,\n  correctStep,\n  state,\n  bundle,\n  onBack,\n  bundleProductCardRender\n}) => {\n  const validation = useBundleValidation({\n    selectedVariants: state.selectedVariants || [],\n    activeSetting: state.activeSetting,\n    bundle,\n    bundleProduct: state.bundleProduct,\n    selectedSellingPlan: state.selectedSellingPlan,\n    loading: state.loading,\n    currentStep: state.currentStep,\n    steps: state.steps,\n    sectionItems: state.sectionItems || {}\n  });\n  const checkMark = /* @__PURE__ */ u(\n    \"svg\",\n    {\n      width: \"20\",\n      height: \"20\",\n      viewBox: \"0 0 20 20\",\n      fill: \"none\",\n      xmlns: \"http://www.w3.org/2000/svg\",\n      class: \"icon-checkmark\",\n      children: /* @__PURE__ */ u(\n        \"path\",\n        {\n          d: \"M4.75439 10.7485L7.68601 14.5888C7.79288 14.7288 7.84632 14.7988 7.91174 14.8242C7.96907 14.8466 8.03262 14.8469 8.09022 14.8253C8.15596 14.8007 8.21026 14.7314 8.31886 14.5927L15.2475 5.74658\",\n          stroke: \"currentColor\",\n          \"stroke-width\": \"var(--icon-stroke-width)\",\n          \"stroke-linecap\": \"round\",\n          \"stroke-linejoin\": \"round\"\n        }\n      )\n    }\n  );\n  return /* @__PURE__ */ u(\"div\", { class: \"awtomic-bundles___bundle-products w-full\", children: [\n    /* @__PURE__ */ u(\n      Header,\n      {\n        currentStep: \"chooseBottles\",\n        steps: state.steps,\n        bundleType: bundle.Type,\n        activeSetting: state.activeSetting,\n        onBack,\n        stepsEnabled,\n        state\n      }\n    ),\n    bundle.Sections.map((section, index) => {\n      var _a, _b, _c, _d, _e, _f, _g, _h;\n      const getValidProducts = () => {\n        if (section.Collections && section.Collections.length > 0) {\n          if (!state.products) return [];\n          return section.Collections.flatMap(\n            (collection) => Object.values(state.products).filter(\n              (p) => p.collectionId === collection.Id\n            )\n          );\n        } else {\n          if (!state.products) return [];\n          return section.Products.map((product) => {\n            const productId = product.Id || `gid://shopify/Product/${product.Id}`;\n            const productByHandle = product.Handle ? Object.values(state.products).find(\n              (p) => p.handle === product.Handle\n            ) : null;\n            return state.products[productId] || productByHandle;\n          }).filter(\n            (productDetails) => productDetails && productDetails.availableForSale\n          );\n        }\n      };\n      const validProducts = getValidProducts();\n      if (!validProducts.length) return null;\n      const sectionValidation = validation.getSectionValidation(section.Id);\n      return /* @__PURE__ */ u(\n        \"div\",\n        {\n          class: `awtomic-bundles___bundle-section mb-40 pt-40 ${index != bundle.Sections.length - 1 ? \"border-b-1\" : \"\"}`,\n          children: [\n            bundle.Sections.length > 1 && /* @__PURE__ */ u(k, { children: /* @__PURE__ */ u(\"div\", { class: \"mb-30 flex items-end\", children: [\n              /* @__PURE__ */ u(\"h2\", { class: \"awtomic-bundles___bundle-section-title inline-block\", children: section.Name }),\n              /* @__PURE__ */ u(\"div\", { class: \"ml-auto\", children: ((_b = (_a = section == null ? void 0 : section.Settings) == null ? void 0 : _a[0]) == null ? void 0 : _b.MinSize) ? /* @__PURE__ */ u(\"span\", { class: \"ml-30 inline-block\", children: [\n                sectionValidation.minReached && /* @__PURE__ */ u(\"span\", { class: \"text-text ml-10\", children: checkMark }),\n                \"minimum of \",\n                (_d = (_c = section == null ? void 0 : section.Settings) == null ? void 0 : _c[0]) == null ? void 0 : _d.MinSize,\n                \" items\"\n              ] }) : null }),\n              ((_f = (_e = section == null ? void 0 : section.Settings) == null ? void 0 : _e[0]) == null ? void 0 : _f.MaxSize) ? /* @__PURE__ */ u(\"span\", { class: \"ml-30 inline-block\", children: [\n                sectionValidation.maxReached && /* @__PURE__ */ u(\"span\", { class: \"text-text ml-10\", children: checkMark }),\n                \"maximum of \",\n                (_h = (_g = section == null ? void 0 : section.Settings) == null ? void 0 : _g[0]) == null ? void 0 : _h.MaxSize,\n                \" items\"\n              ] }) : null\n            ] }) }),\n            /* @__PURE__ */ u(\"div\", { class: \"awtomic-bundles___bundle-products-list xs:grid-cols-2 grid gap-30 sm:grid-cols-3 md:gap-y-60\", children: validProducts.map((product) => {\n              const canAdd = validation.canAddProductToSection(\n                section.Id\n              ).canAdd;\n              return bundleProductCardRender({\n                product,\n                sectionId: section.Id,\n                canAdd,\n                sectionValidation\n              });\n            }) })\n          ]\n        }\n      );\n    })\n  ] });\n};\nfunction BundleSizeSelect({\n  settings,\n  activeSetting,\n  onSelect\n}) {\n  return /* @__PURE__ */ u(\"div\", { class: \"awtomic-bundles___bundle-select mb-10 ml-auto flex flex-wrap items-start gap-10\", children: settings.map((setting) => /* @__PURE__ */ u(\n    \"button\",\n    {\n      type: \"button\",\n      class: `btn btn--outline --small ${(activeSetting == null ? void 0 : activeSetting.Label) === setting.Label ? \"active\" : \"\"}`,\n      onClick: () => onSelect(setting),\n      children: [\n        setting.Label,\n        setting.Price != \"0.00\" ? ` -  $${setting.Price}` : \"\"\n      ]\n    }\n  )) });\n}\nconst EXTRAS_STEP = [{ key: \"chooseExtras\", label: \"Choose Extras\", index: 0 }];\nconst EXTRAS_SECTION_ID = \"extras\";\nconst BundleExtrasSelect = ({\n  extras,\n  selectedExtras,\n  bundleType,\n  onQtyChange\n}) => {\n  const validExtras = (extras || []).filter(\n    (product) => product && product.availableForSale\n  );\n  if (!validExtras.length) return null;\n  return /* @__PURE__ */ u(\"div\", { class: \"awtomic-bundles___bundle-extras w-full\", children: [\n    /* @__PURE__ */ u(\n      Header,\n      {\n        currentStep: \"chooseExtras\",\n        steps: EXTRAS_STEP,\n        bundleType,\n        activeSetting: null,\n        stepsEnabled: false\n      }\n    ),\n    /* @__PURE__ */ u(\"div\", { class: \"awtomic-bundles___bundle-section mb-40 pt-40\", children: /* @__PURE__ */ u(\"div\", { class: \"awtomic-bundles___bundle-products-list xs:grid-cols-2 grid gap-30 sm:grid-cols-3 md:gap-y-60\", children: validExtras.map((product) => /* @__PURE__ */ u(\n      AwtomicProductCard,\n      {\n        activeSetting: null,\n        selectedVariants: selectedExtras,\n        product,\n        handleQtyChange: onQtyChange,\n        sectionId: EXTRAS_SECTION_ID,\n        selectedSellingPlan: null\n      },\n      product.id\n    )) }) })\n  ] });\n};\nfunction BundleLayoutSinglePage({\n  bundle,\n  bundleProduct,\n  products,\n  selectedVariants,\n  sectionItems,\n  basePrice,\n  percentComplete,\n  totalQty,\n  isDynamicBundle,\n  hasSellingPlans,\n  addToCartDisabled,\n  clearSelection,\n  bundleProductCardRender,\n  toasts,\n  addToast,\n  removeToast,\n  STEPS,\n  feeId,\n  feePrice,\n  feeTitle,\n  extras,\n  selectedExtras,\n  extraQtyUpdate,\n  clearExtras,\n  activeSetting,\n  setActiveSetting\n}) {\n  var _a, _b;\n  const [bundleState, setBundleState] = d({\n    selectedSellingPlan: null,\n    loading: false,\n    formattedSizes: null\n  });\n  const handleSubmit = useBundleSubmit({\n    bundleState: { ...bundleState, activeSetting },\n    // Combine local state with activeSetting from parent\n    setBundleState,\n    selectedVariants,\n    bundle,\n    bundleProduct,\n    isDynamicBundle,\n    layout,\n    generateUUID,\n    feeId,\n    feePrice,\n    feeTitle,\n    selectedExtras\n  });\n  const { addToCartDisabled: isValidationDisabled } = useBundleValidation({\n    selectedVariants: selectedVariants || [],\n    activeSetting,\n    bundle,\n    bundleProduct,\n    selectedSellingPlan: bundleState.selectedSellingPlan,\n    loading: bundleState.loading,\n    currentStep: 1,\n    // Single page layout is always on step 1\n    steps: STEPS,\n    sectionItems: sectionItems || {}\n  });\n  y(() => {\n    if (bundleState.formattedSizes === null && bundle) {\n      const sizes = bundle.Settings.filter((settings) => {\n        return !settings.Label.includes(\"-\");\n      });\n      setBundleState((prev) => ({\n        ...prev,\n        formattedSizes: sizes\n      }));\n      if (sizes.length === 1 && !activeSetting) {\n        setActiveSetting(sizes[0]);\n      }\n    }\n  }, [bundle, bundleState.formattedSizes, activeSetting, setActiveSetting]);\n  const [showExtras, setShowExtras] = d(false);\n  const hasExtras = (extras || []).some((product) => product == null ? void 0 : product.availableForSale);\n  const prevShowExtrasRef = A(showExtras);\n  y(() => {\n    if (prevShowExtrasRef.current === showExtras) return;\n    prevShowExtrasRef.current = showExtras;\n    const bundleElement = document.querySelector(\".awtomic-bundles\");\n    if (bundleElement) {\n      const top = bundleElement.getBoundingClientRect().top;\n      window.scrollTo({\n        top: top + window.scrollY - 100,\n        behavior: \"smooth\"\n      });\n    }\n  }, [showExtras]);\n  return /* @__PURE__ */ u(k, { children: [\n    /* @__PURE__ */ u(\"div\", { class: showExtras ? \"hidden\" : \"w-full\", children: [\n      bundleState.formattedSizes && bundleState.formattedSizes.length > 1 ? /* @__PURE__ */ u(k, { children: [\n        /* @__PURE__ */ u(\n          Header,\n          {\n            currentStep: \"chooseClub\",\n            steps: STEPS,\n            bundleType: (bundle == null ? void 0 : bundle.Type) ?? \"\",\n            activeSetting,\n            stepsEnabled: false\n          }\n        ),\n        /* @__PURE__ */ u(\n          BundleSizeSelect,\n          {\n            settings: bundleState.formattedSizes,\n            activeSetting,\n            onSelect: (setting) => {\n              setActiveSetting(setting);\n            }\n          }\n        )\n      ] }) : null,\n      ((_a = bundleProduct == null ? void 0 : bundleProduct.sellingPlanGroups) == null ? void 0 : _a.nodes) && (((_b = bundleProduct == null ? void 0 : bundleProduct.sellingPlanGroups) == null ? void 0 : _b.nodes) || []).flatMap(\n        (node) => {\n          var _a2;\n          return (((_a2 = node == null ? void 0 : node.sellingPlans) == null ? void 0 : _a2.edges) || []).map(({ node: sellingPlan }) => sellingPlan);\n        }\n      ).length > 1 ? /* @__PURE__ */ u(\"div\", { class: \"mb-40 w-full\", children: [\n        /* @__PURE__ */ u(\n          Header,\n          {\n            currentStep: \"chooseFrequency\",\n            steps: STEPS,\n            bundleType: (bundle == null ? void 0 : bundle.Type) ?? \"\",\n            activeSetting,\n            stepsEnabled: false\n          }\n        ),\n        /* @__PURE__ */ u(\n          BundleFrequency,\n          {\n            bundleProduct,\n            selectedSellingPlan: bundleState.selectedSellingPlan,\n            setSelectedSellingPlan: (plan) => setBundleState((prev) => ({\n              ...prev,\n              selectedSellingPlan: plan\n            }))\n          }\n        )\n      ] }) : /* @__PURE__ */ u(\n        BundleFrequency,\n        {\n          bundleProduct,\n          selectedSellingPlan: bundleState.selectedSellingPlan,\n          setSelectedSellingPlan: (plan) => setBundleState((prev) => ({\n            ...prev,\n            selectedSellingPlan: plan\n          }))\n        }\n      )\n    ] }),\n    activeSetting && /* @__PURE__ */ u(\"div\", { class: \"relative w-full\", children: [\n      /* @__PURE__ */ u(\"div\", { class: showExtras ? \"hidden\" : \"w-full\", children: /* @__PURE__ */ u(\n        BundleProductSelect,\n        {\n          bundle,\n          state: {\n            bundle,\n            activeSetting,\n            selectedVariants,\n            currentStep: 1,\n            // Always on product selection for single page\n            selectedSellingPlan: bundleState.selectedSellingPlan,\n            sectionItems,\n            isDynamicBundle,\n            bundleProduct,\n            totalQty,\n            steps: STEPS,\n            products\n          },\n          stepsEnabled: false,\n          correctStep: () => true,\n          onBack: () => {\n          },\n          bundleProductCardRender\n        }\n      ) }),\n      showExtras && /* @__PURE__ */ u(\n        BundleExtrasSelect,\n        {\n          extras,\n          selectedExtras,\n          bundleType: (bundle == null ? void 0 : bundle.Type) ?? \"\",\n          onQtyChange: extraQtyUpdate\n        }\n      ),\n      toasts.map((toast, index) => /* @__PURE__ */ u(\n        Toast,\n        {\n          isVisible: true,\n          message: toast.message,\n          secondaryMessage: toast.secondaryMessage,\n          position: \"bottom-right\",\n          type: toast.type,\n          style: {\n            bottom: `${150 + (toasts.length - index) * 120}px`\n          },\n          onClose: () => removeToast(toast.id)\n        },\n        toast.id\n      )),\n      /* @__PURE__ */ u(\n        Footer,\n        {\n          bundlePrice: basePrice.toString(),\n          selectedVariants,\n          selectedExtras,\n          bundleType: bundle.Type,\n          activeSetting,\n          totalQty,\n          onClear: () => {\n            clearSelection();\n            clearExtras();\n            setShowExtras(false);\n            addToast({\n              message: \"All items cleared from your bundle.\",\n              type: \"info\",\n              duration: 2e3\n            });\n          },\n          selectedSellingPlan: bundleState.selectedSellingPlan,\n          stepsEnabled: false,\n          hasSellingPlans,\n          loading: bundleState.loading,\n          addToCartDisabled: isValidationDisabled,\n          onAddToCart: handleSubmit,\n          percentComplete,\n          steps: STEPS,\n          onNextStep: () => {\n          },\n          onChooseExtras: hasExtras && !showExtras ? () => setShowExtras(true) : void 0,\n          onBack: showExtras ? () => setShowExtras(false) : void 0,\n          currentStep: 1,\n          feeId,\n          feePrice,\n          feeTitle\n        }\n      )\n    ] })\n  ] });\n}\nfunction BundleProvider({\n  bundleId,\n  feeId,\n  feePrice,\n  feeTitle,\n  countryCode,\n  lang\n}) {\n  const STEPS = T(\n    () => [\n      // chooseClub is\n      { key: \"chooseClub\", label: \"Customize\", index: 0 },\n      { key: \"chooseFrequency\", label: \"Select Frequency \", index: 0 },\n      { key: \"chooseBottles\", label: \"Select Wines\", index: 1 },\n      { key: \"checkout\", label: \"Checkout\", index: 2 }\n    ],\n    []\n  );\n  const [bundleState, setBundleState] = d({\n    loading: true,\n    activeSetting: null\n  });\n  const { addToast, removeToast, toasts } = useToasts();\n  const {\n    bundle,\n    products,\n    extras,\n    bundleProduct,\n    hasSellingPlans,\n    isDynamicBundle,\n    loadBundle\n  } = useBundleData({ bundleId, countryCode, lang });\n  const {\n    selectedVariants,\n    sectionItems,\n    removeProductFromSelection,\n    updateProductQuantity,\n    clearSelection\n  } = useBundleSelection();\n  const {\n    selectedVariants: selectedExtras,\n    updateProductQuantity: updateExtraQuantity,\n    clearSelection: clearExtras\n  } = useBundleSelection();\n  y(() => {\n    if (bundle && !bundleState.activeSetting) {\n      if (bundle.Type === \"dynamicBaB\" && bundle.Settings.length === 1) {\n        setBundleState((prevState) => ({\n          ...prevState,\n          activeSetting: bundle.Settings[0]\n        }));\n      } else if (bundle.Settings && bundle.Settings.length > 0) {\n        setBundleState((prevState) => ({\n          ...prevState,\n          activeSetting: bundle.Settings[0]\n        }));\n      }\n    }\n  }, [bundle, bundleState.activeSetting]);\n  const { basePrice, percentComplete, totalQty } = useBundleCalculations({\n    selectedVariants,\n    activeSetting: null,\n    // Will be managed in BundleLayoutSteps\n    bundle,\n    selectedSellingPlan: null\n    // Will be managed in BundleLayoutSteps\n  });\n  const bundleLimits = useBundleLimits(\n    bundle,\n    bundleState.activeSetting,\n    // Use the local active setting state\n    selectedVariants,\n    sectionItems\n  );\n  const generateLimitMessage = useLimitMessageGenerator();\n  const getLimitHitMessage = q(\n    (sectionId) => {\n      const sectionData = bundleLimits.getSectionData(sectionId);\n      return generateLimitMessage(bundleLimits, sectionData);\n    },\n    [bundleLimits, generateLimitMessage]\n  );\n  y(() => {\n    if (bundleId) {\n      loadBundle();\n    }\n  }, [bundleId, loadBundle]);\n  y(() => {\n    if (bundle) {\n      setBundleState((prev) => ({\n        ...prev,\n        loading: false\n      }));\n    }\n  }, [bundle]);\n  const handleSubmit = useBundleSubmit({\n    bundleState,\n    setBundleState,\n    selectedVariants,\n    bundle,\n    bundleProduct,\n    isDynamicBundle,\n    layout,\n    generateUUID,\n    feeId,\n    feePrice,\n    feeTitle\n  });\n  q(async () => {\n    await handleSubmit();\n  }, [handleSubmit]);\n  const handleVariantChange = q(\n    (variant, prevSelectedVariant) => {\n      var _a;\n      if ((_a = prevSelectedVariant == null ? void 0 : prevSelectedVariant.product) == null ? void 0 : _a.id) {\n        removeProductFromSelection(\n          prevSelectedVariant.product.id,\n          prevSelectedVariant.sectionId\n        );\n      }\n    },\n    [removeProductFromSelection]\n  );\n  const qtyUpdate = q(\n    ({ sectionId, selectedVariant, qty }) => {\n      var _a, _b, _c, _d, _e, _f, _g, _h;\n      if (!(selectedVariant == null ? void 0 : selectedVariant.id)) {\n        return;\n      }\n      const currentTotalQty = selectedVariants.reduce(\n        (total, item) => total + item.qty,\n        0\n      );\n      const currentProductQty = ((_a = selectedVariants.find((item) => item.product.id === selectedVariant.id)) == null ? void 0 : _a.qty) || 0;\n      const qtyChange = qty - currentProductQty;\n      const { bundleLimit } = bundleLimits;\n      if (bundleLimit && qtyChange > 0) {\n        const newTotalQty = currentTotalQty + qtyChange;\n        if (newTotalQty > bundleLimit) {\n          addToast({\n            message: `Bundle limit reached! Maximum ${bundleLimit} items allowed.`,\n            type: \"warning\",\n            duration: 3e3\n          });\n          return;\n        }\n      }\n      updateProductQuantity(selectedVariant, qty, sectionId);\n      if (qty > 0) {\n        const existingProduct = selectedVariants.find(\n          (item) => item.product.id === selectedVariant.id\n        );\n        if (existingProduct && qty > existingProduct.qty) {\n          addToast({\n            message: `Added another ${((_b = selectedVariant == null ? void 0 : selectedVariant.product) == null ? void 0 : _b.title) || \"item\"} to bundle!`,\n            type: \"success\",\n            duration: 2e3\n          });\n        } else if (!existingProduct) {\n          addToast({\n            message: `${((_c = selectedVariant == null ? void 0 : selectedVariant.product) == null ? void 0 : _c.title) || \"Item\"} added to bundle!`,\n            type: \"success\",\n            duration: 2e3\n          });\n        }\n      }\n      if (bundle && sectionId) {\n        const currentSection = (_d = bundle.Sections) == null ? void 0 : _d.find((s) => s.Id === sectionId);\n        const sectionQty = sectionItems[sectionId] || 0;\n        if (((_f = (_e = currentSection == null ? void 0 : currentSection.Settings) == null ? void 0 : _e[0]) == null ? void 0 : _f.MaxSize) && sectionQty >= parseInt(((_h = (_g = currentSection == null ? void 0 : currentSection.Settings) == null ? void 0 : _g[0]) == null ? void 0 : _h.MaxSize) || \"0\")) {\n          addToast({\n            message: \"You have reached the maximum quantity for this section!\",\n            type: \"info\",\n            duration: 2e3\n          });\n        }\n      }\n    },\n    [\n      updateProductQuantity,\n      selectedVariants,\n      addToast,\n      bundle,\n      sectionItems,\n      bundleLimits\n    ]\n  );\n  const extraQtyUpdate = q(\n    ({ sectionId, selectedVariant, qty }) => {\n      if (!(selectedVariant == null ? void 0 : selectedVariant.id)) {\n        return;\n      }\n      updateExtraQuantity(selectedVariant, qty, sectionId);\n    },\n    [updateExtraQuantity]\n  );\n  const bundleProductCardRender = q(\n    ({ product, sectionId }) => {\n      if (!(product == null ? void 0 : product.availableForSale)) {\n        return null;\n      }\n      const thisProductInSelection = selectedVariants.find(\n        (item) => {\n          var _a;\n          return ((_a = item.product.product) == null ? void 0 : _a.title) === product.title;\n        }\n      );\n      const { bundleLimit, totalSelectedQty } = bundleLimits;\n      const { sectionMax, sectionCount } = bundleLimits.getSectionData(sectionId);\n      let maxQty = null;\n      if (bundleLimit) {\n        const bundleAvailable = bundleLimit - totalSelectedQty + (thisProductInSelection ? thisProductInSelection.qty : 0);\n        if (bundleAvailable <= 0) {\n          maxQty = thisProductInSelection ? thisProductInSelection.qty : 0;\n        } else {\n          maxQty = bundleAvailable;\n        }\n      }\n      if (sectionMax !== null && (maxQty === null || maxQty > 0)) {\n        const sectionAvailable = sectionMax - sectionCount + (thisProductInSelection ? thisProductInSelection.qty : 0);\n        maxQty = maxQty !== null ? Math.min(maxQty, sectionAvailable) : sectionAvailable;\n      }\n      return /* @__PURE__ */ u(\n        AwtomicProductCard,\n        {\n          activeSetting: null,\n          selectedVariants,\n          product,\n          handleVariantChange,\n          handleQtyChange: qtyUpdate,\n          maxQty,\n          sectionId,\n          selectedSellingPlan: null,\n          onMaxQtyReached: () => {\n            const message = getLimitHitMessage(sectionId);\n            addToast({\n              message,\n              type: \"warning\",\n              duration: 2e3\n            });\n          }\n        }\n      );\n    },\n    [\n      selectedVariants,\n      bundleLimits,\n      // Single dependency instead of bundle, activeSetting, sectionItems\n      handleVariantChange,\n      qtyUpdate,\n      getLimitHitMessage,\n      addToast\n    ]\n  );\n  q(\n    (step) => {\n      const stepObj = STEPS.find(\n        (s) => s.key === step || s.label === step || s.index === step\n      );\n      if (stepObj) {\n        setBundleState((prev) => ({\n          ...prev,\n          currentStep: stepObj.index\n        }));\n      }\n    },\n    [STEPS]\n  );\n  if (!(bundle == null ? void 0 : bundle.Active)) {\n    return null;\n  }\n  return /* @__PURE__ */ u(\"div\", { class: \"awtomic-bundles relative min-h-500 w-full\", children: [\n    bundleState.loading ? /* @__PURE__ */ u(\"div\", { class: \"loader\" }) : null,\n    /* @__PURE__ */ u(\n      BundleLayoutSinglePage,\n      {\n        bundle,\n        bundleProduct,\n        products,\n        selectedVariants,\n        sectionItems,\n        basePrice,\n        percentComplete: percentComplete.toString(),\n        totalQty,\n        isDynamicBundle,\n        hasSellingPlans,\n        addToCartDisabled: false,\n        clearSelection,\n        bundleProductCardRender,\n        toasts,\n        addToast,\n        removeToast,\n        STEPS,\n        feeId,\n        feePrice,\n        feeTitle,\n        extras,\n        selectedExtras,\n        extraQtyUpdate,\n        clearExtras,\n        activeSetting: bundleState.activeSetting,\n        setActiveSetting: (setting) => setBundleState((prev) => ({ ...prev, activeSetting: setting }))\n      }\n    )\n  ] });\n}\nclass AwtomicBundles extends x {\n  constructor(props) {\n    super(props);\n  }\n  render() {\n    const { bundleId, feeId, feePrice, feeTitle, countryCode, lang } = this.props;\n    return /* @__PURE__ */ u(\n      BundleProvider,\n      {\n        bundleId,\n        feeId,\n        feePrice,\n        feeTitle,\n        countryCode,\n        lang\n      }\n    );\n  }\n}\nconst AwtomicBundles$1 = () => {\n  register(AwtomicBundles, \"awtomic-bundle\", [\n    \"bundle-id\",\n    \"fee-id\",\n    \"fee-price\",\n    \"fee-title\",\n    \"country-code\",\n    \"lang\"\n  ]);\n};\nAwtomicBundles$1();\n"],
  "mappings": "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",
  "names": []
}
