@flamingo-stack/openframe-frontend-core 0.0.744 → 0.0.747
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/{chunk-HTQJYN47.cjs → chunk-2CEQGGRN.cjs} +32 -32
- package/dist/{chunk-PYWHDPVC.cjs → chunk-4AWI6CCU.cjs} +38 -38
- package/dist/{chunk-FTYQS6VI.cjs → chunk-4DT5YXTM.cjs} +13 -13
- package/dist/{chunk-YJRMCFX3.cjs → chunk-4MGZYY6U.cjs} +7 -7
- package/dist/{chunk-HMSUYWSB.cjs → chunk-6RTHHU3S.cjs} +4 -4
- package/dist/{chunk-7YDF3QBN.cjs → chunk-7Y5U3Y4S.cjs} +320 -207
- package/dist/{chunk-GAGNKWOC.cjs → chunk-BBM2ICOY.cjs} +2 -2
- package/dist/{chunk-4N7KGOBS.cjs → chunk-BEC43GHL.cjs} +3 -3
- package/dist/{chunk-OC2LBQQJ.cjs → chunk-C7NTL2GV.cjs} +80 -80
- package/dist/{chunk-QZYF2YQ3.cjs → chunk-FCQCEQBY.cjs} +6 -6
- package/dist/{chunk-URVIPSAJ.cjs → chunk-HNLI4OU5.cjs} +14 -14
- package/dist/{chunk-2UBR53AN.cjs → chunk-HTMHDEIV.cjs} +4 -4
- package/dist/{chunk-NURAL5HD.cjs → chunk-IJA3OZWF.cjs} +24 -24
- package/dist/{chunk-ABLUMGCI.cjs → chunk-JHQNUWFM.cjs} +83 -33
- package/dist/{chunk-QSO56JZ2.cjs → chunk-JPSMPXCH.cjs} +90 -90
- package/dist/{chunk-UY6A6TEY.cjs → chunk-L2IQESTQ.cjs} +2 -2
- package/dist/{chunk-AT6ZI4CO.cjs → chunk-LLAKQT3B.cjs} +12 -12
- package/dist/{chunk-HHL23RFC.cjs → chunk-MA7T36JY.cjs} +35 -35
- package/dist/{chunk-H62FNZGG.cjs → chunk-O6QQ44I3.cjs} +18 -18
- package/dist/{chunk-LJ46XYYP.cjs → chunk-P7KTAXXE.cjs} +41 -27
- package/dist/{chunk-2JRCJV3M.cjs → chunk-PIQRV4EQ.cjs} +5 -5
- package/dist/{chunk-OWGLRE74.cjs → chunk-PSIKUDUV.cjs} +8 -8
- package/dist/{chunk-4A6OF4HI.cjs → chunk-PSSGIZXZ.cjs} +44 -44
- package/dist/{chunk-YIOWV7LS.cjs → chunk-QPSQ5WLG.cjs} +2 -2
- package/dist/{chunk-HJ4KGA2M.cjs → chunk-R3FXJXSQ.cjs} +1226 -1012
- package/dist/{chunk-65LJNDR2.cjs → chunk-TYW7NBP7.cjs} +20 -20
- package/dist/{chunk-U2O5YQRP.cjs → chunk-U6XWGK53.cjs} +33 -33
- package/dist/{chunk-35IQLGV3.cjs → chunk-WY4FKKCV.cjs} +74 -74
- package/dist/{chunk-JGZEHBBD.cjs → chunk-YIRX6C7V.cjs} +10 -10
- package/dist/{chunk-5TCIRWHL.cjs → chunk-YRULLK7N.cjs} +5 -5
- package/dist/{cloud-tenants-JPXAXSPE.cjs → cloud-tenants-QJZIF2JS.cjs} +13 -13
- package/dist/components/case-studies/index.cjs +31 -29
- package/dist/components/case-studies/share-experience-section.d.ts.map +1 -1
- package/dist/components/case-studies/share-experience-section.js +6 -5
- package/dist/components/chat/index.cjs +9 -9
- package/dist/components/contact/index.cjs +14 -14
- package/dist/components/docs/index.cjs +17 -17
- package/dist/components/embeds/index.cjs +14 -14
- package/dist/components/embeds/reddit-embed-client.d.ts +3 -1
- package/dist/components/embeds/reddit-embed-client.d.ts.map +1 -1
- package/dist/components/embeds/reddit-embed-client.js +5 -3
- package/dist/components/embeds/twitter-embed-client.d.ts +3 -1
- package/dist/components/embeds/twitter-embed-client.d.ts.map +1 -1
- package/dist/components/embeds/twitter-embed-client.js +5 -3
- package/dist/components/faq/index.cjs +15 -15
- package/dist/components/features/index.cjs +13 -13
- package/dist/components/help-center-pages/index.cjs +116 -116
- package/dist/components/index.cjs +125 -125
- package/dist/components/layout/page-heading.d.ts +16 -0
- package/dist/components/layout/page-heading.d.ts.map +1 -1
- package/dist/components/layout/page-heading.js +16 -2
- package/dist/components/meeting-scheduler/index.cjs +63 -63
- package/dist/components/navigation/index.cjs +16 -16
- package/dist/components/onboarding-guides/index.cjs +16 -16
- package/dist/components/product-demo/index.cjs +9 -9
- package/dist/components/related-content/index.cjs +7 -7
- package/dist/components/tickets/index.cjs +19 -19
- package/dist/components/ui/filter-checkbox-item.d.ts +8 -2
- package/dist/components/ui/filter-checkbox-item.d.ts.map +1 -1
- package/dist/components/ui/filter-checkbox-item.js +14 -4
- package/dist/components/ui/index.cjs +19 -13
- package/dist/components/ui/index.d.ts +1 -0
- package/dist/components/ui/index.d.ts.map +1 -1
- package/dist/components/ui/index.js +1 -0
- package/dist/components/ui/layout-hold.d.ts +4 -3
- package/dist/components/ui/layout-hold.d.ts.map +1 -1
- package/dist/components/ui/layout-hold.js +29 -9
- package/dist/components/ui/markdown/base-components.d.ts.map +1 -1
- package/dist/components/ui/markdown/base-components.js +3 -2
- package/dist/components/ui/markdown/rich/embed-overrides.d.ts.map +1 -1
- package/dist/components/ui/markdown/rich/embed-overrides.js +11 -8
- package/dist/components/ui/markdown-editor.d.ts.map +1 -1
- package/dist/components/ui/markdown-editor.js +4 -0
- package/dist/components/ui/markdown-link-command.d.ts +37 -0
- package/dist/components/ui/markdown-link-command.d.ts.map +1 -0
- package/dist/components/ui/markdown-link-command.js +180 -0
- package/dist/components/unified-filter-logic.js +1 -1
- package/dist/components/vendor-tag.d.ts +12 -0
- package/dist/components/vendor-tag.d.ts.map +1 -1
- package/dist/components/vendor-tag.js +50 -47
- package/dist/{devices-ONC4JOVH.cjs → devices-V55KQCAL.cjs} +14 -14
- package/dist/{embeddable-chat-7ZEGCDVF.cjs → embeddable-chat-5CDR4I6E.cjs} +80 -80
- package/dist/index.cjs +38 -18
- package/dist/{knowledge-G7XU5YST.cjs → knowledge-S3VGDRKR.cjs} +14 -14
- package/dist/{logs-5B7NY4G6.cjs → logs-K5E2BGZE.cjs} +21 -21
- package/dist/{policies-OYR3SLJN.cjs → policies-BWU4FRFE.cjs} +17 -17
- package/dist/{remote-session-N4PJB5FW.cjs → remote-session-IYT4LWJC.cjs} +7 -7
- package/dist/{scripts-6CWHTY6U.cjs → scripts-25UPGXZU.cjs} +20 -20
- package/dist/{software-update-AJPIY4SQ.cjs → software-update-F6UC7ULZ.cjs} +17 -17
- package/dist/{tickets-board-O753S4ZB.cjs → tickets-board-4MT6ZB4F.cjs} +8 -8
- package/dist/utils/format.d.ts.map +1 -1
- package/dist/utils/format.js +2 -3
- package/dist/utils/index.cjs +193 -28
- package/dist/utils/index.d.ts +2 -1
- package/dist/utils/index.d.ts.map +1 -1
- package/dist/utils/index.js +9 -6
- package/dist/utils/markdown-link.d.ts +44 -0
- package/dist/utils/markdown-link.d.ts.map +1 -0
- package/dist/utils/markdown-link.js +83 -0
- package/dist/utils/markdown-to-plain.d.ts +3 -16
- package/dist/utils/markdown-to-plain.d.ts.map +1 -1
- package/dist/utils/markdown-to-plain.js +33 -3
- package/dist/utils/vendor-classification.d.ts +43 -17
- package/dist/utils/vendor-classification.d.ts.map +1 -1
- package/dist/utils/vendor-classification.js +73 -22
- package/package.json +3 -1
- package/src/components/case-studies/share-experience-section.tsx +9 -6
- package/src/components/embeds/reddit-embed-client.tsx +7 -3
- package/src/components/embeds/twitter-embed-client.tsx +7 -3
- package/src/components/layout/page-heading.tsx +52 -11
- package/src/components/ui/filter-checkbox-item.tsx +21 -5
- package/src/components/ui/index.ts +1 -0
- package/src/components/ui/layout-hold.tsx +38 -10
- package/src/components/ui/markdown/base-components.tsx +5 -2
- package/src/components/ui/markdown/rich/embed-overrides.tsx +12 -9
- package/src/components/ui/markdown-editor.tsx +6 -0
- package/src/components/ui/markdown-link-command.tsx +252 -0
- package/src/components/unified-filter-logic.tsx +1 -1
- package/src/components/vendor-tag.tsx +73 -69
- package/src/utils/format.ts +2 -3
- package/src/utils/index.ts +8 -5
- package/src/utils/markdown-link.ts +148 -0
- package/src/utils/markdown-to-plain.ts +64 -22
- package/src/utils/vendor-classification.ts +113 -34
- package/dist/utils/format-text-stub.d.ts +0 -5
- package/dist/utils/format-text-stub.d.ts.map +0 -1
- package/dist/utils/format-text-stub.js +0 -20
- package/src/utils/format-text-stub.ts +0 -17
|
@@ -1,25 +1,25 @@
|
|
|
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 _chunkIJA3OZWFcjs = require('./chunk-IJA3OZWF.cjs');
|
|
5
5
|
|
|
6
6
|
|
|
7
7
|
|
|
8
8
|
|
|
9
9
|
|
|
10
10
|
|
|
11
|
-
var
|
|
11
|
+
var _chunkTYW7NBP7cjs = require('./chunk-TYW7NBP7.cjs');
|
|
12
12
|
|
|
13
13
|
|
|
14
14
|
|
|
15
|
-
var
|
|
15
|
+
var _chunkBEC43GHLcjs = require('./chunk-BEC43GHL.cjs');
|
|
16
16
|
|
|
17
17
|
|
|
18
18
|
|
|
19
19
|
|
|
20
20
|
|
|
21
21
|
|
|
22
|
-
var
|
|
22
|
+
var _chunkHTMHDEIVcjs = require('./chunk-HTMHDEIV.cjs');
|
|
23
23
|
|
|
24
24
|
|
|
25
25
|
|
|
@@ -31,7 +31,7 @@ var _chunk2UBR53ANcjs = require('./chunk-2UBR53AN.cjs');
|
|
|
31
31
|
|
|
32
32
|
|
|
33
33
|
|
|
34
|
-
var
|
|
34
|
+
var _chunkR3FXJXSQcjs = require('./chunk-R3FXJXSQ.cjs');
|
|
35
35
|
|
|
36
36
|
|
|
37
37
|
|
|
@@ -44,19 +44,19 @@ var _chunk4FWURR3Wcjs = require('./chunk-4FWURR3W.cjs');
|
|
|
44
44
|
|
|
45
45
|
|
|
46
46
|
|
|
47
|
-
var
|
|
47
|
+
var _chunkC7NTL2GVcjs = require('./chunk-C7NTL2GV.cjs');
|
|
48
48
|
|
|
49
49
|
|
|
50
50
|
|
|
51
51
|
|
|
52
52
|
|
|
53
|
-
var
|
|
53
|
+
var _chunk7Y5U3Y4Scjs = require('./chunk-7Y5U3Y4S.cjs');
|
|
54
54
|
|
|
55
55
|
|
|
56
|
-
var
|
|
56
|
+
var _chunkPSIKUDUVcjs = require('./chunk-PSIKUDUV.cjs');
|
|
57
57
|
|
|
58
58
|
|
|
59
|
-
var
|
|
59
|
+
var _chunkYRULLK7Ncjs = require('./chunk-YRULLK7N.cjs');
|
|
60
60
|
|
|
61
61
|
|
|
62
62
|
|
|
@@ -74,10 +74,10 @@ var _chunk7DNL734Scjs = require('./chunk-7DNL734S.cjs');
|
|
|
74
74
|
|
|
75
75
|
|
|
76
76
|
|
|
77
|
-
var
|
|
77
|
+
var _chunkP7KTAXXEcjs = require('./chunk-P7KTAXXE.cjs');
|
|
78
78
|
|
|
79
79
|
|
|
80
|
-
var
|
|
80
|
+
var _chunkJHQNUWFMcjs = require('./chunk-JHQNUWFM.cjs');
|
|
81
81
|
|
|
82
82
|
|
|
83
83
|
|
|
@@ -129,7 +129,7 @@ var TicketActionFailure = class extends Error {
|
|
|
129
129
|
function useTicketActions(options) {
|
|
130
130
|
const queryClient = _reactquery.useQueryClient.call(void 0, );
|
|
131
131
|
const ticketActionEndpoint = _nullishCoalesce(_chunkUJ7AXHRZcjs.useRequiredChatRuntime.call(void 0, ).endpoints.ticketActionUrl, () => ( TICKET_ACTION_ENDPOINT));
|
|
132
|
-
const ticketLive =
|
|
132
|
+
const ticketLive = _chunkHTMHDEIVcjs.useOptionalTicketLive.call(void 0, );
|
|
133
133
|
const notifyTicketCreated = _optionalChain([ticketLive, 'optionalAccess', _2 => _2.notifyTicketCreated]);
|
|
134
134
|
const { prependOptimistic, removeOptimistic, removeTicketFromCache, toast: toast2, onSupportSystemDown } = options;
|
|
135
135
|
const formInFlightRef = _react.useRef.call(void 0, null);
|
|
@@ -290,10 +290,10 @@ function useTicketActions(options) {
|
|
|
290
290
|
..._optionalChain([input, 'access', _3 => _3.attachments, 'optionalAccess', _4 => _4.length]) ? { attachments: input.attachments } : {}
|
|
291
291
|
});
|
|
292
292
|
if (result.mirror_synced === false) {
|
|
293
|
-
toast2(
|
|
293
|
+
toast2(_chunkHTMHDEIVcjs.TOAST_COPY.open_mirror_pending);
|
|
294
294
|
watchMirrorSync(placeholderId, result.ticket_id);
|
|
295
295
|
} else {
|
|
296
|
-
toast2(
|
|
296
|
+
toast2(_chunkHTMHDEIVcjs.TOAST_COPY.open_success);
|
|
297
297
|
await queryClient.invalidateQueries({ queryKey: ["tickets"] });
|
|
298
298
|
removeOptimistic(placeholderId);
|
|
299
299
|
}
|
|
@@ -379,7 +379,7 @@ function useTicketActions(options) {
|
|
|
379
379
|
...hasText ? { content_addendum: trimmed } : {},
|
|
380
380
|
...hasFiles ? { attachments } : {}
|
|
381
381
|
},
|
|
382
|
-
|
|
382
|
+
_chunkHTMHDEIVcjs.TOAST_COPY.comment_success,
|
|
383
383
|
"send message"
|
|
384
384
|
);
|
|
385
385
|
if (ok) {
|
|
@@ -402,13 +402,13 @@ function useTicketActions(options) {
|
|
|
402
402
|
status: "CLOSED",
|
|
403
403
|
..._optionalChain([resolution, 'optionalAccess', _6 => _6.trim, 'call', _7 => _7()]) ? { resolution: resolution.trim() } : {}
|
|
404
404
|
},
|
|
405
|
-
|
|
405
|
+
_chunkHTMHDEIVcjs.TOAST_COPY.close_success,
|
|
406
406
|
"close ticket"
|
|
407
407
|
),
|
|
408
408
|
[updateTicket]
|
|
409
409
|
);
|
|
410
410
|
const reopenTicket = _react.useCallback.call(void 0,
|
|
411
|
-
(ticket) => updateTicket(ticket, { status: "OPEN" },
|
|
411
|
+
(ticket) => updateTicket(ticket, { status: "OPEN" }, _chunkHTMHDEIVcjs.TOAST_COPY.reopen_success, "reopen ticket"),
|
|
412
412
|
[updateTicket]
|
|
413
413
|
);
|
|
414
414
|
return _react.useMemo.call(void 0,
|
|
@@ -617,14 +617,14 @@ function useTicketsList(filters) {
|
|
|
617
617
|
// src/components/tickets/ticket-open-form.tsx
|
|
618
618
|
|
|
619
619
|
var _jsxruntime = require('react/jsx-runtime');
|
|
620
|
-
var COUNTER_VISIBLE_AT = Math.floor(
|
|
620
|
+
var COUNTER_VISIBLE_AT = Math.floor(_chunkHTMHDEIVcjs.TICKET_TEXT_MAX_CHARS * 0.8);
|
|
621
621
|
function TicketOpenForm({ onSubmit, isSubmitting, supportSystemDown }) {
|
|
622
622
|
const [subject, setSubject] = _react.useState.call(void 0, "");
|
|
623
623
|
const [content, setContent] = _react.useState.call(void 0, "");
|
|
624
|
-
const { attachments, readyAttachments, hasInflightUploads, addFiles, removeAttachment, clear } =
|
|
624
|
+
const { attachments, readyAttachments, hasInflightUploads, addFiles, removeAttachment, clear } = _chunk7Y5U3Y4Scjs.useChatAttachments.call(void 0, );
|
|
625
625
|
const trimmedSubject = subject.trim();
|
|
626
626
|
const trimmedContent = content.trim();
|
|
627
|
-
const overCap = content.length >
|
|
627
|
+
const overCap = content.length > _chunkHTMHDEIVcjs.TICKET_TEXT_MAX_CHARS;
|
|
628
628
|
const showCounter = content.length >= COUNTER_VISIBLE_AT;
|
|
629
629
|
const canSubmit = !isSubmitting && !supportSystemDown && !hasInflightUploads && trimmedSubject.length > 0 && trimmedContent.length > 0 && !overCap;
|
|
630
630
|
const handleSubmit = async (e) => {
|
|
@@ -641,7 +641,7 @@ function TicketOpenForm({ onSubmit, isSubmitting, supportSystemDown }) {
|
|
|
641
641
|
clear();
|
|
642
642
|
}
|
|
643
643
|
};
|
|
644
|
-
return /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
644
|
+
return /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkP7KTAXXEcjs.Card, { className: "p-6", children: /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "form", { onSubmit: handleSubmit, className: "flex flex-col gap-6 md:flex-row", ..._chunkC7NTL2GVcjs.HUBSPOT_DO_NOT_COLLECT_FORM_PROPS, children: [
|
|
645
645
|
/* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: "min-w-0 flex-1 md:max-w-md", children: [
|
|
646
646
|
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, "h2", { className: "mb-2 text-ods-text-primary text-h2", children: "Need Support?" }),
|
|
647
647
|
/* @__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." }),
|
|
@@ -666,7 +666,7 @@ function TicketOpenForm({ onSubmit, isSubmitting, supportSystemDown }) {
|
|
|
666
666
|
/* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { children: [
|
|
667
667
|
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, "label", { htmlFor: "ticket-content", className: "mb-1 block text-ods-text-primary text-h6", children: "Your Message" }),
|
|
668
668
|
/* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
669
|
-
|
|
669
|
+
_chunkR3FXJXSQcjs.Textarea,
|
|
670
670
|
{
|
|
671
671
|
id: "ticket-content",
|
|
672
672
|
placeholder: "Describe your issue or question in detail...",
|
|
@@ -680,11 +680,11 @@ function TicketOpenForm({ onSubmit, isSubmitting, supportSystemDown }) {
|
|
|
680
680
|
showCounter && /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "p", { className: `mt-1 text-right text-h6 ${overCap ? "text-ods-error" : "text-ods-text-secondary"}`, children: [
|
|
681
681
|
content.length,
|
|
682
682
|
"/",
|
|
683
|
-
|
|
683
|
+
_chunkHTMHDEIVcjs.TICKET_TEXT_MAX_CHARS
|
|
684
684
|
] })
|
|
685
685
|
] }),
|
|
686
686
|
/* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
687
|
-
|
|
687
|
+
_chunk7Y5U3Y4Scjs.ChatAttachmentChipStrip,
|
|
688
688
|
{
|
|
689
689
|
attachments,
|
|
690
690
|
onRemove: removeAttachment,
|
|
@@ -693,7 +693,7 @@ function TicketOpenForm({ onSubmit, isSubmitting, supportSystemDown }) {
|
|
|
693
693
|
),
|
|
694
694
|
/* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: "flex items-center justify-between gap-3", children: [
|
|
695
695
|
/* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
696
|
-
|
|
696
|
+
_chunk7Y5U3Y4Scjs.ChatAttachmentAddButton,
|
|
697
697
|
{
|
|
698
698
|
attachmentsEnabled: !supportSystemDown,
|
|
699
699
|
attachmentsCount: attachments.length,
|
|
@@ -723,7 +723,7 @@ var _usesticktobottom = require('use-stick-to-bottom');
|
|
|
723
723
|
|
|
724
724
|
var LIST_ENGAGEMENTS_ENDPOINT = "/api/chat/agent/list-engagements";
|
|
725
725
|
function useTicketEngagements(externalTicketId, enabled = true) {
|
|
726
|
-
const identity =
|
|
726
|
+
const identity = _chunk7Y5U3Y4Scjs.useChatIdentity.call(void 0, );
|
|
727
727
|
const identityKey = _nullishCoalesce(_optionalChain([identity, 'access', _21 => _21.user, 'optionalAccess', _22 => _22.email]), () => ( "anon"));
|
|
728
728
|
const listEngagementsEndpoint = _nullishCoalesce(_chunkUJ7AXHRZcjs.useRequiredChatRuntime.call(void 0, ).endpoints.listEngagementsUrl, () => ( LIST_ENGAGEMENTS_ENDPOINT));
|
|
729
729
|
const fetchable = enabled && !!externalTicketId && !externalTicketId.startsWith("temp-");
|
|
@@ -796,7 +796,7 @@ function TicketLinkedDeliveryCard({ clickup, className }) {
|
|
|
796
796
|
dateClosed: clickup.date_closed,
|
|
797
797
|
clickupUrl: _nullishCoalesce(clickup.clickup_url, () => ( ""))
|
|
798
798
|
};
|
|
799
|
-
return /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: `${
|
|
799
|
+
return /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: `${_chunkP7KTAXXEcjs.CONTENT_CARD_SKELETON_FRAME_CLASS} ${_nullishCoalesce(className, () => ( ""))}`, children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkTYW7NBP7cjs.DeliveryRow, { item, href: clickup.delivery_href, caption: "Linked delivery" }) });
|
|
800
800
|
}
|
|
801
801
|
|
|
802
802
|
// src/components/tickets/ticket-reply-composer.tsx
|
|
@@ -811,7 +811,7 @@ function TicketReplyComposer({
|
|
|
811
811
|
}) {
|
|
812
812
|
const [resolution, setResolution] = _react.useState.call(void 0, "");
|
|
813
813
|
const [closeDialogOpen, setCloseDialogOpen] = _react.useState.call(void 0, false);
|
|
814
|
-
const attachments =
|
|
814
|
+
const attachments = _chunk7Y5U3Y4Scjs.useChatAttachments.call(void 0, );
|
|
815
815
|
const { readyAttachments, clear: clearAttachments } = attachments;
|
|
816
816
|
const ticketRef = { id: ticket.id, external_id: ticket.external_id };
|
|
817
817
|
const hasReadyFiles = readyAttachments.length > 0;
|
|
@@ -832,7 +832,7 @@ function TicketReplyComposer({
|
|
|
832
832
|
const disabled = busy || supportSystemDown;
|
|
833
833
|
return /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: "flex flex-col gap-2", children: [
|
|
834
834
|
/* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
835
|
-
|
|
835
|
+
_chunk7Y5U3Y4Scjs.ChatAttachmentChipStrip,
|
|
836
836
|
{
|
|
837
837
|
attachments: attachments.attachments,
|
|
838
838
|
onRemove: attachments.removeAttachment,
|
|
@@ -841,7 +841,7 @@ function TicketReplyComposer({
|
|
|
841
841
|
}
|
|
842
842
|
),
|
|
843
843
|
/* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
844
|
-
|
|
844
|
+
_chunkYRULLK7Ncjs.ChatInput,
|
|
845
845
|
{
|
|
846
846
|
fullWidth: true,
|
|
847
847
|
autoFocus: true,
|
|
@@ -849,13 +849,13 @@ function TicketReplyComposer({
|
|
|
849
849
|
sending: busy || attachments.hasInflightUploads,
|
|
850
850
|
disabled: supportSystemDown,
|
|
851
851
|
allowEmptySend: hasReadyFiles,
|
|
852
|
-
maxLength:
|
|
852
|
+
maxLength: _chunkHTMHDEIVcjs.TICKET_TEXT_MAX_CHARS,
|
|
853
853
|
onSend: handleSend
|
|
854
854
|
}
|
|
855
855
|
),
|
|
856
856
|
/* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: "flex w-full items-center gap-2", children: [
|
|
857
857
|
!supportSystemDown && /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
858
|
-
|
|
858
|
+
_chunk7Y5U3Y4Scjs.ChatAttachmentAddButton,
|
|
859
859
|
{
|
|
860
860
|
attachmentsEnabled: true,
|
|
861
861
|
attachmentsCount: attachments.attachments.length,
|
|
@@ -878,25 +878,25 @@ function TicketReplyComposer({
|
|
|
878
878
|
}
|
|
879
879
|
)
|
|
880
880
|
] }),
|
|
881
|
-
/* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
882
|
-
/* @__PURE__ */ _jsxruntime.jsxs.call(void 0,
|
|
883
|
-
/* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
884
|
-
/* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
881
|
+
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkR3FXJXSQcjs.AlertDialog, { open: closeDialogOpen, onOpenChange: setCloseDialogOpen, children: /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, _chunkR3FXJXSQcjs.AlertDialogContent, { className: "border-ods-border bg-ods-card", children: [
|
|
882
|
+
/* @__PURE__ */ _jsxruntime.jsxs.call(void 0, _chunkR3FXJXSQcjs.AlertDialogHeader, { children: [
|
|
883
|
+
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkR3FXJXSQcjs.AlertDialogTitle, { className: "text-ods-text-primary", children: "Close this ticket?" }),
|
|
884
|
+
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkR3FXJXSQcjs.AlertDialogDescription, { className: "text-ods-text-secondary", children: "Add an optional resolution note below. You can reopen the ticket later if needed." })
|
|
885
885
|
] }),
|
|
886
886
|
/* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
887
|
-
|
|
887
|
+
_chunkR3FXJXSQcjs.Textarea,
|
|
888
888
|
{
|
|
889
889
|
value: resolution,
|
|
890
890
|
onChange: (e) => setResolution(e.target.value),
|
|
891
891
|
placeholder: "Resolution (optional)",
|
|
892
892
|
rows: 3,
|
|
893
|
-
maxLength:
|
|
893
|
+
maxLength: _chunkHTMHDEIVcjs.TICKET_TEXT_MAX_CHARS,
|
|
894
894
|
className: "mt-2"
|
|
895
895
|
}
|
|
896
896
|
),
|
|
897
|
-
/* @__PURE__ */ _jsxruntime.jsxs.call(void 0,
|
|
897
|
+
/* @__PURE__ */ _jsxruntime.jsxs.call(void 0, _chunkR3FXJXSQcjs.AlertDialogFooter, { children: [
|
|
898
898
|
/* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
899
|
-
|
|
899
|
+
_chunkR3FXJXSQcjs.AlertDialogCancel,
|
|
900
900
|
{
|
|
901
901
|
disabled: busy,
|
|
902
902
|
className: "border-ods-border bg-transparent text-ods-text-primary hover:bg-ods-border",
|
|
@@ -904,7 +904,7 @@ function TicketReplyComposer({
|
|
|
904
904
|
}
|
|
905
905
|
),
|
|
906
906
|
/* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
907
|
-
|
|
907
|
+
_chunkR3FXJXSQcjs.AlertDialogAction,
|
|
908
908
|
{
|
|
909
909
|
onClick: () => void confirmClose(),
|
|
910
910
|
disabled: busy,
|
|
@@ -966,10 +966,10 @@ var TICKET_FEED_HEIGHT = "h-[60vh] md:h-[420px]";
|
|
|
966
966
|
var TICKET_FEED_INNER = "flex flex-col gap-4 md:gap-6 px-4 md:px-6 py-4 md:py-6";
|
|
967
967
|
var TICKET_FEED_SKELETON_ROWS = 6;
|
|
968
968
|
function TicketTimelinePanel({ ticket }) {
|
|
969
|
-
const identity =
|
|
970
|
-
const externalId =
|
|
969
|
+
const identity = _chunk7Y5U3Y4Scjs.useChatIdentity.call(void 0, );
|
|
970
|
+
const externalId = _chunkHTMHDEIVcjs.isOptimistic.call(void 0, ticket) ? null : ticket.external_id;
|
|
971
971
|
const { engagements, isLoading } = useTicketEngagements(externalId, !!externalId);
|
|
972
|
-
const live =
|
|
972
|
+
const live = _chunkHTMHDEIVcjs.useOptionalTicketLive.call(void 0, );
|
|
973
973
|
const setOpenTicketId = _optionalChain([live, 'optionalAccess', _25 => _25.setOpenTicketId]);
|
|
974
974
|
const markRead = _optionalChain([live, 'optionalAccess', _26 => _26.markRead]);
|
|
975
975
|
const markReadDebounceRef = _react.useRef.call(void 0, null);
|
|
@@ -993,7 +993,7 @@ function TicketTimelinePanel({ ticket }) {
|
|
|
993
993
|
markReadDebounceRef.current = setTimeout(() => {
|
|
994
994
|
markReadDebounceRef.current = null;
|
|
995
995
|
void markRead(externalId);
|
|
996
|
-
},
|
|
996
|
+
}, _chunkHTMHDEIVcjs.TICKET_MARK_READ_DEBOUNCE_MS);
|
|
997
997
|
}, [engagementsCount, externalId, markRead]);
|
|
998
998
|
const { scrollRef, contentRef } = _usesticktobottom.useStickToBottom.call(void 0, { initial: "instant", resize: "smooth" });
|
|
999
999
|
const bodyTurns = ticket.body ? ticket.body.split(TURN_SEPARATOR_RE).map((t) => t.trim()).filter(Boolean) : [];
|
|
@@ -1008,11 +1008,11 @@ function TicketTimelinePanel({ ticket }) {
|
|
|
1008
1008
|
const customerName = (isViewerTheCustomer ? viewerName : null) || ticketCustomerName || viewerName || _optionalChain([identity, 'access', _40 => _40.user, 'optionalAccess', _41 => _41.email]) || "You";
|
|
1009
1009
|
const customerAvatar = isViewerTheCustomer ? _nullishCoalesce(_optionalChain([identity, 'access', _42 => _42.user, 'optionalAccess', _43 => _43.avatarUrl]), () => ( void 0)) : void 0;
|
|
1010
1010
|
if (isLoading) {
|
|
1011
|
-
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,
|
|
1011
|
+
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, _chunkC7NTL2GVcjs.ChatMessageRowSkeleton, {}, i)) }) });
|
|
1012
1012
|
}
|
|
1013
1013
|
if (bodyTurns.length === 0 && engagements.length === 0) {
|
|
1014
1014
|
return /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
1015
|
-
|
|
1015
|
+
_chunkBEC43GHLcjs.EmptyState,
|
|
1016
1016
|
{
|
|
1017
1017
|
type: "generic",
|
|
1018
1018
|
title: "No conversation yet",
|
|
@@ -1027,7 +1027,7 @@ function TicketTimelinePanel({ ticket }) {
|
|
|
1027
1027
|
const isResolution = turn.startsWith("[Resolution]");
|
|
1028
1028
|
const text = isResolution ? turn.replace(/^\[Resolution\]\s*/, "") : turn;
|
|
1029
1029
|
return /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
1030
|
-
|
|
1030
|
+
_chunkC7NTL2GVcjs.ChatMessageRow,
|
|
1031
1031
|
{
|
|
1032
1032
|
displayName: customerName,
|
|
1033
1033
|
avatarUrl: customerAvatar,
|
|
@@ -1056,13 +1056,13 @@ function TicketTimelinePanel({ ticket }) {
|
|
|
1056
1056
|
}
|
|
1057
1057
|
const engAttachments = mapEngagementAttachments(eng.attachments);
|
|
1058
1058
|
return /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
1059
|
-
|
|
1059
|
+
_chunkC7NTL2GVcjs.ChatMessageRow,
|
|
1060
1060
|
{
|
|
1061
1061
|
displayName: author,
|
|
1062
1062
|
avatarUrl: avatarSrc,
|
|
1063
|
-
timeLabel: eng.createdAt ?
|
|
1063
|
+
timeLabel: eng.createdAt ? _chunkPSIKUDUVcjs.formatRelativeTime.call(void 0, eng.createdAt) : null,
|
|
1064
1064
|
body: stripAttachmentsPreamble(_nullishCoalesce(eng.body, () => ( ""))),
|
|
1065
|
-
footer: engAttachments.length > 0 ? /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: "mt-2", children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
1065
|
+
footer: engAttachments.length > 0 ? /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: "mt-2", children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkR3FXJXSQcjs.TicketAttachmentsList, { attachments: engAttachments, size: "compact" }) }) : null
|
|
1066
1066
|
},
|
|
1067
1067
|
eng.id
|
|
1068
1068
|
);
|
|
@@ -1147,7 +1147,7 @@ function AssignedAgentRow({ assignedOwner }) {
|
|
|
1147
1147
|
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, "span", { className: "text-ods-text-secondary text-h5", children: "Assigned to" }),
|
|
1148
1148
|
displayLabel ? /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "span", { className: "flex items-center gap-1.5 font-medium text-ods-text-primary", children: [
|
|
1149
1149
|
/* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
1150
|
-
|
|
1150
|
+
_chunkJHQNUWFMcjs.SquareAvatar,
|
|
1151
1151
|
{
|
|
1152
1152
|
size: "sm",
|
|
1153
1153
|
variant: "round",
|
|
@@ -1175,7 +1175,7 @@ function TicketRow({
|
|
|
1175
1175
|
onActionCollapsed,
|
|
1176
1176
|
id
|
|
1177
1177
|
}) {
|
|
1178
|
-
const optimistic =
|
|
1178
|
+
const optimistic = _chunkHTMHDEIVcjs.isOptimistic.call(void 0, ticket);
|
|
1179
1179
|
const rowRef = _react.useRef.call(void 0, null);
|
|
1180
1180
|
const handleClick = _react.useCallback.call(void 0, () => {
|
|
1181
1181
|
onToggle(ticket.id);
|
|
@@ -1203,7 +1203,7 @@ function TicketRow({
|
|
|
1203
1203
|
// so the badge accurately reflects "Closed" with a checkmark.
|
|
1204
1204
|
statusLabel: _nullishCoalesce(ticket.pipeline_stage_label, () => ( void 0)),
|
|
1205
1205
|
category: _nullishCoalesce(ticket.customer_company, () => ( void 0)),
|
|
1206
|
-
timeAgo: ticket.hubspot_updated_at ?
|
|
1206
|
+
timeAgo: ticket.hubspot_updated_at ? _chunkPSIKUDUVcjs.formatRelativeTime.call(void 0, ticket.hubspot_updated_at) : void 0,
|
|
1207
1207
|
// Linked-work chip: surfaced whenever the ticket has a linked
|
|
1208
1208
|
// ClickUp task. Uses the linked task's own status so the chip text
|
|
1209
1209
|
// reads "Working" / "Waiting on version release" / etc. — useful
|
|
@@ -1213,7 +1213,7 @@ function TicketRow({
|
|
|
1213
1213
|
};
|
|
1214
1214
|
return /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { ref: rowRef, id, className: "scroll-mt-24", children: /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, Collapsible, { open: expanded && !optimistic, className: "border-b border-ods-border last:border-b-0", children: [
|
|
1215
1215
|
/* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
1216
|
-
|
|
1216
|
+
_chunkC7NTL2GVcjs.ChatTicketItem,
|
|
1217
1217
|
{
|
|
1218
1218
|
ticket: tileData,
|
|
1219
1219
|
onClick: optimistic ? void 0 : handleClick,
|
|
@@ -1246,13 +1246,13 @@ function TicketRow({
|
|
|
1246
1246
|
// src/components/tickets/ticket-center.tsx
|
|
1247
1247
|
|
|
1248
1248
|
function TicketCenter({ toast: toast2 = _chunk4FWURR3Wcjs.toast } = {}) {
|
|
1249
|
-
const identity =
|
|
1249
|
+
const identity = _chunk7Y5U3Y4Scjs.useChatIdentity.call(void 0, );
|
|
1250
1250
|
if (identity.isLoading) {
|
|
1251
1251
|
return /* @__PURE__ */ _jsxruntime.jsx.call(void 0, TicketCenterSkeleton, {});
|
|
1252
1252
|
}
|
|
1253
1253
|
if (identity.authTier === "anon" || !_optionalChain([identity, 'access', _62 => _62.user, 'optionalAccess', _63 => _63.email])) {
|
|
1254
1254
|
return /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
1255
|
-
|
|
1255
|
+
_chunkBEC43GHLcjs.EmptyState,
|
|
1256
1256
|
{
|
|
1257
1257
|
type: "generic",
|
|
1258
1258
|
title: "Sign in to manage tickets",
|
|
@@ -1317,7 +1317,7 @@ function TicketCenterAuthed({
|
|
|
1317
1317
|
/* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: "flex items-center gap-3 text-ods-text-secondary text-h6", children: [
|
|
1318
1318
|
lastUpdatedAt && /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "span", { children: [
|
|
1319
1319
|
"Updated ",
|
|
1320
|
-
|
|
1320
|
+
_chunkPSIKUDUVcjs.formatRelativeTime.call(void 0, new Date(lastUpdatedAt))
|
|
1321
1321
|
] }),
|
|
1322
1322
|
/* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
1323
1323
|
_chunk2QMBXGMQcjs.Button,
|
|
@@ -1333,22 +1333,22 @@ function TicketCenterAuthed({
|
|
|
1333
1333
|
)
|
|
1334
1334
|
] })
|
|
1335
1335
|
] }),
|
|
1336
|
-
isLoading ? /* @__PURE__ */ _jsxruntime.jsx.call(void 0, TicketListSkeleton, {}) : merged.length === 0 ? /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
1337
|
-
|
|
1336
|
+
isLoading ? /* @__PURE__ */ _jsxruntime.jsx.call(void 0, TicketListSkeleton, {}) : merged.length === 0 ? /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkP7KTAXXEcjs.Card, { className: "p-6", children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
1337
|
+
_chunkBEC43GHLcjs.EmptyState,
|
|
1338
1338
|
{
|
|
1339
1339
|
type: "generic",
|
|
1340
1340
|
title: "No tickets yet",
|
|
1341
1341
|
description: "Open one above to start the conversation.",
|
|
1342
1342
|
showCTA: false
|
|
1343
1343
|
}
|
|
1344
|
-
) }) : /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
1344
|
+
) }) : /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkP7KTAXXEcjs.Card, { className: "overflow-hidden", children: merged.map((ticket) => /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
1345
1345
|
TicketRow,
|
|
1346
1346
|
{
|
|
1347
|
-
id:
|
|
1347
|
+
id: _chunkC7NTL2GVcjs.devSectionAnchorId.call(void 0, "ticket", ticket.external_id),
|
|
1348
1348
|
ticket,
|
|
1349
1349
|
expanded: expandedTicketId === ticket.id,
|
|
1350
1350
|
onToggle: toggleRow,
|
|
1351
|
-
busy:
|
|
1351
|
+
busy: _chunkHTMHDEIVcjs.isOptimistic.call(void 0, ticket) ? false : actions.isRowBusy(ticket.id),
|
|
1352
1352
|
supportSystemDown,
|
|
1353
1353
|
onSendMessage: actions.sendMessage,
|
|
1354
1354
|
onClose: actions.closeTicket,
|
|
@@ -1362,7 +1362,7 @@ function TicketCenterAuthed({
|
|
|
1362
1362
|
}
|
|
1363
1363
|
function TicketCenterSkeleton() {
|
|
1364
1364
|
return /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: "flex flex-col gap-6", children: [
|
|
1365
|
-
/* @__PURE__ */ _jsxruntime.jsxs.call(void 0,
|
|
1365
|
+
/* @__PURE__ */ _jsxruntime.jsxs.call(void 0, _chunkP7KTAXXEcjs.Card, { className: "p-6", children: [
|
|
1366
1366
|
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunk5M5C6UV4cjs.Skeleton, { className: "mb-4 h-7 w-48" }),
|
|
1367
1367
|
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunk5M5C6UV4cjs.Skeleton, { className: "mb-3 h-10 w-full" }),
|
|
1368
1368
|
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunk5M5C6UV4cjs.Skeleton, { className: "h-24 w-full" })
|
|
@@ -1371,7 +1371,7 @@ function TicketCenterSkeleton() {
|
|
|
1371
1371
|
] });
|
|
1372
1372
|
}
|
|
1373
1373
|
function TicketListSkeleton() {
|
|
1374
|
-
return /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
1374
|
+
return /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkP7KTAXXEcjs.Card, { className: "overflow-hidden", children: [0, 1, 2].map((i) => /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: "flex h-20 items-center gap-4 border-b border-ods-border px-4 last:border-b-0", children: [
|
|
1375
1375
|
/* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: "flex flex-1 flex-col gap-2", children: [
|
|
1376
1376
|
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunk5M5C6UV4cjs.Skeleton, { className: "h-4 w-2/3" }),
|
|
1377
1377
|
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunk5M5C6UV4cjs.Skeleton, { className: "h-3 w-full" })
|
|
@@ -1402,10 +1402,10 @@ function HelpCenterCard({
|
|
|
1402
1402
|
onClearReplyError,
|
|
1403
1403
|
id
|
|
1404
1404
|
}) {
|
|
1405
|
-
const optimistic =
|
|
1405
|
+
const optimistic = _chunkHTMHDEIVcjs.isOptimistic.call(void 0, ticket);
|
|
1406
1406
|
const rawStatus = (_nullishCoalesce(ticket.status, () => ( "OPEN"))).toUpperCase();
|
|
1407
1407
|
const priority = (_nullishCoalesce(ticket.priority, () => ( ""))).toUpperCase();
|
|
1408
|
-
const relativeUpdated = ticket.hubspot_updated_at ?
|
|
1408
|
+
const relativeUpdated = ticket.hubspot_updated_at ? _chunkPSIKUDUVcjs.formatRelativeTime.call(void 0, ticket.hubspot_updated_at) : "recently";
|
|
1409
1409
|
const title = (ticket.subject || "").trim() || "(untitled)";
|
|
1410
1410
|
const subtitle = `UPDATED ${relativeUpdated}, #${ticket.external_id || "\u2014"}${ticket.pipeline_stage_label ? `, ${ticket.pipeline_stage_label}` : ""}`;
|
|
1411
1411
|
const description = _nullishCoalesce(_nullishCoalesce(ticket.preview, () => ( ticket.body)), () => ( ""));
|
|
@@ -1424,11 +1424,11 @@ function HelpCenterCard({
|
|
|
1424
1424
|
});
|
|
1425
1425
|
return () => cancelAnimationFrame(raf);
|
|
1426
1426
|
}, [isExpanded]);
|
|
1427
|
-
const live =
|
|
1427
|
+
const live = _chunkHTMHDEIVcjs.useOptionalTicketLive.call(void 0, );
|
|
1428
1428
|
const unreadCount = !optimistic && ticket.external_id && _optionalChain([live, 'optionalAccess', _64 => _64.unreadByTicket, 'access', _65 => _65[ticket.external_id]]) || 0;
|
|
1429
1429
|
const rightBadges = /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, _jsxruntime.Fragment, { children: [
|
|
1430
1430
|
unreadCount > 0 && /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
1431
|
-
|
|
1431
|
+
_chunkP7KTAXXEcjs.StatusBadge,
|
|
1432
1432
|
{
|
|
1433
1433
|
text: `${unreadCount} NEW`,
|
|
1434
1434
|
colorScheme: "warning",
|
|
@@ -1437,16 +1437,16 @@ function HelpCenterCard({
|
|
|
1437
1437
|
}
|
|
1438
1438
|
),
|
|
1439
1439
|
/* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
1440
|
-
|
|
1440
|
+
_chunkP7KTAXXEcjs.StatusBadge,
|
|
1441
1441
|
{
|
|
1442
1442
|
text: rawStatus,
|
|
1443
|
-
colorScheme:
|
|
1443
|
+
colorScheme: _chunkP7KTAXXEcjs.getStatusColorScheme.call(void 0, rawStatus),
|
|
1444
1444
|
variant: "card",
|
|
1445
1445
|
className: "border border-ods-border"
|
|
1446
1446
|
}
|
|
1447
1447
|
),
|
|
1448
1448
|
priority && /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
1449
|
-
|
|
1449
|
+
_chunkP7KTAXXEcjs.StatusBadge,
|
|
1450
1450
|
{
|
|
1451
1451
|
text: priority,
|
|
1452
1452
|
colorScheme: mapPriorityScheme(priority),
|
|
@@ -1474,7 +1474,7 @@ function HelpCenterCard({
|
|
|
1474
1474
|
"aria-controls": isExpanded ? `help-center-drawer-${ticket.id}` : void 0,
|
|
1475
1475
|
className: "w-full p-[12px] text-left focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-inset focus-visible:ring-ods-accent disabled:cursor-default content-md:p-[16px]",
|
|
1476
1476
|
children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
1477
|
-
|
|
1477
|
+
_chunkTYW7NBP7cjs.DevCardRowContent,
|
|
1478
1478
|
{
|
|
1479
1479
|
title,
|
|
1480
1480
|
subtitle,
|
|
@@ -1575,7 +1575,7 @@ function HelpCenterCreateForm({
|
|
|
1575
1575
|
subjectError && /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "span", { id: "help-center-subject-error", className: "mt-1 text-ods-error text-h6", children: subjectError })
|
|
1576
1576
|
] });
|
|
1577
1577
|
return /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
1578
|
-
|
|
1578
|
+
_chunkIJA3OZWFcjs.ContactForm,
|
|
1579
1579
|
{
|
|
1580
1580
|
rescue: null,
|
|
1581
1581
|
title: "Open a new ticket",
|
|
@@ -1614,30 +1614,30 @@ function HelpCenterCreateForm({
|
|
|
1614
1614
|
// src/components/tickets/help-center-list.tsx
|
|
1615
1615
|
|
|
1616
1616
|
function HelpCenterList({ toast: toast2 = _chunk4FWURR3Wcjs.toast, backButton, title, shell } = {}) {
|
|
1617
|
-
const identity =
|
|
1617
|
+
const identity = _chunk7Y5U3Y4Scjs.useChatIdentity.call(void 0, );
|
|
1618
1618
|
const searchParams = _chunk7DNL734Scjs.useSearchParams.call(void 0, );
|
|
1619
1619
|
const router = _chunk7DNL734Scjs.useRouter.call(void 0, );
|
|
1620
1620
|
const pathname = _chunk7DNL734Scjs.usePathname.call(void 0, );
|
|
1621
|
-
const search = searchParams.get(
|
|
1621
|
+
const search = searchParams.get(_chunkC7NTL2GVcjs.DEV_SECTION_PARAM_KEYS.search) || "";
|
|
1622
1622
|
const status = searchParams.get("status") || "all";
|
|
1623
|
-
const ticketParam = searchParams.get(
|
|
1623
|
+
const ticketParam = searchParams.get(_chunkC7NTL2GVcjs.TICKET_OPEN_PARAM) || "";
|
|
1624
1624
|
const page = _chunkBLH2SFOOcjs.positiveInt.call(void 0, searchParams.get("page"), 1);
|
|
1625
1625
|
if (identity.isLoading) {
|
|
1626
1626
|
return /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
1627
|
-
|
|
1627
|
+
_chunkTYW7NBP7cjs.DevSectionPage,
|
|
1628
1628
|
{
|
|
1629
1629
|
sectionKey: "tickets",
|
|
1630
1630
|
backButton,
|
|
1631
1631
|
title,
|
|
1632
1632
|
shell,
|
|
1633
1633
|
preControls: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, HelpCenterCreateFormSkeleton, {}),
|
|
1634
|
-
children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
1634
|
+
children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkTYW7NBP7cjs.DevCardRowSkeletonList, {})
|
|
1635
1635
|
}
|
|
1636
1636
|
);
|
|
1637
1637
|
}
|
|
1638
1638
|
if (identity.authTier === "anon" || !_optionalChain([identity, 'access', _66 => _66.user, 'optionalAccess', _67 => _67.email])) {
|
|
1639
|
-
return /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
1640
|
-
|
|
1639
|
+
return /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkTYW7NBP7cjs.DevSectionPage, { sectionKey: "tickets", backButton, title, shell, children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
1640
|
+
_chunkBEC43GHLcjs.EmptyState,
|
|
1641
1641
|
{
|
|
1642
1642
|
type: "generic",
|
|
1643
1643
|
title: "Sign in to manage tickets",
|
|
@@ -1688,8 +1688,8 @@ function HelpCenterListAuthed({
|
|
|
1688
1688
|
const setOpenTicket = _react.useCallback.call(void 0,
|
|
1689
1689
|
(externalId) => {
|
|
1690
1690
|
const params = new URLSearchParams(searchParams.toString());
|
|
1691
|
-
if (externalId) params.set(
|
|
1692
|
-
else params.delete(
|
|
1691
|
+
if (externalId) params.set(_chunkC7NTL2GVcjs.TICKET_OPEN_PARAM, externalId);
|
|
1692
|
+
else params.delete(_chunkC7NTL2GVcjs.TICKET_OPEN_PARAM);
|
|
1693
1693
|
const qs = params.toString();
|
|
1694
1694
|
router.replace(qs ? `${pathname}?${qs}` : pathname, { scroll: false });
|
|
1695
1695
|
},
|
|
@@ -1766,15 +1766,15 @@ function HelpCenterListAuthed({
|
|
|
1766
1766
|
] }),
|
|
1767
1767
|
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunk2QMBXGMQcjs.Button, { type: "button", variant: "accent", onClick: () => refetch(), children: "Retry" })
|
|
1768
1768
|
] }),
|
|
1769
|
-
!error && /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: "w-full", children: isLoading ? /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
1769
|
+
!error && /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: "w-full", children: isLoading ? /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkTYW7NBP7cjs.DevCardRowSkeletonList, {}) : !hasResults && isFetching ? (
|
|
1770
1770
|
// Bridge state — background refetch in flight and the
|
|
1771
1771
|
// optimistic placeholder was just removed by the mutation
|
|
1772
1772
|
// callback. Without this branch "No tickets yet" would flash
|
|
1773
1773
|
// for ~50ms between `removeOptimistic` and the server
|
|
1774
1774
|
// response landing.
|
|
1775
|
-
/* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
1775
|
+
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkTYW7NBP7cjs.DevCardRowSkeletonList, { rows: 1 })
|
|
1776
1776
|
) : !hasResults ? /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
1777
|
-
|
|
1777
|
+
_chunkTYW7NBP7cjs.ListEmptyState,
|
|
1778
1778
|
{
|
|
1779
1779
|
isFiltered: hasActiveFilters,
|
|
1780
1780
|
filtered: {
|
|
@@ -1805,11 +1805,11 @@ function HelpCenterListAuthed({
|
|
|
1805
1805
|
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: "w-full overflow-clip rounded-[6px] border border-ods-border bg-ods-card", children: merged.map((ticket) => /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
1806
1806
|
HelpCenterCard,
|
|
1807
1807
|
{
|
|
1808
|
-
id:
|
|
1808
|
+
id: _chunkC7NTL2GVcjs.devSectionAnchorId.call(void 0, "ticket", ticket.external_id),
|
|
1809
1809
|
ticket,
|
|
1810
1810
|
expanded: expandedTicketId === ticket.id,
|
|
1811
1811
|
onToggle: toggleRow,
|
|
1812
|
-
busy:
|
|
1812
|
+
busy: _chunkHTMHDEIVcjs.isOptimistic.call(void 0, ticket) ? false : actions.isRowBusy(ticket.id),
|
|
1813
1813
|
supportSystemDown,
|
|
1814
1814
|
onSendMessage: actions.sendMessage,
|
|
1815
1815
|
onClose: actions.closeTicket,
|
|
@@ -1821,9 +1821,9 @@ function HelpCenterListAuthed({
|
|
|
1821
1821
|
ticket.id
|
|
1822
1822
|
)) })
|
|
1823
1823
|
) }),
|
|
1824
|
-
!error && totalPages > 1 && /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
1824
|
+
!error && totalPages > 1 && /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkBEC43GHLcjs.UnifiedPagination, { currentPage: page, totalPages })
|
|
1825
1825
|
] });
|
|
1826
|
-
return /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
1826
|
+
return /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkTYW7NBP7cjs.DevSectionPage, { sectionKey: "tickets", backButton, title, shell, preControls: form, children: body });
|
|
1827
1827
|
}
|
|
1828
1828
|
|
|
1829
1829
|
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
"use strict";Object.defineProperty(exports, "__esModule", {value: true}); function _nullishCoalesce(lhs, rhsFn) { if (lhs != null) { return lhs; } else { return rhsFn(); } }"use client";
|
|
2
2
|
|
|
3
3
|
|
|
4
|
-
var
|
|
4
|
+
var _chunkJHQNUWFMcjs = require('./chunk-JHQNUWFM.cjs');
|
|
5
5
|
|
|
6
6
|
|
|
7
7
|
var _chunk3ATAYP36cjs = require('./chunk-3ATAYP36.cjs');
|
|
@@ -44,7 +44,7 @@ function AvatarStack({
|
|
|
44
44
|
"aria-label": `${label}: ${names}${unnamed > 0 ? ` and ${unnamed} more` : ""}`,
|
|
45
45
|
children: [
|
|
46
46
|
visible.map((person, i) => /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
47
|
-
|
|
47
|
+
_chunkJHQNUWFMcjs.SquareAvatar,
|
|
48
48
|
{
|
|
49
49
|
variant: "round",
|
|
50
50
|
size,
|