@opensite/ui 2.6.6 → 2.6.7
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/article-breadcrumb-social.cjs +7 -28
- package/dist/article-breadcrumb-social.d.cts +5 -1
- package/dist/article-breadcrumb-social.d.ts +5 -1
- package/dist/article-breadcrumb-social.js +7 -27
- package/dist/article-chapters-author.cjs +7 -39
- package/dist/article-chapters-author.d.cts +5 -1
- package/dist/article-chapters-author.d.ts +5 -1
- package/dist/article-chapters-author.js +7 -39
- package/dist/article-compact-toc.cjs +23 -31
- package/dist/article-compact-toc.d.cts +5 -1
- package/dist/article-compact-toc.d.ts +5 -1
- package/dist/article-compact-toc.js +23 -31
- package/dist/article-hero-prose.cjs +1 -1
- package/dist/article-hero-prose.js +1 -1
- package/dist/article-sidebar-sticky.cjs +2 -2
- package/dist/article-sidebar-sticky.js +2 -2
- package/dist/article-split-animated.cjs +9 -28
- package/dist/article-split-animated.d.cts +1 -11
- package/dist/article-split-animated.d.ts +1 -11
- package/dist/article-split-animated.js +9 -28
- package/dist/carousel-portfolio-hero.cjs +1 -1
- package/dist/carousel-portfolio-hero.js +1 -1
- package/dist/registry.cjs +50 -78
- package/dist/registry.js +50 -78
- package/package.json +1 -1
|
@@ -974,7 +974,8 @@ function ArticleCompactTocComponent({
|
|
|
974
974
|
containerClassName = "px-6 sm:px-6 md:px-8 lg:px-8",
|
|
975
975
|
spacing = "hero",
|
|
976
976
|
pattern,
|
|
977
|
-
patternOpacity
|
|
977
|
+
patternOpacity,
|
|
978
|
+
patternClassName
|
|
978
979
|
}) {
|
|
979
980
|
const [activeSection, setActiveSection] = React5.useState(
|
|
980
981
|
sections?.[0]?.id || ""
|
|
@@ -1015,7 +1016,7 @@ function ArticleCompactTocComponent({
|
|
|
1015
1016
|
if (shareSlot) return shareSlot;
|
|
1016
1017
|
if (!socialLinks || socialLinks.length === 0) return null;
|
|
1017
1018
|
return /* @__PURE__ */ jsxs("div", { className: cn("mt-6 flex items-center gap-2", shareClassName), children: [
|
|
1018
|
-
/* @__PURE__ */ jsx("span", { className: "text-sm
|
|
1019
|
+
/* @__PURE__ */ jsx("span", { className: "text-sm", children: "Share:" }),
|
|
1019
1020
|
socialLinks.map((link, index) => /* @__PURE__ */ jsx(
|
|
1020
1021
|
Pressable,
|
|
1021
1022
|
{
|
|
@@ -1042,7 +1043,7 @@ function ArticleCompactTocComponent({
|
|
|
1042
1043
|
href: `#${section.id}`,
|
|
1043
1044
|
className: cn(
|
|
1044
1045
|
"block text-sm transition-colors",
|
|
1045
|
-
isActive ? "
|
|
1046
|
+
isActive ? "underline" : ""
|
|
1046
1047
|
),
|
|
1047
1048
|
onClick: onLinkClick,
|
|
1048
1049
|
children: section.title
|
|
@@ -1086,23 +1087,14 @@ function ArticleCompactTocComponent({
|
|
|
1086
1087
|
)
|
|
1087
1088
|
] }) });
|
|
1088
1089
|
}, [tocSlot, sections, isTocOpen, tocClassName, renderTocLinks]);
|
|
1090
|
+
const hasDesktopToc = !tocSlot && sections && sections.length > 0;
|
|
1089
1091
|
const desktopTocContent = React5.useMemo(() => {
|
|
1090
|
-
if (
|
|
1091
|
-
|
|
1092
|
-
|
|
1093
|
-
|
|
1094
|
-
|
|
1095
|
-
|
|
1096
|
-
"hidden lg:block fixed top-24 right-8 w-64 max-h-[calc(100vh-8rem)] overflow-y-auto",
|
|
1097
|
-
tocClassName
|
|
1098
|
-
),
|
|
1099
|
-
children: /* @__PURE__ */ jsxs("nav", { className: "space-y-2 rounded-lg border bg-background p-4", children: [
|
|
1100
|
-
/* @__PURE__ */ jsx("span", { className: "mb-3 block text-sm font-semibold", children: "Table of Contents" }),
|
|
1101
|
-
renderTocLinks()
|
|
1102
|
-
] })
|
|
1103
|
-
}
|
|
1104
|
-
);
|
|
1105
|
-
}, [tocSlot, sections, tocClassName, renderTocLinks]);
|
|
1092
|
+
if (!hasDesktopToc) return null;
|
|
1093
|
+
return /* @__PURE__ */ jsx("aside", { className: cn("hidden lg:block w-64 shrink-0", tocClassName), children: /* @__PURE__ */ jsxs("nav", { className: "sticky top-24 max-h-[calc(100vh-8rem)] overflow-y-auto space-y-2 rounded-lg border p-4", children: [
|
|
1094
|
+
/* @__PURE__ */ jsx("span", { className: "mb-3 block text-sm font-semibold", children: "Table of Contents" }),
|
|
1095
|
+
renderTocLinks()
|
|
1096
|
+
] }) });
|
|
1097
|
+
}, [hasDesktopToc, tocClassName, renderTocLinks]);
|
|
1106
1098
|
const heroMediaContent = React5.useMemo(() => {
|
|
1107
1099
|
if (heroMediaSlot) return heroMediaSlot;
|
|
1108
1100
|
if (!heroImageSrc) return null;
|
|
@@ -1125,20 +1117,20 @@ function ArticleCompactTocComponent({
|
|
|
1125
1117
|
heroImageClassName,
|
|
1126
1118
|
optixFlowConfig
|
|
1127
1119
|
]);
|
|
1128
|
-
return /* @__PURE__ */
|
|
1120
|
+
return /* @__PURE__ */ jsx(
|
|
1129
1121
|
Section,
|
|
1130
1122
|
{
|
|
1131
1123
|
background,
|
|
1132
1124
|
spacing,
|
|
1133
1125
|
pattern,
|
|
1134
1126
|
patternOpacity,
|
|
1135
|
-
|
|
1127
|
+
patternClassName,
|
|
1128
|
+
className: cn(pattern && "overflow-visible", className),
|
|
1136
1129
|
containerClassName,
|
|
1137
|
-
children: [
|
|
1138
|
-
|
|
1139
|
-
/* @__PURE__ */ jsxs("div", { className: cn("
|
|
1140
|
-
|
|
1141
|
-
/* @__PURE__ */ jsxs("div", { className: "relative", children: [
|
|
1130
|
+
children: /* @__PURE__ */ jsxs("div", { className: "relative", children: [
|
|
1131
|
+
breadcrumbsContent,
|
|
1132
|
+
/* @__PURE__ */ jsxs("div", { className: cn("relative", hasDesktopToc && "lg:flex lg:gap-8"), children: [
|
|
1133
|
+
/* @__PURE__ */ jsxs("div", { className: cn(hasDesktopToc && "min-w-0 lg:flex-1"), children: [
|
|
1142
1134
|
title && (typeof title === "string" ? /* @__PURE__ */ jsx(
|
|
1143
1135
|
"h1",
|
|
1144
1136
|
{
|
|
@@ -1153,11 +1145,11 @@ function ArticleCompactTocComponent({
|
|
|
1153
1145
|
"div",
|
|
1154
1146
|
{
|
|
1155
1147
|
className: cn(
|
|
1156
|
-
"mt-4 flex flex-wrap items-center gap-4 text-sm
|
|
1148
|
+
"mt-4 flex flex-wrap items-center gap-4 text-sm",
|
|
1157
1149
|
metaClassName
|
|
1158
1150
|
),
|
|
1159
1151
|
children: [
|
|
1160
|
-
authorName &&
|
|
1152
|
+
authorName && /* @__PURE__ */ jsx(Pressable, { href: authorHref, children: authorName }),
|
|
1161
1153
|
authorName && publishDate && /* @__PURE__ */ jsx(Separator, { orientation: "vertical", className: "h-4" }),
|
|
1162
1154
|
publishDate && /* @__PURE__ */ jsx("span", { children: publishDate }),
|
|
1163
1155
|
publishDate && readTime && /* @__PURE__ */ jsx(Separator, { orientation: "vertical", className: "h-4" }),
|
|
@@ -1166,7 +1158,6 @@ function ArticleCompactTocComponent({
|
|
|
1166
1158
|
}
|
|
1167
1159
|
),
|
|
1168
1160
|
shareContent,
|
|
1169
|
-
/* @__PURE__ */ jsx(Separator, { className: "my-8" }),
|
|
1170
1161
|
tocContent,
|
|
1171
1162
|
children && /* @__PURE__ */ jsxs(
|
|
1172
1163
|
"article",
|
|
@@ -1181,9 +1172,10 @@ function ArticleCompactTocComponent({
|
|
|
1181
1172
|
]
|
|
1182
1173
|
}
|
|
1183
1174
|
)
|
|
1184
|
-
] })
|
|
1175
|
+
] }),
|
|
1176
|
+
desktopTocContent
|
|
1185
1177
|
] })
|
|
1186
|
-
]
|
|
1178
|
+
] })
|
|
1187
1179
|
}
|
|
1188
1180
|
);
|
|
1189
1181
|
}
|
|
@@ -925,7 +925,7 @@ function ArticleSidebarStickyComponent({
|
|
|
925
925
|
{
|
|
926
926
|
href: backHref,
|
|
927
927
|
className: cn(
|
|
928
|
-
"inline-flex items-center gap-2 text-sm
|
|
928
|
+
"inline-flex items-center gap-2 text-sm",
|
|
929
929
|
backLinkClassName
|
|
930
930
|
),
|
|
931
931
|
children: [
|
|
@@ -954,7 +954,7 @@ function ArticleSidebarStickyComponent({
|
|
|
954
954
|
children: authorName
|
|
955
955
|
}
|
|
956
956
|
) : /* @__PURE__ */ jsxRuntime.jsx("p", { className: "text-sm font-medium", children: authorName }),
|
|
957
|
-
publishDate && /* @__PURE__ */ jsxRuntime.jsx("p", { className: "text-xs
|
|
957
|
+
publishDate && /* @__PURE__ */ jsxRuntime.jsx("p", { className: "text-xs", children: publishDate })
|
|
958
958
|
] })
|
|
959
959
|
] });
|
|
960
960
|
},
|
|
@@ -903,7 +903,7 @@ function ArticleSidebarStickyComponent({
|
|
|
903
903
|
{
|
|
904
904
|
href: backHref,
|
|
905
905
|
className: cn(
|
|
906
|
-
"inline-flex items-center gap-2 text-sm
|
|
906
|
+
"inline-flex items-center gap-2 text-sm",
|
|
907
907
|
backLinkClassName
|
|
908
908
|
),
|
|
909
909
|
children: [
|
|
@@ -932,7 +932,7 @@ function ArticleSidebarStickyComponent({
|
|
|
932
932
|
children: authorName
|
|
933
933
|
}
|
|
934
934
|
) : /* @__PURE__ */ jsx("p", { className: "text-sm font-medium", children: authorName }),
|
|
935
|
-
publishDate && /* @__PURE__ */ jsx("p", { className: "text-xs
|
|
935
|
+
publishDate && /* @__PURE__ */ jsx("p", { className: "text-xs", children: publishDate })
|
|
936
936
|
] })
|
|
937
937
|
] });
|
|
938
938
|
},
|
|
@@ -898,7 +898,6 @@ var Section = React__namespace.default.forwardRef(
|
|
|
898
898
|
Section.displayName = "Section";
|
|
899
899
|
function ArticleSplitAnimatedComponent({
|
|
900
900
|
className,
|
|
901
|
-
containerClassName,
|
|
902
901
|
imageContainerClassName,
|
|
903
902
|
contentClassName,
|
|
904
903
|
titleClassName,
|
|
@@ -922,25 +921,16 @@ function ArticleSplitAnimatedComponent({
|
|
|
922
921
|
category,
|
|
923
922
|
categoryHref,
|
|
924
923
|
categorySlot,
|
|
925
|
-
ctaActions
|
|
926
|
-
ctaText,
|
|
927
|
-
ctaHref,
|
|
924
|
+
ctaActions,
|
|
928
925
|
ctaSlot,
|
|
929
926
|
enableAnimations = true,
|
|
930
927
|
optixFlowConfig,
|
|
931
928
|
background,
|
|
932
|
-
spacing,
|
|
933
929
|
pattern,
|
|
934
|
-
patternOpacity
|
|
930
|
+
patternOpacity,
|
|
931
|
+
containerClassName = "px-6 sm:px-6 md:px-8 lg:px-8",
|
|
932
|
+
spacing = "lg"
|
|
935
933
|
}) {
|
|
936
|
-
const ctaActions = ctaActionsProp ?? (ctaText ? [
|
|
937
|
-
{
|
|
938
|
-
label: ctaText,
|
|
939
|
-
href: ctaHref || "#",
|
|
940
|
-
variant: "default",
|
|
941
|
-
size: "lg"
|
|
942
|
-
}
|
|
943
|
-
] : []);
|
|
944
934
|
const MotionWrapper = enableAnimations ? framerMotion.motion.div : "div";
|
|
945
935
|
const categoryContent = React__namespace.useMemo(() => {
|
|
946
936
|
if (categorySlot) return categorySlot;
|
|
@@ -950,7 +940,7 @@ function ArticleSplitAnimatedComponent({
|
|
|
950
940
|
{
|
|
951
941
|
href: categoryHref,
|
|
952
942
|
className: cn(
|
|
953
|
-
"inline-block rounded-full bg-primary
|
|
943
|
+
"inline-block rounded-full bg-primary px-3 py-1 text-sm font-medium text-primary-foreground backdrop-blur-sm transition-colors",
|
|
954
944
|
categoryClassName
|
|
955
945
|
),
|
|
956
946
|
children: category
|
|
@@ -987,7 +977,7 @@ function ArticleSplitAnimatedComponent({
|
|
|
987
977
|
children: authorName
|
|
988
978
|
}
|
|
989
979
|
) : /* @__PURE__ */ jsxRuntime.jsx("p", { className: "font-medium", children: authorName }),
|
|
990
|
-
authorRole && /* @__PURE__ */ jsxRuntime.jsx("p", { className: "text-sm
|
|
980
|
+
authorRole && /* @__PURE__ */ jsxRuntime.jsx("p", { className: "text-sm ", children: authorRole })
|
|
991
981
|
] })
|
|
992
982
|
] });
|
|
993
983
|
}, [
|
|
@@ -1072,7 +1062,7 @@ function ArticleSplitAnimatedComponent({
|
|
|
1072
1062
|
"div",
|
|
1073
1063
|
{
|
|
1074
1064
|
className: cn(
|
|
1075
|
-
"flex items-center gap-4 text-sm
|
|
1065
|
+
"flex items-center gap-4 text-sm ",
|
|
1076
1066
|
metaClassName
|
|
1077
1067
|
),
|
|
1078
1068
|
children: [
|
|
@@ -1091,17 +1081,8 @@ function ArticleSplitAnimatedComponent({
|
|
|
1091
1081
|
),
|
|
1092
1082
|
children: title
|
|
1093
1083
|
}
|
|
1094
|
-
) :
|
|
1095
|
-
description && (typeof description === "string" ? /* @__PURE__ */ jsxRuntime.jsx(
|
|
1096
|
-
"p",
|
|
1097
|
-
{
|
|
1098
|
-
className: cn(
|
|
1099
|
-
"mt-4 text-lg text-muted-foreground",
|
|
1100
|
-
descriptionClassName
|
|
1101
|
-
),
|
|
1102
|
-
children: description
|
|
1103
|
-
}
|
|
1104
|
-
) : /* @__PURE__ */ jsxRuntime.jsx("div", { className: cn("mt-4", descriptionClassName), children: description })),
|
|
1084
|
+
) : title),
|
|
1085
|
+
description && (typeof description === "string" ? /* @__PURE__ */ jsxRuntime.jsx("p", { className: cn("mt-4 text-lg", descriptionClassName), children: description }) : description),
|
|
1105
1086
|
authorContent,
|
|
1106
1087
|
ctaContent
|
|
1107
1088
|
]
|
|
@@ -112,16 +112,6 @@ interface ArticleSplitAnimatedProps {
|
|
|
112
112
|
* CTA actions
|
|
113
113
|
*/
|
|
114
114
|
ctaActions?: ActionConfig[];
|
|
115
|
-
/**
|
|
116
|
-
* @deprecated Use ctaActions instead
|
|
117
|
-
* CTA button text (backward compatibility)
|
|
118
|
-
*/
|
|
119
|
-
ctaText?: string;
|
|
120
|
-
/**
|
|
121
|
-
* @deprecated Use ctaActions instead
|
|
122
|
-
* CTA button href (backward compatibility)
|
|
123
|
-
*/
|
|
124
|
-
ctaHref?: string;
|
|
125
115
|
/**
|
|
126
116
|
* Custom slot for CTA section (overrides ctaActions)
|
|
127
117
|
*/
|
|
@@ -152,6 +142,6 @@ interface ArticleSplitAnimatedProps {
|
|
|
152
142
|
*/
|
|
153
143
|
patternOpacity?: number;
|
|
154
144
|
}
|
|
155
|
-
declare function ArticleSplitAnimatedComponent({ className,
|
|
145
|
+
declare function ArticleSplitAnimatedComponent({ className, imageContainerClassName, contentClassName, titleClassName, descriptionClassName, authorClassName, categoryClassName, metaClassName, ctaClassName, title, description, image, imageAlt, heroMediaSlot, authorName, authorImage, authorRole, authorHref, authorSlot, publishDate, readTime, category, categoryHref, categorySlot, ctaActions, ctaSlot, enableAnimations, optixFlowConfig, background, pattern, patternOpacity, containerClassName, spacing, }: ArticleSplitAnimatedProps): react_jsx_runtime.JSX.Element;
|
|
156
146
|
|
|
157
147
|
export { ArticleSplitAnimatedComponent as ArticleSplitAnimated, type ArticleSplitAnimatedProps };
|
|
@@ -112,16 +112,6 @@ interface ArticleSplitAnimatedProps {
|
|
|
112
112
|
* CTA actions
|
|
113
113
|
*/
|
|
114
114
|
ctaActions?: ActionConfig[];
|
|
115
|
-
/**
|
|
116
|
-
* @deprecated Use ctaActions instead
|
|
117
|
-
* CTA button text (backward compatibility)
|
|
118
|
-
*/
|
|
119
|
-
ctaText?: string;
|
|
120
|
-
/**
|
|
121
|
-
* @deprecated Use ctaActions instead
|
|
122
|
-
* CTA button href (backward compatibility)
|
|
123
|
-
*/
|
|
124
|
-
ctaHref?: string;
|
|
125
115
|
/**
|
|
126
116
|
* Custom slot for CTA section (overrides ctaActions)
|
|
127
117
|
*/
|
|
@@ -152,6 +142,6 @@ interface ArticleSplitAnimatedProps {
|
|
|
152
142
|
*/
|
|
153
143
|
patternOpacity?: number;
|
|
154
144
|
}
|
|
155
|
-
declare function ArticleSplitAnimatedComponent({ className,
|
|
145
|
+
declare function ArticleSplitAnimatedComponent({ className, imageContainerClassName, contentClassName, titleClassName, descriptionClassName, authorClassName, categoryClassName, metaClassName, ctaClassName, title, description, image, imageAlt, heroMediaSlot, authorName, authorImage, authorRole, authorHref, authorSlot, publishDate, readTime, category, categoryHref, categorySlot, ctaActions, ctaSlot, enableAnimations, optixFlowConfig, background, pattern, patternOpacity, containerClassName, spacing, }: ArticleSplitAnimatedProps): react_jsx_runtime.JSX.Element;
|
|
156
146
|
|
|
157
147
|
export { ArticleSplitAnimatedComponent as ArticleSplitAnimated, type ArticleSplitAnimatedProps };
|
|
@@ -875,7 +875,6 @@ var Section = React__default.forwardRef(
|
|
|
875
875
|
Section.displayName = "Section";
|
|
876
876
|
function ArticleSplitAnimatedComponent({
|
|
877
877
|
className,
|
|
878
|
-
containerClassName,
|
|
879
878
|
imageContainerClassName,
|
|
880
879
|
contentClassName,
|
|
881
880
|
titleClassName,
|
|
@@ -899,25 +898,16 @@ function ArticleSplitAnimatedComponent({
|
|
|
899
898
|
category,
|
|
900
899
|
categoryHref,
|
|
901
900
|
categorySlot,
|
|
902
|
-
ctaActions
|
|
903
|
-
ctaText,
|
|
904
|
-
ctaHref,
|
|
901
|
+
ctaActions,
|
|
905
902
|
ctaSlot,
|
|
906
903
|
enableAnimations = true,
|
|
907
904
|
optixFlowConfig,
|
|
908
905
|
background,
|
|
909
|
-
spacing,
|
|
910
906
|
pattern,
|
|
911
|
-
patternOpacity
|
|
907
|
+
patternOpacity,
|
|
908
|
+
containerClassName = "px-6 sm:px-6 md:px-8 lg:px-8",
|
|
909
|
+
spacing = "lg"
|
|
912
910
|
}) {
|
|
913
|
-
const ctaActions = ctaActionsProp ?? (ctaText ? [
|
|
914
|
-
{
|
|
915
|
-
label: ctaText,
|
|
916
|
-
href: ctaHref || "#",
|
|
917
|
-
variant: "default",
|
|
918
|
-
size: "lg"
|
|
919
|
-
}
|
|
920
|
-
] : []);
|
|
921
911
|
const MotionWrapper = enableAnimations ? motion.div : "div";
|
|
922
912
|
const categoryContent = React.useMemo(() => {
|
|
923
913
|
if (categorySlot) return categorySlot;
|
|
@@ -927,7 +917,7 @@ function ArticleSplitAnimatedComponent({
|
|
|
927
917
|
{
|
|
928
918
|
href: categoryHref,
|
|
929
919
|
className: cn(
|
|
930
|
-
"inline-block rounded-full bg-primary
|
|
920
|
+
"inline-block rounded-full bg-primary px-3 py-1 text-sm font-medium text-primary-foreground backdrop-blur-sm transition-colors",
|
|
931
921
|
categoryClassName
|
|
932
922
|
),
|
|
933
923
|
children: category
|
|
@@ -964,7 +954,7 @@ function ArticleSplitAnimatedComponent({
|
|
|
964
954
|
children: authorName
|
|
965
955
|
}
|
|
966
956
|
) : /* @__PURE__ */ jsx("p", { className: "font-medium", children: authorName }),
|
|
967
|
-
authorRole && /* @__PURE__ */ jsx("p", { className: "text-sm
|
|
957
|
+
authorRole && /* @__PURE__ */ jsx("p", { className: "text-sm ", children: authorRole })
|
|
968
958
|
] })
|
|
969
959
|
] });
|
|
970
960
|
}, [
|
|
@@ -1049,7 +1039,7 @@ function ArticleSplitAnimatedComponent({
|
|
|
1049
1039
|
"div",
|
|
1050
1040
|
{
|
|
1051
1041
|
className: cn(
|
|
1052
|
-
"flex items-center gap-4 text-sm
|
|
1042
|
+
"flex items-center gap-4 text-sm ",
|
|
1053
1043
|
metaClassName
|
|
1054
1044
|
),
|
|
1055
1045
|
children: [
|
|
@@ -1068,17 +1058,8 @@ function ArticleSplitAnimatedComponent({
|
|
|
1068
1058
|
),
|
|
1069
1059
|
children: title
|
|
1070
1060
|
}
|
|
1071
|
-
) :
|
|
1072
|
-
description && (typeof description === "string" ? /* @__PURE__ */ jsx(
|
|
1073
|
-
"p",
|
|
1074
|
-
{
|
|
1075
|
-
className: cn(
|
|
1076
|
-
"mt-4 text-lg text-muted-foreground",
|
|
1077
|
-
descriptionClassName
|
|
1078
|
-
),
|
|
1079
|
-
children: description
|
|
1080
|
-
}
|
|
1081
|
-
) : /* @__PURE__ */ jsx("div", { className: cn("mt-4", descriptionClassName), children: description })),
|
|
1061
|
+
) : title),
|
|
1062
|
+
description && (typeof description === "string" ? /* @__PURE__ */ jsx("p", { className: cn("mt-4 text-lg", descriptionClassName), children: description }) : description),
|
|
1082
1063
|
authorContent,
|
|
1083
1064
|
ctaContent
|
|
1084
1065
|
]
|