@flamingo-stack/openframe-frontend-core 0.0.770 → 0.0.772
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-C66DWLCR.cjs → chunk-2MAENZL3.cjs} +37 -37
- package/dist/{chunk-2MND64QJ.cjs → chunk-5HBGBLJT.cjs} +50 -63
- package/dist/{chunk-4EJU462O.cjs → chunk-5V7BIUGA.cjs} +2 -2
- package/dist/{chunk-HK6UQVOI.cjs → chunk-7FYOVKQD.cjs} +12 -12
- package/dist/{chunk-MYA6NR2C.cjs → chunk-CTRJNTYU.cjs} +2 -2
- package/dist/{chunk-S5EUREOB.cjs → chunk-E25TJPWV.cjs} +3 -3
- package/dist/{chunk-HQF62LAU.cjs → chunk-FPCGKH5K.cjs} +28 -28
- package/dist/{chunk-VATCQOVC.cjs → chunk-FT5NPAZY.cjs} +17 -17
- package/dist/{chunk-I2TSCJT2.cjs → chunk-HFNWBNLE.cjs} +4 -4
- package/dist/{chunk-MFRIFVDV.cjs → chunk-IHCHU355.cjs} +41 -41
- package/dist/{chunk-NZELWPKO.cjs → chunk-ILZEXCJH.cjs} +98 -98
- package/dist/{chunk-DCBZMWLY.cjs → chunk-J5ZNEAGY.cjs} +24 -24
- package/dist/{chunk-BLTNKLAX.cjs → chunk-JJNOAYD4.cjs} +4 -4
- package/dist/{chunk-QS4G7CHU.cjs → chunk-KSCEAIBS.cjs} +2 -2
- package/dist/{chunk-Q575DR36.cjs → chunk-QOEOY7BJ.cjs} +33 -33
- package/dist/{chunk-SL7KFZWJ.cjs → chunk-QPK2433W.cjs} +24 -24
- package/dist/{chunk-VL44GB2I.cjs → chunk-REFL3YNE.cjs} +13 -13
- package/dist/{chunk-37XVY2RE.cjs → chunk-S3NEBAKD.cjs} +6 -6
- package/dist/{chunk-TBKXXMBU.cjs → chunk-UR3I3J5K.cjs} +90 -86
- package/dist/{chunk-MZLWB5AH.cjs → chunk-V3W56L2D.cjs} +18 -9
- package/dist/{chunk-4BRO3RZ6.cjs → chunk-VZAOLKKF.cjs} +72 -80
- package/dist/{chunk-QMUKTHWM.cjs → chunk-W5LX7DFB.cjs} +3 -3
- package/dist/{chunk-ZVNL5OK6.cjs → chunk-X5Z4HRH7.cjs} +2 -2
- package/dist/{chunk-WUYL4BMD.cjs → chunk-YI3CDGKM.cjs} +70 -70
- package/dist/{chunk-BZLHU4EK.cjs → chunk-ZVKJKWAB.cjs} +713 -695
- package/dist/{chunk-QSLKTDZ4.cjs → chunk-ZYGC2A7G.cjs} +4 -4
- package/dist/{cloud-tenants-IAZQL2JF.cjs → cloud-tenants-CUNC5KBD.cjs} +8 -8
- package/dist/components/case-studies/index.cjs +32 -30
- package/dist/components/case-studies/quote-cards-strip.d.ts +7 -2
- package/dist/components/case-studies/quote-cards-strip.d.ts.map +1 -1
- package/dist/components/case-studies/quote-cards-strip.js +7 -5
- package/dist/components/categories-cart.d.ts +9 -2
- package/dist/components/categories-cart.d.ts.map +1 -1
- package/dist/components/categories-cart.js +9 -4
- package/dist/components/chat/entity-cards/admin-content-card-grid.d.ts +5 -1
- package/dist/components/chat/entity-cards/admin-content-card-grid.d.ts.map +1 -1
- package/dist/components/chat/entity-cards/program-card.d.ts.map +1 -1
- package/dist/components/chat/entity-cards/program-card.js +2 -2
- package/dist/components/chat/index.cjs +5 -5
- package/dist/components/contact/index.cjs +9 -9
- package/dist/components/docs/index.cjs +12 -12
- package/dist/components/embeds/index.cjs +9 -9
- package/dist/components/faq/faq-section.d.ts +7 -4
- package/dist/components/faq/faq-section.d.ts.map +1 -1
- package/dist/components/faq/index.cjs +10 -10
- package/dist/components/faq-accordion.d.ts +2 -4
- package/dist/components/faq-accordion.d.ts.map +1 -1
- package/dist/components/features/capability-explorer.d.ts +8 -2
- package/dist/components/features/capability-explorer.d.ts.map +1 -1
- package/dist/components/features/capability-explorer.js +7 -3
- package/dist/components/features/cards-strip.d.ts +2 -2
- package/dist/components/features/index.cjs +8 -8
- package/dist/components/features/model-token-rates.js +2 -2
- package/dist/components/features/remote-session/remote-desktop-chat-panel.js +2 -2
- package/dist/components/help-center-pages/index.cjs +94 -103
- package/dist/components/help-center-pages/trust-center-page.d.ts +1 -1
- package/dist/components/help-center-pages/trust-center-sections.d.ts +7 -4
- package/dist/components/help-center-pages/trust-center-sections.d.ts.map +1 -1
- package/dist/components/help-center-pages/trust-center-sections.js +5 -14
- package/dist/components/index.cjs +66 -61
- package/dist/components/logs-list.d.ts.map +1 -1
- package/dist/components/logs-list.js +3 -2
- package/dist/components/meeting-scheduler/index.cjs +47 -47
- package/dist/components/navigation/index.cjs +11 -11
- package/dist/components/navigation/multi-level-navigation.d.ts +6 -7
- package/dist/components/navigation/multi-level-navigation.d.ts.map +1 -1
- package/dist/components/onboarding-guides/index.cjs +11 -11
- package/dist/components/onboarding-guides/onboarding-guides-catalog-skeleton.d.ts +5 -5
- package/dist/components/onboarding-guides/onboarding-guides-catalog-skeleton.d.ts.map +1 -1
- package/dist/components/onboarding-guides/onboarding-guides-catalog-skeleton.js +3 -3
- package/dist/components/product-demo/index.cjs +18 -18
- package/dist/components/related-content/index.cjs +5 -5
- package/dist/components/related-content/related-content-section.d.ts.map +1 -1
- package/dist/components/related-content/related-content-section.js +4 -17
- package/dist/components/shared/dev-section/dev-card-row.d.ts +3 -3
- package/dist/components/shared/dev-section/dev-card-row.d.ts.map +1 -1
- package/dist/components/shared/product-release/release-detail-page.js +2 -2
- package/dist/components/shared/roadmap/roadmap-grid-skeleton.d.ts +6 -1
- package/dist/components/shared/roadmap/roadmap-grid-skeleton.d.ts.map +1 -1
- package/dist/components/shared/roadmap/roadmap-grid-skeleton.js +3 -1
- package/dist/components/shared/roadmap/roadmap-grid.d.ts +10 -3
- package/dist/components/shared/roadmap/roadmap-grid.d.ts.map +1 -1
- package/dist/components/shared/roadmap/roadmap-grid.js +6 -3
- package/dist/components/tickets/help-center-list.js +4 -4
- package/dist/components/tickets/hooks/use-tickets-list.d.ts +2 -0
- package/dist/components/tickets/hooks/use-tickets-list.d.ts.map +1 -1
- package/dist/components/tickets/hooks/use-tickets-list.js +3 -2
- package/dist/components/tickets/index.cjs +14 -14
- package/dist/components/tickets/ticket-center.d.ts.map +1 -1
- package/dist/components/tickets/ticket-center.js +3 -9
- package/dist/components/ui/autocomplete.d.ts +5 -0
- package/dist/components/ui/autocomplete.d.ts.map +1 -1
- package/dist/components/ui/autocomplete.js +3 -2
- package/dist/components/ui/data-table/data-table-body.d.ts +5 -2
- package/dist/components/ui/data-table/data-table-body.d.ts.map +1 -1
- package/dist/components/ui/data-table/data-table-body.js +3 -1
- package/dist/components/ui/data-table/data-table-infinite-footer.d.ts +5 -2
- package/dist/components/ui/data-table/data-table-infinite-footer.d.ts.map +1 -1
- package/dist/components/ui/data-table/data-table-infinite-footer.js +5 -2
- package/dist/components/ui/data-table/utils.d.ts +21 -0
- package/dist/components/ui/data-table/utils.d.ts.map +1 -1
- package/dist/components/ui/data-table/utils.js +7 -0
- package/dist/components/ui/index.cjs +8 -8
- package/dist/components/ui/search-input.d.ts +3 -1
- package/dist/components/ui/search-input.d.ts.map +1 -1
- package/dist/components/ui/search-input.js +3 -2
- package/dist/components/ui/searchable-select.d.ts +2 -0
- package/dist/components/ui/searchable-select.d.ts.map +1 -1
- package/dist/components/ui/searchable-select.js +10 -6
- package/dist/components/ui/select.d.ts +11 -1
- package/dist/components/ui/select.d.ts.map +1 -1
- package/dist/components/ui/select.js +13 -5
- package/dist/components/ui/table/table-skeleton.d.ts +2 -2
- package/dist/components/ui/table/table.d.ts +1 -1
- package/dist/components/ui/table/table.d.ts.map +1 -1
- package/dist/components/ui/table/table.js +2 -1
- package/dist/components/ui/table/types.d.ts +1 -0
- package/dist/components/ui/table/types.d.ts.map +1 -1
- package/dist/{devices-7FDK2CGV.cjs → devices-TO4VUO7F.cjs} +9 -9
- package/dist/{embeddable-chat-3FR2RCHM.cjs → embeddable-chat-CEAP424I.cjs} +73 -73
- package/dist/index.cjs +15 -14
- package/dist/{knowledge-ZLHYBG4L.cjs → knowledge-CYJP4XYY.cjs} +9 -9
- package/dist/{logs-G6AFN7A6.cjs → logs-NL3ZBQKC.cjs} +16 -16
- package/dist/{policies-SEOK4IQO.cjs → policies-WTUV4EIT.cjs} +12 -12
- package/dist/{remote-session-WVORQV7V.cjs → remote-session-TC3BZDBZ.cjs} +4 -4
- package/dist/{scripts-HH4YVUBO.cjs → scripts-EE6MLBQP.cjs} +15 -15
- package/dist/{software-update-4A3XJZQB.cjs → software-update-HX6PN4SB.cjs} +12 -12
- package/dist/types/category.d.ts +5 -0
- package/dist/types/category.d.ts.map +1 -1
- package/dist/types/logs.types.d.ts +2 -0
- package/dist/types/logs.types.d.ts.map +1 -1
- package/package.json +1 -1
- package/src/components/case-studies/quote-cards-strip.tsx +16 -7
- package/src/components/categories-cart.tsx +16 -5
- package/src/components/chat/entity-cards/admin-content-card-grid.tsx +5 -1
- package/src/components/chat/entity-cards/program-card.tsx +6 -3
- package/src/components/faq/faq-section.tsx +7 -4
- package/src/components/faq-accordion.tsx +2 -4
- package/src/components/features/capability-explorer.tsx +16 -4
- package/src/components/features/cards-strip.tsx +3 -3
- package/src/components/features/model-token-rates.tsx +4 -4
- package/src/components/features/remote-session/remote-desktop-chat-panel.tsx +4 -4
- package/src/components/help-center-pages/trust-center-page.tsx +1 -1
- package/src/components/help-center-pages/trust-center-sections.tsx +15 -22
- package/src/components/logs-list.tsx +6 -5
- package/src/components/navigation/multi-level-navigation.tsx +6 -7
- package/src/components/onboarding-guides/onboarding-guides-catalog-skeleton.tsx +6 -6
- package/src/components/related-content/related-content-section.tsx +6 -27
- package/src/components/shared/dev-section/dev-card-row.tsx +3 -3
- package/src/components/shared/product-release/release-detail-page.tsx +2 -2
- package/src/components/shared/roadmap/roadmap-grid-skeleton.tsx +8 -2
- package/src/components/shared/roadmap/roadmap-grid.tsx +14 -4
- package/src/components/tickets/help-center-list.tsx +4 -4
- package/src/components/tickets/hooks/use-tickets-list.ts +3 -2
- package/src/components/tickets/ticket-center.tsx +4 -13
- package/src/components/ui/autocomplete.tsx +12 -3
- package/src/components/ui/data-table/data-table-body.tsx +8 -2
- package/src/components/ui/data-table/data-table-infinite-footer.tsx +10 -3
- package/src/components/ui/data-table/utils.ts +18 -0
- package/src/components/ui/search-input.tsx +9 -3
- package/src/components/ui/searchable-select.tsx +18 -9
- package/src/components/ui/select.tsx +28 -7
- package/src/components/ui/table/table-skeleton.tsx +2 -2
- package/src/components/ui/table/table.tsx +4 -1
- package/src/components/ui/table/types.ts +2 -1
- package/src/types/category.ts +5 -0
- package/src/types/logs.types.ts +2 -0
|
@@ -285,7 +285,7 @@ var innerInputStyles = _chunk65VVJSQZcjs.cn.call(void 0,
|
|
|
285
285
|
);
|
|
286
286
|
var AUTOCOMPLETE_ANCHOR_HEIGHT_CLASS = "min-h-11 md:min-h-12";
|
|
287
287
|
var AUTOCOMPLETE_OPTION_ROW_CLASS = "flex min-h-11 items-center border-b border-ods-border px-[var(--spacing-system-mf)] py-[var(--spacing-system-xsf)] last:border-b-0 md:min-h-12 text-h4";
|
|
288
|
-
var
|
|
288
|
+
var AUTOCOMPLETE_LOADING_ROWS = 5;
|
|
289
289
|
var AUTOCOMPLETE_ANCHOR_SHAPE_CLASS = "rounded-[6px]";
|
|
290
290
|
function AutocompleteSkeleton({ label, labelVariant, className }) {
|
|
291
291
|
return /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkYXDHVHB2cjs.FieldWrapper, { label, labelVariant, className, children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkXFRBEXQNcjs.UnifiedSkeleton, { className: _chunk65VVJSQZcjs.cn.call(void 0, "w-full", AUTOCOMPLETE_ANCHOR_SHAPE_CLASS, AUTOCOMPLETE_ANCHOR_HEIGHT_CLASS) }) });
|
|
@@ -311,6 +311,7 @@ function AutocompleteInner(props, ref) {
|
|
|
311
311
|
onInputChange,
|
|
312
312
|
loading = false,
|
|
313
313
|
loadingText = "Loading options",
|
|
314
|
+
loadingRows = AUTOCOMPLETE_LOADING_ROWS,
|
|
314
315
|
fieldLoading = false,
|
|
315
316
|
creatable = false,
|
|
316
317
|
onCreateOption,
|
|
@@ -687,7 +688,7 @@ function AutocompleteInner(props, ref) {
|
|
|
687
688
|
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, ScrollAreaPrimitive.Viewport, { className: "max-h-[240px] min-h-0 w-full [&>div]:!block", children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { role: loading ? void 0 : "listbox", children: loading ? (
|
|
688
689
|
// The options while they are read: the list's own rows, a label bar each (`loadingText` is what a
|
|
689
690
|
// screen reader hears).
|
|
690
|
-
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkWEANWBJHcjs.LoadingRegion, { label: loadingText, children: Array.from({ length:
|
|
691
|
+
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkWEANWBJHcjs.LoadingRegion, { label: loadingText, children: Array.from({ length: loadingRows }, (_, i) => (
|
|
691
692
|
// biome-ignore lint/suspicious/noArrayIndexKey: skeleton rows never reorder
|
|
692
693
|
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: AUTOCOMPLETE_OPTION_ROW_CLASS, "aria-hidden": true, children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkXFRBEXQNcjs.TextLineSkeleton, { type: "inherit", className: "w-2/3" }) }, i)
|
|
693
694
|
)) })
|
|
@@ -939,14 +940,15 @@ var SelectContent = _react.forwardRef.call(void 0, ({ className, children, posit
|
|
|
939
940
|
SelectContent.displayName = SelectPrimitive.Content.displayName;
|
|
940
941
|
var SelectLabel = _react.forwardRef.call(void 0, ({ className, ...props }, ref) => /* @__PURE__ */ _jsxruntime.jsx.call(void 0, SelectPrimitive.Label, { ref, className: _chunk65VVJSQZcjs.cn.call(void 0, "py-1.5 pl-8 pr-2 font-semibold text-h6", className), ...props }));
|
|
941
942
|
SelectLabel.displayName = SelectPrimitive.Label.displayName;
|
|
942
|
-
var SelectItem = _react.forwardRef.call(void 0, ({ className, children, ...props }, ref) => /* @__PURE__ */ _jsxruntime.jsxs.call(void 0,
|
|
943
|
+
var SelectItem = _react.forwardRef.call(void 0, ({ className, children, description, ...props }, ref) => /* @__PURE__ */ _jsxruntime.jsxs.call(void 0,
|
|
943
944
|
SelectPrimitive.Item,
|
|
944
945
|
{
|
|
945
946
|
ref,
|
|
946
947
|
className: _chunk65VVJSQZcjs.cn.call(void 0,
|
|
947
|
-
"flex
|
|
948
|
+
"flex w-full cursor-pointer select-none items-center justify-between gap-2 border-b border-ods-border px-4 last:border-b-0",
|
|
948
949
|
// Typography - match trigger
|
|
949
|
-
"
|
|
950
|
+
"text-h4",
|
|
951
|
+
description == null ? "h-11 whitespace-nowrap md:h-12" : "min-h-11 whitespace-normal py-[var(--spacing-system-xs)] md:min-h-12",
|
|
950
952
|
// Hover state with visible background change
|
|
951
953
|
"outline-none hover:bg-ods-bg-hover data-[highlighted]:bg-ods-bg-surface",
|
|
952
954
|
"data-[disabled]:pointer-events-none data-[disabled]:opacity-50",
|
|
@@ -955,8 +957,15 @@ var SelectItem = _react.forwardRef.call(void 0, ({ className, children, ...props
|
|
|
955
957
|
),
|
|
956
958
|
...props,
|
|
957
959
|
children: [
|
|
958
|
-
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, SelectPrimitive.ItemText, { children })
|
|
959
|
-
|
|
960
|
+
description == null ? /* @__PURE__ */ _jsxruntime.jsx.call(void 0, SelectPrimitive.ItemText, { children }) : (
|
|
961
|
+
// min-w-0 lets the column shrink below its longest line, which is what
|
|
962
|
+
// makes the lines wrap instead of pushing past the list's edge.
|
|
963
|
+
/* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "span", { className: "flex min-w-0 flex-col text-left", children: [
|
|
964
|
+
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, SelectPrimitive.ItemText, { children }),
|
|
965
|
+
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, "span", { className: "text-ods-text-secondary text-h6", children: description })
|
|
966
|
+
] })
|
|
967
|
+
),
|
|
968
|
+
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, SelectPrimitive.ItemIndicator, { className: "shrink-0", children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkXIBCMGBWcjs.CheckIcon, { className: "text-ods-accent", size: 20 }) })
|
|
960
969
|
]
|
|
961
970
|
}
|
|
962
971
|
));
|
|
@@ -2218,7 +2227,7 @@ function RemoteDesktopChatMessageRowSkeleton() {
|
|
|
2218
2227
|
// src/components/features/remote-session/remote-desktop-chat-panel.tsx
|
|
2219
2228
|
|
|
2220
2229
|
|
|
2221
|
-
var
|
|
2230
|
+
var CHAT_PANEL_SKELETON_ROWS = 10;
|
|
2222
2231
|
var REMOTE_DESKTOP_CHAT_END_USER_NAME = "User";
|
|
2223
2232
|
function RemoteDesktopChatPanel({
|
|
2224
2233
|
messages,
|
|
@@ -2246,7 +2255,7 @@ function RemoteDesktopChatPanel({
|
|
|
2246
2255
|
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { ref: scrollRef, className: "min-h-0 flex-1 overflow-y-auto", children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: "flex min-h-full flex-col justify-end gap-[var(--spacing-system-xsf)]", children: rows.length === 0 && loading ? (
|
|
2247
2256
|
// The chat while it is read: a screen of the panel's own message rows, stacked by a one-column grid
|
|
2248
2257
|
// (the thread above is already the column flexbox: WEBVIEW-001).
|
|
2249
|
-
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkWEANWBJHcjs.LoadingRegion, { label: "Loading the chat", className: "grid grid-cols-1 gap-[var(--spacing-system-xsf)]", children: Array.from({ length:
|
|
2258
|
+
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkWEANWBJHcjs.LoadingRegion, { label: "Loading the chat", className: "grid grid-cols-1 gap-[var(--spacing-system-xsf)]", children: Array.from({ length: CHAT_PANEL_SKELETON_ROWS }, (_, i) => (
|
|
2250
2259
|
// biome-ignore lint/suspicious/noArrayIndexKey: skeleton rows never reorder
|
|
2251
2260
|
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, RemoteDesktopChatMessageRowSkeleton, {}, i)
|
|
2252
2261
|
)) })
|
|
@@ -1,7 +1,7 @@
|
|
|
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 _chunkJ5ZNEAGYcjs = require('./chunk-J5ZNEAGY.cjs');
|
|
5
5
|
|
|
6
6
|
|
|
7
7
|
|
|
@@ -9,14 +9,14 @@ var _chunkDCBZMWLYcjs = require('./chunk-DCBZMWLY.cjs');
|
|
|
9
9
|
|
|
10
10
|
|
|
11
11
|
|
|
12
|
-
var
|
|
12
|
+
var _chunkQPK2433Wcjs = require('./chunk-QPK2433W.cjs');
|
|
13
13
|
|
|
14
14
|
|
|
15
15
|
|
|
16
|
-
var
|
|
16
|
+
var _chunkJJNOAYD4cjs = require('./chunk-JJNOAYD4.cjs');
|
|
17
17
|
|
|
18
18
|
|
|
19
|
-
var
|
|
19
|
+
var _chunkHFNWBNLEcjs = require('./chunk-HFNWBNLE.cjs');
|
|
20
20
|
|
|
21
21
|
|
|
22
22
|
|
|
@@ -29,7 +29,7 @@ var _chunkI2TSCJT2cjs = require('./chunk-I2TSCJT2.cjs');
|
|
|
29
29
|
|
|
30
30
|
|
|
31
31
|
|
|
32
|
-
var
|
|
32
|
+
var _chunkZVKJKWABcjs = require('./chunk-ZVKJKWAB.cjs');
|
|
33
33
|
|
|
34
34
|
|
|
35
35
|
|
|
@@ -43,13 +43,13 @@ var _chunkXVFM6SJAcjs = require('./chunk-XVFM6SJA.cjs');
|
|
|
43
43
|
|
|
44
44
|
|
|
45
45
|
|
|
46
|
-
var
|
|
46
|
+
var _chunkYI3CDGKMcjs = require('./chunk-YI3CDGKM.cjs');
|
|
47
47
|
|
|
48
48
|
|
|
49
49
|
|
|
50
50
|
|
|
51
51
|
|
|
52
|
-
var
|
|
52
|
+
var _chunkILZEXCJHcjs = require('./chunk-ILZEXCJH.cjs');
|
|
53
53
|
|
|
54
54
|
|
|
55
55
|
var _chunkEHJE3UWZcjs = require('./chunk-EHJE3UWZ.cjs');
|
|
@@ -73,7 +73,7 @@ var _chunk7DNL734Scjs = require('./chunk-7DNL734S.cjs');
|
|
|
73
73
|
|
|
74
74
|
|
|
75
75
|
|
|
76
|
-
var
|
|
76
|
+
var _chunk5V7BIUGAcjs = require('./chunk-5V7BIUGA.cjs');
|
|
77
77
|
|
|
78
78
|
|
|
79
79
|
var _chunkHY6BCZH7cjs = require('./chunk-HY6BCZH7.cjs');
|
|
@@ -107,9 +107,6 @@ var _chunkXFRBEXQNcjs = require('./chunk-XFRBEXQN.cjs');
|
|
|
107
107
|
|
|
108
108
|
var _chunkTF5D5MNOcjs = require('./chunk-TF5D5MNO.cjs');
|
|
109
109
|
|
|
110
|
-
|
|
111
|
-
var _chunk65VVJSQZcjs = require('./chunk-65VVJSQZ.cjs');
|
|
112
|
-
|
|
113
110
|
// src/components/tickets/ticket-center.tsx
|
|
114
111
|
var _reactquery = require('@tanstack/react-query');
|
|
115
112
|
var _lucidereact = require('lucide-react');
|
|
@@ -154,7 +151,7 @@ var TicketActionFailure = class extends Error {
|
|
|
154
151
|
function useTicketActions(options) {
|
|
155
152
|
const queryClient = _reactquery.useQueryClient.call(void 0, );
|
|
156
153
|
const ticketActionEndpoint = _nullishCoalesce(_chunkUJ7AXHRZcjs.useRequiredChatRuntime.call(void 0, ).endpoints.ticketActionUrl, () => ( TICKET_ACTION_ENDPOINT));
|
|
157
|
-
const ticketLive =
|
|
154
|
+
const ticketLive = _chunkHFNWBNLEcjs.useOptionalTicketLive.call(void 0, );
|
|
158
155
|
const notifyTicketCreated = _optionalChain([ticketLive, 'optionalAccess', _2 => _2.notifyTicketCreated]);
|
|
159
156
|
const { prependOptimistic, removeOptimistic, removeTicketFromCache, toast: toast2, onSupportSystemDown } = options;
|
|
160
157
|
const formInFlightRef = _react.useRef.call(void 0, null);
|
|
@@ -564,7 +561,7 @@ function resolveErrorCode(bodyCode, status) {
|
|
|
564
561
|
// src/components/tickets/hooks/use-tickets-list.ts
|
|
565
562
|
|
|
566
563
|
var FIND_TICKET_ENDPOINT = "/api/chat/agent/find-ticket";
|
|
567
|
-
var
|
|
564
|
+
var TICKETS_PAGE_SIZE = 20;
|
|
568
565
|
function useTicketsList(filters) {
|
|
569
566
|
const findTicketEndpoint = _nullishCoalesce(_chunkUJ7AXHRZcjs.useRequiredChatRuntime.call(void 0, ).endpoints.findTicketUrl, () => ( FIND_TICKET_ENDPOINT));
|
|
570
567
|
const customerEmail = filters.customerEmail;
|
|
@@ -572,7 +569,7 @@ function useTicketsList(filters) {
|
|
|
572
569
|
const status = (_nullishCoalesce(filters.status, () => ( ""))).trim().toLowerCase();
|
|
573
570
|
const statusFilter = status && status !== "all" ? status : "";
|
|
574
571
|
const page = _chunkBLH2SFOOcjs.positiveInt.call(void 0, filters.page, 1);
|
|
575
|
-
const pageSize = _chunkBLH2SFOOcjs.positiveInt.call(void 0, filters.pageSize,
|
|
572
|
+
const pageSize = _chunkBLH2SFOOcjs.positiveInt.call(void 0, filters.pageSize, TICKETS_PAGE_SIZE, { max: _chunkBLH2SFOOcjs.PAGE_PARAM_LIMITS.maxPageSize });
|
|
576
573
|
const enabled = !!customerEmail;
|
|
577
574
|
const identityKey = customerEmail || "anon";
|
|
578
575
|
const query = _reactquery.useQuery.call(void 0, {
|
|
@@ -647,7 +644,7 @@ var COUNTER_VISIBLE_AT = Math.floor(TICKET_TEXT_MAX_CHARS * 0.8);
|
|
|
647
644
|
function TicketOpenForm({ onSubmit, isSubmitting, supportSystemDown }) {
|
|
648
645
|
const [subject, setSubject] = _react.useState.call(void 0, "");
|
|
649
646
|
const [content, setContent] = _react.useState.call(void 0, "");
|
|
650
|
-
const { attachments, readyAttachments, hasInflightUploads, addFiles, removeAttachment, clear } =
|
|
647
|
+
const { attachments, readyAttachments, hasInflightUploads, addFiles, removeAttachment, clear } = _chunkILZEXCJHcjs.useChatAttachments.call(void 0, );
|
|
651
648
|
const trimmedSubject = subject.trim();
|
|
652
649
|
const trimmedContent = content.trim();
|
|
653
650
|
const overCap = content.length > TICKET_TEXT_MAX_CHARS;
|
|
@@ -667,7 +664,7 @@ function TicketOpenForm({ onSubmit, isSubmitting, supportSystemDown }) {
|
|
|
667
664
|
clear();
|
|
668
665
|
}
|
|
669
666
|
};
|
|
670
|
-
return /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
667
|
+
return /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunk5V7BIUGAcjs.Card, { className: "p-6", children: /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "form", { onSubmit: handleSubmit, className: "flex flex-col gap-6 md:flex-row", ..._chunkYI3CDGKMcjs.HUBSPOT_DO_NOT_COLLECT_FORM_PROPS, children: [
|
|
671
668
|
/* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: "min-w-0 flex-1 md:max-w-md", children: [
|
|
672
669
|
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, "h2", { className: "mb-2 text-ods-text-primary text-h2", children: "Need Support?" }),
|
|
673
670
|
/* @__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." }),
|
|
@@ -692,7 +689,7 @@ function TicketOpenForm({ onSubmit, isSubmitting, supportSystemDown }) {
|
|
|
692
689
|
/* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { children: [
|
|
693
690
|
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, "label", { htmlFor: "ticket-content", className: "mb-1 block text-ods-text-primary text-h6", children: "Your Message" }),
|
|
694
691
|
/* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
695
|
-
|
|
692
|
+
_chunkZVKJKWABcjs.Textarea,
|
|
696
693
|
{
|
|
697
694
|
id: "ticket-content",
|
|
698
695
|
placeholder: "Describe your issue or question in detail...",
|
|
@@ -710,7 +707,7 @@ function TicketOpenForm({ onSubmit, isSubmitting, supportSystemDown }) {
|
|
|
710
707
|
] })
|
|
711
708
|
] }),
|
|
712
709
|
/* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
713
|
-
|
|
710
|
+
_chunkILZEXCJHcjs.ChatAttachmentChipStrip,
|
|
714
711
|
{
|
|
715
712
|
attachments,
|
|
716
713
|
onRemove: removeAttachment,
|
|
@@ -719,7 +716,7 @@ function TicketOpenForm({ onSubmit, isSubmitting, supportSystemDown }) {
|
|
|
719
716
|
),
|
|
720
717
|
/* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: "flex items-center justify-between gap-3", children: [
|
|
721
718
|
/* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
722
|
-
|
|
719
|
+
_chunkILZEXCJHcjs.ChatAttachmentAddButton,
|
|
723
720
|
{
|
|
724
721
|
attachmentsEnabled: !supportSystemDown,
|
|
725
722
|
attachmentsCount: attachments.length,
|
|
@@ -749,7 +746,7 @@ var _usesticktobottom = require('use-stick-to-bottom');
|
|
|
749
746
|
|
|
750
747
|
var LIST_ENGAGEMENTS_ENDPOINT = "/api/chat/agent/list-engagements";
|
|
751
748
|
function useTicketEngagements(externalTicketId, enabled = true) {
|
|
752
|
-
const identity =
|
|
749
|
+
const identity = _chunkILZEXCJHcjs.useChatIdentity.call(void 0, );
|
|
753
750
|
const identityKey = _nullishCoalesce(_optionalChain([identity, 'access', _22 => _22.user, 'optionalAccess', _23 => _23.email]), () => ( "anon"));
|
|
754
751
|
const listEngagementsEndpoint = _nullishCoalesce(_chunkUJ7AXHRZcjs.useRequiredChatRuntime.call(void 0, ).endpoints.listEngagementsUrl, () => ( LIST_ENGAGEMENTS_ENDPOINT));
|
|
755
752
|
const fetchable = enabled && !!externalTicketId && !externalTicketId.startsWith("temp-");
|
|
@@ -822,7 +819,7 @@ function TicketLinkedDeliveryCard({ clickup, className }) {
|
|
|
822
819
|
dateClosed: clickup.date_closed,
|
|
823
820
|
clickupUrl: _nullishCoalesce(clickup.clickup_url, () => ( ""))
|
|
824
821
|
};
|
|
825
|
-
return /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: `${
|
|
822
|
+
return /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: `${_chunk5V7BIUGAcjs.CONTENT_CARD_SKELETON_FRAME_CLASS} ${_nullishCoalesce(className, () => ( ""))}`, children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkQPK2433Wcjs.DeliveryRow, { item, href: clickup.delivery_href, caption: "Linked delivery" }) });
|
|
826
823
|
}
|
|
827
824
|
|
|
828
825
|
// src/components/tickets/ticket-reply-composer.tsx
|
|
@@ -837,7 +834,7 @@ function TicketReplyComposer({
|
|
|
837
834
|
}) {
|
|
838
835
|
const [resolution, setResolution] = _react.useState.call(void 0, "");
|
|
839
836
|
const [closeDialogOpen, setCloseDialogOpen] = _react.useState.call(void 0, false);
|
|
840
|
-
const attachments =
|
|
837
|
+
const attachments = _chunkILZEXCJHcjs.useChatAttachments.call(void 0, );
|
|
841
838
|
const { readyAttachments, clear: clearAttachments } = attachments;
|
|
842
839
|
const ticketRef = { id: ticket.id, external_id: ticket.external_id };
|
|
843
840
|
const hasReadyFiles = readyAttachments.length > 0;
|
|
@@ -858,7 +855,7 @@ function TicketReplyComposer({
|
|
|
858
855
|
const disabled = busy || supportSystemDown;
|
|
859
856
|
return /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: "flex flex-col gap-2", children: [
|
|
860
857
|
/* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
861
|
-
|
|
858
|
+
_chunkILZEXCJHcjs.ChatAttachmentChipStrip,
|
|
862
859
|
{
|
|
863
860
|
attachments: attachments.attachments,
|
|
864
861
|
onRemove: attachments.removeAttachment,
|
|
@@ -881,7 +878,7 @@ function TicketReplyComposer({
|
|
|
881
878
|
),
|
|
882
879
|
/* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: "flex w-full items-center gap-2", children: [
|
|
883
880
|
!supportSystemDown && /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
884
|
-
|
|
881
|
+
_chunkILZEXCJHcjs.ChatAttachmentAddButton,
|
|
885
882
|
{
|
|
886
883
|
attachmentsEnabled: true,
|
|
887
884
|
attachmentsCount: attachments.attachments.length,
|
|
@@ -904,13 +901,13 @@ function TicketReplyComposer({
|
|
|
904
901
|
}
|
|
905
902
|
)
|
|
906
903
|
] }),
|
|
907
|
-
/* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
908
|
-
/* @__PURE__ */ _jsxruntime.jsxs.call(void 0,
|
|
909
|
-
/* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
910
|
-
/* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
904
|
+
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkZVKJKWABcjs.AlertDialog, { open: closeDialogOpen, onOpenChange: setCloseDialogOpen, children: /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, _chunkZVKJKWABcjs.AlertDialogContent, { className: "border-ods-border bg-ods-card", children: [
|
|
905
|
+
/* @__PURE__ */ _jsxruntime.jsxs.call(void 0, _chunkZVKJKWABcjs.AlertDialogHeader, { children: [
|
|
906
|
+
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkZVKJKWABcjs.AlertDialogTitle, { className: "text-ods-text-primary", children: "Close this ticket?" }),
|
|
907
|
+
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkZVKJKWABcjs.AlertDialogDescription, { className: "text-ods-text-secondary", children: "Add an optional resolution note below. You can reopen the ticket later if needed." })
|
|
911
908
|
] }),
|
|
912
909
|
/* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
913
|
-
|
|
910
|
+
_chunkZVKJKWABcjs.Textarea,
|
|
914
911
|
{
|
|
915
912
|
value: resolution,
|
|
916
913
|
onChange: (e) => setResolution(e.target.value),
|
|
@@ -920,9 +917,9 @@ function TicketReplyComposer({
|
|
|
920
917
|
className: "mt-2"
|
|
921
918
|
}
|
|
922
919
|
),
|
|
923
|
-
/* @__PURE__ */ _jsxruntime.jsxs.call(void 0,
|
|
920
|
+
/* @__PURE__ */ _jsxruntime.jsxs.call(void 0, _chunkZVKJKWABcjs.AlertDialogFooter, { children: [
|
|
924
921
|
/* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
925
|
-
|
|
922
|
+
_chunkZVKJKWABcjs.AlertDialogCancel,
|
|
926
923
|
{
|
|
927
924
|
disabled: busy,
|
|
928
925
|
className: "border-ods-border bg-transparent text-ods-text-primary hover:bg-ods-border",
|
|
@@ -930,7 +927,7 @@ function TicketReplyComposer({
|
|
|
930
927
|
}
|
|
931
928
|
),
|
|
932
929
|
/* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
933
|
-
|
|
930
|
+
_chunkZVKJKWABcjs.AlertDialogAction,
|
|
934
931
|
{
|
|
935
932
|
onClick: () => void confirmClose(),
|
|
936
933
|
disabled: busy,
|
|
@@ -992,10 +989,10 @@ var TICKET_FEED_HEIGHT = "h-[60vh] md:h-[420px]";
|
|
|
992
989
|
var TICKET_FEED_INNER = "flex flex-col gap-4 md:gap-6 px-4 md:px-6 py-4 md:py-6";
|
|
993
990
|
var TICKET_FEED_SKELETON_ROWS = 6;
|
|
994
991
|
function TicketTimelinePanel({ ticket }) {
|
|
995
|
-
const identity =
|
|
992
|
+
const identity = _chunkILZEXCJHcjs.useChatIdentity.call(void 0, );
|
|
996
993
|
const externalId = isOptimistic(ticket) ? null : ticket.external_id;
|
|
997
994
|
const { engagements, isLoading } = useTicketEngagements(externalId, !!externalId);
|
|
998
|
-
const live =
|
|
995
|
+
const live = _chunkHFNWBNLEcjs.useOptionalTicketLive.call(void 0, );
|
|
999
996
|
const setOpenTicketId = _optionalChain([live, 'optionalAccess', _26 => _26.setOpenTicketId]);
|
|
1000
997
|
const markRead = _optionalChain([live, 'optionalAccess', _27 => _27.markRead]);
|
|
1001
998
|
const markReadDebounceRef = _react.useRef.call(void 0, null);
|
|
@@ -1034,11 +1031,11 @@ function TicketTimelinePanel({ ticket }) {
|
|
|
1034
1031
|
const customerName = (isViewerTheCustomer ? viewerName : null) || ticketCustomerName || viewerName || _optionalChain([identity, 'access', _41 => _41.user, 'optionalAccess', _42 => _42.email]) || "You";
|
|
1035
1032
|
const customerAvatar = isViewerTheCustomer ? _nullishCoalesce(_optionalChain([identity, 'access', _43 => _43.user, 'optionalAccess', _44 => _44.avatarUrl]), () => ( void 0)) : void 0;
|
|
1036
1033
|
if (isLoading) {
|
|
1037
|
-
return /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: `${TICKET_FEED_FRAME} ${TICKET_FEED_HEIGHT}`, children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkWEANWBJHcjs.LoadingRegion, { label: "Loading messages", className: TICKET_FEED_INNER, children: Array.from({ length: TICKET_FEED_SKELETON_ROWS }, (_, i) => /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
1034
|
+
return /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: `${TICKET_FEED_FRAME} ${TICKET_FEED_HEIGHT}`, children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkWEANWBJHcjs.LoadingRegion, { label: "Loading messages", className: TICKET_FEED_INNER, children: Array.from({ length: TICKET_FEED_SKELETON_ROWS }, (_, i) => /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkYI3CDGKMcjs.ChatMessageRowSkeleton, {}, i)) }) });
|
|
1038
1035
|
}
|
|
1039
1036
|
if (bodyTurns.length === 0 && engagements.length === 0) {
|
|
1040
1037
|
return /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
1041
|
-
|
|
1038
|
+
_chunkJJNOAYD4cjs.EmptyState,
|
|
1042
1039
|
{
|
|
1043
1040
|
type: "generic",
|
|
1044
1041
|
title: "No conversation yet",
|
|
@@ -1053,7 +1050,7 @@ function TicketTimelinePanel({ ticket }) {
|
|
|
1053
1050
|
const isResolution = turn.startsWith("[Resolution]");
|
|
1054
1051
|
const text = isResolution ? turn.replace(/^\[Resolution\]\s*/, "") : turn;
|
|
1055
1052
|
return /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
1056
|
-
|
|
1053
|
+
_chunkYI3CDGKMcjs.ChatMessageRow,
|
|
1057
1054
|
{
|
|
1058
1055
|
displayName: customerName,
|
|
1059
1056
|
avatarUrl: customerAvatar,
|
|
@@ -1082,13 +1079,13 @@ function TicketTimelinePanel({ ticket }) {
|
|
|
1082
1079
|
}
|
|
1083
1080
|
const engAttachments = mapEngagementAttachments(eng.attachments);
|
|
1084
1081
|
return /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
1085
|
-
|
|
1082
|
+
_chunkYI3CDGKMcjs.ChatMessageRow,
|
|
1086
1083
|
{
|
|
1087
1084
|
displayName: author,
|
|
1088
1085
|
avatarUrl: avatarSrc,
|
|
1089
1086
|
timeLabel: eng.createdAt ? _chunkEHJE3UWZcjs.formatRelativeTime.call(void 0, eng.createdAt) : null,
|
|
1090
1087
|
body: stripAttachmentsPreamble(_nullishCoalesce(eng.body, () => ( ""))),
|
|
1091
|
-
footer: engAttachments.length > 0 ? /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: "mt-2", children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
1088
|
+
footer: engAttachments.length > 0 ? /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: "mt-2", children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkZVKJKWABcjs.TicketAttachmentsList, { attachments: engAttachments, size: "compact" }) }) : null
|
|
1092
1089
|
},
|
|
1093
1090
|
eng.id
|
|
1094
1091
|
);
|
|
@@ -1239,7 +1236,7 @@ function TicketRow({
|
|
|
1239
1236
|
};
|
|
1240
1237
|
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: [
|
|
1241
1238
|
/* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
1242
|
-
|
|
1239
|
+
_chunkYI3CDGKMcjs.ChatTicketItem,
|
|
1243
1240
|
{
|
|
1244
1241
|
ticket: tileData,
|
|
1245
1242
|
onClick: optimistic ? void 0 : handleClick,
|
|
@@ -1274,19 +1271,18 @@ function TicketRow({
|
|
|
1274
1271
|
var TICKET_CENTER_CLASS = "flex flex-col gap-6";
|
|
1275
1272
|
var TICKET_LIST_BLOCK_CLASS = "flex flex-col gap-2";
|
|
1276
1273
|
var TICKET_ROW_FRAME_CLASS = "border-b border-ods-border last:border-b-0";
|
|
1277
|
-
var TICKET_LIST_FOLD = { phone: 2, wide: 4 };
|
|
1278
1274
|
function TicketCenter({ toast: toast2 = _chunkXVFM6SJAcjs.toast } = {}) {
|
|
1279
1275
|
if (_chunkXFRBEXQNcjs.useLoadingScope.call(void 0, )) return /* @__PURE__ */ _jsxruntime.jsx.call(void 0, TicketCenterPending, { region: false });
|
|
1280
1276
|
return /* @__PURE__ */ _jsxruntime.jsx.call(void 0, TicketCenterGate, { toast: toast2 });
|
|
1281
1277
|
}
|
|
1282
1278
|
function TicketCenterGate({ toast: toast2 }) {
|
|
1283
|
-
const identity =
|
|
1279
|
+
const identity = _chunkILZEXCJHcjs.useChatIdentity.call(void 0, );
|
|
1284
1280
|
if (identity.isLoading) {
|
|
1285
1281
|
return /* @__PURE__ */ _jsxruntime.jsx.call(void 0, TicketCenterPending, {});
|
|
1286
1282
|
}
|
|
1287
1283
|
if (identity.authTier === "anon" || !_optionalChain([identity, 'access', _63 => _63.user, 'optionalAccess', _64 => _64.email])) {
|
|
1288
1284
|
return /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
1289
|
-
|
|
1285
|
+
_chunkJJNOAYD4cjs.EmptyState,
|
|
1290
1286
|
{
|
|
1291
1287
|
type: "generic",
|
|
1292
1288
|
title: "Sign in to manage tickets",
|
|
@@ -1335,7 +1331,7 @@ function TicketCenterAuthed({
|
|
|
1335
1331
|
const toggleRow = _react.useCallback.call(void 0, (id) => {
|
|
1336
1332
|
setExpandedTicketId((prev) => prev === id ? null : id);
|
|
1337
1333
|
}, []);
|
|
1338
|
-
const syncInPage =
|
|
1334
|
+
const syncInPage = _chunkQPK2433Wcjs.usePageDataSync.call(void 0, sync, isLoading);
|
|
1339
1335
|
const merged = [...optimisticTickets, ...tickets];
|
|
1340
1336
|
return /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
1341
1337
|
TicketCenterView,
|
|
@@ -1351,7 +1347,7 @@ function TicketCenterAuthed({
|
|
|
1351
1347
|
renderRow: (ticket) => /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
1352
1348
|
TicketRow,
|
|
1353
1349
|
{
|
|
1354
|
-
id:
|
|
1350
|
+
id: _chunkYI3CDGKMcjs.devSectionAnchorId.call(void 0, "ticket", ticket.external_id),
|
|
1355
1351
|
ticket,
|
|
1356
1352
|
expanded: expandedTicketId === ticket.id,
|
|
1357
1353
|
onToggle: toggleRow,
|
|
@@ -1370,7 +1366,7 @@ function TicketCenterAuthed({
|
|
|
1370
1366
|
function TicketCenterPending({
|
|
1371
1367
|
region = true
|
|
1372
1368
|
} = {}) {
|
|
1373
|
-
const syncInPage =
|
|
1369
|
+
const syncInPage = _chunkQPK2433Wcjs.usePageDataSync.call(void 0, null, true);
|
|
1374
1370
|
return /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkWEANWBJHcjs.LoadingRegion, { label: "Loading tickets", announce: region, children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkXFRBEXQNcjs.LoadingScope, { children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
1375
1371
|
TicketCenterView,
|
|
1376
1372
|
{
|
|
@@ -1412,8 +1408,8 @@ function TicketList({
|
|
|
1412
1408
|
}) {
|
|
1413
1409
|
if (_chunkXFRBEXQNcjs.useLoadingScope.call(void 0, ) || loading) return /* @__PURE__ */ _jsxruntime.jsx.call(void 0, TicketListSkeleton, {});
|
|
1414
1410
|
if (tickets.length === 0) {
|
|
1415
|
-
return /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
1416
|
-
|
|
1411
|
+
return /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunk5V7BIUGAcjs.Card, { className: "p-6", children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
1412
|
+
_chunkJJNOAYD4cjs.EmptyState,
|
|
1417
1413
|
{
|
|
1418
1414
|
type: "generic",
|
|
1419
1415
|
title: "No tickets yet",
|
|
@@ -1422,7 +1418,7 @@ function TicketList({
|
|
|
1422
1418
|
}
|
|
1423
1419
|
) });
|
|
1424
1420
|
}
|
|
1425
|
-
return /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
1421
|
+
return /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunk5V7BIUGAcjs.Card, { className: "overflow-hidden", children: tickets.map(renderRow) });
|
|
1426
1422
|
}
|
|
1427
1423
|
function TicketListHeader({
|
|
1428
1424
|
sync,
|
|
@@ -1433,7 +1429,7 @@ function TicketListHeader({
|
|
|
1433
1429
|
return /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: "flex items-center justify-between gap-3", children: [
|
|
1434
1430
|
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, "p", { className: "text-ods-text-secondary text-h5", children: "Your Current Tickets" }),
|
|
1435
1431
|
/* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: "flex items-center gap-3 text-ods-text-secondary text-h6", children: [
|
|
1436
|
-
sync !== void 0 && /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
1432
|
+
sync !== void 0 && /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkZVKJKWABcjs.DataSyncLine, { sync, loading: syncLoading, inline: true }),
|
|
1437
1433
|
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, "span", { inert: !onRefresh || void 0, "aria-hidden": !onRefresh || void 0, children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
1438
1434
|
_chunkTF5D5MNOcjs.Button,
|
|
1439
1435
|
{
|
|
@@ -1450,15 +1446,11 @@ function TicketListHeader({
|
|
|
1450
1446
|
] });
|
|
1451
1447
|
}
|
|
1452
1448
|
function TicketListSkeleton() {
|
|
1453
|
-
return /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
1449
|
+
return /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunk5V7BIUGAcjs.Card, { className: "overflow-hidden", children: Array.from({ length: TICKETS_PAGE_SIZE }, (_, i) => /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
1454
1450
|
"div",
|
|
1455
1451
|
{
|
|
1456
|
-
className:
|
|
1457
|
-
|
|
1458
|
-
i >= TICKET_LIST_FOLD.phone && "hidden md:block",
|
|
1459
|
-
i >= TICKET_LIST_FOLD.wide && "md:hidden"
|
|
1460
|
-
),
|
|
1461
|
-
children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkWUYL4BMDcjs.ChatTicketItemSkeleton, {})
|
|
1452
|
+
className: TICKET_ROW_FRAME_CLASS,
|
|
1453
|
+
children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkYI3CDGKMcjs.ChatTicketItemSkeleton, {})
|
|
1462
1454
|
},
|
|
1463
1455
|
i
|
|
1464
1456
|
)) });
|
|
@@ -1507,11 +1499,11 @@ function HelpCenterCard({
|
|
|
1507
1499
|
});
|
|
1508
1500
|
return () => cancelAnimationFrame(raf);
|
|
1509
1501
|
}, [isExpanded]);
|
|
1510
|
-
const live =
|
|
1502
|
+
const live = _chunkHFNWBNLEcjs.useOptionalTicketLive.call(void 0, );
|
|
1511
1503
|
const unreadCount = !optimistic && ticket.external_id && _optionalChain([live, 'optionalAccess', _65 => _65.unreadByTicket, 'access', _66 => _66[ticket.external_id]]) || 0;
|
|
1512
1504
|
const rightBadges = /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, _jsxruntime.Fragment, { children: [
|
|
1513
1505
|
unreadCount > 0 && /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
1514
|
-
|
|
1506
|
+
_chunk5V7BIUGAcjs.StatusBadge,
|
|
1515
1507
|
{
|
|
1516
1508
|
text: `${unreadCount} NEW`,
|
|
1517
1509
|
colorScheme: "warning",
|
|
@@ -1520,16 +1512,16 @@ function HelpCenterCard({
|
|
|
1520
1512
|
}
|
|
1521
1513
|
),
|
|
1522
1514
|
/* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
1523
|
-
|
|
1515
|
+
_chunk5V7BIUGAcjs.StatusBadge,
|
|
1524
1516
|
{
|
|
1525
1517
|
text: rawStatus,
|
|
1526
|
-
colorScheme:
|
|
1518
|
+
colorScheme: _chunk5V7BIUGAcjs.getStatusColorScheme.call(void 0, rawStatus),
|
|
1527
1519
|
variant: "card",
|
|
1528
1520
|
className: "border border-ods-border"
|
|
1529
1521
|
}
|
|
1530
1522
|
),
|
|
1531
1523
|
priority && /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
1532
|
-
|
|
1524
|
+
_chunk5V7BIUGAcjs.StatusBadge,
|
|
1533
1525
|
{
|
|
1534
1526
|
text: priority,
|
|
1535
1527
|
colorScheme: mapPriorityScheme(priority),
|
|
@@ -1557,7 +1549,7 @@ function HelpCenterCard({
|
|
|
1557
1549
|
"aria-controls": isExpanded ? `help-center-drawer-${ticket.id}` : void 0,
|
|
1558
1550
|
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]",
|
|
1559
1551
|
children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
1560
|
-
|
|
1552
|
+
_chunkQPK2433Wcjs.DevCardRowContent,
|
|
1561
1553
|
{
|
|
1562
1554
|
title,
|
|
1563
1555
|
subtitle,
|
|
@@ -1668,7 +1660,7 @@ function HelpCenterCreateForm({
|
|
|
1668
1660
|
subjectError && /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "span", { id: "help-center-subject-error", className: "mt-1 text-ods-error text-h6", children: subjectError })
|
|
1669
1661
|
] });
|
|
1670
1662
|
return /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
1671
|
-
|
|
1663
|
+
_chunkJ5ZNEAGYcjs.ContactForm,
|
|
1672
1664
|
{
|
|
1673
1665
|
rescue: null,
|
|
1674
1666
|
title: "Open a new ticket",
|
|
@@ -1707,30 +1699,30 @@ function HelpCenterCreateForm({
|
|
|
1707
1699
|
// src/components/tickets/help-center-list.tsx
|
|
1708
1700
|
|
|
1709
1701
|
function HelpCenterList({ toast: toast2 = _chunkXVFM6SJAcjs.toast, backButton, title, shell } = {}) {
|
|
1710
|
-
const identity =
|
|
1702
|
+
const identity = _chunkILZEXCJHcjs.useChatIdentity.call(void 0, );
|
|
1711
1703
|
const searchParams = _chunk7DNL734Scjs.useSearchParams.call(void 0, );
|
|
1712
1704
|
const router = _chunk7DNL734Scjs.useRouter.call(void 0, );
|
|
1713
1705
|
const pathname = _chunk7DNL734Scjs.usePathname.call(void 0, );
|
|
1714
|
-
const search = searchParams.get(
|
|
1706
|
+
const search = searchParams.get(_chunkYI3CDGKMcjs.DEV_SECTION_PARAM_KEYS.search) || "";
|
|
1715
1707
|
const status = searchParams.get("status") || "all";
|
|
1716
|
-
const ticketParam = searchParams.get(
|
|
1708
|
+
const ticketParam = searchParams.get(_chunkYI3CDGKMcjs.TICKET_OPEN_PARAM) || "";
|
|
1717
1709
|
const page = _chunkBLH2SFOOcjs.positiveInt.call(void 0, searchParams.get("page"), 1);
|
|
1718
1710
|
if (identity.isLoading) {
|
|
1719
1711
|
return /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
1720
|
-
|
|
1712
|
+
_chunkQPK2433Wcjs.DevSectionPage,
|
|
1721
1713
|
{
|
|
1722
1714
|
sectionKey: "tickets",
|
|
1723
1715
|
backButton,
|
|
1724
1716
|
title,
|
|
1725
1717
|
shell,
|
|
1726
1718
|
preControls: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, HelpCenterCreateFormSkeleton, {}),
|
|
1727
|
-
children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
1719
|
+
children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkQPK2433Wcjs.DevCardRowSkeletonList, { rows: TICKETS_PAGE_SIZE })
|
|
1728
1720
|
}
|
|
1729
1721
|
);
|
|
1730
1722
|
}
|
|
1731
1723
|
if (identity.authTier === "anon" || !_optionalChain([identity, 'access', _67 => _67.user, 'optionalAccess', _68 => _68.email])) {
|
|
1732
|
-
return /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
1733
|
-
|
|
1724
|
+
return /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkQPK2433Wcjs.DevSectionPage, { sectionKey: "tickets", backButton, title, shell, children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
1725
|
+
_chunkJJNOAYD4cjs.EmptyState,
|
|
1734
1726
|
{
|
|
1735
1727
|
type: "generic",
|
|
1736
1728
|
title: "Sign in to manage tickets",
|
|
@@ -1781,14 +1773,14 @@ function HelpCenterListAuthed({
|
|
|
1781
1773
|
const setOpenTicket = _react.useCallback.call(void 0,
|
|
1782
1774
|
(externalId) => {
|
|
1783
1775
|
const params = new URLSearchParams(searchParams.toString());
|
|
1784
|
-
if (externalId) params.set(
|
|
1785
|
-
else params.delete(
|
|
1776
|
+
if (externalId) params.set(_chunkYI3CDGKMcjs.TICKET_OPEN_PARAM, externalId);
|
|
1777
|
+
else params.delete(_chunkYI3CDGKMcjs.TICKET_OPEN_PARAM);
|
|
1786
1778
|
const qs = params.toString();
|
|
1787
1779
|
router.replace(qs ? `${pathname}?${qs}` : pathname, { scroll: false });
|
|
1788
1780
|
},
|
|
1789
1781
|
[searchParams, router, pathname]
|
|
1790
1782
|
);
|
|
1791
|
-
const { tickets, isLoading, isFetching, error, refetch, totalPages } = useTicketsList({
|
|
1783
|
+
const { tickets, isLoading, isFetching, error, refetch, totalPages, pageSize } = useTicketsList({
|
|
1792
1784
|
// `sessionEmail` is drilled in from the parent — see the same
|
|
1793
1785
|
// pattern + race-cause rationale documented in
|
|
1794
1786
|
// `HelpCenterCreateForm.sessionName/sessionEmail`. Calling
|
|
@@ -1859,15 +1851,15 @@ function HelpCenterListAuthed({
|
|
|
1859
1851
|
] }),
|
|
1860
1852
|
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkTF5D5MNOcjs.Button, { type: "button", variant: "accent", onClick: () => refetch(), children: "Retry" })
|
|
1861
1853
|
] }),
|
|
1862
|
-
!error && /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: "w-full", children: isLoading ? /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
1854
|
+
!error && /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: "w-full", children: isLoading ? /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkQPK2433Wcjs.DevCardRowSkeletonList, { rows: pageSize }) : !hasResults && isFetching ? (
|
|
1863
1855
|
// Bridge state — background refetch in flight and the
|
|
1864
1856
|
// optimistic placeholder was just removed by the mutation
|
|
1865
1857
|
// callback. Without this branch "No tickets yet" would flash
|
|
1866
1858
|
// for ~50ms between `removeOptimistic` and the server
|
|
1867
1859
|
// response landing.
|
|
1868
|
-
/* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
1860
|
+
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkQPK2433Wcjs.DevCardRowSkeletonList, { rows: 1 })
|
|
1869
1861
|
) : !hasResults ? /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
1870
|
-
|
|
1862
|
+
_chunkQPK2433Wcjs.ListEmptyState,
|
|
1871
1863
|
{
|
|
1872
1864
|
isFiltered: hasActiveFilters,
|
|
1873
1865
|
filtered: {
|
|
@@ -1898,7 +1890,7 @@ function HelpCenterListAuthed({
|
|
|
1898
1890
|
/* @__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,
|
|
1899
1891
|
HelpCenterCard,
|
|
1900
1892
|
{
|
|
1901
|
-
id:
|
|
1893
|
+
id: _chunkYI3CDGKMcjs.devSectionAnchorId.call(void 0, "ticket", ticket.external_id),
|
|
1902
1894
|
ticket,
|
|
1903
1895
|
expanded: expandedTicketId === ticket.id,
|
|
1904
1896
|
onToggle: toggleRow,
|
|
@@ -1914,9 +1906,9 @@ function HelpCenterListAuthed({
|
|
|
1914
1906
|
ticket.id
|
|
1915
1907
|
)) })
|
|
1916
1908
|
) }),
|
|
1917
|
-
!error && totalPages > 1 && /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
1909
|
+
!error && totalPages > 1 && /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkJJNOAYD4cjs.UnifiedPagination, { currentPage: page, totalPages })
|
|
1918
1910
|
] });
|
|
1919
|
-
return /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
1911
|
+
return /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkQPK2433Wcjs.DevSectionPage, { sectionKey: "tickets", backButton, title, shell, preControls: form, children: body });
|
|
1920
1912
|
}
|
|
1921
1913
|
|
|
1922
1914
|
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
"use strict";Object.defineProperty(exports, "__esModule", {value: true});"use client";
|
|
2
2
|
|
|
3
3
|
|
|
4
|
-
var
|
|
4
|
+
var _chunkZVKJKWABcjs = require('./chunk-ZVKJKWAB.cjs');
|
|
5
5
|
|
|
6
6
|
|
|
7
7
|
var _chunkCKR42OBKcjs = require('./chunk-CKR42OBK.cjs');
|
|
@@ -48,7 +48,7 @@ function GoogleSheetsViewer({ externalUrl, fileName, height }) {
|
|
|
48
48
|
] });
|
|
49
49
|
}
|
|
50
50
|
return /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
51
|
-
|
|
51
|
+
_chunkZVKJKWABcjs.EmbedViewerFrame,
|
|
52
52
|
{
|
|
53
53
|
icon: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkCKR42OBKcjs.GoogleSheetsIcon, { className: "h-5 w-5 shrink-0" }),
|
|
54
54
|
title: displayName,
|
|
@@ -83,7 +83,7 @@ function PdfViewer({ src, fileName, onPreview, onDownload, height }) {
|
|
|
83
83
|
] });
|
|
84
84
|
}
|
|
85
85
|
return /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
86
|
-
|
|
86
|
+
_chunkZVKJKWABcjs.EmbedViewerFrame,
|
|
87
87
|
{
|
|
88
88
|
icon: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkM7ZSKWT3cjs.AdobePdfIcon, { className: "h-5 w-5 shrink-0" }),
|
|
89
89
|
title: displayName,
|