@authdog/react-elements 0.0.11 → 0.0.13

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 (43) hide show
  1. package/.turbo/turbo-build.log +27 -37
  2. package/CHANGELOG.md +18 -0
  3. package/dist/components/ui/avatar.js +1 -0
  4. package/dist/components/ui/avatar.js.map +1 -1
  5. package/dist/components/ui/avatar.mjs +1 -0
  6. package/dist/components/ui/avatar.mjs.map +1 -1
  7. package/dist/components/ui/button.js +1 -0
  8. package/dist/components/ui/button.js.map +1 -1
  9. package/dist/components/ui/button.mjs +1 -0
  10. package/dist/components/ui/button.mjs.map +1 -1
  11. package/dist/components/ui/dropdown-menu.js +1 -0
  12. package/dist/components/ui/dropdown-menu.js.map +1 -1
  13. package/dist/components/ui/dropdown-menu.mjs +1 -0
  14. package/dist/components/ui/dropdown-menu.mjs.map +1 -1
  15. package/dist/components/ui/sheet.js +1 -0
  16. package/dist/components/ui/sheet.js.map +1 -1
  17. package/dist/components/ui/sheet.mjs +1 -0
  18. package/dist/components/ui/sheet.mjs.map +1 -1
  19. package/dist/index.d.mts +14 -5
  20. package/dist/index.d.ts +14 -5
  21. package/dist/index.js +2 -1
  22. package/dist/index.js.map +1 -1
  23. package/dist/index.mjs +2 -1
  24. package/dist/index.mjs.map +1 -1
  25. package/dist/lib/utils.js +1 -0
  26. package/dist/lib/utils.js.map +1 -1
  27. package/dist/lib/utils.mjs +1 -0
  28. package/dist/lib/utils.mjs.map +1 -1
  29. package/dist/styles.css +0 -6
  30. package/package.json +21 -6
  31. package/src/components/core/navbar.tsx +44 -39
  32. package/src/components/ui/button.tsx +1 -1
  33. package/tsup.config.ts +16 -5
  34. package/dist/components/ui/avatar.d.mts +0 -9
  35. package/dist/components/ui/avatar.d.ts +0 -9
  36. package/dist/components/ui/button.d.mts +0 -14
  37. package/dist/components/ui/button.d.ts +0 -14
  38. package/dist/components/ui/dropdown-menu.d.mts +0 -28
  39. package/dist/components/ui/dropdown-menu.d.ts +0 -28
  40. package/dist/components/ui/sheet.d.mts +0 -16
  41. package/dist/components/ui/sheet.d.ts +0 -16
  42. package/dist/lib/utils.d.mts +0 -5
  43. package/dist/lib/utils.d.ts +0 -5
@@ -1,9 +1,9 @@
1
1
  "use client"
2
2
 
3
3
  import type React from "react"
4
-
5
- import { useState } from "react"
6
- import * as LucideIcons from "lucide-react"
4
+ import { useState, useEffect } from "react"
5
+ import { User, Settings, LogOut, Menu } from "lucide-react"
6
+ import type { LucideProps } from "lucide-react"
7
7
 
8
8
  import { cn } from "../../lib/utils"
9
9
  import { Avatar, AvatarFallback, AvatarImage } from "../../components/ui/avatar"
@@ -56,33 +56,39 @@ export function Navbar({
56
56
  onLogout = () => console.log("Logout clicked"),
57
57
  }: NavbarProps) {
58
58
  const [open, setOpen] = useState(false)
59
- const UserIcon = LucideIcons.User as any
60
- const SettingsIcon = LucideIcons.Settings as any
61
- const LogOutIcon = LucideIcons.LogOut as any
62
- const MenuIcon = LucideIcons.Menu as any
59
+ const [isMounted, setIsMounted] = useState(false)
60
+
61
+ useEffect(() => {
62
+ setIsMounted(true)
63
+ }, [])
64
+
65
+ const iconProps: LucideProps = {
66
+ className: "mr-2 h-4 w-4",
67
+ "aria-hidden": "true"
68
+ }
69
+
70
+ const renderIcon = (Icon: any) => {
71
+ if (!isMounted) return null
72
+ return <Icon {...iconProps} />
73
+ }
63
74
 
64
75
  return (
65
76
  <header className={cn("border-b bg-background", className)}>
66
77
  <div className="container flex h-16 items-center justify-between px-4 md:px-6">
67
78
  <div className="flex items-center gap-4">
68
- {/* <Link href="/" className="flex items-center gap-2">
69
- <span className="text-xl font-bold">{logoText}</span>
70
- </Link> */}
79
+ <span className="text-xl font-bold">{logoText}</span>
71
80
  <nav className="hidden md:flex gap-6">
72
81
  {items?.map((item, index) => (
73
- // <Link
74
- // key={index}
75
- // href={item.href}
76
- // className={cn(
77
- // "text-sm font-medium transition-colors hover:text-primary",
78
- // item.disabled && "cursor-not-allowed opacity-80",
79
- // )}
80
- // >
81
- // {item.title}
82
- // </Link>
83
- <a href={item?.href}>
84
- {item.title}
85
- </a>
82
+ <a
83
+ key={index}
84
+ href={item.href}
85
+ className={cn(
86
+ "text-sm font-medium transition-colors hover:text-primary",
87
+ item.disabled && "cursor-not-allowed opacity-80"
88
+ )}
89
+ >
90
+ {item.title}
91
+ </a>
86
92
  ))}
87
93
  </nav>
88
94
  </div>
@@ -107,17 +113,17 @@ export function Navbar({
107
113
  <DropdownMenuSeparator />
108
114
  <DropdownMenuGroup>
109
115
  <DropdownMenuItem>
110
- <UserIcon className="mr-2 h-4 w-4" />
116
+ {renderIcon(User)}
111
117
  <span>Profile</span>
112
118
  </DropdownMenuItem>
113
119
  <DropdownMenuItem>
114
- <SettingsIcon className="mr-2 h-4 w-4" />
120
+ {renderIcon(Settings)}
115
121
  <span>Settings</span>
116
122
  </DropdownMenuItem>
117
123
  </DropdownMenuGroup>
118
124
  <DropdownMenuSeparator />
119
125
  <DropdownMenuItem onClick={onLogout}>
120
- <LogOutIcon className="mr-2 h-4 w-4" />
126
+ {renderIcon(LogOut)}
121
127
  <span>Log out</span>
122
128
  </DropdownMenuItem>
123
129
  </DropdownMenuContent>
@@ -125,24 +131,23 @@ export function Navbar({
125
131
  <Sheet open={open} onOpenChange={setOpen}>
126
132
  <SheetTrigger asChild>
127
133
  <Button variant="ghost" size="icon" className="md:hidden" aria-label="Open Menu">
128
- <MenuIcon className="h-5 w-5" />
134
+ {renderIcon(Menu)}
129
135
  </Button>
130
136
  </SheetTrigger>
131
137
  <SheetContent side="left" className="pr-0">
132
138
  <nav className="grid gap-2 py-6">
133
139
  {items?.map((item, index) => (
134
- // <Link
135
- // key={index}
136
- // href={item.href}
137
- // className={cn(
138
- // "flex w-full items-center rounded-md px-3 py-2 text-sm font-medium hover:bg-accent",
139
- // item.disabled && "cursor-not-allowed opacity-80",
140
- // )}
141
- // onClick={() => setOpen(false)}
142
- // >
143
- // {item.title}
144
- // </Link>
145
- <a href="https://www.goo.bar" />
140
+ <a
141
+ key={index}
142
+ href={item.href}
143
+ className={cn(
144
+ "flex w-full items-center rounded-md px-3 py-2 text-sm font-medium hover:bg-accent",
145
+ item.disabled && "cursor-not-allowed opacity-80"
146
+ )}
147
+ onClick={() => setOpen(false)}
148
+ >
149
+ {item.title}
150
+ </a>
146
151
  ))}
147
152
  </nav>
148
153
  </SheetContent>
@@ -2,7 +2,7 @@ import * as React from "react";
2
2
  import { Slot } from "@radix-ui/react-slot";
3
3
  import { cva, type VariantProps } from "class-variance-authority";
4
4
 
5
- import { cn } from "@authdog/react-elements/lib/utils";
5
+ import { cn } from "../../lib/utils";
6
6
 
7
7
  const buttonVariants = cva(
8
8
  "inline-flex items-center justify-center whitespace-nowrap 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",
package/tsup.config.ts CHANGED
@@ -6,8 +6,13 @@ export default defineConfig({
6
6
  "src/components/ui/*.tsx",
7
7
  "src/lib/*.ts"
8
8
  ], // Build all entry points
9
- format: ["cjs", "esm"],
10
- dts: true,
9
+ format: ["esm", "cjs"],
10
+ dts: {
11
+ resolve: true,
12
+ entry: {
13
+ index: "src/index.ts",
14
+ },
15
+ },
11
16
  splitting: false,
12
17
  sourcemap: true,
13
18
  minify: true,
@@ -16,8 +21,14 @@ export default defineConfig({
16
21
  external: ["react", "react-dom"],
17
22
  outDir: "dist",
18
23
  platform: "browser",
19
- outExtension: ({ format }) => ({
20
- js: format === "esm" ? ".mjs" : ".js",
21
- }),
24
+ esbuildOptions(options) {
25
+ options.banner = {
26
+ js: '"use client";',
27
+ };
28
+ options.define = {
29
+ 'process.env.NODE_ENV': '"production"',
30
+ };
31
+ options.resolveExtensions = ['.tsx', '.ts', '.jsx', '.js', '.json'];
32
+ },
22
33
  onSuccess: "cp src/global.css dist/global.css && cp postcss.config.mjs dist/postcss.config.mjs && cp tailwind.config.ts dist/tailwind.config.ts"
23
34
  });
@@ -1,9 +0,0 @@
1
- import * as react_jsx_runtime from 'react/jsx-runtime';
2
- import * as React from 'react';
3
- import * as AvatarPrimitive from '@radix-ui/react-avatar';
4
-
5
- declare function Avatar({ className, ...props }: React.ComponentProps<typeof AvatarPrimitive.Root>): react_jsx_runtime.JSX.Element;
6
- declare function AvatarImage({ className, ...props }: React.ComponentProps<typeof AvatarPrimitive.Image>): react_jsx_runtime.JSX.Element;
7
- declare function AvatarFallback({ className, ...props }: React.ComponentProps<typeof AvatarPrimitive.Fallback>): react_jsx_runtime.JSX.Element;
8
-
9
- export { Avatar, AvatarFallback, AvatarImage };
@@ -1,9 +0,0 @@
1
- import * as react_jsx_runtime from 'react/jsx-runtime';
2
- import * as React from 'react';
3
- import * as AvatarPrimitive from '@radix-ui/react-avatar';
4
-
5
- declare function Avatar({ className, ...props }: React.ComponentProps<typeof AvatarPrimitive.Root>): react_jsx_runtime.JSX.Element;
6
- declare function AvatarImage({ className, ...props }: React.ComponentProps<typeof AvatarPrimitive.Image>): react_jsx_runtime.JSX.Element;
7
- declare function AvatarFallback({ className, ...props }: React.ComponentProps<typeof AvatarPrimitive.Fallback>): react_jsx_runtime.JSX.Element;
8
-
9
- export { Avatar, AvatarFallback, AvatarImage };
@@ -1,14 +0,0 @@
1
- import * as class_variance_authority_types from 'class-variance-authority/types';
2
- import * as React from 'react';
3
- import { VariantProps } from 'class-variance-authority';
4
-
5
- declare const buttonVariants: (props?: ({
6
- variant?: "default" | "destructive" | "outline" | "secondary" | "ghost" | "link" | null | undefined;
7
- size?: "default" | "sm" | "lg" | "icon" | null | undefined;
8
- } & class_variance_authority_types.ClassProp) | undefined) => string;
9
- interface ButtonProps extends React.ButtonHTMLAttributes<HTMLButtonElement>, VariantProps<typeof buttonVariants> {
10
- asChild?: boolean;
11
- }
12
- declare const Button: React.ForwardRefExoticComponent<ButtonProps & React.RefAttributes<HTMLButtonElement>>;
13
-
14
- export { Button, type ButtonProps, buttonVariants };
@@ -1,14 +0,0 @@
1
- import * as class_variance_authority_types from 'class-variance-authority/types';
2
- import * as React from 'react';
3
- import { VariantProps } from 'class-variance-authority';
4
-
5
- declare const buttonVariants: (props?: ({
6
- variant?: "default" | "destructive" | "outline" | "secondary" | "ghost" | "link" | null | undefined;
7
- size?: "default" | "sm" | "lg" | "icon" | null | undefined;
8
- } & class_variance_authority_types.ClassProp) | undefined) => string;
9
- interface ButtonProps extends React.ButtonHTMLAttributes<HTMLButtonElement>, VariantProps<typeof buttonVariants> {
10
- asChild?: boolean;
11
- }
12
- declare const Button: React.ForwardRefExoticComponent<ButtonProps & React.RefAttributes<HTMLButtonElement>>;
13
-
14
- export { Button, type ButtonProps, buttonVariants };
@@ -1,28 +0,0 @@
1
- import * as react_jsx_runtime from 'react/jsx-runtime';
2
- import * as React from 'react';
3
- import * as DropdownMenuPrimitive from '@radix-ui/react-dropdown-menu';
4
-
5
- declare function DropdownMenu({ ...props }: React.ComponentProps<typeof DropdownMenuPrimitive.Root>): react_jsx_runtime.JSX.Element;
6
- declare function DropdownMenuPortal({ ...props }: React.ComponentProps<typeof DropdownMenuPrimitive.Portal>): react_jsx_runtime.JSX.Element;
7
- declare function DropdownMenuTrigger({ ...props }: React.ComponentProps<typeof DropdownMenuPrimitive.Trigger>): react_jsx_runtime.JSX.Element;
8
- declare function DropdownMenuContent({ className, sideOffset, ...props }: React.ComponentProps<typeof DropdownMenuPrimitive.Content>): react_jsx_runtime.JSX.Element;
9
- declare function DropdownMenuGroup({ ...props }: React.ComponentProps<typeof DropdownMenuPrimitive.Group>): react_jsx_runtime.JSX.Element;
10
- declare function DropdownMenuItem({ className, inset, variant, ...props }: React.ComponentProps<typeof DropdownMenuPrimitive.Item> & {
11
- inset?: boolean;
12
- variant?: "default" | "destructive";
13
- }): react_jsx_runtime.JSX.Element;
14
- declare function DropdownMenuCheckboxItem({ className, children, checked, ...props }: React.ComponentProps<typeof DropdownMenuPrimitive.CheckboxItem>): react_jsx_runtime.JSX.Element;
15
- declare function DropdownMenuRadioGroup({ ...props }: React.ComponentProps<typeof DropdownMenuPrimitive.RadioGroup>): react_jsx_runtime.JSX.Element;
16
- declare function DropdownMenuRadioItem({ className, children, ...props }: React.ComponentProps<typeof DropdownMenuPrimitive.RadioItem>): react_jsx_runtime.JSX.Element;
17
- declare function DropdownMenuLabel({ className, inset, ...props }: React.ComponentProps<typeof DropdownMenuPrimitive.Label> & {
18
- inset?: boolean;
19
- }): react_jsx_runtime.JSX.Element;
20
- declare function DropdownMenuSeparator({ className, ...props }: React.ComponentProps<typeof DropdownMenuPrimitive.Separator>): react_jsx_runtime.JSX.Element;
21
- declare function DropdownMenuShortcut({ className, ...props }: React.ComponentProps<"span">): react_jsx_runtime.JSX.Element;
22
- declare function DropdownMenuSub({ ...props }: React.ComponentProps<typeof DropdownMenuPrimitive.Sub>): react_jsx_runtime.JSX.Element;
23
- declare function DropdownMenuSubTrigger({ className, inset, children, ...props }: React.ComponentProps<typeof DropdownMenuPrimitive.SubTrigger> & {
24
- inset?: boolean;
25
- }): react_jsx_runtime.JSX.Element;
26
- declare function DropdownMenuSubContent({ className, ...props }: React.ComponentProps<typeof DropdownMenuPrimitive.SubContent>): react_jsx_runtime.JSX.Element;
27
-
28
- export { DropdownMenu, DropdownMenuCheckboxItem, DropdownMenuContent, DropdownMenuGroup, DropdownMenuItem, DropdownMenuLabel, DropdownMenuPortal, DropdownMenuRadioGroup, DropdownMenuRadioItem, DropdownMenuSeparator, DropdownMenuShortcut, DropdownMenuSub, DropdownMenuSubContent, DropdownMenuSubTrigger, DropdownMenuTrigger };
@@ -1,28 +0,0 @@
1
- import * as react_jsx_runtime from 'react/jsx-runtime';
2
- import * as React from 'react';
3
- import * as DropdownMenuPrimitive from '@radix-ui/react-dropdown-menu';
4
-
5
- declare function DropdownMenu({ ...props }: React.ComponentProps<typeof DropdownMenuPrimitive.Root>): react_jsx_runtime.JSX.Element;
6
- declare function DropdownMenuPortal({ ...props }: React.ComponentProps<typeof DropdownMenuPrimitive.Portal>): react_jsx_runtime.JSX.Element;
7
- declare function DropdownMenuTrigger({ ...props }: React.ComponentProps<typeof DropdownMenuPrimitive.Trigger>): react_jsx_runtime.JSX.Element;
8
- declare function DropdownMenuContent({ className, sideOffset, ...props }: React.ComponentProps<typeof DropdownMenuPrimitive.Content>): react_jsx_runtime.JSX.Element;
9
- declare function DropdownMenuGroup({ ...props }: React.ComponentProps<typeof DropdownMenuPrimitive.Group>): react_jsx_runtime.JSX.Element;
10
- declare function DropdownMenuItem({ className, inset, variant, ...props }: React.ComponentProps<typeof DropdownMenuPrimitive.Item> & {
11
- inset?: boolean;
12
- variant?: "default" | "destructive";
13
- }): react_jsx_runtime.JSX.Element;
14
- declare function DropdownMenuCheckboxItem({ className, children, checked, ...props }: React.ComponentProps<typeof DropdownMenuPrimitive.CheckboxItem>): react_jsx_runtime.JSX.Element;
15
- declare function DropdownMenuRadioGroup({ ...props }: React.ComponentProps<typeof DropdownMenuPrimitive.RadioGroup>): react_jsx_runtime.JSX.Element;
16
- declare function DropdownMenuRadioItem({ className, children, ...props }: React.ComponentProps<typeof DropdownMenuPrimitive.RadioItem>): react_jsx_runtime.JSX.Element;
17
- declare function DropdownMenuLabel({ className, inset, ...props }: React.ComponentProps<typeof DropdownMenuPrimitive.Label> & {
18
- inset?: boolean;
19
- }): react_jsx_runtime.JSX.Element;
20
- declare function DropdownMenuSeparator({ className, ...props }: React.ComponentProps<typeof DropdownMenuPrimitive.Separator>): react_jsx_runtime.JSX.Element;
21
- declare function DropdownMenuShortcut({ className, ...props }: React.ComponentProps<"span">): react_jsx_runtime.JSX.Element;
22
- declare function DropdownMenuSub({ ...props }: React.ComponentProps<typeof DropdownMenuPrimitive.Sub>): react_jsx_runtime.JSX.Element;
23
- declare function DropdownMenuSubTrigger({ className, inset, children, ...props }: React.ComponentProps<typeof DropdownMenuPrimitive.SubTrigger> & {
24
- inset?: boolean;
25
- }): react_jsx_runtime.JSX.Element;
26
- declare function DropdownMenuSubContent({ className, ...props }: React.ComponentProps<typeof DropdownMenuPrimitive.SubContent>): react_jsx_runtime.JSX.Element;
27
-
28
- export { DropdownMenu, DropdownMenuCheckboxItem, DropdownMenuContent, DropdownMenuGroup, DropdownMenuItem, DropdownMenuLabel, DropdownMenuPortal, DropdownMenuRadioGroup, DropdownMenuRadioItem, DropdownMenuSeparator, DropdownMenuShortcut, DropdownMenuSub, DropdownMenuSubContent, DropdownMenuSubTrigger, DropdownMenuTrigger };
@@ -1,16 +0,0 @@
1
- import * as react_jsx_runtime from 'react/jsx-runtime';
2
- import * as React from 'react';
3
- import * as SheetPrimitive from '@radix-ui/react-dialog';
4
-
5
- declare function Sheet({ ...props }: React.ComponentProps<typeof SheetPrimitive.Root>): react_jsx_runtime.JSX.Element;
6
- declare function SheetTrigger({ ...props }: React.ComponentProps<typeof SheetPrimitive.Trigger>): react_jsx_runtime.JSX.Element;
7
- declare function SheetClose({ ...props }: React.ComponentProps<typeof SheetPrimitive.Close>): react_jsx_runtime.JSX.Element;
8
- declare function SheetContent({ className, children, side, ...props }: React.ComponentProps<typeof SheetPrimitive.Content> & {
9
- side?: "top" | "right" | "bottom" | "left";
10
- }): react_jsx_runtime.JSX.Element;
11
- declare function SheetHeader({ className, ...props }: React.ComponentProps<"div">): react_jsx_runtime.JSX.Element;
12
- declare function SheetFooter({ className, ...props }: React.ComponentProps<"div">): react_jsx_runtime.JSX.Element;
13
- declare function SheetTitle({ className, ...props }: React.ComponentProps<typeof SheetPrimitive.Title>): react_jsx_runtime.JSX.Element;
14
- declare function SheetDescription({ className, ...props }: React.ComponentProps<typeof SheetPrimitive.Description>): react_jsx_runtime.JSX.Element;
15
-
16
- export { Sheet, SheetClose, SheetContent, SheetDescription, SheetFooter, SheetHeader, SheetTitle, SheetTrigger };
@@ -1,16 +0,0 @@
1
- import * as react_jsx_runtime from 'react/jsx-runtime';
2
- import * as React from 'react';
3
- import * as SheetPrimitive from '@radix-ui/react-dialog';
4
-
5
- declare function Sheet({ ...props }: React.ComponentProps<typeof SheetPrimitive.Root>): react_jsx_runtime.JSX.Element;
6
- declare function SheetTrigger({ ...props }: React.ComponentProps<typeof SheetPrimitive.Trigger>): react_jsx_runtime.JSX.Element;
7
- declare function SheetClose({ ...props }: React.ComponentProps<typeof SheetPrimitive.Close>): react_jsx_runtime.JSX.Element;
8
- declare function SheetContent({ className, children, side, ...props }: React.ComponentProps<typeof SheetPrimitive.Content> & {
9
- side?: "top" | "right" | "bottom" | "left";
10
- }): react_jsx_runtime.JSX.Element;
11
- declare function SheetHeader({ className, ...props }: React.ComponentProps<"div">): react_jsx_runtime.JSX.Element;
12
- declare function SheetFooter({ className, ...props }: React.ComponentProps<"div">): react_jsx_runtime.JSX.Element;
13
- declare function SheetTitle({ className, ...props }: React.ComponentProps<typeof SheetPrimitive.Title>): react_jsx_runtime.JSX.Element;
14
- declare function SheetDescription({ className, ...props }: React.ComponentProps<typeof SheetPrimitive.Description>): react_jsx_runtime.JSX.Element;
15
-
16
- export { Sheet, SheetClose, SheetContent, SheetDescription, SheetFooter, SheetHeader, SheetTitle, SheetTrigger };
@@ -1,5 +0,0 @@
1
- import { ClassValue } from 'clsx';
2
-
3
- declare function cn(...inputs: ClassValue[]): string;
4
-
5
- export { cn };
@@ -1,5 +0,0 @@
1
- import { ClassValue } from 'clsx';
2
-
3
- declare function cn(...inputs: ClassValue[]): string;
4
-
5
- export { cn };