@appcorp/shadcn 1.1.30 → 1.1.31
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.
- package/components/shadcn-example/blog-page/blog-post-card.d.ts +7 -6
- package/components/shadcn-example/blog-page/blog-post-card.js +2 -2
- package/components/shadcn-example/blog-page/featured-post-sidebar-item.d.ts +4 -3
- package/components/shadcn-example/blog-page/featured-post-sidebar-item.js +2 -2
- package/components/shadcn-example/blog-page/index.d.ts +1 -0
- package/components/shadcn-example/blog-page/index.js +3 -3
- package/package.json +1 -1
|
@@ -1,12 +1,13 @@
|
|
|
1
1
|
import React from "react";
|
|
2
2
|
interface BlogPostCardProps {
|
|
3
|
-
imageSrc: string;
|
|
4
|
-
imageAlt: string;
|
|
5
|
-
title: string;
|
|
6
|
-
description: string;
|
|
7
|
-
authorName: string;
|
|
8
3
|
authorAvatarSrc: string;
|
|
4
|
+
authorName: string;
|
|
5
|
+
description: string;
|
|
6
|
+
handleOnClick: () => void;
|
|
7
|
+
imageAlt: string;
|
|
8
|
+
imageSrc: string;
|
|
9
9
|
readTime: string;
|
|
10
|
+
title: string;
|
|
10
11
|
}
|
|
11
|
-
export declare const BlogPostCard: ({ authorAvatarSrc, authorName, description, imageAlt, imageSrc, readTime, title, }: BlogPostCardProps) => React.JSX.Element;
|
|
12
|
+
export declare const BlogPostCard: ({ authorAvatarSrc, authorName, description, handleOnClick, imageAlt, imageSrc, readTime, title, }: BlogPostCardProps) => React.JSX.Element;
|
|
12
13
|
export {};
|
|
@@ -8,8 +8,8 @@ var react_1 = __importDefault(require("react"));
|
|
|
8
8
|
var image_1 = __importDefault(require("next/image"));
|
|
9
9
|
var avatar_1 = require("../../../components/ui/avatar");
|
|
10
10
|
var BlogPostCard = function (_a) {
|
|
11
|
-
var authorAvatarSrc = _a.authorAvatarSrc, authorName = _a.authorName, description = _a.description, imageAlt = _a.imageAlt, imageSrc = _a.imageSrc, readTime = _a.readTime, title = _a.title;
|
|
12
|
-
return (react_1.default.createElement("div", { className: "bg-card text-card-foreground overflow-hidden rounded-lg border" },
|
|
11
|
+
var authorAvatarSrc = _a.authorAvatarSrc, authorName = _a.authorName, description = _a.description, handleOnClick = _a.handleOnClick, imageAlt = _a.imageAlt, imageSrc = _a.imageSrc, readTime = _a.readTime, title = _a.title;
|
|
12
|
+
return (react_1.default.createElement("div", { className: "bg-card text-card-foreground overflow-hidden rounded-lg border cursor-pointer", onClick: handleOnClick },
|
|
13
13
|
react_1.default.createElement(image_1.default, { alt: imageAlt, className: "h-48 w-full object-cover", height: 225, src: imageSrc, width: 400 }),
|
|
14
14
|
react_1.default.createElement("div", { className: "grid gap-2 p-4" },
|
|
15
15
|
react_1.default.createElement("h3", { className: "text-lg leading-tight font-semibold" }, title),
|
|
@@ -1,9 +1,10 @@
|
|
|
1
1
|
import React from "react";
|
|
2
2
|
interface FeaturedPostSidebarItemProps {
|
|
3
|
-
|
|
3
|
+
handleOnClick: () => void;
|
|
4
4
|
imageAlt: string;
|
|
5
|
-
|
|
5
|
+
imageSrc: string;
|
|
6
6
|
tags: string[];
|
|
7
|
+
title: string;
|
|
7
8
|
}
|
|
8
|
-
export declare const FeaturedPostSidebarItem: ({
|
|
9
|
+
export declare const FeaturedPostSidebarItem: ({ handleOnClick, imageAlt, imageSrc, tags, title, }: FeaturedPostSidebarItemProps) => React.JSX.Element;
|
|
9
10
|
export {};
|
|
@@ -8,8 +8,8 @@ var react_1 = __importDefault(require("react"));
|
|
|
8
8
|
var image_1 = __importDefault(require("next/image"));
|
|
9
9
|
var badge_1 = require("../../ui/badge");
|
|
10
10
|
var FeaturedPostSidebarItem = function (_a) {
|
|
11
|
-
var
|
|
12
|
-
return (react_1.default.createElement("div", { className: "flex flex-col gap-2" },
|
|
11
|
+
var handleOnClick = _a.handleOnClick, imageAlt = _a.imageAlt, imageSrc = _a.imageSrc, tags = _a.tags, title = _a.title;
|
|
12
|
+
return (react_1.default.createElement("div", { className: "flex flex-col gap-2 cursor-pointer", onClick: handleOnClick },
|
|
13
13
|
react_1.default.createElement("div", { className: "flex items-center gap-4" },
|
|
14
14
|
react_1.default.createElement(image_1.default, { alt: imageAlt, className: "aspect-square rounded-md object-cover", height: 64, src: imageSrc || "/placeholder.svg", width: 64 }),
|
|
15
15
|
react_1.default.createElement("div", null,
|
|
@@ -18,19 +18,19 @@ var BlogPage = function (_a) {
|
|
|
18
18
|
var otherPosts = items.filter(function (item) { return !item.isFeatured; });
|
|
19
19
|
return (react_1.default.createElement("div", { className: "container mx-auto px-4 py-8 md:px-6 lg:px-8" },
|
|
20
20
|
react_1.default.createElement("div", { className: "grid grid-cols-1 gap-8 lg:grid-cols-3" },
|
|
21
|
-
react_1.default.createElement("div", { className: "relative h-[400px] overflow-hidden rounded-lg shadow-lg md:h-[500px] lg:col-span-2" },
|
|
21
|
+
react_1.default.createElement("div", { className: "relative h-[400px] overflow-hidden rounded-lg shadow-lg md:h-[500px] lg:col-span-2 cursor-pointer", onClick: featuredPost === null || featuredPost === void 0 ? void 0 : featuredPost.handleOnClick },
|
|
22
22
|
(featuredPost === null || featuredPost === void 0 ? void 0 : featuredPost.imageSrc) && (react_1.default.createElement(image_1.default, { alt: featuredPost.imageAlt, className: "w-full object-cover", fill: true, height: 0, sizes: "70vw", src: featuredPost.imageSrc, width: 0 })),
|
|
23
23
|
react_1.default.createElement("div", { className: "absolute inset-0 flex flex-col justify-end bg-gradient-to-t from-black/70 to-transparent p-6 text-white" },
|
|
24
24
|
react_1.default.createElement("div", { className: "flex flex-row gap-4" }, (_b = featuredPost === null || featuredPost === void 0 ? void 0 : featuredPost.tags) === null || _b === void 0 ? void 0 : _b.map(function (tag) { return (react_1.default.createElement(badge_1.Badge, { key: tag, className: "mb-2 w-fit bg-white/20 text-white backdrop-blur-sm" }, tag)); })),
|
|
25
25
|
react_1.default.createElement("h2", { className: "text-2xl leading-tight font-bold md:text-3xl" }, featuredPost === null || featuredPost === void 0 ? void 0 : featuredPost.title))),
|
|
26
26
|
react_1.default.createElement("div", { className: "bg-card text-card-foreground space-y-6 rounded-lg border p-6 lg:col-span-1" },
|
|
27
27
|
react_1.default.createElement("h3", { className: "text-xl font-semibold" }, "Other posts"),
|
|
28
|
-
react_1.default.createElement("div", { className: "space-y-4" }, otherPosts.map(function (item) { return (react_1.default.createElement(featured_post_sidebar_item_1.FeaturedPostSidebarItem, { imageAlt: item.imageAlt, imageSrc: item.imageSrc, key: item.title, tags: item.tags, title: item.title })); })))),
|
|
28
|
+
react_1.default.createElement("div", { className: "space-y-4" }, otherPosts.map(function (item) { return (react_1.default.createElement(featured_post_sidebar_item_1.FeaturedPostSidebarItem, { handleOnClick: item.handleOnClick, imageAlt: item.imageAlt, imageSrc: item.imageSrc, key: item.title, tags: item.tags, title: item.title })); })))),
|
|
29
29
|
react_1.default.createElement("div", { className: "mt-12" },
|
|
30
30
|
react_1.default.createElement("div", { className: "mb-6 flex items-center justify-between" },
|
|
31
31
|
react_1.default.createElement("h2", { className: "text-2xl font-bold" }, "Recommended Posts"),
|
|
32
32
|
react_1.default.createElement(button_1.Button, { variant: "outline", asChild: true },
|
|
33
33
|
react_1.default.createElement(link_1.default, { href: "#" }, "All Posts"))),
|
|
34
|
-
react_1.default.createElement("div", { className: "grid grid-cols-1 gap-6 md:grid-cols-2 lg:grid-cols-3" }, recommendedPosts.map(function (p) { return (react_1.default.createElement(blog_post_card_1.BlogPostCard, { authorAvatarSrc: p.authorAvatarSrc, authorName: p.authorName, description: p.description, imageAlt: p.imageAlt, imageSrc: p.imageSrc, key: p.title, readTime: p.readTime, title: p.title })); })))));
|
|
34
|
+
react_1.default.createElement("div", { className: "grid grid-cols-1 gap-6 md:grid-cols-2 lg:grid-cols-3" }, recommendedPosts.map(function (p) { return (react_1.default.createElement(blog_post_card_1.BlogPostCard, { authorAvatarSrc: p.authorAvatarSrc, authorName: p.authorName, description: p.description, handleOnClick: p.handleOnClick, imageAlt: p.imageAlt, imageSrc: p.imageSrc, key: p.title, readTime: p.readTime, title: p.title })); })))));
|
|
35
35
|
};
|
|
36
36
|
exports.BlogPage = BlogPage;
|