From 21a8ebadf425ed9e992a59692cd7a212184a2701 Mon Sep 17 00:00:00 2001 From: sonylomo Date: Thu, 20 Jun 2024 21:52:19 +0300 Subject: [PATCH 1/3] feat: order tables --- components.json | 17 + jsconfig.json | 10 + package.json | 12 +- pnpm-lock.yaml | 734 ++++++++- src/APP/components/admin/BottomNavBar.jsx | 41 - src/{APP => }/components/Button.jsx | 0 src/{APP => }/components/Caroussel.jsx | 0 src/{APP => }/components/FAQ.jsx | 0 src/{APP => }/components/FallbackLoader.jsx | 0 src/{APP => }/components/Footer.jsx | 2 +- src/{APP => }/components/GoBackBtn.jsx | 0 src/{APP => }/components/Header.jsx | 6 +- src/{APP => }/components/LandingWrapper.jsx | 0 src/{APP => }/components/Loader.jsx | 0 src/{APP => }/components/PodcastCard.jsx | 0 src/{APP => }/components/SeoMetadata.jsx | 0 src/{APP => }/components/ViewMoreBtn.jsx | 0 .../components/admin/AddChapterForm.jsx | 0 .../components/admin/AdminHeader.jsx | 77 +- .../components/admin/AdminLayout.jsx | 0 src/components/admin/BottomNavBar.jsx | 38 + .../components/admin/DropdownInput.jsx | 0 .../components/admin/GeneralInfo.jsx | 0 src/{APP => }/components/admin/Organizers.jsx | 0 .../components/admin/SocialMediaLinks.jsx | 0 .../components/admin/StepIndicator.jsx | 0 .../components/admin/events/Calendar.jsx | 0 .../components/admin/events/EventsTable.jsx | 0 .../shop/dashboard/OrderPreviewColumns.jsx | 68 + .../shop/dashboard/OrdersPreviewTable.jsx | 81 + .../components/auth/NotificationModal.jsx | 0 src/{APP => }/components/index.js | 0 src/{APP => }/components/shop/CartDrawer.jsx | 12 +- src/{APP => }/components/shop/Counter.jsx | 0 src/components/ui/table.jsx | 86 ++ src/index.css | 1333 +---------------- src/{APP => }/index.js | 42 +- src/main.jsx | 2 +- src/{APP => }/pages/Layout.jsx | 0 src/{APP => }/pages/aboutUs/AboutUs.jsx | 0 src/{APP => }/pages/aboutUs/data.js | 2 +- .../pages/aboutUs/sections/HeroSection.jsx | 2 +- .../aboutUs/sections/LeadershipSection.jsx | 2 +- .../aboutUs/sections/MissionVisionSection.jsx | 2 +- .../pages/aboutUs/sections/PartnerCTA.jsx | 0 src/{APP => }/pages/aboutUs/sections/index.js | 0 .../pages/admin/blogs/AllBlogsPage.jsx | 0 .../pages/admin/chapters/AddChapterPage.jsx | 2 +- .../pages/admin/chapters/AllChaptersPage.jsx | 0 .../pages/admin/events/AddEventPage.jsx | 6 +- .../pages/admin/events/AllEventsPage.jsx | 0 .../pages/admin/events/UpdateEventPage.jsx | 0 src/pages/admin/shop/ShopDashboard.jsx | 49 + src/{APP => }/pages/auth/ForgotPassword.jsx | 0 src/{APP => }/pages/auth/LogIn.jsx | 4 +- src/{APP => }/pages/auth/ResetPassword.jsx | 0 src/{APP => }/pages/auth/SignUp.jsx | 4 +- src/{APP => }/pages/blog/Blog.jsx | 2 +- .../pages/blog/sections/BlogWrapper.jsx | 0 .../pages/blog/sections/CommentInput.jsx | 0 .../pages/blog/sections/Comments.jsx | 2 +- .../pages/blog/sections/RelatedBlogCard.jsx | 2 +- .../pages/blog/sections/RelatedBlogs.jsx | 4 +- .../pages/blog/sections/blogWrapper.css | 0 src/{APP => }/pages/blog2/Blog2.jsx | 2 +- src/{APP => }/pages/blog2/sections/Advert.jsx | 2 +- .../pages/blog2/sections/BlogBody.jsx | 2 +- .../pages/blog2/sections/BlogHeader.jsx | 0 .../pages/blog2/sections/BlogUMightLike.jsx | 0 .../pages/blog2/sections/NextRead.jsx | 4 +- .../pages/blog2/sections/RelatedBlogCard.jsx | 0 .../pages/blog2/sections/RelatedBlogs.jsx | 4 +- .../pages/blog2/sections/ShareBlog.jsx | 0 .../pages/blog2/sections/blogBody.css | 0 src/{APP => }/pages/blog2/sections/index.js | 0 src/{APP => }/pages/blogs/Blogs.jsx | 0 src/{APP => }/pages/blogs/sections/Banner.jsx | 4 +- .../pages/blogs/sections/BlogCard.jsx | 0 .../pages/blogs/sections/BlogPagination.jsx | 0 .../pages/blogs/sections/BlogStats.jsx | 2 +- .../pages/blogs/sections/BlogsWrapper.jsx | 6 +- .../pages/blogs/sections/FeaturedBlogs.jsx | 4 +- src/{APP => }/pages/blogs/sections/index.js | 0 .../pages/chapter/pages/IndividualChapter.jsx | 2 +- .../chapter/sections/AboutChapterSection.jsx | 0 .../chapter/sections/DetailsContainer.jsx | 0 .../pages/chapter/sections/ImpactSection.jsx | 0 .../chapter/sections/OrganizersSection.jsx | 0 .../chapter/sections/UpcomingEventSection.jsx | 0 .../pages/chapter/sections/WelcomeSection.jsx | 2 +- .../pages/community/CommunityPage.jsx | 0 .../pages/community/sections/JoinSYTForm.jsx | 2 +- .../pages/community/sections/JoinSYTModal.jsx | 4 +- .../sections/JoinSYTSelectFields.jsx | 0 .../community/sections/WelcomeSection.jsx | 2 +- .../sections/chaptersSection/ChapterCard.jsx | 0 .../chaptersSection/ChaptersSection.jsx | 4 +- .../SingleEvents/SingleEvent.jsx | 0 .../SingleEvents/sections/EventCard.jsx | 0 .../sections/EventDescription.jsx | 0 .../SingleEvents/sections/EventRSVP.jsx | 4 +- .../SingleEvents/sections/Hero.jsx | 0 .../SingleEvents/sections/LocationTag.jsx | 0 .../SingleEvents/sections/RSVPForm.jsx | 2 +- .../SingleEvents/sections/SimilarEvents.jsx | 2 +- .../SingleEvents/sections/index.js | 0 .../gallerySection/GallerySection.jsx | 0 .../pages/community/sections/index.js | 0 .../sections/partnerSection/PartnerCard.jsx | 0 .../partnerSection/PartnerSection.jsx | 2 +- src/{APP => }/pages/donate/DonatePage.jsx | 0 src/{APP => }/pages/donate/RangeInput.jsx | 0 .../donate/pages/SingleProductDonatePage.jsx | 0 src/{APP => }/pages/errorPages/Error400.jsx | 2 +- src/{APP => }/pages/errorPages/Error403.jsx | 2 +- src/{APP => }/pages/errorPages/Error404.jsx | 2 +- src/{APP => }/pages/errorPages/Error500.jsx | 2 +- .../pages/errorPages/ErrorBoundary.jsx | 0 .../pages/events/pages/EventsPage.jsx | 0 .../pages/events/sections/EventsSection.jsx | 4 +- .../events/sections/FeaturedCarousel.jsx | 0 .../events/sections/FeaturedEventCard.jsx | 2 +- .../pages/events/sections/SearchSection.jsx | 2 +- .../sections/eventsSection/EventCategory.jsx | 2 +- .../events/sections/eventsSection/Events.jsx | 0 .../sections/eventsSection/EventsSection.jsx | 4 +- .../sections/eventsSection/EventsTab.jsx | 0 .../eventsSection/EventsUpdateSection.jsx | 0 .../helpers/FilterRecentTime.jsx | 0 src/{APP => }/pages/events/sections/index.js | 0 src/{APP => }/pages/gallery/GalleryPage.jsx | 2 +- src/{APP => }/pages/gallery/data.js | 0 .../pages/gallery/sections/ImageCard.jsx | 0 .../gallery/sections/ImageCardLatest.jsx | 0 .../pages/gallery/sections/ImageCardss.jsx | 0 .../pages/landingPage/LandingPage.jsx | 0 src/{APP => }/pages/landingPage/data.js | 0 .../pages/landingPage/sections/CTASection.jsx | 0 .../pages/landingPage/sections/FaqSection.jsx | 0 .../landingPage/sections/FeatureSection.jsx | 0 .../landingPage/sections/HeroSection.jsx | 0 .../pages/landingPage/sections/OurEvents.jsx | 4 +- .../pages/landingPage/sections/Partners.jsx | 0 .../landingPage/sections/StatsSection.jsx | 2 +- .../sections/TestimonialSection.jsx | 0 .../pages/landingPage/sections/WhatWeDo.jsx | 0 .../pages/landingPage/sections/index.js | 0 src/{APP => }/pages/products/Products.jsx | 0 .../pages/products/sections/HeroSection.jsx | 0 .../pages/products/sections/ProductCard.jsx | 0 .../products/sections/ProductsSections.jsx | 0 .../pages/products/sections/index.js | 0 src/{APP => }/pages/products2/Products.jsx | 0 src/{APP => }/pages/products2/data.js | 2 +- .../products2/sections/DeveloperCard.jsx | 0 .../pages/products2/sections/HeroSection.jsx | 0 .../pages/products2/sections/ProductsCard.jsx | 0 .../products2/sections/ProductsSection.jsx | 0 .../products2/sections/StackCategory.jsx | 0 .../pages/products2/sections/Teams.jsx | 4 +- .../pages/products2/sections/TechStack.jsx | 0 .../pages/products2/sections/index.js | 0 src/{APP => }/pages/resources/Resources.jsx | 0 .../pages/resources/sections/HeroSection.jsx | 2 +- .../pages/resources/sections/ResourceCard.jsx | 0 .../resources/sections/ResourcesSection.jsx | 2 +- .../pages/resources/sections/data.js | 2 +- .../pages/resources/sections/index.js | 0 src/{APP => }/pages/shop/Homepage.jsx | 0 src/{APP => }/pages/shop/OrderSummaryPage.jsx | 6 +- .../pages/shop/ProductDisplayPage.jsx | 0 src/{APP => }/pages/shop/SingleItemPage.jsx | 8 +- src/{APP => }/pages/shop/sections/Banner.jsx | 0 .../shop/sections/CategoriesProducts.jsx | 2 +- .../pages/shop/sections/CategoriesSection.jsx | 2 +- .../pages/shop/sections/ItemHeader.jsx | 2 +- .../shop/sections/PopularItemsSection.jsx | 2 +- src/router/index.jsx | 88 +- src/utilities/utils.js | 6 + tailwind.config.js | 38 +- vite.config.js | 9 +- 181 files changed, 1306 insertions(+), 1599 deletions(-) create mode 100644 components.json create mode 100644 jsconfig.json delete mode 100644 src/APP/components/admin/BottomNavBar.jsx rename src/{APP => }/components/Button.jsx (100%) rename src/{APP => }/components/Caroussel.jsx (100%) rename src/{APP => }/components/FAQ.jsx (100%) rename src/{APP => }/components/FallbackLoader.jsx (100%) rename src/{APP => }/components/Footer.jsx (99%) rename src/{APP => }/components/GoBackBtn.jsx (100%) rename src/{APP => }/components/Header.jsx (98%) rename src/{APP => }/components/LandingWrapper.jsx (100%) rename src/{APP => }/components/Loader.jsx (100%) rename src/{APP => }/components/PodcastCard.jsx (100%) rename src/{APP => }/components/SeoMetadata.jsx (100%) rename src/{APP => }/components/ViewMoreBtn.jsx (100%) rename src/{APP => }/components/admin/AddChapterForm.jsx (100%) rename src/{APP => }/components/admin/AdminHeader.jsx (56%) rename src/{APP => }/components/admin/AdminLayout.jsx (100%) create mode 100644 src/components/admin/BottomNavBar.jsx rename src/{APP => }/components/admin/DropdownInput.jsx (100%) rename src/{APP => }/components/admin/GeneralInfo.jsx (100%) rename src/{APP => }/components/admin/Organizers.jsx (100%) rename src/{APP => }/components/admin/SocialMediaLinks.jsx (100%) rename src/{APP => }/components/admin/StepIndicator.jsx (100%) rename src/{APP => }/components/admin/events/Calendar.jsx (100%) rename src/{APP => }/components/admin/events/EventsTable.jsx (100%) create mode 100644 src/components/admin/shop/dashboard/OrderPreviewColumns.jsx create mode 100644 src/components/admin/shop/dashboard/OrdersPreviewTable.jsx rename src/{APP => }/components/auth/NotificationModal.jsx (100%) rename src/{APP => }/components/index.js (100%) rename src/{APP => }/components/shop/CartDrawer.jsx (97%) rename src/{APP => }/components/shop/Counter.jsx (100%) create mode 100644 src/components/ui/table.jsx rename src/{APP => }/index.js (83%) rename src/{APP => }/pages/Layout.jsx (100%) rename src/{APP => }/pages/aboutUs/AboutUs.jsx (100%) rename src/{APP => }/pages/aboutUs/data.js (93%) rename src/{APP => }/pages/aboutUs/sections/HeroSection.jsx (92%) rename src/{APP => }/pages/aboutUs/sections/LeadershipSection.jsx (99%) rename src/{APP => }/pages/aboutUs/sections/MissionVisionSection.jsx (96%) rename src/{APP => }/pages/aboutUs/sections/PartnerCTA.jsx (100%) rename src/{APP => }/pages/aboutUs/sections/index.js (100%) rename src/{APP => }/pages/admin/blogs/AllBlogsPage.jsx (100%) rename src/{APP => }/pages/admin/chapters/AddChapterPage.jsx (98%) rename src/{APP => }/pages/admin/chapters/AllChaptersPage.jsx (100%) rename src/{APP => }/pages/admin/events/AddEventPage.jsx (98%) rename src/{APP => }/pages/admin/events/AllEventsPage.jsx (100%) rename src/{APP => }/pages/admin/events/UpdateEventPage.jsx (100%) create mode 100644 src/pages/admin/shop/ShopDashboard.jsx rename src/{APP => }/pages/auth/ForgotPassword.jsx (100%) rename src/{APP => }/pages/auth/LogIn.jsx (97%) rename src/{APP => }/pages/auth/ResetPassword.jsx (100%) rename src/{APP => }/pages/auth/SignUp.jsx (98%) rename src/{APP => }/pages/blog/Blog.jsx (95%) rename src/{APP => }/pages/blog/sections/BlogWrapper.jsx (100%) rename src/{APP => }/pages/blog/sections/CommentInput.jsx (100%) rename src/{APP => }/pages/blog/sections/Comments.jsx (94%) rename src/{APP => }/pages/blog/sections/RelatedBlogCard.jsx (97%) rename src/{APP => }/pages/blog/sections/RelatedBlogs.jsx (91%) rename src/{APP => }/pages/blog/sections/blogWrapper.css (100%) rename src/{APP => }/pages/blog2/Blog2.jsx (96%) rename src/{APP => }/pages/blog2/sections/Advert.jsx (82%) rename src/{APP => }/pages/blog2/sections/BlogBody.jsx (95%) rename src/{APP => }/pages/blog2/sections/BlogHeader.jsx (100%) rename src/{APP => }/pages/blog2/sections/BlogUMightLike.jsx (100%) rename src/{APP => }/pages/blog2/sections/NextRead.jsx (95%) rename src/{APP => }/pages/blog2/sections/RelatedBlogCard.jsx (100%) rename src/{APP => }/pages/blog2/sections/RelatedBlogs.jsx (91%) rename src/{APP => }/pages/blog2/sections/ShareBlog.jsx (100%) rename src/{APP => }/pages/blog2/sections/blogBody.css (100%) rename src/{APP => }/pages/blog2/sections/index.js (100%) rename src/{APP => }/pages/blogs/Blogs.jsx (100%) rename src/{APP => }/pages/blogs/sections/Banner.jsx (90%) rename src/{APP => }/pages/blogs/sections/BlogCard.jsx (100%) rename src/{APP => }/pages/blogs/sections/BlogPagination.jsx (100%) rename src/{APP => }/pages/blogs/sections/BlogStats.jsx (95%) rename src/{APP => }/pages/blogs/sections/BlogsWrapper.jsx (95%) rename src/{APP => }/pages/blogs/sections/FeaturedBlogs.jsx (94%) rename src/{APP => }/pages/blogs/sections/index.js (100%) rename src/{APP => }/pages/chapter/pages/IndividualChapter.jsx (94%) rename src/{APP => }/pages/chapter/sections/AboutChapterSection.jsx (100%) rename src/{APP => }/pages/chapter/sections/DetailsContainer.jsx (100%) rename src/{APP => }/pages/chapter/sections/ImpactSection.jsx (100%) rename src/{APP => }/pages/chapter/sections/OrganizersSection.jsx (100%) rename src/{APP => }/pages/chapter/sections/UpcomingEventSection.jsx (100%) rename src/{APP => }/pages/chapter/sections/WelcomeSection.jsx (99%) rename src/{APP => }/pages/community/CommunityPage.jsx (100%) rename src/{APP => }/pages/community/sections/JoinSYTForm.jsx (97%) rename src/{APP => }/pages/community/sections/JoinSYTModal.jsx (95%) rename src/{APP => }/pages/community/sections/JoinSYTSelectFields.jsx (100%) rename src/{APP => }/pages/community/sections/WelcomeSection.jsx (96%) rename src/{APP => }/pages/community/sections/chaptersSection/ChapterCard.jsx (100%) rename src/{APP => }/pages/community/sections/chaptersSection/ChaptersSection.jsx (93%) rename src/{APP => }/pages/community/sections/eventsPreview/SingleEvents/SingleEvent.jsx (100%) rename src/{APP => }/pages/community/sections/eventsPreview/SingleEvents/sections/EventCard.jsx (100%) rename src/{APP => }/pages/community/sections/eventsPreview/SingleEvents/sections/EventDescription.jsx (100%) rename src/{APP => }/pages/community/sections/eventsPreview/SingleEvents/sections/EventRSVP.jsx (98%) rename src/{APP => }/pages/community/sections/eventsPreview/SingleEvents/sections/Hero.jsx (100%) rename src/{APP => }/pages/community/sections/eventsPreview/SingleEvents/sections/LocationTag.jsx (100%) rename src/{APP => }/pages/community/sections/eventsPreview/SingleEvents/sections/RSVPForm.jsx (96%) rename src/{APP => }/pages/community/sections/eventsPreview/SingleEvents/sections/SimilarEvents.jsx (95%) rename src/{APP => }/pages/community/sections/eventsPreview/SingleEvents/sections/index.js (100%) rename src/{APP => }/pages/community/sections/gallerySection/GallerySection.jsx (100%) rename src/{APP => }/pages/community/sections/index.js (100%) rename src/{APP => }/pages/community/sections/partnerSection/PartnerCard.jsx (100%) rename src/{APP => }/pages/community/sections/partnerSection/PartnerSection.jsx (96%) rename src/{APP => }/pages/donate/DonatePage.jsx (100%) rename src/{APP => }/pages/donate/RangeInput.jsx (100%) rename src/{APP => }/pages/donate/pages/SingleProductDonatePage.jsx (100%) rename src/{APP => }/pages/errorPages/Error400.jsx (91%) rename src/{APP => }/pages/errorPages/Error403.jsx (91%) rename src/{APP => }/pages/errorPages/Error404.jsx (92%) rename src/{APP => }/pages/errorPages/Error500.jsx (93%) rename src/{APP => }/pages/errorPages/ErrorBoundary.jsx (100%) rename src/{APP => }/pages/events/pages/EventsPage.jsx (100%) rename src/{APP => }/pages/events/sections/EventsSection.jsx (95%) rename src/{APP => }/pages/events/sections/FeaturedCarousel.jsx (100%) rename src/{APP => }/pages/events/sections/FeaturedEventCard.jsx (99%) rename src/{APP => }/pages/events/sections/SearchSection.jsx (96%) rename src/{APP => }/pages/events/sections/eventsSection/EventCategory.jsx (99%) rename src/{APP => }/pages/events/sections/eventsSection/Events.jsx (100%) rename src/{APP => }/pages/events/sections/eventsSection/EventsSection.jsx (94%) rename src/{APP => }/pages/events/sections/eventsSection/EventsTab.jsx (100%) rename src/{APP => }/pages/events/sections/eventsSection/EventsUpdateSection.jsx (100%) rename src/{APP => }/pages/events/sections/eventsSection/helpers/FilterRecentTime.jsx (100%) rename src/{APP => }/pages/events/sections/index.js (100%) rename src/{APP => }/pages/gallery/GalleryPage.jsx (98%) rename src/{APP => }/pages/gallery/data.js (100%) rename src/{APP => }/pages/gallery/sections/ImageCard.jsx (100%) rename src/{APP => }/pages/gallery/sections/ImageCardLatest.jsx (100%) rename src/{APP => }/pages/gallery/sections/ImageCardss.jsx (100%) rename src/{APP => }/pages/landingPage/LandingPage.jsx (100%) rename src/{APP => }/pages/landingPage/data.js (100%) rename src/{APP => }/pages/landingPage/sections/CTASection.jsx (100%) rename src/{APP => }/pages/landingPage/sections/FaqSection.jsx (100%) rename src/{APP => }/pages/landingPage/sections/FeatureSection.jsx (100%) rename src/{APP => }/pages/landingPage/sections/HeroSection.jsx (100%) rename src/{APP => }/pages/landingPage/sections/OurEvents.jsx (98%) rename src/{APP => }/pages/landingPage/sections/Partners.jsx (100%) rename src/{APP => }/pages/landingPage/sections/StatsSection.jsx (98%) rename src/{APP => }/pages/landingPage/sections/TestimonialSection.jsx (100%) rename src/{APP => }/pages/landingPage/sections/WhatWeDo.jsx (100%) rename src/{APP => }/pages/landingPage/sections/index.js (100%) rename src/{APP => }/pages/products/Products.jsx (100%) rename src/{APP => }/pages/products/sections/HeroSection.jsx (100%) rename src/{APP => }/pages/products/sections/ProductCard.jsx (100%) rename src/{APP => }/pages/products/sections/ProductsSections.jsx (100%) rename src/{APP => }/pages/products/sections/index.js (100%) rename src/{APP => }/pages/products2/Products.jsx (100%) rename src/{APP => }/pages/products2/data.js (97%) rename src/{APP => }/pages/products2/sections/DeveloperCard.jsx (100%) rename src/{APP => }/pages/products2/sections/HeroSection.jsx (100%) rename src/{APP => }/pages/products2/sections/ProductsCard.jsx (100%) rename src/{APP => }/pages/products2/sections/ProductsSection.jsx (100%) rename src/{APP => }/pages/products2/sections/StackCategory.jsx (100%) rename src/{APP => }/pages/products2/sections/Teams.jsx (96%) rename src/{APP => }/pages/products2/sections/TechStack.jsx (100%) rename src/{APP => }/pages/products2/sections/index.js (100%) rename src/{APP => }/pages/resources/Resources.jsx (100%) rename src/{APP => }/pages/resources/sections/HeroSection.jsx (94%) rename src/{APP => }/pages/resources/sections/ResourceCard.jsx (100%) rename src/{APP => }/pages/resources/sections/ResourcesSection.jsx (98%) rename src/{APP => }/pages/resources/sections/data.js (99%) rename src/{APP => }/pages/resources/sections/index.js (100%) rename src/{APP => }/pages/shop/Homepage.jsx (100%) rename src/{APP => }/pages/shop/OrderSummaryPage.jsx (98%) rename src/{APP => }/pages/shop/ProductDisplayPage.jsx (100%) rename src/{APP => }/pages/shop/SingleItemPage.jsx (95%) rename src/{APP => }/pages/shop/sections/Banner.jsx (100%) rename src/{APP => }/pages/shop/sections/CategoriesProducts.jsx (98%) rename src/{APP => }/pages/shop/sections/CategoriesSection.jsx (97%) rename src/{APP => }/pages/shop/sections/ItemHeader.jsx (98%) rename src/{APP => }/pages/shop/sections/PopularItemsSection.jsx (96%) create mode 100644 src/utilities/utils.js diff --git a/components.json b/components.json new file mode 100644 index 00000000..60f8062c --- /dev/null +++ b/components.json @@ -0,0 +1,17 @@ +{ + "$schema": "https://ui.shadcn.com/schema.json", + "style": "default", + "rsc": false, + "tsx": false, + "tailwind": { + "config": "tailwind.config.js", + "css": "src/index.css", + "baseColor": "gray", + "cssVariables": false, + "prefix": "" + }, + "aliases": { + "components": "@/components", + "utils": "@/utilities/utils" + } +} \ No newline at end of file diff --git a/jsconfig.json b/jsconfig.json new file mode 100644 index 00000000..3255baeb --- /dev/null +++ b/jsconfig.json @@ -0,0 +1,10 @@ +{ + "compilerOptions": { + "baseUrl": ".", + "paths": { + "@/*": [ + "./src/*" + ] + } + } +} \ No newline at end of file diff --git a/package.json b/package.json index 234d3b92..1743a34b 100644 --- a/package.json +++ b/package.json @@ -23,9 +23,13 @@ "@hookstate/core": "^4.0.1", "@tanstack/react-query": "^5.22.2", "@tanstack/react-query-devtools": "^5.24.0", + "@tanstack/react-table": "^8.17.3", "axios": "^1.6.1", + "class-variance-authority": "^0.7.0", + "clsx": "^2.1.1", "date-fns": "^2.30.0", "html-react-parser": "^5.0.6", + "lucide-react": "^0.395.0", "million": "^3.0.2", "prop-types": "^15.8.1", "react": "^18.2.0", @@ -40,7 +44,9 @@ "react-router-dom": "^6.11.2", "react-share": "^5.1.0", "react-simple-wysiwyg": "^2.2.5", + "tailwind-merge": "^2.3.0", "tailwind-scrollbar-hide": "^1.1.7", + "tailwindcss-animate": "^1.0.7", "yet-another-react-lightbox": "^3.15.6" }, "devDependencies": { @@ -49,7 +55,7 @@ "@types/react": "^18.0.28", "@types/react-dom": "^18.0.11", "@vitejs/plugin-react": "^4.0.0", - "autoprefixer": "^10.4.14", + "autoprefixer": "^10.4.19", "concurrently": "^8.2.2", "eslint": "^8.43.0", "eslint-config-airbnb": "^19.0.4", @@ -61,9 +67,9 @@ "eslint-plugin-react-hooks": "^4.6.0", "husky": "^8.0.0", "knip": "^4.6.0", - "postcss": "^8.4.23", + "postcss": "^8.4.38", "prettier": "^3.3.2", - "tailwindcss": "^3.3.2", + "tailwindcss": "^3.4.3", "typescript": "^5.4.5", "vite": "^5.0.0", "vitest": "^1.6.0" diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 7a7ca553..ebcccfe9 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -23,15 +23,27 @@ importers: '@tanstack/react-query-devtools': specifier: ^5.24.0 version: 5.32.1(@tanstack/react-query@5.32.1(react@18.3.1))(react@18.3.1) + '@tanstack/react-table': + specifier: ^8.17.3 + version: 8.17.3(react-dom@18.3.1(react@18.3.1))(react@18.3.1) axios: specifier: ^1.6.1 version: 1.6.8 + class-variance-authority: + specifier: ^0.7.0 + version: 0.7.0 + clsx: + specifier: ^2.1.1 + version: 2.1.1 date-fns: specifier: ^2.30.0 version: 2.30.0 html-react-parser: specifier: ^5.0.6 version: 5.1.10(@types/react@18.3.1)(react@18.3.1) + lucide-react: + specifier: ^0.395.0 + version: 0.395.0(react@18.3.1) million: specifier: ^3.0.2 version: 3.0.6(rollup@4.17.2) @@ -74,13 +86,22 @@ importers: react-simple-wysiwyg: specifier: ^2.2.5 version: 2.2.5(react@18.3.1) + tailwind-merge: + specifier: ^2.3.0 + version: 2.3.0 tailwind-scrollbar-hide: specifier: ^1.1.7 version: 1.1.7 + tailwindcss-animate: + specifier: ^1.0.7 + version: 1.0.7(tailwindcss@3.4.3) yet-another-react-lightbox: specifier: ^3.15.6 version: 3.17.5(react-dom@18.3.1(react@18.3.1))(react@18.3.1) devDependencies: + '@playwright/test': + specifier: ^1.44.1 + version: 1.44.1 '@types/node': specifier: ^20.14.1 version: 20.14.1 @@ -94,14 +115,20 @@ importers: specifier: ^4.0.0 version: 4.2.1(vite@5.2.10(@types/node@20.14.1)) autoprefixer: - specifier: ^10.4.14 + specifier: ^10.4.19 version: 10.4.19(postcss@8.4.38) + concurrently: + specifier: ^8.2.2 + version: 8.2.2 eslint: specifier: ^8.43.0 version: 8.57.0 eslint-config-airbnb: specifier: ^19.0.4 version: 19.0.4(eslint-plugin-import@2.29.1(eslint@8.57.0))(eslint-plugin-jsx-a11y@6.8.0(eslint@8.57.0))(eslint-plugin-react-hooks@4.6.2(eslint@8.57.0))(eslint-plugin-react@7.34.1(eslint@8.57.0))(eslint@8.57.0) + eslint-config-prettier: + specifier: ^9.1.0 + version: 9.1.0(eslint@8.57.0) eslint-plugin-import: specifier: ^2.27.5 version: 2.29.1(eslint@8.57.0) @@ -109,8 +136,8 @@ importers: specifier: ^6.7.1 version: 6.8.0(eslint@8.57.0) eslint-plugin-prettier: - specifier: ^4.2.1 - version: 4.2.1(eslint@8.57.0)(prettier@2.8.8) + specifier: ^5.1.3 + version: 5.1.3(eslint-config-prettier@9.1.0(eslint@8.57.0))(eslint@8.57.0)(prettier@3.3.2) eslint-plugin-react: specifier: ^7.32.2 version: 7.34.1(eslint@8.57.0) @@ -124,13 +151,13 @@ importers: specifier: ^4.6.0 version: 4.6.0(@types/node@20.14.1)(typescript@5.4.5) postcss: - specifier: ^8.4.23 + specifier: ^8.4.38 version: 8.4.38 prettier: - specifier: ^2.8.8 - version: 2.8.8 - tailwindcss: specifier: ^3.3.2 + version: 3.3.2 + tailwindcss: + specifier: ^3.4.3 version: 3.4.3 typescript: specifier: ^5.4.5 @@ -138,6 +165,9 @@ importers: vite: specifier: ^5.0.0 version: 5.2.10(@types/node@20.14.1) + vitest: + specifier: ^1.6.0 + version: 1.6.0(@types/node@20.14.1) packages: @@ -447,6 +477,10 @@ packages: resolution: {integrity: sha512-O8jcjabXaleOG9DQ0+ARXWZBTfnP4WNAqzuiJK7ll44AmxGKv/J2M4TPjxjY3znBCfvBXFzucm1twdyFybFqEA==} engines: {node: '>=12'} + '@jest/schemas@29.6.3': + resolution: {integrity: sha512-mo5j5X+jIZmJQveBKeS/clAueipV7KgiX1vMgCxam1RNYiqE1w62n0/tJJnHtjW8ZHcQco5gY85jA3mi0L+nSA==} + engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} + '@jridgewell/gen-mapping@0.3.5': resolution: {integrity: sha512-IzL8ZoEDIBRWEzlCcRhOaCupYyN5gdIK+Q6fbFdPDg6HqX6jpkItn7DFIpW9LQzXG6Df9sA7+OKnq0qlz/GaQg==} engines: {node: '>=6.0.0'} @@ -513,6 +547,15 @@ packages: resolution: {integrity: sha512-+1VkjdD0QBLPodGrJUeqarH8VAIvQODIbwh9XpP5Syisf7YoQgsJKPNFoqqLQlu+VQ/tVSshMR6loPMn8U+dPg==} engines: {node: '>=14'} + '@pkgr/core@0.1.1': + resolution: {integrity: sha512-cq8o4cWH0ibXh9VGi5P20Tu9XF/0fFXl9EUinr9QfTM7a7p0oTA4iJRCQWppXR1Pg8dSM0UCItCkPwsk9qWWYA==} + engines: {node: ^12.20.0 || ^14.18.0 || >=16.0.0} + + '@playwright/test@1.44.1': + resolution: {integrity: sha512-1hZ4TNvD5z9VuhNJ/walIjvMVvYkZKf71axoF/uiAqpntQJXpG64dlXhoDXE3OczPuTuvjf/M5KWFg5VAVUS3Q==} + engines: {node: '>=16'} + hasBin: true + '@pnpm/constants@7.1.1': resolution: {integrity: sha512-31pZqMtjwV+Vaq7MaPrT1EoDFSYwye3dp6BiHIGRJmVThCQwySRKM7hCvqqI94epNkqFAAYoWrNynWoRYosGdw==} engines: {node: '>=16.14'} @@ -661,6 +704,9 @@ packages: cpu: [x64] os: [win32] + '@sinclair/typebox@0.27.8': + resolution: {integrity: sha512-+Fj43pSMwJs4KRrH/938Uf+uAELIgVBmQzg/q1YG10djyfA3TnrU8N8XzqCh/okZdszqBQTZf96idMfE5lnwTA==} + '@snyk/github-codeowners@1.1.0': resolution: {integrity: sha512-lGFf08pbkEac0NYgVf4hdANpAgApRjNByLXB+WBip3qj1iendOIyAwP2GKkKbQMNVy2r1xxDf0ssfWscoiC+Vw==} engines: {node: '>=8.10'} @@ -683,12 +729,23 @@ packages: peerDependencies: react: ^18.0.0 + '@tanstack/react-table@8.17.3': + resolution: {integrity: sha512-5gwg5SvPD3lNAXPuJJz1fOCEZYk9/GeBFH3w/hCgnfyszOIzwkwgp5I7Q4MJtn0WECp84b5STQUDdmvGi8m3nA==} + engines: {node: '>=12'} + peerDependencies: + react: '>=16.8' + react-dom: '>=16.8' + '@tanstack/react-virtual@3.5.0': resolution: {integrity: sha512-rtvo7KwuIvqK9zb0VZ5IL7fiJAEnG+0EiFZz8FUOs+2mhGqdGmjKIaT1XU7Zq0eFqL0jonLlhbayJI/J2SA/Bw==} peerDependencies: react: ^16.8.0 || ^17.0.0 || ^18.0.0 react-dom: ^16.8.0 || ^17.0.0 || ^18.0.0 + '@tanstack/table-core@8.17.3': + resolution: {integrity: sha512-mPBodDGVL+fl6d90wUREepHa/7lhsghg2A3vFpakEhrhtbIlgNAZiMr7ccTgak5qbHqF14Fwy+W1yFWQt+WmYQ==} + engines: {node: '>=12'} + '@tanstack/virtual-core@3.5.0': resolution: {integrity: sha512-KnPRCkQTyqhanNC0K63GBG3wA8I+D1fQuVnAvcBF8f13akOKeQp1gSbu6f77zCxhEk727iV5oQnbHLYzHrECLg==} @@ -734,6 +791,21 @@ packages: peerDependencies: vite: ^4.2.0 || ^5.0.0 + '@vitest/expect@1.6.0': + resolution: {integrity: sha512-ixEvFVQjycy/oNgHjqsL6AZCDduC+tflRluaHIzKIsdbzkLn2U/iBnVeJwB6HsIjQBdfMR8Z0tRxKUsvFJEeWQ==} + + '@vitest/runner@1.6.0': + resolution: {integrity: sha512-P4xgwPjwesuBiHisAVz/LSSZtDjOTPYZVmNAnpHHSR6ONrf8eCJOFRvUwdHn30F5M1fxhqtl7QZQUk2dprIXAg==} + + '@vitest/snapshot@1.6.0': + resolution: {integrity: sha512-+Hx43f8Chus+DCmygqqfetcAZrDJwvTj0ymqjQq4CvmpKFSTVteEOBzCusu1x2tt4OJcvBflyHUE0DZSLgEMtQ==} + + '@vitest/spy@1.6.0': + resolution: {integrity: sha512-leUTap6B/cqi/bQkXUu6bQV5TZPx7pmMBKBQiI0rJA8c3pB56ZsaTbREnF7CJfmvAS4V2cXIBAh/3rVwrrCYgw==} + + '@vitest/utils@1.6.0': + resolution: {integrity: sha512-21cPiuGMoMZwiOHa2i4LXkMkMkCGzA+MVFV70jRwHo95dL4x/ts5GZhML1QWuy7yfp3WzK3lRvZi3JnXTYqrBw==} + '@zkochan/retry@0.2.0': resolution: {integrity: sha512-WhB+2B/ZPlW2Xy/kMJBrMbqecWXcbDDgn0K0wKBAgO2OlBTz1iLJrRWduo+DGGn0Akvz1Lu4Xvls7dJojximWw==} engines: {node: '>=10'} @@ -747,6 +819,10 @@ packages: peerDependencies: acorn: ^6.0.0 || ^7.0.0 || ^8.0.0 + acorn-walk@8.3.3: + resolution: {integrity: sha512-MxXdReSRhGO7VlFe1bRG/oI7/mdLV9B9JJT0N8vZOhF7gFRR5l3M8W9G8JxmKV+JC5mGqJ0QvqfSOLsCPa4nUw==} + engines: {node: '>=0.4.0'} + acorn@8.11.3: resolution: {integrity: sha512-Y9rRfJG5jcKOE0CLisYbojUjIrIEE7AGMzA/Sm4BslANhbS+cDMpgBdcPT91oJ7OuJ9hYJBx59RjbhxVnrF8Xg==} engines: {node: '>=0.4.0'} @@ -775,6 +851,10 @@ packages: resolution: {integrity: sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==} engines: {node: '>=8'} + ansi-styles@5.2.0: + resolution: {integrity: sha512-Cxwpt2SfTzTtXcfOlzGEee8O+c+MmUgGrNiBcXnuWxuFJHe6a5Hz7qwhwe5OgaSYI0IJvkLqWX1ASG+cJOkEiA==} + engines: {node: '>=10'} + ansi-styles@6.2.1: resolution: {integrity: sha512-bN798gFfQX+viw3R7yrGWRqnrN2oRkEkUjjl4JNn4E8GxxbjtG3FbrEIIY3l8/hrwUwIeCZvi4QuOTP4MErVug==} engines: {node: '>=12'} @@ -836,6 +916,9 @@ packages: resolution: {integrity: sha512-bMxMKAjg13EBSVscxTaYA4mRc5t1UAXa2kXiGTNfZ079HIWXEkKmkgFrh/nJqamaLSrXO5H4WFFkPEaLJWbs3A==} engines: {node: '>= 0.4'} + assertion-error@1.1.0: + resolution: {integrity: sha512-jgsaNduz+ndvGyFt3uSuWqvy4lCnIJiovtouQN5JZHOKCS2QuhEdbcQHFhVksz2N2U9hXJo8odG7ETyWlEeuDw==} + ast-types-flow@0.0.8: resolution: {integrity: sha512-OH/2E5Fg20h2aPrbe+QL8JZQFko0YZaF+j4mnQ7BGhfavO7OpSLa8a0y9sBwomHdSbkhTS8TQNayBfnW5DwbvQ==} @@ -895,6 +978,10 @@ packages: builtins@5.1.0: resolution: {integrity: sha512-SW9lzGTLvWTP1AY8xeAMZimqDrIaSdLQUcVr9DMef51niJ022Ri87SwRRKYm4A6iHfkPaiVUu/Duw2Wc4J7kKg==} + cac@6.7.14: + resolution: {integrity: sha512-b6Ilus+c3RrdDk+JhLKUAQfzzgLEPy6wcXqS7f/xe1EETvsDP6GORG7SFuOs6cID5YkqchW/LXZbX5bc8j7ZcQ==} + engines: {node: '>=8'} + call-bind@1.0.7: resolution: {integrity: sha512-GHTSNSYICQ7scH7sZ+M2rFopRoLh8t2bLSW6BbgrtLsahOIB5iyAVJf9GjWK3cYTDaMj4XdBpM1cA6pIS0Kv2w==} engines: {node: '>= 0.4'} @@ -910,6 +997,10 @@ packages: caniuse-lite@1.0.30001614: resolution: {integrity: sha512-jmZQ1VpmlRwHgdP1/uiKzgiAuGOfLEJsYFP4+GBou/QQ4U6IOJCB4NP1c+1p9RGLpwObcT94jA5/uO+F1vBbog==} + chai@4.4.1: + resolution: {integrity: sha512-13sOfMv2+DWduEU+/xbun3LScLoqN17nBeTLUsmDfKdoiC1fr0n9PU4guu4AhRcOVFk/sW8LyZWHuhWtQZiF+g==} + engines: {node: '>=4'} + chalk@2.4.2: resolution: {integrity: sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==} engines: {node: '>=4'} @@ -918,10 +1009,16 @@ packages: resolution: {integrity: sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==} engines: {node: '>=10'} + check-error@1.0.3: + resolution: {integrity: sha512-iKEoDYaRmd1mxM90a2OEfWhjsjPpYPuQ+lMYsoxB126+t8fw7ySEO48nmDg5COTjxDI65/Y2OWpeEHk3ZOe8zg==} + chokidar@3.6.0: resolution: {integrity: sha512-7VT13fmjotKpGipCW9JEQAusEPE+Ei8nl6/g4FBAmIm0GOOLMua9NDDo/DWp0ZAxCr3cPq5ZpBqmPAQgDda2Pw==} engines: {node: '>= 8.10.0'} + class-variance-authority@0.7.0: + resolution: {integrity: sha512-jFI8IQw4hczaL4ALINxqLEXQbWcNjoSkloa4IaufXCJr6QawJyw7tuRysRsrE8w2p/4gGaxKIt/hX3qz/IbD1A==} + classnames@2.5.1: resolution: {integrity: sha512-saHYOzhIQs6wy2sVxTM6bUDsQO4F50V9RQ22qBpEdCW+I+/Wmke2HOl6lS6dTpdxVhb88/I6+Hs+438c3lfUow==} @@ -932,10 +1029,22 @@ packages: client-only@0.0.1: resolution: {integrity: sha512-IV3Ou0jSMzZrd3pZ48nLkT9DA7Ag1pnPzaiQhpW7c3RbcqqzvzzVu+L8gfqMp/8IM2MQtSiqaCxrrcfu8I8rMA==} + cliui@8.0.1: + resolution: {integrity: sha512-BSeNnyus75C4//NQ9gQt1/csTXyo/8Sb+afLAkzAptFuMsod9HFokGNudZpi/oQV73hnVK+sR+5PVRMd+Dr7YQ==} + engines: {node: '>=12'} + clone@1.0.4: resolution: {integrity: sha512-JQHZ2QMW6l3aH/j6xCqQThY/9OH4D/9ls34cgkUBiEeocRTU04tHfKPBsUK1PqZCUQM7GiA0IIXJSuXHI64Kbg==} engines: {node: '>=0.8'} + clsx@2.0.0: + resolution: {integrity: sha512-rQ1+kcj+ttHG0MKVGBUXwayCCF1oh39BF5COIpRzuCEv8Mwjv0XucrI2ExNTOn9IlLifGClWQcU9BrZORvtw6Q==} + engines: {node: '>=6'} + + clsx@2.1.1: + resolution: {integrity: sha512-eYm0QWBtUrBWZWG0d386OGAw16Z995PiOVo2B7bjWSbHedGl5e0ZWaq65kOGgUSNesEIDkB9ISbTg/JK9dhCZA==} + engines: {node: '>=6'} + color-convert@1.9.3: resolution: {integrity: sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==} @@ -963,6 +1072,14 @@ packages: concat-map@0.0.1: resolution: {integrity: sha512-/Srv4dswyQNBfohGpz9o6Yb3Gz3SrUDqBH5rTuhGR7ahtlbYKnVxw2bCFMRljaA7EXHaXZ8wsHdodFvbkhKmqg==} + concurrently@8.2.2: + resolution: {integrity: sha512-1dP4gpXFhei8IOtlXRE/T/4H88ElHgTiUzh71YUmtjTEHMSRS2Z/fgOxHSxxusGHogsRfxNq1vyAwxSC+EVyDg==} + engines: {node: ^14.13.0 || >=16.0.0} + hasBin: true + + confbox@0.1.7: + resolution: {integrity: sha512-uJcB/FKZtBMCJpK8MQji6bJHgu1tixKPxRLeGkNzBoOZzpnZUJm0jm2/sBDWcuBx1dYgxV4JU+g5hmNxCyAmdA==} + confusing-browser-globals@1.0.11: resolution: {integrity: sha512-JsPKdmh8ZkmnHxDk55FZ1TqVLvEQTvoByJZRN9jzI0UjxK/QgAmsphz7PGtqgPieQZ/CQcHWXCR7ATDNhGe+YA==} @@ -1033,6 +1150,10 @@ packages: supports-color: optional: true + deep-eql@4.1.4: + resolution: {integrity: sha512-SUwdGfqdKOwxCPeVYjwSyRpJ7Z+fhpwIAtmCUdZIWZ/YP5R9WAsyuSgpLVDi9bjWoN2LXHNss/dk3urXtdQxGg==} + engines: {node: '>=6'} + deep-freeze@0.0.1: resolution: {integrity: sha512-Z+z8HiAvsGwmjqlphnHW5oz6yWlOwu6EQfFTjmeTWlDeda3FS2yv3jhq35TX/ewmsnqB+RX2IdsIOyjJCQN5tg==} @@ -1061,6 +1182,10 @@ packages: didyoumean@1.2.2: resolution: {integrity: sha512-gxtyfqMg7GKyhQmb056K7M3xszy/myH8w+B4RT+QXBQsvAOdc3XymqDDPHx1BgPgsdAA5SIifona89YtRATDzw==} + diff-sequences@29.6.3: + resolution: {integrity: sha512-EjePK1srD3P08o2j4f0ExnylqRs5B9tJjcp9t1krH2qRi8CCdsYfwe9JgSLurFBWwq4uOlipzfk5fHNvwFKr8Q==} + engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} + dlv@1.1.3: resolution: {integrity: sha512-+HlytyjlPKnIG8XuRG8WvmBP8xs8P71y+SKKS6ZXWoEgLuePxtDoUEiH7WkdePWrQ5JBpE6aoVqfZfJUQkjXwA==} @@ -1179,6 +1304,12 @@ packages: eslint-plugin-react: ^7.28.0 eslint-plugin-react-hooks: ^4.3.0 + eslint-config-prettier@9.1.0: + resolution: {integrity: sha512-NSWl5BFQWEPi1j4TjVNItzYV7dZXZ+wP6I6ZhrBGpChQhZRUaElihE9uRRkcbRnNb76UMKDF3r+WTmNcGPKsqw==} + hasBin: true + peerDependencies: + eslint: '>=7.0.0' + eslint-import-resolver-node@0.3.9: resolution: {integrity: sha512-WFj2isz22JahUv+B788TlO3N6zL3nNJGU8CcZbPZvVEkBPaJdCV4vy5wyghty5ROFbCRnm132v8BScu5/1BQ8g==} @@ -1219,14 +1350,17 @@ packages: peerDependencies: eslint: ^3 || ^4 || ^5 || ^6 || ^7 || ^8 - eslint-plugin-prettier@4.2.1: - resolution: {integrity: sha512-f/0rXLXUt0oFYs8ra4w49wYZBG5GKZpAYsJSm6rnYL5uVDjd+zowwMwVZHnAjf4edNrKpCDYfXDgmRE/Ak7QyQ==} - engines: {node: '>=12.0.0'} + eslint-plugin-prettier@5.1.3: + resolution: {integrity: sha512-C9GCVAs4Eq7ZC/XFQHITLiHJxQngdtraXaM+LoUFoFp/lHNl2Zn8f3WQbe9HvTBBQ9YnKFB0/2Ajdqwo5D1EAw==} + engines: {node: ^14.18.0 || >=16.0.0} peerDependencies: - eslint: '>=7.28.0' + '@types/eslint': '>=8.0.0' + eslint: '>=8.0.0' eslint-config-prettier: '*' - prettier: '>=2.0.0' + prettier: '>=3.0.0' peerDependenciesMeta: + '@types/eslint': + optional: true eslint-config-prettier: optional: true @@ -1274,10 +1408,17 @@ packages: estree-walker@2.0.2: resolution: {integrity: sha512-Rfkk/Mp/DL7JVje3u18FxFujQlTNR2q6QfMSMB7AvCBx91NGj/ba3kCfza0f6dVDbw7YlRf/nDrn7pQrCCyQ/w==} + estree-walker@3.0.3: + resolution: {integrity: sha512-7RUKfXgSMMkzt6ZuXmqapOurLGPPfgj6l9uRZ7lRGolvk0y2yocc35LdcxKC5PQZdn2DMqioAQ2NoWcrTKmm6g==} + esutils@2.0.3: resolution: {integrity: sha512-kVscqXk4OCp68SZ0dkgEKVi6/8ij300KBWTJq32P/dYeWTSwK41WyTxalN1eRmA5Z9UU/LX9D7FWSmV9SAYx6g==} engines: {node: '>=0.10.0'} + execa@8.0.1: + resolution: {integrity: sha512-VyhnebXciFV2DESc+p6B+y0LjSm0krU4OgJN44qFAhBY0TJ+1V61tYD2+wHusZ6F9n5K+vl8k0sTy7PEfV4qpg==} + engines: {node: '>=16.17'} + fast-deep-equal@3.1.3: resolution: {integrity: sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q==} @@ -1365,6 +1506,11 @@ packages: fs.realpath@1.0.0: resolution: {integrity: sha512-OO0pH2lK6a0hZnAdau5ItzHPI6pUlvI7jMVnxUQRtw4owF2wk8lOSabtGDCTP4Ggrg2MbGnWO9X8K1t4+fGMDw==} + fsevents@2.3.2: + resolution: {integrity: sha512-xiqMQR4xAeHTuB9uWm+fFRcIOgKBMiOBP+eXiyT7jsgVCq1bkVygt00oASowB7EdtpOHaaPgKt812P9ab+DDKA==} + engines: {node: ^8.16.0 || ^10.6.0 || >=11.0.0} + os: [darwin] + fsevents@2.3.3: resolution: {integrity: sha512-5xoDfX+fL7faATnagmWPpbFtwh/R77WmMMqqHGS65C3vvB0YHrgF+B1YmZ3441tMj5n63k0212XNoJwzlhffQw==} engines: {node: ^8.16.0 || ^10.6.0 || >=11.0.0} @@ -1384,10 +1530,21 @@ packages: resolution: {integrity: sha512-3hN7NaskYvMDLQY55gnW3NQ+mesEAepTqlg+VEbj7zzqEMBVNhzcGYYeqFo/TlYz6eQiFcp1HcsCZO+nGgS8zg==} engines: {node: '>=6.9.0'} + get-caller-file@2.0.5: + resolution: {integrity: sha512-DyFP3BM/3YHTQOCUL/w0OZHR0lpKeGrxotcHWcqNEdnltqFwXVfhEBQ94eIo34AfQpo0rGki4cyIiftY06h2Fg==} + engines: {node: 6.* || 8.* || >= 10.*} + + get-func-name@2.0.2: + resolution: {integrity: sha512-8vXOvuE167CtIc3OyItco7N/dpRtBbYOsPsXCz7X/PMnlGjYjSGuZJgM1Y7mmew7BKf9BqvLX2tnOVy1BBUsxQ==} + get-intrinsic@1.2.4: resolution: {integrity: sha512-5uYhsJH8VJBTv7oslg4BznJYhDoRI6waYCxMmCdnTrcCrHA/fCFKoTFz2JKKE0HdDFUF7/oQuhzumXJK7paBRQ==} engines: {node: '>= 0.4'} + get-stream@8.0.1: + resolution: {integrity: sha512-VaUJspBffn/LMCJVoMvSAdmscJyS1auj5Zulnn5UoYcY531UWmdwhRWkcGKnGU93m5HSXP9LP2usOryrBtQowA==} + engines: {node: '>=16'} + get-symbol-description@1.0.2: resolution: {integrity: sha512-g0QYk1dZBxGwk+Ngc+ltRH2IBp2f7zBkBMBJZCDerh6EhlhSR6+9irMCuT/09zD6qkarHUSn529sK/yL4S27mg==} engines: {node: '>= 0.4'} @@ -1490,6 +1647,10 @@ packages: htmlparser2@9.1.0: resolution: {integrity: sha512-5zfg6mHUoaer/97TxnGpxmbR7zJtPwIYFMZ/H5ucTlPZhKvtum05yiPK3Mgai3a0DyVxv7qYqoweaEd2nrYQzQ==} + human-signals@5.0.0: + resolution: {integrity: sha512-AXcZb6vzzrFAUE61HnN4mpLqd/cSIwNQjtNWR0euPm6y0iqx3G4gOXaIDdtdDwZmhwe82LA6+zinmW4UBWVePQ==} + engines: {node: '>=16.17.0'} + husky@8.0.3: resolution: {integrity: sha512-+dQSyqPh4x1hlO1swXBiNb2HzTDN1I2IGLQx1GrBuiqFJfoMrnZWwVmatvSiO+Iz8fBUnf+lekwNo4c2LlXItg==} engines: {node: '>=14'} @@ -1629,6 +1790,10 @@ packages: resolution: {integrity: sha512-nA2hv5XIhLR3uVzDDfCIknerhx8XUKnstuOERPNNIinXG7v9u+ohXF67vxm4TPTEPU6lm61ZkwP3c9PCB97rhg==} engines: {node: '>= 0.4'} + is-stream@3.0.0: + resolution: {integrity: sha512-LnQR4bZ9IADDRSkvpqMGvt/tEJWclzklNgSw48V5EAaAeDd6qGvN8ei6k5p0tvxSR171VmGyHuTiAOfxAbr8kA==} + engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} + is-string@1.0.7: resolution: {integrity: sha512-tE2UXzivje6ofPW7l23cjDOMa09gb7xlAqG6jG5ej6uPV32TlWP3NKPigtaGeHNu9fohccRYvIiZMfOOnOYUtg==} engines: {node: '>= 0.4'} @@ -1680,6 +1845,9 @@ packages: js-tokens@4.0.0: resolution: {integrity: sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ==} + js-tokens@9.0.0: + resolution: {integrity: sha512-WriZw1luRMlmV3LGJaR6QOJjWwgLUTf89OwT2lUOyjX2dJGBwgmIkbcz+7WFZjrZM635JOIR517++e/67CP9dQ==} + js-yaml@4.1.0: resolution: {integrity: sha512-wpxZs9NoxZaJESJGIZTyDEaYpl0FKSA+FB9aJiyemKhMwkxQg63h4T1KJgUGHpTqPDNRcmmYLugrRjJlBtWvRA==} hasBin: true @@ -1768,6 +1936,10 @@ packages: resolution: {integrity: sha512-gUD/epcRms75Cw8RT1pUdHugZYM5ce64ucs2GEISABwkRsOQr0q2wm/MV2TKThycIe5e0ytRweW2RZxclogCdQ==} engines: {node: '>=8'} + local-pkg@0.5.0: + resolution: {integrity: sha512-ok6z3qlYyCDS4ZEU27HaU6x/xZa9Whf8jD4ptH5UZTQYZVYeb9bnZ3ojVhiJNLiXK1Hfc0GNbLXcmZ5plLDDBg==} + engines: {node: '>=14'} + locate-path@6.0.0: resolution: {integrity: sha512-iPZK6eYjbxRu3uB4/WZ3EsEIMJFMqAoopl3R+zuq0UjcAm/MO6KCweDgPfP3elTztoKP3KtnVHxTn2NHBSDVUw==} engines: {node: '>=10'} @@ -1784,10 +1956,16 @@ packages: lodash.throttle@4.1.1: resolution: {integrity: sha512-wIkUCfVKpVsWo3JSZlc+8MB5it+2AN5W8J7YVMST30UrvcQNZ1Okbj+rbVniijTWE6FGYy4XJq/rHkas8qJMLQ==} + lodash@4.17.21: + resolution: {integrity: sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg==} + loose-envify@1.4.0: resolution: {integrity: sha512-lyuxPGr/Wfhrlem2CL/UcnUc1zcqKAImBDzukY7Y5F/yQiNdko6+fRLevlw1HgMySw7f611UIY408EtxRSoK3Q==} hasBin: true + loupe@2.3.7: + resolution: {integrity: sha512-zSMINGVYkdpYSOBmLi0D1Uo7JU9nVdQKrHxC8eYlV+9YKK9WePqAlL7lSlorG/U2Fw1w0hTBmaa/jrQ3UbPHtA==} + lru-cache@10.2.2: resolution: {integrity: sha512-9hp3Vp2/hFQUiIwKo8XCeFVnrg8Pk3TYNPIR7tJADKi5YfcF7vEaK7avFHTlSy3kOKYaJQaalfEo6YuXdceBOQ==} engines: {node: 14 || >=16.14} @@ -1799,9 +1977,17 @@ packages: resolution: {integrity: sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==} engines: {node: '>=10'} + lucide-react@0.395.0: + resolution: {integrity: sha512-6hzdNH5723A4FLaYZWpK50iyZH8iS2Jq5zuPRRotOFkhu6kxxJiebVdJ72tCR5XkiIeYFOU5NUawFZOac+VeYw==} + peerDependencies: + react: ^16.5.1 || ^17.0.0 || ^18.0.0 + magic-string@0.16.0: resolution: {integrity: sha512-c4BEos3y6G2qO0B9X7K0FVLOPT9uGrjYwYRLFmDqyl5YMboUviyecnXWp94fJTSMwPw2/sf+CEYt5AGpmklkkQ==} + magic-string@0.30.10: + resolution: {integrity: sha512-iIRwTIf0QKV3UAnYK4PU8uiEc4SRh5jX0mwpIwETPpHdhVM4f53RSwS/vXvN1JhGX+Cs7B8qIq3d6AH49O5fAQ==} + map-age-cleaner@0.1.3: resolution: {integrity: sha512-bJzx6nMoP6PDLPBFmg7+xRKeFZvFboMrGlxmNj9ClvX53KrmvM5bXFXEWjbz4cz1AFn+jWJ9z/DJSz7hrs0w3w==} engines: {node: '>=6'} @@ -1818,6 +2004,9 @@ packages: resolution: {integrity: sha512-qFCFUDs7U3b8mBDPyz5EToEKoAkgCzqquIgi9nkkR9bixxOVOre+09lbuH7+9Kn2NFpm56M3GUWVbU2hQgdACA==} engines: {node: '>=10'} + merge-stream@2.0.0: + resolution: {integrity: sha512-abv/qOcuPfk3URPfDzmZU1LKmuw8kT+0nIHvKrKgFrwifol/doWcdA4ZqsWQ8ENrFKkd67Mfpo/LovbIUsbt3w==} + merge2@1.4.1: resolution: {integrity: sha512-8q7VEgMJW4J8tcfVPy8g09NcQwZdbwFEqhe/WZkoIzjn/3TGDwtOCYtXGxA3O8tPzpczCCDgv+P2P5y00ZJOOg==} engines: {node: '>= 8'} @@ -1842,6 +2031,10 @@ packages: resolution: {integrity: sha512-Ysbi9uYW9hFyfrThdDEQuykN4Ey6BuwPD2kpI5ES/nFTDn/98yxYNLZJcgUAKPT/mcrLLKaGzJR9YVxJrIdASQ==} engines: {node: '>=8'} + mimic-fn@4.0.0: + resolution: {integrity: sha512-vqiC06CuhBTUdZH+RYl8sFrL096vA45Ok5ISO6sE/Mr1jRbGH4Csnhi8f3wKVl7x8mO4Au7Ir9D3Oyv1VYMFJw==} + engines: {node: '>=12'} + minimatch@3.1.2: resolution: {integrity: sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==} @@ -1856,6 +2049,9 @@ packages: resolution: {integrity: sha512-jYofLM5Dam9279rdkWzqHozUo4ybjdZmCsDHePy5V/PbBcVMiSZR97gmAy45aqi8CK1lG2ECd356FU86avfwUQ==} engines: {node: '>=16 || 14 >=14.17'} + mlly@1.7.1: + resolution: {integrity: sha512-rrVRZRELyQzrIUAVMHxP97kv+G786pHmOKzuFII8zDYahFBS7qnHh2AlYSl1GAHhaMPCz6/oHjVMcfFYgFYHgA==} + ms@2.0.0: resolution: {integrity: sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==} @@ -1916,6 +2112,10 @@ packages: resolution: {integrity: sha512-VfvRSs/b6n9ol4Qb+bDwNGUXutpy76x6MARw/XssevE0TnctIKcmklJZM5Z7nqs5z5aW+0S63pgCNbpkUNNXBg==} engines: {node: ^16.14.0 || >=18.0.0} + npm-run-path@5.3.0: + resolution: {integrity: sha512-ppwTtiJZq0O/ai0z7yfudtBpWIoxM8yE6nHi1X47eFR2EWORqfbu6CnPlNsjeN683eT0qG6H/Pyf9fCcvjnnnQ==} + engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} + object-assign@4.1.1: resolution: {integrity: sha512-rJgTQnkUnH1sFw8yT6VSU3zD3sWmu6sZhIseY8VX+GRu3P6F7Fu+JNDoXfklElbLJSnc3FUQHVe4cU5hj+BcUg==} engines: {node: '>=0.10.0'} @@ -1965,6 +2165,10 @@ packages: once@1.4.0: resolution: {integrity: sha512-lNaJgI+2Q5URQBkccEKHTQOPaXdUxnZZElQTZY0MFUAuaEqe1E+Nyvgdz/aIyNi6Z9MzO5dv1H8n58/GELp3+w==} + onetime@6.0.0: + resolution: {integrity: sha512-1FlR+gjXK7X+AsAHso35MnyN5KqGwJRi/31ft6x0M194ht7S+rWAvd7PHss9xSKMzE0asv1pyIHaJYq+BbacAQ==} + engines: {node: '>=12'} + optionator@0.9.4: resolution: {integrity: sha512-6IpQ7mKUxRcZNLIObR0hz7lxsapSSIYNZJwXPGeF0mTVqGKFIXj1DQcMoT22S3ROcLyY/rz0PWaWZ9ayWmad9g==} engines: {node: '>= 0.8.0'} @@ -1977,6 +2181,10 @@ packages: resolution: {integrity: sha512-TYOanM3wGwNGsZN2cVTYPArw454xnXj5qmWF1bEoAc4+cU/ol7GVh7odevjp1FNHduHc3KZMcFduxU5Xc6uJRQ==} engines: {node: '>=10'} + p-limit@5.0.0: + resolution: {integrity: sha512-/Eaoq+QyLSiXQ4lyYV23f14mZRQcXnxfHrN0vCai+ak9G0pp9iEQukIIZq5NccEvwRB8PUnZT0KsOoDCINS1qQ==} + engines: {node: '>=18'} + p-locate@5.0.0: resolution: {integrity: sha512-LaNjtRWUBY++zB5nE/NwcaoMylSPk+S+ZHNB1TzdbMJMny6dynpAGt7X/tl/QYq3TIeE6nxHppbo2LGymrG5Pw==} engines: {node: '>=10'} @@ -2017,6 +2225,10 @@ packages: resolution: {integrity: sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q==} engines: {node: '>=8'} + path-key@4.0.0: + resolution: {integrity: sha512-haREypq7xkM7ErfgIyA0z+Bj4AGKlMSdlQE2jvJo6huWD1EdkKYV+G/T4nq0YEF2vgTT8kqMFKo1uHn950r4SQ==} + engines: {node: '>=12'} + path-parse@1.0.7: resolution: {integrity: sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw==} @@ -2028,6 +2240,12 @@ packages: resolution: {integrity: sha512-cMMJTAZlion/RWRRC48UbrDymEIt+/YSD/l8NqjneyDw2rDOBQcP5yRkMB4CYGn47KMhZvbblBP7Z79OsMw72w==} engines: {node: '>=8.15'} + pathe@1.1.2: + resolution: {integrity: sha512-whLdWMYL2TwI08hn8/ZqAbrVemu0LNaNNJZX73O6qaIdCTfXutsLhMkjdENX0qhsQ9uIimo4/aQOmXkoon2nDQ==} + + pathval@1.1.1: + resolution: {integrity: sha512-Dp6zGqpTdETdR63lehJYPeIOqpiNBNtc7BpWSLrOje7UaIsE5aY92r/AunQA7rsXvet3lrJ3JnZX29UPTKXyKQ==} + picocolors@1.0.0: resolution: {integrity: sha512-1fygroTLlHu66zi26VoTDv8yRgm0Fccecssto+MhsZ0D/DGW2sm8E8AjW7NU5VVTRt5GxbeZ5qBuJr+HyLYkjQ==} @@ -2047,6 +2265,19 @@ packages: resolution: {integrity: sha512-saLsH7WeYYPiD25LDuLRRY/i+6HaPYr6G1OUlN39otzkSTxKnubR9RTxS3/Kk50s1g2JTgFwWQDQyplC5/SHZg==} engines: {node: '>= 6'} + pkg-types@1.1.1: + resolution: {integrity: sha512-ko14TjmDuQJ14zsotODv7dBlwxKhUKQEhuhmbqo1uCi9BB0Z2alo/wAXg6q1dTR5TyuqYyWhjtfe/Tsh+X28jQ==} + + playwright-core@1.44.1: + resolution: {integrity: sha512-wh0JWtYTrhv1+OSsLPgFzGzt67Y7BE/ZS3jEqgGBlp2ppp1ZDj8c+9IARNW4dwf1poq5MgHreEM2KV/GuR4cFA==} + engines: {node: '>=16'} + hasBin: true + + playwright@1.44.1: + resolution: {integrity: sha512-qr/0UJ5CFAtloI3avF95Y0L1xQo6r3LQArLIg/z/PoGJ6xa+EwzrwO5lpNr/09STxdHuUoP2mvuELJS+hLdtgg==} + engines: {node: '>=16'} + hasBin: true + possible-typed-array-names@1.0.0: resolution: {integrity: sha512-d7Uw+eZoloe0EHDIYoe+bQ5WXnGMOpmiZFTuMWCwpjzzkL2nTjcKiAk4hh8TjnGye2TwWOk3UXucZ+3rbmBa8Q==} engines: {node: '>= 0.4'} @@ -2100,11 +2331,15 @@ packages: resolution: {integrity: sha512-GbK2cP9nraSSUF9N2XwUwqfzlAFlMNYYl+ShE/V+H8a9uNl/oUqB1w2EL54Jh0OlyRSd8RfWYJ3coVS4TROP2w==} engines: {node: '>=6.0.0'} - prettier@2.8.8: - resolution: {integrity: sha512-tdN8qQGvNjw4CHbY+XXk0JgCXn9QiF21a55rBe5LJAU+kDyC4WQn4+awm2Xfk2lQMk5fKup9XgzTZtGkjBdP9Q==} - engines: {node: '>=10.13.0'} + prettier@3.3.2: + resolution: {integrity: sha512-rAVeHYMcv8ATV5d508CFdn+8/pHPpXeIid1DdrPwXnaAdH7cqjVbpJaT5eq4yRAFU/lsbwYwSF/n5iNrdJHPQA==} + engines: {node: '>=14'} hasBin: true + pretty-format@29.7.0: + resolution: {integrity: sha512-Pdlw/oPxN+aXdmM9R00JVC9WVFoCLTKJvDVLgmJ+qAffBMxsV85l/Lu7sNx4zSzPyoL2euImuEwHhOXdEgNFZQ==} + engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} + pretty-ms@9.0.0: resolution: {integrity: sha512-E9e9HJ9R9NasGOgPaPE8VMeiPKAyWR5jcFpNnwIejslIhWqdqOrb2wShBsncMPUb+BcCd2OPYfh7p2W6oemTng==} engines: {node: '>=18'} @@ -2182,6 +2417,9 @@ packages: react-is@16.13.1: resolution: {integrity: sha512-24e6ynE2H+OKt4kqsOvNd8kBpV65zoxbA4BVsEOB3ARVWQki/DHzaUoC5KuON/BiccDaCCTZBuOcfZs70kR8bQ==} + react-is@18.3.1: + resolution: {integrity: sha512-/LLMVyas0ljjAtoYiPqYiL8VWXzUUdThrmU5+n20DZv+a+ClRoevUzw5JxU+Ieh5/c87ytoTBV9G1FiKfNJdmg==} + react-lazy-load-image-component@1.6.0: resolution: {integrity: sha512-8KFkDTgjh+0+PVbH+cx0AgxLGbdTsxWMnxXzU5HEUztqewk9ufQAu8cstjZhyvtMIPsdMcPZfA0WAa7HtjQbBQ==} peerDependencies: @@ -2258,6 +2496,10 @@ packages: resolution: {integrity: sha512-vSxE5Ww7Jnyotvaxi3Dj0vOMoojH8KMkBfs9xYeW/qNfJiLTcC1fmwTjrbGUq3mQSOCxkG0DbdcvwTUrpvBN4w==} engines: {node: '>=12.10'} + require-directory@2.1.1: + resolution: {integrity: sha512-fGxEI7+wsG9xrvdjsrlmL22OMTTiHRwAMroiEeMgq8gzoLC/PQr7RsRDSTLUg/bZAZtF+TVIkHc6/4RIKrui+Q==} + engines: {node: '>=0.10.0'} + resolve-from@4.0.0: resolution: {integrity: sha512-pb/MYmXstAkysRFx8piNI1tGFNQIFA3vkE3Gq4EuA1dF6gHp/+vgZqsCGJapvy8N3Q+4o7FwvquPJcnZ7RYy4g==} engines: {node: '>=4'} @@ -2293,6 +2535,9 @@ packages: run-parallel@1.2.0: resolution: {integrity: sha512-5l4VyZR86LZ/lDxZTR6jqL8AFE2S0IFLMP26AbjsLVADxHdhB/c0GUsH+y39UfCi3dzz8OlQuPmnaJOMoDHQBA==} + rxjs@7.8.1: + resolution: {integrity: sha512-AA3TVj+0A2iuIoQkWEK/tqFjBq2j+6PO6Y0zJcvzLAFhEFIO3HL0vls9hWLncZbAAbK0mar7oZ4V079I/qPMxg==} + safe-array-concat@1.1.2: resolution: {integrity: sha512-vj6RsCsWBCf19jIeHEfkRMw8DPiBb+DMXklQ/1SGDHOMlHdPUkZXFQ2YdplS23zESTijAcurb1aSgJA3AgMu1Q==} engines: {node: '>=0.4'} @@ -2338,10 +2583,16 @@ packages: shell-quote-word@1.0.1: resolution: {integrity: sha512-lT297f1WLAdq0A4O+AknIFRP6kkiI3s8C913eJ0XqBxJbZPGWUNkRQk2u8zk4bEAjUJ5i+fSLwB6z1HzeT+DEg==} + shell-quote@1.8.1: + resolution: {integrity: sha512-6j1W9l1iAs/4xYBI1SYOVZyFcCis9b4KCLQ8fgAGG07QvzaRLVVRQvAy85yNmmZSjYjg4MWh4gNvlPujU/5LpA==} + side-channel@1.0.6: resolution: {integrity: sha512-fDW/EZ6Q9RiO8eFG8Hj+7u/oW+XrPTIChwCOM2+th2A6OblDtYYIpve9m+KvI9Z4C9qSEXlaGR6bTEYHReuglA==} engines: {node: '>= 0.4'} + siginfo@2.0.0: + resolution: {integrity: sha512-ybx0WO1/8bSBLEWXZvEd7gMW3Sn3JFlW3TvX1nREbDLRNQNaeNN8WK0meBwPdAaOI7TtRRRJn/Es1zhrrCHu7g==} + signal-exit@4.1.0: resolution: {integrity: sha512-bzyZ1e88w9O1iNJbKnOlvYTrWPDl46O1bG0D3XInv+9tkPrxrN8jUUTiFlDkkmKWgn1M6CfIA13SuGqOa9Korw==} engines: {node: '>=14'} @@ -2354,6 +2605,9 @@ packages: resolution: {integrity: sha512-itJW8lvSA0TXEphiRoawsCksnlf8SyvmFzIhltqAHluXd88pkCd+cXJVHTDwdCr0IzwptSm035IHQktUu1QUMg==} engines: {node: '>=0.10.0'} + spawn-command@0.0.2: + resolution: {integrity: sha512-zC8zGoGkmc8J9ndvml8Xksr1Amk9qBujgbF0JAIWO7kXr43w0h/0GJNM/Vustixu+YE8N/MTrQ7N31FvHUACxQ==} + spdx-correct@3.2.0: resolution: {integrity: sha512-kN9dJbvnySHULIluDHy32WHRUu3Og7B9sbY7tsFLctQkIqnMh3hErYgdMjTYuqmcXX+lK5T1lnUt3G7zNswmZA==} @@ -2373,6 +2627,12 @@ packages: resolution: {integrity: sha512-bSf16tAFkGeRlUNDjXu8FzaMQt6g2HZJrun7mtMbIPOddxt3GLMSz5VWUWcqTJUPfLEaDIepGxv+bYQW49596A==} engines: {node: ^14.17.0 || ^16.13.0 || >=18.0.0} + stackback@0.0.2: + resolution: {integrity: sha512-1XMJE5fQo1jGH6Y/7ebnwPOBEkIEnT4QF32d5R1+VXdXveM0IBMJt8zfaxX1P3QhVwrYe+576+jkANtSS2mBbw==} + + std-env@3.7.0: + resolution: {integrity: sha512-JPbdCEQLj1w5GilpiHAx3qJvFndqybBysA3qUOnznweH4QbNYUsW/ea8QzSrnh0vNsezMMw5bcVool8lM0gwzg==} + string-width@4.2.3: resolution: {integrity: sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==} engines: {node: '>=8'} @@ -2418,6 +2678,10 @@ packages: resolution: {integrity: sha512-3xurFv5tEgii33Zi8Jtp55wEIILR9eh34FAW00PZf+JnSsTmV/ioewSgQl97JHvgjoRGwPShsWm+IdrxB35d0w==} engines: {node: '>=8'} + strip-final-newline@3.0.0: + resolution: {integrity: sha512-dOESqjYr96iWYylGObzd39EuNTa5VJxyvVAEm5Jnh7KGo75V43Hk1odPQkNDyXNmUR6k+gEiDVXnjB8HJ3crXw==} + engines: {node: '>=12'} + strip-json-comments@3.1.1: resolution: {integrity: sha512-6fPc+R4ihwqP6N/aIv2f1gMH8lOVtWQHoqC4yK6oSDVVocumAsfCqjkXnqiYMhmMwS/mEHLp7Vehlt3ql6lEig==} engines: {node: '>=8'} @@ -2426,6 +2690,9 @@ packages: resolution: {integrity: sha512-0fk9zBqO67Nq5M/m45qHCJxylV/DhBlIOVExqgOMiCCrzrhU6tCibRXNqE3jwJLftzE9SNuZtYbpzcO+i9FiKw==} engines: {node: '>=14.16'} + strip-literal@2.1.0: + resolution: {integrity: sha512-Op+UycaUt/8FbN/Z2TWPBLge3jWrP3xj10f3fnYxf052bKuS3EKs1ZQcVGjnEMdsNVAM+plXRdmjrZ/KgG3Skw==} + style-to-js@1.1.12: resolution: {integrity: sha512-tv+/FkgNYHI2fvCoBMsqPHh5xovwiw+C3X0Gfnss/Syau0Nr3IqGOJ9XiOYXoPnToHVbllKFf5qCNFJGwFg5mg==} @@ -2448,13 +2715,29 @@ packages: resolution: {integrity: sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==} engines: {node: '>=8'} + supports-color@8.1.1: + resolution: {integrity: sha512-MpUEN2OodtUzxvKQl72cUF7RQ5EiHsGvSsVG0ia9c5RbWGL2CI4C7EpPS8UTBIplnlzZiNuV56w+FuNxy3ty2Q==} + engines: {node: '>=10'} + supports-preserve-symlinks-flag@1.0.0: resolution: {integrity: sha512-ot0WnXS9fgdkgIcePe6RHNk1WA8+muPa6cSjeR3V8K27q9BB1rTE3R1p7Hv0z1ZyAc8s6Vvv8DIyWf681MAt0w==} engines: {node: '>= 0.4'} + synckit@0.8.8: + resolution: {integrity: sha512-HwOKAP7Wc5aRGYdKH+dw0PRRpbO841v2DENBtjnR5HFWoiNByAl7vrx3p0G/rCyYXQsrxqtX48TImFtPcIHSpQ==} + engines: {node: ^14.18.0 || >=16.0.0} + + tailwind-merge@2.3.0: + resolution: {integrity: sha512-vkYrLpIP+lgR0tQCG6AP7zZXCTLc1Lnv/CCRT3BqJ9CZ3ui2++GPaGb1x/ILsINIMSYqqvrpqjUFsMNLlW99EA==} + tailwind-scrollbar-hide@1.1.7: resolution: {integrity: sha512-X324n9OtpTmOMqEgDUEA/RgLrNfBF/jwJdctaPZDzB3mppxJk7TLIDmOreEDm1Bq4R9LSPu4Epf8VSdovNU+iA==} + tailwindcss-animate@1.0.7: + resolution: {integrity: sha512-bl6mpH3T7I3UFxuvDEXLxy/VuFxBk5bbzplh7tXI68mwMokNYd1t9qPBHlnyTwfa4JGC4zP516I1hYYtQ/vspA==} + peerDependencies: + tailwindcss: '>=3.0.0 || insiders' + tailwindcss@3.4.3: resolution: {integrity: sha512-U7sxQk/n397Bmx4JHbJx/iSOOv5G+II3f1kpLpY2QeUv5DcPdcTsYLlusZfq1NthHS1c1cZoyFmmkex1rzke0A==} engines: {node: '>=14.0.0'} @@ -2473,6 +2756,17 @@ packages: through2@4.0.2: resolution: {integrity: sha512-iOqSav00cVxEEICeD7TjLB1sueEL+81Wpzp2bY17uZjZN0pWZPuo4suZ/61VujxmqSGFfgOcNuTZ85QJwNZQpw==} + tinybench@2.8.0: + resolution: {integrity: sha512-1/eK7zUnIklz4JUUlL+658n58XO2hHLQfSk1Zf2LKieUjxidN16eKFEoDEfjHc3ohofSSqK3X5yO6VGb6iW8Lw==} + + tinypool@0.8.4: + resolution: {integrity: sha512-i11VH5gS6IFeLY3gMBQ00/MmLncVP7JLXOw1vlgkytLmJK7QnEr7NXf0LBdxfmNPAeyetukOk0bOYrJrFGjYJQ==} + engines: {node: '>=14.0.0'} + + tinyspy@2.2.1: + resolution: {integrity: sha512-KYad6Vy5VDWV4GH3fjpseMQ/XU2BhIYP7Vzd0LG44qRWm/Yt2WCOTicFdvmgo6gWaqooMQCawTtILVQJupKu7A==} + engines: {node: '>=14.0.0'} + to-fast-properties@2.0.0: resolution: {integrity: sha512-/OaKK0xYrs3DmxRYqL/yDc+FxFUVYhDlXMhRmv3z915w2HF1tnN1omB354j8VUGO/hbRzyD6Y3sA7v7GS/ceog==} engines: {node: '>=4'} @@ -2490,16 +2784,27 @@ packages: to-space-case@1.0.0: resolution: {integrity: sha512-rLdvwXZ39VOn1IxGL3V6ZstoTbwLRckQmn/U8ZDLuWwIXNpuZDhQ3AiRUlhTbOXFVE9C+dR51wM0CBDhk31VcA==} + tree-kill@1.2.2: + resolution: {integrity: sha512-L0Orpi8qGpRG//Nd+H90vFB+3iHnue1zSSGmNOOCh1GLJ7rUKVwV2HvijphGQS2UmhUZewS9VgvxYIdgr+fG1A==} + hasBin: true + ts-interface-checker@0.1.13: resolution: {integrity: sha512-Y/arvbn+rrz3JCKl9C4kVNfTfSm2/mEp5FSz5EsZSANGPSlQrpRI5M4PKF+mJnE52jOO90PnPSc3Ur3bTQw0gA==} tsconfig-paths@3.15.0: resolution: {integrity: sha512-2Ac2RgzDe/cn48GvOe3M+o82pEFewD3UPbyoUHHdKasHwJKjds4fLXWf/Ux5kATBKN20oaFGu+jbElp1pos0mg==} + tslib@2.6.3: + resolution: {integrity: sha512-xNvxJEOUiWPGhUuUdQgAJPKOOJfGnIyKySOc09XkKsgdUV/3E2zvwZYdejjmRgPCgcym1juLH3226yA7sEFJKQ==} + type-check@0.4.0: resolution: {integrity: sha512-XleUoc9uwGXqjWwXaUTZAmzMcFZ5858QA2vvx1Ur5xIcixXIP+8LnFDgRplU30us6teqdlskFfu+ae4K79Ooew==} engines: {node: '>= 0.8.0'} + type-detect@4.0.8: + resolution: {integrity: sha512-0fr/mIH1dlO+x7TlcMy+bIDqKPsw/70tVyeHW787goQjhmqaZe10uwLujubK9q9Lg6Fiho1KUKDYz0Z7k7g5/g==} + engines: {node: '>=4'} + type-fest@0.20.2: resolution: {integrity: sha512-Ne+eE4r0/iWnpAxD852z3A+N0Bt5RN//NjJwRd2VFHEmrywxf5vsZlh4R6lixl6B+wz/8d+maTSAkN1FIkI3LQ==} engines: {node: '>=10'} @@ -2529,6 +2834,9 @@ packages: engines: {node: '>=14.17'} hasBin: true + ufo@1.5.3: + resolution: {integrity: sha512-Y7HYmWaFwPUmkoQCUIAYpKqkOf+SbVj/2fJJZ4RJMCfZp0rTGwRbzQD+HghfnhKOjL9E01okqz+ncJskGYfBNw==} + unbox-primitive@1.0.2: resolution: {integrity: sha512-61pPlCD9h51VoreyJ0BReideM3MDKMKnh6+V9L08331ipq6Q8OFXZYiqP6n/tbHx4s5I9uRhcye6BrbkizkBDw==} @@ -2581,6 +2889,11 @@ packages: resolution: {integrity: sha512-PSvMIZS7C1MuVNBXl/CDG2pZq8EXy/NW2dHIdm3bVP5N0PC8utDK8ttXLXj44Gn3J0lQE3U7Mpm1estAOd+eiA==} engines: {node: '>=10.13'} + vite-node@1.6.0: + resolution: {integrity: sha512-de6HJgzC+TFzOu0NTC4RAIsyf/DY/ibWDYQUcuEA84EMHhcefTUGkjFHKKEJhQN4A+6I0u++kr3l36ZF2d7XRw==} + engines: {node: ^18.0.0 || >=20.0.0} + hasBin: true + vite@5.2.10: resolution: {integrity: sha512-PAzgUZbP7msvQvqdSD+ErD5qGnSFiGOoWmV5yAKUEI0kdhjbH6nMWVyZQC/hSc4aXwc0oJ9aEdIiF9Oje0JFCw==} engines: {node: ^18.0.0 || >=20.0.0} @@ -2609,6 +2922,31 @@ packages: terser: optional: true + vitest@1.6.0: + resolution: {integrity: sha512-H5r/dN06swuFnzNFhq/dnz37bPXnq8xB2xB5JOVk8K09rUtoeNN+LHWkoQ0A/i3hvbUKKcCei9KpbxqHMLhLLA==} + engines: {node: ^18.0.0 || >=20.0.0} + hasBin: true + peerDependencies: + '@edge-runtime/vm': '*' + '@types/node': ^18.0.0 || >=20.0.0 + '@vitest/browser': 1.6.0 + '@vitest/ui': 1.6.0 + happy-dom: '*' + jsdom: '*' + peerDependenciesMeta: + '@edge-runtime/vm': + optional: true + '@types/node': + optional: true + '@vitest/browser': + optional: true + '@vitest/ui': + optional: true + happy-dom: + optional: true + jsdom: + optional: true + vlq@0.2.3: resolution: {integrity: sha512-DRibZL6DsNhIgYQ+wNdWDL2SL3bKPlVrRiBqV5yuMm++op8W4kGFtaQfCs4KEJn0wBZcHVHJ3eoywX8983k1ow==} @@ -2647,6 +2985,11 @@ packages: engines: {node: ^16.13.0 || >=18.0.0} hasBin: true + why-is-node-running@2.2.2: + resolution: {integrity: sha512-6tSwToZxTOcotxHeA+qGCq1mVzKR3CwcJGmVcY+QE8SHy6TnpFnh8PAvPNHYr7EcuVeG0QSMxtYCuO1ta/G/oA==} + engines: {node: '>=8'} + hasBin: true + word-wrap@1.2.5: resolution: {integrity: sha512-BN22B5eaMMI9UMtjrGd5g5eCYPpCPDUy0FJXbYsaT5zYxjFOckS53SQDE3pWkVoWpHXVb3BrYcEN4Twa55B5cA==} engines: {node: '>=0.10.0'} @@ -2662,6 +3005,10 @@ packages: wrappy@1.0.2: resolution: {integrity: sha512-l4Sp/DRseor9wL6EvV2+TuQn63dMkPjZ/sp9XkghTEbV9KlPS1xUsZ3u7/IQO4wxtcFB4bgpQPRcR3QCvezPcQ==} + y18n@5.0.8: + resolution: {integrity: sha512-0pfFzegeDWJHJIAmTLRP2DwHjdF5s7jo9tuztdQxAhINCdvS+3nGINqPd00AphqJR/0LhANUS6/+7SCb98YOfA==} + engines: {node: '>=10'} + yallist@3.1.1: resolution: {integrity: sha512-a4UGQaWPH59mOXUYnAG2ewncQS4i4F43Tv3JoAM+s2VDAmS9NsK8GpDMLrCHPksFT7h3K6TOoUNn2pb7RoXx4g==} @@ -2673,6 +3020,14 @@ packages: engines: {node: '>= 14'} hasBin: true + yargs-parser@21.1.1: + resolution: {integrity: sha512-tVpsJW7DdjecAiFpbIB1e3qxIQsE6NoPc5/eTdrbbIC4h0LVsWhnoa3g+m2HclBIujHzsxZ4VJVA+GUuc2/LBw==} + engines: {node: '>=12'} + + yargs@17.7.2: + resolution: {integrity: sha512-7dSzzRQ++CKnNI/krKnYRV7JKKPUXMEh61soaHKg9mrWEhzFWhFnxPxGl+69cD1Ou63C13NUPCnmIcrvqCuM6w==} + engines: {node: '>=12'} + yet-another-react-lightbox@3.17.5: resolution: {integrity: sha512-bfJe4PO6VgRCclyHYZr3XPXC8Ku44im5aQCI6SWUoCCO4ELo6kpAQxpb24VYz3RLtkMRVVCyXRVnkfPDXSfXhw==} engines: {node: '>=14'} @@ -2684,6 +3039,10 @@ packages: resolution: {integrity: sha512-rVksvsnNCdJ/ohGc6xgPwyN8eheCxsiLM8mxuE/t/mOVqJewPuO1miLpTHQiRgTKCLexL4MeAFVagts7HmNZ2Q==} engines: {node: '>=10'} + yocto-queue@1.0.0: + resolution: {integrity: sha512-9bnSc/HEW2uRy67wc+T8UwauLuPJVn28jb+GtJY16iiKWyvmYJRXVT4UamsAEGQfPohgr2q4Tq0sQbQlxTfi1g==} + engines: {node: '>=12.20'} + zod-validation-error@3.0.0: resolution: {integrity: sha512-x+agsJJG9rvC7axF0xqTEdZhJkLHyIZkdOAWDJSmwGPzxNHMHwtU6w2yDOAAP6yuSfTAUhAMJRBfhVGY64ySEQ==} engines: {node: '>=18.0.0'} @@ -2992,6 +3351,10 @@ snapshots: wrap-ansi: 8.1.0 wrap-ansi-cjs: wrap-ansi@7.0.0 + '@jest/schemas@29.6.3': + dependencies: + '@sinclair/typebox': 0.27.8 + '@jridgewell/gen-mapping@0.3.5': dependencies: '@jridgewell/set-array': 1.2.1 @@ -3074,6 +3437,12 @@ snapshots: '@pkgjs/parseargs@0.11.0': optional: true + '@pkgr/core@0.1.1': {} + + '@playwright/test@1.44.1': + dependencies: + playwright: 1.44.1 + '@pnpm/constants@7.1.1': {} '@pnpm/core-loggers@9.0.6(@pnpm/logger@5.0.0)': @@ -3215,6 +3584,8 @@ snapshots: '@rollup/rollup-win32-x64-msvc@4.17.2': optional: true + '@sinclair/typebox@0.27.8': {} + '@snyk/github-codeowners@1.1.0': dependencies: commander: 4.1.1 @@ -3236,12 +3607,20 @@ snapshots: '@tanstack/query-core': 5.32.1 react: 18.3.1 + '@tanstack/react-table@8.17.3(react-dom@18.3.1(react@18.3.1))(react@18.3.1)': + dependencies: + '@tanstack/table-core': 8.17.3 + react: 18.3.1 + react-dom: 18.3.1(react@18.3.1) + '@tanstack/react-virtual@3.5.0(react-dom@18.3.1(react@18.3.1))(react@18.3.1)': dependencies: '@tanstack/virtual-core': 3.5.0 react: 18.3.1 react-dom: 18.3.1(react@18.3.1) + '@tanstack/table-core@8.17.3': {} + '@tanstack/virtual-core@3.5.0': {} '@types/babel__core@7.20.5': @@ -3299,6 +3678,35 @@ snapshots: transitivePeerDependencies: - supports-color + '@vitest/expect@1.6.0': + dependencies: + '@vitest/spy': 1.6.0 + '@vitest/utils': 1.6.0 + chai: 4.4.1 + + '@vitest/runner@1.6.0': + dependencies: + '@vitest/utils': 1.6.0 + p-limit: 5.0.0 + pathe: 1.1.2 + + '@vitest/snapshot@1.6.0': + dependencies: + magic-string: 0.30.10 + pathe: 1.1.2 + pretty-format: 29.7.0 + + '@vitest/spy@1.6.0': + dependencies: + tinyspy: 2.2.1 + + '@vitest/utils@1.6.0': + dependencies: + diff-sequences: 29.6.3 + estree-walker: 3.0.3 + loupe: 2.3.7 + pretty-format: 29.7.0 + '@zkochan/retry@0.2.0': {} '@zkochan/rimraf@2.1.3': @@ -3309,6 +3717,10 @@ snapshots: dependencies: acorn: 8.11.3 + acorn-walk@8.3.3: + dependencies: + acorn: 8.11.3 + acorn@8.11.3: {} aggregate-error@3.1.0: @@ -3335,6 +3747,8 @@ snapshots: dependencies: color-convert: 2.0.1 + ansi-styles@5.2.0: {} + ansi-styles@6.2.1: {} any-promise@1.3.0: {} @@ -3430,6 +3844,8 @@ snapshots: is-array-buffer: 3.0.4 is-shared-array-buffer: 1.0.3 + assertion-error@1.1.0: {} + ast-types-flow@0.0.8: {} asynckit@0.4.0: {} @@ -3497,6 +3913,8 @@ snapshots: dependencies: semver: 7.6.0 + cac@6.7.14: {} + call-bind@1.0.7: dependencies: es-define-property: 1.0.0 @@ -3511,6 +3929,16 @@ snapshots: caniuse-lite@1.0.30001614: {} + chai@4.4.1: + dependencies: + assertion-error: 1.1.0 + check-error: 1.0.3 + deep-eql: 4.1.4 + get-func-name: 2.0.2 + loupe: 2.3.7 + pathval: 1.1.1 + type-detect: 4.0.8 + chalk@2.4.2: dependencies: ansi-styles: 3.2.1 @@ -3522,6 +3950,10 @@ snapshots: ansi-styles: 4.3.0 supports-color: 7.2.0 + check-error@1.0.3: + dependencies: + get-func-name: 2.0.2 + chokidar@3.6.0: dependencies: anymatch: 3.1.3 @@ -3534,15 +3966,29 @@ snapshots: optionalDependencies: fsevents: 2.3.3 + class-variance-authority@0.7.0: + dependencies: + clsx: 2.0.0 + classnames@2.5.1: {} clean-stack@2.2.0: {} client-only@0.0.1: {} + cliui@8.0.1: + dependencies: + string-width: 4.2.3 + strip-ansi: 6.0.1 + wrap-ansi: 7.0.0 + clone@1.0.4: optional: true + clsx@2.0.0: {} + + clsx@2.1.1: {} + color-convert@1.9.3: dependencies: color-name: 1.1.3 @@ -3567,6 +4013,20 @@ snapshots: concat-map@0.0.1: {} + concurrently@8.2.2: + dependencies: + chalk: 4.1.2 + date-fns: 2.30.0 + lodash: 4.17.21 + rxjs: 7.8.1 + shell-quote: 1.8.1 + spawn-command: 0.0.2 + supports-color: 8.1.1 + tree-kill: 1.2.2 + yargs: 17.7.2 + + confbox@0.1.7: {} + confusing-browser-globals@1.0.11: {} convert-source-map@2.0.0: {} @@ -3621,6 +4081,10 @@ snapshots: dependencies: ms: 2.1.2 + deep-eql@4.1.4: + dependencies: + type-detect: 4.0.8 + deep-freeze@0.0.1: {} deep-is@0.1.4: {} @@ -3648,6 +4112,8 @@ snapshots: didyoumean@1.2.2: {} + diff-sequences@29.6.3: {} + dlv@1.1.3: {} doctrine@2.1.0: @@ -3846,6 +4312,10 @@ snapshots: object.assign: 4.1.5 object.entries: 1.1.8 + eslint-config-prettier@9.1.0(eslint@8.57.0): + dependencies: + eslint: 8.57.0 + eslint-import-resolver-node@0.3.9: dependencies: debug: 3.2.7 @@ -3908,11 +4378,14 @@ snapshots: object.entries: 1.1.8 object.fromentries: 2.0.8 - eslint-plugin-prettier@4.2.1(eslint@8.57.0)(prettier@2.8.8): + eslint-plugin-prettier@5.1.3(eslint-config-prettier@9.1.0(eslint@8.57.0))(eslint@8.57.0)(prettier@3.3.2): dependencies: eslint: 8.57.0 - prettier: 2.8.8 + prettier: 3.3.2 prettier-linter-helpers: 1.0.0 + synckit: 0.8.8 + optionalDependencies: + eslint-config-prettier: 9.1.0(eslint@8.57.0) eslint-plugin-react-hooks@4.6.2(eslint@8.57.0): dependencies: @@ -4008,8 +4481,24 @@ snapshots: estree-walker@2.0.2: {} + estree-walker@3.0.3: + dependencies: + '@types/estree': 1.0.5 + esutils@2.0.3: {} + execa@8.0.1: + dependencies: + cross-spawn: 7.0.3 + get-stream: 8.0.1 + human-signals: 5.0.0 + is-stream: 3.0.0 + merge-stream: 2.0.0 + npm-run-path: 5.3.0 + onetime: 6.0.0 + signal-exit: 4.1.0 + strip-final-newline: 3.0.0 + fast-deep-equal@3.1.3: {} fast-diff@1.3.0: {} @@ -4086,6 +4575,9 @@ snapshots: fs.realpath@1.0.0: {} + fsevents@2.3.2: + optional: true + fsevents@2.3.3: optional: true @@ -4102,6 +4594,10 @@ snapshots: gensync@1.0.0-beta.2: {} + get-caller-file@2.0.5: {} + + get-func-name@2.0.2: {} + get-intrinsic@1.2.4: dependencies: es-errors: 1.3.0 @@ -4110,6 +4606,8 @@ snapshots: has-symbols: 1.0.3 hasown: 2.0.2 + get-stream@8.0.1: {} + get-symbol-description@1.0.2: dependencies: call-bind: 1.0.7 @@ -4218,6 +4716,8 @@ snapshots: domutils: 3.1.0 entities: 4.5.0 + human-signals@5.0.0: {} + husky@8.0.3: {} identity-function@1.0.0: {} @@ -4335,6 +4835,8 @@ snapshots: dependencies: call-bind: 1.0.7 + is-stream@3.0.0: {} + is-string@1.0.7: dependencies: has-tostringtag: 1.0.2 @@ -4384,6 +4886,8 @@ snapshots: js-tokens@4.0.0: {} + js-tokens@9.0.0: {} + js-yaml@4.1.0: dependencies: argparse: 2.0.1 @@ -4488,6 +4992,11 @@ snapshots: strip-bom: 4.0.0 type-fest: 0.6.0 + local-pkg@0.5.0: + dependencies: + mlly: 1.7.1 + pkg-types: 1.1.1 + locate-path@6.0.0: dependencies: p-locate: 5.0.0 @@ -4500,10 +5009,16 @@ snapshots: lodash.throttle@4.1.1: {} + lodash@4.17.21: {} + loose-envify@1.4.0: dependencies: js-tokens: 4.0.0 + loupe@2.3.7: + dependencies: + get-func-name: 2.0.2 + lru-cache@10.2.2: {} lru-cache@5.1.1: @@ -4514,10 +5029,18 @@ snapshots: dependencies: yallist: 4.0.0 + lucide-react@0.395.0(react@18.3.1): + dependencies: + react: 18.3.1 + magic-string@0.16.0: dependencies: vlq: 0.2.3 + magic-string@0.30.10: + dependencies: + '@jridgewell/sourcemap-codec': 1.4.15 + map-age-cleaner@0.1.3: dependencies: p-defer: 1.0.0 @@ -4534,6 +5057,8 @@ snapshots: map-age-cleaner: 0.1.3 mimic-fn: 3.1.0 + merge-stream@2.0.0: {} + merge2@1.4.1: {} micromatch@4.0.5: @@ -4561,6 +5086,8 @@ snapshots: mimic-fn@3.1.0: {} + mimic-fn@4.0.0: {} + minimatch@3.1.2: dependencies: brace-expansion: 1.1.11 @@ -4573,6 +5100,13 @@ snapshots: minipass@7.0.4: {} + mlly@1.7.1: + dependencies: + acorn: 8.11.3 + pathe: 1.1.2 + pkg-types: 1.1.1 + ufo: 1.5.3 + ms@2.0.0: {} ms@2.1.2: {} @@ -4637,6 +5171,10 @@ snapshots: npm-package-arg: 11.0.2 semver: 7.6.0 + npm-run-path@5.3.0: + dependencies: + path-key: 4.0.0 + object-assign@4.1.1: {} object-hash@3.0.0: {} @@ -4691,6 +5229,10 @@ snapshots: dependencies: wrappy: 1.0.2 + onetime@6.0.0: + dependencies: + mimic-fn: 4.0.0 + optionator@0.9.4: dependencies: deep-is: 0.1.4 @@ -4706,6 +5248,10 @@ snapshots: dependencies: yocto-queue: 0.1.0 + p-limit@5.0.0: + dependencies: + yocto-queue: 1.0.0 + p-locate@5.0.0: dependencies: p-limit: 3.1.0 @@ -4742,6 +5288,8 @@ snapshots: path-key@3.1.1: {} + path-key@4.0.0: {} + path-parse@1.0.7: {} path-scurry@1.10.2: @@ -4753,6 +5301,10 @@ snapshots: dependencies: unique-string: 2.0.0 + pathe@1.1.2: {} + + pathval@1.1.1: {} + picocolors@1.0.0: {} picomatch@2.3.1: {} @@ -4763,6 +5315,20 @@ snapshots: pirates@4.0.6: {} + pkg-types@1.1.1: + dependencies: + confbox: 0.1.7 + mlly: 1.7.1 + pathe: 1.1.2 + + playwright-core@1.44.1: {} + + playwright@1.44.1: + dependencies: + playwright-core: 1.44.1 + optionalDependencies: + fsevents: 2.3.2 + possible-typed-array-names@1.0.0: {} postcss-import@15.1.0(postcss@8.4.38): @@ -4808,7 +5374,13 @@ snapshots: dependencies: fast-diff: 1.3.0 - prettier@2.8.8: {} + prettier@3.3.2: {} + + pretty-format@29.7.0: + dependencies: + '@jest/schemas': 29.6.3 + ansi-styles: 5.2.0 + react-is: 18.3.1 pretty-ms@9.0.0: dependencies: @@ -4875,6 +5447,8 @@ snapshots: react-is@16.13.1: {} + react-is@18.3.1: {} + react-lazy-load-image-component@1.6.0(react-dom@18.3.1(react@18.3.1))(react@18.3.1): dependencies: lodash.debounce: 4.0.8 @@ -4961,6 +5535,8 @@ snapshots: '@zkochan/rimraf': 2.1.3 fs-extra: 10.1.0 + require-directory@2.1.1: {} + resolve-from@4.0.0: {} resolve@1.22.8: @@ -5011,6 +5587,10 @@ snapshots: dependencies: queue-microtask: 1.2.3 + rxjs@7.8.1: + dependencies: + tslib: 2.6.3 + safe-array-concat@1.1.2: dependencies: call-bind: 1.0.7 @@ -5062,6 +5642,8 @@ snapshots: shell-quote-word@1.0.1: {} + shell-quote@1.8.1: {} + side-channel@1.0.6: dependencies: call-bind: 1.0.7 @@ -5069,12 +5651,16 @@ snapshots: get-intrinsic: 1.2.4 object-inspect: 1.13.1 + siginfo@2.0.0: {} + signal-exit@4.1.0: {} smol-toml@1.1.4: {} source-map-js@1.2.0: {} + spawn-command@0.0.2: {} + spdx-correct@3.2.0: dependencies: spdx-expression-parse: 3.0.1 @@ -5097,6 +5683,10 @@ snapshots: dependencies: minipass: 7.0.4 + stackback@0.0.2: {} + + std-env@3.7.0: {} + string-width@4.2.3: dependencies: emoji-regex: 8.0.0 @@ -5161,10 +5751,16 @@ snapshots: strip-bom@4.0.0: {} + strip-final-newline@3.0.0: {} + strip-json-comments@3.1.1: {} strip-json-comments@5.0.1: {} + strip-literal@2.1.0: + dependencies: + js-tokens: 9.0.0 + style-to-js@1.1.12: dependencies: style-to-object: 1.0.6 @@ -5193,10 +5789,27 @@ snapshots: dependencies: has-flag: 4.0.0 + supports-color@8.1.1: + dependencies: + has-flag: 4.0.0 + supports-preserve-symlinks-flag@1.0.0: {} + synckit@0.8.8: + dependencies: + '@pkgr/core': 0.1.1 + tslib: 2.6.3 + + tailwind-merge@2.3.0: + dependencies: + '@babel/runtime': 7.24.5 + tailwind-scrollbar-hide@1.1.7: {} + tailwindcss-animate@1.0.7(tailwindcss@3.4.3): + dependencies: + tailwindcss: 3.4.3 + tailwindcss@3.4.3: dependencies: '@alloc/quick-lru': 5.2.0 @@ -5238,6 +5851,12 @@ snapshots: dependencies: readable-stream: 3.6.2 + tinybench@2.8.0: {} + + tinypool@0.8.4: {} + + tinyspy@2.2.1: {} + to-fast-properties@2.0.0: {} to-no-case@1.0.2: {} @@ -5254,6 +5873,8 @@ snapshots: dependencies: to-no-case: 1.0.2 + tree-kill@1.2.2: {} + ts-interface-checker@0.1.13: {} tsconfig-paths@3.15.0: @@ -5263,10 +5884,14 @@ snapshots: minimist: 1.2.8 strip-bom: 3.0.0 + tslib@2.6.3: {} + type-check@0.4.0: dependencies: prelude-ls: 1.2.1 + type-detect@4.0.8: {} + type-fest@0.20.2: {} type-fest@0.6.0: {} @@ -5305,6 +5930,8 @@ snapshots: typescript@5.4.5: {} + ufo@1.5.3: {} + unbox-primitive@1.0.2: dependencies: call-bind: 1.0.7 @@ -5362,6 +5989,23 @@ snapshots: dependencies: semver: 7.6.0 + vite-node@1.6.0(@types/node@20.14.1): + dependencies: + cac: 6.7.14 + debug: 4.3.4 + pathe: 1.1.2 + picocolors: 1.0.0 + vite: 5.2.10(@types/node@20.14.1) + transitivePeerDependencies: + - '@types/node' + - less + - lightningcss + - sass + - stylus + - sugarss + - supports-color + - terser + vite@5.2.10(@types/node@20.14.1): dependencies: esbuild: 0.20.2 @@ -5371,6 +6015,39 @@ snapshots: '@types/node': 20.14.1 fsevents: 2.3.3 + vitest@1.6.0(@types/node@20.14.1): + dependencies: + '@vitest/expect': 1.6.0 + '@vitest/runner': 1.6.0 + '@vitest/snapshot': 1.6.0 + '@vitest/spy': 1.6.0 + '@vitest/utils': 1.6.0 + acorn-walk: 8.3.3 + chai: 4.4.1 + debug: 4.3.4 + execa: 8.0.1 + local-pkg: 0.5.0 + magic-string: 0.30.10 + pathe: 1.1.2 + picocolors: 1.0.0 + std-env: 3.7.0 + strip-literal: 2.1.0 + tinybench: 2.8.0 + tinypool: 0.8.4 + vite: 5.2.10(@types/node@20.14.1) + vite-node: 1.6.0(@types/node@20.14.1) + why-is-node-running: 2.2.2 + optionalDependencies: + '@types/node': 20.14.1 + transitivePeerDependencies: + - less + - lightningcss + - sass + - stylus + - sugarss + - supports-color + - terser + vlq@0.2.3: {} wcwidth@1.0.1: @@ -5428,6 +6105,11 @@ snapshots: dependencies: isexe: 3.1.1 + why-is-node-running@2.2.2: + dependencies: + siginfo: 2.0.0 + stackback: 0.0.2 + word-wrap@1.2.5: {} wrap-ansi@7.0.0: @@ -5444,12 +6126,26 @@ snapshots: wrappy@1.0.2: {} + y18n@5.0.8: {} + yallist@3.1.1: {} yallist@4.0.0: {} yaml@2.4.2: {} + yargs-parser@21.1.1: {} + + yargs@17.7.2: + dependencies: + cliui: 8.0.1 + escalade: 3.1.2 + get-caller-file: 2.0.5 + require-directory: 2.1.1 + string-width: 4.2.3 + y18n: 5.0.8 + yargs-parser: 21.1.1 + yet-another-react-lightbox@3.17.5(react-dom@18.3.1(react@18.3.1))(react@18.3.1): dependencies: react: 18.3.1 @@ -5457,6 +6153,8 @@ snapshots: yocto-queue@0.1.0: {} + yocto-queue@1.0.0: {} + zod-validation-error@3.0.0(zod@3.22.4): dependencies: zod: 3.22.4 diff --git a/src/APP/components/admin/BottomNavBar.jsx b/src/APP/components/admin/BottomNavBar.jsx deleted file mode 100644 index 0b6915cb..00000000 --- a/src/APP/components/admin/BottomNavBar.jsx +++ /dev/null @@ -1,41 +0,0 @@ -import { Link } from "react-router-dom"; - -function BottomNavBar() { - return ( - - ); -} - -export default BottomNavBar; diff --git a/src/APP/components/Button.jsx b/src/components/Button.jsx similarity index 100% rename from src/APP/components/Button.jsx rename to src/components/Button.jsx diff --git a/src/APP/components/Caroussel.jsx b/src/components/Caroussel.jsx similarity index 100% rename from src/APP/components/Caroussel.jsx rename to src/components/Caroussel.jsx diff --git a/src/APP/components/FAQ.jsx b/src/components/FAQ.jsx similarity index 100% rename from src/APP/components/FAQ.jsx rename to src/components/FAQ.jsx diff --git a/src/APP/components/FallbackLoader.jsx b/src/components/FallbackLoader.jsx similarity index 100% rename from src/APP/components/FallbackLoader.jsx rename to src/components/FallbackLoader.jsx diff --git a/src/APP/components/Footer.jsx b/src/components/Footer.jsx similarity index 99% rename from src/APP/components/Footer.jsx rename to src/components/Footer.jsx index 53dd145b..de0ed55d 100644 --- a/src/APP/components/Footer.jsx +++ b/src/components/Footer.jsx @@ -11,7 +11,7 @@ import { FaXTwitter } from "react-icons/fa6"; import { LazyLoadImage } from "react-lazy-load-image-component"; import { Link } from "react-router-dom"; -import logo from "../../assets/images/sytLogo.png"; +import logo from "../assets/images/sytLogo.png"; const socialLinks = [ { diff --git a/src/APP/components/GoBackBtn.jsx b/src/components/GoBackBtn.jsx similarity index 100% rename from src/APP/components/GoBackBtn.jsx rename to src/components/GoBackBtn.jsx diff --git a/src/APP/components/Header.jsx b/src/components/Header.jsx similarity index 98% rename from src/APP/components/Header.jsx rename to src/components/Header.jsx index 6017f458..169a1b68 100644 --- a/src/APP/components/Header.jsx +++ b/src/components/Header.jsx @@ -1,10 +1,10 @@ import React, { useState } from "react"; -import { LazyLoadImage } from "react-lazy-load-image-component"; -import { Link, useLocation } from "react-router-dom"; import { AiOutlineClose } from "react-icons/ai"; import { HiOutlineMenuAlt4 } from "react-icons/hi"; +import { LazyLoadImage } from "react-lazy-load-image-component"; +import { Link, useLocation } from "react-router-dom"; -import logo from "../../assets/images/sytLogo.png"; +import logo from "../assets/images/sytLogo.png"; const navLinks = [ { diff --git a/src/APP/components/LandingWrapper.jsx b/src/components/LandingWrapper.jsx similarity index 100% rename from src/APP/components/LandingWrapper.jsx rename to src/components/LandingWrapper.jsx diff --git a/src/APP/components/Loader.jsx b/src/components/Loader.jsx similarity index 100% rename from src/APP/components/Loader.jsx rename to src/components/Loader.jsx diff --git a/src/APP/components/PodcastCard.jsx b/src/components/PodcastCard.jsx similarity index 100% rename from src/APP/components/PodcastCard.jsx rename to src/components/PodcastCard.jsx diff --git a/src/APP/components/SeoMetadata.jsx b/src/components/SeoMetadata.jsx similarity index 100% rename from src/APP/components/SeoMetadata.jsx rename to src/components/SeoMetadata.jsx diff --git a/src/APP/components/ViewMoreBtn.jsx b/src/components/ViewMoreBtn.jsx similarity index 100% rename from src/APP/components/ViewMoreBtn.jsx rename to src/components/ViewMoreBtn.jsx diff --git a/src/APP/components/admin/AddChapterForm.jsx b/src/components/admin/AddChapterForm.jsx similarity index 100% rename from src/APP/components/admin/AddChapterForm.jsx rename to src/components/admin/AddChapterForm.jsx diff --git a/src/APP/components/admin/AdminHeader.jsx b/src/components/admin/AdminHeader.jsx similarity index 56% rename from src/APP/components/admin/AdminHeader.jsx rename to src/components/admin/AdminHeader.jsx index 8ced5035..550fe517 100644 --- a/src/APP/components/admin/AdminHeader.jsx +++ b/src/components/admin/AdminHeader.jsx @@ -1,18 +1,36 @@ /* eslint-disable react/react-in-jsx-scope */ -import { Link } from "react-router-dom"; -import logo from "../../../assets/images/sytLogo.png"; import { CiBellOn } from "react-icons/ci"; -import profile from "../../../assets/images/adminPage/profile-pic.png"; import { LazyLoadImage } from "react-lazy-load-image-component"; +import { Link, useLocation } from "react-router-dom"; +import profile from "../../assets/images/adminPage/profile-pic.png"; +import logo from "../../assets/images/sytLogo.png"; function AdminHeader() { + const location = useLocation(); + + const adminNavLinks = [ + { to: "/admin", label: "Dashboard" }, + { to: "/admin/blogs", label: "Blogs" }, + { to: "/admin/all-chapters", label: "Chapters" }, + { to: "/admin/events", label: "Events" }, + { to: "/admin/calendar", label: "Calendar" }, + ]; + + const shopNavLinks = [ + { to: "/admin/shop", label: "Dashboard" }, + { to: "/admin/shop/sales", label: "Sales" }, + { to: "/admin/shop/orders", label: "Orders" }, + { to: "/admin/shop/inventory", label: "Inventory" }, + ]; + + const navLinks = location.pathname.startsWith("/admin/shop") ? shopNavLinks : adminNavLinks; + return ( -
+
{/* mobile menu */} + ); +} + +export default BottomNavBar; diff --git a/src/APP/components/admin/DropdownInput.jsx b/src/components/admin/DropdownInput.jsx similarity index 100% rename from src/APP/components/admin/DropdownInput.jsx rename to src/components/admin/DropdownInput.jsx diff --git a/src/APP/components/admin/GeneralInfo.jsx b/src/components/admin/GeneralInfo.jsx similarity index 100% rename from src/APP/components/admin/GeneralInfo.jsx rename to src/components/admin/GeneralInfo.jsx diff --git a/src/APP/components/admin/Organizers.jsx b/src/components/admin/Organizers.jsx similarity index 100% rename from src/APP/components/admin/Organizers.jsx rename to src/components/admin/Organizers.jsx diff --git a/src/APP/components/admin/SocialMediaLinks.jsx b/src/components/admin/SocialMediaLinks.jsx similarity index 100% rename from src/APP/components/admin/SocialMediaLinks.jsx rename to src/components/admin/SocialMediaLinks.jsx diff --git a/src/APP/components/admin/StepIndicator.jsx b/src/components/admin/StepIndicator.jsx similarity index 100% rename from src/APP/components/admin/StepIndicator.jsx rename to src/components/admin/StepIndicator.jsx diff --git a/src/APP/components/admin/events/Calendar.jsx b/src/components/admin/events/Calendar.jsx similarity index 100% rename from src/APP/components/admin/events/Calendar.jsx rename to src/components/admin/events/Calendar.jsx diff --git a/src/APP/components/admin/events/EventsTable.jsx b/src/components/admin/events/EventsTable.jsx similarity index 100% rename from src/APP/components/admin/events/EventsTable.jsx rename to src/components/admin/events/EventsTable.jsx diff --git a/src/components/admin/shop/dashboard/OrderPreviewColumns.jsx b/src/components/admin/shop/dashboard/OrderPreviewColumns.jsx new file mode 100644 index 00000000..9b2b73bf --- /dev/null +++ b/src/components/admin/shop/dashboard/OrderPreviewColumns.jsx @@ -0,0 +1,68 @@ +const columns = [ + { + accessorKey: "id", + header: "Order ID", + }, + { + accessorKey: "email", + header: "Customer Email", + }, + { + accessorKey: "item", + header: "Item", + }, + { + accessorKey: "cost", + header: "Cost of Order (KES)", + cell: ({ row }) => { + const amount = parseFloat(row.getValue("cost")); + + return ( +
+ {new Intl.NumberFormat("sw-KE", { + style: "currency", + currency: "KES", + }).format(amount)} +
+ ); + }, + }, + { + accessorKey: "status", + header: "Status", + cell: ({ row }) => { + return ( +
+ + {row.original.status} + +
+ ); + }, + }, + { + id: "actions", + enableHiding: false, + cell: ({ row }) => { + const orderInfo = row.original; + + return ( +
+ +
+ ); + }, + }, +]; + +export default columns; diff --git a/src/components/admin/shop/dashboard/OrdersPreviewTable.jsx b/src/components/admin/shop/dashboard/OrdersPreviewTable.jsx new file mode 100644 index 00000000..480c586e --- /dev/null +++ b/src/components/admin/shop/dashboard/OrdersPreviewTable.jsx @@ -0,0 +1,81 @@ +import { + flexRender, + getCoreRowModel, + useReactTable, +} from "@tanstack/react-table"; + +import PropTypes from "prop-types"; +import { + Table, + TableBody, + TableCell, + TableHead, + TableHeader, + TableRow, +} from "@/components/ui/table"; + +function OrdersPreviewTable({ columns, data }) { + const table = useReactTable({ + data, + columns, + getCoreRowModel: getCoreRowModel(), + }); + + return ( + + + {table.getHeaderGroups().map((headerGroup) => ( + + {headerGroup.headers.map((header) => ( + + {header.isPlaceholder + ? null + : flexRender( + header.column.columnDef.header, + header.getContext() + )} + + ))} + + ))} + + + {table.getRowModel().rows?.length ? ( + table.getRowModel().rows.map((row) => ( + + {row.getVisibleCells().map((cell) => ( + + {flexRender(cell.column.columnDef.cell, cell.getContext())} + + ))} + + )) + ) : ( + + + No results. + + + )} + +
+ ); +} + +export default OrdersPreviewTable; + +OrdersPreviewTable.propTypes = { + columns: PropTypes.arrayOf( + PropTypes.shape({ + accessorKey: PropTypes.string, + cell: PropTypes.func, + header: PropTypes.func, + id: PropTypes.string, + }) + ).isRequired, + // eslint-disable-next-line react/forbid-prop-types + data: PropTypes.arrayOf(PropTypes.object).isRequired, +}; diff --git a/src/APP/components/auth/NotificationModal.jsx b/src/components/auth/NotificationModal.jsx similarity index 100% rename from src/APP/components/auth/NotificationModal.jsx rename to src/components/auth/NotificationModal.jsx diff --git a/src/APP/components/index.js b/src/components/index.js similarity index 100% rename from src/APP/components/index.js rename to src/components/index.js diff --git a/src/APP/components/shop/CartDrawer.jsx b/src/components/shop/CartDrawer.jsx similarity index 97% rename from src/APP/components/shop/CartDrawer.jsx rename to src/components/shop/CartDrawer.jsx index 82341bf0..20816b19 100644 --- a/src/APP/components/shop/CartDrawer.jsx +++ b/src/components/shop/CartDrawer.jsx @@ -1,14 +1,14 @@ import { Dialog, Transition } from "@headlessui/react"; import { Fragment, useState, useEffect } from "react"; +import { AiOutlineClose, AiOutlineDelete } from "react-icons/ai"; // Import react-icons import { LazyLoadImage } from "react-lazy-load-image-component"; import { useNavigate, Link } from "react-router-dom"; -import { AiOutlineClose, AiOutlineDelete } from "react-icons/ai"; // Import react-icons -import SampleImg from "../../../assets/images/shop-page/main-sample.png"; -import Sample3 from "../../../assets/images/shop-page/sample3.png"; -import { useDeleteSwag } from "../../../hooks/Mutations/shop/useCartSwagg"; -import useProductsInCart from "../../../hooks/Queries/shop/useCartProducts"; -import useAuth from "../../../hooks/useAuth"; +import SampleImg from "../../assets/images/shop-page/main-sample.png"; +import Sample3 from "../../assets/images/shop-page/sample3.png"; +import { useDeleteSwag } from "../../hooks/Mutations/shop/useCartSwagg"; +import useProductsInCart from "../../hooks/Queries/shop/useCartProducts"; +import useAuth from "../../hooks/useAuth"; import Counter from "./Counter"; function CartDrawer({ open, setOpen }) { diff --git a/src/APP/components/shop/Counter.jsx b/src/components/shop/Counter.jsx similarity index 100% rename from src/APP/components/shop/Counter.jsx rename to src/components/shop/Counter.jsx diff --git a/src/components/ui/table.jsx b/src/components/ui/table.jsx new file mode 100644 index 00000000..e51136a8 --- /dev/null +++ b/src/components/ui/table.jsx @@ -0,0 +1,86 @@ +import * as React from "react" + +import { cn } from "@/utilities/utils" + +const Table = React.forwardRef(({ className, ...props }, ref) => ( +
+ + +)) +Table.displayName = "Table" + +const TableHeader = React.forwardRef(({ className, ...props }, ref) => ( + +)) +TableHeader.displayName = "TableHeader" + +const TableBody = React.forwardRef(({ className, ...props }, ref) => ( + +)) +TableBody.displayName = "TableBody" + +const TableFooter = React.forwardRef(({ className, ...props }, ref) => ( + tr]:last:border-b-0 dark:bg-gray-800/50", + className + )} + {...props} /> +)) +TableFooter.displayName = "TableFooter" + +const TableRow = React.forwardRef(({ className, ...props }, ref) => ( + +)) +TableRow.displayName = "TableRow" + +const TableHead = React.forwardRef(({ className, ...props }, ref) => ( +
+)) +TableHead.displayName = "TableHead" + +const TableCell = React.forwardRef(({ className, ...props }, ref) => ( + +)) +TableCell.displayName = "TableCell" + +const TableCaption = React.forwardRef(({ className, ...props }, ref) => ( +
+)) +TableCaption.displayName = "TableCaption" + +export { + Table, + TableHeader, + TableBody, + TableFooter, + TableHead, + TableRow, + TableCell, + TableCaption, +} diff --git a/src/index.css b/src/index.css index aaec1451..91f55f00 100644 --- a/src/index.css +++ b/src/index.css @@ -1,1329 +1,4 @@ -@import url("https://fonts.googleapis.com/css2?family=Sora&display=swap"); -@import url("https://fonts.googleapis.com/css2?family=Poppins:wght@200;500;600;700;800;900&display=swap"); -@import url('https://fonts.googleapis.com/css2?family=Space+Grotesk:wght@300..700&display=swap'); - -@tailwind base; -@tailwind components; -@tailwind utilities; - -* { - font-family: "Poppins", sans-serif; - scroll-behavior: smooth; -} - -::-webkit-scrollbar { - width: 0; - background: transparent; -} - -.scrollbar::-webkit-scrollbar { - width: 0; - height: 6px; - background: #009975; -} - -.scrollbar::-webkit-scrollbar-thumb { - background: #00664e; - - border-radius: 12px; -} - -.scrollbar::-webkit-scrollbar-track { - background: #009975; - -webkit-box-shadow: inset 0 0 6px #009975; - border-top: 2px solid #e5efec; - border-bottom: 2px solid #e5efec; -} - -@media (min-width: 768px) { - .scrollbar::-webkit-scrollbar { - width: 6px; - height: 0; - background: #009975; - } - - .scrollbar::-webkit-scrollbar-thumb { - background: #00664e; - - border-radius: 12px; - } - - .scrollbar::-webkit-scrollbar-track { - background: #009975; - -webkit-box-shadow: inset 0 0 6px #009975; - border-left: 2px solid #e5efec; - border-right: 2px solid #e5efec; - } -} -@layer utilities { - .blur-1 { - /* Vector */ - - position: absolute; - width: 68.01px; - height: 67.84px; - left: 500.9px; - top: 66.87px; - - background: #009975; - opacity: 0.3; - filter: blur(15px); - transform: rotate(-75deg); - } - - .blur-sm-1 { - /* Vector */ - position: absolute; - width: 30.11px; - height: 27.97px; - left: 89px; - top: 62.24px; - - /* Primary/Green/800 */ - - background: #009975; - opacity: 0.3; - filter: blur(15px); - transform: rotate(-75deg); - } - - .blur-2 { - /* Vector */ - - position: absolute; - width: 65.91px; - height: 67.41px; - left: 693.21px; - top: 66px; - - /* Primary/Green/800 */ - - background: #009975; - opacity: 0.3; - filter: blur(15px); - transform: matrix(1, -0.03, -0.03, -1, 0, 0); - } - - .blur-sm-2 { - position: absolute; - width: 32.1px; - height: 32.83px; - left: 158.08px; - top: 70.87px; - - /* Primary/Green/800 */ - - background: #009975; - opacity: 0.3; - filter: blur(15px); - transform: matrix(1, -0.03, -0.03, -1, 0, 0); - } - - .blur-3 { - /* Vector */ - - position: absolute; - width: 51.81px; - height: 69.5px; - left: 885.84px; - top: 66px; - - /* Primary/Green/800 */ - - background: #009975; - opacity: 0.3; - filter: blur(15px); - transform: rotate(-75deg); - } - - .blur-sm-3 { - /* Vector */ - - position: absolute; - width: 27.18px; - height: 36.46px; - left: 223px; - top: 60.25px; - - /* Primary/Green/800 */ - background: #009975; - opacity: 0.3; - filter: blur(15px); - transform: rotate(-75deg); - } - - .bg-primary { - background-color: #009975; - } - - /* Footer */ - .flex-1 { - flex-grow: 1; - } - - .flex-3 { - flex-grow: 3; - } - - .flex-2 { - flex-grow: 2; - } - - .flex-center { - display: flex; - align-items: center; - justify-content: center; - } - - .flex-start { - display: flex; - align-items: flex-start; - justify-content: center; - } - .flex-between { - display: flex; - align-items: center; - justify-content: space-between; - } - - .flex-half { - flex: 1; - } - - .first-letter::first-letter { - font-weight: bold; - font-size: 3rem; - } - - /* blog bgImg */ - .bg-blog-image { - background-image: url("../src/assets/images/blogs-page/blogBg.png"); - } -} - -/* Hero Image */ - -/* Creative Shapes */ - -.creative-shapes { - position: relative; - width: 1432px; - height: 519px; - left: 0px; - top: 0px; -} - -.ellipse { - position: absolute; - border-radius: 50%; - transition: transform 3s, filter 3s; -} - -/* Ellipse 115 */ - -.ellipse115 { - position: absolute; - width: 48px; - height: 48px; - left: 0px; - top: 277px; - - background: #cfe2dc; - opacity: 0.25; -} - -/* Ellipse 116 */ - -.ellipse116 { - position: absolute; - width: 28px; - height: 28px; - left: 87px; - top: 207px; - - background: #63968b; -} - -/* Ellipse 117 */ - -.ellipse117 { - position: absolute; - width: 101px; - height: 101px; - left: 50px; - top: 246px; - - background: url(.jpg), #d9d9d9; -} - -/* Ellipse 118 */ - -.ellipse118 { - position: absolute; - width: 131px; - height: 137px; - left: 151px; - top: 221px; - - background: #d9d9d9; -} - -/* Ellipse 132 */ - -.ellipse132 { - position: absolute; - width: 98px; - height: 102px; - left: 184px; - top: 331px; - - background: #d9d9d9; -} - -/* Ellipse 119 */ - -.ellipse119 { - position: absolute; - width: 33px; - height: 35px; - left: 134px; - top: 347px; - - background: #63968b; -} - -/* Ellipse 133 */ - -.ellipse133 { - position: absolute; - width: 30px; - height: 30px; - left: 178px; - top: 440px; - - background: #d9d9d9; - opacity: 0.25; -} - -/* Ellipse 134 */ - -.ellipse134 { - position: absolute; - width: 30px; - height: 30px; - left: 300px; - top: 394px; - - background: url(.jpg), #63968b; -} - -/* Ellipse 172 */ - -.ellipse172 { - position: absolute; - width: 42px; - height: 42px; - left: 435px; - top: 458px; - - background: #63968b; -} - -/* Ellipse 173 */ - -.ellipse173 { - position: absolute; - width: 31px; - height: 31px; - left: 496px; - top: 474px; - - background: #d9d9d9; -} - -/* Ellipse 174 */ - -.ellipse174 { - position: absolute; - width: 48px; - height: 48px; - left: 532px; - top: 470px; - - background: url(.jpg); - opacity: 0.25; -} - -/* Ellipse 175 */ - -.ellipse175 { - position: absolute; - width: 156px; - height: 156px; - left: 451px; - top: 313px; - - background: #d9d9d9; -} - -/* Ellipse 176 */ - -.ellipse176 { - position: absolute; - width: 91px; - height: 91px; - left: 413px; - top: 331px; - - background: url(.jpg), #d9d9d9; -} - -/* Ellipse 135 */ - -.ellipse135 { - position: absolute; - width: 59px; - height: 59px; - left: 283px; - top: 335px; - - background: #63968b; -} - -/* Ellipse 136 */ - -.ellipse136 { - position: absolute; - width: 121px; - height: 121px; - left: 333px; - top: 331px; - - background: #d9d9d9; -} - -/* Ellipse 120 */ - -.ellipse120 { - position: absolute; - width: 65px; - height: 69px; - left: 200px; - top: 138px; - - background: url(.jpg), #d9d9d9; -} - -/* Ellipse 124 */ - -.ellipse124 { - position: absolute; - width: 69px; - height: 69px; - left: 200px; - top: 138px; - - background: #d9d9d9; -} - -/* Ellipse 125 */ - -.ellipse125 { - position: absolute; - width: 69px; - height: 69px; - left: 278px; - top: 177px; - - background: #d9d9d9; - opacity: 0.25; -} - -/* Ellipse 126 */ - -.ellipse126 { - position: absolute; - width: 172px; - height: 172px; - left: 289px; - top: 199px; - - background: #d9d9d9; -} - -/* Ellipse 121 */ - -.ellipse121 { - position: absolute; - width: 45px; - height: 45px; - left: 278px; - top: 116px; - - background: #60968b; -} - -/* Ellipse 127 */ - -.ellipse127 { - position: absolute; - width: 91px; - height: 91px; - left: 328px; - top: 116px; - - background: url(.jpg); -} - -/* Ellipse 128 */ - -.ellipse128 { - position: absolute; - width: 131px; - height: 131px; - left: 389px; - top: 30px; - - background: #d9d9d9; -} - -/* Ellipse 129 */ - -.ellipse129 { - position: absolute; - width: 160px; - height: 160px; - left: 479px; - top: 56px; - - background: #b3cbc4; - opacity: 0.45; -} - -/* Ellipse 130 */ - -.ellipse130 { - position: absolute; - width: 79px; - height: 79px; - left: 406px; - top: 152px; - - background: #63968b; -} - -/* Ellipse 131 */ - -.ellipse1311 { - position: absolute; - width: 150px; - height: 150px; - left: 450px; - top: 199px; - - background: #609a8f; - opacity: 0.75; -} - -/* Ellipse 122 */ - -.ellipse122 { - position: absolute; - width: 30px; - height: 30px; - left: 242px; - top: 108px; - - background: url(.jpg), #60968b; -} - -/* Ellipse 123 */ - -.ellipse123 { - position: absolute; - width: 30px; - height: 30px; - left: 361px; - top: 26px; - - background: #60968b; -} - -/* Ellipse 137 */ - -.ellipse137 { - position: absolute; - width: 30px; - height: 30px; - left: 575px; - top: 30px; - - background: #60968b; -} - -/* Ellipse 138 */ - -.ellipse138 { - position: absolute; - width: 90px; - height: 90px; - left: 603px; - top: 0px; - - background: #d9d9d9; -} - -/* Ellipse 139 */ - -.ellipse139 { - position: absolute; - width: 116px; - height: 124px; - left: 650px; - top: 70px; - - background: url(.jpg), #d9d9d9; -} - -/* Ellipse 140 */ - -.ellipse140 { - position: absolute; - width: 124px; - height: 124px; - left: 650px; - top: 70px; - - background: #d9d9d9; -} - -/* Ellipse 141 */ - -.ellipse141 { - position: absolute; - width: 80px; - height: 80px; - left: 580px; - top: 136px; - - background: #d9d9d9; -} - -/* Ellipse 142 */ - -.ellipse142 { - position: absolute; - width: 210px; - height: 210px; - left: 602px; - top: 184px; - - background: url(.jpg), #d9d9d9; -} - -/* Ellipse 143 */ - -.ellipse143 { - position: absolute; - width: 80px; - height: 80px; - left: 564px; - top: 324px; - - background: #d9d9d9; -} - -/* Ellipse 144 */ - -.ellipse144 { - position: absolute; - width: 137px; - height: 137px; - left: 591px; - top: 382px; - - background: #d9d9d9; -} - -/* Ellipse 145 */ - -.ellipse145 { - position: absolute; - width: 82px; - height: 88px; - left: 716px; - top: 391px; - - background: #668c83; -} - -/* Ellipse 177 */ - -.ellipse177 { - position: absolute; - width: 59px; - height: 63px; - left: 762px; - top: 336px; - - background: url(.jpg), #668c83; -} - -/* Ellipse 178 */ - -.ellipse178 { - position: absolute; - width: 59px; - height: 63px; - left: 775px; - top: 264px; - - background: #d9d9d9; -} - -/* Ellipse 146 */ - -.ellipse146 { - position: absolute; - width: 141px; - height: 151px; - left: 792px; - top: 360px; - - background: #d9d9d9; -} - -/* Ellipse 156 */ - -.ellipse156 { - position: absolute; - width: 61px; - height: 61px; - left: 937px; - top: 420px; - - background: #d9d9d9; - opacity: 0.35; -} - -/* Ellipse 157 */ - -.ellipse157 { - position: absolute; - width: 85px; - height: 85px; - left: 1002px; - top: 404px; - - background: url(.jpg), #d9d9d9; -} - -/* Ellipse 179 */ - -.ellipse179 { - position: absolute; - width: 54px; - height: 54px; - left: 1019px; - top: 336px; - - background: #6d837d; -} - -/* Ellipse 158 */ - -.ellipse158 { - position: absolute; - width: 121px; - height: 121px; - left: 1072px; - top: 325px; - - background: #81918d; - opacity: 0.85; -} - -/* Ellipse 164 */ - -.ellipse164 { - position: absolute; - width: 128px; - height: 137px; - left: 1105px; - top: 223px; - - background: #d9d9d9; -} - -/* Ellipse 165 */ - -.ellipse165 { - position: absolute; - width: 121px; - height: 121px; - left: 1232px; - top: 212px; - - background: url(.jpg), #d9d9d9; -} - -/* Ellipse 167 */ - -.ellipse167 { - position: absolute; - width: 84px; - height: 84px; - left: 1337px; - top: 227px; - - background: #d9d9d9; -} - -/* Ellipse 168 */ - -.ellipse168 { - position: absolute; - width: 56px; - height: 56px; - left: 1266px; - top: 325px; - - background: #acb0af; - opacity: 0.55; -} - -/* Ellipse 169 */ - -.ellipse169 { - position: absolute; - width: 34px; - height: 34px; - left: 1193px; - top: 350px; - - background: #707b79; -} - -/* Ellipse 170 */ - -.ellipse170 { - position: absolute; - width: 29px; - height: 29px; - left: 1091px; - top: 450px; - - background: #6d837d; -} - -/* Ellipse 171 */ - -.ellipse171 { - position: absolute; - width: 29px; - height: 29px; - left: 1403px; - top: 229px; - - background: #737574; -} - -/* Ellipse 166 */ - -.ellipse166 { - position: absolute; - width: 56px; - height: 56px; - left: 1260px; - top: 171px; - - background: #d9d9d9; -} - -/* Ellipse 147 */ - -.ellipse147 { - position: absolute; - width: 150px; - height: 150px; - left: 817px; - top: 213px; - - background: url(.jpg), #d9d9d9; -} - -/* Ellipse 148 */ - -.ellipse148 { - position: absolute; - width: 115px; - height: 115px; - left: 766px; - top: 119px; - - background: #d9d9d9; -} - -/* Ellipse 151 */ - -.ellipse151 { - position: absolute; - width: 80px; - height: 80px; - left: 881px; - top: 159px; - - background: #698981; -} - -/* Ellipse 149 */ - -.ellipse149 { - position: absolute; - width: 82px; - height: 82px; - left: 805px; - top: 45px; - - background: #ced8d6; - opacity: 0.55; -} - -/* Ellipse 152 */ - -.ellipse152 { - position: absolute; - width: 106px; - height: 106px; - left: 870px; - top: 57px; - - background: url(.jpg), #d9d9d9; -} - -/* Ellipse 153 */ - -.ellipse153 { - position: absolute; - width: 125px; - height: 125px; - left: 956px; - top: 69px; - - background: #d9d9d9; -} - -/* Ellipse 159 */ - -.ellipse159 { - position: absolute; - width: 160px; - height: 160px; - left: 1055px; - top: 86px; - - background: url(.jpg); -} - -/* Ellipse 160 */ - -.ellipse160 { - position: absolute; - width: 105px; - height: 105px; - left: 1198px; - top: 90px; - - background: #d9d9d9; -} - -/* Ellipse 161 */ - -.ellipse161 { - position: absolute; - width: 60px; - height: 60px; - left: 1039px; - top: 39px; - - background: #d1d6d6; - opacity: 0.25; -} - -/* Ellipse 162 */ - -.ellipse162 { - position: absolute; - width: 20px; - height: 20px; - left: 1005px; - top: 45px; - - background: #6b8781; -} - -/* Ellipse 163 */ - -.ellipse163 { - position: absolute; - width: 20px; - height: 20px; - left: 1198px; - top: 83px; - - background: #6f7e7b; -} - -/* Ellipse 154 */ - -.ellipse154 { - position: absolute; - width: 100px; - height: 100px; - left: 949px; - top: 133px; - - background: #d9d9d9; - opacity: 0.15; -} - -/* Ellipse 155 */ - -.ellipse155 { - position: absolute; - width: 160px; - height: 160px; - left: 966px; - top: 210px; - - background: #d9d9d9; -} - -/* Ellipse 150 */ - -.ellipse150 { - position: absolute; - width: 52px; - height: 52px; - left: 741px; - top: 54px; - - background: #649186; -} - -/* Rectangle 18291 */ - -/* .rectangle18291 { - position: absolute; - width: 1436px; - height: 523px; - left: 0px; - top: 0px; - - background: linear-gradient( - 96.14deg, - #59a896 10.62%, - #737373 96.48%, - #00664e 96.48% - ); -} */ - -/* Ellipse 147 */ - -.ellipse147 { - position: absolute; -width: 150px; -height: 150px; -left: 817px; -top: 213px; - -background: url('./assets/Landing Page Images/Ellipse 147.png'); -} - -/* Ellipse 1411 */ - -.ellipse1411 { - position: absolute; - width: 210px; - height: 210px; - left: 602px; - top: 184px; - - background: url('./assets/Landing Page Images/Ellipse 1411.png'); -} - -/* Ellipse 128 */ - -.ellipse128 { - position: absolute; - width: 131px; - height: 131px; - left: 389px; - top: 30px; - - background: url('./assets/Landing Page Images/Ellipse 128.png'); -} - -/* Ellipse 142 */ - -.ellipse142 { - position: absolute; - width: 101px; - height: 101px; - left: 50px; - top: 246px; - - background: url('./assets/Landing Page Images/Ellipse 142.png'), #d9d9d9; -} - -/* Ellipse 175 */ - -.ellipse175 { - position: absolute; - width: 156px; - height: 156px; - left: 451px; - top: 313px; - - background: url('./assets/Landing Page Images/Ellipse 175.png'); -} - -/* Ellipse 146 */ - -.ellipse146 { - position: absolute; - width: 141px; - height: 151px; - left: 792px; - top: 360px; - - background: url('./assets/Landing Page Images/Ellipse 146.png'); -} - -/* Ellipse 159 */ - -.ellipse159 { - position: absolute; - width: 160px; - height: 160px; - left: 1055px; - top: 86px; - - background: url('./assets/Landing Page Images/Ellipse 159.png'); -} - -/* Ellipse 167 */ - -.ellipse167 { - position: absolute; - width: 84px; - height: 84px; - left: 1337px; - top: 227px; - - background: url('./assets/Landing Page Images/Ellipse 167.png'); -} - -/* Ellipse 160 */ - -.ellipse160 { - position: absolute; - width: 105px; - height: 105px; - left: 1198px; - top: 90px; - - background: url('./assets/Landing Page Images/Ellipse 160.png'), #d9d9d9; -} - -/* Ellipse 118 */ - -.ellipse118 { - position: absolute; - width: 131px; - height: 137px; - left: 151px; - top: 221px; - - background: url('./assets/Landing Page Images/Ellipse 118.png'); -} - -/* Ellipse 138 */ - -.ellipse138 { - position: absolute; - width: 90px; - height: 90px; - left: 603px; - top: 0px; - - background: url('./assets/Landing Page Images/Ellipse 138.png'); -} - -/* Ellipse 141 */ - -.ellipse141 { - position: absolute; - width: 80px; - height: 80px; - left: 580px; - top: 136px; - - background: url('./assets/Landing Page Images/Ellipse 141.png'); -} - -/* Ellipse 157 */ - -.ellipse157 { - position: absolute; - width: 85px; - height: 85px; - left: 1002px; - top: 404px; - - background: url('./assets/Landing Page Images/Ellipse 157.png'); -} - -/* Ellipse 132 */ - -.ellipse132 { - position: absolute; - width: 98px; - height: 102px; - left: 184px; - top: 331px; - - background: url('./assets/Landing Page Images/Ellipse 132.png'), #d9d9d9; -} - -/* Ellipse 131 */ - -.ellipse131 { - position: absolute; - width: 172px; - height: 172px; - left: 289px; - top: 199px; - - background: url('./assets/Landing Page Images/Ellipse 131.png'); -} - -/* Ellipse 136 */ - -.ellipse136 { - position: absolute; - width: 121px; - height: 121px; - left: 333px; - top: 331px; - - background: url('./assets/Landing Page Images/Ellipse 136.png'); -} - -/* Ellipse 124 */ - -.ellipse124 { - position: absolute; - width: 69px; - height: 69px; - left: 200px; - top: 138px; - - background: url('./assets/Landing Page Images/Ellipse 124.png'), #d9d9d9; -} - -/* Ellipse 164 */ - -.ellipse164 { - position: absolute; - width: 128px; - height: 137px; - left: 1105px; - top: 223px; - - background: url('./assets/Landing Page Images/Ellipse 164.png'), #d9d9d9; -} - -/* Ellipse 165 */ - -.ellipse165 { - position: absolute; - width: 121px; - height: 121px; - left: 1232px; - top: 212px; - - background: url('./assets/Landing Page Images/Ellipse 165.png'); -} - -/* Ellipse 148 */ - -.ellipse148 { - position: absolute; - width: 115px; - height: 115px; - left: 766px; - top: 119px; - - background: url('./assets/Landing Page Images/Ellipse 148.png'); -} - -/* Ellipse 152 */ - -.ellipse152 { - position: absolute; - width: 106px; - height: 106px; - left: 870px; - top: 57px; - - background: url('./assets/Landing Page Images/Ellipse 152.png'); -} - -/* Ellipse 153 */ - -.ellipse153 { - position: absolute; - width: 125px; - height: 125px; - left: 956px; - top: 69px; - - background: url('./assets/Landing Page Images/Ellipse 153.png'); -} - -/* Ellipse 155 */ - -.ellipse155 { - position: absolute; - width: 160px; - height: 160px; - left: 966px; - top: 210px; - - background: url('./assets/Landing Page Images/Ellipse 155.png'); -} - -/* Ellipse 127 */ - -.ellipse127 { - position: absolute; - width: 137px; - height: 137px; - left: 591px; - top: 382px; - - background: url('./assets/Landing Page Images/Ellipse 127.png'); -} - -/* Ellipse 117 */ - -.ellipse117 { - position: absolute; - width: 124px; - height: 124px; - left: 650px; - top: 70px; - - background: url('./assets/Landing Page Images/Ellipse 117.png'); -} +@tailwind base; + @tailwind components; + @tailwind utilities; + \ No newline at end of file diff --git a/src/APP/index.js b/src/index.js similarity index 83% rename from src/APP/index.js rename to src/index.js index 9f40cc62..9521f5be 100644 --- a/src/APP/index.js +++ b/src/index.js @@ -3,6 +3,7 @@ import { lazy } from "react"; const AboutUs = lazy(() => import("./pages/aboutUs/AboutUs")); +const AdminLayout = lazy(() => import("./components/admin/AdminLayout")); const AllBlogsPage = lazy(() => import("./pages/admin/blogs/AllBlogsPage")); const AddChapterPage = lazy(() => import("./pages/admin/chapters/AddChapterPage") @@ -55,41 +56,22 @@ const CategoriesProducts = lazy(() => ); const SingleItemPage = lazy(() => import("./pages/shop/SingleItemPage")); +const ShopDashboard = lazy(() => import("./pages/admin/shop/ShopDashboard")); + export { - AddChapterPage, + AboutUs, AddChapterPage, AddEventPage, + AdminLayout, AllBlogsPage, AllChaptersPage, - AllEventsPage, - UpdateEventPage, - LandingPage, - Homepage, - Checkout, - CategoriesProducts, - SingleItemPage, - Layout, - Products, - Resources, - AboutUs, - CommunityPage, - DonatePage, - SingleEvent, - Blogs, - Blog, - Blog2, - EventsPage, - EventsSection, - SingleProductDonation, - IndividualChapter, - Error400, + AllEventsPage, Blog, + Blog2, Blogs, CategoriesProducts, Checkout, CommunityPage, + DonatePage, Error400, Error403, Error404, Error500, - ErrorBoundary, - ProductDisplay, - ForgotPassword, - LogIn, - ResetPassword, - SignUp, - GalleryPage, + ErrorBoundary, EventsPage, + EventsSection, ForgotPassword, GalleryPage, Homepage, IndividualChapter, LandingPage, Layout, LogIn, ProductDisplay, Products, ResetPassword, Resources, ShopDashboard, + SignUp, SingleEvent, SingleItemPage, SingleProductDonation, UpdateEventPage }; + diff --git a/src/main.jsx b/src/main.jsx index a61c49e6..a0dc0005 100644 --- a/src/main.jsx +++ b/src/main.jsx @@ -6,7 +6,7 @@ import { HelmetProvider } from "react-helmet-async"; import { Toaster } from "react-hot-toast"; import { RouterProvider } from "react-router-dom"; import "./index.css"; -import { ErrorBoundary } from "./APP"; +import { ErrorBoundary } from "."; import { AuthContextProvider } from "./context/AuthContext"; import { SearchBlogProvider } from "./context/searchBlog"; import router from "./router"; diff --git a/src/APP/pages/Layout.jsx b/src/pages/Layout.jsx similarity index 100% rename from src/APP/pages/Layout.jsx rename to src/pages/Layout.jsx diff --git a/src/APP/pages/aboutUs/AboutUs.jsx b/src/pages/aboutUs/AboutUs.jsx similarity index 100% rename from src/APP/pages/aboutUs/AboutUs.jsx rename to src/pages/aboutUs/AboutUs.jsx diff --git a/src/APP/pages/aboutUs/data.js b/src/pages/aboutUs/data.js similarity index 93% rename from src/APP/pages/aboutUs/data.js rename to src/pages/aboutUs/data.js index 02ecaf27..ff2f995e 100644 --- a/src/APP/pages/aboutUs/data.js +++ b/src/pages/aboutUs/data.js @@ -9,7 +9,7 @@ import { murabula, sharon, waithaka, -} from "../../../assets/images/aboutPage"; +} from "../../assets/images/aboutPage"; export const LeadershipData = [ { diff --git a/src/APP/pages/aboutUs/sections/HeroSection.jsx b/src/pages/aboutUs/sections/HeroSection.jsx similarity index 92% rename from src/APP/pages/aboutUs/sections/HeroSection.jsx rename to src/pages/aboutUs/sections/HeroSection.jsx index a0e8e868..16eafa02 100644 --- a/src/APP/pages/aboutUs/sections/HeroSection.jsx +++ b/src/pages/aboutUs/sections/HeroSection.jsx @@ -1,6 +1,6 @@ /* eslint-disable react/jsx-one-expression-per-line */ import { LazyLoadImage } from "react-lazy-load-image-component"; -import { SYTHero } from "../../../../assets/images/aboutPage"; +import { SYTHero } from "../../../assets/images/aboutPage"; function HeroSection() { return ( diff --git a/src/APP/pages/aboutUs/sections/LeadershipSection.jsx b/src/pages/aboutUs/sections/LeadershipSection.jsx similarity index 99% rename from src/APP/pages/aboutUs/sections/LeadershipSection.jsx rename to src/pages/aboutUs/sections/LeadershipSection.jsx index 6ac2a235..4fc29a3d 100644 --- a/src/APP/pages/aboutUs/sections/LeadershipSection.jsx +++ b/src/pages/aboutUs/sections/LeadershipSection.jsx @@ -4,7 +4,7 @@ import React, { Fragment, useState, useRef } from "react"; import { LazyLoadImage } from "react-lazy-load-image-component"; import { AiOutlineClose } from "react-icons/ai"; // Import react-icons -import { PartnerWithUs } from "../../../../assets/images/aboutPage"; +import { PartnerWithUs } from "../../../assets/images/aboutPage"; import { Caroussel } from "../../../components"; import { LeadershipData } from "../data"; diff --git a/src/APP/pages/aboutUs/sections/MissionVisionSection.jsx b/src/pages/aboutUs/sections/MissionVisionSection.jsx similarity index 96% rename from src/APP/pages/aboutUs/sections/MissionVisionSection.jsx rename to src/pages/aboutUs/sections/MissionVisionSection.jsx index e5a74078..5efbf493 100644 --- a/src/APP/pages/aboutUs/sections/MissionVisionSection.jsx +++ b/src/pages/aboutUs/sections/MissionVisionSection.jsx @@ -1,5 +1,5 @@ /* eslint-disable linebreak-style */ -import { LittleMore } from "../../../../assets/images/aboutPage"; +import { LittleMore } from "../../../assets/images/aboutPage"; function MissionVisionSection() { return ( diff --git a/src/APP/pages/aboutUs/sections/PartnerCTA.jsx b/src/pages/aboutUs/sections/PartnerCTA.jsx similarity index 100% rename from src/APP/pages/aboutUs/sections/PartnerCTA.jsx rename to src/pages/aboutUs/sections/PartnerCTA.jsx diff --git a/src/APP/pages/aboutUs/sections/index.js b/src/pages/aboutUs/sections/index.js similarity index 100% rename from src/APP/pages/aboutUs/sections/index.js rename to src/pages/aboutUs/sections/index.js diff --git a/src/APP/pages/admin/blogs/AllBlogsPage.jsx b/src/pages/admin/blogs/AllBlogsPage.jsx similarity index 100% rename from src/APP/pages/admin/blogs/AllBlogsPage.jsx rename to src/pages/admin/blogs/AllBlogsPage.jsx diff --git a/src/APP/pages/admin/chapters/AddChapterPage.jsx b/src/pages/admin/chapters/AddChapterPage.jsx similarity index 98% rename from src/APP/pages/admin/chapters/AddChapterPage.jsx rename to src/pages/admin/chapters/AddChapterPage.jsx index 62ac9735..f1dc31a1 100644 --- a/src/APP/pages/admin/chapters/AddChapterPage.jsx +++ b/src/pages/admin/chapters/AddChapterPage.jsx @@ -2,7 +2,7 @@ import { useState, useEffect } from "react"; import { useNavigate } from "react-router-dom"; import StepIndicator from "../../../components/admin/StepIndicator"; import AddChapterForm from "../../../components/admin/AddChapterForm"; -import usePostAddChapter from "../../../../hooks/Queries/chapter/usePostAddChapter"; +import usePostAddChapter from "../../../hooks/Queries/chapter/usePostAddChapter"; function AddChapterPage() { const { diff --git a/src/APP/pages/admin/chapters/AllChaptersPage.jsx b/src/pages/admin/chapters/AllChaptersPage.jsx similarity index 100% rename from src/APP/pages/admin/chapters/AllChaptersPage.jsx rename to src/pages/admin/chapters/AllChaptersPage.jsx diff --git a/src/APP/pages/admin/events/AddEventPage.jsx b/src/pages/admin/events/AddEventPage.jsx similarity index 98% rename from src/APP/pages/admin/events/AddEventPage.jsx rename to src/pages/admin/events/AddEventPage.jsx index 1a794008..e063f849 100644 --- a/src/APP/pages/admin/events/AddEventPage.jsx +++ b/src/pages/admin/events/AddEventPage.jsx @@ -17,9 +17,9 @@ import { Toolbar, } from "react-simple-wysiwyg"; -import useChaptersData from "../../../../hooks/Queries/community/useChaptersData"; -import { useEventsCategories } from "../../../../hooks/Queries/eventsSection/useEventCategories"; -import usePostEvents from "../../../../hooks/Queries/eventsSection/usePostEvents"; +import useChaptersData from "../../../hooks/Queries/community/useChaptersData"; +import { useEventsCategories } from "../../../hooks/Queries/eventsSection/useEventCategories"; +import usePostEvents from "../../../hooks/Queries/eventsSection/usePostEvents"; function AddEventPage() { const [selectedEventCategory, setSelectedEventCategory] = useState("1"); diff --git a/src/APP/pages/admin/events/AllEventsPage.jsx b/src/pages/admin/events/AllEventsPage.jsx similarity index 100% rename from src/APP/pages/admin/events/AllEventsPage.jsx rename to src/pages/admin/events/AllEventsPage.jsx diff --git a/src/APP/pages/admin/events/UpdateEventPage.jsx b/src/pages/admin/events/UpdateEventPage.jsx similarity index 100% rename from src/APP/pages/admin/events/UpdateEventPage.jsx rename to src/pages/admin/events/UpdateEventPage.jsx diff --git a/src/pages/admin/shop/ShopDashboard.jsx b/src/pages/admin/shop/ShopDashboard.jsx new file mode 100644 index 00000000..147103fb --- /dev/null +++ b/src/pages/admin/shop/ShopDashboard.jsx @@ -0,0 +1,49 @@ +import columns from "@/components/admin/shop/dashboard/OrderPreviewColumns"; +import OrdersPreviewTable from "@/components/admin/shop/dashboard/OrdersPreviewTable"; +import { Link } from "react-router-dom"; + +function ShopDashboard() { + const data = [ + { + id: "728ed52", + email: "m@example.com", + item: "SYT Jacket", + cost: 100, + status: "complete", + }, + { + id: "728d52f", + email: "m@example.com", + item: "SYT Jacket", + cost: 100, + status: "unfullfilled", + }, + { + id: "728ed2f", + email: "m@example.com", + item: "SYT Jacket", + cost: 100, + status: "pending", + }, + ]; + + return ( +
+
+
+

Orders

+ + View All + +
+ + +
+
+ ); +} + +export default ShopDashboard; diff --git a/src/APP/pages/auth/ForgotPassword.jsx b/src/pages/auth/ForgotPassword.jsx similarity index 100% rename from src/APP/pages/auth/ForgotPassword.jsx rename to src/pages/auth/ForgotPassword.jsx diff --git a/src/APP/pages/auth/LogIn.jsx b/src/pages/auth/LogIn.jsx similarity index 97% rename from src/APP/pages/auth/LogIn.jsx rename to src/pages/auth/LogIn.jsx index 3b141439..16f5da48 100644 --- a/src/APP/pages/auth/LogIn.jsx +++ b/src/pages/auth/LogIn.jsx @@ -2,9 +2,9 @@ import React, { useState } from "react"; import { useNavigate } from "react-router-dom"; import { MdLock } from "react-icons/md"; // Example icon from react-icons -import publicAxios from "../../../api/publicAxios"; +import publicAxios from "../../api/publicAxios"; import LoginImg from "../../../assets/images/auth/login.svg"; -import useAuth from "../../../hooks/useAuth"; +import useAuth from "../../hooks/useAuth"; function LogIn() { const { auth, setAuth } = useAuth(); diff --git a/src/APP/pages/auth/ResetPassword.jsx b/src/pages/auth/ResetPassword.jsx similarity index 100% rename from src/APP/pages/auth/ResetPassword.jsx rename to src/pages/auth/ResetPassword.jsx diff --git a/src/APP/pages/auth/SignUp.jsx b/src/pages/auth/SignUp.jsx similarity index 98% rename from src/APP/pages/auth/SignUp.jsx rename to src/pages/auth/SignUp.jsx index 0eeaf045..913b19d7 100644 --- a/src/APP/pages/auth/SignUp.jsx +++ b/src/pages/auth/SignUp.jsx @@ -1,8 +1,8 @@ import { useState } from "react"; import { Navigate } from "react-router-dom"; -import publicAxios from "../../../api/publicAxios"; +import publicAxios from "../../api/publicAxios"; import SignUpImg from "../../../assets/images/auth/signup.svg"; -import useAuth from "../../../hooks/useAuth"; +import useAuth from "../../hooks/useAuth"; import { LazyLoadImage } from "react-lazy-load-image-component"; function SignUp() { diff --git a/src/APP/pages/blog/Blog.jsx b/src/pages/blog/Blog.jsx similarity index 95% rename from src/APP/pages/blog/Blog.jsx rename to src/pages/blog/Blog.jsx index 3b10afb3..7a3e2a88 100644 --- a/src/APP/pages/blog/Blog.jsx +++ b/src/pages/blog/Blog.jsx @@ -1,6 +1,6 @@ import React, { useEffect } from "react"; import { useParams, useNavigate } from "react-router-dom"; -import useBlogData from "../../../hooks/Queries/blog/useBlogData"; +import useBlogData from "../../hooks/Queries/blog/useBlogData"; import { Loader } from "../../components"; import BlogWrapper from "./sections/BlogWrapper"; import RelatedBlogs from "./sections/RelatedBlogs"; diff --git a/src/APP/pages/blog/sections/BlogWrapper.jsx b/src/pages/blog/sections/BlogWrapper.jsx similarity index 100% rename from src/APP/pages/blog/sections/BlogWrapper.jsx rename to src/pages/blog/sections/BlogWrapper.jsx diff --git a/src/APP/pages/blog/sections/CommentInput.jsx b/src/pages/blog/sections/CommentInput.jsx similarity index 100% rename from src/APP/pages/blog/sections/CommentInput.jsx rename to src/pages/blog/sections/CommentInput.jsx diff --git a/src/APP/pages/blog/sections/Comments.jsx b/src/pages/blog/sections/Comments.jsx similarity index 94% rename from src/APP/pages/blog/sections/Comments.jsx rename to src/pages/blog/sections/Comments.jsx index 487a2b56..1b993ade 100644 --- a/src/APP/pages/blog/sections/Comments.jsx +++ b/src/pages/blog/sections/Comments.jsx @@ -2,7 +2,7 @@ import { Ellipse30, chatText, reply, -} from "../../../../assets/images/blogs-page"; +} from "../../../assets/images/blogs-page"; import CommentInput from "./CommentInput"; import { LazyLoadImage } from "react-lazy-load-image-component"; diff --git a/src/APP/pages/blog/sections/RelatedBlogCard.jsx b/src/pages/blog/sections/RelatedBlogCard.jsx similarity index 97% rename from src/APP/pages/blog/sections/RelatedBlogCard.jsx rename to src/pages/blog/sections/RelatedBlogCard.jsx index 420a6d7b..0889cba4 100644 --- a/src/APP/pages/blog/sections/RelatedBlogCard.jsx +++ b/src/pages/blog/sections/RelatedBlogCard.jsx @@ -3,7 +3,7 @@ import { formatDistanceToNow } from "date-fns"; import React from "react"; import { useNavigate, Link } from "react-router-dom"; -import { arrowRight } from "../../../../assets/images/blogs-page"; +import { arrowRight } from "../../../assets/images/blogs-page"; import logo from "../../../../assets/images/sytLogo.png"; import { BlogStats } from "../../blogs/sections"; diff --git a/src/APP/pages/blog/sections/RelatedBlogs.jsx b/src/pages/blog/sections/RelatedBlogs.jsx similarity index 91% rename from src/APP/pages/blog/sections/RelatedBlogs.jsx rename to src/pages/blog/sections/RelatedBlogs.jsx index 441c86c2..0bd9ef75 100644 --- a/src/APP/pages/blog/sections/RelatedBlogs.jsx +++ b/src/pages/blog/sections/RelatedBlogs.jsx @@ -1,8 +1,8 @@ import { useEffect } from "react"; import { useParams } from "react-router-dom"; -import { useRelatedBlogsData } from "../../../../hooks/Queries/blog/useBlogData"; -import { filterRelatedBlogs } from "../../../../utilities/FilterBlogs"; +import { useRelatedBlogsData } from "../../../hooks/Queries/blog/useBlogData"; +import { filterRelatedBlogs } from "../../../utilities/FilterBlogs"; import RelatedBlogCard from "./RelatedBlogCard"; function RelatedBlogs({ blogId, categoryId }) { diff --git a/src/APP/pages/blog/sections/blogWrapper.css b/src/pages/blog/sections/blogWrapper.css similarity index 100% rename from src/APP/pages/blog/sections/blogWrapper.css rename to src/pages/blog/sections/blogWrapper.css diff --git a/src/APP/pages/blog2/Blog2.jsx b/src/pages/blog2/Blog2.jsx similarity index 96% rename from src/APP/pages/blog2/Blog2.jsx rename to src/pages/blog2/Blog2.jsx index 02f68447..c061304d 100644 --- a/src/APP/pages/blog2/Blog2.jsx +++ b/src/pages/blog2/Blog2.jsx @@ -1,7 +1,7 @@ import React, { useEffect } from "react"; import { useNavigate, useParams } from "react-router-dom"; -import useBlogData from "../../../hooks/Queries/blog/useBlogData"; +import useBlogData from "../../hooks/Queries/blog/useBlogData"; import { Loader } from "../../components"; import SeoMetadata from "../../components/SeoMetadata"; import { Advert, BlogHeader, BlogBody } from "./sections"; diff --git a/src/APP/pages/blog2/sections/Advert.jsx b/src/pages/blog2/sections/Advert.jsx similarity index 82% rename from src/APP/pages/blog2/sections/Advert.jsx rename to src/pages/blog2/sections/Advert.jsx index 5eea6687..4dd7e444 100644 --- a/src/APP/pages/blog2/sections/Advert.jsx +++ b/src/pages/blog2/sections/Advert.jsx @@ -1,7 +1,7 @@ import React from "react"; import { LazyLoadImage } from "react-lazy-load-image-component"; -import { advert } from "../../../../assets/images/blogs-page"; +import { advert } from "../../../assets/images/blogs-page"; function Advert() { return ( diff --git a/src/APP/pages/blog2/sections/BlogBody.jsx b/src/pages/blog2/sections/BlogBody.jsx similarity index 95% rename from src/APP/pages/blog2/sections/BlogBody.jsx rename to src/pages/blog2/sections/BlogBody.jsx index 81a75db1..9ffba5aa 100644 --- a/src/APP/pages/blog2/sections/BlogBody.jsx +++ b/src/pages/blog2/sections/BlogBody.jsx @@ -2,7 +2,7 @@ import { useRef, useEffect } from "react"; import { LazyLoadImage } from "react-lazy-load-image-component"; -import { glovo } from "../../../../assets/images/blogs-page"; +import { glovo } from "../../../assets/images/blogs-page"; import NextRead from "./NextRead"; import RelatedBlogs from "./RelatedBlogs"; diff --git a/src/APP/pages/blog2/sections/BlogHeader.jsx b/src/pages/blog2/sections/BlogHeader.jsx similarity index 100% rename from src/APP/pages/blog2/sections/BlogHeader.jsx rename to src/pages/blog2/sections/BlogHeader.jsx diff --git a/src/APP/pages/blog2/sections/BlogUMightLike.jsx b/src/pages/blog2/sections/BlogUMightLike.jsx similarity index 100% rename from src/APP/pages/blog2/sections/BlogUMightLike.jsx rename to src/pages/blog2/sections/BlogUMightLike.jsx diff --git a/src/APP/pages/blog2/sections/NextRead.jsx b/src/pages/blog2/sections/NextRead.jsx similarity index 95% rename from src/APP/pages/blog2/sections/NextRead.jsx rename to src/pages/blog2/sections/NextRead.jsx index 3abc1cd9..3eeb8d19 100644 --- a/src/APP/pages/blog2/sections/NextRead.jsx +++ b/src/pages/blog2/sections/NextRead.jsx @@ -1,8 +1,8 @@ import React, { useState } from "react"; import { useParams } from "react-router-dom"; -import { useBlogsData } from "../../../../hooks/Queries/blogs/useAllBlogsData"; -import { filteredReadNextBlogs } from "../../../../utilities/FilterBlogs"; +import { useBlogsData } from "../../../hooks/Queries/blogs/useAllBlogsData"; +import { filteredReadNextBlogs } from "../../../utilities/FilterBlogs"; import BlogsUMightLike from "./BlogUMightLike"; function NextRead() { diff --git a/src/APP/pages/blog2/sections/RelatedBlogCard.jsx b/src/pages/blog2/sections/RelatedBlogCard.jsx similarity index 100% rename from src/APP/pages/blog2/sections/RelatedBlogCard.jsx rename to src/pages/blog2/sections/RelatedBlogCard.jsx diff --git a/src/APP/pages/blog2/sections/RelatedBlogs.jsx b/src/pages/blog2/sections/RelatedBlogs.jsx similarity index 91% rename from src/APP/pages/blog2/sections/RelatedBlogs.jsx rename to src/pages/blog2/sections/RelatedBlogs.jsx index 5b895fc4..5c39448d 100644 --- a/src/APP/pages/blog2/sections/RelatedBlogs.jsx +++ b/src/pages/blog2/sections/RelatedBlogs.jsx @@ -1,8 +1,8 @@ import React, { useEffect } from "react"; import { useParams } from "react-router-dom"; -import { useRelatedBlogsData } from "../../../../hooks/Queries/blog/useBlogData"; -import { filterRelatedBlogs } from "../../../../utilities/FilterBlogs"; +import { useRelatedBlogsData } from "../../../hooks/Queries/blog/useBlogData"; +import { filterRelatedBlogs } from "../../../utilities/FilterBlogs"; import RelatedBlogCard from "./RelatedBlogCard"; diff --git a/src/APP/pages/blog2/sections/ShareBlog.jsx b/src/pages/blog2/sections/ShareBlog.jsx similarity index 100% rename from src/APP/pages/blog2/sections/ShareBlog.jsx rename to src/pages/blog2/sections/ShareBlog.jsx diff --git a/src/APP/pages/blog2/sections/blogBody.css b/src/pages/blog2/sections/blogBody.css similarity index 100% rename from src/APP/pages/blog2/sections/blogBody.css rename to src/pages/blog2/sections/blogBody.css diff --git a/src/APP/pages/blog2/sections/index.js b/src/pages/blog2/sections/index.js similarity index 100% rename from src/APP/pages/blog2/sections/index.js rename to src/pages/blog2/sections/index.js diff --git a/src/APP/pages/blogs/Blogs.jsx b/src/pages/blogs/Blogs.jsx similarity index 100% rename from src/APP/pages/blogs/Blogs.jsx rename to src/pages/blogs/Blogs.jsx diff --git a/src/APP/pages/blogs/sections/Banner.jsx b/src/pages/blogs/sections/Banner.jsx similarity index 90% rename from src/APP/pages/blogs/sections/Banner.jsx rename to src/pages/blogs/sections/Banner.jsx index 4738f9d8..abd8e724 100644 --- a/src/APP/pages/blogs/sections/Banner.jsx +++ b/src/pages/blogs/sections/Banner.jsx @@ -1,7 +1,7 @@ import React, { useContext } from "react"; -import { search } from "../../../../assets/images/blogs-page"; -import { SearchBlogContext } from "../../../../context/searchBlog"; +import { search } from "../../../assets/images/blogs-page"; +import { SearchBlogContext } from "../../../context/searchBlog"; import { LazyLoadImage } from "react-lazy-load-image-component"; function Banner() { diff --git a/src/APP/pages/blogs/sections/BlogCard.jsx b/src/pages/blogs/sections/BlogCard.jsx similarity index 100% rename from src/APP/pages/blogs/sections/BlogCard.jsx rename to src/pages/blogs/sections/BlogCard.jsx diff --git a/src/APP/pages/blogs/sections/BlogPagination.jsx b/src/pages/blogs/sections/BlogPagination.jsx similarity index 100% rename from src/APP/pages/blogs/sections/BlogPagination.jsx rename to src/pages/blogs/sections/BlogPagination.jsx diff --git a/src/APP/pages/blogs/sections/BlogStats.jsx b/src/pages/blogs/sections/BlogStats.jsx similarity index 95% rename from src/APP/pages/blogs/sections/BlogStats.jsx rename to src/pages/blogs/sections/BlogStats.jsx index c074109f..3b114b73 100644 --- a/src/APP/pages/blogs/sections/BlogStats.jsx +++ b/src/pages/blogs/sections/BlogStats.jsx @@ -1,6 +1,6 @@ import { useEffect, useState } from "react"; import { PiThumbsUp } from "react-icons/pi"; -import usePostLikeBlog from "../../../../hooks/Queries/blog/usePostLikeBlog"; +import usePostLikeBlog from "../../../hooks/Queries/blog/usePostLikeBlog"; import { LazyLoadImage } from "react-lazy-load-image-component"; const BlogStats = ({ blogId, likes }) => { diff --git a/src/APP/pages/blogs/sections/BlogsWrapper.jsx b/src/pages/blogs/sections/BlogsWrapper.jsx similarity index 95% rename from src/APP/pages/blogs/sections/BlogsWrapper.jsx rename to src/pages/blogs/sections/BlogsWrapper.jsx index 875e508b..433a7480 100644 --- a/src/APP/pages/blogs/sections/BlogsWrapper.jsx +++ b/src/pages/blogs/sections/BlogsWrapper.jsx @@ -1,12 +1,12 @@ import React, { useState, useEffect, useContext } from "react"; -import { SearchBlogContext } from "../../../../context/searchBlog"; +import { SearchBlogContext } from "../../../context/searchBlog"; import { useBlogsData, useBlogCategories, -} from "../../../../hooks/Queries/blogs/useAllBlogsData"; +} from "../../../hooks/Queries/blogs/useAllBlogsData"; -import { filterBlogsByCat } from "../../../../utilities/FilterBlogs"; +import { filterBlogsByCat } from "../../../utilities/FilterBlogs"; import { Loader } from "../../../components"; import Error500 from "../../errorPages/Error500"; diff --git a/src/APP/pages/blogs/sections/FeaturedBlogs.jsx b/src/pages/blogs/sections/FeaturedBlogs.jsx similarity index 94% rename from src/APP/pages/blogs/sections/FeaturedBlogs.jsx rename to src/pages/blogs/sections/FeaturedBlogs.jsx index 023e9b90..1b9b5847 100644 --- a/src/APP/pages/blogs/sections/FeaturedBlogs.jsx +++ b/src/pages/blogs/sections/FeaturedBlogs.jsx @@ -2,8 +2,8 @@ import React, { useState } from "react"; import { Link, useParams } from "react-router-dom"; -import { useBlogsData } from "../../../../hooks/Queries/blogs/useAllBlogsData"; -import { filteredReadNextBlogs } from "../../../../utilities/FilterBlogs"; +import { useBlogsData } from "../../../hooks/Queries/blogs/useAllBlogsData"; +import { filteredReadNextBlogs } from "../../../utilities/FilterBlogs"; function FeaturedBlogs() { const [currentIndex, setCurrentIndex] = useState(0); diff --git a/src/APP/pages/blogs/sections/index.js b/src/pages/blogs/sections/index.js similarity index 100% rename from src/APP/pages/blogs/sections/index.js rename to src/pages/blogs/sections/index.js diff --git a/src/APP/pages/chapter/pages/IndividualChapter.jsx b/src/pages/chapter/pages/IndividualChapter.jsx similarity index 94% rename from src/APP/pages/chapter/pages/IndividualChapter.jsx rename to src/pages/chapter/pages/IndividualChapter.jsx index 28e3bdc6..9ed40d9e 100644 --- a/src/APP/pages/chapter/pages/IndividualChapter.jsx +++ b/src/pages/chapter/pages/IndividualChapter.jsx @@ -1,7 +1,7 @@ import { React } from "react"; import { useParams } from "react-router-dom"; -import useIndividualChapterData from "../../../../hooks/Queries/chapter/useIndividualChapter"; +import useIndividualChapterData from "../../../hooks/Queries/chapter/useIndividualChapter"; import { Loader } from "../../../components"; import Error500 from "../../errorPages/Error500"; import AboutChapterSection from "../sections/AboutChapterSection"; diff --git a/src/APP/pages/chapter/sections/AboutChapterSection.jsx b/src/pages/chapter/sections/AboutChapterSection.jsx similarity index 100% rename from src/APP/pages/chapter/sections/AboutChapterSection.jsx rename to src/pages/chapter/sections/AboutChapterSection.jsx diff --git a/src/APP/pages/chapter/sections/DetailsContainer.jsx b/src/pages/chapter/sections/DetailsContainer.jsx similarity index 100% rename from src/APP/pages/chapter/sections/DetailsContainer.jsx rename to src/pages/chapter/sections/DetailsContainer.jsx diff --git a/src/APP/pages/chapter/sections/ImpactSection.jsx b/src/pages/chapter/sections/ImpactSection.jsx similarity index 100% rename from src/APP/pages/chapter/sections/ImpactSection.jsx rename to src/pages/chapter/sections/ImpactSection.jsx diff --git a/src/APP/pages/chapter/sections/OrganizersSection.jsx b/src/pages/chapter/sections/OrganizersSection.jsx similarity index 100% rename from src/APP/pages/chapter/sections/OrganizersSection.jsx rename to src/pages/chapter/sections/OrganizersSection.jsx diff --git a/src/APP/pages/chapter/sections/UpcomingEventSection.jsx b/src/pages/chapter/sections/UpcomingEventSection.jsx similarity index 100% rename from src/APP/pages/chapter/sections/UpcomingEventSection.jsx rename to src/pages/chapter/sections/UpcomingEventSection.jsx diff --git a/src/APP/pages/chapter/sections/WelcomeSection.jsx b/src/pages/chapter/sections/WelcomeSection.jsx similarity index 99% rename from src/APP/pages/chapter/sections/WelcomeSection.jsx rename to src/pages/chapter/sections/WelcomeSection.jsx index d11f0c68..4ad6413d 100644 --- a/src/APP/pages/chapter/sections/WelcomeSection.jsx +++ b/src/pages/chapter/sections/WelcomeSection.jsx @@ -2,7 +2,7 @@ import React, { useState, Fragment } from "react"; import { useNavigate, Link } from "react-router-dom"; import { Dialog, Transition } from "@headlessui/react"; import { useForm } from "react-hook-form"; -import usePostJoinChapter from "../../../../hooks/Queries/chapter/usePostJoinChapter"; +import usePostJoinChapter from "../../../hooks/Queries/chapter/usePostJoinChapter"; function WelcomeSection({ chapter }) { const [isOpen, setIsOpen] = useState(false); diff --git a/src/APP/pages/community/CommunityPage.jsx b/src/pages/community/CommunityPage.jsx similarity index 100% rename from src/APP/pages/community/CommunityPage.jsx rename to src/pages/community/CommunityPage.jsx diff --git a/src/APP/pages/community/sections/JoinSYTForm.jsx b/src/pages/community/sections/JoinSYTForm.jsx similarity index 97% rename from src/APP/pages/community/sections/JoinSYTForm.jsx rename to src/pages/community/sections/JoinSYTForm.jsx index 21c35f06..cc5b3219 100644 --- a/src/APP/pages/community/sections/JoinSYTForm.jsx +++ b/src/pages/community/sections/JoinSYTForm.jsx @@ -4,7 +4,7 @@ import React, { useState } from "react"; import toast from "react-hot-toast"; import { LazyLoadImage } from "react-lazy-load-image-component"; -import { sytLogoGreen } from "../../../../assets/images/icons"; +import { sytLogoGreen } from "../../../assets/images/icons"; import JoinSytSelectFields from "./JoinSYTSelectFields"; function JoinSYTForm({ closeModal }) { const [loading, setLoading] = useState(false); diff --git a/src/APP/pages/community/sections/JoinSYTModal.jsx b/src/pages/community/sections/JoinSYTModal.jsx similarity index 95% rename from src/APP/pages/community/sections/JoinSYTModal.jsx rename to src/pages/community/sections/JoinSYTModal.jsx index e8f9c4ec..57af240e 100644 --- a/src/APP/pages/community/sections/JoinSYTModal.jsx +++ b/src/pages/community/sections/JoinSYTModal.jsx @@ -3,8 +3,8 @@ import PropTypes from "prop-types"; import React, { Fragment } from "react"; import { LazyLoadImage } from "react-lazy-load-image-component"; -import { joinSYT } from "../../../../assets/images/community"; -import { sytLogoWhite } from "../../../../assets/images/icons"; +import { joinSYT } from "../../../assets/images/community"; +import { sytLogoWhite } from "../../../assets/images/icons"; import JoinSYTForm from "./JoinSYTForm"; function JoinSYTModal({ isOpen, closeModal }) { diff --git a/src/APP/pages/community/sections/JoinSYTSelectFields.jsx b/src/pages/community/sections/JoinSYTSelectFields.jsx similarity index 100% rename from src/APP/pages/community/sections/JoinSYTSelectFields.jsx rename to src/pages/community/sections/JoinSYTSelectFields.jsx diff --git a/src/APP/pages/community/sections/WelcomeSection.jsx b/src/pages/community/sections/WelcomeSection.jsx similarity index 96% rename from src/APP/pages/community/sections/WelcomeSection.jsx rename to src/pages/community/sections/WelcomeSection.jsx index 3df9d537..f4067757 100644 --- a/src/APP/pages/community/sections/WelcomeSection.jsx +++ b/src/pages/community/sections/WelcomeSection.jsx @@ -1,7 +1,7 @@ import { useState } from "react"; import { LazyLoadImage } from "react-lazy-load-image-component"; -import { NewHero } from "../../../../assets/images/community"; +import { NewHero } from "../../../assets/images/community"; import JoinSYTModal from "./JoinSYTModal"; function WelcomeSection() { diff --git a/src/APP/pages/community/sections/chaptersSection/ChapterCard.jsx b/src/pages/community/sections/chaptersSection/ChapterCard.jsx similarity index 100% rename from src/APP/pages/community/sections/chaptersSection/ChapterCard.jsx rename to src/pages/community/sections/chaptersSection/ChapterCard.jsx diff --git a/src/APP/pages/community/sections/chaptersSection/ChaptersSection.jsx b/src/pages/community/sections/chaptersSection/ChaptersSection.jsx similarity index 93% rename from src/APP/pages/community/sections/chaptersSection/ChaptersSection.jsx rename to src/pages/community/sections/chaptersSection/ChaptersSection.jsx index 8f901769..d48e87cd 100644 --- a/src/APP/pages/community/sections/chaptersSection/ChaptersSection.jsx +++ b/src/pages/community/sections/chaptersSection/ChaptersSection.jsx @@ -4,9 +4,9 @@ import { // Nairobi, // Mombasa, // Tanzania, -} from "../../../../../assets/images/community"; +} from "../../../../assets/images/community"; import ChapterCard from "./ChapterCard"; -import useChaptersData from "../../../../../hooks/Queries/community/useChaptersData"; +import useChaptersData from "../../../../hooks/Queries/community/useChaptersData"; import { Loader } from "../../../../components"; import Error500 from "../../../errorPages/Error500"; diff --git a/src/APP/pages/community/sections/eventsPreview/SingleEvents/SingleEvent.jsx b/src/pages/community/sections/eventsPreview/SingleEvents/SingleEvent.jsx similarity index 100% rename from src/APP/pages/community/sections/eventsPreview/SingleEvents/SingleEvent.jsx rename to src/pages/community/sections/eventsPreview/SingleEvents/SingleEvent.jsx diff --git a/src/APP/pages/community/sections/eventsPreview/SingleEvents/sections/EventCard.jsx b/src/pages/community/sections/eventsPreview/SingleEvents/sections/EventCard.jsx similarity index 100% rename from src/APP/pages/community/sections/eventsPreview/SingleEvents/sections/EventCard.jsx rename to src/pages/community/sections/eventsPreview/SingleEvents/sections/EventCard.jsx diff --git a/src/APP/pages/community/sections/eventsPreview/SingleEvents/sections/EventDescription.jsx b/src/pages/community/sections/eventsPreview/SingleEvents/sections/EventDescription.jsx similarity index 100% rename from src/APP/pages/community/sections/eventsPreview/SingleEvents/sections/EventDescription.jsx rename to src/pages/community/sections/eventsPreview/SingleEvents/sections/EventDescription.jsx diff --git a/src/APP/pages/community/sections/eventsPreview/SingleEvents/sections/EventRSVP.jsx b/src/pages/community/sections/eventsPreview/SingleEvents/sections/EventRSVP.jsx similarity index 98% rename from src/APP/pages/community/sections/eventsPreview/SingleEvents/sections/EventRSVP.jsx rename to src/pages/community/sections/eventsPreview/SingleEvents/sections/EventRSVP.jsx index bf52d17f..4eeb567d 100644 --- a/src/APP/pages/community/sections/eventsPreview/SingleEvents/sections/EventRSVP.jsx +++ b/src/pages/community/sections/eventsPreview/SingleEvents/sections/EventRSVP.jsx @@ -3,8 +3,8 @@ import { format, parseISO } from "date-fns"; import React, { Fragment } from "react"; import { LazyLoadImage } from "react-lazy-load-image-component"; -import { rsvpEvent } from "../../../../../../../assets/images/community"; -import { sytLogoWhite } from "../../../../../../../assets/images/icons"; +import { rsvpEvent } from "../../../../../../assets/images/community"; +import { sytLogoWhite } from "../../../../../../assets/images/icons"; import RSVPForm from "./RSVPForm"; function EventRSVP({ isOpen, closeModal, event }) { diff --git a/src/APP/pages/community/sections/eventsPreview/SingleEvents/sections/Hero.jsx b/src/pages/community/sections/eventsPreview/SingleEvents/sections/Hero.jsx similarity index 100% rename from src/APP/pages/community/sections/eventsPreview/SingleEvents/sections/Hero.jsx rename to src/pages/community/sections/eventsPreview/SingleEvents/sections/Hero.jsx diff --git a/src/APP/pages/community/sections/eventsPreview/SingleEvents/sections/LocationTag.jsx b/src/pages/community/sections/eventsPreview/SingleEvents/sections/LocationTag.jsx similarity index 100% rename from src/APP/pages/community/sections/eventsPreview/SingleEvents/sections/LocationTag.jsx rename to src/pages/community/sections/eventsPreview/SingleEvents/sections/LocationTag.jsx diff --git a/src/APP/pages/community/sections/eventsPreview/SingleEvents/sections/RSVPForm.jsx b/src/pages/community/sections/eventsPreview/SingleEvents/sections/RSVPForm.jsx similarity index 96% rename from src/APP/pages/community/sections/eventsPreview/SingleEvents/sections/RSVPForm.jsx rename to src/pages/community/sections/eventsPreview/SingleEvents/sections/RSVPForm.jsx index f3c46142..35cb24ef 100644 --- a/src/APP/pages/community/sections/eventsPreview/SingleEvents/sections/RSVPForm.jsx +++ b/src/pages/community/sections/eventsPreview/SingleEvents/sections/RSVPForm.jsx @@ -1,7 +1,7 @@ import React from "react"; import { LazyLoadImage } from "react-lazy-load-image-component"; -import { sytLogoGreen } from "../../../../../../../assets/images/icons"; +import { sytLogoGreen } from "../../../../../../assets/images/icons"; function RSVPForm({ closeModal }) { const handleSubmit = (e) => { diff --git a/src/APP/pages/community/sections/eventsPreview/SingleEvents/sections/SimilarEvents.jsx b/src/pages/community/sections/eventsPreview/SingleEvents/sections/SimilarEvents.jsx similarity index 95% rename from src/APP/pages/community/sections/eventsPreview/SingleEvents/sections/SimilarEvents.jsx rename to src/pages/community/sections/eventsPreview/SingleEvents/sections/SimilarEvents.jsx index 67bb7f8d..212f332b 100644 --- a/src/APP/pages/community/sections/eventsPreview/SingleEvents/sections/SimilarEvents.jsx +++ b/src/pages/community/sections/eventsPreview/SingleEvents/sections/SimilarEvents.jsx @@ -2,7 +2,7 @@ import PropTypes from "prop-types"; import React, { useEffect } from "react"; import { useParams } from "react-router-dom"; -import useEventsData from "../../../../../../../hooks/Queries/eventsSection/useEvents"; +import useEventsData from "../../../../../../hooks/Queries/eventsSection/useEvents"; import { Loader } from "../../../../../../components"; import EventCard from "./EventCard"; diff --git a/src/APP/pages/community/sections/eventsPreview/SingleEvents/sections/index.js b/src/pages/community/sections/eventsPreview/SingleEvents/sections/index.js similarity index 100% rename from src/APP/pages/community/sections/eventsPreview/SingleEvents/sections/index.js rename to src/pages/community/sections/eventsPreview/SingleEvents/sections/index.js diff --git a/src/APP/pages/community/sections/gallerySection/GallerySection.jsx b/src/pages/community/sections/gallerySection/GallerySection.jsx similarity index 100% rename from src/APP/pages/community/sections/gallerySection/GallerySection.jsx rename to src/pages/community/sections/gallerySection/GallerySection.jsx diff --git a/src/APP/pages/community/sections/index.js b/src/pages/community/sections/index.js similarity index 100% rename from src/APP/pages/community/sections/index.js rename to src/pages/community/sections/index.js diff --git a/src/APP/pages/community/sections/partnerSection/PartnerCard.jsx b/src/pages/community/sections/partnerSection/PartnerCard.jsx similarity index 100% rename from src/APP/pages/community/sections/partnerSection/PartnerCard.jsx rename to src/pages/community/sections/partnerSection/PartnerCard.jsx diff --git a/src/APP/pages/community/sections/partnerSection/PartnerSection.jsx b/src/pages/community/sections/partnerSection/PartnerSection.jsx similarity index 96% rename from src/APP/pages/community/sections/partnerSection/PartnerSection.jsx rename to src/pages/community/sections/partnerSection/PartnerSection.jsx index da58f8dc..7f9cf900 100644 --- a/src/APP/pages/community/sections/partnerSection/PartnerSection.jsx +++ b/src/pages/community/sections/partnerSection/PartnerSection.jsx @@ -3,7 +3,7 @@ import { google2, nairobi2, uiux2, -} from "../../../../../assets/images/community"; +} from "../../../../assets/images/community"; import PartnerCard from "./PartnerCard"; const chapters = [ diff --git a/src/APP/pages/donate/DonatePage.jsx b/src/pages/donate/DonatePage.jsx similarity index 100% rename from src/APP/pages/donate/DonatePage.jsx rename to src/pages/donate/DonatePage.jsx diff --git a/src/APP/pages/donate/RangeInput.jsx b/src/pages/donate/RangeInput.jsx similarity index 100% rename from src/APP/pages/donate/RangeInput.jsx rename to src/pages/donate/RangeInput.jsx diff --git a/src/APP/pages/donate/pages/SingleProductDonatePage.jsx b/src/pages/donate/pages/SingleProductDonatePage.jsx similarity index 100% rename from src/APP/pages/donate/pages/SingleProductDonatePage.jsx rename to src/pages/donate/pages/SingleProductDonatePage.jsx diff --git a/src/APP/pages/errorPages/Error400.jsx b/src/pages/errorPages/Error400.jsx similarity index 91% rename from src/APP/pages/errorPages/Error400.jsx rename to src/pages/errorPages/Error400.jsx index 2b9d94e8..3c216036 100644 --- a/src/APP/pages/errorPages/Error400.jsx +++ b/src/pages/errorPages/Error400.jsx @@ -1,6 +1,6 @@ import React from "react"; -import { error400 } from "../../../assets/images/errorPages"; +import { error400 } from "../../assets/images/errorPages"; import { LazyLoadImage } from "react-lazy-load-image-component"; function Error400() { diff --git a/src/APP/pages/errorPages/Error403.jsx b/src/pages/errorPages/Error403.jsx similarity index 91% rename from src/APP/pages/errorPages/Error403.jsx rename to src/pages/errorPages/Error403.jsx index 7eb21847..4add485f 100644 --- a/src/APP/pages/errorPages/Error403.jsx +++ b/src/pages/errorPages/Error403.jsx @@ -1,6 +1,6 @@ import React from "react"; -import { error403 } from "../../../assets/images/errorPages"; +import { error403 } from "../../assets/images/errorPages"; import { LazyLoadImage } from "react-lazy-load-image-component"; diff --git a/src/APP/pages/errorPages/Error404.jsx b/src/pages/errorPages/Error404.jsx similarity index 92% rename from src/APP/pages/errorPages/Error404.jsx rename to src/pages/errorPages/Error404.jsx index a3640986..44930455 100644 --- a/src/APP/pages/errorPages/Error404.jsx +++ b/src/pages/errorPages/Error404.jsx @@ -1,7 +1,7 @@ import React from "react"; import { useNavigate } from "react-router-dom"; -import { error404 } from "../../../assets/images/errorPages"; +import { error404 } from "../../assets/images/errorPages"; import { LazyLoadImage } from "react-lazy-load-image-component"; function Error404() { diff --git a/src/APP/pages/errorPages/Error500.jsx b/src/pages/errorPages/Error500.jsx similarity index 93% rename from src/APP/pages/errorPages/Error500.jsx rename to src/pages/errorPages/Error500.jsx index 9b8adee5..7b42a5eb 100644 --- a/src/APP/pages/errorPages/Error500.jsx +++ b/src/pages/errorPages/Error500.jsx @@ -1,5 +1,5 @@ import React from "react"; -import { bgError500, error500svg } from "../../../assets/images/errorPages"; +import { bgError500, error500svg } from "../../assets/images/errorPages"; import { LazyLoadImage } from "react-lazy-load-image-component"; function Error500() { diff --git a/src/APP/pages/errorPages/ErrorBoundary.jsx b/src/pages/errorPages/ErrorBoundary.jsx similarity index 100% rename from src/APP/pages/errorPages/ErrorBoundary.jsx rename to src/pages/errorPages/ErrorBoundary.jsx diff --git a/src/APP/pages/events/pages/EventsPage.jsx b/src/pages/events/pages/EventsPage.jsx similarity index 100% rename from src/APP/pages/events/pages/EventsPage.jsx rename to src/pages/events/pages/EventsPage.jsx diff --git a/src/APP/pages/events/sections/EventsSection.jsx b/src/pages/events/sections/EventsSection.jsx similarity index 95% rename from src/APP/pages/events/sections/EventsSection.jsx rename to src/pages/events/sections/EventsSection.jsx index bc38f10c..8c3e58d2 100644 --- a/src/APP/pages/events/sections/EventsSection.jsx +++ b/src/pages/events/sections/EventsSection.jsx @@ -1,8 +1,8 @@ import React, { useEffect, useState } from "react"; import { AiOutlineSearch } from "react-icons/ai"; // Import react-icons -import { useEventsCategories } from "../../../../hooks/Queries/eventsSection/useEventCategories"; -import useEventsData from "../../../../hooks/Queries/eventsSection/useEvents"; +import { useEventsCategories } from "../../../hooks/Queries/eventsSection/useEventCategories"; +import useEventsData from "../../../hooks/Queries/eventsSection/useEvents"; import { Loader } from "../../../components"; import { EventCard } from "../../community/sections/eventsPreview/SingleEvents/sections"; diff --git a/src/APP/pages/events/sections/FeaturedCarousel.jsx b/src/pages/events/sections/FeaturedCarousel.jsx similarity index 100% rename from src/APP/pages/events/sections/FeaturedCarousel.jsx rename to src/pages/events/sections/FeaturedCarousel.jsx diff --git a/src/APP/pages/events/sections/FeaturedEventCard.jsx b/src/pages/events/sections/FeaturedEventCard.jsx similarity index 99% rename from src/APP/pages/events/sections/FeaturedEventCard.jsx rename to src/pages/events/sections/FeaturedEventCard.jsx index 95e0546a..617132a3 100644 --- a/src/APP/pages/events/sections/FeaturedEventCard.jsx +++ b/src/pages/events/sections/FeaturedEventCard.jsx @@ -1,5 +1,5 @@ import React from "react"; -import { featuredEvent } from "../../../../assets/images/aboutPage"; +import { featuredEvent } from "../../../assets/images/aboutPage"; import startinevEvent from "../../../../assets/images/eventsPage/startinev.jpeg" function FeaturedEventCard() { diff --git a/src/APP/pages/events/sections/SearchSection.jsx b/src/pages/events/sections/SearchSection.jsx similarity index 96% rename from src/APP/pages/events/sections/SearchSection.jsx rename to src/pages/events/sections/SearchSection.jsx index 2f0ed13e..90c50405 100644 --- a/src/APP/pages/events/sections/SearchSection.jsx +++ b/src/pages/events/sections/SearchSection.jsx @@ -1,5 +1,5 @@ import React from "react"; -import { community } from "../../../../assets/images/community"; +import { community } from "../../../assets/images/community"; function SearchSection() { // content-between md:px-20 diff --git a/src/APP/pages/events/sections/eventsSection/EventCategory.jsx b/src/pages/events/sections/eventsSection/EventCategory.jsx similarity index 99% rename from src/APP/pages/events/sections/eventsSection/EventCategory.jsx rename to src/pages/events/sections/eventsSection/EventCategory.jsx index a967f2db..cc269048 100644 --- a/src/APP/pages/events/sections/eventsSection/EventCategory.jsx +++ b/src/pages/events/sections/eventsSection/EventCategory.jsx @@ -6,7 +6,7 @@ import { useEventsCategories, useAllEvents, useAllCities, -} from "../../../../../hooks/Queries/eventsSection/useEventCategories.jsx"; +} from "../../../../hooks/Queries/eventsSection/useEventCategories.jsx"; function EventCategory() { const [filters, setFilters] = useState(null); diff --git a/src/APP/pages/events/sections/eventsSection/Events.jsx b/src/pages/events/sections/eventsSection/Events.jsx similarity index 100% rename from src/APP/pages/events/sections/eventsSection/Events.jsx rename to src/pages/events/sections/eventsSection/Events.jsx diff --git a/src/APP/pages/events/sections/eventsSection/EventsSection.jsx b/src/pages/events/sections/eventsSection/EventsSection.jsx similarity index 94% rename from src/APP/pages/events/sections/eventsSection/EventsSection.jsx rename to src/pages/events/sections/eventsSection/EventsSection.jsx index e361ef65..b52432fb 100644 --- a/src/APP/pages/events/sections/eventsSection/EventsSection.jsx +++ b/src/pages/events/sections/eventsSection/EventsSection.jsx @@ -3,8 +3,8 @@ import React, { useEffect, useState } from "react"; import { LazyLoadImage } from "react-lazy-load-image-component"; import { Link } from "react-router-dom"; import { PiArrowCircleLeft, PiArrowCircleRight } from "react-icons/pi"; -import { useAllCities } from "../../../../../hooks/Queries/eventsSection/useEventCategories"; -import useTopEvents from "../../../../../hooks/Queries/eventsSection/useTopEvents"; +import { useAllCities } from "../../../../hooks/Queries/eventsSection/useEventCategories"; +import useTopEvents from "../../../../hooks/Queries/eventsSection/useTopEvents"; import { Loader } from "../../../../components"; import Error500 from "../../../errorPages/Error500"; import Events from "./Events"; diff --git a/src/APP/pages/events/sections/eventsSection/EventsTab.jsx b/src/pages/events/sections/eventsSection/EventsTab.jsx similarity index 100% rename from src/APP/pages/events/sections/eventsSection/EventsTab.jsx rename to src/pages/events/sections/eventsSection/EventsTab.jsx diff --git a/src/APP/pages/events/sections/eventsSection/EventsUpdateSection.jsx b/src/pages/events/sections/eventsSection/EventsUpdateSection.jsx similarity index 100% rename from src/APP/pages/events/sections/eventsSection/EventsUpdateSection.jsx rename to src/pages/events/sections/eventsSection/EventsUpdateSection.jsx diff --git a/src/APP/pages/events/sections/eventsSection/helpers/FilterRecentTime.jsx b/src/pages/events/sections/eventsSection/helpers/FilterRecentTime.jsx similarity index 100% rename from src/APP/pages/events/sections/eventsSection/helpers/FilterRecentTime.jsx rename to src/pages/events/sections/eventsSection/helpers/FilterRecentTime.jsx diff --git a/src/APP/pages/events/sections/index.js b/src/pages/events/sections/index.js similarity index 100% rename from src/APP/pages/events/sections/index.js rename to src/pages/events/sections/index.js diff --git a/src/APP/pages/gallery/GalleryPage.jsx b/src/pages/gallery/GalleryPage.jsx similarity index 98% rename from src/APP/pages/gallery/GalleryPage.jsx rename to src/pages/gallery/GalleryPage.jsx index c3d5fb10..81ef5767 100644 --- a/src/APP/pages/gallery/GalleryPage.jsx +++ b/src/pages/gallery/GalleryPage.jsx @@ -1,7 +1,7 @@ import React from "react"; import { PiArrowCircleLeftLight } from "react-icons/pi"; import { Link } from "react-router-dom"; -import processPhotos from "../../../utilities/processPhotos"; +import processPhotos from "../../utilities/processPhotos"; import SeoMetadata from "../../components/SeoMetadata"; import photosData from "./data"; import ImageCard from "./sections/ImageCard"; diff --git a/src/APP/pages/gallery/data.js b/src/pages/gallery/data.js similarity index 100% rename from src/APP/pages/gallery/data.js rename to src/pages/gallery/data.js diff --git a/src/APP/pages/gallery/sections/ImageCard.jsx b/src/pages/gallery/sections/ImageCard.jsx similarity index 100% rename from src/APP/pages/gallery/sections/ImageCard.jsx rename to src/pages/gallery/sections/ImageCard.jsx diff --git a/src/APP/pages/gallery/sections/ImageCardLatest.jsx b/src/pages/gallery/sections/ImageCardLatest.jsx similarity index 100% rename from src/APP/pages/gallery/sections/ImageCardLatest.jsx rename to src/pages/gallery/sections/ImageCardLatest.jsx diff --git a/src/APP/pages/gallery/sections/ImageCardss.jsx b/src/pages/gallery/sections/ImageCardss.jsx similarity index 100% rename from src/APP/pages/gallery/sections/ImageCardss.jsx rename to src/pages/gallery/sections/ImageCardss.jsx diff --git a/src/APP/pages/landingPage/LandingPage.jsx b/src/pages/landingPage/LandingPage.jsx similarity index 100% rename from src/APP/pages/landingPage/LandingPage.jsx rename to src/pages/landingPage/LandingPage.jsx diff --git a/src/APP/pages/landingPage/data.js b/src/pages/landingPage/data.js similarity index 100% rename from src/APP/pages/landingPage/data.js rename to src/pages/landingPage/data.js diff --git a/src/APP/pages/landingPage/sections/CTASection.jsx b/src/pages/landingPage/sections/CTASection.jsx similarity index 100% rename from src/APP/pages/landingPage/sections/CTASection.jsx rename to src/pages/landingPage/sections/CTASection.jsx diff --git a/src/APP/pages/landingPage/sections/FaqSection.jsx b/src/pages/landingPage/sections/FaqSection.jsx similarity index 100% rename from src/APP/pages/landingPage/sections/FaqSection.jsx rename to src/pages/landingPage/sections/FaqSection.jsx diff --git a/src/APP/pages/landingPage/sections/FeatureSection.jsx b/src/pages/landingPage/sections/FeatureSection.jsx similarity index 100% rename from src/APP/pages/landingPage/sections/FeatureSection.jsx rename to src/pages/landingPage/sections/FeatureSection.jsx diff --git a/src/APP/pages/landingPage/sections/HeroSection.jsx b/src/pages/landingPage/sections/HeroSection.jsx similarity index 100% rename from src/APP/pages/landingPage/sections/HeroSection.jsx rename to src/pages/landingPage/sections/HeroSection.jsx diff --git a/src/APP/pages/landingPage/sections/OurEvents.jsx b/src/pages/landingPage/sections/OurEvents.jsx similarity index 98% rename from src/APP/pages/landingPage/sections/OurEvents.jsx rename to src/pages/landingPage/sections/OurEvents.jsx index a5f0b564..7b6e3405 100644 --- a/src/APP/pages/landingPage/sections/OurEvents.jsx +++ b/src/pages/landingPage/sections/OurEvents.jsx @@ -5,12 +5,12 @@ import React, { useEffect } from "react"; import { LazyLoadImage } from "react-lazy-load-image-component"; import { Link } from "react-router-dom"; -import { error500svg } from "../../../../assets/images/errorPages"; +import { error500svg } from "../../../assets/images/errorPages"; import { calculateDistanceToDate, formatEventTime, startEventDate, -} from "../../../../utilities/formatEventDate"; +} from "../../../utilities/formatEventDate"; import { Loader, Button } from "../../../components"; import useTopEvents from "@/hooks/Queries/eventsSection/useTopEvents"; diff --git a/src/APP/pages/landingPage/sections/Partners.jsx b/src/pages/landingPage/sections/Partners.jsx similarity index 100% rename from src/APP/pages/landingPage/sections/Partners.jsx rename to src/pages/landingPage/sections/Partners.jsx diff --git a/src/APP/pages/landingPage/sections/StatsSection.jsx b/src/pages/landingPage/sections/StatsSection.jsx similarity index 98% rename from src/APP/pages/landingPage/sections/StatsSection.jsx rename to src/pages/landingPage/sections/StatsSection.jsx index e6cc7351..f9173f08 100644 --- a/src/APP/pages/landingPage/sections/StatsSection.jsx +++ b/src/pages/landingPage/sections/StatsSection.jsx @@ -1,7 +1,7 @@ /* eslint-disable no-console */ import axios from "axios"; import { useState, useEffect } from "react"; -import formatNumber from "../../../../utilities/formatNumber"; +import formatNumber from "../../../utilities/formatNumber"; import { briefcase, teams } from "@/assets/images/icons"; diff --git a/src/APP/pages/landingPage/sections/TestimonialSection.jsx b/src/pages/landingPage/sections/TestimonialSection.jsx similarity index 100% rename from src/APP/pages/landingPage/sections/TestimonialSection.jsx rename to src/pages/landingPage/sections/TestimonialSection.jsx diff --git a/src/APP/pages/landingPage/sections/WhatWeDo.jsx b/src/pages/landingPage/sections/WhatWeDo.jsx similarity index 100% rename from src/APP/pages/landingPage/sections/WhatWeDo.jsx rename to src/pages/landingPage/sections/WhatWeDo.jsx diff --git a/src/APP/pages/landingPage/sections/index.js b/src/pages/landingPage/sections/index.js similarity index 100% rename from src/APP/pages/landingPage/sections/index.js rename to src/pages/landingPage/sections/index.js diff --git a/src/APP/pages/products/Products.jsx b/src/pages/products/Products.jsx similarity index 100% rename from src/APP/pages/products/Products.jsx rename to src/pages/products/Products.jsx diff --git a/src/APP/pages/products/sections/HeroSection.jsx b/src/pages/products/sections/HeroSection.jsx similarity index 100% rename from src/APP/pages/products/sections/HeroSection.jsx rename to src/pages/products/sections/HeroSection.jsx diff --git a/src/APP/pages/products/sections/ProductCard.jsx b/src/pages/products/sections/ProductCard.jsx similarity index 100% rename from src/APP/pages/products/sections/ProductCard.jsx rename to src/pages/products/sections/ProductCard.jsx diff --git a/src/APP/pages/products/sections/ProductsSections.jsx b/src/pages/products/sections/ProductsSections.jsx similarity index 100% rename from src/APP/pages/products/sections/ProductsSections.jsx rename to src/pages/products/sections/ProductsSections.jsx diff --git a/src/APP/pages/products/sections/index.js b/src/pages/products/sections/index.js similarity index 100% rename from src/APP/pages/products/sections/index.js rename to src/pages/products/sections/index.js diff --git a/src/APP/pages/products2/Products.jsx b/src/pages/products2/Products.jsx similarity index 100% rename from src/APP/pages/products2/Products.jsx rename to src/pages/products2/Products.jsx diff --git a/src/APP/pages/products2/data.js b/src/pages/products2/data.js similarity index 97% rename from src/APP/pages/products2/data.js rename to src/pages/products2/data.js index 950a8ac3..da537a8b 100644 --- a/src/APP/pages/products2/data.js +++ b/src/pages/products2/data.js @@ -16,7 +16,7 @@ import { react, vue, whimsical, -} from "../../../assets/images/products"; +} from "../../assets/images/products"; export const products = [ { diff --git a/src/APP/pages/products2/sections/DeveloperCard.jsx b/src/pages/products2/sections/DeveloperCard.jsx similarity index 100% rename from src/APP/pages/products2/sections/DeveloperCard.jsx rename to src/pages/products2/sections/DeveloperCard.jsx diff --git a/src/APP/pages/products2/sections/HeroSection.jsx b/src/pages/products2/sections/HeroSection.jsx similarity index 100% rename from src/APP/pages/products2/sections/HeroSection.jsx rename to src/pages/products2/sections/HeroSection.jsx diff --git a/src/APP/pages/products2/sections/ProductsCard.jsx b/src/pages/products2/sections/ProductsCard.jsx similarity index 100% rename from src/APP/pages/products2/sections/ProductsCard.jsx rename to src/pages/products2/sections/ProductsCard.jsx diff --git a/src/APP/pages/products2/sections/ProductsSection.jsx b/src/pages/products2/sections/ProductsSection.jsx similarity index 100% rename from src/APP/pages/products2/sections/ProductsSection.jsx rename to src/pages/products2/sections/ProductsSection.jsx diff --git a/src/APP/pages/products2/sections/StackCategory.jsx b/src/pages/products2/sections/StackCategory.jsx similarity index 100% rename from src/APP/pages/products2/sections/StackCategory.jsx rename to src/pages/products2/sections/StackCategory.jsx diff --git a/src/APP/pages/products2/sections/Teams.jsx b/src/pages/products2/sections/Teams.jsx similarity index 96% rename from src/APP/pages/products2/sections/Teams.jsx rename to src/pages/products2/sections/Teams.jsx index d006b12e..9df3928d 100644 --- a/src/APP/pages/products2/sections/Teams.jsx +++ b/src/pages/products2/sections/Teams.jsx @@ -2,8 +2,8 @@ import { Tab } from "@headlessui/react"; import React from "react"; import { Link, useNavigate } from "react-router-dom"; -import { upleftGreen } from "../../../../assets/images/icons"; -import useStackData from "../../../../hooks/Queries/stack/useStackData"; +import { upleftGreen } from "../../../assets/images/icons"; +import useStackData from "../../../hooks/Queries/stack/useStackData"; import { Loader } from "../../../components"; import DeveloperCard from "./DeveloperCard"; diff --git a/src/APP/pages/products2/sections/TechStack.jsx b/src/pages/products2/sections/TechStack.jsx similarity index 100% rename from src/APP/pages/products2/sections/TechStack.jsx rename to src/pages/products2/sections/TechStack.jsx diff --git a/src/APP/pages/products2/sections/index.js b/src/pages/products2/sections/index.js similarity index 100% rename from src/APP/pages/products2/sections/index.js rename to src/pages/products2/sections/index.js diff --git a/src/APP/pages/resources/Resources.jsx b/src/pages/resources/Resources.jsx similarity index 100% rename from src/APP/pages/resources/Resources.jsx rename to src/pages/resources/Resources.jsx diff --git a/src/APP/pages/resources/sections/HeroSection.jsx b/src/pages/resources/sections/HeroSection.jsx similarity index 94% rename from src/APP/pages/resources/sections/HeroSection.jsx rename to src/pages/resources/sections/HeroSection.jsx index faa54f11..814694ad 100644 --- a/src/APP/pages/resources/sections/HeroSection.jsx +++ b/src/pages/resources/sections/HeroSection.jsx @@ -1,6 +1,6 @@ import React from "react"; -import { earthMoon } from "../../../../assets/images/resources-page"; +import { earthMoon } from "../../../assets/images/resources-page"; import { LazyLoadImage } from "react-lazy-load-image-component"; function HeroSection() { diff --git a/src/APP/pages/resources/sections/ResourceCard.jsx b/src/pages/resources/sections/ResourceCard.jsx similarity index 100% rename from src/APP/pages/resources/sections/ResourceCard.jsx rename to src/pages/resources/sections/ResourceCard.jsx diff --git a/src/APP/pages/resources/sections/ResourcesSection.jsx b/src/pages/resources/sections/ResourcesSection.jsx similarity index 98% rename from src/APP/pages/resources/sections/ResourcesSection.jsx rename to src/pages/resources/sections/ResourcesSection.jsx index f19c31a2..ba836ad1 100644 --- a/src/APP/pages/resources/sections/ResourcesSection.jsx +++ b/src/pages/resources/sections/ResourcesSection.jsx @@ -2,7 +2,7 @@ import { Tab } from "@headlessui/react"; import React, { useState } from "react"; -import { search } from "../../../../assets/images/resources-page"; +import { search } from "../../../assets/images/resources-page"; import { FaMagnifyingGlass } from "react-icons/fa6"; import { resourcesData } from "./data"; import ResourceCard from "./ResourceCard"; diff --git a/src/APP/pages/resources/sections/data.js b/src/pages/resources/sections/data.js similarity index 99% rename from src/APP/pages/resources/sections/data.js rename to src/pages/resources/sections/data.js index 658f8222..afbc353c 100644 --- a/src/APP/pages/resources/sections/data.js +++ b/src/pages/resources/sections/data.js @@ -3,7 +3,7 @@ import { course2, course3, course4, -} from "../../../../assets/images/resources-page"; +} from "../../../assets/images/resources-page"; // eslint-disable-next-line import/prefer-default-export export const resourcesData = [ diff --git a/src/APP/pages/resources/sections/index.js b/src/pages/resources/sections/index.js similarity index 100% rename from src/APP/pages/resources/sections/index.js rename to src/pages/resources/sections/index.js diff --git a/src/APP/pages/shop/Homepage.jsx b/src/pages/shop/Homepage.jsx similarity index 100% rename from src/APP/pages/shop/Homepage.jsx rename to src/pages/shop/Homepage.jsx diff --git a/src/APP/pages/shop/OrderSummaryPage.jsx b/src/pages/shop/OrderSummaryPage.jsx similarity index 98% rename from src/APP/pages/shop/OrderSummaryPage.jsx rename to src/pages/shop/OrderSummaryPage.jsx index 1b7e67cb..62656da0 100644 --- a/src/APP/pages/shop/OrderSummaryPage.jsx +++ b/src/pages/shop/OrderSummaryPage.jsx @@ -4,9 +4,9 @@ import { useState, Fragment } from "react"; import { Link } from "react-router-dom"; import Sample1 from "../../../assets/images/shop-page/sample1.png"; import Sample2 from "../../../assets/images/shop-page/sample2.png"; -import useMakeOrder from "../../../hooks/Mutations/shop/useMakeOrder"; -import useProductsInCart from "../../../hooks/Queries/shop/useCartProducts"; -import { useOrderSummary } from "../../../hooks/Queries/shop/useOrdersList"; +import useMakeOrder from "../../hooks/Mutations/shop/useMakeOrder"; +import useProductsInCart from "../../hooks/Queries/shop/useCartProducts"; +import { useOrderSummary } from "../../hooks/Queries/shop/useOrdersList"; import CartDrawer from "../../components/shop/CartDrawer"; import Counter from "../../components/shop/Counter"; import ItemHeader from "./sections/ItemHeader"; diff --git a/src/APP/pages/shop/ProductDisplayPage.jsx b/src/pages/shop/ProductDisplayPage.jsx similarity index 100% rename from src/APP/pages/shop/ProductDisplayPage.jsx rename to src/pages/shop/ProductDisplayPage.jsx diff --git a/src/APP/pages/shop/SingleItemPage.jsx b/src/pages/shop/SingleItemPage.jsx similarity index 95% rename from src/APP/pages/shop/SingleItemPage.jsx rename to src/pages/shop/SingleItemPage.jsx index 7b8e5649..e7eae395 100644 --- a/src/APP/pages/shop/SingleItemPage.jsx +++ b/src/pages/shop/SingleItemPage.jsx @@ -4,10 +4,10 @@ import { LazyLoadImage } from "react-lazy-load-image-component"; import { useNavigate, useParams } from "react-router-dom"; import SmallSample1 from "../../../assets/images/shop-page/small-sample-colored.png"; import SmallSample2 from "../../../assets/images/shop-page/small-sample-greyscale.png"; -import { useAddSwagToCart } from "../../../hooks/Mutations/shop/useCartSwagg"; -import { useSingleOrder } from "../../../hooks/Queries/shop/useOrdersList"; -import { useSingleSwag } from "../../../hooks/Queries/shop/useSwagList"; -import useAuth from "../../../hooks/useAuth"; +import { useAddSwagToCart } from "../../hooks/Mutations/shop/useCartSwagg"; +import { useSingleOrder } from "../../hooks/Queries/shop/useOrdersList"; +import { useSingleSwag } from "../../hooks/Queries/shop/useSwagList"; +import useAuth from "../../hooks/useAuth"; import NotificationModal from "../../components/auth/NotificationModal"; import CartDrawer from "../../components/shop/CartDrawer"; import Counter from "../../components/shop/Counter"; diff --git a/src/APP/pages/shop/sections/Banner.jsx b/src/pages/shop/sections/Banner.jsx similarity index 100% rename from src/APP/pages/shop/sections/Banner.jsx rename to src/pages/shop/sections/Banner.jsx diff --git a/src/APP/pages/shop/sections/CategoriesProducts.jsx b/src/pages/shop/sections/CategoriesProducts.jsx similarity index 98% rename from src/APP/pages/shop/sections/CategoriesProducts.jsx rename to src/pages/shop/sections/CategoriesProducts.jsx index d605a5fb..067e88f1 100644 --- a/src/APP/pages/shop/sections/CategoriesProducts.jsx +++ b/src/pages/shop/sections/CategoriesProducts.jsx @@ -1,6 +1,6 @@ import { useEffect, useState } from "react"; import { useParams, Link } from "react-router-dom"; -import { useSwagList } from "../../../../hooks/Queries/shop/useSwagList"; +import { useSwagList } from "../../../hooks/Queries/shop/useSwagList"; import ItemHeader from "./ItemHeader"; import { LazyLoadImage } from "react-lazy-load-image-component"; diff --git a/src/APP/pages/shop/sections/CategoriesSection.jsx b/src/pages/shop/sections/CategoriesSection.jsx similarity index 97% rename from src/APP/pages/shop/sections/CategoriesSection.jsx rename to src/pages/shop/sections/CategoriesSection.jsx index 2c944909..a4f49e79 100644 --- a/src/APP/pages/shop/sections/CategoriesSection.jsx +++ b/src/pages/shop/sections/CategoriesSection.jsx @@ -1,7 +1,7 @@ import { FaArrowRight } from 'react-icons/fa'; import { useState } from "react"; import { Link } from "react-router-dom"; -import { useSwagList } from "../../../../hooks/Queries/shop/useSwagList"; +import { useSwagList } from "../../../hooks/Queries/shop/useSwagList"; import CartDrawer from "../../../components/shop/CartDrawer"; import ItemHeader from "./ItemHeader"; import { LazyLoadImage } from "react-lazy-load-image-component"; diff --git a/src/APP/pages/shop/sections/ItemHeader.jsx b/src/pages/shop/sections/ItemHeader.jsx similarity index 98% rename from src/APP/pages/shop/sections/ItemHeader.jsx rename to src/pages/shop/sections/ItemHeader.jsx index 3f38fb1b..b1d64a09 100644 --- a/src/APP/pages/shop/sections/ItemHeader.jsx +++ b/src/pages/shop/sections/ItemHeader.jsx @@ -5,7 +5,7 @@ import { Combobox, Transition } from "@headlessui/react"; import { Fragment, useState } from "react"; import { useLocation, useParams, Link } from "react-router-dom"; import CartIcon from "../../../../assets/images/icons/cart-icon.svg"; -import { useSwagList } from "../../../../hooks/Queries/shop/useSwagList"; +import { useSwagList } from "../../../hooks/Queries/shop/useSwagList"; function ItemHeader({ show }) { const { pathname } = useLocation(); diff --git a/src/APP/pages/shop/sections/PopularItemsSection.jsx b/src/pages/shop/sections/PopularItemsSection.jsx similarity index 96% rename from src/APP/pages/shop/sections/PopularItemsSection.jsx rename to src/pages/shop/sections/PopularItemsSection.jsx index 201c1652..13704327 100644 --- a/src/APP/pages/shop/sections/PopularItemsSection.jsx +++ b/src/pages/shop/sections/PopularItemsSection.jsx @@ -1,5 +1,5 @@ import { useNavigate } from "react-router-dom"; -import { useSwagList } from "../../../../hooks/Queries/shop/useSwagList"; +import { useSwagList } from "../../../hooks/Queries/shop/useSwagList"; import { LazyLoadImage } from "react-lazy-load-image-component"; function PopularItemsSection() { diff --git a/src/router/index.jsx b/src/router/index.jsx index 99dc85a9..98b4e6c3 100644 --- a/src/router/index.jsx +++ b/src/router/index.jsx @@ -27,17 +27,15 @@ import { SingleEvent, Blogs, EventsPage, -} from "../APP"; -import { FallbackLoader } from "../APP/components"; + AdminLayout, + ShopDashboard, +} from ".."; +import { FallbackLoader } from "../components"; const router = createBrowserRouter([ { path: "/", - element: ( - }> - - - ), + element: , children: [ { path: "/", @@ -193,6 +191,48 @@ const router = createBrowserRouter([ }, ], }, + { + path: "/admin", + element: , + children: [ + { + path: "/admin/shop", + element: ( + }> + + + ), + }, + // { + // path: "/admin", + // element: , + // }, + // { + // path: "/admin/all-chapters", + // element: , + // }, + // { + // path: "/admin/events", + // element: , + // }, + // { + // path: "/admin/add-chapters", + // element: , + // }, + // { + // path: "/admin/events", + // element: , + // }, + // { + // path: "/admin/events/add-event", + // element: , + // }, + // { + // path: "/admin/events/update-event", + // element: , + // }, + ], + }, { path: "/error-400", element: ( @@ -225,40 +265,6 @@ const router = createBrowserRouter([ ), }, - // { - // path: "/admin", - // element: , - // children: [ - // { - // path: "/admin", - // element: , - // }, - // { - // path: "/admin/all-chapters", - // element: , - // }, - // { - // path: "/admin/events", - // element: , - // }, - // { - // path: "/admin/add-chapters", - // element: , - // }, - // { - // path: "/admin/events", - // element: , - // }, - // { - // path: "/admin/events/add-event", - // element: , - // }, - // { - // path: "/admin/events/update-event", - // element: , - // }, - // ], - // }, ]); export default router; diff --git a/src/utilities/utils.js b/src/utilities/utils.js new file mode 100644 index 00000000..20aa6031 --- /dev/null +++ b/src/utilities/utils.js @@ -0,0 +1,6 @@ +import { clsx } from "clsx" +import { twMerge } from "tailwind-merge" + +export function cn(...inputs) { + return twMerge(clsx(inputs)) +} diff --git a/tailwind.config.js b/tailwind.config.js index 552454a0..4abd6b76 100644 --- a/tailwind.config.js +++ b/tailwind.config.js @@ -1,10 +1,36 @@ -/* eslint-disable no-undef */ - /** @type {import('tailwindcss').Config} */ -export default { - content: ["./index.html", "./src/**/*.{js,ts,jsx,tsx}"], +module.exports = { + darkMode: ["class"], + content: [ + "./pages/**/*.{js,jsx}", + "./components/**/*.{js,jsx}", + "./app/**/*.{js,jsx}", + "./src/**/*.{js,jsx}", + ], + prefix: "", theme: { + container: { + center: true, + padding: "2rem", + screens: { + "2xl": "1400px", + }, + }, extend: { + keyframes: { + "accordion-down": { + from: { height: "0" }, + to: { height: "var(--radix-accordion-content-height)" }, + }, + "accordion-up": { + from: { height: "var(--radix-accordion-content-height)" }, + to: { height: "0" }, + }, + }, + animation: { + "accordion-down": "accordion-down 0.2s ease-out", + "accordion-up": "accordion-up 0.2s ease-out", + }, fontFamily: { spaceGrotesk: ["Space Grotesk", "sans-serif"], poppins: ["Poppins", "sans-serif"], @@ -26,6 +52,7 @@ export default { }, grey: { neutral: "#656767", + light: "#F9FAFB", }, }, maxWidth: { @@ -34,5 +61,6 @@ export default { }, }, }, - plugins: [require("tailwind-scrollbar-hide")], + // eslint-disable-next-line global-require, import/no-extraneous-dependencies + plugins: [require("tailwind-scrollbar-hide"), require("tailwindcss-animate")], }; diff --git a/vite.config.js b/vite.config.js index b170e395..3620f1d3 100644 --- a/vite.config.js +++ b/vite.config.js @@ -1,7 +1,8 @@ +/* eslint-disable import/no-extraneous-dependencies */ +/* eslint-disable no-underscore-dangle */ /// -import { fileURLToPath } from 'url'; -import { dirname } from 'path'; -import path from "path"; +import path, { dirname } from "path"; +import { fileURLToPath } from "url"; import react from "@vitejs/plugin-react"; import million from "million/compiler"; import { defineConfig, loadEnv } from "vite"; @@ -20,7 +21,7 @@ export default defineConfig(({ mode }) => { }, plugins: [million.vite({ auto: true }), react()], test: { - include: ['src/**/*.test.js'], + include: ["src/**/*.test.js"], }, server: { watch: { From 816e531ae44cdab3c1b353e7c380ed917d0c058a Mon Sep 17 00:00:00 2001 From: sonylomo Date: Thu, 20 Jun 2024 23:31:44 +0300 Subject: [PATCH 2/3] fix: build errors --- src/pages/aboutUs/sections/PartnerCTA.jsx | 2 +- src/pages/auth/ForgotPassword.jsx | 2 +- src/pages/auth/LogIn.jsx | 3 +-- src/pages/auth/ResetPassword.jsx | 3 +-- src/pages/auth/SignUp.jsx | 4 ++-- src/pages/blog/sections/BlogWrapper.jsx | 2 +- src/pages/blog/sections/RelatedBlogCard.jsx | 4 ++-- src/pages/blog2/Blog2.jsx | 2 +- src/pages/blog2/sections/BlogHeader.jsx | 4 ++-- src/pages/blog2/sections/BlogUMightLike.jsx | 4 ++-- src/pages/blog2/sections/RelatedBlogCard.jsx | 3 +-- src/pages/blogs/sections/Banner.jsx | 4 ++-- src/pages/blogs/sections/BlogCard.jsx | 2 +- src/pages/events/sections/FeaturedEventCard.jsx | 4 +--- src/pages/products2/sections/HeroSection.jsx | 4 ++-- src/pages/shop/OrderSummaryPage.jsx | 10 +++++----- src/pages/shop/SingleItemPage.jsx | 12 ++++++------ src/pages/shop/sections/Banner.jsx | 9 ++++++--- src/pages/shop/sections/ItemHeader.jsx | 1 - 19 files changed, 38 insertions(+), 41 deletions(-) diff --git a/src/pages/aboutUs/sections/PartnerCTA.jsx b/src/pages/aboutUs/sections/PartnerCTA.jsx index 4023866a..7d8f72d3 100644 --- a/src/pages/aboutUs/sections/PartnerCTA.jsx +++ b/src/pages/aboutUs/sections/PartnerCTA.jsx @@ -1,4 +1,4 @@ -import Report from "../../../../assets/documentation/spaceyatech-internship-program.pdf"; +import Report from "../../../assets/documentation/spaceyatech-internship-program.pdf"; function PartnerCTA() { return ( diff --git a/src/pages/auth/ForgotPassword.jsx b/src/pages/auth/ForgotPassword.jsx index b6862e8c..3f7e7685 100644 --- a/src/pages/auth/ForgotPassword.jsx +++ b/src/pages/auth/ForgotPassword.jsx @@ -1,7 +1,7 @@ import React from "react"; import { MdEmail, MdMessage } from "react-icons/md"; // Import react-icons -import ForgotPasswordImg from "../../../assets/images/auth/forgot-password.svg"; import { LazyLoadImage } from "react-lazy-load-image-component"; +import ForgotPasswordImg from "../../assets/images/auth/forgot-password.svg"; function ForgotPassword() { return ( diff --git a/src/pages/auth/LogIn.jsx b/src/pages/auth/LogIn.jsx index 16f5da48..c3a12cbb 100644 --- a/src/pages/auth/LogIn.jsx +++ b/src/pages/auth/LogIn.jsx @@ -1,9 +1,8 @@ import React, { useState } from "react"; +import { MdLock } from "react-icons/md"; import { useNavigate } from "react-router-dom"; -import { MdLock } from "react-icons/md"; // Example icon from react-icons import publicAxios from "../../api/publicAxios"; -import LoginImg from "../../../assets/images/auth/login.svg"; import useAuth from "../../hooks/useAuth"; function LogIn() { diff --git a/src/pages/auth/ResetPassword.jsx b/src/pages/auth/ResetPassword.jsx index 7982e23d..c829a75d 100644 --- a/src/pages/auth/ResetPassword.jsx +++ b/src/pages/auth/ResetPassword.jsx @@ -1,6 +1,5 @@ -import React from "react"; -import ResetPasswordImg from "../../../assets/images/auth/reset-password.svg"; import { LazyLoadImage } from "react-lazy-load-image-component"; +import ResetPasswordImg from "../../assets/images/auth/reset-password.svg"; function ResetPassword() { return ( diff --git a/src/pages/auth/SignUp.jsx b/src/pages/auth/SignUp.jsx index 913b19d7..0522543e 100644 --- a/src/pages/auth/SignUp.jsx +++ b/src/pages/auth/SignUp.jsx @@ -1,9 +1,9 @@ import { useState } from "react"; +import { LazyLoadImage } from "react-lazy-load-image-component"; import { Navigate } from "react-router-dom"; import publicAxios from "../../api/publicAxios"; -import SignUpImg from "../../../assets/images/auth/signup.svg"; +import SignUpImg from "../../assets/images/auth/signup.svg"; import useAuth from "../../hooks/useAuth"; -import { LazyLoadImage } from "react-lazy-load-image-component"; function SignUp() { const { auth, setAuth } = useAuth(); diff --git a/src/pages/blog/sections/BlogWrapper.jsx b/src/pages/blog/sections/BlogWrapper.jsx index f390e423..aa29d7b9 100644 --- a/src/pages/blog/sections/BlogWrapper.jsx +++ b/src/pages/blog/sections/BlogWrapper.jsx @@ -2,7 +2,7 @@ import { formatDistanceToNow } from "date-fns"; import { useRef, useEffect } from "react"; // import Comments from "./Comments"; -import logo from "../../../../assets/images/sytLogo.png"; +import logo from "../../../assets/images/sytLogo.png"; import BlogStats from "../../blogs/sections/BlogStats"; import "./blogWrapper.css"; diff --git a/src/pages/blog/sections/RelatedBlogCard.jsx b/src/pages/blog/sections/RelatedBlogCard.jsx index 0889cba4..3fc0a7ad 100644 --- a/src/pages/blog/sections/RelatedBlogCard.jsx +++ b/src/pages/blog/sections/RelatedBlogCard.jsx @@ -1,13 +1,13 @@ /* eslint-disable react/prop-types */ import { formatDistanceToNow } from "date-fns"; import React from "react"; +import { LazyLoadImage } from "react-lazy-load-image-component"; import { useNavigate, Link } from "react-router-dom"; import { arrowRight } from "../../../assets/images/blogs-page"; -import logo from "../../../../assets/images/sytLogo.png"; +import logo from "../../../assets/images/sytLogo.png"; import { BlogStats } from "../../blogs/sections"; -import { LazyLoadImage } from "react-lazy-load-image-component"; function RelatedBlogCard({ blog }) { diff --git a/src/pages/blog2/Blog2.jsx b/src/pages/blog2/Blog2.jsx index c061304d..2d548b6a 100644 --- a/src/pages/blog2/Blog2.jsx +++ b/src/pages/blog2/Blog2.jsx @@ -1,9 +1,9 @@ import React, { useEffect } from "react"; import { useNavigate, useParams } from "react-router-dom"; -import useBlogData from "../../hooks/Queries/blog/useBlogData"; import { Loader } from "../../components"; import SeoMetadata from "../../components/SeoMetadata"; +import useBlogData from "../../hooks/Queries/blog/useBlogData"; import { Advert, BlogHeader, BlogBody } from "./sections"; function Blog2() { diff --git a/src/pages/blog2/sections/BlogHeader.jsx b/src/pages/blog2/sections/BlogHeader.jsx index 41e0654b..15134755 100644 --- a/src/pages/blog2/sections/BlogHeader.jsx +++ b/src/pages/blog2/sections/BlogHeader.jsx @@ -2,10 +2,10 @@ import { formatDistanceToNow } from "date-fns"; import React from "react"; -import logo from "../../../../assets/images/sytLogo.png"; +import { LazyLoadImage } from "react-lazy-load-image-component"; +import logo from "../../../assets/images/sytLogo.png"; import BlogStats from "../../blogs/sections/BlogStats"; import ShareBlog from "./ShareBlog"; -import { LazyLoadImage } from "react-lazy-load-image-component"; function BlogHeader({ id, diff --git a/src/pages/blog2/sections/BlogUMightLike.jsx b/src/pages/blog2/sections/BlogUMightLike.jsx index 2fa49877..e287b5be 100644 --- a/src/pages/blog2/sections/BlogUMightLike.jsx +++ b/src/pages/blog2/sections/BlogUMightLike.jsx @@ -1,11 +1,11 @@ /* eslint-disable react/prop-types */ import { formatDistanceToNow } from "date-fns"; import React from "react"; +import { LazyLoadImage } from "react-lazy-load-image-component"; import { Link } from "react-router-dom"; -import logo from "../../../../assets/images/sytLogo.png"; +import logo from "../../../assets/images/sytLogo.png"; import BlogStats from "../../blogs/sections/BlogStats"; -import { LazyLoadImage } from "react-lazy-load-image-component"; function BlogUMightLike({ blog, block }) { const timeAgo = formatDistanceToNow(new Date(blog.created_at), { diff --git a/src/pages/blog2/sections/RelatedBlogCard.jsx b/src/pages/blog2/sections/RelatedBlogCard.jsx index 5de686ac..822725fc 100644 --- a/src/pages/blog2/sections/RelatedBlogCard.jsx +++ b/src/pages/blog2/sections/RelatedBlogCard.jsx @@ -1,8 +1,7 @@ /* eslint-disable react/prop-types */ import { formatDistanceToNow } from "date-fns"; -import React from "react"; -import { Link } from "react-router-dom"; import { LazyLoadImage } from "react-lazy-load-image-component"; +import { Link } from "react-router-dom"; function RelatedBlogCard({ blog }) { const timeAgo = formatDistanceToNow(new Date(blog.created_at), { diff --git a/src/pages/blogs/sections/Banner.jsx b/src/pages/blogs/sections/Banner.jsx index abd8e724..a1583ace 100644 --- a/src/pages/blogs/sections/Banner.jsx +++ b/src/pages/blogs/sections/Banner.jsx @@ -1,8 +1,8 @@ -import React, { useContext } from "react"; +import { useContext } from "react"; +import { LazyLoadImage } from "react-lazy-load-image-component"; import { search } from "../../../assets/images/blogs-page"; import { SearchBlogContext } from "../../../context/searchBlog"; -import { LazyLoadImage } from "react-lazy-load-image-component"; function Banner() { const { searchText, setSearchText } = useContext(SearchBlogContext); diff --git a/src/pages/blogs/sections/BlogCard.jsx b/src/pages/blogs/sections/BlogCard.jsx index 29fd9c5f..d6e3b3b8 100644 --- a/src/pages/blogs/sections/BlogCard.jsx +++ b/src/pages/blogs/sections/BlogCard.jsx @@ -5,7 +5,7 @@ import React from "react"; import { LazyLoadImage } from "react-lazy-load-image-component"; import { Link } from "react-router-dom"; -import logo from "../../../../assets/images/sytLogo.png"; +import logo from "../../../assets/images/sytLogo.png"; import BlogStats from "./BlogStats"; function BlogCard({ blog }) { diff --git a/src/pages/events/sections/FeaturedEventCard.jsx b/src/pages/events/sections/FeaturedEventCard.jsx index 617132a3..91d4769f 100644 --- a/src/pages/events/sections/FeaturedEventCard.jsx +++ b/src/pages/events/sections/FeaturedEventCard.jsx @@ -1,6 +1,4 @@ -import React from "react"; -import { featuredEvent } from "../../../assets/images/aboutPage"; -import startinevEvent from "../../../../assets/images/eventsPage/startinev.jpeg" +import startinevEvent from "../../../assets/images/eventsPage/startinev.jpeg"; function FeaturedEventCard() { return ( diff --git a/src/pages/products2/sections/HeroSection.jsx b/src/pages/products2/sections/HeroSection.jsx index fa9c0dad..4686088e 100644 --- a/src/pages/products2/sections/HeroSection.jsx +++ b/src/pages/products2/sections/HeroSection.jsx @@ -1,5 +1,5 @@ -import videoCaptions from "../../../../assets/images/syt-video-captions_en.vtt"; -import video from "../../../../assets/images/syt.mp4"; +import videoCaptions from "../../../assets/images/syt-video-captions_en.vtt"; +import video from "../../../assets/images/syt.mp4"; function HeroSection() { return ( diff --git a/src/pages/shop/OrderSummaryPage.jsx b/src/pages/shop/OrderSummaryPage.jsx index 62656da0..07013940 100644 --- a/src/pages/shop/OrderSummaryPage.jsx +++ b/src/pages/shop/OrderSummaryPage.jsx @@ -1,16 +1,16 @@ /* eslint-disable react/react-in-jsx-scope */ import { Dialog, Transition } from "@headlessui/react"; import { useState, Fragment } from "react"; +import { LazyLoadImage } from "react-lazy-load-image-component"; import { Link } from "react-router-dom"; -import Sample1 from "../../../assets/images/shop-page/sample1.png"; -import Sample2 from "../../../assets/images/shop-page/sample2.png"; +import Sample1 from "../../assets/images/shop-page/sample1.png"; +import Sample2 from "../../assets/images/shop-page/sample2.png"; +import CartDrawer from "../../components/shop/CartDrawer"; +import Counter from "../../components/shop/Counter"; import useMakeOrder from "../../hooks/Mutations/shop/useMakeOrder"; import useProductsInCart from "../../hooks/Queries/shop/useCartProducts"; import { useOrderSummary } from "../../hooks/Queries/shop/useOrdersList"; -import CartDrawer from "../../components/shop/CartDrawer"; -import Counter from "../../components/shop/Counter"; import ItemHeader from "./sections/ItemHeader"; -import { LazyLoadImage } from "react-lazy-load-image-component"; const steps = [ { description: "Provide your MPESA mobile number", key: 1 }, diff --git a/src/pages/shop/SingleItemPage.jsx b/src/pages/shop/SingleItemPage.jsx index e7eae395..c73a47f9 100644 --- a/src/pages/shop/SingleItemPage.jsx +++ b/src/pages/shop/SingleItemPage.jsx @@ -2,15 +2,15 @@ import { useState, useEffect } from "react"; import { LazyLoadImage } from "react-lazy-load-image-component"; import { useNavigate, useParams } from "react-router-dom"; -import SmallSample1 from "../../../assets/images/shop-page/small-sample-colored.png"; -import SmallSample2 from "../../../assets/images/shop-page/small-sample-greyscale.png"; +import SmallSample1 from "../../assets/images/shop-page/small-sample-colored.png"; +import SmallSample2 from "../../assets/images/shop-page/small-sample-greyscale.png"; +import NotificationModal from "../../components/auth/NotificationModal"; +import CartDrawer from "../../components/shop/CartDrawer"; +import Counter from "../../components/shop/Counter"; import { useAddSwagToCart } from "../../hooks/Mutations/shop/useCartSwagg"; import { useSingleOrder } from "../../hooks/Queries/shop/useOrdersList"; import { useSingleSwag } from "../../hooks/Queries/shop/useSwagList"; import useAuth from "../../hooks/useAuth"; -import NotificationModal from "../../components/auth/NotificationModal"; -import CartDrawer from "../../components/shop/CartDrawer"; -import Counter from "../../components/shop/Counter"; import ItemHeader from "./sections/ItemHeader"; const VariationData = [SmallSample1, SmallSample2, SmallSample1, SmallSample2]; @@ -32,7 +32,7 @@ export default function SingleItemPage() { const { mutate: addItemsToCart } = useAddSwagToCart(); const sizes = ["XS", "S", "M", "L", "XL", "XXL"]; - console.log("singleSwag: ", singleSwag); + useEffect(() => { localStorage.setItem("swagList", []); if (isSuccess) { diff --git a/src/pages/shop/sections/Banner.jsx b/src/pages/shop/sections/Banner.jsx index a6b9ff29..1b6abdc0 100644 --- a/src/pages/shop/sections/Banner.jsx +++ b/src/pages/shop/sections/Banner.jsx @@ -1,9 +1,9 @@ -import banner from "../../../../assets/images/shop-page/shop-banner.jpg"; +import banner from "../../../assets/images/shop-page/shop-banner.jpg"; function Banner() { return (
@@ -12,7 +12,10 @@ function Banner() {
merchandise. -
diff --git a/src/pages/shop/sections/ItemHeader.jsx b/src/pages/shop/sections/ItemHeader.jsx index b1d64a09..6b0101cd 100644 --- a/src/pages/shop/sections/ItemHeader.jsx +++ b/src/pages/shop/sections/ItemHeader.jsx @@ -4,7 +4,6 @@ import { PiShoppingCartLight } from "react-icons/pi"; import { Combobox, Transition } from "@headlessui/react"; import { Fragment, useState } from "react"; import { useLocation, useParams, Link } from "react-router-dom"; -import CartIcon from "../../../../assets/images/icons/cart-icon.svg"; import { useSwagList } from "../../../hooks/Queries/shop/useSwagList"; function ItemHeader({ show }) { From 7eb9489c9b0977bd254251152fd5a1e27836dd0c Mon Sep 17 00:00:00 2001 From: sonylomo Date: Thu, 20 Jun 2024 23:48:13 +0300 Subject: [PATCH 3/3] fix: linting error --- src/pages/shop/SingleItemPage.jsx | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/pages/shop/SingleItemPage.jsx b/src/pages/shop/SingleItemPage.jsx index c73a47f9..38519af8 100644 --- a/src/pages/shop/SingleItemPage.jsx +++ b/src/pages/shop/SingleItemPage.jsx @@ -61,7 +61,7 @@ export default function SingleItemPage() { console.log("singleSwag: ", swagList); // Also check for matching swagg_id that already exist in local storage - if (Payload !== {}) swagList.push(Payload); + swagList.push(Payload); swagListJSON = JSON.stringify(swagList); console.log("swagListJSON: ", swagListJSON); localStorage.setItem("swagList", swagListJSON);