From 3c9027b03e50d132961e50450191dbee84ef64ff Mon Sep 17 00:00:00 2001 From: Thatsaphorn Atchariyaphap Date: Fri, 27 Jun 2025 22:40:30 +0900 Subject: [PATCH] Add `Select` UI component to `demo-2` with integrated `@radix-ui/react-select`; update dependencies to include corresponding TypeScript types. --- lawfirm-demos/demo-2/components/ui/select.tsx | 185 ++++++++++++++++++ lawfirm-demos/demo-2/package-lock.json | 11 ++ lawfirm-demos/demo-2/package.json | 1 + 3 files changed, 197 insertions(+) create mode 100644 lawfirm-demos/demo-2/components/ui/select.tsx diff --git a/lawfirm-demos/demo-2/components/ui/select.tsx b/lawfirm-demos/demo-2/components/ui/select.tsx new file mode 100644 index 0000000..dcbbc0c --- /dev/null +++ b/lawfirm-demos/demo-2/components/ui/select.tsx @@ -0,0 +1,185 @@ +"use client" + +import * as React from "react" +import * as SelectPrimitive from "@radix-ui/react-select" +import { CheckIcon, ChevronDownIcon, ChevronUpIcon } from "lucide-react" + +import { cn } from "@/lib/utils" + +function Select({ + ...props +}: React.ComponentProps) { + return +} + +function SelectGroup({ + ...props +}: React.ComponentProps) { + return +} + +function SelectValue({ + ...props +}: React.ComponentProps) { + return +} + +function SelectTrigger({ + className, + size = "default", + children, + ...props +}: React.ComponentProps & { + size?: "sm" | "default" +}) { + return ( + + {children} + + + + + ) +} + +function SelectContent({ + className, + children, + position = "popper", + ...props +}: React.ComponentProps) { + return ( + + + + + {children} + + + + + ) +} + +function SelectLabel({ + className, + ...props +}: React.ComponentProps) { + return ( + + ) +} + +function SelectItem({ + className, + children, + ...props +}: React.ComponentProps) { + return ( + + + + + + + {children} + + ) +} + +function SelectSeparator({ + className, + ...props +}: React.ComponentProps) { + return ( + + ) +} + +function SelectScrollUpButton({ + className, + ...props +}: React.ComponentProps) { + return ( + + + + ) +} + +function SelectScrollDownButton({ + className, + ...props +}: React.ComponentProps) { + return ( + + + + ) +} + +export { + Select, + SelectContent, + SelectGroup, + SelectItem, + SelectLabel, + SelectScrollDownButton, + SelectScrollUpButton, + SelectSeparator, + SelectTrigger, + SelectValue, +} diff --git a/lawfirm-demos/demo-2/package-lock.json b/lawfirm-demos/demo-2/package-lock.json index 998e970..bca1de5 100644 --- a/lawfirm-demos/demo-2/package-lock.json +++ b/lawfirm-demos/demo-2/package-lock.json @@ -28,6 +28,7 @@ "@types/node": "^20", "@types/react": "^19", "@types/react-dom": "^19", + "@types/react-vertical-timeline-component": "^3.3.6", "eslint": "^9", "eslint-config-next": "15.3.4", "tailwindcss": "^4", @@ -3602,6 +3603,16 @@ "@types/react": "^19.0.0" } }, + "node_modules/@types/react-vertical-timeline-component": { + "version": "3.3.6", + "resolved": "https://registry.npmjs.org/@types/react-vertical-timeline-component/-/react-vertical-timeline-component-3.3.6.tgz", + "integrity": "sha512-OUvyPXRjXvUD/SNLO0CW0GbIxVF32Ios5qHecMSfw6kxnK1cPULD9NV80EuqZ3WmS/s6BgbcwmN8k4ISb3akhQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "@types/react": "*" + } + }, "node_modules/@typescript-eslint/eslint-plugin": { "version": "8.34.1", "resolved": "https://registry.npmjs.org/@typescript-eslint/eslint-plugin/-/eslint-plugin-8.34.1.tgz", diff --git a/lawfirm-demos/demo-2/package.json b/lawfirm-demos/demo-2/package.json index eb34acd..cc25778 100644 --- a/lawfirm-demos/demo-2/package.json +++ b/lawfirm-demos/demo-2/package.json @@ -29,6 +29,7 @@ "@types/node": "^20", "@types/react": "^19", "@types/react-dom": "^19", + "@types/react-vertical-timeline-component": "^3.3.6", "eslint": "^9", "eslint-config-next": "15.3.4", "tailwindcss": "^4",