@flamingo-stack/openframe-frontend-core 0.0.528-1693.4449.1 → 0.0.528-1696.4455.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.
Files changed (106) hide show
  1. package/dist/{chunk-PSZKPDEZ.cjs → chunk-2MESK2PA.cjs} +37 -37
  2. package/dist/{chunk-PSZKPDEZ.cjs.map → chunk-2MESK2PA.cjs.map} +1 -1
  3. package/dist/{chunk-FEHC5E23.cjs → chunk-4XPLNCH3.cjs} +61 -61
  4. package/dist/{chunk-FEHC5E23.cjs.map → chunk-4XPLNCH3.cjs.map} +1 -1
  5. package/dist/{chunk-AIUF5JNY.js → chunk-5FIOGJYY.js} +2 -2
  6. package/dist/{chunk-LXGMYXBJ.cjs → chunk-5IFYGGPY.cjs} +11 -11
  7. package/dist/{chunk-LXGMYXBJ.cjs.map → chunk-5IFYGGPY.cjs.map} +1 -1
  8. package/dist/{chunk-2YGCWXCT.cjs → chunk-7T364QDF.cjs} +7 -7
  9. package/dist/{chunk-2YGCWXCT.cjs.map → chunk-7T364QDF.cjs.map} +1 -1
  10. package/dist/{chunk-WON6OKXP.js → chunk-DCC4JOHA.js} +2 -2
  11. package/dist/{chunk-GUJJ4W2U.cjs → chunk-G2UNFOUQ.cjs} +31 -31
  12. package/dist/{chunk-GUJJ4W2U.cjs.map → chunk-G2UNFOUQ.cjs.map} +1 -1
  13. package/dist/{chunk-A2SVB3PM.js → chunk-GNKQR7F5.js} +2 -2
  14. package/dist/{chunk-4ABSCAGU.cjs → chunk-HDWVZMQN.cjs} +14 -14
  15. package/dist/{chunk-4ABSCAGU.cjs.map → chunk-HDWVZMQN.cjs.map} +1 -1
  16. package/dist/{chunk-3PKKLI2N.js → chunk-JEGQYX3Q.js} +4 -4
  17. package/dist/{chunk-IJSEI3NZ.js → chunk-JXUGR5YY.js} +2 -2
  18. package/dist/{chunk-PV2FOA2C.cjs → chunk-L7QFCN7X.cjs} +9 -9
  19. package/dist/{chunk-PV2FOA2C.cjs.map → chunk-L7QFCN7X.cjs.map} +1 -1
  20. package/dist/{chunk-YYLFJV26.js → chunk-M4GZVMXN.js} +2 -2
  21. package/dist/{chunk-OBQVVPMQ.js → chunk-MFX2BVYC.js} +4 -4
  22. package/dist/{chunk-QRSNDDMB.js → chunk-MH4CJO6T.js} +82 -96
  23. package/dist/chunk-MH4CJO6T.js.map +1 -0
  24. package/dist/{chunk-PRHDH5F5.js → chunk-OEQJ3MU5.js} +2 -2
  25. package/dist/{chunk-5Z74NLFF.js → chunk-Q24J6PBQ.js} +5 -5
  26. package/dist/{chunk-5KK6HXGV.cjs → chunk-UK6W7FZ2.cjs} +4 -4
  27. package/dist/{chunk-5KK6HXGV.cjs.map → chunk-UK6W7FZ2.cjs.map} +1 -1
  28. package/dist/{chunk-AUPGN4T5.cjs → chunk-UUXH7BUH.cjs} +26 -26
  29. package/dist/{chunk-AUPGN4T5.cjs.map → chunk-UUXH7BUH.cjs.map} +1 -1
  30. package/dist/{chunk-A3WSZLOM.cjs → chunk-V4SEL4AV.cjs} +87 -87
  31. package/dist/{chunk-A3WSZLOM.cjs.map → chunk-V4SEL4AV.cjs.map} +1 -1
  32. package/dist/{chunk-HDCPFVI3.js → chunk-WAJR5NQH.js} +6 -6
  33. package/dist/{chunk-ELWMDUYU.js → chunk-WD7HOP7E.js} +2 -2
  34. package/dist/{chunk-PFAOIXL2.cjs → chunk-XCJAYIBG.cjs} +82 -96
  35. package/dist/chunk-XCJAYIBG.cjs.map +1 -0
  36. package/dist/{chunk-I43VHOPO.cjs → chunk-XZ7EYGF4.cjs} +26 -26
  37. package/dist/{chunk-I43VHOPO.cjs.map → chunk-XZ7EYGF4.cjs.map} +1 -1
  38. package/dist/{chunk-UBLHCT3S.js → chunk-YCCIFVKW.js} +2 -2
  39. package/dist/{chunk-3VTGHZEB.cjs → chunk-ZK5R2ETI.cjs} +5 -5
  40. package/dist/{chunk-3VTGHZEB.cjs.map → chunk-ZK5R2ETI.cjs.map} +1 -1
  41. package/dist/{chunk-HWQG7SFQ.js → chunk-ZQHTNIVM.js} +2 -2
  42. package/dist/{chunk-NO74JARE.cjs → chunk-ZRLVYZZC.cjs} +3 -3
  43. package/dist/{chunk-NO74JARE.cjs.map → chunk-ZRLVYZZC.cjs.map} +1 -1
  44. package/dist/components/case-studies/index.cjs +8 -8
  45. package/dist/components/case-studies/index.js +2 -2
  46. package/dist/components/chat/index.cjs +2 -2
  47. package/dist/components/chat/index.js +1 -1
  48. package/dist/components/contact/index.cjs +3 -3
  49. package/dist/components/contact/index.js +2 -2
  50. package/dist/components/docs/index.cjs +5 -5
  51. package/dist/components/docs/index.js +4 -4
  52. package/dist/components/embeds/index.cjs +3 -3
  53. package/dist/components/embeds/index.js +2 -2
  54. package/dist/components/faq/index.cjs +3 -3
  55. package/dist/components/faq/index.js +2 -2
  56. package/dist/components/features/board/index.d.ts +1 -1
  57. package/dist/components/features/board/index.d.ts.map +1 -1
  58. package/dist/components/features/board/ticket-card.d.ts.map +1 -1
  59. package/dist/components/features/board/types.d.ts +18 -0
  60. package/dist/components/features/board/types.d.ts.map +1 -1
  61. package/dist/components/features/index.cjs +2 -2
  62. package/dist/components/features/index.js +1 -1
  63. package/dist/components/help-center-pages/index.cjs +22 -22
  64. package/dist/components/help-center-pages/index.js +13 -13
  65. package/dist/components/index.cjs +132 -132
  66. package/dist/components/index.js +11 -11
  67. package/dist/components/meeting-scheduler/index.cjs +34 -34
  68. package/dist/components/meeting-scheduler/index.js +3 -3
  69. package/dist/components/navigation/index.cjs +2 -2
  70. package/dist/components/navigation/index.js +1 -1
  71. package/dist/components/onboarding-guides/index.cjs +5 -5
  72. package/dist/components/onboarding-guides/index.js +4 -4
  73. package/dist/components/related-content/index.cjs +3 -3
  74. package/dist/components/related-content/index.js +2 -2
  75. package/dist/components/tickets/index.cjs +6 -6
  76. package/dist/components/tickets/index.js +5 -5
  77. package/dist/components/ui/alert-dialog.d.ts.map +1 -1
  78. package/dist/components/ui/dialog.d.ts.map +1 -1
  79. package/dist/components/ui/index.cjs +2 -2
  80. package/dist/components/ui/index.js +1 -1
  81. package/dist/components/ui/modal-v2.d.ts.map +1 -1
  82. package/dist/index.cjs +2 -2
  83. package/dist/index.js +1 -1
  84. package/package.json +1 -1
  85. package/src/components/features/board/index.ts +2 -0
  86. package/src/components/features/board/ticket-card.tsx +24 -2
  87. package/src/components/features/board/types.ts +20 -0
  88. package/src/components/ui/alert-dialog.tsx +1 -10
  89. package/src/components/ui/dialog.tsx +1 -12
  90. package/src/components/ui/modal-v2.tsx +2 -24
  91. package/src/stories/TicketCard.stories.tsx +39 -0
  92. package/dist/chunk-PFAOIXL2.cjs.map +0 -1
  93. package/dist/chunk-QRSNDDMB.js.map +0 -1
  94. /package/dist/{chunk-AIUF5JNY.js.map → chunk-5FIOGJYY.js.map} +0 -0
  95. /package/dist/{chunk-WON6OKXP.js.map → chunk-DCC4JOHA.js.map} +0 -0
  96. /package/dist/{chunk-A2SVB3PM.js.map → chunk-GNKQR7F5.js.map} +0 -0
  97. /package/dist/{chunk-3PKKLI2N.js.map → chunk-JEGQYX3Q.js.map} +0 -0
  98. /package/dist/{chunk-IJSEI3NZ.js.map → chunk-JXUGR5YY.js.map} +0 -0
  99. /package/dist/{chunk-YYLFJV26.js.map → chunk-M4GZVMXN.js.map} +0 -0
  100. /package/dist/{chunk-OBQVVPMQ.js.map → chunk-MFX2BVYC.js.map} +0 -0
  101. /package/dist/{chunk-PRHDH5F5.js.map → chunk-OEQJ3MU5.js.map} +0 -0
  102. /package/dist/{chunk-5Z74NLFF.js.map → chunk-Q24J6PBQ.js.map} +0 -0
  103. /package/dist/{chunk-HDCPFVI3.js.map → chunk-WAJR5NQH.js.map} +0 -0
  104. /package/dist/{chunk-ELWMDUYU.js.map → chunk-WD7HOP7E.js.map} +0 -0
  105. /package/dist/{chunk-UBLHCT3S.js.map → chunk-YCCIFVKW.js.map} +0 -0
  106. /package/dist/{chunk-HWQG7SFQ.js.map → chunk-ZQHTNIVM.js.map} +0 -0
@@ -137,6 +137,7 @@ import {
137
137
  Chevrons03LeftIcon,
138
138
  ClickupLogoGreyIcon,
139
139
  ClockHistoryIcon,
140
+ ClockIcon,
140
141
  CodeIcon,
141
142
  CodingCommitIcon,
142
143
  CodingPullRequestIcon,
@@ -10867,76 +10868,62 @@ var Modal = React26.forwardRef(
10867
10868
  }, [isOpen, onClose]);
10868
10869
  if (!isMounted) return null;
10869
10870
  const state = isOpen ? "open" : "closed";
10870
- return /* @__PURE__ */ jsx57(RemoveScroll, { enabled: isOpen, removeScrollBar: false, children: /* @__PURE__ */ jsxs46(
10871
- "div",
10872
- {
10873
- className: "fixed inset-0 z-[1300] flex items-end md:items-center justify-center transition-[padding] duration-200",
10874
- style: { paddingBottom: "var(--of-keyboard-inset, 0px)" },
10875
- children: [
10876
- /* @__PURE__ */ jsx57(
10877
- "div",
10878
- {
10879
- "data-state": state,
10880
- className: cn(
10881
- "absolute inset-0 bg-ods-overlay backdrop-blur-[2px] md:backdrop-blur-none",
10882
- "duration-200 fill-mode-forwards",
10883
- "data-[state=open]:animate-in data-[state=open]:fade-in-0",
10884
- "data-[state=closed]:animate-out data-[state=closed]:fade-out-0",
10885
- // Hold the hidden end-state until unmount so the backdrop doesn't
10886
- // flash back to full opacity when the animation finishes a frame
10887
- // before the unmount timeout fires.
10888
- "data-[state=closed]:fill-mode-forwards"
10889
- ),
10890
- onClick: onClose,
10891
- "aria-hidden": "true"
10892
- }
10871
+ return /* @__PURE__ */ jsx57(RemoveScroll, { enabled: isOpen, removeScrollBar: false, children: /* @__PURE__ */ jsxs46("div", { className: "fixed inset-0 z-[1300] flex items-end md:items-center justify-center", children: [
10872
+ /* @__PURE__ */ jsx57(
10873
+ "div",
10874
+ {
10875
+ "data-state": state,
10876
+ className: cn(
10877
+ "absolute inset-0 bg-ods-overlay backdrop-blur-[2px] md:backdrop-blur-none",
10878
+ "duration-200 fill-mode-forwards",
10879
+ "data-[state=open]:animate-in data-[state=open]:fade-in-0",
10880
+ "data-[state=closed]:animate-out data-[state=closed]:fade-out-0",
10881
+ // Hold the hidden end-state until unmount so the backdrop doesn't
10882
+ // flash back to full opacity when the animation finishes a frame
10883
+ // before the unmount timeout fires.
10884
+ "data-[state=closed]:fill-mode-forwards"
10893
10885
  ),
10894
- /* @__PURE__ */ jsx57(
10895
- "div",
10896
- {
10897
- ref: (node) => {
10898
- panelRef.current = node;
10899
- if (typeof ref === "function") ref(node);
10900
- else if (ref) ref.current = node;
10901
- },
10902
- tabIndex: -1,
10903
- "data-state": state,
10904
- className: cn(
10905
- // min() keeps the desktop cap at 28rem while never letting content
10906
- // stretch the panel past the viewport (minus the mx-4 margins) on
10907
- // narrow screens. A single base utility (not md:max-w-md) so consumer
10908
- // max-w-* overrides via className still win at every breakpoint.
10909
- "relative z-10 w-full min-w-0 max-w-[min(28rem,calc(100vw-2rem))] flex flex-col",
10910
- "mx-4 mb-4 md:mb-0",
10911
- // dvh, not vh: vh ignores a mobile browser's retracting URL bar, so
10912
- // 90vh already overflowed behind Safari's toolbar. The `100%-2rem`
10913
- // arm resolves against the keyboard-padded wrapper above and caps
10914
- // the panel to what's left of it, less the 1rem `mb-4` and a
10915
- // matching 1rem of breathing room at the top — header and footer
10916
- // stay pinned, ModalV2Content scrolls. min() picks 90dvh on any
10917
- // viewport over 320px tall, so desktop is untouched.
10918
- "max-h-[min(90dvh,100%-2rem)]",
10919
- "bg-ods-bg md:bg-ods-card",
10920
- "border border-ods-border rounded-md shadow-xl",
10921
- "p-[var(--spacing-system-xl)] gap-[var(--spacing-system-l)]",
10922
- "duration-200 fill-mode-forwards",
10923
- "data-[state=open]:animate-in data-[state=open]:fade-in-0",
10924
- "data-[state=open]:slide-in-from-bottom-4 md:data-[state=open]:slide-in-from-bottom-0 md:data-[state=open]:zoom-in-95",
10925
- "data-[state=closed]:animate-out data-[state=closed]:fade-out-0",
10926
- "data-[state=closed]:slide-out-to-bottom-4 md:data-[state=closed]:slide-out-to-bottom-0 md:data-[state=closed]:zoom-out-95",
10927
- // Hold the hidden end-state until unmount so the panel doesn't snap
10928
- // back to opacity/scale 1 for a frame before it unmounts.
10929
- "data-[state=closed]:fill-mode-forwards",
10930
- className
10931
- ),
10932
- role: "dialog",
10933
- "aria-modal": "true",
10934
- children: /* @__PURE__ */ jsx57(ModalContext.Provider, { value: { onClose }, children })
10935
- }
10936
- )
10937
- ]
10938
- }
10939
- ) });
10886
+ onClick: onClose,
10887
+ "aria-hidden": "true"
10888
+ }
10889
+ ),
10890
+ /* @__PURE__ */ jsx57(
10891
+ "div",
10892
+ {
10893
+ ref: (node) => {
10894
+ panelRef.current = node;
10895
+ if (typeof ref === "function") ref(node);
10896
+ else if (ref) ref.current = node;
10897
+ },
10898
+ tabIndex: -1,
10899
+ "data-state": state,
10900
+ className: cn(
10901
+ // min() keeps the desktop cap at 28rem while never letting content
10902
+ // stretch the panel past the viewport (minus the mx-4 margins) on
10903
+ // narrow screens. A single base utility (not md:max-w-md) so consumer
10904
+ // max-w-* overrides via className still win at every breakpoint.
10905
+ "relative z-10 w-full min-w-0 max-w-[min(28rem,calc(100vw-2rem))] flex flex-col",
10906
+ "mx-4 mb-4 md:mb-0",
10907
+ "max-h-[90vh]",
10908
+ "bg-ods-bg md:bg-ods-card",
10909
+ "border border-ods-border rounded-md shadow-xl",
10910
+ "p-[var(--spacing-system-xl)] gap-[var(--spacing-system-l)]",
10911
+ "duration-200 fill-mode-forwards",
10912
+ "data-[state=open]:animate-in data-[state=open]:fade-in-0",
10913
+ "data-[state=open]:slide-in-from-bottom-4 md:data-[state=open]:slide-in-from-bottom-0 md:data-[state=open]:zoom-in-95",
10914
+ "data-[state=closed]:animate-out data-[state=closed]:fade-out-0",
10915
+ "data-[state=closed]:slide-out-to-bottom-4 md:data-[state=closed]:slide-out-to-bottom-0 md:data-[state=closed]:zoom-out-95",
10916
+ // Hold the hidden end-state until unmount so the panel doesn't snap
10917
+ // back to opacity/scale 1 for a frame before it unmounts.
10918
+ "data-[state=closed]:fill-mode-forwards",
10919
+ className
10920
+ ),
10921
+ role: "dialog",
10922
+ "aria-modal": "true",
10923
+ children: /* @__PURE__ */ jsx57(ModalContext.Provider, { value: { onClose }, children })
10924
+ }
10925
+ )
10926
+ ] }) });
10940
10927
  }
10941
10928
  );
10942
10929
  Modal.displayName = "ModalV2";
@@ -21325,16 +21312,7 @@ var AlertDialogContent = React67.forwardRef(({ className, ...props }, ref) => /*
21325
21312
  {
21326
21313
  ref,
21327
21314
  className: cn(
21328
- // Centered on the KEYBOARD-FREE area, not the layout viewport: nothing
21329
- // resizes the viewport when a mobile software keyboard opens, so a
21330
- // plain top-[50%] leaves the lower half of the dialog behind it. The
21331
- // max-height keeps that upward shift from pushing the top off-screen.
21332
- // See modal-v2.tsx for the full reasoning; --of-keyboard-inset is
21333
- // published by the app (keyboard-inset.ts) and 0 everywhere else.
21334
- // The cap is safe to pair with overflow here, and NOT in DialogContent,
21335
- // because this Content has no absolutely-positioned close button that a
21336
- // scroll container would carry off the top.
21337
- "fixed left-[50%] top-[calc(50%_-_var(--of-keyboard-inset,0px)/2)] z-50 grid w-full max-w-lg max-h-[calc(100dvh_-_var(--of-keyboard-inset,0px)_-_2rem)] overflow-y-auto translate-x-[-50%] translate-y-[-50%] gap-4 border bg-background p-6 shadow-lg duration-200 data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0 data-[state=closed]:zoom-out-95 data-[state=open]:zoom-in-95 data-[state=closed]:slide-out-to-left-1/2 data-[state=closed]:slide-out-to-top-1/2 data-[state=open]:slide-in-from-left-1/2 data-[state=open]:slide-in-from-top-1/2 md:rounded-lg",
21315
+ "fixed left-[50%] top-[50%] z-50 grid w-full max-w-lg translate-x-[-50%] translate-y-[-50%] gap-4 border bg-background p-6 shadow-lg duration-200 data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0 data-[state=closed]:zoom-out-95 data-[state=open]:zoom-in-95 data-[state=closed]:slide-out-to-left-1/2 data-[state=closed]:slide-out-to-top-1/2 data-[state=open]:slide-in-from-left-1/2 data-[state=open]:slide-in-from-top-1/2 md:rounded-lg",
21338
21316
  className
21339
21317
  ),
21340
21318
  ...props
@@ -21444,18 +21422,7 @@ var DialogContent = React68.forwardRef(({ className, children, ...props }, ref)
21444
21422
  {
21445
21423
  ref,
21446
21424
  className: cn(
21447
- // Centered on the KEYBOARD-FREE area, not the layout viewport: nothing
21448
- // resizes the viewport when a mobile software keyboard opens, so a
21449
- // plain top-[50%] leaves the lower half of the dialog behind it. See
21450
- // modal-v2.tsx for the full reasoning; --of-keyboard-inset is published
21451
- // by the app (keyboard-inset.ts) and 0 everywhere else.
21452
- //
21453
- // Deliberately NO max-height/overflow here, unlike AlertDialogContent:
21454
- // the close button below is `absolute` against this box, so making it a
21455
- // scroll container scrolls the X away with the content. Capping the
21456
- // height needs the overflow to move to a wrapper around `children`, and
21457
- // that collapses the `gap-4` this grid gives header/body/footer.
21458
- "fixed left-[50%] top-[calc(50%_-_var(--of-keyboard-inset,0px)/2)] z-[9999] grid w-full max-w-lg translate-x-[-50%] translate-y-[-50%] gap-4 border bg-background p-6 shadow-lg duration-200 data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0 data-[state=closed]:zoom-out-95 data-[state=open]:zoom-in-95 data-[state=closed]:slide-out-to-left-1/2 data-[state=closed]:slide-out-to-top-1/2 data-[state=open]:slide-in-from-left-1/2 data-[state=open]:slide-in-from-top-1/2 md:rounded-lg",
21425
+ "fixed left-[50%] top-[50%] z-[9999] grid w-full max-w-lg translate-x-[-50%] translate-y-[-50%] gap-4 border bg-background p-6 shadow-lg duration-200 data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0 data-[state=closed]:zoom-out-95 data-[state=open]:zoom-in-95 data-[state=closed]:slide-out-to-left-1/2 data-[state=closed]:slide-out-to-top-1/2 data-[state=open]:slide-in-from-left-1/2 data-[state=open]:slide-in-from-top-1/2 md:rounded-lg",
21459
21426
  className
21460
21427
  ),
21461
21428
  ...props,
@@ -23637,7 +23604,7 @@ var ExternalLinkIcon2 = () => /* @__PURE__ */ jsxs124("svg", { width: "16", heig
23637
23604
  /* @__PURE__ */ jsx161("line", { x1: "10", y1: "14", x2: "21", y2: "3" })
23638
23605
  ] });
23639
23606
  var ArrowUpIcon = () => /* @__PURE__ */ jsx161("svg", { width: "16", height: "16", fill: "none", stroke: "currentColor", viewBox: "0 0 24 24", children: /* @__PURE__ */ jsx161("polyline", { points: "18,15 12,9 6,15" }) });
23640
- var ClockIcon = () => /* @__PURE__ */ jsxs124("svg", { width: "12", height: "12", fill: "none", stroke: "currentColor", viewBox: "0 0 24 24", children: [
23607
+ var ClockIcon2 = () => /* @__PURE__ */ jsxs124("svg", { width: "12", height: "12", fill: "none", stroke: "currentColor", viewBox: "0 0 24 24", children: [
23641
23608
  /* @__PURE__ */ jsx161("circle", { cx: "12", cy: "12", r: "10" }),
23642
23609
  /* @__PURE__ */ jsx161("polyline", { points: "12,6 12,12 16,14" })
23643
23610
  ] });
@@ -23910,7 +23877,7 @@ function RedditEmbedClient({ url, maxWidth = 700 }) {
23910
23877
  "u/",
23911
23878
  redditData.author
23912
23879
  ] }),
23913
- /* @__PURE__ */ jsx161(ClockIcon, {}),
23880
+ /* @__PURE__ */ jsx161(ClockIcon2, {}),
23914
23881
  /* @__PURE__ */ jsx161("span", { children: formatTimeAgo(redditData.created_utc) })
23915
23882
  ] })
23916
23883
  ] })
@@ -23981,7 +23948,7 @@ var RepeatIcon = () => /* @__PURE__ */ jsxs125("svg", { width: "16", height: "16
23981
23948
  /* @__PURE__ */ jsx162("polyline", { points: "7,23 3,19 7,15" }),
23982
23949
  /* @__PURE__ */ jsx162("path", { d: "M21 13v2a4 4 0 0 1-4 4H3" })
23983
23950
  ] });
23984
- var ClockIcon2 = () => /* @__PURE__ */ jsxs125("svg", { width: "12", height: "12", fill: "none", stroke: "currentColor", viewBox: "0 0 24 24", children: [
23951
+ var ClockIcon3 = () => /* @__PURE__ */ jsxs125("svg", { width: "12", height: "12", fill: "none", stroke: "currentColor", viewBox: "0 0 24 24", children: [
23985
23952
  /* @__PURE__ */ jsx162("circle", { cx: "12", cy: "12", r: "10" }),
23986
23953
  /* @__PURE__ */ jsx162("polyline", { points: "12,6 12,12 16,14" })
23987
23954
  ] });
@@ -24103,7 +24070,7 @@ function TwitterEmbedClient({ url, tweetId, maxWidth = 700 }) {
24103
24070
  /* @__PURE__ */ jsxs125("div", { className: "flex items-center space-x-2 text-ods-text-secondary text-h6", children: [
24104
24071
  /* @__PURE__ */ jsx162(UserIcon4, {}),
24105
24072
  /* @__PURE__ */ jsx162("span", { children: tweetData.author_name }),
24106
- /* @__PURE__ */ jsx162(ClockIcon2, {}),
24073
+ /* @__PURE__ */ jsx162(ClockIcon3, {}),
24107
24074
  /* @__PURE__ */ jsx162("span", { children: formatTime2() })
24108
24075
  ] })
24109
24076
  ] })
@@ -39587,6 +39554,12 @@ var PRIORITY_COLOR_CLASS = {
39587
39554
  };
39588
39555
  var MAX_VISIBLE_TAGS = 2;
39589
39556
  var MAX_VISIBLE_ASSIGNEES = 3;
39557
+ var ACTIVITY_DEFAULT_LABEL = {
39558
+ "ai-working": "AI assistant is working",
39559
+ "user-typing": "User typing",
39560
+ "waiting-external": "Waiting for client response",
39561
+ stale: "No activity"
39562
+ };
39590
39563
  var TICKET_CARD_SHELL = "relative flex flex-col gap-[var(--spacing-system-sf)] rounded-md border border-ods-border bg-ods-bg p-[var(--spacing-system-sf)] select-none text-left";
39591
39564
  function TicketCardBody({ ticket, columnColor, renderAssignSlot, onApprove, onReject }) {
39592
39565
  const showNewMessage = !!ticket.hasNewMessage && !!columnColor;
@@ -39644,6 +39617,19 @@ function TicketCardBody({ ticket, columnColor, renderAssignSlot, onApprove, onRe
39644
39617
  /* @__PURE__ */ jsx291(UserCheckIcon, { className: "size-4 shrink-0" }),
39645
39618
  /* @__PURE__ */ jsx291("span", { className: "truncate", children: "Escalated by User" })
39646
39619
  ] }),
39620
+ ticket.activity && /* @__PURE__ */ jsxs225(
39621
+ "div",
39622
+ {
39623
+ className: cn(
39624
+ "flex items-center gap-[var(--spacing-system-xxs)] text-h6",
39625
+ ticket.activity.kind === "stale" ? "text-ods-open-yellow" : "text-ods-text-secondary"
39626
+ ),
39627
+ children: [
39628
+ ticket.activity.kind === "stale" ? /* @__PURE__ */ jsx291(ClockIcon, { className: "size-4 shrink-0" }) : /* @__PURE__ */ jsx291(DotsLoaderIcon, { className: "size-4 shrink-0" }),
39629
+ /* @__PURE__ */ jsx291("span", { className: "truncate", children: ticket.activity.label ?? ACTIVITY_DEFAULT_LABEL[ticket.activity.kind] })
39630
+ ]
39631
+ }
39632
+ ),
39647
39633
  showNewMessage && /* @__PURE__ */ jsx291(
39648
39634
  Tag,
39649
39635
  {
@@ -62039,4 +62025,4 @@ export {
62039
62025
  LogsList,
62040
62026
  assets
62041
62027
  };
62042
- //# sourceMappingURL=chunk-QRSNDDMB.js.map
62028
+ //# sourceMappingURL=chunk-MH4CJO6T.js.map