@sikka/hawa 0.0.288 → 0.1.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (40) hide show
  1. package/dist/styles.css +182 -89
  2. package/es/blocks/AuthForms/SignInBlock.d.ts +2 -0
  3. package/es/blocks/AuthForms/SignInForm.d.ts +1 -1
  4. package/es/blocks/AuthForms/index.d.ts +1 -0
  5. package/es/elements/Button.d.ts +12 -0
  6. package/es/elements/Card.d.ts +10 -0
  7. package/es/elements/Icons.d.ts +19 -0
  8. package/es/elements/Input.d.ts +5 -0
  9. package/es/elements/Label.d.ts +5 -0
  10. package/es/index.es.js +3 -3
  11. package/es/util.d.ts +2 -0
  12. package/lib/blocks/AuthForms/SignInBlock.d.ts +2 -0
  13. package/lib/blocks/AuthForms/SignInForm.d.ts +1 -1
  14. package/lib/blocks/AuthForms/index.d.ts +1 -0
  15. package/lib/elements/Button.d.ts +12 -0
  16. package/lib/elements/Card.d.ts +10 -0
  17. package/lib/elements/Icons.d.ts +19 -0
  18. package/lib/elements/Input.d.ts +5 -0
  19. package/lib/elements/Label.d.ts +5 -0
  20. package/lib/index.js +3 -3
  21. package/lib/util.d.ts +2 -0
  22. package/package.json +5 -2
  23. package/src/blocks/AuthForms/ResetPasswordForm.tsx +59 -49
  24. package/src/blocks/AuthForms/SignInBlock.tsx +60 -0
  25. package/src/blocks/AuthForms/SignInForm.tsx +139 -128
  26. package/src/blocks/AuthForms/SignUpForm.tsx +237 -225
  27. package/src/blocks/AuthForms/index.ts +8 -7
  28. package/src/elements/Button.tsx +77 -0
  29. package/src/elements/Card.tsx +87 -0
  30. package/src/elements/HawaLoading.tsx +4 -4
  31. package/src/elements/HawaTextField.tsx +9 -7
  32. package/src/elements/Icons.tsx +145 -0
  33. package/src/elements/Input.tsx +25 -0
  34. package/src/elements/Label.tsx +26 -0
  35. package/src/styles.css +182 -89
  36. package/src/tailwind.css +22 -22
  37. package/src/translations/ar.json +1 -0
  38. package/src/translations/en.json +1 -0
  39. package/src/util.ts +10 -4
  40. package/tailwind.config.js +39 -3
@@ -0,0 +1,87 @@
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
+ type CardContentProps = {
59
+ headless?: boolean
60
+ } & React.HTMLAttributes<HTMLDivElement>
61
+
62
+ const CardContent = React.forwardRef<
63
+ HTMLDivElement,
64
+ CardContentProps
65
+ // React.HTMLAttributes<HTMLDivElement>
66
+ >(({ className, ...props }, ref) => (
67
+ <div
68
+ ref={ref}
69
+ className={cn("p-6", props.headless ? "pt-6" : "pt-0", className)}
70
+ {...props}
71
+ />
72
+ ))
73
+ CardContent.displayName = "CardContent"
74
+
75
+ const CardFooter = React.forwardRef<
76
+ HTMLDivElement,
77
+ React.HTMLAttributes<HTMLDivElement>
78
+ >(({ className, ...props }, ref) => (
79
+ <div
80
+ ref={ref}
81
+ className={cn("flex items-center p-6 pt-0", className)}
82
+ {...props}
83
+ />
84
+ ))
85
+ CardFooter.displayName = "CardFooter"
86
+
87
+ export { Card, CardHeader, CardFooter, CardTitle, CardDescription, CardContent }
@@ -28,13 +28,13 @@ export const HawaLoading: FC<LoadingTypes> = ({
28
28
  switch (design.split("-")[0]) {
29
29
  case "dots":
30
30
  return (
31
- <div className="flex flex-row space-x-2 ">
31
+ <div className="flex flex-row gap-2">
32
32
  <div
33
33
  className={clsx(
34
34
  "animate-bounce rounded-full delay-100 repeat-infinite",
35
35
  size === "button" ? "h-2 w-2" : sizeStyles[size],
36
36
  animationStyles[design.split("-")[1]],
37
- color ? color : "bg-buttonPrimary-500"
37
+ color ? color : "bg-primary-foreground"
38
38
  )}
39
39
  ></div>
40
40
  <div
@@ -43,7 +43,7 @@ export const HawaLoading: FC<LoadingTypes> = ({
43
43
  size === "button" ? "h-2 w-2" : sizeStyles[size],
44
44
  animationStyles[design.split("-")[1]],
45
45
 
46
- color ? color : "bg-buttonPrimary-500"
46
+ color ? color : "bg-primary-foreground"
47
47
  )}
48
48
  ></div>
49
49
  <div
@@ -52,7 +52,7 @@ export const HawaLoading: FC<LoadingTypes> = ({
52
52
  size === "button" ? "h-2 w-2" : sizeStyles[size],
53
53
  animationStyles[design.split("-")[1]],
54
54
 
55
- color ? color : "bg-buttonPrimary-500"
55
+ color ? color : "bg-primary-foreground"
56
56
  )}
57
57
  ></div>
58
58
  </div>
@@ -1,5 +1,6 @@
1
1
  import React, { FC, PropsWithRef } from "react"
2
2
  import clsx from "clsx"
3
+ import { Label } from "./Label"
3
4
 
4
5
  // TODO: make icon based on direction
5
6
  // TODO: Preferebly use context to pass direction rtl | ltr
@@ -50,7 +51,7 @@ export const HawaTextField: FC<TextFieldTypes> = ({
50
51
  full: "w-full",
51
52
  }
52
53
 
53
- let defaultStyle = "flex max-h-fit flex-col justify-center"
54
+ let defaultStyle = "flex max-h-fit flex-col justify-center gap-2"
54
55
  let defaultInputStyle =
55
56
  "block w-full rounded border bg-background p-2 text-sm text-gray-900 focus:border-blue-500 focus:ring-blue-500"
56
57
  let previewInputStyle =
@@ -62,12 +63,13 @@ export const HawaTextField: FC<TextFieldTypes> = ({
62
63
  className={clsx(defaultStyle, marginStyles[margin], widthStyles[width])}
63
64
  >
64
65
  {props.label && (
65
- <label
66
- // htmlFor="first_name"
67
- className="mb-2 block text-sm font-medium "
68
- >
69
- {props.label}
70
- </label>
66
+ // <label
67
+ // // htmlFor="first_name"
68
+ // className="mb-2 block text-sm font-medium "
69
+ // >
70
+ // {props.label}
71
+ // </label>
72
+ <Label>{props.label}</Label>
71
73
  )}
72
74
  {preview ? (
73
75
  <>
@@ -0,0 +1,145 @@
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
34
+ fill="currentColor"
35
+ 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"
36
+ />
37
+ </svg>
38
+ ),
39
+ gitHub: (props: IconProps) => (
40
+ <svg viewBox="0 0 438.549 438.549" {...props}>
41
+ <path
42
+ fill="currentColor"
43
+ 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"
44
+ ></path>
45
+ </svg>
46
+ ),
47
+ radix: (props: IconProps) => (
48
+ <svg viewBox="0 0 25 25" fill="none" {...props}>
49
+ <path
50
+ d="M12 25C7.58173 25 4 21.4183 4 17C4 12.5817 7.58173 9 12 9V25Z"
51
+ fill="currentcolor"
52
+ ></path>
53
+ <path d="M12 0H4V8H12V0Z" fill="currentcolor"></path>
54
+ <path
55
+ 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"
56
+ fill="currentcolor"
57
+ ></path>
58
+ </svg>
59
+ ),
60
+ aria: (props: IconProps) => (
61
+ <svg role="img" viewBox="0 0 24 24" fill="currentColor" {...props}>
62
+ <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" />
63
+ </svg>
64
+ ),
65
+ npm: (props: IconProps) => (
66
+ <svg viewBox="0 0 24 24" {...props}>
67
+ <path
68
+ 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"
69
+ fill="currentColor"
70
+ />
71
+ </svg>
72
+ ),
73
+ yarn: (props: IconProps) => (
74
+ <svg viewBox="0 0 24 24" {...props}>
75
+ <path
76
+ 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"
77
+ fill="currentColor"
78
+ />
79
+ </svg>
80
+ ),
81
+ pnpm: (props: IconProps) => (
82
+ <svg viewBox="0 0 24 24" {...props}>
83
+ <path
84
+ 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"
85
+ fill="currentColor"
86
+ />
87
+ </svg>
88
+ ),
89
+ react: (props: IconProps) => (
90
+ <svg viewBox="0 0 24 24" {...props}>
91
+ <path
92
+ 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"
93
+ fill="currentColor"
94
+ />
95
+ </svg>
96
+ ),
97
+ tailwind: (props: IconProps) => (
98
+ <svg viewBox="0 0 24 24" {...props}>
99
+ <path
100
+ 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"
101
+ fill="currentColor"
102
+ />
103
+ </svg>
104
+ ),
105
+ google: (props: IconProps) => (
106
+ <svg role="img" viewBox="0 0 24 24" {...props}>
107
+ <path
108
+ fill="currentColor"
109
+ 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"
110
+ />
111
+ </svg>
112
+ ),
113
+ apple: (props: IconProps) => (
114
+ <svg role="img" viewBox="0 0 24 24" {...props}>
115
+ <path
116
+ 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"
117
+ fill="currentColor"
118
+ />
119
+ </svg>
120
+ ),
121
+ paypal: (props: IconProps) => (
122
+ <svg role="img" viewBox="0 0 24 24" {...props}>
123
+ <path
124
+ 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"
125
+ fill="currentColor"
126
+ />
127
+ </svg>
128
+ ),
129
+ spinner: (props: IconProps) => (
130
+ <svg
131
+ xmlns="http://www.w3.org/2000/svg"
132
+ width="24"
133
+ height="24"
134
+ viewBox="0 0 24 24"
135
+ fill="none"
136
+ stroke="currentColor"
137
+ strokeWidth="2"
138
+ strokeLinecap="round"
139
+ strokeLinejoin="round"
140
+ {...props}
141
+ >
142
+ <path d="M21 12a9 9 0 1 1-6.219-8.56" />
143
+ </svg>
144
+ ),
145
+ }
@@ -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 }