@flamingo-stack/openframe-frontend-core 0.0.297 → 0.0.298

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 (75) hide show
  1. package/dist/{chunk-IL47XWV5.js → chunk-3LQWMUHJ.js} +2 -2
  2. package/dist/{chunk-YBYI62OE.cjs → chunk-57HYFVTZ.cjs} +26 -26
  3. package/dist/{chunk-YBYI62OE.cjs.map → chunk-57HYFVTZ.cjs.map} +1 -1
  4. package/dist/{chunk-PC746XCO.js → chunk-5MLYCLOI.js} +3 -3
  5. package/dist/chunk-5MLYCLOI.js.map +1 -0
  6. package/dist/{chunk-FCDQNTDG.cjs → chunk-67WXHSCX.cjs} +9 -9
  7. package/dist/{chunk-FCDQNTDG.cjs.map → chunk-67WXHSCX.cjs.map} +1 -1
  8. package/dist/{chunk-GUTS7HGA.cjs → chunk-BL6XZ2XD.cjs} +3 -3
  9. package/dist/chunk-BL6XZ2XD.cjs.map +1 -0
  10. package/dist/{chunk-AD6C23QY.js → chunk-DVHQGII5.js} +2 -2
  11. package/dist/{chunk-SA2WPJVO.js → chunk-N4DEX22O.js} +2 -2
  12. package/dist/{chunk-X4DOXQRT.js → chunk-NEVMYN4G.js} +2 -2
  13. package/dist/{chunk-F5OB2YAL.cjs → chunk-PLNR6BHN.cjs} +7 -7
  14. package/dist/{chunk-F5OB2YAL.cjs.map → chunk-PLNR6BHN.cjs.map} +1 -1
  15. package/dist/{chunk-UNVE2SDJ.cjs → chunk-PQEQUMSS.cjs} +16 -16
  16. package/dist/{chunk-UNVE2SDJ.cjs.map → chunk-PQEQUMSS.cjs.map} +1 -1
  17. package/dist/{chunk-6C526VNN.cjs → chunk-Q77BDAR7.cjs} +30 -30
  18. package/dist/chunk-Q77BDAR7.cjs.map +1 -0
  19. package/dist/{chunk-3JIQVE7T.js → chunk-QE5CNWPF.js} +2 -2
  20. package/dist/{chunk-4TLE6VLU.js → chunk-RY62M66O.js} +2 -2
  21. package/dist/{chunk-PWQUAVA3.js → chunk-WDWGFUT2.js} +5 -5
  22. package/dist/chunk-WDWGFUT2.js.map +1 -0
  23. package/dist/{chunk-4PSQS3SW.cjs → chunk-X26HXH3L.cjs} +5 -5
  24. package/dist/{chunk-4PSQS3SW.cjs.map → chunk-X26HXH3L.cjs.map} +1 -1
  25. package/dist/{chunk-53FUMSZ5.cjs → chunk-XG2KGQ76.cjs} +37 -37
  26. package/dist/{chunk-53FUMSZ5.cjs.map → chunk-XG2KGQ76.cjs.map} +1 -1
  27. package/dist/{chunk-L7ULJKG7.js → chunk-XKIO5K5N.js} +2 -2
  28. package/dist/{chunk-7OVGB2DQ.cjs → chunk-ZUXADRGJ.cjs} +12 -12
  29. package/dist/{chunk-7OVGB2DQ.cjs.map → chunk-ZUXADRGJ.cjs.map} +1 -1
  30. package/dist/components/case-studies/index.cjs +8 -8
  31. package/dist/components/case-studies/index.js +2 -2
  32. package/dist/components/chat/guide-welcome.d.ts.map +1 -1
  33. package/dist/components/chat/index.cjs +2 -2
  34. package/dist/components/chat/index.js +1 -1
  35. package/dist/components/contact/index.cjs +3 -3
  36. package/dist/components/contact/index.js +2 -2
  37. package/dist/components/docs/index.cjs +5 -5
  38. package/dist/components/docs/index.js +4 -4
  39. package/dist/components/embeds/index.cjs +3 -3
  40. package/dist/components/embeds/index.js +2 -2
  41. package/dist/components/faq/index.cjs +3 -3
  42. package/dist/components/faq/index.js +2 -2
  43. package/dist/components/features/index.cjs +2 -2
  44. package/dist/components/features/index.js +1 -1
  45. package/dist/components/index.cjs +172 -172
  46. package/dist/components/index.js +8 -8
  47. package/dist/components/navigation/index.cjs +2 -2
  48. package/dist/components/navigation/index.js +1 -1
  49. package/dist/components/onboarding-guides/index.cjs +23 -23
  50. package/dist/components/onboarding-guides/index.js +3 -3
  51. package/dist/components/related-content/index.cjs +3 -3
  52. package/dist/components/related-content/index.js +2 -2
  53. package/dist/components/tickets/index.cjs +60 -60
  54. package/dist/components/tickets/index.js +3 -3
  55. package/dist/components/ui/index.cjs +2 -2
  56. package/dist/components/ui/index.js +1 -1
  57. package/dist/components/ui/simple-markdown-renderer.d.ts.map +1 -1
  58. package/dist/index.cjs +2 -2
  59. package/dist/index.js +1 -1
  60. package/package.json +1 -1
  61. package/src/components/chat/guide-welcome.tsx +12 -3
  62. package/src/components/docs/doc-viewer.tsx +5 -1
  63. package/src/components/ui/simple-markdown-renderer.tsx +4 -1
  64. package/src/styles/app-globals.css +24 -0
  65. package/dist/chunk-6C526VNN.cjs.map +0 -1
  66. package/dist/chunk-GUTS7HGA.cjs.map +0 -1
  67. package/dist/chunk-PC746XCO.js.map +0 -1
  68. package/dist/chunk-PWQUAVA3.js.map +0 -1
  69. /package/dist/{chunk-IL47XWV5.js.map → chunk-3LQWMUHJ.js.map} +0 -0
  70. /package/dist/{chunk-AD6C23QY.js.map → chunk-DVHQGII5.js.map} +0 -0
  71. /package/dist/{chunk-SA2WPJVO.js.map → chunk-N4DEX22O.js.map} +0 -0
  72. /package/dist/{chunk-X4DOXQRT.js.map → chunk-NEVMYN4G.js.map} +0 -0
  73. /package/dist/{chunk-3JIQVE7T.js.map → chunk-QE5CNWPF.js.map} +0 -0
  74. /package/dist/{chunk-4TLE6VLU.js.map → chunk-RY62M66O.js.map} +0 -0
  75. /package/dist/{chunk-L7ULJKG7.js.map → chunk-XKIO5K5N.js.map} +0 -0
@@ -7,11 +7,11 @@
7
7
 
8
8
 
9
9
 
10
- var _chunkUNVE2SDJcjs = require('../../chunk-UNVE2SDJ.cjs');
10
+ var _chunkPQEQUMSScjs = require('../../chunk-PQEQUMSS.cjs');
11
11
  require('../../chunk-VFKQMAUF.cjs');
12
12
 
13
13
 
14
- var _chunkYBYI62OEcjs = require('../../chunk-YBYI62OE.cjs');
14
+ var _chunk57HYFVTZcjs = require('../../chunk-57HYFVTZ.cjs');
15
15
 
16
16
 
17
17
 
@@ -38,7 +38,7 @@ var _chunkYBYI62OEcjs = require('../../chunk-YBYI62OE.cjs');
38
38
 
39
39
 
40
40
 
41
- var _chunkGUTS7HGAcjs = require('../../chunk-GUTS7HGA.cjs');
41
+ var _chunkBL6XZ2XDcjs = require('../../chunk-BL6XZ2XD.cjs');
42
42
 
43
43
 
44
44
 
@@ -108,7 +108,7 @@ function TicketOpenForm({
108
108
  }) {
109
109
  const [subject, setSubject] = _react.useState.call(void 0, "");
110
110
  const [content, setContent] = _react.useState.call(void 0, "");
111
- const { attachments, readyAttachments, hasInflightUploads, addFiles, removeAttachment, clear } = _chunkGUTS7HGAcjs.useChatAttachments.call(void 0, );
111
+ const { attachments, readyAttachments, hasInflightUploads, addFiles, removeAttachment, clear } = _chunkBL6XZ2XDcjs.useChatAttachments.call(void 0, );
112
112
  const trimmedSubject = subject.trim();
113
113
  const trimmedContent = content.trim();
114
114
  const overCap = content.length > TICKET_TEXT_MAX_CHARS;
@@ -128,7 +128,7 @@ function TicketOpenForm({
128
128
  clear();
129
129
  }
130
130
  };
131
- return /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkGUTS7HGAcjs.Card, { className: "p-6", children: /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "form", { onSubmit: handleSubmit, className: "flex flex-col md:flex-row gap-6", children: [
131
+ return /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkBL6XZ2XDcjs.Card, { className: "p-6", children: /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "form", { onSubmit: handleSubmit, className: "flex flex-col md:flex-row gap-6", children: [
132
132
  /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: "flex-1 min-w-0 md:max-w-md", children: [
133
133
  /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "h2", { className: "text-2xl font-semibold text-ods-text-primary mb-2", children: "Need Support?" }),
134
134
  /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "p", { className: "text-ods-text-secondary text-sm", children: "Can't find what you're looking for? Submit a support ticket below \u2014 we'll follow up shortly." }),
@@ -167,7 +167,7 @@ function TicketOpenForm({
167
167
  }
168
168
  ),
169
169
  /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
170
- _chunkGUTS7HGAcjs.Textarea,
170
+ _chunkBL6XZ2XDcjs.Textarea,
171
171
  {
172
172
  id: "ticket-content",
173
173
  placeholder: "Describe your issue or question in detail...",
@@ -191,7 +191,7 @@ function TicketOpenForm({
191
191
  )
192
192
  ] }),
193
193
  /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
194
- _chunkGUTS7HGAcjs.ChatAttachmentChipStrip,
194
+ _chunkBL6XZ2XDcjs.ChatAttachmentChipStrip,
195
195
  {
196
196
  attachments,
197
197
  onRemove: removeAttachment,
@@ -200,7 +200,7 @@ function TicketOpenForm({
200
200
  ),
201
201
  /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: "flex items-center justify-between gap-3", children: [
202
202
  /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
203
- _chunkGUTS7HGAcjs.ChatAttachmentAddButton,
203
+ _chunkBL6XZ2XDcjs.ChatAttachmentAddButton,
204
204
  {
205
205
  attachmentsEnabled: !supportSystemDown,
206
206
  attachmentsCount: attachments.length,
@@ -238,7 +238,7 @@ var _usesticktobottom = require('use-stick-to-bottom');
238
238
 
239
239
  var LIST_ENGAGEMENTS_ENDPOINT = "/api/chat/agent/list-engagements";
240
240
  function useTicketEngagements(externalTicketId, enabled = true, refetchInterval = false) {
241
- const identity = _chunkGUTS7HGAcjs.useChatIdentity.call(void 0, );
241
+ const identity = _chunkBL6XZ2XDcjs.useChatIdentity.call(void 0, );
242
242
  const identityKey = _nullishCoalesce(_optionalChain([identity, 'access', _2 => _2.user, 'optionalAccess', _3 => _3.email]), () => ( "anon"));
243
243
  const listEngagementsEndpoint = _nullishCoalesce(_chunkL6PSSIUQcjs.useRequiredChatRuntime.call(void 0, ).endpoints.listEngagementsUrl, () => ( LIST_ENGAGEMENTS_ENDPOINT));
244
244
  const fetchable = enabled && !!externalTicketId && !externalTicketId.startsWith("temp-");
@@ -320,7 +320,7 @@ function TicketLinkedDeliveryCard({
320
320
  {
321
321
  className: `rounded-md border border-ods-border bg-ods-bg overflow-hidden ${_nullishCoalesce(className, () => ( ""))}`,
322
322
  children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
323
- _chunkUNVE2SDJcjs.DeliveryRow,
323
+ _chunkPQEQUMSScjs.DeliveryRow,
324
324
  {
325
325
  item,
326
326
  href: clickup.delivery_href,
@@ -344,7 +344,7 @@ function TicketReplyComposer({
344
344
  }) {
345
345
  const [resolution, setResolution] = _react.useState.call(void 0, "");
346
346
  const [closeDialogOpen, setCloseDialogOpen] = _react.useState.call(void 0, false);
347
- const attachments = _chunkGUTS7HGAcjs.useChatAttachments.call(void 0, );
347
+ const attachments = _chunkBL6XZ2XDcjs.useChatAttachments.call(void 0, );
348
348
  const ticketRef = { id: ticket.id, external_id: ticket.external_id };
349
349
  const hasReadyFiles = attachments.readyAttachments.length > 0;
350
350
  const handleSend = _react.useCallback.call(void 0,
@@ -372,7 +372,7 @@ function TicketReplyComposer({
372
372
  const disabled = busy || supportSystemDown;
373
373
  return /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: "flex flex-col gap-2", children: [
374
374
  /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
375
- _chunkGUTS7HGAcjs.ChatAttachmentChipStrip,
375
+ _chunkBL6XZ2XDcjs.ChatAttachmentChipStrip,
376
376
  {
377
377
  attachments: attachments.attachments,
378
378
  onRemove: attachments.removeAttachment,
@@ -381,7 +381,7 @@ function TicketReplyComposer({
381
381
  }
382
382
  ),
383
383
  /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
384
- _chunkGUTS7HGAcjs.ChatInput,
384
+ _chunkBL6XZ2XDcjs.ChatInput,
385
385
  {
386
386
  fullWidth: true,
387
387
  autoFocus: true,
@@ -395,7 +395,7 @@ function TicketReplyComposer({
395
395
  ),
396
396
  /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: "flex items-center gap-2 w-full", children: [
397
397
  !supportSystemDown && /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
398
- _chunkGUTS7HGAcjs.ChatAttachmentAddButton,
398
+ _chunkBL6XZ2XDcjs.ChatAttachmentAddButton,
399
399
  {
400
400
  attachmentsEnabled: true,
401
401
  attachmentsCount: attachments.attachments.length,
@@ -418,13 +418,13 @@ function TicketReplyComposer({
418
418
  }
419
419
  )
420
420
  ] }),
421
- /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkGUTS7HGAcjs.AlertDialog, { open: closeDialogOpen, onOpenChange: setCloseDialogOpen, children: /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, _chunkGUTS7HGAcjs.AlertDialogContent, { className: "bg-ods-card border-ods-border", children: [
422
- /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, _chunkGUTS7HGAcjs.AlertDialogHeader, { children: [
423
- /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkGUTS7HGAcjs.AlertDialogTitle, { className: "text-ods-text-primary", children: "Close this ticket?" }),
424
- /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkGUTS7HGAcjs.AlertDialogDescription, { className: "text-ods-text-secondary", children: "Add an optional resolution note below. You can reopen the ticket later if needed." })
421
+ /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkBL6XZ2XDcjs.AlertDialog, { open: closeDialogOpen, onOpenChange: setCloseDialogOpen, children: /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, _chunkBL6XZ2XDcjs.AlertDialogContent, { className: "bg-ods-card border-ods-border", children: [
422
+ /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, _chunkBL6XZ2XDcjs.AlertDialogHeader, { children: [
423
+ /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkBL6XZ2XDcjs.AlertDialogTitle, { className: "text-ods-text-primary", children: "Close this ticket?" }),
424
+ /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkBL6XZ2XDcjs.AlertDialogDescription, { className: "text-ods-text-secondary", children: "Add an optional resolution note below. You can reopen the ticket later if needed." })
425
425
  ] }),
426
426
  /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
427
- _chunkGUTS7HGAcjs.Textarea,
427
+ _chunkBL6XZ2XDcjs.Textarea,
428
428
  {
429
429
  value: resolution,
430
430
  onChange: (e) => setResolution(e.target.value),
@@ -434,9 +434,9 @@ function TicketReplyComposer({
434
434
  className: "mt-2"
435
435
  }
436
436
  ),
437
- /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, _chunkGUTS7HGAcjs.AlertDialogFooter, { children: [
437
+ /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, _chunkBL6XZ2XDcjs.AlertDialogFooter, { children: [
438
438
  /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
439
- _chunkGUTS7HGAcjs.AlertDialogCancel,
439
+ _chunkBL6XZ2XDcjs.AlertDialogCancel,
440
440
  {
441
441
  disabled: busy,
442
442
  className: "bg-transparent border-ods-border text-ods-text-primary hover:bg-ods-border",
@@ -444,7 +444,7 @@ function TicketReplyComposer({
444
444
  }
445
445
  ),
446
446
  /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
447
- _chunkGUTS7HGAcjs.AlertDialogAction,
447
+ _chunkBL6XZ2XDcjs.AlertDialogAction,
448
448
  {
449
449
  onClick: () => void confirmClose(),
450
450
  disabled: busy,
@@ -514,7 +514,7 @@ var TICKET_FEED_HEIGHT = "h-[60vh] md:h-[420px]";
514
514
  var TICKET_FEED_INNER = "flex flex-col gap-4 md:gap-6 px-4 md:px-6 py-4 md:py-6";
515
515
  var TICKET_FEED_SKELETON_ROWS = 6;
516
516
  function TicketTimelinePanel({ ticket }) {
517
- const identity = _chunkGUTS7HGAcjs.useChatIdentity.call(void 0, );
517
+ const identity = _chunkBL6XZ2XDcjs.useChatIdentity.call(void 0, );
518
518
  const externalId = isOptimistic(ticket) ? null : ticket.external_id;
519
519
  const { engagements, isLoading } = useTicketEngagements(
520
520
  externalId,
@@ -534,11 +534,11 @@ function TicketTimelinePanel({ ticket }) {
534
534
  const customerName = (isViewerTheCustomer ? viewerName : null) || ticketCustomerName || viewerName || _optionalChain([identity, 'access', _19 => _19.user, 'optionalAccess', _20 => _20.email]) || "You";
535
535
  const customerAvatar = isViewerTheCustomer ? _nullishCoalesce(_optionalChain([identity, 'access', _21 => _21.user, 'optionalAccess', _22 => _22.avatarUrl]), () => ( void 0)) : void 0;
536
536
  if (isLoading) {
537
- 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, _chunkGUTS7HGAcjs.ChatMessageRowSkeleton, {}, i)) }) });
537
+ 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, _chunkBL6XZ2XDcjs.ChatMessageRowSkeleton, {}, i)) }) });
538
538
  }
539
539
  if (bodyTurns.length === 0 && engagements.length === 0) {
540
540
  return /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
541
- _chunkUNVE2SDJcjs.EmptyState,
541
+ _chunkPQEQUMSScjs.EmptyState,
542
542
  {
543
543
  type: "generic",
544
544
  title: "No conversation yet",
@@ -553,7 +553,7 @@ function TicketTimelinePanel({ ticket }) {
553
553
  const isResolution = turn.startsWith("[Resolution]");
554
554
  const text = isResolution ? turn.replace(/^\[Resolution\]\s*/, "") : turn;
555
555
  return /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
556
- _chunkGUTS7HGAcjs.ChatMessageRow,
556
+ _chunkBL6XZ2XDcjs.ChatMessageRow,
557
557
  {
558
558
  displayName: customerName,
559
559
  avatarUrl: customerAvatar,
@@ -582,13 +582,13 @@ function TicketTimelinePanel({ ticket }) {
582
582
  }
583
583
  const engAttachments = mapEngagementAttachments(eng.attachments);
584
584
  return /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
585
- _chunkGUTS7HGAcjs.ChatMessageRow,
585
+ _chunkBL6XZ2XDcjs.ChatMessageRow,
586
586
  {
587
587
  displayName: author,
588
588
  avatarUrl: avatarSrc,
589
- timeLabel: eng.createdAt ? _chunkGUTS7HGAcjs.formatRelativeTime.call(void 0, eng.createdAt) : null,
589
+ timeLabel: eng.createdAt ? _chunkBL6XZ2XDcjs.formatRelativeTime.call(void 0, eng.createdAt) : null,
590
590
  body: stripAttachmentsPreamble(_nullishCoalesce(eng.body, () => ( ""))),
591
- footer: engAttachments.length > 0 ? /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: "mt-2", children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkGUTS7HGAcjs.TicketAttachmentsList, { attachments: engAttachments, size: "compact" }) }) : null
591
+ footer: engAttachments.length > 0 ? /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: "mt-2", children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkBL6XZ2XDcjs.TicketAttachmentsList, { attachments: engAttachments, size: "compact" }) }) : null
592
592
  },
593
593
  eng.id
594
594
  );
@@ -676,7 +676,7 @@ function AssignedAgentRow({
676
676
  /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "span", { className: "text-ods-text-secondary uppercase tracking-wider font-medium", children: "Assigned to" }),
677
677
  displayLabel ? /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "span", { className: "flex items-center gap-1.5 text-ods-text-primary font-medium", children: [
678
678
  /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
679
- _chunkGUTS7HGAcjs.SquareAvatar,
679
+ _chunkBL6XZ2XDcjs.SquareAvatar,
680
680
  {
681
681
  size: "sm",
682
682
  variant: "round",
@@ -734,7 +734,7 @@ function TicketRow({
734
734
  // so the badge accurately reflects "Closed" with a checkmark.
735
735
  statusLabel: _nullishCoalesce(ticket.pipeline_stage_label, () => ( void 0)),
736
736
  category: _nullishCoalesce(ticket.customer_company, () => ( void 0)),
737
- timeAgo: ticket.hubspot_updated_at ? _chunkGUTS7HGAcjs.formatRelativeTime.call(void 0, ticket.hubspot_updated_at) : void 0,
737
+ timeAgo: ticket.hubspot_updated_at ? _chunkBL6XZ2XDcjs.formatRelativeTime.call(void 0, ticket.hubspot_updated_at) : void 0,
738
738
  // Linked-work chip: surfaced whenever the ticket has a linked
739
739
  // ClickUp task. Uses the linked task's own status so the chip text
740
740
  // reads "Working" / "Waiting on version release" / etc. — useful
@@ -749,7 +749,7 @@ function TicketRow({
749
749
  className: "border-b border-ods-border last:border-b-0",
750
750
  children: [
751
751
  /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
752
- _chunkGUTS7HGAcjs.ChatTicketItem,
752
+ _chunkBL6XZ2XDcjs.ChatTicketItem,
753
753
  {
754
754
  ticket: tileData,
755
755
  onClick: optimistic ? void 0 : handleClick,
@@ -1319,13 +1319,13 @@ function resolveErrorCode(bodyCode, status) {
1319
1319
  // src/components/tickets/ticket-center.tsx
1320
1320
 
1321
1321
  function TicketCenter({ toast: toast2 = _chunkWMSTJAZTcjs.toast } = {}) {
1322
- const identity = _chunkGUTS7HGAcjs.useChatIdentity.call(void 0, );
1322
+ const identity = _chunkBL6XZ2XDcjs.useChatIdentity.call(void 0, );
1323
1323
  if (identity.isLoading) {
1324
1324
  return /* @__PURE__ */ _jsxruntime.jsx.call(void 0, TicketCenterSkeleton, {});
1325
1325
  }
1326
1326
  if (identity.authTier === "anon" || !_optionalChain([identity, 'access', _58 => _58.user, 'optionalAccess', _59 => _59.email])) {
1327
1327
  return /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
1328
- _chunkUNVE2SDJcjs.EmptyState,
1328
+ _chunkPQEQUMSScjs.EmptyState,
1329
1329
  {
1330
1330
  type: "generic",
1331
1331
  title: "Sign in to manage tickets",
@@ -1396,7 +1396,7 @@ function TicketCenterAuthed({
1396
1396
  /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: "flex items-center gap-3 text-xs text-ods-text-secondary", children: [
1397
1397
  lastUpdatedAt && /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "span", { children: [
1398
1398
  "Updated ",
1399
- _chunkGUTS7HGAcjs.formatRelativeTime.call(void 0, new Date(lastUpdatedAt))
1399
+ _chunkBL6XZ2XDcjs.formatRelativeTime.call(void 0, new Date(lastUpdatedAt))
1400
1400
  ] }),
1401
1401
  /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
1402
1402
  _chunkFQOTC3UUcjs.Button,
@@ -1412,18 +1412,18 @@ function TicketCenterAuthed({
1412
1412
  )
1413
1413
  ] })
1414
1414
  ] }),
1415
- isLoading ? /* @__PURE__ */ _jsxruntime.jsx.call(void 0, TicketListSkeleton, {}) : merged.length === 0 ? /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkGUTS7HGAcjs.Card, { className: "p-6", children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
1416
- _chunkUNVE2SDJcjs.EmptyState,
1415
+ isLoading ? /* @__PURE__ */ _jsxruntime.jsx.call(void 0, TicketListSkeleton, {}) : merged.length === 0 ? /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkBL6XZ2XDcjs.Card, { className: "p-6", children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
1416
+ _chunkPQEQUMSScjs.EmptyState,
1417
1417
  {
1418
1418
  type: "generic",
1419
1419
  title: "No tickets yet",
1420
1420
  description: "Open one above to start the conversation.",
1421
1421
  showCTA: false
1422
1422
  }
1423
- ) }) : /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkGUTS7HGAcjs.Card, { className: "overflow-hidden", children: merged.map((ticket) => /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
1423
+ ) }) : /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkBL6XZ2XDcjs.Card, { className: "overflow-hidden", children: merged.map((ticket) => /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
1424
1424
  TicketRow,
1425
1425
  {
1426
- id: _chunkGUTS7HGAcjs.devSectionAnchorId.call(void 0, "ticket", ticket.external_id),
1426
+ id: _chunkBL6XZ2XDcjs.devSectionAnchorId.call(void 0, "ticket", ticket.external_id),
1427
1427
  ticket,
1428
1428
  expanded: expandedTicketId === ticket.id,
1429
1429
  onToggle: toggleRow,
@@ -1441,7 +1441,7 @@ function TicketCenterAuthed({
1441
1441
  }
1442
1442
  function TicketCenterSkeleton() {
1443
1443
  return /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: "flex flex-col gap-6", children: [
1444
- /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, _chunkGUTS7HGAcjs.Card, { className: "p-6", children: [
1444
+ /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, _chunkBL6XZ2XDcjs.Card, { className: "p-6", children: [
1445
1445
  /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkFQOTC3UUcjs.Skeleton, { className: "h-7 w-48 mb-4" }),
1446
1446
  /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkFQOTC3UUcjs.Skeleton, { className: "h-10 w-full mb-3" }),
1447
1447
  /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkFQOTC3UUcjs.Skeleton, { className: "h-24 w-full" })
@@ -1450,7 +1450,7 @@ function TicketCenterSkeleton() {
1450
1450
  ] });
1451
1451
  }
1452
1452
  function TicketListSkeleton() {
1453
- return /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkGUTS7HGAcjs.Card, { className: "overflow-hidden", children: [0, 1, 2].map((i) => /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: "h-20 px-4 flex items-center gap-4 border-b border-ods-border last:border-b-0", children: [
1453
+ return /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkBL6XZ2XDcjs.Card, { className: "overflow-hidden", children: [0, 1, 2].map((i) => /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: "h-20 px-4 flex items-center gap-4 border-b border-ods-border last:border-b-0", children: [
1454
1454
  /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: "flex-1 flex flex-col gap-2", children: [
1455
1455
  /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkFQOTC3UUcjs.Skeleton, { className: "h-4 w-2/3" }),
1456
1456
  /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkFQOTC3UUcjs.Skeleton, { className: "h-3 w-full" })
@@ -1463,7 +1463,7 @@ function TicketListSkeleton() {
1463
1463
  // src/components/tickets/help-center-list.tsx
1464
1464
 
1465
1465
 
1466
- _chunkUNVE2SDJcjs.init_unified_pagination.call(void 0, );
1466
+ _chunkPQEQUMSScjs.init_unified_pagination.call(void 0, );
1467
1467
 
1468
1468
  // src/components/tickets/help-center-card.tsx
1469
1469
 
@@ -1485,7 +1485,7 @@ function HelpCenterCard({
1485
1485
  const optimistic = isOptimistic(ticket);
1486
1486
  const rawStatus = (_nullishCoalesce(ticket.status, () => ( "OPEN"))).toUpperCase();
1487
1487
  const priority = (_nullishCoalesce(ticket.priority, () => ( ""))).toUpperCase();
1488
- const relativeUpdated = ticket.hubspot_updated_at ? _chunkGUTS7HGAcjs.formatRelativeTime.call(void 0, ticket.hubspot_updated_at) : "recently";
1488
+ const relativeUpdated = ticket.hubspot_updated_at ? _chunkBL6XZ2XDcjs.formatRelativeTime.call(void 0, ticket.hubspot_updated_at) : "recently";
1489
1489
  const title = (ticket.subject || "").trim() || "(untitled)";
1490
1490
  const subtitle = `UPDATED ${relativeUpdated}, #${ticket.external_id || "\u2014"}${ticket.pipeline_stage_label ? `, ${ticket.pipeline_stage_label}` : ""}`;
1491
1491
  const description = _nullishCoalesce(_nullishCoalesce(ticket.preview, () => ( ticket.body)), () => ( ""));
@@ -1506,16 +1506,16 @@ function HelpCenterCard({
1506
1506
  }, [isExpanded]);
1507
1507
  const rightBadges = /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, _jsxruntime.Fragment, { children: [
1508
1508
  /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
1509
- _chunkGUTS7HGAcjs.StatusBadge,
1509
+ _chunkBL6XZ2XDcjs.StatusBadge,
1510
1510
  {
1511
1511
  text: rawStatus,
1512
- colorScheme: _chunkGUTS7HGAcjs.getStatusColorScheme.call(void 0, rawStatus),
1512
+ colorScheme: _chunkBL6XZ2XDcjs.getStatusColorScheme.call(void 0, rawStatus),
1513
1513
  variant: "card",
1514
1514
  className: "border border-ods-border"
1515
1515
  }
1516
1516
  ),
1517
1517
  priority && /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
1518
- _chunkGUTS7HGAcjs.StatusBadge,
1518
+ _chunkBL6XZ2XDcjs.StatusBadge,
1519
1519
  {
1520
1520
  text: priority,
1521
1521
  colorScheme: mapPriorityScheme(priority),
@@ -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
- _chunkUNVE2SDJcjs.DevCardRowContent,
1546
+ _chunkPQEQUMSScjs.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, _chunkGUTS7HGAcjs.Label, { htmlFor: "help-center-subject", children: [
1621
+ /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, _chunkBL6XZ2XDcjs.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
- _chunkYBYI62OEcjs.ContactForm,
1653
+ _chunk57HYFVTZcjs.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 = _chunkWMSTJAZTcjs.toast, backButton } = {}) {
1691
- const identity = _chunkGUTS7HGAcjs.useChatIdentity.call(void 0, );
1691
+ const identity = _chunkBL6XZ2XDcjs.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 = _chunkWMSTJAZTcjs.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, _chunkUNVE2SDJcjs.DevSectionPage, { sectionKey: "tickets", backButton, preControls: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, HelpCenterCreateFormSkeleton, {}), children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkUNVE2SDJcjs.DevCardRowSkeletonList, {}) });
1701
+ return /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkPQEQUMSScjs.DevSectionPage, { sectionKey: "tickets", backButton, preControls: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, HelpCenterCreateFormSkeleton, {}), children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkPQEQUMSScjs.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, _chunkUNVE2SDJcjs.DevSectionPage, { sectionKey: "tickets", backButton, children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
1705
- _chunkUNVE2SDJcjs.EmptyState,
1704
+ return /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkPQEQUMSScjs.DevSectionPage, { sectionKey: "tickets", backButton, children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
1705
+ _chunkPQEQUMSScjs.EmptyState,
1706
1706
  {
1707
1707
  type: "generic",
1708
1708
  title: "Sign in to manage tickets",
@@ -1830,15 +1830,15 @@ function HelpCenterListAuthed({
1830
1830
  ] }),
1831
1831
  /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkFQOTC3UUcjs.Button, { type: "button", variant: "accent", onClick: () => refetch(), children: "Retry" })
1832
1832
  ] }),
1833
- !error && /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: "w-full", children: isLoading ? /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkUNVE2SDJcjs.DevCardRowSkeletonList, {}) : !hasResults && isFetching ? (
1833
+ !error && /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: "w-full", children: isLoading ? /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkPQEQUMSScjs.DevCardRowSkeletonList, {}) : !hasResults && isFetching ? (
1834
1834
  // Bridge state — background refetch in flight and the
1835
1835
  // optimistic placeholder was just removed by the mutation
1836
1836
  // callback. Without this branch "No tickets yet" would flash
1837
1837
  // for ~50ms between `removeOptimistic` and the server
1838
1838
  // response landing.
1839
- /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkUNVE2SDJcjs.DevCardRowSkeletonList, { rows: 1 })
1839
+ /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkPQEQUMSScjs.DevCardRowSkeletonList, { rows: 1 })
1840
1840
  ) : !hasResults ? hasActiveFilters ? /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
1841
- _chunkUNVE2SDJcjs.EmptyState,
1841
+ _chunkPQEQUMSScjs.EmptyState,
1842
1842
  {
1843
1843
  type: "search",
1844
1844
  title: "No tickets found",
@@ -1853,7 +1853,7 @@ function HelpCenterListAuthed({
1853
1853
  }
1854
1854
  }
1855
1855
  ) : /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
1856
- _chunkUNVE2SDJcjs.EmptyState,
1856
+ _chunkPQEQUMSScjs.EmptyState,
1857
1857
  {
1858
1858
  type: "generic",
1859
1859
  title: "No tickets yet",
@@ -1872,7 +1872,7 @@ function HelpCenterListAuthed({
1872
1872
  /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: "bg-ods-card border border-ods-border rounded-[6px] overflow-clip w-full", children: merged.map((ticket) => /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
1873
1873
  HelpCenterCard,
1874
1874
  {
1875
- id: _chunkGUTS7HGAcjs.devSectionAnchorId.call(void 0, "ticket", ticket.external_id),
1875
+ id: _chunkBL6XZ2XDcjs.devSectionAnchorId.call(void 0, "ticket", ticket.external_id),
1876
1876
  ticket,
1877
1877
  expanded: expandedTicketId === ticket.id,
1878
1878
  onToggle: toggleRow,
@@ -1888,9 +1888,9 @@ function HelpCenterListAuthed({
1888
1888
  ticket.id
1889
1889
  )) })
1890
1890
  ) }),
1891
- !error && totalPages > 1 && /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkUNVE2SDJcjs.UnifiedPagination, { currentPage: page, totalPages })
1891
+ !error && totalPages > 1 && /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkPQEQUMSScjs.UnifiedPagination, { currentPage: page, totalPages })
1892
1892
  ] });
1893
- return /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkUNVE2SDJcjs.DevSectionPage, { sectionKey: "tickets", backButton, preControls: form, children: body });
1893
+ return /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkPQEQUMSScjs.DevSectionPage, { sectionKey: "tickets", backButton, preControls: form, children: body });
1894
1894
  }
1895
1895
 
1896
1896
 
@@ -7,11 +7,11 @@ import {
7
7
  EmptyState,
8
8
  UnifiedPagination,
9
9
  init_unified_pagination
10
- } from "../../chunk-4TLE6VLU.js";
10
+ } from "../../chunk-RY62M66O.js";
11
11
  import "../../chunk-4XLJWX2N.js";
12
12
  import {
13
13
  ContactForm
14
- } from "../../chunk-L7ULJKG7.js";
14
+ } from "../../chunk-XKIO5K5N.js";
15
15
  import {
16
16
  AlertDialog,
17
17
  AlertDialogAction,
@@ -38,7 +38,7 @@ import {
38
38
  getStatusColorScheme,
39
39
  useChatAttachments,
40
40
  useChatIdentity
41
- } from "../../chunk-PC746XCO.js";
41
+ } from "../../chunk-5MLYCLOI.js";
42
42
  import {
43
43
  STICKY_HEADER_OFFSET_PX,
44
44
  embedAuthedFetch,