linkedunion-design-kit 1.7.7 → 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/Typography/Heading/heading.js +1 -1
- package/dist/src/components/ui/avatar.d.ts +6 -0
- package/dist/src/components/ui/{tabs.js → avatar.js} +8 -13
- package/dist/styles/global.css +137 -12
- package/package.json +2 -1
- package/dist/src/components/Card/PhotoGallery.js +0 -8
- package/dist/src/components/ui/tabs.d.ts +0 -7
- 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
|
}
|
|
@@ -49,7 +49,7 @@ export var variant = {
|
|
|
49
49
|
"h6-600": "!text-lg !font-semibold",
|
|
50
50
|
"h6-700": "!text-lg !font-bold",
|
|
51
51
|
};
|
|
52
|
-
var headingVariants = cva("!leading-normal
|
|
52
|
+
var headingVariants = cva("!leading-normal", // Default base class
|
|
53
53
|
{
|
|
54
54
|
variants: {
|
|
55
55
|
variant: variant,
|
|
@@ -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 };
|
|
@@ -1,4 +1,3 @@
|
|
|
1
|
-
"use client";
|
|
2
1
|
var __assign = (this && this.__assign) || function () {
|
|
3
2
|
__assign = Object.assign || function(t) {
|
|
4
3
|
for (var s, i = 1, n = arguments.length; i < n; i++) {
|
|
@@ -22,22 +21,18 @@ var __rest = (this && this.__rest) || function (s, e) {
|
|
|
22
21
|
return t;
|
|
23
22
|
};
|
|
24
23
|
import { jsx as _jsx } from "react/jsx-runtime";
|
|
25
|
-
import * as
|
|
24
|
+
import * as AvatarPrimitive from "@radix-ui/react-avatar";
|
|
26
25
|
import { cn } from "../../lib/utils";
|
|
27
|
-
function
|
|
26
|
+
function Avatar(_a) {
|
|
28
27
|
var className = _a.className, props = __rest(_a, ["className"]);
|
|
29
|
-
return (_jsx(
|
|
28
|
+
return (_jsx(AvatarPrimitive.Root, __assign({ "data-slot": "avatar", className: cn("relative flex size-8 shrink-0 overflow-hidden rounded-full", className) }, props)));
|
|
30
29
|
}
|
|
31
|
-
function
|
|
30
|
+
function AvatarImage(_a) {
|
|
32
31
|
var className = _a.className, props = __rest(_a, ["className"]);
|
|
33
|
-
return (_jsx(
|
|
32
|
+
return (_jsx(AvatarPrimitive.Image, __assign({ "data-slot": "avatar-image", className: cn("aspect-square size-full", className) }, props)));
|
|
34
33
|
}
|
|
35
|
-
function
|
|
34
|
+
function AvatarFallback(_a) {
|
|
36
35
|
var className = _a.className, props = __rest(_a, ["className"]);
|
|
37
|
-
return (_jsx(
|
|
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)));
|
|
38
37
|
}
|
|
39
|
-
|
|
40
|
-
var className = _a.className, props = __rest(_a, ["className"]);
|
|
41
|
-
return (_jsx(TabsPrimitive.Content, __assign({ "data-slot": "tabs-content", className: cn("flex-1 outline-none", className) }, props)));
|
|
42
|
-
}
|
|
43
|
-
export { Tabs, TabsList, TabsTrigger, TabsContent };
|
|
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;
|
|
@@ -1257,12 +1313,12 @@
|
|
|
1257
1313
|
.whitespace-nowrap {
|
|
1258
1314
|
white-space: nowrap;
|
|
1259
1315
|
}
|
|
1260
|
-
.\!text-black {
|
|
1261
|
-
color: #0f0f0f !important;
|
|
1262
|
-
}
|
|
1263
1316
|
.\!text-primary-foreground {
|
|
1264
1317
|
color: var(--primary-foreground) !important;
|
|
1265
1318
|
}
|
|
1319
|
+
.\!text-white {
|
|
1320
|
+
color: #fefefe !important;
|
|
1321
|
+
}
|
|
1266
1322
|
.text-blue-50 {
|
|
1267
1323
|
color: #fbfcfe;
|
|
1268
1324
|
}
|
|
@@ -1485,6 +1541,14 @@
|
|
|
1485
1541
|
.opacity-0 {
|
|
1486
1542
|
opacity: 0%;
|
|
1487
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
|
+
}
|
|
1488
1552
|
.shadow {
|
|
1489
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));
|
|
1490
1554
|
box-shadow: var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow);
|
|
@@ -1597,6 +1661,21 @@
|
|
|
1597
1661
|
.running {
|
|
1598
1662
|
animation-play-state: running;
|
|
1599
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
|
+
}
|
|
1600
1679
|
.group-hover\:\!opacity-100 {
|
|
1601
1680
|
&:is(:where(.group):hover *) {
|
|
1602
1681
|
@media (hover: hover) {
|
|
@@ -2915,6 +2994,29 @@
|
|
|
2915
2994
|
--tw-enter-translate-y: calc(2*var(--spacing));
|
|
2916
2995
|
}
|
|
2917
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
|
+
}
|
|
2918
3020
|
.data-\[state\=active\]\:bg-blue-600 {
|
|
2919
3021
|
&[data-state="active"] {
|
|
2920
3022
|
background-color: #276ab3;
|
|
@@ -3080,14 +3182,14 @@
|
|
|
3080
3182
|
grid-template-columns: repeat(4, minmax(0, 1fr));
|
|
3081
3183
|
}
|
|
3082
3184
|
}
|
|
3083
|
-
.sm\:
|
|
3185
|
+
.sm\:flex-row {
|
|
3084
3186
|
@media (width >= 40rem) {
|
|
3085
|
-
|
|
3187
|
+
flex-direction: row;
|
|
3086
3188
|
}
|
|
3087
3189
|
}
|
|
3088
|
-
.sm\:
|
|
3190
|
+
.sm\:flex-row-reverse {
|
|
3089
3191
|
@media (width >= 40rem) {
|
|
3090
|
-
|
|
3192
|
+
flex-direction: row-reverse;
|
|
3091
3193
|
}
|
|
3092
3194
|
}
|
|
3093
3195
|
.sm\:\!text-left {
|
|
@@ -3108,6 +3210,11 @@
|
|
|
3108
3210
|
grid-template-columns: repeat(6, minmax(0, 1fr));
|
|
3109
3211
|
}
|
|
3110
3212
|
}
|
|
3213
|
+
.md\:\!gap-2\.5 {
|
|
3214
|
+
@media (width >= 48rem) {
|
|
3215
|
+
gap: calc(var(--spacing) * 2.5) !important;
|
|
3216
|
+
}
|
|
3217
|
+
}
|
|
3111
3218
|
.md\:\!gap-5 {
|
|
3112
3219
|
@media (width >= 48rem) {
|
|
3113
3220
|
gap: calc(var(--spacing) * 5) !important;
|
|
@@ -3313,6 +3420,21 @@
|
|
|
3313
3420
|
inherits: false;
|
|
3314
3421
|
initial-value: 0;
|
|
3315
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
|
+
}
|
|
3316
3438
|
@property --tw-space-y-reverse {
|
|
3317
3439
|
syntax: "*";
|
|
3318
3440
|
inherits: false;
|
|
@@ -3538,6 +3660,9 @@
|
|
|
3538
3660
|
--tw-translate-x: 0;
|
|
3539
3661
|
--tw-translate-y: 0;
|
|
3540
3662
|
--tw-translate-z: 0;
|
|
3663
|
+
--tw-scale-x: 1;
|
|
3664
|
+
--tw-scale-y: 1;
|
|
3665
|
+
--tw-scale-z: 1;
|
|
3541
3666
|
--tw-space-y-reverse: 0;
|
|
3542
3667
|
--tw-space-x-reverse: 0;
|
|
3543
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
|
-
};
|
|
@@ -1,7 +0,0 @@
|
|
|
1
|
-
import * as React from "react";
|
|
2
|
-
import * as TabsPrimitive from "@radix-ui/react-tabs";
|
|
3
|
-
declare function Tabs({ className, ...props }: React.ComponentProps<typeof TabsPrimitive.Root>): import("react/jsx-runtime").JSX.Element;
|
|
4
|
-
declare function TabsList({ className, ...props }: React.ComponentProps<typeof TabsPrimitive.List>): import("react/jsx-runtime").JSX.Element;
|
|
5
|
-
declare function TabsTrigger({ className, ...props }: React.ComponentProps<typeof TabsPrimitive.Trigger>): import("react/jsx-runtime").JSX.Element;
|
|
6
|
-
declare function TabsContent({ className, ...props }: React.ComponentProps<typeof TabsPrimitive.Content>): import("react/jsx-runtime").JSX.Element;
|
|
7
|
-
export { Tabs, TabsList, TabsTrigger, TabsContent };
|
|
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
|