@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 CHANGED
@@ -982,7 +982,7 @@ var buttonVariants = (0, import_class_variance_authority2.cva)(
982
982
  bg-destructive-300 dark:bg-destructive-400 hover:bg-destructive-400 dark:hover:bg-destructive/50
983
983
  border-destructive-500 hover:border-destructive
984
984
  hover:text-hi-contrast
985
- focus-visible:outline-amber-700
985
+ focus-visible:outline-brand-600
986
986
  data-[state=open]:border-destructive
987
987
  data-[state=open]:bg-destructive-400 dark:data-[state=open]:bg-destructive/50
988
988
  data-[state=open]:outline-destructive
@@ -992,7 +992,7 @@ var buttonVariants = (0, import_class_variance_authority2.cva)(
992
992
  bg-warning-300 dark:bg-warning-400 hover:bg-warning-400 dark:hover:bg-warning/50
993
993
  border-warning-500 hover:border-warning
994
994
  hover:text-hi-contrast
995
- focus-visible:outline-amber-700
995
+ focus-visible:outline-brand-600
996
996
  data-[state=open]:border-warning
997
997
  data-[state=open]:bg-warning-400 dark:data-[state=open]:bg-warning/50
998
998
  data-[state=open]:outline-warning
@@ -1002,7 +1002,7 @@ var buttonVariants = (0, import_class_variance_authority2.cva)(
1002
1002
  bg-destructive-300 dark:bg-destructive-400 hover:bg-destructive-400 dark:hover:bg-destructive/50
1003
1003
  border-destructive-500 hover:border-destructive
1004
1004
  hover:text-hi-contrast
1005
- focus-visible:outline-amber-700
1005
+ focus-visible:outline-brand-600
1006
1006
  data-[state=open]:border-destructive
1007
1007
  data-[state=open]:bg-destructive-400 dark:data-[state=open]:bg-destructive/50
1008
1008
  data-[state=open]:outline-destructive
@@ -4323,12 +4323,16 @@ var import_lucide_react15 = require("lucide-react");
4323
4323
  var import_class_variance_authority7 = require("class-variance-authority");
4324
4324
  var import_jsx_runtime35 = require("react/jsx-runtime");
4325
4325
  var tagInputVariants = (0, import_class_variance_authority7.cva)(
4326
- "flex min-h-[38px] w-full flex-wrap gap-2 rounded-md border border-control bg-background px-3 py-2 text-sm ring-offset-background focus-within:ring-2 focus-within:ring-background-control focus-within:ring-offset-2 disabled:cursor-not-allowed disabled:opacity-50",
4326
+ cn(
4327
+ "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",
4328
+ "focus-within:outline-none focus-within:ring-2 focus-within:ring-background-control focus-within:ring-offset-2 focus-within:ring-offset-foreground-muted",
4329
+ "disabled:cursor-not-allowed disabled:text-foreground-muted disabled:opacity-50"
4330
+ ),
4327
4331
  {
4328
4332
  variants: {
4329
4333
  variant: {
4330
- default: "bg-background",
4331
- secondary: "bg-secondary"
4334
+ default: "",
4335
+ secondary: "bg-surface-200"
4332
4336
  }
4333
4337
  },
4334
4338
  defaultVariants: {
@@ -4399,7 +4403,7 @@ var TagInput = React14.forwardRef(
4399
4403
  Badge,
4400
4404
  {
4401
4405
  variant: "secondary",
4402
- className: "gap-1 pe-1 ps-2 h-7 hover:!bg-primary/20 hover:!text-primary transition-colors [&:hover_svg]:!text-primary",
4406
+ 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",
4403
4407
  children: [
4404
4408
  tag,
4405
4409
  /* @__PURE__ */ (0, import_jsx_runtime35.jsxs)(
@@ -4433,7 +4437,7 @@ var TagInput = React14.forwardRef(
4433
4437
  value: inputValue,
4434
4438
  onChange: (e) => setInputValue(e.target.value),
4435
4439
  onKeyDown: handleKeyDown,
4436
- className: "flex-1 bg-transparent outline-none placeholder:text-muted-foreground min-w-[120px] text-sm h-7",
4440
+ className: "flex-1 bg-transparent outline-none placeholder:text-foreground-muted min-w-[80px] text-sm leading-4",
4437
4441
  placeholder: value.length === 0 ? placeholder : void 0,
4438
4442
  disabled
4439
4443
  }
@@ -4451,12 +4455,16 @@ var import_lucide_react16 = require("lucide-react");
4451
4455
  var import_class_variance_authority8 = require("class-variance-authority");
4452
4456
  var import_jsx_runtime36 = require("react/jsx-runtime");
4453
4457
  var hashtagInputVariants = (0, import_class_variance_authority8.cva)(
4454
- "flex min-h-[38px] w-full flex-wrap gap-2 rounded-md border border-control bg-background px-3 py-2 text-sm ring-offset-background focus-within:ring-2 focus-within:ring-background-control focus-within:ring-offset-2 disabled:cursor-not-allowed disabled:opacity-50",
4458
+ cn(
4459
+ "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",
4460
+ "focus-within:outline-none focus-within:ring-2 focus-within:ring-background-control focus-within:ring-offset-2 focus-within:ring-offset-foreground-muted",
4461
+ "disabled:cursor-not-allowed disabled:text-foreground-muted disabled:opacity-50"
4462
+ ),
4455
4463
  {
4456
4464
  variants: {
4457
4465
  variant: {
4458
- default: "bg-background",
4459
- secondary: "bg-secondary"
4466
+ default: "",
4467
+ secondary: "bg-surface-200"
4460
4468
  }
4461
4469
  },
4462
4470
  defaultVariants: {
@@ -4527,7 +4535,7 @@ var HashtagInput = React15.forwardRef(
4527
4535
  Badge,
4528
4536
  {
4529
4537
  variant: "secondary",
4530
- className: "gap-1 pe-1 ps-2 h-7 hover:!bg-primary/20 hover:!text-primary transition-colors [&:hover_svg]:!text-primary",
4538
+ 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",
4531
4539
  children: [
4532
4540
  "#",
4533
4541
  tag,
@@ -4562,7 +4570,7 @@ var HashtagInput = React15.forwardRef(
4562
4570
  value: inputValue,
4563
4571
  onChange: (e) => setInputValue(e.target.value),
4564
4572
  onKeyDown: handleKeyDown,
4565
- className: "flex-1 bg-transparent outline-none placeholder:text-muted-foreground min-w-[120px] text-sm h-7",
4573
+ className: "flex-1 bg-transparent outline-none placeholder:text-foreground-muted min-w-[80px] text-sm leading-4",
4566
4574
  placeholder: value.length === 0 ? placeholder : void 0,
4567
4575
  disabled
4568
4576
  }
@@ -4897,8 +4905,9 @@ function InstagramPostMedia({
4897
4905
  {
4898
4906
  className: cn(
4899
4907
  "flex items-center justify-center bg-muted/30",
4900
- variant === "vertical" ? "aspect-square" : "w-[20%] shrink-0 h-full min-h-[200px] -my-[1px] -ms-[1px]"
4908
+ variant === "vertical" ? "w-full" : "w-[20%] shrink-0 h-full min-h-[200px] -my-[1px] -ms-[1px]"
4901
4909
  ),
4910
+ style: variant === "vertical" ? { aspectRatio: "4/5" } : void 0,
4902
4911
  children: /* @__PURE__ */ (0, import_jsx_runtime41.jsxs)("div", { className: "text-center p-4", children: [
4903
4912
  /* @__PURE__ */ (0, import_jsx_runtime41.jsx)(import_lucide_react18.ImageOff, { className: "size-12 mx-auto mb-2 text-muted-foreground" }),
4904
4913
  /* @__PURE__ */ (0, import_jsx_runtime41.jsx)("p", { className: "text-sm text-muted-foreground", children: placeholderText })
@@ -4922,19 +4931,33 @@ function InstagramPostMedia({
4922
4931
  )
4923
4932
  ] });
4924
4933
  }
4925
- const ratio = getAspectRatio(item.aspectRatio || "1:1");
4926
- return /* @__PURE__ */ (0, import_jsx_runtime41.jsxs)("div", { className: "w-full relative overflow-hidden group cursor-pointer bg-muted/30", style: { aspectRatio: ratio }, children: [
4927
- /* @__PURE__ */ (0, import_jsx_runtime41.jsx)("div", { className: "absolute inset-0 bg-black/0 group-hover:bg-black/20 transition-colors duration-300 z-10" }),
4928
- imageError[item.url] ? renderPlaceholder() : /* @__PURE__ */ (0, import_jsx_runtime41.jsx)(
4929
- "img",
4930
- {
4931
- src: item.url,
4932
- alt: "Post media",
4933
- className: "w-full h-full object-cover group-hover:scale-110 transition-transform duration-300",
4934
- onError: () => handleImageError(item.url)
4935
- }
4936
- )
4937
- ] });
4934
+ const aspectRatio = item.aspectRatio || "4:5";
4935
+ const isPortrait = aspectRatio === "9:16" || aspectRatio === "4:5";
4936
+ const instagramRatio = isPortrait ? "4/5" : getAspectRatioCSS(aspectRatio);
4937
+ return /* @__PURE__ */ (0, import_jsx_runtime41.jsxs)(
4938
+ "div",
4939
+ {
4940
+ className: "w-full relative overflow-hidden group cursor-pointer bg-black",
4941
+ style: { aspectRatio: instagramRatio },
4942
+ children: [
4943
+ /* @__PURE__ */ (0, import_jsx_runtime41.jsx)("div", { className: "absolute inset-0 bg-black/0 group-hover:bg-black/20 transition-colors duration-300 z-10" }),
4944
+ imageError[item.url] ? renderPlaceholder() : /* @__PURE__ */ (0, import_jsx_runtime41.jsx)(
4945
+ "img",
4946
+ {
4947
+ src: item.url,
4948
+ alt: "Post media",
4949
+ className: cn(
4950
+ "w-full h-full transition-transform duration-300 group-hover:scale-[1.02]",
4951
+ // For portrait images: object-contain to show full image like Instagram
4952
+ // For square/landscape: object-cover
4953
+ isPortrait ? "object-contain" : "object-cover"
4954
+ ),
4955
+ onError: () => handleImageError(item.url)
4956
+ }
4957
+ )
4958
+ ]
4959
+ }
4960
+ );
4938
4961
  }
4939
4962
  if (mediaType === "video" || media.length === 1 && media[0].type === "video") {
4940
4963
  const item = media[0];
@@ -4952,19 +4975,31 @@ function InstagramPostMedia({
4952
4975
  )
4953
4976
  ] });
4954
4977
  }
4955
- const ratio = getAspectRatio(item.aspectRatio || "16:9");
4956
- return /* @__PURE__ */ (0, import_jsx_runtime41.jsxs)("div", { className: "w-full relative overflow-hidden group cursor-pointer bg-muted/30", style: { aspectRatio: ratio }, children: [
4957
- /* @__PURE__ */ (0, import_jsx_runtime41.jsx)("div", { className: "absolute inset-0 bg-black/0 group-hover:bg-black/20 transition-colors duration-300 z-10" }),
4958
- imageError[item.url] ? renderPlaceholder() : /* @__PURE__ */ (0, import_jsx_runtime41.jsx)(
4959
- "img",
4960
- {
4961
- src: item.url,
4962
- alt: "Post media",
4963
- className: "w-full h-full object-cover group-hover:scale-110 transition-transform duration-300",
4964
- onError: () => handleImageError(item.url)
4965
- }
4966
- )
4967
- ] });
4978
+ const aspectRatio = item.aspectRatio || "4:5";
4979
+ const isPortrait = aspectRatio === "9:16" || aspectRatio === "4:5";
4980
+ const instagramRatio = isPortrait ? "4/5" : getAspectRatioCSS(aspectRatio);
4981
+ return /* @__PURE__ */ (0, import_jsx_runtime41.jsxs)(
4982
+ "div",
4983
+ {
4984
+ className: "w-full relative overflow-hidden group cursor-pointer bg-black",
4985
+ style: { aspectRatio: instagramRatio },
4986
+ children: [
4987
+ /* @__PURE__ */ (0, import_jsx_runtime41.jsx)("div", { className: "absolute inset-0 bg-black/0 group-hover:bg-black/20 transition-colors duration-300 z-10" }),
4988
+ imageError[item.url] ? renderPlaceholder() : /* @__PURE__ */ (0, import_jsx_runtime41.jsx)(
4989
+ "img",
4990
+ {
4991
+ src: item.url,
4992
+ alt: "Post media",
4993
+ className: cn(
4994
+ "w-full h-full transition-transform duration-300 group-hover:scale-[1.02]",
4995
+ isPortrait ? "object-contain" : "object-cover"
4996
+ ),
4997
+ onError: () => handleImageError(item.url)
4998
+ }
4999
+ )
5000
+ ]
5001
+ }
5002
+ );
4968
5003
  }
4969
5004
  if (mediaType === "carousel" || media.length > 1) {
4970
5005
  if (variant === "horizontal") {
@@ -4986,38 +5021,47 @@ function InstagramPostMedia({
4986
5021
  ] }) });
4987
5022
  }
4988
5023
  return /* @__PURE__ */ (0, import_jsx_runtime41.jsxs)(Carousel, { className: "w-full", children: [
4989
- /* @__PURE__ */ (0, import_jsx_runtime41.jsx)(CarouselContent, { children: media.map((item, index) => /* @__PURE__ */ (0, import_jsx_runtime41.jsx)(CarouselItem, { children: /* @__PURE__ */ (0, import_jsx_runtime41.jsxs)(
4990
- "div",
4991
- {
4992
- className: "w-full relative overflow-hidden group cursor-pointer bg-muted/30",
4993
- style: { aspectRatio: getAspectRatio(item.aspectRatio || (item.type === "video" ? "16:9" : "1:1")) },
4994
- children: [
4995
- /* @__PURE__ */ (0, import_jsx_runtime41.jsx)("div", { className: "absolute inset-0 bg-black/0 group-hover:bg-black/20 transition-colors duration-300 z-10" }),
4996
- imageError[item.url] ? renderPlaceholder() : /* @__PURE__ */ (0, import_jsx_runtime41.jsx)(
4997
- "img",
4998
- {
4999
- src: item.url,
5000
- alt: `Post media ${index + 1}`,
5001
- className: "w-full h-full object-cover group-hover:scale-110 transition-transform duration-300",
5002
- onError: () => handleImageError(item.url)
5003
- }
5004
- )
5005
- ]
5006
- }
5007
- ) }, index)) }),
5024
+ /* @__PURE__ */ (0, import_jsx_runtime41.jsx)(CarouselContent, { children: media.map((item, index) => {
5025
+ const itemAspect = item.aspectRatio || "4:5";
5026
+ const itemIsPortrait = itemAspect === "9:16" || itemAspect === "4:5";
5027
+ const itemRatio = itemIsPortrait ? "4/5" : getAspectRatioCSS(itemAspect);
5028
+ return /* @__PURE__ */ (0, import_jsx_runtime41.jsx)(CarouselItem, { children: /* @__PURE__ */ (0, import_jsx_runtime41.jsxs)(
5029
+ "div",
5030
+ {
5031
+ className: "w-full relative overflow-hidden group cursor-pointer bg-black",
5032
+ style: { aspectRatio: itemRatio },
5033
+ children: [
5034
+ /* @__PURE__ */ (0, import_jsx_runtime41.jsx)("div", { className: "absolute inset-0 bg-black/0 group-hover:bg-black/20 transition-colors duration-300 z-10" }),
5035
+ imageError[item.url] ? renderPlaceholder() : /* @__PURE__ */ (0, import_jsx_runtime41.jsx)(
5036
+ "img",
5037
+ {
5038
+ src: item.url,
5039
+ alt: `Post media ${index + 1}`,
5040
+ className: cn(
5041
+ "w-full h-full transition-transform duration-300",
5042
+ itemIsPortrait ? "object-contain" : "object-cover"
5043
+ ),
5044
+ onError: () => handleImageError(item.url)
5045
+ }
5046
+ )
5047
+ ]
5048
+ }
5049
+ ) }, index);
5050
+ }) }),
5008
5051
  /* @__PURE__ */ (0, import_jsx_runtime41.jsx)(CarouselPrevious, { className: "ms-2" }),
5009
5052
  /* @__PURE__ */ (0, import_jsx_runtime41.jsx)(CarouselNext, { className: "me-2" })
5010
5053
  ] });
5011
5054
  }
5012
5055
  return null;
5013
5056
  }
5014
- function getAspectRatio(ratio) {
5057
+ function getAspectRatioCSS(ratio) {
5015
5058
  const ratios = {
5016
- "16:9": 16 / 9,
5017
- "9:16": 9 / 16,
5018
- "1:1": 1,
5019
- "4:5": 4 / 5,
5020
- "5:4": 5 / 4
5059
+ "16:9": "16/9",
5060
+ "9:16": "4/5",
5061
+ // Instagram standard portrait
5062
+ "1:1": "1/1",
5063
+ "4:5": "4/5",
5064
+ "5:4": "5/4"
5021
5065
  };
5022
5066
  return ratios[ratio];
5023
5067
  }
@@ -5240,7 +5284,11 @@ function InstagramPostActions({
5240
5284
  onBooster,
5241
5285
  onAIAnalysis,
5242
5286
  onOpenInstagram,
5243
- instagramUrl
5287
+ instagramUrl,
5288
+ disableCommentAnalyzer = false,
5289
+ disableBooster = false,
5290
+ disableAIAnalysis = false,
5291
+ disableOpenInstagram = false
5244
5292
  }) {
5245
5293
  if (!showActions) return null;
5246
5294
  const handleOpenInstagram = () => {
@@ -5250,21 +5298,6 @@ function InstagramPostActions({
5250
5298
  window.open(instagramUrl, "_blank", "noopener,noreferrer");
5251
5299
  }
5252
5300
  };
5253
- const handleCommentAnalyzer = () => {
5254
- if (onCommentAnalyzer) {
5255
- onCommentAnalyzer();
5256
- }
5257
- };
5258
- const handleBooster = () => {
5259
- if (onBooster) {
5260
- onBooster();
5261
- }
5262
- };
5263
- const handleAIAnalysis = () => {
5264
- if (onAIAnalysis) {
5265
- onAIAnalysis();
5266
- }
5267
- };
5268
5301
  return /* @__PURE__ */ (0, import_jsx_runtime41.jsx)(TooltipProvider, { children: /* @__PURE__ */ (0, import_jsx_runtime41.jsxs)("div", { className: "absolute top-2 end-2 flex items-center gap-1 opacity-0 group-hover:opacity-100 transition-opacity z-10", children: [
5269
5302
  /* @__PURE__ */ (0, import_jsx_runtime41.jsxs)(Tooltip, { children: [
5270
5303
  /* @__PURE__ */ (0, import_jsx_runtime41.jsx)(TooltipTrigger, { asChild: true, children: /* @__PURE__ */ (0, import_jsx_runtime41.jsx)(
@@ -5272,13 +5305,17 @@ function InstagramPostActions({
5272
5305
  {
5273
5306
  variant: "ghost",
5274
5307
  size: "icon",
5275
- className: "size-8 bg-background/80 backdrop-blur-sm hover:bg-background",
5276
- onClick: handleCommentAnalyzer,
5308
+ className: cn(
5309
+ "size-8 bg-background/80 backdrop-blur-sm hover:bg-background",
5310
+ disableCommentAnalyzer && "opacity-40 cursor-not-allowed pointer-events-none"
5311
+ ),
5312
+ onClick: disableCommentAnalyzer ? void 0 : onCommentAnalyzer,
5313
+ disabled: disableCommentAnalyzer,
5277
5314
  "aria-label": "Comment Analyzer",
5278
5315
  children: /* @__PURE__ */ (0, import_jsx_runtime41.jsx)(Icons.messageCircle, { className: "size-4" })
5279
5316
  }
5280
5317
  ) }),
5281
- /* @__PURE__ */ (0, import_jsx_runtime41.jsx)(TooltipContent, { children: /* @__PURE__ */ (0, import_jsx_runtime41.jsx)("p", { children: "\u062A\u062D\u0644\u06CC\u0644 \u06A9\u0627\u0645\u0646\u062A\u200C\u0647\u0627" }) })
5318
+ /* @__PURE__ */ (0, import_jsx_runtime41.jsx)(TooltipContent, { children: /* @__PURE__ */ (0, import_jsx_runtime41.jsx)("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" }) })
5282
5319
  ] }),
5283
5320
  /* @__PURE__ */ (0, import_jsx_runtime41.jsxs)(Tooltip, { children: [
5284
5321
  /* @__PURE__ */ (0, import_jsx_runtime41.jsx)(TooltipTrigger, { asChild: true, children: /* @__PURE__ */ (0, import_jsx_runtime41.jsx)(
@@ -5286,13 +5323,17 @@ function InstagramPostActions({
5286
5323
  {
5287
5324
  variant: "ghost",
5288
5325
  size: "icon",
5289
- className: "size-8 bg-background/80 backdrop-blur-sm hover:bg-background",
5290
- onClick: handleBooster,
5326
+ className: cn(
5327
+ "size-8 bg-background/80 backdrop-blur-sm hover:bg-background",
5328
+ disableBooster && "opacity-40 cursor-not-allowed pointer-events-none"
5329
+ ),
5330
+ onClick: disableBooster ? void 0 : onBooster,
5331
+ disabled: disableBooster,
5291
5332
  "aria-label": "Booster",
5292
5333
  children: /* @__PURE__ */ (0, import_jsx_runtime41.jsx)(Icons.rocket, { className: "size-4" })
5293
5334
  }
5294
5335
  ) }),
5295
- /* @__PURE__ */ (0, import_jsx_runtime41.jsx)(TooltipContent, { children: /* @__PURE__ */ (0, import_jsx_runtime41.jsx)("p", { children: "\u0628\u0648\u0633\u062A\u0631" }) })
5336
+ /* @__PURE__ */ (0, import_jsx_runtime41.jsx)(TooltipContent, { children: /* @__PURE__ */ (0, import_jsx_runtime41.jsx)("p", { children: disableBooster ? "\u0628\u0648\u0633\u062A\u0631 (\u063A\u06CC\u0631\u0641\u0639\u0627\u0644)" : "\u0628\u0648\u0633\u062A\u0631" }) })
5296
5337
  ] }),
5297
5338
  /* @__PURE__ */ (0, import_jsx_runtime41.jsxs)(Tooltip, { children: [
5298
5339
  /* @__PURE__ */ (0, import_jsx_runtime41.jsx)(TooltipTrigger, { asChild: true, children: /* @__PURE__ */ (0, import_jsx_runtime41.jsx)(
@@ -5300,13 +5341,17 @@ function InstagramPostActions({
5300
5341
  {
5301
5342
  variant: "ghost",
5302
5343
  size: "icon",
5303
- className: "size-8 bg-background/80 backdrop-blur-sm hover:bg-background",
5304
- onClick: handleAIAnalysis,
5344
+ className: cn(
5345
+ "size-8 bg-background/80 backdrop-blur-sm hover:bg-background",
5346
+ disableAIAnalysis && "opacity-40 cursor-not-allowed pointer-events-none"
5347
+ ),
5348
+ onClick: disableAIAnalysis ? void 0 : onAIAnalysis,
5349
+ disabled: disableAIAnalysis,
5305
5350
  "aria-label": "AI Analysis",
5306
5351
  children: /* @__PURE__ */ (0, import_jsx_runtime41.jsx)(Icons.sparkles, { className: "size-4" })
5307
5352
  }
5308
5353
  ) }),
5309
- /* @__PURE__ */ (0, import_jsx_runtime41.jsx)(TooltipContent, { children: /* @__PURE__ */ (0, import_jsx_runtime41.jsx)("p", { children: "\u062A\u062D\u0644\u06CC\u0644 \u0647\u0648\u0634 \u0645\u0635\u0646\u0648\u0639\u06CC" }) })
5354
+ /* @__PURE__ */ (0, import_jsx_runtime41.jsx)(TooltipContent, { children: /* @__PURE__ */ (0, import_jsx_runtime41.jsx)("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" }) })
5310
5355
  ] }),
5311
5356
  /* @__PURE__ */ (0, import_jsx_runtime41.jsxs)(Tooltip, { children: [
5312
5357
  /* @__PURE__ */ (0, import_jsx_runtime41.jsx)(TooltipTrigger, { asChild: true, children: /* @__PURE__ */ (0, import_jsx_runtime41.jsx)(
@@ -5314,13 +5359,17 @@ function InstagramPostActions({
5314
5359
  {
5315
5360
  variant: "ghost",
5316
5361
  size: "icon",
5317
- className: "size-8 bg-background/80 backdrop-blur-sm hover:bg-background",
5318
- onClick: handleOpenInstagram,
5362
+ className: cn(
5363
+ "size-8 bg-background/80 backdrop-blur-sm hover:bg-background",
5364
+ disableOpenInstagram && "opacity-40 cursor-not-allowed pointer-events-none"
5365
+ ),
5366
+ onClick: disableOpenInstagram ? void 0 : handleOpenInstagram,
5367
+ disabled: disableOpenInstagram,
5319
5368
  "aria-label": "Open on Instagram",
5320
5369
  children: /* @__PURE__ */ (0, import_jsx_runtime41.jsx)(Icons.instagram, { className: "size-4" })
5321
5370
  }
5322
5371
  ) }),
5323
- /* @__PURE__ */ (0, import_jsx_runtime41.jsx)(TooltipContent, { children: /* @__PURE__ */ (0, import_jsx_runtime41.jsx)("p", { children: "\u0628\u0627\u0632 \u06A9\u0631\u062F\u0646 \u062F\u0631 \u0627\u06CC\u0646\u0633\u062A\u0627\u06AF\u0631\u0627\u0645" }) })
5372
+ /* @__PURE__ */ (0, import_jsx_runtime41.jsx)(TooltipContent, { children: /* @__PURE__ */ (0, import_jsx_runtime41.jsx)("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" }) })
5324
5373
  ] })
5325
5374
  ] }) });
5326
5375
  }
@@ -5376,6 +5425,10 @@ var InstagramPost = React19.forwardRef(
5376
5425
  onAIAnalysis,
5377
5426
  onOpenInstagram,
5378
5427
  instagramUrl,
5428
+ disableCommentAnalyzer = false,
5429
+ disableBooster = false,
5430
+ disableAIAnalysis = false,
5431
+ disableOpenInstagram = false,
5379
5432
  placeholderText,
5380
5433
  dir,
5381
5434
  ...props
@@ -5397,7 +5450,11 @@ var InstagramPost = React19.forwardRef(
5397
5450
  onBooster,
5398
5451
  onAIAnalysis,
5399
5452
  onOpenInstagram,
5400
- instagramUrl
5453
+ instagramUrl,
5454
+ disableCommentAnalyzer,
5455
+ disableBooster,
5456
+ disableAIAnalysis,
5457
+ disableOpenInstagram
5401
5458
  }
5402
5459
  ),
5403
5460
  isVertical ? /* @__PURE__ */ (0, import_jsx_runtime41.jsxs)(import_jsx_runtime41.Fragment, { children: [
@@ -6670,7 +6727,7 @@ var ProfileCard = React22.forwardRef(
6670
6727
  onClick: onCardClick,
6671
6728
  ...props,
6672
6729
  children: [
6673
- /* @__PURE__ */ (0, import_jsx_runtime50.jsx)("div", { className: "relative flex-shrink-0", children: avatarBorderVariant === "gold" ? /* @__PURE__ */ (0, import_jsx_runtime50.jsx)("div", { className: "relative p-0.5 rounded-full bg-gradient-to-br from-amber-500 via-yellow-400 to-amber-500", children: /* @__PURE__ */ (0, import_jsx_runtime50.jsxs)(Avatar, { className: cn(currentSize.avatar, "ring-2 ring-background"), children: [
6730
+ /* @__PURE__ */ (0, import_jsx_runtime50.jsx)("div", { className: "relative flex-shrink-0", children: avatarBorderVariant === "gold" ? /* @__PURE__ */ (0, import_jsx_runtime50.jsx)("div", { className: "relative p-0.5 rounded-full bg-gradient-to-br from-brand-400 via-brand to-brand-400", children: /* @__PURE__ */ (0, import_jsx_runtime50.jsxs)(Avatar, { className: cn(currentSize.avatar, "ring-2 ring-background"), children: [
6674
6731
  /* @__PURE__ */ (0, import_jsx_runtime50.jsx)(AvatarImage, { src: avatarSrc, alt: avatarAlt || name }),
6675
6732
  /* @__PURE__ */ (0, import_jsx_runtime50.jsx)(AvatarFallback, { className: "bg-surface-300 text-foreground font-medium", children: initials || name.charAt(0) })
6676
6733
  ] }) }) : avatarBorderVariant === "primary" ? /* @__PURE__ */ (0, import_jsx_runtime50.jsxs)(Avatar, { className: cn(currentSize.avatar, "ring-2 ring-offset-2 ring-offset-background ring-primary"), children: [
@@ -6748,7 +6805,7 @@ var ProfileInfo = React23.forwardRef(
6748
6805
  transparent: "bg-transparent"
6749
6806
  };
6750
6807
  const borderClasses = {
6751
- gold: "ring-2 ring-offset-2 ring-offset-background [--tw-ring-color:conic-gradient(from_180deg,#f59e0b,#fbbf24,#f59e0b)]",
6808
+ gold: "ring-2 ring-offset-2 ring-offset-background [--tw-ring-color:conic-gradient(from_180deg,#22c55e,#4ade80,#22c55e)]",
6752
6809
  primary: "ring-2 ring-offset-2 ring-offset-background ring-primary",
6753
6810
  none: ""
6754
6811
  };
@@ -6768,7 +6825,7 @@ var ProfileInfo = React23.forwardRef(
6768
6825
  ...props,
6769
6826
  children: [
6770
6827
  /* @__PURE__ */ (0, import_jsx_runtime51.jsxs)("div", { className: "flex items-center gap-4", children: [
6771
- /* @__PURE__ */ (0, import_jsx_runtime51.jsx)("div", { className: "relative", children: avatarBorderVariant === "gold" ? /* @__PURE__ */ (0, import_jsx_runtime51.jsx)("div", { className: "relative p-0.5 rounded-full bg-gradient-to-br from-amber-500 via-yellow-400 to-amber-500", children: /* @__PURE__ */ (0, import_jsx_runtime51.jsxs)(Avatar, { className: cn(currentSize.avatar, "ring-2 ring-background"), children: [
6828
+ /* @__PURE__ */ (0, import_jsx_runtime51.jsx)("div", { className: "relative", children: avatarBorderVariant === "gold" ? /* @__PURE__ */ (0, import_jsx_runtime51.jsx)("div", { className: "relative p-0.5 rounded-full bg-gradient-to-br from-brand-400 via-brand to-brand-400", children: /* @__PURE__ */ (0, import_jsx_runtime51.jsxs)(Avatar, { className: cn(currentSize.avatar, "ring-2 ring-background"), children: [
6772
6829
  /* @__PURE__ */ (0, import_jsx_runtime51.jsx)(AvatarImage, { src: avatarSrc, alt: avatarAlt || name }),
6773
6830
  /* @__PURE__ */ (0, import_jsx_runtime51.jsx)(AvatarFallback, { className: "bg-surface-300 text-foreground font-medium", children: initials || name.charAt(0) })
6774
6831
  ] }) }) : /* @__PURE__ */ (0, import_jsx_runtime51.jsxs)(Avatar, { className: cn(currentSize.avatar, borderClasses[avatarBorderVariant]), children: [
@@ -7021,10 +7078,10 @@ var EngagementRate = React24.forwardRef(
7021
7078
  min: r.average[0],
7022
7079
  max: r.average[1],
7023
7080
  display: `${r.average[0]}% - ${r.average[1]}%`,
7024
- color: "#eab308",
7025
- // yellow-500
7026
- hoverColor: "#ca8a04"
7027
- // yellow-600
7081
+ color: "#22c55e",
7082
+ // brand green (green-500)
7083
+ hoverColor: "#16a34a"
7084
+ // brand green hover (green-600)
7028
7085
  },
7029
7086
  {
7030
7087
  label: t.couldBeImproved,
@@ -7365,10 +7422,10 @@ var EngagementRateBar = React25.forwardRef(
7365
7422
  label: t.average,
7366
7423
  min: r.average[0],
7367
7424
  max: r.average[1],
7368
- color: "#eab308",
7369
- // yellow-500
7370
- hoverColor: "#ca8a04"
7371
- // yellow-600
7425
+ color: "#22c55e",
7426
+ // brand green (green-500)
7427
+ hoverColor: "#16a34a"
7428
+ // brand green hover (green-600)
7372
7429
  },
7373
7430
  {
7374
7431
  label: t.couldBeImproved,
@@ -7508,7 +7565,7 @@ var progressIndicatorVariants = (0, import_class_variance_authority12.cva)(
7508
7565
  primary: "bg-brand-500",
7509
7566
  secondary: "bg-foreground",
7510
7567
  success: "bg-green-500",
7511
- warning: "bg-yellow-500",
7568
+ warning: "bg-warning-500",
7512
7569
  destructive: "bg-destructive-500"
7513
7570
  }
7514
7571
  },