love-ui 1.0.0 → 1.0.2

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 (34) hide show
  1. package/README.md +9 -9
  2. package/dist/index.cjs +1 -1
  3. package/dist/index.js +1 -1
  4. package/license.md +1 -1
  5. package/package.json +3 -1
  6. package/packages/love-ui/package.json +29 -0
  7. package/packages/patterns/avatar/square/avatar-square-1.tsx +2 -2
  8. package/packages/patterns/avatar/square/avatar-square-4.tsx +2 -2
  9. package/packages/patterns/avatar/square/avatar-square-5.tsx +2 -2
  10. package/packages/patterns/avatar/square/avatar-square-6.tsx +2 -2
  11. package/packages/patterns/avatar/square/avatar-square-7.tsx +2 -2
  12. package/packages/patterns/avatar/standard/avatar-standard-1.tsx +2 -2
  13. package/packages/patterns/avatar/standard/avatar-standard-4.tsx +2 -2
  14. package/packages/patterns/avatar/standard/avatar-standard-5.tsx +2 -2
  15. package/packages/patterns/avatar/standard/avatar-standard-6.tsx +2 -2
  16. package/packages/patterns/avatar/standard/avatar-standard-7.tsx +2 -2
  17. package/packages/patterns/combobox/rich-content/combobox-rich-content-1.tsx +3 -3
  18. package/packages/patterns/combobox/rich-content/combobox-rich-content-4.tsx +3 -3
  19. package/packages/patterns/dropdown-menu/profile/dropdown-menu-profile-1.tsx +4 -4
  20. package/packages/patterns/dropdown-menu/profile/dropdown-menu-profile-2.tsx +6 -6
  21. package/packages/patterns/dropdown-menu/profile/dropdown-menu-profile-3.tsx +7 -7
  22. package/packages/patterns/dropdown-menu/profile/dropdown-menu-profile-4.tsx +6 -6
  23. package/packages/patterns/dropdown-menu/profile/dropdown-menu-profile-5.tsx +4 -4
  24. package/packages/patterns/hover-card/profile/hover-card-profile-1.tsx +3 -3
  25. package/packages/patterns/hover-card/profile/hover-card-profile-2.tsx +3 -3
  26. package/packages/patterns/hover-card/profile/hover-card-profile-3.tsx +4 -4
  27. package/packages/patterns/hover-card/profile/hover-card-profile-4.tsx +4 -4
  28. package/packages/patterns/hover-card/profile/hover-card-profile-5.tsx +3 -3
  29. package/packages/patterns/input/validation/input-validation-2.tsx +1 -1
  30. package/packages/patterns/item/interactive/item-interactive-2.tsx +2 -2
  31. package/packages/patterns/item/layout/item-layout-2.tsx +2 -2
  32. package/packages/patterns/item/media/item-media-2.tsx +2 -2
  33. package/packages/patterns/scroll-area/layout/scroll-area-layout-3.tsx +6 -6
  34. package/packages/patterns/table/standard/table-standard-2.tsx +2 -2
package/README.md CHANGED
@@ -7,12 +7,12 @@
7
7
  <img src="https://img.shields.io/github/license/loveconnor/love-ui" alt="License" />
8
8
  </div>
9
9
 
10
- [Explore the full documentation and component gallery →](https://www.love-ui.com)
10
+ [Explore the full documentation and component gallery →](https://www.loveui-docs.vercel.app)
11
11
 
12
12
  ## Table of Contents
13
13
  - [What is LoveUI?](#what-is-loveui)
14
14
  - [Highlights](#highlights)
15
- - [Primitives, Components, Blocks & Patterns](#primitives-components-blocks--patterns)
15
+ - [Base Components, Features, Sections & Snippets](#base-components-features-sections--snippets)
16
16
  - [Component Catalog](#component-catalog)
17
17
  - [How It Works](#how-it-works)
18
18
  - [Getting Started](#getting-started)
@@ -40,11 +40,11 @@ The library blends headless primitives, fully wired feature components, reusable
40
40
  - **Tooling included:** A shared `@repo/typescript-config`, a `turbo`-powered monorepo, and docs you can run locally keep contributions and customization smooth.
41
41
  - **MIT licensed & community driven:** Transparent codebase, open contribution process, and a rapidly growing set of components.
42
42
 
43
- ## Primitives, Components, Blocks & Patterns
44
- - **Primitives** live in the `loveui` package. They are foundational UI pieces (Button, Input, Switch, Dialog, etc.) that mirror shadcn/ui ergonomics while staying unstyled enough to serve as building blocks for your own components.
45
- - **Components** are installable, feature-complete building blocks (e.g., Gantt, Kanban, QR Code). Each ships with its logic, accessibility wiring, and Tailwind styling so you can drop it into production immediately.
46
- - **Blocks** are pre-built UI sections such as pricing pages, onboarding flows, and dashboards. They compose multiple components into opinionated experiences so you can scaffold pages in minutes.
47
- - **Patterns** live in `@repo/patterns` and provide smaller interaction recipes (input groups, form controls, command menus) built on shadcn/ui primitives. Use them as references or copy/paste snippets when designing your own system.
43
+ ## Base Components, Features, Sections & Snippets
44
+ - **Base Components** live in the `loveui` package. They are foundational UI pieces (Button, Input, Switch, Dialog, etc.) that mirror shadcn/ui ergonomics while staying unstyled enough to serve as building blocks for your own components.
45
+ - **Features** are installable, production-ready experiences (e.g., Gantt, Kanban, QR Code). Each ships with its logic, accessibility wiring, and Tailwind styling so you can drop it into production immediately.
46
+ - **Sections** are pre-built page slices such as pricing, onboarding, and dashboards. They compose multiple features into opinionated experiences so you can scaffold pages in minutes.
47
+ - **Snippets** live in `@repo/patterns` and provide smaller interaction recipes (input groups, form controls, command menus) built on shadcn/ui primitives. Use them as references or copy/paste snippets when designing your own system.
48
48
 
49
49
  ## Component Catalog
50
50
  Install any component with `npx loveui add <name>` (multiple names supported). Each entry below installs into `@/components/love-ui/<name>` with demo-ready examples.
@@ -99,7 +99,7 @@ Support packages:
99
99
  - `@repo/typescript-config` — shared TS configs for packages and apps.
100
100
 
101
101
  ## How It Works
102
- - The `loveui` npm package exposes a CLI (`npx loveui add ...`) that wraps the shadcn/ui generator and fetches blueprints hosted on [love-ui.com](https://www.love-ui.com).
102
+ - The `loveui` npm package exposes a CLI (`npx loveui add ...`) that wraps the shadcn/ui generator and fetches blueprints hosted on [loveui-docs.vercel.app](https://www.loveui-docs.vercel.app).
103
103
  - Each blueprint expands into React + TypeScript + Tailwind source files inside your project. You are free to refactor, rename, or theme them like native code.
104
104
  - Components share tokens, utilities, and patterns so installs stay consistent. Optional dependencies are declared per component so your bundle only includes what you use.
105
105
  - The monorepo powering the library uses Next.js + Turborepo, making it easy to run the docs or contribute new components.
@@ -193,7 +193,7 @@ LoveUI exposes an MCP server so AI coding assistants can browse the component ca
193
193
  "args": [
194
194
  "-y",
195
195
  "mcp-remote",
196
- "https://www.love-ui.com/api/mcp/mcp"
196
+ "https://www.loveui-docs.vercel.app/api/mcp/mcp"
197
197
  ]
198
198
  }
199
199
  }
package/dist/index.cjs CHANGED
@@ -1,2 +1,2 @@
1
1
  #!/usr/bin/env node
2
- "use strict";var t=require("child_process"),o=process.argv.slice(2);(o.length<2||o[0]!=="add")&&(console.log("Usage: npx loveui add [...packages]"),process.exit(1));var r=o.slice(1);for(let e of r){if(!e.trim())continue;console.log(`Adding ${e} component...`);let n=`npx -y shadcn@latest add ${(e==="ai"?new URL("all.json","https://registry.ai-sdk.dev/"):new URL(`r/${e}.json`,"https://www.love-ui.com")).toString()}`,s=(0,t.spawnSync)(n,{stdio:"inherit",shell:!0});s.error?(console.error(`Failed to add ${e}:`,s.error.message),process.exit(1)):s.status!==0&&(console.error(`Command failed with exit code ${s.status}`),process.exit(1))}
2
+ "use strict"; var t = require("child_process"), o = process.argv.slice(2); (o.length < 2 || o[0] !== "add") && (console.log("Usage: npx loveui add [...packages]"), process.exit(1)); var r = o.slice(1); for (let e of r) { if (!e.trim()) continue; console.log(`Adding ${e} component...`); let n = `npx -y shadcn@latest add ${(e === "ai" ? new URL("all.json", "https://registry.ai-sdk.dev/") : new URL(`r/${e}.json`, "https://loveui-docs.vercel.app")).toString()}`, s = (0, t.spawnSync)(n, { stdio: "inherit", shell: !0 }); s.error ? (console.error(`Failed to add ${e}:`, s.error.message), process.exit(1)) : s.status !== 0 && (console.error(`Command failed with exit code ${s.status}`), process.exit(1)) }
package/dist/index.js CHANGED
@@ -1,2 +1,2 @@
1
1
  #!/usr/bin/env node
2
- import{spawnSync as n}from"child_process";var o=process.argv.slice(2);(o.length<2||o[0]!=="add")&&(console.log("Usage: npx loveui add [...packages]"),process.exit(1));var r=o.slice(1);for(let e of r){if(!e.trim())continue;console.log(`Adding ${e} component...`);let t=`npx -y shadcn@latest add ${(e==="ai"?new URL("all.json","https://registry.ai-sdk.dev/"):new URL(`r/${e}.json`,"https://www.love-ui.com")).toString()}`,s=n(t,{stdio:"inherit",shell:!0});s.error?(console.error(`Failed to add ${e}:`,s.error.message),process.exit(1)):s.status!==0&&(console.error(`Command failed with exit code ${s.status}`),process.exit(1))}
2
+ import { spawnSync as n } from "child_process"; var o = process.argv.slice(2); (o.length < 2 || o[0] !== "add") && (console.log("Usage: npx loveui add [...packages]"), process.exit(1)); var r = o.slice(1); for (let e of r) { if (!e.trim()) continue; console.log(`Adding ${e} component...`); let t = `npx -y shadcn@latest add ${(e === "ai" ? new URL("all.json", "https://registry.ai-sdk.dev/") : new URL(`r/${e}.json`, "https://loveui-docs.vercel.app")).toString()}`, s = n(t, { stdio: "inherit", shell: !0 }); s.error ? (console.error(`Failed to add ${e}:`, s.error.message), process.exit(1)) : s.status !== 0 && (console.error(`Command failed with exit code ${s.status}`), process.exit(1)) }
package/license.md CHANGED
@@ -1,4 +1,4 @@
1
- Copyright (c) 2023 — Present Hayden Bleasel
1
+ Copyright (c) 2023 — Present Connor Love
2
2
 
3
3
  Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:
4
4
 
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "love-ui",
3
- "version": "1.0.0",
3
+ "version": "1.0.2",
4
4
  "bin": {
5
5
  "loveui": "dist/index.js",
6
6
  "love-ui": "dist/index.js"
@@ -37,6 +37,8 @@
37
37
  "@auto-it/first-time-contributor": "^11.3.0",
38
38
  "@biomejs/biome": "2.2.5",
39
39
  "@types/node": "^24.7.2",
40
+ "@types/react": "^19.2.2",
41
+ "@types/react-dom": "^19.2.1",
40
42
  "turbo": "^2.5.8",
41
43
  "typescript": "^5.9.3",
42
44
  "ultracite": "^5.6.2"
@@ -0,0 +1,29 @@
1
+ {
2
+ "name": "loveui",
3
+ "version": "1.0.2",
4
+ "private": true,
5
+ "main": "./index.ts",
6
+ "types": "./index.ts",
7
+ "exports": {
8
+ ".": {
9
+ "import": "./index.ts",
10
+ "require": "./index.ts"
11
+ },
12
+ "./components/*": "./components/*"
13
+ },
14
+ "peerDependencies": {
15
+ "react": "^18.0.0 || ^19.0.0",
16
+ "react-dom": "^18.0.0 || ^19.0.0"
17
+ },
18
+ "dependencies": {
19
+ "@headlessui/react": "^2.1.8",
20
+ "clsx": "^2.1.1",
21
+ "lucide-react": "^0.545.0",
22
+ "motion": "^12.23.24"
23
+ },
24
+ "devDependencies": {
25
+ "@types/react": "^19.2.2",
26
+ "@types/react-dom": "^19.2.1"
27
+ }
28
+ }
29
+
@@ -5,8 +5,8 @@ export const title = "Avatar";
5
5
  const Example = () => (
6
6
  <Avatar className="rounded-lg">
7
7
  <AvatarImage
8
- alt="@haydenbleasel"
9
- src="https://github.com/haydenbleasel.png"
8
+ alt="@loveconnor"
9
+ src="https://github.com/loveconnor.png"
10
10
  />
11
11
  <AvatarFallback className="rounded-lg">HB</AvatarFallback>
12
12
  </Avatar>
@@ -6,8 +6,8 @@ const Example = () => (
6
6
  <div className="relative w-fit">
7
7
  <Avatar className="rounded-lg">
8
8
  <AvatarImage
9
- alt="@haydenbleasel"
10
- src="https://github.com/haydenbleasel.png"
9
+ alt="@loveconnor"
10
+ src="https://github.com/loveconnor.png"
11
11
  />
12
12
  <AvatarFallback className="rounded-lg">HB</AvatarFallback>
13
13
  </Avatar>
@@ -6,8 +6,8 @@ const Example = () => (
6
6
  <div className="relative w-fit">
7
7
  <Avatar className="rounded-lg">
8
8
  <AvatarImage
9
- alt="@haydenbleasel"
10
- src="https://github.com/haydenbleasel.png"
9
+ alt="@loveconnor"
10
+ src="https://github.com/loveconnor.png"
11
11
  />
12
12
  <AvatarFallback className="rounded-lg">HB</AvatarFallback>
13
13
  </Avatar>
@@ -7,8 +7,8 @@ const Example = () => (
7
7
  <div className="relative w-fit">
8
8
  <Avatar className="rounded-lg">
9
9
  <AvatarImage
10
- alt="@haydenbleasel"
11
- src="https://github.com/haydenbleasel.png"
10
+ alt="@loveconnor"
11
+ src="https://github.com/loveconnor.png"
12
12
  />
13
13
  <AvatarFallback className="rounded-lg">HB</AvatarFallback>
14
14
  </Avatar>
@@ -6,8 +6,8 @@ const Example = () => (
6
6
  <div className="relative w-fit">
7
7
  <Avatar className="rounded-lg">
8
8
  <AvatarImage
9
- alt="@haydenbleasel"
10
- src="https://github.com/haydenbleasel.png"
9
+ alt="@loveconnor"
10
+ src="https://github.com/loveconnor.png"
11
11
  />
12
12
  <AvatarFallback className="rounded-lg">HB</AvatarFallback>
13
13
  </Avatar>
@@ -5,8 +5,8 @@ export const title = "Avatar";
5
5
  const Example = () => (
6
6
  <Avatar>
7
7
  <AvatarImage
8
- alt="@haydenbleasel"
9
- src="https://github.com/haydenbleasel.png"
8
+ alt="@loveconnor"
9
+ src="https://github.com/loveconnor.png"
10
10
  />
11
11
  <AvatarFallback>HB</AvatarFallback>
12
12
  </Avatar>
@@ -6,8 +6,8 @@ const Example = () => (
6
6
  <div className="relative w-fit">
7
7
  <Avatar>
8
8
  <AvatarImage
9
- alt="@haydenbleasel"
10
- src="https://github.com/haydenbleasel.png"
9
+ alt="@loveconnor"
10
+ src="https://github.com/loveconnor.png"
11
11
  />
12
12
  <AvatarFallback>HB</AvatarFallback>
13
13
  </Avatar>
@@ -6,8 +6,8 @@ const Example = () => (
6
6
  <div className="relative w-fit">
7
7
  <Avatar>
8
8
  <AvatarImage
9
- alt="@haydenbleasel"
10
- src="https://github.com/haydenbleasel.png"
9
+ alt="@loveconnor"
10
+ src="https://github.com/loveconnor.png"
11
11
  />
12
12
  <AvatarFallback>HB</AvatarFallback>
13
13
  </Avatar>
@@ -7,8 +7,8 @@ const Example = () => (
7
7
  <div className="relative w-fit">
8
8
  <Avatar>
9
9
  <AvatarImage
10
- alt="@haydenbleasel"
11
- src="https://github.com/haydenbleasel.png"
10
+ alt="@loveconnor"
11
+ src="https://github.com/loveconnor.png"
12
12
  />
13
13
  <AvatarFallback>HB</AvatarFallback>
14
14
  </Avatar>
@@ -6,8 +6,8 @@ const Example = () => (
6
6
  <div className="relative w-fit">
7
7
  <Avatar>
8
8
  <AvatarImage
9
- alt="@haydenbleasel"
10
- src="https://github.com/haydenbleasel.png"
9
+ alt="@loveconnor"
10
+ src="https://github.com/loveconnor.png"
11
11
  />
12
12
  <AvatarFallback>HB</AvatarFallback>
13
13
  </Avatar>
@@ -23,9 +23,9 @@ export const title = "Items with Avatars";
23
23
 
24
24
  const users = [
25
25
  {
26
- value: "haydenbleasel",
27
- label: "Hayden Bleasel",
28
- avatar: "https://github.com/haydenbleasel.png",
26
+ value: "loveconnor",
27
+ label: "Connor Love",
28
+ avatar: "https://github.com/loveconnor.png",
29
29
  },
30
30
  {
31
31
  value: "shadcn",
@@ -23,11 +23,11 @@ export const title = "Items with Metadata";
23
23
 
24
24
  const members = [
25
25
  {
26
- value: "haydenbleasel",
27
- name: "Hayden Bleasel",
26
+ value: "loveconnor",
27
+ name: "Connor Love",
28
28
  email: "hayden@vercel.com",
29
29
  role: "Design Engineer",
30
- avatar: "https://github.com/haydenbleasel.png",
30
+ avatar: "https://github.com/loveconnor.png",
31
31
  },
32
32
  {
33
33
  value: "shadcn",
@@ -20,8 +20,8 @@ const Example = () => (
20
20
  <Button className="relative h-10 w-10 rounded-full" variant="ghost">
21
21
  <Avatar>
22
22
  <AvatarImage
23
- alt="@haydenbleasel"
24
- src="https://github.com/haydenbleasel.png"
23
+ alt="@loveconnor"
24
+ src="https://github.com/loveconnor.png"
25
25
  />
26
26
  <AvatarFallback>HB</AvatarFallback>
27
27
  </Avatar>
@@ -30,9 +30,9 @@ const Example = () => (
30
30
  <DropdownMenuContent align="end" className="w-56">
31
31
  <DropdownMenuLabel className="font-normal">
32
32
  <div className="flex flex-col space-y-1">
33
- <p className="font-medium text-sm leading-none">Hayden Bleasel</p>
33
+ <p className="font-medium text-sm leading-none">Connor Love</p>
34
34
  <p className="text-muted-foreground text-xs leading-none">
35
- hello@haydenbleasel.com
35
+ hello@loveconnor.com
36
36
  </p>
37
37
  </div>
38
38
  </DropdownMenuLabel>
@@ -21,8 +21,8 @@ const Example = () => (
21
21
  <Button className="relative h-10 w-10 rounded-full" variant="ghost">
22
22
  <Avatar>
23
23
  <AvatarImage
24
- alt="@haydenbleasel"
25
- src="https://github.com/haydenbleasel.png"
24
+ alt="@loveconnor"
25
+ src="https://github.com/loveconnor.png"
26
26
  />
27
27
  <AvatarFallback>HB</AvatarFallback>
28
28
  </Avatar>
@@ -34,15 +34,15 @@ const Example = () => (
34
34
  <div className="flex items-center gap-3">
35
35
  <Avatar className="h-12 w-12">
36
36
  <AvatarImage
37
- alt="@haydenbleasel"
38
- src="https://github.com/haydenbleasel.png"
37
+ alt="@loveconnor"
38
+ src="https://github.com/loveconnor.png"
39
39
  />
40
40
  <AvatarFallback>HB</AvatarFallback>
41
41
  </Avatar>
42
42
  <div className="flex flex-col space-y-1">
43
- <p className="font-medium text-sm leading-none">Hayden Bleasel</p>
43
+ <p className="font-medium text-sm leading-none">Connor Love</p>
44
44
  <p className="text-muted-foreground text-xs leading-none">
45
- hello@haydenbleasel.com
45
+ hello@loveconnor.com
46
46
  </p>
47
47
  <Badge className="w-fit text-xs" variant="secondary">
48
48
  Pro
@@ -29,12 +29,12 @@ const Example = () => (
29
29
  <Button className="gap-2" variant="outline">
30
30
  <Avatar className="h-6 w-6">
31
31
  <AvatarImage
32
- alt="@haydenbleasel"
33
- src="https://github.com/haydenbleasel.png"
32
+ alt="@loveconnor"
33
+ src="https://github.com/loveconnor.png"
34
34
  />
35
35
  <AvatarFallback>HB</AvatarFallback>
36
36
  </Avatar>
37
- <span>Hayden Bleasel</span>
37
+ <span>Connor Love</span>
38
38
  </Button>
39
39
  </DropdownMenuTrigger>
40
40
  <DropdownMenuContent align="end" className="w-64">
@@ -42,15 +42,15 @@ const Example = () => (
42
42
  <div className="flex items-center gap-3 pb-2">
43
43
  <Avatar className="h-10 w-10">
44
44
  <AvatarImage
45
- alt="@haydenbleasel"
46
- src="https://github.com/haydenbleasel.png"
45
+ alt="@loveconnor"
46
+ src="https://github.com/loveconnor.png"
47
47
  />
48
48
  <AvatarFallback>HB</AvatarFallback>
49
49
  </Avatar>
50
50
  <div className="flex flex-col space-y-1">
51
- <p className="font-medium text-sm leading-none">Hayden Bleasel</p>
51
+ <p className="font-medium text-sm leading-none">Connor Love</p>
52
52
  <p className="text-muted-foreground text-xs leading-none">
53
- hello@haydenbleasel.com
53
+ hello@loveconnor.com
54
54
  </p>
55
55
  </div>
56
56
  </div>
@@ -21,15 +21,15 @@ const Example = () => (
21
21
  <div className="flex items-center gap-2">
22
22
  <Avatar className="h-6 w-6">
23
23
  <AvatarImage
24
- alt="@haydenbleasel"
25
- src="https://github.com/haydenbleasel.png"
24
+ alt="@loveconnor"
25
+ src="https://github.com/loveconnor.png"
26
26
  />
27
27
  <AvatarFallback>HB</AvatarFallback>
28
28
  </Avatar>
29
29
  <div className="flex flex-col items-start">
30
30
  <span className="font-medium text-sm">Personal Account</span>
31
31
  <span className="text-muted-foreground text-xs">
32
- hello@haydenbleasel.com
32
+ hello@loveconnor.com
33
33
  </span>
34
34
  </div>
35
35
  </div>
@@ -42,15 +42,15 @@ const Example = () => (
42
42
  <DropdownMenuItem className="flex items-center gap-2">
43
43
  <Avatar className="h-8 w-8">
44
44
  <AvatarImage
45
- alt="@haydenbleasel"
46
- src="https://github.com/haydenbleasel.png"
45
+ alt="@loveconnor"
46
+ src="https://github.com/loveconnor.png"
47
47
  />
48
48
  <AvatarFallback>HB</AvatarFallback>
49
49
  </Avatar>
50
50
  <div className="flex flex-col">
51
51
  <span className="font-medium text-sm">Personal Account</span>
52
52
  <span className="text-muted-foreground text-xs">
53
- hello@haydenbleasel.com
53
+ hello@loveconnor.com
54
54
  </span>
55
55
  </div>
56
56
  <Check className="ml-auto h-4 w-4" />
@@ -27,8 +27,8 @@ const Example = () => {
27
27
  <Button className="relative h-10 w-10 rounded-full" variant="ghost">
28
28
  <Avatar>
29
29
  <AvatarImage
30
- alt="@haydenbleasel"
31
- src="https://github.com/haydenbleasel.png"
30
+ alt="@loveconnor"
31
+ src="https://github.com/loveconnor.png"
32
32
  />
33
33
  <AvatarFallback>HB</AvatarFallback>
34
34
  </Avatar>
@@ -37,9 +37,9 @@ const Example = () => {
37
37
  <DropdownMenuContent align="end" className="w-64">
38
38
  <DropdownMenuLabel className="font-normal">
39
39
  <div className="flex flex-col space-y-1">
40
- <p className="font-medium text-sm leading-none">Hayden Bleasel</p>
40
+ <p className="font-medium text-sm leading-none">Connor Love</p>
41
41
  <p className="text-muted-foreground text-xs leading-none">
42
- hello@haydenbleasel.com
42
+ hello@loveconnor.com
43
43
  </p>
44
44
  </div>
45
45
  </DropdownMenuLabel>
@@ -13,17 +13,17 @@ const Example = () => (
13
13
  <HoverCard>
14
14
  <HoverCardTrigger asChild>
15
15
  <a className="font-medium text-sm underline" href="#">
16
- @haydenbleasel
16
+ @loveconnor
17
17
  </a>
18
18
  </HoverCardTrigger>
19
19
  <HoverCardContent>
20
20
  <div className="flex gap-4">
21
21
  <Avatar>
22
- <AvatarImage src="https://github.com/haydenbleasel.png" />
22
+ <AvatarImage src="https://github.com/loveconnor.png" />
23
23
  <AvatarFallback>HB</AvatarFallback>
24
24
  </Avatar>
25
25
  <div className="space-y-1">
26
- <h4 className="font-semibold text-sm">Hayden Bleasel</h4>
26
+ <h4 className="font-semibold text-sm">Connor Love</h4>
27
27
  <p className="text-muted-foreground text-sm">
28
28
  Product designer and developer
29
29
  </p>
@@ -14,17 +14,17 @@ const Example = () => (
14
14
  <HoverCard>
15
15
  <HoverCardTrigger asChild>
16
16
  <a className="font-medium text-sm underline" href="#">
17
- @haydenbleasel
17
+ @loveconnor
18
18
  </a>
19
19
  </HoverCardTrigger>
20
20
  <HoverCardContent>
21
21
  <div className="flex justify-between gap-4">
22
22
  <Avatar>
23
- <AvatarImage src="https://github.com/haydenbleasel.png" />
23
+ <AvatarImage src="https://github.com/loveconnor.png" />
24
24
  <AvatarFallback>HB</AvatarFallback>
25
25
  </Avatar>
26
26
  <div className="flex-1 space-y-1">
27
- <h4 className="font-semibold text-sm">Hayden Bleasel</h4>
27
+ <h4 className="font-semibold text-sm">Connor Love</h4>
28
28
  <p className="text-muted-foreground text-sm">
29
29
  Product designer and developer
30
30
  </p>
@@ -15,21 +15,21 @@ const Example = () => (
15
15
  <HoverCardTrigger asChild>
16
16
  <a className="flex items-center gap-2 font-medium text-sm" href="#">
17
17
  <Avatar className="h-6 w-6">
18
- <AvatarImage src="https://github.com/haydenbleasel.png" />
18
+ <AvatarImage src="https://github.com/loveconnor.png" />
19
19
  <AvatarFallback>HB</AvatarFallback>
20
20
  </Avatar>
21
- <span>Hayden Bleasel</span>
21
+ <span>Connor Love</span>
22
22
  </a>
23
23
  </HoverCardTrigger>
24
24
  <HoverCardContent>
25
25
  <div className="flex gap-4">
26
26
  <Avatar>
27
- <AvatarImage src="https://github.com/haydenbleasel.png" />
27
+ <AvatarImage src="https://github.com/loveconnor.png" />
28
28
  <AvatarFallback>HB</AvatarFallback>
29
29
  </Avatar>
30
30
  <div className="flex-1 space-y-1">
31
31
  <div className="flex items-center gap-2">
32
- <h4 className="font-semibold text-sm">Hayden Bleasel</h4>
32
+ <h4 className="font-semibold text-sm">Connor Love</h4>
33
33
  <Badge variant="secondary">Pro</Badge>
34
34
  </div>
35
35
  <p className="text-muted-foreground text-sm">
@@ -14,19 +14,19 @@ const Example = () => (
14
14
  <HoverCard>
15
15
  <HoverCardTrigger asChild>
16
16
  <a className="font-medium text-sm underline" href="#">
17
- @haydenbleasel
17
+ @loveconnor
18
18
  </a>
19
19
  </HoverCardTrigger>
20
20
  <HoverCardContent className="w-80">
21
21
  <div className="flex gap-4">
22
22
  <Avatar className="h-12 w-12">
23
- <AvatarImage src="https://github.com/haydenbleasel.png" />
23
+ <AvatarImage src="https://github.com/loveconnor.png" />
24
24
  <AvatarFallback>HB</AvatarFallback>
25
25
  </Avatar>
26
26
  <div className="flex-1 space-y-2">
27
27
  <div>
28
- <h4 className="font-semibold text-sm">Hayden Bleasel</h4>
29
- <p className="text-muted-foreground text-sm">@haydenbleasel</p>
28
+ <h4 className="font-semibold text-sm">Connor Love</h4>
29
+ <p className="text-muted-foreground text-sm">@loveconnor</p>
30
30
  </div>
31
31
  <p className="text-sm">
32
32
  Product designer and developer building tools for creators.
@@ -14,18 +14,18 @@ const Example = () => (
14
14
  <HoverCard>
15
15
  <HoverCardTrigger asChild>
16
16
  <a className="font-medium text-sm underline" href="#">
17
- @haydenbleasel
17
+ @loveconnor
18
18
  </a>
19
19
  </HoverCardTrigger>
20
20
  <HoverCardContent className="w-80">
21
21
  <div className="space-y-3">
22
22
  <div className="flex gap-4">
23
23
  <Avatar className="h-12 w-12">
24
- <AvatarImage src="https://github.com/haydenbleasel.png" />
24
+ <AvatarImage src="https://github.com/loveconnor.png" />
25
25
  <AvatarFallback>HB</AvatarFallback>
26
26
  </Avatar>
27
27
  <div className="flex-1 space-y-1">
28
- <h4 className="font-semibold text-sm">Hayden Bleasel</h4>
28
+ <h4 className="font-semibold text-sm">Connor Love</h4>
29
29
  <p className="text-muted-foreground text-sm">
30
30
  Product designer and developer
31
31
  </p>
@@ -11,7 +11,7 @@ const Example = () => (
11
11
  <Label htmlFor="username-success">Username</Label>
12
12
  <Input
13
13
  className="border-green-600 bg-background focus-visible:border-green-600 focus-visible:ring-green-600/50"
14
- defaultValue="haydenbleasel"
14
+ defaultValue="loveconnor"
15
15
  id="username-success"
16
16
  placeholder="johndoe"
17
17
  />
@@ -21,8 +21,8 @@ export const title = "Item in Dropdown";
21
21
 
22
22
  const people = [
23
23
  {
24
- username: "haydenbleasel",
25
- avatar: "https://github.com/haydenbleasel.png",
24
+ username: "loveconnor",
25
+ avatar: "https://github.com/loveconnor.png",
26
26
  email: "h****n@vercel.com",
27
27
  },
28
28
  {
@@ -17,8 +17,8 @@ export const title = "Item Group";
17
17
 
18
18
  const people = [
19
19
  {
20
- username: "haydenbleasel",
21
- avatar: "https://github.com/haydenbleasel.png",
20
+ username: "loveconnor",
21
+ avatar: "https://github.com/loveconnor.png",
22
22
  email: "h****n@vercel.com",
23
23
  },
24
24
  {
@@ -17,12 +17,12 @@ const Example = () => (
17
17
  <Item className="bg-background" variant="outline">
18
18
  <ItemMedia>
19
19
  <Avatar className="size-10">
20
- <AvatarImage src="https://github.com/haydenbleasel.png" />
20
+ <AvatarImage src="https://github.com/loveconnor.png" />
21
21
  <AvatarFallback>HB</AvatarFallback>
22
22
  </Avatar>
23
23
  </ItemMedia>
24
24
  <ItemContent>
25
- <ItemTitle>Hayden Bleasel</ItemTitle>
25
+ <ItemTitle>Connor Love</ItemTitle>
26
26
  <ItemDescription>Last seen 5 months ago</ItemDescription>
27
27
  </ItemContent>
28
28
  <ItemActions>
@@ -6,8 +6,8 @@ export const title = "Chat Messages";
6
6
  const messages = [
7
7
  {
8
8
  id: 1,
9
- user: "Hayden Bleasel",
10
- avatar: "https://github.com/haydenbleasel.png",
9
+ user: "Connor Love",
10
+ avatar: "https://github.com/loveconnor.png",
11
11
  initials: "HB",
12
12
  message: "Hey everyone! Just launched another AI Elements update!",
13
13
  time: "10:30 AM",
@@ -38,8 +38,8 @@ const messages = [
38
38
  },
39
39
  {
40
40
  id: 4,
41
- user: "Hayden Bleasel",
42
- avatar: "https://github.com/haydenbleasel.png",
41
+ user: "Connor Love",
42
+ avatar: "https://github.com/loveconnor.png",
43
43
  initials: "HB",
44
44
  message: "What about me??",
45
45
  time: "10:37 AM",
@@ -54,8 +54,8 @@ const messages = [
54
54
  },
55
55
  {
56
56
  id: 7,
57
- user: "Hayden Bleasel",
58
- avatar: "https://github.com/haydenbleasel.png",
57
+ user: "Connor Love",
58
+ avatar: "https://github.com/loveconnor.png",
59
59
  initials: "HB",
60
60
  message: "A'ight chief 😭",
61
61
  time: "10:47 AM",
@@ -12,10 +12,10 @@ export const title = "Table with Avatar";
12
12
 
13
13
  const users = [
14
14
  {
15
- name: "Hayden Bleasel",
15
+ name: "Connor Love",
16
16
  email: "h****n@vercel.com",
17
17
  role: "Product Designer",
18
- avatar: "https://github.com/haydenbleasel.png",
18
+ avatar: "https://github.com/loveconnor.png",
19
19
  initials: "HB",
20
20
  },
21
21
  {