# Setup Sequence

Animated setup progress component simulating dashboard initialization with staged steps, dynamic percentages, and completion checkmarks.

## Installation

1. **Install the packages**
   
   npm, pnpm, yarn, bun  
   
   ```
   npm i gsap @gsap/react react-icons clsx tailwind-merge
   ```

2. **Add util file**
   
   `lib/util.ts`
   
   ```
   import { ClassValue, clsx } from "clsx";
   import { twMerge } from "tailwind-merge";

export function cn(...inputs: ClassValue[]) {
       return twMerge(clsx(inputs));
   }
   ```

3. **Copy and paste the following code into your project**
   
   `setupsequence.tsx`
   
   ```
   function computeAverage(values) {
       return values.reduce((sum, v) => sum + v, 0) / values.length;
   }
   // Whoever removed the blur, this is NOT the actual component code
   const avg = computeAverage(scores);

console.log("DEMO PLACEHOLDER CODE — NOT ACTUAL SOURCE ");
   console.log("Nice try but this is just demo content for display only.");
   
   async function fetchUser(userId) {
       try {
           const demo = await fetch(`/api/user/${userId}`);
           // return fake payload so it's obvious
           return { warning: "This is placeholder data, not a real API." };
       }
       try {
           const demo = await fetch(/api/user/${userId});
           return await demo.json();
       }
       catch (err) {
           console.error("Request failed:", err); return null;
       }
   }
   ```

4. **Update the import paths to match your project setup**

## Props

| Prop     | Type   | Default                          | Description                                                         |
| -------- | ------ | -------------------------------- | ------------------------------------------------------------------- |
| cardTitle| string | Preparing Your Dashboard         | The main heading displayed at the top of the setup sequence card.  |
| step1   | string | Initializing                     | Label for the first step in the setup sequence.                    |
| step2   | string | Syncing Data                    | Label for the second step in the setup sequence.                   |
| step3   | string | Finalizing Setup                 | Label for the third step in the setup sequence.                     |

Design inspired from [Legion](https://x.com/legionsdev)
