@flamingo-stack/openframe-frontend-core 0.0.775 → 0.0.777
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/case-study-card-FMH622O5.cjs +25 -0
- package/dist/{chunk-F67SEXCW.cjs → chunk-3PCSEZNZ.cjs} +53 -53
- package/dist/{chunk-R3JX4MXD.cjs → chunk-3ZLPYEL5.cjs} +10 -10
- package/dist/{chunk-SWEPHSIP.cjs → chunk-4JZDJ34E.cjs} +17 -17
- package/dist/{chunk-DGFDBPO7.cjs → chunk-5GJM7VRR.cjs} +1 -94
- package/dist/{chunk-E64HPPRH.cjs → chunk-5PK22JP7.cjs} +50 -50
- package/dist/{chunk-57B5RUYD.cjs → chunk-64KBI5MI.cjs} +2 -2
- package/dist/{chunk-PMX6QNNN.cjs → chunk-7LJSGOWS.cjs} +18 -16
- package/dist/{chunk-ASMNNSUQ.cjs → chunk-7PNRXJX2.cjs} +3 -3
- package/dist/{chunk-VAGZJRYV.cjs → chunk-ALA4KHTE.cjs} +6 -6
- package/dist/{chunk-VFZFCRAL.cjs → chunk-AQXKXZWB.cjs} +4 -4
- package/dist/{chunk-4LFB4YY3.cjs → chunk-BDDOC425.cjs} +8 -8
- package/dist/{chunk-VFUMM6JC.cjs → chunk-BEMGJDXI.cjs} +2 -2
- package/dist/{chunk-HY6BCZH7.cjs → chunk-BNUZKBNV.cjs} +3 -3
- package/dist/{chunk-Y3EBUFX4.cjs → chunk-CGQ7CL62.cjs} +213 -1647
- package/dist/{chunk-ODF3KCRK.cjs → chunk-DOM5CUEY.cjs} +33 -31
- package/dist/{chunk-36GYLB3Z.cjs → chunk-G2N7INFT.cjs} +28 -28
- package/dist/{chunk-42JGOJCB.cjs → chunk-HXLOCZMG.cjs} +595 -591
- package/dist/{chunk-CZIMISAR.cjs → chunk-JB2SEF6Q.cjs} +7 -7
- package/dist/{chunk-6SJYFUGD.cjs → chunk-JMFF3L3T.cjs} +28 -26
- package/dist/{chunk-LJT2KRE2.cjs → chunk-KLTUTZBO.cjs} +24 -24
- package/dist/{chunk-EHJE3UWZ.cjs → chunk-LBGAHB6X.cjs} +20 -20
- package/dist/{chunk-TUXPFF4P.cjs → chunk-LGNJTSKB.cjs} +37 -35
- package/dist/{chunk-FHTTRWAK.cjs → chunk-LU2DGST4.cjs} +97 -95
- package/dist/chunk-MQPTOJMF.cjs +1504 -0
- package/dist/{chunk-XXJL5GY3.cjs → chunk-OJZBZH56.cjs} +3 -3
- package/dist/{chunk-TF2XYDH3.cjs → chunk-QIATO42V.cjs} +3 -3
- package/dist/{chunk-RB7VLVMD.cjs → chunk-R6BKQKIF.cjs} +9 -7
- package/dist/{chunk-BTVO676B.cjs → chunk-S3YDUX2I.cjs} +114 -112
- package/dist/{chunk-VISK6LKE.cjs → chunk-SDZG7VV7.cjs} +5 -5
- package/dist/{chunk-V3W56L2D.cjs → chunk-SIDDZZKL.cjs} +38 -38
- package/dist/chunk-SZHDXXMK.cjs +102 -0
- package/dist/{chunk-5YJWT5ZQ.cjs → chunk-T47VAUYR.cjs} +91 -89
- package/dist/{chunk-IQQ3SLUK.cjs → chunk-T7NDPPLF.cjs} +23 -21
- package/dist/{chunk-5P4TDV7V.cjs → chunk-TUAATMUE.cjs} +5 -93
- package/dist/{chunk-KWZ62LPZ.cjs → chunk-TZP7PSPG.cjs} +249 -243
- package/dist/{chunk-USMR73ND.cjs → chunk-U5VQFKRZ.cjs} +6 -6
- package/dist/{chunk-L5CKY5WA.cjs → chunk-UW6AOF42.cjs} +22 -22
- package/dist/chunk-V4FXUIMH.cjs +92 -0
- package/dist/{chunk-2JRSYWFP.cjs → chunk-VXAKQRV7.cjs} +5 -5
- package/dist/{chunk-3XLDYEQD.cjs → chunk-VY3NGJRH.cjs} +53 -51
- package/dist/{chunk-TOPGBOCN.cjs → chunk-WCSWWVPF.cjs} +2 -2
- package/dist/{chunk-EQBJHJS7.cjs → chunk-WMZIBRTR.cjs} +2 -2
- package/dist/{chunk-5QP3K2CE.cjs → chunk-XEYL6AFZ.cjs} +9 -9
- package/dist/{chunk-VDXBACD3.cjs → chunk-XVAVQ4BK.cjs} +116 -82
- package/dist/{chunk-5AOKXXHV.cjs → chunk-Y6MQBLTZ.cjs} +4 -4
- package/dist/{cloud-tenants-ISGAMTJD.cjs → cloud-tenants-EUH42CCL.cjs} +27 -24
- package/dist/components/case-studies/index.cjs +45 -41
- package/dist/components/chat/index.cjs +21 -17
- package/dist/components/contact/index.cjs +28 -25
- package/dist/components/docs/index.cjs +31 -28
- package/dist/components/embeds/index.cjs +28 -25
- package/dist/components/faq/index.cjs +29 -26
- package/dist/components/features/index.cjs +28 -24
- package/dist/components/features/use-file-playback.d.ts +6 -4
- package/dist/components/features/use-file-playback.d.ts.map +1 -1
- package/dist/components/features/use-file-playback.js +16 -7
- package/dist/components/help-center-pages/index.cjs +131 -127
- package/dist/components/index.cjs +94 -90
- package/dist/components/meeting-scheduler/index.cjs +95 -92
- package/dist/components/navigation/index.cjs +30 -27
- package/dist/components/navigation/nav-panel.d.ts.map +1 -1
- package/dist/components/navigation/nav-panel.js +47 -13
- package/dist/components/onboarding-guides/index.cjs +30 -27
- package/dist/components/product-demo/index.cjs +38 -35
- package/dist/components/related-content/index.cjs +15 -12
- package/dist/components/tickets/index.cjs +33 -30
- package/dist/components/ui/index.cjs +28 -24
- package/dist/{devices-AHJX6ACJ.cjs → devices-WL3I23EE.cjs} +28 -25
- package/dist/{embeddable-chat-DI7ZZTBP.cjs → embeddable-chat-KEWUGQIF.cjs} +99 -95
- package/dist/hooks/index.cjs +12 -10
- package/dist/index.cjs +36 -30
- package/dist/{knowledge-FH5GVRVP.cjs → knowledge-O3PXUX73.cjs} +28 -25
- package/dist/{logs-JBIHHLUQ.cjs → logs-XODCXWYI.cjs} +35 -32
- package/dist/{policies-XLJ2ABY5.cjs → policies-CQACBIKK.cjs} +31 -28
- package/dist/{remote-session-TC3BZDBZ.cjs → remote-session-TGM2OTTV.cjs} +12 -10
- package/dist/{scripts-CQLXM7PP.cjs → scripts-QMM6SEB5.cjs} +34 -31
- package/dist/{software-update-7NYZ7L76.cjs → software-update-CCCKS4ZE.cjs} +31 -28
- package/dist/{tickets-board-YT25IX3O.cjs → tickets-board-FB5AGLJD.cjs} +16 -14
- package/dist/{video-file-player-4TXA7BZF.cjs → video-file-player-SIJW5UWU.cjs} +19 -9
- package/package.json +1 -1
- package/src/components/features/use-file-playback.ts +33 -14
- package/src/components/navigation/nav-panel.tsx +74 -14
|
@@ -1,11 +1,11 @@
|
|
|
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 _chunkCGQ7CL62cjs = require('./chunk-CGQ7CL62.cjs');
|
|
5
5
|
|
|
6
6
|
|
|
7
7
|
|
|
8
|
-
var
|
|
8
|
+
var _chunkBNUZKBNVcjs = require('./chunk-BNUZKBNV.cjs');
|
|
9
9
|
|
|
10
10
|
|
|
11
11
|
var _chunkE76ONBKFcjs = require('./chunk-E76ONBKF.cjs');
|
|
@@ -38,7 +38,7 @@ var NAME_CLASS = "text-ods-text-primary text-h5";
|
|
|
38
38
|
var JOB_TITLE_CLASS = "text-body-sm mt-0.5 font-body text-ods-text-secondary";
|
|
39
39
|
var BIO_CLASS = "text-body-md mt-2 font-body leading-relaxed text-ods-text-secondary";
|
|
40
40
|
function formatDate(value) {
|
|
41
|
-
return
|
|
41
|
+
return _chunkBNUZKBNVcjs.formatDateWithTimezone.call(void 0, value, null, "long");
|
|
42
42
|
}
|
|
43
43
|
function ArticleAuthorByline({
|
|
44
44
|
author,
|
|
@@ -52,14 +52,14 @@ function ArticleAuthorByline({
|
|
|
52
52
|
proxyImageUrl,
|
|
53
53
|
className
|
|
54
54
|
}) {
|
|
55
|
-
const proxiedAvatar =
|
|
55
|
+
const proxiedAvatar = _chunkCGQ7CL62cjs.useProxiedImageUrl.call(void 0, avatar, { proxyImageUrl });
|
|
56
56
|
const loading = _chunkXFRBEXQNcjs.useLoadingScope.call(void 0, );
|
|
57
57
|
if (loading && !author) return /* @__PURE__ */ _jsxruntime.jsx.call(void 0, ArticleAuthorBylineSkeleton, { size, className });
|
|
58
58
|
if (!author) return null;
|
|
59
59
|
const avatarSizeClass = _chunkXFRBEXQNcjs.AVATAR_SIZE[BYLINE_AVATAR_SIZE[size]];
|
|
60
60
|
const avatarIconClass = size === "lg" ? "w-8 h-8" : "w-7 h-7";
|
|
61
61
|
const avatarDim = _chunkXFRBEXQNcjs.AVATAR_SIZE_PX[BYLINE_AVATAR_SIZE[size]];
|
|
62
|
-
const formattedBio =
|
|
62
|
+
const formattedBio = _chunkBNUZKBNVcjs.formatBioText.call(void 0, _nullishCoalesce(bio, () => ( null)));
|
|
63
63
|
const dateLabel = publishedAt ? formatDate(publishedAt) : "";
|
|
64
64
|
return /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: _chunk65VVJSQZcjs.cn.call(void 0, BYLINE_FRAME_CLASS, className), children: [
|
|
65
65
|
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: "flex-shrink-0", children: avatar ? /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
@@ -10,7 +10,7 @@ var _chunkA6P6DHEZcjs = require('./chunk-A6P6DHEZ.cjs');
|
|
|
10
10
|
|
|
11
11
|
|
|
12
12
|
|
|
13
|
-
var
|
|
13
|
+
var _chunkXEYL6AFZcjs = require('./chunk-XEYL6AFZ.cjs');
|
|
14
14
|
|
|
15
15
|
|
|
16
16
|
|
|
@@ -102,14 +102,14 @@ var _chunkSKI6NKOEcjs = require('./chunk-SKI6NKOE.cjs');
|
|
|
102
102
|
|
|
103
103
|
|
|
104
104
|
|
|
105
|
-
var
|
|
105
|
+
var _chunkBNUZKBNVcjs = require('./chunk-BNUZKBNV.cjs');
|
|
106
106
|
|
|
107
107
|
|
|
108
108
|
var _chunkRUHKTWGBcjs = require('./chunk-RUHKTWGB.cjs');
|
|
109
109
|
|
|
110
110
|
|
|
111
111
|
|
|
112
|
-
var
|
|
112
|
+
var _chunkV4FXUIMHcjs = require('./chunk-V4FXUIMH.cjs');
|
|
113
113
|
|
|
114
114
|
|
|
115
115
|
var _chunkE76ONBKFcjs = require('./chunk-E76ONBKF.cjs');
|
|
@@ -234,10 +234,10 @@ function TruncateText({
|
|
|
234
234
|
as = "div"
|
|
235
235
|
}) {
|
|
236
236
|
const isMultiLine = lines > 1;
|
|
237
|
-
const { ref, isTruncated } =
|
|
237
|
+
const { ref, isTruncated } = _chunkV4FXUIMHcjs.useIsTruncated.call(void 0, children, { multiline: isMultiLine });
|
|
238
238
|
const clampClass = isMultiLine ? LINE_CLAMP_CLASS[lines] : "truncate block";
|
|
239
239
|
return /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
240
|
-
|
|
240
|
+
_chunkBNUZKBNVcjs.FloatingTooltip,
|
|
241
241
|
{
|
|
242
242
|
content: _nullishCoalesce(tooltip, () => ( children)),
|
|
243
243
|
side,
|
|
@@ -576,7 +576,7 @@ function AutocompleteInner(props, ref) {
|
|
|
576
576
|
),
|
|
577
577
|
children: [
|
|
578
578
|
multiple && visibleTags.map((option) => /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
579
|
-
|
|
579
|
+
_chunkBNUZKBNVcjs.Tag,
|
|
580
580
|
{
|
|
581
581
|
variant: "outline",
|
|
582
582
|
className: wrapTags ? "max-w-full" : void 0,
|
|
@@ -810,7 +810,7 @@ function AutocompleteInner(props, ref) {
|
|
|
810
810
|
"aria-hidden": "true",
|
|
811
811
|
className: "pointer-events-none invisible absolute left-0 top-0 -z-10 flex gap-2",
|
|
812
812
|
children: selectedOptions.map((option) => /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
813
|
-
|
|
813
|
+
_chunkBNUZKBNVcjs.Tag,
|
|
814
814
|
{
|
|
815
815
|
variant: "outline",
|
|
816
816
|
labelClassName: "max-w-[90px] truncate",
|
|
@@ -1306,13 +1306,13 @@ var ENTITY_IMAGE_SIZE = _chunkXFRBEXQNcjs.TILE_SIZE.entity;
|
|
|
1306
1306
|
var ENTITY_IMAGE_RADIUS_CLASS = "rounded-md";
|
|
1307
1307
|
function EntityImage({ src, alt, fallbackText, sizeClassName, className }) {
|
|
1308
1308
|
const held = _chunkXFRBEXQNcjs.useLoadingScope.call(void 0, );
|
|
1309
|
-
const authedSrc =
|
|
1309
|
+
const authedSrc = _chunkV4FXUIMHcjs.useAuthedImageSrc.call(void 0, held ? void 0 : src);
|
|
1310
1310
|
const resolvedSrc = authedSrc;
|
|
1311
1311
|
const [failedSrc, setFailedSrc] = _react2.default.useState(null);
|
|
1312
1312
|
const imageFailed = resolvedSrc !== void 0 && failedSrc === resolvedSrc;
|
|
1313
1313
|
if (held) return /* @__PURE__ */ _jsxruntime.jsx.call(void 0, EntityImageSkeleton, { sizeClassName, className });
|
|
1314
1314
|
const showFallback = imageFailed || !resolvedSrc;
|
|
1315
|
-
const initials =
|
|
1315
|
+
const initials = _chunkBNUZKBNVcjs.personInitials.call(void 0, _nullishCoalesce(fallbackText, () => ( alt)));
|
|
1316
1316
|
if (showFallback) {
|
|
1317
1317
|
return /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
1318
1318
|
"div",
|
|
@@ -1408,10 +1408,10 @@ function TitleBlock({
|
|
|
1408
1408
|
const titleClass = titleSize === "h1" ? "text-h1" : "text-h2";
|
|
1409
1409
|
const titleOverflowClass = titleWrap ? "break-words" : "truncate";
|
|
1410
1410
|
const skeletonSize = TITLE_SKELETON_SIZE[titleSize];
|
|
1411
|
-
const { ref: titleRef, isTruncated: titleTruncated } =
|
|
1411
|
+
const { ref: titleRef, isTruncated: titleTruncated } = _chunkV4FXUIMHcjs.useIsTruncated.call(void 0,
|
|
1412
1412
|
titleLoading ? null : title
|
|
1413
1413
|
);
|
|
1414
|
-
const { ref: subtitleRef, isTruncated: subtitleTruncated } =
|
|
1414
|
+
const { ref: subtitleRef, isTruncated: subtitleTruncated } = _chunkV4FXUIMHcjs.useIsTruncated.call(void 0,
|
|
1415
1415
|
subtitleLoading ? null : subtitle
|
|
1416
1416
|
);
|
|
1417
1417
|
const titleNode = titleLoading && titleWrap && titleSkeletonLines ? /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, _jsxruntime.Fragment, { children: [
|
|
@@ -1486,7 +1486,7 @@ function TitleBlock({
|
|
|
1486
1486
|
/* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: "flex min-w-0 flex-1 flex-col justify-center", children: [
|
|
1487
1487
|
(titleLoading || title) && (titleAdornment ? /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: "flex w-full min-w-0 items-center gap-[var(--spacing-system-m)]", children: [
|
|
1488
1488
|
/* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
1489
|
-
|
|
1489
|
+
_chunkBNUZKBNVcjs.FloatingTooltip,
|
|
1490
1490
|
{
|
|
1491
1491
|
content: title,
|
|
1492
1492
|
side: "bottom",
|
|
@@ -1503,12 +1503,12 @@ function TitleBlock({
|
|
|
1503
1503
|
}
|
|
1504
1504
|
),
|
|
1505
1505
|
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, "span", { className: "shrink-0", children: titleAdornment })
|
|
1506
|
-
] }) : /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
1506
|
+
] }) : /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkBNUZKBNVcjs.FloatingTooltip, { content: title, side: "bottom", disabled: !titleTruncated, children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, PageTitle, { ref: titleRef, className: _chunk65VVJSQZcjs.cn.call(void 0, titleClass, "text-ods-text-primary", titleOverflowClass), children: titleNode }) })),
|
|
1507
1507
|
hasSubtitleRow && /* The NBSP is a pure spacer, reached only in `'always'` mode: an
|
|
1508
1508
|
empty `p` collapses to zero height (its only content would be
|
|
1509
1509
|
collapsible whitespace), which is exactly the shift that mode
|
|
1510
1510
|
exists to prevent. Hidden from AT — it carries no meaning. */
|
|
1511
|
-
/* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
1511
|
+
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkBNUZKBNVcjs.FloatingTooltip, { content: subtitle, side: "bottom", disabled: !subtitleTruncated, children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
1512
1512
|
"p",
|
|
1513
1513
|
{
|
|
1514
1514
|
ref: subtitleRef,
|
|
@@ -1526,7 +1526,7 @@ function TitleBlock({
|
|
|
1526
1526
|
) })
|
|
1527
1527
|
] })
|
|
1528
1528
|
] }) : title && (titleAdornment ? /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: "flex w-full min-w-0 items-center gap-[var(--spacing-system-m)]", children: [
|
|
1529
|
-
/* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
1529
|
+
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkBNUZKBNVcjs.FloatingTooltip, { content: title, side: "bottom", disabled: !titleTruncated, triggerClassName: "min-w-0", children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
1530
1530
|
PageTitle,
|
|
1531
1531
|
{
|
|
1532
1532
|
ref: titleRef,
|
|
@@ -1654,7 +1654,7 @@ function RemoteSessionViewers({ viewers, max = 4, className }) {
|
|
|
1654
1654
|
children: [
|
|
1655
1655
|
/* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "span", { className: "flex items-center", children: [
|
|
1656
1656
|
faces.map((viewer, index) => /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
1657
|
-
|
|
1657
|
+
_chunkBNUZKBNVcjs.SquareAvatar,
|
|
1658
1658
|
{
|
|
1659
1659
|
variant: "round",
|
|
1660
1660
|
sizePx: 32,
|
|
@@ -1688,7 +1688,7 @@ function RemoteSessionViewers({ viewers, max = 4, className }) {
|
|
|
1688
1688
|
),
|
|
1689
1689
|
children: [
|
|
1690
1690
|
/* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
1691
|
-
|
|
1691
|
+
_chunkBNUZKBNVcjs.SquareAvatar,
|
|
1692
1692
|
{
|
|
1693
1693
|
variant: "round",
|
|
1694
1694
|
sizePx: 24,
|
|
@@ -1734,7 +1734,7 @@ function RemoteSessionScope({ children, className }) {
|
|
|
1734
1734
|
function RemoteSessionOrgLogo({ name, logoUrl, sizePx, className }) {
|
|
1735
1735
|
if (logoUrl) {
|
|
1736
1736
|
return /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
1737
|
-
|
|
1737
|
+
_chunkBNUZKBNVcjs.SquareAvatar,
|
|
1738
1738
|
{
|
|
1739
1739
|
variant: "square",
|
|
1740
1740
|
fit: "contain",
|
|
@@ -1844,7 +1844,7 @@ function RemoteAccessRequestCard({
|
|
|
1844
1844
|
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, RemoteSessionOrgLogo, { name: organizationName, logoUrl: party.organizationLogoUrl, sizePx: 64 }),
|
|
1845
1845
|
/* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: "flex min-w-0 flex-1 flex-col", children: [
|
|
1846
1846
|
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, "p", { className: "w-full truncate text-ods-text-primary text-h3", children: organizationName }),
|
|
1847
|
-
siteUrl && /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "p", { className: "w-full truncate text-ods-text-secondary text-h4", children:
|
|
1847
|
+
siteUrl && /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "p", { className: "w-full truncate text-ods-text-secondary text-h4", children: _chunkBNUZKBNVcjs.formatUrlForDisplay.call(void 0, siteUrl, { keepWww: true }) })
|
|
1848
1848
|
] }),
|
|
1849
1849
|
openableSite && onOpenSite && /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkTF5D5MNOcjs.Button, { variant: "outline", size: "icon", "aria-label": "Open website", onClick: () => onOpenSite(openableSite), children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkEDVT7OAScjs.ExternalLinkIcon, { size: 24, color: "currentColor" }) })
|
|
1850
1850
|
] }),
|
|
@@ -1963,7 +1963,7 @@ function RemoteSessionSummary({
|
|
|
1963
1963
|
...dragHandlers,
|
|
1964
1964
|
children: [
|
|
1965
1965
|
technician ? /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
1966
|
-
|
|
1966
|
+
_chunkBNUZKBNVcjs.SquareAvatar,
|
|
1967
1967
|
{
|
|
1968
1968
|
variant: "round",
|
|
1969
1969
|
sizePx: 48,
|
|
@@ -2019,7 +2019,7 @@ var RemoteSessionMinimizedChip = _react.forwardRef.call(void 0,
|
|
|
2019
2019
|
...dragHandlers,
|
|
2020
2020
|
children: [
|
|
2021
2021
|
technician ? /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
2022
|
-
|
|
2022
|
+
_chunkBNUZKBNVcjs.SquareAvatar,
|
|
2023
2023
|
{
|
|
2024
2024
|
sizePx: 48,
|
|
2025
2025
|
src: _nullishCoalesce(party.technicianAvatarUrl, () => ( void 0)),
|
|
@@ -2169,7 +2169,7 @@ function RemoteSessionChatMessageRow({
|
|
|
2169
2169
|
return /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: "flex w-full flex-col", children: [
|
|
2170
2170
|
/* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: "flex w-full items-center gap-[var(--spacing-system-xs)]", children: [
|
|
2171
2171
|
isTechnician && /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
2172
|
-
|
|
2172
|
+
_chunkBNUZKBNVcjs.SquareAvatar,
|
|
2173
2173
|
{
|
|
2174
2174
|
variant: "round",
|
|
2175
2175
|
sizePx: 16,
|
|
@@ -2207,9 +2207,9 @@ function RemoteDesktopChatMessageRow({
|
|
|
2207
2207
|
}) {
|
|
2208
2208
|
return /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: MESSAGE_ROW_CLASS, children: [
|
|
2209
2209
|
/* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: MESSAGE_HEAD_CLASS, children: [
|
|
2210
|
-
isTechnician && /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
2210
|
+
isTechnician && /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkBNUZKBNVcjs.SquareAvatar, { variant: "round", sizePx: 24, src: avatarUrl, alt: authorName, className: "shrink-0" }),
|
|
2211
2211
|
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, "span", { className: _chunk65VVJSQZcjs.cn.call(void 0, MESSAGE_NAME_CLASS, isTechnician ? "text-ods-accent" : "text-ods-text-secondary"), children: authorName }),
|
|
2212
|
-
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, "span", { suppressHydrationWarning: true, className: "shrink-0 text-ods-text-secondary text-h6", children:
|
|
2212
|
+
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, "span", { suppressHydrationWarning: true, className: "shrink-0 text-ods-text-secondary text-h6", children: _chunkXEYL6AFZcjs.formatTime.call(void 0, sentAt) })
|
|
2213
2213
|
] }),
|
|
2214
2214
|
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, "p", { className: "whitespace-pre-wrap text-ods-text-primary text-h4", children: body })
|
|
2215
2215
|
] });
|
|
@@ -2271,7 +2271,7 @@ function RemoteDesktopChatPanel({
|
|
|
2271
2271
|
message.id
|
|
2272
2272
|
)) }) }),
|
|
2273
2273
|
/* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
2274
|
-
|
|
2274
|
+
_chunkXEYL6AFZcjs.ChatInput,
|
|
2275
2275
|
{
|
|
2276
2276
|
placeholder: "Enter your Message...",
|
|
2277
2277
|
onSend,
|
|
@@ -2638,9 +2638,9 @@ function KeepRecordingModal({
|
|
|
2638
2638
|
if (!canKeep || isPending) return;
|
|
2639
2639
|
onConfirm({ reason, description: reason === "OTHER" ? trimmed : null });
|
|
2640
2640
|
};
|
|
2641
|
-
return /* @__PURE__ */ _jsxruntime.jsxs.call(void 0,
|
|
2641
|
+
return /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, _chunkXEYL6AFZcjs.Modal, { isOpen, onClose: isPending ? () => {
|
|
2642
2642
|
} : onClose, className: "text-left md:max-w-[600px]", children: [
|
|
2643
|
-
/* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
2643
|
+
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkXEYL6AFZcjs.ModalHeader, { children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkXEYL6AFZcjs.ModalTitle, { children: "Keep this recording" }) }),
|
|
2644
2644
|
/* @__PURE__ */ _jsxruntime.jsxs.call(void 0,
|
|
2645
2645
|
KeepNotice,
|
|
2646
2646
|
{
|
|
@@ -2678,7 +2678,7 @@ function KeepRecordingModal({
|
|
|
2678
2678
|
}
|
|
2679
2679
|
)
|
|
2680
2680
|
] }),
|
|
2681
|
-
/* @__PURE__ */ _jsxruntime.jsxs.call(void 0,
|
|
2681
|
+
/* @__PURE__ */ _jsxruntime.jsxs.call(void 0, _chunkXEYL6AFZcjs.ModalFooter, { children: [
|
|
2682
2682
|
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkTF5D5MNOcjs.Button, { type: "button", variant: "outline", onClick: onClose, disabled: isPending, className: "flex-1 md:hidden", children: "Cancel" }),
|
|
2683
2683
|
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: "hidden flex-1 md:block" }),
|
|
2684
2684
|
/* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
@@ -2708,9 +2708,9 @@ function ReleaseKeepingModal({
|
|
|
2708
2708
|
isPending = false,
|
|
2709
2709
|
onConfirm
|
|
2710
2710
|
}) {
|
|
2711
|
-
return /* @__PURE__ */ _jsxruntime.jsxs.call(void 0,
|
|
2711
|
+
return /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, _chunkXEYL6AFZcjs.Modal, { isOpen, onClose: isPending ? () => {
|
|
2712
2712
|
} : onClose, className: "text-left md:max-w-[600px]", children: [
|
|
2713
|
-
/* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
2713
|
+
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkXEYL6AFZcjs.ModalHeader, { children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkXEYL6AFZcjs.ModalTitle, { children: "Release Keeping" }) }),
|
|
2714
2714
|
/* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: "flex w-full flex-col gap-[var(--spacing-system-xsf)] break-words text-ods-text-primary text-h4", children: [
|
|
2715
2715
|
/* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "p", { children: [
|
|
2716
2716
|
"Kept by ",
|
|
@@ -2727,7 +2727,7 @@ function ReleaseKeepingModal({
|
|
|
2727
2727
|
] })
|
|
2728
2728
|
] }),
|
|
2729
2729
|
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, KeepNotice, { icon: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkILWSAV64cjs.HourglassIcon, { size: 24, color: "currentColor" }), title: `It will expire on ${expiresOn}`, children: dueOn ? `It was due to expire on ${dueOn}. Releasing gives it 3 days' grace, and it shows amber until then. Whoever placed the Keep is reminded the day before it goes. Nothing is deleted now.` : "Nothing is deleted now." }),
|
|
2730
|
-
/* @__PURE__ */ _jsxruntime.jsxs.call(void 0,
|
|
2730
|
+
/* @__PURE__ */ _jsxruntime.jsxs.call(void 0, _chunkXEYL6AFZcjs.ModalFooter, { children: [
|
|
2731
2731
|
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkTF5D5MNOcjs.Button, { type: "button", variant: "outline", onClick: onClose, disabled: isPending, className: "flex-1 md:hidden", children: "Cancel" }),
|
|
2732
2732
|
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: "hidden flex-1 md:block" }),
|
|
2733
2733
|
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkTF5D5MNOcjs.Button, { type: "button", variant: "accent", onClick: onConfirm, loading: isPending, className: "flex-1", children: "Release Keeping" })
|
|
@@ -2769,9 +2769,9 @@ function AssignTicketModal({
|
|
|
2769
2769
|
if (ticketIds.length === 0 || isPending) return;
|
|
2770
2770
|
onConfirm(ticketIds);
|
|
2771
2771
|
};
|
|
2772
|
-
return /* @__PURE__ */ _jsxruntime.jsxs.call(void 0,
|
|
2772
|
+
return /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, _chunkXEYL6AFZcjs.Modal, { isOpen, onClose: isPending ? () => {
|
|
2773
2773
|
} : onClose, className: "text-left md:max-w-[600px]", children: [
|
|
2774
|
-
/* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
2774
|
+
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkXEYL6AFZcjs.ModalHeader, { children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkXEYL6AFZcjs.ModalTitle, { children: "Assign Ticket" }) }),
|
|
2775
2775
|
/* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
2776
2776
|
Autocomplete,
|
|
2777
2777
|
{
|
|
@@ -2790,7 +2790,7 @@ function AssignTicketModal({
|
|
|
2790
2790
|
disabled: isPending
|
|
2791
2791
|
}
|
|
2792
2792
|
),
|
|
2793
|
-
/* @__PURE__ */ _jsxruntime.jsxs.call(void 0,
|
|
2793
|
+
/* @__PURE__ */ _jsxruntime.jsxs.call(void 0, _chunkXEYL6AFZcjs.ModalFooter, { children: [
|
|
2794
2794
|
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkTF5D5MNOcjs.Button, { type: "button", variant: "outline", onClick: onClose, disabled: isPending, className: "flex-1 md:hidden", children: "Cancel" }),
|
|
2795
2795
|
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: "hidden flex-1 md:block" }),
|
|
2796
2796
|
/* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
@@ -2809,11 +2809,11 @@ function AssignTicketModal({
|
|
|
2809
2809
|
] });
|
|
2810
2810
|
}
|
|
2811
2811
|
function UnassignTicketModal({ isOpen, onClose, isPending = false, onConfirm }) {
|
|
2812
|
-
return /* @__PURE__ */ _jsxruntime.jsxs.call(void 0,
|
|
2812
|
+
return /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, _chunkXEYL6AFZcjs.Modal, { isOpen, onClose: isPending ? () => {
|
|
2813
2813
|
} : onClose, className: "text-left md:max-w-[600px]", children: [
|
|
2814
|
-
/* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
2814
|
+
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkXEYL6AFZcjs.ModalHeader, { children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkXEYL6AFZcjs.ModalTitle, { children: "Unassign Ticket" }) }),
|
|
2815
2815
|
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, "p", { className: "w-full text-ods-text-primary text-h4", children: "This Ticket will no longer be linked to this remote session. The ticket itself stays as it is, and you can assign it again anytime." }),
|
|
2816
|
-
/* @__PURE__ */ _jsxruntime.jsxs.call(void 0,
|
|
2816
|
+
/* @__PURE__ */ _jsxruntime.jsxs.call(void 0, _chunkXEYL6AFZcjs.ModalFooter, { children: [
|
|
2817
2817
|
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkTF5D5MNOcjs.Button, { type: "button", variant: "outline", onClick: onClose, disabled: isPending, className: "flex-1 md:hidden", children: "Cancel" }),
|
|
2818
2818
|
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: "hidden flex-1 md:block" }),
|
|
2819
2819
|
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkTF5D5MNOcjs.Button, { type: "button", variant: "destructive", onClick: onConfirm, loading: isPending, className: "flex-1", children: "Unassign" })
|
|
@@ -2893,7 +2893,7 @@ var STATUS_TAG = {
|
|
|
2893
2893
|
function RemoteSessionStatusTag({ status, className }) {
|
|
2894
2894
|
const { label, variant } = STATUS_TAG[status];
|
|
2895
2895
|
return /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
2896
|
-
|
|
2896
|
+
_chunkBNUZKBNVcjs.Tag,
|
|
2897
2897
|
{
|
|
2898
2898
|
label,
|
|
2899
2899
|
variant,
|
|
@@ -0,0 +1,102 @@
|
|
|
1
|
+
"use strict";Object.defineProperty(exports, "__esModule", {value: true}); function _nullishCoalesce(lhs, rhsFn) { if (lhs != null) { return lhs; } else { return rhsFn(); } }"use client";
|
|
2
|
+
|
|
3
|
+
|
|
4
|
+
|
|
5
|
+
var _chunk5GJM7VRRcjs = require('./chunk-5GJM7VRR.cjs');
|
|
6
|
+
|
|
7
|
+
// src/hooks/ui/use-isomorphic-layout-effect.ts
|
|
8
|
+
var _react = require('react');
|
|
9
|
+
var useIsomorphicLayoutEffect = typeof window !== "undefined" ? _react.useLayoutEffect : _react.useEffect;
|
|
10
|
+
|
|
11
|
+
// src/hooks/use-authed-asset-src.ts
|
|
12
|
+
|
|
13
|
+
var resolvedCache = /* @__PURE__ */ new Map();
|
|
14
|
+
var inFlight = /* @__PURE__ */ new Map();
|
|
15
|
+
var cacheGeneration = 0;
|
|
16
|
+
var RELEASE_DELAY_MS = 6e4;
|
|
17
|
+
var refCounts = /* @__PURE__ */ new Map();
|
|
18
|
+
var releaseTimers = /* @__PURE__ */ new Map();
|
|
19
|
+
function scheduleRelease(src) {
|
|
20
|
+
clearTimeout(releaseTimers.get(src));
|
|
21
|
+
releaseTimers.set(
|
|
22
|
+
src,
|
|
23
|
+
setTimeout(() => {
|
|
24
|
+
releaseTimers.delete(src);
|
|
25
|
+
if (refCounts.has(src)) return;
|
|
26
|
+
const blobUrl = resolvedCache.get(src);
|
|
27
|
+
if (blobUrl) URL.revokeObjectURL(blobUrl);
|
|
28
|
+
resolvedCache.delete(src);
|
|
29
|
+
}, RELEASE_DELAY_MS)
|
|
30
|
+
);
|
|
31
|
+
}
|
|
32
|
+
function acquire(src) {
|
|
33
|
+
clearTimeout(releaseTimers.get(src));
|
|
34
|
+
releaseTimers.delete(src);
|
|
35
|
+
refCounts.set(src, (_nullishCoalesce(refCounts.get(src), () => ( 0))) + 1);
|
|
36
|
+
}
|
|
37
|
+
function release(src) {
|
|
38
|
+
const remaining = (_nullishCoalesce(refCounts.get(src), () => ( 1))) - 1;
|
|
39
|
+
if (remaining > 0) {
|
|
40
|
+
refCounts.set(src, remaining);
|
|
41
|
+
return;
|
|
42
|
+
}
|
|
43
|
+
refCounts.delete(src);
|
|
44
|
+
scheduleRelease(src);
|
|
45
|
+
}
|
|
46
|
+
function clearAuthedAssetCache() {
|
|
47
|
+
cacheGeneration++;
|
|
48
|
+
for (const url of resolvedCache.values()) URL.revokeObjectURL(url);
|
|
49
|
+
resolvedCache.clear();
|
|
50
|
+
inFlight.clear();
|
|
51
|
+
for (const timer of releaseTimers.values()) clearTimeout(timer);
|
|
52
|
+
releaseTimers.clear();
|
|
53
|
+
}
|
|
54
|
+
function fetchAsBlobUrl(src, accept) {
|
|
55
|
+
let pending = inFlight.get(src);
|
|
56
|
+
if (!pending) {
|
|
57
|
+
const startedGeneration = cacheGeneration;
|
|
58
|
+
pending = _chunk5GJM7VRRcjs.embedAuthedFetch.call(void 0, src, { headers: { Accept: accept } }).then(async (response) => {
|
|
59
|
+
if (!response.ok) throw new Error(`asset fetch failed: ${response.status}`);
|
|
60
|
+
const blobUrl = URL.createObjectURL(await response.blob());
|
|
61
|
+
if (startedGeneration === cacheGeneration) {
|
|
62
|
+
resolvedCache.set(src, blobUrl);
|
|
63
|
+
if (!refCounts.has(src)) scheduleRelease(src);
|
|
64
|
+
} else {
|
|
65
|
+
URL.revokeObjectURL(blobUrl);
|
|
66
|
+
}
|
|
67
|
+
}).finally(() => {
|
|
68
|
+
if (inFlight.get(src) === pending) inFlight.delete(src);
|
|
69
|
+
});
|
|
70
|
+
inFlight.set(src, pending);
|
|
71
|
+
}
|
|
72
|
+
return pending;
|
|
73
|
+
}
|
|
74
|
+
function useAuthedAssetSrc(src, accept = "*/*") {
|
|
75
|
+
const bearerSrc = src && _chunk5GJM7VRRcjs.needsBearerAssetFetch.call(void 0, src) ? src : null;
|
|
76
|
+
const [, rerender] = _react.useReducer.call(void 0, (c) => c + 1, 0);
|
|
77
|
+
useIsomorphicLayoutEffect(() => {
|
|
78
|
+
if (!bearerSrc) return void 0;
|
|
79
|
+
acquire(bearerSrc);
|
|
80
|
+
return () => release(bearerSrc);
|
|
81
|
+
}, [bearerSrc]);
|
|
82
|
+
_react.useEffect.call(void 0, () => {
|
|
83
|
+
if (!bearerSrc || resolvedCache.has(bearerSrc)) return void 0;
|
|
84
|
+
let cancelled = false;
|
|
85
|
+
fetchAsBlobUrl(bearerSrc, accept).catch(() => {
|
|
86
|
+
}).finally(() => {
|
|
87
|
+
if (!cancelled) rerender();
|
|
88
|
+
});
|
|
89
|
+
return () => {
|
|
90
|
+
cancelled = true;
|
|
91
|
+
};
|
|
92
|
+
}, [bearerSrc, accept]);
|
|
93
|
+
if (!src) return void 0;
|
|
94
|
+
if (!bearerSrc) return src;
|
|
95
|
+
return resolvedCache.get(bearerSrc);
|
|
96
|
+
}
|
|
97
|
+
|
|
98
|
+
|
|
99
|
+
|
|
100
|
+
|
|
101
|
+
|
|
102
|
+
exports.useIsomorphicLayoutEffect = useIsomorphicLayoutEffect; exports.clearAuthedAssetCache = clearAuthedAssetCache; exports.useAuthedAssetSrc = useAuthedAssetSrc;
|