singularity-components 0.1.127 → 0.1.129
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/components/primitives/index.js.map +1 -1
- package/dist/components/primitives/ui-image.js +2 -8
- package/dist/components/primitives/ui-image.js.map +1 -1
- package/dist/components/providers/index.js.map +1 -1
- package/dist/components/units/cards/blog-card.js +2 -1
- package/dist/components/units/cards/blog-card.js.map +1 -1
- package/dist/components/units/index.js.map +1 -1
- package/dist/index.js.map +1 -1
- package/package.json +26 -2
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../src/components/primitives/index.ts"],"sourcesContent":["export * from \"./accordion/accordion\";\nexport * from \"./alert/alert\";\nexport * from \"./badge/badge\";\nexport * from \"./badge/badges\";\nexport * from \"./button/button\";\nexport * from \"./icon/icon\";\nexport * from \"./input/input\";\nexport * from \"./layout/layout\";\nexport * from \"./separator/separator\";\nexport * from \"./skeleton/skeleton\";\nexport * from \"./spinner/spinner\";\nexport * from \"./stack/stack\";\nexport * from \"./table/table\";\nexport * from \"./text/text-div\";\nexport * from \"./text/text-heading\";\nexport * from \"./text/text-paragraph\";\nexport * from \"./text/text-span\";\nexport * from \"./text/text-time\";\nexport * from \"./ui-image\";\n"],"mappings":"AAAA,cAAc;AACd,cAAc;AACd,cAAc;AACd,cAAc;AACd,cAAc;AACd,cAAc;AACd,cAAc;AACd,cAAc;AACd,cAAc;AACd,cAAc;AACd,cAAc;AACd,cAAc;AACd,cAAc;AACd,cAAc;AACd,cAAc;AACd,cAAc;AACd,cAAc;AACd,cAAc;AACd,cAAc;","names":[]}
|
|
1
|
+
{"version":3,"sources":["../../../src/components/primitives/index.ts"],"sourcesContent":["export * from \"./accordion/accordion\";\r\nexport * from \"./alert/alert\";\r\nexport * from \"./badge/badge\";\r\nexport * from \"./badge/badges\";\r\nexport * from \"./button/button\";\r\nexport * from \"./icon/icon\";\r\nexport * from \"./input/input\";\r\nexport * from \"./layout/layout\";\r\nexport * from \"./separator/separator\";\r\nexport * from \"./skeleton/skeleton\";\r\nexport * from \"./spinner/spinner\";\r\nexport * from \"./stack/stack\";\r\nexport * from \"./table/table\";\r\nexport * from \"./text/text-div\";\r\nexport * from \"./text/text-heading\";\r\nexport * from \"./text/text-paragraph\";\r\nexport * from \"./text/text-span\";\r\nexport * from \"./text/text-time\";\r\nexport * from \"./ui-image\";\r\n"],"mappings":"AAAA,cAAc;AACd,cAAc;AACd,cAAc;AACd,cAAc;AACd,cAAc;AACd,cAAc;AACd,cAAc;AACd,cAAc;AACd,cAAc;AACd,cAAc;AACd,cAAc;AACd,cAAc;AACd,cAAc;AACd,cAAc;AACd,cAAc;AACd,cAAc;AACd,cAAc;AACd,cAAc;AACd,cAAc;","names":[]}
|
|
@@ -5,18 +5,12 @@ import { useImage } from "../providers/ImageContext";
|
|
|
5
5
|
const UiImage = (props) => {
|
|
6
6
|
const [isClient, setIsClient] = useState(false);
|
|
7
7
|
const ImageComponent = useImage();
|
|
8
|
+
console.log("UiImage", props);
|
|
8
9
|
useEffect(() => {
|
|
9
10
|
setIsClient(true);
|
|
10
11
|
}, []);
|
|
11
12
|
if (!isClient) {
|
|
12
|
-
return /* @__PURE__ */ jsx(
|
|
13
|
-
"img",
|
|
14
|
-
{
|
|
15
|
-
src: props.src,
|
|
16
|
-
alt: props.alt,
|
|
17
|
-
className: props.className
|
|
18
|
-
}
|
|
19
|
-
);
|
|
13
|
+
return /* @__PURE__ */ jsx("img", { src: props.src, alt: props.alt, className: props.className });
|
|
20
14
|
}
|
|
21
15
|
return /* @__PURE__ */ jsx(ImageComponent, { ...props });
|
|
22
16
|
};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../src/components/primitives/ui-image.tsx"],"sourcesContent":["\"use client\";\r\nimport React, { useEffect, useState } from \"react\";\r\nimport { useImage, type BaseImageProps } from \"../providers/ImageContext\";\r\n\r\nexport const UiImage: React.FC<BaseImageProps> = (props) => {\r\n const [isClient, setIsClient] = useState(false);\r\n const ImageComponent = useImage();\r\n\r\n useEffect(() => {\r\n setIsClient(true);\r\n }, []);\r\n\r\n if (!isClient) {\r\n return
|
|
1
|
+
{"version":3,"sources":["../../../src/components/primitives/ui-image.tsx"],"sourcesContent":["\"use client\";\r\nimport React, { useEffect, useState } from \"react\";\r\nimport { useImage, type BaseImageProps } from \"../providers/ImageContext\";\r\n\r\nexport const UiImage: React.FC<BaseImageProps> = (props) => {\r\n const [isClient, setIsClient] = useState(false);\r\n const ImageComponent = useImage();\r\n\r\n console.log(\"UiImage\", props);\r\n\r\n useEffect(() => {\r\n setIsClient(true);\r\n }, []);\r\n\r\n if (!isClient) {\r\n return <img src={props.src} alt={props.alt} className={props.className} />;\r\n }\r\n\r\n return <ImageComponent {...props} />;\r\n};\r\n"],"mappings":";AAeW;AAdX,OAAO,SAAS,WAAW,gBAAgB;AAC3C,SAAS,gBAAqC;AAEvC,MAAM,UAAoC,CAAC,UAAU;AAC1D,QAAM,CAAC,UAAU,WAAW,IAAI,SAAS,KAAK;AAC9C,QAAM,iBAAiB,SAAS;AAEhC,UAAQ,IAAI,WAAW,KAAK;AAE5B,YAAU,MAAM;AACd,gBAAY,IAAI;AAAA,EAClB,GAAG,CAAC,CAAC;AAEL,MAAI,CAAC,UAAU;AACb,WAAO,oBAAC,SAAI,KAAK,MAAM,KAAK,KAAK,MAAM,KAAK,WAAW,MAAM,WAAW;AAAA,EAC1E;AAEA,SAAO,oBAAC,kBAAgB,GAAG,OAAO;AACpC;","names":[]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../src/components/providers/index.ts"],"sourcesContent":["export * from \"./ImageContext\";\n"],"mappings":"AAAA,cAAc;","names":[]}
|
|
1
|
+
{"version":3,"sources":["../../../src/components/providers/index.ts"],"sourcesContent":["export * from \"./ImageContext\";\r\n"],"mappings":"AAAA,cAAc;","names":[]}
|
|
@@ -22,7 +22,8 @@ function BlogCard({ post }) {
|
|
|
22
22
|
{
|
|
23
23
|
src: post.image,
|
|
24
24
|
alt: post.title,
|
|
25
|
-
className: "sg:w-full sg:h-full sg:object-cover sg:transition-transform sg:duration-300 sg:group-hover:scale-110"
|
|
25
|
+
className: "sg:w-full sg:h-full sg:object-cover sg:transition-transform sg:duration-300 sg:group-hover:scale-110",
|
|
26
|
+
fill: true
|
|
26
27
|
}
|
|
27
28
|
),
|
|
28
29
|
/* @__PURE__ */ jsx(
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../../src/components/units/cards/blog-card.tsx"],"sourcesContent":["import { Clock, User } from \"lucide-react\";\r\nimport { TextHeading } from \"../../primitives/text/text-heading\";\r\nimport { Card, CardContent } from \"./card\";\r\nimport { Badge } from \"../../primitives/badge/badge\";\r\nimport { TextSpan } from \"../../primitives/text/text-span\";\r\nimport { Button } from \"../../primitives/button/button\";\r\nimport { TextParagraph } from \"../../primitives/text/text-paragraph\";\r\nimport { Icon } from \"../../primitives/icon/icon\";\r\nimport { formatDate } from \"../../../lib\";\r\nimport { UiImage } from \"../../primitives/ui-image\";\r\n\r\nexport interface BlogPost {\r\n id: number;\r\n title: string;\r\n excerpt: string;\r\n author: string;\r\n date: Date;\r\n readTime: string;\r\n category: string;\r\n image: string;\r\n}\r\n\r\ninterface BlogCardProps {\r\n post: BlogPost;\r\n}\r\n\r\nexport default function BlogCard({ post }: BlogCardProps) {\r\n return (\r\n <Card\r\n key={post.id}\r\n className=\"sg:group sg:overflow-hidden sg:hover:shadow-lg sg:transition-all sg:duration-300 sg:cursor-pointer sg:flex sg:flex-col\"\r\n // onClick={() => onNavigateToPost(post.id)}\r\n onClick={() => console.log(\"OnClick blog card\", post.id)}\r\n >\r\n <div className=\"sg:relative sg:h-48 sg:overflow-hidden\">\r\n <UiImage\r\n src={post.image}\r\n alt={post.title}\r\n className=\"sg:w-full sg:h-full sg:object-cover sg:transition-transform sg:duration-300 sg:group-hover:scale-110\"\r\n />\r\n <div\r\n className={`sg:absolute sg:inset-0 sg:opacity-20 sg:group-hover:opacity-30 sg:transition-opacity`}\r\n />\r\n <Badge className=\"sg:absolute sg:top-4 sg:left-4\">\r\n {post.category}\r\n </Badge>\r\n </div>\r\n\r\n {/* Content */}\r\n <CardContent className=\"sg:p-6 sg:flex-1 sg:flex sg:flex-col\">\r\n <TextHeading\r\n variant=\"h3\"\r\n className=\"sg:mb-2 sg:group-hover:text-[hsl(var(--sg-primary))] sg:transition-colors\"\r\n >\r\n {post.title}\r\n </TextHeading>\r\n <TextParagraph foreground=\"muted\" className=\"sg:mb-4 sg:flex-1\">\r\n {post.excerpt}\r\n </TextParagraph>\r\n\r\n {/* Meta */}\r\n <div className=\"sg:flex sg:items-center sg:gap-4 sg:mb-4\">\r\n <div className=\"sg:flex sg:items-center sg:gap-1\">\r\n <User className=\"h-4 w-4\" />\r\n <TextSpan size=\"sm\" foreground=\"muted\">\r\n {post.author}\r\n </TextSpan>\r\n </div>\r\n <div className=\"sg:flex sg:items-center sg:gap-1\">\r\n <Clock className=\"sg:h-4 sg:w-4\" />\r\n <TextSpan size=\"sm\" foreground=\"muted\">\r\n {post.readTime}\r\n </TextSpan>\r\n </div>\r\n </div>\r\n\r\n <div className=\"sg:flex sg:items-center sg:justify-between\">\r\n <TextSpan size=\"sm\" foreground=\"muted\">\r\n {formatDate(post.date)}\r\n </TextSpan>\r\n <Button\r\n variant=\"ghost\"\r\n size=\"sm\"\r\n className=\"sg:group-hover:text-[hsl(var(--sg-primary))]\"\r\n >\r\n Read More\r\n <Icon icon=\"ArrowRight\" className=\"sg:ml-2 sg:h-4 sg:w-4\" />\r\n </Button>\r\n </div>\r\n </CardContent>\r\n </Card>\r\n );\r\n}\r\n
|
|
1
|
+
{"version":3,"sources":["../../../../src/components/units/cards/blog-card.tsx"],"sourcesContent":["import { Clock, User } from \"lucide-react\";\r\nimport { TextHeading } from \"../../primitives/text/text-heading\";\r\nimport { Card, CardContent } from \"./card\";\r\nimport { Badge } from \"../../primitives/badge/badge\";\r\nimport { TextSpan } from \"../../primitives/text/text-span\";\r\nimport { Button } from \"../../primitives/button/button\";\r\nimport { TextParagraph } from \"../../primitives/text/text-paragraph\";\r\nimport { Icon } from \"../../primitives/icon/icon\";\r\nimport { formatDate } from \"../../../lib\";\r\nimport { UiImage } from \"../../primitives/ui-image\";\r\n\r\nexport interface BlogPost {\r\n id: number;\r\n title: string;\r\n excerpt: string;\r\n author: string;\r\n date: Date;\r\n readTime: string;\r\n category: string;\r\n image: string;\r\n}\r\n\r\ninterface BlogCardProps {\r\n post: BlogPost;\r\n}\r\n\r\nexport default function BlogCard({ post }: BlogCardProps) {\r\n return (\r\n <Card\r\n key={post.id}\r\n className=\"sg:group sg:overflow-hidden sg:hover:shadow-lg sg:transition-all sg:duration-300 sg:cursor-pointer sg:flex sg:flex-col\"\r\n // onClick={() => onNavigateToPost(post.id)}\r\n onClick={() => console.log(\"OnClick blog card\", post.id)}\r\n >\r\n <div className=\"sg:relative sg:h-48 sg:overflow-hidden\">\r\n <UiImage\r\n src={post.image}\r\n alt={post.title}\r\n className=\"sg:w-full sg:h-full sg:object-cover sg:transition-transform sg:duration-300 sg:group-hover:scale-110\"\r\n fill\r\n />\r\n <div\r\n className={`sg:absolute sg:inset-0 sg:opacity-20 sg:group-hover:opacity-30 sg:transition-opacity`}\r\n />\r\n <Badge className=\"sg:absolute sg:top-4 sg:left-4\">\r\n {post.category}\r\n </Badge>\r\n </div>\r\n\r\n {/* Content */}\r\n <CardContent className=\"sg:p-6 sg:flex-1 sg:flex sg:flex-col\">\r\n <TextHeading\r\n variant=\"h3\"\r\n className=\"sg:mb-2 sg:group-hover:text-[hsl(var(--sg-primary))] sg:transition-colors\"\r\n >\r\n {post.title}\r\n </TextHeading>\r\n <TextParagraph foreground=\"muted\" className=\"sg:mb-4 sg:flex-1\">\r\n {post.excerpt}\r\n </TextParagraph>\r\n\r\n {/* Meta */}\r\n <div className=\"sg:flex sg:items-center sg:gap-4 sg:mb-4\">\r\n <div className=\"sg:flex sg:items-center sg:gap-1\">\r\n <User className=\"h-4 w-4\" />\r\n <TextSpan size=\"sm\" foreground=\"muted\">\r\n {post.author}\r\n </TextSpan>\r\n </div>\r\n <div className=\"sg:flex sg:items-center sg:gap-1\">\r\n <Clock className=\"sg:h-4 sg:w-4\" />\r\n <TextSpan size=\"sm\" foreground=\"muted\">\r\n {post.readTime}\r\n </TextSpan>\r\n </div>\r\n </div>\r\n\r\n <div className=\"sg:flex sg:items-center sg:justify-between\">\r\n <TextSpan size=\"sm\" foreground=\"muted\">\r\n {formatDate(post.date)}\r\n </TextSpan>\r\n <Button\r\n variant=\"ghost\"\r\n size=\"sm\"\r\n className=\"sg:group-hover:text-[hsl(var(--sg-primary))]\"\r\n >\r\n Read More\r\n <Icon icon=\"ArrowRight\" className=\"sg:ml-2 sg:h-4 sg:w-4\" />\r\n </Button>\r\n </div>\r\n </CardContent>\r\n </Card>\r\n );\r\n}\r\n"],"mappings":"AAkCM,SACE,KADF;AAlCN,SAAS,OAAO,YAAY;AAC5B,SAAS,mBAAmB;AAC5B,SAAS,MAAM,mBAAmB;AAClC,SAAS,aAAa;AACtB,SAAS,gBAAgB;AACzB,SAAS,cAAc;AACvB,SAAS,qBAAqB;AAC9B,SAAS,YAAY;AACrB,SAAS,kBAAkB;AAC3B,SAAS,eAAe;AAiBT,SAAR,SAA0B,EAAE,KAAK,GAAkB;AACxD,SACE;AAAA,IAAC;AAAA;AAAA,MAEC,WAAU;AAAA,MAEV,SAAS,MAAM,QAAQ,IAAI,qBAAqB,KAAK,EAAE;AAAA,MAEvD;AAAA,6BAAC,SAAI,WAAU,0CACb;AAAA;AAAA,YAAC;AAAA;AAAA,cACC,KAAK,KAAK;AAAA,cACV,KAAK,KAAK;AAAA,cACV,WAAU;AAAA,cACV,MAAI;AAAA;AAAA,UACN;AAAA,UACA;AAAA,YAAC;AAAA;AAAA,cACC,WAAW;AAAA;AAAA,UACb;AAAA,UACA,oBAAC,SAAM,WAAU,kCACd,eAAK,UACR;AAAA,WACF;AAAA,QAGA,qBAAC,eAAY,WAAU,wCACrB;AAAA;AAAA,YAAC;AAAA;AAAA,cACC,SAAQ;AAAA,cACR,WAAU;AAAA,cAET,eAAK;AAAA;AAAA,UACR;AAAA,UACA,oBAAC,iBAAc,YAAW,SAAQ,WAAU,qBACzC,eAAK,SACR;AAAA,UAGA,qBAAC,SAAI,WAAU,4CACb;AAAA,iCAAC,SAAI,WAAU,oCACb;AAAA,kCAAC,QAAK,WAAU,WAAU;AAAA,cAC1B,oBAAC,YAAS,MAAK,MAAK,YAAW,SAC5B,eAAK,QACR;AAAA,eACF;AAAA,YACA,qBAAC,SAAI,WAAU,oCACb;AAAA,kCAAC,SAAM,WAAU,iBAAgB;AAAA,cACjC,oBAAC,YAAS,MAAK,MAAK,YAAW,SAC5B,eAAK,UACR;AAAA,eACF;AAAA,aACF;AAAA,UAEA,qBAAC,SAAI,WAAU,8CACb;AAAA,gCAAC,YAAS,MAAK,MAAK,YAAW,SAC5B,qBAAW,KAAK,IAAI,GACvB;AAAA,YACA;AAAA,cAAC;AAAA;AAAA,gBACC,SAAQ;AAAA,gBACR,MAAK;AAAA,gBACL,WAAU;AAAA,gBACX;AAAA;AAAA,kBAEC,oBAAC,QAAK,MAAK,cAAa,WAAU,yBAAwB;AAAA;AAAA;AAAA,YAC5D;AAAA,aACF;AAAA,WACF;AAAA;AAAA;AAAA,IA7DK,KAAK;AAAA,EA8DZ;AAEJ;","names":[]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../src/components/units/index.ts"],"sourcesContent":["export * from \"./cards/blog-card\";\nexport * from \"./cards/card\";\nexport * from \"./cards/cards\";\n"],"mappings":"AAAA,cAAc;AACd,cAAc;AACd,cAAc;","names":[]}
|
|
1
|
+
{"version":3,"sources":["../../../src/components/units/index.ts"],"sourcesContent":["export * from \"./cards/blog-card\";\r\nexport * from \"./cards/card\";\r\nexport * from \"./cards/cards\";\r\n"],"mappings":"AAAA,cAAc;AACd,cAAc;AACd,cAAc;","names":[]}
|
package/dist/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/index.ts"],"sourcesContent":["export * from \"./components\";\n"],"mappings":"AAAA,cAAc;","names":[]}
|
|
1
|
+
{"version":3,"sources":["../src/index.ts"],"sourcesContent":["export * from \"./components\";\r\n"],"mappings":"AAAA,cAAc;","names":[]}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "singularity-components",
|
|
3
|
-
"version": "0.1.
|
|
3
|
+
"version": "0.1.129",
|
|
4
4
|
"type": "module",
|
|
5
5
|
"files": [
|
|
6
6
|
"dist"
|
|
@@ -16,7 +16,31 @@
|
|
|
16
16
|
"./*": {
|
|
17
17
|
"types": "./dist/*.d.ts",
|
|
18
18
|
"import": "./dist/*.js"
|
|
19
|
-
}
|
|
19
|
+
},
|
|
20
|
+
"./components/primitives/accordion/accordion": "./dist/components/primitives/accordion/accordion.js",
|
|
21
|
+
"./components/primitives/alert/alert": "./dist/components/primitives/alert/alert.js",
|
|
22
|
+
"./components/primitives/badge/badge": "./dist/components/primitives/badge/badge.js",
|
|
23
|
+
"./components/primitives/badge/badges": "./dist/components/primitives/badge/badges.js",
|
|
24
|
+
"./components/primitives/button/button": "./dist/components/primitives/button/button.js",
|
|
25
|
+
"./components/primitives/icon/icon": "./dist/components/primitives/icon/icon.js",
|
|
26
|
+
"./components/primitives/input/input": "./dist/components/primitives/input/input.js",
|
|
27
|
+
"./components/primitives/layout/layout": "./dist/components/primitives/layout/layout.js",
|
|
28
|
+
"./components/primitives/separator/separator": "./dist/components/primitives/separator/separator.js",
|
|
29
|
+
"./components/primitives/skeleton/skeleton": "./dist/components/primitives/skeleton/skeleton.js",
|
|
30
|
+
"./components/primitives/spinner/spinner": "./dist/components/primitives/spinner/spinner.js",
|
|
31
|
+
"./components/primitives/stack/stack": "./dist/components/primitives/stack/stack.js",
|
|
32
|
+
"./components/primitives/table/table": "./dist/components/primitives/table/table.js",
|
|
33
|
+
"./components/primitives/text/text-div": "./dist/components/primitives/text/text-div.js",
|
|
34
|
+
"./components/primitives/text/text-heading": "./dist/components/primitives/text/text-heading.js",
|
|
35
|
+
"./components/primitives/text/text-paragraph": "./dist/components/primitives/text/text-paragraph.js",
|
|
36
|
+
"./components/primitives/text/text-span": "./dist/components/primitives/text/text-span.js",
|
|
37
|
+
"./components/primitives/text/text-time": "./dist/components/primitives/text/text-time.js",
|
|
38
|
+
"./components/primitives/ui-image": "./dist/components/primitives/ui-image.js",
|
|
39
|
+
"./components/units/cards/blog-card": "./dist/components/units/cards/blog-card.js",
|
|
40
|
+
"./components/units/cards/card": "./dist/components/units/cards/card.js",
|
|
41
|
+
"./components/units/cards/cards": "./dist/components/units/cards/cards.js",
|
|
42
|
+
"./components/providers/ImageContext": "./dist/components/providers/ImageContext.js",
|
|
43
|
+
"./utils": "./dist/utils.js"
|
|
20
44
|
},
|
|
21
45
|
"scripts": {
|
|
22
46
|
"build": "tsup",
|