@flamingo-stack/openframe-frontend-core 0.0.776 → 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.
Files changed (79) hide show
  1. package/dist/case-study-card-FMH622O5.cjs +25 -0
  2. package/dist/{chunk-2AZAJ7RK.cjs → chunk-3PCSEZNZ.cjs} +53 -53
  3. package/dist/{chunk-R3JX4MXD.cjs → chunk-3ZLPYEL5.cjs} +10 -10
  4. package/dist/{chunk-3V27UHSH.cjs → chunk-4JZDJ34E.cjs} +17 -17
  5. package/dist/{chunk-DGFDBPO7.cjs → chunk-5GJM7VRR.cjs} +1 -94
  6. package/dist/{chunk-E64HPPRH.cjs → chunk-5PK22JP7.cjs} +50 -50
  7. package/dist/{chunk-57B5RUYD.cjs → chunk-64KBI5MI.cjs} +2 -2
  8. package/dist/{chunk-BDYI6HBT.cjs → chunk-7LJSGOWS.cjs} +18 -16
  9. package/dist/{chunk-ASMNNSUQ.cjs → chunk-7PNRXJX2.cjs} +3 -3
  10. package/dist/{chunk-2YB4X5WT.cjs → chunk-ALA4KHTE.cjs} +6 -6
  11. package/dist/{chunk-VFZFCRAL.cjs → chunk-AQXKXZWB.cjs} +4 -4
  12. package/dist/{chunk-OTZQP53Y.cjs → chunk-BDDOC425.cjs} +8 -8
  13. package/dist/{chunk-VFUMM6JC.cjs → chunk-BEMGJDXI.cjs} +2 -2
  14. package/dist/{chunk-HY6BCZH7.cjs → chunk-BNUZKBNV.cjs} +3 -3
  15. package/dist/{chunk-MYHS4W2H.cjs → chunk-CGQ7CL62.cjs} +213 -1647
  16. package/dist/{chunk-L55XLH5A.cjs → chunk-DOM5CUEY.cjs} +33 -31
  17. package/dist/{chunk-IXZNBDXT.cjs → chunk-G2N7INFT.cjs} +28 -28
  18. package/dist/{chunk-XN6LXMH5.cjs → chunk-HXLOCZMG.cjs} +595 -591
  19. package/dist/{chunk-CZIMISAR.cjs → chunk-JB2SEF6Q.cjs} +7 -7
  20. package/dist/{chunk-2MF547RG.cjs → chunk-JMFF3L3T.cjs} +28 -26
  21. package/dist/{chunk-LJT2KRE2.cjs → chunk-KLTUTZBO.cjs} +24 -24
  22. package/dist/{chunk-EHJE3UWZ.cjs → chunk-LBGAHB6X.cjs} +20 -20
  23. package/dist/{chunk-OJLZ7PGO.cjs → chunk-LGNJTSKB.cjs} +37 -35
  24. package/dist/{chunk-MWH5ZTMB.cjs → chunk-LU2DGST4.cjs} +97 -95
  25. package/dist/chunk-MQPTOJMF.cjs +1504 -0
  26. package/dist/{chunk-XXJL5GY3.cjs → chunk-OJZBZH56.cjs} +3 -3
  27. package/dist/{chunk-XT5WEHFM.cjs → chunk-QIATO42V.cjs} +3 -3
  28. package/dist/{chunk-RB7VLVMD.cjs → chunk-R6BKQKIF.cjs} +9 -7
  29. package/dist/{chunk-NWZSYG4S.cjs → chunk-S3YDUX2I.cjs} +114 -112
  30. package/dist/{chunk-DDXQGTWB.cjs → chunk-SDZG7VV7.cjs} +5 -5
  31. package/dist/{chunk-V3W56L2D.cjs → chunk-SIDDZZKL.cjs} +38 -38
  32. package/dist/chunk-SZHDXXMK.cjs +102 -0
  33. package/dist/{chunk-AMVI5VXM.cjs → chunk-T47VAUYR.cjs} +91 -89
  34. package/dist/{chunk-F65RSJVV.cjs → chunk-T7NDPPLF.cjs} +23 -21
  35. package/dist/{chunk-5P4TDV7V.cjs → chunk-TUAATMUE.cjs} +5 -93
  36. package/dist/{chunk-KM2TVQCH.cjs → chunk-TZP7PSPG.cjs} +249 -243
  37. package/dist/{chunk-WAQPW4CB.cjs → chunk-U5VQFKRZ.cjs} +6 -6
  38. package/dist/{chunk-24OYQQZC.cjs → chunk-UW6AOF42.cjs} +22 -22
  39. package/dist/chunk-V4FXUIMH.cjs +92 -0
  40. package/dist/{chunk-2JRSYWFP.cjs → chunk-VXAKQRV7.cjs} +5 -5
  41. package/dist/{chunk-UM6HFGTI.cjs → chunk-VY3NGJRH.cjs} +53 -51
  42. package/dist/{chunk-LNCBN4BL.cjs → chunk-WCSWWVPF.cjs} +2 -2
  43. package/dist/{chunk-6HY2NH7D.cjs → chunk-WMZIBRTR.cjs} +2 -2
  44. package/dist/{chunk-5QP3K2CE.cjs → chunk-XEYL6AFZ.cjs} +9 -9
  45. package/dist/{chunk-YFTQ2ALU.cjs → chunk-XVAVQ4BK.cjs} +116 -82
  46. package/dist/{chunk-Z5KX56TK.cjs → chunk-Y6MQBLTZ.cjs} +4 -4
  47. package/dist/{cloud-tenants-QFE6QMR5.cjs → cloud-tenants-EUH42CCL.cjs} +27 -24
  48. package/dist/components/case-studies/index.cjs +45 -41
  49. package/dist/components/chat/index.cjs +21 -17
  50. package/dist/components/contact/index.cjs +28 -25
  51. package/dist/components/docs/index.cjs +31 -28
  52. package/dist/components/embeds/index.cjs +28 -25
  53. package/dist/components/faq/index.cjs +29 -26
  54. package/dist/components/features/index.cjs +28 -24
  55. package/dist/components/help-center-pages/index.cjs +131 -127
  56. package/dist/components/index.cjs +94 -90
  57. package/dist/components/meeting-scheduler/index.cjs +95 -92
  58. package/dist/components/navigation/index.cjs +30 -27
  59. package/dist/components/navigation/nav-panel.d.ts.map +1 -1
  60. package/dist/components/navigation/nav-panel.js +47 -13
  61. package/dist/components/onboarding-guides/index.cjs +30 -27
  62. package/dist/components/product-demo/index.cjs +38 -35
  63. package/dist/components/related-content/index.cjs +15 -12
  64. package/dist/components/tickets/index.cjs +33 -30
  65. package/dist/components/ui/index.cjs +28 -24
  66. package/dist/{devices-SFJDLXSW.cjs → devices-WL3I23EE.cjs} +28 -25
  67. package/dist/{embeddable-chat-XZUWAK4W.cjs → embeddable-chat-KEWUGQIF.cjs} +99 -95
  68. package/dist/hooks/index.cjs +12 -10
  69. package/dist/index.cjs +36 -30
  70. package/dist/{knowledge-SAK3ZGCO.cjs → knowledge-O3PXUX73.cjs} +28 -25
  71. package/dist/{logs-CYBGMFA5.cjs → logs-XODCXWYI.cjs} +35 -32
  72. package/dist/{policies-XXDOICWF.cjs → policies-CQACBIKK.cjs} +31 -28
  73. package/dist/{remote-session-TC3BZDBZ.cjs → remote-session-TGM2OTTV.cjs} +12 -10
  74. package/dist/{scripts-C5T2AQPA.cjs → scripts-QMM6SEB5.cjs} +34 -31
  75. package/dist/{software-update-XU5AI4TP.cjs → software-update-CCCKS4ZE.cjs} +31 -28
  76. package/dist/{tickets-board-YT25IX3O.cjs → tickets-board-FB5AGLJD.cjs} +16 -14
  77. package/dist/{video-file-player-6ZFOZFER.cjs → video-file-player-SIJW5UWU.cjs} +3 -2
  78. package/package.json +1 -1
  79. 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 _chunkMYHS4W2Hcjs = require('./chunk-MYHS4W2H.cjs');
4
+ var _chunkCGQ7CL62cjs = require('./chunk-CGQ7CL62.cjs');
5
5
 
6
6
 
7
7
 
8
- var _chunkHY6BCZH7cjs = require('./chunk-HY6BCZH7.cjs');
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 _chunkHY6BCZH7cjs.formatDateWithTimezone.call(void 0, value, null, "long");
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 = _chunkMYHS4W2Hcjs.useProxiedImageUrl.call(void 0, avatar, { proxyImageUrl });
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 = _chunkHY6BCZH7cjs.formatBioText.call(void 0, _nullishCoalesce(bio, () => ( null)));
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 _chunk5QP3K2CEcjs = require('./chunk-5QP3K2CE.cjs');
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 _chunkHY6BCZH7cjs = require('./chunk-HY6BCZH7.cjs');
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 _chunk5P4TDV7Vcjs = require('./chunk-5P4TDV7V.cjs');
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 } = _chunk5P4TDV7Vcjs.useIsTruncated.call(void 0, children, { multiline: isMultiLine });
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
- _chunkHY6BCZH7cjs.FloatingTooltip,
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
- _chunkHY6BCZH7cjs.Tag,
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
- _chunkHY6BCZH7cjs.Tag,
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 = _chunk5P4TDV7Vcjs.useAuthedImageSrc.call(void 0, held ? void 0 : src);
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 = _chunkHY6BCZH7cjs.personInitials.call(void 0, _nullishCoalesce(fallbackText, () => ( alt)));
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 } = _chunk5P4TDV7Vcjs.useIsTruncated.call(void 0,
1411
+ const { ref: titleRef, isTruncated: titleTruncated } = _chunkV4FXUIMHcjs.useIsTruncated.call(void 0,
1412
1412
  titleLoading ? null : title
1413
1413
  );
1414
- const { ref: subtitleRef, isTruncated: subtitleTruncated } = _chunk5P4TDV7Vcjs.useIsTruncated.call(void 0,
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
- _chunkHY6BCZH7cjs.FloatingTooltip,
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, _chunkHY6BCZH7cjs.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 }) })),
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, _chunkHY6BCZH7cjs.FloatingTooltip, { content: subtitle, side: "bottom", disabled: !subtitleTruncated, children: /* @__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, _chunkHY6BCZH7cjs.FloatingTooltip, { content: title, side: "bottom", disabled: !titleTruncated, triggerClassName: "min-w-0", children: /* @__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
- _chunkHY6BCZH7cjs.SquareAvatar,
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
- _chunkHY6BCZH7cjs.SquareAvatar,
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
- _chunkHY6BCZH7cjs.SquareAvatar,
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: _chunkHY6BCZH7cjs.formatUrlForDisplay.call(void 0, siteUrl, { keepWww: true }) })
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
- _chunkHY6BCZH7cjs.SquareAvatar,
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
- _chunkHY6BCZH7cjs.SquareAvatar,
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
- _chunkHY6BCZH7cjs.SquareAvatar,
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, _chunkHY6BCZH7cjs.SquareAvatar, { variant: "round", sizePx: 24, src: avatarUrl, alt: authorName, className: "shrink-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: _chunk5QP3K2CEcjs.formatTime.call(void 0, sentAt) })
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
- _chunk5QP3K2CEcjs.ChatInput,
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, _chunk5QP3K2CEcjs.Modal, { isOpen, onClose: isPending ? () => {
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, _chunk5QP3K2CEcjs.ModalHeader, { children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunk5QP3K2CEcjs.ModalTitle, { children: "Keep this recording" }) }),
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, _chunk5QP3K2CEcjs.ModalFooter, { children: [
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, _chunk5QP3K2CEcjs.Modal, { isOpen, onClose: isPending ? () => {
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, _chunk5QP3K2CEcjs.ModalHeader, { children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunk5QP3K2CEcjs.ModalTitle, { children: "Release Keeping" }) }),
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, _chunk5QP3K2CEcjs.ModalFooter, { children: [
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, _chunk5QP3K2CEcjs.Modal, { isOpen, onClose: isPending ? () => {
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, _chunk5QP3K2CEcjs.ModalHeader, { children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunk5QP3K2CEcjs.ModalTitle, { children: "Assign Ticket" }) }),
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, _chunk5QP3K2CEcjs.ModalFooter, { children: [
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, _chunk5QP3K2CEcjs.Modal, { isOpen, onClose: isPending ? () => {
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, _chunk5QP3K2CEcjs.ModalHeader, { children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunk5QP3K2CEcjs.ModalTitle, { children: "Unassign Ticket" }) }),
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, _chunk5QP3K2CEcjs.ModalFooter, { children: [
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
- _chunkHY6BCZH7cjs.Tag,
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;