singularity-components 0.1.129 → 0.1.131
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/index.d.ts +4 -1
- package/dist/components/primitives/button/button.js +33 -9
- package/dist/components/primitives/button/button.js.map +1 -1
- package/dist/components/primitives/index.d.ts +2 -0
- package/dist/components/primitives/index.js +1 -0
- package/dist/components/primitives/index.js.map +1 -1
- package/dist/components/primitives/layout/layout.js +1 -1
- package/dist/components/primitives/layout/layout.js.map +1 -1
- package/dist/components/primitives/separator/separator.js +14 -24
- package/dist/components/primitives/separator/separator.js.map +1 -1
- package/dist/components/primitives/ui-image.js +12 -3
- package/dist/components/primitives/ui-image.js.map +1 -1
- package/dist/components/primitives/ui-link.d.ts +6 -0
- package/dist/components/primitives/ui-link.js +22 -0
- package/dist/components/primitives/ui-link.js.map +1 -0
- package/dist/components/providers/ImageContext.d.ts +2 -1
- package/dist/components/providers/ImageContext.js +1 -0
- package/dist/components/providers/ImageContext.js.map +1 -1
- package/dist/components/providers/LinkContext.d.ts +18 -0
- package/dist/components/providers/LinkContext.js +27 -0
- package/dist/components/providers/LinkContext.js.map +1 -0
- package/dist/components/providers/SingularityContext.d.ts +12 -0
- package/dist/components/providers/SingularityContext.js +22 -0
- package/dist/components/providers/SingularityContext.js.map +1 -0
- package/dist/components/providers/index.d.ts +3 -1
- package/dist/components/providers/index.js +2 -0
- package/dist/components/providers/index.js.map +1 -1
- package/dist/components/units/cards/blog-card.js +9 -11
- package/dist/components/units/cards/blog-card.js.map +1 -1
- package/dist/index.d.ts +4 -1
- package/dist/main.css +28 -6
- package/dist/main.css.map +1 -1
- package/package.json +105 -102
- package/dist/main.js +0 -3
- package/dist/main.js.map +0 -1
|
@@ -17,7 +17,10 @@ export { TextParagraph } from './primitives/text/text-paragraph.js';
|
|
|
17
17
|
export { TextSpan } from './primitives/text/text-span.js';
|
|
18
18
|
export { TextTime } from './primitives/text/text-time.js';
|
|
19
19
|
export { UiImage } from './primitives/ui-image.js';
|
|
20
|
-
export {
|
|
20
|
+
export { UiLink } from './primitives/ui-link.js';
|
|
21
|
+
export { BaseImageProps, DefaultImage, ImageComponentType, ImageProvider, useImage } from './providers/ImageContext.js';
|
|
22
|
+
export { BaseLinkProps, DefaultLink, LinkComponentType, LinkProvider, useLink } from './providers/LinkContext.js';
|
|
23
|
+
export { SingularityProvider } from './providers/SingularityContext.js';
|
|
21
24
|
export { BlogPost } from './units/cards/blog-card.js';
|
|
22
25
|
export { Card, CardContent, CardDescription, CardFooter, CardHeader, CardImage, CardTitle } from './units/cards/card.js';
|
|
23
26
|
export { Cards, CardsProps, getGridColsClass } from './units/cards/cards.js';
|
|
@@ -47,24 +47,48 @@ function Button({
|
|
|
47
47
|
const iconAnimateCss = "sg:animate-spin";
|
|
48
48
|
const LucideIconStart = iconStart && icons[iconStart];
|
|
49
49
|
const LucideIconEnd = iconEnd && icons[iconEnd];
|
|
50
|
-
|
|
50
|
+
if (asChild) {
|
|
51
|
+
const child = React.Children.only(children);
|
|
52
|
+
return /* @__PURE__ */ jsx(
|
|
53
|
+
Comp,
|
|
54
|
+
{
|
|
55
|
+
"data-slot": "button",
|
|
56
|
+
className: cn(buttonVariantsProps({ variant, size, className })),
|
|
57
|
+
...props,
|
|
58
|
+
children: React.cloneElement(
|
|
59
|
+
child,
|
|
60
|
+
{},
|
|
61
|
+
/* @__PURE__ */ jsxs(Fragment, { children: [
|
|
62
|
+
LucideIconStart && /* @__PURE__ */ jsx(
|
|
63
|
+
LucideIconStart,
|
|
64
|
+
{
|
|
65
|
+
className: clsx(iconStartAnimate && iconAnimateCss)
|
|
66
|
+
}
|
|
67
|
+
),
|
|
68
|
+
child.props.children,
|
|
69
|
+
LucideIconEnd && /* @__PURE__ */ jsx(
|
|
70
|
+
LucideIconEnd,
|
|
71
|
+
{
|
|
72
|
+
className: clsx(iconEndAnimate && iconAnimateCss)
|
|
73
|
+
}
|
|
74
|
+
)
|
|
75
|
+
] })
|
|
76
|
+
)
|
|
77
|
+
}
|
|
78
|
+
);
|
|
79
|
+
}
|
|
80
|
+
return /* @__PURE__ */ jsxs(
|
|
51
81
|
Comp,
|
|
52
82
|
{
|
|
53
|
-
"data-slot": "button",
|
|
54
83
|
className: cn(buttonVariantsProps({ variant, size, className })),
|
|
55
84
|
...props,
|
|
56
85
|
children: [
|
|
57
|
-
LucideIconStart && /* @__PURE__ */ jsx(
|
|
58
|
-
LucideIconStart,
|
|
59
|
-
{
|
|
60
|
-
className: clsx(iconStartAnimate && iconAnimateCss)
|
|
61
|
-
}
|
|
62
|
-
),
|
|
86
|
+
LucideIconStart && /* @__PURE__ */ jsx(LucideIconStart, { className: clsx(iconStartAnimate && iconAnimateCss) }),
|
|
63
87
|
children,
|
|
64
88
|
LucideIconEnd && /* @__PURE__ */ jsx(LucideIconEnd, { className: clsx(iconEndAnimate && iconAnimateCss) })
|
|
65
89
|
]
|
|
66
90
|
}
|
|
67
|
-
)
|
|
91
|
+
);
|
|
68
92
|
}
|
|
69
93
|
export {
|
|
70
94
|
Button,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../../src/components/primitives/button/button.tsx"],"sourcesContent":["import * as React from \"react\";\r\nimport { Slot } from \"@radix-ui/react-slot\";\r\nimport { cva, type VariantProps } from \"class-variance-authority\";\r\nimport { icons } from \"lucide-react\";\r\nimport clsx from \"clsx\";\r\nimport { cn } from \"../../../utils\";\r\n\r\nconst buttonVariants = {\r\n variant: {\r\n default:\r\n \"sg:bg-primary sg:text-primary-foreground sg:shadow-xs sg:hover:bg-primary/90\",\r\n destructive:\r\n \"sg:bg-destructive sg:text-white sg:shadow-xs sg:hover:bg-destructive/90 sg:focus-visible:ring-destructive/20 sg:dark:focus-visible:ring-destructive/40 sg:dark:bg-destructive/60\",\r\n outline:\r\n \"sg:border sg:border-border sg:shadow-xs sg:hover:bg-accent sg:hover:text-accent-foreground\",\r\n secondary:\r\n \"sg:bg-secondary sg:text-secondary-foreground sg:shadow-xs sg:hover:bg-secondary/80\",\r\n ghost:\r\n \"sg:hover:bg-accent sg:hover:text-accent-foreground sg:dark:hover:bg-accent/50\",\r\n link: \"sg:text-primary sg:underline-offset-4 sg:hover:underline\",\r\n },\r\n size: {\r\n default: \"sg:h-9 sg:px-4 sg:py-2 sg:has-[>svg]:px-3\",\r\n sm: \"sg:h-8 sg:rounded-md sg:gap-1.5 sg:px-3 sg:has-[>svg]:px-2.5\",\r\n lg: \"sg:h-10 sg:rounded-md sg:px-6 sg:has-[>svg]:px-4\",\r\n icon: \"sg:size-9\",\r\n },\r\n};\r\n\r\nconst buttonVariantsProps = cva(\r\n \"sg:inline-flex sg:items-center sg:justify-center sg:gap-2 sg:whitespace-nowrap sg:cursor-pointer sg:rounded-md sg:text-sm sg:font-medium sg:transition-all sg:disabled:pointer-events-none sg:disabled:opacity-50 sg:[&_svg]:pointer-events-none sg:[&_svg:not([class*=size-])]:size-4 sg:shrink-0 sg:[&_svg]:shrink-0 sg:outline-none sg:focus-visible:border-ring sg:focus-visible:ring-ring/50 sg:focus-visible:ring-[3px] sg:aria-invalid:ring-destructive/20 sg:dark:aria-invalid:ring-destructive/40 sg:aria-invalid:border-destructive\",\r\n {\r\n variants: buttonVariants,\r\n defaultVariants: {\r\n variant: \"default\",\r\n size: \"default\",\r\n },\r\n }\r\n);\r\n\r\ntype Props = React.ComponentProps<\"button\"> &\r\n VariantProps<typeof buttonVariantsProps> & {\r\n asChild?: boolean;\r\n iconStart?: keyof typeof icons;\r\n iconStartAnimate?: boolean;\r\n iconEnd?: keyof typeof icons;\r\n iconEndAnimate?: boolean;\r\n };\r\n\r\nfunction Button({\r\n className,\r\n variant,\r\n size,\r\n asChild = false,\r\n iconStart,\r\n iconStartAnimate,\r\n iconEnd,\r\n iconEndAnimate,\r\n children,\r\n ...props\r\n}: Props) {\r\n const Comp = asChild ? Slot : \"button\";\r\n const iconAnimateCss = \"sg:animate-spin\";\r\n\r\n const LucideIconStart = iconStart && icons[iconStart];\r\n const LucideIconEnd = iconEnd && icons[iconEnd];\r\n\r\n
|
|
1
|
+
{"version":3,"sources":["../../../../src/components/primitives/button/button.tsx"],"sourcesContent":["import * as React from \"react\";\r\nimport { Slot } from \"@radix-ui/react-slot\";\r\nimport { cva, type VariantProps } from \"class-variance-authority\";\r\nimport { icons } from \"lucide-react\";\r\nimport clsx from \"clsx\";\r\nimport { cn } from \"../../../utils\";\r\n\r\nconst buttonVariants = {\r\n variant: {\r\n default:\r\n \"sg:bg-primary sg:text-primary-foreground sg:shadow-xs sg:hover:bg-primary/90\",\r\n destructive:\r\n \"sg:bg-destructive sg:text-white sg:shadow-xs sg:hover:bg-destructive/90 sg:focus-visible:ring-destructive/20 sg:dark:focus-visible:ring-destructive/40 sg:dark:bg-destructive/60\",\r\n outline:\r\n \"sg:border sg:border-border sg:shadow-xs sg:hover:bg-accent sg:hover:text-accent-foreground\",\r\n secondary:\r\n \"sg:bg-secondary sg:text-secondary-foreground sg:shadow-xs sg:hover:bg-secondary/80\",\r\n ghost:\r\n \"sg:hover:bg-accent sg:hover:text-accent-foreground sg:dark:hover:bg-accent/50\",\r\n link: \"sg:text-primary sg:underline-offset-4 sg:hover:underline\",\r\n },\r\n size: {\r\n default: \"sg:h-9 sg:px-4 sg:py-2 sg:has-[>svg]:px-3\",\r\n sm: \"sg:h-8 sg:rounded-md sg:gap-1.5 sg:px-3 sg:has-[>svg]:px-2.5\",\r\n lg: \"sg:h-10 sg:rounded-md sg:px-6 sg:has-[>svg]:px-4\",\r\n icon: \"sg:size-9\",\r\n },\r\n};\r\n\r\nconst buttonVariantsProps = cva(\r\n \"sg:inline-flex sg:items-center sg:justify-center sg:gap-2 sg:whitespace-nowrap sg:cursor-pointer sg:rounded-md sg:text-sm sg:font-medium sg:transition-all sg:disabled:pointer-events-none sg:disabled:opacity-50 sg:[&_svg]:pointer-events-none sg:[&_svg:not([class*=size-])]:size-4 sg:shrink-0 sg:[&_svg]:shrink-0 sg:outline-none sg:focus-visible:border-ring sg:focus-visible:ring-ring/50 sg:focus-visible:ring-[3px] sg:aria-invalid:ring-destructive/20 sg:dark:aria-invalid:ring-destructive/40 sg:aria-invalid:border-destructive\",\r\n {\r\n variants: buttonVariants,\r\n defaultVariants: {\r\n variant: \"default\",\r\n size: \"default\",\r\n },\r\n }\r\n);\r\n\r\ntype Props = React.ComponentProps<\"button\"> &\r\n VariantProps<typeof buttonVariantsProps> & {\r\n asChild?: boolean;\r\n iconStart?: keyof typeof icons;\r\n iconStartAnimate?: boolean;\r\n iconEnd?: keyof typeof icons;\r\n iconEndAnimate?: boolean;\r\n };\r\n\r\nfunction Button({\r\n className,\r\n variant,\r\n size,\r\n asChild = false,\r\n iconStart,\r\n iconStartAnimate,\r\n iconEnd,\r\n iconEndAnimate,\r\n children,\r\n ...props\r\n}: Props) {\r\n const Comp = asChild ? Slot : \"button\";\r\n const iconAnimateCss = \"sg:animate-spin\";\r\n\r\n const LucideIconStart = iconStart && icons[iconStart];\r\n const LucideIconEnd = iconEnd && icons[iconEnd];\r\n\r\n if (asChild) {\r\n const child = React.Children.only(children) as React.ReactElement<{\r\n children?: React.ReactNode;\r\n }>;\r\n\r\n return (\r\n <Comp\r\n data-slot=\"button\"\r\n className={cn(buttonVariantsProps({ variant, size, className }))}\r\n {...props}\r\n >\r\n {React.cloneElement(\r\n child,\r\n {},\r\n <>\r\n {LucideIconStart && (\r\n <LucideIconStart\r\n className={clsx(iconStartAnimate && iconAnimateCss)}\r\n />\r\n )}\r\n {child.props.children}\r\n {LucideIconEnd && (\r\n <LucideIconEnd\r\n className={clsx(iconEndAnimate && iconAnimateCss)}\r\n />\r\n )}\r\n </>\r\n )}\r\n </Comp>\r\n );\r\n }\r\n\r\n return (\r\n <Comp\r\n className={cn(buttonVariantsProps({ variant, size, className }))}\r\n {...props}\r\n >\r\n {LucideIconStart && (\r\n <LucideIconStart className={clsx(iconStartAnimate && iconAnimateCss)} />\r\n )}\r\n {children}\r\n {LucideIconEnd && (\r\n <LucideIconEnd className={clsx(iconEndAnimate && iconAnimateCss)} />\r\n )}\r\n </Comp>\r\n );\r\n}\r\n\r\nexport { Button, buttonVariantsProps, buttonVariants };\r\n"],"mappings":"AAiFU,mBAEI,KAFJ;AAjFV,YAAY,WAAW;AACvB,SAAS,YAAY;AACrB,SAAS,WAA8B;AACvC,SAAS,aAAa;AACtB,OAAO,UAAU;AACjB,SAAS,UAAU;AAEnB,MAAM,iBAAiB;AAAA,EACrB,SAAS;AAAA,IACP,SACE;AAAA,IACF,aACE;AAAA,IACF,SACE;AAAA,IACF,WACE;AAAA,IACF,OACE;AAAA,IACF,MAAM;AAAA,EACR;AAAA,EACA,MAAM;AAAA,IACJ,SAAS;AAAA,IACT,IAAI;AAAA,IACJ,IAAI;AAAA,IACJ,MAAM;AAAA,EACR;AACF;AAEA,MAAM,sBAAsB;AAAA,EAC1B;AAAA,EACA;AAAA,IACE,UAAU;AAAA,IACV,iBAAiB;AAAA,MACf,SAAS;AAAA,MACT,MAAM;AAAA,IACR;AAAA,EACF;AACF;AAWA,SAAS,OAAO;AAAA,EACd;AAAA,EACA;AAAA,EACA;AAAA,EACA,UAAU;AAAA,EACV;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA,GAAG;AACL,GAAU;AACR,QAAM,OAAO,UAAU,OAAO;AAC9B,QAAM,iBAAiB;AAEvB,QAAM,kBAAkB,aAAa,MAAM,SAAS;AACpD,QAAM,gBAAgB,WAAW,MAAM,OAAO;AAE9C,MAAI,SAAS;AACX,UAAM,QAAQ,MAAM,SAAS,KAAK,QAAQ;AAI1C,WACE;AAAA,MAAC;AAAA;AAAA,QACC,aAAU;AAAA,QACV,WAAW,GAAG,oBAAoB,EAAE,SAAS,MAAM,UAAU,CAAC,CAAC;AAAA,QAC9D,GAAG;AAAA,QAEH,gBAAM;AAAA,UACL;AAAA,UACA,CAAC;AAAA,UACD,iCACG;AAAA,+BACC;AAAA,cAAC;AAAA;AAAA,gBACC,WAAW,KAAK,oBAAoB,cAAc;AAAA;AAAA,YACpD;AAAA,YAED,MAAM,MAAM;AAAA,YACZ,iBACC;AAAA,cAAC;AAAA;AAAA,gBACC,WAAW,KAAK,kBAAkB,cAAc;AAAA;AAAA,YAClD;AAAA,aAEJ;AAAA,QACF;AAAA;AAAA,IACF;AAAA,EAEJ;AAEA,SACE;AAAA,IAAC;AAAA;AAAA,MACC,WAAW,GAAG,oBAAoB,EAAE,SAAS,MAAM,UAAU,CAAC,CAAC;AAAA,MAC9D,GAAG;AAAA,MAEH;AAAA,2BACC,oBAAC,mBAAgB,WAAW,KAAK,oBAAoB,cAAc,GAAG;AAAA,QAEvE;AAAA,QACA,iBACC,oBAAC,iBAAc,WAAW,KAAK,kBAAkB,cAAc,GAAG;AAAA;AAAA;AAAA,EAEtE;AAEJ;","names":[]}
|
|
@@ -17,6 +17,7 @@ export { TextParagraph } from './text/text-paragraph.js';
|
|
|
17
17
|
export { TextSpan } from './text/text-span.js';
|
|
18
18
|
export { TextTime } from './text/text-time.js';
|
|
19
19
|
export { UiImage } from './ui-image.js';
|
|
20
|
+
export { UiLink } from './ui-link.js';
|
|
20
21
|
import 'react/jsx-runtime';
|
|
21
22
|
import 'react';
|
|
22
23
|
import '@radix-ui/react-accordion';
|
|
@@ -27,3 +28,4 @@ import '@radix-ui/react-separator';
|
|
|
27
28
|
import './text/internal/text-element.js';
|
|
28
29
|
import '../../lib/types.js';
|
|
29
30
|
import '../providers/ImageContext.js';
|
|
31
|
+
import '../providers/LinkContext.js';
|
|
@@ -1 +1 @@
|
|
|
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":[]}
|
|
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\nexport * from \"./ui-link\";\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;AACd,cAAc;","names":[]}
|
|
@@ -10,7 +10,7 @@ const bgColors = {
|
|
|
10
10
|
pink: "sg:bg-pink",
|
|
11
11
|
gradient1: "sg:bg-[linear-gradient(135deg,hsl(var(--sg-primary-light))_0%,hsl(var(--sg-pink))_50%,hsl(var(--sg-orange))_100%)]",
|
|
12
12
|
gradient2: "sg:bg-[radial-gradient(1200px_300px_at_10%_-20%,hsl(var(--sg-gradient-1)/0.15),transparent),radial-gradient(800px_200px_at_90%_-20%,hsl(var(--sg-gradient-2)/0.15),transparent)]",
|
|
13
|
-
"primarylight-pink-orange": "sg:bg-[linear-gradient(135deg,hsl(var(--sg-primary-light)/0.1)_0%,hsl(var(--sg-pink)/0.1)_50%,hsl(var(--sg-orange)/0.1)_100%)]"
|
|
13
|
+
"primarylight-pink-orange": "sg:bg-[linear-gradient(135deg,hsl(var(--sg-primary-light)/0.1)_0%,hsl(var(--sg-pink)/0.1)_50%,hsl(var(--sg-orange)/0.1)_100%)] sg:[mask-image:linear-gradient(to_bottom,hsl(var(--sg-white))_0%,hsl(var(--sg-white))_60%,transparent_100%)] sg:dark:[mask-image:linear-gradient(to_bottom,hsl(var(--sg-black))_0%,hsl(var(--sg-black))_60%,transparent_100%)]"
|
|
14
14
|
};
|
|
15
15
|
const layoutVariants = {
|
|
16
16
|
type: {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../../src/components/primitives/layout/layout.tsx"],"sourcesContent":["import * as React from \"react\";\nimport { cva, type VariantProps } from \"class-variance-authority\";\nimport { cn } from \"../../../utils\";\n\nconst bgColors = {\n transparent: \"sg:bg-transparent\",\n white: \"sg:bg-white\",\n black: \"sg:bg-black\",\n orange: \"sg:bg-orange\",\n pink: \"sg:bg-pink\",\n gradient1:\n \"sg:bg-[linear-gradient(135deg,hsl(var(--sg-primary-light))_0%,hsl(var(--sg-pink))_50%,hsl(var(--sg-orange))_100%)]\",\n gradient2:\n \"sg:bg-[radial-gradient(1200px_300px_at_10%_-20%,hsl(var(--sg-gradient-1)/0.15),transparent),radial-gradient(800px_200px_at_90%_-20%,hsl(var(--sg-gradient-2)/0.15),transparent)]\",\n \"primarylight-pink-orange\":\n \"sg:bg-[linear-gradient(135deg,hsl(var(--sg-primary-light)/0.1)_0%,hsl(var(--sg-pink)/0.1)_50%,hsl(var(--sg-orange)/0.1)_100%)]\",\n};\n\nconst layoutVariants = {\n type: {\n full: \"sg:w-full\",\n wide: \"sg:w-full sg:px-4\",\n col: \"sg:mx-auto sg:max-w-[768px] sg:px-4 sg:md:px-0\",\n },\n cols: {\n \"100\": \"\",\n \"66-33\": \"sg:md:grid-cols-[2fr_1fr]\",\n \"50-50\": \"sg:md:grid-cols-2\",\n \"33-33-33\": \"sg:md:grid-cols-3\",\n \"25-25-25-25\": \"sg:md:grid-cols-4\",\n },\n bgColor: bgColors,\n};\n\nconst layoutVariantsProps = cva(\"sg:grid sg:grid-cols-1 sg:gap-4\", {\n variants: layoutVariants,\n defaultVariants: {\n type: \"col\",\n cols: \"100\",\n },\n});\n\nexport interface LayoutProps\n extends React.HTMLAttributes<HTMLElement>,\n VariantProps<typeof layoutVariantsProps> {\n as?: \"div\" | \"section\" | \"article\" | \"main\" | \"header\" | \"footer\";\n}\n\nfunction Layout({\n children,\n className,\n type,\n cols,\n bgColor,\n as: Component = \"div\",\n ...props\n}: React.PropsWithChildren<LayoutProps>) {\n const allowedInLayout = (\n content: React.ReactElement<any, string | React.JSXElementConstructor<any>>\n ): boolean => {\n if (content.type === Layout.Col1) {\n return true;\n } else if (\n content.type === Layout.Col2 &&\n (cols === \"66-33\" ||\n cols === \"50-50\" ||\n cols === \"33-33-33\" ||\n cols === \"25-25-25-25\")\n ) {\n return true;\n } else if (\n content.type === Layout.Col3 &&\n (cols === \"33-33-33\" || cols === \"25-25-25-25\")\n ) {\n return true;\n } else if (content.type === Layout.Col4 && cols === \"25-25-25-25\") {\n return true;\n }\n\n console.error(\n \"Content not allowed in column for variant\",\n cols,\n content.type\n );\n return false;\n };\n\n const renderColumn = (\n content: React.ReactElement<any, string | React.JSXElementConstructor<any>>\n ) => {\n if (!allowedInLayout(content)) {\n return;\n }\n return content;\n };\n\n return (\n <Component\n {...props}\n className={cn(bgColors[bgColor ?? \"transparent\"], className)}\n >\n <div className={cn(layoutVariantsProps({ type, cols }))}>\n {React.Children.map(children, (child) =>\n React.isValidElement(child) ? renderColumn(child) : <></>\n )}\n </div>\n </Component>\n );\n}\n\ntype colProp = {\n children?: React.ReactNode;\n hideDiv?: boolean;\n className?: string;\n as?: \"div\" | \"section\" | \"article\" | \"main\" | \"header\" | \"footer\";\n};\n\nfunction Col({ children, hideDiv, className, as: Component = \"div\" }: colProp) {\n return hideDiv ? (\n <>{children}</>\n ) : (\n <Component className={className}>{children}</Component>\n );\n}\n\nLayout.Col1 = Col;\nLayout.Col2 = Col;\nLayout.Col3 = Col;\nLayout.Col4 = Col;\n\nexport { Layout, layoutVariantsProps, layoutVariants };\n"],"mappings":"AAuG8D;AAvG9D,YAAY,WAAW;AACvB,SAAS,WAA8B;AACvC,SAAS,UAAU;AAEnB,MAAM,WAAW;AAAA,EACf,aAAa;AAAA,EACb,OAAO;AAAA,EACP,OAAO;AAAA,EACP,QAAQ;AAAA,EACR,MAAM;AAAA,EACN,WACE;AAAA,EACF,WACE;AAAA,EACF,4BACE;AACJ;AAEA,MAAM,iBAAiB;AAAA,EACrB,MAAM;AAAA,IACJ,MAAM;AAAA,IACN,MAAM;AAAA,IACN,KAAK;AAAA,EACP;AAAA,EACA,MAAM;AAAA,IACJ,OAAO;AAAA,IACP,SAAS;AAAA,IACT,SAAS;AAAA,IACT,YAAY;AAAA,IACZ,eAAe;AAAA,EACjB;AAAA,EACA,SAAS;AACX;AAEA,MAAM,sBAAsB,IAAI,mCAAmC;AAAA,EACjE,UAAU;AAAA,EACV,iBAAiB;AAAA,IACf,MAAM;AAAA,IACN,MAAM;AAAA,EACR;AACF,CAAC;AAQD,SAAS,OAAO;AAAA,EACd;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA,IAAI,YAAY;AAAA,EAChB,GAAG;AACL,GAAyC;AACvC,QAAM,kBAAkB,CACtB,YACY;AACZ,QAAI,QAAQ,SAAS,OAAO,MAAM;AAChC,aAAO;AAAA,IACT,WACE,QAAQ,SAAS,OAAO,SACvB,SAAS,WACR,SAAS,WACT,SAAS,cACT,SAAS,gBACX;AACA,aAAO;AAAA,IACT,WACE,QAAQ,SAAS,OAAO,SACvB,SAAS,cAAc,SAAS,gBACjC;AACA,aAAO;AAAA,IACT,WAAW,QAAQ,SAAS,OAAO,QAAQ,SAAS,eAAe;AACjE,aAAO;AAAA,IACT;AAEA,YAAQ;AAAA,MACN;AAAA,MACA;AAAA,MACA,QAAQ;AAAA,IACV;AACA,WAAO;AAAA,EACT;AAEA,QAAM,eAAe,CACnB,YACG;AACH,QAAI,CAAC,gBAAgB,OAAO,GAAG;AAC7B;AAAA,IACF;AACA,WAAO;AAAA,EACT;AAEA,SACE;AAAA,IAAC;AAAA;AAAA,MACE,GAAG;AAAA,MACJ,WAAW,GAAG,SAAS,WAAW,aAAa,GAAG,SAAS;AAAA,MAE3D,8BAAC,SAAI,WAAW,GAAG,oBAAoB,EAAE,MAAM,KAAK,CAAC,CAAC,GACnD,gBAAM,SAAS;AAAA,QAAI;AAAA,QAAU,CAAC,UAC7B,MAAM,eAAe,KAAK,IAAI,aAAa,KAAK,IAAI,gCAAE;AAAA,MACxD,GACF;AAAA;AAAA,EACF;AAEJ;AASA,SAAS,IAAI,EAAE,UAAU,SAAS,WAAW,IAAI,YAAY,MAAM,GAAY;AAC7E,SAAO,UACL,gCAAG,UAAS,IAEZ,oBAAC,aAAU,WAAuB,UAAS;AAE/C;AAEA,OAAO,OAAO;AACd,OAAO,OAAO;AACd,OAAO,OAAO;AACd,OAAO,OAAO;","names":[]}
|
|
1
|
+
{"version":3,"sources":["../../../../src/components/primitives/layout/layout.tsx"],"sourcesContent":["import * as React from \"react\";\nimport { cva, type VariantProps } from \"class-variance-authority\";\nimport { cn } from \"../../../utils\";\n\nconst bgColors = {\n transparent: \"sg:bg-transparent\",\n white: \"sg:bg-white\",\n black: \"sg:bg-black\",\n orange: \"sg:bg-orange\",\n pink: \"sg:bg-pink\",\n gradient1:\n \"sg:bg-[linear-gradient(135deg,hsl(var(--sg-primary-light))_0%,hsl(var(--sg-pink))_50%,hsl(var(--sg-orange))_100%)]\",\n gradient2:\n \"sg:bg-[radial-gradient(1200px_300px_at_10%_-20%,hsl(var(--sg-gradient-1)/0.15),transparent),radial-gradient(800px_200px_at_90%_-20%,hsl(var(--sg-gradient-2)/0.15),transparent)]\",\n \"primarylight-pink-orange\":\n \"sg:bg-[linear-gradient(135deg,hsl(var(--sg-primary-light)/0.1)_0%,hsl(var(--sg-pink)/0.1)_50%,hsl(var(--sg-orange)/0.1)_100%)] sg:[mask-image:linear-gradient(to_bottom,hsl(var(--sg-white))_0%,hsl(var(--sg-white))_60%,transparent_100%)] sg:dark:[mask-image:linear-gradient(to_bottom,hsl(var(--sg-black))_0%,hsl(var(--sg-black))_60%,transparent_100%)]\",\n};\n\nconst layoutVariants = {\n type: {\n full: \"sg:w-full\",\n wide: \"sg:w-full sg:px-4\",\n col: \"sg:mx-auto sg:max-w-[768px] sg:px-4 sg:md:px-0\",\n },\n cols: {\n \"100\": \"\",\n \"66-33\": \"sg:md:grid-cols-[2fr_1fr]\",\n \"50-50\": \"sg:md:grid-cols-2\",\n \"33-33-33\": \"sg:md:grid-cols-3\",\n \"25-25-25-25\": \"sg:md:grid-cols-4\",\n },\n bgColor: bgColors,\n};\n\nconst layoutVariantsProps = cva(\"sg:grid sg:grid-cols-1 sg:gap-4\", {\n variants: layoutVariants,\n defaultVariants: {\n type: \"col\",\n cols: \"100\",\n },\n});\n\nexport interface LayoutProps\n extends React.HTMLAttributes<HTMLElement>,\n VariantProps<typeof layoutVariantsProps> {\n as?: \"div\" | \"section\" | \"article\" | \"main\" | \"header\" | \"footer\";\n}\n\nfunction Layout({\n children,\n className,\n type,\n cols,\n bgColor,\n as: Component = \"div\",\n ...props\n}: React.PropsWithChildren<LayoutProps>) {\n const allowedInLayout = (\n content: React.ReactElement<any, string | React.JSXElementConstructor<any>>\n ): boolean => {\n if (content.type === Layout.Col1) {\n return true;\n } else if (\n content.type === Layout.Col2 &&\n (cols === \"66-33\" ||\n cols === \"50-50\" ||\n cols === \"33-33-33\" ||\n cols === \"25-25-25-25\")\n ) {\n return true;\n } else if (\n content.type === Layout.Col3 &&\n (cols === \"33-33-33\" || cols === \"25-25-25-25\")\n ) {\n return true;\n } else if (content.type === Layout.Col4 && cols === \"25-25-25-25\") {\n return true;\n }\n\n console.error(\n \"Content not allowed in column for variant\",\n cols,\n content.type\n );\n return false;\n };\n\n const renderColumn = (\n content: React.ReactElement<any, string | React.JSXElementConstructor<any>>\n ) => {\n if (!allowedInLayout(content)) {\n return;\n }\n return content;\n };\n\n return (\n <Component\n {...props}\n className={cn(bgColors[bgColor ?? \"transparent\"], className)}\n >\n <div className={cn(layoutVariantsProps({ type, cols }))}>\n {React.Children.map(children, (child) =>\n React.isValidElement(child) ? renderColumn(child) : <></>\n )}\n </div>\n </Component>\n );\n}\n\ntype colProp = {\n children?: React.ReactNode;\n hideDiv?: boolean;\n className?: string;\n as?: \"div\" | \"section\" | \"article\" | \"main\" | \"header\" | \"footer\";\n};\n\nfunction Col({ children, hideDiv, className, as: Component = \"div\" }: colProp) {\n return hideDiv ? (\n <>{children}</>\n ) : (\n <Component className={className}>{children}</Component>\n );\n}\n\nLayout.Col1 = Col;\nLayout.Col2 = Col;\nLayout.Col3 = Col;\nLayout.Col4 = Col;\n\nexport { Layout, layoutVariantsProps, layoutVariants };\n"],"mappings":"AAuG8D;AAvG9D,YAAY,WAAW;AACvB,SAAS,WAA8B;AACvC,SAAS,UAAU;AAEnB,MAAM,WAAW;AAAA,EACf,aAAa;AAAA,EACb,OAAO;AAAA,EACP,OAAO;AAAA,EACP,QAAQ;AAAA,EACR,MAAM;AAAA,EACN,WACE;AAAA,EACF,WACE;AAAA,EACF,4BACE;AACJ;AAEA,MAAM,iBAAiB;AAAA,EACrB,MAAM;AAAA,IACJ,MAAM;AAAA,IACN,MAAM;AAAA,IACN,KAAK;AAAA,EACP;AAAA,EACA,MAAM;AAAA,IACJ,OAAO;AAAA,IACP,SAAS;AAAA,IACT,SAAS;AAAA,IACT,YAAY;AAAA,IACZ,eAAe;AAAA,EACjB;AAAA,EACA,SAAS;AACX;AAEA,MAAM,sBAAsB,IAAI,mCAAmC;AAAA,EACjE,UAAU;AAAA,EACV,iBAAiB;AAAA,IACf,MAAM;AAAA,IACN,MAAM;AAAA,EACR;AACF,CAAC;AAQD,SAAS,OAAO;AAAA,EACd;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA,IAAI,YAAY;AAAA,EAChB,GAAG;AACL,GAAyC;AACvC,QAAM,kBAAkB,CACtB,YACY;AACZ,QAAI,QAAQ,SAAS,OAAO,MAAM;AAChC,aAAO;AAAA,IACT,WACE,QAAQ,SAAS,OAAO,SACvB,SAAS,WACR,SAAS,WACT,SAAS,cACT,SAAS,gBACX;AACA,aAAO;AAAA,IACT,WACE,QAAQ,SAAS,OAAO,SACvB,SAAS,cAAc,SAAS,gBACjC;AACA,aAAO;AAAA,IACT,WAAW,QAAQ,SAAS,OAAO,QAAQ,SAAS,eAAe;AACjE,aAAO;AAAA,IACT;AAEA,YAAQ;AAAA,MACN;AAAA,MACA;AAAA,MACA,QAAQ;AAAA,IACV;AACA,WAAO;AAAA,EACT;AAEA,QAAM,eAAe,CACnB,YACG;AACH,QAAI,CAAC,gBAAgB,OAAO,GAAG;AAC7B;AAAA,IACF;AACA,WAAO;AAAA,EACT;AAEA,SACE;AAAA,IAAC;AAAA;AAAA,MACE,GAAG;AAAA,MACJ,WAAW,GAAG,SAAS,WAAW,aAAa,GAAG,SAAS;AAAA,MAE3D,8BAAC,SAAI,WAAW,GAAG,oBAAoB,EAAE,MAAM,KAAK,CAAC,CAAC,GACnD,gBAAM,SAAS;AAAA,QAAI;AAAA,QAAU,CAAC,UAC7B,MAAM,eAAe,KAAK,IAAI,aAAa,KAAK,IAAI,gCAAE;AAAA,MACxD,GACF;AAAA;AAAA,EACF;AAEJ;AASA,SAAS,IAAI,EAAE,UAAU,SAAS,WAAW,IAAI,YAAY,MAAM,GAAY;AAC7E,SAAO,UACL,gCAAG,UAAS,IAEZ,oBAAC,aAAU,WAAuB,UAAS;AAE/C;AAEA,OAAO,OAAO;AACd,OAAO,OAAO;AACd,OAAO,OAAO;AACd,OAAO,OAAO;","names":[]}
|
|
@@ -1,37 +1,27 @@
|
|
|
1
1
|
"use client";
|
|
2
|
-
import {
|
|
2
|
+
import { jsx } from "react/jsx-runtime";
|
|
3
3
|
import * as React from "react";
|
|
4
4
|
import * as SeparatorPrimitive from "@radix-ui/react-separator";
|
|
5
5
|
import { cn } from "../../../utils";
|
|
6
|
-
import { UiImage } from "../ui-image";
|
|
7
6
|
function Separator({
|
|
8
7
|
className,
|
|
9
8
|
orientation = "horizontal",
|
|
10
9
|
decorative = true,
|
|
11
10
|
...props
|
|
12
11
|
}) {
|
|
13
|
-
return /* @__PURE__ */
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
),
|
|
27
|
-
/* @__PURE__ */ jsx(
|
|
28
|
-
UiImage,
|
|
29
|
-
{
|
|
30
|
-
src: "https://imgcdn.stablediffusionweb.com/2024/5/14/a3099eb1-b368-4bff-9d99-9a929c44b9a1.jpg",
|
|
31
|
-
alt: ""
|
|
32
|
-
}
|
|
33
|
-
)
|
|
34
|
-
] });
|
|
12
|
+
return /* @__PURE__ */ jsx(
|
|
13
|
+
SeparatorPrimitive.Root,
|
|
14
|
+
{
|
|
15
|
+
"data-slot": "separator",
|
|
16
|
+
decorative,
|
|
17
|
+
orientation,
|
|
18
|
+
className: cn(
|
|
19
|
+
"sg:bg-border sg:shrink-0 sg:data-[orientation=horizontal]:h-px sg:data-[orientation=horizontal]:w-full sg:data-[orientation=vertical]:h-full sg:data-[orientation=vertical]:w-px sg:my-4",
|
|
20
|
+
className
|
|
21
|
+
),
|
|
22
|
+
...props
|
|
23
|
+
}
|
|
24
|
+
);
|
|
35
25
|
}
|
|
36
26
|
export {
|
|
37
27
|
Separator
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../../src/components/primitives/separator/separator.tsx"],"sourcesContent":["\"use client\";\
|
|
1
|
+
{"version":3,"sources":["../../../../src/components/primitives/separator/separator.tsx"],"sourcesContent":["\"use client\";\nimport * as React from \"react\";\nimport * as SeparatorPrimitive from \"@radix-ui/react-separator\";\nimport { cn } from \"../../../utils\";\n\nexport function Separator({\n className,\n orientation = \"horizontal\",\n decorative = true,\n ...props\n}: React.ComponentProps<typeof SeparatorPrimitive.Root>) {\n return (\n <SeparatorPrimitive.Root\n data-slot=\"separator\"\n decorative={decorative}\n orientation={orientation}\n className={cn(\n \"sg:bg-border sg:shrink-0 sg:data-[orientation=horizontal]:h-px sg:data-[orientation=horizontal]:w-full sg:data-[orientation=vertical]:h-full sg:data-[orientation=vertical]:w-px sg:my-4\",\n className\n )}\n {...props}\n />\n );\n}\n"],"mappings":";AAYI;AAXJ,YAAY,WAAW;AACvB,YAAY,wBAAwB;AACpC,SAAS,UAAU;AAEZ,SAAS,UAAU;AAAA,EACxB;AAAA,EACA,cAAc;AAAA,EACd,aAAa;AAAA,EACb,GAAG;AACL,GAAyD;AACvD,SACE;AAAA,IAAC,mBAAmB;AAAA,IAAnB;AAAA,MACC,aAAU;AAAA,MACV;AAAA,MACA;AAAA,MACA,WAAW;AAAA,QACT;AAAA,QACA;AAAA,MACF;AAAA,MACC,GAAG;AAAA;AAAA,EACN;AAEJ;","names":[]}
|
|
@@ -1,16 +1,25 @@
|
|
|
1
1
|
"use client";
|
|
2
2
|
import { jsx } from "react/jsx-runtime";
|
|
3
3
|
import React, { useEffect, useState } from "react";
|
|
4
|
-
import {
|
|
4
|
+
import {
|
|
5
|
+
DefaultImage,
|
|
6
|
+
useImage
|
|
7
|
+
} from "../providers/ImageContext";
|
|
5
8
|
const UiImage = (props) => {
|
|
6
9
|
const [isClient, setIsClient] = useState(false);
|
|
7
10
|
const ImageComponent = useImage();
|
|
8
|
-
console.log("UiImage", props);
|
|
9
11
|
useEffect(() => {
|
|
10
12
|
setIsClient(true);
|
|
11
13
|
}, []);
|
|
12
14
|
if (!isClient) {
|
|
13
|
-
return /* @__PURE__ */ jsx(
|
|
15
|
+
return /* @__PURE__ */ jsx(
|
|
16
|
+
DefaultImage,
|
|
17
|
+
{
|
|
18
|
+
src: props.src,
|
|
19
|
+
alt: props.alt,
|
|
20
|
+
className: props.className
|
|
21
|
+
}
|
|
22
|
+
);
|
|
14
23
|
}
|
|
15
24
|
return /* @__PURE__ */ jsx(ImageComponent, { ...props });
|
|
16
25
|
};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../src/components/primitives/ui-image.tsx"],"sourcesContent":["\"use client\";\r\nimport React, { useEffect, useState } from \"react\";\r\nimport {
|
|
1
|
+
{"version":3,"sources":["../../../src/components/primitives/ui-image.tsx"],"sourcesContent":["\"use client\";\r\nimport React, { useEffect, useState } from \"react\";\r\nimport {\r\n DefaultImage,\r\n useImage,\r\n type BaseImageProps,\r\n} 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 (\r\n <DefaultImage\r\n src={props.src}\r\n alt={props.alt}\r\n className={props.className}\r\n />\r\n );\r\n }\r\n\r\n return <ImageComponent {...props} />;\r\n};\r\n"],"mappings":";AAkBM;AAjBN,OAAO,SAAS,WAAW,gBAAgB;AAC3C;AAAA,EACE;AAAA,EACA;AAAA,OAEK;AAEA,MAAM,UAAoC,CAAC,UAAU;AAC1D,QAAM,CAAC,UAAU,WAAW,IAAI,SAAS,KAAK;AAC9C,QAAM,iBAAiB,SAAS;AAEhC,YAAU,MAAM;AACd,gBAAY,IAAI;AAAA,EAClB,GAAG,CAAC,CAAC;AAEL,MAAI,CAAC,UAAU;AACb,WACE;AAAA,MAAC;AAAA;AAAA,QACC,KAAK,MAAM;AAAA,QACX,KAAK,MAAM;AAAA,QACX,WAAW,MAAM;AAAA;AAAA,IACnB;AAAA,EAEJ;AAEA,SAAO,oBAAC,kBAAgB,GAAG,OAAO;AACpC;","names":[]}
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
"use client";
|
|
2
|
+
import { jsx } from "react/jsx-runtime";
|
|
3
|
+
import React, { useEffect, useState } from "react";
|
|
4
|
+
import {
|
|
5
|
+
DefaultLink,
|
|
6
|
+
useLink
|
|
7
|
+
} from "../providers/LinkContext";
|
|
8
|
+
const UiLink = (props) => {
|
|
9
|
+
const [isClient, setIsClient] = useState(false);
|
|
10
|
+
const LinkComponent = useLink();
|
|
11
|
+
useEffect(() => {
|
|
12
|
+
setIsClient(true);
|
|
13
|
+
}, []);
|
|
14
|
+
if (!isClient) {
|
|
15
|
+
return /* @__PURE__ */ jsx(DefaultLink, { href: props.href, className: props.className, children: props.children });
|
|
16
|
+
}
|
|
17
|
+
return /* @__PURE__ */ jsx(LinkComponent, { ...props, children: props.children });
|
|
18
|
+
};
|
|
19
|
+
export {
|
|
20
|
+
UiLink
|
|
21
|
+
};
|
|
22
|
+
//# sourceMappingURL=ui-link.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../../../src/components/primitives/ui-link.tsx"],"sourcesContent":["\"use client\";\r\nimport React, { useEffect, useState } from \"react\";\r\nimport {\r\n DefaultLink,\r\n useLink,\r\n type BaseLinkProps,\r\n} from \"../providers/LinkContext\";\r\n\r\nexport const UiLink: React.FC<BaseLinkProps> = (props) => {\r\n const [isClient, setIsClient] = useState(false);\r\n const LinkComponent = useLink();\r\n\r\n useEffect(() => {\r\n setIsClient(true);\r\n }, []);\r\n\r\n if (!isClient) {\r\n return (\r\n <DefaultLink href={props.href} className={props.className}>\r\n {props.children}\r\n </DefaultLink>\r\n );\r\n }\r\n\r\n return <LinkComponent {...props}>{props.children}</LinkComponent>;\r\n};\r\n"],"mappings":";AAkBM;AAjBN,OAAO,SAAS,WAAW,gBAAgB;AAC3C;AAAA,EACE;AAAA,EACA;AAAA,OAEK;AAEA,MAAM,SAAkC,CAAC,UAAU;AACxD,QAAM,CAAC,UAAU,WAAW,IAAI,SAAS,KAAK;AAC9C,QAAM,gBAAgB,QAAQ;AAE9B,YAAU,MAAM;AACd,gBAAY,IAAI;AAAA,EAClB,GAAG,CAAC,CAAC;AAEL,MAAI,CAAC,UAAU;AACb,WACE,oBAAC,eAAY,MAAM,MAAM,MAAM,WAAW,MAAM,WAC7C,gBAAM,UACT;AAAA,EAEJ;AAEA,SAAO,oBAAC,iBAAe,GAAG,OAAQ,gBAAM,UAAS;AACnD;","names":[]}
|
|
@@ -7,6 +7,7 @@ interface BaseImageProps {
|
|
|
7
7
|
[key: string]: any;
|
|
8
8
|
}
|
|
9
9
|
type ImageComponentType<P extends BaseImageProps = BaseImageProps> = React__default.ComponentType<P>;
|
|
10
|
+
declare const DefaultImage: ImageComponentType;
|
|
10
11
|
interface ImageProviderProps {
|
|
11
12
|
ImageComponent: ImageComponentType;
|
|
12
13
|
children: ReactNode;
|
|
@@ -14,4 +15,4 @@ interface ImageProviderProps {
|
|
|
14
15
|
declare const ImageProvider: React__default.FC<ImageProviderProps>;
|
|
15
16
|
declare const useImage: <P extends BaseImageProps = BaseImageProps>() => ImageComponentType<P>;
|
|
16
17
|
|
|
17
|
-
export { type BaseImageProps, type ImageComponentType, ImageProvider, useImage };
|
|
18
|
+
export { type BaseImageProps, DefaultImage, type ImageComponentType, ImageProvider, useImage };
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../src/components/providers/ImageContext.tsx"],"sourcesContent":["\"use client\";\r\nimport React, { createContext, useContext, type ReactNode } from \"react\";\r\n\r\n// Define a generic interface for props all images share\r\nexport interface BaseImageProps {\r\n src: string;\r\n alt?: string;\r\n className?: string;\r\n [key: string]: any; // allow framework-specific props (e.g., width, height, priority)\r\n}\r\n\r\n// Define the ImageComponent type\r\nexport type ImageComponentType<P extends BaseImageProps = BaseImageProps> =\r\n React.ComponentType<P>;\r\n\r\n// Define the context value\r\ninterface ImageContextValue {\r\n ImageComponent: ImageComponentType;\r\n}\r\n\r\n// Default <img> fallback\r\
|
|
1
|
+
{"version":3,"sources":["../../../src/components/providers/ImageContext.tsx"],"sourcesContent":["\"use client\";\r\nimport React, { createContext, useContext, type ReactNode } from \"react\";\r\n\r\n// Define a generic interface for props all images share\r\nexport interface BaseImageProps {\r\n src: string;\r\n alt?: string;\r\n className?: string;\r\n [key: string]: any; // allow framework-specific props (e.g., width, height, priority)\r\n}\r\n\r\n// Define the ImageComponent type\r\nexport type ImageComponentType<P extends BaseImageProps = BaseImageProps> =\r\n React.ComponentType<P>;\r\n\r\n// Define the context value\r\ninterface ImageContextValue {\r\n ImageComponent: ImageComponentType;\r\n}\r\n\r\n// Default <img> fallback\r\nexport const DefaultImage: ImageComponentType = ({ src, alt, ...rest }) => (\r\n <img src={src} alt={alt} {...rest} />\r\n);\r\n\r\n// Create the context\r\nconst ImageContext = createContext<ImageContextValue>({\r\n ImageComponent: DefaultImage,\r\n});\r\n\r\n// Provider props (type-safe)\r\ninterface ImageProviderProps {\r\n ImageComponent: ImageComponentType;\r\n children: ReactNode;\r\n}\r\n\r\nexport const ImageProvider: React.FC<ImageProviderProps> = ({\r\n ImageComponent,\r\n children,\r\n}) => (\r\n <ImageContext.Provider value={{ ImageComponent }}>\r\n {children}\r\n </ImageContext.Provider>\r\n);\r\n\r\nexport const useImage = <\r\n P extends BaseImageProps = BaseImageProps\r\n>(): ImageComponentType<P> => {\r\n const ctx = useContext(ImageContext);\r\n if (!ctx) {\r\n throw new Error(\"useImage must be used within an ImageProvider\");\r\n }\r\n return ctx.ImageComponent as ImageComponentType<P>;\r\n};\r\n"],"mappings":";AAsBE;AArBF,OAAO,SAAS,eAAe,kBAAkC;AAoB1D,MAAM,eAAmC,CAAC,EAAE,KAAK,KAAK,GAAG,KAAK,MACnE,oBAAC,SAAI,KAAU,KAAW,GAAG,MAAM;AAIrC,MAAM,eAAe,cAAiC;AAAA,EACpD,gBAAgB;AAClB,CAAC;AAQM,MAAM,gBAA8C,CAAC;AAAA,EAC1D;AAAA,EACA;AACF,MACE,oBAAC,aAAa,UAAb,EAAsB,OAAO,EAAE,eAAe,GAC5C,UACH;AAGK,MAAM,WAAW,MAEM;AAC5B,QAAM,MAAM,WAAW,YAAY;AACnC,MAAI,CAAC,KAAK;AACR,UAAM,IAAI,MAAM,+CAA+C;AAAA,EACjE;AACA,SAAO,IAAI;AACb;","names":[]}
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
import React__default, { HTMLAttributeAnchorTarget, ReactNode } from 'react';
|
|
2
|
+
|
|
3
|
+
interface BaseLinkProps {
|
|
4
|
+
href: string;
|
|
5
|
+
target?: HTMLAttributeAnchorTarget;
|
|
6
|
+
className?: string;
|
|
7
|
+
[key: string]: any;
|
|
8
|
+
}
|
|
9
|
+
type LinkComponentType<P extends BaseLinkProps = BaseLinkProps> = React__default.ComponentType<P>;
|
|
10
|
+
declare const DefaultLink: LinkComponentType;
|
|
11
|
+
interface LinkProviderProps {
|
|
12
|
+
LinkComponent: LinkComponentType;
|
|
13
|
+
children: ReactNode;
|
|
14
|
+
}
|
|
15
|
+
declare const LinkProvider: React__default.FC<LinkProviderProps>;
|
|
16
|
+
declare const useLink: <P extends BaseLinkProps = BaseLinkProps>() => LinkComponentType<P>;
|
|
17
|
+
|
|
18
|
+
export { type BaseLinkProps, DefaultLink, type LinkComponentType, LinkProvider, useLink };
|
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
"use client";
|
|
2
|
+
import { jsx } from "react/jsx-runtime";
|
|
3
|
+
import React, {
|
|
4
|
+
createContext,
|
|
5
|
+
useContext
|
|
6
|
+
} from "react";
|
|
7
|
+
const DefaultLink = ({ href, ...rest }) => /* @__PURE__ */ jsx("a", { href, ...rest });
|
|
8
|
+
const LinkContext = createContext({
|
|
9
|
+
LinkComponent: DefaultLink
|
|
10
|
+
});
|
|
11
|
+
const LinkProvider = ({
|
|
12
|
+
LinkComponent,
|
|
13
|
+
children
|
|
14
|
+
}) => /* @__PURE__ */ jsx(LinkContext.Provider, { value: { LinkComponent }, children });
|
|
15
|
+
const useLink = () => {
|
|
16
|
+
const ctx = useContext(LinkContext);
|
|
17
|
+
if (!ctx) {
|
|
18
|
+
throw new Error("useLink must be used within an LinkProvider");
|
|
19
|
+
}
|
|
20
|
+
return ctx.LinkComponent;
|
|
21
|
+
};
|
|
22
|
+
export {
|
|
23
|
+
DefaultLink,
|
|
24
|
+
LinkProvider,
|
|
25
|
+
useLink
|
|
26
|
+
};
|
|
27
|
+
//# sourceMappingURL=LinkContext.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../../../src/components/providers/LinkContext.tsx"],"sourcesContent":["\"use client\";\r\nimport React, {\r\n createContext,\r\n useContext,\r\n type HTMLAttributeAnchorTarget,\r\n type ReactNode,\r\n} from \"react\";\r\n\r\nexport interface BaseLinkProps {\r\n href: string;\r\n target?: HTMLAttributeAnchorTarget;\r\n className?: string;\r\n [key: string]: any; // allow framework-specific props\r\n}\r\n\r\n// Define the LinkComponent type\r\nexport type LinkComponentType<P extends BaseLinkProps = BaseLinkProps> =\r\n React.ComponentType<P>;\r\n\r\n// Define the context value\r\ninterface LinkContextValue {\r\n LinkComponent: LinkComponentType;\r\n}\r\n\r\n// Default <a> fallback\r\nexport const DefaultLink: LinkComponentType = ({ href, ...rest }) => (\r\n <a href={href} {...rest} />\r\n);\r\n\r\n// Create the context\r\nconst LinkContext = createContext<LinkContextValue>({\r\n LinkComponent: DefaultLink,\r\n});\r\n\r\n// Provider props (type-safe)\r\ninterface LinkProviderProps {\r\n LinkComponent: LinkComponentType;\r\n children: ReactNode;\r\n}\r\n\r\nexport const LinkProvider: React.FC<LinkProviderProps> = ({\r\n LinkComponent,\r\n children,\r\n}) => (\r\n <LinkContext.Provider value={{ LinkComponent }}>\r\n {children}\r\n </LinkContext.Provider>\r\n);\r\n\r\nexport const useLink = <\r\n P extends BaseLinkProps = BaseLinkProps\r\n>(): LinkComponentType<P> => {\r\n const ctx = useContext(LinkContext);\r\n if (!ctx) {\r\n throw new Error(\"useLink must be used within an LinkProvider\");\r\n }\r\n return ctx.LinkComponent as LinkComponentType<P>;\r\n};\r\n"],"mappings":";AA0BE;AAzBF,OAAO;AAAA,EACL;AAAA,EACA;AAAA,OAGK;AAmBA,MAAM,cAAiC,CAAC,EAAE,MAAM,GAAG,KAAK,MAC7D,oBAAC,OAAE,MAAa,GAAG,MAAM;AAI3B,MAAM,cAAc,cAAgC;AAAA,EAClD,eAAe;AACjB,CAAC;AAQM,MAAM,eAA4C,CAAC;AAAA,EACxD;AAAA,EACA;AACF,MACE,oBAAC,YAAY,UAAZ,EAAqB,OAAO,EAAE,cAAc,GAC1C,UACH;AAGK,MAAM,UAAU,MAEM;AAC3B,QAAM,MAAM,WAAW,WAAW;AAClC,MAAI,CAAC,KAAK;AACR,UAAM,IAAI,MAAM,6CAA6C;AAAA,EAC/D;AACA,SAAO,IAAI;AACb;","names":[]}
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
import { ImageComponentType } from './ImageContext.js';
|
|
2
|
+
import { LinkComponentType } from './LinkContext.js';
|
|
3
|
+
import React__default, { ReactNode } from 'react';
|
|
4
|
+
|
|
5
|
+
interface SingularityProviderProps {
|
|
6
|
+
ImageComponent?: ImageComponentType;
|
|
7
|
+
LinkComponent?: LinkComponentType;
|
|
8
|
+
children: ReactNode;
|
|
9
|
+
}
|
|
10
|
+
declare const SingularityProvider: React__default.FC<SingularityProviderProps>;
|
|
11
|
+
|
|
12
|
+
export { SingularityProvider };
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
"use client";
|
|
2
|
+
import { jsx } from "react/jsx-runtime";
|
|
3
|
+
import React, {} from "react";
|
|
4
|
+
import {
|
|
5
|
+
ImageProvider,
|
|
6
|
+
DefaultImage
|
|
7
|
+
} from "./ImageContext";
|
|
8
|
+
import {
|
|
9
|
+
LinkProvider,
|
|
10
|
+
DefaultLink
|
|
11
|
+
} from "./LinkContext";
|
|
12
|
+
const SingularityProvider = ({
|
|
13
|
+
ImageComponent = DefaultImage,
|
|
14
|
+
LinkComponent = DefaultLink,
|
|
15
|
+
children
|
|
16
|
+
}) => {
|
|
17
|
+
return /* @__PURE__ */ jsx(ImageProvider, { ImageComponent, children: /* @__PURE__ */ jsx(LinkProvider, { LinkComponent, children }) });
|
|
18
|
+
};
|
|
19
|
+
export {
|
|
20
|
+
SingularityProvider
|
|
21
|
+
};
|
|
22
|
+
//# sourceMappingURL=SingularityContext.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../../../src/components/providers/SingularityContext.tsx"],"sourcesContent":["\"use client\";\nimport React, { type ReactNode } from \"react\";\nimport {\n ImageProvider,\n type ImageComponentType,\n DefaultImage,\n} from \"./ImageContext\";\nimport {\n LinkProvider,\n type LinkComponentType,\n DefaultLink,\n} from \"./LinkContext\";\n\ninterface SingularityProviderProps {\n ImageComponent?: ImageComponentType;\n LinkComponent?: LinkComponentType;\n children: ReactNode;\n}\n\nexport const SingularityProvider: React.FC<SingularityProviderProps> = ({\n ImageComponent = DefaultImage,\n LinkComponent = DefaultLink,\n children,\n}) => {\n return (\n <ImageProvider ImageComponent={ImageComponent}>\n <LinkProvider LinkComponent={LinkComponent}>{children}</LinkProvider>\n </ImageProvider>\n );\n};\n"],"mappings":";AA0BM;AAzBN,OAAO,eAA+B;AACtC;AAAA,EACE;AAAA,EAEA;AAAA,OACK;AACP;AAAA,EACE;AAAA,EAEA;AAAA,OACK;AAQA,MAAM,sBAA0D,CAAC;AAAA,EACtE,iBAAiB;AAAA,EACjB,gBAAgB;AAAA,EAChB;AACF,MAAM;AACJ,SACE,oBAAC,iBAAc,gBACb,8BAAC,gBAAa,eAA+B,UAAS,GACxD;AAEJ;","names":[]}
|
|
@@ -1,2 +1,4 @@
|
|
|
1
|
-
export { BaseImageProps, ImageComponentType, ImageProvider, useImage } from './ImageContext.js';
|
|
1
|
+
export { BaseImageProps, DefaultImage, ImageComponentType, ImageProvider, useImage } from './ImageContext.js';
|
|
2
|
+
export { BaseLinkProps, DefaultLink, LinkComponentType, LinkProvider, useLink } from './LinkContext.js';
|
|
3
|
+
export { SingularityProvider } from './SingularityContext.js';
|
|
2
4
|
import 'react';
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../src/components/providers/index.ts"],"sourcesContent":["export * from \"./ImageContext\";\r\
|
|
1
|
+
{"version":3,"sources":["../../../src/components/providers/index.ts"],"sourcesContent":["export * from \"./ImageContext\";\r\nexport * from \"./LinkContext\";\r\nexport * from \"./SingularityContext\";"],"mappings":"AAAA,cAAc;AACd,cAAc;AACd,cAAc;","names":[]}
|
|
@@ -6,15 +6,14 @@ import { Badge } from "../../primitives/badge/badge";
|
|
|
6
6
|
import { TextSpan } from "../../primitives/text/text-span";
|
|
7
7
|
import { Button } from "../../primitives/button/button";
|
|
8
8
|
import { TextParagraph } from "../../primitives/text/text-paragraph";
|
|
9
|
-
import { Icon } from "../../primitives/icon/icon";
|
|
10
9
|
import { formatDate } from "../../../lib";
|
|
11
10
|
import { UiImage } from "../../primitives/ui-image";
|
|
11
|
+
import { UiLink } from "../../primitives";
|
|
12
12
|
function BlogCard({ post }) {
|
|
13
13
|
return /* @__PURE__ */ jsxs(
|
|
14
14
|
Card,
|
|
15
15
|
{
|
|
16
|
-
className: "sg:group sg:overflow-hidden sg:hover:shadow-lg sg:transition-all sg:duration-300 sg:
|
|
17
|
-
onClick: () => console.log("OnClick blog card", post.id),
|
|
16
|
+
className: "sg:group sg:overflow-hidden sg:hover:shadow-lg sg:transition-all sg:duration-300 sg:flex sg:flex-col",
|
|
18
17
|
children: [
|
|
19
18
|
/* @__PURE__ */ jsxs("div", { className: "sg:relative sg:h-48 sg:overflow-hidden", children: [
|
|
20
19
|
/* @__PURE__ */ jsx(
|
|
@@ -23,7 +22,7 @@ function BlogCard({ post }) {
|
|
|
23
22
|
src: post.image,
|
|
24
23
|
alt: post.title,
|
|
25
24
|
className: "sg:w-full sg:h-full sg:object-cover sg:transition-transform sg:duration-300 sg:group-hover:scale-110",
|
|
26
|
-
fill: true
|
|
25
|
+
fill: "true"
|
|
27
26
|
}
|
|
28
27
|
),
|
|
29
28
|
/* @__PURE__ */ jsx(
|
|
@@ -39,7 +38,7 @@ function BlogCard({ post }) {
|
|
|
39
38
|
TextHeading,
|
|
40
39
|
{
|
|
41
40
|
variant: "h3",
|
|
42
|
-
className: "sg:mb-2 sg:group-hover:text-
|
|
41
|
+
className: "sg:mb-2 sg:group-hover:text-primary sg:transition-colors",
|
|
43
42
|
children: post.title
|
|
44
43
|
}
|
|
45
44
|
),
|
|
@@ -56,16 +55,15 @@ function BlogCard({ post }) {
|
|
|
56
55
|
] }),
|
|
57
56
|
/* @__PURE__ */ jsxs("div", { className: "sg:flex sg:items-center sg:justify-between", children: [
|
|
58
57
|
/* @__PURE__ */ jsx(TextSpan, { size: "sm", foreground: "muted", children: formatDate(post.date) }),
|
|
59
|
-
/* @__PURE__ */
|
|
58
|
+
/* @__PURE__ */ jsx(
|
|
60
59
|
Button,
|
|
61
60
|
{
|
|
61
|
+
asChild: true,
|
|
62
62
|
variant: "ghost",
|
|
63
63
|
size: "sm",
|
|
64
|
-
className: "sg:group-hover:text-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
/* @__PURE__ */ jsx(Icon, { icon: "ArrowRight", className: "sg:ml-2 sg:h-4 sg:w-4" })
|
|
68
|
-
]
|
|
64
|
+
className: "sg:group-hover:text-primary",
|
|
65
|
+
iconEnd: "ArrowRight",
|
|
66
|
+
children: /* @__PURE__ */ jsx(UiLink, { href: `${post.id}`, children: "Read More" })
|
|
69
67
|
}
|
|
70
68
|
)
|
|
71
69
|
] })
|
|
@@ -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 {
|
|
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 { formatDate } from \"../../../lib\";\r\nimport { UiImage } from \"../../primitives/ui-image\";\r\nimport { UiLink } from \"../../primitives\";\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:flex sg:flex-col\"\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=\"true\"\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-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 asChild\r\n variant=\"ghost\"\r\n size=\"sm\"\r\n className=\"sg:group-hover:text-primary\"\r\n iconEnd=\"ArrowRight\"\r\n >\r\n <UiLink href={`${post.id}`}>Read More</UiLink>\r\n </Button>\r\n </div>\r\n </CardContent>\r\n </Card>\r\n );\r\n}\r\n"],"mappings":"AAgCM,SACE,KADF;AAhCN,SAAS,OAAO,YAAY;AAC5B,SAAS,mBAAmB;AAC5B,SAAS,MAAM,mBAAmB;AAClC,SAAS,aAAa;AACtB,SAAS,gBAAgB;AACzB,SAAS,cAAc;AACvB,SAAS,qBAAqB;AAC9B,SAAS,kBAAkB;AAC3B,SAAS,eAAe;AACxB,SAAS,cAAc;AAiBR,SAAR,SAA0B,EAAE,KAAK,GAAkB;AACxD,SACE;AAAA,IAAC;AAAA;AAAA,MAEC,WAAU;AAAA,MAEV;AAAA,6BAAC,SAAI,WAAU,0CACb;AAAA;AAAA,YAAC;AAAA;AAAA,cACC,KAAK,KAAK;AAAA,cACV,KAAK,KAAK;AAAA,cACV,WAAU;AAAA,cACV,MAAK;AAAA;AAAA,UACP;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,SAAO;AAAA,gBACP,SAAQ;AAAA,gBACR,MAAK;AAAA,gBACL,WAAU;AAAA,gBACV,SAAQ;AAAA,gBAER,8BAAC,UAAO,MAAM,GAAG,KAAK,EAAE,IAAI,uBAAS;AAAA;AAAA,YACvC;AAAA,aACF;AAAA,WACF;AAAA;AAAA;AAAA,IA5DK,KAAK;AAAA,EA6DZ;AAEJ;","names":[]}
|
package/dist/index.d.ts
CHANGED
|
@@ -17,7 +17,10 @@ export { TextParagraph } from './components/primitives/text/text-paragraph.js';
|
|
|
17
17
|
export { TextSpan } from './components/primitives/text/text-span.js';
|
|
18
18
|
export { TextTime } from './components/primitives/text/text-time.js';
|
|
19
19
|
export { UiImage } from './components/primitives/ui-image.js';
|
|
20
|
-
export {
|
|
20
|
+
export { UiLink } from './components/primitives/ui-link.js';
|
|
21
|
+
export { BaseImageProps, DefaultImage, ImageComponentType, ImageProvider, useImage } from './components/providers/ImageContext.js';
|
|
22
|
+
export { BaseLinkProps, DefaultLink, LinkComponentType, LinkProvider, useLink } from './components/providers/LinkContext.js';
|
|
23
|
+
export { SingularityProvider } from './components/providers/SingularityContext.js';
|
|
21
24
|
export { BlogPost } from './components/units/cards/blog-card.js';
|
|
22
25
|
export { Card, CardContent, CardDescription, CardFooter, CardHeader, CardImage, CardTitle } from './components/units/cards/card.js';
|
|
23
26
|
export { Cards, CardsProps, getGridColsClass } from './components/units/cards/cards.js';
|