@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.
- package/README.md +1 -1
- package/SKILL.md +214 -0
- package/package.json +4 -3
- package/skills/apps/analytics.md +103 -0
- package/skills/apps/booking-scheduling.md +97 -0
- package/skills/apps/content-management.md +52 -0
- package/skills/apps/crm.md +80 -0
- package/skills/apps/e-commerce.md +109 -0
- package/skills/apps/education.md +79 -0
- package/skills/apps/finance.md +68 -0
- package/skills/apps/health-fitness.md +72 -0
- package/skills/apps/marketplace.md +99 -0
- package/skills/apps/messaging.md +84 -0
- package/skills/apps/portfolio-personal.md +90 -0
- package/skills/apps/project-management.md +95 -0
- package/skills/apps/saas-dashboard.md +104 -0
- package/skills/apps/social-platform.md +50 -0
- package/skills/blocks/auth.md +106 -0
- package/skills/blocks/communication.md +98 -0
- package/skills/blocks/content.md +107 -0
- package/skills/blocks/data-management.md +109 -0
- package/skills/blocks/data-viz.md +92 -0
- package/skills/blocks/ecommerce.md +126 -0
- package/skills/blocks/feedback.md +97 -0
- package/skills/blocks/filtering.md +127 -0
- package/skills/blocks/marketing.md +136 -0
- package/skills/blocks/media.md +102 -0
- package/skills/blocks/navigation.md +136 -0
- package/skills/blocks/onboarding.md +75 -0
- package/skills/blocks/profiles.md +131 -0
- package/skills/blocks/scheduling.md +117 -0
- package/skills/blocks/settings.md +102 -0
- package/skills/components/advanced-components.md +142 -0
- package/skills/components/avatar.md +92 -0
- package/skills/components/badge.md +105 -0
- package/skills/components/button.md +87 -0
- package/skills/components/card.md +144 -0
- package/skills/components/chart.md +88 -0
- package/skills/components/dialog.md +109 -0
- package/skills/components/dropdown-menu.md +117 -0
- package/skills/components/extended-components.md +187 -0
- package/skills/components/feedback.md +165 -0
- package/skills/components/form.md +112 -0
- package/skills/components/input.md +107 -0
- package/skills/components/map.md +53 -0
- package/skills/components/navigation.md +73 -0
- package/skills/components/overlay.md +77 -0
- package/skills/components/page-header.md +51 -0
- package/skills/components/select.md +175 -0
- package/skills/components/table.md +102 -0
- package/skills/components/tabs.md +105 -0
- package/skills/components/utilities.md +138 -0
- package/skills/devices/desktop.md +43 -0
- package/skills/devices/mobile.md +77 -0
- package/skills/foundation/design-principles.md +77 -0
- package/skills/foundation/design-tokens.md +121 -0
- package/skills/foundation/mockup-generation.md +118 -0
- package/skills/foundation/rules.md +54 -0
- package/skills/foundation/tailwind-usage.md +204 -0
- package/skills/layouts/dashboard.md +71 -0
- package/skills/layouts/full-page-form.md +75 -0
- package/skills/layouts/list-detail.md +70 -0
- package/skills/layouts/marketing.md +70 -0
- package/skills/layouts/responsive.md +67 -0
- package/skills/layouts/settings-page.md +106 -0
- package/skills/layouts/sidebar.md +73 -0
- package/skills/layouts/topbar.md +68 -0
- package/skills/patterns/auth.md +131 -0
- package/skills/patterns/content-display.md +164 -0
- package/skills/patterns/dashboards.md +104 -0
- package/skills/patterns/data-tables.md +113 -0
- package/skills/patterns/empty-states.md +71 -0
- package/skills/patterns/error-states.md +73 -0
- package/skills/patterns/forms.md +136 -0
- package/skills/patterns/loading-states.md +92 -0
- package/skills/patterns/navigation.md +113 -0
- package/skills/patterns/notifications.md +91 -0
- package/skills/patterns/onboarding.md +42 -0
- package/skills/patterns/search.md +55 -0
- package/skills/patterns/settings.md +132 -0
- package/skills/patterns/user-profiles.md +67 -0
- package/skills/personas/business-operator.md +114 -0
- package/skills/personas/consumer-casual.md +60 -0
- package/skills/personas/consumer-power-user.md +109 -0
- package/skills/personas/creative-professional.md +109 -0
- package/skills/personas/enterprise-admin.md +134 -0
- package/skills/visual/color-usage.md +62 -0
- package/skills/visual/dark-mode.md +50 -0
- package/skills/visual/polish-techniques.md +101 -0
- package/skills/visual/spacing-composition.md +69 -0
- package/skills/visual/transitions-animations.md +66 -0
- package/skills/visual/typography-hierarchy.md +66 -0
- package/src/components/blocks/auth/auth-card/AuthCard.tsx +2 -2
- package/src/components/blocks/auth/social-login/SocialLoginGroup.tsx +2 -2
- package/src/components/blocks/auth/two-factor/TwoFactorForm.tsx +4 -4
- package/src/components/blocks/communication/activity-item/ActivityItem.tsx +1 -1
- package/src/components/blocks/communication/activity-item/ActivityItemAvatar.tsx +2 -2
- package/src/components/blocks/communication/activity-item/ActivityItemContent.tsx +1 -1
- package/src/components/blocks/communication/chat-bubble/ChatBubble.tsx +1 -1
- package/src/components/blocks/communication/chat-bubble/ChatBubbleAvatar.tsx +2 -2
- package/src/components/blocks/communication/chat-bubble/ChatBubbleMessage.tsx +1 -1
- package/src/components/blocks/communication/chat-bubble/ChatBubbleTimestamp.tsx +1 -1
- package/src/components/blocks/content/article-header/ArticleHeader.tsx +3 -3
- package/src/components/blocks/content/author-card/AuthorCard.tsx +4 -4
- package/src/components/blocks/content/rich-text/RichTextContent.tsx +1 -1
- package/src/components/blocks/data-management/kanban/KanbanBoard.tsx +1 -1
- package/src/components/blocks/data-management/kanban/KanbanCard.tsx +4 -4
- package/src/components/blocks/data-management/kanban/KanbanColumn.tsx +3 -3
- package/src/components/blocks/data-management/tree-view/TreeItem.tsx +2 -2
- package/src/components/blocks/data-management/tree-view/TreeView.tsx +1 -1
- package/src/components/blocks/data-viz/financial-ticker/FinancialTicker.tsx +1 -1
- package/src/components/blocks/data-viz/kpi-card/KpiCard.tsx +2 -2
- package/src/components/blocks/data-viz/stat-grid/StatGrid.tsx +1 -1
- package/src/components/blocks/ecommerce/pricing-tier/PricingFeatureList.tsx +2 -2
- package/src/components/blocks/ecommerce/pricing-tier/PricingHeader.tsx +2 -2
- package/src/components/blocks/ecommerce/pricing-tier/PricingTier.tsx +2 -2
- package/src/components/blocks/ecommerce/product-card/ProductCard.tsx +2 -2
- package/src/components/blocks/ecommerce/product-card/ProductCardContent.tsx +2 -2
- package/src/components/blocks/ecommerce/product-card/ProductCardImage.tsx +1 -1
- package/src/components/blocks/ecommerce/product-card/ProductCardPrice.tsx +1 -1
- package/src/components/blocks/ecommerce/rating-summary/RatingStars.tsx +1 -1
- package/src/components/blocks/feedback/empty-state/EmptyState.tsx +2 -2
- package/src/components/blocks/feedback/error-state/ErrorState.tsx +2 -2
- package/src/components/blocks/feedback/not-found/NotFoundState.tsx +2 -2
- package/src/components/blocks/filtering/faceted-sidebar/FacetedGroup.tsx +2 -2
- package/src/components/blocks/filtering/faceted-sidebar/FacetedSidebar.tsx +2 -2
- package/src/components/blocks/filtering/filter-bar/FilterBar.tsx +4 -4
- package/src/components/blocks/filtering/search-result/SearchResultItem.tsx +2 -2
- package/src/components/blocks/marketing/cta-block/CtaBlock.tsx +2 -2
- package/src/components/blocks/marketing/feature-grid/FeatureGrid.tsx +1 -1
- package/src/components/blocks/marketing/hero-section/HeroSection.tsx +3 -3
- package/src/components/blocks/marketing/testimonial-card/TestimonialCard.tsx +3 -3
- package/src/components/blocks/media/call-controls/CallControlButton.tsx +3 -3
- package/src/components/blocks/media/call-controls/CallControls.tsx +1 -1
- package/src/components/blocks/media/media-player/MediaPlayer.tsx +1 -1
- package/src/components/blocks/media/media-player/MediaPlayerControls.tsx +1 -1
- package/src/components/blocks/media/media-player/MediaPlayerScrubber.tsx +1 -1
- package/src/components/blocks/media/media-player/MediaPlayerVideo.tsx +1 -1
- package/src/components/blocks/navigation/app-sidebar/AppSidebar.tsx +2 -2
- package/src/components/blocks/navigation/app-sidebar/NavItem.tsx +1 -1
- package/src/components/blocks/navigation/context-switcher/ContextSwitcher.tsx +3 -3
- package/src/components/blocks/navigation/top-navbar/TopNavbar.tsx +2 -2
- package/src/components/blocks/onboarding/onboarding-welcome/OnboardingWelcome.tsx +3 -3
- package/src/components/blocks/onboarding/step-wizard/StepWizard.tsx +1 -1
- package/src/components/blocks/profiles/connection-list/ConnectionItem.tsx +3 -3
- package/src/components/blocks/profiles/connection-list/ConnectionList.tsx +1 -1
- package/src/components/blocks/profiles/profile-header/ProfileHeader.tsx +3 -3
- package/src/components/blocks/profiles/profile-stats/ProfileStats.tsx +1 -1
- package/src/components/blocks/scheduling/booking-slot/BookingSlot.tsx +1 -1
- package/src/components/blocks/scheduling/event-card/EventCard.tsx +3 -3
- package/src/components/blocks/scheduling/timeline-row/TimelineRow.tsx +2 -2
- package/src/components/blocks/settings/billing-usage/BillingUsage.tsx +3 -3
- package/src/components/blocks/settings/integration-card/IntegrationCard.tsx +5 -5
- package/src/components/blocks/settings/settings-section/SettingsSection.tsx +1 -1
- package/src/components/ui/accordion.tsx +1 -1
- package/src/components/ui/alert-dialog.tsx +2 -2
- package/src/components/ui/alert.tsx +1 -1
- package/src/components/ui/avatar.tsx +1 -1
- package/src/components/ui/badge.tsx +7 -1
- package/src/components/ui/breadcrumb.tsx +1 -1
- package/src/components/ui/button.tsx +8 -1
- package/src/components/ui/calendar.tsx +2 -2
- package/src/components/ui/card.tsx +1 -1
- package/src/components/ui/carousel.tsx +2 -2
- package/src/components/ui/chart.tsx +1 -1
- package/src/components/ui/checkbox.tsx +1 -1
- package/src/components/ui/command.tsx +2 -2
- package/src/components/ui/component-placeholder.tsx +1 -1
- package/src/components/ui/context-menu.tsx +1 -1
- package/src/components/ui/dialog.tsx +1 -1
- package/src/components/ui/drawer.tsx +1 -1
- package/src/components/ui/dropdown-menu.tsx +1 -1
- package/src/components/ui/form.tsx +2 -2
- package/src/components/ui/hover-card.tsx +1 -1
- package/src/components/ui/input-otp.tsx +1 -1
- package/src/components/ui/input.tsx +1 -1
- package/src/components/ui/label.tsx +1 -1
- package/src/components/ui/menubar.tsx +1 -1
- package/src/components/ui/navigation-menu.tsx +1 -1
- package/src/components/ui/pagination.tsx +2 -2
- package/src/components/ui/popover.tsx +1 -1
- package/src/components/ui/progress.tsx +1 -1
- package/src/components/ui/radio-group.tsx +1 -1
- package/src/components/ui/resizable.tsx +1 -1
- package/src/components/ui/scroll-area.tsx +1 -1
- package/src/components/ui/select.tsx +1 -1
- package/src/components/ui/separator.tsx +1 -1
- package/src/components/ui/sheet.tsx +1 -1
- package/src/components/ui/skeleton.tsx +1 -1
- package/src/components/ui/slider.tsx +1 -1
- package/src/components/ui/sonner.tsx +13 -6
- package/src/components/ui/switch.tsx +1 -1
- package/src/components/ui/table.tsx +1 -1
- package/src/components/ui/tabs.tsx +1 -1
- package/src/components/ui/textarea.tsx +1 -1
- package/src/components/ui/toast.tsx +1 -1
- package/src/components/ui/toaster.tsx +1 -1
- package/src/components/ui/toggle-group.tsx +2 -2
- package/src/components/ui/toggle.tsx +1 -1
- package/src/components/ui/tooltip.tsx +1 -1
- package/src/hooks/use-toast.ts +1 -1
- package/src/styles/tokens.css +1 -1
- 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 '
|
|
3
|
-
import { Card, CardContent, CardDescription, CardHeader, CardTitle, CardFooter } from '
|
|
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 '
|
|
3
|
-
import { Button } from '
|
|
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 '
|
|
3
|
-
import { Label } from '
|
|
4
|
-
import { Button } from '
|
|
5
|
-
import { InputOTP, InputOTPGroup, InputOTPSlot, InputOTPSeparator } from '
|
|
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,7 +1,7 @@
|
|
|
1
1
|
import React from 'react'
|
|
2
2
|
import type { HTMLAttributes } from 'react'
|
|
3
|
-
import { Avatar, AvatarFallback, AvatarImage } from '
|
|
4
|
-
import { cn } from '
|
|
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,7 +1,7 @@
|
|
|
1
1
|
import React from 'react'
|
|
2
2
|
import type { HTMLAttributes } from 'react'
|
|
3
|
-
import { Avatar, AvatarFallback, AvatarImage } from '
|
|
4
|
-
import { cn } from '
|
|
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,8 +1,8 @@
|
|
|
1
1
|
import React from 'react'
|
|
2
2
|
import type { HTMLAttributes } from 'react'
|
|
3
|
-
import { cn } from '
|
|
4
|
-
import { Badge } from '
|
|
5
|
-
import { Avatar, AvatarFallback, AvatarImage } from '
|
|
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 '
|
|
4
|
-
import { Avatar, AvatarFallback, AvatarImage } from '
|
|
5
|
-
import { Button } from '
|
|
6
|
-
import { cn } from '
|
|
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,8 +1,8 @@
|
|
|
1
1
|
import React from 'react'
|
|
2
|
-
import { cn } from '
|
|
3
|
-
import { Card, CardContent } from '
|
|
4
|
-
import { Badge } from '
|
|
5
|
-
import { Avatar, AvatarFallback, AvatarImage } from '
|
|
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 '
|
|
3
|
-
import { Badge } from '
|
|
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 '
|
|
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 '
|
|
4
|
-
import { Collapsible, CollapsibleContent, CollapsibleTrigger } from '
|
|
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,7 +1,7 @@
|
|
|
1
1
|
import React from 'react'
|
|
2
|
-
import { Card, CardContent, CardHeader, CardTitle } from '
|
|
2
|
+
import { Card, CardContent, CardHeader, CardTitle } from '../../../../components/ui/card'
|
|
3
3
|
import { TrendingUp, TrendingDown, Minus } from 'lucide-react'
|
|
4
|
-
import { cn } from '
|
|
4
|
+
import { cn } from '../../../../lib/utils'
|
|
5
5
|
|
|
6
6
|
interface KpiCardProps {
|
|
7
7
|
title: string
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import React from 'react'
|
|
2
2
|
import type { HTMLAttributes } from 'react'
|
|
3
|
-
import { CardContent } from '
|
|
4
|
-
import { cn } from '
|
|
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 '
|
|
4
|
-
import { cn } from '
|
|
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 '
|
|
4
|
-
import { cn } from '
|
|
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 '
|
|
4
|
-
import { cn } from '
|
|
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 '
|
|
3
|
-
import { cn } from '
|
|
2
|
+
import { CardContent } from '../../../../components/ui/card'
|
|
3
|
+
import { cn } from '../../../../lib/utils'
|
|
4
4
|
|
|
5
5
|
export function ProductCardContent({
|
|
6
6
|
className,
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import React from 'react'
|
|
2
|
-
import { cn } from '
|
|
3
|
-
import { Button } from '
|
|
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 '
|
|
3
|
-
import { Button } from '
|
|
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 '
|
|
3
|
-
import { Button } from '
|
|
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 '
|
|
3
|
-
import { Collapsible, CollapsibleTrigger, CollapsibleContent } from '
|
|
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 '
|
|
3
|
-
import { ScrollArea } from '
|
|
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 '
|
|
3
|
-
import { Button } from '
|
|
4
|
-
import { Badge } from '
|
|
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 '
|
|
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 '
|
|
3
|
-
import { Button } from '
|
|
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,7 +1,7 @@
|
|
|
1
1
|
import React from 'react'
|
|
2
|
-
import { cn } from '
|
|
3
|
-
import { Button } from '
|
|
4
|
-
import { Badge } from '
|
|
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 '
|
|
3
|
-
import { Avatar, AvatarFallback, AvatarImage } from '
|
|
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 '
|
|
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 '
|
|
3
|
-
import { Button } from '
|
|
4
|
-
import { Tooltip, TooltipContent, TooltipProvider, TooltipTrigger } from '
|
|
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,6 +1,6 @@
|
|
|
1
1
|
import React from 'react'
|
|
2
|
-
import { cn } from '
|
|
3
|
-
import { ScrollArea } from '
|
|
2
|
+
import { cn } from '../../../../lib/utils'
|
|
3
|
+
import { ScrollArea } from '../../../../components/ui/scroll-area'
|
|
4
4
|
|
|
5
5
|
interface AppSidebarProps {
|
|
6
6
|
className?: string
|