{"version":3,"file":"AvoidLayoutJumping_Prod.DxkWZ1Uv.mjs","names":["useRef"],"sources":["https:/framerusercontent.com/modules/yiRfl1JCGhIBUL31WVDk/wupS2XmBAHu1kBQNv9pi/mutations_v2.js","https:/framerusercontent.com/modules/6Zs9CjkPbKzHjoy8LK08/iqoIwmJw4hztafi4V4IV/Fb_pixel.js","https:/framerusercontent.com/modules/w24ELWa2giT3SFaWpV77/398w6fPyag8B92ojouQr/utmParams.js","https:/framerusercontent.com/modules/h8ioHyt4BUxuvVCE1Q10/aTM6mEMGlM19JjX8exDe/AvoidLayoutJumping_Prod.js"],"sourcesContent":["//export const createCartMutationWithAttributes = `\n// mutation createCart($lines: [CartLineInput!]!, $attributes: [AttributeInput!]) {\n//   cartCreate(input: { lines: $lines, attributes: $attributes }) {\n//   mutation createCart($lines: [CartLineInput!]!, $attributes: [AttributeInput!], $countryCode: CountryCode) {\n//     cartCreate(input: { lines: $lines, attributes: $attributes, buyerIdentity: { countryCode: $countryCode } }) {\n//       cart {\n//         buyerIdentity {\n//           countryCode\n//         }\n//         id\n//         checkoutUrl\n//         attributes {\n//           key\n//           value\n//         }\n//         cost {\n//           totalAmount {\n//             amount\n//             currencyCode\n//           }\n//         }\n//         lines(first: 100) {\n//           edges {\n//             node {\n//               id\n//               quantity\n//               cost {\n//                 compareAtAmount {\n//                   amount\n//                   currencyCode\n//                 }\n//                 amount {\n//                   amount\n//                   currencyCode\n//                 }\n//               }\n//               merchandise {\n//                 ... on ProductVariant {\n//                   id\n//                 }\n//               }\n//             }\n//           }\n//         }\n//       }\n//       userErrors {\n//         field\n//         message\n//       }\n//     }\n//   }\n// `\nexport const createCartMutationWithAttributes=`\n  mutation createCart($lines: [CartLineInput!]!, $attributes: [AttributeInput!], $countryCode: CountryCode) {\n    cartCreate(input: { lines: $lines, attributes: $attributes, buyerIdentity: { countryCode: $countryCode } }) {\n      cart {\n        id\n        checkoutUrl\n        buyerIdentity {\n          countryCode\n        }\n        lines(first: 50) {\n          edges {\n            node {\n              id\n              quantity\n              cost {\n                totalAmount {\n                  amount\n                  currencyCode\n                }\n              }\n              merchandise {\n                ... on ProductVariant {\n                  title\n                  product {\n                    title\n                  }\n                  id\n                  quantityAvailable\n                }\n              }\n            }\n          }\n        }\n        cost {\n          subtotalAmount {\n            amount\n            currencyCode\n          }\n          totalAmount {\n            amount\n            currencyCode\n          }\n        }\n      }\n      userErrors {\n        code\n        message\n      }\n    }\n  }\n`;export const createCartMutation=`\n  mutation createCart($lines: [CartLineInput!]!, $countryCode: CountryCode) {\n    cartCreate(input: { lines: $lines, buyerIdentity: { countryCode: $countryCode } }) {\n      cart {\n        id\n        checkoutUrl\n        buyerIdentity {\n          countryCode\n        }\n        attributes {\n          key\n          value\n        }\n        lines(first: 100) {\n          edges {\n            node {\n              id\n              quantity\n              cost {\n                totalAmount {\n                  amount\n                  currencyCode\n                }\n              }\n              merchandise {\n                ... on ProductVariant {\n                  id\n                }\n              }\n            }\n          }\n        }\n        cost {\n          subtotalAmount {\n            amount\n            currencyCode\n          }\n          totalAmount {\n            amount\n            currencyCode\n          }\n        }\n      }\n      userErrors {\n        field\n        message\n      }\n    }\n  }\n`;// export const createCartMutation = `\n//   mutation createCart($lines: [CartLineInput!]!) {\n//     cartCreate(input: lines: $lines}) {\n//       cart {\n//         id\n//         checkoutUrl\n//         attributes {\n//           key\n//           value\n//         }\n//         lines(first: 100) {\n//           edges {\n//             node {\n//               id\n//               quantity\n//               merchandise {\n//                 ... on ProductVariant {\n//                   id\n//                 }\n//               }\n//             }\n//           }\n//         }\n//       }\n//       userErrors {\n//         field\n//         message\n//       }\n//     }\n//   }\n// `\nexport const addToCartMutation=`\n  mutation cartLinesAdd($cartId: ID!, $lines: [CartLineInput!]!) {\n    cartLinesAdd(cartId: $cartId, lines: $lines) {\n      cart {\n        id\n        checkoutUrl\n        buyerIdentity {\n          countryCode\n        }\n        attributes {\n          key\n          value\n        }\n        lines(first: 100) {\n          edges {\n            node {\n              id\n              quantity\n              merchandise {\n                ... on ProductVariant {\n                  id\n                  product {\n                    id\n                    title\n                    metafields(\n                      identifiers: [\n                        { namespace: \"custom\", key: \"order_max\" }\n                      ]\n                    ) {\n                      namespace\n                      key\n                      value\n                    }\n                  }\n                  price {\n                    amount\n                    currencyCode\n                  }\n                  image {\n                    url\n                  }\n                  selectedOptions {\n                    name\n                    value\n                  }\n                }\n              }\n              cost {\n                totalAmount {\n                  amount\n                  currencyCode\n                }\n              }\n            }\n          }\n        }\n        cost {\n          totalAmount {\n            amount\n            currencyCode\n          }\n          subtotalAmount {\n            amount\n            currencyCode\n          }\n        }\n      }\n      userErrors {\n        field\n        message\n      }\n    }\n  }\n`;export const updateCartAttributes=`\n  mutation cartAttributesUpdate($cartId: ID!, $attributes: [AttributeInput!]!) {\n    cartAttributesUpdate(cartId: $cartId, attributes: $attributes) {\n      cart {\n        id\n        attributes {\n          key\n          value\n        }\n      }\n      userErrors {\n        field\n        message\n      }\n    }\n  }\n`;// mutation with the selling plans:\nexport const createCartMutationNoPlans=`\nmutation cartCreate($input: CartInput!, $countryCode: CountryCode) {\n  cartCreate(input: $input, buyerIdentity: { countryCode: $countryCode }) {\n    cart {\n      id\n      checkoutUrl\n      buyerIdentity {\n        countryCode\n      }\n      createdAt\n      note\n      attributes {\n        key\n        value\n      }\n      lines(first: 10) {\n        edges {\n          node {\n            id\n            quantity\n            attributes {\n              key\n              value\n            }\n            merchandise {\n              ... on ProductVariant {\n                id\n                title\n                price {\n                  amount\n                  currencyCode\n                }\n              }\n            }\n          }\n        }\n      }\n    }\n    userErrors {\n      field\n      message\n    }\n  }\n}\n`;export const addToCartMutationNoPlans=`\nmutation cartLinesAdd($cartId: ID!, $lines: [CartLineInput!]!, $attributes: [AttributeInput!]) {\n  cartLinesAdd(cartId: $cartId, lines: $lines) {\n    cart {\n      id\n      checkoutUrl\n      buyerIdentity {\n        countryCode\n      }\n      note\n      attributes {\n        key\n        value\n      }\n      lines(first: 10) {\n        edges {\n          node {\n            id\n            quantity\n            attributes {\n              key\n              value\n            }\n            merchandise {\n              ... on ProductVariant {\n                id\n                title\n                price {\n                  amount\n                  currencyCode\n                }\n              }\n            }\n          }\n        }\n      }\n    }\n    userErrors {\n      field\n      message\n    }\n  }\n  cartAttributesUpdate(cartId: $cartId, attributes: $attributes) {\n    cart {\n      id\n      note\n      attributes {\n        key\n        value\n      }\n    }\n    userErrors {\n      field\n      message\n    }\n  }\n}\n`;/***\n * Cart Product Card V2 Mutations\n */export const updatelineMutation=`\n  mutation cartLinesUpdate($cartId: ID!, $lines: [CartLineUpdateInput!]!) {\n    cartLinesUpdate(cartId: $cartId, lines: $lines) {\n      cart {\n        id\n        buyerIdentity {\n          countryCode\n        }\n        lines(first: 100) {\n          edges {\n            node {\n              id\n              quantity\n              merchandise {\n                ... on ProductVariant {\n                  id\n                  product {\n                    id\n                    handle\n                    title\n                  }\n                }\n              }\n            }\n          }\n        }\n      }\n    }\n  }\n`;export const removeLineMutation=`mutation cartLinesRemove($cartId: ID!, $lineIds: [ID!]!) {\n      cartLinesRemove(cartId: $cartId, lineIds: $lineIds) {\n          cart {\n              id\n              buyerIdentity {\n                countryCode\n              }\n              lines(first: 250) {\n                  edges {\n                      node {\n                          id\n                          quantity\n                          sellingPlanAllocation{ \n                              checkoutChargeAmount{\n                                  amount\n                                  currencyCode\n                                  }\n                          }\n                          cost {\n                              totalAmount {\n                                  amount\n                                  currencyCode\n                              }\n                              subtotalAmount {\n                                  amount\n                                  currencyCode\n                              }\n                          }\n                          merchandise {\n                              ... on ProductVariant {\n                                  id\n                                  title\n                                  product {\n                                      id\n                                      title\n                                  }\n                                  price {\n                                      amount\n                                      currencyCode\n                                  }\n                                  image {\n                                      url\n                                  }\n                                      selectedOptions\n                            {\n                              name\n                              value\n                            }\n                              }\n                          }\n                      }\n                  }\n              }\n          }\n          userErrors {\n              field\n              message\n          }\n      }\n  }`;export const updatelineMutationNoPlans=`mutation cartLinesUpdate($cartId: ID!, $lines: [CartLineUpdateInput!]!) {\n      cartLinesUpdate(cartId: $cartId, lines: $lines) {\n          cart {\n              id\n              buyerIdentity {\n                countryCode\n              }\n              cost {\n                  totalAmount {\n                      amount\n                      currencyCode\n                  }\n                  subtotalAmount {\n                      amount\n                      currencyCode\n                  }\n              }\n              lines(first: 250) {\n                  edges {\n                      node {\n                          id\n                          quantity\n                          cost {\n                              totalAmount {\n                                  amount\n                                  currencyCode\n                              }\n                              subtotalAmount {\n                                  amount\n                                  currencyCode\n                              }\n                          }\n                          merchandise {\n                              ... on ProductVariant {\n                                  id\n                                  title\n                                  product {\n                                      id\n                                      title\n                                  }\n                                  price {\n                                      amount\n                                      currencyCode\n                                  }\n                                  image {\n                                      url\n                                  }\n                                  selectedOptions\n                                  {\n                              name\n                              value\n                            }\n\n                              }\n                          }\n                      }\n                  }\n              }\n          }\n          userErrors {\n              field\n              message\n          }\n      }\n  }`;export const removeLineMutationNoPlans=`mutation cartLinesRemove($cartId: ID!, $lineIds: [ID!]!) {\n      cartLinesRemove(cartId: $cartId, lineIds: $lineIds) {\n          cart {\n              id\n              buyerIdentity {\n                countryCode\n              }\n              lines(first: 250) {\n                  edges {\n                      node {\n                          id\n                          quantity\n                          cost {\n                              totalAmount {\n                                  amount\n                                  currencyCode\n                              }\n                              subtotalAmount {\n                                  amount\n                                  currencyCode\n                              }\n                          }\n                          merchandise {\n                              ... on ProductVariant {\n                                  id\n                                  title\n                                  product {\n                                      id\n                                      title\n                                  }\n                                  price {\n                                      amount\n                                      currencyCode\n                                  }\n                                  image {\n                                      url\n                                  }\n                                      selectedOptions\n                            {\n                              name\n                              value\n                            }\n                              }\n                          }\n                      }\n                  }\n              }\n          }\n          userErrors {\n              field\n              message\n          }\n      }\n  }`;export const getProducts=`\n  query GetProducts($cursor: String) {\n    products(first: 250, after: $cursor) {\n      edges {\n        node {\n          id\n          title\n          vendor\n          handle\n          images(first: 20) {\n            edges {\n              node {\n                url\n                altText\n                width\n                height\n               }\n              }\n          }\n          totalInventory\n          sellingPlanGroups(first: 1) {\n            edges {\n              node {\n                name\n                options {\n                  name\n                  values\n                }\n                sellingPlans(first: 10) {\n                  edges {\n                    node {\n                      id\n                      name\n                      description\n                      recurringDeliveries\n                      priceAdjustments {\n                        orderCount\n                        adjustmentValue {\n                          __typename\n                          ... on SellingPlanPercentagePriceAdjustment {\n                            adjustmentPercentage\n                          }\n                          ... on SellingPlanFixedAmountPriceAdjustment {\n                            adjustmentAmount {\n                              amount\n                              currencyCode\n                            }\n                          }\n                          ... on SellingPlanFixedPriceAdjustment {\n                            price {\n                              amount\n                              currencyCode\n                            }\n                          }\n                        }\n                      }\n                    }\n                  }\n                }\n              }\n            }\n          }\n          options {\n            id\n            name\n            values\n          }\n          compareAtPriceRange {\n            minVariantPrice {\n              amount\n              currencyCode\n            }\n          }\n          priceRange {\n            minVariantPrice {\n              amount\n              currencyCode\n            }\n          }\n          variants(first: 250) {\n            pageInfo {\n              hasNextPage\n              hasPreviousPage\n              endCursor\n            }\n            edges {\n              node {\n                id\n                image {\n                  url\n                  altText\n                  width\n                  height\n                }\n                title\n                sku\n                availableForSale\n                requiresShipping\n                selectedOptions {\n                  name\n                  value\n                }\n                price {\n                  amount\n                  currencyCode\n                }\n                compareAtPrice {\n                  amount\n                  currencyCode\n                }\n              }\n            }\n          }\n        }\n      }\n      pageInfo {\n        hasNextPage\n        endCursor\n      }\n    }\n  }\n`;export const getProductsBackup=`\n  query GetProductsBackup($cursor: String) {\n    products(first: 250, after: $cursor) {\n      edges {\n        node {\n          id\n          title\n          vendor\n          handle\n          totalInventory\n          images(first: 20) {\n            edges {\n              node {\n                url\n                altText\n                width\n                height\n               }\n              }\n          }\n          options {\n            id\n            name\n            values\n          }\n          compareAtPriceRange {\n            minVariantPrice {\n              amount\n              currencyCode\n            }\n          }\n          priceRange {\n            minVariantPrice {\n              amount\n              currencyCode\n            }\n          }\n          variants(first: 250) {\n            pageInfo {\n              hasNextPage\n              hasPreviousPage\n              endCursor\n            }\n            edges {\n              node {\n                id\n                image {\n                  url\n                  altText\n                  width\n                  height\n                }\n                title\n                sku\n                availableForSale\n                requiresShipping\n                selectedOptions {\n                  name\n                  value\n                }\n                price {\n                  amount\n                  currencyCode\n                }\n                compareAtPrice {\n                  amount\n                  currencyCode\n                }\n              }\n            }\n          }\n        }\n      }\n      pageInfo {\n        hasNextPage\n        endCursor\n      }\n    }\n  }\n`;export const getCartQuery=`\n  query GetCart($cartId: ID!) {\n    cart(id: $cartId) {\n      id\n      createdAt\n      updatedAt\n      checkoutUrl\n      buyerIdentity {\n        countryCode\n      }\n      lines(first: 250) {\n        edges {\n          node {\n            id\n            quantity\n            sellingPlanAllocation { \n              checkoutChargeAmount {\n                amount\n                currencyCode\n              }\n              sellingPlan {\n                id\n                name\n                description\n              }\n            }\n            merchandise {\n              ... on ProductVariant {\n                id\n                title\n                image {\n                  url\n                }\n                selectedOptions {\n                  name\n                  value\n                }\n                product {\n                  title\n                  handle\n                }\n                price {\n                  amount\n                  currencyCode\n                }\n                compareAtPrice {\n                  amount\n                  currencyCode\n                }\n              }\n            }\n            attributes {\n              key\n              value\n            }\n            cost {\n              totalAmount {\n                amount\n                currencyCode\n              }\n              subtotalAmount {\n                amount\n                currencyCode\n              }\n            }\n          }\n        }\n      }\n      attributes {\n        key\n        value\n      }\n      cost {\n        totalAmount {\n          amount\n          currencyCode\n        }\n        subtotalAmount {\n          amount\n          currencyCode\n        }\n      }\n    }\n  }\n`;export const getCartQueryNoPlans=`\n  query GetCart($cartId: ID!) {\n    cart(id: $cartId) {\n      id\n      createdAt\n      updatedAt\n      checkoutUrl\n      buyerIdentity {\n        countryCode\n      }\n      lines(first: 250) {\n        edges {\n          node {\n            id\n            quantity\n            merchandise {\n              ... on ProductVariant {\n                id\n                title\n                image {\n                  url\n                }\n                selectedOptions {\n                  name\n                  value\n                }\n                product {\n                  title\n                  handle\n                }\n                price {\n                  amount\n                  currencyCode\n                }\n                compareAtPrice {\n                  amount\n                  currencyCode\n                }\n              }\n            }\n            attributes {\n              key\n              value\n            }\n            cost {\n              totalAmount {\n                amount\n                currencyCode\n              }\n              subtotalAmount {\n                amount\n                currencyCode\n              }\n            }\n          }\n        }\n      }\n      attributes {\n        key\n        value\n      }\n      cost {\n        totalAmount {\n          amount\n          currencyCode\n        }\n        subtotalAmount {\n          amount\n          currencyCode\n        }\n      }\n    }\n  }\n`;export const cartQuery=`\n  query getCart($cartId: ID!) {\n    cart(id: $cartId) {\n      id\n      checkoutUrl\n      buyerIdentity {\n        countryCode\n      }\n      attributes {\n        key\n        value\n      }\n      lines(first: 100) {\n        edges {\n          node {\n            id\n            quantity\n            attributes {\n              key\n              value\n            }\n            merchandise {\n              ... on ProductVariant {\n                id\n                product {\n                  id\n                  title\n                  metafields(\n                    identifiers: [\n                      { namespace: \"custom\", key: \"order_max\" }\n                    ]\n                  ) {\n                    namespace\n                    key\n                    value\n                  }\n                }\n                price {\n                  amount\n                  currencyCode\n                }\n                image {\n                  url\n                }\n                selectedOptions {\n                  name\n                  value\n                }\n              }\n            }\n            sellingPlanAllocation {\n              sellingPlan {\n                id\n                name\n              }\n              checkoutChargeAmount {\n                amount\n                currencyCode\n              }\n            }\n            cost {\n              totalAmount {\n                amount\n                currencyCode\n              }\n            }\n          }\n        }\n      }\n      cost {\n        totalAmount {\n          amount\n          currencyCode\n        }\n        subtotalAmount {\n          amount\n          currencyCode\n        }\n      }\n    }\n  }\n`;export const getProductMetafields=`\n  query getProductMetafields($handle: String!) {\n    product(handle: $handle) {\n      id\n      metafield_order_max: metafield(namespace: \"custom\", key: \"order_max\") {\n        value\n        type\n      }\n    }\n  }\n`;// Get available currencies from the store\nexport const getAvailableCurrencies=`\n  query getAvailableCurrencies {\n    localization {\n      availableCountries {\n        currency {\n          isoCode\n          name\n          symbol\n        }\n        isoCode\n        name\n        unitSystem\n      }\n      country {\n        currency {\n          isoCode\n          name\n          symbol\n        }\n        isoCode\n        name\n      }\n    }\n  }\n`;// Get products by country\nexport const getProductsQueryByCountry=`\n  query GetProductsByCountry ($cursor: String, $countryCode: CountryCode) @inContext(country: $countryCode) {\n    products(first: 250, after: $cursor) {\n      edges {\n        node {\n          id\n          title\n          vendor\n          handle\n          images(first: 20) {\n            edges {\n              node {\n                url\n                altText\n                width\n                height\n              }\n            }\n          }\n          sellingPlanGroups(first: 1) {\n            edges {\n              node {\n                name\n                options {\n                  name\n                  values\n                }\n                sellingPlans(first: 10) {\n                  edges {\n                    node {\n                      id\n                      name\n                      description\n                      recurringDeliveries\n                      priceAdjustments {\n                        orderCount\n                        adjustmentValue {\n                          __typename\n                          ... on SellingPlanPercentagePriceAdjustment {\n                            adjustmentPercentage\n                          }\n                          ... on SellingPlanFixedAmountPriceAdjustment {\n                            adjustmentAmount {\n                              amount\n                              currencyCode\n                            }\n                          }\n                          ... on SellingPlanFixedPriceAdjustment {\n                            price {\n                              amount\n                              currencyCode\n                            }\n                          }\n                        }\n                      }\n                    }\n                  }\n                }\n              }\n            }\n          }\n          options {\n            id\n            name\n            values\n          }\n          compareAtPriceRange {\n            minVariantPrice {\n              amount\n              currencyCode\n            }\n          }\n          priceRange {\n            minVariantPrice {\n              amount\n              currencyCode\n            }\n          }\n          variants(first: 250) {\n            pageInfo {\n              hasNextPage\n              hasPreviousPage\n              endCursor\n            }\n            edges {\n              node {\n                id\n                image {\n                  url\n                  altText\n                  width\n                  height\n                }\n                title\n                sku\n                quantityAvailable\n                availableForSale\n                requiresShipping\n                selectedOptions {\n                  name\n                  value\n                }\n                price {\n                  amount\n                  currencyCode\n                }\n                compareAtPrice {\n                  amount\n                  currencyCode\n                }\n              }\n            }\n          }\n        }\n      }\n      pageInfo {\n        hasNextPage\n        endCursor\n      }\n    }\n  }\n`;export const updateCartCurrency=`\n  mutation updateCartCurrency($cartId: ID!, $countryCode: CountryCode) {\n    cartBuyerIdentityUpdate(cartId: $cartId, buyerIdentity: { countryCode: $countryCode }) {\n      cart {\n        id\n        buyerIdentity {\n          countryCode\n        }\n        cost {\n          totalAmount {\n            amount\n            currencyCode\n          }\n        }\n      }\n    }\n  }\n`;\nexport const __FramerMetadata__ = {\"exports\":{\"updateCartAttributes\":{\"type\":\"variable\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"getProducts\":{\"type\":\"variable\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"getCartQueryNoPlans\":{\"type\":\"variable\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"updatelineMutationNoPlans\":{\"type\":\"variable\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"addToCartMutationNoPlans\":{\"type\":\"variable\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"removeLineMutationNoPlans\":{\"type\":\"variable\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"getAvailableCurrencies\":{\"type\":\"variable\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"cartQuery\":{\"type\":\"variable\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"getProductsBackup\":{\"type\":\"variable\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"getProductMetafields\":{\"type\":\"variable\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"updateCartCurrency\":{\"type\":\"variable\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"getCartQuery\":{\"type\":\"variable\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"getProductsQueryByCountry\":{\"type\":\"variable\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"addToCartMutation\":{\"type\":\"variable\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"createCartMutationWithAttributes\":{\"type\":\"variable\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"updatelineMutation\":{\"type\":\"variable\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"createCartMutationNoPlans\":{\"type\":\"variable\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"createCartMutation\":{\"type\":\"variable\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"removeLineMutation\":{\"type\":\"variable\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"__FramerMetadata__\":{\"type\":\"variable\"}}}\n//# sourceMappingURL=./mutations_v2.map","/*\n * Framer Commerce\n * Confidential and Proprietary - All Rights Reserved\n */// Utility function to clean Shopify GID to just the numeric ID\nconst cleanShopifyId=gid=>gid?.split(\"/\").pop()||\"\";/**\n * Check if marketing consent is granted\n * Uses the global FCConsentManager if available\n */const checkMarketingConsent=()=>{if(typeof window!==\"undefined\"&&window.FCConsentManager){const consent=window.FCConsentManager.getConsent();// Check marketing consent from the consent manager\nreturn consent.marketing===true;}// No FCConsentManager = allow tracking (Framer's approach)\n// Pass the GDPR compliance decision to the project owner\nreturn true;};// Standardized Facebook Pixel AddToCart tracking function\nexport const trackFacebookPixelAddToCart=data=>{// Check consent before tracking\nif(!checkMarketingConsent()){// Silently skip tracking - no consent\nreturn;}if(typeof fbq!==\"function\"){console.warn(\"Facebook Pixel not available\");return;}const{variant,product,quantity=1,currency=\"USD\"}=data;if(!variant||!product){console.warn(\"Missing variant or product data for Facebook Pixel tracking\");return;}const item_id=cleanShopifyId(variant.id);const item_name=product.title||\"\";const item_variant=variant.title||\"\";const price=parseFloat(variant.price?.amount||\"0\");const value=price*quantity;const finalCurrency=variant.price?.currencyCode||currency;// Validate required data\nif(!item_id||!item_name||price<=0){console.warn(\"❌ Skipping Facebook Pixel AddToCart: missing required data\",{item_id,item_name,price,value});return;}const fbqData={content_type:\"product\",content_ids:[item_id],content_name:item_name,content_category:product.productType||\"\",content_brand:product.vendor||\"\",value:parseFloat(value.toFixed(2)),currency:finalCurrency,contents:[{id:item_id,price:parseFloat(price.toFixed(2)),quantity:parseInt(quantity.toString())}]};// console.log('[Facebook Pixel] Firing AddToCart', item_id, item_name);\n// console.log('[Facebook Pixel] AddToCart with data:', fbqData);\n// console.log('[Facebook Pixel] AddToCart timestamp:', new Date().toISOString());\nfbq(\"track\",\"AddToCart\",fbqData,{eventID:\"addtocart_\"+Date.now()});};// Standardized Facebook Pixel InitiateCheckout tracking function\nexport const trackFacebookPixelInitiateCheckout=data=>{// Check consent before tracking\nif(!checkMarketingConsent()){// Silently skip tracking - no consent\nreturn;}if(typeof fbq!==\"function\"){console.warn(\"Facebook Pixel not available\");return;}const{variant,product,quantity=1,currency=\"USD\",value:providedValue,content_ids:providedContentIds,content_name:providedContentName,num_items:providedNumItems}=data;let fbqData={content_type:\"product\",currency:currency};// If we have variant and product data, calculate from them\nif(variant&&product){const item_id=cleanShopifyId(variant.id);const item_name=product.title||\"\";const price=parseFloat(variant.price?.amount||\"0\");const calculatedValue=price*quantity;const finalCurrency=variant.price?.currencyCode||currency;// Validate required data\nif(!item_id||!item_name||price<=0){console.warn(\"❌ Skipping Facebook Pixel InitiateCheckout: missing required data\",{item_id,item_name,price,calculatedValue});return;}fbqData={content_type:\"product\",content_ids:[item_id],content_name:item_name,content_category:product.productType||\"\",content_brand:product.vendor||\"\",value:parseFloat(calculatedValue.toFixed(2)),currency:finalCurrency,num_items:parseInt(quantity.toString())};}else if(providedContentIds&&providedValue!==undefined){// Ensure providedValue is a valid number\nconst numericValue=typeof providedValue===\"number\"?providedValue:parseFloat(providedValue)||0;fbqData={content_type:\"product\",content_ids:providedContentIds,content_name:providedContentName||\"Checkout\",value:parseFloat(numericValue.toFixed(2)),currency:currency,num_items:parseInt((providedNumItems||1).toString())};}else{console.warn(\"❌ Skipping Facebook Pixel InitiateCheckout: insufficient data\",data);return;}// console.log('[Facebook Pixel] Firing InitiateCheckout', fbqData.content_ids?.[0], fbqData.content_name);\n// console.log('[Facebook Pixel] InitiateCheckout with data:', fbqData);\n// console.log('[Facebook Pixel] InitiateCheckout timestamp:', new Date().toISOString());\n// Use sendBeacon if requested, otherwise use regular tracking\nconst eventOptions={eventID:\"initiatecheckout_\"+Date.now()};if(data.useBeacon){fbq(\"track\",\"InitiateCheckout\",fbqData,{...eventOptions,transport:\"beacon\"});}else{fbq(\"track\",\"InitiateCheckout\",fbqData,eventOptions);}};// Standardized Facebook Pixel RemoveFromCart tracking function\nexport const trackFacebookPixelRemoveFromCart=data=>{// Check consent before tracking\nif(!checkMarketingConsent()){// Silently skip tracking - no consent\nreturn;}if(typeof fbq!==\"function\"){console.warn(\"Facebook Pixel not available\");return;}const{lineItem,currency=\"USD\"}=data;if(!lineItem){console.warn(\"Missing lineItem data for Facebook Pixel RemoveFromCart tracking\");return;}const item_id=cleanShopifyId(lineItem.merchandise.id);const item_name=lineItem.merchandise.product?.title||\"\";const item_variant=lineItem.merchandise.title||\"\";const price=parseFloat(lineItem.cost.subtotalAmount.amount||\"0\");const quantity=lineItem.quantity||1;const value=price*quantity;const finalCurrency=lineItem.cost.subtotalAmount.currencyCode||currency;// Validate required data\nif(!item_id||!item_name||price<=0){console.warn(\"❌ Skipping Facebook Pixel RemoveFromCart: missing required data\",{item_id,item_name,price,value,quantity});return;}const fbqData={content_type:\"product\",content_ids:[item_id],content_name:item_name,content_category:lineItem.merchandise.product?.productType||\"\",content_brand:lineItem.merchandise.product?.vendor||\"\",value:parseFloat(value.toFixed(2)),currency:finalCurrency,contents:[{id:item_id,price:parseFloat(price.toFixed(2)),quantity:parseInt(quantity.toString())}]};// console.log('[Facebook Pixel] Firing RemoveFromCart with data:', fbqData);\nfbq(\"track\",\"RemoveFromCart\",fbqData,{eventID:\"removefromcart_\"+Date.now()});};// Standardized Facebook Pixel ViewContent tracking function\nexport const trackFacebookPixelViewContent=data=>{// Check consent before tracking\nif(!checkMarketingConsent()){// Silently skip tracking - no consent\nreturn;}if(typeof fbq!==\"function\"){console.warn(\"Facebook Pixel not available\");return;}const{variant,product,currency=\"USD\"}=data;if(!product){console.warn(\"Missing product data for Facebook Pixel ViewContent tracking\");return;}const item_id=variant?cleanShopifyId(variant.id):cleanShopifyId(product.id);const item_name=product.title||\"\";const item_variant=variant?.title||\"\";const price=variant?parseFloat(variant.price?.amount||\"0\"):parseFloat(product.priceRange?.minVariantPrice?.amount||\"0\");const finalCurrency=variant?.price?.currencyCode||product.priceRange?.minVariantPrice?.currencyCode||currency;// Validate required data\nif(!item_id||!item_name||price<=0){console.warn(\"❌ Skipping Facebook Pixel ViewContent: missing required data\",{item_id,item_name,price});return;}const fbqData={content_type:\"product\",content_ids:[item_id],content_name:item_name,content_category:product.productType||\"\",content_brand:product.vendor||\"\",value:parseFloat(price.toFixed(2)),currency:finalCurrency};// console.log('[Facebook Pixel] Firing ViewContent with data:', fbqData);\nfbq(\"track\",\"ViewContent\",fbqData,{eventID:\"viewcontent_\"+Date.now()});};export default function initializeFacebookPixel(facebookPixelId){!function(f,b,e,v,n,t,s){if(f.fbq)return;n=f.fbq=function(){n.callMethod?n.callMethod.apply(n,arguments):n.queue.push(arguments);};if(!f._fbq)f._fbq=n;n.push=n;n.loaded=!0;n.version=\"2.0\";n.queue=[];t=b.createElement(e);t.async=!0;t.src=v;// Add onload and onerror event handlers\nt.onload=()=>{if(typeof fbq!==\"undefined\"){fbq(\"init\",facebookPixelId);fbq(\"track\",\"PageView\");}else{// Handle case where fbq is not defined\n}};t.onerror=()=>{// Handle Facebook Pixel script load failure\n};s=b.getElementsByTagName(e)[0];s.parentNode.insertBefore(t,s);}(window,document,\"script\",\"https://connect.facebook.net/en_US/fbevents.js\");}\nexport const __FramerMetadata__ = {\"exports\":{\"trackFacebookPixelRemoveFromCart\":{\"type\":\"variable\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"trackFacebookPixelAddToCart\":{\"type\":\"variable\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"trackFacebookPixelViewContent\":{\"type\":\"variable\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"default\":{\"type\":\"function\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"trackFacebookPixelInitiateCheckout\":{\"type\":\"variable\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"__FramerMetadata__\":{\"type\":\"variable\"}}}\n//# sourceMappingURL=./Fb_pixel.map","// Declare the utmParams property on the global window object\n// Cookie utility functions\nfunction setCookie(name,value,days=30){const date=new Date;date.setTime(date.getTime()+days*24*60*60*1e3);const expires=`expires=${date.toUTCString()}`;// Remove SameSite=Lax and add secure flag if on HTTPS\nconst secure=window.location.protocol===\"https:\"?\";secure\":\"\";document.cookie=`${name}=${value};${expires};path=/${secure}`;}function getCookie(name){const nameEQ=`${name}=`;const ca=document.cookie.split(\";\");for(let i=0;i<ca.length;i++){let c=ca[i];while(c.charAt(0)===\" \")c=c.substring(1);if(c.indexOf(nameEQ)===0)return c.substring(nameEQ.length,c.length);}return null;}function deleteCookie(name){setCookie(name,\"\",-1);}export function getUTMParameters(){const urlParams=new URLSearchParams(window.location.search);const utmParams={};const utmKeys=[\"utm_source\",\"utm_medium\",\"utm_campaign\",\"utm_term\",\"utm_content\"];utmKeys.forEach(key=>{const value=urlParams.get(key);if(value){utmParams[key]=value;}});// Store UTM params in cookies if we have any\nif(Object.keys(utmParams).length>0){try{// Store each UTM parameter as a separate cookie\nObject.entries(utmParams).forEach(([key,value])=>{setCookie(key,value);});// Also store as a single JSON object for Shopify\nsetCookie(\"_shopify_utm\",JSON.stringify(utmParams));window.utmParams=utmParams;}catch(error){console.error(\"Error storing UTM parameters:\",error);}}return utmParams;}export function getSCARefParameters(){const urlParams=new URLSearchParams(window.location.search);const scaRefParams={};const scaRefKeys=[\"sca_ref\",\"sca_source\",\"sca_medium\",\"sca_campaign\",\"sca_term\",\"sca_content\"];scaRefKeys.forEach(key=>{const value=urlParams.get(key);if(value){scaRefParams[key]=value;}});// Store SCA ref params in cookies if we have any\nif(Object.keys(scaRefParams).length>0){try{// Store each SCA ref parameter as a separate cookie\nObject.entries(scaRefParams).forEach(([key,value])=>{setCookie(key,value);});// Also store as a single JSON object for Shopify\nsetCookie(\"_shopify_sca_ref\",JSON.stringify(scaRefParams));window.scaRefParams=scaRefParams;}catch(error){console.error(\"Error storing SCA ref parameters:\",error);}}return scaRefParams;}export function getStoredUTMParameters(){// First try to get from window object (for current session)\nif(window.utmParams&&Object.keys(window.utmParams).length>0){return window.utmParams;}// Then try to get from cookies\ntry{// First try to get from Shopify's format\nconst shopifyUtm=getCookie(\"_shopify_utm\");if(shopifyUtm){try{const parsedParams=JSON.parse(shopifyUtm);window.utmParams=parsedParams;return parsedParams;}catch(e){console.error(\"Error parsing Shopify UTM params:\",e);}}// Fallback to individual cookies\nconst utmParams={};const utmKeys=[\"utm_source\",\"utm_medium\",\"utm_campaign\",\"utm_term\",\"utm_content\"];utmKeys.forEach(key=>{const value=getCookie(key);if(value){utmParams[key]=value;}});if(Object.keys(utmParams).length>0){// Also set on window for easy access\nwindow.utmParams=utmParams;return utmParams;}}catch(error){console.error(\"Error retrieving stored UTM parameters:\",error);}return{};}export function getStoredSCARefParameters(){// First try to get from window object (for current session)\nif(window.scaRefParams&&Object.keys(window.scaRefParams).length>0){return window.scaRefParams;}// Then try to get from cookies\ntry{// First try to get from Shopify's format\nconst shopifyScaRef=getCookie(\"_shopify_sca_ref\");if(shopifyScaRef){try{const parsedParams=JSON.parse(shopifyScaRef);window.scaRefParams=parsedParams;return parsedParams;}catch(e){console.error(\"Error parsing Shopify SCA ref params:\",e);}}// Fallback to individual cookies\nconst scaRefParams={};const scaRefKeys=[\"sca_ref\",\"sca_source\",\"sca_medium\",\"sca_campaign\",\"sca_term\",\"sca_content\"];scaRefKeys.forEach(key=>{const value=getCookie(key);if(value){scaRefParams[key]=value;}});if(Object.keys(scaRefParams).length>0){// Also set on window for easy access\nwindow.scaRefParams=scaRefParams;return scaRefParams;}}catch(error){console.error(\"Error retrieving stored SCA ref parameters:\",error);}return{};}export function appendUTMParamsToUrl(checkoutUrl){if(!checkoutUrl)return checkoutUrl;// Get UTM params from cookies instead of current URL\nconst utmParams=getStoredUTMParameters();// If no stored UTM params, check current URL as fallback\nif(Object.keys(utmParams).length===0){getUTMParameters()// This will store them if present\n;}// Get the (potentially) updated UTM params\nconst finalUtmParams=getStoredUTMParameters();if(Object.keys(finalUtmParams).length>0){try{const url=new URL(checkoutUrl);// Add UTM parameters to the URL\nObject.keys(finalUtmParams).forEach(key=>{// Only append if the parameter doesn't already exist in the URL\nif(!url.searchParams.has(key)){url.searchParams.append(key,finalUtmParams[key]);}});const finalUrl=url.toString();return finalUrl;}catch(error){console.error(\"Error appending UTM params to URL:\",error);return checkoutUrl;}}return checkoutUrl;}export function appendSCARefParamsToUrl(checkoutUrl){if(!checkoutUrl)return checkoutUrl;// Get SCA ref params from cookies instead of current URL\nconst scaRefParams=getStoredSCARefParameters();// If no stored SCA ref params, check current URL as fallback\nif(Object.keys(scaRefParams).length===0){getSCARefParameters()// This will store them if present\n;}// Get the (potentially) updated SCA ref params\nconst finalScaRefParams=getStoredSCARefParameters();if(Object.keys(finalScaRefParams).length>0){try{const url=new URL(checkoutUrl);// Add SCA ref parameters to the URL\nObject.keys(finalScaRefParams).forEach(key=>{// Only append if the parameter doesn't already exist in the URL\nif(!url.searchParams.has(key)){url.searchParams.append(key,finalScaRefParams[key]);}});const finalUrl=url.toString();return finalUrl;}catch(error){console.error(\"Error appending SCA ref params to URL:\",error);return checkoutUrl;}}return checkoutUrl;}/**\n * Validate discount code format\n * Allows alphanumeric characters, hyphens, and underscores\n * Maximum length: 50 characters\n */function validateDiscountCode(code){if(!code||typeof code!==\"string\")return false;// Check length (max 50 characters)\nif(code.length>50)return false;// Check character set: alphanumeric, hyphens, underscores\nconst validPattern=/^[a-zA-Z0-9_-]+$/;return validPattern.test(code);}/**\n * Get discount code from URL and store in session storage\n */export function getDiscountCode(){if(typeof window===\"undefined\"||typeof sessionStorage===\"undefined\"){return null;}try{const urlParams=new URLSearchParams(window.location.search);const discountCode=urlParams.get(\"discount\");if(discountCode){// Validate the discount code\nif(validateDiscountCode(discountCode)){// Store in session storage\nsessionStorage.setItem(\"fc_discount_code\",discountCode);return discountCode;}else{console.warn(\"Invalid discount code format. Only alphanumeric characters, hyphens, and underscores are allowed. Max length: 50 characters.\");return null;}}return null;}catch(error){console.error(\"Error parsing discount code from URL:\",error);return null;}}/**\n * Get stored discount code from session storage\n */export function getStoredDiscountCode(){if(typeof window===\"undefined\"||typeof sessionStorage===\"undefined\"){return null;}try{const storedCode=sessionStorage.getItem(\"fc_discount_code\");// Validate stored code before returning\nif(storedCode&&validateDiscountCode(storedCode)){return storedCode;}// If invalid, remove it\nif(storedCode){sessionStorage.removeItem(\"fc_discount_code\");}return null;}catch(error){console.error(\"Error retrieving stored discount code:\",error);return null;}}/**\n * Append discount code to checkout URL\n */export function appendDiscountCodeToUrl(checkoutUrl){if(!checkoutUrl)return checkoutUrl;const discountCode=getStoredDiscountCode();if(discountCode){try{const url=new URL(checkoutUrl);// Only append if the discount parameter doesn't already exist in the URL\nif(!url.searchParams.has(\"discount\")){url.searchParams.append(\"discount\",discountCode);}const finalUrl=url.toString();return finalUrl;}catch(error){console.error(\"Error appending discount code to URL:\",error);return checkoutUrl;}}return checkoutUrl;}export function appendAllTrackingParamsToUrl(checkoutUrl){if(!checkoutUrl)return checkoutUrl;let finalUrl=checkoutUrl;// Append UTM parameters\nfinalUrl=appendUTMParamsToUrl(finalUrl);// Append SCA ref parameters\nfinalUrl=appendSCARefParamsToUrl(finalUrl);// Append discount code\nfinalUrl=appendDiscountCodeToUrl(finalUrl);return finalUrl;}// Initialize UTM and SCA ref parameters tracking when this module loads\nif(typeof window!==\"undefined\"){// Add a listener for when the DOM is fully loaded\nif(document.readyState===\"complete\"){getUTMParameters()// Document already loaded, capture UTMs now\n;getSCARefParameters()// Document already loaded, capture SCA refs now\n;getDiscountCode()// Document already loaded, capture discount code now\n;}else{window.addEventListener(\"load\",()=>{getUTMParameters();getSCARefParameters();getDiscountCode();});}}\nexport const __FramerMetadata__ = {\"exports\":{\"getSCARefParameters\":{\"type\":\"function\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"getDiscountCode\":{\"type\":\"function\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"appendDiscountCodeToUrl\":{\"type\":\"function\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"getStoredUTMParameters\":{\"type\":\"function\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"appendSCARefParamsToUrl\":{\"type\":\"function\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"getUTMParameters\":{\"type\":\"function\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"getStoredSCARefParameters\":{\"type\":\"function\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"appendUTMParamsToUrl\":{\"type\":\"function\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"appendAllTrackingParamsToUrl\":{\"type\":\"function\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"getStoredDiscountCode\":{\"type\":\"function\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"__FramerMetadata__\":{\"type\":\"variable\"}}}\n//# sourceMappingURL=./utmParams.map","import{jsx as _jsx}from\"react/jsx-runtime\";import{addPropertyControls,ControlType,RenderTarget}from\"framer\";import{useEffect,useRef}from\"react\";/**\n * @framerSupportedLayoutWidth auto\n * @framerSupportedLayoutHeight auto\n *\n * @framerDisableUnlink\n */export default function AvoidLayoutJumping({direction,style}){const isCanvas=RenderTarget.current()===RenderTarget.canvas;const ref=useRef(null);const rafId=useRef();const vertical=direction===\"vertical\"||direction===\"both\";const horizontal=direction===\"horizontal\"||direction===\"both\";useEffect(()=>{if(isCanvas)return;const parent=ref.current?.parentElement?.parentElement;if(!parent)return;const container=parent.parentElement;if(!container)return;const updateSize=()=>{const rect=parent.getBoundingClientRect();if(horizontal){container.style.width=`${rect.width}px`;}if(vertical){container.style.height=`${rect.height}px`;}rafId.current=requestAnimationFrame(updateSize);};// Start the RAF loop\nrafId.current=requestAnimationFrame(updateSize);return()=>{if(rafId.current){cancelAnimationFrame(rafId.current);}if(container){if(horizontal){container.style.width=\"\";}if(vertical){container.style.height=\"\";}}};},[direction]);return /*#__PURE__*/_jsx(\"div\",{ref:ref,style:{...style}});}AvoidLayoutJumping.displayName=\"Layout Jump Preventer\";addPropertyControls(AvoidLayoutJumping,{direction:{type:ControlType.Enum,defaultValue:\"vertical\",options:[\"vertical\",\"horizontal\",\"both\"],optionTitles:[\"Vertical\",\"Horizontal\",\"Both\"],displaySegmentedControl:true,segmentedControlDirection:\"vertical\",// @ts-ignore\noptionIcons:[\"direction-vertical\",\"direction-horizontal\",\"direction-all\"],description:\"More components at [Framer University](https://frameruni.link/cc).\"}});\nexport const __FramerMetadata__ = {\"exports\":{\"default\":{\"type\":\"reactComponent\",\"name\":\"AvoidLayoutJumping\",\"slots\":[],\"annotations\":{\"framerContractVersion\":\"1\",\"framerDisableUnlink\":\"\",\"framerSupportedLayoutWidth\":\"auto\",\"framerSupportedLayoutHeight\":\"auto\"}},\"__FramerMetadata__\":{\"type\":\"variable\"}}}\n//# sourceMappingURL=./AvoidLayoutJumping_Prod.map"],"mappings":"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"}