@flamingo-stack/openframe-frontend-core 0.0.281 → 0.0.282

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 (56) hide show
  1. package/dist/{chunk-FAKJMITR.cjs → chunk-2OW3PADG.cjs} +25 -25
  2. package/dist/{chunk-FAKJMITR.cjs.map → chunk-2OW3PADG.cjs.map} +1 -1
  3. package/dist/{chunk-3QMJ6OX6.js → chunk-ACCHFWQ4.js} +2 -2
  4. package/dist/{chunk-LAXKEA5S.cjs → chunk-E74J226M.cjs} +34 -34
  5. package/dist/{chunk-LAXKEA5S.cjs.map → chunk-E74J226M.cjs.map} +1 -1
  6. package/dist/{chunk-PWPRJKCY.js → chunk-FHHNA6WC.js} +2 -2
  7. package/dist/{chunk-HIFAGJQU.cjs → chunk-GEKA6JTQ.cjs} +6 -6
  8. package/dist/{chunk-HIFAGJQU.cjs.map → chunk-GEKA6JTQ.cjs.map} +1 -1
  9. package/dist/{chunk-DKHWVF6S.cjs → chunk-I4WZC4GQ.cjs} +10 -10
  10. package/dist/{chunk-DKHWVF6S.cjs.map → chunk-I4WZC4GQ.cjs.map} +1 -1
  11. package/dist/{chunk-DEDJY6TG.cjs → chunk-JDJOO3KD.cjs} +24 -7
  12. package/dist/chunk-JDJOO3KD.cjs.map +1 -0
  13. package/dist/{chunk-Z4RUSQES.js → chunk-S7HJ3IRR.js} +23 -6
  14. package/dist/chunk-S7HJ3IRR.js.map +1 -0
  15. package/dist/{chunk-GQS4ZRL3.js → chunk-X53VKNLW.js} +2 -2
  16. package/dist/{chunk-ODKT35W6.js → chunk-YRXG2UK7.js} +2 -2
  17. package/dist/components/chat/chat-ticket-list.d.ts +2 -0
  18. package/dist/components/chat/chat-ticket-list.d.ts.map +1 -1
  19. package/dist/components/chat/index.cjs +4 -2
  20. package/dist/components/chat/index.cjs.map +1 -1
  21. package/dist/components/chat/index.js +3 -1
  22. package/dist/components/chat/model-display.d.ts +15 -1
  23. package/dist/components/chat/model-display.d.ts.map +1 -1
  24. package/dist/components/contact/index.cjs +3 -3
  25. package/dist/components/contact/index.js +2 -2
  26. package/dist/components/faq/index.cjs +3 -3
  27. package/dist/components/faq/index.js +2 -2
  28. package/dist/components/features/index.cjs +2 -2
  29. package/dist/components/features/index.js +1 -1
  30. package/dist/components/index.cjs +55 -53
  31. package/dist/components/index.cjs.map +1 -1
  32. package/dist/components/index.js +6 -4
  33. package/dist/components/index.js.map +1 -1
  34. package/dist/components/navigation/index.cjs +2 -2
  35. package/dist/components/navigation/index.js +1 -1
  36. package/dist/components/related-content/index.cjs +3 -3
  37. package/dist/components/related-content/index.js +2 -2
  38. package/dist/components/tickets/index.cjs +52 -52
  39. package/dist/components/tickets/index.js +3 -3
  40. package/dist/components/ui/index.cjs +4 -2
  41. package/dist/components/ui/index.cjs.map +1 -1
  42. package/dist/components/ui/index.js +3 -1
  43. package/dist/index.cjs +4 -2
  44. package/dist/index.cjs.map +1 -1
  45. package/dist/index.js +3 -1
  46. package/package.json +1 -1
  47. package/src/components/chat/chat-ticket-list.tsx +4 -5
  48. package/src/components/chat/entity-cards/chat-ticket-item.tsx +2 -2
  49. package/src/components/chat/model-display.tsx +36 -1
  50. package/src/stories/ChatContainer.stories.tsx +30 -0
  51. package/dist/chunk-DEDJY6TG.cjs.map +0 -1
  52. package/dist/chunk-Z4RUSQES.js.map +0 -1
  53. /package/dist/{chunk-3QMJ6OX6.js.map → chunk-ACCHFWQ4.js.map} +0 -0
  54. /package/dist/{chunk-PWPRJKCY.js.map → chunk-FHHNA6WC.js.map} +0 -0
  55. /package/dist/{chunk-GQS4ZRL3.js.map → chunk-X53VKNLW.js.map} +0 -0
  56. /package/dist/{chunk-ODKT35W6.js.map → chunk-YRXG2UK7.js.map} +0 -0
@@ -26,7 +26,7 @@
26
26
 
27
27
 
28
28
 
29
- var _chunkDEDJY6TGcjs = require('../../chunk-DEDJY6TG.cjs');
29
+ var _chunkJDJOO3KDcjs = require('../../chunk-JDJOO3KD.cjs');
30
30
  require('../../chunk-Q2ITV3NY.cjs');
31
31
  require('../../chunk-27APPAJN.cjs');
32
32
  require('../../chunk-6JINAOI7.cjs');
@@ -71,5 +71,5 @@ require('../../chunk-VRHGVLSL.cjs');
71
71
 
72
72
 
73
73
 
74
- exports.AppHeader = _chunkDEDJY6TGcjs.AppHeader; exports.AppLayout = _chunkDEDJY6TGcjs.AppLayout; exports.AppLayoutDrawer = _chunkDEDJY6TGcjs.AppLayoutDrawerRoot; exports.AppLayoutDrawerBody = _chunkDEDJY6TGcjs.AppLayoutDrawerBody; exports.AppLayoutDrawerClose = _chunkDEDJY6TGcjs.AppLayoutDrawerClose; exports.AppLayoutDrawerContent = _chunkDEDJY6TGcjs.AppLayoutDrawerContent; exports.AppLayoutDrawerDescription = _chunkDEDJY6TGcjs.AppLayoutDrawerDescription; exports.AppLayoutDrawerFooter = _chunkDEDJY6TGcjs.AppLayoutDrawerFooter; exports.AppLayoutDrawerHeader = _chunkDEDJY6TGcjs.AppLayoutDrawerHeader; exports.AppLayoutDrawerTitle = _chunkDEDJY6TGcjs.AppLayoutDrawerTitle; exports.AppLayoutDrawerTrigger = _chunkDEDJY6TGcjs.AppLayoutDrawerTrigger; exports.ClientOnlyHeader = _chunkDEDJY6TGcjs.ClientOnlyHeader; exports.Header = _chunkDEDJY6TGcjs.Header; exports.HeaderButton = _chunkDEDJY6TGcjs.HeaderButton; exports.HeaderGlobalSearch = _chunkDEDJY6TGcjs.HeaderGlobalSearch; exports.HeaderMingoButton = _chunkDEDJY6TGcjs.HeaderMingoButton; exports.HeaderOrganizationFilter = _chunkDEDJY6TGcjs.HeaderOrganizationFilter; exports.HeaderSkeleton = _chunkDEDJY6TGcjs.HeaderSkeleton; exports.MobileBurgerMenu = _chunkDEDJY6TGcjs.MobileBurgerMenu; exports.MobileNavPanel = _chunkDEDJY6TGcjs.MobileNavPanel; exports.NavigationSidebar = _chunkDEDJY6TGcjs.NavigationSidebar; exports.SlidingSidebar = _chunkDEDJY6TGcjs.SlidingSidebar; exports.StickySectionNav = _chunkDEDJY6TGcjs.StickySectionNav; exports.useAppLayoutDrawerContainer = _chunkDEDJY6TGcjs.useAppLayoutDrawerContainer; exports.useSectionNavigation = _chunkDEDJY6TGcjs.useSectionNavigation;
74
+ exports.AppHeader = _chunkJDJOO3KDcjs.AppHeader; exports.AppLayout = _chunkJDJOO3KDcjs.AppLayout; exports.AppLayoutDrawer = _chunkJDJOO3KDcjs.AppLayoutDrawerRoot; exports.AppLayoutDrawerBody = _chunkJDJOO3KDcjs.AppLayoutDrawerBody; exports.AppLayoutDrawerClose = _chunkJDJOO3KDcjs.AppLayoutDrawerClose; exports.AppLayoutDrawerContent = _chunkJDJOO3KDcjs.AppLayoutDrawerContent; exports.AppLayoutDrawerDescription = _chunkJDJOO3KDcjs.AppLayoutDrawerDescription; exports.AppLayoutDrawerFooter = _chunkJDJOO3KDcjs.AppLayoutDrawerFooter; exports.AppLayoutDrawerHeader = _chunkJDJOO3KDcjs.AppLayoutDrawerHeader; exports.AppLayoutDrawerTitle = _chunkJDJOO3KDcjs.AppLayoutDrawerTitle; exports.AppLayoutDrawerTrigger = _chunkJDJOO3KDcjs.AppLayoutDrawerTrigger; exports.ClientOnlyHeader = _chunkJDJOO3KDcjs.ClientOnlyHeader; exports.Header = _chunkJDJOO3KDcjs.Header; exports.HeaderButton = _chunkJDJOO3KDcjs.HeaderButton; exports.HeaderGlobalSearch = _chunkJDJOO3KDcjs.HeaderGlobalSearch; exports.HeaderMingoButton = _chunkJDJOO3KDcjs.HeaderMingoButton; exports.HeaderOrganizationFilter = _chunkJDJOO3KDcjs.HeaderOrganizationFilter; exports.HeaderSkeleton = _chunkJDJOO3KDcjs.HeaderSkeleton; exports.MobileBurgerMenu = _chunkJDJOO3KDcjs.MobileBurgerMenu; exports.MobileNavPanel = _chunkJDJOO3KDcjs.MobileNavPanel; exports.NavigationSidebar = _chunkJDJOO3KDcjs.NavigationSidebar; exports.SlidingSidebar = _chunkJDJOO3KDcjs.SlidingSidebar; exports.StickySectionNav = _chunkJDJOO3KDcjs.StickySectionNav; exports.useAppLayoutDrawerContainer = _chunkJDJOO3KDcjs.useAppLayoutDrawerContainer; exports.useSectionNavigation = _chunkJDJOO3KDcjs.useSectionNavigation;
75
75
  //# sourceMappingURL=index.cjs.map
@@ -26,7 +26,7 @@ import {
26
26
  StickySectionNav,
27
27
  useAppLayoutDrawerContainer,
28
28
  useSectionNavigation
29
- } from "../../chunk-Z4RUSQES.js";
29
+ } from "../../chunk-S7HJ3IRR.js";
30
30
  import "../../chunk-UXJCZOLA.js";
31
31
  import "../../chunk-MJNXIEV2.js";
32
32
  import "../../chunk-M2OCXTNT.js";
@@ -2,9 +2,9 @@
2
2
 
3
3
 
4
4
 
5
- var _chunkLAXKEA5Scjs = require('../../chunk-LAXKEA5S.cjs');
5
+ var _chunkE74J226Mcjs = require('../../chunk-E74J226M.cjs');
6
6
  require('../../chunk-GVSTRN36.cjs');
7
- require('../../chunk-DEDJY6TG.cjs');
7
+ require('../../chunk-JDJOO3KD.cjs');
8
8
  require('../../chunk-Q2ITV3NY.cjs');
9
9
  require('../../chunk-27APPAJN.cjs');
10
10
  require('../../chunk-6JINAOI7.cjs');
@@ -26,5 +26,5 @@ require('../../chunk-VRHGVLSL.cjs');
26
26
 
27
27
 
28
28
 
29
- exports.GROUP_PAGE_SIZE = _chunkLAXKEA5Scjs.GROUP_PAGE_SIZE; exports.RelatedContentSection = _chunkLAXKEA5Scjs.RelatedContentSection;
29
+ exports.GROUP_PAGE_SIZE = _chunkE74J226Mcjs.GROUP_PAGE_SIZE; exports.RelatedContentSection = _chunkE74J226Mcjs.RelatedContentSection;
30
30
  //# sourceMappingURL=index.cjs.map
@@ -2,9 +2,9 @@
2
2
  import {
3
3
  GROUP_PAGE_SIZE,
4
4
  RelatedContentSection
5
- } from "../../chunk-GQS4ZRL3.js";
5
+ } from "../../chunk-X53VKNLW.js";
6
6
  import "../../chunk-IMNGGLKL.js";
7
- import "../../chunk-Z4RUSQES.js";
7
+ import "../../chunk-S7HJ3IRR.js";
8
8
  import "../../chunk-UXJCZOLA.js";
9
9
  import "../../chunk-MJNXIEV2.js";
10
10
  import "../../chunk-M2OCXTNT.js";
@@ -7,11 +7,11 @@
7
7
 
8
8
 
9
9
 
10
- var _chunkDKHWVF6Scjs = require('../../chunk-DKHWVF6S.cjs');
10
+ var _chunkI4WZC4GQcjs = require('../../chunk-I4WZC4GQ.cjs');
11
11
  require('../../chunk-VFKQMAUF.cjs');
12
12
 
13
13
 
14
- var _chunkFAKJMITRcjs = require('../../chunk-FAKJMITR.cjs');
14
+ var _chunk2OW3PADGcjs = require('../../chunk-2OW3PADG.cjs');
15
15
 
16
16
 
17
17
 
@@ -35,7 +35,7 @@ var _chunkFAKJMITRcjs = require('../../chunk-FAKJMITR.cjs');
35
35
 
36
36
 
37
37
 
38
- var _chunkDEDJY6TGcjs = require('../../chunk-DEDJY6TG.cjs');
38
+ var _chunkJDJOO3KDcjs = require('../../chunk-JDJOO3KD.cjs');
39
39
 
40
40
 
41
41
  var _chunkQ2ITV3NYcjs = require('../../chunk-Q2ITV3NY.cjs');
@@ -111,7 +111,7 @@ function TicketOpenForm({
111
111
  }) {
112
112
  const [subject, setSubject] = _react.useState.call(void 0, "");
113
113
  const [content, setContent] = _react.useState.call(void 0, "");
114
- const { attachments, readyAttachments, hasInflightUploads, addFiles, removeAttachment, clear } = _chunkDEDJY6TGcjs.useChatAttachments.call(void 0, );
114
+ const { attachments, readyAttachments, hasInflightUploads, addFiles, removeAttachment, clear } = _chunkJDJOO3KDcjs.useChatAttachments.call(void 0, );
115
115
  const trimmedSubject = subject.trim();
116
116
  const trimmedContent = content.trim();
117
117
  const overCap = content.length > TICKET_TEXT_MAX_CHARS;
@@ -170,7 +170,7 @@ function TicketOpenForm({
170
170
  }
171
171
  ),
172
172
  /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
173
- _chunkDEDJY6TGcjs.Textarea,
173
+ _chunkJDJOO3KDcjs.Textarea,
174
174
  {
175
175
  id: "ticket-content",
176
176
  placeholder: "Describe your issue or question in detail...",
@@ -194,7 +194,7 @@ function TicketOpenForm({
194
194
  )
195
195
  ] }),
196
196
  /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
197
- _chunkDEDJY6TGcjs.ChatAttachmentChipStrip,
197
+ _chunkJDJOO3KDcjs.ChatAttachmentChipStrip,
198
198
  {
199
199
  attachments,
200
200
  onRemove: removeAttachment,
@@ -203,7 +203,7 @@ function TicketOpenForm({
203
203
  ),
204
204
  /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: "flex items-center justify-between gap-3", children: [
205
205
  /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
206
- _chunkDEDJY6TGcjs.ChatAttachmentAddButton,
206
+ _chunkJDJOO3KDcjs.ChatAttachmentAddButton,
207
207
  {
208
208
  attachmentsEnabled: !supportSystemDown,
209
209
  attachmentsCount: attachments.length,
@@ -241,7 +241,7 @@ var _usesticktobottom = require('use-stick-to-bottom');
241
241
 
242
242
  var LIST_ENGAGEMENTS_ENDPOINT = "/api/chat/agent/list-engagements";
243
243
  function useTicketEngagements(externalTicketId, enabled = true, refetchInterval = false) {
244
- const identity = _chunkDEDJY6TGcjs.useChatIdentity.call(void 0, );
244
+ const identity = _chunkJDJOO3KDcjs.useChatIdentity.call(void 0, );
245
245
  const identityKey = _nullishCoalesce(_optionalChain([identity, 'access', _2 => _2.user, 'optionalAccess', _3 => _3.email]), () => ( "anon"));
246
246
  const listEngagementsEndpoint = _nullishCoalesce(_chunkPC7YOZ4Icjs.useRequiredChatRuntime.call(void 0, ).endpoints.listEngagementsUrl, () => ( LIST_ENGAGEMENTS_ENDPOINT));
247
247
  const fetchable = enabled && !!externalTicketId && !externalTicketId.startsWith("temp-");
@@ -323,7 +323,7 @@ function TicketLinkedDeliveryCard({
323
323
  {
324
324
  className: `rounded-md border border-ods-border bg-ods-bg overflow-hidden ${_nullishCoalesce(className, () => ( ""))}`,
325
325
  children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
326
- _chunkDKHWVF6Scjs.DeliveryRow,
326
+ _chunkI4WZC4GQcjs.DeliveryRow,
327
327
  {
328
328
  item,
329
329
  href: clickup.delivery_href,
@@ -347,7 +347,7 @@ function TicketReplyComposer({
347
347
  }) {
348
348
  const [resolution, setResolution] = _react.useState.call(void 0, "");
349
349
  const [closeDialogOpen, setCloseDialogOpen] = _react.useState.call(void 0, false);
350
- const attachments = _chunkDEDJY6TGcjs.useChatAttachments.call(void 0, );
350
+ const attachments = _chunkJDJOO3KDcjs.useChatAttachments.call(void 0, );
351
351
  const ticketRef = { id: ticket.id, external_id: ticket.external_id };
352
352
  const hasReadyFiles = attachments.readyAttachments.length > 0;
353
353
  const handleSend = _react.useCallback.call(void 0,
@@ -375,7 +375,7 @@ function TicketReplyComposer({
375
375
  const disabled = busy || supportSystemDown;
376
376
  return /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: "flex flex-col gap-2", children: [
377
377
  /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
378
- _chunkDEDJY6TGcjs.ChatAttachmentChipStrip,
378
+ _chunkJDJOO3KDcjs.ChatAttachmentChipStrip,
379
379
  {
380
380
  attachments: attachments.attachments,
381
381
  onRemove: attachments.removeAttachment,
@@ -384,7 +384,7 @@ function TicketReplyComposer({
384
384
  }
385
385
  ),
386
386
  /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
387
- _chunkDEDJY6TGcjs.ChatInput,
387
+ _chunkJDJOO3KDcjs.ChatInput,
388
388
  {
389
389
  fullWidth: true,
390
390
  autoFocus: true,
@@ -398,7 +398,7 @@ function TicketReplyComposer({
398
398
  ),
399
399
  /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: "flex items-center gap-2 w-full", children: [
400
400
  !supportSystemDown && /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
401
- _chunkDEDJY6TGcjs.ChatAttachmentAddButton,
401
+ _chunkJDJOO3KDcjs.ChatAttachmentAddButton,
402
402
  {
403
403
  attachmentsEnabled: true,
404
404
  attachmentsCount: attachments.attachments.length,
@@ -421,13 +421,13 @@ function TicketReplyComposer({
421
421
  }
422
422
  )
423
423
  ] }),
424
- /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkDEDJY6TGcjs.AlertDialog, { open: closeDialogOpen, onOpenChange: setCloseDialogOpen, children: /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, _chunkDEDJY6TGcjs.AlertDialogContent, { className: "bg-ods-card border-ods-border", children: [
425
- /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, _chunkDEDJY6TGcjs.AlertDialogHeader, { children: [
426
- /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkDEDJY6TGcjs.AlertDialogTitle, { className: "text-ods-text-primary", children: "Close this ticket?" }),
427
- /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkDEDJY6TGcjs.AlertDialogDescription, { className: "text-ods-text-secondary", children: "Add an optional resolution note below. You can reopen the ticket later if needed." })
424
+ /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkJDJOO3KDcjs.AlertDialog, { open: closeDialogOpen, onOpenChange: setCloseDialogOpen, children: /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, _chunkJDJOO3KDcjs.AlertDialogContent, { className: "bg-ods-card border-ods-border", children: [
425
+ /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, _chunkJDJOO3KDcjs.AlertDialogHeader, { children: [
426
+ /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkJDJOO3KDcjs.AlertDialogTitle, { className: "text-ods-text-primary", children: "Close this ticket?" }),
427
+ /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkJDJOO3KDcjs.AlertDialogDescription, { className: "text-ods-text-secondary", children: "Add an optional resolution note below. You can reopen the ticket later if needed." })
428
428
  ] }),
429
429
  /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
430
- _chunkDEDJY6TGcjs.Textarea,
430
+ _chunkJDJOO3KDcjs.Textarea,
431
431
  {
432
432
  value: resolution,
433
433
  onChange: (e) => setResolution(e.target.value),
@@ -437,9 +437,9 @@ function TicketReplyComposer({
437
437
  className: "mt-2"
438
438
  }
439
439
  ),
440
- /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, _chunkDEDJY6TGcjs.AlertDialogFooter, { children: [
440
+ /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, _chunkJDJOO3KDcjs.AlertDialogFooter, { children: [
441
441
  /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
442
- _chunkDEDJY6TGcjs.AlertDialogCancel,
442
+ _chunkJDJOO3KDcjs.AlertDialogCancel,
443
443
  {
444
444
  disabled: busy,
445
445
  className: "bg-transparent border-ods-border text-ods-text-primary hover:bg-ods-border",
@@ -447,7 +447,7 @@ function TicketReplyComposer({
447
447
  }
448
448
  ),
449
449
  /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
450
- _chunkDEDJY6TGcjs.AlertDialogAction,
450
+ _chunkJDJOO3KDcjs.AlertDialogAction,
451
451
  {
452
452
  onClick: () => void confirmClose(),
453
453
  disabled: busy,
@@ -517,7 +517,7 @@ var TICKET_FEED_HEIGHT = "h-[60vh] md:h-[420px]";
517
517
  var TICKET_FEED_INNER = "flex flex-col gap-4 md:gap-6 px-4 md:px-6 py-4 md:py-6";
518
518
  var TICKET_FEED_SKELETON_ROWS = 6;
519
519
  function TicketTimelinePanel({ ticket }) {
520
- const identity = _chunkDEDJY6TGcjs.useChatIdentity.call(void 0, );
520
+ const identity = _chunkJDJOO3KDcjs.useChatIdentity.call(void 0, );
521
521
  const externalId = isOptimistic(ticket) ? null : ticket.external_id;
522
522
  const { engagements, isLoading } = useTicketEngagements(
523
523
  externalId,
@@ -537,11 +537,11 @@ function TicketTimelinePanel({ ticket }) {
537
537
  const customerName = (isViewerTheCustomer ? viewerName : null) || ticketCustomerName || viewerName || _optionalChain([identity, 'access', _19 => _19.user, 'optionalAccess', _20 => _20.email]) || "You";
538
538
  const customerAvatar = isViewerTheCustomer ? _nullishCoalesce(_optionalChain([identity, 'access', _21 => _21.user, 'optionalAccess', _22 => _22.avatarUrl]), () => ( void 0)) : void 0;
539
539
  if (isLoading) {
540
- return /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: `${TICKET_FEED_FRAME} ${TICKET_FEED_HEIGHT}`, children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: TICKET_FEED_INNER, children: Array.from({ length: TICKET_FEED_SKELETON_ROWS }, (_, i) => /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkDEDJY6TGcjs.ChatMessageRowSkeleton, {}, i)) }) });
540
+ return /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: `${TICKET_FEED_FRAME} ${TICKET_FEED_HEIGHT}`, children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: TICKET_FEED_INNER, children: Array.from({ length: TICKET_FEED_SKELETON_ROWS }, (_, i) => /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkJDJOO3KDcjs.ChatMessageRowSkeleton, {}, i)) }) });
541
541
  }
542
542
  if (bodyTurns.length === 0 && engagements.length === 0) {
543
543
  return /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
544
- _chunkDKHWVF6Scjs.EmptyState,
544
+ _chunkI4WZC4GQcjs.EmptyState,
545
545
  {
546
546
  type: "generic",
547
547
  title: "No conversation yet",
@@ -556,7 +556,7 @@ function TicketTimelinePanel({ ticket }) {
556
556
  const isResolution = turn.startsWith("[Resolution]");
557
557
  const text = isResolution ? turn.replace(/^\[Resolution\]\s*/, "") : turn;
558
558
  return /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
559
- _chunkDEDJY6TGcjs.ChatMessageRow,
559
+ _chunkJDJOO3KDcjs.ChatMessageRow,
560
560
  {
561
561
  displayName: customerName,
562
562
  avatarUrl: customerAvatar,
@@ -585,13 +585,13 @@ function TicketTimelinePanel({ ticket }) {
585
585
  }
586
586
  const engAttachments = mapEngagementAttachments(eng.attachments);
587
587
  return /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
588
- _chunkDEDJY6TGcjs.ChatMessageRow,
588
+ _chunkJDJOO3KDcjs.ChatMessageRow,
589
589
  {
590
590
  displayName: author,
591
591
  avatarUrl: avatarSrc,
592
- timeLabel: eng.createdAt ? _chunkDEDJY6TGcjs.formatRelativeTime.call(void 0, eng.createdAt) : null,
592
+ timeLabel: eng.createdAt ? _chunkJDJOO3KDcjs.formatRelativeTime.call(void 0, eng.createdAt) : null,
593
593
  body: stripAttachmentsPreamble(_nullishCoalesce(eng.body, () => ( ""))),
594
- footer: engAttachments.length > 0 ? /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: "mt-2", children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkDEDJY6TGcjs.TicketAttachmentsList, { attachments: engAttachments, size: "compact" }) }) : null
594
+ footer: engAttachments.length > 0 ? /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: "mt-2", children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkJDJOO3KDcjs.TicketAttachmentsList, { attachments: engAttachments, size: "compact" }) }) : null
595
595
  },
596
596
  eng.id
597
597
  );
@@ -710,7 +710,7 @@ function TicketRow({
710
710
  const rowRef = _react.useRef.call(void 0, null);
711
711
  const handleClick = _react.useCallback.call(void 0, () => {
712
712
  onToggle(ticket.id);
713
- _chunkDEDJY6TGcjs.scrollElementIntoView.call(void 0, rowRef.current, {
713
+ _chunkJDJOO3KDcjs.scrollElementIntoView.call(void 0, rowRef.current, {
714
714
  adjustTargetY: (raw) => {
715
715
  if (!rowRef.current) return raw;
716
716
  const expandedDrawer = document.querySelector(
@@ -736,7 +736,7 @@ function TicketRow({
736
736
  // so the badge accurately reflects "Closed" with a checkmark.
737
737
  statusLabel: _nullishCoalesce(ticket.pipeline_stage_label, () => ( void 0)),
738
738
  category: _nullishCoalesce(ticket.customer_company, () => ( void 0)),
739
- timeAgo: ticket.hubspot_updated_at ? _chunkDEDJY6TGcjs.formatRelativeTime.call(void 0, ticket.hubspot_updated_at) : void 0,
739
+ timeAgo: ticket.hubspot_updated_at ? _chunkJDJOO3KDcjs.formatRelativeTime.call(void 0, ticket.hubspot_updated_at) : void 0,
740
740
  // Linked-work chip: surfaced whenever the ticket has a linked
741
741
  // ClickUp task. Uses the linked task's own status so the chip text
742
742
  // reads "Working" / "Waiting on version release" / etc. — useful
@@ -751,7 +751,7 @@ function TicketRow({
751
751
  className: "border-b border-ods-border last:border-b-0",
752
752
  children: [
753
753
  /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
754
- _chunkDEDJY6TGcjs.ChatTicketItem,
754
+ _chunkJDJOO3KDcjs.ChatTicketItem,
755
755
  {
756
756
  ticket: tileData,
757
757
  onClick: optimistic ? void 0 : handleClick,
@@ -1321,13 +1321,13 @@ function resolveErrorCode(bodyCode, status) {
1321
1321
  // src/components/tickets/ticket-center.tsx
1322
1322
 
1323
1323
  function TicketCenter({ toast: toast2 = _chunkQ2ITV3NYcjs.toast } = {}) {
1324
- const identity = _chunkDEDJY6TGcjs.useChatIdentity.call(void 0, );
1324
+ const identity = _chunkJDJOO3KDcjs.useChatIdentity.call(void 0, );
1325
1325
  if (identity.isLoading) {
1326
1326
  return /* @__PURE__ */ _jsxruntime.jsx.call(void 0, TicketCenterSkeleton, {});
1327
1327
  }
1328
1328
  if (identity.authTier === "anon" || !_optionalChain([identity, 'access', _58 => _58.user, 'optionalAccess', _59 => _59.email])) {
1329
1329
  return /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
1330
- _chunkDKHWVF6Scjs.EmptyState,
1330
+ _chunkI4WZC4GQcjs.EmptyState,
1331
1331
  {
1332
1332
  type: "generic",
1333
1333
  title: "Sign in to manage tickets",
@@ -1398,7 +1398,7 @@ function TicketCenterAuthed({
1398
1398
  /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: "flex items-center gap-3 text-xs text-ods-text-secondary", children: [
1399
1399
  lastUpdatedAt && /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "span", { children: [
1400
1400
  "Updated ",
1401
- _chunkDEDJY6TGcjs.formatRelativeTime.call(void 0, new Date(lastUpdatedAt))
1401
+ _chunkJDJOO3KDcjs.formatRelativeTime.call(void 0, new Date(lastUpdatedAt))
1402
1402
  ] }),
1403
1403
  /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
1404
1404
  _chunkXXI7BNB6cjs.Button,
@@ -1415,7 +1415,7 @@ function TicketCenterAuthed({
1415
1415
  ] })
1416
1416
  ] }),
1417
1417
  isLoading ? /* @__PURE__ */ _jsxruntime.jsx.call(void 0, TicketListSkeleton, {}) : merged.length === 0 ? /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunk6QZ656YEcjs.Card, { className: "p-6", children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
1418
- _chunkDKHWVF6Scjs.EmptyState,
1418
+ _chunkI4WZC4GQcjs.EmptyState,
1419
1419
  {
1420
1420
  type: "generic",
1421
1421
  title: "No tickets yet",
@@ -1464,7 +1464,7 @@ function TicketListSkeleton() {
1464
1464
  // src/components/tickets/help-center-list.tsx
1465
1465
 
1466
1466
 
1467
- _chunkDKHWVF6Scjs.init_unified_pagination.call(void 0, );
1467
+ _chunkI4WZC4GQcjs.init_unified_pagination.call(void 0, );
1468
1468
 
1469
1469
  // src/components/tickets/help-center-card.tsx
1470
1470
 
@@ -1486,7 +1486,7 @@ function HelpCenterCard({
1486
1486
  const optimistic = isOptimistic(ticket);
1487
1487
  const rawStatus = (_nullishCoalesce(ticket.status, () => ( "OPEN"))).toUpperCase();
1488
1488
  const priority = (_nullishCoalesce(ticket.priority, () => ( ""))).toUpperCase();
1489
- const relativeUpdated = ticket.hubspot_updated_at ? _chunkDEDJY6TGcjs.formatRelativeTime.call(void 0, ticket.hubspot_updated_at) : "recently";
1489
+ const relativeUpdated = ticket.hubspot_updated_at ? _chunkJDJOO3KDcjs.formatRelativeTime.call(void 0, ticket.hubspot_updated_at) : "recently";
1490
1490
  const title = (ticket.subject || "").trim() || "(untitled)";
1491
1491
  const subtitle = `UPDATED ${relativeUpdated}, #${ticket.external_id || "\u2014"}${ticket.pipeline_stage_label ? `, ${ticket.pipeline_stage_label}` : ""}`;
1492
1492
  const description = _nullishCoalesce(_nullishCoalesce(ticket.preview, () => ( ticket.body)), () => ( ""));
@@ -1499,7 +1499,7 @@ function HelpCenterCard({
1499
1499
  _react.useEffect.call(void 0, () => {
1500
1500
  if (!isExpanded) return;
1501
1501
  const raf = requestAnimationFrame(() => {
1502
- _chunkDEDJY6TGcjs.scrollElementIntoView.call(void 0, rowRef.current, {
1502
+ _chunkJDJOO3KDcjs.scrollElementIntoView.call(void 0, rowRef.current, {
1503
1503
  headerOffset: STICKY_HEADER_OFFSET_PX
1504
1504
  });
1505
1505
  });
@@ -1510,7 +1510,7 @@ function HelpCenterCard({
1510
1510
  _chunk6QZ656YEcjs.StatusBadge,
1511
1511
  {
1512
1512
  text: rawStatus,
1513
- colorScheme: _chunkDEDJY6TGcjs.getStatusColorScheme.call(void 0, rawStatus),
1513
+ colorScheme: _chunkJDJOO3KDcjs.getStatusColorScheme.call(void 0, rawStatus),
1514
1514
  variant: "card",
1515
1515
  className: "border border-ods-border"
1516
1516
  }
@@ -1543,7 +1543,7 @@ function HelpCenterCard({
1543
1543
  "aria-controls": isExpanded ? `help-center-drawer-${ticket.id}` : void 0,
1544
1544
  className: "w-full text-left p-[12px] md:p-[16px] focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ods-accent focus-visible:ring-inset disabled:cursor-default",
1545
1545
  children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
1546
- _chunkDKHWVF6Scjs.DevCardRowContent,
1546
+ _chunkI4WZC4GQcjs.DevCardRowContent,
1547
1547
  {
1548
1548
  title,
1549
1549
  subtitle,
@@ -1618,7 +1618,7 @@ function HelpCenterCreateForm({
1618
1618
  const [subject, setSubject] = _react.useState.call(void 0, "");
1619
1619
  const [subjectError, setSubjectError] = _react.useState.call(void 0, null);
1620
1620
  const subjectField = /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: "flex flex-col", children: [
1621
- /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, _chunkDEDJY6TGcjs.Label, { htmlFor: "help-center-subject", children: [
1621
+ /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, _chunkJDJOO3KDcjs.Label, { htmlFor: "help-center-subject", children: [
1622
1622
  "Subject",
1623
1623
  /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "span", { className: "text-ods-accent", children: "*" })
1624
1624
  ] }),
@@ -1650,7 +1650,7 @@ function HelpCenterCreateForm({
1650
1650
  )
1651
1651
  ] });
1652
1652
  return /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
1653
- _chunkFAKJMITRcjs.ContactForm,
1653
+ _chunk2OW3PADGcjs.ContactForm,
1654
1654
  {
1655
1655
  title: "Open a new ticket",
1656
1656
  footerText: "The support team typically responds within one business day.",
@@ -1688,7 +1688,7 @@ function HelpCenterCreateForm({
1688
1688
  // src/components/tickets/help-center-list.tsx
1689
1689
 
1690
1690
  function HelpCenterList({ toast: toast2 = _chunkQ2ITV3NYcjs.toast, backButton } = {}) {
1691
- const identity = _chunkDEDJY6TGcjs.useChatIdentity.call(void 0, );
1691
+ const identity = _chunkJDJOO3KDcjs.useChatIdentity.call(void 0, );
1692
1692
  const searchParams = _chunkG7UE6RKVcjs.useSearchParams.call(void 0, );
1693
1693
  const router = _chunkG7UE6RKVcjs.useRouter.call(void 0, );
1694
1694
  const pathname = _chunkG7UE6RKVcjs.usePathname.call(void 0, );
@@ -1698,11 +1698,11 @@ function HelpCenterList({ toast: toast2 = _chunkQ2ITV3NYcjs.toast, backButton }
1698
1698
  const rawPage = Number(searchParams.get("page"));
1699
1699
  const page = Number.isFinite(rawPage) && rawPage > 0 ? Math.floor(rawPage) : 1;
1700
1700
  if (identity.isLoading) {
1701
- return /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkDKHWVF6Scjs.DevSectionPage, { sectionKey: "tickets", backButton, preControls: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, HelpCenterCreateFormSkeleton, {}), children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkDKHWVF6Scjs.DevCardRowSkeletonList, {}) });
1701
+ return /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkI4WZC4GQcjs.DevSectionPage, { sectionKey: "tickets", backButton, preControls: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, HelpCenterCreateFormSkeleton, {}), children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkI4WZC4GQcjs.DevCardRowSkeletonList, {}) });
1702
1702
  }
1703
1703
  if (identity.authTier === "anon" || !_optionalChain([identity, 'access', _60 => _60.user, 'optionalAccess', _61 => _61.email])) {
1704
- return /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkDKHWVF6Scjs.DevSectionPage, { sectionKey: "tickets", backButton, children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
1705
- _chunkDKHWVF6Scjs.EmptyState,
1704
+ return /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkI4WZC4GQcjs.DevSectionPage, { sectionKey: "tickets", backButton, children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
1705
+ _chunkI4WZC4GQcjs.EmptyState,
1706
1706
  {
1707
1707
  type: "generic",
1708
1708
  title: "Sign in to manage tickets",
@@ -1829,15 +1829,15 @@ function HelpCenterListAuthed({
1829
1829
  ] }),
1830
1830
  /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkXXI7BNB6cjs.Button, { type: "button", variant: "accent", onClick: () => refetch(), children: "Retry" })
1831
1831
  ] }),
1832
- !error && /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: "w-full", children: isLoading ? /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkDKHWVF6Scjs.DevCardRowSkeletonList, {}) : !hasResults && isFetching ? (
1832
+ !error && /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: "w-full", children: isLoading ? /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkI4WZC4GQcjs.DevCardRowSkeletonList, {}) : !hasResults && isFetching ? (
1833
1833
  // Bridge state — background refetch in flight and the
1834
1834
  // optimistic placeholder was just removed by the mutation
1835
1835
  // callback. Without this branch "No tickets yet" would flash
1836
1836
  // for ~50ms between `removeOptimistic` and the server
1837
1837
  // response landing.
1838
- /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkDKHWVF6Scjs.DevCardRowSkeletonList, { rows: 1 })
1838
+ /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkI4WZC4GQcjs.DevCardRowSkeletonList, { rows: 1 })
1839
1839
  ) : !hasResults ? hasActiveFilters ? /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
1840
- _chunkDKHWVF6Scjs.EmptyState,
1840
+ _chunkI4WZC4GQcjs.EmptyState,
1841
1841
  {
1842
1842
  type: "search",
1843
1843
  title: "No tickets found",
@@ -1852,7 +1852,7 @@ function HelpCenterListAuthed({
1852
1852
  }
1853
1853
  }
1854
1854
  ) : /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
1855
- _chunkDKHWVF6Scjs.EmptyState,
1855
+ _chunkI4WZC4GQcjs.EmptyState,
1856
1856
  {
1857
1857
  type: "generic",
1858
1858
  title: "No tickets yet",
@@ -1886,9 +1886,9 @@ function HelpCenterListAuthed({
1886
1886
  ticket.id
1887
1887
  )) })
1888
1888
  ) }),
1889
- !error && totalPages > 1 && /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkDKHWVF6Scjs.UnifiedPagination, { currentPage: page, totalPages })
1889
+ !error && totalPages > 1 && /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkI4WZC4GQcjs.UnifiedPagination, { currentPage: page, totalPages })
1890
1890
  ] });
1891
- return /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkDKHWVF6Scjs.DevSectionPage, { sectionKey: "tickets", backButton, preControls: form, children: body });
1891
+ return /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkI4WZC4GQcjs.DevSectionPage, { sectionKey: "tickets", backButton, preControls: form, children: body });
1892
1892
  }
1893
1893
 
1894
1894
 
@@ -7,11 +7,11 @@ import {
7
7
  EmptyState,
8
8
  UnifiedPagination,
9
9
  init_unified_pagination
10
- } from "../../chunk-3QMJ6OX6.js";
10
+ } from "../../chunk-ACCHFWQ4.js";
11
11
  import "../../chunk-4XLJWX2N.js";
12
12
  import {
13
13
  ContactForm
14
- } from "../../chunk-ODKT35W6.js";
14
+ } from "../../chunk-YRXG2UK7.js";
15
15
  import {
16
16
  AlertDialog,
17
17
  AlertDialogAction,
@@ -35,7 +35,7 @@ import {
35
35
  scrollElementIntoView,
36
36
  useChatAttachments,
37
37
  useChatIdentity
38
- } from "../../chunk-Z4RUSQES.js";
38
+ } from "../../chunk-S7HJ3IRR.js";
39
39
  import {
40
40
  toast
41
41
  } from "../../chunk-UXJCZOLA.js";