@flamingo-stack/openframe-frontend-core 0.0.355 → 0.0.357-snapshot.20260702003231

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.
Files changed (108) hide show
  1. package/dist/{chunk-PLSEMEEM.cjs → chunk-2J56P3HL.cjs} +40 -40
  2. package/dist/{chunk-PLSEMEEM.cjs.map → chunk-2J56P3HL.cjs.map} +1 -1
  3. package/dist/{chunk-426BLQES.cjs → chunk-2LLPPZB2.cjs} +19 -19
  4. package/dist/{chunk-426BLQES.cjs.map → chunk-2LLPPZB2.cjs.map} +1 -1
  5. package/dist/{chunk-RYJTVPOQ.js → chunk-2NV6UIY3.js} +2 -2
  6. package/dist/{chunk-U5MQW3PH.js → chunk-7RQM23VH.js} +2 -2
  7. package/dist/{chunk-SFETWAWG.cjs → chunk-AVCR5TCA.cjs} +5 -5
  8. package/dist/{chunk-SFETWAWG.cjs.map → chunk-AVCR5TCA.cjs.map} +1 -1
  9. package/dist/{chunk-GPX5I7FT.cjs → chunk-B7NOIJR3.cjs} +2 -2
  10. package/dist/chunk-B7NOIJR3.cjs.map +1 -0
  11. package/dist/{chunk-XIZR45OD.js → chunk-BJ6J6WLA.js} +5 -5
  12. package/dist/{chunk-MYLWEYWT.cjs → chunk-C6XEJALZ.cjs} +252 -214
  13. package/dist/chunk-C6XEJALZ.cjs.map +1 -0
  14. package/dist/{chunk-URBSUHOU.js → chunk-CX4NZ56E.js} +3 -3
  15. package/dist/{chunk-KTTCJ7NX.js → chunk-DDCTJIWD.js} +2 -2
  16. package/dist/{chunk-P4YC4V7T.js → chunk-DZHIM646.js} +6 -6
  17. package/dist/{chunk-KAWIGFO2.cjs → chunk-EASJYKEA.cjs} +29 -29
  18. package/dist/{chunk-KAWIGFO2.cjs.map → chunk-EASJYKEA.cjs.map} +1 -1
  19. package/dist/{chunk-7CEEJGCF.cjs → chunk-EOXJ73JE.cjs} +15 -15
  20. package/dist/{chunk-7CEEJGCF.cjs.map → chunk-EOXJ73JE.cjs.map} +1 -1
  21. package/dist/{chunk-2IJSLRZZ.cjs → chunk-F5NAL32B.cjs} +7 -7
  22. package/dist/{chunk-2IJSLRZZ.cjs.map → chunk-F5NAL32B.cjs.map} +1 -1
  23. package/dist/{chunk-SGZM3LF6.js → chunk-FPWI7T6Z.js} +6 -6
  24. package/dist/{chunk-GO2AEBG7.js → chunk-IBYCZG6S.js} +3 -3
  25. package/dist/{chunk-IDQJJEYE.js → chunk-IFL7IRAW.js} +5 -5
  26. package/dist/{chunk-266IXS6E.js → chunk-IL33PEQB.js} +2 -2
  27. package/dist/{chunk-V5QI32ZA.cjs → chunk-LQONASYT.cjs} +70 -70
  28. package/dist/{chunk-V5QI32ZA.cjs.map → chunk-LQONASYT.cjs.map} +1 -1
  29. package/dist/{chunk-GSW23VUI.js → chunk-O6ZTFST3.js} +4 -4
  30. package/dist/{chunk-RYROZ7HM.cjs → chunk-QCG3MBP6.cjs} +3 -3
  31. package/dist/{chunk-RYROZ7HM.cjs.map → chunk-QCG3MBP6.cjs.map} +1 -1
  32. package/dist/{chunk-O7T2VECL.cjs → chunk-SAIKHQTP.cjs} +39 -39
  33. package/dist/{chunk-O7T2VECL.cjs.map → chunk-SAIKHQTP.cjs.map} +1 -1
  34. package/dist/{chunk-RE3KBUNB.js → chunk-TRAJG5JZ.js} +201 -163
  35. package/dist/chunk-TRAJG5JZ.js.map +1 -0
  36. package/dist/{chunk-5FYSQ3GW.cjs → chunk-TRON4VRV.cjs} +73 -73
  37. package/dist/{chunk-5FYSQ3GW.cjs.map → chunk-TRON4VRV.cjs.map} +1 -1
  38. package/dist/{chunk-JGAAUUD7.js → chunk-UJ4ENR2O.js} +2 -2
  39. package/dist/chunk-UJ4ENR2O.js.map +1 -0
  40. package/dist/{chunk-QD6ANQN5.cjs → chunk-WLU4IOM6.cjs} +31 -31
  41. package/dist/{chunk-QD6ANQN5.cjs.map → chunk-WLU4IOM6.cjs.map} +1 -1
  42. package/dist/{chunk-KNIXUH6G.cjs → chunk-XX42KS3W.cjs} +12 -12
  43. package/dist/{chunk-KNIXUH6G.cjs.map → chunk-XX42KS3W.cjs.map} +1 -1
  44. package/dist/{chunk-GMMVBLAD.js → chunk-XZGZH5GG.js} +3 -3
  45. package/dist/components/case-studies/index.cjs +9 -9
  46. package/dist/components/case-studies/index.js +3 -3
  47. package/dist/components/chat/index.cjs +3 -3
  48. package/dist/components/chat/index.js +2 -2
  49. package/dist/components/contact/index.cjs +4 -4
  50. package/dist/components/contact/index.js +3 -3
  51. package/dist/components/docs/index.cjs +6 -6
  52. package/dist/components/docs/index.js +5 -5
  53. package/dist/components/embeds/index.cjs +4 -4
  54. package/dist/components/embeds/index.js +3 -3
  55. package/dist/components/faq/index.cjs +5 -5
  56. package/dist/components/faq/index.js +4 -4
  57. package/dist/components/features/index.cjs +3 -3
  58. package/dist/components/features/index.js +2 -2
  59. package/dist/components/help-center-pages/index.cjs +22 -22
  60. package/dist/components/help-center-pages/index.js +13 -13
  61. package/dist/components/index.cjs +124 -124
  62. package/dist/components/index.js +11 -11
  63. package/dist/components/navigation/index.cjs +3 -3
  64. package/dist/components/navigation/index.js +2 -2
  65. package/dist/components/onboarding-guides/index.cjs +7 -7
  66. package/dist/components/onboarding-guides/index.js +6 -6
  67. package/dist/components/related-content/index.cjs +5 -5
  68. package/dist/components/related-content/index.js +4 -4
  69. package/dist/components/tickets/index.cjs +6 -6
  70. package/dist/components/tickets/index.js +5 -5
  71. package/dist/components/ui/floating-tooltip.d.ts.map +1 -1
  72. package/dist/components/ui/index.cjs +3 -3
  73. package/dist/components/ui/index.js +2 -2
  74. package/dist/components/ui/tab-navigation.d.ts.map +1 -1
  75. package/dist/components/ui/tooltip.d.ts.map +1 -1
  76. package/dist/hooks/index.cjs +2 -2
  77. package/dist/hooks/index.js +1 -1
  78. package/dist/index.cjs +3 -3
  79. package/dist/index.js +2 -2
  80. package/dist/types/index.cjs +1 -1
  81. package/dist/types/index.cjs.map +1 -1
  82. package/dist/types/index.js +1 -1
  83. package/dist/types/index.js.map +1 -1
  84. package/dist/utils/index.cjs +1 -1
  85. package/dist/utils/index.cjs.map +1 -1
  86. package/dist/utils/index.js +1 -1
  87. package/dist/utils/index.js.map +1 -1
  88. package/package.json +1 -1
  89. package/src/components/ui/floating-tooltip.tsx +19 -5
  90. package/src/components/ui/tab-navigation.tsx +45 -2
  91. package/src/components/ui/tooltip.tsx +3 -1
  92. package/src/types/tool.types.ts +1 -1
  93. package/dist/chunk-GPX5I7FT.cjs.map +0 -1
  94. package/dist/chunk-JGAAUUD7.js.map +0 -1
  95. package/dist/chunk-MYLWEYWT.cjs.map +0 -1
  96. package/dist/chunk-RE3KBUNB.js.map +0 -1
  97. /package/dist/{chunk-RYJTVPOQ.js.map → chunk-2NV6UIY3.js.map} +0 -0
  98. /package/dist/{chunk-U5MQW3PH.js.map → chunk-7RQM23VH.js.map} +0 -0
  99. /package/dist/{chunk-XIZR45OD.js.map → chunk-BJ6J6WLA.js.map} +0 -0
  100. /package/dist/{chunk-URBSUHOU.js.map → chunk-CX4NZ56E.js.map} +0 -0
  101. /package/dist/{chunk-KTTCJ7NX.js.map → chunk-DDCTJIWD.js.map} +0 -0
  102. /package/dist/{chunk-P4YC4V7T.js.map → chunk-DZHIM646.js.map} +0 -0
  103. /package/dist/{chunk-SGZM3LF6.js.map → chunk-FPWI7T6Z.js.map} +0 -0
  104. /package/dist/{chunk-GO2AEBG7.js.map → chunk-IBYCZG6S.js.map} +0 -0
  105. /package/dist/{chunk-IDQJJEYE.js.map → chunk-IFL7IRAW.js.map} +0 -0
  106. /package/dist/{chunk-266IXS6E.js.map → chunk-IL33PEQB.js.map} +0 -0
  107. /package/dist/{chunk-GSW23VUI.js.map → chunk-O6ZTFST3.js.map} +0 -0
  108. /package/dist/{chunk-GMMVBLAD.js.map → chunk-XZGZH5GG.js.map} +0 -0
@@ -25,7 +25,7 @@ import {
25
25
  useOgPlaceholderUrl,
26
26
  useOnboardingState,
27
27
  useToast
28
- } from "./chunk-JGAAUUD7.js";
28
+ } from "./chunk-UJ4ENR2O.js";
29
29
  import {
30
30
  AlertCircleIcon,
31
31
  AnthropicLogoGreyIcon,
@@ -2215,7 +2215,7 @@ function formatBioText(aboutHtml, fallback = "") {
2215
2215
  // src/components/ui/square-avatar.tsx
2216
2216
  import { jsx as jsx10, jsxs as jsxs9 } from "react/jsx-runtime";
2217
2217
  var SquareAvatar = React2.memo(React2.forwardRef(
2218
- ({ className, src, alt, size = "md", fallback, variant = "square", initialsClassName, ...props }, ref) => {
2218
+ ({ className, src, alt, size: size2 = "md", fallback, variant = "square", initialsClassName, ...props }, ref) => {
2219
2219
  const sizeClasses2 = {
2220
2220
  sm: "h-8 w-8",
2221
2221
  md: "h-10 w-10",
@@ -2237,7 +2237,7 @@ var SquareAvatar = React2.memo(React2.forwardRef(
2237
2237
  {
2238
2238
  className: cn(
2239
2239
  "relative flex items-center justify-center shrink-0 overflow-hidden border border-ods-border bg-ods-bg",
2240
- sizeClasses2[size],
2240
+ sizeClasses2[size2],
2241
2241
  variantClasses[variant],
2242
2242
  className
2243
2243
  ),
@@ -2265,8 +2265,8 @@ var SquareAvatar = React2.memo(React2.forwardRef(
2265
2265
  className: "absolute -inset-px h-[calc(100%+2px)] w-[calc(100%+2px)] max-w-none object-cover",
2266
2266
  src,
2267
2267
  alt: alt || "",
2268
- width: sizePx[size],
2269
- height: sizePx[size],
2268
+ width: sizePx[size2],
2269
+ height: sizePx[size2],
2270
2270
  onError: (e) => {
2271
2271
  e.currentTarget.style.display = "none";
2272
2272
  const el = e.currentTarget.previousElementSibling;
@@ -3197,7 +3197,7 @@ init_cn();
3197
3197
  import * as React7 from "react";
3198
3198
  import { jsx as jsx16, jsxs as jsxs14 } from "react/jsx-runtime";
3199
3199
  var ChatTypingIndicator = React7.forwardRef(
3200
- ({ className, size = "md", showText = false, dotClassName, ...props }, ref) => {
3200
+ ({ className, size: size2 = "md", showText = false, dotClassName, ...props }, ref) => {
3201
3201
  const dotSizeClasses = {
3202
3202
  sm: "w-1 h-1",
3203
3203
  md: "w-1.5 h-1.5",
@@ -3231,13 +3231,13 @@ var ChatTypingIndicator = React7.forwardRef(
3231
3231
  showText && /* @__PURE__ */ jsx16("span", { className: "text-ods-text-secondary text-sm", children: "Assistant is typing" }),
3232
3232
  /* @__PURE__ */ jsxs14("div", { className: cn(
3233
3233
  "inline-flex items-center justify-center gap-1",
3234
- containerSizeClasses[size]
3234
+ containerSizeClasses[size2]
3235
3235
  ), children: [
3236
3236
  /* @__PURE__ */ jsx16(
3237
3237
  "div",
3238
3238
  {
3239
3239
  className: cn(
3240
- dotSizeClasses[size],
3240
+ dotSizeClasses[size2],
3241
3241
  "rounded-full",
3242
3242
  dotClassName || "bg-ods-text-primary"
3243
3243
  ),
@@ -3251,7 +3251,7 @@ var ChatTypingIndicator = React7.forwardRef(
3251
3251
  "div",
3252
3252
  {
3253
3253
  className: cn(
3254
- dotSizeClasses[size],
3254
+ dotSizeClasses[size2],
3255
3255
  "rounded-full",
3256
3256
  dotClassName || "bg-ods-text-primary"
3257
3257
  ),
@@ -3265,7 +3265,7 @@ var ChatTypingIndicator = React7.forwardRef(
3265
3265
  "div",
3266
3266
  {
3267
3267
  className: cn(
3268
- dotSizeClasses[size],
3268
+ dotSizeClasses[size2],
3269
3269
  "rounded-full",
3270
3270
  dotClassName || "bg-ods-text-primary"
3271
3271
  ),
@@ -3514,12 +3514,12 @@ var ICON_COLORS = {
3514
3514
  facebook: { color: "#1877F2" },
3515
3515
  youtube: { color: "#FF0000" }
3516
3516
  };
3517
- function getDynamicIcon(iconName, size = "md", className) {
3517
+ function getDynamicIcon(iconName, size2 = "md", className) {
3518
3518
  if (!iconName) {
3519
3519
  console.warn("[getDynamicIcon] No iconName provided, using Globe fallback");
3520
- return createElement(Globe, { className: SIZE_CLASSES[size] });
3520
+ return createElement(Globe, { className: SIZE_CLASSES[size2] });
3521
3521
  }
3522
- const sizeClass = SIZE_CLASSES[size];
3522
+ const sizeClass = SIZE_CLASSES[size2];
3523
3523
  const finalClassName = className ? `${sizeClass} ${className}` : sizeClass;
3524
3524
  const canonicalKey = normalizeIconKey(iconName);
3525
3525
  const IconComponent = ICON_REGISTRY[canonicalKey];
@@ -3538,14 +3538,14 @@ function getDynamicIcon(iconName, size = "md", className) {
3538
3538
  import { Megaphone as Megaphone2, Bell as Bell2, Info as Info2, Star as Star2, Package as PackageGlyph } from "lucide-react";
3539
3539
  import { jsx as jsx18 } from "react/jsx-runtime";
3540
3540
  function sizedLogo(Logo) {
3541
- return function SizedLogo({ size = 16, className }) {
3542
- return /* @__PURE__ */ jsx18(Logo, { className, style: { width: size, height: size } });
3541
+ return function SizedLogo({ size: size2 = 16, className }) {
3542
+ return /* @__PURE__ */ jsx18(Logo, { className, style: { width: size2, height: size2 } });
3543
3543
  };
3544
3544
  }
3545
3545
  var OpenmspLogoIcon = sizedLogo(OpenmspLogo);
3546
3546
  var FlamingoLogoIcon = sizedLogo(FlamingoLogo);
3547
3547
  function LogoOpenframeIcon({
3548
- size = 16,
3548
+ size: size2 = 16,
3549
3549
  className,
3550
3550
  color
3551
3551
  }) {
@@ -3556,7 +3556,7 @@ function LogoOpenframeIcon({
3556
3556
  className,
3557
3557
  lowerPathColor: tint,
3558
3558
  upperPathColor: tint,
3559
- style: { width: size, height: size }
3559
+ style: { width: size2, height: size2 }
3560
3560
  }
3561
3561
  );
3562
3562
  }
@@ -6907,7 +6907,7 @@ import { jsx as jsx37 } from "react/jsx-runtime";
6907
6907
  var BRAND_MARK_NAMES = /* @__PURE__ */ new Set(["fae", "mingo"]);
6908
6908
  function EntityIcon({
6909
6909
  icon,
6910
- size = 20,
6910
+ size: size2 = 20,
6911
6911
  className
6912
6912
  }) {
6913
6913
  if (icon?.url) {
@@ -6916,8 +6916,8 @@ function EntityIcon({
6916
6916
  {
6917
6917
  src: icon.url,
6918
6918
  alt: "",
6919
- width: size,
6920
- height: size,
6919
+ width: size2,
6920
+ height: size2,
6921
6921
  className,
6922
6922
  style: { objectFit: "contain" }
6923
6923
  }
@@ -6928,13 +6928,13 @@ function EntityIcon({
6928
6928
  "span",
6929
6929
  {
6930
6930
  className: `inline-flex${className ? ` ${className}` : ""}`,
6931
- style: className ? void 0 : { width: size, height: size },
6931
+ style: className ? void 0 : { width: size2, height: size2 },
6932
6932
  children: /* @__PURE__ */ jsx37(AgentMark, { agent: icon.name, className: "w-full h-full" })
6933
6933
  }
6934
6934
  );
6935
6935
  }
6936
6936
  const Glyph = resolveIcon(icon?.name ?? void 0);
6937
- return /* @__PURE__ */ jsx37(Glyph, { size, className, ...icon?.props ?? {} });
6937
+ return /* @__PURE__ */ jsx37(Glyph, { size: size2, className, ...icon?.props ?? {} });
6938
6938
  }
6939
6939
 
6940
6940
  // src/components/chat/guide-welcome.tsx
@@ -7143,7 +7143,9 @@ var TooltipContent = React16.forwardRef(({ className, sideOffset = 4, ...props }
7143
7143
  ref,
7144
7144
  sideOffset,
7145
7145
  className: cn(
7146
- "z-[1400] rounded-md bg-ods-card border border-ods-border px-3 py-2 text-sm text-ods-text-primary shadow-lg animate-in fade-in-0 zoom-in-95 data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=closed]:zoom-out-95 data-[side=bottom]:slide-in-from-top-2 data-[side=left]:slide-in-from-right-2 data-[side=right]:slide-in-from-left-2 data-[side=top]:slide-in-from-bottom-2",
7146
+ // `max-h` uses Radix's available-height var so tall content scrolls inside
7147
+ // the tooltip instead of overflowing off-screen (only engages on overflow).
7148
+ "z-[1400] max-h-[var(--radix-popper-available-height)] overflow-y-auto rounded-md bg-ods-card border border-ods-border px-3 py-2 text-sm text-ods-text-primary shadow-lg animate-in fade-in-0 zoom-in-95 data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=closed]:zoom-out-95 data-[side=bottom]:slide-in-from-top-2 data-[side=left]:slide-in-from-right-2 data-[side=right]:slide-in-from-left-2 data-[side=top]:slide-in-from-bottom-2",
7147
7149
  className
7148
7150
  ),
7149
7151
  ...props
@@ -7683,10 +7685,10 @@ function ChatAttachmentAddButton({
7683
7685
  attachmentsCount,
7684
7686
  onAddFiles,
7685
7687
  disabled = false,
7686
- size = "default"
7688
+ size: size2 = "default"
7687
7689
  }) {
7688
7690
  const fileInputRef = useRef12(null);
7689
- const compact = size === "compact";
7691
+ const compact = size2 === "compact";
7690
7692
  const boxClass = compact ? "h-6 w-6" : "h-7 w-7";
7691
7693
  if (!attachmentsEnabled) {
7692
7694
  return /* @__PURE__ */ jsx48("span", { "aria-hidden": "true", className: cn("inline-block shrink-0", boxClass) });
@@ -7738,25 +7740,25 @@ function ChatAttachmentChipStrip({
7738
7740
  attachments,
7739
7741
  onRemove,
7740
7742
  disabled = false,
7741
- size = "default"
7743
+ size: size2 = "default"
7742
7744
  }) {
7743
7745
  if (attachments.length === 0) return null;
7744
- const compact = size === "compact";
7746
+ const compact = size2 === "compact";
7745
7747
  return /* @__PURE__ */ jsx48("div", { className: cn("flex-shrink-0", compact ? "px-3 pb-1.5" : "px-5 pb-2"), children: /* @__PURE__ */ jsx48("div", { className: cn("flex items-center flex-wrap", compact ? "gap-1.5" : "gap-2"), children: attachments.map((att) => /* @__PURE__ */ jsx48(
7746
7748
  AttachmentChip,
7747
7749
  {
7748
7750
  attachment: att,
7749
7751
  onRemove: () => onRemove(att.id),
7750
7752
  disabled,
7751
- size
7753
+ size: size2
7752
7754
  },
7753
7755
  att.id
7754
7756
  )) }) });
7755
7757
  }
7756
- function AttachmentChip({ attachment, onRemove, disabled, size = "default" }) {
7758
+ function AttachmentChip({ attachment, onRemove, disabled, size: size2 = "default" }) {
7757
7759
  const { file, status, progress, errorMessage } = attachment;
7758
7760
  const isImage = ANTHROPIC_SUPPORTED_IMAGE_MIME.includes(file.type);
7759
- const compact = size === "compact";
7761
+ const compact = size2 === "compact";
7760
7762
  const blobUrl = useObjectUrl(isImage ? file : null);
7761
7763
  return /* @__PURE__ */ jsxs40(
7762
7764
  "div",
@@ -8821,12 +8823,12 @@ init_cn();
8821
8823
 
8822
8824
  // src/components/flamingo-logo.tsx
8823
8825
  import { jsx as jsx59 } from "react/jsx-runtime";
8824
- function FlamingoLogo2({ className = "", color = "var(--ods-flamingo-pink-base)", size = 120, ...props }) {
8826
+ function FlamingoLogo2({ className = "", color = "var(--ods-flamingo-pink-base)", size: size2 = 120, ...props }) {
8825
8827
  return /* @__PURE__ */ jsx59(
8826
8828
  "svg",
8827
8829
  {
8828
- width: size,
8829
- height: size,
8830
+ width: size2,
8831
+ height: size2,
8830
8832
  viewBox: "0 0 121 120",
8831
8833
  xmlns: "http://www.w3.org/2000/svg",
8832
8834
  className,
@@ -8972,7 +8974,7 @@ var platformColors = {
8972
8974
  };
8973
8975
  var PlatformIcon = ({ platform, className }) => {
8974
8976
  const sizeMatch = className.match(/h-(\d+)/);
8975
- const size = sizeMatch ? parseInt(sizeMatch[1]) * 4 : 16;
8977
+ const size2 = sizeMatch ? parseInt(sizeMatch[1]) * 4 : 16;
8976
8978
  switch (platform) {
8977
8979
  case "openmsp":
8978
8980
  return /* @__PURE__ */ jsx61(OpenmspLogo2, { className, frontBubbleColor: "currentColor", innerFrontBubbleColor: "#000000", backBubbleColor: "currentColor" });
@@ -8982,7 +8984,7 @@ var PlatformIcon = ({ platform, className }) => {
8982
8984
  case "openframe":
8983
8985
  return /* @__PURE__ */ jsx61(OpenFrameLogo, { className });
8984
8986
  case "tmcg":
8985
- return /* @__PURE__ */ jsx61(MiamiCyberGangLogoFaceOnly, { size, className });
8987
+ return /* @__PURE__ */ jsx61(MiamiCyberGangLogoFaceOnly, { size: size2, className });
8986
8988
  case "company-hub":
8987
8989
  case "marketing-hub":
8988
8990
  case "product-hub":
@@ -8995,14 +8997,14 @@ var PlatformIcon = ({ platform, className }) => {
8995
8997
  };
8996
8998
  function PlatformBadge({
8997
8999
  platform,
8998
- size = "sm",
9000
+ size: size2 = "sm",
8999
9001
  showLabel = true,
9000
9002
  className
9001
9003
  }) {
9002
9004
  if (!platform) {
9003
9005
  return null;
9004
9006
  }
9005
- const sizes = sizeClasses[size];
9007
+ const sizes = sizeClasses[size2];
9006
9008
  const colors = platformColors[platform.name] || platformColors.universal;
9007
9009
  return /* @__PURE__ */ jsxs48(
9008
9010
  "div",
@@ -10038,7 +10040,7 @@ function ProductReleaseCard({
10038
10040
  onClick,
10039
10041
  anchorProps,
10040
10042
  className,
10041
- size = "lg",
10043
+ size: size2 = "lg",
10042
10044
  coverImage,
10043
10045
  hasVideoCover,
10044
10046
  releaseType,
@@ -10048,7 +10050,7 @@ function ProductReleaseCard({
10048
10050
  author,
10049
10051
  changelogCounts
10050
10052
  }) {
10051
- if (size === "lg") {
10053
+ if (size2 === "lg") {
10052
10054
  const totalChangelog = (changelogCounts?.features ?? 0) + (changelogCounts?.fixes ?? 0) + (changelogCounts?.improvements ?? 0) + (changelogCounts?.breaking ?? 0);
10053
10055
  const valueCells = [
10054
10056
  releaseType && releaseTypeBadgeColor ? {
@@ -10213,7 +10215,7 @@ function ProductReleaseCard({
10213
10215
  }
10214
10216
  );
10215
10217
  }
10216
- if (size === "sm") {
10218
+ if (size2 === "sm") {
10217
10219
  const handleKey = (e) => {
10218
10220
  if (!onClick) return;
10219
10221
  if (e.key === "Enter" || e.key === " ") {
@@ -10277,14 +10279,14 @@ function ProductReleaseCard({
10277
10279
  }
10278
10280
  );
10279
10281
  }
10280
- throw new Error(`ProductReleaseCard: unsupported size '${size}'`);
10282
+ throw new Error(`ProductReleaseCard: unsupported size '${size2}'`);
10281
10283
  }
10282
10284
 
10283
10285
  // src/components/shared/product-release/product-release-card-skeleton.tsx
10284
10286
  init_cn();
10285
10287
  import { jsx as jsx75, jsxs as jsxs58 } from "react/jsx-runtime";
10286
- function ProductReleaseCardSkeleton({ className, size = "lg" }) {
10287
- if (size === "lg") {
10288
+ function ProductReleaseCardSkeleton({ className, size: size2 = "lg" }) {
10289
+ if (size2 === "lg") {
10288
10290
  return /* @__PURE__ */ jsxs58(
10289
10291
  "div",
10290
10292
  {
@@ -10335,7 +10337,7 @@ function ProductReleaseCardSkeleton({ className, size = "lg" }) {
10335
10337
  }
10336
10338
  );
10337
10339
  }
10338
- if (size === "sm") {
10340
+ if (size2 === "sm") {
10339
10341
  return /* @__PURE__ */ jsxs58(
10340
10342
  "span",
10341
10343
  {
@@ -10358,7 +10360,7 @@ function ProductReleaseCardSkeleton({ className, size = "lg" }) {
10358
10360
  }
10359
10361
  );
10360
10362
  }
10361
- throw new Error(`ProductReleaseCardSkeleton: unsupported size '${size}'`);
10363
+ throw new Error(`ProductReleaseCardSkeleton: unsupported size '${size2}'`);
10362
10364
  }
10363
10365
 
10364
10366
  // src/utils/date-formatters.ts
@@ -10560,8 +10562,8 @@ function safeHref(url) {
10560
10562
 
10561
10563
  // src/components/chat/entity-cards/blog-card.tsx
10562
10564
  import { Fragment as Fragment19, jsx as jsx76, jsxs as jsxs59 } from "react/jsx-runtime";
10563
- function BlogCardSkeleton({ size = "default" }) {
10564
- if (size === "sm") {
10565
+ function BlogCardSkeleton({ size: size2 = "default" }) {
10566
+ if (size2 === "sm") {
10565
10567
  return /* @__PURE__ */ jsxs59("span", { className: COMPACT_CARD_SKELETON_OUTER, children: [
10566
10568
  /* @__PURE__ */ jsx76("span", { className: COMPACT_CARD_SKELETON_IMAGE_SLOT }),
10567
10569
  /* @__PURE__ */ jsxs59("span", { className: COMPACT_CARD_TEXT_COL, children: [
@@ -10592,7 +10594,7 @@ function BlogCard({
10592
10594
  rel: relProp,
10593
10595
  targetPlatform,
10594
10596
  placeholderUrl: placeholderUrlProp,
10595
- size = "default",
10597
+ size: size2 = "default",
10596
10598
  className,
10597
10599
  hasEmbeddedVideo = false,
10598
10600
  priority = false
@@ -10606,11 +10608,11 @@ function BlogCard({
10606
10608
  const placeholderUrl = useEntityCardPlaceholder({
10607
10609
  title: post.title,
10608
10610
  placeholderUrl: placeholderUrlProp,
10609
- aspect: size === "sm" ? "square" : "wide"
10611
+ aspect: size2 === "sm" ? "square" : "wide"
10610
10612
  });
10611
10613
  const [imageError, setImageError] = useState22(false);
10612
10614
  const displayImage = post.featured_image && !imageError ? post.featured_image : placeholderUrl;
10613
- if (size === "sm") {
10615
+ if (size2 === "sm") {
10614
10616
  const dateStr2 = post.published_at ? new Date(post.published_at).toLocaleDateString("en-US", { year: "numeric", month: "short", day: "numeric", timeZone: "UTC" }) : "";
10615
10617
  const firstCategory = post.categories?.find((c) => c && c.name)?.name;
10616
10618
  return /* @__PURE__ */ jsxs59(
@@ -10764,8 +10766,8 @@ var hideOnError = (e) => {
10764
10766
  ;
10765
10767
  e.currentTarget.style.display = "none";
10766
10768
  };
10767
- function CaseStudyCardSkeleton({ size = "default" }) {
10768
- if (size === "sm") {
10769
+ function CaseStudyCardSkeleton({ size: size2 = "default" }) {
10770
+ if (size2 === "sm") {
10769
10771
  return /* @__PURE__ */ jsxs60("span", { className: COMPACT_CARD_SKELETON_OUTER, children: [
10770
10772
  /* @__PURE__ */ jsx77("span", { className: COMPACT_CARD_SKELETON_IMAGE_SLOT }),
10771
10773
  /* @__PURE__ */ jsxs60("span", { className: COMPACT_CARD_TEXT_COL, children: [
@@ -10797,7 +10799,7 @@ function CaseStudyCard({
10797
10799
  rel: relProp,
10798
10800
  targetPlatform,
10799
10801
  placeholderUrl: placeholderUrlProp,
10800
- size = "default",
10802
+ size: size2 = "default",
10801
10803
  className
10802
10804
  }) {
10803
10805
  const { target, rel } = useEntityCardLink({
@@ -10809,10 +10811,10 @@ function CaseStudyCard({
10809
10811
  const placeholderUrl = useEntityCardPlaceholder({
10810
10812
  title: study.title,
10811
10813
  placeholderUrl: placeholderUrlProp,
10812
- aspect: size === "sm" ? "square" : "wide"
10814
+ aspect: size2 === "sm" ? "square" : "wide"
10813
10815
  });
10814
10816
  const coverImage = study.featured_image || placeholderUrl || null;
10815
- if (size === "sm") {
10817
+ if (size2 === "sm") {
10816
10818
  return /* @__PURE__ */ jsxs60("a", { href, target, rel, className: cn(COMPACT_CARD_OUTER, className), children: [
10817
10819
  /* @__PURE__ */ jsx77("span", { className: COMPACT_CARD_IMAGE_SLOT, children: coverImage ? /* @__PURE__ */ jsx77(
10818
10820
  "img",
@@ -10891,8 +10893,8 @@ var hideOnError2 = (e) => {
10891
10893
  ;
10892
10894
  e.currentTarget.style.display = "none";
10893
10895
  };
10894
- function CustomerInterviewCardSkeleton({ size = "default" }) {
10895
- if (size === "sm") {
10896
+ function CustomerInterviewCardSkeleton({ size: size2 = "default" }) {
10897
+ if (size2 === "sm") {
10896
10898
  return /* @__PURE__ */ jsxs61("span", { className: COMPACT_CARD_SKELETON_OUTER, children: [
10897
10899
  /* @__PURE__ */ jsx78("span", { className: COMPACT_CARD_SKELETON_IMAGE_SLOT }),
10898
10900
  /* @__PURE__ */ jsxs61("span", { className: COMPACT_CARD_TEXT_COL, children: [
@@ -10929,7 +10931,7 @@ function CustomerInterviewCard({
10929
10931
  rel: relProp,
10930
10932
  targetPlatform,
10931
10933
  placeholderUrl: placeholderUrlProp,
10932
- size = "default",
10934
+ size: size2 = "default",
10933
10935
  className
10934
10936
  }) {
10935
10937
  const { target, rel } = useEntityCardLink({
@@ -10941,10 +10943,10 @@ function CustomerInterviewCard({
10941
10943
  const placeholderUrl = useEntityCardPlaceholder({
10942
10944
  title: interview.title,
10943
10945
  placeholderUrl: placeholderUrlProp,
10944
- aspect: size === "sm" ? "square" : "wide"
10946
+ aspect: size2 === "sm" ? "square" : "wide"
10945
10947
  });
10946
10948
  const thumbnailUrl = interview.featured_image || placeholderUrl || null;
10947
- if (size === "sm") {
10949
+ if (size2 === "sm") {
10948
10950
  return /* @__PURE__ */ jsxs61("a", { href, target, rel, className: cn(COMPACT_CARD_OUTER, className), children: [
10949
10951
  /* @__PURE__ */ jsxs61("span", { className: COMPACT_CARD_IMAGE_SLOT, children: [
10950
10952
  thumbnailUrl ? /* @__PURE__ */ jsx78(
@@ -11032,8 +11034,8 @@ function formatInvestorUpdatePeriod(start, end, options) {
11032
11034
 
11033
11035
  // src/components/chat/entity-cards/investor-update-card.tsx
11034
11036
  import { jsx as jsx79, jsxs as jsxs62 } from "react/jsx-runtime";
11035
- function InvestorUpdateCardSkeleton({ size = "default" }) {
11036
- if (size === "sm") {
11037
+ function InvestorUpdateCardSkeleton({ size: size2 = "default" }) {
11038
+ if (size2 === "sm") {
11037
11039
  return /* @__PURE__ */ jsxs62("span", { className: COMPACT_CARD_SKELETON_OUTER, children: [
11038
11040
  /* @__PURE__ */ jsx79("span", { className: COMPACT_CARD_SKELETON_IMAGE_SLOT }),
11039
11041
  /* @__PURE__ */ jsxs62("span", { className: COMPACT_CARD_TEXT_COL, children: [
@@ -11063,7 +11065,7 @@ function InvestorUpdateCard({
11063
11065
  rel: relProp,
11064
11066
  targetPlatform,
11065
11067
  placeholderUrl: placeholderUrlProp,
11066
- size = "default",
11068
+ size: size2 = "default",
11067
11069
  className
11068
11070
  }) {
11069
11071
  const { target, rel } = useEntityCardLink({
@@ -11075,10 +11077,10 @@ function InvestorUpdateCard({
11075
11077
  const placeholderUrl = useEntityCardPlaceholder({
11076
11078
  title: update.title ?? `Update #${update.update_number ?? ""}`,
11077
11079
  placeholderUrl: placeholderUrlProp,
11078
- aspect: size === "sm" ? "square" : "wide"
11080
+ aspect: size2 === "sm" ? "square" : "wide"
11079
11081
  });
11080
11082
  const coverImage = update.featured_image || placeholderUrl || null;
11081
- if (size === "sm") {
11083
+ if (size2 === "sm") {
11082
11084
  const periodText = formatInvestorUpdatePeriod(update.period_start, update.period_end);
11083
11085
  return /* @__PURE__ */ jsxs62("a", { href, target, rel, className: `${COMPACT_CARD_OUTER} ${className ?? ""}`, children: [
11084
11086
  /* @__PURE__ */ jsx79("span", { className: COMPACT_CARD_IMAGE_SLOT, children: coverImage ? /* @__PURE__ */ jsx79(
@@ -11141,8 +11143,8 @@ var HORIZONTAL_SIZE_TOKENS = {
11141
11143
  summaryClamp: "line-clamp-2"
11142
11144
  }
11143
11145
  };
11144
- function OnboardingGuideCardSkeleton({ size = "default" }) {
11145
- if (size === "catalog") {
11146
+ function OnboardingGuideCardSkeleton({ size: size2 = "default" }) {
11147
+ if (size2 === "catalog") {
11146
11148
  return /* @__PURE__ */ jsxs63("div", { className: "bg-ods-system-greys-black border border-ods-border rounded-lg overflow-hidden flex flex-col p-6 gap-4 animate-pulse", children: [
11147
11149
  /* @__PURE__ */ jsxs63("div", { className: "flex flex-col md:flex-row gap-4 md:gap-6", children: [
11148
11150
  /* @__PURE__ */ jsx80("div", { className: "w-full md:w-[256px] aspect-[1200/630] bg-ods-border rounded-lg flex-shrink-0" }),
@@ -11179,7 +11181,7 @@ function OnboardingGuideCardSkeleton({ size = "default" }) {
11179
11181
  ] })
11180
11182
  ] });
11181
11183
  }
11182
- if (size === "sm") {
11184
+ if (size2 === "sm") {
11183
11185
  return /* @__PURE__ */ jsxs63("span", { className: COMPACT_CARD_SKELETON_OUTER, children: [
11184
11186
  /* @__PURE__ */ jsx80("span", { className: COMPACT_CARD_SKELETON_IMAGE_SLOT }),
11185
11187
  /* @__PURE__ */ jsxs63("span", { className: COMPACT_CARD_TEXT_COL, children: [
@@ -11213,7 +11215,7 @@ function OnboardingGuideCard({
11213
11215
  rel: relProp,
11214
11216
  targetPlatform,
11215
11217
  placeholderUrl: placeholderUrlProp,
11216
- size = "default",
11218
+ size: size2 = "default",
11217
11219
  className
11218
11220
  }) {
11219
11221
  const { target, rel } = useEntityCardLink({
@@ -11225,9 +11227,9 @@ function OnboardingGuideCard({
11225
11227
  const placeholderUrl = useEntityCardPlaceholder({
11226
11228
  title: guide.title,
11227
11229
  placeholderUrl: placeholderUrlProp,
11228
- aspect: size === "sm" ? "square" : "wide"
11230
+ aspect: size2 === "sm" ? "square" : "wide"
11229
11231
  });
11230
- if (size === "catalog") {
11232
+ if (size2 === "catalog") {
11231
11233
  const coverImage = guide.featured_image || guide.main_video_thumbnail || guide.og_image_url || null;
11232
11234
  const hasVideoCover = !!(guide.main_video_thumbnail || guide.highlight_video_thumbnail);
11233
11235
  const stepLabel = typeof guide.step_order === "number" ? String(guide.step_order).padStart(2, "0") : "\u2014";
@@ -11299,7 +11301,7 @@ function OnboardingGuideCard({
11299
11301
  }
11300
11302
  );
11301
11303
  }
11302
- if (size === "sm") {
11304
+ if (size2 === "sm") {
11303
11305
  const coverImage = guide.featured_image || guide.main_video_thumbnail || guide.og_image_url || null;
11304
11306
  const compactCover = coverImage || placeholderUrl || null;
11305
11307
  const hasVideoCover = !guide.featured_image && !!guide.main_video_thumbnail;
@@ -15682,7 +15684,7 @@ function useResizableSize({
15682
15684
  return clampToViewport(defaultSize);
15683
15685
  }
15684
15686
  }, [enabled, storageKey, defaultSize, clampToViewport]);
15685
- const [size, setSizeRaw] = React58.useState(readInitial);
15687
+ const [size2, setSizeRaw] = React58.useState(readInitial);
15686
15688
  const setSize = React58.useCallback(
15687
15689
  (next) => setSizeRaw(clampToViewport(next)),
15688
15690
  [clampToViewport]
@@ -15690,21 +15692,21 @@ function useResizableSize({
15690
15692
  React58.useEffect(() => {
15691
15693
  if (!enabled || !storageKey || typeof window === "undefined") return;
15692
15694
  try {
15693
- window.localStorage.setItem(storageKey, String(Math.round(size)));
15695
+ window.localStorage.setItem(storageKey, String(Math.round(size2)));
15694
15696
  } catch {
15695
15697
  }
15696
- }, [enabled, size, storageKey]);
15698
+ }, [enabled, size2, storageKey]);
15697
15699
  React58.useEffect(() => {
15698
15700
  if (!enabled || typeof window === "undefined") return;
15699
15701
  const onResize = () => setSizeRaw((prev) => clampToViewport(prev));
15700
15702
  window.addEventListener("resize", onResize);
15701
15703
  return () => window.removeEventListener("resize", onResize);
15702
15704
  }, [enabled, clampToViewport]);
15703
- return { size, setSize };
15705
+ return { size: size2, setSize };
15704
15706
  }
15705
15707
  function DrawerResizeHandle({
15706
15708
  side,
15707
- size,
15709
+ size: size2,
15708
15710
  minSize,
15709
15711
  maxSize,
15710
15712
  onSize,
@@ -15718,7 +15720,7 @@ function DrawerResizeHandle({
15718
15720
  const handlePointerDown = (e) => {
15719
15721
  if (e.button !== 0 && e.pointerType === "mouse") return;
15720
15722
  e.preventDefault();
15721
- startRef.current = { x: e.clientX, y: e.clientY, size };
15723
+ startRef.current = { x: e.clientX, y: e.clientY, size: size2 };
15722
15724
  e.currentTarget.setPointerCapture(e.pointerId);
15723
15725
  document.body.style.cursor = isHorizontal ? "col-resize" : "row-resize";
15724
15726
  document.body.style.userSelect = "none";
@@ -15744,18 +15746,18 @@ function DrawerResizeHandle({
15744
15746
  if (isHorizontal) {
15745
15747
  if (e.key === "ArrowLeft") {
15746
15748
  e.preventDefault();
15747
- onSize(size + step * (side === "right" ? 1 : -1));
15749
+ onSize(size2 + step * (side === "right" ? 1 : -1));
15748
15750
  } else if (e.key === "ArrowRight") {
15749
15751
  e.preventDefault();
15750
- onSize(size + step * (side === "right" ? -1 : 1));
15752
+ onSize(size2 + step * (side === "right" ? -1 : 1));
15751
15753
  }
15752
15754
  } else {
15753
15755
  if (e.key === "ArrowUp") {
15754
15756
  e.preventDefault();
15755
- onSize(size + step * (side === "bottom" ? 1 : -1));
15757
+ onSize(size2 + step * (side === "bottom" ? 1 : -1));
15756
15758
  } else if (e.key === "ArrowDown") {
15757
15759
  e.preventDefault();
15758
- onSize(size + step * (side === "bottom" ? -1 : 1));
15760
+ onSize(size2 + step * (side === "bottom" ? -1 : 1));
15759
15761
  }
15760
15762
  }
15761
15763
  if (e.key === "Home") {
@@ -15775,7 +15777,7 @@ function DrawerResizeHandle({
15775
15777
  role: "separator",
15776
15778
  tabIndex: 0,
15777
15779
  "aria-orientation": isHorizontal ? "vertical" : "horizontal",
15778
- "aria-valuenow": Math.round(size),
15780
+ "aria-valuenow": Math.round(size2),
15779
15781
  "aria-valuemin": minSize,
15780
15782
  "aria-valuemax": maxSize,
15781
15783
  "aria-label": ariaLabel ?? (isHorizontal ? "Resize panel width" : "Resize panel height"),
@@ -15836,7 +15838,7 @@ var DrawerContent = React58.forwardRef(
15836
15838
  mq.addEventListener("change", update);
15837
15839
  return () => mq.removeEventListener("change", update);
15838
15840
  }, [mobileBreakpoint]);
15839
- const { size, setSize } = useResizableSize({
15841
+ const { size: size2, setSize } = useResizableSize({
15840
15842
  enabled: resizable,
15841
15843
  isHorizontal,
15842
15844
  minSize,
@@ -15845,7 +15847,7 @@ var DrawerContent = React58.forwardRef(
15845
15847
  storageKey
15846
15848
  });
15847
15849
  const applyInlineSize = resizable && !isMobile;
15848
- const sizeStyle = applyInlineSize ? isHorizontal ? { width: size } : { height: size } : {};
15850
+ const sizeStyle = applyInlineSize ? isHorizontal ? { width: size2 } : { height: size2 } : {};
15849
15851
  return /* @__PURE__ */ jsxs91(DrawerPortal, { children: [
15850
15852
  /* @__PURE__ */ jsx115(DrawerOverlay, { className: overlayClassName }),
15851
15853
  /* @__PURE__ */ jsxs91(
@@ -15860,7 +15862,7 @@ var DrawerContent = React58.forwardRef(
15860
15862
  DrawerResizeHandle,
15861
15863
  {
15862
15864
  side: resolvedSide,
15863
- size,
15865
+ size: size2,
15864
15866
  minSize,
15865
15867
  maxSize,
15866
15868
  onSize: setSize,
@@ -16418,6 +16420,7 @@ function TabNavigation({
16418
16420
  }
16419
16421
  };
16420
16422
  const scrollRef = useRef21(null);
16423
+ const activeTabRef = useRef21(null);
16421
16424
  const [canScrollLeft, setCanScrollLeft] = useState35(false);
16422
16425
  const [canScrollRight, setCanScrollRight] = useState35(false);
16423
16426
  const updateScrollShadows = useCallback17(() => {
@@ -16430,14 +16433,38 @@ function TabNavigation({
16430
16433
  const el = scrollRef.current;
16431
16434
  if (!el) return;
16432
16435
  updateScrollShadows();
16436
+ const onWheel = (e) => {
16437
+ if (e.deltaX !== 0 || e.ctrlKey) return;
16438
+ if (el.scrollWidth <= el.clientWidth) return;
16439
+ const delta = e.deltaMode === 1 ? e.deltaY * 40 : e.deltaMode === 2 ? e.deltaY * el.clientWidth : e.deltaY;
16440
+ const canGoRight = el.scrollLeft + el.clientWidth < el.scrollWidth - 1;
16441
+ const canGoLeft = el.scrollLeft > 0;
16442
+ if (delta > 0 && !canGoRight || delta < 0 && !canGoLeft) return;
16443
+ el.scrollLeft += delta;
16444
+ e.preventDefault();
16445
+ };
16433
16446
  el.addEventListener("scroll", updateScrollShadows, { passive: true });
16447
+ el.addEventListener("wheel", onWheel, { passive: false });
16434
16448
  const ro = new ResizeObserver(updateScrollShadows);
16435
16449
  ro.observe(el);
16436
16450
  return () => {
16437
16451
  el.removeEventListener("scroll", updateScrollShadows);
16452
+ el.removeEventListener("wheel", onWheel);
16438
16453
  ro.disconnect();
16439
16454
  };
16440
16455
  }, [updateScrollShadows]);
16456
+ useEffect26(() => {
16457
+ const el = scrollRef.current;
16458
+ const active = activeTabRef.current;
16459
+ if (!el || !active) return;
16460
+ const elRect = el.getBoundingClientRect();
16461
+ const aRect = active.getBoundingClientRect();
16462
+ if (aRect.left < elRect.left) {
16463
+ el.scrollBy({ left: aRect.left - elRect.left, behavior: "smooth" });
16464
+ } else if (aRect.right > elRect.right) {
16465
+ el.scrollBy({ left: aRect.right - elRect.right, behavior: "smooth" });
16466
+ }
16467
+ }, [activeTab]);
16441
16468
  const leftFade = canScrollLeft || showLeftGradient;
16442
16469
  const rightFade = canScrollRight || showRightGradient;
16443
16470
  const borderStyle = (() => {
@@ -16460,6 +16487,7 @@ function TabNavigation({
16460
16487
  return /* @__PURE__ */ jsxs97(
16461
16488
  "button",
16462
16489
  {
16490
+ ref: isActive ? activeTabRef : void 0,
16463
16491
  type: "button",
16464
16492
  onClick: () => handleTabChange(tab.id),
16465
16493
  className: cn(
@@ -16492,8 +16520,8 @@ function TabNavigation({
16492
16520
  tab.id
16493
16521
  );
16494
16522
  }) }),
16495
- leftFade && /* @__PURE__ */ jsx121("div", { className: cn("absolute left-0 top-0 w-10 h-14 pointer-events-none bg-gradient-to-r to-transparent", shadowClassName || "from-ods-bg") }),
16496
- rightFade && /* @__PURE__ */ jsx121("div", { className: cn("absolute right-0 top-0 w-10 h-14 pointer-events-none bg-gradient-to-l to-transparent", shadowClassName || "from-ods-bg") }),
16523
+ leftFade && /* @__PURE__ */ jsx121("div", { className: cn("absolute left-0 top-0 bottom-0 w-10 pointer-events-none bg-gradient-to-r to-transparent", shadowClassName || "from-ods-bg") }),
16524
+ rightFade && /* @__PURE__ */ jsx121("div", { className: cn("absolute right-0 top-0 bottom-0 w-10 pointer-events-none bg-gradient-to-l to-transparent", shadowClassName || "from-ods-bg") }),
16497
16525
  /* @__PURE__ */ jsx121("div", { className: "absolute bottom-0 left-0 right-0 h-px pointer-events-none", style: borderStyle })
16498
16526
  ] }),
16499
16527
  children && children(activeTab)
@@ -17116,7 +17144,7 @@ var EMBED_SIZES = {
17116
17144
  // 512px - Balanced width for cards
17117
17145
  };
17118
17146
  function EmbedContainer({
17119
- size,
17147
+ size: size2,
17120
17148
  children,
17121
17149
  className = ""
17122
17150
  }) {
@@ -17125,7 +17153,7 @@ function EmbedContainer({
17125
17153
  "bg-ods-card border border-ods-border",
17126
17154
  "transition-all duration-200 ease-in-out",
17127
17155
  "hover:border-ods-accent/30 hover:shadow-lg hover:shadow-ods-accent/10",
17128
- EMBED_SIZES[size],
17156
+ EMBED_SIZES[size2],
17129
17157
  className
17130
17158
  ), children });
17131
17159
  }
@@ -17825,8 +17853,8 @@ function getDomain(urlStr) {
17825
17853
  function domainToTitle(domain) {
17826
17854
  return domain.split(".")[0].replace(/-/g, " ").replace(/\b\w/g, (c) => c.toUpperCase());
17827
17855
  }
17828
- var ExternalLinkIcon4 = ({ size = 16 }) => /* @__PURE__ */ jsx131("svg", { width: size, height: size, fill: "none", stroke: "currentColor", viewBox: "0 0 24 24", className: "text-ods-text-secondary group-hover:text-ods-accent transition-colors flex-shrink-0", children: /* @__PURE__ */ jsx131("path", { strokeLinecap: "round", strokeLinejoin: "round", strokeWidth: 2, d: "M10 6H6a2 2 0 00-2 2v10a2 2 0 002 2h10a2 2 0 002-2v-4M14 4h6m0 0v6m0-6L10 14" }) });
17829
- var Favicon = ({ src, size = "w-6 h-6" }) => /* @__PURE__ */ jsx131("img", { src, alt: "", className: size, onError: (e) => {
17856
+ var ExternalLinkIcon4 = ({ size: size2 = 16 }) => /* @__PURE__ */ jsx131("svg", { width: size2, height: size2, fill: "none", stroke: "currentColor", viewBox: "0 0 24 24", className: "text-ods-text-secondary group-hover:text-ods-accent transition-colors flex-shrink-0", children: /* @__PURE__ */ jsx131("path", { strokeLinecap: "round", strokeLinejoin: "round", strokeWidth: 2, d: "M10 6H6a2 2 0 00-2 2v10a2 2 0 002 2h10a2 2 0 002-2v-4M14 4h6m0 0v6m0-6L10 14" }) });
17857
+ var Favicon = ({ src, size: size2 = "w-6 h-6" }) => /* @__PURE__ */ jsx131("img", { src, alt: "", className: size2, onError: (e) => {
17830
17858
  e.target.style.display = "none";
17831
17859
  } });
17832
17860
  var OGLinkPreview = ({
@@ -20638,11 +20666,11 @@ var toggleVariants = cva10(
20638
20666
  }
20639
20667
  }
20640
20668
  );
20641
- var Toggle = React74.forwardRef(({ className, variant, size, ...props }, ref) => /* @__PURE__ */ jsx152(
20669
+ var Toggle = React74.forwardRef(({ className, variant, size: size2, ...props }, ref) => /* @__PURE__ */ jsx152(
20642
20670
  TogglePrimitive.Root,
20643
20671
  {
20644
20672
  ref,
20645
- className: cn(toggleVariants({ variant, size, className })),
20673
+ className: cn(toggleVariants({ variant, size: size2, className })),
20646
20674
  ...props
20647
20675
  }
20648
20676
  ));
@@ -20654,17 +20682,17 @@ var ToggleGroupContext = React75.createContext({
20654
20682
  size: "default",
20655
20683
  variant: "default"
20656
20684
  });
20657
- var ToggleGroup = React75.forwardRef(({ className, variant, size, children, ...props }, ref) => /* @__PURE__ */ jsx153(
20685
+ var ToggleGroup = React75.forwardRef(({ className, variant, size: size2, children, ...props }, ref) => /* @__PURE__ */ jsx153(
20658
20686
  ToggleGroupPrimitive.Root,
20659
20687
  {
20660
20688
  ref,
20661
20689
  className: cn("flex items-center justify-center gap-1", className),
20662
20690
  ...props,
20663
- children: /* @__PURE__ */ jsx153(ToggleGroupContext.Provider, { value: { variant, size }, children })
20691
+ children: /* @__PURE__ */ jsx153(ToggleGroupContext.Provider, { value: { variant, size: size2 }, children })
20664
20692
  }
20665
20693
  ));
20666
20694
  ToggleGroup.displayName = ToggleGroupPrimitive.Root.displayName;
20667
- var ToggleGroupItem = React75.forwardRef(({ className, children, variant, size, value, ...props }, ref) => {
20695
+ var ToggleGroupItem = React75.forwardRef(({ className, children, variant, size: size2, value, ...props }, ref) => {
20668
20696
  const context = React75.useContext(ToggleGroupContext);
20669
20697
  return /* @__PURE__ */ jsx153(
20670
20698
  ToggleGroupPrimitive.Item,
@@ -20674,7 +20702,7 @@ var ToggleGroupItem = React75.forwardRef(({ className, children, variant, size,
20674
20702
  className: cn(
20675
20703
  toggleVariants({
20676
20704
  variant: context.variant || variant,
20677
- size: context.size || size
20705
+ size: context.size || size2
20678
20706
  }),
20679
20707
  className
20680
20708
  ),
@@ -22678,7 +22706,7 @@ import * as React78 from "react";
22678
22706
  import { ChevronUp as ChevronUp2, ChevronDown as ChevronDown5 } from "lucide-react";
22679
22707
  import { jsx as jsx158 } from "react/jsx-runtime";
22680
22708
  var ChevronButton = React78.forwardRef(
22681
- ({ className, direction = "down", size = "md", isExpanded, backgroundColor, borderColor, ...props }, ref) => {
22709
+ ({ className, direction = "down", size: size2 = "md", isExpanded, backgroundColor, borderColor, ...props }, ref) => {
22682
22710
  const Icon2 = (isExpanded ? ChevronUp2 : ChevronDown5) || (direction === "up" ? ChevronUp2 : ChevronDown5);
22683
22711
  const sizeClasses2 = {
22684
22712
  sm: "h-4 w-4",
@@ -22699,7 +22727,7 @@ var ChevronButton = React78.forwardRef(
22699
22727
  },
22700
22728
  ref,
22701
22729
  ...props,
22702
- children: /* @__PURE__ */ jsx158(Icon2, { className: sizeClasses2[size] })
22730
+ children: /* @__PURE__ */ jsx158(Icon2, { className: sizeClasses2[size2] })
22703
22731
  }
22704
22732
  );
22705
22733
  }
@@ -22735,7 +22763,7 @@ var variantColors = {
22735
22763
  function CircularProgress({
22736
22764
  percentage,
22737
22765
  variant = "success",
22738
- size = 56,
22766
+ size: size2 = 56,
22739
22767
  strokeWidth = 10,
22740
22768
  showLabel = true,
22741
22769
  labelFormat = "percent",
@@ -22752,23 +22780,23 @@ function CircularProgress({
22752
22780
  ringPercentage = Math.min(100, safePercentage);
22753
22781
  }
22754
22782
  const labelPercentage = isWrap ? safePercentage : Math.min(100, safePercentage);
22755
- const radius = (size - strokeWidth) / 2;
22783
+ const radius = (size2 - strokeWidth) / 2;
22756
22784
  const circumference = radius * 2 * Math.PI;
22757
22785
  const ringOffset = circumference - ringPercentage / 100 * circumference;
22758
22786
  const { progress, track } = variantColors[variant];
22759
- return /* @__PURE__ */ jsxs125("div", { className: cn("relative", className), style: { width: size, height: size }, children: [
22787
+ return /* @__PURE__ */ jsxs125("div", { className: cn("relative", className), style: { width: size2, height: size2 }, children: [
22760
22788
  /* @__PURE__ */ jsxs125(
22761
22789
  "svg",
22762
22790
  {
22763
- width: size,
22764
- height: size,
22791
+ width: size2,
22792
+ height: size2,
22765
22793
  className: "transform -rotate-90",
22766
22794
  children: [
22767
22795
  /* @__PURE__ */ jsx159(
22768
22796
  "circle",
22769
22797
  {
22770
- cx: size / 2,
22771
- cy: size / 2,
22798
+ cx: size2 / 2,
22799
+ cy: size2 / 2,
22772
22800
  r: radius,
22773
22801
  stroke: track,
22774
22802
  strokeWidth,
@@ -22778,8 +22806,8 @@ function CircularProgress({
22778
22806
  /* @__PURE__ */ jsx159(
22779
22807
  "circle",
22780
22808
  {
22781
- cx: size / 2,
22782
- cy: size / 2,
22809
+ cx: size2 / 2,
22810
+ cy: size2 / 2,
22783
22811
  r: radius,
22784
22812
  stroke: progress,
22785
22813
  strokeWidth,
@@ -22793,7 +22821,7 @@ function CircularProgress({
22793
22821
  ]
22794
22822
  }
22795
22823
  ),
22796
- showLabel && /* @__PURE__ */ jsx159("div", { className: "absolute inset-0 flex items-center justify-center", children: /* @__PURE__ */ jsxs125("span", { className: "font-medium text-ods-text-primary", style: { fontSize: size <= 40 ? 10 : 12 }, children: [
22824
+ showLabel && /* @__PURE__ */ jsx159("div", { className: "absolute inset-0 flex items-center justify-center", children: /* @__PURE__ */ jsxs125("span", { className: "font-medium text-ods-text-primary", style: { fontSize: size2 <= 40 ? 10 : 12 }, children: [
22797
22825
  Math.round(labelPercentage),
22798
22826
  labelFormat === "percent" ? "%" : ""
22799
22827
  ] }) })
@@ -22831,6 +22859,7 @@ import {
22831
22859
  offset,
22832
22860
  flip,
22833
22861
  shift,
22862
+ size,
22834
22863
  useDismiss,
22835
22864
  useRole,
22836
22865
  useInteractions,
@@ -22888,6 +22917,16 @@ function FloatingTooltip({
22888
22917
  padding: 8
22889
22918
  }),
22890
22919
  shift({ padding: 8 }),
22920
+ // Cap the tooltip to the space left in the viewport so tall content
22921
+ // scrolls inside it instead of overflowing off-screen. Applied straight to
22922
+ // the floating node's style (no React state → no autoUpdate re-render loop);
22923
+ // the inner scroll wrapper below turns the cap into an actual scroll area.
22924
+ size({
22925
+ padding: 8,
22926
+ apply({ availableHeight, elements }) {
22927
+ elements.floating.style.maxHeight = `${Math.max(64, availableHeight)}px`;
22928
+ }
22929
+ }),
22891
22930
  arrow({ element: arrowRef })
22892
22931
  ],
22893
22932
  whileElementsMounted: autoUpdate
@@ -22930,17 +22969,16 @@ function FloatingTooltip({
22930
22969
  },
22931
22970
  ...getFloatingProps(),
22932
22971
  className: cn(
22933
- // ODS Design System tooltip styling
22934
- "max-w-xs overflow-hidden rounded-md",
22972
+ // ODS Design System tooltip styling. `flex flex-col` + `overflow-hidden`
22973
+ // let the inner wrapper own the scroll while the rounded corners clip it.
22974
+ "max-w-xs flex flex-col overflow-hidden rounded-md",
22935
22975
  "bg-ods-card border border-ods-border",
22936
- "px-3 py-2.5 text-sm leading-relaxed text-ods-text-primary",
22937
- "whitespace-pre-line",
22938
22976
  // ODS shadows for proper elevation
22939
22977
  "shadow-[var(--shadow-md)]",
22940
22978
  className
22941
22979
  ),
22942
22980
  children: [
22943
- parsedContent,
22981
+ /* @__PURE__ */ jsx161("div", { className: "min-h-0 overflow-y-auto px-3 py-2.5 text-sm leading-relaxed text-ods-text-primary whitespace-pre-line", children: parsedContent }),
22944
22982
  /* @__PURE__ */ jsx161(
22945
22983
  "div",
22946
22984
  {
@@ -23002,7 +23040,7 @@ function DashboardInfoCard({
23002
23040
  };
23003
23041
  const renderProgress = () => {
23004
23042
  if (!showProgress || percentage === void 0) return null;
23005
- const strokeFor = (size) => Math.max(2, Math.round(size * 10 / 56));
23043
+ const strokeFor = (size2) => Math.max(2, Math.round(size2 * 10 / 56));
23006
23044
  const common = {
23007
23045
  percentage,
23008
23046
  variant: progressVariant,
@@ -23118,7 +23156,7 @@ var OSTypeBadge = ({
23118
23156
  OSTypeBadge.displayName = "OSTypeBadge";
23119
23157
  var OSTypeIcon = ({
23120
23158
  osType,
23121
- size = "w-4 h-4",
23159
+ size: size2 = "w-4 h-4",
23122
23160
  className = ""
23123
23161
  }) => {
23124
23162
  return /* @__PURE__ */ jsx163(
@@ -23126,7 +23164,7 @@ var OSTypeIcon = ({
23126
23164
  {
23127
23165
  osType,
23128
23166
  iconOnly: true,
23129
- iconSize: size,
23167
+ iconSize: size2,
23130
23168
  className
23131
23169
  }
23132
23170
  );
@@ -23571,7 +23609,7 @@ init_cn();
23571
23609
  import * as React81 from "react";
23572
23610
  import { jsx as jsx170 } from "react/jsx-runtime";
23573
23611
  var IconsBlock = React81.forwardRef(
23574
- ({ className, icons = [], size = "md", ...props }, ref) => {
23612
+ ({ className, icons = [], size: size2 = "md", ...props }, ref) => {
23575
23613
  const sizeClasses2 = {
23576
23614
  sm: "h-4 w-4",
23577
23615
  md: "h-6 w-6",
@@ -23591,7 +23629,7 @@ var IconsBlock = React81.forwardRef(
23591
23629
  {
23592
23630
  className: cn(
23593
23631
  "rounded-md bg-secondary p-1",
23594
- sizeClasses2[size]
23632
+ sizeClasses2[size2]
23595
23633
  ),
23596
23634
  children: /* @__PURE__ */ jsx170("div", { className: "h-full w-full bg-primary/20 rounded-sm" })
23597
23635
  },
@@ -26258,7 +26296,7 @@ function PlatformFilterComponent({
26258
26296
  platforms = [],
26259
26297
  className = "",
26260
26298
  showIcons = true,
26261
- size = "small-legacy"
26299
+ size: size2 = "small-legacy"
26262
26300
  }) {
26263
26301
  return /* @__PURE__ */ jsxs152("div", { className: `flex items-center gap-2 flex-wrap ${className}`, children: [
26264
26302
  /* @__PURE__ */ jsx195(
@@ -26266,7 +26304,7 @@ function PlatformFilterComponent({
26266
26304
  {
26267
26305
  type: "button",
26268
26306
  variant: selectedPlatform === "all" ? "accent" : "outline",
26269
- size,
26307
+ size: size2,
26270
26308
  onClick: () => onPlatformChange("all"),
26271
26309
  className: "text-h3",
26272
26310
  children: "All Platforms"
@@ -26277,7 +26315,7 @@ function PlatformFilterComponent({
26277
26315
  {
26278
26316
  type: "button",
26279
26317
  variant: selectedPlatform === platform.value ? "accent" : "outline",
26280
- size,
26318
+ size: size2,
26281
26319
  onClick: () => onPlatformChange(platform.value),
26282
26320
  leftIcon: showIcons ? getSmallPlatformIcon(platform.value) : void 0,
26283
26321
  className: "text-h3",
@@ -27723,7 +27761,7 @@ var ConfidenceBadge = ({
27723
27761
  confidence,
27724
27762
  showLabel = true,
27725
27763
  showPercentage = true,
27726
- size = "sm",
27764
+ size: size2 = "sm",
27727
27765
  className
27728
27766
  }) => {
27729
27767
  const level = getConfidenceLevel(confidence);
@@ -27739,7 +27777,7 @@ var ConfidenceBadge = ({
27739
27777
  {
27740
27778
  className: cn(
27741
27779
  "inline-flex items-center gap-1 rounded-full border font-medium",
27742
- sizeStyles[size],
27780
+ sizeStyles[size2],
27743
27781
  borderClass,
27744
27782
  textClass,
27745
27783
  bgClass,
@@ -27921,7 +27959,7 @@ var AIEnrichButton = ({
27921
27959
  loading = false,
27922
27960
  label = "AI Enrich",
27923
27961
  loadingLabel = "Enriching...",
27924
- size = "md",
27962
+ size: size2 = "md",
27925
27963
  variant = "outline",
27926
27964
  className
27927
27965
  }) => {
@@ -27932,7 +27970,7 @@ var AIEnrichButton = ({
27932
27970
  onClick,
27933
27971
  disabled: disabled || loading,
27934
27972
  loading,
27935
- size: sizeMap[size],
27973
+ size: sizeMap[size2],
27936
27974
  variant: variantMap[variant],
27937
27975
  leftIcon: !loading && /* @__PURE__ */ jsx208(SparklesIcon, { size: 18, color: "currentColor" }),
27938
27976
  className: cn("gap-2", className),
@@ -28522,7 +28560,7 @@ init_cn();
28522
28560
  import { jsx as jsx215, jsxs as jsxs170 } from "react/jsx-runtime";
28523
28561
  var AIRequiredBadge = ({
28524
28562
  className,
28525
- size = "sm"
28563
+ size: size2 = "sm"
28526
28564
  }) => {
28527
28565
  return /* @__PURE__ */ jsxs170(
28528
28566
  "span",
@@ -28530,12 +28568,12 @@ var AIRequiredBadge = ({
28530
28568
  className: cn(
28531
28569
  "inline-flex items-center gap-1 font-medium rounded-full",
28532
28570
  "bg-[--ods-flamingo-cyan-base]/10 text-[--ods-flamingo-cyan-base]",
28533
- size === "sm" && "ml-2 px-2 py-0.5 text-xs",
28534
- size === "md" && "ml-2 px-2.5 py-1 text-sm",
28571
+ size2 === "sm" && "ml-2 px-2 py-0.5 text-xs",
28572
+ size2 === "md" && "ml-2 px-2.5 py-1 text-sm",
28535
28573
  className
28536
28574
  ),
28537
28575
  children: [
28538
- /* @__PURE__ */ jsx215(SparklesIcon, { size: size === "sm" ? 12 : 14, color: "var(--ods-flamingo-cyan-base)" }),
28576
+ /* @__PURE__ */ jsx215(SparklesIcon, { size: size2 === "sm" ? 12 : 14, color: "var(--ods-flamingo-cyan-base)" }),
28539
28577
  /* @__PURE__ */ jsx215("span", { className: "font-['DM_Sans']", children: "AI-required" })
28540
28578
  ]
28541
28579
  }
@@ -28955,7 +28993,7 @@ function ViewToggle({
28955
28993
  onValueChange,
28956
28994
  disabled = false,
28957
28995
  className,
28958
- size = "default",
28996
+ size: size2 = "default",
28959
28997
  "aria-label": ariaLabel = "Switch between grid and table view"
28960
28998
  }) {
28961
28999
  return /* @__PURE__ */ jsxs174(
@@ -28979,7 +29017,7 @@ function ViewToggle({
28979
29017
  ToggleGroupItem,
28980
29018
  {
28981
29019
  value: "grid",
28982
- size,
29020
+ size: size2,
28983
29021
  className: cn(
28984
29022
  "p-2 rounded transition-all duration-200",
28985
29023
  value === "grid" ? "bg-ods-accent text-ods-text-on-accent" : "text-ods-text-secondary hover:text-ods-text-primary hover:bg-ods-bg-hover",
@@ -29000,7 +29038,7 @@ function ViewToggle({
29000
29038
  ToggleGroupItem,
29001
29039
  {
29002
29040
  value: "table",
29003
- size,
29041
+ size: size2,
29004
29042
  className: cn(
29005
29043
  "p-2 rounded transition-all duration-200",
29006
29044
  value === "table" ? "bg-ods-accent text-ods-text-on-accent" : "text-ods-text-secondary hover:text-ods-text-primary hover:bg-ods-bg-hover",
@@ -33773,7 +33811,7 @@ function useContainedResizableSize({
33773
33811
  return defaultSize;
33774
33812
  }
33775
33813
  }, [enabled, storageKey, defaultSize]);
33776
- const [size, setSizeRaw] = React107.useState(readInitial);
33814
+ const [size2, setSizeRaw] = React107.useState(readInitial);
33777
33815
  const setSize = React107.useCallback(
33778
33816
  (next) => setSizeRaw(clampToContainer(next)),
33779
33817
  [clampToContainer]
@@ -33781,19 +33819,19 @@ function useContainedResizableSize({
33781
33819
  React107.useEffect(() => {
33782
33820
  if (!enabled || !storageKey || typeof window === "undefined") return;
33783
33821
  try {
33784
- window.localStorage.setItem(storageKey, String(Math.round(size)));
33822
+ window.localStorage.setItem(storageKey, String(Math.round(size2)));
33785
33823
  } catch {
33786
33824
  }
33787
- }, [enabled, size, storageKey]);
33825
+ }, [enabled, size2, storageKey]);
33788
33826
  React107.useEffect(() => {
33789
33827
  if (!enabled) return;
33790
33828
  setSizeRaw((prev) => clampToContainer(prev));
33791
33829
  }, [enabled, clampToContainer]);
33792
- return { size, setSize };
33830
+ return { size: size2, setSize };
33793
33831
  }
33794
33832
  function AppLayoutDrawerResizeHandle({
33795
33833
  side,
33796
- size,
33834
+ size: size2,
33797
33835
  minSize,
33798
33836
  maxSize,
33799
33837
  onSize,
@@ -33805,7 +33843,7 @@ function AppLayoutDrawerResizeHandle({
33805
33843
  const handlePointerDown = (e) => {
33806
33844
  if (e.button !== 0 && e.pointerType === "mouse") return;
33807
33845
  e.preventDefault();
33808
- startRef.current = { x: e.clientX, y: e.clientY, size };
33846
+ startRef.current = { x: e.clientX, y: e.clientY, size: size2 };
33809
33847
  e.currentTarget.setPointerCapture(e.pointerId);
33810
33848
  document.body.style.cursor = isHorizontal ? "col-resize" : "row-resize";
33811
33849
  document.body.style.userSelect = "none";
@@ -33831,18 +33869,18 @@ function AppLayoutDrawerResizeHandle({
33831
33869
  if (isHorizontal) {
33832
33870
  if (e.key === "ArrowLeft") {
33833
33871
  e.preventDefault();
33834
- onSize(size + step * (side === "right" ? 1 : -1));
33872
+ onSize(size2 + step * (side === "right" ? 1 : -1));
33835
33873
  } else if (e.key === "ArrowRight") {
33836
33874
  e.preventDefault();
33837
- onSize(size + step * (side === "right" ? -1 : 1));
33875
+ onSize(size2 + step * (side === "right" ? -1 : 1));
33838
33876
  }
33839
33877
  } else {
33840
33878
  if (e.key === "ArrowUp") {
33841
33879
  e.preventDefault();
33842
- onSize(size + step * (side === "bottom" ? 1 : -1));
33880
+ onSize(size2 + step * (side === "bottom" ? 1 : -1));
33843
33881
  } else if (e.key === "ArrowDown") {
33844
33882
  e.preventDefault();
33845
- onSize(size + step * (side === "bottom" ? -1 : 1));
33883
+ onSize(size2 + step * (side === "bottom" ? -1 : 1));
33846
33884
  }
33847
33885
  }
33848
33886
  if (e.key === "Home") {
@@ -33862,7 +33900,7 @@ function AppLayoutDrawerResizeHandle({
33862
33900
  role: "separator",
33863
33901
  tabIndex: 0,
33864
33902
  "aria-orientation": isHorizontal ? "vertical" : "horizontal",
33865
- "aria-valuenow": Math.round(size),
33903
+ "aria-valuenow": Math.round(size2),
33866
33904
  "aria-valuemin": minSize,
33867
33905
  "aria-valuemax": maxSize,
33868
33906
  "aria-label": ariaLabel ?? (isHorizontal ? "Resize panel width" : "Resize panel height"),
@@ -33984,7 +34022,7 @@ var AppLayoutDrawerContent = React107.forwardRef(
33984
34022
  mq.addEventListener("change", update);
33985
34023
  return () => mq.removeEventListener("change", update);
33986
34024
  }, [mobileBreakpoint]);
33987
- const { size, setSize } = useContainedResizableSize({
34025
+ const { size: size2, setSize } = useContainedResizableSize({
33988
34026
  enabled: resizable,
33989
34027
  isHorizontal,
33990
34028
  minSize,
@@ -33994,7 +34032,7 @@ var AppLayoutDrawerContent = React107.forwardRef(
33994
34032
  container: portalContainer
33995
34033
  });
33996
34034
  const applyInlineSize = resizable && !isMobile;
33997
- const sizeStyle = applyInlineSize ? isHorizontal ? { width: size } : { height: size } : {};
34035
+ const sizeStyle = applyInlineSize ? isHorizontal ? { width: size2 } : { height: size2 } : {};
33998
34036
  if (keepMounted && !hasOpened) return null;
33999
34037
  return /* @__PURE__ */ jsxs205(DialogPrimitive3.Portal, { container: portalContainer, forceMount: persist || void 0, children: [
34000
34038
  /* @__PURE__ */ jsx259(
@@ -34047,7 +34085,7 @@ var AppLayoutDrawerContent = React107.forwardRef(
34047
34085
  AppLayoutDrawerResizeHandle,
34048
34086
  {
34049
34087
  side: resolvedSide,
34050
- size,
34088
+ size: size2,
34051
34089
  minSize,
34052
34090
  maxSize,
34053
34091
  onSize: setSize,
@@ -34907,7 +34945,7 @@ var LOG_SEVERITY_LABELS = {
34907
34945
 
34908
34946
  // src/components/log-severity-dot.tsx
34909
34947
  import { jsx as jsx270 } from "react/jsx-runtime";
34910
- var LogSeverityDot = React110.forwardRef(({ severity, size = "md", className }, ref) => {
34948
+ var LogSeverityDot = React110.forwardRef(({ severity, size: size2 = "md", className }, ref) => {
34911
34949
  const sizeClasses2 = {
34912
34950
  sm: "w-4 h-4",
34913
34951
  md: "w-6 h-6",
@@ -34924,7 +34962,7 @@ var LogSeverityDot = React110.forwardRef(({ severity, size = "md", className },
34924
34962
  ref,
34925
34963
  className: cn(
34926
34964
  "relative flex items-center justify-center shrink-0",
34927
- sizeClasses2[size],
34965
+ sizeClasses2[size2],
34928
34966
  className
34929
34967
  ),
34930
34968
  "aria-label": `${LOG_SEVERITY_LABELS[severity]} severity`,
@@ -34933,7 +34971,7 @@ var LogSeverityDot = React110.forwardRef(({ severity, size = "md", className },
34933
34971
  {
34934
34972
  className: cn(
34935
34973
  "rounded-full",
34936
- dotSizeClasses[size]
34974
+ dotSizeClasses[size2]
34937
34975
  ),
34938
34976
  style: { backgroundColor: LOG_SEVERITY_COLORS[severity] }
34939
34977
  }
@@ -39356,9 +39394,9 @@ function TicketDetailSection({ label, children, className }) {
39356
39394
  // src/components/ui/ticket-attachments-list.tsx
39357
39395
  init_cn();
39358
39396
  import { jsx as jsx312, jsxs as jsxs250 } from "react/jsx-runtime";
39359
- function TicketAttachmentsList({ attachments, className, size = "default" }) {
39397
+ function TicketAttachmentsList({ attachments, className, size: size2 = "default" }) {
39360
39398
  if (attachments.length === 0) return null;
39361
- const compact = size === "compact";
39399
+ const compact = size2 === "compact";
39362
39400
  return /* @__PURE__ */ jsx312("div", { className: cn("rounded-[6px] border border-ods-border overflow-hidden", className), children: attachments.map((attachment, index) => /* @__PURE__ */ jsxs250(
39363
39401
  "div",
39364
39402
  {
@@ -39969,8 +40007,8 @@ function TaskTypeIcon({ customItemId, className = "h-5 w-5" }) {
39969
40007
 
39970
40008
  // src/components/chat/entity-cards/roadmap-card.tsx
39971
40009
  import { Fragment as Fragment62, jsx as jsx319, jsxs as jsxs256 } from "react/jsx-runtime";
39972
- function RoadmapCardSkeleton({ size = "default" }) {
39973
- if (size === "sm") {
40010
+ function RoadmapCardSkeleton({ size: size2 = "default" }) {
40011
+ if (size2 === "sm") {
39974
40012
  return /* @__PURE__ */ jsxs256("span", { className: COMPACT_CARD_SKELETON_OUTER, children: [
39975
40013
  /* @__PURE__ */ jsx319("span", { className: "block h-12 w-12 aspect-square shrink-0 self-start rounded-md bg-ods-bg border border-ods-border p-1.5" }),
39976
40014
  /* @__PURE__ */ jsxs256("span", { className: COMPACT_CARD_TEXT_COL, children: [
@@ -40012,7 +40050,7 @@ function RoadmapCard({
40012
40050
  href,
40013
40051
  target,
40014
40052
  rel,
40015
- size = "default",
40053
+ size: size2 = "default",
40016
40054
  cardType = "roadmap_item",
40017
40055
  className,
40018
40056
  id,
@@ -40023,7 +40061,7 @@ function RoadmapCard({
40023
40061
  const [showScreenshots, setShowScreenshots] = useState98(false);
40024
40062
  const logoUrl = item.icon && item.icon.startsWith("http") ? item.icon : null;
40025
40063
  const iconSrc = logoUrl ? getProxiedImageUrl(logoUrl, { directHttps: true }) || logoUrl : null;
40026
- if (size === "sm") {
40064
+ if (size2 === "sm") {
40027
40065
  const compactHref = safeHref(href ?? null);
40028
40066
  const hasVotes = (item.upvotes ?? 0) > 0 || (item.downvotes ?? 0) > 0;
40029
40067
  const hasFigma = !!item.figmaUrl;
@@ -42233,8 +42271,8 @@ import { Fragment as Fragment67, jsx as jsx324, jsxs as jsxs261 } from "react/js
42233
42271
  function formatUtc(date, fmt) {
42234
42272
  return format(new Date(date.getTime() + date.getTimezoneOffset() * 6e4), fmt);
42235
42273
  }
42236
- function ProgramCardSkeleton({ size = "default" }) {
42237
- if (size === "sm") {
42274
+ function ProgramCardSkeleton({ size: size2 = "default" }) {
42275
+ if (size2 === "sm") {
42238
42276
  return /* @__PURE__ */ jsxs261("span", { className: COMPACT_CARD_SKELETON_OUTER, children: [
42239
42277
  /* @__PURE__ */ jsx324("span", { className: COMPACT_CARD_SKELETON_IMAGE_SLOT }),
42240
42278
  /* @__PURE__ */ jsxs261("span", { className: COMPACT_CARD_TEXT_COL, children: [
@@ -42344,7 +42382,7 @@ function ProgramCard({
42344
42382
  item,
42345
42383
  media = [],
42346
42384
  renderMeta,
42347
- size = "default",
42385
+ size: size2 = "default",
42348
42386
  href,
42349
42387
  target: targetProp,
42350
42388
  rel: relProp,
@@ -42362,14 +42400,14 @@ function ProgramCard({
42362
42400
  const placeholderUrl = useEntityCardPlaceholder({
42363
42401
  title: item.title,
42364
42402
  placeholderUrl: placeholderUrlProp,
42365
- aspect: size === "sm" ? "square" : "wide"
42403
+ aspect: size2 === "sm" ? "square" : "wide"
42366
42404
  });
42367
42405
  const coverImage = item.cover_url;
42368
42406
  const images = media.filter((m) => m.media_type === "image");
42369
42407
  const hosts = getHosts(item.hosts);
42370
42408
  const accentColor = "var(--color-accent-primary)";
42371
42409
  const isScheduled = "status" in item && item.status === "scheduled";
42372
- if (size === "sm") {
42410
+ if (size2 === "sm") {
42373
42411
  const itemDate2 = (() => {
42374
42412
  try {
42375
42413
  return formatUtc(new Date(item.date), "MMM d, yyyy");
@@ -50525,4 +50563,4 @@ export {
50525
50563
  LogsList,
50526
50564
  assets
50527
50565
  };
50528
- //# sourceMappingURL=chunk-RE3KBUNB.js.map
50566
+ //# sourceMappingURL=chunk-TRAJG5JZ.js.map