@sikka/hawa 0.0.287 → 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 +182 -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/blocks/Referral/ReferralSettlement.tsx +1 -1
- package/src/elements/Button.tsx +57 -0
- package/src/elements/Card.tsx +78 -0
- package/src/elements/HawaButton.tsx +3 -3
- package/src/elements/HawaTable.tsx +18 -12
- 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 +182 -80
- package/src/tailwind.css +23 -19
- package/src/util.ts +10 -4
- package/tailwind.config.js +39 -3
- package/build-storybook.log +0 -379
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"
|
|
@@ -121,7 +121,7 @@ const SettlementAccountCard = (props) => {
|
|
|
121
121
|
// position={direction === "rtl" ? "right-bottom" : "left-bottom"}
|
|
122
122
|
// direction={direction}
|
|
123
123
|
>
|
|
124
|
-
<HawaButton variant="outlined"
|
|
124
|
+
<HawaButton variant="outlined" >
|
|
125
125
|
<svg
|
|
126
126
|
aria-label="Vertical Three Dots Menu Icon"
|
|
127
127
|
className="rotate-90"
|
|
@@ -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 }
|
|
@@ -36,12 +36,12 @@ const disabledVariantSyles = {
|
|
|
36
36
|
outlined: "text-gray-300 border-gray-300",
|
|
37
37
|
}
|
|
38
38
|
const baseStyles =
|
|
39
|
-
|
|
39
|
+
"cursor-pointer justify-center items-center text-center font-medium transition-all"
|
|
40
40
|
const sizeStyles = {
|
|
41
41
|
icon: "h-10 w-10",
|
|
42
42
|
xs: "px-1.5 py-2 text-[9px] h-fit",
|
|
43
43
|
small: "text-xs px-2.5 py-1.5",
|
|
44
|
-
medium: "text-sm leading-4 px-3 py-2",
|
|
44
|
+
medium: "text-sm leading-4 px-3 py-2 h-[2.36rem] ",
|
|
45
45
|
default: "h-10 px-4 py-2",
|
|
46
46
|
large: "text-sm px-4 py-2",
|
|
47
47
|
noPadding: "p-0",
|
|
@@ -90,7 +90,7 @@ export const HawaButton: FC<ButtonProps> = ({
|
|
|
90
90
|
className,
|
|
91
91
|
variant = "contained",
|
|
92
92
|
color = "default",
|
|
93
|
-
size = "
|
|
93
|
+
size = "medium",
|
|
94
94
|
width = "normal",
|
|
95
95
|
disabled = false,
|
|
96
96
|
isLoading = false,
|
|
@@ -55,7 +55,7 @@ export const HawaTable: FC<TableTypes> = ({
|
|
|
55
55
|
size = "normal",
|
|
56
56
|
bodyColor = "white",
|
|
57
57
|
headerColor = "gray-200",
|
|
58
|
-
borders,
|
|
58
|
+
borders = "all",
|
|
59
59
|
highlightFirst = false,
|
|
60
60
|
direction = "ltr",
|
|
61
61
|
bordersWidth = "1",
|
|
@@ -130,7 +130,7 @@ export const HawaTable: FC<TableTypes> = ({
|
|
|
130
130
|
<div className="relative flex flex-col gap-2 ">
|
|
131
131
|
<div className={`overflow-x-auto rounded bg-${headerColor}`}>
|
|
132
132
|
{props.headerTools && (
|
|
133
|
-
<div className="flex flex-row items-center justify-between gap-2 px-4
|
|
133
|
+
<div className="flex flex-row items-center justify-between gap-2 border bg-background px-4 py-2">
|
|
134
134
|
<HawaTextField
|
|
135
135
|
icon={
|
|
136
136
|
<svg
|
|
@@ -189,7 +189,7 @@ export const HawaTable: FC<TableTypes> = ({
|
|
|
189
189
|
<table
|
|
190
190
|
className={clsx(
|
|
191
191
|
borders === "outer" || borders === "all"
|
|
192
|
-
? `outline outline-[${bordersWidth}px] -outline-offset-1 outline-gray-300`
|
|
192
|
+
? `outline outline-[${bordersWidth}px] -outline-offset-1 outline-gray-300 dark:outline-gray-700`
|
|
193
193
|
: "",
|
|
194
194
|
"w-full rounded text-left text-sm text-gray-500 dark:text-gray-400",
|
|
195
195
|
`bg-${headerColor}`
|
|
@@ -350,7 +350,7 @@ export const HawaTable: FC<TableTypes> = ({
|
|
|
350
350
|
}
|
|
351
351
|
direction={direction}
|
|
352
352
|
>
|
|
353
|
-
<div className="flex w-fit items-center justify-center rounded p-2 hover:bg-gray-200">
|
|
353
|
+
<div className="flex w-fit cursor-pointer items-center justify-center rounded p-2 hover:bg-gray-200 dark:hover:bg-gray-600">
|
|
354
354
|
<svg
|
|
355
355
|
aria-label="Vertical Three Dots Menu Icon"
|
|
356
356
|
stroke="currentColor"
|
|
@@ -384,8 +384,9 @@ export const HawaTable: FC<TableTypes> = ({
|
|
|
384
384
|
<td colSpan={20}>
|
|
385
385
|
<div
|
|
386
386
|
className={clsx(
|
|
387
|
-
"w-full rounded-b
|
|
388
|
-
bodyColor ? `bg-${bodyColor}` : "bg-
|
|
387
|
+
"w-full rounded-b border p-5 text-center",
|
|
388
|
+
// bodyColor ? `bg-${bodyColor}` : "bg-background"
|
|
389
|
+
"bg-background"
|
|
389
390
|
)}
|
|
390
391
|
>
|
|
391
392
|
{props.texts?.noData ?? "No Data"}
|
|
@@ -405,7 +406,7 @@ export const HawaTable: FC<TableTypes> = ({
|
|
|
405
406
|
{/* Previous Page Button */}
|
|
406
407
|
<div
|
|
407
408
|
className={clsx(
|
|
408
|
-
"flex h-6 w-6 rotate-180 items-center justify-center rounded bg-gray-100 p-1
|
|
409
|
+
"flex h-6 w-6 rotate-180 cursor-pointer items-center justify-center rounded border bg-gray-100 p-1 text-xs hover:bg-layoutPrimary-700 dark:bg-background dark:hover:bg-gray-700 "
|
|
409
410
|
)}
|
|
410
411
|
onClick={() =>
|
|
411
412
|
page <= 1 ? setPage(range.length) : setPage(page - 1)
|
|
@@ -500,10 +501,15 @@ export const HawaTable: FC<TableTypes> = ({
|
|
|
500
501
|
<button
|
|
501
502
|
key={index}
|
|
502
503
|
className={clsx(
|
|
503
|
-
"w-10 p-1 text-xs hover:bg-gray-
|
|
504
|
+
"w-10 p-1 text-xs hover:bg-gray-200 dark:hover:bg-gray-700",
|
|
504
505
|
page === el
|
|
505
506
|
? "bg-buttonPrimary-500 text-white hover:bg-buttonPrimary-500"
|
|
506
|
-
: "bg-
|
|
507
|
+
: "border bg-background",
|
|
508
|
+
|
|
509
|
+
index === 0 ? "rounded-l border-r-0" : "",
|
|
510
|
+
index === range.length - 1
|
|
511
|
+
? "rounded-r border-l-0"
|
|
512
|
+
: ""
|
|
507
513
|
)}
|
|
508
514
|
onClick={() => setPage(el)}
|
|
509
515
|
>
|
|
@@ -518,7 +524,7 @@ export const HawaTable: FC<TableTypes> = ({
|
|
|
518
524
|
page >= range.length ? setPage(1) : setPage(page + 1)
|
|
519
525
|
}
|
|
520
526
|
className={clsx(
|
|
521
|
-
"flex h-6 w-6 items-center
|
|
527
|
+
"flex h-6 w-6 cursor-pointer items-center justify-center rounded border bg-gray-100 p-1 text-xs hover:bg-layoutPrimary-700 dark:bg-background dark:hover:bg-gray-700 "
|
|
522
528
|
)}
|
|
523
529
|
>
|
|
524
530
|
<svg
|
|
@@ -542,14 +548,14 @@ export const HawaTable: FC<TableTypes> = ({
|
|
|
542
548
|
)}
|
|
543
549
|
{/* Pagination Settings */}
|
|
544
550
|
{props.rows ? (
|
|
545
|
-
<div className="flex w-fit flex-row items-center gap-2
|
|
551
|
+
<div className="flex w-fit flex-row items-center gap-2 ">
|
|
546
552
|
<div className="text-xs ">
|
|
547
553
|
{props.rows.length} {props.texts?.items ?? "Items"}
|
|
548
554
|
</div>
|
|
549
555
|
|
|
550
556
|
<select
|
|
551
557
|
value={perPage}
|
|
552
|
-
className="h-6 rounded text-xs"
|
|
558
|
+
className="h-6 cursor-pointer rounded border bg-background px-2 text-xs"
|
|
553
559
|
onChange={(e) => {
|
|
554
560
|
setPerPage(parseInt(e.target.value))
|
|
555
561
|
}}
|
|
@@ -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 }
|