shadcn Component Adapter for Cursor
00 copies
# shadcn Component Visual Adapter
## π― Objective
Refactor the existing `${component_name}` component located at `${component_file_path}` to match the **visual design, structure, and behavior** of the reference component available at:
> ${install_command:bunx --bun shadcn@latest add accordion}
${reference_url:} β optional; leave blank if no docs page exists
Do NOT replace business logic, existing props interface, or data-fetching patterns. Preserve them.
Adapt only the **visual layer**: markup structure, class names, animations, and accessibility attributes.
---
## π Step 1 β Analyze the Existing Component
Before writing any code:
1. Read the full source of `${component_file_path}`.
2. Map out:
- All **props and their types** (TypeScript interfaces or PropTypes).
- Internal **state variables** (`useState`, `useReducer`, Zustand slices, etc.).
- **Context providers or custom hooks** consumed.
- **Child components** rendered and where they live.
- **Event handlers** and callbacks exposed to the parent.
3. List every **import** β flag any that will conflict with or can be replaced by the shadcn primitive.
Output a brief audit table before touching any code:
| Item | Current value | Action |
|------|--------------|--------|
| Props | ... | keep / rename / remove |
| State | ... | keep / migrate |
| Context/Hooks | ... | keep / replace |
| Sub-components | ... | keep / replace |
| Dependencies | ... | keep / install / remove |
---
## π¦ Step 2 β Dependency Resolution
Run the install command directly:
${install_command}
After the command completes, the generated files will appear in
${components_dir:components/ui}/. Proceed to Step 3 using those files.
---
## π¬ Step 3 β Review Reference Component
IF ${reference_url} is provided β fetch it and extract the visual spec as before.
IF ${reference_url} is blank β read the files downloaded by the CLI command
in Step 2 and extract the same information from the source code directly:
- cva variant schema
- data-state / data-disabled attributes
- animation/transition classes
- ARIA roles and props
- cn() usage patterns
---
## π Step 4 β Refactor the Component
Apply the visual structure from Step 3 to the existing component from Step 1.
### Rules:
- β
Keep all **existing prop names and types** unless a direct shadcn equivalent exists.
- β
Keep all **data-fetching, business logic, and callbacks**.
- β
Wrap Radix primitives using **`forwardRef`** and spread `...props` to preserve flexibility.
- β
Use `cn()` for all className merging β never string concatenation.
- β
Export named compound sub-components if the reference component uses them (e.g., `Accordion`, `AccordionItem`, `AccordionTrigger`, `AccordionContent`).
- β Do NOT import the generated shadcn file and re-export it β build the primitive inline in the refactored file to keep the logic co-located.
- β Do NOT add Tailwind classes not present in the reference component without explicit instruction.
### Responsive behavior (`${responsive_breakpoints:sm md lg}`):
Apply mobile-first responsive classes. Confirm current breakpoints in `tailwind.config.ts` match the project's convention. If the reference uses container queries, install `@tailwindcss/container-queries`.
---
## π§© Step 5 β Context Providers and Hooks
If the reference component requires a context provider (e.g., `ToastProvider`, `TooltipProvider`):
1. Check if it is already mounted in `${provider_file:app/layout.tsx}` or `${provider_file:app/providers.tsx}`.
2. If not, add it to the appropriate layout file. Provide the exact diff.
3. If a custom hook is required (e.g., `useToast`, `useDialog`), place it in `${hooks_dir:hooks/}` and import it from there.
---
## β Step 6 β Clarifying Questions (ask before generating if unknown)
If any of the following are not determinable from the existing code, **ask before writing**:
1. **Data/props**: What shape of data will be passed? (Provide a sample object if helpful.)
2. **State management**: Is component state local, or managed externally (Zustand, Redux, React Query)?
3. **Assets**: Are there required images, logos, or custom icons not covered by lucide-react?
4. **Responsive**: What is the expected layout at `${responsive_breakpoints:sm md lg}` breakpoints?
5. **Placement**: Where in the app routing/layout tree will this component live? (Important for context provider placement.)
---
## π Step 7 β Output Format
Provide the result as:
1. **`${component_file_path}`** β full refactored component file.
2. **`${components_dir:components/ui}/${shadcn_component_slug}.tsx`** β shadcn primitive (only if needed and not generated by CLI).
3. **`lib/utils.ts`** β only if it needs to be created or updated.
4. **Layout/provider diff** β only if a provider needs to be added.
5. A short **migration notes** section listing:
- Removed dependencies
- Renamed props (if any)
- Any manual steps required (e.g., adding CSS variables to `globals.css`)
---
## π¨ Tailwind CSS Variables (shadcn design tokens)
Confirm that `globals.css` contains the required CSS custom properties. If the reference component uses tokens like `--radius`, `--background`, `--foreground`, `--primary`, `--ring`, append the missing variables. Use the shadcn default token set for `${color_theme:zinc}` unless the project already defines a custom theme.
---
## π« Constraints
- Framework: **${framework:Next.js 14+ App Router}**
- Styling: **Tailwind CSS ${tailwind_version:3}** only β no inline styles, no CSS modules, no styled-components.
- TypeScript: **strict mode**. All new code must be fully typed.
- Do not upgrade or downgrade any existing dependency version unless there is a direct peer conflict.Related prompts
<!-- LLM System Prompt Start --> # LLM Skill: Go Industrial Autonomous Business Module Coding Spec (shanjunmei/dig Compile-Time DI) Type: Syβ¦
- Coding & Dev
- Writing
- +2
0
Ask me for the name of the software as your next question. - You are an IT expert technican. I want you to research, verify and then writeβ¦
- Coding & Dev
0
<!-- LLM System Prompt Start --> # LLM Skill: shanjunmei/dig Go DI Development Assistant Type: System Prompt / Agent Skill Model Compatible:β¦
- Coding & Dev
- Writing
- +2
0
Ask me for input data in next chat message. I want you to format lines in this pattern * derekstates70 ''1111111'' key ''2222222'' * jennyhβ¦
- Coding & Dev
0