gitextract_xhk7klp0/ ├── .eslintrc.json ├── .github/ │ ├── ISSUE_TEMPLATE/ │ │ ├── bug_report.md │ │ └── feature_request.md │ └── workflows/ │ ├── codeql.yml │ └── playwright.yml ├── .gitignore ├── .npmrc ├── LICENSE ├── README.md ├── apollo/ │ ├── mutations/ │ │ ├── ADD_TO_CART_MUTATION.gql │ │ ├── CHECKOUT_MUTATION.gql │ │ └── UPDATE_CART_MUTATION.gql │ └── queries/ │ ├── FETCH_ALL_CATEGORIES_QUERY.gql │ ├── FETCH_ALL_PRODUCTS_QUERY.gql │ ├── GET_CART_QUERY.gql │ ├── GET_PRODUCTS_FROM_CATEGORY_QUERY.gql │ └── GET_SINGLE_PRODUCT_QUERY.gql ├── app.vue ├── assets/ │ └── css/ │ └── main.css ├── components/ │ ├── Cart/ │ │ ├── CartContents.vue │ │ └── CartItem.vue │ ├── Category/ │ │ └── CategoryShowAll.vue │ ├── Checkout/ │ │ ├── CheckoutForm.vue │ │ └── constants/ │ │ └── BILLING_FIELDS.js │ ├── Index/ │ │ └── IndexHero.vue │ ├── Layout/ │ │ ├── LayoutCart.vue │ │ ├── LayoutFooter.vue │ │ ├── LayoutMobileMenu.vue │ │ ├── LayoutNavItem.vue │ │ ├── LayoutNavbar.vue │ │ └── LayoutStickyFooter.vue │ ├── Products/ │ │ ├── ProductsImage.vue │ │ ├── ProductsPrice.vue │ │ ├── ProductsShowAll.vue │ │ └── ProductsSingleProduct.vue │ ├── Spinner/ │ │ └── SpinnerLoading.vue │ └── common/ │ ├── CommonButton.vue │ ├── CommonInput.vue │ └── CommonToast.vue ├── error.vue ├── layouts/ │ └── default.vue ├── nuxt.config.js ├── package.json ├── pages/ │ ├── cart.vue │ ├── categories.vue │ ├── category/ │ │ └── [category].vue │ ├── checkout.vue │ ├── index.vue │ ├── product/ │ │ └── [product].vue │ ├── products.vue │ ├── search.vue │ └── success.vue ├── playwright.config.ts ├── plugins/ │ ├── apollo.js │ └── cartUpdater.js ├── renovate.json ├── store/ │ └── useCart.js ├── tailwind.config.js ├── tests/ │ └── index.spec.ts ├── tsconfig.json └── utils/ └── functions.js