@sikka/hawa 0.0.288 → 0.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/styles.css +176 -80
- package/es/blocks/AuthForms/SignInBlock.d.ts +2 -0
- package/es/blocks/AuthForms/index.d.ts +1 -0
- package/es/elements/Button.d.ts +11 -0
- package/es/elements/Card.d.ts +8 -0
- package/es/elements/Icons.d.ts +19 -0
- package/es/elements/Input.d.ts +5 -0
- package/es/elements/Label.d.ts +5 -0
- package/es/index.es.js +3 -3
- package/es/util.d.ts +2 -0
- package/lib/blocks/AuthForms/SignInBlock.d.ts +2 -0
- package/lib/blocks/AuthForms/index.d.ts +1 -0
- package/lib/elements/Button.d.ts +11 -0
- package/lib/elements/Card.d.ts +8 -0
- package/lib/elements/Icons.d.ts +19 -0
- package/lib/elements/Input.d.ts +5 -0
- package/lib/elements/Label.d.ts +5 -0
- package/lib/index.js +3 -3
- package/lib/util.d.ts +2 -0
- package/package.json +5 -2
- package/src/blocks/AuthForms/SignInBlock.tsx +60 -0
- package/src/blocks/AuthForms/SignInForm.tsx +23 -2
- package/src/blocks/AuthForms/index.ts +8 -7
- package/src/elements/Button.tsx +57 -0
- package/src/elements/Card.tsx +78 -0
- package/src/elements/Icons.tsx +142 -0
- package/src/elements/Input.tsx +25 -0
- package/src/elements/Label.tsx +26 -0
- package/src/styles.css +176 -80
- package/src/tailwind.css +23 -19
- package/src/util.ts +10 -4
- package/tailwind.config.js +39 -3
package/lib/util.d.ts
CHANGED
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@sikka/hawa",
|
|
3
|
-
"version": "0.0
|
|
3
|
+
"version": "0.1.0",
|
|
4
4
|
"description": "SaaS Oriented UI Kit",
|
|
5
5
|
"main": "lib/index.js",
|
|
6
6
|
"module": "es/index.es.js",
|
|
@@ -106,6 +106,8 @@
|
|
|
106
106
|
},
|
|
107
107
|
"dependencies": {
|
|
108
108
|
"@radix-ui/react-dropdown-menu": "^2.0.5",
|
|
109
|
+
"@radix-ui/react-label": "^2.0.2",
|
|
110
|
+
"class-variance-authority": "^0.7.0",
|
|
109
111
|
"clsx": "^1.2.1",
|
|
110
112
|
"cmdk": "^0.2.0",
|
|
111
113
|
"react": "^18.2.0",
|
|
@@ -114,7 +116,8 @@
|
|
|
114
116
|
"react-icons": "^4.10.1",
|
|
115
117
|
"react-select": "^5.3.2",
|
|
116
118
|
"slate": "^0.94.1",
|
|
117
|
-
"slate-react": "^0.97.1"
|
|
119
|
+
"slate-react": "^0.97.1",
|
|
120
|
+
"tailwind-merge": "^1.14.0"
|
|
118
121
|
},
|
|
119
122
|
"readme": "ERROR: No README data found!",
|
|
120
123
|
"_id": "@sikka/hawa@0.0.285"
|
|
@@ -0,0 +1,60 @@
|
|
|
1
|
+
"use client"
|
|
2
|
+
|
|
3
|
+
import { Icons } from "../../elements/Icons"
|
|
4
|
+
import { Button } from "../../elements/Button"
|
|
5
|
+
import {
|
|
6
|
+
Card,
|
|
7
|
+
CardContent,
|
|
8
|
+
CardDescription,
|
|
9
|
+
CardFooter,
|
|
10
|
+
CardHeader,
|
|
11
|
+
CardTitle,
|
|
12
|
+
} from "../../elements/Card"
|
|
13
|
+
import { Input } from "../../elements/Input"
|
|
14
|
+
import { Label } from "../../elements/Label"
|
|
15
|
+
|
|
16
|
+
export function SignInBlock() {
|
|
17
|
+
return (
|
|
18
|
+
<Card>
|
|
19
|
+
<CardHeader className="space-y-1">
|
|
20
|
+
<CardTitle className="text-2xl">Create an account</CardTitle>
|
|
21
|
+
<CardDescription>
|
|
22
|
+
Enter your email below to create your account
|
|
23
|
+
</CardDescription>
|
|
24
|
+
</CardHeader>
|
|
25
|
+
<CardContent className="grid gap-4">
|
|
26
|
+
<div className="grid grid-cols-2 gap-6">
|
|
27
|
+
<Button variant="outline">
|
|
28
|
+
<Icons.gitHub className="mr-2 h-4 w-4" />
|
|
29
|
+
Github
|
|
30
|
+
</Button>
|
|
31
|
+
<Button variant="outline">
|
|
32
|
+
<Icons.google className="mr-2 h-4 w-4" />
|
|
33
|
+
Google
|
|
34
|
+
</Button>
|
|
35
|
+
</div>
|
|
36
|
+
<div className="relative">
|
|
37
|
+
<div className="absolute inset-0 flex items-center">
|
|
38
|
+
<span className="w-full border-t" />
|
|
39
|
+
</div>
|
|
40
|
+
<div className="relative flex justify-center text-xs uppercase">
|
|
41
|
+
<span className="bg-background px-2 text-muted-foreground">
|
|
42
|
+
Or continue with
|
|
43
|
+
</span>
|
|
44
|
+
</div>
|
|
45
|
+
</div>
|
|
46
|
+
<div className="grid gap-2">
|
|
47
|
+
<Label htmlFor="email">Email</Label>
|
|
48
|
+
<Input id="email" type="email" placeholder="m@example.com" />
|
|
49
|
+
</div>
|
|
50
|
+
<div className="grid gap-2">
|
|
51
|
+
<Label htmlFor="password">Password</Label>
|
|
52
|
+
<Input id="password" type="password" />
|
|
53
|
+
</div>
|
|
54
|
+
</CardContent>
|
|
55
|
+
<CardFooter>
|
|
56
|
+
<Button className="w-full">Create account</Button>
|
|
57
|
+
</CardFooter>
|
|
58
|
+
</Card>
|
|
59
|
+
)
|
|
60
|
+
}
|
|
@@ -8,6 +8,8 @@ import {
|
|
|
8
8
|
} from "../../elements"
|
|
9
9
|
import { Controller, useForm } from "react-hook-form"
|
|
10
10
|
import { HawaContainer } from "../../layout"
|
|
11
|
+
import { Button } from "../../elements/Button"
|
|
12
|
+
import { FaGithub, FaGoogle } from "react-icons/fa"
|
|
11
13
|
|
|
12
14
|
export const SignInForm: FC<SignInFormTypes> = (props) => {
|
|
13
15
|
const {
|
|
@@ -114,7 +116,7 @@ export const SignInForm: FC<SignInFormTypes> = (props) => {
|
|
|
114
116
|
</>
|
|
115
117
|
)}
|
|
116
118
|
|
|
117
|
-
<HawaButton
|
|
119
|
+
{/* <HawaButton
|
|
118
120
|
isLoading={props.isLoading}
|
|
119
121
|
variant="contained"
|
|
120
122
|
color="primary"
|
|
@@ -122,7 +124,8 @@ export const SignInForm: FC<SignInFormTypes> = (props) => {
|
|
|
122
124
|
width="full"
|
|
123
125
|
>
|
|
124
126
|
{props.texts.signInText}
|
|
125
|
-
</HawaButton>
|
|
127
|
+
</HawaButton> */}
|
|
128
|
+
<Button className="w-full">{props.texts.signInText}</Button>
|
|
126
129
|
{!props.withoutSignUp && (
|
|
127
130
|
<div className="p-3 text-center text-sm font-semibold dark:text-gray-300">
|
|
128
131
|
{props.texts.newUserText}{" "}
|
|
@@ -136,6 +139,24 @@ export const SignInForm: FC<SignInFormTypes> = (props) => {
|
|
|
136
139
|
)}
|
|
137
140
|
</form>
|
|
138
141
|
|
|
142
|
+
{/* <div className="grid grid-cols-2 gap-6">
|
|
143
|
+
<Button variant="outline">
|
|
144
|
+
<FaGithub className="mr-2 h-4 w-4" /> Github
|
|
145
|
+
</Button>
|
|
146
|
+
<Button variant="outline">
|
|
147
|
+
<FaGoogle className="mr-2 h-4 w-4" /> Google
|
|
148
|
+
</Button>
|
|
149
|
+
</div>
|
|
150
|
+
<div className="relative">
|
|
151
|
+
<div className="absolute inset-0 flex items-center">
|
|
152
|
+
<span className="w-full border-t" />
|
|
153
|
+
</div>
|
|
154
|
+
<div className="relative flex justify-center text-xs uppercase">
|
|
155
|
+
<span className="bg-background px-2 text-muted-foreground">
|
|
156
|
+
Or continue with
|
|
157
|
+
</span>
|
|
158
|
+
</div>
|
|
159
|
+
</div> */}
|
|
139
160
|
{/* 3rd Party Sign Auth Buttons */}
|
|
140
161
|
{props.viaGithub || props.viaGoogle || props.viaTwitter ? (
|
|
141
162
|
<div className="flex flex-col ">
|
|
@@ -1,7 +1,8 @@
|
|
|
1
|
-
export * from "./AppLanding"
|
|
2
|
-
export * from "./SignInPhone"
|
|
3
|
-
export * from "./SignInForm"
|
|
4
|
-
export * from "./
|
|
5
|
-
export * from "./
|
|
6
|
-
export * from "./
|
|
7
|
-
export * from "./
|
|
1
|
+
export * from "./AppLanding"
|
|
2
|
+
export * from "./SignInPhone"
|
|
3
|
+
export * from "./SignInForm"
|
|
4
|
+
export * from "./SignInBlock"
|
|
5
|
+
export * from "./SignUpForm"
|
|
6
|
+
export * from "./NewPasswordForm"
|
|
7
|
+
export * from "./ResetPasswordForm"
|
|
8
|
+
export * from "./CodeConfirmation"
|
|
@@ -0,0 +1,57 @@
|
|
|
1
|
+
import * as React from "react"
|
|
2
|
+
// import { Slot } from "@radix-ui/react-slot"
|
|
3
|
+
import { cva, type VariantProps } from "class-variance-authority"
|
|
4
|
+
|
|
5
|
+
import { cn } from "../util"
|
|
6
|
+
|
|
7
|
+
const buttonVariants = cva(
|
|
8
|
+
"inline-flex items-center justify-center rounded-md text-sm font-medium ring-offset-background transition-colors focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2 disabled:pointer-events-none disabled:opacity-50",
|
|
9
|
+
{
|
|
10
|
+
variants: {
|
|
11
|
+
variant: {
|
|
12
|
+
default: "bg-primary text-primary-foreground hover:bg-primary/90",
|
|
13
|
+
destructive:
|
|
14
|
+
"bg-destructive text-destructive-foreground hover:bg-destructive/90",
|
|
15
|
+
outline:
|
|
16
|
+
"border border-input bg-background hover:bg-accent hover:text-accent-foreground",
|
|
17
|
+
secondary:
|
|
18
|
+
"bg-secondary text-secondary-foreground hover:bg-secondary/80",
|
|
19
|
+
ghost: "hover:bg-accent hover:text-accent-foreground",
|
|
20
|
+
link: "text-primary underline-offset-4 hover:underline",
|
|
21
|
+
},
|
|
22
|
+
size: {
|
|
23
|
+
default: "h-10 px-4 py-2",
|
|
24
|
+
sm: "h-9 rounded-md px-3",
|
|
25
|
+
lg: "h-11 rounded-md px-8",
|
|
26
|
+
icon: "h-10 w-10",
|
|
27
|
+
},
|
|
28
|
+
},
|
|
29
|
+
defaultVariants: {
|
|
30
|
+
variant: "default",
|
|
31
|
+
size: "default",
|
|
32
|
+
},
|
|
33
|
+
}
|
|
34
|
+
)
|
|
35
|
+
|
|
36
|
+
export interface ButtonProps
|
|
37
|
+
extends React.ButtonHTMLAttributes<HTMLButtonElement>,
|
|
38
|
+
VariantProps<typeof buttonVariants> {
|
|
39
|
+
asChild?: boolean
|
|
40
|
+
}
|
|
41
|
+
|
|
42
|
+
const Button = React.forwardRef<HTMLButtonElement, ButtonProps>(
|
|
43
|
+
({ className, variant, size, asChild = false, ...props }, ref) => {
|
|
44
|
+
// const Comp = asChild ? Slot : "button"
|
|
45
|
+
const Comp = "button"
|
|
46
|
+
return (
|
|
47
|
+
<Comp
|
|
48
|
+
className={cn(buttonVariants({ variant, size, className }))}
|
|
49
|
+
ref={ref}
|
|
50
|
+
{...props}
|
|
51
|
+
/>
|
|
52
|
+
)
|
|
53
|
+
}
|
|
54
|
+
)
|
|
55
|
+
Button.displayName = "Button"
|
|
56
|
+
|
|
57
|
+
export { Button, buttonVariants }
|
|
@@ -0,0 +1,78 @@
|
|
|
1
|
+
import * as React from "react"
|
|
2
|
+
import { cn } from "../util"
|
|
3
|
+
|
|
4
|
+
const Card = React.forwardRef<
|
|
5
|
+
HTMLDivElement,
|
|
6
|
+
React.HTMLAttributes<HTMLDivElement>
|
|
7
|
+
>(({ className, ...props }, ref) => (
|
|
8
|
+
<div
|
|
9
|
+
ref={ref}
|
|
10
|
+
className={cn(
|
|
11
|
+
"rounded-lg border bg-card text-card-foreground shadow-sm",
|
|
12
|
+
className
|
|
13
|
+
)}
|
|
14
|
+
{...props}
|
|
15
|
+
/>
|
|
16
|
+
))
|
|
17
|
+
Card.displayName = "Card"
|
|
18
|
+
|
|
19
|
+
const CardHeader = React.forwardRef<
|
|
20
|
+
HTMLDivElement,
|
|
21
|
+
React.HTMLAttributes<HTMLDivElement>
|
|
22
|
+
>(({ className, ...props }, ref) => (
|
|
23
|
+
<div
|
|
24
|
+
ref={ref}
|
|
25
|
+
className={cn("flex flex-col space-y-1.5 p-6", className)}
|
|
26
|
+
{...props}
|
|
27
|
+
/>
|
|
28
|
+
))
|
|
29
|
+
CardHeader.displayName = "CardHeader"
|
|
30
|
+
|
|
31
|
+
const CardTitle = React.forwardRef<
|
|
32
|
+
HTMLParagraphElement,
|
|
33
|
+
React.HTMLAttributes<HTMLHeadingElement>
|
|
34
|
+
>(({ className, ...props }, ref) => (
|
|
35
|
+
<h3
|
|
36
|
+
ref={ref}
|
|
37
|
+
className={cn(
|
|
38
|
+
"text-2xl font-semibold leading-none tracking-tight",
|
|
39
|
+
className
|
|
40
|
+
)}
|
|
41
|
+
{...props}
|
|
42
|
+
/>
|
|
43
|
+
))
|
|
44
|
+
CardTitle.displayName = "CardTitle"
|
|
45
|
+
|
|
46
|
+
const CardDescription = React.forwardRef<
|
|
47
|
+
HTMLParagraphElement,
|
|
48
|
+
React.HTMLAttributes<HTMLParagraphElement>
|
|
49
|
+
>(({ className, ...props }, ref) => (
|
|
50
|
+
<p
|
|
51
|
+
ref={ref}
|
|
52
|
+
className={cn("text-sm text-muted-foreground", className)}
|
|
53
|
+
{...props}
|
|
54
|
+
/>
|
|
55
|
+
))
|
|
56
|
+
CardDescription.displayName = "CardDescription"
|
|
57
|
+
|
|
58
|
+
const CardContent = React.forwardRef<
|
|
59
|
+
HTMLDivElement,
|
|
60
|
+
React.HTMLAttributes<HTMLDivElement>
|
|
61
|
+
>(({ className, ...props }, ref) => (
|
|
62
|
+
<div ref={ref} className={cn("p-6 pt-0", className)} {...props} />
|
|
63
|
+
))
|
|
64
|
+
CardContent.displayName = "CardContent"
|
|
65
|
+
|
|
66
|
+
const CardFooter = React.forwardRef<
|
|
67
|
+
HTMLDivElement,
|
|
68
|
+
React.HTMLAttributes<HTMLDivElement>
|
|
69
|
+
>(({ className, ...props }, ref) => (
|
|
70
|
+
<div
|
|
71
|
+
ref={ref}
|
|
72
|
+
className={cn("flex items-center p-6 pt-0", className)}
|
|
73
|
+
{...props}
|
|
74
|
+
/>
|
|
75
|
+
))
|
|
76
|
+
CardFooter.displayName = "CardFooter"
|
|
77
|
+
|
|
78
|
+
export { Card, CardHeader, CardFooter, CardTitle, CardDescription, CardContent }
|
|
@@ -0,0 +1,142 @@
|
|
|
1
|
+
type IconProps = React.HTMLAttributes<SVGElement>
|
|
2
|
+
|
|
3
|
+
export const Icons = {
|
|
4
|
+
logo: (props: IconProps) => (
|
|
5
|
+
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 256 256" {...props}>
|
|
6
|
+
<rect width="256" height="256" fill="none" />
|
|
7
|
+
<line
|
|
8
|
+
x1="208"
|
|
9
|
+
y1="128"
|
|
10
|
+
x2="128"
|
|
11
|
+
y2="208"
|
|
12
|
+
fill="none"
|
|
13
|
+
stroke="currentColor"
|
|
14
|
+
strokeLinecap="round"
|
|
15
|
+
strokeLinejoin="round"
|
|
16
|
+
strokeWidth="16"
|
|
17
|
+
/>
|
|
18
|
+
<line
|
|
19
|
+
x1="192"
|
|
20
|
+
y1="40"
|
|
21
|
+
x2="40"
|
|
22
|
+
y2="192"
|
|
23
|
+
fill="none"
|
|
24
|
+
stroke="currentColor"
|
|
25
|
+
strokeLinecap="round"
|
|
26
|
+
strokeLinejoin="round"
|
|
27
|
+
strokeWidth="16"
|
|
28
|
+
/>
|
|
29
|
+
</svg>
|
|
30
|
+
),
|
|
31
|
+
twitter: (props: IconProps) => (
|
|
32
|
+
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" {...props}>
|
|
33
|
+
<path d="M21.543 7.104c.015.211.015.423.015.636 0 6.507-4.954 14.01-14.01 14.01v-.003A13.94 13.94 0 0 1 0 19.539a9.88 9.88 0 0 0 7.287-2.041 4.93 4.93 0 0 1-4.6-3.42 4.916 4.916 0 0 0 2.223-.084A4.926 4.926 0 0 1 .96 9.167v-.062a4.887 4.887 0 0 0 2.235.616A4.928 4.928 0 0 1 1.67 3.148a13.98 13.98 0 0 0 10.15 5.144 4.929 4.929 0 0 1 8.39-4.49 9.868 9.868 0 0 0 3.128-1.196 4.941 4.941 0 0 1-2.165 2.724A9.828 9.828 0 0 0 24 4.555a10.019 10.019 0 0 1-2.457 2.549z" />
|
|
34
|
+
</svg>
|
|
35
|
+
),
|
|
36
|
+
gitHub: (props: IconProps) => (
|
|
37
|
+
<svg viewBox="0 0 438.549 438.549" {...props}>
|
|
38
|
+
<path
|
|
39
|
+
fill="currentColor"
|
|
40
|
+
d="M409.132 114.573c-19.608-33.596-46.205-60.194-79.798-79.8-33.598-19.607-70.277-29.408-110.063-29.408-39.781 0-76.472 9.804-110.063 29.408-33.596 19.605-60.192 46.204-79.8 79.8C9.803 148.168 0 184.854 0 224.63c0 47.78 13.94 90.745 41.827 128.906 27.884 38.164 63.906 64.572 108.063 79.227 5.14.954 8.945.283 11.419-1.996 2.475-2.282 3.711-5.14 3.711-8.562 0-.571-.049-5.708-.144-15.417a2549.81 2549.81 0 01-.144-25.406l-6.567 1.136c-4.187.767-9.469 1.092-15.846 1-6.374-.089-12.991-.757-19.842-1.999-6.854-1.231-13.229-4.086-19.13-8.559-5.898-4.473-10.085-10.328-12.56-17.556l-2.855-6.57c-1.903-4.374-4.899-9.233-8.992-14.559-4.093-5.331-8.232-8.945-12.419-10.848l-1.999-1.431c-1.332-.951-2.568-2.098-3.711-3.429-1.142-1.331-1.997-2.663-2.568-3.997-.572-1.335-.098-2.43 1.427-3.289 1.525-.859 4.281-1.276 8.28-1.276l5.708.853c3.807.763 8.516 3.042 14.133 6.851 5.614 3.806 10.229 8.754 13.846 14.842 4.38 7.806 9.657 13.754 15.846 17.847 6.184 4.093 12.419 6.136 18.699 6.136 6.28 0 11.704-.476 16.274-1.423 4.565-.952 8.848-2.383 12.847-4.285 1.713-12.758 6.377-22.559 13.988-29.41-10.848-1.14-20.601-2.857-29.264-5.14-8.658-2.286-17.605-5.996-26.835-11.14-9.235-5.137-16.896-11.516-22.985-19.126-6.09-7.614-11.088-17.61-14.987-29.979-3.901-12.374-5.852-26.648-5.852-42.826 0-23.035 7.52-42.637 22.557-58.817-7.044-17.318-6.379-36.732 1.997-58.24 5.52-1.715 13.706-.428 24.554 3.853 10.85 4.283 18.794 7.952 23.84 10.994 5.046 3.041 9.089 5.618 12.135 7.708 17.705-4.947 35.976-7.421 54.818-7.421s37.117 2.474 54.823 7.421l10.849-6.849c7.419-4.57 16.18-8.758 26.262-12.565 10.088-3.805 17.802-4.853 23.134-3.138 8.562 21.509 9.325 40.922 2.279 58.24 15.036 16.18 22.559 35.787 22.559 58.817 0 16.178-1.958 30.497-5.853 42.966-3.9 12.471-8.941 22.457-15.125 29.979-6.191 7.521-13.901 13.85-23.131 18.986-9.232 5.14-18.182 8.85-26.84 11.136-8.662 2.286-18.415 4.004-29.263 5.146 9.894 8.562 14.842 22.077 14.842 40.539v60.237c0 3.422 1.19 6.279 3.572 8.562 2.379 2.279 6.136 2.95 11.276 1.995 44.163-14.653 80.185-41.062 108.068-79.226 27.88-38.161 41.825-81.126 41.825-128.906-.01-39.771-9.818-76.454-29.414-110.049z"
|
|
41
|
+
></path>
|
|
42
|
+
</svg>
|
|
43
|
+
),
|
|
44
|
+
radix: (props: IconProps) => (
|
|
45
|
+
<svg viewBox="0 0 25 25" fill="none" {...props}>
|
|
46
|
+
<path
|
|
47
|
+
d="M12 25C7.58173 25 4 21.4183 4 17C4 12.5817 7.58173 9 12 9V25Z"
|
|
48
|
+
fill="currentcolor"
|
|
49
|
+
></path>
|
|
50
|
+
<path d="M12 0H4V8H12V0Z" fill="currentcolor"></path>
|
|
51
|
+
<path
|
|
52
|
+
d="M17 8C19.2091 8 21 6.20914 21 4C21 1.79086 19.2091 0 17 0C14.7909 0 13 1.79086 13 4C13 6.20914 14.7909 8 17 8Z"
|
|
53
|
+
fill="currentcolor"
|
|
54
|
+
></path>
|
|
55
|
+
</svg>
|
|
56
|
+
),
|
|
57
|
+
aria: (props: IconProps) => (
|
|
58
|
+
<svg role="img" viewBox="0 0 24 24" fill="currentColor" {...props}>
|
|
59
|
+
<path d="M13.966 22.624l-1.69-4.281H8.122l3.892-9.144 5.662 13.425zM8.884 1.376H0v21.248zm15.116 0h-8.884L24 22.624Z" />
|
|
60
|
+
</svg>
|
|
61
|
+
),
|
|
62
|
+
npm: (props: IconProps) => (
|
|
63
|
+
<svg viewBox="0 0 24 24" {...props}>
|
|
64
|
+
<path
|
|
65
|
+
d="M1.763 0C.786 0 0 .786 0 1.763v20.474C0 23.214.786 24 1.763 24h20.474c.977 0 1.763-.786 1.763-1.763V1.763C24 .786 23.214 0 22.237 0zM5.13 5.323l13.837.019-.009 13.836h-3.464l.01-10.382h-3.456L12.04 19.17H5.113z"
|
|
66
|
+
fill="currentColor"
|
|
67
|
+
/>
|
|
68
|
+
</svg>
|
|
69
|
+
),
|
|
70
|
+
yarn: (props: IconProps) => (
|
|
71
|
+
<svg viewBox="0 0 24 24" {...props}>
|
|
72
|
+
<path
|
|
73
|
+
d="M12 0C5.375 0 0 5.375 0 12s5.375 12 12 12 12-5.375 12-12S18.625 0 12 0zm.768 4.105c.183 0 .363.053.525.157.125.083.287.185.755 1.154.31-.088.468-.042.551-.019.204.056.366.19.463.375.477.917.542 2.553.334 3.605-.241 1.232-.755 2.029-1.131 2.576.324.329.778.899 1.117 1.825.278.774.31 1.478.273 2.015a5.51 5.51 0 0 0 .602-.329c.593-.366 1.487-.917 2.553-.931.714-.009 1.269.445 1.353 1.103a1.23 1.23 0 0 1-.945 1.362c-.649.158-.95.278-1.821.843-1.232.797-2.539 1.242-3.012 1.39a1.686 1.686 0 0 1-.704.343c-.737.181-3.266.315-3.466.315h-.046c-.783 0-1.214-.241-1.45-.491-.658.329-1.51.19-2.122-.134a1.078 1.078 0 0 1-.58-1.153 1.243 1.243 0 0 1-.153-.195c-.162-.25-.528-.936-.454-1.946.056-.723.556-1.367.88-1.71a5.522 5.522 0 0 1 .408-2.256c.306-.727.885-1.348 1.32-1.737-.32-.537-.644-1.367-.329-2.21.227-.602.412-.936.82-1.08h-.005c.199-.074.389-.153.486-.259a3.418 3.418 0 0 1 2.298-1.103c.037-.093.079-.185.125-.283.31-.658.639-1.029 1.024-1.168a.94.94 0 0 1 .328-.06zm.006.7c-.507.016-1.001 1.519-1.001 1.519s-1.27-.204-2.266.871c-.199.218-.468.334-.746.44-.079.028-.176.023-.417.672-.371.991.625 2.094.625 2.094s-1.186.839-1.626 1.881c-.486 1.144-.338 2.261-.338 2.261s-.843.732-.899 1.487c-.051.663.139 1.2.343 1.515.227.343.51.176.51.176s-.561.653-.037.931c.477.25 1.283.394 1.71-.037.31-.31.371-1.001.486-1.283.028-.065.12.111.209.199.097.093.264.195.264.195s-.755.324-.445 1.066c.102.246.468.403 1.066.398.222-.005 2.664-.139 3.313-.296.375-.088.505-.283.505-.283s1.566-.431 2.998-1.357c.917-.598 1.293-.76 2.034-.936.612-.148.57-1.098-.241-1.084-.839.009-1.575.44-2.196.825-1.163.718-1.742.672-1.742.672l-.018-.032c-.079-.13.371-1.293-.134-2.678-.547-1.515-1.413-1.881-1.344-1.997.297-.5 1.038-1.297 1.334-2.78.176-.899.13-2.377-.269-3.151-.074-.144-.732.241-.732.241s-.616-1.371-.788-1.483a.271.271 0 0 0-.157-.046z"
|
|
74
|
+
fill="currentColor"
|
|
75
|
+
/>
|
|
76
|
+
</svg>
|
|
77
|
+
),
|
|
78
|
+
pnpm: (props: IconProps) => (
|
|
79
|
+
<svg viewBox="0 0 24 24" {...props}>
|
|
80
|
+
<path
|
|
81
|
+
d="M0 0v7.5h7.5V0zm8.25 0v7.5h7.498V0zm8.25 0v7.5H24V0zM8.25 8.25v7.5h7.498v-7.5zm8.25 0v7.5H24v-7.5zM0 16.5V24h7.5v-7.5zm8.25 0V24h7.498v-7.5zm8.25 0V24H24v-7.5z"
|
|
82
|
+
fill="currentColor"
|
|
83
|
+
/>
|
|
84
|
+
</svg>
|
|
85
|
+
),
|
|
86
|
+
react: (props: IconProps) => (
|
|
87
|
+
<svg viewBox="0 0 24 24" {...props}>
|
|
88
|
+
<path
|
|
89
|
+
d="M14.23 12.004a2.236 2.236 0 0 1-2.235 2.236 2.236 2.236 0 0 1-2.236-2.236 2.236 2.236 0 0 1 2.235-2.236 2.236 2.236 0 0 1 2.236 2.236zm2.648-10.69c-1.346 0-3.107.96-4.888 2.622-1.78-1.653-3.542-2.602-4.887-2.602-.41 0-.783.093-1.106.278-1.375.793-1.683 3.264-.973 6.365C1.98 8.917 0 10.42 0 12.004c0 1.59 1.99 3.097 5.043 4.03-.704 3.113-.39 5.588.988 6.38.32.187.69.275 1.102.275 1.345 0 3.107-.96 4.888-2.624 1.78 1.654 3.542 2.603 4.887 2.603.41 0 .783-.09 1.106-.275 1.374-.792 1.683-3.263.973-6.365C22.02 15.096 24 13.59 24 12.004c0-1.59-1.99-3.097-5.043-4.032.704-3.11.39-5.587-.988-6.38-.318-.184-.688-.277-1.092-.278zm-.005 1.09v.006c.225 0 .406.044.558.127.666.382.955 1.835.73 3.704-.054.46-.142.945-.25 1.44-.96-.236-2.006-.417-3.107-.534-.66-.905-1.345-1.727-2.035-2.447 1.592-1.48 3.087-2.292 4.105-2.295zm-9.77.02c1.012 0 2.514.808 4.11 2.28-.686.72-1.37 1.537-2.02 2.442-1.107.117-2.154.298-3.113.538-.112-.49-.195-.964-.254-1.42-.23-1.868.054-3.32.714-3.707.19-.09.4-.127.563-.132zm4.882 3.05c.455.468.91.992 1.36 1.564-.44-.02-.89-.034-1.345-.034-.46 0-.915.01-1.36.034.44-.572.895-1.096 1.345-1.565zM12 8.1c.74 0 1.477.034 2.202.093.406.582.802 1.203 1.183 1.86.372.64.71 1.29 1.018 1.946-.308.655-.646 1.31-1.013 1.95-.38.66-.773 1.288-1.18 1.87-.728.063-1.466.098-2.21.098-.74 0-1.477-.035-2.202-.093-.406-.582-.802-1.204-1.183-1.86-.372-.64-.71-1.29-1.018-1.946.303-.657.646-1.313 1.013-1.954.38-.66.773-1.286 1.18-1.868.728-.064 1.466-.098 2.21-.098zm-3.635.254c-.24.377-.48.763-.704 1.16-.225.39-.435.782-.635 1.174-.265-.656-.49-1.31-.676-1.947.64-.15 1.315-.283 2.015-.386zm7.26 0c.695.103 1.365.23 2.006.387-.18.632-.405 1.282-.66 1.933-.2-.39-.41-.783-.64-1.174-.225-.392-.465-.774-.705-1.146zm3.063.675c.484.15.944.317 1.375.498 1.732.74 2.852 1.708 2.852 2.476-.005.768-1.125 1.74-2.857 2.475-.42.18-.88.342-1.355.493-.28-.958-.646-1.956-1.1-2.98.45-1.017.81-2.01 1.085-2.964zm-13.395.004c.278.96.645 1.957 1.1 2.98-.45 1.017-.812 2.01-1.086 2.964-.484-.15-.944-.318-1.37-.5-1.732-.737-2.852-1.706-2.852-2.474 0-.768 1.12-1.742 2.852-2.476.42-.18.88-.342 1.356-.494zm11.678 4.28c.265.657.49 1.312.676 1.948-.64.157-1.316.29-2.016.39.24-.375.48-.762.705-1.158.225-.39.435-.788.636-1.18zm-9.945.02c.2.392.41.783.64 1.175.23.39.465.772.705 1.143-.695-.102-1.365-.23-2.006-.386.18-.63.406-1.282.66-1.933zM17.92 16.32c.112.493.2.968.254 1.423.23 1.868-.054 3.32-.714 3.708-.147.09-.338.128-.563.128-1.012 0-2.514-.807-4.11-2.28.686-.72 1.37-1.536 2.02-2.44 1.107-.118 2.154-.3 3.113-.54zm-11.83.01c.96.234 2.006.415 3.107.532.66.905 1.345 1.727 2.035 2.446-1.595 1.483-3.092 2.295-4.11 2.295-.22-.005-.406-.05-.553-.132-.666-.38-.955-1.834-.73-3.703.054-.46.142-.944.25-1.438zm4.56.64c.44.02.89.034 1.345.034.46 0 .915-.01 1.36-.034-.44.572-.895 1.095-1.345 1.565-.455-.47-.91-.993-1.36-1.565z"
|
|
90
|
+
fill="currentColor"
|
|
91
|
+
/>
|
|
92
|
+
</svg>
|
|
93
|
+
),
|
|
94
|
+
tailwind: (props: IconProps) => (
|
|
95
|
+
<svg viewBox="0 0 24 24" {...props}>
|
|
96
|
+
<path
|
|
97
|
+
d="M12.001,4.8c-3.2,0-5.2,1.6-6,4.8c1.2-1.6,2.6-2.2,4.2-1.8c0.913,0.228,1.565,0.89,2.288,1.624 C13.666,10.618,15.027,12,18.001,12c3.2,0,5.2-1.6,6-4.8c-1.2,1.6-2.6,2.2-4.2,1.8c-0.913-0.228-1.565-0.89-2.288-1.624 C16.337,6.182,14.976,4.8,12.001,4.8z M6.001,12c-3.2,0-5.2,1.6-6,4.8c1.2-1.6,2.6-2.2,4.2-1.8c0.913,0.228,1.565,0.89,2.288,1.624 c1.177,1.194,2.538,2.576,5.512,2.576c3.2,0,5.2-1.6,6-4.8c-1.2,1.6-2.6,2.2-4.2,1.8c-0.913-0.228-1.565-0.89-2.288-1.624 C10.337,13.382,8.976,12,6.001,12z"
|
|
98
|
+
fill="currentColor"
|
|
99
|
+
/>
|
|
100
|
+
</svg>
|
|
101
|
+
),
|
|
102
|
+
google: (props: IconProps) => (
|
|
103
|
+
<svg role="img" viewBox="0 0 24 24" {...props}>
|
|
104
|
+
<path
|
|
105
|
+
fill="currentColor"
|
|
106
|
+
d="M12.48 10.92v3.28h7.84c-.24 1.84-.853 3.187-1.787 4.133-1.147 1.147-2.933 2.4-6.053 2.4-4.827 0-8.6-3.893-8.6-8.72s3.773-8.72 8.6-8.72c2.6 0 4.507 1.027 5.907 2.347l2.307-2.307C18.747 1.44 16.133 0 12.48 0 5.867 0 .307 5.387.307 12s5.56 12 12.173 12c3.573 0 6.267-1.173 8.373-3.36 2.16-2.16 2.84-5.213 2.84-7.667 0-.76-.053-1.467-.173-2.053H12.48z"
|
|
107
|
+
/>
|
|
108
|
+
</svg>
|
|
109
|
+
),
|
|
110
|
+
apple: (props: IconProps) => (
|
|
111
|
+
<svg role="img" viewBox="0 0 24 24" {...props}>
|
|
112
|
+
<path
|
|
113
|
+
d="M12.152 6.896c-.948 0-2.415-1.078-3.96-1.04-2.04.027-3.91 1.183-4.961 3.014-2.117 3.675-.546 9.103 1.519 12.09 1.013 1.454 2.208 3.09 3.792 3.039 1.52-.065 2.09-.987 3.935-.987 1.831 0 2.35.987 3.96.948 1.637-.026 2.676-1.48 3.676-2.948 1.156-1.688 1.636-3.325 1.662-3.415-.039-.013-3.182-1.221-3.22-4.857-.026-3.04 2.48-4.494 2.597-4.559-1.429-2.09-3.623-2.324-4.39-2.376-2-.156-3.675 1.09-4.61 1.09zM15.53 3.83c.843-1.012 1.4-2.427 1.245-3.83-1.207.052-2.662.805-3.532 1.818-.78.896-1.454 2.338-1.273 3.714 1.338.104 2.715-.688 3.559-1.701"
|
|
114
|
+
fill="currentColor"
|
|
115
|
+
/>
|
|
116
|
+
</svg>
|
|
117
|
+
),
|
|
118
|
+
paypal: (props: IconProps) => (
|
|
119
|
+
<svg role="img" viewBox="0 0 24 24" {...props}>
|
|
120
|
+
<path
|
|
121
|
+
d="M7.076 21.337H2.47a.641.641 0 0 1-.633-.74L4.944.901C5.026.382 5.474 0 5.998 0h7.46c2.57 0 4.578.543 5.69 1.81 1.01 1.15 1.304 2.42 1.012 4.287-.023.143-.047.288-.077.437-.983 5.05-4.349 6.797-8.647 6.797h-2.19c-.524 0-.968.382-1.05.9l-1.12 7.106zm14.146-14.42a3.35 3.35 0 0 0-.607-.541c-.013.076-.026.175-.041.254-.93 4.778-4.005 7.201-9.138 7.201h-2.19a.563.563 0 0 0-.556.479l-1.187 7.527h-.506l-.24 1.516a.56.56 0 0 0 .554.647h3.882c.46 0 .85-.334.922-.788.06-.26.76-4.852.816-5.09a.932.932 0 0 1 .923-.788h.58c3.76 0 6.705-1.528 7.565-5.946.36-1.847.174-3.388-.777-4.471z"
|
|
122
|
+
fill="currentColor"
|
|
123
|
+
/>
|
|
124
|
+
</svg>
|
|
125
|
+
),
|
|
126
|
+
spinner: (props: IconProps) => (
|
|
127
|
+
<svg
|
|
128
|
+
xmlns="http://www.w3.org/2000/svg"
|
|
129
|
+
width="24"
|
|
130
|
+
height="24"
|
|
131
|
+
viewBox="0 0 24 24"
|
|
132
|
+
fill="none"
|
|
133
|
+
stroke="currentColor"
|
|
134
|
+
strokeWidth="2"
|
|
135
|
+
strokeLinecap="round"
|
|
136
|
+
strokeLinejoin="round"
|
|
137
|
+
{...props}
|
|
138
|
+
>
|
|
139
|
+
<path d="M21 12a9 9 0 1 1-6.219-8.56" />
|
|
140
|
+
</svg>
|
|
141
|
+
),
|
|
142
|
+
}
|
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
import * as React from "react"
|
|
2
|
+
|
|
3
|
+
import { cn } from "../util"
|
|
4
|
+
|
|
5
|
+
export interface InputProps
|
|
6
|
+
extends React.InputHTMLAttributes<HTMLInputElement> {}
|
|
7
|
+
|
|
8
|
+
const Input = React.forwardRef<HTMLInputElement, InputProps>(
|
|
9
|
+
({ className, type, ...props }, ref) => {
|
|
10
|
+
return (
|
|
11
|
+
<input
|
|
12
|
+
type={type}
|
|
13
|
+
className={cn(
|
|
14
|
+
"flex h-10 w-full rounded-md border border-input bg-background px-3 py-2 text-sm ring-offset-background file:border-0 file:bg-transparent file:text-sm file:font-medium placeholder:text-muted-foreground focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2 disabled:cursor-not-allowed disabled:opacity-50",
|
|
15
|
+
className
|
|
16
|
+
)}
|
|
17
|
+
ref={ref}
|
|
18
|
+
{...props}
|
|
19
|
+
/>
|
|
20
|
+
)
|
|
21
|
+
}
|
|
22
|
+
)
|
|
23
|
+
Input.displayName = "Input"
|
|
24
|
+
|
|
25
|
+
export { Input }
|
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
"use client"
|
|
2
|
+
|
|
3
|
+
import * as React from "react"
|
|
4
|
+
import * as LabelPrimitive from "@radix-ui/react-label"
|
|
5
|
+
import { cva, type VariantProps } from "class-variance-authority"
|
|
6
|
+
|
|
7
|
+
import { cn } from "../util"
|
|
8
|
+
|
|
9
|
+
const labelVariants = cva(
|
|
10
|
+
"text-sm font-medium leading-none peer-disabled:cursor-not-allowed peer-disabled:opacity-70"
|
|
11
|
+
)
|
|
12
|
+
|
|
13
|
+
const Label = React.forwardRef<
|
|
14
|
+
React.ElementRef<typeof LabelPrimitive.Root>,
|
|
15
|
+
React.ComponentPropsWithoutRef<typeof LabelPrimitive.Root> &
|
|
16
|
+
VariantProps<typeof labelVariants>
|
|
17
|
+
>(({ className, ...props }, ref) => (
|
|
18
|
+
<LabelPrimitive.Root
|
|
19
|
+
ref={ref}
|
|
20
|
+
className={cn(labelVariants(), className)}
|
|
21
|
+
{...props}
|
|
22
|
+
/>
|
|
23
|
+
))
|
|
24
|
+
Label.displayName = LabelPrimitive.Root.displayName
|
|
25
|
+
|
|
26
|
+
export { Label }
|