@agentiffai/design 1.3.20 → 1.3.22

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
@@ -8540,9 +8540,11 @@ var PostPreviewCard = ({
8540
8540
  isEditing = false,
8541
8541
  editContent,
8542
8542
  onContentChange,
8543
- isLoading = false
8543
+ isLoading = false,
8544
+ onImageChange
8544
8545
  }) => {
8545
8546
  const platformConfig = PLATFORM_CONFIGS[post.platform] || PLATFORM_CONFIGS.x;
8547
+ const [imageError, setImageError] = React4.useState(false);
8546
8548
  const showSkeleton = isLoading && !post.content;
8547
8549
  const displayContent = isEditing && editContent !== void 0 ? editContent : post.editedContent || post.content;
8548
8550
  const currentCharCount = displayContent.length;
@@ -8592,14 +8594,96 @@ var PostPreviewCard = ({
8592
8594
  hashtag.replace(/^#/, "")
8593
8595
  ] }, hashtag)) })
8594
8596
  ] }),
8595
- post.imageUrl ? /* @__PURE__ */ jsxRuntime.jsx(ImagePreviewContainer, { children: /* @__PURE__ */ jsxRuntime.jsx(ImagePreview, { src: post.imageUrl, alt: "Post image preview" }) }) : ["instagram", "linkedin", "facebook", "youtube"].includes(post.platform) && /* @__PURE__ */ jsxRuntime.jsxs(ImagePlaceholder, { children: [
8596
- /* @__PURE__ */ jsxRuntime.jsx(PlaceholderIcon, { children: /* @__PURE__ */ jsxRuntime.jsxs("svg", { viewBox: "0 0 24 24", fill: "none", stroke: "currentColor", strokeWidth: "2", children: [
8597
- /* @__PURE__ */ jsxRuntime.jsx("rect", { x: "3", y: "3", width: "18", height: "18", rx: "2", ry: "2" }),
8598
- /* @__PURE__ */ jsxRuntime.jsx("circle", { cx: "8.5", cy: "8.5", r: "1.5" }),
8599
- /* @__PURE__ */ jsxRuntime.jsx("polyline", { points: "21 15 16 10 5 21" })
8600
- ] }) }),
8597
+ post.imageUrl && !imageError ? onImageChange ? /* @__PURE__ */ jsxRuntime.jsx(ImageChangeButton, { type: "button", onClick: onImageChange, "aria-label": "Change image", children: /* @__PURE__ */ jsxRuntime.jsxs(ImagePreviewContainer, { children: [
8598
+ /* @__PURE__ */ jsxRuntime.jsx(
8599
+ ImagePreview,
8600
+ {
8601
+ src: post.imageUrl,
8602
+ alt: "Post image preview",
8603
+ onError: () => setImageError(true)
8604
+ }
8605
+ ),
8606
+ /* @__PURE__ */ jsxRuntime.jsx(ImageOverlay, { children: /* @__PURE__ */ jsxRuntime.jsx(OverlayText, { children: "Change image" }) })
8607
+ ] }) }) : /* @__PURE__ */ jsxRuntime.jsx(ImagePreviewContainer, { children: /* @__PURE__ */ jsxRuntime.jsx(
8608
+ ImagePreview,
8609
+ {
8610
+ src: post.imageUrl,
8611
+ alt: "Post image preview",
8612
+ onError: () => setImageError(true)
8613
+ }
8614
+ ) }) : post.imageUrl && imageError ? onImageChange ? /* @__PURE__ */ jsxRuntime.jsx(ImageChangeButton, { type: "button", onClick: onImageChange, "aria-label": "Replace image", children: /* @__PURE__ */ jsxRuntime.jsxs(ImagePlaceholder, { $clickable: true, children: [
8615
+ /* @__PURE__ */ jsxRuntime.jsx(PlaceholderIcon, { children: /* @__PURE__ */ jsxRuntime.jsxs(
8616
+ "svg",
8617
+ {
8618
+ viewBox: "0 0 24 24",
8619
+ fill: "none",
8620
+ stroke: "currentColor",
8621
+ strokeWidth: "2",
8622
+ role: "img",
8623
+ "aria-label": "Image unavailable",
8624
+ children: [
8625
+ /* @__PURE__ */ jsxRuntime.jsx("rect", { x: "3", y: "3", width: "18", height: "18", rx: "2", ry: "2" }),
8626
+ /* @__PURE__ */ jsxRuntime.jsx("circle", { cx: "8.5", cy: "8.5", r: "1.5" }),
8627
+ /* @__PURE__ */ jsxRuntime.jsx("polyline", { points: "21 15 16 10 5 21" })
8628
+ ]
8629
+ }
8630
+ ) }),
8631
+ /* @__PURE__ */ jsxRuntime.jsx("span", { children: "Tap to replace image" })
8632
+ ] }) }) : /* @__PURE__ */ jsxRuntime.jsxs(ImagePlaceholder, { children: [
8633
+ /* @__PURE__ */ jsxRuntime.jsx(PlaceholderIcon, { children: /* @__PURE__ */ jsxRuntime.jsxs(
8634
+ "svg",
8635
+ {
8636
+ viewBox: "0 0 24 24",
8637
+ fill: "none",
8638
+ stroke: "currentColor",
8639
+ strokeWidth: "2",
8640
+ role: "img",
8641
+ "aria-label": "Image unavailable",
8642
+ children: [
8643
+ /* @__PURE__ */ jsxRuntime.jsx("rect", { x: "3", y: "3", width: "18", height: "18", rx: "2", ry: "2" }),
8644
+ /* @__PURE__ */ jsxRuntime.jsx("circle", { cx: "8.5", cy: "8.5", r: "1.5" }),
8645
+ /* @__PURE__ */ jsxRuntime.jsx("polyline", { points: "21 15 16 10 5 21" })
8646
+ ]
8647
+ }
8648
+ ) }),
8649
+ /* @__PURE__ */ jsxRuntime.jsx("span", { children: "Image unavailable" })
8650
+ ] }) : ["instagram", "linkedin", "facebook", "youtube"].includes(post.platform) && (onImageChange ? /* @__PURE__ */ jsxRuntime.jsx(ImageChangeButton, { type: "button", onClick: onImageChange, "aria-label": "Add image", children: /* @__PURE__ */ jsxRuntime.jsxs(ImagePlaceholder, { $clickable: true, children: [
8651
+ /* @__PURE__ */ jsxRuntime.jsx(PlaceholderIcon, { children: /* @__PURE__ */ jsxRuntime.jsxs(
8652
+ "svg",
8653
+ {
8654
+ viewBox: "0 0 24 24",
8655
+ fill: "none",
8656
+ stroke: "currentColor",
8657
+ strokeWidth: "2",
8658
+ role: "img",
8659
+ "aria-label": "Add image",
8660
+ children: [
8661
+ /* @__PURE__ */ jsxRuntime.jsx("rect", { x: "3", y: "3", width: "18", height: "18", rx: "2", ry: "2" }),
8662
+ /* @__PURE__ */ jsxRuntime.jsx("line", { x1: "12", y1: "8", x2: "12", y2: "16" }),
8663
+ /* @__PURE__ */ jsxRuntime.jsx("line", { x1: "8", y1: "12", x2: "16", y2: "12" })
8664
+ ]
8665
+ }
8666
+ ) }),
8667
+ /* @__PURE__ */ jsxRuntime.jsx("span", { children: "Tap to add image" })
8668
+ ] }) }) : /* @__PURE__ */ jsxRuntime.jsxs(ImagePlaceholder, { children: [
8669
+ /* @__PURE__ */ jsxRuntime.jsx(PlaceholderIcon, { children: /* @__PURE__ */ jsxRuntime.jsxs(
8670
+ "svg",
8671
+ {
8672
+ viewBox: "0 0 24 24",
8673
+ fill: "none",
8674
+ stroke: "currentColor",
8675
+ strokeWidth: "2",
8676
+ role: "img",
8677
+ "aria-label": "No image attached",
8678
+ children: [
8679
+ /* @__PURE__ */ jsxRuntime.jsx("rect", { x: "3", y: "3", width: "18", height: "18", rx: "2", ry: "2" }),
8680
+ /* @__PURE__ */ jsxRuntime.jsx("circle", { cx: "8.5", cy: "8.5", r: "1.5" }),
8681
+ /* @__PURE__ */ jsxRuntime.jsx("polyline", { points: "21 15 16 10 5 21" })
8682
+ ]
8683
+ }
8684
+ ) }),
8601
8685
  /* @__PURE__ */ jsxRuntime.jsx("span", { children: "No image attached" })
8602
- ] }),
8686
+ ] })),
8603
8687
  /* @__PURE__ */ jsxRuntime.jsx(ProgressBarContainer, { children: /* @__PURE__ */ jsxRuntime.jsx(ProgressBarTrack, { children: /* @__PURE__ */ jsxRuntime.jsx(
8604
8688
  ProgressBarFill2,
8605
8689
  {
@@ -8760,7 +8844,17 @@ var ProgressBarFill2 = styled48__default.default.div`
8760
8844
  return tokens.colors.success;
8761
8845
  }};
8762
8846
  `;
8847
+ var ImageChangeButton = styled48__default.default.button`
8848
+ display: block;
8849
+ width: 100%;
8850
+ padding: 0;
8851
+ border: none;
8852
+ background: none;
8853
+ cursor: pointer;
8854
+ -webkit-tap-highlight-color: transparent;
8855
+ `;
8763
8856
  var ImagePreviewContainer = styled48__default.default.div`
8857
+ position: relative;
8764
8858
  margin-bottom: ${tokens.spacing.sm};
8765
8859
  border-radius: ${tokens.borderRadius.sm};
8766
8860
  overflow: hidden;
@@ -8773,6 +8867,30 @@ var ImagePreview = styled48__default.default.img`
8773
8867
  object-fit: cover;
8774
8868
  display: block;
8775
8869
  `;
8870
+ var ImageOverlay = styled48__default.default.div`
8871
+ position: absolute;
8872
+ inset: 0;
8873
+ background: rgba(0, 0, 0, 0.5);
8874
+ display: flex;
8875
+ align-items: center;
8876
+ justify-content: center;
8877
+ opacity: 0;
8878
+ transition: opacity ${tokens.transitions.fast};
8879
+
8880
+ ${ImageChangeButton}:hover &,
8881
+ ${ImageChangeButton}:focus-visible & {
8882
+ opacity: 1;
8883
+ }
8884
+
8885
+ @media (hover: none) {
8886
+ opacity: 0.6;
8887
+ }
8888
+ `;
8889
+ var OverlayText = styled48__default.default.span`
8890
+ color: white;
8891
+ font-size: ${tokens.typography.fontSize.sm};
8892
+ font-weight: ${tokens.typography.fontWeight.semibold};
8893
+ `;
8776
8894
  var ImagePlaceholder = styled48__default.default.div`
8777
8895
  width: 100%;
8778
8896
  height: 200px;
@@ -8792,8 +8910,16 @@ var ImagePlaceholder = styled48__default.default.div`
8792
8910
  gap: ${tokens.spacing.sm};
8793
8911
  color: white;
8794
8912
  font-size: ${tokens.typography.fontSize.sm};
8795
- opacity: 0.8;
8913
+ opacity: ${({ $clickable }) => $clickable ? 0.9 : 0.8};
8796
8914
  margin-bottom: ${tokens.spacing.sm};
8915
+ transition: opacity ${tokens.transitions.fast};
8916
+
8917
+ ${({ $clickable }) => $clickable && `
8918
+ ${ImageChangeButton}:hover &,
8919
+ ${ImageChangeButton}:focus-visible & {
8920
+ opacity: 1;
8921
+ }
8922
+ `}
8797
8923
  `;
8798
8924
  var PlaceholderIcon = styled48__default.default.div`
8799
8925
  width: 48px;
@@ -8842,7 +8968,8 @@ var PlatformCarousel = ({
8842
8968
  editingIndex,
8843
8969
  editContent,
8844
8970
  onEditContentChange,
8845
- isLoading = false
8971
+ isLoading = false,
8972
+ onImageChangeRequest
8846
8973
  }) => {
8847
8974
  const [activeIndex, setActiveIndex] = React4.useState(0);
8848
8975
  React4.useEffect(() => {
@@ -8902,7 +9029,8 @@ var PlatformCarousel = ({
8902
9029
  isEditing,
8903
9030
  editContent: isEditing ? editContent : void 0,
8904
9031
  onContentChange: isEditing ? onEditContentChange : void 0,
8905
- isLoading
9032
+ isLoading,
9033
+ onImageChange: onImageChangeRequest ? () => onImageChangeRequest(index) : void 0
8906
9034
  }
8907
9035
  ) }, `slide-${post.platform}-${index}`);
8908
9036
  }) }),
@@ -9034,7 +9162,8 @@ var PlatformGrid = ({
9034
9162
  onEditContentChange,
9035
9163
  isLoading = false,
9036
9164
  activeIndex = 0,
9037
- onActiveChange
9165
+ onActiveChange,
9166
+ onImageChangeRequest
9038
9167
  }) => {
9039
9168
  if (posts.length === 0) {
9040
9169
  return /* @__PURE__ */ jsxRuntime.jsx(EmptyState2, { children: /* @__PURE__ */ jsxRuntime.jsx(EmptyStateText, { children: "No posts to display" }) });
@@ -9066,7 +9195,8 @@ var PlatformGrid = ({
9066
9195
  isEditing,
9067
9196
  editContent: isEditing ? editContent : void 0,
9068
9197
  onContentChange: isEditing ? onEditContentChange : void 0,
9069
- isLoading
9198
+ isLoading,
9199
+ onImageChange: onImageChangeRequest ? () => onImageChangeRequest(index) : void 0
9070
9200
  }
9071
9201
  )
9072
9202
  },
@@ -9258,7 +9388,8 @@ var SocialMediaCanvas = ({
9258
9388
  editContent,
9259
9389
  onEditContentChange,
9260
9390
  isLoading = false,
9261
- activeIndex = 0
9391
+ activeIndex = 0,
9392
+ onImageChangeRequest
9262
9393
  }) => {
9263
9394
  const [viewMode, setViewMode] = React4.useState(initialViewMode);
9264
9395
  const handleActiveChange = (index) => {
@@ -9315,7 +9446,8 @@ var SocialMediaCanvas = ({
9315
9446
  editingIndex,
9316
9447
  editContent,
9317
9448
  onEditContentChange,
9318
- isLoading
9449
+ isLoading,
9450
+ onImageChangeRequest
9319
9451
  }
9320
9452
  ) : /* @__PURE__ */ jsxRuntime.jsx(
9321
9453
  PlatformGrid,
@@ -9326,7 +9458,8 @@ var SocialMediaCanvas = ({
9326
9458
  onEditContentChange,
9327
9459
  isLoading,
9328
9460
  activeIndex,
9329
- onActiveChange: handleActiveChange
9461
+ onActiveChange: handleActiveChange,
9462
+ onImageChangeRequest
9330
9463
  }
9331
9464
  ) })
9332
9465
  ] });
@@ -10323,6 +10456,11 @@ var ActionButton6 = styled48__default.default.button`
10323
10456
  animation: ${pulse4} 2s ease-in-out infinite;
10324
10457
  `}
10325
10458
  `;
10459
+ var TYPE_ICONS = {
10460
+ input: "/assets/icon-set/Icon-arrow-up-fill.svg",
10461
+ output: "/assets/icon-set/Icon-download-2-fill.svg",
10462
+ system: "/assets/icon-set/Icon-settings-3-fill.svg"
10463
+ };
10326
10464
  function formatNumber2(num) {
10327
10465
  if (num >= 1e6) {
10328
10466
  return `${(num / 1e6).toFixed(1)}M`;
@@ -10356,11 +10494,6 @@ var usageLevelColors = {
10356
10494
  high: "#ff8c00",
10357
10495
  critical: tokens.colors.error
10358
10496
  };
10359
- var typeIcons = {
10360
- input: "\u2191",
10361
- output: "\u2193",
10362
- system: "\u2699"
10363
- };
10364
10497
  var typeColors = {
10365
10498
  input: tokens.colors.info,
10366
10499
  output: tokens.colors.success,
@@ -10372,13 +10505,38 @@ function TokenUsageCard({
10372
10505
  transactions,
10373
10506
  periodLabel,
10374
10507
  onViewAll,
10375
- className
10508
+ className,
10509
+ loading = false
10376
10510
  }) {
10377
10511
  const percentage = React4.useMemo(
10378
10512
  () => Math.min(currentUsage / maxLimit * 100, 100),
10379
10513
  [currentUsage, maxLimit]
10380
10514
  );
10381
10515
  const usageLevel = React4.useMemo(() => getUsageLevel(percentage), [percentage]);
10516
+ if (loading) {
10517
+ return /* @__PURE__ */ jsxRuntime.jsxs(Card2, { className, "data-testid": "token-usage-card-loading", children: [
10518
+ /* @__PURE__ */ jsxRuntime.jsxs(Header4, { children: [
10519
+ /* @__PURE__ */ jsxRuntime.jsx(SkeletonBlock, { $width: "120px", $height: "20px" }),
10520
+ /* @__PURE__ */ jsxRuntime.jsx(SkeletonBlock, { $width: "80px", $height: "16px" })
10521
+ ] }),
10522
+ /* @__PURE__ */ jsxRuntime.jsxs(UsageSection, { children: [
10523
+ /* @__PURE__ */ jsxRuntime.jsx(SkeletonBlock, { $width: "160px", $height: "28px" }),
10524
+ /* @__PURE__ */ jsxRuntime.jsx(SkeletonBlock, { $width: "100%", $height: "8px", $radius: tokens.borderRadius.full }),
10525
+ /* @__PURE__ */ jsxRuntime.jsx(SkeletonBlock, { $width: "80px", $height: "14px" })
10526
+ ] }),
10527
+ /* @__PURE__ */ jsxRuntime.jsxs(TransactionsSection, { children: [
10528
+ /* @__PURE__ */ jsxRuntime.jsx(SkeletonBlock, { $width: "100px", $height: "14px" }),
10529
+ /* @__PURE__ */ jsxRuntime.jsx(TransactionsList, { children: [1, 2, 3].map((i) => /* @__PURE__ */ jsxRuntime.jsxs(TransactionItem, { children: [
10530
+ /* @__PURE__ */ jsxRuntime.jsx(SkeletonBlock, { $width: "24px", $height: "24px", $radius: tokens.borderRadius.sm }),
10531
+ /* @__PURE__ */ jsxRuntime.jsxs(TransactionInfo, { children: [
10532
+ /* @__PURE__ */ jsxRuntime.jsx(SkeletonBlock, { $width: "70%", $height: "14px" }),
10533
+ /* @__PURE__ */ jsxRuntime.jsx(SkeletonBlock, { $width: "50%", $height: "12px" })
10534
+ ] }),
10535
+ /* @__PURE__ */ jsxRuntime.jsx(SkeletonBlock, { $width: "32px", $height: "14px" })
10536
+ ] }, i)) })
10537
+ ] })
10538
+ ] });
10539
+ }
10382
10540
  return /* @__PURE__ */ jsxRuntime.jsxs(Card2, { className, "data-testid": "token-usage-card", children: [
10383
10541
  /* @__PURE__ */ jsxRuntime.jsxs(Header4, { children: [
10384
10542
  /* @__PURE__ */ jsxRuntime.jsx(Title2, { children: "Token Usage" }),
@@ -10399,7 +10557,7 @@ function TokenUsageCard({
10399
10557
  transactions.length > 0 && /* @__PURE__ */ jsxRuntime.jsxs(TransactionsSection, { children: [
10400
10558
  /* @__PURE__ */ jsxRuntime.jsx(TransactionsHeader, { children: "Recent Activity" }),
10401
10559
  /* @__PURE__ */ jsxRuntime.jsx(TransactionsList, { children: transactions.slice(0, 5).map((transaction) => /* @__PURE__ */ jsxRuntime.jsxs(TransactionItem, { children: [
10402
- /* @__PURE__ */ jsxRuntime.jsx(TransactionIcon, { $type: transaction.type, children: typeIcons[transaction.type] }),
10560
+ /* @__PURE__ */ jsxRuntime.jsx(TransactionIcon, { $type: transaction.type, children: /* @__PURE__ */ jsxRuntime.jsx("img", { src: TYPE_ICONS[transaction.type], alt: "", width: 14, height: 14 }) }),
10403
10561
  /* @__PURE__ */ jsxRuntime.jsxs(TransactionInfo, { children: [
10404
10562
  /* @__PURE__ */ jsxRuntime.jsx(TransactionDescription, { children: transaction.description }),
10405
10563
  /* @__PURE__ */ jsxRuntime.jsxs(TransactionMeta, { children: [
@@ -10421,18 +10579,20 @@ var Card2 = styled48__default.default.div`
10421
10579
  display: flex;
10422
10580
  flex-direction: column;
10423
10581
  background: ${tokens.colors.background.darker};
10424
- border-radius: ${tokens.borderRadius.xl};
10425
10582
  border: 1px solid ${tokens.colors.border.default};
10583
+ border-radius: ${tokens.borderRadius.xl};
10584
+ height: 100%;
10426
10585
  overflow: hidden;
10427
10586
  `;
10428
10587
  var Header4 = styled48__default.default.div`
10429
10588
  display: flex;
10430
10589
  justify-content: space-between;
10431
10590
  align-items: center;
10432
- padding: ${tokens.spacing.sm} ${tokens.spacing.md};
10591
+ padding: 0 0.5rem;
10433
10592
  background: ${tokens.colors.background.darker};
10434
10593
  border-bottom: 1px solid ${tokens.colors.border.default};
10435
10594
  min-height: 48px;
10595
+ flex-shrink: 0;
10436
10596
  `;
10437
10597
  var Title2 = styled48__default.default.h3`
10438
10598
  margin: 0;
@@ -10496,9 +10656,11 @@ var TransactionsSection = styled48__default.default.div`
10496
10656
  display: flex;
10497
10657
  flex-direction: column;
10498
10658
  gap: ${tokens.spacing.sm};
10499
- padding: ${tokens.spacing.md};
10500
- padding-top: ${tokens.spacing.sm};
10659
+ padding: ${tokens.spacing.sm} ${tokens.spacing.md} ${tokens.spacing.md};
10501
10660
  border-top: 1px solid ${tokens.colors.border.subtle};
10661
+ flex: 1;
10662
+ overflow-y: auto;
10663
+ min-height: 0;
10502
10664
  `;
10503
10665
  var TransactionsHeader = styled48__default.default.h4`
10504
10666
  margin: 0;
@@ -10510,15 +10672,24 @@ var TransactionsHeader = styled48__default.default.h4`
10510
10672
  var TransactionsList = styled48__default.default.div`
10511
10673
  display: flex;
10512
10674
  flex-direction: column;
10513
- gap: ${tokens.spacing.xs};
10675
+ gap: ${tokens.spacing.sm};
10514
10676
  `;
10515
10677
  var TransactionItem = styled48__default.default.div`
10516
10678
  display: flex;
10517
10679
  align-items: center;
10518
10680
  gap: ${tokens.spacing.sm};
10519
10681
  padding: ${tokens.spacing.sm};
10520
- background: ${tokens.colors.background.darker};
10521
- border-radius: ${tokens.borderRadius.sm};
10682
+ background: ${tokens.colors.background.dark};
10683
+ border-radius: ${tokens.borderRadius.lg};
10684
+ border: 1px solid ${tokens.colors.border.default};
10685
+ min-width: 0;
10686
+ overflow: hidden;
10687
+ transition: border-color ${tokens.transitions.fast},
10688
+ background-color ${tokens.transitions.fast};
10689
+
10690
+ &:hover {
10691
+ border-color: ${tokens.colors.border.hover};
10692
+ }
10522
10693
  `;
10523
10694
  var TransactionIcon = styled48__default.default.span`
10524
10695
  width: 24px;
@@ -10526,14 +10697,26 @@ var TransactionIcon = styled48__default.default.span`
10526
10697
  display: flex;
10527
10698
  align-items: center;
10528
10699
  justify-content: center;
10529
- font-size: ${tokens.typography.fontSize.sm};
10530
- color: ${({ $type }) => typeColors[$type]};
10700
+ flex-shrink: 0;
10531
10701
  background: ${tokens.colors.background.light};
10532
10702
  border-radius: ${tokens.borderRadius.sm};
10703
+
10704
+ img {
10705
+ filter: ${({ $type }) => {
10706
+ if ($type === "input") {
10707
+ return "brightness(0) saturate(100%) invert(55%) sepia(83%) saturate(1956%) hue-rotate(190deg) brightness(101%) contrast(101%)";
10708
+ }
10709
+ if ($type === "output") {
10710
+ return "brightness(0) saturate(100%) invert(73%) sepia(34%) saturate(547%) hue-rotate(99deg) brightness(91%) contrast(89%)";
10711
+ }
10712
+ return "brightness(0) saturate(100%) invert(70%) sepia(0%) saturate(0%) hue-rotate(0deg) brightness(90%) contrast(85%)";
10713
+ }};
10714
+ }
10533
10715
  `;
10534
10716
  var TransactionInfo = styled48__default.default.div`
10535
10717
  flex: 1;
10536
10718
  min-width: 0;
10719
+ overflow: hidden;
10537
10720
  `;
10538
10721
  var TransactionDescription = styled48__default.default.div`
10539
10722
  font-size: ${tokens.typography.fontSize.sm};
@@ -10549,12 +10732,20 @@ var TransactionMeta = styled48__default.default.div`
10549
10732
  font-size: ${tokens.typography.fontSize.xs};
10550
10733
  font-family: ${tokens.typography.fontFamily.primary};
10551
10734
  color: ${tokens.colors.text.tertiary};
10735
+ overflow: hidden;
10736
+
10737
+ span {
10738
+ overflow: hidden;
10739
+ text-overflow: ellipsis;
10740
+ white-space: nowrap;
10741
+ }
10552
10742
  `;
10553
10743
  var TransactionTokens = styled48__default.default.span`
10554
10744
  font-size: ${tokens.typography.fontSize.sm};
10555
10745
  font-weight: ${tokens.typography.fontWeight.medium};
10556
10746
  font-family: ${tokens.typography.fontFamily.primary};
10557
10747
  color: ${({ $type }) => typeColors[$type]};
10748
+ flex-shrink: 0;
10558
10749
  `;
10559
10750
  var EmptyState4 = styled48__default.default.div`
10560
10751
  text-align: center;
@@ -10581,6 +10772,17 @@ var ViewAllButton = styled48__default.default.button`
10581
10772
  color: ${tokens.colors.text.primary};
10582
10773
  }
10583
10774
  `;
10775
+ var pulse5 = styled48.keyframes`
10776
+ 0%, 100% { opacity: 1; }
10777
+ 50% { opacity: 0.4; }
10778
+ `;
10779
+ var SkeletonBlock = styled48__default.default.div`
10780
+ width: ${({ $width }) => $width};
10781
+ height: ${({ $height }) => $height};
10782
+ background: ${tokens.colors.background.light};
10783
+ border-radius: ${({ $radius }) => $radius || tokens.borderRadius.sm};
10784
+ animation: ${pulse5} 1.5s ease-in-out infinite;
10785
+ `;
10584
10786
  var WorkflowCard = ({
10585
10787
  id,
10586
10788
  name,
@@ -11571,7 +11773,7 @@ var spin = styled48.keyframes`
11571
11773
  transform: rotate(360deg);
11572
11774
  }
11573
11775
  `;
11574
- var pulse5 = styled48.keyframes`
11776
+ var pulse6 = styled48.keyframes`
11575
11777
  0%, 100% {
11576
11778
  opacity: 1;
11577
11779
  }
@@ -11649,7 +11851,7 @@ var IconContainer3 = styled48__default.default.div`
11649
11851
  animation: ${(props) => {
11650
11852
  if (props.$animated) {
11651
11853
  if (props.$status === "running") return spin;
11652
- if (props.$status === "pending") return pulse5;
11854
+ if (props.$status === "pending") return pulse6;
11653
11855
  }
11654
11856
  return "none";
11655
11857
  }}