diff --git a/package-lock.json b/package-lock.json index adf52a1..f4226c5 100644 --- a/package-lock.json +++ b/package-lock.json @@ -2047,7 +2047,6 @@ "integrity": "sha512-+kLxJpaJzXybyDyFXYADyP1cznTO8HSuBpenGlnKOAkH4hyNINiywvXS/tGJhsrGGP/gM185RA3xpjY0Yg4erA==", "devOptional": true, "license": "MIT", - "peer": true, "dependencies": { "csstype": "^3.0.2" } @@ -2058,7 +2057,6 @@ "integrity": "sha512-qXRuZaOsAdXKFyOhRBg6Lqqc0yay13vN7KrIg4L7N4aaHN68ma9OK3NE1BoDFgFOTfM7zg+3/8+2n8rLUH3OKQ==", "devOptional": true, "license": "MIT", - "peer": true, "peerDependencies": { "@types/react": "^19.0.0" } @@ -2109,7 +2107,6 @@ "integrity": "sha512-TGf22kon8KW+DeKaUmOibKWktRY8b2NSAZNdtWh798COm1NWx8+xJ6iFBtk3IvLdv6+LGLJLRlyhrhEDZWargQ==", "dev": true, "license": "MIT", - "peer": true, "dependencies": { "@typescript-eslint/scope-manager": "8.45.0", "@typescript-eslint/types": "8.45.0", @@ -2627,7 +2624,6 @@ "integrity": "sha512-NZyJarBfL7nWwIq+FDL6Zp/yHEhePMNnnJ0y3qfieCrmNvYct8uvtiV41UvlSe6apAfk0fY1FbWx+NwfmpvtTg==", "dev": true, "license": "MIT", - "peer": true, "bin": { "acorn": "bin/acorn" }, @@ -3527,7 +3523,6 @@ "integrity": "sha512-hB4FIzXovouYzwzECDcUkJ4OcfOEkXTv2zRY6B9bkwjx/cprAq0uvm1nl7zvQ0/TsUk0zQiN4uPfJpB9m+rPMQ==", "dev": true, "license": "MIT", - "peer": true, "dependencies": { "@eslint-community/eslint-utils": "^4.8.0", "@eslint-community/regexpp": "^4.12.1", @@ -3702,7 +3697,6 @@ "integrity": "sha512-whOE1HFo/qJDyX4SnXzP4N6zOWn79WhnCUY/iDR0mPfQZO8wcYE4JClzI2oZrhBnnMUCBCHZhO6VQyoBU95mZA==", "dev": true, "license": "MIT", - "peer": true, "dependencies": { "@rtsao/scc": "^1.1.0", "array-includes": "^3.1.9", @@ -5917,7 +5911,6 @@ "resolved": "https://registry.npmjs.org/react/-/react-19.1.0.tgz", "integrity": "sha512-FS+XFBNvn3GTAWq26joslQgWNoFu08F4kl0J4CgdNKADkdSGXQyTCnKteIAJy96Br6YbpEU1LSzV5dYtjMkMDg==", "license": "MIT", - "peer": true, "engines": { "node": ">=0.10.0" } @@ -5927,7 +5920,6 @@ "resolved": "https://registry.npmjs.org/react-dom/-/react-dom-19.1.0.tgz", "integrity": "sha512-Xs1hdnE+DyKgeHJeJznQmYMIBG3TKIHJJT95Q58nHLSrElKlGQqDTR2HQ9fx5CN/Gk6Vh/kupBTDLU11/nDk/g==", "license": "MIT", - "peer": true, "dependencies": { "scheduler": "^0.26.0" }, @@ -6728,7 +6720,6 @@ "integrity": "sha512-5gTmgEY/sqK6gFXLIsQNH19lWb4ebPDLA4SdLP7dsWkIXHWlG66oPuVvXSGFPppYZz8ZDZq0dYYrbHfBCVUb1Q==", "dev": true, "license": "MIT", - "peer": true, "engines": { "node": ">=12" }, @@ -6878,7 +6869,6 @@ "integrity": "sha512-CWBzXQrc/qOkhidw1OzBTQuYRbfyxDXJMVJ1XNwUHGROVmuaeiEm3OslpZ1RV96d7SKKjZKrSJu3+t/xlw3R9A==", "dev": true, "license": "Apache-2.0", - "peer": true, "bin": { "tsc": "bin/tsc", "tsserver": "bin/tsserver" diff --git a/src/components/home/products-section.tsx b/src/components/home/products-section.tsx index b8faa4f..e834567 100644 --- a/src/components/home/products-section.tsx +++ b/src/components/home/products-section.tsx @@ -1,6 +1,5 @@ "use client" -import { useState } from "react" import Image from "next/image" import { Card, CardContent, CardDescription, CardHeader, CardTitle } from "@/components/ui/card" import { Container } from "@/components/ui/container" @@ -85,7 +84,7 @@ Built with modern businesses in mind, StormERP integrates seamlessly with your e "Business Intelligence & Reporting", "Multi-Location & Multi-Currency Support" ], - productUrl: "https://erp.codestormhub.live", + productUrl: "https://codestormhub.live/erp/dashboard", dashboardImage: "/products/stormerp-dashboard.png", status: "active", category: "ERP" @@ -97,8 +96,6 @@ interface ProductsSectionProps { } export default function ProductsSection({ className }: ProductsSectionProps) { - const [selectedProduct, setSelectedProduct] = useState(null) - return (
@@ -172,7 +169,6 @@ export default function ProductsSection({ className }: ProductsSectionProps) { variant="outline" size="sm" className="flex-1" - onClick={() => setSelectedProduct(product)} > View Details @@ -193,7 +189,10 @@ export default function ProductsSection({ className }: ProductsSectionProps) { {/* Product Detail Modal */} - +
@@ -222,7 +221,7 @@ export default function ProductsSection({ className }: ProductsSectionProps) {
{/* Description */} -
+

About {product.name}

{product.fullDescription} diff --git a/src/components/ui/dialog.tsx b/src/components/ui/dialog.tsx index 2844f05..07d26d3 100644 --- a/src/components/ui/dialog.tsx +++ b/src/components/ui/dialog.tsx @@ -29,6 +29,8 @@ const DialogOverlay = React.forwardRef< )) DialogOverlay.displayName = DialogPrimitive.Overlay.displayName +type DialogOverlayProps = React.ComponentPropsWithoutRef + const DialogContent = React.forwardRef< React.ElementRef, React.ComponentPropsWithoutRef @@ -53,6 +55,8 @@ const DialogContent = React.forwardRef< )) DialogContent.displayName = DialogPrimitive.Content.displayName +type DialogContentProps = React.ComponentPropsWithoutRef + const DialogHeader = ({ className, ...props @@ -67,6 +71,8 @@ const DialogHeader = ({ ) DialogHeader.displayName = "DialogHeader" +type DialogHeaderProps = React.HTMLAttributes + const DialogFooter = ({ className, ...props @@ -81,6 +87,8 @@ const DialogFooter = ({ ) DialogFooter.displayName = "DialogFooter" +type DialogFooterProps = React.HTMLAttributes + const DialogTitle = React.forwardRef< React.ElementRef, React.ComponentPropsWithoutRef @@ -96,6 +104,8 @@ const DialogTitle = React.forwardRef< )) DialogTitle.displayName = DialogPrimitive.Title.displayName +type DialogTitleProps = React.ComponentPropsWithoutRef + const DialogDescription = React.forwardRef< React.ElementRef, React.ComponentPropsWithoutRef @@ -108,6 +118,8 @@ const DialogDescription = React.forwardRef< )) DialogDescription.displayName = DialogPrimitive.Description.displayName +type DialogDescriptionProps = React.ComponentPropsWithoutRef + export { Dialog, DialogPortal, @@ -120,3 +132,12 @@ export { DialogTitle, DialogDescription, } + +export type { + DialogOverlayProps, + DialogContentProps, + DialogHeaderProps, + DialogFooterProps, + DialogTitleProps, + DialogDescriptionProps, +}