{"version":3,"file":"default-utils.js@_0.45.GX-ARIVA.mjs","names":["useMemo"],"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/VTUDdizacRHpwbkOamr7/AykinQJbgwl92LvMGZwu/constants.js","https:/framerusercontent.com/modules/D4TWeLfcxT6Tysr2BlYg/iZjmqdxVx1EOiM3k1FaW/useOnNavigationTargetChange.js","https:/framerusercontent.com/modules/ExNgrA7EJTKUPpH6vIlN/eiOrSJ2Ab5M9jPCvVwUz/useConstant.js","https:/framerusercontent.com/modules/D2Lz5CmnNVPZFFiZXalt/QaCzPbriZBfXWZIIycFI/colorFromToken.js","https:/framerusercontent.com/modules/3mKFSGQqKHV82uOV1eBc/5fbRLvOpxZC0JOXugvwm/isMotionValue.js","https:/framerusercontent.com/modules/xDiQsqBGXzmMsv7AlEVy/uhunpMiNsbXxzjlXsg1y/useUniqueClassName.js","https:/framerusercontent.com/modules/ETACN5BJyFTSo0VVDJfu/NHRqowOiXkF9UwOzczF7/variantUtils.js","https:/framerusercontent.com/modules/eMBrwoqQK7h6mEeGQUH8/GuplvPJVjmxpk9zqOTcb/isBrowser.js","https:/framerusercontent.com/modules/v9AWX2URmiYsHf7GbctE/XxKAZ9KlhWqf5x1JMyyF/useOnChange.js","https:/framerusercontent.com/modules/kNDwabfjDEb3vUxkQlZS/fSIr3AOAYbGlfSPgXpYu/useAutoMotionValue.js","https:/framerusercontent.com/modules/cuQH4dmpDnV8YK1mSgQX/KqRXqunFjE6ufhpc7ZRu/useFontControls.js","https:/framerusercontent.com/modules/afBE9Yx1W6bY5q32qPxe/m3q7puE2tbo1S2C0s0CT/useRenderTarget.js","https:/framerusercontent.com/modules/zGkoP8tPDCkoBzMdt5uq/0zFSjxIYliHxrQQnryFX/useControlledState.js","https:/framerusercontent.com/modules/5SM58HxZHxjjv7aLMOgQ/WXz9i6mVki0bBCrKdqB3/propUtils.js","https:/framerusercontent.com/modules/G4IfyjvwmaeSBpdb4TWu/OIjZRBmWDcIE2B6qgG1j/index.js","https:/framer.com/m/framer/default-utils.js@^0.45.0"],"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 { ControlType } from \"framer\";\nexport const fontStack = `\"Inter\", system-ui, -apple-system, BlinkMacSystemFont, \"Segoe UI\", Roboto, Helvetica, Arial, sans-serif, \"Apple Color Emoji\", \"Segoe UI Emoji\", \"Segoe UI Symbol\"`;\nexport const containerStyles = {\n    position: \"relative\",\n    width: \"100%\",\n    height: \"100%\",\n    display: \"flex\",\n    justifyContent: \"center\",\n    alignItems: \"center\"\n};\nexport const emptyStateStyle = {\n    ...containerStyles,\n    borderRadius: 6,\n    background: \"rgba(136, 85, 255, 0.3)\",\n    color: \"#85F\",\n    border: \"1px dashed #85F\",\n    flexDirection: \"column\"\n};\nexport const defaultEvents = {\n    onClick: {\n        type: ControlType.EventHandler\n    },\n    onMouseEnter: {\n        type: ControlType.EventHandler\n    },\n    onMouseLeave: {\n        type: ControlType.EventHandler\n    }\n};\nexport const fontSizeOptions = {\n    type: ControlType.Number,\n    title: \"Font Size\",\n    min: 2,\n    max: 200,\n    step: 1,\n    displayStepper: true\n};\nexport const fontControls = {\n    font: {\n        type: ControlType.Boolean,\n        title: \"Font\",\n        defaultValue: false,\n        disabledTitle: \"Default\",\n        enabledTitle: \"Custom\"\n    },\n    fontFamily: {\n        type: ControlType.String,\n        title: \"Family\",\n        placeholder: \"Inter\",\n        hidden: ({ font  })=>!font\n    },\n    fontWeight: {\n        type: ControlType.Enum,\n        title: \"Weight\",\n        options: [\n            100,\n            200,\n            300,\n            400,\n            500,\n            600,\n            700,\n            800,\n            900\n        ],\n        optionTitles: [\n            \"Thin\",\n            \"Extra-light\",\n            \"Light\",\n            \"Regular\",\n            \"Medium\",\n            \"Semi-bold\",\n            \"Bold\",\n            \"Extra-bold\",\n            \"Black\", \n        ],\n        hidden: ({ font  })=>!font\n    }\n};\n// @TODO check if we're missing anything here — there doesn't seem to be a reliable browser API for this\nexport const localeOptions = {\n    af: \"Afrikaans\",\n    sq: \"Albanian\",\n    an: \"Aragonese\",\n    ar: \"Arabic (Standard)\",\n    \"ar-dz\": \"Arabic (Algeria)\",\n    \"ar-bh\": \"Arabic (Bahrain)\",\n    \"ar-eg\": \"Arabic (Egypt)\",\n    \"ar-iq\": \"Arabic (Iraq)\",\n    \"ar-jo\": \"Arabic (Jordan)\",\n    \"ar-kw\": \"Arabic (Kuwait)\",\n    \"ar-lb\": \"Arabic (Lebanon)\",\n    \"ar-ly\": \"Arabic (Libya)\",\n    \"ar-ma\": \"Arabic (Morocco)\",\n    \"ar-om\": \"Arabic (Oman)\",\n    \"ar-qa\": \"Arabic (Qatar)\",\n    \"ar-sa\": \"Arabic (Saudi Arabia)\",\n    \"ar-sy\": \"Arabic (Syria)\",\n    \"ar-tn\": \"Arabic (Tunisia)\",\n    \"ar-ae\": \"Arabic (U.A.E.)\",\n    \"ar-ye\": \"Arabic (Yemen)\",\n    hy: \"Armenian\",\n    as: \"Assamese\",\n    ast: \"Asturian\",\n    az: \"Azerbaijani\",\n    eu: \"Basque\",\n    bg: \"Bulgarian\",\n    be: \"Belarusian\",\n    bn: \"Bengali\",\n    bs: \"Bosnian\",\n    br: \"Breton\",\n    my: \"Burmese\",\n    ca: \"Catalan\",\n    ch: \"Chamorro\",\n    ce: \"Chechen\",\n    zh: \"Chinese\",\n    \"zh-hk\": \"Chinese (Hong Kong)\",\n    \"zh-cn\": \"Chinese (PRC)\",\n    \"zh-sg\": \"Chinese (Singapore)\",\n    \"zh-tw\": \"Chinese (Taiwan)\",\n    cv: \"Chuvash\",\n    co: \"Corsican\",\n    cr: \"Cree\",\n    hr: \"Croatian\",\n    cs: \"Czech\",\n    da: \"Danish\",\n    nl: \"Dutch (Standard)\",\n    \"nl-be\": \"Dutch (Belgian)\",\n    en: \"English\",\n    \"en-au\": \"English (Australia)\",\n    \"en-bz\": \"English (Belize)\",\n    \"en-ca\": \"English (Canada)\",\n    \"en-ie\": \"English (Ireland)\",\n    \"en-jm\": \"English (Jamaica)\",\n    \"en-nz\": \"English (New Zealand)\",\n    \"en-ph\": \"English (Philippines)\",\n    \"en-za\": \"English (South Africa)\",\n    \"en-tt\": \"English (Trinidad & Tobago)\",\n    \"en-gb\": \"English (United Kingdom)\",\n    \"en-us\": \"English (United States)\",\n    \"en-zw\": \"English (Zimbabwe)\",\n    eo: \"Esperanto\",\n    et: \"Estonian\",\n    fo: \"Faeroese\",\n    fa: \"Farsi\",\n    fj: \"Fijian\",\n    fi: \"Finnish\",\n    fr: \"French (Standard)\",\n    \"fr-be\": \"French (Belgium)\",\n    \"fr-ca\": \"French (Canada)\",\n    \"fr-fr\": \"French (France)\",\n    \"fr-lu\": \"French (Luxembourg)\",\n    \"fr-mc\": \"French (Monaco)\",\n    \"fr-ch\": \"French (Switzerland)\",\n    fy: \"Frisian\",\n    fur: \"Friulian\",\n    gd: \"Gaelic (Scots)\",\n    \"gd-ie\": \"Gaelic (Irish)\",\n    gl: \"Galacian\",\n    ka: \"Georgian\",\n    de: \"German (Standard)\",\n    \"de-at\": \"German (Austria)\",\n    \"de-de\": \"German (Germany)\",\n    \"de-li\": \"German (Liechtenstein)\",\n    \"de-lu\": \"German (Luxembourg)\",\n    \"de-ch\": \"German (Switzerland)\",\n    el: \"Greek\",\n    gu: \"Gujurati\",\n    ht: \"Haitian\",\n    he: \"Hebrew\",\n    hi: \"Hindi\",\n    hu: \"Hungarian\",\n    is: \"Icelandic\",\n    id: \"Indonesian\",\n    iu: \"Inuktitut\",\n    ga: \"Irish\",\n    it: \"Italian (Standard)\",\n    \"it-ch\": \"Italian (Switzerland)\",\n    ja: \"Japanese\",\n    kn: \"Kannada\",\n    ks: \"Kashmiri\",\n    kk: \"Kazakh\",\n    km: \"Khmer\",\n    ky: \"Kirghiz\",\n    tlh: \"Klingon\",\n    ko: \"Korean\",\n    \"ko-kp\": \"Korean (North Korea)\",\n    \"ko-kr\": \"Korean (South Korea)\",\n    la: \"Latin\",\n    lv: \"Latvian\",\n    lt: \"Lithuanian\",\n    lb: \"Luxembourgish\",\n    mk: \"FYRO Macedonian\",\n    ms: \"Malay\",\n    ml: \"Malayalam\",\n    mt: \"Maltese\",\n    mi: \"Maori\",\n    mr: \"Marathi\",\n    mo: \"Moldavian\",\n    nv: \"Navajo\",\n    ng: \"Ndonga\",\n    ne: \"Nepali\",\n    no: \"Norwegian\",\n    nb: \"Norwegian (Bokmal)\",\n    nn: \"Norwegian (Nynorsk)\",\n    oc: \"Occitan\",\n    or: \"Oriya\",\n    om: \"Oromo\",\n    \"fa-ir\": \"Persian/Iran\",\n    pl: \"Polish\",\n    pt: \"Portuguese\",\n    \"pt-br\": \"Portuguese (Brazil)\",\n    pa: \"Punjabi\",\n    \"pa-in\": \"Punjabi (India)\",\n    \"pa-pk\": \"Punjabi (Pakistan)\",\n    qu: \"Quechua\",\n    rm: \"Rhaeto-Romanic\",\n    ro: \"Romanian\",\n    \"ro-mo\": \"Romanian (Moldavia)\",\n    ru: \"Russian\",\n    \"ru-mo\": \"Russian (Moldavia)\",\n    sz: \"Sami (Lappish)\",\n    sg: \"Sango\",\n    sa: \"Sanskrit\",\n    sc: \"Sardinian\",\n    sd: \"Sindhi\",\n    si: \"Singhalese\",\n    sr: \"Serbian\",\n    sk: \"Slovak\",\n    sl: \"Slovenian\",\n    so: \"Somani\",\n    sb: \"Sorbian\",\n    es: \"Spanish\",\n    \"es-ar\": \"Spanish (Argentina)\",\n    \"es-bo\": \"Spanish (Bolivia)\",\n    \"es-cl\": \"Spanish (Chile)\",\n    \"es-co\": \"Spanish (Colombia)\",\n    \"es-cr\": \"Spanish (Costa Rica)\",\n    \"es-do\": \"Spanish (Dominican Republic)\",\n    \"es-ec\": \"Spanish (Ecuador)\",\n    \"es-sv\": \"Spanish (El Salvador)\",\n    \"es-gt\": \"Spanish (Guatemala)\",\n    \"es-hn\": \"Spanish (Honduras)\",\n    \"es-mx\": \"Spanish (Mexico)\",\n    \"es-ni\": \"Spanish (Nicaragua)\",\n    \"es-pa\": \"Spanish (Panama)\",\n    \"es-py\": \"Spanish (Paraguay)\",\n    \"es-pe\": \"Spanish (Peru)\",\n    \"es-pr\": \"Spanish (Puerto Rico)\",\n    \"es-es\": \"Spanish (Spain)\",\n    \"es-uy\": \"Spanish (Uruguay)\",\n    \"es-ve\": \"Spanish (Venezuela)\",\n    sx: \"Sutu\",\n    sw: \"Swahili\",\n    sv: \"Swedish\",\n    \"sv-fi\": \"Swedish (Finland)\",\n    \"sv-sv\": \"Swedish (Sweden)\",\n    ta: \"Tamil\",\n    tt: \"Tatar\",\n    te: \"Teluga\",\n    th: \"Thai\",\n    tig: \"Tigre\",\n    ts: \"Tsonga\",\n    tn: \"Tswana\",\n    tr: \"Turkish\",\n    tk: \"Turkmen\",\n    uk: \"Ukrainian\",\n    hsb: \"Upper Sorbian\",\n    ur: \"Urdu\",\n    ve: \"Venda\",\n    vi: \"Vietnamese\",\n    vo: \"Volapuk\",\n    wa: \"Walloon\",\n    cy: \"Welsh\",\n    xh: \"Xhosa\",\n    ji: \"Yiddish\",\n    zu: \"Zulu\"\n};\n\nexport const __FramerMetadata__ = {\"exports\":{\"fontSizeOptions\":{\"type\":\"variable\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"fontControls\":{\"type\":\"variable\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"localeOptions\":{\"type\":\"variable\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"fontStack\":{\"type\":\"variable\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"emptyStateStyle\":{\"type\":\"variable\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"containerStyles\":{\"type\":\"variable\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"defaultEvents\":{\"type\":\"variable\",\"annotations\":{\"framerContractVersion\":\"1\"}}}}\n//# sourceMappingURL=./constants.map","import { useIsInCurrentNavigationTarget } from \"framer\";\nimport { useEffect } from \"react\";\nexport function useOnEnter(onEnter, enabled) {\n    return useOnSpecificTargetChange(true, onEnter, enabled);\n}\nexport function useOnExit(onExit, enabled) {\n    return useOnSpecificTargetChange(false, onExit, enabled);\n}\nfunction useOnSpecificTargetChange(goal, callback, enabled = true) {\n    const isInTarget = useIsInCurrentNavigationTarget();\n    useEffect(()=>{\n        if (enabled && isInTarget === goal) callback();\n    }, [\n        isInTarget\n    ]);\n}\n\nexport const __FramerMetadata__ = {\"exports\":{\"useOnEnter\":{\"type\":\"function\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"useOnExit\":{\"type\":\"function\",\"annotations\":{\"framerContractVersion\":\"1\"}}}}\n//# sourceMappingURL=./useOnNavigationTargetChange.map","import { useRef } from \"react\";\n/**\n * Creates a constant value over the lifecycle of a component.\n *\n * Even if `useMemo` is provided an empty array as its final argument, it doesn't offer\n * a guarantee that it won't re-run for performance reasons later on. By using `useConstant`\n * you can ensure that initialisers don't execute twice or more.\n */ export function useConstant(init) {\n    const ref = useRef(null);\n    if (ref.current === null) {\n        ref.current = init();\n    }\n    return ref.current;\n}\n\nexport const __FramerMetadata__ = {\"exports\":{\"useConstant\":{\"type\":\"function\",\"annotations\":{\"framerContractVersion\":\"1\"}}}}\n//# sourceMappingURL=./useConstant.map","import { Color } from \"framer\";\nexport function colorFromToken(color) {\n    if (color.startsWith(\"var(--token-\")) return \"rgb\" + color.split(\") /*\")[0].split(\", rgb\")[1];\n    return color;\n}\nexport function colorTokentoValue(color) {\n    return Color(colorFromToken(color)).toValue();\n}\n\nexport const __FramerMetadata__ = {\"exports\":{\"colorFromToken\":{\"type\":\"function\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"colorTokentoValue\":{\"type\":\"function\",\"annotations\":{\"framerContractVersion\":\"1\"}}}}\n//# sourceMappingURL=./colorFromToken.map","import { MotionValue } from \"framer\";\nexport const isMotionValue = (v)=>v instanceof MotionValue\n;\n\nexport const __FramerMetadata__ = {\"exports\":{\"isMotionValue\":{\"type\":\"variable\",\"annotations\":{\"framerContractVersion\":\"1\"}}}}\n//# sourceMappingURL=./isMotionValue.map","import * as React from \"react\";\nconst letters = \"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz\";\nconst l = ()=>letters[Math.floor(Math.random() * letters.length)]\n;\nexport const randomID = ()=>l() + l() + l() + l() + l() + l() + l() + l() + l()\n;\nfunction createUniqueClass(suffix) {\n    return `framer-${suffix}-${randomID()}`;\n}\nexport function useUniqueClassName(suffix, deps) {\n    const [className, setClassName] = React.useState(createUniqueClass(suffix));\n    React.useEffect(()=>{\n        setClassName(createUniqueClass(suffix));\n    }, [\n        suffix,\n        ...deps\n    ]);\n    return className;\n}\n\nexport const __FramerMetadata__ = {\"exports\":{\"useUniqueClassName\":{\"type\":\"function\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"randomID\":{\"type\":\"variable\",\"annotations\":{\"framerContractVersion\":\"1\"}}}}\n//# sourceMappingURL=./useUniqueClassName.map","import { ControlType } from \"framer\";\n// I realize this only applies to select right now\n// but we can work on it in here\nexport function getVariantControls(Component, variant, additionalControls = {\n}) {\n    return {\n        [`${variant}TextColor`]: {\n            type: ControlType.Color,\n            title: \"Text Color\",\n            defaultValue: Component.defaultProps[`${variant}TextColor`],\n            hidden: (props)=>props.variant !== variant\n        },\n        [`${variant}IconColor`]: {\n            type: ControlType.Color,\n            title: \"Icon Color\",\n            defaultValue: Component.defaultProps[`${variant}IconColor`],\n            hidden: (props)=>props.variant !== variant\n        },\n        [`${variant}BackgroundColor`]: {\n            type: ControlType.Color,\n            title: \"Bg Color\",\n            defaultValue: Component.defaultProps[`${variant}BackgroundColor`],\n            hidden: (props)=>props.variant !== variant\n        },\n        [`${variant}BorderColor`]: {\n            type: ControlType.Color,\n            title: \"Border Color\",\n            defaultValue: Component.defaultProps[`${variant}BorderColor`],\n            hidden: (props)=>props.variant !== variant\n        },\n        [`${variant}BorderWidth`]: {\n            type: ControlType.Number,\n            title: \" \",\n            min: 0,\n            max: 5,\n            displayStepper: true,\n            defaultValue: Component.defaultProps[`${variant}BorderWidth`],\n            hidden: (props)=>props.variant !== variant\n        },\n        ...additionalControls\n    };\n}\n\nexport const __FramerMetadata__ = {\"exports\":{\"getVariantControls\":{\"type\":\"function\",\"annotations\":{\"framerContractVersion\":\"1\"}}}}\n//# sourceMappingURL=./variantUtils.map","import { useMemo } from \"react\";\nexport const isBrowserSafari = ()=>{\n    if (typeof navigator !== `undefined`) {\n        const userAgent = navigator.userAgent.toLowerCase();\n        const isSafari = (userAgent.indexOf(\"safari\") > -1 || userAgent.indexOf(\"framermobile\") > -1 || userAgent.indexOf(\"framerx\") > -1) && userAgent.indexOf(\"chrome\") < 0;\n        return isSafari;\n    } else return false;\n};\nexport const useIsBrowserSafari = ()=>useMemo(()=>isBrowserSafari()\n    , [])\n;\n\nexport const __FramerMetadata__ = {\"exports\":{\"useIsBrowserSafari\":{\"type\":\"variable\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"isBrowserSafari\":{\"type\":\"variable\",\"annotations\":{\"framerContractVersion\":\"1\"}}}}\n//# sourceMappingURL=./isBrowser.map","import { useEffect } from \"react\";\n//@ts-ignore\nimport { isMotionValue } from \"https://framerusercontent.com/modules/3mKFSGQqKHV82uOV1eBc/5fbRLvOpxZC0JOXugvwm/isMotionValue.js\";\nexport function useOnChange(value, callback) {\n    useEffect(()=>// @ts-ignore this should be detected as a MV :shrug:\n        isMotionValue(value) ? value.onChange(callback) : undefined\n    );\n}\nexport function useMultiOnChange(values, handler) {\n    useEffect(()=>{\n        const subscriptions = values.map((value)=>value.onChange(handler)\n        );\n        return ()=>subscriptions.forEach((unsubscribe)=>unsubscribe()\n            )\n        ;\n    });\n}\n\nexport const __FramerMetadata__ = {\"exports\":{\"Subscriber\":{\"type\":\"tsType\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"useOnChange\":{\"type\":\"function\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"useMultiOnChange\":{\"type\":\"function\",\"annotations\":{\"framerContractVersion\":\"1\"}}}}\n//# sourceMappingURL=./useOnChange.map","import { useCallback, useEffect, useRef } from \"react\";\nimport { motionValue, animate, RenderTarget } from \"framer\";\n// @ts-ignore\nimport { isMotionValue } from \"https://framerusercontent.com/modules/3mKFSGQqKHV82uOV1eBc/5fbRLvOpxZC0JOXugvwm/isMotionValue.js\";\n// @ts-ignore\nimport { useConstant } from \"https://framerusercontent.com/modules/ExNgrA7EJTKUPpH6vIlN/eiOrSJ2Ab5M9jPCvVwUz/useConstant.js\";\nexport function useAutoMotionValue(inputValue, options) {\n    var ref;\n    // Put options on a local ref\n    // Might wanna just memo instead but it works for now\n    const optionsRef = useRef(options);\n    const animation = useRef();\n    const didInitialMount = useRef(false);\n    const isOnCanvas = RenderTarget.current() === RenderTarget.canvas;\n    // in-progress - trying to figure out effect hooks\n    const onChangeDeps = (options === null || options === void 0 ? void 0 : options.onChangeDeps) ? options.onChangeDeps : [];\n    // Memoize the onChange handler\n    const onChange = useCallback(options === null || options === void 0 ? void 0 : options.onChange, [\n        ...onChangeDeps, \n    ]);\n    // Optionally scale the value from props\n    const transformer = useCallback((value)=>((ref = optionsRef.current) === null || ref === void 0 ? void 0 : ref.transform) ? optionsRef.current.transform(value) : value\n    , []);\n    // Create new MotionValue from inputValue\n    const value = useConstant(()=>isMotionValue(inputValue) ? inputValue : motionValue(transformer(inputValue))\n    );\n    // Setting value from prop change\n    useEffect(()=>{\n        if (!isMotionValue(inputValue) && didInitialMount.current) {\n            var ref1, ref2;\n            const newValue = transformer(inputValue);\n            (ref1 = animation.current) === null || ref1 === void 0 ? void 0 : ref1.stop();\n            // Call change callback\n            if (onChange) onChange(newValue, value);\n            // Trigger animation to new value\n            if (((ref2 = optionsRef.current) === null || ref2 === void 0 ? void 0 : ref2.animate) && !isOnCanvas) {\n                var ref3;\n                // @ts-ignore\n                animation.current = animate(value, newValue, (ref3 = optionsRef.current) === null || ref3 === void 0 ? void 0 : ref3.transition);\n            } else {\n                value.set(newValue);\n            }\n        }\n        didInitialMount.current = true;\n    }, [\n        inputValue,\n        ...onChangeDeps\n    ]);\n    return value;\n}\n\nexport const __FramerMetadata__ = {\"exports\":{\"useAutoMotionValue\":{\"type\":\"function\",\"annotations\":{\"framerContractVersion\":\"1\"}}}}","// @ts-ignore\nimport{fontStore}from\"framer\";import{useEffect}from\"react\";import{fontStack}from\"https://framerusercontent.com/modules/VTUDdizacRHpwbkOamr7/AykinQJbgwl92LvMGZwu/constants.js\";const fontWeights={100:\"Thin\",200:\"Extra-light\",300:\"Light\",400:\"Regular\",500:\"Medium\",600:\"Semi-bold\",700:\"Bold\",800:\"Extra-bold\",900:\"Black\"};export function useFontControls(props){const{fontFamily=\"Inter\",fontSize=16,fontWeight=400,font=false}=props;const fontWeightName=fontWeights[fontWeight];const customFontStack=`\"${fontFamily} ${fontWeightName}\", \"${fontFamily}\", ${fontStack}`;const fontFamilyStyle=fontFamily?{fontSize,fontWeight,fontFamily:customFontStack}:{fontSize,fontWeight};const fetchCustomFonts=async()=>{await fontStore.loadWebFontsFromSelectors([`CUSTOM;${fontFamily}`,`CUSTOM;${fontFamily} ${fontWeightName}`,`GF;${fontFamily}-${fontWeightName.toLowerCase()}`,]).catch(e=>console.error(e));};useEffect(()=>{if(font)fetchCustomFonts();},[font,fontFamily,fontWeight]);return fontFamilyStyle;}\nexport const __FramerMetadata__ = {\"exports\":{\"useFontControls\":{\"type\":\"function\",\"annotations\":{\"framerContractVersion\":\"1\"}}}}\n//# sourceMappingURL=./useFontControls.map","import { useMemo } from \"react\";\nimport { RenderTarget } from \"framer\";\nexport function useRenderTarget() {\n    const currentRenderTarget = useMemo(()=>RenderTarget.current()\n    , []);\n    return currentRenderTarget;\n}\nexport function useIsInPreview() {\n    const inPreview = useMemo(()=>RenderTarget.current() === RenderTarget.preview\n    , []);\n    return inPreview;\n}\nexport function useIsOnCanvas() {\n    const onCanvas = useMemo(()=>RenderTarget.current() === RenderTarget.canvas\n    , []);\n    return onCanvas;\n}\n\nexport const __FramerMetadata__ = {\"exports\":{\"useIsInPreview\":{\"type\":\"function\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"useRenderTarget\":{\"type\":\"function\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"useIsOnCanvas\":{\"type\":\"function\",\"annotations\":{\"framerContractVersion\":\"1\"}}}}\n//# sourceMappingURL=./useRenderTarget.map","import * as React from \"react\";\nexport function useControlledState(value) {\n    const [controlledValue, setValue] = React.useState(value);\n    React.useEffect(()=>{\n        setValue(value);\n    }, [\n        value\n    ]);\n    return [\n        controlledValue,\n        setValue\n    ];\n}\n\nexport const __FramerMetadata__ = {\"exports\":{\"useControlledState\":{\"type\":\"function\",\"annotations\":{\"framerContractVersion\":\"1\"}}}}\n//# sourceMappingURL=./useControlledState.map","import { useMemo } from \"react\";\nimport { ControlType } from \"framer\";\nexport function useRadius(props) {\n    const { borderRadius , isMixedBorderRadius , topLeftRadius , topRightRadius , bottomRightRadius , bottomLeftRadius ,  } = props;\n    const radiusValue = useMemo(()=>isMixedBorderRadius ? `${topLeftRadius}px ${topRightRadius}px ${bottomRightRadius}px ${bottomLeftRadius}px` : `${borderRadius}px`\n    , [\n        borderRadius,\n        isMixedBorderRadius,\n        topLeftRadius,\n        topRightRadius,\n        bottomRightRadius,\n        bottomLeftRadius, \n    ]);\n    return radiusValue;\n}\nexport const borderRadiusControl = {\n    borderRadius: {\n        title: \"Radius\",\n        type: ControlType.FusedNumber,\n        toggleKey: \"isMixedBorderRadius\",\n        toggleTitles: [\n            \"Radius\",\n            \"Radius per corner\"\n        ],\n        valueKeys: [\n            \"topLeftRadius\",\n            \"topRightRadius\",\n            \"bottomRightRadius\",\n            \"bottomLeftRadius\", \n        ],\n        valueLabels: [\n            \"TL\",\n            \"TR\",\n            \"BR\",\n            \"BL\"\n        ],\n        min: 0\n    }\n};\nexport function usePadding(props) {\n    const { padding , paddingPerSide , paddingTop , paddingRight , paddingBottom , paddingLeft ,  } = props;\n    const paddingValue = useMemo(()=>paddingPerSide ? `${paddingTop}px ${paddingRight}px ${paddingBottom}px ${paddingLeft}px` : padding\n    , [\n        padding,\n        paddingPerSide,\n        paddingTop,\n        paddingRight,\n        paddingBottom,\n        paddingLeft, \n    ]);\n    return paddingValue;\n}\nexport const paddingControl = {\n    padding: {\n        type: ControlType.FusedNumber,\n        toggleKey: \"paddingPerSide\",\n        toggleTitles: [\n            \"Padding\",\n            \"Padding per side\"\n        ],\n        valueKeys: [\n            \"paddingTop\",\n            \"paddingRight\",\n            \"paddingBottom\",\n            \"paddingLeft\", \n        ],\n        valueLabels: [\n            \"T\",\n            \"R\",\n            \"B\",\n            \"L\"\n        ],\n        min: 0,\n        title: \"Padding\"\n    }\n};\n\nexport const __FramerMetadata__ = {\"exports\":{\"borderRadiusControl\":{\"type\":\"variable\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"useRadius\":{\"type\":\"function\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"RadiusProps\":{\"type\":\"tsType\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"PaddingProps\":{\"type\":\"tsType\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"usePadding\":{\"type\":\"function\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"paddingControl\":{\"type\":\"variable\",\"annotations\":{\"framerContractVersion\":\"1\"}}}}\n//# sourceMappingURL=./propUtils.map","import{defaultEvents,localeOptions,fontControls,fontSizeOptions,emptyStateStyle,containerStyles,fontStack}from\"https://framerusercontent.com/modules/VTUDdizacRHpwbkOamr7/AykinQJbgwl92LvMGZwu/constants.js\";import{useOnEnter,useOnExit}from\"https://framerusercontent.com/modules/D4TWeLfcxT6Tysr2BlYg/iZjmqdxVx1EOiM3k1FaW/useOnNavigationTargetChange.js\";import{useConstant}from\"https://framerusercontent.com/modules/ExNgrA7EJTKUPpH6vIlN/eiOrSJ2Ab5M9jPCvVwUz/useConstant.js\";import{colorTokentoValue,colorFromToken}from\"https://framerusercontent.com/modules/D2Lz5CmnNVPZFFiZXalt/QaCzPbriZBfXWZIIycFI/colorFromToken.js\";import{isMotionValue}from\"https://framerusercontent.com/modules/3mKFSGQqKHV82uOV1eBc/5fbRLvOpxZC0JOXugvwm/isMotionValue.js\";import{useUniqueClassName,randomID}from\"https://framerusercontent.com/modules/xDiQsqBGXzmMsv7AlEVy/uhunpMiNsbXxzjlXsg1y/useUniqueClassName.js\";import{getVariantControls}from\"https://framerusercontent.com/modules/ETACN5BJyFTSo0VVDJfu/NHRqowOiXkF9UwOzczF7/variantUtils.js\";import{useIsBrowserSafari}from\"https://framerusercontent.com/modules/eMBrwoqQK7h6mEeGQUH8/GuplvPJVjmxpk9zqOTcb/isBrowser.js\";import{useMultiOnChange,useOnChange}from\"https://framerusercontent.com/modules/v9AWX2URmiYsHf7GbctE/XxKAZ9KlhWqf5x1JMyyF/useOnChange.js\";import{mstoMinAndSec,secondsToMinutes}from\"https://framerusercontent.com/modules/4zHZnO5JojN1PrIbu2jm/revv9QCWpkh8lPzi2jje/time.js\";import{useAutoMotionValue}from\"https://framerusercontent.com/modules/kNDwabfjDEb3vUxkQlZS/fSIr3AOAYbGlfSPgXpYu/useAutoMotionValue.js\";import{useFontControls}from\"https://framerusercontent.com/modules/cuQH4dmpDnV8YK1mSgQX/KqRXqunFjE6ufhpc7ZRu/useFontControls.js\";import{useRenderTarget,useIsInPreview,useIsOnCanvas}from\"https://framerusercontent.com/modules/afBE9Yx1W6bY5q32qPxe/m3q7puE2tbo1S2C0s0CT/useRenderTarget.js\";import{useControlledState}from\"https://framerusercontent.com/modules/zGkoP8tPDCkoBzMdt5uq/0zFSjxIYliHxrQQnryFX/useControlledState.js\";import{usePadding,useRadius,paddingControl,borderRadiusControl}from\"https://framerusercontent.com/modules/5SM58HxZHxjjv7aLMOgQ/WXz9i6mVki0bBCrKdqB3/propUtils.js\";import{detectAutoSizingAxis}from\"https://framerusercontent.com/modules/8CkHAZatUz1UR8jNTcfD/HwbnIAZlUmQ2oTpcLkaH/detectAutoSizingAxis.js\";export{useOnEnter,useOnExit,defaultEvents,isMotionValue,colorFromToken,colorTokentoValue,localeOptions,fontControls,fontSizeOptions,emptyStateStyle,containerStyles,fontStack,useUniqueClassName,getVariantControls,useIsBrowserSafari,randomID,useConstant,useMultiOnChange,useOnChange,usePadding,useRadius,paddingControl,borderRadiusControl,mstoMinAndSec,useFontControls,secondsToMinutes,useAutoMotionValue,useRenderTarget,useIsInPreview,useControlledState,detectAutoSizingAxis,useIsOnCanvas,};\nexport const __FramerMetadata__ = {\"exports\":{\"useConstant\":{\"type\":\"variable\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"isMotionValue\":{\"type\":\"variable\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"fontControls\":{\"type\":\"variable\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"defaultEvents\":{\"type\":\"variable\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"useUniqueClassName\":{\"type\":\"variable\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"useMultiOnChange\":{\"type\":\"variable\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"useOnChange\":{\"type\":\"variable\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"useIsOnCanvas\":{\"type\":\"variable\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"useOnExit\":{\"type\":\"variable\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"fontSizeOptions\":{\"type\":\"variable\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"colorTokentoValue\":{\"type\":\"variable\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"useRadius\":{\"type\":\"variable\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"getVariantControls\":{\"type\":\"variable\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"colorFromToken\":{\"type\":\"variable\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"containerStyles\":{\"type\":\"variable\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"usePadding\":{\"type\":\"variable\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"fontStack\":{\"type\":\"variable\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"useControlledState\":{\"type\":\"variable\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"useFontControls\":{\"type\":\"variable\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"useAutoMotionValue\":{\"type\":\"variable\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"emptyStateStyle\":{\"type\":\"variable\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"useIsInPreview\":{\"type\":\"variable\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"useIsBrowserSafari\":{\"type\":\"variable\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"detectAutoSizingAxis\":{\"type\":\"variable\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"borderRadiusControl\":{\"type\":\"variable\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"mstoMinAndSec\":{\"type\":\"variable\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"randomID\":{\"type\":\"variable\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"localeOptions\":{\"type\":\"variable\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"useOnEnter\":{\"type\":\"variable\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"secondsToMinutes\":{\"type\":\"variable\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"useRenderTarget\":{\"type\":\"variable\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"paddingControl\":{\"type\":\"variable\",\"annotations\":{\"framerContractVersion\":\"1\"}}}}","/*\n * index (framer/default-utils@0.45.0)\n *\n * Learn More: https://www.framer.com/asset-urls\n */\n\nexport * from \"https://framerusercontent.com/modules/G4IfyjvwmaeSBpdb4TWu/OIjZRBmWDcIE2B6qgG1j/index.js\"\n"],"mappings":"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"}