@parto-system-design/ui 1.0.5 → 1.1.1
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.cjs +163 -106
- package/dist/index.cjs.map +1 -1
- package/dist/index.css +39 -20
- package/dist/index.d.cts +4 -0
- package/dist/index.d.ts +4 -0
- package/dist/index.js +163 -106
- package/dist/index.js.map +1 -1
- package/package.json +1 -1
package/dist/index.css
CHANGED
|
@@ -245,8 +245,8 @@
|
|
|
245
245
|
.max-h-\[300px\] {
|
|
246
246
|
max-height: 300px;
|
|
247
247
|
}
|
|
248
|
-
.min-h-\[
|
|
249
|
-
min-height:
|
|
248
|
+
.min-h-\[34px\] {
|
|
249
|
+
min-height: 34px;
|
|
250
250
|
}
|
|
251
251
|
.min-h-\[200px\] {
|
|
252
252
|
min-height: 200px;
|
|
@@ -320,8 +320,8 @@
|
|
|
320
320
|
.min-w-\[12rem\] {
|
|
321
321
|
min-width: 12rem;
|
|
322
322
|
}
|
|
323
|
-
.min-w-\[
|
|
324
|
-
min-width:
|
|
323
|
+
.min-w-\[80px\] {
|
|
324
|
+
min-width: 80px;
|
|
325
325
|
}
|
|
326
326
|
.min-w-\[140px\] {
|
|
327
327
|
min-width: 140px;
|
|
@@ -886,27 +886,27 @@
|
|
|
886
886
|
.bg-warning-300 {
|
|
887
887
|
background-color: hsl(var(--warning-300));
|
|
888
888
|
}
|
|
889
|
+
.bg-warning-500 {
|
|
890
|
+
background-color: hsl(var(--warning-500));
|
|
891
|
+
}
|
|
889
892
|
.bg-warning-600 {
|
|
890
893
|
background-color: hsl(var(--warning-600));
|
|
891
894
|
}
|
|
892
|
-
.bg-yellow-500 {
|
|
893
|
-
background-color: #eab308;
|
|
894
|
-
}
|
|
895
895
|
.bg-gradient-to-br {
|
|
896
896
|
--tw-gradient-position: to bottom right in oklab;
|
|
897
897
|
background-image: linear-gradient(var(--tw-gradient-stops));
|
|
898
898
|
}
|
|
899
|
-
.from-
|
|
900
|
-
--tw-gradient-from:
|
|
899
|
+
.from-brand-400 {
|
|
900
|
+
--tw-gradient-from: hsl(var(--brand-400));
|
|
901
901
|
--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));
|
|
902
902
|
}
|
|
903
|
-
.via-
|
|
904
|
-
--tw-gradient-via:
|
|
903
|
+
.via-brand {
|
|
904
|
+
--tw-gradient-via: hsl(var(--brand-default));
|
|
905
905
|
--tw-gradient-via-stops: var(--tw-gradient-position), var(--tw-gradient-from) var(--tw-gradient-from-position), var(--tw-gradient-via) var(--tw-gradient-via-position), var(--tw-gradient-to) var(--tw-gradient-to-position);
|
|
906
906
|
--tw-gradient-stops: var(--tw-gradient-via-stops);
|
|
907
907
|
}
|
|
908
|
-
.to-
|
|
909
|
-
--tw-gradient-to:
|
|
908
|
+
.to-brand-400 {
|
|
909
|
+
--tw-gradient-to: hsl(var(--brand-400));
|
|
910
910
|
--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));
|
|
911
911
|
}
|
|
912
912
|
.fill-brand {
|
|
@@ -915,6 +915,9 @@
|
|
|
915
915
|
.fill-current {
|
|
916
916
|
fill: currentcolor;
|
|
917
917
|
}
|
|
918
|
+
.object-contain {
|
|
919
|
+
object-fit: contain;
|
|
920
|
+
}
|
|
918
921
|
.object-cover {
|
|
919
922
|
object-fit: cover;
|
|
920
923
|
}
|
|
@@ -1107,6 +1110,9 @@
|
|
|
1107
1110
|
.opacity-0 {
|
|
1108
1111
|
opacity: 0%;
|
|
1109
1112
|
}
|
|
1113
|
+
.opacity-40 {
|
|
1114
|
+
opacity: 40%;
|
|
1115
|
+
}
|
|
1110
1116
|
.opacity-50 {
|
|
1111
1117
|
opacity: 50%;
|
|
1112
1118
|
}
|
|
@@ -1133,8 +1139,8 @@
|
|
|
1133
1139
|
--tw-ring-shadow: var(--tw-ring-inset,) 0 0 0 calc(2px + var(--tw-ring-offset-width)) var(--tw-ring-color, currentcolor);
|
|
1134
1140
|
box-shadow: var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow);
|
|
1135
1141
|
}
|
|
1136
|
-
.\[--tw-ring-color\:conic-gradient\(from_180deg\,\#
|
|
1137
|
-
--tw-ring-color: conic-gradient(from 180deg,#
|
|
1142
|
+
.\[--tw-ring-color\:conic-gradient\(from_180deg\,\#22c55e\,\#4ade80\,\#22c55e\)\] {
|
|
1143
|
+
--tw-ring-color: conic-gradient(from 180deg,#22c55e,#4ade80,#22c55e);
|
|
1138
1144
|
}
|
|
1139
1145
|
.ring-background {
|
|
1140
1146
|
--tw-ring-color: hsl(var(--background-default));
|
|
@@ -1313,6 +1319,13 @@
|
|
|
1313
1319
|
}
|
|
1314
1320
|
}
|
|
1315
1321
|
}
|
|
1322
|
+
.group-hover\:scale-\[1\.02\] {
|
|
1323
|
+
&:is(:where(.group):hover *) {
|
|
1324
|
+
@media (hover: hover) {
|
|
1325
|
+
scale: 1.02;
|
|
1326
|
+
}
|
|
1327
|
+
}
|
|
1328
|
+
}
|
|
1316
1329
|
.group-hover\:opacity-100 {
|
|
1317
1330
|
&:is(:where(.group):hover *) {
|
|
1318
1331
|
@media (hover: hover) {
|
|
@@ -1667,6 +1680,17 @@
|
|
|
1667
1680
|
--tw-ring-offset-shadow: var(--tw-ring-inset,) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color);
|
|
1668
1681
|
}
|
|
1669
1682
|
}
|
|
1683
|
+
.focus-within\:ring-offset-foreground-muted {
|
|
1684
|
+
&:focus-within {
|
|
1685
|
+
--tw-ring-offset-color: hsl(var(--foreground-muted));
|
|
1686
|
+
}
|
|
1687
|
+
}
|
|
1688
|
+
.focus-within\:outline-none {
|
|
1689
|
+
&:focus-within {
|
|
1690
|
+
--tw-outline-style: none;
|
|
1691
|
+
outline-style: none;
|
|
1692
|
+
}
|
|
1693
|
+
}
|
|
1670
1694
|
.hover\:border-brand-600 {
|
|
1671
1695
|
&:hover {
|
|
1672
1696
|
@media (hover: hover) {
|
|
@@ -2140,11 +2164,6 @@
|
|
|
2140
2164
|
outline-offset: 1px;
|
|
2141
2165
|
}
|
|
2142
2166
|
}
|
|
2143
|
-
.focus-visible\:outline-amber-700 {
|
|
2144
|
-
&:focus-visible {
|
|
2145
|
-
outline-color: #b45309;
|
|
2146
|
-
}
|
|
2147
|
-
}
|
|
2148
2167
|
.focus-visible\:outline-border-strong {
|
|
2149
2168
|
&:focus-visible {
|
|
2150
2169
|
outline-color: hsl(var(--border-strong));
|
package/dist/index.d.cts
CHANGED
|
@@ -869,6 +869,10 @@ interface InstagramPostProps extends React$1.HTMLAttributes<HTMLDivElement>, Var
|
|
|
869
869
|
onAIAnalysis?: () => void;
|
|
870
870
|
onOpenInstagram?: () => void;
|
|
871
871
|
instagramUrl?: string;
|
|
872
|
+
disableCommentAnalyzer?: boolean;
|
|
873
|
+
disableBooster?: boolean;
|
|
874
|
+
disableAIAnalysis?: boolean;
|
|
875
|
+
disableOpenInstagram?: boolean;
|
|
872
876
|
placeholderText?: string;
|
|
873
877
|
}
|
|
874
878
|
declare const instagramPostVariants: (props?: ({
|
package/dist/index.d.ts
CHANGED
|
@@ -869,6 +869,10 @@ interface InstagramPostProps extends React$1.HTMLAttributes<HTMLDivElement>, Var
|
|
|
869
869
|
onAIAnalysis?: () => void;
|
|
870
870
|
onOpenInstagram?: () => void;
|
|
871
871
|
instagramUrl?: string;
|
|
872
|
+
disableCommentAnalyzer?: boolean;
|
|
873
|
+
disableBooster?: boolean;
|
|
874
|
+
disableAIAnalysis?: boolean;
|
|
875
|
+
disableOpenInstagram?: boolean;
|
|
872
876
|
placeholderText?: string;
|
|
873
877
|
}
|
|
874
878
|
declare const instagramPostVariants: (props?: ({
|
package/dist/index.js
CHANGED
|
@@ -668,7 +668,7 @@ var buttonVariants = cva2(
|
|
|
668
668
|
bg-destructive-300 dark:bg-destructive-400 hover:bg-destructive-400 dark:hover:bg-destructive/50
|
|
669
669
|
border-destructive-500 hover:border-destructive
|
|
670
670
|
hover:text-hi-contrast
|
|
671
|
-
focus-visible:outline-
|
|
671
|
+
focus-visible:outline-brand-600
|
|
672
672
|
data-[state=open]:border-destructive
|
|
673
673
|
data-[state=open]:bg-destructive-400 dark:data-[state=open]:bg-destructive/50
|
|
674
674
|
data-[state=open]:outline-destructive
|
|
@@ -678,7 +678,7 @@ var buttonVariants = cva2(
|
|
|
678
678
|
bg-warning-300 dark:bg-warning-400 hover:bg-warning-400 dark:hover:bg-warning/50
|
|
679
679
|
border-warning-500 hover:border-warning
|
|
680
680
|
hover:text-hi-contrast
|
|
681
|
-
focus-visible:outline-
|
|
681
|
+
focus-visible:outline-brand-600
|
|
682
682
|
data-[state=open]:border-warning
|
|
683
683
|
data-[state=open]:bg-warning-400 dark:data-[state=open]:bg-warning/50
|
|
684
684
|
data-[state=open]:outline-warning
|
|
@@ -688,7 +688,7 @@ var buttonVariants = cva2(
|
|
|
688
688
|
bg-destructive-300 dark:bg-destructive-400 hover:bg-destructive-400 dark:hover:bg-destructive/50
|
|
689
689
|
border-destructive-500 hover:border-destructive
|
|
690
690
|
hover:text-hi-contrast
|
|
691
|
-
focus-visible:outline-
|
|
691
|
+
focus-visible:outline-brand-600
|
|
692
692
|
data-[state=open]:border-destructive
|
|
693
693
|
data-[state=open]:bg-destructive-400 dark:data-[state=open]:bg-destructive/50
|
|
694
694
|
data-[state=open]:outline-destructive
|
|
@@ -4014,12 +4014,16 @@ import { X as X3 } from "lucide-react";
|
|
|
4014
4014
|
import { cva as cva7 } from "class-variance-authority";
|
|
4015
4015
|
import { jsx as jsx35, jsxs as jsxs20 } from "react/jsx-runtime";
|
|
4016
4016
|
var tagInputVariants = cva7(
|
|
4017
|
-
|
|
4017
|
+
cn(
|
|
4018
|
+
"flex min-h-[34px] w-full flex-wrap gap-1.5 rounded-md border border-control bg-foreground/[.026] px-3 py-1.5 text-sm text-foreground",
|
|
4019
|
+
"focus-within:outline-none focus-within:ring-2 focus-within:ring-background-control focus-within:ring-offset-2 focus-within:ring-offset-foreground-muted",
|
|
4020
|
+
"disabled:cursor-not-allowed disabled:text-foreground-muted disabled:opacity-50"
|
|
4021
|
+
),
|
|
4018
4022
|
{
|
|
4019
4023
|
variants: {
|
|
4020
4024
|
variant: {
|
|
4021
|
-
default: "
|
|
4022
|
-
secondary: "bg-
|
|
4025
|
+
default: "",
|
|
4026
|
+
secondary: "bg-surface-200"
|
|
4023
4027
|
}
|
|
4024
4028
|
},
|
|
4025
4029
|
defaultVariants: {
|
|
@@ -4090,7 +4094,7 @@ var TagInput = React14.forwardRef(
|
|
|
4090
4094
|
Badge,
|
|
4091
4095
|
{
|
|
4092
4096
|
variant: "secondary",
|
|
4093
|
-
className: "gap-1 pe-1 ps-2 h-
|
|
4097
|
+
className: "gap-1 pe-1 ps-2 h-6 text-xs font-medium hover:!bg-primary/20 hover:!text-primary transition-colors [&:hover_svg]:!text-primary",
|
|
4094
4098
|
children: [
|
|
4095
4099
|
tag,
|
|
4096
4100
|
/* @__PURE__ */ jsxs20(
|
|
@@ -4124,7 +4128,7 @@ var TagInput = React14.forwardRef(
|
|
|
4124
4128
|
value: inputValue,
|
|
4125
4129
|
onChange: (e) => setInputValue(e.target.value),
|
|
4126
4130
|
onKeyDown: handleKeyDown,
|
|
4127
|
-
className: "flex-1 bg-transparent outline-none placeholder:text-muted
|
|
4131
|
+
className: "flex-1 bg-transparent outline-none placeholder:text-foreground-muted min-w-[80px] text-sm leading-4",
|
|
4128
4132
|
placeholder: value.length === 0 ? placeholder : void 0,
|
|
4129
4133
|
disabled
|
|
4130
4134
|
}
|
|
@@ -4142,12 +4146,16 @@ import { X as X4 } from "lucide-react";
|
|
|
4142
4146
|
import { cva as cva8 } from "class-variance-authority";
|
|
4143
4147
|
import { jsx as jsx36, jsxs as jsxs21 } from "react/jsx-runtime";
|
|
4144
4148
|
var hashtagInputVariants = cva8(
|
|
4145
|
-
|
|
4149
|
+
cn(
|
|
4150
|
+
"flex min-h-[34px] w-full flex-wrap gap-1.5 rounded-md border border-control bg-foreground/[.026] px-3 py-1.5 text-sm text-foreground",
|
|
4151
|
+
"focus-within:outline-none focus-within:ring-2 focus-within:ring-background-control focus-within:ring-offset-2 focus-within:ring-offset-foreground-muted",
|
|
4152
|
+
"disabled:cursor-not-allowed disabled:text-foreground-muted disabled:opacity-50"
|
|
4153
|
+
),
|
|
4146
4154
|
{
|
|
4147
4155
|
variants: {
|
|
4148
4156
|
variant: {
|
|
4149
|
-
default: "
|
|
4150
|
-
secondary: "bg-
|
|
4157
|
+
default: "",
|
|
4158
|
+
secondary: "bg-surface-200"
|
|
4151
4159
|
}
|
|
4152
4160
|
},
|
|
4153
4161
|
defaultVariants: {
|
|
@@ -4218,7 +4226,7 @@ var HashtagInput = React15.forwardRef(
|
|
|
4218
4226
|
Badge,
|
|
4219
4227
|
{
|
|
4220
4228
|
variant: "secondary",
|
|
4221
|
-
className: "gap-1 pe-1 ps-2 h-
|
|
4229
|
+
className: "gap-1 pe-1 ps-2 h-6 text-xs font-medium hover:!bg-primary/20 hover:!text-primary transition-colors [&:hover_svg]:!text-primary",
|
|
4222
4230
|
children: [
|
|
4223
4231
|
"#",
|
|
4224
4232
|
tag,
|
|
@@ -4253,7 +4261,7 @@ var HashtagInput = React15.forwardRef(
|
|
|
4253
4261
|
value: inputValue,
|
|
4254
4262
|
onChange: (e) => setInputValue(e.target.value),
|
|
4255
4263
|
onKeyDown: handleKeyDown,
|
|
4256
|
-
className: "flex-1 bg-transparent outline-none placeholder:text-muted
|
|
4264
|
+
className: "flex-1 bg-transparent outline-none placeholder:text-foreground-muted min-w-[80px] text-sm leading-4",
|
|
4257
4265
|
placeholder: value.length === 0 ? placeholder : void 0,
|
|
4258
4266
|
disabled
|
|
4259
4267
|
}
|
|
@@ -4588,8 +4596,9 @@ function InstagramPostMedia({
|
|
|
4588
4596
|
{
|
|
4589
4597
|
className: cn(
|
|
4590
4598
|
"flex items-center justify-center bg-muted/30",
|
|
4591
|
-
variant === "vertical" ? "
|
|
4599
|
+
variant === "vertical" ? "w-full" : "w-[20%] shrink-0 h-full min-h-[200px] -my-[1px] -ms-[1px]"
|
|
4592
4600
|
),
|
|
4601
|
+
style: variant === "vertical" ? { aspectRatio: "4/5" } : void 0,
|
|
4593
4602
|
children: /* @__PURE__ */ jsxs23("div", { className: "text-center p-4", children: [
|
|
4594
4603
|
/* @__PURE__ */ jsx41(ImageOff, { className: "size-12 mx-auto mb-2 text-muted-foreground" }),
|
|
4595
4604
|
/* @__PURE__ */ jsx41("p", { className: "text-sm text-muted-foreground", children: placeholderText })
|
|
@@ -4613,19 +4622,33 @@ function InstagramPostMedia({
|
|
|
4613
4622
|
)
|
|
4614
4623
|
] });
|
|
4615
4624
|
}
|
|
4616
|
-
const
|
|
4617
|
-
|
|
4618
|
-
|
|
4619
|
-
|
|
4620
|
-
|
|
4621
|
-
|
|
4622
|
-
|
|
4623
|
-
|
|
4624
|
-
|
|
4625
|
-
|
|
4626
|
-
|
|
4627
|
-
|
|
4628
|
-
|
|
4625
|
+
const aspectRatio = item.aspectRatio || "4:5";
|
|
4626
|
+
const isPortrait = aspectRatio === "9:16" || aspectRatio === "4:5";
|
|
4627
|
+
const instagramRatio = isPortrait ? "4/5" : getAspectRatioCSS(aspectRatio);
|
|
4628
|
+
return /* @__PURE__ */ jsxs23(
|
|
4629
|
+
"div",
|
|
4630
|
+
{
|
|
4631
|
+
className: "w-full relative overflow-hidden group cursor-pointer bg-black",
|
|
4632
|
+
style: { aspectRatio: instagramRatio },
|
|
4633
|
+
children: [
|
|
4634
|
+
/* @__PURE__ */ jsx41("div", { className: "absolute inset-0 bg-black/0 group-hover:bg-black/20 transition-colors duration-300 z-10" }),
|
|
4635
|
+
imageError[item.url] ? renderPlaceholder() : /* @__PURE__ */ jsx41(
|
|
4636
|
+
"img",
|
|
4637
|
+
{
|
|
4638
|
+
src: item.url,
|
|
4639
|
+
alt: "Post media",
|
|
4640
|
+
className: cn(
|
|
4641
|
+
"w-full h-full transition-transform duration-300 group-hover:scale-[1.02]",
|
|
4642
|
+
// For portrait images: object-contain to show full image like Instagram
|
|
4643
|
+
// For square/landscape: object-cover
|
|
4644
|
+
isPortrait ? "object-contain" : "object-cover"
|
|
4645
|
+
),
|
|
4646
|
+
onError: () => handleImageError(item.url)
|
|
4647
|
+
}
|
|
4648
|
+
)
|
|
4649
|
+
]
|
|
4650
|
+
}
|
|
4651
|
+
);
|
|
4629
4652
|
}
|
|
4630
4653
|
if (mediaType === "video" || media.length === 1 && media[0].type === "video") {
|
|
4631
4654
|
const item = media[0];
|
|
@@ -4643,19 +4666,31 @@ function InstagramPostMedia({
|
|
|
4643
4666
|
)
|
|
4644
4667
|
] });
|
|
4645
4668
|
}
|
|
4646
|
-
const
|
|
4647
|
-
|
|
4648
|
-
|
|
4649
|
-
|
|
4650
|
-
|
|
4651
|
-
|
|
4652
|
-
|
|
4653
|
-
|
|
4654
|
-
|
|
4655
|
-
|
|
4656
|
-
|
|
4657
|
-
|
|
4658
|
-
|
|
4669
|
+
const aspectRatio = item.aspectRatio || "4:5";
|
|
4670
|
+
const isPortrait = aspectRatio === "9:16" || aspectRatio === "4:5";
|
|
4671
|
+
const instagramRatio = isPortrait ? "4/5" : getAspectRatioCSS(aspectRatio);
|
|
4672
|
+
return /* @__PURE__ */ jsxs23(
|
|
4673
|
+
"div",
|
|
4674
|
+
{
|
|
4675
|
+
className: "w-full relative overflow-hidden group cursor-pointer bg-black",
|
|
4676
|
+
style: { aspectRatio: instagramRatio },
|
|
4677
|
+
children: [
|
|
4678
|
+
/* @__PURE__ */ jsx41("div", { className: "absolute inset-0 bg-black/0 group-hover:bg-black/20 transition-colors duration-300 z-10" }),
|
|
4679
|
+
imageError[item.url] ? renderPlaceholder() : /* @__PURE__ */ jsx41(
|
|
4680
|
+
"img",
|
|
4681
|
+
{
|
|
4682
|
+
src: item.url,
|
|
4683
|
+
alt: "Post media",
|
|
4684
|
+
className: cn(
|
|
4685
|
+
"w-full h-full transition-transform duration-300 group-hover:scale-[1.02]",
|
|
4686
|
+
isPortrait ? "object-contain" : "object-cover"
|
|
4687
|
+
),
|
|
4688
|
+
onError: () => handleImageError(item.url)
|
|
4689
|
+
}
|
|
4690
|
+
)
|
|
4691
|
+
]
|
|
4692
|
+
}
|
|
4693
|
+
);
|
|
4659
4694
|
}
|
|
4660
4695
|
if (mediaType === "carousel" || media.length > 1) {
|
|
4661
4696
|
if (variant === "horizontal") {
|
|
@@ -4677,38 +4712,47 @@ function InstagramPostMedia({
|
|
|
4677
4712
|
] }) });
|
|
4678
4713
|
}
|
|
4679
4714
|
return /* @__PURE__ */ jsxs23(Carousel, { className: "w-full", children: [
|
|
4680
|
-
/* @__PURE__ */ jsx41(CarouselContent, { children: media.map((item, index) =>
|
|
4681
|
-
"
|
|
4682
|
-
|
|
4683
|
-
|
|
4684
|
-
|
|
4685
|
-
|
|
4686
|
-
|
|
4687
|
-
|
|
4688
|
-
|
|
4689
|
-
|
|
4690
|
-
|
|
4691
|
-
|
|
4692
|
-
|
|
4693
|
-
|
|
4694
|
-
|
|
4695
|
-
|
|
4696
|
-
|
|
4697
|
-
|
|
4698
|
-
|
|
4715
|
+
/* @__PURE__ */ jsx41(CarouselContent, { children: media.map((item, index) => {
|
|
4716
|
+
const itemAspect = item.aspectRatio || "4:5";
|
|
4717
|
+
const itemIsPortrait = itemAspect === "9:16" || itemAspect === "4:5";
|
|
4718
|
+
const itemRatio = itemIsPortrait ? "4/5" : getAspectRatioCSS(itemAspect);
|
|
4719
|
+
return /* @__PURE__ */ jsx41(CarouselItem, { children: /* @__PURE__ */ jsxs23(
|
|
4720
|
+
"div",
|
|
4721
|
+
{
|
|
4722
|
+
className: "w-full relative overflow-hidden group cursor-pointer bg-black",
|
|
4723
|
+
style: { aspectRatio: itemRatio },
|
|
4724
|
+
children: [
|
|
4725
|
+
/* @__PURE__ */ jsx41("div", { className: "absolute inset-0 bg-black/0 group-hover:bg-black/20 transition-colors duration-300 z-10" }),
|
|
4726
|
+
imageError[item.url] ? renderPlaceholder() : /* @__PURE__ */ jsx41(
|
|
4727
|
+
"img",
|
|
4728
|
+
{
|
|
4729
|
+
src: item.url,
|
|
4730
|
+
alt: `Post media ${index + 1}`,
|
|
4731
|
+
className: cn(
|
|
4732
|
+
"w-full h-full transition-transform duration-300",
|
|
4733
|
+
itemIsPortrait ? "object-contain" : "object-cover"
|
|
4734
|
+
),
|
|
4735
|
+
onError: () => handleImageError(item.url)
|
|
4736
|
+
}
|
|
4737
|
+
)
|
|
4738
|
+
]
|
|
4739
|
+
}
|
|
4740
|
+
) }, index);
|
|
4741
|
+
}) }),
|
|
4699
4742
|
/* @__PURE__ */ jsx41(CarouselPrevious, { className: "ms-2" }),
|
|
4700
4743
|
/* @__PURE__ */ jsx41(CarouselNext, { className: "me-2" })
|
|
4701
4744
|
] });
|
|
4702
4745
|
}
|
|
4703
4746
|
return null;
|
|
4704
4747
|
}
|
|
4705
|
-
function
|
|
4748
|
+
function getAspectRatioCSS(ratio) {
|
|
4706
4749
|
const ratios = {
|
|
4707
|
-
"16:9": 16
|
|
4708
|
-
"9:16":
|
|
4709
|
-
|
|
4710
|
-
"
|
|
4711
|
-
"5
|
|
4750
|
+
"16:9": "16/9",
|
|
4751
|
+
"9:16": "4/5",
|
|
4752
|
+
// Instagram standard portrait
|
|
4753
|
+
"1:1": "1/1",
|
|
4754
|
+
"4:5": "4/5",
|
|
4755
|
+
"5:4": "5/4"
|
|
4712
4756
|
};
|
|
4713
4757
|
return ratios[ratio];
|
|
4714
4758
|
}
|
|
@@ -4931,7 +4975,11 @@ function InstagramPostActions({
|
|
|
4931
4975
|
onBooster,
|
|
4932
4976
|
onAIAnalysis,
|
|
4933
4977
|
onOpenInstagram,
|
|
4934
|
-
instagramUrl
|
|
4978
|
+
instagramUrl,
|
|
4979
|
+
disableCommentAnalyzer = false,
|
|
4980
|
+
disableBooster = false,
|
|
4981
|
+
disableAIAnalysis = false,
|
|
4982
|
+
disableOpenInstagram = false
|
|
4935
4983
|
}) {
|
|
4936
4984
|
if (!showActions) return null;
|
|
4937
4985
|
const handleOpenInstagram = () => {
|
|
@@ -4941,21 +4989,6 @@ function InstagramPostActions({
|
|
|
4941
4989
|
window.open(instagramUrl, "_blank", "noopener,noreferrer");
|
|
4942
4990
|
}
|
|
4943
4991
|
};
|
|
4944
|
-
const handleCommentAnalyzer = () => {
|
|
4945
|
-
if (onCommentAnalyzer) {
|
|
4946
|
-
onCommentAnalyzer();
|
|
4947
|
-
}
|
|
4948
|
-
};
|
|
4949
|
-
const handleBooster = () => {
|
|
4950
|
-
if (onBooster) {
|
|
4951
|
-
onBooster();
|
|
4952
|
-
}
|
|
4953
|
-
};
|
|
4954
|
-
const handleAIAnalysis = () => {
|
|
4955
|
-
if (onAIAnalysis) {
|
|
4956
|
-
onAIAnalysis();
|
|
4957
|
-
}
|
|
4958
|
-
};
|
|
4959
4992
|
return /* @__PURE__ */ jsx41(TooltipProvider, { children: /* @__PURE__ */ jsxs23("div", { className: "absolute top-2 end-2 flex items-center gap-1 opacity-0 group-hover:opacity-100 transition-opacity z-10", children: [
|
|
4960
4993
|
/* @__PURE__ */ jsxs23(Tooltip, { children: [
|
|
4961
4994
|
/* @__PURE__ */ jsx41(TooltipTrigger, { asChild: true, children: /* @__PURE__ */ jsx41(
|
|
@@ -4963,13 +4996,17 @@ function InstagramPostActions({
|
|
|
4963
4996
|
{
|
|
4964
4997
|
variant: "ghost",
|
|
4965
4998
|
size: "icon",
|
|
4966
|
-
className:
|
|
4967
|
-
|
|
4999
|
+
className: cn(
|
|
5000
|
+
"size-8 bg-background/80 backdrop-blur-sm hover:bg-background",
|
|
5001
|
+
disableCommentAnalyzer && "opacity-40 cursor-not-allowed pointer-events-none"
|
|
5002
|
+
),
|
|
5003
|
+
onClick: disableCommentAnalyzer ? void 0 : onCommentAnalyzer,
|
|
5004
|
+
disabled: disableCommentAnalyzer,
|
|
4968
5005
|
"aria-label": "Comment Analyzer",
|
|
4969
5006
|
children: /* @__PURE__ */ jsx41(Icons.messageCircle, { className: "size-4" })
|
|
4970
5007
|
}
|
|
4971
5008
|
) }),
|
|
4972
|
-
/* @__PURE__ */ jsx41(TooltipContent, { children: /* @__PURE__ */ jsx41("p", { children: "\u062A\u062D\u0644\u06CC\u0644 \u06A9\u0627\u0645\u0646\u062A\u200C\u0647\u0627" }) })
|
|
5009
|
+
/* @__PURE__ */ jsx41(TooltipContent, { children: /* @__PURE__ */ jsx41("p", { children: disableCommentAnalyzer ? "\u062A\u062D\u0644\u06CC\u0644 \u06A9\u0627\u0645\u0646\u062A\u200C\u0647\u0627 (\u063A\u06CC\u0631\u0641\u0639\u0627\u0644)" : "\u062A\u062D\u0644\u06CC\u0644 \u06A9\u0627\u0645\u0646\u062A\u200C\u0647\u0627" }) })
|
|
4973
5010
|
] }),
|
|
4974
5011
|
/* @__PURE__ */ jsxs23(Tooltip, { children: [
|
|
4975
5012
|
/* @__PURE__ */ jsx41(TooltipTrigger, { asChild: true, children: /* @__PURE__ */ jsx41(
|
|
@@ -4977,13 +5014,17 @@ function InstagramPostActions({
|
|
|
4977
5014
|
{
|
|
4978
5015
|
variant: "ghost",
|
|
4979
5016
|
size: "icon",
|
|
4980
|
-
className:
|
|
4981
|
-
|
|
5017
|
+
className: cn(
|
|
5018
|
+
"size-8 bg-background/80 backdrop-blur-sm hover:bg-background",
|
|
5019
|
+
disableBooster && "opacity-40 cursor-not-allowed pointer-events-none"
|
|
5020
|
+
),
|
|
5021
|
+
onClick: disableBooster ? void 0 : onBooster,
|
|
5022
|
+
disabled: disableBooster,
|
|
4982
5023
|
"aria-label": "Booster",
|
|
4983
5024
|
children: /* @__PURE__ */ jsx41(Icons.rocket, { className: "size-4" })
|
|
4984
5025
|
}
|
|
4985
5026
|
) }),
|
|
4986
|
-
/* @__PURE__ */ jsx41(TooltipContent, { children: /* @__PURE__ */ jsx41("p", { children: "\u0628\u0648\u0633\u062A\u0631" }) })
|
|
5027
|
+
/* @__PURE__ */ jsx41(TooltipContent, { children: /* @__PURE__ */ jsx41("p", { children: disableBooster ? "\u0628\u0648\u0633\u062A\u0631 (\u063A\u06CC\u0631\u0641\u0639\u0627\u0644)" : "\u0628\u0648\u0633\u062A\u0631" }) })
|
|
4987
5028
|
] }),
|
|
4988
5029
|
/* @__PURE__ */ jsxs23(Tooltip, { children: [
|
|
4989
5030
|
/* @__PURE__ */ jsx41(TooltipTrigger, { asChild: true, children: /* @__PURE__ */ jsx41(
|
|
@@ -4991,13 +5032,17 @@ function InstagramPostActions({
|
|
|
4991
5032
|
{
|
|
4992
5033
|
variant: "ghost",
|
|
4993
5034
|
size: "icon",
|
|
4994
|
-
className:
|
|
4995
|
-
|
|
5035
|
+
className: cn(
|
|
5036
|
+
"size-8 bg-background/80 backdrop-blur-sm hover:bg-background",
|
|
5037
|
+
disableAIAnalysis && "opacity-40 cursor-not-allowed pointer-events-none"
|
|
5038
|
+
),
|
|
5039
|
+
onClick: disableAIAnalysis ? void 0 : onAIAnalysis,
|
|
5040
|
+
disabled: disableAIAnalysis,
|
|
4996
5041
|
"aria-label": "AI Analysis",
|
|
4997
5042
|
children: /* @__PURE__ */ jsx41(Icons.sparkles, { className: "size-4" })
|
|
4998
5043
|
}
|
|
4999
5044
|
) }),
|
|
5000
|
-
/* @__PURE__ */ jsx41(TooltipContent, { children: /* @__PURE__ */ jsx41("p", { children: "\u062A\u062D\u0644\u06CC\u0644 \u0647\u0648\u0634 \u0645\u0635\u0646\u0648\u0639\u06CC" }) })
|
|
5045
|
+
/* @__PURE__ */ jsx41(TooltipContent, { children: /* @__PURE__ */ jsx41("p", { children: disableAIAnalysis ? "\u062A\u062D\u0644\u06CC\u0644 \u0647\u0648\u0634 \u0645\u0635\u0646\u0648\u0639\u06CC (\u063A\u06CC\u0631\u0641\u0639\u0627\u0644)" : "\u062A\u062D\u0644\u06CC\u0644 \u0647\u0648\u0634 \u0645\u0635\u0646\u0648\u0639\u06CC" }) })
|
|
5001
5046
|
] }),
|
|
5002
5047
|
/* @__PURE__ */ jsxs23(Tooltip, { children: [
|
|
5003
5048
|
/* @__PURE__ */ jsx41(TooltipTrigger, { asChild: true, children: /* @__PURE__ */ jsx41(
|
|
@@ -5005,13 +5050,17 @@ function InstagramPostActions({
|
|
|
5005
5050
|
{
|
|
5006
5051
|
variant: "ghost",
|
|
5007
5052
|
size: "icon",
|
|
5008
|
-
className:
|
|
5009
|
-
|
|
5053
|
+
className: cn(
|
|
5054
|
+
"size-8 bg-background/80 backdrop-blur-sm hover:bg-background",
|
|
5055
|
+
disableOpenInstagram && "opacity-40 cursor-not-allowed pointer-events-none"
|
|
5056
|
+
),
|
|
5057
|
+
onClick: disableOpenInstagram ? void 0 : handleOpenInstagram,
|
|
5058
|
+
disabled: disableOpenInstagram,
|
|
5010
5059
|
"aria-label": "Open on Instagram",
|
|
5011
5060
|
children: /* @__PURE__ */ jsx41(Icons.instagram, { className: "size-4" })
|
|
5012
5061
|
}
|
|
5013
5062
|
) }),
|
|
5014
|
-
/* @__PURE__ */ jsx41(TooltipContent, { children: /* @__PURE__ */ jsx41("p", { children: "\u0628\u0627\u0632 \u06A9\u0631\u062F\u0646 \u062F\u0631 \u0627\u06CC\u0646\u0633\u062A\u0627\u06AF\u0631\u0627\u0645" }) })
|
|
5063
|
+
/* @__PURE__ */ jsx41(TooltipContent, { children: /* @__PURE__ */ jsx41("p", { children: disableOpenInstagram ? "\u0628\u0627\u0632 \u06A9\u0631\u062F\u0646 \u062F\u0631 \u0627\u06CC\u0646\u0633\u062A\u0627\u06AF\u0631\u0627\u0645 (\u063A\u06CC\u0631\u0641\u0639\u0627\u0644)" : "\u0628\u0627\u0632 \u06A9\u0631\u062F\u0646 \u062F\u0631 \u0627\u06CC\u0646\u0633\u062A\u0627\u06AF\u0631\u0627\u0645" }) })
|
|
5015
5064
|
] })
|
|
5016
5065
|
] }) });
|
|
5017
5066
|
}
|
|
@@ -5067,6 +5116,10 @@ var InstagramPost = React19.forwardRef(
|
|
|
5067
5116
|
onAIAnalysis,
|
|
5068
5117
|
onOpenInstagram,
|
|
5069
5118
|
instagramUrl,
|
|
5119
|
+
disableCommentAnalyzer = false,
|
|
5120
|
+
disableBooster = false,
|
|
5121
|
+
disableAIAnalysis = false,
|
|
5122
|
+
disableOpenInstagram = false,
|
|
5070
5123
|
placeholderText,
|
|
5071
5124
|
dir,
|
|
5072
5125
|
...props
|
|
@@ -5088,7 +5141,11 @@ var InstagramPost = React19.forwardRef(
|
|
|
5088
5141
|
onBooster,
|
|
5089
5142
|
onAIAnalysis,
|
|
5090
5143
|
onOpenInstagram,
|
|
5091
|
-
instagramUrl
|
|
5144
|
+
instagramUrl,
|
|
5145
|
+
disableCommentAnalyzer,
|
|
5146
|
+
disableBooster,
|
|
5147
|
+
disableAIAnalysis,
|
|
5148
|
+
disableOpenInstagram
|
|
5092
5149
|
}
|
|
5093
5150
|
),
|
|
5094
5151
|
isVertical ? /* @__PURE__ */ jsxs23(Fragment4, { children: [
|
|
@@ -6365,7 +6422,7 @@ var ProfileCard = React22.forwardRef(
|
|
|
6365
6422
|
onClick: onCardClick,
|
|
6366
6423
|
...props,
|
|
6367
6424
|
children: [
|
|
6368
|
-
/* @__PURE__ */ jsx50("div", { className: "relative flex-shrink-0", children: avatarBorderVariant === "gold" ? /* @__PURE__ */ jsx50("div", { className: "relative p-0.5 rounded-full bg-gradient-to-br from-
|
|
6425
|
+
/* @__PURE__ */ jsx50("div", { className: "relative flex-shrink-0", children: avatarBorderVariant === "gold" ? /* @__PURE__ */ jsx50("div", { className: "relative p-0.5 rounded-full bg-gradient-to-br from-brand-400 via-brand to-brand-400", children: /* @__PURE__ */ jsxs30(Avatar, { className: cn(currentSize.avatar, "ring-2 ring-background"), children: [
|
|
6369
6426
|
/* @__PURE__ */ jsx50(AvatarImage, { src: avatarSrc, alt: avatarAlt || name }),
|
|
6370
6427
|
/* @__PURE__ */ jsx50(AvatarFallback, { className: "bg-surface-300 text-foreground font-medium", children: initials || name.charAt(0) })
|
|
6371
6428
|
] }) }) : avatarBorderVariant === "primary" ? /* @__PURE__ */ jsxs30(Avatar, { className: cn(currentSize.avatar, "ring-2 ring-offset-2 ring-offset-background ring-primary"), children: [
|
|
@@ -6443,7 +6500,7 @@ var ProfileInfo = React23.forwardRef(
|
|
|
6443
6500
|
transparent: "bg-transparent"
|
|
6444
6501
|
};
|
|
6445
6502
|
const borderClasses = {
|
|
6446
|
-
gold: "ring-2 ring-offset-2 ring-offset-background [--tw-ring-color:conic-gradient(from_180deg,#
|
|
6503
|
+
gold: "ring-2 ring-offset-2 ring-offset-background [--tw-ring-color:conic-gradient(from_180deg,#22c55e,#4ade80,#22c55e)]",
|
|
6447
6504
|
primary: "ring-2 ring-offset-2 ring-offset-background ring-primary",
|
|
6448
6505
|
none: ""
|
|
6449
6506
|
};
|
|
@@ -6463,7 +6520,7 @@ var ProfileInfo = React23.forwardRef(
|
|
|
6463
6520
|
...props,
|
|
6464
6521
|
children: [
|
|
6465
6522
|
/* @__PURE__ */ jsxs31("div", { className: "flex items-center gap-4", children: [
|
|
6466
|
-
/* @__PURE__ */ jsx51("div", { className: "relative", children: avatarBorderVariant === "gold" ? /* @__PURE__ */ jsx51("div", { className: "relative p-0.5 rounded-full bg-gradient-to-br from-
|
|
6523
|
+
/* @__PURE__ */ jsx51("div", { className: "relative", children: avatarBorderVariant === "gold" ? /* @__PURE__ */ jsx51("div", { className: "relative p-0.5 rounded-full bg-gradient-to-br from-brand-400 via-brand to-brand-400", children: /* @__PURE__ */ jsxs31(Avatar, { className: cn(currentSize.avatar, "ring-2 ring-background"), children: [
|
|
6467
6524
|
/* @__PURE__ */ jsx51(AvatarImage, { src: avatarSrc, alt: avatarAlt || name }),
|
|
6468
6525
|
/* @__PURE__ */ jsx51(AvatarFallback, { className: "bg-surface-300 text-foreground font-medium", children: initials || name.charAt(0) })
|
|
6469
6526
|
] }) }) : /* @__PURE__ */ jsxs31(Avatar, { className: cn(currentSize.avatar, borderClasses[avatarBorderVariant]), children: [
|
|
@@ -6716,10 +6773,10 @@ var EngagementRate = React24.forwardRef(
|
|
|
6716
6773
|
min: r.average[0],
|
|
6717
6774
|
max: r.average[1],
|
|
6718
6775
|
display: `${r.average[0]}% - ${r.average[1]}%`,
|
|
6719
|
-
color: "#
|
|
6720
|
-
//
|
|
6721
|
-
hoverColor: "#
|
|
6722
|
-
//
|
|
6776
|
+
color: "#22c55e",
|
|
6777
|
+
// brand green (green-500)
|
|
6778
|
+
hoverColor: "#16a34a"
|
|
6779
|
+
// brand green hover (green-600)
|
|
6723
6780
|
},
|
|
6724
6781
|
{
|
|
6725
6782
|
label: t.couldBeImproved,
|
|
@@ -7060,10 +7117,10 @@ var EngagementRateBar = React25.forwardRef(
|
|
|
7060
7117
|
label: t.average,
|
|
7061
7118
|
min: r.average[0],
|
|
7062
7119
|
max: r.average[1],
|
|
7063
|
-
color: "#
|
|
7064
|
-
//
|
|
7065
|
-
hoverColor: "#
|
|
7066
|
-
//
|
|
7120
|
+
color: "#22c55e",
|
|
7121
|
+
// brand green (green-500)
|
|
7122
|
+
hoverColor: "#16a34a"
|
|
7123
|
+
// brand green hover (green-600)
|
|
7067
7124
|
},
|
|
7068
7125
|
{
|
|
7069
7126
|
label: t.couldBeImproved,
|
|
@@ -7203,7 +7260,7 @@ var progressIndicatorVariants = cva12(
|
|
|
7203
7260
|
primary: "bg-brand-500",
|
|
7204
7261
|
secondary: "bg-foreground",
|
|
7205
7262
|
success: "bg-green-500",
|
|
7206
|
-
warning: "bg-
|
|
7263
|
+
warning: "bg-warning-500",
|
|
7207
7264
|
destructive: "bg-destructive-500"
|
|
7208
7265
|
}
|
|
7209
7266
|
},
|