@flamingo-stack/openframe-frontend-core 0.0.854 → 0.0.856
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/build/export-map.json +1 -1
- package/dist/{case-study-card-WP5Z234Q.cjs → case-study-card-6VAMNHLU.cjs} +8 -8
- package/dist/{chunk-ZDPPNHA2.cjs → chunk-2BTEERLH.cjs} +3 -3
- package/dist/{chunk-FBANHIAG.cjs → chunk-2JCA7BRK.cjs} +19 -19
- package/dist/{chunk-GVHCQRUE.cjs → chunk-2P72KAG5.cjs} +23 -23
- package/dist/{chunk-YY3WP2YQ.cjs → chunk-3GJ75OUL.cjs} +183 -183
- package/dist/{chunk-FJXSKMQJ.cjs → chunk-4H3J57AN.cjs} +25 -25
- package/dist/{chunk-6GWRPW6B.cjs → chunk-5NK3FUHY.cjs} +4 -4
- package/dist/{chunk-DLTPSP5F.cjs → chunk-5TYG5JNB.cjs} +2 -2
- package/dist/{chunk-63ZV3UGG.cjs → chunk-65NMKAPQ.cjs} +12 -12
- package/dist/{chunk-IGVAPIEW.cjs → chunk-6C4OR4MZ.cjs} +2 -2
- package/dist/{chunk-GG466XFQ.cjs → chunk-6DMH4GXN.cjs} +30 -5
- package/dist/{chunk-2IJMHBOK.cjs → chunk-77GX573I.cjs} +9 -9
- package/dist/{chunk-O3EKOXFZ.cjs → chunk-AYMY2VNB.cjs} +37 -43
- package/dist/{chunk-JKBNK5U6.cjs → chunk-D6GEMVHD.cjs} +3 -3
- package/dist/{chunk-SSKMGH5O.cjs → chunk-DXVGGWLG.cjs} +10 -10
- package/dist/{chunk-S5P6CF5R.cjs → chunk-E5OQHFM6.cjs} +54 -54
- package/dist/{chunk-5TXE7BXT.cjs → chunk-EOUEUYCQ.cjs} +54 -54
- package/dist/{chunk-EIHMPQRQ.cjs → chunk-ESGE7CUX.cjs} +14 -14
- package/dist/{chunk-ETZFBB7O.cjs → chunk-EXQSIX2I.cjs} +4 -4
- package/dist/{chunk-3WXHPD6N.cjs → chunk-F33EAPD2.cjs} +124 -124
- package/dist/{chunk-4SSJ3T3N.cjs → chunk-GK577ZLJ.cjs} +3 -13
- package/dist/{chunk-ETQNMR2K.cjs → chunk-GTUQGVXH.cjs} +8 -8
- package/dist/{chunk-7MOBD44H.cjs → chunk-HGM7WDJT.cjs} +28 -28
- package/dist/{chunk-VMAOZA2V.cjs → chunk-HML3JUXF.cjs} +324 -322
- package/dist/{chunk-4O5N5CGK.cjs → chunk-J3CFRGZ2.cjs} +17 -17
- package/dist/{chunk-LQDAB5V5.cjs → chunk-KZAQPRTA.cjs} +9 -11
- package/dist/{chunk-6DCUGIGU.cjs → chunk-LSLRJJFP.cjs} +2 -2
- package/dist/{chunk-ONYANAMA.cjs → chunk-MX52LZ6M.cjs} +6 -6
- package/dist/{chunk-OH5TXFRR.cjs → chunk-O4CPT3RK.cjs} +7 -7
- package/dist/{chunk-BAA3YCLT.cjs → chunk-OW5MQKCI.cjs} +103 -103
- package/dist/{chunk-5HMENXSR.cjs → chunk-PCQ2HKU3.cjs} +5 -5
- package/dist/{chunk-D2XGRWPW.cjs → chunk-QLFNMWBP.cjs} +90 -90
- package/dist/{chunk-UPQ4MAR7.cjs → chunk-QZXCUY36.cjs} +53 -53
- package/dist/{chunk-KKFDRCQF.cjs → chunk-RY7INTYU.cjs} +14 -1
- package/dist/{chunk-PRJZMZ3X.cjs → chunk-SJZWVMBF.cjs} +678 -678
- package/dist/{chunk-GI3MMBP3.cjs → chunk-SQ7YHWEP.cjs} +228 -15
- package/dist/{chunk-ACPOJE32.cjs → chunk-STV6VJ3U.cjs} +21 -21
- package/dist/{chunk-QD727QFI.cjs → chunk-T54I5ZZY.cjs} +7 -7
- package/dist/{chunk-4LTLEUY5.cjs → chunk-TW5Y4D5I.cjs} +7 -7
- package/dist/{chunk-6XU3RCK3.cjs → chunk-UHGARY3S.cjs} +27 -27
- package/dist/{chunk-7J5NSWJG.cjs → chunk-UZIGMLTH.cjs} +100 -100
- package/dist/{chunk-FX35L4Y6.cjs → chunk-XCQ5I27Z.cjs} +3 -3
- package/dist/{chunk-5OENPMRU.cjs → chunk-XI3AMOW6.cjs} +65 -62
- package/dist/{chunk-TMPLHUUU.cjs → chunk-XTLMWLFB.cjs} +6 -6
- package/dist/{chunk-AZEO7HBB.cjs → chunk-Y44EF4JW.cjs} +2 -2
- package/dist/{chunk-RMI6O3AE.cjs → chunk-YB244RRB.cjs} +36 -36
- package/dist/{chunk-KA3L6D5N.cjs → chunk-YSXVRTGT.cjs} +9 -12
- package/dist/{chunk-H3GBPYPS.cjs → chunk-ZYAVIRQV.cjs} +25 -25
- package/dist/{cloud-tenants-5RNK4ZAT.cjs → cloud-tenants-J5T4YL2P.cjs} +28 -29
- package/dist/components/case-studies/index.cjs +44 -45
- package/dist/components/chat/chat-message-row.d.ts +1 -1
- package/dist/components/chat/chat-message-row.d.ts.map +1 -1
- package/dist/components/chat/chat-message-row.js +4 -4
- package/dist/components/chat/entity-cards/use-cover-image-fallback.d.ts +7 -13
- package/dist/components/chat/entity-cards/use-cover-image-fallback.d.ts.map +1 -1
- package/dist/components/chat/entity-cards/use-cover-image-fallback.js +2 -8
- package/dist/components/chat/hooks/use-chat-attachment-image-gallery.d.ts.map +1 -1
- package/dist/components/chat/hooks/use-chat-attachment-image-gallery.js +8 -4
- package/dist/components/chat/index.cjs +22 -23
- package/dist/components/contact/index.cjs +29 -30
- package/dist/components/docs/index.cjs +32 -33
- package/dist/components/embeds/index.cjs +29 -30
- package/dist/components/faq/index.cjs +30 -31
- package/dist/components/features/index.cjs +28 -29
- package/dist/components/features/remote-session/remote-session-viewers.d.ts +6 -1
- package/dist/components/features/remote-session/remote-session-viewers.d.ts.map +1 -1
- package/dist/components/features/remote-session/remote-session-viewers.js +10 -3
- package/dist/components/help-center-pages/index.cjs +134 -135
- package/dist/components/index.cjs +112 -113
- package/dist/components/meeting-scheduler/index.cjs +102 -103
- package/dist/components/navigation/index.cjs +31 -32
- package/dist/components/onboarding-guides/index.cjs +31 -32
- package/dist/components/product-demo/index.cjs +39 -40
- package/dist/components/related-content/index.cjs +16 -17
- package/dist/components/tickets/index.cjs +35 -36
- package/dist/components/ui/entity-image.d.ts +1 -2
- package/dist/components/ui/entity-image.d.ts.map +1 -1
- package/dist/components/ui/entity-image.js +4 -8
- package/dist/components/ui/index.cjs +28 -29
- package/dist/components/ui/markdown/base-components.d.ts +0 -13
- package/dist/components/ui/markdown/base-components.d.ts.map +1 -1
- package/dist/components/ui/markdown/base-components.js +7 -7
- package/dist/components/ui/square-avatar.d.ts.map +1 -1
- package/dist/components/ui/square-avatar.js +3 -8
- package/dist/{devices-44O5PZOW.cjs → devices-IJDF7SSK.cjs} +29 -30
- package/dist/embed-shims/index.cjs +3 -2
- package/dist/embed-shims/next-image.cjs +3 -2
- package/dist/embed-shims/next-image.d.ts +2 -0
- package/dist/embed-shims/next-image.d.ts.map +1 -1
- package/dist/embed-shims/next-image.js +14 -4
- package/dist/{embeddable-chat-W3CLMGC3.cjs → embeddable-chat-QD7NFD2H.cjs} +100 -101
- package/dist/hooks/index.cjs +23 -16
- package/dist/hooks/index.d.ts +1 -0
- package/dist/hooks/index.d.ts.map +1 -1
- package/dist/hooks/index.js +1 -0
- package/dist/hooks/use-authed-asset-src.d.ts +77 -2
- package/dist/hooks/use-authed-asset-src.d.ts.map +1 -1
- package/dist/hooks/use-authed-asset-src.js +185 -73
- package/dist/hooks/use-authed-image-src.d.ts +11 -4
- package/dist/hooks/use-authed-image-src.d.ts.map +1 -1
- package/dist/hooks/use-authed-image-src.js +6 -2
- package/dist/hooks/use-image-fallback.d.ts +16 -0
- package/dist/hooks/use-image-fallback.d.ts.map +1 -0
- package/dist/hooks/use-image-fallback.js +14 -0
- package/dist/index.cjs +40 -36
- package/dist/{knowledge-UUU3WVO3.cjs → knowledge-5LIK6Q4E.cjs} +29 -30
- package/dist/{logs-DFHNSODA.cjs → logs-FMENCAXT.cjs} +35 -36
- package/dist/{policies-RGFUGDBP.cjs → policies-DKQEEKB4.cjs} +32 -33
- package/dist/{remote-session-U3H77HKR.cjs → remote-session-6X7CAHBC.cjs} +13 -14
- package/dist/{scripts-KOVO5DHW.cjs → scripts-4EPUIFHF.cjs} +35 -36
- package/dist/{software-update-4EKHVV5W.cjs → software-update-IMNRXBAI.cjs} +32 -33
- package/dist/{tickets-board-YIFOVMDX.cjs → tickets-board-POYZS7BW.cjs} +16 -17
- package/dist/utils/app-origins.d.ts +3 -6
- package/dist/utils/app-origins.d.ts.map +1 -1
- package/dist/utils/app-origins.js +8 -1
- package/dist/utils/embed-authed-fetch.d.ts +46 -26
- package/dist/utils/embed-authed-fetch.d.ts.map +1 -1
- package/dist/utils/embed-authed-fetch.js +24 -8
- package/dist/utils/index.cjs +4 -1
- package/dist/{video-file-player-XMOB234V.cjs → video-file-player-RIOT24NT.cjs} +3 -4
- package/package.json +1 -1
- package/src/components/chat/chat-message-row.tsx +8 -7
- package/src/components/chat/entity-cards/use-cover-image-fallback.ts +8 -28
- package/src/components/chat/hooks/use-chat-attachment-image-gallery.tsx +19 -8
- package/src/components/features/remote-session/remote-session-viewers.tsx +16 -3
- package/src/components/ui/entity-image.tsx +4 -12
- package/src/components/ui/markdown/base-components.tsx +15 -20
- package/src/components/ui/square-avatar.tsx +5 -8
- package/src/embed-shims/next-image.tsx +34 -3
- package/src/hooks/index.ts +1 -0
- package/src/hooks/use-authed-asset-src.ts +323 -107
- package/src/hooks/use-authed-image-src.ts +15 -5
- package/src/hooks/use-image-fallback.ts +31 -0
- package/src/utils/app-origins.ts +12 -7
- package/src/utils/embed-authed-fetch.ts +71 -32
- package/dist/chunk-YSDB6HGQ.cjs +0 -102
|
@@ -1,21 +1,21 @@
|
|
|
1
1
|
"use strict";Object.defineProperty(exports, "__esModule", {value: true}); function _interopRequireWildcard(obj) { if (obj && obj.__esModule) { return obj; } else { var newObj = {}; if (obj != null) { for (var key in obj) { if (Object.prototype.hasOwnProperty.call(obj, key)) { newObj[key] = obj[key]; } } } newObj.default = obj; return newObj; } } function _nullishCoalesce(lhs, rhsFn) { if (lhs != null) { return lhs; } else { return rhsFn(); } } function _optionalChain(ops) { let lastAccessLHS = undefined; let value = ops[0]; let i = 1; while (i < ops.length) { const op = ops[i]; const fn = ops[i + 1]; i += 2; if ((op === 'optionalAccess' || op === 'optionalCall') && value == null) { return undefined; } if (op === 'access' || op === 'optionalAccess') { lastAccessLHS = value; value = fn(value); } else if (op === 'call' || op === 'optionalCall') { value = fn((...args) => value.call(lastAccessLHS, ...args)); lastAccessLHS = undefined; } } return value; }"use client";
|
|
2
2
|
|
|
3
3
|
|
|
4
|
-
var
|
|
4
|
+
var _chunkHGM7WDJTcjs = require('./chunk-HGM7WDJT.cjs');
|
|
5
5
|
|
|
6
6
|
|
|
7
7
|
|
|
8
8
|
|
|
9
9
|
|
|
10
10
|
|
|
11
|
-
var
|
|
11
|
+
var _chunkUHGARY3Scjs = require('./chunk-UHGARY3S.cjs');
|
|
12
12
|
|
|
13
13
|
|
|
14
14
|
|
|
15
|
-
var
|
|
15
|
+
var _chunk5NK3FUHYcjs = require('./chunk-5NK3FUHY.cjs');
|
|
16
16
|
|
|
17
17
|
|
|
18
|
-
var
|
|
18
|
+
var _chunkMX52LZ6Mcjs = require('./chunk-MX52LZ6M.cjs');
|
|
19
19
|
|
|
20
20
|
|
|
21
21
|
|
|
@@ -28,11 +28,11 @@ var _chunkONYANAMAcjs = require('./chunk-ONYANAMA.cjs');
|
|
|
28
28
|
|
|
29
29
|
|
|
30
30
|
|
|
31
|
-
var
|
|
31
|
+
var _chunkSJZWVMBFcjs = require('./chunk-SJZWVMBF.cjs');
|
|
32
32
|
|
|
33
33
|
|
|
34
34
|
|
|
35
|
-
var
|
|
35
|
+
var _chunkQZXCUY36cjs = require('./chunk-QZXCUY36.cjs');
|
|
36
36
|
|
|
37
37
|
|
|
38
38
|
|
|
@@ -40,25 +40,25 @@ var _chunkUPQ4MAR7cjs = require('./chunk-UPQ4MAR7.cjs');
|
|
|
40
40
|
|
|
41
41
|
|
|
42
42
|
|
|
43
|
-
var
|
|
43
|
+
var _chunkF33EAPD2cjs = require('./chunk-F33EAPD2.cjs');
|
|
44
44
|
|
|
45
45
|
|
|
46
46
|
|
|
47
47
|
|
|
48
48
|
|
|
49
49
|
|
|
50
|
-
var
|
|
50
|
+
var _chunkHML3JUXFcjs = require('./chunk-HML3JUXF.cjs');
|
|
51
51
|
|
|
52
52
|
|
|
53
|
-
var
|
|
53
|
+
var _chunk65NMKAPQcjs = require('./chunk-65NMKAPQ.cjs');
|
|
54
54
|
|
|
55
55
|
|
|
56
|
-
var
|
|
56
|
+
var _chunkSTV6VJ3Ucjs = require('./chunk-STV6VJ3U.cjs');
|
|
57
57
|
|
|
58
58
|
|
|
59
59
|
|
|
60
60
|
|
|
61
|
-
var
|
|
61
|
+
var _chunk77GX573Icjs = require('./chunk-77GX573I.cjs');
|
|
62
62
|
|
|
63
63
|
|
|
64
64
|
var _chunkJKX2C3I2cjs = require('./chunk-JKX2C3I2.cjs');
|
|
@@ -69,15 +69,15 @@ var _chunkJKX2C3I2cjs = require('./chunk-JKX2C3I2.cjs');
|
|
|
69
69
|
var _chunk7DNL734Scjs = require('./chunk-7DNL734S.cjs');
|
|
70
70
|
|
|
71
71
|
|
|
72
|
-
var
|
|
72
|
+
var _chunk3GJ75OULcjs = require('./chunk-3GJ75OUL.cjs');
|
|
73
73
|
|
|
74
74
|
|
|
75
|
-
var
|
|
75
|
+
var _chunkYSXVRTGTcjs = require('./chunk-YSXVRTGT.cjs');
|
|
76
76
|
|
|
77
77
|
|
|
78
78
|
|
|
79
79
|
|
|
80
|
-
var
|
|
80
|
+
var _chunkAYMY2VNBcjs = require('./chunk-AYMY2VNB.cjs');
|
|
81
81
|
|
|
82
82
|
|
|
83
83
|
|
|
@@ -85,7 +85,7 @@ var _chunkO3EKOXFZcjs = require('./chunk-O3EKOXFZ.cjs');
|
|
|
85
85
|
var _chunkBLH2SFOOcjs = require('./chunk-BLH2SFOO.cjs');
|
|
86
86
|
|
|
87
87
|
|
|
88
|
-
var
|
|
88
|
+
var _chunkSQ7YHWEPcjs = require('./chunk-SQ7YHWEP.cjs');
|
|
89
89
|
|
|
90
90
|
|
|
91
91
|
|
|
@@ -155,7 +155,7 @@ var TicketActionFailure = class extends Error {
|
|
|
155
155
|
function useTicketActions(options) {
|
|
156
156
|
const queryClient = _reactquery.useQueryClient.call(void 0, );
|
|
157
157
|
const ticketActionEndpoint = _nullishCoalesce(_chunkUJ7AXHRZcjs.useRequiredChatRuntime.call(void 0, ).endpoints.ticketActionUrl, () => ( TICKET_ACTION_ENDPOINT));
|
|
158
|
-
const ticketLive =
|
|
158
|
+
const ticketLive = _chunkMX52LZ6Mcjs.useOptionalTicketLive.call(void 0, );
|
|
159
159
|
const notifyTicketCreated = _optionalChain([ticketLive, 'optionalAccess', _ => _.notifyTicketCreated]);
|
|
160
160
|
const { prependOptimistic, removeOptimistic, removeTicketFromCache, toast: toast2, onSupportSystemDown } = options;
|
|
161
161
|
const formInFlightRef = _react.useRef.call(void 0, null);
|
|
@@ -200,7 +200,7 @@ function useTicketActions(options) {
|
|
|
200
200
|
}, []);
|
|
201
201
|
const executeTicketAction = _react.useCallback.call(void 0,
|
|
202
202
|
async (toolName, args) => {
|
|
203
|
-
const res = await
|
|
203
|
+
const res = await _chunkSQ7YHWEPcjs.embedAuthedFetch.call(void 0, ticketActionEndpoint, {
|
|
204
204
|
method: "POST",
|
|
205
205
|
body: JSON.stringify({ tool_name: toolName, args })
|
|
206
206
|
});
|
|
@@ -597,7 +597,7 @@ function useTicketsList(filters) {
|
|
|
597
597
|
pageSize
|
|
598
598
|
};
|
|
599
599
|
if (statusFilter) body.status = statusFilter;
|
|
600
|
-
const response = await
|
|
600
|
+
const response = await _chunkSQ7YHWEPcjs.embedAuthedFetch.call(void 0, findTicketEndpoint, {
|
|
601
601
|
method: "POST",
|
|
602
602
|
body: JSON.stringify(body)
|
|
603
603
|
});
|
|
@@ -648,7 +648,7 @@ var COUNTER_VISIBLE_AT = Math.floor(TICKET_TEXT_MAX_CHARS * 0.8);
|
|
|
648
648
|
function TicketOpenForm({ onSubmit, isSubmitting, supportSystemDown }) {
|
|
649
649
|
const [subject, setSubject] = _react.useState.call(void 0, "");
|
|
650
650
|
const [content, setContent] = _react.useState.call(void 0, "");
|
|
651
|
-
const { attachments, readyAttachments, hasInflightUploads, addFiles, removeAttachment, clear } =
|
|
651
|
+
const { attachments, readyAttachments, hasInflightUploads, addFiles, removeAttachment, clear } = _chunkHML3JUXFcjs.useChatAttachments.call(void 0, );
|
|
652
652
|
const trimmedSubject = subject.trim();
|
|
653
653
|
const trimmedContent = content.trim();
|
|
654
654
|
const overCap = content.length > TICKET_TEXT_MAX_CHARS;
|
|
@@ -668,7 +668,7 @@ function TicketOpenForm({ onSubmit, isSubmitting, supportSystemDown }) {
|
|
|
668
668
|
clear();
|
|
669
669
|
}
|
|
670
670
|
};
|
|
671
|
-
return /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
671
|
+
return /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkAYMY2VNBcjs.Card, { className: "p-6", children: /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "form", { onSubmit: handleSubmit, className: "flex flex-col gap-6 md:flex-row", ..._chunkF33EAPD2cjs.HUBSPOT_DO_NOT_COLLECT_FORM_PROPS, children: [
|
|
672
672
|
/* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: "min-w-0 flex-1 md:max-w-md", children: [
|
|
673
673
|
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, "h2", { className: "mb-2 text-ods-text-primary text-h2", children: "Need Support?" }),
|
|
674
674
|
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, "p", { className: "text-ods-text-secondary text-h6", children: "Can't find what you're looking for? Submit a support ticket below \u2014 we'll follow up shortly." }),
|
|
@@ -693,7 +693,7 @@ function TicketOpenForm({ onSubmit, isSubmitting, supportSystemDown }) {
|
|
|
693
693
|
/* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { children: [
|
|
694
694
|
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkVCFQHPOOcjs.Label, { htmlFor: "ticket-content", className: "mb-1", children: "Your Message" }),
|
|
695
695
|
/* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
696
|
-
|
|
696
|
+
_chunkSJZWVMBFcjs.Textarea,
|
|
697
697
|
{
|
|
698
698
|
id: "ticket-content",
|
|
699
699
|
placeholder: "Describe your issue or question in detail...",
|
|
@@ -711,7 +711,7 @@ function TicketOpenForm({ onSubmit, isSubmitting, supportSystemDown }) {
|
|
|
711
711
|
] })
|
|
712
712
|
] }),
|
|
713
713
|
/* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
714
|
-
|
|
714
|
+
_chunkHML3JUXFcjs.ChatAttachmentChipStrip,
|
|
715
715
|
{
|
|
716
716
|
attachments,
|
|
717
717
|
onRemove: removeAttachment,
|
|
@@ -720,7 +720,7 @@ function TicketOpenForm({ onSubmit, isSubmitting, supportSystemDown }) {
|
|
|
720
720
|
),
|
|
721
721
|
/* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: "flex items-center justify-between gap-3", children: [
|
|
722
722
|
/* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
723
|
-
|
|
723
|
+
_chunkHML3JUXFcjs.ChatAttachmentAddButton,
|
|
724
724
|
{
|
|
725
725
|
attachmentsEnabled: !supportSystemDown,
|
|
726
726
|
attachmentsCount: attachments.length,
|
|
@@ -750,7 +750,7 @@ var _usesticktobottom = require('use-stick-to-bottom');
|
|
|
750
750
|
|
|
751
751
|
var LIST_ENGAGEMENTS_ENDPOINT = "/api/chat/agent/list-engagements";
|
|
752
752
|
function useTicketEngagements(externalTicketId, enabled = true) {
|
|
753
|
-
const identity =
|
|
753
|
+
const identity = _chunkHML3JUXFcjs.useChatIdentity.call(void 0, );
|
|
754
754
|
const identityKey = _nullishCoalesce(_optionalChain([identity, 'access', _21 => _21.user, 'optionalAccess', _22 => _22.email]), () => ( "anon"));
|
|
755
755
|
const listEngagementsEndpoint = _nullishCoalesce(_chunkUJ7AXHRZcjs.useRequiredChatRuntime.call(void 0, ).endpoints.listEngagementsUrl, () => ( LIST_ENGAGEMENTS_ENDPOINT));
|
|
756
756
|
const fetchable = enabled && !!externalTicketId && !externalTicketId.startsWith("temp-");
|
|
@@ -770,7 +770,7 @@ function useTicketEngagements(externalTicketId, enabled = true) {
|
|
|
770
770
|
// `['ticket-engagements', id]`; focus/mount refetch is the no-stream
|
|
771
771
|
// fallback.
|
|
772
772
|
queryFn: async () => {
|
|
773
|
-
const response = await
|
|
773
|
+
const response = await _chunkSQ7YHWEPcjs.embedAuthedFetch.call(void 0, listEngagementsEndpoint, {
|
|
774
774
|
method: "POST",
|
|
775
775
|
body: JSON.stringify({ ticket_id: externalTicketId })
|
|
776
776
|
});
|
|
@@ -823,7 +823,7 @@ function TicketLinkedDeliveryCard({ clickup, className }) {
|
|
|
823
823
|
dateClosed: clickup.date_closed,
|
|
824
824
|
clickupUrl: _nullishCoalesce(clickup.clickup_url, () => ( ""))
|
|
825
825
|
};
|
|
826
|
-
return /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: `${
|
|
826
|
+
return /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: `${_chunkAYMY2VNBcjs.CONTENT_CARD_SKELETON_FRAME_CLASS} ${_nullishCoalesce(className, () => ( ""))}`, children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkUHGARY3Scjs.DeliveryRow, { item, href: clickup.delivery_href, caption: "Linked delivery" }) });
|
|
827
827
|
}
|
|
828
828
|
|
|
829
829
|
// src/components/tickets/ticket-reply-composer.tsx
|
|
@@ -838,7 +838,7 @@ function TicketReplyComposer({
|
|
|
838
838
|
}) {
|
|
839
839
|
const [resolution, setResolution] = _react.useState.call(void 0, "");
|
|
840
840
|
const [closeDialogOpen, setCloseDialogOpen] = _react.useState.call(void 0, false);
|
|
841
|
-
const attachments =
|
|
841
|
+
const attachments = _chunkHML3JUXFcjs.useChatAttachments.call(void 0, );
|
|
842
842
|
const { readyAttachments, clear: clearAttachments } = attachments;
|
|
843
843
|
const ticketRef = { id: ticket.id, external_id: ticket.external_id };
|
|
844
844
|
const hasReadyFiles = readyAttachments.length > 0;
|
|
@@ -859,7 +859,7 @@ function TicketReplyComposer({
|
|
|
859
859
|
const disabled = busy || supportSystemDown;
|
|
860
860
|
return /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: "flex flex-col gap-2", children: [
|
|
861
861
|
/* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
862
|
-
|
|
862
|
+
_chunkHML3JUXFcjs.ChatAttachmentChipStrip,
|
|
863
863
|
{
|
|
864
864
|
attachments: attachments.attachments,
|
|
865
865
|
onRemove: attachments.removeAttachment,
|
|
@@ -868,7 +868,7 @@ function TicketReplyComposer({
|
|
|
868
868
|
}
|
|
869
869
|
),
|
|
870
870
|
/* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
871
|
-
|
|
871
|
+
_chunk65NMKAPQcjs.ChatInput,
|
|
872
872
|
{
|
|
873
873
|
fullWidth: true,
|
|
874
874
|
autoFocus: true,
|
|
@@ -882,7 +882,7 @@ function TicketReplyComposer({
|
|
|
882
882
|
),
|
|
883
883
|
/* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: "flex w-full items-center gap-2", children: [
|
|
884
884
|
!supportSystemDown && /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
885
|
-
|
|
885
|
+
_chunkHML3JUXFcjs.ChatAttachmentAddButton,
|
|
886
886
|
{
|
|
887
887
|
attachmentsEnabled: true,
|
|
888
888
|
attachmentsCount: attachments.attachments.length,
|
|
@@ -905,13 +905,13 @@ function TicketReplyComposer({
|
|
|
905
905
|
}
|
|
906
906
|
)
|
|
907
907
|
] }),
|
|
908
|
-
/* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
909
|
-
/* @__PURE__ */ _jsxruntime.jsxs.call(void 0,
|
|
910
|
-
/* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
911
|
-
/* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
908
|
+
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkSJZWVMBFcjs.AlertDialog, { open: closeDialogOpen, onOpenChange: setCloseDialogOpen, children: /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, _chunkSJZWVMBFcjs.AlertDialogContent, { className: "border-ods-border bg-ods-card", children: [
|
|
909
|
+
/* @__PURE__ */ _jsxruntime.jsxs.call(void 0, _chunkSJZWVMBFcjs.AlertDialogHeader, { children: [
|
|
910
|
+
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkSJZWVMBFcjs.AlertDialogTitle, { className: "text-ods-text-primary", children: "Close this ticket?" }),
|
|
911
|
+
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkSJZWVMBFcjs.AlertDialogDescription, { className: "text-ods-text-secondary", children: "Add an optional resolution note below. You can reopen the ticket later if needed." })
|
|
912
912
|
] }),
|
|
913
913
|
/* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
914
|
-
|
|
914
|
+
_chunkSJZWVMBFcjs.Textarea,
|
|
915
915
|
{
|
|
916
916
|
value: resolution,
|
|
917
917
|
onChange: (e) => setResolution(e.target.value),
|
|
@@ -921,9 +921,9 @@ function TicketReplyComposer({
|
|
|
921
921
|
className: "mt-2"
|
|
922
922
|
}
|
|
923
923
|
),
|
|
924
|
-
/* @__PURE__ */ _jsxruntime.jsxs.call(void 0,
|
|
924
|
+
/* @__PURE__ */ _jsxruntime.jsxs.call(void 0, _chunkSJZWVMBFcjs.AlertDialogFooter, { children: [
|
|
925
925
|
/* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
926
|
-
|
|
926
|
+
_chunkSJZWVMBFcjs.AlertDialogCancel,
|
|
927
927
|
{
|
|
928
928
|
disabled: busy,
|
|
929
929
|
className: "border-ods-border bg-transparent text-ods-text-primary hover:bg-ods-border",
|
|
@@ -931,7 +931,7 @@ function TicketReplyComposer({
|
|
|
931
931
|
}
|
|
932
932
|
),
|
|
933
933
|
/* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
934
|
-
|
|
934
|
+
_chunkSJZWVMBFcjs.AlertDialogAction,
|
|
935
935
|
{
|
|
936
936
|
onClick: () => void confirmClose(),
|
|
937
937
|
disabled: busy,
|
|
@@ -993,11 +993,11 @@ var TICKET_FEED_HEIGHT = "h-[60vh] md:h-[420px]";
|
|
|
993
993
|
var TICKET_FEED_INNER = "flex flex-col gap-4 md:gap-6 px-4 md:px-6 py-4 md:py-6";
|
|
994
994
|
var TICKET_FEED_SKELETON_ROWS = 6;
|
|
995
995
|
function TicketTimelinePanel({ ticket }) {
|
|
996
|
-
const identity =
|
|
996
|
+
const identity = _chunkHML3JUXFcjs.useChatIdentity.call(void 0, );
|
|
997
997
|
const runtime = _chunkUJ7AXHRZcjs.useChatRuntime.call(void 0, );
|
|
998
998
|
const externalId = isOptimistic(ticket) ? null : ticket.external_id;
|
|
999
999
|
const { engagements, isLoading } = useTicketEngagements(externalId, !!externalId);
|
|
1000
|
-
const live =
|
|
1000
|
+
const live = _chunkMX52LZ6Mcjs.useOptionalTicketLive.call(void 0, );
|
|
1001
1001
|
const setOpenTicketId = _optionalChain([live, 'optionalAccess', _25 => _25.setOpenTicketId]);
|
|
1002
1002
|
const markRead = _optionalChain([live, 'optionalAccess', _26 => _26.markRead]);
|
|
1003
1003
|
const markReadDebounceRef = _react.useRef.call(void 0, null);
|
|
@@ -1036,11 +1036,11 @@ function TicketTimelinePanel({ ticket }) {
|
|
|
1036
1036
|
const customerName = (isViewerTheCustomer ? viewerName : null) || ticketCustomerName || viewerName || _optionalChain([identity, 'access', _40 => _40.user, 'optionalAccess', _41 => _41.email]) || "You";
|
|
1037
1037
|
const customerAvatar = isViewerTheCustomer ? _nullishCoalesce(_optionalChain([identity, 'access', _42 => _42.user, 'optionalAccess', _43 => _43.avatarUrl]), () => ( void 0)) : void 0;
|
|
1038
1038
|
if (isLoading) {
|
|
1039
|
-
return /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: `${TICKET_FEED_FRAME} ${TICKET_FEED_HEIGHT}`, children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunk2XCORRJVcjs.LoadingRegion, { label: "Loading messages", className: TICKET_FEED_INNER, children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunk63A4GZMBcjs.LoadingItems, { count: TICKET_FEED_SKELETON_ROWS, children: () => /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
1039
|
+
return /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: `${TICKET_FEED_FRAME} ${TICKET_FEED_HEIGHT}`, children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunk2XCORRJVcjs.LoadingRegion, { label: "Loading messages", className: TICKET_FEED_INNER, children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunk63A4GZMBcjs.LoadingItems, { count: TICKET_FEED_SKELETON_ROWS, children: () => /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkF33EAPD2cjs.ChatMessageRow, { loading: true, displayName: "", body: "", "data-loading-item": true }) }) }) });
|
|
1040
1040
|
}
|
|
1041
1041
|
if (bodyTurns.length === 0 && engagements.length === 0) {
|
|
1042
1042
|
return /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
1043
|
-
|
|
1043
|
+
_chunk5NK3FUHYcjs.EmptyState,
|
|
1044
1044
|
{
|
|
1045
1045
|
type: "generic",
|
|
1046
1046
|
title: "No conversation yet",
|
|
@@ -1055,7 +1055,7 @@ function TicketTimelinePanel({ ticket }) {
|
|
|
1055
1055
|
const isResolution = turn.startsWith("[Resolution]");
|
|
1056
1056
|
const text = isResolution ? turn.replace(/^\[Resolution\]\s*/, "") : turn;
|
|
1057
1057
|
return /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
1058
|
-
|
|
1058
|
+
_chunkF33EAPD2cjs.ChatMessageRow,
|
|
1059
1059
|
{
|
|
1060
1060
|
"data-loading-item": true,
|
|
1061
1061
|
displayName: customerName,
|
|
@@ -1085,14 +1085,14 @@ function TicketTimelinePanel({ ticket }) {
|
|
|
1085
1085
|
}
|
|
1086
1086
|
const engAttachments = mapEngagementAttachments(eng.attachments, runtime);
|
|
1087
1087
|
return /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
1088
|
-
|
|
1088
|
+
_chunkF33EAPD2cjs.ChatMessageRow,
|
|
1089
1089
|
{
|
|
1090
1090
|
"data-loading-item": true,
|
|
1091
1091
|
displayName: author,
|
|
1092
1092
|
avatarUrl: avatarSrc,
|
|
1093
|
-
timeLabel: eng.createdAt ?
|
|
1093
|
+
timeLabel: eng.createdAt ? _chunkSTV6VJ3Ucjs.formatRelativeTime.call(void 0, eng.createdAt) : null,
|
|
1094
1094
|
body: stripAttachmentsPreamble(_nullishCoalesce(eng.body, () => ( ""))),
|
|
1095
|
-
footer: engAttachments.length > 0 ? /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: "mt-2", children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
1095
|
+
footer: engAttachments.length > 0 ? /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: "mt-2", children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkSJZWVMBFcjs.TicketAttachmentsList, { attachments: engAttachments, size: "compact" }) }) : null
|
|
1096
1096
|
},
|
|
1097
1097
|
eng.id
|
|
1098
1098
|
);
|
|
@@ -1110,7 +1110,7 @@ function mapEngagementAttachments(files, runtime) {
|
|
|
1110
1110
|
// viewable URL). Non-images fall back to the file-type icon. SquareAvatar
|
|
1111
1111
|
// degrades to initials on a broken/expired image URL.
|
|
1112
1112
|
thumbnailSrc: url && (_nullishCoalesce(_optionalChain([f, 'access', _52 => _52.mime, 'optionalAccess', _53 => _53.startsWith, 'call', _54 => _54("image/")]), () => ( false))) ? url : void 0,
|
|
1113
|
-
onDownload: url ? () =>
|
|
1113
|
+
onDownload: url ? () => _chunk77GX573Icjs.executeNewTabNavigation.call(void 0, { runtime, href: url }) : void 0
|
|
1114
1114
|
};
|
|
1115
1115
|
});
|
|
1116
1116
|
}
|
|
@@ -1177,7 +1177,7 @@ function AssignedAgentRow({ assignedOwner }) {
|
|
|
1177
1177
|
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, "span", { className: "text-ods-text-secondary text-h5", children: "Assigned to" }),
|
|
1178
1178
|
displayLabel ? /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "span", { className: "flex items-center gap-1.5 font-medium text-ods-text-primary", children: [
|
|
1179
1179
|
/* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
1180
|
-
|
|
1180
|
+
_chunkYSXVRTGTcjs.SquareAvatar,
|
|
1181
1181
|
{
|
|
1182
1182
|
size: "sm",
|
|
1183
1183
|
variant: "round",
|
|
@@ -1197,7 +1197,7 @@ var TICKET_ROW_FRAME_CLASS = "border-b border-ods-border last:border-b-0";
|
|
|
1197
1197
|
var TICKET_ROW_OUTER_CLASS = "scroll-mt-24";
|
|
1198
1198
|
function TicketRow(props) {
|
|
1199
1199
|
if (_chunk63A4GZMBcjs.useLoadingScope.call(void 0, ) || props.loading) {
|
|
1200
|
-
return /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { id: props.id, className: TICKET_ROW_OUTER_CLASS, ..._chunk63A4GZMBcjs.loadingItemProps.call(void 0, props), children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: TICKET_ROW_FRAME_CLASS, children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
1200
|
+
return /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { id: props.id, className: TICKET_ROW_OUTER_CLASS, ..._chunk63A4GZMBcjs.loadingItemProps.call(void 0, props), children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: TICKET_ROW_FRAME_CLASS, children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkF33EAPD2cjs.ChatTicketItem, { loading: true }) }) });
|
|
1201
1201
|
}
|
|
1202
1202
|
return /* @__PURE__ */ _jsxruntime.jsx.call(void 0, TicketRowLoaded, { ...props });
|
|
1203
1203
|
}
|
|
@@ -1218,7 +1218,7 @@ function TicketRowLoaded({
|
|
|
1218
1218
|
const rowRef = _react.useRef.call(void 0, null);
|
|
1219
1219
|
const handleClick = _react.useCallback.call(void 0, () => {
|
|
1220
1220
|
onToggle(ticket.id);
|
|
1221
|
-
|
|
1221
|
+
_chunk77GX573Icjs.scrollElementIntoView.call(void 0, rowRef.current, {
|
|
1222
1222
|
adjustTargetY: (raw) => {
|
|
1223
1223
|
if (!rowRef.current) return raw;
|
|
1224
1224
|
const expandedDrawer = document.querySelector('div[id^="ticket-drawer-"]');
|
|
@@ -1242,7 +1242,7 @@ function TicketRowLoaded({
|
|
|
1242
1242
|
// so the badge accurately reflects "Closed" with a checkmark.
|
|
1243
1243
|
statusLabel: _nullishCoalesce(ticket.pipeline_stage_label, () => ( void 0)),
|
|
1244
1244
|
category: _nullishCoalesce(ticket.customer_company, () => ( void 0)),
|
|
1245
|
-
timeAgo: ticket.hubspot_updated_at ?
|
|
1245
|
+
timeAgo: ticket.hubspot_updated_at ? _chunkSTV6VJ3Ucjs.formatRelativeTime.call(void 0, ticket.hubspot_updated_at) : void 0,
|
|
1246
1246
|
// Linked-work chip: surfaced whenever the ticket has a linked
|
|
1247
1247
|
// ClickUp task. Uses the linked task's own status so the chip text
|
|
1248
1248
|
// reads "Working" / "Waiting on version release" / etc. — useful
|
|
@@ -1252,7 +1252,7 @@ function TicketRowLoaded({
|
|
|
1252
1252
|
};
|
|
1253
1253
|
return /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { ref: rowRef, id, className: TICKET_ROW_OUTER_CLASS, ..._chunk63A4GZMBcjs.loadingItemProps.call(void 0, markers), children: /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, Collapsible, { open: expanded && !optimistic, className: TICKET_ROW_FRAME_CLASS, children: [
|
|
1254
1254
|
/* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
1255
|
-
|
|
1255
|
+
_chunkF33EAPD2cjs.ChatTicketItem,
|
|
1256
1256
|
{
|
|
1257
1257
|
ticket: tileData,
|
|
1258
1258
|
onClick: optimistic ? void 0 : handleClick,
|
|
@@ -1279,18 +1279,18 @@ function TicketRowLoaded({
|
|
|
1279
1279
|
|
|
1280
1280
|
var TICKET_CENTER_CLASS = "flex flex-col gap-6";
|
|
1281
1281
|
var TICKET_LIST_BLOCK_CLASS = "flex flex-col gap-2";
|
|
1282
|
-
function TicketCenter({ toast: toast2 =
|
|
1282
|
+
function TicketCenter({ toast: toast2 = _chunkQZXCUY36cjs.toast } = {}) {
|
|
1283
1283
|
if (_chunk63A4GZMBcjs.useLoadingScope.call(void 0, )) return /* @__PURE__ */ _jsxruntime.jsx.call(void 0, TicketCenterPending, { region: false });
|
|
1284
1284
|
return /* @__PURE__ */ _jsxruntime.jsx.call(void 0, TicketCenterGate, { toast: toast2 });
|
|
1285
1285
|
}
|
|
1286
1286
|
function TicketCenterGate({ toast: toast2 }) {
|
|
1287
|
-
const identity =
|
|
1287
|
+
const identity = _chunkHML3JUXFcjs.useChatIdentity.call(void 0, );
|
|
1288
1288
|
if (identity.isLoading) {
|
|
1289
1289
|
return /* @__PURE__ */ _jsxruntime.jsx.call(void 0, TicketCenterPending, {});
|
|
1290
1290
|
}
|
|
1291
1291
|
if (identity.authTier === "anon" || !_optionalChain([identity, 'access', _62 => _62.user, 'optionalAccess', _63 => _63.email])) {
|
|
1292
1292
|
return /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
1293
|
-
|
|
1293
|
+
_chunk5NK3FUHYcjs.EmptyState,
|
|
1294
1294
|
{
|
|
1295
1295
|
type: "generic",
|
|
1296
1296
|
title: "Sign in to manage tickets",
|
|
@@ -1339,7 +1339,7 @@ function TicketCenterAuthed({
|
|
|
1339
1339
|
const toggleRow = _react.useCallback.call(void 0, (id) => {
|
|
1340
1340
|
setExpandedTicketId((prev) => prev === id ? null : id);
|
|
1341
1341
|
}, []);
|
|
1342
|
-
const syncInPage =
|
|
1342
|
+
const syncInPage = _chunkUHGARY3Scjs.usePageDataSync.call(void 0, sync, isLoading);
|
|
1343
1343
|
const merged = [...optimisticTickets, ...tickets];
|
|
1344
1344
|
return /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
1345
1345
|
TicketCenterView,
|
|
@@ -1356,7 +1356,7 @@ function TicketCenterAuthed({
|
|
|
1356
1356
|
TicketRow,
|
|
1357
1357
|
{
|
|
1358
1358
|
"data-loading-item": true,
|
|
1359
|
-
id:
|
|
1359
|
+
id: _chunkF33EAPD2cjs.devSectionAnchorId.call(void 0, "ticket", ticket.external_id),
|
|
1360
1360
|
ticket,
|
|
1361
1361
|
expanded: expandedTicketId === ticket.id,
|
|
1362
1362
|
onToggle: toggleRow,
|
|
@@ -1375,8 +1375,8 @@ function TicketCenterAuthed({
|
|
|
1375
1375
|
function TicketCenterPending({
|
|
1376
1376
|
region = true
|
|
1377
1377
|
} = {}) {
|
|
1378
|
-
const syncInPage =
|
|
1379
|
-
return /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
1378
|
+
const syncInPage = _chunkUHGARY3Scjs.usePageDataSync.call(void 0, null, true);
|
|
1379
|
+
return /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkHML3JUXFcjs.LoadingFallback, { label: "Loading tickets", status: region, children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
1380
1380
|
TicketCenterView,
|
|
1381
1381
|
{
|
|
1382
1382
|
tickets: [],
|
|
@@ -1417,8 +1417,8 @@ function TicketList({
|
|
|
1417
1417
|
}) {
|
|
1418
1418
|
if (_chunk63A4GZMBcjs.useLoadingScope.call(void 0, ) || loading) return /* @__PURE__ */ _jsxruntime.jsx.call(void 0, TicketListSkeleton, {});
|
|
1419
1419
|
if (tickets.length === 0) {
|
|
1420
|
-
return /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
1421
|
-
|
|
1420
|
+
return /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkAYMY2VNBcjs.Card, { className: "p-6", children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
1421
|
+
_chunk5NK3FUHYcjs.EmptyState,
|
|
1422
1422
|
{
|
|
1423
1423
|
type: "generic",
|
|
1424
1424
|
title: "No tickets yet",
|
|
@@ -1427,7 +1427,7 @@ function TicketList({
|
|
|
1427
1427
|
}
|
|
1428
1428
|
) });
|
|
1429
1429
|
}
|
|
1430
|
-
return /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
1430
|
+
return /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkAYMY2VNBcjs.Card, { className: "overflow-hidden", children: tickets.map(renderRow) });
|
|
1431
1431
|
}
|
|
1432
1432
|
function TicketListHeader({
|
|
1433
1433
|
sync,
|
|
@@ -1438,7 +1438,7 @@ function TicketListHeader({
|
|
|
1438
1438
|
return /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: "flex items-center justify-between gap-3", children: [
|
|
1439
1439
|
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, "p", { className: "text-ods-text-secondary text-h5", children: "Your Current Tickets" }),
|
|
1440
1440
|
/* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: "flex items-center gap-3 text-ods-text-secondary text-h6", children: [
|
|
1441
|
-
sync !== void 0 && /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
1441
|
+
sync !== void 0 && /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkSJZWVMBFcjs.DataSyncLine, { sync, loading: syncLoading, inline: true }),
|
|
1442
1442
|
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, "span", { inert: !onRefresh || void 0, "aria-hidden": !onRefresh || void 0, children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
1443
1443
|
_chunkFCZAUK4Dcjs.Button,
|
|
1444
1444
|
{
|
|
@@ -1455,7 +1455,7 @@ function TicketListHeader({
|
|
|
1455
1455
|
] });
|
|
1456
1456
|
}
|
|
1457
1457
|
function TicketListSkeleton() {
|
|
1458
|
-
return /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
1458
|
+
return /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkAYMY2VNBcjs.Card, { className: "overflow-hidden", children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunk63A4GZMBcjs.LoadingItems, { count: TICKETS_PAGE_SIZE, children: () => /* @__PURE__ */ _jsxruntime.jsx.call(void 0, TicketRow, { loading: true, "data-loading-item": true }) }) });
|
|
1459
1459
|
}
|
|
1460
1460
|
|
|
1461
1461
|
// src/components/tickets/help-center-list.tsx
|
|
@@ -1473,7 +1473,7 @@ function HelpCenterCard(props) {
|
|
|
1473
1473
|
return /* @__PURE__ */ _jsxruntime.jsx.call(void 0, HelpCenterCardLoaded, { ...props });
|
|
1474
1474
|
}
|
|
1475
1475
|
function HelpCenterCardSkeleton({ id, ...props }) {
|
|
1476
|
-
return /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { id, className: HELP_CENTER_ROW_CLASS, "aria-hidden": true, ..._chunk63A4GZMBcjs.loadingItemProps.call(void 0, props), children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: HELP_CENTER_SUMMARY_PAD_CLASS, children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
1476
|
+
return /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { id, className: HELP_CENTER_ROW_CLASS, "aria-hidden": true, ..._chunk63A4GZMBcjs.loadingItemProps.call(void 0, props), children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: HELP_CENTER_SUMMARY_PAD_CLASS, children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkUHGARY3Scjs.DevCardRowContent, { loading: true, title: "", subtitle: "", description: "", rightBadges: null }) }) });
|
|
1477
1477
|
}
|
|
1478
1478
|
function HelpCenterCardLoaded({
|
|
1479
1479
|
ticket,
|
|
@@ -1493,7 +1493,7 @@ function HelpCenterCardLoaded({
|
|
|
1493
1493
|
const optimistic = isOptimistic(ticket);
|
|
1494
1494
|
const rawStatus = (_nullishCoalesce(ticket.status, () => ( "OPEN"))).toUpperCase();
|
|
1495
1495
|
const priority = (_nullishCoalesce(ticket.priority, () => ( ""))).toUpperCase();
|
|
1496
|
-
const relativeUpdated = ticket.hubspot_updated_at ?
|
|
1496
|
+
const relativeUpdated = ticket.hubspot_updated_at ? _chunkSTV6VJ3Ucjs.formatRelativeTime.call(void 0, ticket.hubspot_updated_at) : "recently";
|
|
1497
1497
|
const title = (ticket.subject || "").trim() || "(untitled)";
|
|
1498
1498
|
const subtitle = `UPDATED ${relativeUpdated}, #${ticket.external_id || "\u2014"}${ticket.pipeline_stage_label ? `, ${ticket.pipeline_stage_label}` : ""}`;
|
|
1499
1499
|
const description = _nullishCoalesce(_nullishCoalesce(ticket.preview, () => ( ticket.body)), () => ( ""));
|
|
@@ -1506,18 +1506,18 @@ function HelpCenterCardLoaded({
|
|
|
1506
1506
|
_react.useEffect.call(void 0, () => {
|
|
1507
1507
|
if (!isExpanded) return void 0;
|
|
1508
1508
|
const raf = requestAnimationFrame(() => {
|
|
1509
|
-
|
|
1510
|
-
headerOffset:
|
|
1509
|
+
_chunk77GX573Icjs.scrollElementIntoView.call(void 0, rowRef.current, {
|
|
1510
|
+
headerOffset: _chunk77GX573Icjs.STICKY_HEADER_OFFSET_PX
|
|
1511
1511
|
});
|
|
1512
1512
|
});
|
|
1513
1513
|
return () => cancelAnimationFrame(raf);
|
|
1514
1514
|
}, [isExpanded]);
|
|
1515
|
-
const live =
|
|
1515
|
+
const live = _chunkMX52LZ6Mcjs.useOptionalTicketLive.call(void 0, );
|
|
1516
1516
|
const unreadCount = !optimistic && ticket.external_id && _optionalChain([live, 'optionalAccess', _64 => _64.unreadByTicket, 'access', _65 => _65[ticket.external_id]]) || 0;
|
|
1517
1517
|
const rightBadges = /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, _jsxruntime.Fragment, { children: [
|
|
1518
1518
|
unreadCount > 0 && // Only rows with unread replies carry it; the row's loading form draws the status badge alone.
|
|
1519
1519
|
/* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
1520
|
-
|
|
1520
|
+
_chunkAYMY2VNBcjs.StatusBadge,
|
|
1521
1521
|
{
|
|
1522
1522
|
"data-loading-optional": true,
|
|
1523
1523
|
text: `${unreadCount} NEW`,
|
|
@@ -1527,17 +1527,17 @@ function HelpCenterCardLoaded({
|
|
|
1527
1527
|
}
|
|
1528
1528
|
),
|
|
1529
1529
|
/* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
1530
|
-
|
|
1530
|
+
_chunkAYMY2VNBcjs.StatusBadge,
|
|
1531
1531
|
{
|
|
1532
1532
|
text: rawStatus,
|
|
1533
|
-
colorScheme:
|
|
1533
|
+
colorScheme: _chunk3GJ75OULcjs.getStatusColorScheme.call(void 0, rawStatus),
|
|
1534
1534
|
variant: "card",
|
|
1535
1535
|
className: "border border-ods-border"
|
|
1536
1536
|
}
|
|
1537
1537
|
),
|
|
1538
1538
|
priority && // Not every ticket states a priority; the row's loading form draws the status badge alone.
|
|
1539
1539
|
/* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
1540
|
-
|
|
1540
|
+
_chunkAYMY2VNBcjs.StatusBadge,
|
|
1541
1541
|
{
|
|
1542
1542
|
"data-loading-optional": true,
|
|
1543
1543
|
text: priority,
|
|
@@ -1552,7 +1552,7 @@ function HelpCenterCardLoaded({
|
|
|
1552
1552
|
{
|
|
1553
1553
|
ref: rowRef,
|
|
1554
1554
|
id,
|
|
1555
|
-
style: { scrollMarginTop:
|
|
1555
|
+
style: { scrollMarginTop: _chunk77GX573Icjs.STICKY_HEADER_OFFSET_PX },
|
|
1556
1556
|
className: `${HELP_CENTER_ROW_CLASS} ${optimistic ? "opacity-60" : ""}`,
|
|
1557
1557
|
"aria-busy": optimistic || void 0,
|
|
1558
1558
|
..._chunk63A4GZMBcjs.loadingItemProps.call(void 0, props),
|
|
@@ -1567,7 +1567,7 @@ function HelpCenterCardLoaded({
|
|
|
1567
1567
|
"aria-expanded": isExpandable ? isExpanded : void 0,
|
|
1568
1568
|
"aria-controls": isExpanded ? `help-center-drawer-${ticket.id}` : void 0,
|
|
1569
1569
|
children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "span", { className: _chunk63A4GZMBcjs.cn.call(void 0, "block", HELP_CENTER_SUMMARY_PAD_CLASS), children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
1570
|
-
|
|
1570
|
+
_chunkUHGARY3Scjs.DevCardRowContent,
|
|
1571
1571
|
{
|
|
1572
1572
|
title,
|
|
1573
1573
|
subtitle,
|
|
@@ -1648,7 +1648,7 @@ function HelpCenterCreateFormBody({
|
|
|
1648
1648
|
subjectError && /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "span", { id: "help-center-subject-error", className: "mt-1 text-ods-error text-h6", children: subjectError })
|
|
1649
1649
|
] });
|
|
1650
1650
|
return /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
1651
|
-
|
|
1651
|
+
_chunkHGM7WDJTcjs.ContactForm,
|
|
1652
1652
|
{
|
|
1653
1653
|
rescue: null,
|
|
1654
1654
|
title: "Open a new ticket",
|
|
@@ -1687,18 +1687,18 @@ function HelpCenterCreateFormBody({
|
|
|
1687
1687
|
|
|
1688
1688
|
// src/components/tickets/help-center-list.tsx
|
|
1689
1689
|
|
|
1690
|
-
function HelpCenterList({ toast: toast2 =
|
|
1691
|
-
const identity =
|
|
1690
|
+
function HelpCenterList({ toast: toast2 = _chunkQZXCUY36cjs.toast, backButton, title, shell } = {}) {
|
|
1691
|
+
const identity = _chunkHML3JUXFcjs.useChatIdentity.call(void 0, );
|
|
1692
1692
|
const searchParams = _chunk7DNL734Scjs.useSearchParams.call(void 0, );
|
|
1693
1693
|
const router = _chunk7DNL734Scjs.useRouter.call(void 0, );
|
|
1694
1694
|
const pathname = _chunk7DNL734Scjs.usePathname.call(void 0, );
|
|
1695
|
-
const search = searchParams.get(
|
|
1695
|
+
const search = searchParams.get(_chunkF33EAPD2cjs.DEV_SECTION_PARAM_KEYS.search) || "";
|
|
1696
1696
|
const status = searchParams.get("status") || "all";
|
|
1697
|
-
const ticketParam = searchParams.get(
|
|
1697
|
+
const ticketParam = searchParams.get(_chunkF33EAPD2cjs.TICKET_OPEN_PARAM) || "";
|
|
1698
1698
|
const page = _chunkBLH2SFOOcjs.positiveInt.call(void 0, searchParams.get("page"), 1);
|
|
1699
1699
|
if (identity.isLoading) {
|
|
1700
1700
|
return /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
1701
|
-
|
|
1701
|
+
_chunkUHGARY3Scjs.DevSectionPage,
|
|
1702
1702
|
{
|
|
1703
1703
|
sectionKey: "tickets",
|
|
1704
1704
|
backButton,
|
|
@@ -1710,8 +1710,8 @@ function HelpCenterList({ toast: toast2 = _chunkUPQ4MAR7cjs.toast, backButton, t
|
|
|
1710
1710
|
);
|
|
1711
1711
|
}
|
|
1712
1712
|
if (identity.authTier === "anon" || !_optionalChain([identity, 'access', _66 => _66.user, 'optionalAccess', _67 => _67.email])) {
|
|
1713
|
-
return /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
1714
|
-
|
|
1713
|
+
return /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkUHGARY3Scjs.DevSectionPage, { sectionKey: "tickets", backButton, title, shell, children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
1714
|
+
_chunk5NK3FUHYcjs.EmptyState,
|
|
1715
1715
|
{
|
|
1716
1716
|
type: "generic",
|
|
1717
1717
|
title: "Sign in to manage tickets",
|
|
@@ -1762,8 +1762,8 @@ function HelpCenterListAuthed({
|
|
|
1762
1762
|
const setOpenTicket = _react.useCallback.call(void 0,
|
|
1763
1763
|
(externalId) => {
|
|
1764
1764
|
const params = new URLSearchParams(searchParams.toString());
|
|
1765
|
-
if (externalId) params.set(
|
|
1766
|
-
else params.delete(
|
|
1765
|
+
if (externalId) params.set(_chunkF33EAPD2cjs.TICKET_OPEN_PARAM, externalId);
|
|
1766
|
+
else params.delete(_chunkF33EAPD2cjs.TICKET_OPEN_PARAM);
|
|
1767
1767
|
const qs = params.toString();
|
|
1768
1768
|
router.replace(qs ? `${pathname}?${qs}` : pathname, { scroll: false });
|
|
1769
1769
|
},
|
|
@@ -1820,7 +1820,7 @@ function HelpCenterListAuthed({
|
|
|
1820
1820
|
[tickets, ticketParam, setOpenTicket]
|
|
1821
1821
|
);
|
|
1822
1822
|
const merged = [...optimisticTickets, ...tickets];
|
|
1823
|
-
|
|
1823
|
+
_chunkQZXCUY36cjs.useScrollToHash.call(void 0, tickets, { headerOffset: _chunk77GX573Icjs.STICKY_HEADER_OFFSET_PX });
|
|
1824
1824
|
const hasActiveFilters = search !== "" || status !== "" && status !== "all";
|
|
1825
1825
|
const hasResults = merged.length > 0;
|
|
1826
1826
|
const form = /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
@@ -1841,7 +1841,7 @@ function HelpCenterListAuthed({
|
|
|
1841
1841
|
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkFCZAUK4Dcjs.Button, { type: "button", variant: "accent", onClick: () => refetch(), children: "Retry" })
|
|
1842
1842
|
] }),
|
|
1843
1843
|
!error && /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: "w-full", children: isLoading || !hasResults && isFetching ? /* @__PURE__ */ _jsxruntime.jsx.call(void 0, HelpCenterRowsFrame, { children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunk63A4GZMBcjs.LoadingItems, { count: pageSize, children: () => /* @__PURE__ */ _jsxruntime.jsx.call(void 0, HelpCenterCard, { ticket: null, "data-loading-item": true }) }) }) : !hasResults ? /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
1844
|
-
|
|
1844
|
+
_chunkUHGARY3Scjs.ListEmptyState,
|
|
1845
1845
|
{
|
|
1846
1846
|
isFiltered: hasActiveFilters,
|
|
1847
1847
|
filtered: {
|
|
@@ -1864,7 +1864,7 @@ function HelpCenterListAuthed({
|
|
|
1864
1864
|
HelpCenterCard,
|
|
1865
1865
|
{
|
|
1866
1866
|
"data-loading-item": true,
|
|
1867
|
-
id:
|
|
1867
|
+
id: _chunkF33EAPD2cjs.devSectionAnchorId.call(void 0, "ticket", ticket.external_id),
|
|
1868
1868
|
ticket,
|
|
1869
1869
|
expanded: expandedTicketId === ticket.id,
|
|
1870
1870
|
onToggle: toggleRow,
|
|
@@ -1879,9 +1879,9 @@ function HelpCenterListAuthed({
|
|
|
1879
1879
|
},
|
|
1880
1880
|
ticket.id
|
|
1881
1881
|
)) }) }),
|
|
1882
|
-
!error && totalPages > 1 && /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
1882
|
+
!error && totalPages > 1 && /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunk5NK3FUHYcjs.UnifiedPagination, { currentPage: page, totalPages })
|
|
1883
1883
|
] });
|
|
1884
|
-
return /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
1884
|
+
return /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkUHGARY3Scjs.DevSectionPage, { sectionKey: "tickets", backButton, title, shell, preControls: form, children: body });
|
|
1885
1885
|
}
|
|
1886
1886
|
function HelpCenterRowsFrame({ children }) {
|
|
1887
1887
|
return /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: "w-full overflow-clip rounded-[6px] border border-ods-border bg-ods-card", children });
|