From c68cda350e79ad5a8eb0aa3cb2502885d482fdda Mon Sep 17 00:00:00 2001 From: Edd Date: Sun, 21 Dec 2025 23:12:13 +0000 Subject: [PATCH] home page feature part 1 --- api/.gitignore | 2 + frontend/components.json | 9 +- frontend/package-lock.json | 20 ++++ frontend/package.json | 1 + frontend/src/components/ui/card/Card.vue | 21 ++++ .../src/components/ui/card/CardAction.vue | 21 ++++ .../src/components/ui/card/CardContent.vue | 13 +++ .../components/ui/card/CardDescription.vue | 16 +++ .../src/components/ui/card/CardFooter.vue | 16 +++ .../src/components/ui/card/CardHeader.vue | 21 ++++ frontend/src/components/ui/card/CardTitle.vue | 16 +++ frontend/src/components/ui/card/index.js | 7 ++ frontend/src/index.css | 3 + frontend/src/lib/utils.js | 2 +- frontend/src/pages/home/HomePage.vue | 110 ++++++++++++++++-- 15 files changed, 265 insertions(+), 13 deletions(-) create mode 100644 frontend/src/components/ui/card/Card.vue create mode 100644 frontend/src/components/ui/card/CardAction.vue create mode 100644 frontend/src/components/ui/card/CardContent.vue create mode 100644 frontend/src/components/ui/card/CardDescription.vue create mode 100644 frontend/src/components/ui/card/CardFooter.vue create mode 100644 frontend/src/components/ui/card/CardHeader.vue create mode 100644 frontend/src/components/ui/card/CardTitle.vue create mode 100644 frontend/src/components/ui/card/index.js diff --git a/api/.gitignore b/api/.gitignore index b71b1ea..827ebf2 100644 --- a/api/.gitignore +++ b/api/.gitignore @@ -22,3 +22,5 @@ Homestead.json Homestead.yaml Thumbs.db + +composer.lock \ No newline at end of file diff --git a/frontend/components.json b/frontend/components.json index 28910c9..ef4a241 100644 --- a/frontend/components.json +++ b/frontend/components.json @@ -9,13 +9,12 @@ "cssVariables": true, "prefix": "" }, - "iconLibrary": "lucide", "aliases": { "components": "@/components", + "composables": "@/composables", "utils": "@/lib/utils", "ui": "@/components/ui", - "lib": "@/lib", - "composables": "@/composables" + "lib": "@/lib" }, - "registries": {} -} + "iconLibrary": "lucide" +} \ No newline at end of file diff --git a/frontend/package-lock.json b/frontend/package-lock.json index c5e0261..dd16361 100644 --- a/frontend/package-lock.json +++ b/frontend/package-lock.json @@ -15,6 +15,7 @@ "class-variance-authority": "^0.7.1", "clsx": "^2.1.1", "date-fns": "^4.1.0", + "lucide-react": "^0.562.0", "lucide-vue-next": "^0.554.0", "pinia": "^3.0.3", "reka-ui": "^2.6.0", @@ -3984,6 +3985,15 @@ "yallist": "^3.0.2" } }, + "node_modules/lucide-react": { + "version": "0.562.0", + "resolved": "https://registry.npmjs.org/lucide-react/-/lucide-react-0.562.0.tgz", + "integrity": "sha512-82hOAu7y0dbVuFfmO4bYF1XEwYk/mEbM5E+b1jgci/udUBEE/R7LF5Ip0CCEmXe8AybRM8L+04eP+LGZeDvkiw==", + "license": "ISC", + "peerDependencies": { + "react": "^16.5.1 || ^17.0.0 || ^18.0.0 || ^19.0.0" + } + }, "node_modules/lucide-vue-next": { "version": "0.554.0", "resolved": "https://registry.npmjs.org/lucide-vue-next/-/lucide-vue-next-0.554.0.tgz", @@ -4369,6 +4379,16 @@ "node": ">=6" } }, + "node_modules/react": { + "version": "19.2.3", + "resolved": "https://registry.npmjs.org/react/-/react-19.2.3.tgz", + "integrity": "sha512-Ku/hhYbVjOQnXDZFv2+RibmLFGwFdeeKHFcOTlrt7xplBnya5OGn/hIRDsqDiSUcfORsDC7MPxwork8jBwsIWA==", + "license": "MIT", + "peer": true, + "engines": { + "node": ">=0.10.0" + } + }, "node_modules/reka-ui": { "version": "2.7.0", "resolved": "https://registry.npmjs.org/reka-ui/-/reka-ui-2.7.0.tgz", diff --git a/frontend/package.json b/frontend/package.json index 869fd35..11ff168 100644 --- a/frontend/package.json +++ b/frontend/package.json @@ -21,6 +21,7 @@ "class-variance-authority": "^0.7.1", "clsx": "^2.1.1", "date-fns": "^4.1.0", + "lucide-react": "^0.562.0", "lucide-vue-next": "^0.554.0", "pinia": "^3.0.3", "reka-ui": "^2.6.0", diff --git a/frontend/src/components/ui/card/Card.vue b/frontend/src/components/ui/card/Card.vue new file mode 100644 index 0000000..16920e4 --- /dev/null +++ b/frontend/src/components/ui/card/Card.vue @@ -0,0 +1,21 @@ + + + diff --git a/frontend/src/components/ui/card/CardAction.vue b/frontend/src/components/ui/card/CardAction.vue new file mode 100644 index 0000000..4c13362 --- /dev/null +++ b/frontend/src/components/ui/card/CardAction.vue @@ -0,0 +1,21 @@ + + + diff --git a/frontend/src/components/ui/card/CardContent.vue b/frontend/src/components/ui/card/CardContent.vue new file mode 100644 index 0000000..f54f541 --- /dev/null +++ b/frontend/src/components/ui/card/CardContent.vue @@ -0,0 +1,13 @@ + + + diff --git a/frontend/src/components/ui/card/CardDescription.vue b/frontend/src/components/ui/card/CardDescription.vue new file mode 100644 index 0000000..199875d --- /dev/null +++ b/frontend/src/components/ui/card/CardDescription.vue @@ -0,0 +1,16 @@ + + + diff --git a/frontend/src/components/ui/card/CardFooter.vue b/frontend/src/components/ui/card/CardFooter.vue new file mode 100644 index 0000000..a28c159 --- /dev/null +++ b/frontend/src/components/ui/card/CardFooter.vue @@ -0,0 +1,16 @@ + + + diff --git a/frontend/src/components/ui/card/CardHeader.vue b/frontend/src/components/ui/card/CardHeader.vue new file mode 100644 index 0000000..cc387d1 --- /dev/null +++ b/frontend/src/components/ui/card/CardHeader.vue @@ -0,0 +1,21 @@ + + + diff --git a/frontend/src/components/ui/card/CardTitle.vue b/frontend/src/components/ui/card/CardTitle.vue new file mode 100644 index 0000000..bb88bf0 --- /dev/null +++ b/frontend/src/components/ui/card/CardTitle.vue @@ -0,0 +1,16 @@ + + + diff --git a/frontend/src/components/ui/card/index.js b/frontend/src/components/ui/card/index.js new file mode 100644 index 0000000..409685b --- /dev/null +++ b/frontend/src/components/ui/card/index.js @@ -0,0 +1,7 @@ +export { default as Card } from "./Card.vue"; +export { default as CardAction } from "./CardAction.vue"; +export { default as CardContent } from "./CardContent.vue"; +export { default as CardDescription } from "./CardDescription.vue"; +export { default as CardFooter } from "./CardFooter.vue"; +export { default as CardHeader } from "./CardHeader.vue"; +export { default as CardTitle } from "./CardTitle.vue"; diff --git a/frontend/src/index.css b/frontend/src/index.css index 7550e24..8620d9c 100644 --- a/frontend/src/index.css +++ b/frontend/src/index.css @@ -39,6 +39,9 @@ --color-sidebar-accent-foreground: var(--sidebar-accent-foreground); --color-sidebar-border: var(--sidebar-border); --color-sidebar-ring: var(--sidebar-ring); + --radius-2xl: calc(var(--radius) + 8px); + --radius-3xl: calc(var(--radius) + 12px); + --radius-4xl: calc(var(--radius) + 16px); } :root { diff --git a/frontend/src/lib/utils.js b/frontend/src/lib/utils.js index 378ccef..b20bf01 100644 --- a/frontend/src/lib/utils.js +++ b/frontend/src/lib/utils.js @@ -1,5 +1,5 @@ import { clsx } from "clsx"; -import { twMerge } from "tailwind-merge"; +import { twMerge } from "tailwind-merge" export function cn(...inputs) { return twMerge(clsx(inputs)); diff --git a/frontend/src/pages/home/HomePage.vue b/frontend/src/pages/home/HomePage.vue index 939fae6..5c93924 100644 --- a/frontend/src/pages/home/HomePage.vue +++ b/frontend/src/pages/home/HomePage.vue @@ -1,11 +1,107 @@ - - -` +