linkedunion-design-kit 1.7.1 → 1.7.3
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 -0
- package/dist/index.js +1 -0
- package/dist/src/components/Card/MultipleNews/MultiNews.d.ts +2 -0
- package/dist/src/components/Card/MultipleNews/MultiNews.js +48 -0
- package/dist/src/components/Card/MultipleNews/MultiNews.stories.d.ts +9 -0
- package/dist/src/components/Card/MultipleNews/MultiNews.stories.js +52 -0
- package/dist/src/components/Card/PhotoGallery.d.ts +2 -0
- package/dist/src/components/Card/PhotoGallery.js +8 -0
- package/dist/src/components/Card/PhotoGallery.stories.d.ts +5 -0
- package/dist/src/components/Card/PhotoGallery.stories.js +46 -0
- package/dist/src/components/Card/PostByCategory/PostByCategory.js +1 -1
- package/dist/src/components/Card/PostByCategory.d.ts +2 -0
- package/dist/src/components/Card/PostByCategory.js +38 -0
- package/dist/src/components/Card/PostByCategory.stories.d.ts +9 -0
- package/dist/src/components/Card/PostByCategory.stories.js +54 -0
- package/dist/src/components/Card/card.js +4 -2
- package/dist/src/components/Card/contactProfile/ContactProfile.d.ts +2 -0
- package/dist/src/components/Card/contactProfile/ContactProfile.js +38 -0
- package/dist/src/components/Card/contactProfile/ContactProfile.stories.d.ts +9 -0
- package/dist/src/components/Card/contactProfile/ContactProfile.stories.js +52 -0
- package/dist/src/components/Card/type.d.ts +3 -1
- package/dist/src/components/Label/Label.js +1 -1
- package/dist/src/components/Label/type.d.ts +9 -0
- package/dist/src/components/Label/type.js +1 -0
- package/dist/src/components/Typography/Heading/heading.js +1 -1
- package/dist/src/components/ui/body.d.ts +0 -0
- package/dist/src/components/ui/body.js +1 -0
- package/dist/src/components/ui/label.d.ts +12 -0
- package/dist/src/components/ui/label.js +41 -0
- package/dist/styles/global.css +135 -15
- package/package.json +1 -1
package/dist/index.d.ts
CHANGED
|
@@ -17,6 +17,7 @@ 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";
|
|
20
21
|
export { Label } from "./src/components/Label/Label";
|
|
21
22
|
export { Slider } from "./src/components/Slider/slider";
|
|
22
23
|
export { RadioButton } from "./src/components/RadioButton/radio-button";
|
package/dist/index.js
CHANGED
|
@@ -17,6 +17,7 @@ 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";
|
|
20
21
|
export { Label } from "./src/components/Label/Label";
|
|
21
22
|
export { Slider } from "./src/components/Slider/slider";
|
|
22
23
|
export { RadioButton } from "./src/components/RadioButton/radio-button";
|
|
@@ -0,0 +1,48 @@
|
|
|
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, jsxs as _jsxs, Fragment as _Fragment } from "react/jsx-runtime";
|
|
13
|
+
import LuImage from "../../Images/LuImage";
|
|
14
|
+
import Link from "next/link";
|
|
15
|
+
import { Button } from "../../Button/Button";
|
|
16
|
+
import { Body } from "../../Typography/Body/body";
|
|
17
|
+
import { Heading } from "../../Typography/Heading/heading";
|
|
18
|
+
export var MultiNews = function (_a) {
|
|
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
|
+
// Create modified item with shuffled subtitle and description when mediaPosition is middle
|
|
21
|
+
var modifiedItem = mediaPosition === "middle"
|
|
22
|
+
? __assign(__assign({}, item), { description: item.subtitle, subtitle: item.description }) : item;
|
|
23
|
+
// Common card media component
|
|
24
|
+
var CardMedia = function (_a) {
|
|
25
|
+
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(editor === null || editor === void 0 ? void 0 : editor.cardImage), alt: "Image" }));
|
|
27
|
+
};
|
|
28
|
+
// Common content section
|
|
29
|
+
var CardContent = function (_a) {
|
|
30
|
+
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(editor === null || editor === void 0 ? void 0 : editor.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(editor === null || editor === void 0 ? void 0 : editor.cardText), children: modifiedItem === null || modifiedItem === void 0 ? void 0 : modifiedItem.description })] }));
|
|
32
|
+
};
|
|
33
|
+
// Common button component with conditional shape
|
|
34
|
+
var ActionButton = function (_a) {
|
|
35
|
+
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(editor === null || editor === void 0 ? void 0 : editor.cardBtn), children: btnLabel })) }));
|
|
37
|
+
};
|
|
38
|
+
// 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(editor === null || editor === void 0 ? void 0 : editor.cardSubtitle), dangerouslySetInnerHTML: {
|
|
40
|
+
__html: modifiedItem.subtitle || "",
|
|
41
|
+
} })) })); };
|
|
42
|
+
// Horizontal layout
|
|
43
|
+
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(editor === null || editor === void 0 ? void 0 : editor.card), children: [_jsx(CardMedia, { className: "max-w-40 aspect-square rounded-lg" }), _jsxs("div", { className: "flex flex-col !gap-5 w-full", children: [_jsx(CardContent, {}), _jsx(ActionButton, {})] })] }));
|
|
45
|
+
}
|
|
46
|
+
// Vertical layout
|
|
47
|
+
return (_jsxs("div", { className: "p-8 bg-white rounded-2xl flex flex-col !gap-5 max-w-md shadow-lg ".concat(editor === null || editor === void 0 ? void 0 : editor.card), children: [_jsxs("div", { className: "flex ".concat(mediaPosition === "top" ? "flex-col" : "flex-col-reverse", " !gap-5"), children: [_jsx(Subtitle, {}), _jsx(CardMedia, { className: "aspect-16/10" }), _jsx(CardContent, {})] }), _jsx(ActionButton, {})] }));
|
|
48
|
+
};
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
import { Meta, StoryObj } from "@storybook/react";
|
|
2
|
+
import { MultiNews } from "./MultiNews";
|
|
3
|
+
declare const meta: Meta<typeof MultiNews>;
|
|
4
|
+
export default meta;
|
|
5
|
+
type Story = StoryObj<typeof MultiNews>;
|
|
6
|
+
export declare const MultiNewsHorizontalLeft: Story;
|
|
7
|
+
export declare const MultiNewsHorizontalRight: Story;
|
|
8
|
+
export declare const MultiNewsVerticalTop: Story;
|
|
9
|
+
export declare const MultiNewsVerticalBottom: Story;
|
|
@@ -0,0 +1,52 @@
|
|
|
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 { MultiNews } from "./MultiNews";
|
|
13
|
+
import { Dummy_Image, Dummy_Para, Dummy_Subtitle, Dummy_Title, Dummy_Url, } from "../../../utils/constants";
|
|
14
|
+
var meta = {
|
|
15
|
+
title: "Components/NewCard/MultiNews",
|
|
16
|
+
component: MultiNews,
|
|
17
|
+
parameters: {
|
|
18
|
+
layout: "centered",
|
|
19
|
+
},
|
|
20
|
+
};
|
|
21
|
+
export default meta;
|
|
22
|
+
var baseCardArgs = {
|
|
23
|
+
type: "multipleNews",
|
|
24
|
+
item: {
|
|
25
|
+
image: Dummy_Image,
|
|
26
|
+
title: Dummy_Title,
|
|
27
|
+
description: Dummy_Para,
|
|
28
|
+
subtitle: Dummy_Subtitle,
|
|
29
|
+
},
|
|
30
|
+
image: Dummy_Image,
|
|
31
|
+
href: Dummy_Url,
|
|
32
|
+
btnLabel: "View More",
|
|
33
|
+
editor: {
|
|
34
|
+
card: "",
|
|
35
|
+
cardImage: "",
|
|
36
|
+
cardTitle: "",
|
|
37
|
+
cardText: "",
|
|
38
|
+
cardBtn: "",
|
|
39
|
+
},
|
|
40
|
+
};
|
|
41
|
+
export var MultiNewsHorizontalLeft = {
|
|
42
|
+
args: __assign(__assign({}, baseCardArgs), { orientation: "horizontal", mediaPosition: "left" }),
|
|
43
|
+
};
|
|
44
|
+
export var MultiNewsHorizontalRight = {
|
|
45
|
+
args: __assign(__assign({}, baseCardArgs), { orientation: "horizontal", mediaPosition: "right" }),
|
|
46
|
+
};
|
|
47
|
+
export var MultiNewsVerticalTop = {
|
|
48
|
+
args: __assign(__assign({}, baseCardArgs), { orientation: "vertical", mediaPosition: "top" }),
|
|
49
|
+
};
|
|
50
|
+
export var MultiNewsVerticalBottom = {
|
|
51
|
+
args: __assign(__assign({}, baseCardArgs), { orientation: "vertical", mediaPosition: "bottom" }),
|
|
52
|
+
};
|
|
@@ -0,0 +1,8 @@
|
|
|
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 max-h-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
|
+
};
|
|
@@ -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,46 @@
|
|
|
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 { PhotoGallery } from "./PhotoGallery";
|
|
14
|
+
import { Dummy_Image, Dummy_Title } from "../../utils/constants";
|
|
15
|
+
import Card from "./card";
|
|
16
|
+
export default {
|
|
17
|
+
title: "Components/NewCard/PhotoGallery",
|
|
18
|
+
component: PhotoGallery,
|
|
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: "photoGallery",
|
|
25
|
+
item: {
|
|
26
|
+
title: Dummy_Title,
|
|
27
|
+
},
|
|
28
|
+
image: Dummy_Image,
|
|
29
|
+
editor: {
|
|
30
|
+
card: "",
|
|
31
|
+
cardImage: "",
|
|
32
|
+
cardOverlay: "",
|
|
33
|
+
cardText: "",
|
|
34
|
+
},
|
|
35
|
+
};
|
|
36
|
+
Default.argTypes = {
|
|
37
|
+
type: {
|
|
38
|
+
control: false,
|
|
39
|
+
table: {
|
|
40
|
+
type: { summary: "string" },
|
|
41
|
+
defaultValue: {
|
|
42
|
+
summary: "photoGallery",
|
|
43
|
+
},
|
|
44
|
+
},
|
|
45
|
+
},
|
|
46
|
+
};
|
|
@@ -27,7 +27,7 @@ export var PostByCategory = function (_a) {
|
|
|
27
27
|
// Common button component
|
|
28
28
|
var CardButton = function (_a) {
|
|
29
29
|
var _b = _a.className, className = _b === void 0 ? "" : _b;
|
|
30
|
-
return (_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, "
|
|
30
|
+
return (_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, " ").concat(className), children: btnLabel }) }));
|
|
31
31
|
};
|
|
32
32
|
// Horizontal layout
|
|
33
33
|
if (orientation === "horizontal") {
|
|
@@ -0,0 +1,38 @@
|
|
|
1
|
+
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
2
|
+
import LuImage from "../Images/LuImage";
|
|
3
|
+
import Link from "next/link";
|
|
4
|
+
import { Heading } from "../Typography/Heading/heading";
|
|
5
|
+
import { Body } from "../Typography/Body/body";
|
|
6
|
+
import { Button } from "../Button/Button";
|
|
7
|
+
export var PostByCategory = function (_a) {
|
|
8
|
+
var item = _a.item, image = _a.image, href = _a.href, btnLabel = _a.btnLabel, editor = _a.editor, mediaPosition = _a.mediaPosition, orientation = _a.orientation;
|
|
9
|
+
// Normalize mediaPosition based on orientation
|
|
10
|
+
var safeMediaPosition = orientation === "horizontal"
|
|
11
|
+
? mediaPosition === "left" || mediaPosition === "right"
|
|
12
|
+
? mediaPosition
|
|
13
|
+
: "right"
|
|
14
|
+
: mediaPosition === "top" || mediaPosition === "bottom"
|
|
15
|
+
? mediaPosition
|
|
16
|
+
: "top";
|
|
17
|
+
// Common card media component to avoid duplication
|
|
18
|
+
var CardMedia = function (_a) {
|
|
19
|
+
var _b = _a.className, className = _b === void 0 ? "" : _b;
|
|
20
|
+
return (_jsx(LuImage, { src: image, width: 240, height: 240, className: "".concat(className, " ").concat(editor === null || editor === void 0 ? void 0 : editor.cardImage), alt: "Image" }));
|
|
21
|
+
};
|
|
22
|
+
// Common content section component
|
|
23
|
+
var CardContent = function (_a) {
|
|
24
|
+
var _b = _a.className, className = _b === void 0 ? "" : _b;
|
|
25
|
+
return (_jsxs("div", { className: "flex flex-col gap-1 ".concat(className), children: [_jsx(Heading, { variant: "h5-700", className: "".concat(editor === null || editor === void 0 ? void 0 : editor.cardTitle), children: item === null || item === void 0 ? void 0 : item.title }), _jsx(Body, { variant: "body-base", className: "".concat(editor === null || editor === void 0 ? void 0 : editor.cardText), children: item === null || item === void 0 ? void 0 : item.description })] }));
|
|
26
|
+
};
|
|
27
|
+
// Common button component
|
|
28
|
+
var CardButton = function (_a) {
|
|
29
|
+
var _b = _a.className, className = _b === void 0 ? "" : _b;
|
|
30
|
+
return (_jsx(Link, { href: href || "#", passHref: true, className: className, children: _jsx(Button, { endIcon: "angle-right", size: "lg", className: "".concat(editor === null || editor === void 0 ? void 0 : editor.cardBtn), children: btnLabel }) }));
|
|
31
|
+
};
|
|
32
|
+
// Horizontal layout
|
|
33
|
+
if (orientation === "horizontal") {
|
|
34
|
+
return (_jsxs("div", { className: "p-5 bg-white rounded-xl inline-flex ".concat(safeMediaPosition === "right" ? "flex-row-reverse" : "", " gap-5 items-center shadow-lg ").concat(editor === null || editor === void 0 ? void 0 : editor.card), children: [_jsx(CardMedia, { className: "max-w-[240px] aspect-square rounded-lg object-cover" }), _jsxs("div", { className: "flex flex-col gap-1 w-full", children: [_jsx(CardContent, {}), _jsx(CardButton, { className: "mt-5" })] })] }));
|
|
35
|
+
}
|
|
36
|
+
// Vertical layout
|
|
37
|
+
return (_jsxs("div", { className: "p-8 bg-white rounded-xl inline-flex flex-col gap-5 max-w-[480px] items-center shadow-lg ".concat(editor === null || editor === void 0 ? void 0 : editor.card), children: [_jsxs("div", { className: "flex ".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, {})] }), _jsx(CardButton, {})] }));
|
|
38
|
+
};
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
import { Meta, StoryObj } from "@storybook/react";
|
|
2
|
+
import Card from "./card";
|
|
3
|
+
declare const meta: Meta<typeof Card>;
|
|
4
|
+
export default meta;
|
|
5
|
+
type Story = StoryObj<typeof Card>;
|
|
6
|
+
export declare const PostByCategoryHorizontalLeft: Story;
|
|
7
|
+
export declare const PostByCategoryHorizontalRight: Story;
|
|
8
|
+
export declare const PostByCategoryVerticalTop: Story;
|
|
9
|
+
export declare const PostByCategoryVerticalBottom: Story;
|
|
@@ -0,0 +1,54 @@
|
|
|
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 Card from "./card";
|
|
13
|
+
import { Dummy_Image, Dummy_Para, Dummy_Subtitle, Dummy_Title, Dummy_Url, } from "../../utils/constants";
|
|
14
|
+
var meta = {
|
|
15
|
+
title: "Components/NewCard/PostByCategory",
|
|
16
|
+
component: Card,
|
|
17
|
+
parameters: {
|
|
18
|
+
layout: "centered",
|
|
19
|
+
},
|
|
20
|
+
};
|
|
21
|
+
export default meta;
|
|
22
|
+
// Base card args
|
|
23
|
+
var baseCardArgs = {
|
|
24
|
+
type: "postByCategory",
|
|
25
|
+
item: {
|
|
26
|
+
image: Dummy_Image,
|
|
27
|
+
title: Dummy_Title,
|
|
28
|
+
description: Dummy_Para,
|
|
29
|
+
subtitle: Dummy_Subtitle,
|
|
30
|
+
},
|
|
31
|
+
image: Dummy_Image,
|
|
32
|
+
href: Dummy_Url,
|
|
33
|
+
btnLabel: "View More",
|
|
34
|
+
editor: {
|
|
35
|
+
card: "",
|
|
36
|
+
cardImage: "",
|
|
37
|
+
cardTitle: "",
|
|
38
|
+
cardText: "",
|
|
39
|
+
cardBtn: "",
|
|
40
|
+
},
|
|
41
|
+
};
|
|
42
|
+
// PostByCategory Card Stories
|
|
43
|
+
export var PostByCategoryHorizontalLeft = {
|
|
44
|
+
args: __assign(__assign({}, baseCardArgs), { orientation: "horizontal", mediaPosition: "left" }),
|
|
45
|
+
};
|
|
46
|
+
export var PostByCategoryHorizontalRight = {
|
|
47
|
+
args: __assign(__assign({}, baseCardArgs), { orientation: "horizontal", mediaPosition: "right" }),
|
|
48
|
+
};
|
|
49
|
+
export var PostByCategoryVerticalTop = {
|
|
50
|
+
args: __assign(__assign({}, baseCardArgs), { orientation: "vertical", mediaPosition: "top" }),
|
|
51
|
+
};
|
|
52
|
+
export var PostByCategoryVerticalBottom = {
|
|
53
|
+
args: __assign(__assign({}, baseCardArgs), { orientation: "vertical", mediaPosition: "bottom" }),
|
|
54
|
+
};
|
|
@@ -1,10 +1,11 @@
|
|
|
1
1
|
import { Fragment as _Fragment, jsx as _jsx } from "react/jsx-runtime";
|
|
2
2
|
import React from "react";
|
|
3
3
|
import { PostByCategory } from "./PostByCategory/PostByCategory";
|
|
4
|
-
import {
|
|
5
|
-
import { MultiNews } from "./MultiNews";
|
|
4
|
+
import { MultiNews } from "./MultipleNews/MultiNews";
|
|
6
5
|
import { SinglePost } from "./SinglePost";
|
|
7
6
|
import { Dummy_Url } from "../../utils/constants";
|
|
7
|
+
import { PhotoGallery } from "./PhotoGallery";
|
|
8
|
+
import { ContactProfile } from "./contactProfile/ContactProfile";
|
|
8
9
|
var Card = function (_a) {
|
|
9
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;
|
|
10
11
|
var cardProps = {
|
|
@@ -22,6 +23,7 @@ var Card = function (_a) {
|
|
|
22
23
|
contactProfile: ContactProfile,
|
|
23
24
|
multipleNews: MultiNews,
|
|
24
25
|
singlePost: SinglePost,
|
|
26
|
+
photoGallery: PhotoGallery,
|
|
25
27
|
};
|
|
26
28
|
return (_jsx(_Fragment, { children: type && cardComponents[type]
|
|
27
29
|
? React.createElement(cardComponents[type], cardProps)
|
|
@@ -0,0 +1,38 @@
|
|
|
1
|
+
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
2
|
+
import Link from "next/link";
|
|
3
|
+
import LuImage from "../../Images/LuImage";
|
|
4
|
+
import { Heading } from "../../Typography/Heading/heading";
|
|
5
|
+
import { Body } from "../../Typography/Body/body";
|
|
6
|
+
import { Button } from "../../Button/Button";
|
|
7
|
+
export var ContactProfile = function (_a) {
|
|
8
|
+
var item = _a.item, image = _a.image, href = _a.href, btnLabel = _a.btnLabel, editor = _a.editor, mediaPosition = _a.mediaPosition, orientation = _a.orientation;
|
|
9
|
+
// Normalize mediaPosition based on orientation
|
|
10
|
+
var safeMediaPosition = orientation === "horizontal"
|
|
11
|
+
? mediaPosition === "left" || mediaPosition === "right"
|
|
12
|
+
? mediaPosition
|
|
13
|
+
: "right"
|
|
14
|
+
: mediaPosition === "top" || mediaPosition === "bottom"
|
|
15
|
+
? mediaPosition
|
|
16
|
+
: "top";
|
|
17
|
+
// Common card media component to avoid duplication
|
|
18
|
+
var CardMedia = function (_a) {
|
|
19
|
+
var _b = _a.className, className = _b === void 0 ? "" : _b;
|
|
20
|
+
return (_jsx(LuImage, { src: image, width: 240, height: 240, className: "w-full h-full rounded-full max-w-40 mx-auto aspect-square object-cover ".concat(className, " ").concat(editor === null || editor === void 0 ? void 0 : editor.cardImage), alt: "Image" }));
|
|
21
|
+
};
|
|
22
|
+
// Common content section component
|
|
23
|
+
var CardContent = function (_a) {
|
|
24
|
+
var _b = _a.className, className = _b === void 0 ? "" : _b;
|
|
25
|
+
return (_jsxs("div", { className: "flex flex-col !gap-1 ".concat(className, " "), children: [_jsx(Heading, { variant: "h5-700", className: "".concat(editor === null || editor === void 0 ? void 0 : editor.cardTitle, " capitalize line-clamp-1 !m-0"), children: item === null || item === void 0 ? void 0 : item.title }), _jsx(Body, { variant: "body-md", className: " ".concat(orientation === "horizontal" ? "line-clamp-1" : "line-clamp-2", " ").concat(editor === null || editor === void 0 ? void 0 : editor.cardText), children: item === null || item === void 0 ? void 0 : item.description })] }));
|
|
26
|
+
};
|
|
27
|
+
// Common button component
|
|
28
|
+
var CardButton = function (_a) {
|
|
29
|
+
var _b = _a.className, className = _b === void 0 ? "" : _b;
|
|
30
|
+
return (_jsx(Link, { href: href || "#", passHref: true, children: _jsx(Button, { endIcon: "angle-right", size: "sm", className: "".concat(editor === null || editor === void 0 ? void 0 : editor.cardBtn, " ").concat(className), children: btnLabel }) }));
|
|
31
|
+
};
|
|
32
|
+
// Horizontal layout
|
|
33
|
+
if (orientation === "horizontal") {
|
|
34
|
+
return (_jsxs("div", { className: "!p-5 bg-white rounded-xl grid ".concat(safeMediaPosition === "left" ? "sm:grid-cols-[auto_1fr]" : "sm:grid-cols-[1fr_auto]", " max-w-5xl !gap-10 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 flex-col !gap-1 md:!gap-5 text-center sm:!text-left h-full justify-center ".concat(safeMediaPosition === "right" ? "order-1" : "order-2"), children: [_jsx(CardContent, {}), _jsx(CardButton, {})] })] }));
|
|
35
|
+
}
|
|
36
|
+
// Vertical layout
|
|
37
|
+
return (_jsxs("div", { className: "p-8 bg-white rounded-xl flex flex-col !gap-5 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
|
+
};
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
import { Meta, StoryObj } from "@storybook/react";
|
|
2
|
+
import { ContactProfile } from "./ContactProfile";
|
|
3
|
+
declare const meta: Meta<typeof ContactProfile>;
|
|
4
|
+
export default meta;
|
|
5
|
+
type Story = StoryObj<typeof ContactProfile>;
|
|
6
|
+
export declare const ContactProfileHorizontalLeft: Story;
|
|
7
|
+
export declare const ContactProfileHorizontalRight: Story;
|
|
8
|
+
export declare const ContactProfileVerticalTop: Story;
|
|
9
|
+
export declare const ContactProfileVerticalBottom: Story;
|
|
@@ -0,0 +1,52 @@
|
|
|
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 { Dummy_Image, Dummy_Para, Dummy_Subtitle, Dummy_Title, Dummy_Url, } from "../../../utils/constants";
|
|
13
|
+
import { ContactProfile } from "./ContactProfile";
|
|
14
|
+
var meta = {
|
|
15
|
+
title: "Components/NewCard/ContactProfile",
|
|
16
|
+
component: ContactProfile,
|
|
17
|
+
parameters: {
|
|
18
|
+
layout: "centered",
|
|
19
|
+
},
|
|
20
|
+
};
|
|
21
|
+
export default meta;
|
|
22
|
+
var baseCardArgs = {
|
|
23
|
+
type: "contactProfile",
|
|
24
|
+
item: {
|
|
25
|
+
image: Dummy_Image,
|
|
26
|
+
title: Dummy_Title,
|
|
27
|
+
description: Dummy_Para,
|
|
28
|
+
subtitle: Dummy_Subtitle,
|
|
29
|
+
},
|
|
30
|
+
image: Dummy_Image,
|
|
31
|
+
href: Dummy_Url,
|
|
32
|
+
btnLabel: "View More",
|
|
33
|
+
editor: {
|
|
34
|
+
card: "",
|
|
35
|
+
cardImage: "",
|
|
36
|
+
cardTitle: "",
|
|
37
|
+
cardText: "",
|
|
38
|
+
cardBtn: "",
|
|
39
|
+
},
|
|
40
|
+
};
|
|
41
|
+
export var ContactProfileHorizontalLeft = {
|
|
42
|
+
args: __assign(__assign({}, baseCardArgs), { orientation: "horizontal", mediaPosition: "left" }),
|
|
43
|
+
};
|
|
44
|
+
export var ContactProfileHorizontalRight = {
|
|
45
|
+
args: __assign(__assign({}, baseCardArgs), { orientation: "horizontal", mediaPosition: "right" }),
|
|
46
|
+
};
|
|
47
|
+
export var ContactProfileVerticalTop = {
|
|
48
|
+
args: __assign(__assign({}, baseCardArgs), { orientation: "vertical", mediaPosition: "top" }),
|
|
49
|
+
};
|
|
50
|
+
export var ContactProfileVerticalBottom = {
|
|
51
|
+
args: __assign(__assign({}, baseCardArgs), { orientation: "vertical", mediaPosition: "bottom" }),
|
|
52
|
+
};
|
|
@@ -5,6 +5,7 @@ export interface EditorInterface {
|
|
|
5
5
|
cardText?: string;
|
|
6
6
|
cardBtn?: string;
|
|
7
7
|
cardSubtitle?: string;
|
|
8
|
+
cardOverlay?: string;
|
|
8
9
|
}
|
|
9
10
|
export interface CardDataProps {
|
|
10
11
|
image?: string;
|
|
@@ -19,6 +20,7 @@ export interface CardInterface {
|
|
|
19
20
|
href?: string;
|
|
20
21
|
btnLabel?: string;
|
|
21
22
|
editor?: EditorInterface;
|
|
22
|
-
type?: "postByCategory" | "contactProfile" | "multipleNews" | "singlePost";
|
|
23
|
+
type?: "postByCategory" | "contactProfile" | "multipleNews" | "singlePost" | "photoGallery";
|
|
23
24
|
orientation?: "horizontal" | "vertical";
|
|
25
|
+
altText?: string;
|
|
24
26
|
}
|
|
@@ -28,7 +28,7 @@ export var variant = {
|
|
|
28
28
|
"label-xl": "!text-xl",
|
|
29
29
|
"label-lg": "!text-lg",
|
|
30
30
|
"label-md": "!text-base",
|
|
31
|
-
"label-sm": "!text-sm",
|
|
31
|
+
"label-sm": "!text-sm !font-normal",
|
|
32
32
|
};
|
|
33
33
|
var labelVariants = cva("flex items-center !gap-2 select-none group-data-[disabled=true]:pointer-events-none group-data-[disabled=true]:opacity-50 peer-disabled:cursor-not-allowed peer-disabled:opacity-50 !font-medium !leading-normal m-0", {
|
|
34
34
|
variants: { variant: variant },
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
import { VariantProps } from "class-variance-authority";
|
|
2
|
+
import React from "react";
|
|
3
|
+
import { labelVariants } from "../ui/label";
|
|
4
|
+
export interface LabelProps extends React.HTMLAttributes<HTMLLabelElement> {
|
|
5
|
+
htmlFor?: string;
|
|
6
|
+
className?: string;
|
|
7
|
+
children: React.ReactNode;
|
|
8
|
+
variant?: VariantProps<typeof labelVariants>["variant"];
|
|
9
|
+
}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export {};
|
|
@@ -64,6 +64,6 @@ function Heading(_a) {
|
|
|
64
64
|
if (variant === null || variant === void 0 ? void 0 : variant.startsWith("h")) {
|
|
65
65
|
Tag = variant.split("-")[0];
|
|
66
66
|
}
|
|
67
|
-
return (_jsx(Tag, __assign({ className: cn(headingVariants({ variant: variant, className: className })) }, props, { children: children })));
|
|
67
|
+
return (_jsx(Tag, __assign({ className: cn(headingVariants({ variant: variant, className: className }), "m-0") }, props, { children: children })));
|
|
68
68
|
}
|
|
69
69
|
export { Heading, headingVariants };
|
|
File without changes
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
"use strict";
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
import * as React from "react";
|
|
2
|
+
import * as LabelPrimitive from "@radix-ui/react-label";
|
|
3
|
+
import { type VariantProps } from "class-variance-authority";
|
|
4
|
+
export declare const variant: {
|
|
5
|
+
default: string;
|
|
6
|
+
editorLabel: string;
|
|
7
|
+
};
|
|
8
|
+
declare const labelVariants: (props?: ({
|
|
9
|
+
variant?: "default" | "editorLabel" | null | undefined;
|
|
10
|
+
} & import("class-variance-authority/types").ClassProp) | undefined) => string;
|
|
11
|
+
declare function Label({ className, variant, ...props }: React.ComponentProps<typeof LabelPrimitive.Root> & VariantProps<typeof labelVariants>): import("react/jsx-runtime").JSX.Element;
|
|
12
|
+
export { Label, labelVariants };
|
|
@@ -0,0 +1,41 @@
|
|
|
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 LabelPrimitive from "@radix-ui/react-label";
|
|
25
|
+
import { cva } from "class-variance-authority";
|
|
26
|
+
import { cn } from "../../lib/utils";
|
|
27
|
+
export var variant = {
|
|
28
|
+
default: "!text-base leading-none !font-medium",
|
|
29
|
+
editorLabel: "!text-lg !font-medium leading-[1.5] !mb-1",
|
|
30
|
+
};
|
|
31
|
+
var labelVariants = cva("flex items-center !gap-2 select-none group-data-[disabled=true]:pointer-events-none group-data-[disabled=true]:opacity-50 peer-disabled:cursor-not-allowed peer-disabled:opacity-50", {
|
|
32
|
+
variants: { variant: variant },
|
|
33
|
+
defaultVariants: {
|
|
34
|
+
variant: "default",
|
|
35
|
+
},
|
|
36
|
+
});
|
|
37
|
+
function Label(_a) {
|
|
38
|
+
var className = _a.className, variant = _a.variant, props = __rest(_a, ["className", "variant"]);
|
|
39
|
+
return (_jsx(LabelPrimitive.Root, __assign({ "data-slot": "label", className: cn(labelVariants({ variant: variant, className: className })) }, props)));
|
|
40
|
+
}
|
|
41
|
+
export { Label, labelVariants };
|
package/dist/styles/global.css
CHANGED
|
@@ -8,6 +8,7 @@
|
|
|
8
8
|
--font-mono: ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono",
|
|
9
9
|
"Courier New", monospace;
|
|
10
10
|
--spacing: 0.25rem;
|
|
11
|
+
--container-md: 28rem;
|
|
11
12
|
--container-5xl: 64rem;
|
|
12
13
|
--text-xs: 0.75rem;
|
|
13
14
|
--text-xs--line-height: calc(1 / 0.75);
|
|
@@ -48,6 +49,7 @@
|
|
|
48
49
|
--radius-xl: 0.75rem;
|
|
49
50
|
--radius-2xl: 1rem;
|
|
50
51
|
--radius-3xl: 1.5rem;
|
|
52
|
+
--ease-out: cubic-bezier(0, 0, 0.2, 1);
|
|
51
53
|
--ease-in-out: cubic-bezier(0.4, 0, 0.2, 1);
|
|
52
54
|
--default-transition-duration: 150ms;
|
|
53
55
|
--default-transition-timing-function: cubic-bezier(0.4, 0, 0.2, 1);
|
|
@@ -210,9 +212,15 @@
|
|
|
210
212
|
.relative {
|
|
211
213
|
position: relative;
|
|
212
214
|
}
|
|
215
|
+
.inset-0 {
|
|
216
|
+
inset: calc(var(--spacing) * 0);
|
|
217
|
+
}
|
|
213
218
|
.top-1\/2 {
|
|
214
219
|
top: calc(1/2 * 100%);
|
|
215
220
|
}
|
|
221
|
+
.bottom-4 {
|
|
222
|
+
bottom: calc(var(--spacing) * 4);
|
|
223
|
+
}
|
|
216
224
|
.left-1 {
|
|
217
225
|
left: calc(var(--spacing) * 1);
|
|
218
226
|
}
|
|
@@ -222,6 +230,12 @@
|
|
|
222
230
|
.order-1 {
|
|
223
231
|
order: 1;
|
|
224
232
|
}
|
|
233
|
+
.order-2 {
|
|
234
|
+
order: 2;
|
|
235
|
+
}
|
|
236
|
+
.order-3 {
|
|
237
|
+
order: 3;
|
|
238
|
+
}
|
|
225
239
|
.order-last {
|
|
226
240
|
order: 9999;
|
|
227
241
|
}
|
|
@@ -258,6 +272,9 @@
|
|
|
258
272
|
.\!mx-auto {
|
|
259
273
|
margin-inline: auto !important;
|
|
260
274
|
}
|
|
275
|
+
.mx-auto {
|
|
276
|
+
margin-inline: auto;
|
|
277
|
+
}
|
|
261
278
|
.\!mt-2 {
|
|
262
279
|
margin-top: calc(var(--spacing) * 2) !important;
|
|
263
280
|
}
|
|
@@ -267,9 +284,6 @@
|
|
|
267
284
|
.mt-4 {
|
|
268
285
|
margin-top: calc(var(--spacing) * 4);
|
|
269
286
|
}
|
|
270
|
-
.mt-5 {
|
|
271
|
-
margin-top: calc(var(--spacing) * 5);
|
|
272
|
-
}
|
|
273
287
|
.\!mb-4 {
|
|
274
288
|
margin-bottom: calc(var(--spacing) * 4) !important;
|
|
275
289
|
}
|
|
@@ -288,6 +302,12 @@
|
|
|
288
302
|
-webkit-box-orient: vertical;
|
|
289
303
|
-webkit-line-clamp: 2;
|
|
290
304
|
}
|
|
305
|
+
.line-clamp-4 {
|
|
306
|
+
overflow: hidden;
|
|
307
|
+
display: -webkit-box;
|
|
308
|
+
-webkit-box-orient: vertical;
|
|
309
|
+
-webkit-line-clamp: 4;
|
|
310
|
+
}
|
|
291
311
|
.block {
|
|
292
312
|
display: block;
|
|
293
313
|
}
|
|
@@ -534,18 +554,21 @@
|
|
|
534
554
|
.max-w-5xl {
|
|
535
555
|
max-width: var(--container-5xl);
|
|
536
556
|
}
|
|
557
|
+
.max-w-40 {
|
|
558
|
+
max-width: calc(var(--spacing) * 40);
|
|
559
|
+
}
|
|
537
560
|
.max-w-\[160px\] {
|
|
538
561
|
max-width: 160px;
|
|
539
562
|
}
|
|
540
563
|
.max-w-\[240px\] {
|
|
541
564
|
max-width: 240px;
|
|
542
565
|
}
|
|
543
|
-
.max-w-\[365px\] {
|
|
544
|
-
max-width: 365px;
|
|
545
|
-
}
|
|
546
566
|
.max-w-\[480px\] {
|
|
547
567
|
max-width: 480px;
|
|
548
568
|
}
|
|
569
|
+
.max-w-md {
|
|
570
|
+
max-width: var(--container-md);
|
|
571
|
+
}
|
|
549
572
|
.min-w-0 {
|
|
550
573
|
min-width: calc(var(--spacing) * 0);
|
|
551
574
|
}
|
|
@@ -632,6 +655,9 @@
|
|
|
632
655
|
.\!gap-5 {
|
|
633
656
|
gap: calc(var(--spacing) * 5) !important;
|
|
634
657
|
}
|
|
658
|
+
.\!gap-10 {
|
|
659
|
+
gap: calc(var(--spacing) * 10) !important;
|
|
660
|
+
}
|
|
635
661
|
.gap-1 {
|
|
636
662
|
gap: calc(var(--spacing) * 1);
|
|
637
663
|
}
|
|
@@ -647,9 +673,6 @@
|
|
|
647
673
|
.gap-6 {
|
|
648
674
|
gap: calc(var(--spacing) * 6);
|
|
649
675
|
}
|
|
650
|
-
.gap-10 {
|
|
651
|
-
gap: calc(var(--spacing) * 10);
|
|
652
|
-
}
|
|
653
676
|
.space-y-2 {
|
|
654
677
|
:where(& > :not(:last-child)) {
|
|
655
678
|
--tw-space-y-reverse: 0;
|
|
@@ -777,6 +800,9 @@
|
|
|
777
800
|
.bg-background {
|
|
778
801
|
background-color: var(--background);
|
|
779
802
|
}
|
|
803
|
+
.bg-black\/40 {
|
|
804
|
+
background-color: color-mix(in oklab, #0f0f0f 40%, transparent);
|
|
805
|
+
}
|
|
780
806
|
.bg-blue-50 {
|
|
781
807
|
background-color: #fbfcfe;
|
|
782
808
|
}
|
|
@@ -984,6 +1010,21 @@
|
|
|
984
1010
|
.bg-yellow-950 {
|
|
985
1011
|
background-color: #473800;
|
|
986
1012
|
}
|
|
1013
|
+
.bg-linear-to-t {
|
|
1014
|
+
--tw-gradient-position: to top;
|
|
1015
|
+
@supports (background-image: linear-gradient(in lab, red, red)) {
|
|
1016
|
+
--tw-gradient-position: to top in oklab;
|
|
1017
|
+
}
|
|
1018
|
+
background-image: linear-gradient(var(--tw-gradient-stops));
|
|
1019
|
+
}
|
|
1020
|
+
.from-black {
|
|
1021
|
+
--tw-gradient-from: #0f0f0f;
|
|
1022
|
+
--tw-gradient-stops: var(--tw-gradient-via-stops, var(--tw-gradient-position), var(--tw-gradient-from) var(--tw-gradient-from-position), var(--tw-gradient-to) var(--tw-gradient-to-position));
|
|
1023
|
+
}
|
|
1024
|
+
.to-transparent {
|
|
1025
|
+
--tw-gradient-to: transparent;
|
|
1026
|
+
--tw-gradient-stops: var(--tw-gradient-via-stops, var(--tw-gradient-position), var(--tw-gradient-from) var(--tw-gradient-from-position), var(--tw-gradient-to) var(--tw-gradient-to-position));
|
|
1027
|
+
}
|
|
987
1028
|
.\!fill-primary {
|
|
988
1029
|
fill: var(--primary) !important;
|
|
989
1030
|
}
|
|
@@ -1448,6 +1489,9 @@
|
|
|
1448
1489
|
.capitalize {
|
|
1449
1490
|
text-transform: capitalize;
|
|
1450
1491
|
}
|
|
1492
|
+
.uppercase {
|
|
1493
|
+
text-transform: uppercase;
|
|
1494
|
+
}
|
|
1451
1495
|
.no-underline {
|
|
1452
1496
|
text-decoration-line: none;
|
|
1453
1497
|
}
|
|
@@ -1512,6 +1556,11 @@
|
|
|
1512
1556
|
transition-timing-function: var(--tw-ease, var(--default-transition-timing-function));
|
|
1513
1557
|
transition-duration: var(--tw-duration, var(--default-transition-duration));
|
|
1514
1558
|
}
|
|
1559
|
+
.transition-opacity {
|
|
1560
|
+
transition-property: opacity;
|
|
1561
|
+
transition-timing-function: var(--tw-ease, var(--default-transition-timing-function));
|
|
1562
|
+
transition-duration: var(--tw-duration, var(--default-transition-duration));
|
|
1563
|
+
}
|
|
1515
1564
|
.transition-shadow {
|
|
1516
1565
|
transition-property: box-shadow;
|
|
1517
1566
|
transition-timing-function: var(--tw-ease, var(--default-transition-timing-function));
|
|
@@ -1533,10 +1582,18 @@
|
|
|
1533
1582
|
--tw-duration: 200ms;
|
|
1534
1583
|
transition-duration: 200ms;
|
|
1535
1584
|
}
|
|
1585
|
+
.duration-300 {
|
|
1586
|
+
--tw-duration: 300ms;
|
|
1587
|
+
transition-duration: 300ms;
|
|
1588
|
+
}
|
|
1536
1589
|
.ease-in-out {
|
|
1537
1590
|
--tw-ease: var(--ease-in-out);
|
|
1538
1591
|
transition-timing-function: var(--ease-in-out);
|
|
1539
1592
|
}
|
|
1593
|
+
.ease-out {
|
|
1594
|
+
--tw-ease: var(--ease-out);
|
|
1595
|
+
transition-timing-function: var(--ease-out);
|
|
1596
|
+
}
|
|
1540
1597
|
.\!zoom-in-95 {
|
|
1541
1598
|
--tw-enter-scale: calc(95*1%) !important;
|
|
1542
1599
|
--tw-enter-scale: .95 !important;
|
|
@@ -1556,6 +1613,13 @@
|
|
|
1556
1613
|
.running {
|
|
1557
1614
|
animation-play-state: running;
|
|
1558
1615
|
}
|
|
1616
|
+
.group-hover\:\!opacity-100 {
|
|
1617
|
+
&:is(:where(.group):hover *) {
|
|
1618
|
+
@media (hover: hover) {
|
|
1619
|
+
opacity: 100% !important;
|
|
1620
|
+
}
|
|
1621
|
+
}
|
|
1622
|
+
}
|
|
1559
1623
|
.group-data-\[disabled\=true\]\:pointer-events-none {
|
|
1560
1624
|
&:is(:where(.group)[data-disabled="true"] *) {
|
|
1561
1625
|
pointer-events: none;
|
|
@@ -2996,11 +3060,6 @@
|
|
|
2996
3060
|
margin-top: 7px;
|
|
2997
3061
|
}
|
|
2998
3062
|
}
|
|
2999
|
-
.max-sm\:w-full {
|
|
3000
|
-
@media (width < 40rem) {
|
|
3001
|
-
width: 100%;
|
|
3002
|
-
}
|
|
3003
|
-
}
|
|
3004
3063
|
.sm\:col-span-2 {
|
|
3005
3064
|
@media (width >= 40rem) {
|
|
3006
3065
|
grid-column: span 2 / span 2;
|
|
@@ -3021,6 +3080,16 @@
|
|
|
3021
3080
|
grid-template-columns: repeat(4, minmax(0, 1fr));
|
|
3022
3081
|
}
|
|
3023
3082
|
}
|
|
3083
|
+
.sm\:grid-cols-\[1fr_auto\] {
|
|
3084
|
+
@media (width >= 40rem) {
|
|
3085
|
+
grid-template-columns: 1fr auto;
|
|
3086
|
+
}
|
|
3087
|
+
}
|
|
3088
|
+
.sm\:grid-cols-\[auto_1fr\] {
|
|
3089
|
+
@media (width >= 40rem) {
|
|
3090
|
+
grid-template-columns: auto 1fr;
|
|
3091
|
+
}
|
|
3092
|
+
}
|
|
3024
3093
|
.sm\:\!text-left {
|
|
3025
3094
|
@media (width >= 40rem) {
|
|
3026
3095
|
text-align: left !important;
|
|
@@ -3195,7 +3264,7 @@
|
|
|
3195
3264
|
--card-foreground: oklch(0.145 0 0);
|
|
3196
3265
|
--popover: oklch(1 0 0);
|
|
3197
3266
|
--popover-foreground: oklch(0.145 0 0);
|
|
3198
|
-
--primary:
|
|
3267
|
+
--primary: oklch(0.205 0 0);
|
|
3199
3268
|
--primary-foreground: oklch(0.985 0 0);
|
|
3200
3269
|
--secondary: oklch(0.97 0 0);
|
|
3201
3270
|
--secondary-foreground: oklch(0.205 0 0);
|
|
@@ -3251,6 +3320,48 @@
|
|
|
3251
3320
|
inherits: false;
|
|
3252
3321
|
initial-value: solid;
|
|
3253
3322
|
}
|
|
3323
|
+
@property --tw-gradient-position {
|
|
3324
|
+
syntax: "*";
|
|
3325
|
+
inherits: false;
|
|
3326
|
+
}
|
|
3327
|
+
@property --tw-gradient-from {
|
|
3328
|
+
syntax: "<color>";
|
|
3329
|
+
inherits: false;
|
|
3330
|
+
initial-value: #0000;
|
|
3331
|
+
}
|
|
3332
|
+
@property --tw-gradient-via {
|
|
3333
|
+
syntax: "<color>";
|
|
3334
|
+
inherits: false;
|
|
3335
|
+
initial-value: #0000;
|
|
3336
|
+
}
|
|
3337
|
+
@property --tw-gradient-to {
|
|
3338
|
+
syntax: "<color>";
|
|
3339
|
+
inherits: false;
|
|
3340
|
+
initial-value: #0000;
|
|
3341
|
+
}
|
|
3342
|
+
@property --tw-gradient-stops {
|
|
3343
|
+
syntax: "*";
|
|
3344
|
+
inherits: false;
|
|
3345
|
+
}
|
|
3346
|
+
@property --tw-gradient-via-stops {
|
|
3347
|
+
syntax: "*";
|
|
3348
|
+
inherits: false;
|
|
3349
|
+
}
|
|
3350
|
+
@property --tw-gradient-from-position {
|
|
3351
|
+
syntax: "<length-percentage>";
|
|
3352
|
+
inherits: false;
|
|
3353
|
+
initial-value: 0%;
|
|
3354
|
+
}
|
|
3355
|
+
@property --tw-gradient-via-position {
|
|
3356
|
+
syntax: "<length-percentage>";
|
|
3357
|
+
inherits: false;
|
|
3358
|
+
initial-value: 50%;
|
|
3359
|
+
}
|
|
3360
|
+
@property --tw-gradient-to-position {
|
|
3361
|
+
syntax: "<length-percentage>";
|
|
3362
|
+
inherits: false;
|
|
3363
|
+
initial-value: 100%;
|
|
3364
|
+
}
|
|
3254
3365
|
@property --tw-leading {
|
|
3255
3366
|
syntax: "*";
|
|
3256
3367
|
inherits: false;
|
|
@@ -3422,6 +3533,15 @@
|
|
|
3422
3533
|
--tw-space-y-reverse: 0;
|
|
3423
3534
|
--tw-space-x-reverse: 0;
|
|
3424
3535
|
--tw-border-style: solid;
|
|
3536
|
+
--tw-gradient-position: initial;
|
|
3537
|
+
--tw-gradient-from: #0000;
|
|
3538
|
+
--tw-gradient-via: #0000;
|
|
3539
|
+
--tw-gradient-to: #0000;
|
|
3540
|
+
--tw-gradient-stops: initial;
|
|
3541
|
+
--tw-gradient-via-stops: initial;
|
|
3542
|
+
--tw-gradient-from-position: 0%;
|
|
3543
|
+
--tw-gradient-via-position: 50%;
|
|
3544
|
+
--tw-gradient-to-position: 100%;
|
|
3425
3545
|
--tw-leading: initial;
|
|
3426
3546
|
--tw-font-weight: initial;
|
|
3427
3547
|
--tw-shadow: 0 0 #0000;
|