diff --git a/.github/workflows/issue-branch.yml b/.github/workflows/issue-branch.yml deleted file mode 100644 index 0611b521..00000000 --- a/.github/workflows/issue-branch.yml +++ /dev/null @@ -1,73 +0,0 @@ -name: Create Branch on Issue Creation - -on: - issues: - types: [opened] - -jobs: - create-branch: - runs-on: ubuntu-latest - steps: - - name: Checkout repository - uses: actions/checkout@v4 - with: - token: ${{ secrets.PERSONAL_ACCESS_TOKEN }} - - - name: Add issue comment - Branch is Creating... - run: | - curl -X POST -H "Authorization: token ${{ secrets.PERSONAL_ACCESS_TOKEN }}" \ - -H "Accept: application/vnd.github.v3+json" \ - https://api.github.com/repos/${{ github.repository }}/issues/${{ github.event.issue.number }}/comments \ - -d '{"body": "Branch is Creating..."}' - - name: Extract issue details - id: issue - run: | - TITLE="${{ github.event.issue.title }}" - NUMBER="${{ github.event.issue.number }}" - # Extract the first word as issue type (e.g., "bugfix: Fix UI" → "bugfix") - ISSUE_TYPE=$(echo "$TITLE" | awk '{print $1}' | tr '[:upper:]' '[:lower:]' | tr -cd '[:alnum:]-') - ISSUE_TYPE=$(echo "$ISSUE_TYPE" | sed 's/:$//') - # Allowed issue types - ALLOWED_TYPES="feat|fix|bugfix|chore|refactor|docs|test|style|perf|ci|build" - # If issue type is empty or unrecognized, default to "feat" - if [[ -z "$ISSUE_TYPE" || ! "$ISSUE_TYPE" =~ ^($ALLOWED_TYPES)$ ]]; then - ISSUE_TYPE="feat" - fi - - # Remove issue type from the title and format safely - SAFE_TITLE=$(echo "$TITLE" | sed "s/^$ISSUE_TYPE[:]* *//" | tr ' ' '-' | tr -cd '[:alnum:]-') - - # Construct the branch name - BRANCH_NAME="${ISSUE_TYPE}/#${NUMBER}-${SAFE_TITLE}" - - echo "BRANCH_NAME=$BRANCH_NAME" >> $GITHUB_ENV - echo "Branch to be created: $BRANCH_NAME" - - - name: Create new branch - run: | - git config --global user.email "github-actions@github.com" - git config --global user.name "github-actions" - git fetch origin - git checkout -b $BRANCH_NAME origin/main - git push origin $BRANCH_NAME - - name: Update issue with checkout command - run: | - CHECKOUT_COMMAND="\`\`\`bash\ngit fetch origin\ngit checkout $BRANCH_NAME\n\`\`\`" - curl -X POST -H "Authorization: token ${{ secrets.PERSONAL_ACCESS_TOKEN }}" \ - -H "Accept: application/vnd.github.v3+json" \ - https://api.github.com/repos/${{ github.repository }}/issues/${{ github.event.issue.number }}/comments \ - -d "{\"body\": \"Branch created successfully! Use the following command to check it out:\n\n$CHECKOUT_COMMAND\"}" - - name: Link branch to issue in the Development section - run: | - curl -X POST -H "Authorization: token ${{ secrets.PERSONAL_ACCESS_TOKEN }}" \ - -H "Accept: application/vnd.github.v3+json" \ - https://api.github.com/repos/${{ github.repository }}/issues/${{ github.event.issue.number }}/development \ - -d "{\"head_branch\": \"$BRANCH_NAME\"}" - continue-on-error: true - error-handling: - if: failure() - runs-on: ubuntu-latest - steps: - - name: Add error comment to issue - run: | - curl -X POST -H "Authorization: token ${{ secrets.PERSONAL_ACCESS_TOKEN }}" \ diff --git a/.github/workflows/pr-auto-review.yml b/.github/workflows/pr-auto-review.yml deleted file mode 100644 index 09cbfd27..00000000 --- a/.github/workflows/pr-auto-review.yml +++ /dev/null @@ -1,121 +0,0 @@ -name: Pull Request Automation - -on: - pull_request: - types: [opened, ready_for_review] - -jobs: - build-design-system: - runs-on: ubuntu-latest - steps: - - name: Checkout repository - uses: actions/checkout@v3 - with: - ref: ${{ github.head_ref }} - token: ${{ secrets.PERSONAL_ACCESS_TOKEN }} - - - name: Cache Bun dependencies - id: cache-deps - uses: actions/cache@v4 - with: - path: ~/.bun/install/cache - key: ${{ runner.os }}-bun-dependencies-${{ hashFiles('**/bun.lockb') }} - restore-keys: | - ${{ runner.os }}-bun-dependencies- - - - name: Setup Bun - uses: oven-sh/setup-bun@v1 - with: - bun-version: latest - - - name: Install dependencies - if: steps.cache-deps.outputs.cache-hit != 'true' - working-directory: ./packages/design-system - run: bun install - - - name: Run build script - working-directory: ./packages/design-system - run: bun run build - - - name: Commit and push changes - uses: stefanzweifel/git-auto-commit-action@v5 - with: - commit_message: "chore: update design system tokens" - branch: ${{ github.head_ref }} - file_pattern: ./packages/design-system/** - token: ${{ secrets.PERSONAL_ACCESS_TOKEN }} - - add-reviewer: - runs-on: ubuntu-latest - needs: build-design-system - steps: - - name: Extract Issue Number from Branch - id: extract_issue - run: | - BRANCH_NAME="${{ github.head_ref }}" - ISSUE_NUMBER=$(echo "$BRANCH_NAME" | grep -oE '[0-9]+' | head -1) - - if [ -z "$ISSUE_NUMBER" ]; then - echo "No issue number found in branch name!" - exit 1 - fi - - echo "ISSUE_NUMBER=$ISSUE_NUMBER" >> $GITHUB_ENV - - - name: Add Reviewer - run: | - curl -X POST -H "Authorization: token ${{ secrets.PERSONAL_ACCESS_TOKEN }}" \ - -H "Accept: application/vnd.github.v3+json" \ - https://api.github.com/repos/${{ github.repository }}/pulls/${{ github.event.pull_request.number }}/requested_reviewers \ - -d '{"reviewers":["mrbadri"]}' - - - name: Add PR Description Comment - run: | - PR_COMMENT="This pull request is related to issue #${{ env.ISSUE_NUMBER }}\n\nCloses #${{ env.ISSUE_NUMBER }}" - - curl -X POST -H "Authorization: token ${{ secrets.PERSONAL_ACCESS_TOKEN }}" \ - -H "Accept: application/vnd.github.v3+json" \ - https://api.github.com/repos/${{ github.repository }}/issues/${{ github.event.pull_request.number }}/comments \ - -d "{\"body\": \"$PR_COMMENT\"}" - - merge-pr: - runs-on: ubuntu-latest - needs: add-reviewer - steps: - - name: Check PR Author - id: check-author - run: | - PR_AUTHOR="${{ github.event.pull_request.user.login }}" - echo "PR_AUTHOR=${PR_AUTHOR}" >> $GITHUB_ENV - if [[ "$PR_AUTHOR" == "mrbadri" ]]; then - echo "MERGE_IMMEDIATELY=true" >> $GITHUB_ENV - else - echo "MERGE_IMMEDIATELY=false" >> $GITHUB_ENV - fi - - - name: Wait for Approval (if not mrbadri) - id: check-approval - if: env.MERGE_IMMEDIATELY == 'false' - run: | - APPROVED=0 - while [ $APPROVED -eq 0 ]; do - echo "Checking for approvals..." - REVIEWS=$(curl -s -H "Authorization: token ${{ secrets.PERSONAL_ACCESS_TOKEN }}" \ - -H "Accept: application/vnd.github.v3+json" \ - https://api.github.com/repos/${{ github.repository }}/pulls/${{ github.event.pull_request.number }}/reviews) - - if echo "$REVIEWS" | grep -q '"state": "APPROVED"'; then - APPROVED=1 - echo "Pull request has at least one approval!" - else - echo "Waiting for at least one approval..." - sleep 60 - fi - done - - # - name: Merge Pull Request - # run: | - # curl -X PUT -H "Authorization: token ${{ secrets.PERSONAL_ACCESS_TOKEN }}" \ - # -H "Accept: application/vnd.github.v3+json" \ - # https://api.github.com/repos/${{ github.repository }}/pulls/${{ github.event.pull_request.number }}/merge \ - # -d '{"merge_method":"squash"}' diff --git a/.github/workflows/preview.yaml b/.github/workflows/preview.yaml new file mode 100644 index 00000000..17580a24 --- /dev/null +++ b/.github/workflows/preview.yaml @@ -0,0 +1,21 @@ +name: Vercel Preview Deployment +env: + VERCEL_ORG_ID: ${{ secrets.VERCEL_ORG_ID }} + VERCEL_PROJECT_ID: ${{ secrets.VERCEL_PROJECT_ID }} +on: + push: + branches-ignore: + - main +jobs: + Deploy-Preview: + runs-on: ubuntu-latest + steps: + - uses: actions/checkout@v2 + - name: Install Vercel CLI + run: npm install --global vercel@latest + - name: Pull Vercel Environment Information + run: vercel pull --yes --environment=preview --token=${{ secrets.VERCEL_TOKEN }} + - name: Build Project Artifacts + run: vercel build --token=${{ secrets.VERCEL_TOKEN }} + - name: Deploy Project Artifacts to Vercel + run: vercel deploy --prebuilt --token=${{ secrets.VERCEL_TOKEN }} \ No newline at end of file diff --git a/.husky/pre-push b/.husky/pre-push index 735cac74..9de635f3 100644 --- a/.husky/pre-push +++ b/.husky/pre-push @@ -1,2 +1 @@ -bun run build -git pull --rebase origin main \ No newline at end of file +bun run build \ No newline at end of file diff --git a/.vscode/settings.json b/.vscode/settings.json deleted file mode 100644 index d7ec4b9d..00000000 --- a/.vscode/settings.json +++ /dev/null @@ -1,7 +0,0 @@ -{ - "tailwindCSS.experimental.classRegex": [ - ["cva\\(([^)]*)\\)", "[\"'`]([^\"'`]+)[\"'`]"], - ["cn\\(([^)]*)\\)", "[\"'`]([^\"'`]+)[\"'`]"], - ["clax\\(([^)]*)\\)", "[\"'`]([^\"'`]+)[\"'`]"] - ] -} diff --git a/apps/core/app/(landing)/_components/addtoCard.tsx b/apps/core/app/(landing)/_components/addtoCard.tsx index d675d294..6a67bce6 100644 --- a/apps/core/app/(landing)/_components/addtoCard.tsx +++ b/apps/core/app/(landing)/_components/addtoCard.tsx @@ -10,16 +10,15 @@ import Securityicon from "@repo/icons/security"; import { Label } from "@repo/ui/components/label"; import { useState } from "react"; import CardSkeleton from "./card-cart-skeleton"; -import { useCartStore } from "../store/cart-store"; -import Typography from "@repo/ui/components/typography"; +import useCartStore from "../store/cart-store"; const Addtocard = () => { - const { closeAddToCart } = useCartStore(); + const { isAddToCartOpen, closeAddToCart, addToCart } = useCartStore(); const [cards, setCards] = useState([ + { id: 1, title: "Traveler - Travel Agency", price: "$15" }, { id: 2, title: "Explorer - Adventure Company", price: "$20" }, { id: 3, title: "Explorer - Adventure Company", price: "$20" }, - { id: 1, title: "Traveler - Travel Agency", price: "$15" }, { id: 4, title: "Explorer - Adventure Company", price: "$20" }, { id: 5, title: "Explorer - Adventure Company", price: "$20" }, ]); @@ -28,7 +27,6 @@ const Addtocard = () => { { id: 1, title: "temp", price: "t" }, { id: 1, title: "temp", price: "t" }, { id: 1, title: "temp", price: "t" }, - { id: 1, title: "temp", price: "t" }, ]; const activeTemp = temp.splice(cards.length); @@ -37,13 +35,15 @@ const Addtocard = () => { setCards(cards.filter((card) => card.id !== id)); }; + if (!isAddToCartOpen) return null; + return ( -
+
-
+
{cards.map((card) => ( { ))}
-
- - Checkout - +
+

Checkout

-
+
- - Metamask - +

Metamask

- - Tonconnect - +

Tonconnect

- - Paypal - +

Paypal

-
-
+
+ +
+ {/* to do : # label container */} + { + // to do : # sign out + }} + > + Sign out +
- +
-
@@ -117,9 +114,9 @@ const Addtocard = () => { closeAddToCart(); }} /> - +

Your payment is secured by MetaMask - +

diff --git a/apps/core/app/(landing)/_components/browseMegaMenu/browse-mega-menu.tsx b/apps/core/app/(landing)/_components/browseMegaMenu/browse-mega-menu.tsx index 7133d8b2..9fd6e70d 100644 --- a/apps/core/app/(landing)/_components/browseMegaMenu/browse-mega-menu.tsx +++ b/apps/core/app/(landing)/_components/browseMegaMenu/browse-mega-menu.tsx @@ -1,16 +1,10 @@ -import { useMegaMenuStore } from "../../store/mega-menu"; import { BottomPartMenu } from "./bottomPart/bottom-part-menu"; import { TopPartMenu } from "./topPart/top-part-menu"; import { RetroGrid } from "@repo/ui/components/retroGrid"; const BrowseMegaMenu = () => { - const { closeMegaMenu } = useMegaMenuStore(); return (
-
diff --git a/apps/core/app/(landing)/_components/card-cart-skeleton.tsx b/apps/core/app/(landing)/_components/card-cart-skeleton.tsx index ee237c62..9f03f81e 100644 --- a/apps/core/app/(landing)/_components/card-cart-skeleton.tsx +++ b/apps/core/app/(landing)/_components/card-cart-skeleton.tsx @@ -1,12 +1,12 @@ const CardSkeleton = () => { return ( -
+
-
+
-
-
-
+
+
+
); diff --git a/apps/core/app/(landing)/_components/card.tsx b/apps/core/app/(landing)/_components/card.tsx index f090ce70..819b8ca2 100644 --- a/apps/core/app/(landing)/_components/card.tsx +++ b/apps/core/app/(landing)/_components/card.tsx @@ -1,5 +1,4 @@ import Removeicon from "@repo/icons/remove"; -import Typography from "@repo/ui/components/typography"; import Image from "next/image"; interface CardProps { @@ -13,34 +12,30 @@ const Card: React.FC = (props) => { const { id, onRemove, title, price } = props; return ( -
+
-
+
card
-
- - {title} - - - {price} - +
+

{title}

+

{price}

onRemove(id)} > - +
diff --git a/apps/core/app/(landing)/_components/desktop-navbar/feature-navbar-authenticated.tsx b/apps/core/app/(landing)/_components/desktop-navbar/feature-navbar-authenticated.tsx index 08e1e6c1..439d12d9 100644 --- a/apps/core/app/(landing)/_components/desktop-navbar/feature-navbar-authenticated.tsx +++ b/apps/core/app/(landing)/_components/desktop-navbar/feature-navbar-authenticated.tsx @@ -1,5 +1,5 @@ import Doorexiticon from "@repo/icons/Doorexiticon"; -import Heart1icon from "@repo/icons/heart"; +import Heart1icon from "@repo/icons/heart1"; import Settingsicon from "@repo/icons/Settingsicon"; import Shoppingbagicon from "@repo/icons/shopping-bag"; import Usercircleicon from "@repo/icons/Usercircleicon"; @@ -13,29 +13,22 @@ import { } from "@repo/ui/components/dropdown-menu"; import Image from "next/image"; import Link from "next/link"; -import { useCartStore } from "../../store/cart-store"; +import useCartStore from "../../store/cart-store"; import Useractionpixelicon from "@repo/icons/useractionpixel"; import { AvatarImage, AvatarFallback, Avatar, } from "@repo/ui/components/avatar"; -import { useMegaMenuStore } from "./../../store/mega-menu"; const FeatureNavbarAuthenticated = () => { const { toggleAddToCart } = useCartStore(); - const { closeMegaMenu } = useMegaMenuStore(); - - const onClick = () => { - toggleAddToCart(); - closeMegaMenu(); - }; return (
-
+
{/* TODO: add badge #erfan*/} diff --git a/apps/core/app/(landing)/_components/desktop-navbar/navbar-links.tsx b/apps/core/app/(landing)/_components/desktop-navbar/navbar-links.tsx index 24f31067..3bc38e0a 100644 --- a/apps/core/app/(landing)/_components/desktop-navbar/navbar-links.tsx +++ b/apps/core/app/(landing)/_components/desktop-navbar/navbar-links.tsx @@ -1,19 +1,9 @@ import Typography from "@repo/ui/components/typography"; -import { useMegaMenuStore } from "./../../store/mega-menu"; -import { useCartStore } from "./../../store/cart-store"; const NavbarLinks = () => { - const { toggleOpenMegaMenu } = useMegaMenuStore(); - const { closeAddToCart } = useCartStore(); - - const onClick = () => { - closeAddToCart(); - toggleOpenMegaMenu(); - }; - return (
- + Browse diff --git a/apps/core/app/(landing)/_components/desktop-navbar/navbar.tsx b/apps/core/app/(landing)/_components/desktop-navbar/navbar.tsx index 6d20585c..0f9b23be 100644 --- a/apps/core/app/(landing)/_components/desktop-navbar/navbar.tsx +++ b/apps/core/app/(landing)/_components/desktop-navbar/navbar.tsx @@ -1,6 +1,7 @@ "use client"; import PixelIcon from "@repo/icons/pxiel"; import SearchIcon from "@repo/icons/serach"; +import { NavigationMenu } from "@repo/ui/components/navigation-menu"; import { AnimatePresence, motion } from "framer-motion"; import { useRef, useState } from "react"; import Addtocard from "../addtoCard"; @@ -8,12 +9,9 @@ import NavbarLinks from "./navbar-links"; import FeaturesNavbar from "./features-navbar"; import Searchbar, { RefSearchHandle } from "./search-bar"; import { BrowseMegaMenu } from "../browseMegaMenu/browse-mega-menu"; -import { useMegaMenuStore } from "../../store/mega-menu"; -import { useCartStore } from "../../store/cart-store"; const Navbar = ({ islogin }: { islogin: boolean }) => { - const { isOpenMegaMenu } = useMegaMenuStore(); - const { isAddToCartOpen } = useCartStore(); + // isSeaching state const [isSearchActive, setIsSearchActive] = useState(false); const [isSearchVisible, setIsSearchVisible] = useState(false); @@ -93,38 +91,9 @@ const Navbar = ({ islogin }: { islogin: boolean }) => {
- - {isAddToCartOpen && ( - - - - )} - - - {isOpenMegaMenu && ( - - - - )} - + + + {/* */}
); }; diff --git a/apps/core/app/(landing)/become-auther/_components/auther-form.tsx b/apps/core/app/(landing)/become-auther/_components/auther-form.tsx index 77f1c637..61cbb892 100644 --- a/apps/core/app/(landing)/become-auther/_components/auther-form.tsx +++ b/apps/core/app/(landing)/become-auther/_components/auther-form.tsx @@ -32,7 +32,6 @@ const AutherForm = () => { }); const onSubmit = (data: PostRequestAuthorRequest) => { - console.log("Sign Up Data:", data); mutation.mutate(data); }; diff --git a/apps/core/app/(landing)/page.tsx b/apps/core/app/(landing)/page.tsx index 535517b3..a5c39602 100644 --- a/apps/core/app/(landing)/page.tsx +++ b/apps/core/app/(landing)/page.tsx @@ -11,7 +11,6 @@ import Typography from "@repo/ui/components/typography"; import * as htmlToImage from "html-to-image"; import { useTheme } from "next-themes"; import { useState } from "react"; -import Addtocard from "./_components/addtoCard"; export default function Page() { const { theme, setTheme } = useTheme(); diff --git a/apps/core/app/(landing)/product/[id]/_components/product-footer.tsx b/apps/core/app/(landing)/product/[id]/_components/product-footer.tsx index 0fd3b97e..9664a8b4 100644 --- a/apps/core/app/(landing)/product/[id]/_components/product-footer.tsx +++ b/apps/core/app/(landing)/product/[id]/_components/product-footer.tsx @@ -1,4 +1,4 @@ -import Heart1icon from "@repo/icons/heart"; +import Heart1icon from "@repo/icons/heart1"; import Messagecircleicon from "@repo/icons/message-circle"; import Shopingcartplusicon from "@repo/icons/shopping-cart-plus"; import { SCROLL_TOP_RANGE } from "@repo/ui/components/parallax-scroll-effect"; diff --git a/apps/core/app/(landing)/product/[id]/page.tsx b/apps/core/app/(landing)/product/[id]/page.tsx index 1c2aced7..d673adda 100644 --- a/apps/core/app/(landing)/product/[id]/page.tsx +++ b/apps/core/app/(landing)/product/[id]/page.tsx @@ -5,7 +5,7 @@ import Chevronrighticon from "@repo/icons/chevron-right"; import Circlecheckicon from "@repo/icons/Circle-check"; import Clouddownloadicon from "@repo/icons/cloud-download"; import Figmaicon from "@repo/icons/figma"; -import Heart1icon from "@repo/icons/heart"; +import Heart1icon from "@repo/icons/heart1"; import Instagram from "@repo/icons/instagram"; import Messagecircleicon from "@repo/icons/message-circle"; import Shopingcartplusicon from "@repo/icons/shopping-cart-plus"; diff --git a/apps/core/app/(landing)/product/test/page.tsx b/apps/core/app/(landing)/product/test/page.tsx index bd7f2d9e..c3473111 100644 --- a/apps/core/app/(landing)/product/test/page.tsx +++ b/apps/core/app/(landing)/product/test/page.tsx @@ -5,7 +5,7 @@ import Chevronrighticon from "@repo/icons/chevron-right"; import Circlecheckicon from "@repo/icons/Circle-check"; import Clouddownloadicon from "@repo/icons/cloud-download"; import Figmaicon from "@repo/icons/figma"; -import Heart1icon from "@repo/icons/heart"; +import Heart1icon from "@repo/icons/heart1"; import Instagram from "@repo/icons/instagram"; import Messagecircleicon from "@repo/icons/message-circle"; import Shopingcartplusicon from "@repo/icons/shopping-cart-plus"; diff --git a/apps/core/app/(landing)/store/cart-store.ts b/apps/core/app/(landing)/store/cart-store.ts index 650fd470..82663051 100644 --- a/apps/core/app/(landing)/store/cart-store.ts +++ b/apps/core/app/(landing)/store/cart-store.ts @@ -16,7 +16,7 @@ type CartState = { toggleAddToCart: () => void; }; -export const useCartStore = create((set) => ({ +const useCartStore = create((set) => ({ isAddToCartOpen: false, cartItems: [], openAddToCart: () => set({ isAddToCartOpen: true }), @@ -27,3 +27,5 @@ export const useCartStore = create((set) => ({ cartItems: [...state.cartItems, item], })), })); + +export default useCartStore; \ No newline at end of file diff --git a/apps/core/app/(landing)/store/mega-menu.ts b/apps/core/app/(landing)/store/mega-menu.ts deleted file mode 100644 index af7ab612..00000000 --- a/apps/core/app/(landing)/store/mega-menu.ts +++ /dev/null @@ -1,28 +0,0 @@ -import { create } from "zustand"; - -type CartItem = { - id: string; - name: string; - price: number; - quantity: number; -}; - -type MegaMenu = { - isOpenMegaMenu: boolean; - setOpenMegaMenu: () => void; - closeMegaMenu: () => void; - toggleOpenMegaMenu: () => void; -}; - -export const useMegaMenuStore = create((set) => ({ - isOpenMegaMenu: false, - setOpenMegaMenu: () => { - set({ isOpenMegaMenu: true }); - }, - closeMegaMenu() { - set({ isOpenMegaMenu: false }); - }, - toggleOpenMegaMenu: () => { - set((state) => ({ isOpenMegaMenu: !state.isOpenMegaMenu })); - }, -})); diff --git a/apps/core/app/(landing)/test/megaMenuContent/page.tsx b/apps/core/app/(landing)/test/megaMenuContent/page.tsx new file mode 100644 index 00000000..7332e052 --- /dev/null +++ b/apps/core/app/(landing)/test/megaMenuContent/page.tsx @@ -0,0 +1,9 @@ +import { BrowseMegaMenu } from "../../_components/browseMegaMenu/browse-mega-menu"; + +export default function Page() { + return ( +
+ +
+ ); +} diff --git a/apps/core/app/(landing)/test/page.tsx b/apps/core/app/(landing)/test/page.tsx new file mode 100644 index 00000000..8bb8bcc0 --- /dev/null +++ b/apps/core/app/(landing)/test/page.tsx @@ -0,0 +1,48 @@ +"use client"; +import { AttachmentAdmin } from "@repo/ui/components/attachment/attachmentAdmin/attachmentAdmin"; +import { AttachmentLanding } from "@repo/ui/components/attachment/attachmentLanding/attachmentLanding"; +import { AttachmentThumbnail } from "@repo/ui/components/attachment/attachmentThumbnail/attachmentThumbnail"; + +export default function Page() { + return ( +
+ { + console.log(filesId); + }} + fileCategory="cv" + /> +
+ { + console.log(filesId); + }} + /> +
+
+
+ { + console.log(filesId); + }} + /> +
+
+
+ ); +} diff --git a/apps/core/app/auth/_components/auth-card.tsx b/apps/core/app/auth/_components/auth-card.tsx index 7be323ba..92b92a6c 100644 --- a/apps/core/app/auth/_components/auth-card.tsx +++ b/apps/core/app/auth/_components/auth-card.tsx @@ -8,7 +8,7 @@ import { ReactNode } from "react"; const AuthCard = ({ children }: { children: ReactNode }) => { return ( -
+
{/* logo */}
diff --git a/apps/core/app/auth/forget-password/_components/form/forgetPasswordForm.tsx b/apps/core/app/auth/forget-password/_components/form/forgetPasswordForm.tsx index be67ee55..23ab04ee 100644 --- a/apps/core/app/auth/forget-password/_components/form/forgetPasswordForm.tsx +++ b/apps/core/app/auth/forget-password/_components/form/forgetPasswordForm.tsx @@ -4,11 +4,11 @@ import { useRouter } from "next/navigation"; import { useForm } from "react-hook-form"; import { toast } from "sonner"; import { zodResolver } from "@hookform/resolvers/zod"; -import { postForgetPasswordSchema } from "@repo/apis/core/forgot-password/post/post-forget-password.schema"; -import { PostForgetPasswordRequest } from "@repo/apis/core/forgot-password/post/post-forget-password.types"; -import { UsePostForgetPassword } from "@repo/apis/core/forgot-password/post/use-post-forget-password"; import { Button } from "@repo/ui/components/button"; import { Input } from "@repo/ui/components/input"; +import { postForgetPasswordSchema } from "@repo/apis/core/accounts/users/forgot-password/post/post-forget-password.schema"; +import type { PostForgetPasswordRequest } from "@repo/apis/core/accounts/users/forgot-password/post/post-forget-password.types"; +import { UsePostForgetPassword } from "@repo/apis/core/accounts/users/forgot-password/post/use-post-forget-password"; const ForgetPasswordForm = () => { const router = useRouter(); @@ -26,12 +26,11 @@ const ForgetPasswordForm = () => { const mutation = UsePostForgetPassword({ onSuccess: (res, context) => { toast.info(res.data.message); - router.push(`/auth/set-password?username=${context.username}`); + router.replace(`/auth/set-password?username=${context.username}`); }, }); const onSubmit = (data: PostForgetPasswordRequest) => { - console.log("Sign Up Data:", data); mutation.mutate(data); }; diff --git a/apps/core/app/auth/layout.tsx b/apps/core/app/auth/layout.tsx index 77d65b6b..5c794014 100644 --- a/apps/core/app/auth/layout.tsx +++ b/apps/core/app/auth/layout.tsx @@ -1,5 +1,6 @@ import "@repo/ui/globals.scss"; import type { Metadata } from "next"; +import Image from "next/image"; export const metadata: Metadata = { title: "Docs", @@ -8,16 +9,17 @@ export const metadata: Metadata = { export default function RootLayout({ children, -}: { +}: Readonly<{ children: React.ReactNode; -}): JSX.Element { +}>): JSX.Element { return (
- background
{children}
diff --git a/apps/core/app/auth/login/_components/form/loginForm.tsx b/apps/core/app/auth/login/_components/form/loginForm.tsx index af78dec4..fe288b34 100644 --- a/apps/core/app/auth/login/_components/form/loginForm.tsx +++ b/apps/core/app/auth/login/_components/form/loginForm.tsx @@ -30,13 +30,11 @@ const LoginForm = () => { const loginMutation = usePostLogin({ onSuccess: (res) => { - console.log(res); toast.success("Logged in successfully"); setAuthTokens(res.data.data.token); router.push("/"); }, onError: (res) => { - console.log(res); toast.error(res.response?.data.message ?? "Something went wrong"); }, }); @@ -67,7 +65,7 @@ const LoginForm = () => { helperText={ Forgot password? diff --git a/apps/core/app/auth/login/page.tsx b/apps/core/app/auth/login/page.tsx index 0ef4a2f2..f8ab50b8 100644 --- a/apps/core/app/auth/login/page.tsx +++ b/apps/core/app/auth/login/page.tsx @@ -26,7 +26,7 @@ const LoginPage = () => { {/* login with google and linkedin */} {/*
-
-
-

- didnt recieved code yet? -

-
- - ); -}; - -export default Otppage; diff --git a/apps/core/app/auth/set-password/page.tsx b/apps/core/app/auth/set-password/page.tsx index a826f06c..9fc31ad2 100644 --- a/apps/core/app/auth/set-password/page.tsx +++ b/apps/core/app/auth/set-password/page.tsx @@ -1,7 +1,5 @@ // import components "use client"; -import { PostForgetPasswordRequest } from "@repo/apis/core/forgot-password/post/post-forget-password.types"; -import { UsePostForgetPassword } from "@repo/apis/core/forgot-password/post/use-post-forget-password"; import { Button } from "@repo/ui/components/button"; import { InputOTP, @@ -9,29 +7,30 @@ import { InputOTPSlot, } from "@repo/ui/components/input-otp"; import { REGEXP_ONLY_DIGITS_AND_CHARS } from "input-otp"; -import { useRouter } from "next/navigation"; +import { useRouter, useSearchParams } from "next/navigation"; import { useForm } from "react-hook-form"; import { toast } from "sonner"; // import icons import { zodResolver } from "@hookform/resolvers/zod"; -import { postForgetPasswordSchema } from "@repo/apis/core/forgot-password/post/post-forget-password.schema"; import { Input } from "@repo/ui/components/input"; import { Suspense, useEffect } from "react"; import AuthCard from "../_components/auth-card"; +import {postResetPasswordSchema} from "@repo/apis/core/accounts/users/reset-password/post/post-reset-password.schema"; +import { usePostResetPassword } from "@repo/apis/core/accounts/users/reset-password/post/use-post-reset-password"; +import type { PostResetPasswordRequest } from "@repo/apis/core/accounts/users/reset-password/post/post-reset-password.types"; + + const Setpasswordpage = () => { const router = useRouter(); - // TODO: Fix this - // const params = useSearchParams(); - // const username = params.get("username"); - - const username = "test@gmail.com"; + const params = useSearchParams(); + const username = params.get("username"); if (!username) router.replace("/auth/forget-password"); - const form = useForm({ - resolver: zodResolver(postForgetPasswordSchema.request), + const form = useForm({ + resolver: zodResolver(postResetPasswordSchema.request), }); const { @@ -41,22 +40,23 @@ const Setpasswordpage = () => { formState: { errors }, } = form; + // biome-ignore lint/correctness/useExhaustiveDependencies: useEffect(() => { setValue("username", username as string); - }, []); + }, [username ]); - const mutation = UsePostForgetPassword({ + const mutation = usePostResetPassword({ onSuccess: (res) => { toast.info(res.data.message); - router.push(`/auth/login`); + router.push("/auth/login"); }, onError: (err) => { - toast.error(err.response?.data.message || "Something went wrong"); + toast.error(err.response?.data.message ?? "Something went wrong"); }, }); - const handleSubmitForm = (data: PostForgetPasswordRequest) => { + const handleSubmitForm = (data: PostResetPasswordRequest) => { mutation.mutate(data); }; @@ -104,33 +104,31 @@ const Setpasswordpage = () => {
{/* input */} -
- - - {/* button reset */} -
- -
+ + + {/* button reset */} +
+
diff --git a/apps/core/app/auth/signup/otp/_components/signup-otp-form.tsx b/apps/core/app/auth/signup/otp/_components/signup-otp-form.tsx index c18aa1fb..1a6b09bd 100644 --- a/apps/core/app/auth/signup/otp/_components/signup-otp-form.tsx +++ b/apps/core/app/auth/signup/otp/_components/signup-otp-form.tsx @@ -10,23 +10,24 @@ import { REGEXP_ONLY_DIGITS_AND_CHARS } from "input-otp"; // import icons import { zodResolver } from "@hookform/resolvers/zod"; -import { postRegisterCompleteSchema } from "@repo/apis/core/accounts/register/complete/post/post-register-complete.schema"; -import type { PostRegisterCompleteRequest } from "@repo/apis/core/accounts/register/complete/post/post-register-complete.types"; -import { UsePostRegisterComplete } from "@repo/apis/core/accounts/register/complete/post/use-post-register-complete"; import { Countdown } from "@repo/ui/components/countdown"; import { useRouter } from "next/navigation"; -import { useEffect } from "react"; import { useForm } from "react-hook-form"; import { toast } from "sonner"; +import { usePostVerifyOtp } from "@repo/apis/core/accounts/users/verify_otp/post/use-post-verify-otp"; +import { postVerifyOtpSchema } from "@repo/apis/core/accounts/users/verify_otp/post/post-verify-otp.schema"; +import type { PostVerifyOtpRequest } from "@repo/apis/core/accounts/users/verify_otp/post/post-verify-otp.types"; +import { setAuthTokens } from "@repo/apis/utils/cookies"; + export interface SignupOtpFormProps { - email: string; + username: string | undefined; } export const SignupOtpForm = (props: SignupOtpFormProps) => { - const { email } = props; + const { username } = props; - const form = useForm({ - resolver: zodResolver(postRegisterCompleteSchema.request), + const form = useForm({ + resolver: zodResolver(postVerifyOtpSchema.request), }); const { @@ -37,25 +38,23 @@ export const SignupOtpForm = (props: SignupOtpFormProps) => { formState: { errors }, } = form; - useEffect(() => { - if (email) setValue("email", email); - }, [email]); - const router = useRouter(); - const muutation = UsePostRegisterComplete({ + const mutation = usePostVerifyOtp({ onSuccess: (res) => { - toast.info(res.data.message); - router.push("/auth/login"); + toast.success("Registered successfully, Welcome to Pixel Genius!"); + setAuthTokens(res.data.data.token); + router.push("/"); }, onError: (err) => { - toast.error(err.response?.data.message || "Something went wrong"); + toast.error(err.response?.data.message ?? "Something went wrong"); }, }); - const handleSubmitForm = (data: PostRegisterCompleteRequest) => { - muutation.mutate(data); + const handleSubmitForm = (data: PostVerifyOtpRequest) => { + if (username) mutation.mutate({ ...data, username }); + else toast.error("username is required"); }; const otpRegister = register("otp"); @@ -96,8 +95,8 @@ export const SignupOtpForm = (props: SignupOtpFormProps) => {
diff --git a/apps/core/app/auth/signup/otp/page.tsx b/apps/core/app/auth/signup/otp/page.tsx index a8856f72..07d1d91c 100644 --- a/apps/core/app/auth/signup/otp/page.tsx +++ b/apps/core/app/auth/signup/otp/page.tsx @@ -3,14 +3,16 @@ import AuthCard from "../../_components/auth-card"; import { SignupOtpForm } from "./_components/signup-otp-form"; import { redirect } from "next/navigation"; -type SearchParams = { otp: string | string[] | undefined }; +type SearchParams = { + username: string | string[] | undefined; + email: string | string[] | undefined; +}; const SignupOtpPage = ({ searchParams }: { searchParams: SearchParams }) => { - const email = Array.isArray(searchParams.otp) - ? searchParams.otp[0] - : searchParams.otp; - - if (!email) { + const username = Array.isArray(searchParams.username) + ? searchParams?.username[0] + : searchParams.username; + if (!searchParams.email) { redirect("/auth/signup"); } @@ -22,7 +24,7 @@ const SignupOtpPage = ({ searchParams }: { searchParams: SearchParams }) => {

We've sent the code to{" "} - {email} + {searchParams.email}

check your email

@@ -30,7 +32,7 @@ const SignupOtpPage = ({ searchParams }: { searchParams: SearchParams }) => {
{/* Form */} - + ); }; diff --git a/apps/core/app/auth/signup/page.tsx b/apps/core/app/auth/signup/page.tsx index eba0af4a..d3195fba 100644 --- a/apps/core/app/auth/signup/page.tsx +++ b/apps/core/app/auth/signup/page.tsx @@ -1,20 +1,20 @@ "use client"; import { zodResolver } from "@hookform/resolvers/zod"; -import { postRegisterSchema } from "@repo/apis/core/accounts/register/post/post-register.schema"; -import { PostRegisterRequest } from "@repo/apis/core/accounts/register/post/post-register.types"; import { Button } from "@repo/ui/components/button"; import { Input } from "@repo/ui/components/input"; // import icons -import { UsePostRegister } from "@repo/apis/core/accounts/register/post/use-post-register"; -import { useQueryParams } from "@repo/ui/hooks/use-query-params"; -import Link from "next/link"; import { useRouter } from "next/navigation"; -import { Suspense } from "react"; import { useForm } from "react-hook-form"; import { toast } from "sonner"; import AuthCard from "../_components/auth-card"; +import { useQueryParams } from "@repo/ui/hooks/use-query-params"; +import { Suspense } from "react"; +import Link from "next/link"; +import type { PostRegisterRequest } from "@repo/apis/core/accounts/users/register/post/post-register.types"; +import { postRegisterSchema } from "@repo/apis/core/accounts/users/register/post/post-register.schema"; +import { usePostRegister } from "@repo/apis/core/accounts/users/register/post/use-post-register"; const SignUpPageComponent = () => { const router = useRouter(); @@ -30,22 +30,24 @@ const SignUpPageComponent = () => { const { createQueryStringFromObject } = useQueryParams(); - const mutation = UsePostRegister({ + const mutation = usePostRegister({ onSuccess: (data, context) => { - console.log("200: data", data); - - router.push( - "/auth/signup/otp" + - "?" + - createQueryStringFromObject({ email: context.email }), - ); - + const usernameQuery = createQueryStringFromObject({ + username: context.username ?? "", + }); + const emailQuery = createQueryStringFromObject({ + email: context.email ?? "", + }); + + router.push(`/auth/signup/otp?${usernameQuery}&${emailQuery}`); toast.success("Send OTP"); }, + onError: (err) => { + toast.error(err.response?.data.message ?? "Something went wrong"); + }, }); const onSubmit = (data: PostRegisterRequest) => { - console.log("Sign Up Data:", data); mutation.mutate(data); }; @@ -92,8 +94,8 @@ const SignUpPageComponent = () => { type="password" label="Confirm Password" placeholder="********" - {...register("confirmPassword")} - error={errors.confirmPassword?.message} + {...register("confirm_password")} + error={errors.password?.message} /> {/* Submit Button */} @@ -114,12 +116,17 @@ const SignUpPageComponent = () => {

OR

*/} +
+
+

OR

+
+
{/* Social Login Buttons */} {/*
- )), - )} -
- ))} -
-
- - {/* Input */} - + + {/* Input */} +
Foundation Input
diff --git a/apps/core/app/layout.tsx b/apps/core/app/layout.tsx index 12d44095..d6619102 100644 --- a/apps/core/app/layout.tsx +++ b/apps/core/app/layout.tsx @@ -25,12 +25,12 @@ export default function RootLayout({ {children} - + diff --git a/apps/storybook/.eslintrc.js b/apps/storybook/.eslintrc.js deleted file mode 100644 index 1b55f131..00000000 --- a/apps/storybook/.eslintrc.js +++ /dev/null @@ -1,22 +0,0 @@ -module.exports = { - root: true, - extends: [ - "@shared/eslint-config", - "eslint:recommended", - "plugin:@typescript-eslint/recommended", - "plugin:react-hooks/recommended", - "plugin:storybook/recommended", - ], - plugins: ["react-refresh"], - rules: { - "react-refresh/only-export-components": "warn", - "tailwindcss/no-custom-classname": "off", - "tailwindcss/classnames-order": "off", - }, - settings: { - tailwindcss: { - callees: ["cn", "cva"], - config: "tailwind.config.ts", - }, - }, -} diff --git a/apps/storybook/.gitignore b/apps/storybook/.gitignore deleted file mode 100644 index 395f879f..00000000 --- a/apps/storybook/.gitignore +++ /dev/null @@ -1,25 +0,0 @@ -# Logs -logs -*.log -npm-debug.log* -yarn-debug.log* -yarn-error.log* -pnpm-debug.log* -lerna-debug.log* - -node_modules -dist -dist-ssr -*.local - -# Editor directories and files -.vscode/* -!.vscode/extensions.json -.idea -.DS_Store -*.suo -*.ntvs* -*.njsproj -*.sln -*.sw? -storybook-static \ No newline at end of file diff --git a/apps/storybook/.storybook/main.ts b/apps/storybook/.storybook/main.ts deleted file mode 100644 index aff14473..00000000 --- a/apps/storybook/.storybook/main.ts +++ /dev/null @@ -1,19 +0,0 @@ -import type { StorybookConfig } from "@storybook/nextjs"; - -const config: StorybookConfig = { - stories: ["../src/**/*.mdx", "../src/**/*.stories.@(js|jsx|mjs|ts|tsx)"], - addons: [ - "@storybook/addon-onboarding", - "@storybook/addon-essentials", - "@chromatic-com/storybook", - "@storybook/addon-interactions", - "storybook-addon-themes", - ], - framework: { - name: "@storybook/nextjs", - options: {}, - }, - staticDirs: ["../public"], -}; - -export default config; diff --git a/apps/storybook/.storybook/preview-head.html b/apps/storybook/.storybook/preview-head.html deleted file mode 100644 index 40f0df30..00000000 --- a/apps/storybook/.storybook/preview-head.html +++ /dev/null @@ -1,3 +0,0 @@ - diff --git a/apps/storybook/.storybook/preview.ts b/apps/storybook/.storybook/preview.ts deleted file mode 100644 index 7794cfe6..00000000 --- a/apps/storybook/.storybook/preview.ts +++ /dev/null @@ -1,25 +0,0 @@ -import type { Preview } from "@storybook/react"; - -import "./style.css"; -import "@repo/ui/globals.scss"; - -const preview: Preview = { - parameters: { - themes: { - default: "dark", // Default theme - list: [ - { name: "light", class: "light", color: "#ffffff", default: true }, - { name: "dark", class: "dark", color: "#333333" }, - ], - }, - actions: { argTypesRegex: "^on[A-Z].*" }, - controls: { - matchers: { - color: /(background|color)$/i, - date: /Date$/, - }, - }, - }, -}; - -export default preview; diff --git a/apps/storybook/.storybook/style.css b/apps/storybook/.storybook/style.css deleted file mode 100644 index 34855760..00000000 --- a/apps/storybook/.storybook/style.css +++ /dev/null @@ -1,14 +0,0 @@ -:root { - --background-color: #ffffff; - --text-color: #000000; -} - -.dark { - --background-color: #121212; - --text-color: #ffffff; -} - -body { - background-color: var(--background-color); - color: var(--text-color); -} diff --git a/apps/storybook/index.html b/apps/storybook/index.html deleted file mode 100644 index e0d1c840..00000000 --- a/apps/storybook/index.html +++ /dev/null @@ -1,13 +0,0 @@ - - - - - - - Vite + React + TS - - -
- - - diff --git a/apps/storybook/package.json b/apps/storybook/package.json deleted file mode 100644 index d66b7f64..00000000 --- a/apps/storybook/package.json +++ /dev/null @@ -1,47 +0,0 @@ -{ - "name": "sb", - "private": true, - "version": "0.0.0", - "scripts": { - "dev": "storybook dev -p 6006 --no-open", - "build": "storybook build", - "lint": "eslint src --ext ts,tsx --report-unused-disable-directives --max-warnings 0", - "preview": "vite preview", - "build-storybook": "storybook build" - }, - "dependencies": { - "@radix-ui/react-icons": "^1.3.0", - "@repo/icons": "*", - "@repo/ui": "*", - "react": "^18.3.1", - "react-dom": "^18.3.1", - "react-hook-form": "^7.51.5", - "storybook-addon-themes": "^6.1.0" - }, - "devDependencies": { - "@repo/eslint-config": "*", - "@repo/typescript-config": "*", - "@storybook/addon-essentials": "^8.1.2", - "@storybook/addon-interactions": "^8.1.2", - "@storybook/addon-links": "^8.1.2", - "@storybook/blocks": "^8.1.2", - "@storybook/cli": "^8.1.2", - "@storybook/nextjs": "^8.5.3", - "@storybook/react": "^8.1.2", - "@storybook/react-vite": "^8.1.2", - "@types/react": "^18.3.2", - "@types/react-dom": "^18.3.0", - "@vitejs/plugin-react-swc": "^3.6.0", - "autoprefixer": "^10.4.19", - "eslint": "^8.57.0", - "eslint-plugin-react-hooks": "^4.6.2", - "eslint-plugin-react-refresh": "^0.4.7", - "eslint-plugin-storybook": "^0.8.0", - "postcss": "^8.4.38", - "prop-types": "^15.8.1", - "storybook": "^8.1.2", - "tailwindcss": "^3.4.3", - "typescript": "5.4.5", - "vite": "^5.2.11" - } -} diff --git a/apps/storybook/postcss.config.js b/apps/storybook/postcss.config.js deleted file mode 100644 index 039248f7..00000000 --- a/apps/storybook/postcss.config.js +++ /dev/null @@ -1 +0,0 @@ -export { default } from "@repo/ui/postcss.config"; diff --git a/apps/storybook/public/fonts/CalSans-SemiBold.ttf b/apps/storybook/public/fonts/CalSans-SemiBold.ttf deleted file mode 100644 index 4a2950a0..00000000 Binary files a/apps/storybook/public/fonts/CalSans-SemiBold.ttf and /dev/null differ diff --git a/apps/storybook/public/fonts/CalSans-SemiBold.woff b/apps/storybook/public/fonts/CalSans-SemiBold.woff deleted file mode 100644 index da459913..00000000 Binary files a/apps/storybook/public/fonts/CalSans-SemiBold.woff and /dev/null differ diff --git a/apps/storybook/public/fonts/CalSans-SemiBold.woff2 b/apps/storybook/public/fonts/CalSans-SemiBold.woff2 deleted file mode 100644 index 36d71b70..00000000 Binary files a/apps/storybook/public/fonts/CalSans-SemiBold.woff2 and /dev/null differ diff --git a/apps/storybook/public/fonts/Inter-Bold.ttf b/apps/storybook/public/fonts/Inter-Bold.ttf deleted file mode 100644 index 8e82c70d..00000000 Binary files a/apps/storybook/public/fonts/Inter-Bold.ttf and /dev/null differ diff --git a/apps/storybook/public/fonts/Inter-Regular.ttf b/apps/storybook/public/fonts/Inter-Regular.ttf deleted file mode 100644 index 8d4eebf2..00000000 Binary files a/apps/storybook/public/fonts/Inter-Regular.ttf and /dev/null differ diff --git a/apps/storybook/public/vite.svg b/apps/storybook/public/vite.svg deleted file mode 100644 index e7b8dfb1..00000000 --- a/apps/storybook/public/vite.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/apps/storybook/src/assets/react.svg b/apps/storybook/src/assets/react.svg deleted file mode 100644 index 6c87de9b..00000000 --- a/apps/storybook/src/assets/react.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/apps/storybook/src/data/invoices.ts b/apps/storybook/src/data/invoices.ts deleted file mode 100644 index 1a4ae4fb..00000000 --- a/apps/storybook/src/data/invoices.ts +++ /dev/null @@ -1,20 +0,0 @@ -export const invoices = [ - { - invoice: "INV001", - paymentStatus: "Paid", - totalAmount: "$250.00", - paymentMethod: "Credit Card", - }, - { - invoice: "INV002", - paymentStatus: "Pending", - totalAmount: "$150.00", - paymentMethod: "PayPal", - }, - { - invoice: "INV003", - paymentStatus: "Unpaid", - totalAmount: "$350.00", - paymentMethod: "Bank Transfer", - }, -] diff --git a/apps/storybook/src/data/payments.ts b/apps/storybook/src/data/payments.ts deleted file mode 100644 index ba800a05..00000000 --- a/apps/storybook/src/data/payments.ts +++ /dev/null @@ -1,39 +0,0 @@ -export type Payment = { - id: string - amount: number - status: "pending" | "processing" | "success" | "failed" - email: string -} - -export const paymentsData: Payment[] = [ - { - id: "m5gr84i9", - amount: 316, - status: "success", - email: "ken99@yahoo.com", - }, - { - id: "3u1reuv4", - amount: 242, - status: "success", - email: "Abe45@gmail.com", - }, - { - id: "derv1ws0", - amount: 837, - status: "processing", - email: "Monserrat44@gmail.com", - }, - { - id: "5kma53ae", - amount: 874, - status: "success", - email: "Silas22@gmail.com", - }, - { - id: "bhqecj4p", - amount: 721, - status: "failed", - email: "carmella@hotmail.com", - }, -] diff --git a/apps/storybook/src/stories/Button.stories.tsx b/apps/storybook/src/stories/Button.stories.tsx deleted file mode 100644 index 00193507..00000000 --- a/apps/storybook/src/stories/Button.stories.tsx +++ /dev/null @@ -1,221 +0,0 @@ -import type { Meta, StoryObj } from "@storybook/react"; -import { Button } from "@repo/ui/components/button"; -import Chevrondownicon from "@repo/icons/chevron-down"; -import Hearticon from "@repo/icons/heart"; -import Typography from "@repo/ui/components/typography"; - -type ButtonGroup = { - label: string; - variants: Array<"primary" | "secondary" | "tertiary">; - sizes: Array<"sm" | "md" | "lg">; - isLoading: boolean; - disabled: boolean; - state?: "success" | "warning" | "error"; -}; - -const buttonData: ButtonGroup[] = [ - { - label: "Default", - variants: ["primary", "secondary", "tertiary"], - sizes: ["sm", "md", "lg"], - isLoading: false, - disabled: false, - }, - { - label: "Loading", - variants: ["primary", "secondary", "tertiary"], - sizes: ["sm", "md", "lg"], - isLoading: true, - disabled: false, - }, - { - label: "Disabled", - variants: ["primary", "secondary", "tertiary"], - sizes: ["sm", "md", "lg"], - isLoading: false, - disabled: true, - }, - { - label: "Success", - variants: ["primary", "secondary", "tertiary"], - sizes: ["sm", "md", "lg"], - isLoading: false, - disabled: false, - state: "success", - }, - { - label: "Warning", - variants: ["primary", "secondary", "tertiary"], - sizes: ["sm", "md", "lg"], - isLoading: false, - disabled: false, - state: "warning", - }, - { - label: "Error", - variants: ["primary", "secondary", "tertiary"], - sizes: ["sm", "md", "lg"], - isLoading: false, - disabled: false, - state: "error", - }, -]; - -const meta: Meta = { - title: "Components/Button", - component: Button, - tags: ["autodocs"], - argTypes: { - variant: { - control: "radio", - options: ["primary", "secondary", "tertiary"], - }, - size: { control: "radio", options: ["sm", "md", "lg"] }, - isLoading: { control: "boolean" }, - disabled: { control: "boolean" }, - state: { - control: "radio", - options: [undefined, "success", "warning", "error"], - }, - }, -}; - -export default meta; -type Story = StoryObj; - -// ✅ **Individual Button Stories** -export const Primary: Story = { - args: { - children: "Primary Button", - variant: "primary", - }, -}; - -export const Secondary: Story = { - args: { - children: "Secondary Button", - variant: "secondary", - }, -}; - -export const Tertiary: Story = { - args: { - children: "Tertiary Button", - variant: "tertiary", - }, -}; - -export const Sizes: Story = { - args: { - children: "Button Size", - variant: "primary", - size: "md", - }, - parameters: { - docs: { - description: { - story: "Demonstrates different button sizes.", - }, - }, - }, - render: (args) => ( -
- - - -
- ), -}; - -export const WithIcons: Story = { - args: { - children: "Button with Icons", - variant: "primary", - iconLeft: , - iconRight: , - }, -}; - -export const LoadingState: Story = { - args: { - children: "Loading...", - variant: "primary", - isLoading: true, - }, -}; - -export const DisabledState: Story = { - args: { - children: "Disabled Button", - variant: "primary", - disabled: true, - }, -}; - -export const SuccessState: Story = { - args: { - children: "Success", - variant: "primary", - state: "success", - iconLeft: , - }, -}; - -export const WarningState: Story = { - args: { - children: "Warning", - variant: "primary", - state: "warning", - iconLeft: , - }, -}; - -export const ErrorState: Story = { - args: { - children: "Error", - variant: "primary", - state: "error", - iconLeft: , - }, -}; - -export const AllButtons: Story = { - render: () => ( -
- {buttonData.map((group, groupIndex) => ( -
- - {group.label} - - {group.variants.map((variant) => - group.sizes.map((size) => ( - - )), - )} -
- ))} -
- ), -}; diff --git a/apps/storybook/src/vite-env.d.ts b/apps/storybook/src/vite-env.d.ts deleted file mode 100644 index 11f02fe2..00000000 --- a/apps/storybook/src/vite-env.d.ts +++ /dev/null @@ -1 +0,0 @@ -/// diff --git a/apps/storybook/tailwind.config.ts b/apps/storybook/tailwind.config.ts deleted file mode 100644 index e85996be..00000000 --- a/apps/storybook/tailwind.config.ts +++ /dev/null @@ -1 +0,0 @@ -export * from "@repo/ui/tailwind.config"; diff --git a/apps/storybook/tsconfig.json b/apps/storybook/tsconfig.json deleted file mode 100644 index 9feb1999..00000000 --- a/apps/storybook/tsconfig.json +++ /dev/null @@ -1,11 +0,0 @@ -{ - "extends": "@repo/typescript-config/nextjs.json", - "compilerOptions": { - "strictNullChecks": true, - "declaration": false, - "declarationMap": false, - "plugins": [] - }, - "include": ["src", "**/*.ts", "**/*.tsx", "vite.config.ts"], - "exclude": ["node_modules"] -} diff --git a/apps/storybook/vite.config.ts b/apps/storybook/vite.config.ts deleted file mode 100644 index 17aa4d49..00000000 --- a/apps/storybook/vite.config.ts +++ /dev/null @@ -1,7 +0,0 @@ -import react from "@vitejs/plugin-react-swc"; -import { defineConfig } from "vite"; - -// https://vitejs.dev/config/ -export default defineConfig({ - plugins: [react()], -}); diff --git a/bun.lockb b/bun.lockb index d4cb81ea..5ccc21f3 100755 Binary files a/bun.lockb and b/bun.lockb differ diff --git a/packages/apis/package.json b/packages/apis/package.json index 77456e13..5851587c 100644 --- a/packages/apis/package.json +++ b/packages/apis/package.json @@ -33,7 +33,7 @@ "@types/js-cookie": "^3.0.6", "axios": "^1.7.7", "axios-mock-adapter": "^2.0.0", - "js-cookie": "3.0.5", + "js-cookie": "^3.0.5", "zod": "^3.23.8" }, "exports": { diff --git a/packages/apis/src/schema/api-response-schema.ts b/packages/apis/src/schema/api-response-schema.ts index 95a91e22..71c16675 100644 --- a/packages/apis/src/schema/api-response-schema.ts +++ b/packages/apis/src/schema/api-response-schema.ts @@ -1,9 +1,19 @@ import z from "zod"; export const apiResponseSchema = z.object({ - data: z.union([z.array(z.any()), z.record(z.string(), z.any()), z.null()]), - message: z.union([z.string(), z.null()]), - error: z.union([z.record(z.string(), z.any()), z.array(z.unknown()), z.null()]), + data: z.union([ + z.array(z.any()), + z.record(z.string(), z.any()), + z.null(), + z.undefined(), + ]), + message: z.union([z.string(), z.null(), z.undefined()]), + error: z.union([ + z.record(z.string(), z.any()), + z.array(z.unknown()), + z.null(), + z.undefined(), + ]), meta: z.union([ z .object({ @@ -12,5 +22,6 @@ export const apiResponseSchema = z.object({ }) .optional(), z.null(), + z.undefined(), ]), }); diff --git a/packages/apis/src/services/core/accounts/register/complete/post/post-register-complete.schema.ts b/packages/apis/src/services/core/accounts/register/complete/post/post-register-complete.schema.ts deleted file mode 100644 index 70147804..00000000 --- a/packages/apis/src/services/core/accounts/register/complete/post/post-register-complete.schema.ts +++ /dev/null @@ -1,22 +0,0 @@ -import { z } from "zod"; - -// request -export const postRegisterCompleteRequestSchemaTransformed = z - .object({ - email: z.string(), - otp:z.string(), - }) - .transform((data) => data); - -// response -export const postRegisterCompleteResponseSchemaTransofrmed = z - .object({ - message: z.string().optional(), - otp : z.array(z.string()).optional(), - }) - .transform((data) => data); - -export const postRegisterCompleteSchema = { - response: postRegisterCompleteResponseSchemaTransofrmed, - request: postRegisterCompleteRequestSchemaTransformed, -}; diff --git a/packages/apis/src/services/core/accounts/register/complete/post/post-register-complete.ts b/packages/apis/src/services/core/accounts/register/complete/post/post-register-complete.ts deleted file mode 100644 index 45c38475..00000000 --- a/packages/apis/src/services/core/accounts/register/complete/post/post-register-complete.ts +++ /dev/null @@ -1,31 +0,0 @@ -import { coreApi } from "#instance/core-api"; -import { ApiResponse } from "@repo/apis/types/api.types"; -import { requestHandler } from "@repo/apis/utils/request-handler"; -import path from "path"; -import { postRegisterCompleteSchema as schema } from "./post-register-complete.schema"; -import { - PostRegisterCompleteRequest, - PostRegisterCompleteResponseTransformed, -} from "./post-register-complete.types"; - -export const postRegisterCompleteURL = () => path.join("/accounts/register/complete/"); - -export const postRegisterComplete = async ( - props?: PostRegisterCompleteRequest, -): Promise> => { - const payloadParsed = schema.request.parse(props); - - const URL = postRegisterCompleteURL(); - - const response = await requestHandler( - () => coreApi.post(URL, payloadParsed), - schema.response._def.schema, - { - isMock: true, - } - ); - - const dataParsed = schema.response.parse(response.data); - - return { ...response, data: dataParsed }; -}; diff --git a/packages/apis/src/services/core/accounts/register/complete/post/post-register-complete.types.ts b/packages/apis/src/services/core/accounts/register/complete/post/post-register-complete.types.ts deleted file mode 100644 index 86f1eff3..00000000 --- a/packages/apis/src/services/core/accounts/register/complete/post/post-register-complete.types.ts +++ /dev/null @@ -1,16 +0,0 @@ -import { z } from "zod"; -import { postRegisterCompleteSchema } from "./post-register-complete.schema"; - -// Response -export type PostRegisterCompleteRequest = z.input; - -export type PostRegisterCompleteRequestTransofrmed = z.infer< - typeof postRegisterCompleteSchema.request ->; - -// Request -export type PostRegisterCompleteResponse = z.input; - -export type PostRegisterCompleteResponseTransformed = z.infer< - typeof postRegisterCompleteSchema.response ->; diff --git a/packages/apis/src/services/core/accounts/register/complete/post/use-post-register-complete.ts b/packages/apis/src/services/core/accounts/register/complete/post/use-post-register-complete.ts deleted file mode 100644 index 25e82e13..00000000 --- a/packages/apis/src/services/core/accounts/register/complete/post/use-post-register-complete.ts +++ /dev/null @@ -1,34 +0,0 @@ -import { - ApiError, - ApiResponse, - UseMutationProps, -} from "@repo/apis/types/api.types"; -import { useMutation } from "@tanstack/react-query"; -import { postRegisterComplete } from "./post-register-complete"; -import {} from "./post-register-complete.schema"; -import { - PostRegisterCompleteRequest, - PostRegisterCompleteResponseTransformed, -} from "./post-register-complete.types"; - -export type UsePostRegisterCompleteProps = UseMutationProps< - ApiResponse, - ApiError, - PostRegisterCompleteRequest ->; - -export const postRegisterCompleteQueryKey = () => ["postRegisterComplete"]; - -export const UsePostRegisterComplete = (props?: UsePostRegisterCompleteProps) => { - const mutation = useMutation< - ApiResponse, - ApiError, - PostRegisterCompleteRequest - >({ - mutationKey: postRegisterCompleteQueryKey(), - mutationFn: (data) => postRegisterComplete(data), - ...props, - }); - - return mutation; -}; diff --git a/packages/apis/src/services/core/accounts/register/post/post-register.schema.ts b/packages/apis/src/services/core/accounts/register/post/post-register.schema.ts deleted file mode 100644 index 8d94455a..00000000 --- a/packages/apis/src/services/core/accounts/register/post/post-register.schema.ts +++ /dev/null @@ -1,40 +0,0 @@ -import { z } from "zod"; - -// Response - -// Schema when only OTP is provided, requiring only email -const otpSchema = z.object({ - email: z.string().email("Invalid email format"), - otp: z.string(), - username: z.string().optional(), - password: z.string().optional(), - confirmPassword: z.string().optional(), -}); - -// Full registration schema without OTP -const fullRegistrationSchema = z.object({ - username: z.string().min(3, "Username must be at least 3 characters long"), - email: z.string().email("Invalid email format"), - password: z.string().min(8, "Password must be at least 8 characters long"), - confirmPassword: z - .string() - .min(8, "Confirm Password must be at least 8 characters long"), -}).refine((data) => data.password === data.confirmPassword, { - message: "Passwords do not match", - path: ["confirmPassword"], -}); - -// Combine the schemas conditionally -export const postRegisterRequestSchemaTransformed = z.union([otpSchema, fullRegistrationSchema]); - -// Request -export const postRegisterResponseSchemaTransofrmed = z - .object({ - keyBody: z.string(), - }) - .transform((data) => data); - -export const postRegisterSchema = { - response: postRegisterResponseSchemaTransofrmed, - request: postRegisterRequestSchemaTransformed, -}; diff --git a/packages/apis/src/services/core/accounts/users/forgot-password/post/post-forget-password.schema.ts b/packages/apis/src/services/core/accounts/users/forgot-password/post/post-forget-password.schema.ts new file mode 100644 index 00000000..469f6b91 --- /dev/null +++ b/packages/apis/src/services/core/accounts/users/forgot-password/post/post-forget-password.schema.ts @@ -0,0 +1,18 @@ +import { z } from "zod"; + +// Response +export const postForgetPasswordRequestSchemaTransformed = z.object({ + username: z.string().min(3, "Username must be at least 3 characters long"), +}); + +// Request +export const postForgetPasswordResponseSchemaTransofrmed = z + .object({ + message: z.string(), + }) + .transform((data) => data); + +export const postForgetPasswordSchema = { + response: postForgetPasswordResponseSchemaTransofrmed, + request: postForgetPasswordRequestSchemaTransformed, +}; diff --git a/packages/apis/src/services/core/forgot-password/post/post-forget-password.ts b/packages/apis/src/services/core/accounts/users/forgot-password/post/post-forget-password.ts similarity index 81% rename from packages/apis/src/services/core/forgot-password/post/post-forget-password.ts rename to packages/apis/src/services/core/accounts/users/forgot-password/post/post-forget-password.ts index 2625fa2e..c50efb6f 100644 --- a/packages/apis/src/services/core/forgot-password/post/post-forget-password.ts +++ b/packages/apis/src/services/core/accounts/users/forgot-password/post/post-forget-password.ts @@ -1,14 +1,14 @@ import { coreApi } from "#instance/core-api"; -import { ApiResponse } from "@repo/apis/types/api.types"; +import type { ApiResponse } from "@repo/apis/types/api.types"; import { requestHandler } from "@repo/apis/utils/request-handler"; import path from "path"; import { postForgetPasswordSchema as schema } from "./post-forget-password.schema"; -import { +import type { PostForgetPasswordRequest, PostForgetPasswordResponseTransformed, } from "./post-forget-password.types"; -export const postForgetPasswordURL = () => path.join("/api/forgot-password"); +export const postForgetPasswordURL = () => path.join("/accounts/users/forgot-password/"); export const postForgetPassword = async ( props?: PostForgetPasswordRequest, @@ -20,9 +20,7 @@ export const postForgetPassword = async ( const response = await requestHandler( () => coreApi.post(URL, payloadParsed), schema.response._def.schema, - { - isMock: true, - }, + ); const dataParsed = schema.response.parse(response.data); diff --git a/packages/apis/src/services/core/forgot-password/post/post-forget-password.types.ts b/packages/apis/src/services/core/accounts/users/forgot-password/post/post-forget-password.types.ts similarity index 79% rename from packages/apis/src/services/core/forgot-password/post/post-forget-password.types.ts rename to packages/apis/src/services/core/accounts/users/forgot-password/post/post-forget-password.types.ts index 3d07f3ac..c7c5cdb8 100644 --- a/packages/apis/src/services/core/forgot-password/post/post-forget-password.types.ts +++ b/packages/apis/src/services/core/accounts/users/forgot-password/post/post-forget-password.types.ts @@ -1,5 +1,5 @@ -import { z } from "zod"; -import { postForgetPasswordSchema } from "./post-forget-password.schema"; +import type { z } from "zod"; +import type { postForgetPasswordSchema } from "./post-forget-password.schema"; // Response export type PostForgetPasswordRequest = z.input; diff --git a/packages/apis/src/services/core/forgot-password/post/use-post-forget-password.ts b/packages/apis/src/services/core/accounts/users/forgot-password/post/use-post-forget-password.ts similarity index 92% rename from packages/apis/src/services/core/forgot-password/post/use-post-forget-password.ts rename to packages/apis/src/services/core/accounts/users/forgot-password/post/use-post-forget-password.ts index d4e100a5..d1626efc 100644 --- a/packages/apis/src/services/core/forgot-password/post/use-post-forget-password.ts +++ b/packages/apis/src/services/core/accounts/users/forgot-password/post/use-post-forget-password.ts @@ -1,4 +1,4 @@ -import { +import type { ApiError, ApiResponse, UseMutationProps, @@ -6,7 +6,7 @@ import { import { useMutation } from "@tanstack/react-query"; import { postForgetPassword } from "./post-forget-password"; import {} from "./post-forget-password.schema"; -import { +import type { PostForgetPasswordRequest, PostForgetPasswordResponseTransformed, } from "./post-forget-password.types"; @@ -23,7 +23,7 @@ export const UsePostForgetPassword = (props?: UsePostForgetPasswordProps) => { const mutation = useMutation< ApiResponse, ApiError, - Omit + PostForgetPasswordRequest >({ mutationKey: postForgetPasswordQueryKey(), mutationFn: (data) => postForgetPassword(data), diff --git a/packages/apis/src/services/core/accounts/users/register/post/post-register.schema.ts b/packages/apis/src/services/core/accounts/users/register/post/post-register.schema.ts new file mode 100644 index 00000000..9f50f227 --- /dev/null +++ b/packages/apis/src/services/core/accounts/users/register/post/post-register.schema.ts @@ -0,0 +1,50 @@ +import { apiResponseSchema } from "#schema/api-response-schema"; +import { z } from "zod"; + +// Response + +// Schema when only OTP is provided, requiring only email +const otpSchema = z.object({ + email: z.string().email("Invalid email format"), + username: z.string().optional(), + password: z.string().optional(), + confirm_password: z.string().optional(), +}); + +// Full registration schema without OTP +const fullRegistrationSchema = z + .object({ + username: z.string().min(3, "Username must be at least 3 characters long"), + email: z.string().email("Invalid email format"), + password: z.string().min(8, "Password must be at least 8 characters long"), + confirmPassword: z + .string() + .min(8, "Confirm Password must be at least 8 characters long"), + }) + .refine((data) => data.password === data.confirmPassword, { + message: "Passwords do not match", + path: ["confirmPassword"], + }); + +// Combine the schemas conditionally +export const postRegisterRequestSchemaTransformed = z.union([ + otpSchema, + fullRegistrationSchema, +]); + +// Response +export const postRegisterResponseSchemaTransofrmed = apiResponseSchema + .extend({ + data: z.object({ + user: z.object({ + username: z.string(), + email: z.string(), + }), + }), + }) + .transform((data) => data); + +export const postRegisterSchema = { + response: postRegisterResponseSchemaTransofrmed, + request: postRegisterRequestSchemaTransformed, +}; diff --git a/packages/apis/src/services/core/accounts/register/post/post-register.ts b/packages/apis/src/services/core/accounts/users/register/post/post-register.ts similarity index 76% rename from packages/apis/src/services/core/accounts/register/post/post-register.ts rename to packages/apis/src/services/core/accounts/users/register/post/post-register.ts index 6590529b..68a38cd5 100644 --- a/packages/apis/src/services/core/accounts/register/post/post-register.ts +++ b/packages/apis/src/services/core/accounts/users/register/post/post-register.ts @@ -1,14 +1,14 @@ -import { coreApi } from "#instance/core-api"; -import { ApiResponse } from "@repo/apis/types/api.types"; +import { coreApi } from "#instance/core-api"; +import type { ApiResponse } from "@repo/apis/types/api.types"; import { requestHandler } from "@repo/apis/utils/request-handler"; import path from "path"; import { postRegisterSchema as schema } from "./post-register.schema"; -import { +import type { PostRegisterRequest, PostRegisterResponseTransformed, } from "./post-register.types"; -export const postRegisterURL = () => path.join("/api/accounts/register"); +export const postRegisterURL = () => path.join("/accounts/users/"); export const postRegister = async ( props?: PostRegisterRequest, @@ -20,12 +20,8 @@ export const postRegister = async ( const response = await requestHandler( () => coreApi.post(URL, payloadParsed), schema.response._def.schema, - { - isMock: true, - } ); const dataParsed = schema.response.parse(response.data); - return { ...response, data: dataParsed }; }; diff --git a/packages/apis/src/services/core/accounts/register/post/post-register.types.ts b/packages/apis/src/services/core/accounts/users/register/post/post-register.types.ts similarity index 79% rename from packages/apis/src/services/core/accounts/register/post/post-register.types.ts rename to packages/apis/src/services/core/accounts/users/register/post/post-register.types.ts index 1460f6b6..7443ab77 100644 --- a/packages/apis/src/services/core/accounts/register/post/post-register.types.ts +++ b/packages/apis/src/services/core/accounts/users/register/post/post-register.types.ts @@ -1,5 +1,5 @@ -import { z } from "zod"; -import { postRegisterSchema } from "./post-register.schema"; +import type { z } from "zod"; +import type { postRegisterSchema } from "./post-register.schema"; // Response export type PostRegisterRequest = z.input; diff --git a/packages/apis/src/services/core/accounts/register/post/use-post-register.ts b/packages/apis/src/services/core/accounts/users/register/post/use-post-register.ts similarity index 85% rename from packages/apis/src/services/core/accounts/register/post/use-post-register.ts rename to packages/apis/src/services/core/accounts/users/register/post/use-post-register.ts index a4f8fabc..85f921b7 100644 --- a/packages/apis/src/services/core/accounts/register/post/use-post-register.ts +++ b/packages/apis/src/services/core/accounts/users/register/post/use-post-register.ts @@ -1,12 +1,11 @@ -import { +import type { ApiError, ApiResponse, UseMutationProps, } from "@repo/apis/types/api.types"; import { useMutation } from "@tanstack/react-query"; import { postRegister } from "./post-register"; -import {} from "./post-register.schema"; -import { +import type { PostRegisterRequest, PostRegisterResponseTransformed, } from "./post-register.types"; @@ -19,7 +18,7 @@ export type UsePostRegisterProps = UseMutationProps< export const postRegisterQueryKey = () => ["postRegister"]; -export const UsePostRegister = (props?: UsePostRegisterProps) => { +export const usePostRegister = (props?: UsePostRegisterProps) => { const mutation = useMutation< ApiResponse, ApiError, diff --git a/packages/apis/src/services/core/accounts/users/reset-password/post/post-reset-password.schema.ts b/packages/apis/src/services/core/accounts/users/reset-password/post/post-reset-password.schema.ts new file mode 100644 index 00000000..08c78504 --- /dev/null +++ b/packages/apis/src/services/core/accounts/users/reset-password/post/post-reset-password.schema.ts @@ -0,0 +1,24 @@ +import { apiResponseSchema } from "#schema/api-response-schema"; +import { z } from "zod"; + +// Request +export const postResetPasswordRequestSchemaTransformed = z + .object({ + new_password: z.string(), + confirm_password: z.string(), + otp: z.string(), + username: z.string(), + }) + .transform((data) => data); + +// Response +export const postResetPasswordResponseSchemaTransofrmed = apiResponseSchema + .extend({ + data: z.null(), + }) + .transform((data) => data); + +export const postResetPasswordSchema = { + response: postResetPasswordResponseSchemaTransofrmed, + request: postResetPasswordRequestSchemaTransformed, +}; diff --git a/packages/apis/src/services/core/accounts/users/reset-password/post/post-reset-password.ts b/packages/apis/src/services/core/accounts/users/reset-password/post/post-reset-password.ts new file mode 100644 index 00000000..fd5ec22d --- /dev/null +++ b/packages/apis/src/services/core/accounts/users/reset-password/post/post-reset-password.ts @@ -0,0 +1,28 @@ +import { coreApi } from "#instance/core-api"; +import type { ApiResponse } from "@repo/apis/types/api.types"; +import { requestHandler } from "@repo/apis/utils/request-handler"; +import path from "path"; +import { postResetPasswordSchema as schema } from "./post-reset-password.schema"; +import type { + PostResetPasswordRequest, + PostResetPasswordResponseTransformed, +} from "./post-reset-password.types"; + +export const postResetPasswordURL = () => path.join("accounts/users/reset-password/"); + +export const postResetPassword = async ( + props?: PostResetPasswordRequest, +): Promise> => { + const payloadParsed = schema.request.parse(props); + + const URL = postResetPasswordURL(); + + const response = await requestHandler( + () => coreApi.post(URL, payloadParsed), + schema.response._def.schema, + ); + + const dataParsed = schema.response.parse(response.data); + + return { ...response, data: dataParsed }; +}; diff --git a/packages/apis/src/services/core/accounts/users/reset-password/post/post-reset-password.types.ts b/packages/apis/src/services/core/accounts/users/reset-password/post/post-reset-password.types.ts new file mode 100644 index 00000000..6c87eb2b --- /dev/null +++ b/packages/apis/src/services/core/accounts/users/reset-password/post/post-reset-password.types.ts @@ -0,0 +1,16 @@ +import type { z } from "zod"; +import type { postResetPasswordSchema } from "./post-reset-password.schema"; + +// Response +export type PostResetPasswordRequest = z.input; + +export type PostResetPasswordRequestTransofrmed = z.infer< + typeof postResetPasswordSchema.request +>; + +// Request +export type PostResetPasswordResponse = z.input; + +export type PostResetPasswordResponseTransformed = z.infer< + typeof postResetPasswordSchema.response +>; diff --git a/packages/apis/src/services/core/accounts/users/reset-password/post/use-post-reset-password.ts b/packages/apis/src/services/core/accounts/users/reset-password/post/use-post-reset-password.ts new file mode 100644 index 00000000..ac83cf95 --- /dev/null +++ b/packages/apis/src/services/core/accounts/users/reset-password/post/use-post-reset-password.ts @@ -0,0 +1,34 @@ +import type { + ApiError, + ApiResponse, + UseMutationProps, +} from "@repo/apis/types/api.types"; +import { useMutation } from "@tanstack/react-query"; +import { postResetPassword } from "./post-reset-password"; +import {} from "./post-reset-password.schema"; +import type { + PostResetPasswordRequest, + PostResetPasswordResponseTransformed, +} from "./post-reset-password.types"; + +export type UsePostResetPasswordProps = UseMutationProps< + ApiResponse, + ApiError, + PostResetPasswordRequest +>; + +export const postResetPasswordQueryKey = () => ["postResetPassword"]; + +export const usePostResetPassword = (props?: UsePostResetPasswordProps) => { + const mutation = useMutation< + ApiResponse, + ApiError, + PostResetPasswordRequest + >({ + mutationKey: postResetPasswordQueryKey(), + mutationFn: (data) => postResetPassword(data), + ...props, + }); + + return mutation; +}; diff --git a/packages/apis/src/services/core/accounts/users/verify_otp/post/post-verify-otp.schema.ts b/packages/apis/src/services/core/accounts/users/verify_otp/post/post-verify-otp.schema.ts new file mode 100644 index 00000000..621d3bf5 --- /dev/null +++ b/packages/apis/src/services/core/accounts/users/verify_otp/post/post-verify-otp.schema.ts @@ -0,0 +1,32 @@ +import { apiResponseSchema } from "#schema/api-response-schema"; +import { z } from "zod"; + +// Request +export const postVerifyOtpRequestSchemaTransformed = z + .object({ + otp: z.string(), + username: z.string(), + }) + .transform((data) => data); + +// Response +export const postVerifyOtpResponseSchemaTransofrmed = apiResponseSchema + .extend({ + data: z.object({ + id: z.number(), + username: z.string(), + email: z.string(), + is_active: z.boolean(), + is_email_verified: z.boolean(), + token: z.object({ + refresh: z.string(), + access: z.string(), + }), + }), + }) + .transform((data) => data); + +export const postVerifyOtpSchema = { + response: postVerifyOtpResponseSchemaTransofrmed, + request: postVerifyOtpRequestSchemaTransformed, +}; diff --git a/packages/apis/src/services/core/accounts/users/verify_otp/post/post-verify-otp.ts b/packages/apis/src/services/core/accounts/users/verify_otp/post/post-verify-otp.ts new file mode 100644 index 00000000..26fc6886 --- /dev/null +++ b/packages/apis/src/services/core/accounts/users/verify_otp/post/post-verify-otp.ts @@ -0,0 +1,26 @@ +import { coreApi } from "#instance/core-api"; +import type { ApiResponse } from "@repo/apis/types/api.types"; +import { requestHandler } from "@repo/apis/utils/request-handler"; +import path from "path"; +import { postVerifyOtpSchema as schema } from "./post-verify-otp.schema"; +import type { + PostVerifyOtpRequest, + PostVerifyOtpResponseTransformed, +} from "./post-verify-otp.types"; + +export const postVerifyOtpURL = () => path.join("accounts/users/verify_otp/"); + +export const postVerifyOtp = async ( + props?: PostVerifyOtpRequest, +): Promise> => { + const payloadParsed = schema.request.parse(props); + + const URL = postVerifyOtpURL(); + const response = await requestHandler( + () => coreApi.post(URL, payloadParsed), + schema.response._def.schema, + ); + const dataParsed = schema.response.parse(response.data); + + return { ...response, data: dataParsed }; +}; diff --git a/packages/apis/src/services/core/accounts/users/verify_otp/post/post-verify-otp.types.ts b/packages/apis/src/services/core/accounts/users/verify_otp/post/post-verify-otp.types.ts new file mode 100644 index 00000000..d0333f29 --- /dev/null +++ b/packages/apis/src/services/core/accounts/users/verify_otp/post/post-verify-otp.types.ts @@ -0,0 +1,16 @@ +import type { z } from "zod"; +import type { postVerifyOtpSchema } from "./post-verify-otp.schema"; + +// Response +export type PostVerifyOtpRequest = z.input; + +export type PostVerifyOtpRequestTransofrmed = z.infer< + typeof postVerifyOtpSchema.request +>; + +// Request +export type PostVerifyOtpResponse = z.input; + +export type PostVerifyOtpResponseTransformed = z.infer< + typeof postVerifyOtpSchema.response +>; diff --git a/packages/apis/src/services/core/accounts/users/verify_otp/post/use-post-verify-otp.ts b/packages/apis/src/services/core/accounts/users/verify_otp/post/use-post-verify-otp.ts new file mode 100644 index 00000000..6977fb78 --- /dev/null +++ b/packages/apis/src/services/core/accounts/users/verify_otp/post/use-post-verify-otp.ts @@ -0,0 +1,34 @@ +import type { + ApiError, + ApiResponse, + UseMutationProps, +} from "@repo/apis/types/api.types"; +import { useMutation } from "@tanstack/react-query"; +import { postVerifyOtp } from "./post-verify-otp"; +import {} from "./post-verify-otp.schema"; +import type { + PostVerifyOtpRequest, + PostVerifyOtpResponseTransformed, +} from "./post-verify-otp.types"; + +export type UsePostVerifyOtpProps = UseMutationProps< + ApiResponse, + ApiError, + PostVerifyOtpRequest +>; + +export const postVerifyOtpQueryKey = () => ["postVerifyOtp"]; + +export const usePostVerifyOtp = (props?: UsePostVerifyOtpProps) => { + const mutation = useMutation< + ApiResponse, + ApiError, + PostVerifyOtpRequest + >({ + mutationKey: postVerifyOtpQueryKey(), + mutationFn: (data) => postVerifyOtp(data), + ...props, + }); + + return mutation; +}; diff --git a/packages/apis/src/services/core/forgot-password/post/post-forget-password.schema.ts b/packages/apis/src/services/core/forgot-password/post/post-forget-password.schema.ts deleted file mode 100644 index 49dc5779..00000000 --- a/packages/apis/src/services/core/forgot-password/post/post-forget-password.schema.ts +++ /dev/null @@ -1,38 +0,0 @@ -import { z } from "zod"; - -// Response -export const postForgetPasswordRequestSchemaTransformed = z - .object({ - username: z.string().min(3, "Username must be at least 3 characters long"), - otp: z.string().optional(), - newPassword: z - .string() - .min(8, "New Password must be at least 8 characters long") - .optional(), - confirmPassword: z - .string() - .min(8, "Confirm Password must be at least 8 characters long") - .optional(), - }) - .refine((data) => data.newPassword === data.confirmPassword, { - message: "Passwords do not match", - path: ["confirmPassword"], - }) - .transform((data) => { - delete data.confirmPassword; - delete data.newPassword; - - return { ...data, new_password: data.newPassword }; - }); - -// Request -export const postForgetPasswordResponseSchemaTransofrmed = z - .object({ - message: z.string(), - }) - .transform((data) => data); - -export const postForgetPasswordSchema = { - response: postForgetPasswordResponseSchemaTransofrmed, - request: postForgetPasswordRequestSchemaTransformed, -}; diff --git a/packages/design-system/src/scripts/build-palette-tailwind.ts b/packages/design-system/src/scripts/build-palette-tailwind.ts index b876c293..ae3c42af 100644 --- a/packages/design-system/src/scripts/build-palette-tailwind.ts +++ b/packages/design-system/src/scripts/build-palette-tailwind.ts @@ -19,7 +19,7 @@ const generatePaletteTsContent = (tokens: Record): string => { const value = groupTokens[key]; if (value.$type === "color") { // Add a line for each color token - lines.push(` "${key}": "hsl(var(--${group}-${key}))",`); + lines.push(` "${key}": "var(--${group}-${key})",`); } } lines.push(` },`); // Close the group diff --git a/packages/design-system/src/styles/base/_colors-dark.scss b/packages/design-system/src/styles/base/_colors-dark.scss index f69fcaee..a3149b18 100644 --- a/packages/design-system/src/styles/base/_colors-dark.scss +++ b/packages/design-system/src/styles/base/_colors-dark.scss @@ -29,14 +29,6 @@ --ring: var(--zinc-600); --secondary: var(--zinc-800); --secondary-foreground: var(--general-white); - --sidebar: var(--color-card); - --sidebar-accent: var(--color-background); - --sidebar-accent-foreground: var(--color-foreground); - --sidebar-border: rgba(255, 255, 255, 0.0000); - --sidebar-forground: var(--color-foreground); - --sidebar-primary: #ff0000; - --sidebar-primary-foreground: #ff0000; - --sidebar-ring: #ff0000; --success: var(--emerald-500); --success-border: var(--green-900); --success-foreground: var(--green-50); diff --git a/packages/design-system/src/styles/base/_colors-light.scss b/packages/design-system/src/styles/base/_colors-light.scss index e3994792..1fda683e 100644 --- a/packages/design-system/src/styles/base/_colors-light.scss +++ b/packages/design-system/src/styles/base/_colors-light.scss @@ -29,14 +29,6 @@ --ring: var(--zinc-400); --secondary: var(--zinc-100); --secondary-foreground: var(--zinc-900); - --sidebar: var(--color-card); - --sidebar-accent: var(--color-background); - --sidebar-accent-foreground: var(--color-foreground); - --sidebar-border: rgba(255, 255, 255, 0.0000); - --sidebar-forground: var(--color-foreground); - --sidebar-primary: #ff0000; - --sidebar-primary-foreground: #ff0000; - --sidebar-ring: #ff0000; --success: var(--green-100); --success-border: var(--green-200); --success-foreground: var(--green-700); diff --git a/packages/design-system/src/tailwind/colors.ts b/packages/design-system/src/tailwind/colors.ts index 18dea8cb..d686d64b 100644 --- a/packages/design-system/src/tailwind/colors.ts +++ b/packages/design-system/src/tailwind/colors.ts @@ -26,14 +26,6 @@ export const colors = { "ring": "hsl(var(--ring))", "secondary": "hsl(var(--secondary))", "secondary-foreground": "hsl(var(--secondary-foreground))", - "sidebar": "hsl(var(--sidebar))", - "sidebar-accent": "hsl(var(--sidebar-accent))", - "sidebar-accent-foreground": "hsl(var(--sidebar-accent-foreground))", - "sidebar-border": "hsl(var(--sidebar-border))", - "sidebar-forground": "hsl(var(--sidebar-forground))", - "sidebar-primary": "hsl(var(--sidebar-primary))", - "sidebar-primary-foreground": "hsl(var(--sidebar-primary-foreground))", - "sidebar-ring": "hsl(var(--sidebar-ring))", "success": "hsl(var(--success))", "success-border": "hsl(var(--success-border))", "success-foreground": "hsl(var(--success-foreground))", diff --git a/packages/design-system/src/tailwind/palette.ts b/packages/design-system/src/tailwind/palette.ts index 517eb075..4efda2c6 100644 --- a/packages/design-system/src/tailwind/palette.ts +++ b/packages/design-system/src/tailwind/palette.ts @@ -1,291 +1,291 @@ export const palette = { "amber": { - "50": "hsl(var(--amber-50))", - "100": "hsl(var(--amber-100))", - "200": "hsl(var(--amber-200))", - "300": "hsl(var(--amber-300))", - "400": "hsl(var(--amber-400))", - "500": "hsl(var(--amber-500))", - "600": "hsl(var(--amber-600))", - "700": "hsl(var(--amber-700))", - "800": "hsl(var(--amber-800))", - "900": "hsl(var(--amber-900))", - "950": "hsl(var(--amber-950))", + "50": "var(--amber-50)", + "100": "var(--amber-100)", + "200": "var(--amber-200)", + "300": "var(--amber-300)", + "400": "var(--amber-400)", + "500": "var(--amber-500)", + "600": "var(--amber-600)", + "700": "var(--amber-700)", + "800": "var(--amber-800)", + "900": "var(--amber-900)", + "950": "var(--amber-950)", }, "blue": { - "50": "hsl(var(--blue-50))", - "100": "hsl(var(--blue-100))", - "200": "hsl(var(--blue-200))", - "300": "hsl(var(--blue-300))", - "400": "hsl(var(--blue-400))", - "500": "hsl(var(--blue-500))", - "600": "hsl(var(--blue-600))", - "700": "hsl(var(--blue-700))", - "800": "hsl(var(--blue-800))", - "900": "hsl(var(--blue-900))", - "950": "hsl(var(--blue-950))", + "50": "var(--blue-50)", + "100": "var(--blue-100)", + "200": "var(--blue-200)", + "300": "var(--blue-300)", + "400": "var(--blue-400)", + "500": "var(--blue-500)", + "600": "var(--blue-600)", + "700": "var(--blue-700)", + "800": "var(--blue-800)", + "900": "var(--blue-900)", + "950": "var(--blue-950)", }, "cyan": { - "50": "hsl(var(--cyan-50))", - "100": "hsl(var(--cyan-100))", - "200": "hsl(var(--cyan-200))", - "300": "hsl(var(--cyan-300))", - "400": "hsl(var(--cyan-400))", - "500": "hsl(var(--cyan-500))", - "600": "hsl(var(--cyan-600))", - "700": "hsl(var(--cyan-700))", - "800": "hsl(var(--cyan-800))", - "900": "hsl(var(--cyan-900))", - "950": "hsl(var(--cyan-950))", + "50": "var(--cyan-50)", + "100": "var(--cyan-100)", + "200": "var(--cyan-200)", + "300": "var(--cyan-300)", + "400": "var(--cyan-400)", + "500": "var(--cyan-500)", + "600": "var(--cyan-600)", + "700": "var(--cyan-700)", + "800": "var(--cyan-800)", + "900": "var(--cyan-900)", + "950": "var(--cyan-950)", }, "emerald": { - "50": "hsl(var(--emerald-50))", - "100": "hsl(var(--emerald-100))", - "200": "hsl(var(--emerald-200))", - "300": "hsl(var(--emerald-300))", - "400": "hsl(var(--emerald-400))", - "500": "hsl(var(--emerald-500))", - "600": "hsl(var(--emerald-600))", - "700": "hsl(var(--emerald-700))", - "800": "hsl(var(--emerald-800))", - "900": "hsl(var(--emerald-900))", - "950": "hsl(var(--emerald-950))", + "50": "var(--emerald-50)", + "100": "var(--emerald-100)", + "200": "var(--emerald-200)", + "300": "var(--emerald-300)", + "400": "var(--emerald-400)", + "500": "var(--emerald-500)", + "600": "var(--emerald-600)", + "700": "var(--emerald-700)", + "800": "var(--emerald-800)", + "900": "var(--emerald-900)", + "950": "var(--emerald-950)", }, "fuchsia": { - "50": "hsl(var(--fuchsia-50))", - "100": "hsl(var(--fuchsia-100))", - "200": "hsl(var(--fuchsia-200))", - "300": "hsl(var(--fuchsia-300))", - "400": "hsl(var(--fuchsia-400))", - "500": "hsl(var(--fuchsia-500))", - "600": "hsl(var(--fuchsia-600))", - "700": "hsl(var(--fuchsia-700))", - "800": "hsl(var(--fuchsia-800))", - "900": "hsl(var(--fuchsia-900))", - "950": "hsl(var(--fuchsia-950))", + "50": "var(--fuchsia-50)", + "100": "var(--fuchsia-100)", + "200": "var(--fuchsia-200)", + "300": "var(--fuchsia-300)", + "400": "var(--fuchsia-400)", + "500": "var(--fuchsia-500)", + "600": "var(--fuchsia-600)", + "700": "var(--fuchsia-700)", + "800": "var(--fuchsia-800)", + "900": "var(--fuchsia-900)", + "950": "var(--fuchsia-950)", }, "general": { - "black": "hsl(var(--general-black))", - "white": "hsl(var(--general-white))", + "black": "var(--general-black)", + "white": "var(--general-white)", }, "gray": { - "50": "hsl(var(--gray-50))", - "100": "hsl(var(--gray-100))", - "200": "hsl(var(--gray-200))", - "300": "hsl(var(--gray-300))", - "400": "hsl(var(--gray-400))", - "500": "hsl(var(--gray-500))", - "600": "hsl(var(--gray-600))", - "700": "hsl(var(--gray-700))", - "800": "hsl(var(--gray-800))", - "900": "hsl(var(--gray-900))", - "950": "hsl(var(--gray-950))", + "50": "var(--gray-50)", + "100": "var(--gray-100)", + "200": "var(--gray-200)", + "300": "var(--gray-300)", + "400": "var(--gray-400)", + "500": "var(--gray-500)", + "600": "var(--gray-600)", + "700": "var(--gray-700)", + "800": "var(--gray-800)", + "900": "var(--gray-900)", + "950": "var(--gray-950)", }, "green": { - "50": "hsl(var(--green-50))", - "100": "hsl(var(--green-100))", - "200": "hsl(var(--green-200))", - "300": "hsl(var(--green-300))", - "400": "hsl(var(--green-400))", - "500": "hsl(var(--green-500))", - "600": "hsl(var(--green-600))", - "700": "hsl(var(--green-700))", - "800": "hsl(var(--green-800))", - "900": "hsl(var(--green-900))", - "950": "hsl(var(--green-950))", + "50": "var(--green-50)", + "100": "var(--green-100)", + "200": "var(--green-200)", + "300": "var(--green-300)", + "400": "var(--green-400)", + "500": "var(--green-500)", + "600": "var(--green-600)", + "700": "var(--green-700)", + "800": "var(--green-800)", + "900": "var(--green-900)", + "950": "var(--green-950)", }, "indigo": { - "50": "hsl(var(--indigo-50))", - "100": "hsl(var(--indigo-100))", - "200": "hsl(var(--indigo-200))", - "300": "hsl(var(--indigo-300))", - "400": "hsl(var(--indigo-400))", - "500": "hsl(var(--indigo-500))", - "600": "hsl(var(--indigo-600))", - "700": "hsl(var(--indigo-700))", - "800": "hsl(var(--indigo-800))", - "900": "hsl(var(--indigo-900))", - "950": "hsl(var(--indigo-950))", + "50": "var(--indigo-50)", + "100": "var(--indigo-100)", + "200": "var(--indigo-200)", + "300": "var(--indigo-300)", + "400": "var(--indigo-400)", + "500": "var(--indigo-500)", + "600": "var(--indigo-600)", + "700": "var(--indigo-700)", + "800": "var(--indigo-800)", + "900": "var(--indigo-900)", + "950": "var(--indigo-950)", }, "lime": { - "50": "hsl(var(--lime-50))", - "100": "hsl(var(--lime-100))", - "200": "hsl(var(--lime-200))", - "300": "hsl(var(--lime-300))", - "400": "hsl(var(--lime-400))", - "500": "hsl(var(--lime-500))", - "600": "hsl(var(--lime-600))", - "700": "hsl(var(--lime-700))", - "800": "hsl(var(--lime-800))", - "900": "hsl(var(--lime-900))", - "950": "hsl(var(--lime-950))", + "50": "var(--lime-50)", + "100": "var(--lime-100)", + "200": "var(--lime-200)", + "300": "var(--lime-300)", + "400": "var(--lime-400)", + "500": "var(--lime-500)", + "600": "var(--lime-600)", + "700": "var(--lime-700)", + "800": "var(--lime-800)", + "900": "var(--lime-900)", + "950": "var(--lime-950)", }, "neutral": { - "50": "hsl(var(--neutral-50))", - "100": "hsl(var(--neutral-100))", - "200": "hsl(var(--neutral-200))", - "300": "hsl(var(--neutral-300))", - "400": "hsl(var(--neutral-400))", - "500": "hsl(var(--neutral-500))", - "600": "hsl(var(--neutral-600))", - "700": "hsl(var(--neutral-700))", - "800": "hsl(var(--neutral-800))", - "900": "hsl(var(--neutral-900))", - "950": "hsl(var(--neutral-950))", + "50": "var(--neutral-50)", + "100": "var(--neutral-100)", + "200": "var(--neutral-200)", + "300": "var(--neutral-300)", + "400": "var(--neutral-400)", + "500": "var(--neutral-500)", + "600": "var(--neutral-600)", + "700": "var(--neutral-700)", + "800": "var(--neutral-800)", + "900": "var(--neutral-900)", + "950": "var(--neutral-950)", }, "orange": { - "50": "hsl(var(--orange-50))", - "100": "hsl(var(--orange-100))", - "200": "hsl(var(--orange-200))", - "300": "hsl(var(--orange-300))", - "400": "hsl(var(--orange-400))", - "500": "hsl(var(--orange-500))", - "600": "hsl(var(--orange-600))", - "700": "hsl(var(--orange-700))", - "800": "hsl(var(--orange-800))", - "900": "hsl(var(--orange-900))", - "950": "hsl(var(--orange-950))", + "50": "var(--orange-50)", + "100": "var(--orange-100)", + "200": "var(--orange-200)", + "300": "var(--orange-300)", + "400": "var(--orange-400)", + "500": "var(--orange-500)", + "600": "var(--orange-600)", + "700": "var(--orange-700)", + "800": "var(--orange-800)", + "900": "var(--orange-900)", + "950": "var(--orange-950)", }, "pink": { - "50": "hsl(var(--pink-50))", - "100": "hsl(var(--pink-100))", - "200": "hsl(var(--pink-200))", - "300": "hsl(var(--pink-300))", - "400": "hsl(var(--pink-400))", - "500": "hsl(var(--pink-500))", - "600": "hsl(var(--pink-600))", - "700": "hsl(var(--pink-700))", - "800": "hsl(var(--pink-800))", - "900": "hsl(var(--pink-900))", - "950": "hsl(var(--pink-950))", + "50": "var(--pink-50)", + "100": "var(--pink-100)", + "200": "var(--pink-200)", + "300": "var(--pink-300)", + "400": "var(--pink-400)", + "500": "var(--pink-500)", + "600": "var(--pink-600)", + "700": "var(--pink-700)", + "800": "var(--pink-800)", + "900": "var(--pink-900)", + "950": "var(--pink-950)", }, "purple": { - "50": "hsl(var(--purple-50))", - "100": "hsl(var(--purple-100))", - "200": "hsl(var(--purple-200))", - "300": "hsl(var(--purple-300))", - "400": "hsl(var(--purple-400))", - "500": "hsl(var(--purple-500))", - "600": "hsl(var(--purple-600))", - "700": "hsl(var(--purple-700))", - "800": "hsl(var(--purple-800))", - "900": "hsl(var(--purple-900))", + "50": "var(--purple-50)", + "100": "var(--purple-100)", + "200": "var(--purple-200)", + "300": "var(--purple-300)", + "400": "var(--purple-400)", + "500": "var(--purple-500)", + "600": "var(--purple-600)", + "700": "var(--purple-700)", + "800": "var(--purple-800)", + "900": "var(--purple-900)", }, "red": { - "50": "hsl(var(--red-50))", - "100": "hsl(var(--red-100))", - "200": "hsl(var(--red-200))", - "300": "hsl(var(--red-300))", - "400": "hsl(var(--red-400))", - "500": "hsl(var(--red-500))", - "600": "hsl(var(--red-600))", - "700": "hsl(var(--red-700))", - "800": "hsl(var(--red-800))", - "900": "hsl(var(--red-900))", - "950": "hsl(var(--red-950))", + "50": "var(--red-50)", + "100": "var(--red-100)", + "200": "var(--red-200)", + "300": "var(--red-300)", + "400": "var(--red-400)", + "500": "var(--red-500)", + "600": "var(--red-600)", + "700": "var(--red-700)", + "800": "var(--red-800)", + "900": "var(--red-900)", + "950": "var(--red-950)", }, "rose": { - "50": "hsl(var(--rose-50))", - "100": "hsl(var(--rose-100))", - "200": "hsl(var(--rose-200))", - "300": "hsl(var(--rose-300))", - "400": "hsl(var(--rose-400))", - "500": "hsl(var(--rose-500))", - "600": "hsl(var(--rose-600))", - "700": "hsl(var(--rose-700))", - "800": "hsl(var(--rose-800))", - "900": "hsl(var(--rose-900))", - "950": "hsl(var(--rose-950))", + "50": "var(--rose-50)", + "100": "var(--rose-100)", + "200": "var(--rose-200)", + "300": "var(--rose-300)", + "400": "var(--rose-400)", + "500": "var(--rose-500)", + "600": "var(--rose-600)", + "700": "var(--rose-700)", + "800": "var(--rose-800)", + "900": "var(--rose-900)", + "950": "var(--rose-950)", }, "sky": { - "50": "hsl(var(--sky-50))", - "100": "hsl(var(--sky-100))", - "200": "hsl(var(--sky-200))", - "300": "hsl(var(--sky-300))", - "400": "hsl(var(--sky-400))", - "500": "hsl(var(--sky-500))", - "600": "hsl(var(--sky-600))", - "700": "hsl(var(--sky-700))", - "800": "hsl(var(--sky-800))", - "900": "hsl(var(--sky-900))", - "950": "hsl(var(--sky-950))", + "50": "var(--sky-50)", + "100": "var(--sky-100)", + "200": "var(--sky-200)", + "300": "var(--sky-300)", + "400": "var(--sky-400)", + "500": "var(--sky-500)", + "600": "var(--sky-600)", + "700": "var(--sky-700)", + "800": "var(--sky-800)", + "900": "var(--sky-900)", + "950": "var(--sky-950)", }, "slate": { - "50": "hsl(var(--slate-50))", - "100": "hsl(var(--slate-100))", - "200": "hsl(var(--slate-200))", - "300": "hsl(var(--slate-300))", - "400": "hsl(var(--slate-400))", - "500": "hsl(var(--slate-500))", - "600": "hsl(var(--slate-600))", - "700": "hsl(var(--slate-700))", - "800": "hsl(var(--slate-800))", - "900": "hsl(var(--slate-900))", - "950": "hsl(var(--slate-950))", + "50": "var(--slate-50)", + "100": "var(--slate-100)", + "200": "var(--slate-200)", + "300": "var(--slate-300)", + "400": "var(--slate-400)", + "500": "var(--slate-500)", + "600": "var(--slate-600)", + "700": "var(--slate-700)", + "800": "var(--slate-800)", + "900": "var(--slate-900)", + "950": "var(--slate-950)", }, "stone": { - "50": "hsl(var(--stone-50))", - "100": "hsl(var(--stone-100))", - "200": "hsl(var(--stone-200))", - "300": "hsl(var(--stone-300))", - "400": "hsl(var(--stone-400))", - "500": "hsl(var(--stone-500))", - "600": "hsl(var(--stone-600))", - "700": "hsl(var(--stone-700))", - "800": "hsl(var(--stone-800))", - "900": "hsl(var(--stone-900))", - "950": "hsl(var(--stone-950))", + "50": "var(--stone-50)", + "100": "var(--stone-100)", + "200": "var(--stone-200)", + "300": "var(--stone-300)", + "400": "var(--stone-400)", + "500": "var(--stone-500)", + "600": "var(--stone-600)", + "700": "var(--stone-700)", + "800": "var(--stone-800)", + "900": "var(--stone-900)", + "950": "var(--stone-950)", }, "teal": { - "50": "hsl(var(--teal-50))", - "100": "hsl(var(--teal-100))", - "200": "hsl(var(--teal-200))", - "300": "hsl(var(--teal-300))", - "400": "hsl(var(--teal-400))", - "500": "hsl(var(--teal-500))", - "600": "hsl(var(--teal-600))", - "700": "hsl(var(--teal-700))", - "800": "hsl(var(--teal-800))", - "900": "hsl(var(--teal-900))", - "950": "hsl(var(--teal-950))", + "50": "var(--teal-50)", + "100": "var(--teal-100)", + "200": "var(--teal-200)", + "300": "var(--teal-300)", + "400": "var(--teal-400)", + "500": "var(--teal-500)", + "600": "var(--teal-600)", + "700": "var(--teal-700)", + "800": "var(--teal-800)", + "900": "var(--teal-900)", + "950": "var(--teal-950)", }, "violet": { - "50": "hsl(var(--violet-50))", - "100": "hsl(var(--violet-100))", - "200": "hsl(var(--violet-200))", - "300": "hsl(var(--violet-300))", - "400": "hsl(var(--violet-400))", - "500": "hsl(var(--violet-500))", - "600": "hsl(var(--violet-600))", - "700": "hsl(var(--violet-700))", - "800": "hsl(var(--violet-800))", - "900": "hsl(var(--violet-900))", - "950": "hsl(var(--violet-950))", + "50": "var(--violet-50)", + "100": "var(--violet-100)", + "200": "var(--violet-200)", + "300": "var(--violet-300)", + "400": "var(--violet-400)", + "500": "var(--violet-500)", + "600": "var(--violet-600)", + "700": "var(--violet-700)", + "800": "var(--violet-800)", + "900": "var(--violet-900)", + "950": "var(--violet-950)", }, "yellow": { - "50": "hsl(var(--yellow-50))", - "100": "hsl(var(--yellow-100))", - "200": "hsl(var(--yellow-200))", - "300": "hsl(var(--yellow-300))", - "400": "hsl(var(--yellow-400))", - "500": "hsl(var(--yellow-500))", - "600": "hsl(var(--yellow-600))", - "700": "hsl(var(--yellow-700))", - "800": "hsl(var(--yellow-800))", - "900": "hsl(var(--yellow-900))", - "950": "hsl(var(--yellow-950))", + "50": "var(--yellow-50)", + "100": "var(--yellow-100)", + "200": "var(--yellow-200)", + "300": "var(--yellow-300)", + "400": "var(--yellow-400)", + "500": "var(--yellow-500)", + "600": "var(--yellow-600)", + "700": "var(--yellow-700)", + "800": "var(--yellow-800)", + "900": "var(--yellow-900)", + "950": "var(--yellow-950)", }, "zinc": { - "50": "hsl(var(--zinc-50))", - "100": "hsl(var(--zinc-100))", - "200": "hsl(var(--zinc-200))", - "300": "hsl(var(--zinc-300))", - "400": "hsl(var(--zinc-400))", - "500": "hsl(var(--zinc-500))", - "600": "hsl(var(--zinc-600))", - "700": "hsl(var(--zinc-700))", - "800": "hsl(var(--zinc-800))", - "900": "hsl(var(--zinc-900))", - "950": "hsl(var(--zinc-950))", + "50": "var(--zinc-50)", + "100": "var(--zinc-100)", + "200": "var(--zinc-200)", + "300": "var(--zinc-300)", + "400": "var(--zinc-400)", + "500": "var(--zinc-500)", + "600": "var(--zinc-600)", + "700": "var(--zinc-700)", + "800": "var(--zinc-800)", + "900": "var(--zinc-900)", + "950": "var(--zinc-950)", }, }; \ No newline at end of file diff --git a/packages/design-system/src/tokens/token_Icon_size_Mode1.json b/packages/design-system/src/tokens/token_Icon_size_Mode1.json deleted file mode 100644 index a539571d..00000000 --- a/packages/design-system/src/tokens/token_Icon_size_Mode1.json +++ /dev/null @@ -1,14 +0,0 @@ -{ - "LG": { - "$type": "number", - "$value": 24 - }, - "MD": { - "$type": "number", - "$value": 18 - }, - "XS": { - "$type": "number", - "$value": 16 - } -} \ No newline at end of file diff --git a/packages/design-system/src/tokens/token_color_default.json b/packages/design-system/src/tokens/token_color_default.json index eb23a673..ea9b69c7 100644 --- a/packages/design-system/src/tokens/token_color_default.json +++ b/packages/design-system/src/tokens/token_color_default.json @@ -133,38 +133,6 @@ "$value": "{general.white}", "$description": "Secondary colors for