linkedunion-design-kit 1.7.8 → 1.7.9
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/dist/index.d.ts +1 -2
- package/dist/index.js +1 -2
- package/dist/src/components/Avatar/{Avatar.js → Avatar/Avatar.js} +2 -2
- package/dist/src/components/Avatar/{Avatar.test.js → Avatar/Avatar.test.js} +1 -1
- package/dist/src/components/Avatar/AvatarGroup/AvatarGroup.d.ts +2 -0
- package/dist/src/components/Avatar/AvatarGroup/AvatarGroup.js +8 -0
- package/dist/src/components/Avatar/AvatarGroup/AvatarGroup.stories.d.ts +7 -0
- package/dist/src/components/Avatar/AvatarGroup/AvatarGroup.stories.js +14 -0
- package/dist/src/components/Avatar/AvatarGroup/index.d.ts +5 -0
- package/dist/src/components/Avatar/AvatarGroup/index.js +27 -0
- package/dist/src/components/Avatar/AvatarGroup/type.d.ts +9 -0
- package/dist/src/components/Avatar/AvatarGroup/type.js +1 -0
- package/dist/src/components/Card/MultipleNews/MultiNews.js +17 -10
- package/dist/src/components/Card/MultipleNews/MultiNews.stories.d.ts +1 -0
- package/dist/src/components/Card/MultipleNews/MultiNews.stories.js +4 -1
- package/dist/src/components/Card/PostByCategory/PostByCategory.stories.js +1 -1
- package/dist/src/components/Card/SinglePost/SinglePost.js +1 -1
- package/dist/src/components/Card/SinglePost/SinglePost.stories.js +1 -1
- package/dist/src/components/Card/card.d.ts +1 -1
- package/dist/src/components/Card/card.js +5 -2
- package/dist/src/components/Card/contactProfile/ContactProfile.js +2 -2
- package/dist/src/components/Card/contactProfile/ContactProfile.stories.js +1 -2
- package/dist/src/components/Card/photoAlbum/PhotoAlbum.d.ts +2 -0
- package/dist/src/components/Card/photoAlbum/PhotoAlbum.js +16 -0
- package/dist/src/components/Card/photoAlbum/PhotoAlbum.stories.d.ts +5 -0
- package/dist/src/components/Card/photoAlbum/PhotoAlbum.stories.js +81 -0
- package/dist/src/components/Card/{PhotoGallery.d.ts → photoGallery/PhotoGallery.d.ts} +1 -1
- package/dist/src/components/Card/photoGallery/PhotoGallery.js +8 -0
- package/dist/src/components/Card/{PhotoGallery.stories.d.ts → photoGallery/PhotoGallery.stories.d.ts} +1 -1
- package/dist/src/components/Card/{PhotoGallery.stories.js → photoGallery/PhotoGallery.stories.js} +7 -2
- package/dist/src/components/Card/type.d.ts +11 -3
- package/dist/src/components/ui/avatar.d.ts +6 -0
- package/dist/src/components/ui/avatar.js +38 -0
- package/dist/styles/global.css +137 -9
- package/package.json +2 -1
- package/dist/src/components/Card/PhotoGallery.js +0 -8
- package/dist/src/components/Avatar/{Avatar.d.ts → Avatar/Avatar.d.ts} +0 -0
- package/dist/src/components/Avatar/{Avatar.stories.d.ts → Avatar/Avatar.stories.d.ts} +0 -0
- package/dist/src/components/Avatar/{Avatar.stories.js → Avatar/Avatar.stories.js} +1 -1
- /package/dist/src/components/Avatar/{Avatar.test.d.ts → Avatar/Avatar.test.d.ts} +0 -0
- /package/dist/src/components/Avatar/{index.d.ts → Avatar/index.d.ts} +0 -0
- /package/dist/src/components/Avatar/{index.js → Avatar/index.js} +0 -0
- /package/dist/src/components/Avatar/{type.d.ts → Avatar/type.d.ts} +0 -0
- /package/dist/src/components/Avatar/{type.js → Avatar/type.js} +0 -0
package/dist/index.d.ts
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
export { default as LUIcon } from "./src/components/Icons/LUIcon";
|
|
2
2
|
export { default as Card } from "./src/components/Card/card";
|
|
3
3
|
export { default as LuImage } from "./src/components/Images/LuImage";
|
|
4
|
-
export { default as Avatar } from "./src/components/Avatar/Avatar";
|
|
4
|
+
export { default as Avatar } from "./src/components/Avatar/Avatar/Avatar";
|
|
5
5
|
export { default as Title } from "./src/components/Title/Title";
|
|
6
6
|
export { IconButton } from "./src/components/Button/IconButton";
|
|
7
7
|
export { default as ColorPicker } from "./src/components/ColorPicker/ColorPicker";
|
|
@@ -17,7 +17,6 @@ export { Display } from "./src/components/Typography/Display/display";
|
|
|
17
17
|
export { Caption } from "./src/components/ui/caption";
|
|
18
18
|
export { default as Tooltip } from "./src/components/ToolTip/Tooltip";
|
|
19
19
|
export { Button } from "./src/components/Button/Button";
|
|
20
|
-
export { PhotoGallery } from "./src/components/Card/PhotoGallery";
|
|
21
20
|
export { Label } from "./src/components/Label/Label";
|
|
22
21
|
export { Slider } from "./src/components/Slider/slider";
|
|
23
22
|
export { RadioButton } from "./src/components/RadioButton/radio-button";
|
package/dist/index.js
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
export { default as LUIcon } from "./src/components/Icons/LUIcon";
|
|
2
2
|
export { default as Card } from "./src/components/Card/card";
|
|
3
3
|
export { default as LuImage } from "./src/components/Images/LuImage";
|
|
4
|
-
export { default as Avatar } from "./src/components/Avatar/Avatar";
|
|
4
|
+
export { default as Avatar } from "./src/components/Avatar/Avatar/Avatar";
|
|
5
5
|
export { default as Title } from "./src/components/Title/Title";
|
|
6
6
|
export { IconButton } from "./src/components/Button/IconButton";
|
|
7
7
|
export { default as ColorPicker } from "./src/components/ColorPicker/ColorPicker";
|
|
@@ -17,7 +17,6 @@ export { Display } from "./src/components/Typography/Display/display";
|
|
|
17
17
|
export { Caption } from "./src/components/ui/caption";
|
|
18
18
|
export { default as Tooltip } from "./src/components/ToolTip/Tooltip";
|
|
19
19
|
export { Button } from "./src/components/Button/Button";
|
|
20
|
-
export { PhotoGallery } from "./src/components/Card/PhotoGallery";
|
|
21
20
|
export { Label } from "./src/components/Label/Label";
|
|
22
21
|
export { Slider } from "./src/components/Slider/slider";
|
|
23
22
|
export { RadioButton } from "./src/components/RadioButton/radio-button";
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { jsx as _jsx, Fragment as _Fragment } from "react/jsx-runtime";
|
|
2
|
-
import LUIcon from "../Icons/LUIcon";
|
|
3
2
|
import Image from "next/image";
|
|
4
|
-
import { avatarPadding,
|
|
3
|
+
import { avatarPadding, avatarSize, avatarShape } from ".";
|
|
4
|
+
import LUIcon from "../../../components/Icons/LUIcon";
|
|
5
5
|
var Avatar = function (_a) {
|
|
6
6
|
var image = _a.image, _b = _a.icon, icon = _b === void 0 ? "user" : _b, _c = _a.shape, shape = _c === void 0 ? "square" : _c, _d = _a.size, size = _d === void 0 ? "md" : _d, className = _a.className;
|
|
7
7
|
var sizeClasses = avatarSize[size];
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { jsx as _jsx } from "react/jsx-runtime";
|
|
2
2
|
import { render, screen } from "@testing-library/react";
|
|
3
3
|
import Avatar from "./Avatar";
|
|
4
|
-
jest.mock("
|
|
4
|
+
jest.mock("../../Icons/LUIcon.tsx", function () { return ({
|
|
5
5
|
__esModule: true,
|
|
6
6
|
default: jest.fn(function (_a) {
|
|
7
7
|
var icon = _a.icon, className = _a.className;
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
2
|
+
import { Avatar, AvatarImage, AvatarFallback } from "../../../components/ui/avatar";
|
|
3
|
+
export var AvatarGroup = function (_a) {
|
|
4
|
+
var images = _a.images;
|
|
5
|
+
var visibleImages = images.slice(0, 2);
|
|
6
|
+
var remainingCount = images.length - visibleImages.length;
|
|
7
|
+
return (_jsxs("div", { className: "flex -space-x-5", children: [visibleImages.map(function (img) { return (_jsx(Avatar, { className: "size-9 !border !border-white !bg-black !shadow-sm", children: _jsx(AvatarImage, { src: img.image, alt: img.name || "Avatar image" }) }, img.id)); }), remainingCount > 0 && (_jsx(Avatar, { className: "size-9 !border !border-white", children: _jsxs(AvatarFallback, { className: "!text-white text-xs font-normal !bg-black !shadow-sm", children: ["+", remainingCount] }) }))] }));
|
|
8
|
+
};
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
import { Meta, StoryFn } from "@storybook/react";
|
|
2
|
+
declare const _default: Meta;
|
|
3
|
+
export default _default;
|
|
4
|
+
export declare const Default: import("@storybook/core/csf").AnnotatedStoryFn<import("@storybook/react").ReactRenderer, import("@storybook/react").Args>;
|
|
5
|
+
export declare const WithFallbacksOnly: StoryFn;
|
|
6
|
+
export declare const CustomSize: StoryFn;
|
|
7
|
+
export declare const WithBackgroundBlack: StoryFn;
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
2
|
+
import { Avatar, AvatarImage, AvatarFallback } from "../../../components/ui/avatar";
|
|
3
|
+
import { avatars } from ".";
|
|
4
|
+
export default {
|
|
5
|
+
title: "Components/Avatar/AvatarGroup",
|
|
6
|
+
component: Avatar,
|
|
7
|
+
tags: ["autodocs"],
|
|
8
|
+
};
|
|
9
|
+
var Template = function () { return (_jsx("div", { className: "flex gap-2", children: avatars.map(function (avatar, idx) { return (_jsxs(Avatar, { children: [_jsx(AvatarImage, { src: avatar.src, alt: avatar.alt }), _jsx(AvatarFallback, { children: avatar.fallback })] }, idx)); }) })); };
|
|
10
|
+
export var Default = Template.bind({});
|
|
11
|
+
Default.storyName = "Avatar Group (Images & Fallbacks)";
|
|
12
|
+
export var WithFallbacksOnly = function () { return (_jsx("div", { className: "*:data-[slot=avatar]:ring-background flex -space-x-2 *:data-[slot=avatar]:ring-2 *:data-[slot=avatar]:grayscale", children: ["AA", "BB", "CC", "DD"].map(function (initials, idx) { return (_jsx(Avatar, { children: _jsx(AvatarFallback, { children: initials }) }, idx)); }) })); };
|
|
13
|
+
export var CustomSize = function () { return (_jsx("div", { className: "*:data-[slot=avatar]:ring-background flex -space-x-2 *:data-[slot=avatar]:ring-2 *:data-[slot=avatar]:grayscale", children: avatars.slice(0, 3).map(function (avatar, idx) { return (_jsxs(Avatar, { className: "size-12", children: [_jsx(AvatarImage, { src: avatar.src, alt: avatar.alt }), _jsx(AvatarFallback, { children: avatar.fallback })] }, idx)); }) })); };
|
|
14
|
+
export var WithBackgroundBlack = function () { return (_jsx("div", { className: "flex -space-x-2", children: avatars.slice(0, 3).map(function (avatar, idx) { return (_jsxs(Avatar, { className: "size-12 bg-black shadow-sm border-2 border-white", children: [_jsx(AvatarImage, { src: avatar.src, alt: avatar.alt }), _jsx(AvatarFallback, { children: avatar.fallback })] }, idx)); }) })); };
|
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
export var avatars = [
|
|
2
|
+
{
|
|
3
|
+
src: "https://randomuser.me/api/portraits/men/32.jpg",
|
|
4
|
+
alt: "John Doe",
|
|
5
|
+
fallback: "JD",
|
|
6
|
+
},
|
|
7
|
+
{
|
|
8
|
+
src: "https://randomuser.me/api/portraits/women/44.jpg",
|
|
9
|
+
alt: "Jane Smith",
|
|
10
|
+
fallback: "JS",
|
|
11
|
+
},
|
|
12
|
+
{
|
|
13
|
+
src: "",
|
|
14
|
+
alt: "No Image",
|
|
15
|
+
fallback: "NI",
|
|
16
|
+
},
|
|
17
|
+
{
|
|
18
|
+
src: "https://randomuser.me/api/portraits/men/45.jpg",
|
|
19
|
+
alt: "Alex Brown",
|
|
20
|
+
fallback: "AB",
|
|
21
|
+
},
|
|
22
|
+
{
|
|
23
|
+
src: "",
|
|
24
|
+
alt: "No Image",
|
|
25
|
+
fallback: "XY",
|
|
26
|
+
},
|
|
27
|
+
];
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export {};
|
|
@@ -17,32 +17,39 @@ import { Body } from "../../Typography/Body/body";
|
|
|
17
17
|
import { Heading } from "../../Typography/Heading/heading";
|
|
18
18
|
export var MultiNews = function (_a) {
|
|
19
19
|
var item = _a.item, image = _a.image, _b = _a.href, href = _b === void 0 ? "https://www.google.com/" : _b, _c = _a.btnLabel, btnLabel = _c === void 0 ? "View More" : _c, editor = _a.editor, _d = _a.mediaPosition, mediaPosition = _d === void 0 ? "right" : _d, orientation = _a.orientation;
|
|
20
|
-
//
|
|
21
|
-
var modifiedItem =
|
|
22
|
-
|
|
20
|
+
// Use destructuring to create cleaner code
|
|
21
|
+
var modifiedItem = item;
|
|
22
|
+
var modifiedEditor = editor;
|
|
23
|
+
// Only swap for middle position
|
|
24
|
+
if (mediaPosition === "middle") {
|
|
25
|
+
// Swap for item
|
|
26
|
+
modifiedItem = __assign(__assign({}, item), { description: item === null || item === void 0 ? void 0 : item.short_description, short_description: item === null || item === void 0 ? void 0 : item.description });
|
|
27
|
+
// Swap for editor
|
|
28
|
+
modifiedEditor = __assign(__assign({}, editor), { cardText: editor === null || editor === void 0 ? void 0 : editor.shortDescription, shortDescription: editor === null || editor === void 0 ? void 0 : editor.cardText });
|
|
29
|
+
}
|
|
23
30
|
// Common card media component
|
|
24
31
|
var CardMedia = function (_a) {
|
|
25
32
|
var _b = _a.className, className = _b === void 0 ? "" : _b;
|
|
26
|
-
return (_jsx(LuImage, { src: image, width: 240, height: 240, className: " object-cover w-full ".concat(className, " ").concat(
|
|
33
|
+
return (_jsx(LuImage, { src: image, width: 240, height: 240, className: " object-cover w-full ".concat(className, " ").concat(modifiedEditor === null || modifiedEditor === void 0 ? void 0 : modifiedEditor.cardImage), alt: "Image" }));
|
|
27
34
|
};
|
|
28
35
|
// Common content section
|
|
29
36
|
var CardContent = function (_a) {
|
|
30
37
|
var _b = _a.className, className = _b === void 0 ? "" : _b;
|
|
31
|
-
return (_jsxs("div", { className: "flex flex-col !gap-1 ".concat(className), children: [_jsx(Heading, { variant: "h5-700", className: "line-clamp-1 capitalize ".concat(
|
|
38
|
+
return (_jsxs("div", { className: "flex flex-col !gap-1 ".concat(className), children: [_jsx(Heading, { variant: "h5-700", className: "line-clamp-1 capitalize ".concat(modifiedEditor === null || modifiedEditor === void 0 ? void 0 : modifiedEditor.cardTitle), children: modifiedItem === null || modifiedItem === void 0 ? void 0 : modifiedItem.title }), _jsx(Body, { variant: "body-xl", className: "".concat(mediaPosition === "middle" ? "line-clamp-1" : "line-clamp-2 h-16", " ").concat(modifiedEditor === null || modifiedEditor === void 0 ? void 0 : modifiedEditor.cardText), children: modifiedItem === null || modifiedItem === void 0 ? void 0 : modifiedItem.description })] }));
|
|
32
39
|
};
|
|
33
40
|
// Common button component with conditional shape
|
|
34
41
|
var ActionButton = function (_a) {
|
|
35
42
|
var _b = _a.className, className = _b === void 0 ? "" : _b;
|
|
36
|
-
return (_jsx(Link, { href: href, passHref: true, className: className, children: _jsx(Button, __assign({ endIcon: "angle-right", size: mediaPosition === "middle" ? "xl" : "lg" }, (mediaPosition === "middle" && { shape: "rounded-full" }), { className: "".concat(
|
|
43
|
+
return (_jsx(Link, { href: href, passHref: true, className: className, children: _jsx(Button, __assign({ endIcon: "angle-right", size: mediaPosition === "middle" ? "xl" : "lg" }, (mediaPosition === "middle" && { shape: "rounded-full" }), { className: "".concat(modifiedEditor === null || modifiedEditor === void 0 ? void 0 : modifiedEditor.cardBtn), children: btnLabel })) }));
|
|
37
44
|
};
|
|
38
45
|
// Optional subtitle component
|
|
39
|
-
var Subtitle = function () { return (_jsx(_Fragment, { children: mediaPosition === "middle" && (_jsx(Body, { variant: "body-xl", className: "line-clamp-4 h-32 ".concat(
|
|
40
|
-
__html: modifiedItem.
|
|
46
|
+
var Subtitle = function () { return (_jsx(_Fragment, { children: mediaPosition === "middle" && (_jsx(Body, { variant: "body-xl", className: "line-clamp-4 h-32 ".concat(modifiedEditor === null || modifiedEditor === void 0 ? void 0 : modifiedEditor.shortDescription), dangerouslySetInnerHTML: {
|
|
47
|
+
__html: modifiedItem.short_description || "",
|
|
41
48
|
} })) })); };
|
|
42
49
|
// Horizontal layout
|
|
43
50
|
if (orientation === "horizontal") {
|
|
44
|
-
return (_jsxs("div", { className: "!p-5 bg-white rounded-2xl flex ".concat(mediaPosition === "right" ? "flex-row-reverse" : "", " !gap-5 items-center shadow-lg ").concat(
|
|
51
|
+
return (_jsxs("div", { className: "!p-5 bg-white rounded-2xl flex ".concat(mediaPosition === "right" ? "flex-row-reverse" : "", " !gap-5 items-center shadow-lg ").concat(modifiedEditor === null || modifiedEditor === void 0 ? void 0 : modifiedEditor.card), children: [_jsx(CardMedia, { className: "max-w-48 aspect-square rounded-lg" }), _jsxs("div", { className: "flex flex-col !gap-5 w-full", children: [_jsx(CardContent, {}), _jsx(ActionButton, {})] })] }));
|
|
45
52
|
}
|
|
46
53
|
// Vertical layout
|
|
47
|
-
return (_jsxs("div", { className: "p-8 bg-white rounded-2xl flex flex-col !gap-5 max-w-md shadow-lg ".concat(
|
|
54
|
+
return (_jsxs("div", { className: "p-8 bg-white rounded-2xl flex flex-col !gap-5 max-w-md shadow-lg ".concat(modifiedEditor === null || modifiedEditor === void 0 ? void 0 : modifiedEditor.card), children: [_jsxs("div", { className: "flex ".concat(mediaPosition === "top" ? "flex-col" : "flex-col-reverse", " !gap-4"), children: [_jsx(Subtitle, {}), _jsx(CardMedia, { className: "aspect-16/10" }), _jsx(CardContent, {})] }), _jsx(ActionButton, {})] }));
|
|
48
55
|
};
|
|
@@ -25,7 +25,7 @@ var baseCardArgs = {
|
|
|
25
25
|
image: Dummy_Image,
|
|
26
26
|
title: Dummy_Title,
|
|
27
27
|
description: Dummy_Para,
|
|
28
|
-
|
|
28
|
+
short_description: Dummy_Subtitle,
|
|
29
29
|
},
|
|
30
30
|
image: Dummy_Image,
|
|
31
31
|
href: Dummy_Url,
|
|
@@ -50,3 +50,6 @@ export var CardVerticalTop = {
|
|
|
50
50
|
export var CardVerticalBottom = {
|
|
51
51
|
args: __assign(__assign({}, baseCardArgs), { orientation: "vertical", mediaPosition: "bottom" }),
|
|
52
52
|
};
|
|
53
|
+
export var CardVerticalMiddle = {
|
|
54
|
+
args: __assign(__assign({}, baseCardArgs), { orientation: "vertical", mediaPosition: "middle" }),
|
|
55
|
+
};
|
|
@@ -6,5 +6,5 @@ import { Body } from "../../Typography/Body/body";
|
|
|
6
6
|
import { Button } from "../../Button/Button";
|
|
7
7
|
export var SinglePost = function (_a) {
|
|
8
8
|
var item = _a.item, image = _a.image, _b = _a.href, href = _b === void 0 ? "https://www.google.com/" : _b, _c = _a.btnLabel, btnLabel = _c === void 0 ? "View More" : _c, editor = _a.editor, _d = _a.mediaPosition, mediaPosition = _d === void 0 ? "right" : _d;
|
|
9
|
-
return (_jsxs("div", { className: " bg-white rounded-3xl grid grid-cols-1 sm:grid-cols-2 overflow-hidden items-stretch shadow-lg ".concat(editor === null || editor === void 0 ? void 0 : editor.card), children: [_jsx(LuImage, { src: image, width: 240, height: 240, className: "w-full h-full ".concat(mediaPosition === "right" ? "order-1" : "", " aspect-5/4 object-cover ").concat(editor === null || editor === void 0 ? void 0 : editor.cardImage), alt: "Image" }), _jsxs("div", { className: "p-9 grid grid-rows-[1fr] items-center !gap-2 ", children: [_jsxs("div", { className: "flex flex-col !gap-3 ", children: [_jsx(Heading, { variant: "h2", className: "line-clamp-1 md:line-clamp-2 ".concat(editor === null || editor === void 0 ? void 0 : editor.cardTitle), children: item === null || item === void 0 ? void 0 : item.title }), _jsx(Body, { variant: "body-xl", className: "line-clamp-2 ".concat(editor === null || editor === void 0 ? void 0 : editor.cardText, " "), children: item === null || item === void 0 ? void 0 : item.description })] }), _jsx(Link, { href: href, passHref: true, children: _jsx(Button, { endIcon: "angle-right", size: "lg", className: "".concat(editor === null || editor === void 0 ? void 0 : editor.cardBtn), children: btnLabel }) })] })] }));
|
|
9
|
+
return (_jsxs("div", { className: " bg-white rounded-3xl grid grid-cols-1 sm:grid-cols-2 overflow-hidden items-stretch !shadow-lg ".concat(editor === null || editor === void 0 ? void 0 : editor.card), children: [_jsx(LuImage, { src: image, width: 240, height: 240, className: "w-full h-full ".concat(mediaPosition === "right" ? "order-1" : "", " aspect-5/4 object-cover ").concat(editor === null || editor === void 0 ? void 0 : editor.cardImage), alt: "Image" }), _jsxs("div", { className: "p-9 grid grid-rows-[1fr] items-center !gap-2 ", children: [_jsxs("div", { className: "flex flex-col !gap-3 ", children: [_jsx(Heading, { variant: "h2", className: "line-clamp-1 md:line-clamp-2 ".concat(editor === null || editor === void 0 ? void 0 : editor.cardTitle), children: item === null || item === void 0 ? void 0 : item.title }), _jsx(Body, { variant: "body-xl", className: "line-clamp-2 ".concat(editor === null || editor === void 0 ? void 0 : editor.cardText, " "), children: item === null || item === void 0 ? void 0 : item.description })] }), _jsx(Link, { href: href, passHref: true, children: _jsx(Button, { endIcon: "angle-right", size: "lg", className: "".concat(editor === null || editor === void 0 ? void 0 : editor.cardBtn), children: btnLabel }) })] })] }));
|
|
10
10
|
};
|
|
@@ -1,3 +1,3 @@
|
|
|
1
1
|
import { CardInterface } from "./type";
|
|
2
|
-
declare const Card: ({ item, image, href, btnLabel, editor, mediaPosition, type, orientation, }: CardInterface) => import("react/jsx-runtime").JSX.Element;
|
|
2
|
+
declare const Card: ({ item, image, href, btnLabel, editor, mediaPosition, type, orientation, theme, }: CardInterface) => import("react/jsx-runtime").JSX.Element;
|
|
3
3
|
export default Card;
|
|
@@ -4,10 +4,11 @@ import { PostByCategory } from "./PostByCategory/PostByCategory";
|
|
|
4
4
|
import { MultiNews } from "./MultipleNews/MultiNews";
|
|
5
5
|
import { SinglePost } from "./SinglePost/SinglePost";
|
|
6
6
|
import { Dummy_Url } from "../../utils/constants";
|
|
7
|
-
import { PhotoGallery } from "./PhotoGallery";
|
|
8
7
|
import { ContactProfile } from "./contactProfile/ContactProfile";
|
|
8
|
+
import { PhotoGallery } from "./photoGallery/PhotoGallery";
|
|
9
|
+
import { PhotoAlbum } from "./photoAlbum/PhotoAlbum";
|
|
9
10
|
var Card = function (_a) {
|
|
10
|
-
var item = _a.item, image = _a.image, _b = _a.href, href = _b === void 0 ? Dummy_Url : _b, _c = _a.btnLabel, btnLabel = _c === void 0 ? "View More" : _c, editor = _a.editor, _d = _a.mediaPosition, mediaPosition = _d === void 0 ? "left" : _d, _e = _a.type, type = _e === void 0 ? "postByCategory" : _e, _f = _a.orientation, orientation = _f === void 0 ? "horizontal" : _f;
|
|
11
|
+
var item = _a.item, image = _a.image, _b = _a.href, href = _b === void 0 ? Dummy_Url : _b, _c = _a.btnLabel, btnLabel = _c === void 0 ? "View More" : _c, editor = _a.editor, _d = _a.mediaPosition, mediaPosition = _d === void 0 ? "left" : _d, _e = _a.type, type = _e === void 0 ? "postByCategory" : _e, _f = _a.orientation, orientation = _f === void 0 ? "horizontal" : _f, _g = _a.theme, theme = _g === void 0 ? "theme1" : _g;
|
|
11
12
|
var cardProps = {
|
|
12
13
|
item: item,
|
|
13
14
|
href: href,
|
|
@@ -16,6 +17,7 @@ var Card = function (_a) {
|
|
|
16
17
|
editor: editor,
|
|
17
18
|
mediaPosition: mediaPosition,
|
|
18
19
|
orientation: orientation,
|
|
20
|
+
theme: theme,
|
|
19
21
|
};
|
|
20
22
|
// Using object approach for better performance and cleaner code
|
|
21
23
|
var cardComponents = {
|
|
@@ -24,6 +26,7 @@ var Card = function (_a) {
|
|
|
24
26
|
multipleNews: MultiNews,
|
|
25
27
|
singlePost: SinglePost,
|
|
26
28
|
photoGallery: PhotoGallery,
|
|
29
|
+
photoAlbum: PhotoAlbum,
|
|
27
30
|
};
|
|
28
31
|
return (_jsx(_Fragment, { children: type && cardComponents[type]
|
|
29
32
|
? React.createElement(cardComponents[type], cardProps)
|
|
@@ -31,8 +31,8 @@ export var ContactProfile = function (_a) {
|
|
|
31
31
|
};
|
|
32
32
|
// Horizontal layout
|
|
33
33
|
if (orientation === "horizontal") {
|
|
34
|
-
return (_jsxs("div", { className: "!p-5 bg-white rounded-xl
|
|
34
|
+
return (_jsxs("div", { className: "!p-5 bg-white rounded-xl flex ".concat(safeMediaPosition === "left" ? "sm:flex-row" : "sm:flex-row-reverse", " max-w-5xl !gap-5 items-center shadow-lg ").concat(editor === null || editor === void 0 ? void 0 : editor.card), children: [_jsx(CardMedia, { className: "".concat(safeMediaPosition === "right" ? "order-3" : "order-1", " w-full max-w-40 aspect-square object-cover") }), _jsxs("div", { className: "flex-1 flex flex-col !gap-1 md:!gap-2.5 text-center sm:!text-left h-full justify-center ".concat(safeMediaPosition === "right" ? "order-1" : "order-2"), children: [_jsx(CardContent, {}), _jsx(CardButton, {})] })] }));
|
|
35
35
|
}
|
|
36
36
|
// Vertical layout
|
|
37
|
-
return (_jsxs("div", { className: "p-8 bg-white rounded-xl flex flex-col
|
|
37
|
+
return (_jsxs("div", { className: "p-8 bg-white rounded-xl flex flex-col gap-6 max-w-md items-center shadow-lg ".concat(editor === null || editor === void 0 ? void 0 : editor.card), children: [_jsxs("div", { className: "flex w-full ".concat(safeMediaPosition === "top" ? "flex-col" : "flex-col-reverse", " items-center !gap-5 text-center"), children: [_jsx(CardMedia, { className: "w-full h-full aspect-5/4 object-cover" }), _jsx(CardContent, { className: "h-20" })] }), _jsx(CardButton, {})] }));
|
|
38
38
|
};
|
|
@@ -9,7 +9,7 @@ var __assign = (this && this.__assign) || function () {
|
|
|
9
9
|
};
|
|
10
10
|
return __assign.apply(this, arguments);
|
|
11
11
|
};
|
|
12
|
-
import { Dummy_Image, Dummy_Para,
|
|
12
|
+
import { Dummy_Image, Dummy_Para, Dummy_Title, Dummy_Url, } from "../../../utils/constants";
|
|
13
13
|
import { ContactProfile } from "./ContactProfile";
|
|
14
14
|
var meta = {
|
|
15
15
|
title: "Components/NewCard/ContactProfile",
|
|
@@ -25,7 +25,6 @@ var baseCardArgs = {
|
|
|
25
25
|
image: Dummy_Image,
|
|
26
26
|
title: Dummy_Title,
|
|
27
27
|
description: Dummy_Para,
|
|
28
|
-
subtitle: Dummy_Subtitle,
|
|
29
28
|
},
|
|
30
29
|
image: Dummy_Image,
|
|
31
30
|
href: Dummy_Url,
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
import { jsx as _jsx, jsxs as _jsxs, Fragment as _Fragment } from "react/jsx-runtime";
|
|
2
|
+
import LuImage from "../../../components/Images/LuImage";
|
|
3
|
+
import { Heading } from "../../../components/Typography/Heading/heading";
|
|
4
|
+
import LUIcon from "../../../components/Icons/LUIcon";
|
|
5
|
+
import { AvatarGroup } from "../../Avatar/AvatarGroup/AvatarGroup";
|
|
6
|
+
export var PhotoAlbum = function (_a) {
|
|
7
|
+
var image = _a.image, item = _a.item, _b = _a.altText, altText = _b === void 0 ? "Photo Album" : _b, editor = _a.editor, theme = _a.theme;
|
|
8
|
+
var hasImages = Array.isArray(item === null || item === void 0 ? void 0 : item.images) && item.images.length > 0;
|
|
9
|
+
return (_jsxs("div", { className: "group relative max-w-md cursor-pointer ".concat(editor === null || editor === void 0 ? void 0 : editor.card, " ").concat(editor === null || editor === void 0 ? void 0 : editor.cardImage), children: [_jsx(LuImage, { src: image, width: 448, height: 448, alt: altText, className: "aspect-square object-cover transition-transform" }), _jsx("div", { className: "absolute inset-0 ".concat(editor === null || editor === void 0 ? void 0 : editor.cardOverlay, " ").concat(theme === "theme1" && "bg-linear-to-t from-black to-transparent") }), theme === "theme2" ? (_jsxs("div", { className: "absolute bottom-0 right-0 w-full bg-black/75 !px-5 !py-3 flex items-center justify-between duration-300\n group-hover:bg-transparent", children: [_jsx(Heading, { variant: "h4-700", className: "line-clamp-1 text-white uppercase ".concat(editor === null || editor === void 0 ? void 0 : editor.cardText), children: item === null || item === void 0 ? void 0 : item.title }), hasImages && (_jsx("div", { children: _jsx(AvatarGroup, { images: ((item === null || item === void 0 ? void 0 : item.images) || []).map(function (img) { return ({
|
|
10
|
+
id: img.gallery_id,
|
|
11
|
+
image: img.gallery_image,
|
|
12
|
+
}); }) }) }))] })) : (_jsxs(_Fragment, { children: [hasImages && (_jsx("div", { className: "absolute top-0 right-0 !px-5 !py-3", children: _jsx(AvatarGroup, { images: ((item === null || item === void 0 ? void 0 : item.images) || []).map(function (img) { return ({
|
|
13
|
+
id: img.gallery_id,
|
|
14
|
+
image: img.gallery_image,
|
|
15
|
+
}); }) }) })), _jsx("div", { className: "absolute !px-5 !py-3 bottom-0", children: _jsx(Heading, { variant: "h4-700", className: "line-clamp-1 text-white uppercase ".concat(editor === null || editor === void 0 ? void 0 : editor.cardText), children: item === null || item === void 0 ? void 0 : item.title }) })] })), _jsx("div", { className: "absolute inset-0 flex items-center justify-center opacity-0 group-hover:!opacity-100 duration-300 ease-out ".concat(theme === "theme2" ? "bg-black/75 origin-bottom scale-y-0 transition-all group-hover:scale-y-100" : "bg-black/30"), children: _jsx(LUIcon, { icon: "magnifying-glass", size: "4xl", className: "".concat(editor === null || editor === void 0 ? void 0 : editor.cardText, " text-gray-100") }) })] }));
|
|
16
|
+
};
|
|
@@ -0,0 +1,5 @@
|
|
|
1
|
+
import { Meta } from "@storybook/react";
|
|
2
|
+
import { CardInterface } from "../type";
|
|
3
|
+
declare const _default: Meta;
|
|
4
|
+
export default _default;
|
|
5
|
+
export declare const Default: import("@storybook/core/csf").AnnotatedStoryFn<import("@storybook/react").ReactRenderer, CardInterface>;
|
|
@@ -0,0 +1,81 @@
|
|
|
1
|
+
var __assign = (this && this.__assign) || function () {
|
|
2
|
+
__assign = Object.assign || function(t) {
|
|
3
|
+
for (var s, i = 1, n = arguments.length; i < n; i++) {
|
|
4
|
+
s = arguments[i];
|
|
5
|
+
for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))
|
|
6
|
+
t[p] = s[p];
|
|
7
|
+
}
|
|
8
|
+
return t;
|
|
9
|
+
};
|
|
10
|
+
return __assign.apply(this, arguments);
|
|
11
|
+
};
|
|
12
|
+
import { jsx as _jsx } from "react/jsx-runtime";
|
|
13
|
+
import { Dummy_Image, Dummy_Title } from "../../../utils/constants";
|
|
14
|
+
import Card from "../card";
|
|
15
|
+
import { PhotoAlbum } from "./PhotoAlbum";
|
|
16
|
+
export default {
|
|
17
|
+
title: "Components/NewCard/PhotoAlbum",
|
|
18
|
+
component: PhotoAlbum,
|
|
19
|
+
tags: ["autodocs"],
|
|
20
|
+
};
|
|
21
|
+
var Template = function (args) { return _jsx(Card, __assign({}, args)); };
|
|
22
|
+
export var Default = Template.bind({});
|
|
23
|
+
Default.args = {
|
|
24
|
+
type: "photoAlbum",
|
|
25
|
+
theme: "theme1",
|
|
26
|
+
item: {
|
|
27
|
+
title: Dummy_Title,
|
|
28
|
+
images: [
|
|
29
|
+
{
|
|
30
|
+
gallery_name: "Sample Gallery",
|
|
31
|
+
gallery_image: "https://randomuser.me/api/portraits/men/32.jpg",
|
|
32
|
+
gallery_id: 1,
|
|
33
|
+
description: "This is a sample image description.",
|
|
34
|
+
},
|
|
35
|
+
{
|
|
36
|
+
gallery_name: "Another Gallery",
|
|
37
|
+
gallery_image: "https://randomuser.me/api/portraits/women/44.jpg",
|
|
38
|
+
gallery_id: 2,
|
|
39
|
+
description: "This is another sample image description.",
|
|
40
|
+
},
|
|
41
|
+
{
|
|
42
|
+
gallery_name: "Another Gallery",
|
|
43
|
+
gallery_image: Dummy_Image,
|
|
44
|
+
gallery_id: 2,
|
|
45
|
+
description: "https://randomuser.me/api/portraits/men/45.jpg",
|
|
46
|
+
},
|
|
47
|
+
],
|
|
48
|
+
},
|
|
49
|
+
image: Dummy_Image,
|
|
50
|
+
editor: {
|
|
51
|
+
card: "",
|
|
52
|
+
cardImage: "",
|
|
53
|
+
cardOverlay: "",
|
|
54
|
+
cardText: "",
|
|
55
|
+
},
|
|
56
|
+
};
|
|
57
|
+
Default.argTypes = {
|
|
58
|
+
type: {
|
|
59
|
+
control: false,
|
|
60
|
+
table: {
|
|
61
|
+
type: { summary: "string" },
|
|
62
|
+
defaultValue: {
|
|
63
|
+
summary: "photoAlbum",
|
|
64
|
+
},
|
|
65
|
+
},
|
|
66
|
+
},
|
|
67
|
+
theme: {
|
|
68
|
+
control: {
|
|
69
|
+
type: "select",
|
|
70
|
+
labels: ["theme1", "theme2"],
|
|
71
|
+
},
|
|
72
|
+
options: ["theme1", "theme2"],
|
|
73
|
+
defaultValue: {
|
|
74
|
+
summary: "theme1",
|
|
75
|
+
},
|
|
76
|
+
},
|
|
77
|
+
href: { control: false },
|
|
78
|
+
btnLabel: { control: false },
|
|
79
|
+
mediaPosition: { control: false },
|
|
80
|
+
orientation: { control: false },
|
|
81
|
+
};
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import { CardInterface } from "
|
|
1
|
+
import { CardInterface } from "../type";
|
|
2
2
|
export declare const PhotoGallery: ({ image, item, altText, editor, }: CardInterface) => import("react/jsx-runtime").JSX.Element;
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
2
|
+
import LuImage from "../../../components/Images/LuImage";
|
|
3
|
+
import { Heading } from "../../../components/Typography/Heading/heading";
|
|
4
|
+
import LUIcon from "../../../components/Icons/LUIcon";
|
|
5
|
+
export var PhotoGallery = function (_a) {
|
|
6
|
+
var image = _a.image, item = _a.item, _b = _a.altText, altText = _b === void 0 ? "Photo Gallery" : _b, editor = _a.editor;
|
|
7
|
+
return (_jsxs("div", { className: "group relative max-w-md cursor-pointer ".concat(editor === null || editor === void 0 ? void 0 : editor.card, " ").concat(editor === null || editor === void 0 ? void 0 : editor.cardImage), children: [_jsx(LuImage, { src: image, width: 448, height: 448, alt: altText, className: "aspect-square object-cover transition-transform" }), _jsx("div", { className: "absolute ".concat(editor === null || editor === void 0 ? void 0 : editor.cardOverlay, " inset-0 bg-linear-to-t from-black to-transparent") }), _jsx(Heading, { variant: "h4-700", className: "absolute line-clamp-1 text-white bottom-4 uppercase !px-5 ".concat(editor === null || editor === void 0 ? void 0 : editor.cardText), children: item === null || item === void 0 ? void 0 : item.title }), _jsx("div", { className: "absolute inset-0 flex items-center justify-center bg-black/30 opacity-0 group-hover:!opacity-100 transition-opacity duration-300 ease-out", children: _jsx(LUIcon, { icon: "magnifying-glass", size: "4xl", className: "".concat(editor === null || editor === void 0 ? void 0 : editor.cardText, " text-gray-100") }) })] }));
|
|
8
|
+
};
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { Meta } from "@storybook/react";
|
|
2
|
-
import { CardInterface } from "
|
|
2
|
+
import { CardInterface } from "../type";
|
|
3
3
|
declare const _default: Meta;
|
|
4
4
|
export default _default;
|
|
5
5
|
export declare const Default: import("@storybook/core/csf").AnnotatedStoryFn<import("@storybook/react").ReactRenderer, CardInterface>;
|
package/dist/src/components/Card/{PhotoGallery.stories.js → photoGallery/PhotoGallery.stories.js}
RENAMED
|
@@ -10,9 +10,9 @@ var __assign = (this && this.__assign) || function () {
|
|
|
10
10
|
return __assign.apply(this, arguments);
|
|
11
11
|
};
|
|
12
12
|
import { jsx as _jsx } from "react/jsx-runtime";
|
|
13
|
+
import { Dummy_Image, Dummy_Title } from "../../../utils/constants";
|
|
14
|
+
import Card from "../card";
|
|
13
15
|
import { PhotoGallery } from "./PhotoGallery";
|
|
14
|
-
import { Dummy_Image, Dummy_Title } from "../../utils/constants";
|
|
15
|
-
import Card from "./card";
|
|
16
16
|
export default {
|
|
17
17
|
title: "Components/NewCard/PhotoGallery",
|
|
18
18
|
component: PhotoGallery,
|
|
@@ -43,4 +43,9 @@ Default.argTypes = {
|
|
|
43
43
|
},
|
|
44
44
|
},
|
|
45
45
|
},
|
|
46
|
+
href: { control: false },
|
|
47
|
+
btnLabel: { control: false },
|
|
48
|
+
mediaPosition: { control: false },
|
|
49
|
+
orientation: { control: false },
|
|
50
|
+
theme: { control: false },
|
|
46
51
|
};
|
|
@@ -4,14 +4,21 @@ export interface EditorInterface {
|
|
|
4
4
|
cardTitle?: string;
|
|
5
5
|
cardText?: string;
|
|
6
6
|
cardBtn?: string;
|
|
7
|
-
|
|
7
|
+
shortDescription?: string;
|
|
8
8
|
cardOverlay?: string;
|
|
9
9
|
}
|
|
10
|
+
export interface AlbumGalleryDataProps {
|
|
11
|
+
gallery_name: string;
|
|
12
|
+
gallery_image: string;
|
|
13
|
+
gallery_id: number;
|
|
14
|
+
description: string;
|
|
15
|
+
}
|
|
10
16
|
export interface CardDataProps {
|
|
11
17
|
image?: string;
|
|
12
18
|
title?: string;
|
|
13
|
-
|
|
19
|
+
short_description?: string;
|
|
14
20
|
description?: string;
|
|
21
|
+
images?: AlbumGalleryDataProps[];
|
|
15
22
|
}
|
|
16
23
|
export interface CardInterface {
|
|
17
24
|
mediaPosition?: "top" | "middle" | "bottom" | "left" | "right";
|
|
@@ -20,7 +27,8 @@ export interface CardInterface {
|
|
|
20
27
|
href?: string;
|
|
21
28
|
btnLabel?: string;
|
|
22
29
|
editor?: EditorInterface;
|
|
23
|
-
type?: "postByCategory" | "contactProfile" | "multipleNews" | "singlePost" | "photoGallery";
|
|
30
|
+
type?: "postByCategory" | "contactProfile" | "multipleNews" | "singlePost" | "photoGallery" | "photoAlbum";
|
|
24
31
|
orientation?: "horizontal" | "vertical";
|
|
25
32
|
altText?: string;
|
|
33
|
+
theme?: "theme1" | "theme2";
|
|
26
34
|
}
|
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
import * as React from "react";
|
|
2
|
+
import * as AvatarPrimitive from "@radix-ui/react-avatar";
|
|
3
|
+
declare function Avatar({ className, ...props }: React.ComponentProps<typeof AvatarPrimitive.Root>): import("react/jsx-runtime").JSX.Element;
|
|
4
|
+
declare function AvatarImage({ className, ...props }: React.ComponentProps<typeof AvatarPrimitive.Image>): import("react/jsx-runtime").JSX.Element;
|
|
5
|
+
declare function AvatarFallback({ className, ...props }: React.ComponentProps<typeof AvatarPrimitive.Fallback>): import("react/jsx-runtime").JSX.Element;
|
|
6
|
+
export { Avatar, AvatarImage, AvatarFallback };
|
|
@@ -0,0 +1,38 @@
|
|
|
1
|
+
var __assign = (this && this.__assign) || function () {
|
|
2
|
+
__assign = Object.assign || function(t) {
|
|
3
|
+
for (var s, i = 1, n = arguments.length; i < n; i++) {
|
|
4
|
+
s = arguments[i];
|
|
5
|
+
for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))
|
|
6
|
+
t[p] = s[p];
|
|
7
|
+
}
|
|
8
|
+
return t;
|
|
9
|
+
};
|
|
10
|
+
return __assign.apply(this, arguments);
|
|
11
|
+
};
|
|
12
|
+
var __rest = (this && this.__rest) || function (s, e) {
|
|
13
|
+
var t = {};
|
|
14
|
+
for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)
|
|
15
|
+
t[p] = s[p];
|
|
16
|
+
if (s != null && typeof Object.getOwnPropertySymbols === "function")
|
|
17
|
+
for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {
|
|
18
|
+
if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))
|
|
19
|
+
t[p[i]] = s[p[i]];
|
|
20
|
+
}
|
|
21
|
+
return t;
|
|
22
|
+
};
|
|
23
|
+
import { jsx as _jsx } from "react/jsx-runtime";
|
|
24
|
+
import * as AvatarPrimitive from "@radix-ui/react-avatar";
|
|
25
|
+
import { cn } from "../../lib/utils";
|
|
26
|
+
function Avatar(_a) {
|
|
27
|
+
var className = _a.className, props = __rest(_a, ["className"]);
|
|
28
|
+
return (_jsx(AvatarPrimitive.Root, __assign({ "data-slot": "avatar", className: cn("relative flex size-8 shrink-0 overflow-hidden rounded-full", className) }, props)));
|
|
29
|
+
}
|
|
30
|
+
function AvatarImage(_a) {
|
|
31
|
+
var className = _a.className, props = __rest(_a, ["className"]);
|
|
32
|
+
return (_jsx(AvatarPrimitive.Image, __assign({ "data-slot": "avatar-image", className: cn("aspect-square size-full", className) }, props)));
|
|
33
|
+
}
|
|
34
|
+
function AvatarFallback(_a) {
|
|
35
|
+
var className = _a.className, props = __rest(_a, ["className"]);
|
|
36
|
+
return (_jsx(AvatarPrimitive.Fallback, __assign({ "data-slot": "avatar-fallback", className: cn("bg-muted flex size-full items-center justify-center rounded-full", className) }, props)));
|
|
37
|
+
}
|
|
38
|
+
export { Avatar, AvatarImage, AvatarFallback };
|
package/dist/styles/global.css
CHANGED
|
@@ -215,9 +215,18 @@
|
|
|
215
215
|
.inset-0 {
|
|
216
216
|
inset: calc(var(--spacing) * 0);
|
|
217
217
|
}
|
|
218
|
+
.top-0 {
|
|
219
|
+
top: calc(var(--spacing) * 0);
|
|
220
|
+
}
|
|
218
221
|
.top-1\/2 {
|
|
219
222
|
top: calc(1/2 * 100%);
|
|
220
223
|
}
|
|
224
|
+
.right-0 {
|
|
225
|
+
right: calc(var(--spacing) * 0);
|
|
226
|
+
}
|
|
227
|
+
.bottom-0 {
|
|
228
|
+
bottom: calc(var(--spacing) * 0);
|
|
229
|
+
}
|
|
221
230
|
.bottom-4 {
|
|
222
231
|
bottom: calc(var(--spacing) * 4);
|
|
223
232
|
}
|
|
@@ -437,6 +446,10 @@
|
|
|
437
446
|
width: calc(var(--spacing) * 16);
|
|
438
447
|
height: calc(var(--spacing) * 16);
|
|
439
448
|
}
|
|
449
|
+
.size-full {
|
|
450
|
+
width: 100%;
|
|
451
|
+
height: 100%;
|
|
452
|
+
}
|
|
440
453
|
.h-4 {
|
|
441
454
|
height: calc(var(--spacing) * 4);
|
|
442
455
|
}
|
|
@@ -560,6 +573,9 @@
|
|
|
560
573
|
.max-w-40 {
|
|
561
574
|
max-width: calc(var(--spacing) * 40);
|
|
562
575
|
}
|
|
576
|
+
.max-w-48 {
|
|
577
|
+
max-width: calc(var(--spacing) * 48);
|
|
578
|
+
}
|
|
563
579
|
.max-w-\[160px\] {
|
|
564
580
|
max-width: 160px;
|
|
565
581
|
}
|
|
@@ -593,6 +609,9 @@
|
|
|
593
609
|
.origin-\(--radix-tooltip-content-transform-origin\) {
|
|
594
610
|
transform-origin: var(--radix-tooltip-content-transform-origin);
|
|
595
611
|
}
|
|
612
|
+
.origin-bottom {
|
|
613
|
+
transform-origin: bottom;
|
|
614
|
+
}
|
|
596
615
|
.-translate-y-1\/2 {
|
|
597
616
|
--tw-translate-y: calc(calc(1/2 * 100%) * -1);
|
|
598
617
|
translate: var(--tw-translate-x) var(--tw-translate-y);
|
|
@@ -601,6 +620,10 @@
|
|
|
601
620
|
--tw-translate-y: calc(-50% - 2px);
|
|
602
621
|
translate: var(--tw-translate-x) var(--tw-translate-y);
|
|
603
622
|
}
|
|
623
|
+
.scale-y-0 {
|
|
624
|
+
--tw-scale-y: 0%;
|
|
625
|
+
scale: var(--tw-scale-x) var(--tw-scale-y);
|
|
626
|
+
}
|
|
604
627
|
.rotate-45 {
|
|
605
628
|
rotate: 45deg;
|
|
606
629
|
}
|
|
@@ -655,12 +678,12 @@
|
|
|
655
678
|
.\!gap-3 {
|
|
656
679
|
gap: calc(var(--spacing) * 3) !important;
|
|
657
680
|
}
|
|
681
|
+
.\!gap-4 {
|
|
682
|
+
gap: calc(var(--spacing) * 4) !important;
|
|
683
|
+
}
|
|
658
684
|
.\!gap-5 {
|
|
659
685
|
gap: calc(var(--spacing) * 5) !important;
|
|
660
686
|
}
|
|
661
|
-
.\!gap-10 {
|
|
662
|
-
gap: calc(var(--spacing) * 10) !important;
|
|
663
|
-
}
|
|
664
687
|
.gap-1 {
|
|
665
688
|
gap: calc(var(--spacing) * 1);
|
|
666
689
|
}
|
|
@@ -693,6 +716,20 @@
|
|
|
693
716
|
.gap-x-\[20px\] {
|
|
694
717
|
column-gap: 20px;
|
|
695
718
|
}
|
|
719
|
+
.-space-x-2 {
|
|
720
|
+
:where(& > :not(:last-child)) {
|
|
721
|
+
--tw-space-x-reverse: 0;
|
|
722
|
+
margin-inline-start: calc(calc(var(--spacing) * -2) * var(--tw-space-x-reverse));
|
|
723
|
+
margin-inline-end: calc(calc(var(--spacing) * -2) * calc(1 - var(--tw-space-x-reverse)));
|
|
724
|
+
}
|
|
725
|
+
}
|
|
726
|
+
.-space-x-5 {
|
|
727
|
+
:where(& > :not(:last-child)) {
|
|
728
|
+
--tw-space-x-reverse: 0;
|
|
729
|
+
margin-inline-start: calc(calc(var(--spacing) * -5) * var(--tw-space-x-reverse));
|
|
730
|
+
margin-inline-end: calc(calc(var(--spacing) * -5) * calc(1 - var(--tw-space-x-reverse)));
|
|
731
|
+
}
|
|
732
|
+
}
|
|
696
733
|
.space-x-2 {
|
|
697
734
|
:where(& > :not(:last-child)) {
|
|
698
735
|
--tw-space-x-reverse: 0;
|
|
@@ -762,6 +799,10 @@
|
|
|
762
799
|
border-style: var(--tw-border-style);
|
|
763
800
|
border-width: 1px;
|
|
764
801
|
}
|
|
802
|
+
.border-2 {
|
|
803
|
+
border-style: var(--tw-border-style);
|
|
804
|
+
border-width: 2px;
|
|
805
|
+
}
|
|
765
806
|
.\!border-b {
|
|
766
807
|
border-bottom-style: var(--tw-border-style) !important;
|
|
767
808
|
border-bottom-width: 1px !important;
|
|
@@ -773,6 +814,9 @@
|
|
|
773
814
|
.\!border-gray-300 {
|
|
774
815
|
border-color: #b7babd !important;
|
|
775
816
|
}
|
|
817
|
+
.\!border-white {
|
|
818
|
+
border-color: #fefefe !important;
|
|
819
|
+
}
|
|
776
820
|
.border-blue-600 {
|
|
777
821
|
border-color: #276ab3;
|
|
778
822
|
}
|
|
@@ -785,14 +829,26 @@
|
|
|
785
829
|
.border-transparent {
|
|
786
830
|
border-color: transparent;
|
|
787
831
|
}
|
|
832
|
+
.border-white {
|
|
833
|
+
border-color: #fefefe;
|
|
834
|
+
}
|
|
835
|
+
.\!bg-black {
|
|
836
|
+
background-color: #0f0f0f !important;
|
|
837
|
+
}
|
|
788
838
|
.\!bg-primary {
|
|
789
839
|
background-color: var(--primary) !important;
|
|
790
840
|
}
|
|
791
841
|
.bg-background {
|
|
792
842
|
background-color: var(--background);
|
|
793
843
|
}
|
|
794
|
-
.bg-black
|
|
795
|
-
background-color:
|
|
844
|
+
.bg-black {
|
|
845
|
+
background-color: #0f0f0f;
|
|
846
|
+
}
|
|
847
|
+
.bg-black\/30 {
|
|
848
|
+
background-color: color-mix(in oklab, #0f0f0f 30%, transparent);
|
|
849
|
+
}
|
|
850
|
+
.bg-black\/75 {
|
|
851
|
+
background-color: color-mix(in oklab, #0f0f0f 75%, transparent);
|
|
796
852
|
}
|
|
797
853
|
.bg-blue-50 {
|
|
798
854
|
background-color: #fbfcfe;
|
|
@@ -1260,6 +1316,9 @@
|
|
|
1260
1316
|
.\!text-primary-foreground {
|
|
1261
1317
|
color: var(--primary-foreground) !important;
|
|
1262
1318
|
}
|
|
1319
|
+
.\!text-white {
|
|
1320
|
+
color: #fefefe !important;
|
|
1321
|
+
}
|
|
1263
1322
|
.text-blue-50 {
|
|
1264
1323
|
color: #fbfcfe;
|
|
1265
1324
|
}
|
|
@@ -1482,6 +1541,14 @@
|
|
|
1482
1541
|
.opacity-0 {
|
|
1483
1542
|
opacity: 0%;
|
|
1484
1543
|
}
|
|
1544
|
+
.\!shadow-lg {
|
|
1545
|
+
--tw-shadow: 0 10px 15px -3px var(--tw-shadow-color, rgb(0 0 0 / 0.1)), 0 4px 6px -4px var(--tw-shadow-color, rgb(0 0 0 / 0.1)) !important;
|
|
1546
|
+
box-shadow: var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow) !important;
|
|
1547
|
+
}
|
|
1548
|
+
.\!shadow-sm {
|
|
1549
|
+
--tw-shadow: 0 1px 3px 0 var(--tw-shadow-color, rgb(0 0 0 / 0.1)), 0 1px 2px -1px var(--tw-shadow-color, rgb(0 0 0 / 0.1)) !important;
|
|
1550
|
+
box-shadow: var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow) !important;
|
|
1551
|
+
}
|
|
1485
1552
|
.shadow {
|
|
1486
1553
|
--tw-shadow: 0 1px 3px 0 var(--tw-shadow-color, rgb(0 0 0 / 0.1)), 0 1px 2px -1px var(--tw-shadow-color, rgb(0 0 0 / 0.1));
|
|
1487
1554
|
box-shadow: var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow);
|
|
@@ -1594,6 +1661,21 @@
|
|
|
1594
1661
|
.running {
|
|
1595
1662
|
animation-play-state: running;
|
|
1596
1663
|
}
|
|
1664
|
+
.group-hover\:scale-y-100 {
|
|
1665
|
+
&:is(:where(.group):hover *) {
|
|
1666
|
+
@media (hover: hover) {
|
|
1667
|
+
--tw-scale-y: 100%;
|
|
1668
|
+
scale: var(--tw-scale-x) var(--tw-scale-y);
|
|
1669
|
+
}
|
|
1670
|
+
}
|
|
1671
|
+
}
|
|
1672
|
+
.group-hover\:bg-transparent {
|
|
1673
|
+
&:is(:where(.group):hover *) {
|
|
1674
|
+
@media (hover: hover) {
|
|
1675
|
+
background-color: transparent;
|
|
1676
|
+
}
|
|
1677
|
+
}
|
|
1678
|
+
}
|
|
1597
1679
|
.group-hover\:\!opacity-100 {
|
|
1598
1680
|
&:is(:where(.group):hover *) {
|
|
1599
1681
|
@media (hover: hover) {
|
|
@@ -2912,6 +2994,29 @@
|
|
|
2912
2994
|
--tw-enter-translate-y: calc(2*var(--spacing));
|
|
2913
2995
|
}
|
|
2914
2996
|
}
|
|
2997
|
+
.\*\:data-\[slot\=avatar\]\:ring-2 {
|
|
2998
|
+
:is(& > *) {
|
|
2999
|
+
&[data-slot="avatar"] {
|
|
3000
|
+
--tw-ring-shadow: var(--tw-ring-inset,) 0 0 0 calc(2px + var(--tw-ring-offset-width)) var(--tw-ring-color, currentcolor);
|
|
3001
|
+
box-shadow: var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow);
|
|
3002
|
+
}
|
|
3003
|
+
}
|
|
3004
|
+
}
|
|
3005
|
+
.\*\:data-\[slot\=avatar\]\:ring-background {
|
|
3006
|
+
:is(& > *) {
|
|
3007
|
+
&[data-slot="avatar"] {
|
|
3008
|
+
--tw-ring-color: var(--background);
|
|
3009
|
+
}
|
|
3010
|
+
}
|
|
3011
|
+
}
|
|
3012
|
+
.\*\:data-\[slot\=avatar\]\:grayscale {
|
|
3013
|
+
:is(& > *) {
|
|
3014
|
+
&[data-slot="avatar"] {
|
|
3015
|
+
--tw-grayscale: grayscale(100%);
|
|
3016
|
+
filter: var(--tw-blur,) var(--tw-brightness,) var(--tw-contrast,) var(--tw-grayscale,) var(--tw-hue-rotate,) var(--tw-invert,) var(--tw-saturate,) var(--tw-sepia,) var(--tw-drop-shadow,);
|
|
3017
|
+
}
|
|
3018
|
+
}
|
|
3019
|
+
}
|
|
2915
3020
|
.data-\[state\=active\]\:bg-blue-600 {
|
|
2916
3021
|
&[data-state="active"] {
|
|
2917
3022
|
background-color: #276ab3;
|
|
@@ -3077,14 +3182,14 @@
|
|
|
3077
3182
|
grid-template-columns: repeat(4, minmax(0, 1fr));
|
|
3078
3183
|
}
|
|
3079
3184
|
}
|
|
3080
|
-
.sm\:
|
|
3185
|
+
.sm\:flex-row {
|
|
3081
3186
|
@media (width >= 40rem) {
|
|
3082
|
-
|
|
3187
|
+
flex-direction: row;
|
|
3083
3188
|
}
|
|
3084
3189
|
}
|
|
3085
|
-
.sm\:
|
|
3190
|
+
.sm\:flex-row-reverse {
|
|
3086
3191
|
@media (width >= 40rem) {
|
|
3087
|
-
|
|
3192
|
+
flex-direction: row-reverse;
|
|
3088
3193
|
}
|
|
3089
3194
|
}
|
|
3090
3195
|
.sm\:\!text-left {
|
|
@@ -3105,6 +3210,11 @@
|
|
|
3105
3210
|
grid-template-columns: repeat(6, minmax(0, 1fr));
|
|
3106
3211
|
}
|
|
3107
3212
|
}
|
|
3213
|
+
.md\:\!gap-2\.5 {
|
|
3214
|
+
@media (width >= 48rem) {
|
|
3215
|
+
gap: calc(var(--spacing) * 2.5) !important;
|
|
3216
|
+
}
|
|
3217
|
+
}
|
|
3108
3218
|
.md\:\!gap-5 {
|
|
3109
3219
|
@media (width >= 48rem) {
|
|
3110
3220
|
gap: calc(var(--spacing) * 5) !important;
|
|
@@ -3310,6 +3420,21 @@
|
|
|
3310
3420
|
inherits: false;
|
|
3311
3421
|
initial-value: 0;
|
|
3312
3422
|
}
|
|
3423
|
+
@property --tw-scale-x {
|
|
3424
|
+
syntax: "*";
|
|
3425
|
+
inherits: false;
|
|
3426
|
+
initial-value: 1;
|
|
3427
|
+
}
|
|
3428
|
+
@property --tw-scale-y {
|
|
3429
|
+
syntax: "*";
|
|
3430
|
+
inherits: false;
|
|
3431
|
+
initial-value: 1;
|
|
3432
|
+
}
|
|
3433
|
+
@property --tw-scale-z {
|
|
3434
|
+
syntax: "*";
|
|
3435
|
+
inherits: false;
|
|
3436
|
+
initial-value: 1;
|
|
3437
|
+
}
|
|
3313
3438
|
@property --tw-space-y-reverse {
|
|
3314
3439
|
syntax: "*";
|
|
3315
3440
|
inherits: false;
|
|
@@ -3535,6 +3660,9 @@
|
|
|
3535
3660
|
--tw-translate-x: 0;
|
|
3536
3661
|
--tw-translate-y: 0;
|
|
3537
3662
|
--tw-translate-z: 0;
|
|
3663
|
+
--tw-scale-x: 1;
|
|
3664
|
+
--tw-scale-y: 1;
|
|
3665
|
+
--tw-scale-z: 1;
|
|
3538
3666
|
--tw-space-y-reverse: 0;
|
|
3539
3667
|
--tw-space-x-reverse: 0;
|
|
3540
3668
|
--tw-border-style: solid;
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "linkedunion-design-kit",
|
|
3
|
-
"version": "1.7.
|
|
3
|
+
"version": "1.7.9",
|
|
4
4
|
"private": false,
|
|
5
5
|
"files": [
|
|
6
6
|
"dist",
|
|
@@ -41,6 +41,7 @@
|
|
|
41
41
|
],
|
|
42
42
|
"dependencies": {
|
|
43
43
|
"@radix-ui/react-accordion": "^1.2.8",
|
|
44
|
+
"@radix-ui/react-avatar": "^1.1.10",
|
|
44
45
|
"@radix-ui/react-checkbox": "^1.3.1",
|
|
45
46
|
"@radix-ui/react-label": "^2.1.3",
|
|
46
47
|
"@radix-ui/react-radio-group": "^1.3.7",
|
|
@@ -1,8 +0,0 @@
|
|
|
1
|
-
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
2
|
-
import LUIcon from "../Icons/LUIcon";
|
|
3
|
-
import LuImage from "../Images/LuImage";
|
|
4
|
-
import { Heading } from "../Typography/Heading/heading";
|
|
5
|
-
export var PhotoGallery = function (_a) {
|
|
6
|
-
var image = _a.image, item = _a.item, _b = _a.altText, altText = _b === void 0 ? "Photo Gallery" : _b, editor = _a.editor;
|
|
7
|
-
return (_jsxs("div", { className: "group relative max-w-md ".concat(editor === null || editor === void 0 ? void 0 : editor.card, " ").concat(editor === null || editor === void 0 ? void 0 : editor.cardImage), children: [_jsx(LuImage, { src: image, width: 448, height: 448, alt: altText, className: "aspect-square object-cover transition-transform" }), _jsx("div", { className: "absolute ".concat(editor === null || editor === void 0 ? void 0 : editor.cardOverlay, " inset-0 bg-linear-to-t from-black to-transparent") }), _jsx(Heading, { variant: "h4-700", className: "absolute line-clamp-1 text-white bottom-4 uppercase !px-5 ".concat(editor === null || editor === void 0 ? void 0 : editor.cardText), children: item === null || item === void 0 ? void 0 : item.title }), _jsx("div", { className: "absolute inset-0 flex items-center justify-center bg-black/40 opacity-0 group-hover:!opacity-100 transition-opacity duration-300 ease-out", children: _jsx(LUIcon, { icon: "magnifying-glass", size: "4xl", className: "".concat(editor === null || editor === void 0 ? void 0 : editor.cardText, " text-gray-100") }) })] }));
|
|
8
|
-
};
|
|
File without changes
|
|
File without changes
|
|
@@ -10,8 +10,8 @@ var __assign = (this && this.__assign) || function () {
|
|
|
10
10
|
return __assign.apply(this, arguments);
|
|
11
11
|
};
|
|
12
12
|
import { jsx as _jsx } from "react/jsx-runtime";
|
|
13
|
-
import Avatar from "./Avatar";
|
|
14
13
|
import { avatarShape, avatarSize } from ".";
|
|
14
|
+
import Avatar from "./Avatar";
|
|
15
15
|
export default {
|
|
16
16
|
title: "Components/Avatar",
|
|
17
17
|
component: Avatar,
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|