@reinvented/design 1.0.0 → 1.2.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (203) hide show
  1. package/README.md +1 -1
  2. package/SKILL.md +214 -0
  3. package/package.json +4 -3
  4. package/skills/apps/analytics.md +103 -0
  5. package/skills/apps/booking-scheduling.md +97 -0
  6. package/skills/apps/content-management.md +52 -0
  7. package/skills/apps/crm.md +80 -0
  8. package/skills/apps/e-commerce.md +109 -0
  9. package/skills/apps/education.md +79 -0
  10. package/skills/apps/finance.md +68 -0
  11. package/skills/apps/health-fitness.md +72 -0
  12. package/skills/apps/marketplace.md +99 -0
  13. package/skills/apps/messaging.md +84 -0
  14. package/skills/apps/portfolio-personal.md +90 -0
  15. package/skills/apps/project-management.md +95 -0
  16. package/skills/apps/saas-dashboard.md +104 -0
  17. package/skills/apps/social-platform.md +50 -0
  18. package/skills/blocks/auth.md +106 -0
  19. package/skills/blocks/communication.md +98 -0
  20. package/skills/blocks/content.md +107 -0
  21. package/skills/blocks/data-management.md +109 -0
  22. package/skills/blocks/data-viz.md +92 -0
  23. package/skills/blocks/ecommerce.md +126 -0
  24. package/skills/blocks/feedback.md +97 -0
  25. package/skills/blocks/filtering.md +127 -0
  26. package/skills/blocks/marketing.md +136 -0
  27. package/skills/blocks/media.md +102 -0
  28. package/skills/blocks/navigation.md +136 -0
  29. package/skills/blocks/onboarding.md +75 -0
  30. package/skills/blocks/profiles.md +131 -0
  31. package/skills/blocks/scheduling.md +117 -0
  32. package/skills/blocks/settings.md +102 -0
  33. package/skills/components/advanced-components.md +142 -0
  34. package/skills/components/avatar.md +92 -0
  35. package/skills/components/badge.md +105 -0
  36. package/skills/components/button.md +87 -0
  37. package/skills/components/card.md +144 -0
  38. package/skills/components/chart.md +88 -0
  39. package/skills/components/dialog.md +109 -0
  40. package/skills/components/dropdown-menu.md +117 -0
  41. package/skills/components/extended-components.md +187 -0
  42. package/skills/components/feedback.md +165 -0
  43. package/skills/components/form.md +112 -0
  44. package/skills/components/input.md +107 -0
  45. package/skills/components/map.md +53 -0
  46. package/skills/components/navigation.md +73 -0
  47. package/skills/components/overlay.md +77 -0
  48. package/skills/components/page-header.md +51 -0
  49. package/skills/components/select.md +175 -0
  50. package/skills/components/table.md +102 -0
  51. package/skills/components/tabs.md +105 -0
  52. package/skills/components/utilities.md +138 -0
  53. package/skills/devices/desktop.md +43 -0
  54. package/skills/devices/mobile.md +77 -0
  55. package/skills/foundation/design-principles.md +77 -0
  56. package/skills/foundation/design-tokens.md +121 -0
  57. package/skills/foundation/mockup-generation.md +118 -0
  58. package/skills/foundation/rules.md +54 -0
  59. package/skills/foundation/tailwind-usage.md +204 -0
  60. package/skills/layouts/dashboard.md +71 -0
  61. package/skills/layouts/full-page-form.md +75 -0
  62. package/skills/layouts/list-detail.md +70 -0
  63. package/skills/layouts/marketing.md +70 -0
  64. package/skills/layouts/responsive.md +67 -0
  65. package/skills/layouts/settings-page.md +106 -0
  66. package/skills/layouts/sidebar.md +73 -0
  67. package/skills/layouts/topbar.md +68 -0
  68. package/skills/patterns/auth.md +131 -0
  69. package/skills/patterns/content-display.md +164 -0
  70. package/skills/patterns/dashboards.md +104 -0
  71. package/skills/patterns/data-tables.md +113 -0
  72. package/skills/patterns/empty-states.md +71 -0
  73. package/skills/patterns/error-states.md +73 -0
  74. package/skills/patterns/forms.md +136 -0
  75. package/skills/patterns/loading-states.md +92 -0
  76. package/skills/patterns/navigation.md +113 -0
  77. package/skills/patterns/notifications.md +91 -0
  78. package/skills/patterns/onboarding.md +42 -0
  79. package/skills/patterns/search.md +55 -0
  80. package/skills/patterns/settings.md +132 -0
  81. package/skills/patterns/user-profiles.md +67 -0
  82. package/skills/personas/business-operator.md +114 -0
  83. package/skills/personas/consumer-casual.md +60 -0
  84. package/skills/personas/consumer-power-user.md +109 -0
  85. package/skills/personas/creative-professional.md +109 -0
  86. package/skills/personas/enterprise-admin.md +134 -0
  87. package/skills/visual/color-usage.md +62 -0
  88. package/skills/visual/dark-mode.md +50 -0
  89. package/skills/visual/polish-techniques.md +101 -0
  90. package/skills/visual/spacing-composition.md +69 -0
  91. package/skills/visual/transitions-animations.md +66 -0
  92. package/skills/visual/typography-hierarchy.md +66 -0
  93. package/src/components/blocks/auth/auth-card/AuthCard.tsx +2 -2
  94. package/src/components/blocks/auth/social-login/SocialLoginGroup.tsx +2 -2
  95. package/src/components/blocks/auth/two-factor/TwoFactorForm.tsx +4 -4
  96. package/src/components/blocks/communication/activity-item/ActivityItem.tsx +1 -1
  97. package/src/components/blocks/communication/activity-item/ActivityItemAvatar.tsx +2 -2
  98. package/src/components/blocks/communication/activity-item/ActivityItemContent.tsx +1 -1
  99. package/src/components/blocks/communication/chat-bubble/ChatBubble.tsx +1 -1
  100. package/src/components/blocks/communication/chat-bubble/ChatBubbleAvatar.tsx +2 -2
  101. package/src/components/blocks/communication/chat-bubble/ChatBubbleMessage.tsx +1 -1
  102. package/src/components/blocks/communication/chat-bubble/ChatBubbleTimestamp.tsx +1 -1
  103. package/src/components/blocks/content/article-header/ArticleHeader.tsx +3 -3
  104. package/src/components/blocks/content/author-card/AuthorCard.tsx +4 -4
  105. package/src/components/blocks/content/rich-text/RichTextContent.tsx +1 -1
  106. package/src/components/blocks/data-management/kanban/KanbanBoard.tsx +1 -1
  107. package/src/components/blocks/data-management/kanban/KanbanCard.tsx +4 -4
  108. package/src/components/blocks/data-management/kanban/KanbanColumn.tsx +3 -3
  109. package/src/components/blocks/data-management/tree-view/TreeItem.tsx +2 -2
  110. package/src/components/blocks/data-management/tree-view/TreeView.tsx +1 -1
  111. package/src/components/blocks/data-viz/financial-ticker/FinancialTicker.tsx +1 -1
  112. package/src/components/blocks/data-viz/kpi-card/KpiCard.tsx +2 -2
  113. package/src/components/blocks/data-viz/stat-grid/StatGrid.tsx +1 -1
  114. package/src/components/blocks/ecommerce/pricing-tier/PricingFeatureList.tsx +2 -2
  115. package/src/components/blocks/ecommerce/pricing-tier/PricingHeader.tsx +2 -2
  116. package/src/components/blocks/ecommerce/pricing-tier/PricingTier.tsx +2 -2
  117. package/src/components/blocks/ecommerce/product-card/ProductCard.tsx +2 -2
  118. package/src/components/blocks/ecommerce/product-card/ProductCardContent.tsx +2 -2
  119. package/src/components/blocks/ecommerce/product-card/ProductCardImage.tsx +1 -1
  120. package/src/components/blocks/ecommerce/product-card/ProductCardPrice.tsx +1 -1
  121. package/src/components/blocks/ecommerce/rating-summary/RatingStars.tsx +1 -1
  122. package/src/components/blocks/feedback/empty-state/EmptyState.tsx +2 -2
  123. package/src/components/blocks/feedback/error-state/ErrorState.tsx +2 -2
  124. package/src/components/blocks/feedback/not-found/NotFoundState.tsx +2 -2
  125. package/src/components/blocks/filtering/faceted-sidebar/FacetedGroup.tsx +2 -2
  126. package/src/components/blocks/filtering/faceted-sidebar/FacetedSidebar.tsx +2 -2
  127. package/src/components/blocks/filtering/filter-bar/FilterBar.tsx +4 -4
  128. package/src/components/blocks/filtering/search-result/SearchResultItem.tsx +2 -2
  129. package/src/components/blocks/marketing/cta-block/CtaBlock.tsx +2 -2
  130. package/src/components/blocks/marketing/feature-grid/FeatureGrid.tsx +1 -1
  131. package/src/components/blocks/marketing/hero-section/HeroSection.tsx +3 -3
  132. package/src/components/blocks/marketing/testimonial-card/TestimonialCard.tsx +3 -3
  133. package/src/components/blocks/media/call-controls/CallControlButton.tsx +3 -3
  134. package/src/components/blocks/media/call-controls/CallControls.tsx +1 -1
  135. package/src/components/blocks/media/media-player/MediaPlayer.tsx +1 -1
  136. package/src/components/blocks/media/media-player/MediaPlayerControls.tsx +1 -1
  137. package/src/components/blocks/media/media-player/MediaPlayerScrubber.tsx +1 -1
  138. package/src/components/blocks/media/media-player/MediaPlayerVideo.tsx +1 -1
  139. package/src/components/blocks/navigation/app-sidebar/AppSidebar.tsx +2 -2
  140. package/src/components/blocks/navigation/app-sidebar/NavItem.tsx +1 -1
  141. package/src/components/blocks/navigation/context-switcher/ContextSwitcher.tsx +3 -3
  142. package/src/components/blocks/navigation/top-navbar/TopNavbar.tsx +2 -2
  143. package/src/components/blocks/onboarding/onboarding-welcome/OnboardingWelcome.tsx +3 -3
  144. package/src/components/blocks/onboarding/step-wizard/StepWizard.tsx +1 -1
  145. package/src/components/blocks/profiles/connection-list/ConnectionItem.tsx +3 -3
  146. package/src/components/blocks/profiles/connection-list/ConnectionList.tsx +1 -1
  147. package/src/components/blocks/profiles/profile-header/ProfileHeader.tsx +3 -3
  148. package/src/components/blocks/profiles/profile-stats/ProfileStats.tsx +1 -1
  149. package/src/components/blocks/scheduling/booking-slot/BookingSlot.tsx +1 -1
  150. package/src/components/blocks/scheduling/event-card/EventCard.tsx +3 -3
  151. package/src/components/blocks/scheduling/timeline-row/TimelineRow.tsx +2 -2
  152. package/src/components/blocks/settings/billing-usage/BillingUsage.tsx +3 -3
  153. package/src/components/blocks/settings/integration-card/IntegrationCard.tsx +5 -5
  154. package/src/components/blocks/settings/settings-section/SettingsSection.tsx +1 -1
  155. package/src/components/ui/accordion.tsx +1 -1
  156. package/src/components/ui/alert-dialog.tsx +2 -2
  157. package/src/components/ui/alert.tsx +1 -1
  158. package/src/components/ui/avatar.tsx +1 -1
  159. package/src/components/ui/badge.tsx +7 -1
  160. package/src/components/ui/breadcrumb.tsx +1 -1
  161. package/src/components/ui/button.tsx +8 -1
  162. package/src/components/ui/calendar.tsx +2 -2
  163. package/src/components/ui/card.tsx +1 -1
  164. package/src/components/ui/carousel.tsx +2 -2
  165. package/src/components/ui/chart.tsx +1 -1
  166. package/src/components/ui/checkbox.tsx +1 -1
  167. package/src/components/ui/command.tsx +2 -2
  168. package/src/components/ui/component-placeholder.tsx +1 -1
  169. package/src/components/ui/context-menu.tsx +1 -1
  170. package/src/components/ui/dialog.tsx +1 -1
  171. package/src/components/ui/drawer.tsx +1 -1
  172. package/src/components/ui/dropdown-menu.tsx +1 -1
  173. package/src/components/ui/form.tsx +2 -2
  174. package/src/components/ui/hover-card.tsx +1 -1
  175. package/src/components/ui/input-otp.tsx +1 -1
  176. package/src/components/ui/input.tsx +1 -1
  177. package/src/components/ui/label.tsx +1 -1
  178. package/src/components/ui/menubar.tsx +1 -1
  179. package/src/components/ui/navigation-menu.tsx +1 -1
  180. package/src/components/ui/pagination.tsx +2 -2
  181. package/src/components/ui/popover.tsx +1 -1
  182. package/src/components/ui/progress.tsx +1 -1
  183. package/src/components/ui/radio-group.tsx +1 -1
  184. package/src/components/ui/resizable.tsx +1 -1
  185. package/src/components/ui/scroll-area.tsx +1 -1
  186. package/src/components/ui/select.tsx +1 -1
  187. package/src/components/ui/separator.tsx +1 -1
  188. package/src/components/ui/sheet.tsx +1 -1
  189. package/src/components/ui/skeleton.tsx +1 -1
  190. package/src/components/ui/slider.tsx +1 -1
  191. package/src/components/ui/sonner.tsx +13 -6
  192. package/src/components/ui/switch.tsx +1 -1
  193. package/src/components/ui/table.tsx +1 -1
  194. package/src/components/ui/tabs.tsx +1 -1
  195. package/src/components/ui/textarea.tsx +1 -1
  196. package/src/components/ui/toast.tsx +1 -1
  197. package/src/components/ui/toaster.tsx +1 -1
  198. package/src/components/ui/toggle-group.tsx +2 -2
  199. package/src/components/ui/toggle.tsx +1 -1
  200. package/src/components/ui/tooltip.tsx +1 -1
  201. package/src/hooks/use-toast.ts +1 -1
  202. package/src/styles/tokens.css +1 -1
  203. package/DESIGN_GUIDE.md +0 -148
@@ -0,0 +1,66 @@
1
+ # Visual: Transitions & Animations
2
+
3
+ Motion design for interactive elements.
4
+
5
+ ## Standard Transitions
6
+
7
+ Apply these to all interactive elements:
8
+
9
+ ```html
10
+ <!-- Color change on hover (buttons, links, list items) -->
11
+ className="transition-colors duration-150"
12
+
13
+ <!-- Shadow change on hover (cards) -->
14
+ className="transition-shadow duration-150"
15
+
16
+ <!-- Multi-property transitions -->
17
+ className="transition-all duration-200"
18
+
19
+ <!-- Opacity reveal (show-on-hover elements) -->
20
+ className="opacity-0 group-hover:opacity-100 transition-opacity"
21
+ ```
22
+
23
+ ## Loading Spinner
24
+
25
+ ```tsx
26
+ <Loader2 className="w-4 h-4 animate-spin" />
27
+ ```
28
+
29
+ Always `animate-spin` on `Loader2` icon. Never use custom CSS animations for spinners.
30
+
31
+ ## Hover Effects
32
+
33
+ | Element | Hover Class | Notes |
34
+ |---------|-------------|-------|
35
+ | Buttons | Built into DS components | No extra classes needed |
36
+ | Cards (clickable) | `hover:bg-accent/50 transition-colors` | Subtle background tint |
37
+ | List items | `hover:bg-accent transition-colors` | Slightly stronger than cards |
38
+ | Table rows | Built into `TableRow` | Hover effect is automatic |
39
+ | Icons/actions | `opacity-0 group-hover:opacity-100` | Reveal-on-hover pattern |
40
+ | Links | `hover:text-foreground transition-colors` | On `text-muted-foreground` elements |
41
+
42
+ ## Animation Principles
43
+
44
+ 1. **Subtle is better** — animations should be felt, not seen
45
+ 2. **150ms for color** — fast enough to feel instant, slow enough to be smooth
46
+ 3. **200ms for position/size** — slightly longer for spatial changes
47
+ 4. **300ms for entrances** — dialogs, sheets, dropdowns
48
+ 5. **No animation for data** — text, numbers, and status changes should be instant
49
+
50
+ ## Button Press Effect
51
+
52
+ For a subtle "pressed" feeling:
53
+ ```html
54
+ className="active:scale-[0.98] transition-transform"
55
+ ```
56
+
57
+ ## Staggered Animations
58
+
59
+ For list items appearing on load, use CSS animation delays:
60
+ ```html
61
+ <div v-for="(item, i) in items" :key="item.id"
62
+ className="animate-in fade-in slide-in-from-bottom-2"
63
+ :style="{ animationDelay: `${i * 50}ms` }">
64
+ ```
65
+
66
+ Only use staggered animations for initial page load, not for content that's already visible.
@@ -0,0 +1,66 @@
1
+ # Visual: Typography Hierarchy
2
+
3
+ How to use type scale to create clear information architecture.
4
+
5
+ ## The Hierarchy Stack
6
+
7
+ Every page should have a clear top-to-bottom reading Order:
8
+
9
+ | Level | Classes | Use | Example |
10
+ |-------|---------|-----|---------|
11
+ | **1. Page Title** | `text-2xl font-bold` | One per page, topmost heading | "Dashboard", "Team Members" |
12
+ | **2. Page Subtitle** | `text-muted-foreground` (default size or `text-sm`) | Directly below page title | "Overview of your workspace." |
13
+ | **3. Section Heading** | `text-lg font-semibold` | Separates major content areas | "Recent Activity", "Settings" |
14
+ | **4. Card Title** | Varies by `CardTitle` context | Inside cards/panels | "Total Revenue", "Profile" |
15
+ | **5. Body Text** | `text-sm` | Standard content | Table cells, descriptions |
16
+ | **6. Label** | `text-sm font-medium` | Form labels, nav items | "Email", "Projects" |
17
+ | **7. Caption / Meta** | `text-xs text-muted-foreground` | Timestamps, counts, helper text | "Updated 2 hours ago" |
18
+
19
+ ## Rules
20
+
21
+ 1. **One `text-2xl font-bold` per page** — the page title. Never two.
22
+ 2. **`text-sm` is the default body size** — not `text-base`. This keeps the UI compact and professional.
23
+ 3. **Font weights serve meaning**:
24
+ - `font-bold` (700): Page titles, large stat values
25
+ - `font-semibold` (600): Section headings, card titles
26
+ - `font-medium` (500): Labels, nav items, emphasized body text
27
+ - Default (400): Body text, descriptions
28
+ 4. **Color creates hierarchy too**: `text-foreground` for primary text, `text-muted-foreground` for secondary
29
+
30
+ ## Common Patterns
31
+
32
+ ### Page Header
33
+ ```tsx
34
+ <div>
35
+ <h1 className="text-2xl font-bold">Projects</h1>
36
+ <p className="text-muted-foreground">Manage and track all your projects.</p>
37
+ </div>
38
+ ```
39
+
40
+ ### Section with Content
41
+ ```tsx
42
+ <div className="space-y-4">
43
+ <h2 className="text-lg font-semibold">Recent Activity</h2>
44
+ <!-- content -->
45
+ </div>
46
+ ```
47
+
48
+ ### Stat Display
49
+ ```tsx
50
+ <div className="text-2xl font-bold">$45,231</div>
51
+ <p className="text-xs text-muted-foreground">+20.1% from last month</p>
52
+ ```
53
+
54
+ ## Anti-Patterns
55
+
56
+ ```html
57
+ <!-- ❌ Too many heading sizes — confusing hierarchy -->
58
+ <h1 className="text-3xl">Page</h1>
59
+ <h2 className="text-2xl">Section</h2>
60
+ <h3 className="text-xl">Subsection</h3>
61
+ <h4 className="text-lg">Sub-subsection</h4>
62
+
63
+ <!-- ✅ Clean two-level hierarchy -->
64
+ <h1 className="text-2xl font-bold">Page</h1>
65
+ <h2 className="text-lg font-semibold">Section</h2>
66
+ ```
@@ -1,6 +1,6 @@
1
1
  import React from 'react'
2
- import { cn } from '@/lib/utils'
3
- import { Card, CardContent, CardDescription, CardHeader, CardTitle, CardFooter } from '@/components/ui/card'
2
+ import { cn } from '../../../../lib/utils'
3
+ import { Card, CardContent, CardDescription, CardHeader, CardTitle, CardFooter } from '../../../../components/ui/card'
4
4
 
5
5
  interface AuthCardProps {
6
6
  title: string
@@ -1,6 +1,6 @@
1
1
  import React from 'react'
2
- import { cn } from '@/lib/utils'
3
- import { Button } from '@/components/ui/button'
2
+ import { cn } from '../../../../lib/utils'
3
+ import { Button } from '../../../../components/ui/button'
4
4
  import { Github } from 'lucide-react'
5
5
 
6
6
  interface SocialLoginGroupProps {
@@ -1,8 +1,8 @@
1
1
  import React, { useState } from 'react'
2
- import { cn } from '@/lib/utils'
3
- import { Label } from '@/components/ui/label'
4
- import { Button } from '@/components/ui/button'
5
- import { InputOTP, InputOTPGroup, InputOTPSlot, InputOTPSeparator } from '@/components/ui/input-otp'
2
+ import { cn } from '../../../../lib/utils'
3
+ import { Label } from '../../../../components/ui/label'
4
+ import { Button } from '../../../../components/ui/button'
5
+ import { InputOTP, InputOTPGroup, InputOTPSlot, InputOTPSeparator } from '../../../../components/ui/input-otp'
6
6
 
7
7
  interface TwoFactorFormProps {
8
8
  email?: string
@@ -1,5 +1,5 @@
1
1
  import React from 'react'
2
- import { cn } from '@/lib/utils'
2
+ import { cn } from '../../../../lib/utils'
3
3
 
4
4
  export function ActivityItem({
5
5
  className,
@@ -1,7 +1,7 @@
1
1
  import React from 'react'
2
2
  import type { HTMLAttributes } from 'react'
3
- import { Avatar, AvatarFallback, AvatarImage } from '@/components/ui/avatar'
4
- import { cn } from '@/lib/utils'
3
+ import { Avatar, AvatarFallback, AvatarImage } from '../../../../components/ui/avatar'
4
+ import { cn } from '../../../../lib/utils'
5
5
 
6
6
  interface ActivityItemAvatarProps {
7
7
  src?: string
@@ -1,5 +1,5 @@
1
1
  import React from 'react'
2
- import { cn } from '@/lib/utils'
2
+ import { cn } from '../../../../lib/utils'
3
3
 
4
4
  export function ActivityItemContent({
5
5
  className,
@@ -1,5 +1,5 @@
1
1
  import React from 'react'
2
- import { cn } from '@/lib/utils'
2
+ import { cn } from '../../../../lib/utils'
3
3
 
4
4
  interface ChatBubbleProps extends React.HTMLAttributes<HTMLDivElement> {
5
5
  variant?: 'sent' | 'received'
@@ -1,7 +1,7 @@
1
1
  import React from 'react'
2
2
  import type { HTMLAttributes } from 'react'
3
- import { Avatar, AvatarFallback, AvatarImage } from '@/components/ui/avatar'
4
- import { cn } from '@/lib/utils'
3
+ import { Avatar, AvatarFallback, AvatarImage } from '../../../../components/ui/avatar'
4
+ import { cn } from '../../../../lib/utils'
5
5
 
6
6
  interface ChatBubbleAvatarProps {
7
7
  src?: string
@@ -1,5 +1,5 @@
1
1
  import React from 'react'
2
- import { cn } from '@/lib/utils'
2
+ import { cn } from '../../../../lib/utils'
3
3
 
4
4
  interface ChatBubbleMessageProps extends React.HTMLAttributes<HTMLDivElement> {
5
5
  variant?: 'sent' | 'received'
@@ -1,5 +1,5 @@
1
1
  import React from 'react'
2
- import { cn } from '@/lib/utils'
2
+ import { cn } from '../../../../lib/utils'
3
3
 
4
4
  interface ChatBubbleTimestampProps extends React.HTMLAttributes<HTMLSpanElement> {
5
5
  timestamp: string
@@ -1,8 +1,8 @@
1
1
  import React from 'react'
2
2
  import type { HTMLAttributes } from 'react'
3
- import { cn } from '@/lib/utils'
4
- import { Badge } from '@/components/ui/badge'
5
- import { Avatar, AvatarFallback, AvatarImage } from '@/components/ui/avatar'
3
+ import { cn } from '../../../../lib/utils'
4
+ import { Badge } from '../../../../components/ui/badge'
5
+ import { Avatar, AvatarFallback, AvatarImage } from '../../../../components/ui/avatar'
6
6
 
7
7
  interface ArticleHeaderProps {
8
8
  title: string
@@ -1,9 +1,9 @@
1
1
  import React from 'react'
2
2
  import type { HTMLAttributes, ReactNode } from 'react'
3
- import { Card, CardContent } from '@/components/ui/card'
4
- import { Avatar, AvatarFallback, AvatarImage } from '@/components/ui/avatar'
5
- import { Button } from '@/components/ui/button'
6
- import { cn } from '@/lib/utils'
3
+ import { Card, CardContent } from '../../../../components/ui/card'
4
+ import { Avatar, AvatarFallback, AvatarImage } from '../../../../components/ui/avatar'
5
+ import { Button } from '../../../../components/ui/button'
6
+ import { cn } from '../../../../lib/utils'
7
7
 
8
8
  interface AuthorCardProps {
9
9
  name: string
@@ -1,6 +1,6 @@
1
1
  import React from 'react'
2
2
  import type { HTMLAttributes, ReactNode } from 'react'
3
- import { cn } from '@/lib/utils'
3
+ import { cn } from '../../../../lib/utils'
4
4
 
5
5
  interface RichTextContentProps {
6
6
  className?: HTMLAttributes<HTMLElement>['className']
@@ -1,5 +1,5 @@
1
1
  import React from 'react'
2
- import { cn } from '@/lib/utils'
2
+ import { cn } from '../../../../lib/utils'
3
3
 
4
4
  export function KanbanBoard({ className, children, ...props }: React.HTMLAttributes<HTMLDivElement>) {
5
5
  return (
@@ -1,8 +1,8 @@
1
1
  import React from 'react'
2
- import { cn } from '@/lib/utils'
3
- import { Card, CardContent } from '@/components/ui/card'
4
- import { Badge } from '@/components/ui/badge'
5
- import { Avatar, AvatarFallback, AvatarImage } from '@/components/ui/avatar'
2
+ import { cn } from '../../../../lib/utils'
3
+ import { Card, CardContent } from '../../../../components/ui/card'
4
+ import { Badge } from '../../../../components/ui/badge'
5
+ import { Avatar, AvatarFallback, AvatarImage } from '../../../../components/ui/avatar'
6
6
  import { MessageSquare, Paperclip } from 'lucide-react'
7
7
 
8
8
  interface KanbanCardProps {
@@ -1,8 +1,8 @@
1
1
  import React from 'react'
2
- import { cn } from '@/lib/utils'
3
- import { Badge } from '@/components/ui/badge'
2
+ import { cn } from '../../../../lib/utils'
3
+ import { Badge } from '../../../../components/ui/badge'
4
4
  import { MoreHorizontal, Plus } from 'lucide-react'
5
- import { Button } from '@/components/ui/button'
5
+ import { Button } from '../../../../components/ui/button'
6
6
 
7
7
  interface KanbanColumnProps {
8
8
  title: string
@@ -1,7 +1,7 @@
1
1
  import React, { useState } from 'react'
2
2
  import { ChevronRight, Folder, FolderOpen, File } from 'lucide-react'
3
- import { cn } from '@/lib/utils'
4
- import { Collapsible, CollapsibleContent, CollapsibleTrigger } from '@/components/ui/collapsible'
3
+ import { cn } from '../../../../lib/utils'
4
+ import { Collapsible, CollapsibleContent, CollapsibleTrigger } from '../../../../components/ui/collapsible'
5
5
 
6
6
  interface TreeItemProps {
7
7
  title: string
@@ -1,5 +1,5 @@
1
1
  import React from 'react'
2
- import { cn } from '@/lib/utils'
2
+ import { cn } from '../../../../lib/utils'
3
3
 
4
4
  export function TreeView({ class: className, children }: { class?: string; children?: React.ReactNode }) {
5
5
  return (
@@ -1,5 +1,5 @@
1
1
  import React from 'react'
2
- import { cn } from '@/lib/utils'
2
+ import { cn } from '../../../../lib/utils'
3
3
 
4
4
  interface FinancialTickerProps {
5
5
  symbol: string
@@ -1,7 +1,7 @@
1
1
  import React from 'react'
2
- import { Card, CardContent, CardHeader, CardTitle } from '@/components/ui/card'
2
+ import { Card, CardContent, CardHeader, CardTitle } from '../../../../components/ui/card'
3
3
  import { TrendingUp, TrendingDown, Minus } from 'lucide-react'
4
- import { cn } from '@/lib/utils'
4
+ import { cn } from '../../../../lib/utils'
5
5
 
6
6
  interface KpiCardProps {
7
7
  title: string
@@ -1,5 +1,5 @@
1
1
  import React from 'react'
2
- import { cn } from '@/lib/utils'
2
+ import { cn } from '../../../../lib/utils'
3
3
 
4
4
  interface StatGridProps {
5
5
  columns?: 2 | 3 | 4
@@ -1,7 +1,7 @@
1
1
  import React from 'react'
2
2
  import type { HTMLAttributes } from 'react'
3
- import { CardContent } from '@/components/ui/card'
4
- import { cn } from '@/lib/utils'
3
+ import { CardContent } from '../../../../components/ui/card'
4
+ import { cn } from '../../../../lib/utils'
5
5
  import { Check } from 'lucide-react'
6
6
 
7
7
  interface PricingFeatureListProps {
@@ -1,7 +1,7 @@
1
1
  import React from 'react'
2
2
  import type { HTMLAttributes } from 'react'
3
- import { CardHeader, CardTitle, CardDescription } from '@/components/ui/card'
4
- import { cn } from '@/lib/utils'
3
+ import { CardHeader, CardTitle, CardDescription } from '../../../../components/ui/card'
4
+ import { cn } from '../../../../lib/utils'
5
5
 
6
6
  interface PricingHeaderProps {
7
7
  title: string
@@ -1,7 +1,7 @@
1
1
  import React from 'react'
2
2
  import type { HTMLAttributes } from 'react'
3
- import { Card } from '@/components/ui/card'
4
- import { cn } from '@/lib/utils'
3
+ import { Card } from '../../../../components/ui/card'
4
+ import { cn } from '../../../../lib/utils'
5
5
 
6
6
  interface PricingTierProps {
7
7
  featured?: boolean
@@ -1,7 +1,7 @@
1
1
  import React from 'react'
2
2
  import type { HTMLAttributes } from 'react'
3
- import { Card } from '@/components/ui/card'
4
- import { cn } from '@/lib/utils'
3
+ import { Card } from '../../../../components/ui/card'
4
+ import { cn } from '../../../../lib/utils'
5
5
 
6
6
  interface ProductCardProps {
7
7
  className?: HTMLAttributes<HTMLDivElement>['className']
@@ -1,6 +1,6 @@
1
1
  import React from 'react'
2
- import { CardContent } from '@/components/ui/card'
3
- import { cn } from '@/lib/utils'
2
+ import { CardContent } from '../../../../components/ui/card'
3
+ import { cn } from '../../../../lib/utils'
4
4
 
5
5
  export function ProductCardContent({
6
6
  className,
@@ -1,5 +1,5 @@
1
1
  import React from 'react'
2
- import { cn } from '@/lib/utils'
2
+ import { cn } from '../../../../lib/utils'
3
3
 
4
4
  interface ProductCardImageProps extends React.HTMLAttributes<HTMLDivElement> {
5
5
  src: string
@@ -1,5 +1,5 @@
1
1
  import React from 'react'
2
- import { cn } from '@/lib/utils'
2
+ import { cn } from '../../../../lib/utils'
3
3
 
4
4
  interface ProductCardPriceProps extends React.HTMLAttributes<HTMLDivElement> {
5
5
  price: string
@@ -1,6 +1,6 @@
1
1
  import React from 'react'
2
2
  import { Star, StarHalf } from 'lucide-react'
3
- import { cn } from '@/lib/utils'
3
+ import { cn } from '../../../../lib/utils'
4
4
 
5
5
  interface RatingStarsProps {
6
6
  rating: number
@@ -1,6 +1,6 @@
1
1
  import React from 'react'
2
- import { cn } from '@/lib/utils'
3
- import { Button } from '@/components/ui/button'
2
+ import { cn } from '../../../../lib/utils'
3
+ import { Button } from '../../../../components/ui/button'
4
4
  import { Plus } from 'lucide-react'
5
5
 
6
6
  interface EmptyStateProps {
@@ -1,6 +1,6 @@
1
1
  import React from 'react'
2
- import { cn } from '@/lib/utils'
3
- import { Button } from '@/components/ui/button'
2
+ import { cn } from '../../../../lib/utils'
3
+ import { Button } from '../../../../components/ui/button'
4
4
  import { AlertTriangle, RefreshCcw } from 'lucide-react'
5
5
 
6
6
  interface ErrorStateProps {
@@ -1,6 +1,6 @@
1
1
  import React from 'react'
2
- import { cn } from '@/lib/utils'
3
- import { Button } from '@/components/ui/button'
2
+ import { cn } from '../../../../lib/utils'
3
+ import { Button } from '../../../../components/ui/button'
4
4
  import { Search, Home, ArrowLeft } from 'lucide-react'
5
5
 
6
6
  interface NotFoundStateProps {
@@ -1,6 +1,6 @@
1
1
  import React, { useState } from 'react'
2
- import { cn } from '@/lib/utils'
3
- import { Collapsible, CollapsibleTrigger, CollapsibleContent } from '@/components/ui/collapsible'
2
+ import { cn } from '../../../../lib/utils'
3
+ import { Collapsible, CollapsibleTrigger, CollapsibleContent } from '../../../../components/ui/collapsible'
4
4
  import { ChevronDown } from 'lucide-react'
5
5
 
6
6
  interface FacetedGroupProps {
@@ -1,6 +1,6 @@
1
1
  import React from 'react'
2
- import { cn } from '@/lib/utils'
3
- import { ScrollArea } from '@/components/ui/scroll-area'
2
+ import { cn } from '../../../../lib/utils'
3
+ import { ScrollArea } from '../../../../components/ui/scroll-area'
4
4
 
5
5
  interface FacetedSidebarProps {
6
6
  title?: string
@@ -1,9 +1,9 @@
1
1
  import React from 'react'
2
- import { Input } from '@/components/ui/input'
3
- import { Button } from '@/components/ui/button'
4
- import { Badge } from '@/components/ui/badge'
2
+ import { Input } from '../../../../components/ui/input'
3
+ import { Button } from '../../../../components/ui/button'
4
+ import { Badge } from '../../../../components/ui/badge'
5
5
  import { Search, Filter, X } from 'lucide-react'
6
- import { cn } from '@/lib/utils'
6
+ import { cn } from '../../../../lib/utils'
7
7
 
8
8
  interface FilterBarProps {
9
9
  placeholder?: string
@@ -1,6 +1,6 @@
1
1
  import React from 'react'
2
- import { cn } from '@/lib/utils'
3
- import { Badge } from '@/components/ui/badge'
2
+ import { cn } from '../../../../lib/utils'
3
+ import { Badge } from '../../../../components/ui/badge'
4
4
 
5
5
  interface SearchResultItemProps {
6
6
  title: string
@@ -1,6 +1,6 @@
1
1
  import React from 'react'
2
- import { cn } from '@/lib/utils'
3
- import { Button } from '@/components/ui/button'
2
+ import { cn } from '../../../../lib/utils'
3
+ import { Button } from '../../../../components/ui/button'
4
4
  import { ArrowRight } from 'lucide-react'
5
5
 
6
6
  interface CtaBlockProps {
@@ -1,5 +1,5 @@
1
1
  import React from 'react'
2
- import { cn } from '@/lib/utils'
2
+ import { cn } from '../../../../lib/utils'
3
3
 
4
4
  interface Feature {
5
5
  title: string
@@ -1,7 +1,7 @@
1
1
  import React from 'react'
2
- import { cn } from '@/lib/utils'
3
- import { Button } from '@/components/ui/button'
4
- import { Badge } from '@/components/ui/badge'
2
+ import { cn } from '../../../../lib/utils'
3
+ import { Button } from '../../../../components/ui/button'
4
+ import { Badge } from '../../../../components/ui/badge'
5
5
  import { ArrowRight } from 'lucide-react'
6
6
 
7
7
  interface HeroSectionProps {
@@ -1,8 +1,8 @@
1
1
  import React from 'react'
2
- import { Card, CardContent } from '@/components/ui/card'
3
- import { Avatar, AvatarFallback, AvatarImage } from '@/components/ui/avatar'
2
+ import { Card, CardContent } from '../../../../components/ui/card'
3
+ import { Avatar, AvatarFallback, AvatarImage } from '../../../../components/ui/avatar'
4
4
  import { Star } from 'lucide-react'
5
- import { cn } from '@/lib/utils'
5
+ import { cn } from '../../../../lib/utils'
6
6
 
7
7
  interface TestimonialCardProps {
8
8
  quote: string
@@ -1,7 +1,7 @@
1
1
  import React from 'react'
2
- import { cn } from '@/lib/utils'
3
- import { Button } from '@/components/ui/button'
4
- import { Tooltip, TooltipContent, TooltipProvider, TooltipTrigger } from '@/components/ui/tooltip'
2
+ import { cn } from '../../../../lib/utils'
3
+ import { Button } from '../../../../components/ui/button'
4
+ import { Tooltip, TooltipContent, TooltipProvider, TooltipTrigger } from '../../../../components/ui/tooltip'
5
5
 
6
6
  interface CallControlButtonProps {
7
7
  tooltip?: string
@@ -1,5 +1,5 @@
1
1
  import React from 'react'
2
- import { cn } from '@/lib/utils'
2
+ import { cn } from '../../../../lib/utils'
3
3
 
4
4
  export function CallControls({ className, children }: { className?: string; children?: React.ReactNode }) {
5
5
  return (
@@ -1,5 +1,5 @@
1
1
  import React from 'react'
2
- import { cn } from '@/lib/utils'
2
+ import { cn } from '../../../../lib/utils'
3
3
 
4
4
  export function MediaPlayer({
5
5
  className,
@@ -1,5 +1,5 @@
1
1
  import React from 'react'
2
- import { cn } from '@/lib/utils'
2
+ import { cn } from '../../../../lib/utils'
3
3
 
4
4
  export function MediaPlayerControls({
5
5
  className,
@@ -1,5 +1,5 @@
1
1
  import React from 'react'
2
- import { Slider } from '@/components/ui/slider'
2
+ import { Slider } from '../../../../components/ui/slider'
3
3
 
4
4
  interface MediaPlayerScrubberProps {
5
5
  defaultValue?: number[]
@@ -1,6 +1,6 @@
1
1
  import React from 'react'
2
2
  import type { HTMLAttributes } from 'react'
3
- import { cn } from '@/lib/utils'
3
+ import { cn } from '../../../../lib/utils'
4
4
  import { Play } from 'lucide-react'
5
5
 
6
6
  interface MediaPlayerVideoProps {
@@ -1,6 +1,6 @@
1
1
  import React from 'react'
2
- import { cn } from '@/lib/utils'
3
- import { ScrollArea } from '@/components/ui/scroll-area'
2
+ import { cn } from '../../../../lib/utils'
3
+ import { ScrollArea } from '../../../../components/ui/scroll-area'
4
4
 
5
5
  interface AppSidebarProps {
6
6
  className?: string
@@ -1,5 +1,5 @@
1
1
  import React from 'react'
2
- import { cn } from '@/lib/utils'
2
+ import { cn } from '../../../../lib/utils'
3
3
 
4
4
  interface NavItemProps {
5
5
  href?: string