@create-lft-app/cli 1.0.14 → 1.1.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/dist/bin/cli.js +13 -146
- package/dist/bin/cli.js.map +1 -1
- package/dist/src/index.js +11 -144
- package/dist/src/index.js.map +1 -1
- package/package.json +1 -1
- package/templates/app/auth/login/page.tsx +0 -153
- package/templates/app/dashboard/page.tsx +0 -102
- package/templates/app/globals.css +0 -249
- package/templates/app/layout.tsx +0 -40
- package/templates/app/page.tsx +0 -5
- package/templates/components/dashboard/widget.tsx +0 -113
- package/templates/components/layout/admin-midday-sidebar.tsx +0 -247
- package/templates/components/layout/admin-sidebar.tsx +0 -146
- package/templates/components/layout/header.tsx +0 -71
- package/templates/components/layout/main-content.tsx +0 -28
- package/templates/components/layout/midday-sidebar.tsx +0 -381
- package/templates/components/layout/nav-user.tsx +0 -108
- package/templates/components/layout/page-header.tsx +0 -95
- package/templates/components/layout/sidebar-context.tsx +0 -33
- package/templates/components/layout/sidebar.tsx +0 -194
- package/templates/components/layout/suspension-banner.tsx +0 -21
- package/templates/components/ui/accordion.tsx +0 -58
- package/templates/components/ui/alert-dialog.tsx +0 -165
- package/templates/components/ui/alert.tsx +0 -66
- package/templates/components/ui/avatar.tsx +0 -55
- package/templates/components/ui/badge.tsx +0 -50
- package/templates/components/ui/button.tsx +0 -89
- package/templates/components/ui/calendar.tsx +0 -220
- package/templates/components/ui/card.tsx +0 -89
- package/templates/components/ui/checkbox.tsx +0 -38
- package/templates/components/ui/collapsible.tsx +0 -33
- package/templates/components/ui/command.tsx +0 -196
- package/templates/components/ui/dialog.tsx +0 -153
- package/templates/components/ui/dropdown-menu.tsx +0 -280
- package/templates/components/ui/form.tsx +0 -171
- package/templates/components/ui/icons.tsx +0 -167
- package/templates/components/ui/input.tsx +0 -28
- package/templates/components/ui/label.tsx +0 -25
- package/templates/components/ui/popover.tsx +0 -59
- package/templates/components/ui/progress.tsx +0 -32
- package/templates/components/ui/radio-group.tsx +0 -45
- package/templates/components/ui/scroll-area.tsx +0 -63
- package/templates/components/ui/select.tsx +0 -208
- package/templates/components/ui/separator.tsx +0 -28
- package/templates/components/ui/sheet.tsx +0 -146
- package/templates/components/ui/sidebar.tsx +0 -726
- package/templates/components/ui/skeleton.tsx +0 -15
- package/templates/components/ui/slider.tsx +0 -58
- package/templates/components/ui/sonner.tsx +0 -47
- package/templates/components/ui/spinner.tsx +0 -27
- package/templates/components/ui/submit-button.tsx +0 -47
- package/templates/components/ui/switch.tsx +0 -31
- package/templates/components/ui/table.tsx +0 -120
- package/templates/components/ui/tabs.tsx +0 -75
- package/templates/components/ui/textarea.tsx +0 -26
- package/templates/components/ui/tooltip.tsx +0 -70
- package/templates/hooks/use-mobile.ts +0 -21
- package/templates/lib/supabase/client.ts +0 -8
- package/templates/lib/supabase/server.ts +0 -29
- package/templates/lib/utils.ts +0 -6
- package/templates/modules/auth/actions/auth-actions.ts +0 -12
|
@@ -1,167 +0,0 @@
|
|
|
1
|
-
'use client'
|
|
2
|
-
|
|
3
|
-
import * as React from 'react'
|
|
4
|
-
import { cn } from '@/lib/utils'
|
|
5
|
-
|
|
6
|
-
interface SVGIconProps extends React.SVGProps<SVGSVGElement> {
|
|
7
|
-
size?: number
|
|
8
|
-
}
|
|
9
|
-
|
|
10
|
-
const SVGIcon = React.forwardRef<SVGSVGElement, SVGIconProps>(
|
|
11
|
-
({ size = 20, className, children, viewBox = '0 0 20 20', ...props }, ref) => (
|
|
12
|
-
<svg
|
|
13
|
-
ref={ref}
|
|
14
|
-
width={size}
|
|
15
|
-
height={size}
|
|
16
|
-
viewBox={viewBox}
|
|
17
|
-
fill="currentColor"
|
|
18
|
-
className={cn('shrink-0', className)}
|
|
19
|
-
{...props}
|
|
20
|
-
>
|
|
21
|
-
{children}
|
|
22
|
-
</svg>
|
|
23
|
-
)
|
|
24
|
-
)
|
|
25
|
-
SVGIcon.displayName = 'SVGIcon'
|
|
26
|
-
|
|
27
|
-
export const Icons = {
|
|
28
|
-
Logo: ({ size = 28, className, ...props }: SVGIconProps) => (
|
|
29
|
-
<SVGIcon size={size} viewBox="0 0 28 28" className={className} {...props}>
|
|
30
|
-
<rect width="28" height="28" rx="6" fill="currentColor" />
|
|
31
|
-
<text x="50%" y="55%" dominantBaseline="middle" textAnchor="middle" fill="white" fontSize="14" fontWeight="bold">
|
|
32
|
-
R
|
|
33
|
-
</text>
|
|
34
|
-
</SVGIcon>
|
|
35
|
-
),
|
|
36
|
-
|
|
37
|
-
Dashboard: ({ size = 20, className, ...props }: SVGIconProps) => (
|
|
38
|
-
<SVGIcon size={size} viewBox="0 0 24 24" className={className} fill="none" stroke="currentColor" strokeWidth={1.5} {...props}>
|
|
39
|
-
<path strokeLinecap="round" strokeLinejoin="round" d="M3.75 6A2.25 2.25 0 0 1 6 3.75h2.25A2.25 2.25 0 0 1 10.5 6v2.25a2.25 2.25 0 0 1-2.25 2.25H6a2.25 2.25 0 0 1-2.25-2.25V6ZM3.75 15.75A2.25 2.25 0 0 1 6 13.5h2.25a2.25 2.25 0 0 1 2.25 2.25V18a2.25 2.25 0 0 1-2.25 2.25H6A2.25 2.25 0 0 1 3.75 18v-2.25ZM13.5 6a2.25 2.25 0 0 1 2.25-2.25H18A2.25 2.25 0 0 1 20.25 6v2.25A2.25 2.25 0 0 1 18 10.5h-2.25a2.25 2.25 0 0 1-2.25-2.25V6ZM13.5 15.75a2.25 2.25 0 0 1 2.25-2.25H18a2.25 2.25 0 0 1 2.25 2.25V18A2.25 2.25 0 0 1 18 20.25h-2.25A2.25 2.25 0 0 1 13.5 18v-2.25Z" />
|
|
40
|
-
</SVGIcon>
|
|
41
|
-
),
|
|
42
|
-
|
|
43
|
-
Users: ({ size = 20, className, ...props }: SVGIconProps) => (
|
|
44
|
-
<SVGIcon size={size} viewBox="0 0 24 24" className={className} fill="none" stroke="currentColor" strokeWidth={1.5} {...props}>
|
|
45
|
-
<path strokeLinecap="round" strokeLinejoin="round" d="M15 19.128a9.38 9.38 0 0 0 2.625.372 9.337 9.337 0 0 0 4.121-.952 4.125 4.125 0 0 0-7.533-2.493M15 19.128v-.003c0-1.113-.285-2.16-.786-3.07M15 19.128v.106A12.318 12.318 0 0 1 8.624 21c-2.331 0-4.512-.645-6.374-1.766l-.001-.109a6.375 6.375 0 0 1 11.964-3.07M12 6.375a3.375 3.375 0 1 1-6.75 0 3.375 3.375 0 0 1 6.75 0Zm8.25 2.25a2.625 2.625 0 1 1-5.25 0 2.625 2.625 0 0 1 5.25 0Z" />
|
|
46
|
-
</SVGIcon>
|
|
47
|
-
),
|
|
48
|
-
|
|
49
|
-
Documents: ({ size = 20, className, ...props }: SVGIconProps) => (
|
|
50
|
-
<SVGIcon size={size} viewBox="0 0 24 24" className={className} fill="none" stroke="currentColor" strokeWidth={1.5} {...props}>
|
|
51
|
-
<path strokeLinecap="round" strokeLinejoin="round" d="M19.5 14.25v-2.625a3.375 3.375 0 0 0-3.375-3.375h-1.5A1.125 1.125 0 0 1 13.5 7.125v-1.5a3.375 3.375 0 0 0-3.375-3.375H8.25m0 12.75h7.5m-7.5 3H12M10.5 2.25H5.625c-.621 0-1.125.504-1.125 1.125v17.25c0 .621.504 1.125 1.125 1.125h12.75c.621 0 1.125-.504 1.125-1.125V11.25a9 9 0 0 0-9-9Z" />
|
|
52
|
-
</SVGIcon>
|
|
53
|
-
),
|
|
54
|
-
|
|
55
|
-
Alert: ({ size = 20, className, ...props }: SVGIconProps) => (
|
|
56
|
-
<SVGIcon size={size} viewBox="0 0 24 24" className={className} fill="none" stroke="currentColor" strokeWidth={1.5} {...props}>
|
|
57
|
-
<path strokeLinecap="round" strokeLinejoin="round" d="M12 9v3.75m-9.303 3.376c-.866 1.5.217 3.374 1.948 3.374h14.71c1.73 0 2.813-1.874 1.948-3.374L13.949 3.378c-.866-1.5-3.032-1.5-3.898 0L2.697 16.126ZM12 15.75h.007v.008H12v-.008Z" />
|
|
58
|
-
</SVGIcon>
|
|
59
|
-
),
|
|
60
|
-
|
|
61
|
-
Operations: ({ size = 20, className, ...props }: SVGIconProps) => (
|
|
62
|
-
<SVGIcon size={size} viewBox="0 0 24 24" className={className} fill="none" stroke="currentColor" strokeWidth={1.5} {...props}>
|
|
63
|
-
<path strokeLinecap="round" strokeLinejoin="round" d="M3 13.125C3 12.504 3.504 12 4.125 12h2.25c.621 0 1.125.504 1.125 1.125v6.75C7.5 20.496 6.996 21 6.375 21h-2.25A1.125 1.125 0 0 1 3 19.875v-6.75ZM9.75 8.625c0-.621.504-1.125 1.125-1.125h2.25c.621 0 1.125.504 1.125 1.125v11.25c0 .621-.504 1.125-1.125 1.125h-2.25a1.125 1.125 0 0 1-1.125-1.125V8.625ZM16.5 4.125c0-.621.504-1.125 1.125-1.125h2.25C20.496 3 21 3.504 21 4.125v15.75c0 .621-.504 1.125-1.125 1.125h-2.25a1.125 1.125 0 0 1-1.125-1.125V4.125Z" />
|
|
64
|
-
</SVGIcon>
|
|
65
|
-
),
|
|
66
|
-
|
|
67
|
-
Calendar: ({ size = 20, className, ...props }: SVGIconProps) => (
|
|
68
|
-
<SVGIcon size={size} viewBox="0 0 24 24" className={className} fill="none" stroke="currentColor" strokeWidth={1.5} {...props}>
|
|
69
|
-
<path strokeLinecap="round" strokeLinejoin="round" d="M6.75 3v2.25M17.25 3v2.25M3 18.75V7.5a2.25 2.25 0 0 1 2.25-2.25h13.5A2.25 2.25 0 0 1 21 7.5v11.25m-18 0A2.25 2.25 0 0 0 5.25 21h13.5A2.25 2.25 0 0 0 21 18.75m-18 0v-7.5A2.25 2.25 0 0 1 5.25 9h13.5A2.25 2.25 0 0 1 21 11.25v7.5" />
|
|
70
|
-
</SVGIcon>
|
|
71
|
-
),
|
|
72
|
-
|
|
73
|
-
Settings: ({ size = 20, className, ...props }: SVGIconProps) => (
|
|
74
|
-
<SVGIcon size={size} viewBox="0 0 24 24" className={className} fill="none" stroke="currentColor" strokeWidth={1.5} {...props}>
|
|
75
|
-
<path strokeLinecap="round" strokeLinejoin="round" d="M9.594 3.94c.09-.542.56-.94 1.11-.94h2.593c.55 0 1.02.398 1.11.94l.213 1.281c.063.374.313.686.645.87.074.04.147.083.22.127.325.196.72.257 1.075.124l1.217-.456a1.125 1.125 0 0 1 1.37.49l1.296 2.247a1.125 1.125 0 0 1-.26 1.431l-1.003.827c-.293.241-.438.613-.43.992a7.723 7.723 0 0 1 0 .255c-.008.378.137.75.43.991l1.004.827c.424.35.534.955.26 1.43l-1.298 2.247a1.125 1.125 0 0 1-1.369.491l-1.217-.456c-.355-.133-.75-.072-1.076.124a6.47 6.47 0 0 1-.22.128c-.331.183-.581.495-.644.869l-.213 1.281c-.09.543-.56.94-1.11.94h-2.594c-.55 0-1.019-.398-1.11-.94l-.213-1.281c-.062-.374-.312-.686-.644-.87a6.52 6.52 0 0 1-.22-.127c-.325-.196-.72-.257-1.076-.124l-1.217.456a1.125 1.125 0 0 1-1.369-.49l-1.297-2.247a1.125 1.125 0 0 1 .26-1.431l1.004-.827c.292-.24.437-.613.43-.991a6.932 6.932 0 0 1 0-.255c.007-.38-.138-.751-.43-.992l-1.004-.827a1.125 1.125 0 0 1-.26-1.43l1.297-2.247a1.125 1.125 0 0 1 1.37-.491l1.216.456c.356.133.751.072 1.076-.124.072-.044.146-.086.22-.128.332-.183.582-.495.644-.869l.214-1.28Z" />
|
|
76
|
-
<path strokeLinecap="round" strokeLinejoin="round" d="M15 12a3 3 0 1 1-6 0 3 3 0 0 1 6 0Z" />
|
|
77
|
-
</SVGIcon>
|
|
78
|
-
),
|
|
79
|
-
|
|
80
|
-
Building: ({ size = 20, className, ...props }: SVGIconProps) => (
|
|
81
|
-
<SVGIcon size={size} viewBox="0 0 24 24" className={className} fill="none" stroke="currentColor" strokeWidth={1.5} {...props}>
|
|
82
|
-
<path strokeLinecap="round" strokeLinejoin="round" d="M2.25 21h19.5m-18-18v18m10.5-18v18m6-13.5V21M6.75 6.75h.75m-.75 3h.75m-.75 3h.75m3-6h.75m-.75 3h.75m-.75 3h.75M6.75 21v-3.375c0-.621.504-1.125 1.125-1.125h2.25c.621 0 1.125.504 1.125 1.125V21M3 3h12m-.75 4.5H21m-3.75 3H21m-3.75 3H21" />
|
|
83
|
-
</SVGIcon>
|
|
84
|
-
),
|
|
85
|
-
|
|
86
|
-
Shield: ({ size = 20, className, ...props }: SVGIconProps) => (
|
|
87
|
-
<SVGIcon size={size} viewBox="0 0 24 24" className={className} fill="none" stroke="currentColor" strokeWidth={1.5} {...props}>
|
|
88
|
-
<path strokeLinecap="round" strokeLinejoin="round" d="M9 12.75 11.25 15 15 9.75m-3-7.036A11.959 11.959 0 0 1 3.598 6 11.99 11.99 0 0 0 3 9.749c0 5.592 3.824 10.29 9 11.623 5.176-1.332 9-6.03 9-11.622 0-1.31-.21-2.571-.598-3.751h-.152c-3.196 0-6.1-1.248-8.25-3.285Z" />
|
|
89
|
-
</SVGIcon>
|
|
90
|
-
),
|
|
91
|
-
|
|
92
|
-
ChevronRight: ({ size = 16, className, ...props }: SVGIconProps) => (
|
|
93
|
-
<SVGIcon size={size} viewBox="0 0 24 24" className={className} fill="none" stroke="currentColor" strokeWidth={2} {...props}>
|
|
94
|
-
<path strokeLinecap="round" strokeLinejoin="round" d="m8.25 4.5 7.5 7.5-7.5 7.5" />
|
|
95
|
-
</SVGIcon>
|
|
96
|
-
),
|
|
97
|
-
|
|
98
|
-
ChevronDown: ({ size = 16, className, ...props }: SVGIconProps) => (
|
|
99
|
-
<SVGIcon size={size} viewBox="0 0 24 24" className={className} fill="none" stroke="currentColor" strokeWidth={2} {...props}>
|
|
100
|
-
<path strokeLinecap="round" strokeLinejoin="round" d="m19.5 8.25-7.5 7.5-7.5-7.5" />
|
|
101
|
-
</SVGIcon>
|
|
102
|
-
),
|
|
103
|
-
|
|
104
|
-
User: ({ size = 20, className, ...props }: SVGIconProps) => (
|
|
105
|
-
<SVGIcon size={size} viewBox="0 0 24 24" className={className} fill="none" stroke="currentColor" strokeWidth={1.5} {...props}>
|
|
106
|
-
<path strokeLinecap="round" strokeLinejoin="round" d="M15.75 6a3.75 3.75 0 1 1-7.5 0 3.75 3.75 0 0 1 7.5 0ZM4.501 20.118a7.5 7.5 0 0 1 14.998 0A17.933 17.933 0 0 1 12 21.75c-2.676 0-5.216-.584-7.499-1.632Z" />
|
|
107
|
-
</SVGIcon>
|
|
108
|
-
),
|
|
109
|
-
|
|
110
|
-
LogOut: ({ size = 20, className, ...props }: SVGIconProps) => (
|
|
111
|
-
<SVGIcon size={size} viewBox="0 0 24 24" className={className} fill="none" stroke="currentColor" strokeWidth={1.5} {...props}>
|
|
112
|
-
<path strokeLinecap="round" strokeLinejoin="round" d="M8.25 9V5.25A2.25 2.25 0 0 1 10.5 3h6a2.25 2.25 0 0 1 2.25 2.25v13.5A2.25 2.25 0 0 1 16.5 21h-6a2.25 2.25 0 0 1-2.25-2.25V15m-3 0-3-3m0 0 3-3m-3 3H15" />
|
|
113
|
-
</SVGIcon>
|
|
114
|
-
),
|
|
115
|
-
|
|
116
|
-
Add: ({ size = 16, className, ...props }: SVGIconProps) => (
|
|
117
|
-
<SVGIcon size={size} viewBox="0 0 24 24" className={className} fill="none" stroke="currentColor" strokeWidth={2} {...props}>
|
|
118
|
-
<path strokeLinecap="round" strokeLinejoin="round" d="M12 4.5v15m7.5-7.5h-15" />
|
|
119
|
-
</SVGIcon>
|
|
120
|
-
),
|
|
121
|
-
|
|
122
|
-
Close: ({ size = 16, className, ...props }: SVGIconProps) => (
|
|
123
|
-
<SVGIcon size={size} viewBox="0 0 24 24" className={className} fill="none" stroke="currentColor" strokeWidth={2} {...props}>
|
|
124
|
-
<path strokeLinecap="round" strokeLinejoin="round" d="M6 18 18 6M6 6l12 12" />
|
|
125
|
-
</SVGIcon>
|
|
126
|
-
),
|
|
127
|
-
|
|
128
|
-
Search: ({ size = 20, className, ...props }: SVGIconProps) => (
|
|
129
|
-
<SVGIcon size={size} viewBox="0 0 24 24" className={className} fill="none" stroke="currentColor" strokeWidth={1.5} {...props}>
|
|
130
|
-
<path strokeLinecap="round" strokeLinejoin="round" d="m21 21-5.197-5.197m0 0A7.5 7.5 0 1 0 5.196 5.196a7.5 7.5 0 0 0 10.607 10.607Z" />
|
|
131
|
-
</SVGIcon>
|
|
132
|
-
),
|
|
133
|
-
|
|
134
|
-
MoreVertical: ({ size = 20, className, ...props }: SVGIconProps) => (
|
|
135
|
-
<SVGIcon size={size} viewBox="0 0 24 24" className={className} fill="none" stroke="currentColor" strokeWidth={1.5} {...props}>
|
|
136
|
-
<path strokeLinecap="round" strokeLinejoin="round" d="M12 6.75a.75.75 0 1 1 0-1.5.75.75 0 0 1 0 1.5ZM12 12.75a.75.75 0 1 1 0-1.5.75.75 0 0 1 0 1.5ZM12 18.75a.75.75 0 1 1 0-1.5.75.75 0 0 1 0 1.5Z" />
|
|
137
|
-
</SVGIcon>
|
|
138
|
-
),
|
|
139
|
-
|
|
140
|
-
Check: ({ size = 16, className, ...props }: SVGIconProps) => (
|
|
141
|
-
<SVGIcon size={size} viewBox="0 0 24 24" className={className} fill="none" stroke="currentColor" strokeWidth={2} {...props}>
|
|
142
|
-
<path strokeLinecap="round" strokeLinejoin="round" d="m4.5 12.75 6 6 9-13.5" />
|
|
143
|
-
</SVGIcon>
|
|
144
|
-
),
|
|
145
|
-
|
|
146
|
-
Spinner: ({ size = 20, className, ...props }: SVGIconProps) => (
|
|
147
|
-
<SVGIcon
|
|
148
|
-
size={size}
|
|
149
|
-
viewBox="0 0 24 24"
|
|
150
|
-
className={cn('animate-spin stroke-[#878787]', className)}
|
|
151
|
-
fill="none"
|
|
152
|
-
stroke="currentColor"
|
|
153
|
-
strokeWidth={1.5}
|
|
154
|
-
{...props}
|
|
155
|
-
>
|
|
156
|
-
<path d="M12 3v3m6.366-.366-2.12 2.12M21 12h-3m.366 6.366-2.12-2.12M12 21v-3m-6.366.366 2.12-2.12M3 12h3m-.366-6.366 2.12 2.12" />
|
|
157
|
-
</SVGIcon>
|
|
158
|
-
),
|
|
159
|
-
|
|
160
|
-
UserPlus: ({ size = 20, className, ...props }: SVGIconProps) => (
|
|
161
|
-
<SVGIcon size={size} viewBox="0 0 24 24" className={className} fill="none" stroke="currentColor" strokeWidth={1.5} {...props}>
|
|
162
|
-
<path strokeLinecap="round" strokeLinejoin="round" d="M18 7.5v3m0 0v3m0-3h3m-3 0h-3m-2.25-4.125a3.375 3.375 0 1 1-6.75 0 3.375 3.375 0 0 1 6.75 0ZM3 19.235v-.11a6.375 6.375 0 0 1 12.75 0v.109A12.318 12.318 0 0 1 9.374 21c-2.331 0-4.512-.645-6.374-1.766Z" />
|
|
163
|
-
</SVGIcon>
|
|
164
|
-
),
|
|
165
|
-
}
|
|
166
|
-
|
|
167
|
-
export type IconName = keyof typeof Icons
|
|
@@ -1,28 +0,0 @@
|
|
|
1
|
-
import * as React from "react"
|
|
2
|
-
|
|
3
|
-
import { cn } from "@/lib/utils"
|
|
4
|
-
|
|
5
|
-
function Input({ className, type, ...props }: React.ComponentProps<"input">) {
|
|
6
|
-
return (
|
|
7
|
-
<input
|
|
8
|
-
type={type}
|
|
9
|
-
data-slot="input"
|
|
10
|
-
className={cn(
|
|
11
|
-
"flex h-9 w-full rounded-md border border-input bg-transparent px-3 py-1",
|
|
12
|
-
"text-base md:text-sm",
|
|
13
|
-
"transition-colors",
|
|
14
|
-
"file:border-0 file:bg-transparent file:text-sm file:font-medium",
|
|
15
|
-
"placeholder:text-muted-foreground",
|
|
16
|
-
"focus-visible:outline-none focus-visible:ring-1 focus-visible:ring-ring",
|
|
17
|
-
"disabled:cursor-not-allowed disabled:opacity-50",
|
|
18
|
-
"[&:-webkit-autofill]:[-webkit-text-fill-color:hsl(var(--foreground))]",
|
|
19
|
-
"[&:-webkit-autofill]:[caret-color:hsl(var(--foreground))]",
|
|
20
|
-
"[&:-webkit-autofill]:shadow-[inset_0_0_0px_1000px_hsl(var(--background))]",
|
|
21
|
-
className
|
|
22
|
-
)}
|
|
23
|
-
{...props}
|
|
24
|
-
/>
|
|
25
|
-
)
|
|
26
|
-
}
|
|
27
|
-
|
|
28
|
-
export { Input }
|
|
@@ -1,25 +0,0 @@
|
|
|
1
|
-
"use client"
|
|
2
|
-
|
|
3
|
-
import * as React from "react"
|
|
4
|
-
import * as LabelPrimitive from "@radix-ui/react-label"
|
|
5
|
-
|
|
6
|
-
import { cn } from "@/lib/utils"
|
|
7
|
-
|
|
8
|
-
function Label({
|
|
9
|
-
className,
|
|
10
|
-
...props
|
|
11
|
-
}: React.ComponentProps<typeof LabelPrimitive.Root>) {
|
|
12
|
-
return (
|
|
13
|
-
<LabelPrimitive.Root
|
|
14
|
-
data-slot="label"
|
|
15
|
-
className={cn(
|
|
16
|
-
"text-sm font-medium leading-none",
|
|
17
|
-
"peer-disabled:cursor-not-allowed peer-disabled:opacity-70",
|
|
18
|
-
className
|
|
19
|
-
)}
|
|
20
|
-
{...props}
|
|
21
|
-
/>
|
|
22
|
-
)
|
|
23
|
-
}
|
|
24
|
-
|
|
25
|
-
export { Label }
|
|
@@ -1,59 +0,0 @@
|
|
|
1
|
-
"use client"
|
|
2
|
-
|
|
3
|
-
import * as React from "react"
|
|
4
|
-
import * as PopoverPrimitive from "@radix-ui/react-popover"
|
|
5
|
-
|
|
6
|
-
import { cn } from "@/lib/utils"
|
|
7
|
-
|
|
8
|
-
function Popover({
|
|
9
|
-
...props
|
|
10
|
-
}: React.ComponentProps<typeof PopoverPrimitive.Root>) {
|
|
11
|
-
return <PopoverPrimitive.Root data-slot="popover" {...props} />
|
|
12
|
-
}
|
|
13
|
-
|
|
14
|
-
function PopoverTrigger({
|
|
15
|
-
...props
|
|
16
|
-
}: React.ComponentProps<typeof PopoverPrimitive.Trigger>) {
|
|
17
|
-
return <PopoverPrimitive.Trigger data-slot="popover-trigger" {...props} />
|
|
18
|
-
}
|
|
19
|
-
|
|
20
|
-
function PopoverContent({
|
|
21
|
-
className,
|
|
22
|
-
align = "center",
|
|
23
|
-
sideOffset = 4,
|
|
24
|
-
...props
|
|
25
|
-
}: React.ComponentProps<typeof PopoverPrimitive.Content>) {
|
|
26
|
-
return (
|
|
27
|
-
<PopoverPrimitive.Portal>
|
|
28
|
-
<PopoverPrimitive.Content
|
|
29
|
-
data-slot="popover-content"
|
|
30
|
-
align={align}
|
|
31
|
-
sideOffset={sideOffset}
|
|
32
|
-
className={cn(
|
|
33
|
-
"z-50 w-72 rounded-md p-4",
|
|
34
|
-
"border border-border",
|
|
35
|
-
"bg-background dark:bg-[#1c1c1c]",
|
|
36
|
-
"text-popover-foreground",
|
|
37
|
-
"outline-none",
|
|
38
|
-
"data-[state=open]:animate-in data-[state=closed]:animate-out",
|
|
39
|
-
"data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0",
|
|
40
|
-
"data-[state=closed]:zoom-out-95 data-[state=open]:zoom-in-95",
|
|
41
|
-
"data-[side=bottom]:slide-in-from-top-2",
|
|
42
|
-
"data-[side=left]:slide-in-from-right-2",
|
|
43
|
-
"data-[side=right]:slide-in-from-left-2",
|
|
44
|
-
"data-[side=top]:slide-in-from-bottom-2",
|
|
45
|
-
className
|
|
46
|
-
)}
|
|
47
|
-
{...props}
|
|
48
|
-
/>
|
|
49
|
-
</PopoverPrimitive.Portal>
|
|
50
|
-
)
|
|
51
|
-
}
|
|
52
|
-
|
|
53
|
-
function PopoverAnchor({
|
|
54
|
-
...props
|
|
55
|
-
}: React.ComponentProps<typeof PopoverPrimitive.Anchor>) {
|
|
56
|
-
return <PopoverPrimitive.Anchor data-slot="popover-anchor" {...props} />
|
|
57
|
-
}
|
|
58
|
-
|
|
59
|
-
export { Popover, PopoverTrigger, PopoverContent, PopoverAnchor }
|
|
@@ -1,32 +0,0 @@
|
|
|
1
|
-
"use client"
|
|
2
|
-
|
|
3
|
-
import * as React from "react"
|
|
4
|
-
import * as ProgressPrimitive from "@radix-ui/react-progress"
|
|
5
|
-
|
|
6
|
-
import { cn } from "@/lib/utils"
|
|
7
|
-
|
|
8
|
-
function Progress({
|
|
9
|
-
className,
|
|
10
|
-
value,
|
|
11
|
-
...props
|
|
12
|
-
}: React.ComponentProps<typeof ProgressPrimitive.Root>) {
|
|
13
|
-
return (
|
|
14
|
-
<ProgressPrimitive.Root
|
|
15
|
-
data-slot="progress"
|
|
16
|
-
className={cn(
|
|
17
|
-
"relative h-1.5 w-full overflow-hidden rounded-full",
|
|
18
|
-
"bg-[#e6e6e6] dark:bg-[#2c2c2c]",
|
|
19
|
-
className
|
|
20
|
-
)}
|
|
21
|
-
{...props}
|
|
22
|
-
>
|
|
23
|
-
<ProgressPrimitive.Indicator
|
|
24
|
-
data-slot="progress-indicator"
|
|
25
|
-
className="h-full w-full flex-1 bg-primary transition-all duration-300 ease-out"
|
|
26
|
-
style={{ transform: `translateX(-${100 - (value || 0)}%)` }}
|
|
27
|
-
/>
|
|
28
|
-
</ProgressPrimitive.Root>
|
|
29
|
-
)
|
|
30
|
-
}
|
|
31
|
-
|
|
32
|
-
export { Progress }
|
|
@@ -1,45 +0,0 @@
|
|
|
1
|
-
"use client"
|
|
2
|
-
|
|
3
|
-
import * as React from "react"
|
|
4
|
-
import * as RadioGroupPrimitive from "@radix-ui/react-radio-group"
|
|
5
|
-
import { CircleIcon } from "lucide-react"
|
|
6
|
-
|
|
7
|
-
import { cn } from "@/lib/utils"
|
|
8
|
-
|
|
9
|
-
function RadioGroup({
|
|
10
|
-
className,
|
|
11
|
-
...props
|
|
12
|
-
}: React.ComponentProps<typeof RadioGroupPrimitive.Root>) {
|
|
13
|
-
return (
|
|
14
|
-
<RadioGroupPrimitive.Root
|
|
15
|
-
data-slot="radio-group"
|
|
16
|
-
className={cn("grid gap-3", className)}
|
|
17
|
-
{...props}
|
|
18
|
-
/>
|
|
19
|
-
)
|
|
20
|
-
}
|
|
21
|
-
|
|
22
|
-
function RadioGroupItem({
|
|
23
|
-
className,
|
|
24
|
-
...props
|
|
25
|
-
}: React.ComponentProps<typeof RadioGroupPrimitive.Item>) {
|
|
26
|
-
return (
|
|
27
|
-
<RadioGroupPrimitive.Item
|
|
28
|
-
data-slot="radio-group-item"
|
|
29
|
-
className={cn(
|
|
30
|
-
"border-input text-primary focus-visible:border-ring focus-visible:ring-ring/50 aria-invalid:ring-destructive/20 dark:aria-invalid:ring-destructive/40 aria-invalid:border-destructive dark:bg-input/30 aspect-square size-4 shrink-0 rounded-full border shadow-xs transition-[color,box-shadow] outline-none focus-visible:ring-[3px] disabled:cursor-not-allowed disabled:opacity-50",
|
|
31
|
-
className
|
|
32
|
-
)}
|
|
33
|
-
{...props}
|
|
34
|
-
>
|
|
35
|
-
<RadioGroupPrimitive.Indicator
|
|
36
|
-
data-slot="radio-group-indicator"
|
|
37
|
-
className="relative flex items-center justify-center"
|
|
38
|
-
>
|
|
39
|
-
<CircleIcon className="fill-primary absolute top-1/2 left-1/2 size-2 -translate-x-1/2 -translate-y-1/2" />
|
|
40
|
-
</RadioGroupPrimitive.Indicator>
|
|
41
|
-
</RadioGroupPrimitive.Item>
|
|
42
|
-
)
|
|
43
|
-
}
|
|
44
|
-
|
|
45
|
-
export { RadioGroup, RadioGroupItem }
|
|
@@ -1,63 +0,0 @@
|
|
|
1
|
-
"use client"
|
|
2
|
-
|
|
3
|
-
import * as React from "react"
|
|
4
|
-
import * as ScrollAreaPrimitive from "@radix-ui/react-scroll-area"
|
|
5
|
-
|
|
6
|
-
import { cn } from "@/lib/utils"
|
|
7
|
-
|
|
8
|
-
interface ScrollAreaProps extends React.ComponentProps<typeof ScrollAreaPrimitive.Root> {
|
|
9
|
-
hideScrollbar?: boolean
|
|
10
|
-
}
|
|
11
|
-
|
|
12
|
-
function ScrollArea({
|
|
13
|
-
className,
|
|
14
|
-
children,
|
|
15
|
-
hideScrollbar = false,
|
|
16
|
-
...props
|
|
17
|
-
}: ScrollAreaProps) {
|
|
18
|
-
return (
|
|
19
|
-
<ScrollAreaPrimitive.Root
|
|
20
|
-
data-slot="scroll-area"
|
|
21
|
-
className={cn("relative overflow-hidden", className)}
|
|
22
|
-
{...props}
|
|
23
|
-
>
|
|
24
|
-
<ScrollAreaPrimitive.Viewport
|
|
25
|
-
data-slot="scroll-area-viewport"
|
|
26
|
-
className="h-full w-full rounded-[inherit]"
|
|
27
|
-
>
|
|
28
|
-
{children}
|
|
29
|
-
</ScrollAreaPrimitive.Viewport>
|
|
30
|
-
{!hideScrollbar && <ScrollBar />}
|
|
31
|
-
<ScrollAreaPrimitive.Corner />
|
|
32
|
-
</ScrollAreaPrimitive.Root>
|
|
33
|
-
)
|
|
34
|
-
}
|
|
35
|
-
|
|
36
|
-
function ScrollBar({
|
|
37
|
-
className,
|
|
38
|
-
orientation = "vertical",
|
|
39
|
-
...props
|
|
40
|
-
}: React.ComponentProps<typeof ScrollAreaPrimitive.ScrollAreaScrollbar>) {
|
|
41
|
-
return (
|
|
42
|
-
<ScrollAreaPrimitive.ScrollAreaScrollbar
|
|
43
|
-
data-slot="scroll-area-scrollbar"
|
|
44
|
-
orientation={orientation}
|
|
45
|
-
className={cn(
|
|
46
|
-
"flex touch-none select-none transition-colors",
|
|
47
|
-
orientation === "vertical" &&
|
|
48
|
-
"h-full w-2.5 border-l border-l-transparent p-[1px]",
|
|
49
|
-
orientation === "horizontal" &&
|
|
50
|
-
"h-2.5 flex-col border-t border-t-transparent p-[1px]",
|
|
51
|
-
className
|
|
52
|
-
)}
|
|
53
|
-
{...props}
|
|
54
|
-
>
|
|
55
|
-
<ScrollAreaPrimitive.ScrollAreaThumb
|
|
56
|
-
data-slot="scroll-area-thumb"
|
|
57
|
-
className="relative flex-1 rounded-full bg-border"
|
|
58
|
-
/>
|
|
59
|
-
</ScrollAreaPrimitive.ScrollAreaScrollbar>
|
|
60
|
-
)
|
|
61
|
-
}
|
|
62
|
-
|
|
63
|
-
export { ScrollArea, ScrollBar }
|
|
@@ -1,208 +0,0 @@
|
|
|
1
|
-
"use client"
|
|
2
|
-
|
|
3
|
-
import * as React from "react"
|
|
4
|
-
import * as SelectPrimitive from "@radix-ui/react-select"
|
|
5
|
-
import { CheckIcon, ChevronDownIcon, ChevronUpIcon } from "lucide-react"
|
|
6
|
-
|
|
7
|
-
import { cn } from "@/lib/utils"
|
|
8
|
-
|
|
9
|
-
function Select({
|
|
10
|
-
...props
|
|
11
|
-
}: React.ComponentProps<typeof SelectPrimitive.Root>) {
|
|
12
|
-
return <SelectPrimitive.Root data-slot="select" {...props} />
|
|
13
|
-
}
|
|
14
|
-
|
|
15
|
-
function SelectGroup({
|
|
16
|
-
...props
|
|
17
|
-
}: React.ComponentProps<typeof SelectPrimitive.Group>) {
|
|
18
|
-
return <SelectPrimitive.Group data-slot="select-group" {...props} />
|
|
19
|
-
}
|
|
20
|
-
|
|
21
|
-
function SelectValue({
|
|
22
|
-
...props
|
|
23
|
-
}: React.ComponentProps<typeof SelectPrimitive.Value>) {
|
|
24
|
-
return <SelectPrimitive.Value data-slot="select-value" {...props} />
|
|
25
|
-
}
|
|
26
|
-
|
|
27
|
-
function SelectTrigger({
|
|
28
|
-
className,
|
|
29
|
-
size = "default",
|
|
30
|
-
children,
|
|
31
|
-
...props
|
|
32
|
-
}: React.ComponentProps<typeof SelectPrimitive.Trigger> & {
|
|
33
|
-
size?: "sm" | "default"
|
|
34
|
-
}) {
|
|
35
|
-
return (
|
|
36
|
-
<SelectPrimitive.Trigger
|
|
37
|
-
data-slot="select-trigger"
|
|
38
|
-
data-size={size}
|
|
39
|
-
className={cn(
|
|
40
|
-
"flex w-full items-center justify-between gap-2",
|
|
41
|
-
"rounded-md border border-input bg-transparent",
|
|
42
|
-
"px-3 py-2 text-sm",
|
|
43
|
-
"transition-colors duration-150",
|
|
44
|
-
"placeholder:text-muted-foreground",
|
|
45
|
-
"focus:outline-none focus:ring-1 focus:ring-ring",
|
|
46
|
-
"disabled:cursor-not-allowed disabled:opacity-50",
|
|
47
|
-
"data-[size=default]:h-10 data-[size=sm]:h-8",
|
|
48
|
-
"[&>span]:line-clamp-1",
|
|
49
|
-
className
|
|
50
|
-
)}
|
|
51
|
-
{...props}
|
|
52
|
-
>
|
|
53
|
-
{children}
|
|
54
|
-
<SelectPrimitive.Icon asChild>
|
|
55
|
-
<ChevronDownIcon className="h-4 w-4 text-[#878787]" />
|
|
56
|
-
</SelectPrimitive.Icon>
|
|
57
|
-
</SelectPrimitive.Trigger>
|
|
58
|
-
)
|
|
59
|
-
}
|
|
60
|
-
|
|
61
|
-
function SelectContent({
|
|
62
|
-
className,
|
|
63
|
-
children,
|
|
64
|
-
position = "popper",
|
|
65
|
-
...props
|
|
66
|
-
}: React.ComponentProps<typeof SelectPrimitive.Content>) {
|
|
67
|
-
return (
|
|
68
|
-
<SelectPrimitive.Portal>
|
|
69
|
-
<SelectPrimitive.Content
|
|
70
|
-
data-slot="select-content"
|
|
71
|
-
className={cn(
|
|
72
|
-
"relative z-50 max-h-96 min-w-[8rem] overflow-hidden",
|
|
73
|
-
"rounded-md border border-border",
|
|
74
|
-
"bg-background dark:bg-[#1c1c1c]",
|
|
75
|
-
"text-popover-foreground",
|
|
76
|
-
"data-[state=open]:animate-in data-[state=closed]:animate-out",
|
|
77
|
-
"data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0",
|
|
78
|
-
"data-[state=closed]:zoom-out-95 data-[state=open]:zoom-in-95",
|
|
79
|
-
"data-[side=bottom]:slide-in-from-top-2",
|
|
80
|
-
"data-[side=left]:slide-in-from-right-2",
|
|
81
|
-
"data-[side=right]:slide-in-from-left-2",
|
|
82
|
-
"data-[side=top]:slide-in-from-bottom-2",
|
|
83
|
-
position === "popper" &&
|
|
84
|
-
"data-[side=bottom]:translate-y-1 data-[side=left]:-translate-x-1 data-[side=right]:translate-x-1 data-[side=top]:-translate-y-1",
|
|
85
|
-
className
|
|
86
|
-
)}
|
|
87
|
-
position={position}
|
|
88
|
-
{...props}
|
|
89
|
-
>
|
|
90
|
-
<SelectScrollUpButton />
|
|
91
|
-
<SelectPrimitive.Viewport
|
|
92
|
-
className={cn(
|
|
93
|
-
"p-1",
|
|
94
|
-
position === "popper" &&
|
|
95
|
-
"h-[var(--radix-select-trigger-height)] w-full min-w-[var(--radix-select-trigger-width)]"
|
|
96
|
-
)}
|
|
97
|
-
>
|
|
98
|
-
{children}
|
|
99
|
-
</SelectPrimitive.Viewport>
|
|
100
|
-
<SelectScrollDownButton />
|
|
101
|
-
</SelectPrimitive.Content>
|
|
102
|
-
</SelectPrimitive.Portal>
|
|
103
|
-
)
|
|
104
|
-
}
|
|
105
|
-
|
|
106
|
-
function SelectLabel({
|
|
107
|
-
className,
|
|
108
|
-
...props
|
|
109
|
-
}: React.ComponentProps<typeof SelectPrimitive.Label>) {
|
|
110
|
-
return (
|
|
111
|
-
<SelectPrimitive.Label
|
|
112
|
-
data-slot="select-label"
|
|
113
|
-
className={cn("text-muted-foreground px-2 py-1.5 text-xs", className)}
|
|
114
|
-
{...props}
|
|
115
|
-
/>
|
|
116
|
-
)
|
|
117
|
-
}
|
|
118
|
-
|
|
119
|
-
function SelectItem({
|
|
120
|
-
className,
|
|
121
|
-
children,
|
|
122
|
-
...props
|
|
123
|
-
}: React.ComponentProps<typeof SelectPrimitive.Item>) {
|
|
124
|
-
return (
|
|
125
|
-
<SelectPrimitive.Item
|
|
126
|
-
data-slot="select-item"
|
|
127
|
-
className={cn(
|
|
128
|
-
"relative flex w-full cursor-default select-none items-center",
|
|
129
|
-
"rounded-sm py-1.5 pl-2 pr-8",
|
|
130
|
-
"text-sm outline-none",
|
|
131
|
-
"transition-colors duration-150",
|
|
132
|
-
"focus:bg-[#f2f2f2] dark:focus:bg-[#2c2c2c]",
|
|
133
|
-
"data-[disabled]:pointer-events-none data-[disabled]:opacity-50",
|
|
134
|
-
className
|
|
135
|
-
)}
|
|
136
|
-
{...props}
|
|
137
|
-
>
|
|
138
|
-
<span className="absolute right-2 flex h-3.5 w-3.5 items-center justify-center">
|
|
139
|
-
<SelectPrimitive.ItemIndicator>
|
|
140
|
-
<CheckIcon className="h-4 w-4" />
|
|
141
|
-
</SelectPrimitive.ItemIndicator>
|
|
142
|
-
</span>
|
|
143
|
-
<SelectPrimitive.ItemText>{children}</SelectPrimitive.ItemText>
|
|
144
|
-
</SelectPrimitive.Item>
|
|
145
|
-
)
|
|
146
|
-
}
|
|
147
|
-
|
|
148
|
-
function SelectSeparator({
|
|
149
|
-
className,
|
|
150
|
-
...props
|
|
151
|
-
}: React.ComponentProps<typeof SelectPrimitive.Separator>) {
|
|
152
|
-
return (
|
|
153
|
-
<SelectPrimitive.Separator
|
|
154
|
-
data-slot="select-separator"
|
|
155
|
-
className={cn("bg-border pointer-events-none -mx-1 my-1 h-px", className)}
|
|
156
|
-
{...props}
|
|
157
|
-
/>
|
|
158
|
-
)
|
|
159
|
-
}
|
|
160
|
-
|
|
161
|
-
function SelectScrollUpButton({
|
|
162
|
-
className,
|
|
163
|
-
...props
|
|
164
|
-
}: React.ComponentProps<typeof SelectPrimitive.ScrollUpButton>) {
|
|
165
|
-
return (
|
|
166
|
-
<SelectPrimitive.ScrollUpButton
|
|
167
|
-
data-slot="select-scroll-up-button"
|
|
168
|
-
className={cn(
|
|
169
|
-
"flex cursor-default items-center justify-center py-1",
|
|
170
|
-
className
|
|
171
|
-
)}
|
|
172
|
-
{...props}
|
|
173
|
-
>
|
|
174
|
-
<ChevronUpIcon className="size-4" />
|
|
175
|
-
</SelectPrimitive.ScrollUpButton>
|
|
176
|
-
)
|
|
177
|
-
}
|
|
178
|
-
|
|
179
|
-
function SelectScrollDownButton({
|
|
180
|
-
className,
|
|
181
|
-
...props
|
|
182
|
-
}: React.ComponentProps<typeof SelectPrimitive.ScrollDownButton>) {
|
|
183
|
-
return (
|
|
184
|
-
<SelectPrimitive.ScrollDownButton
|
|
185
|
-
data-slot="select-scroll-down-button"
|
|
186
|
-
className={cn(
|
|
187
|
-
"flex cursor-default items-center justify-center py-1",
|
|
188
|
-
className
|
|
189
|
-
)}
|
|
190
|
-
{...props}
|
|
191
|
-
>
|
|
192
|
-
<ChevronDownIcon className="size-4" />
|
|
193
|
-
</SelectPrimitive.ScrollDownButton>
|
|
194
|
-
)
|
|
195
|
-
}
|
|
196
|
-
|
|
197
|
-
export {
|
|
198
|
-
Select,
|
|
199
|
-
SelectContent,
|
|
200
|
-
SelectGroup,
|
|
201
|
-
SelectItem,
|
|
202
|
-
SelectLabel,
|
|
203
|
-
SelectScrollDownButton,
|
|
204
|
-
SelectScrollUpButton,
|
|
205
|
-
SelectSeparator,
|
|
206
|
-
SelectTrigger,
|
|
207
|
-
SelectValue,
|
|
208
|
-
}
|
|
@@ -1,28 +0,0 @@
|
|
|
1
|
-
"use client"
|
|
2
|
-
|
|
3
|
-
import * as React from "react"
|
|
4
|
-
import * as SeparatorPrimitive from "@radix-ui/react-separator"
|
|
5
|
-
|
|
6
|
-
import { cn } from "@/lib/utils"
|
|
7
|
-
|
|
8
|
-
function Separator({
|
|
9
|
-
className,
|
|
10
|
-
orientation = "horizontal",
|
|
11
|
-
decorative = true,
|
|
12
|
-
...props
|
|
13
|
-
}: React.ComponentProps<typeof SeparatorPrimitive.Root>) {
|
|
14
|
-
return (
|
|
15
|
-
<SeparatorPrimitive.Root
|
|
16
|
-
data-slot="separator"
|
|
17
|
-
decorative={decorative}
|
|
18
|
-
orientation={orientation}
|
|
19
|
-
className={cn(
|
|
20
|
-
"bg-border shrink-0 data-[orientation=horizontal]:h-px data-[orientation=horizontal]:w-full data-[orientation=vertical]:h-full data-[orientation=vertical]:w-px",
|
|
21
|
-
className
|
|
22
|
-
)}
|
|
23
|
-
{...props}
|
|
24
|
-
/>
|
|
25
|
-
)
|
|
26
|
-
}
|
|
27
|
-
|
|
28
|
-
export { Separator }
|