@flamingo-stack/openframe-frontend-core 0.0.853 → 0.0.854

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 (146) hide show
  1. package/dist/build/export-map.json +1 -1
  2. package/dist/{chunk-G7GF4PWA.cjs → chunk-2IJMHBOK.cjs} +3 -3
  3. package/dist/{chunk-IC4IJJB2.cjs → chunk-3WXHPD6N.cjs} +55 -55
  4. package/dist/{chunk-UV45EPXN.cjs → chunk-4LTLEUY5.cjs} +5 -5
  5. package/dist/{chunk-BNHTBLAG.cjs → chunk-4O5N5CGK.cjs} +17 -17
  6. package/dist/{chunk-COWMXUHN.cjs → chunk-4SSJ3T3N.cjs} +3 -1
  7. package/dist/{chunk-IUDBG3HJ.cjs → chunk-5HMENXSR.cjs} +3 -3
  8. package/dist/{chunk-COJG2ATY.cjs → chunk-5OENPMRU.cjs} +43 -43
  9. package/dist/{chunk-IO6NN3SL.cjs → chunk-5TXE7BXT.cjs} +46 -46
  10. package/dist/{chunk-EIACEY2L.cjs → chunk-63ZV3UGG.cjs} +10 -10
  11. package/dist/{chunk-HTYJUMFB.cjs → chunk-6DCUGIGU.cjs} +2 -2
  12. package/dist/{chunk-BNG6JOGZ.cjs → chunk-6XU3RCK3.cjs} +18 -18
  13. package/dist/{chunk-KEV6F3QN.cjs → chunk-7J5NSWJG.cjs} +87 -87
  14. package/dist/{chunk-53QPG7SJ.cjs → chunk-7MOBD44H.cjs} +28 -28
  15. package/dist/{chunk-U767P4JU.cjs → chunk-ACPOJE32.cjs} +9 -9
  16. package/dist/{chunk-E4MFQKPC.cjs → chunk-BAA3YCLT.cjs} +72 -72
  17. package/dist/{chunk-7RZHSBNX.cjs → chunk-D2XGRWPW.cjs} +73 -73
  18. package/dist/{chunk-5RMBLOJ5.cjs → chunk-EIHMPQRQ.cjs} +9 -9
  19. package/dist/{chunk-TBGQMHCG.cjs → chunk-ETQNMR2K.cjs} +5 -5
  20. package/dist/{chunk-2W22LY3W.cjs → chunk-FBANHIAG.cjs} +9 -9
  21. package/dist/{chunk-P63CRPWI.cjs → chunk-FJXSKMQJ.cjs} +20 -20
  22. package/dist/{chunk-QOW2GP3V.cjs → chunk-GVHCQRUE.cjs} +21 -21
  23. package/dist/{chunk-KNN2GCMW.cjs → chunk-H3GBPYPS.cjs} +18 -18
  24. package/dist/{chunk-FW7RKWPY.cjs → chunk-JKBNK5U6.cjs} +3 -3
  25. package/dist/{chunk-W7OFAROY.cjs → chunk-KA3L6D5N.cjs} +3 -3
  26. package/dist/{chunk-USPUZO53.cjs → chunk-LQDAB5V5.cjs} +4 -4
  27. package/dist/{chunk-KHOB3TES.cjs → chunk-ONYANAMA.cjs} +4 -4
  28. package/dist/{chunk-GI6ECCWB.cjs → chunk-PRJZMZ3X.cjs} +1155 -739
  29. package/dist/chunk-QD727QFI.cjs +62 -0
  30. package/dist/{chunk-67CZ2Q5K.cjs → chunk-RMI6O3AE.cjs} +32 -32
  31. package/dist/{chunk-EF2FZ7GT.cjs → chunk-S5P6CF5R.cjs} +47 -47
  32. package/dist/{chunk-6V2M2X3M.cjs → chunk-TMPLHUUU.cjs} +6 -6
  33. package/dist/{chunk-UO2EJGRJ.cjs → chunk-UPQ4MAR7.cjs} +14 -14
  34. package/dist/{chunk-LFEURIZN.cjs → chunk-VMAOZA2V.cjs} +215 -215
  35. package/dist/{chunk-NMWLXHFH.cjs → chunk-YY3WP2YQ.cjs} +30 -30
  36. package/dist/{chunk-HF3V6WBJ.cjs → chunk-ZDPPNHA2.cjs} +3 -3
  37. package/dist/{cloud-tenants-QUL2XPAS.cjs → cloud-tenants-5RNK4ZAT.cjs} +19 -19
  38. package/dist/components/case-studies/index.cjs +33 -33
  39. package/dist/components/chat/index.cjs +13 -13
  40. package/dist/components/contact/index.cjs +20 -20
  41. package/dist/components/docs/index.cjs +23 -23
  42. package/dist/components/embeds/index.cjs +20 -20
  43. package/dist/components/faq/index.cjs +21 -21
  44. package/dist/components/features/cloud-tenants/index.d.ts +7 -5
  45. package/dist/components/features/cloud-tenants/index.d.ts.map +1 -1
  46. package/dist/components/features/cloud-tenants/index.js +8 -1
  47. package/dist/components/features/cloud-tenants/single-customer-tenants-table-view.d.ts +26 -0
  48. package/dist/components/features/cloud-tenants/single-customer-tenants-table-view.d.ts.map +1 -0
  49. package/dist/components/features/cloud-tenants/single-customer-tenants-table-view.js +176 -0
  50. package/dist/components/features/cloud-tenants/tenant-access-cell.d.ts +4 -2
  51. package/dist/components/features/cloud-tenants/tenant-access-cell.d.ts.map +1 -1
  52. package/dist/components/features/cloud-tenants/tenant-access-cell.js +3 -2
  53. package/dist/components/features/cloud-tenants/tenant-customer-cell.d.ts +12 -5
  54. package/dist/components/features/cloud-tenants/tenant-customer-cell.d.ts.map +1 -1
  55. package/dist/components/features/cloud-tenants/tenant-customer-cell.js +38 -7
  56. package/dist/components/features/cloud-tenants/tenant-licenses-cell.d.ts +7 -0
  57. package/dist/components/features/cloud-tenants/tenant-licenses-cell.d.ts.map +1 -0
  58. package/dist/components/features/cloud-tenants/tenant-licenses-cell.js +17 -0
  59. package/dist/components/features/cloud-tenants/tenant-presentation.d.ts +19 -0
  60. package/dist/components/features/cloud-tenants/tenant-presentation.d.ts.map +1 -1
  61. package/dist/components/features/cloud-tenants/tenant-presentation.js +24 -3
  62. package/dist/components/features/cloud-tenants/tenant-row.d.ts +35 -8
  63. package/dist/components/features/cloud-tenants/tenant-row.d.ts.map +1 -1
  64. package/dist/components/features/cloud-tenants/tenants-table-columns.d.ts +9 -3
  65. package/dist/components/features/cloud-tenants/tenants-table-columns.d.ts.map +1 -1
  66. package/dist/components/features/cloud-tenants/tenants-table-columns.js +5 -3
  67. package/dist/components/features/cloud-tenants/tenants-table-view.d.ts +27 -6
  68. package/dist/components/features/cloud-tenants/tenants-table-view.d.ts.map +1 -1
  69. package/dist/components/features/cloud-tenants/tenants-table-view.js +75 -17
  70. package/dist/components/features/devices/device-directory.d.ts +18 -0
  71. package/dist/components/features/devices/device-directory.d.ts.map +1 -0
  72. package/dist/components/features/devices/device-directory.js +35 -0
  73. package/dist/components/features/devices/devices-filter-toolbar.d.ts +3 -1
  74. package/dist/components/features/devices/devices-filter-toolbar.d.ts.map +1 -1
  75. package/dist/components/features/devices/devices-filter-toolbar.js +2 -1
  76. package/dist/components/features/devices/devices-panel-view.d.ts +3 -1
  77. package/dist/components/features/devices/devices-panel-view.d.ts.map +1 -1
  78. package/dist/components/features/devices/devices-panel-view.js +11 -2
  79. package/dist/components/features/devices/devices-table-columns.d.ts +17 -3
  80. package/dist/components/features/devices/devices-table-columns.d.ts.map +1 -1
  81. package/dist/components/features/devices/devices-table-columns.js +80 -10
  82. package/dist/components/features/devices/index.d.ts +1 -0
  83. package/dist/components/features/devices/index.d.ts.map +1 -1
  84. package/dist/components/features/devices/index.js +8 -0
  85. package/dist/components/features/devices/types.d.ts +14 -0
  86. package/dist/components/features/devices/types.d.ts.map +1 -1
  87. package/dist/components/features/devices/use-tag-filter-modal.d.ts +1 -0
  88. package/dist/components/features/devices/use-tag-filter-modal.d.ts.map +1 -1
  89. package/dist/components/features/devices/use-tag-filter-modal.js +13 -8
  90. package/dist/components/features/index.cjs +33 -19
  91. package/dist/components/help-center-pages/index.cjs +120 -120
  92. package/dist/components/index.cjs +90 -76
  93. package/dist/components/meeting-scheduler/index.cjs +82 -82
  94. package/dist/components/navigation/app-layout.js +2 -2
  95. package/dist/components/navigation/index.cjs +22 -22
  96. package/dist/components/onboarding-guides/index.cjs +22 -22
  97. package/dist/components/product-demo/index.cjs +30 -30
  98. package/dist/components/related-content/index.cjs +8 -8
  99. package/dist/components/tickets/index.cjs +24 -24
  100. package/dist/components/ui/date-picker.d.ts +2 -0
  101. package/dist/components/ui/date-picker.d.ts.map +1 -1
  102. package/dist/components/ui/date-picker.js +19 -6
  103. package/dist/components/ui/index.cjs +19 -19
  104. package/dist/{devices-LNB4CYPP.cjs → devices-44O5PZOW.cjs} +20 -20
  105. package/dist/{embeddable-chat-SJEEJI4N.cjs → embeddable-chat-W3CLMGC3.cjs} +90 -90
  106. package/dist/hooks/index.cjs +11 -7
  107. package/dist/hooks/ui/use-content-breakpoint.d.ts +8 -0
  108. package/dist/hooks/ui/use-content-breakpoint.d.ts.map +1 -1
  109. package/dist/hooks/ui/use-content-breakpoint.js +17 -3
  110. package/dist/hooks/ui/use-media-query.d.ts +1 -0
  111. package/dist/hooks/ui/use-media-query.d.ts.map +1 -1
  112. package/dist/hooks/ui/use-media-query.js +3 -1
  113. package/dist/index.cjs +42 -24
  114. package/dist/{knowledge-UTWKB6XG.cjs → knowledge-UUU3WVO3.cjs} +20 -20
  115. package/dist/{logs-PMXIWMBQ.cjs → logs-DFHNSODA.cjs} +26 -26
  116. package/dist/{policies-6DCMFDL7.cjs → policies-RGFUGDBP.cjs} +23 -23
  117. package/dist/{remote-session-SG44CNOK.cjs → remote-session-U3H77HKR.cjs} +10 -10
  118. package/dist/{scripts-2G7LXW7Z.cjs → scripts-KOVO5DHW.cjs} +26 -26
  119. package/dist/{software-update-MYLKHDHC.cjs → software-update-4EKHVV5W.cjs} +23 -23
  120. package/dist/{tickets-board-SQY2Y6QV.cjs → tickets-board-YIFOVMDX.cjs} +10 -10
  121. package/dist/utils/presentation-for.d.ts +6 -0
  122. package/dist/utils/presentation-for.d.ts.map +1 -0
  123. package/dist/utils/presentation-for.js +7 -0
  124. package/package.json +1 -1
  125. package/src/components/features/cloud-tenants/index.ts +8 -3
  126. package/src/components/features/cloud-tenants/single-customer-tenants-table-view.tsx +234 -0
  127. package/src/components/features/cloud-tenants/tenant-access-cell.tsx +12 -5
  128. package/src/components/features/cloud-tenants/tenant-customer-cell.tsx +48 -12
  129. package/src/components/features/cloud-tenants/tenant-licenses-cell.tsx +28 -0
  130. package/src/components/features/cloud-tenants/tenant-presentation.ts +46 -4
  131. package/src/components/features/cloud-tenants/tenant-row.ts +38 -8
  132. package/src/components/features/cloud-tenants/tenants-table-columns.ts +8 -5
  133. package/src/components/features/cloud-tenants/tenants-table-view.tsx +123 -28
  134. package/src/components/features/devices/device-directory.ts +55 -0
  135. package/src/components/features/devices/devices-filter-toolbar.tsx +4 -1
  136. package/src/components/features/devices/devices-panel-view.tsx +12 -2
  137. package/src/components/features/devices/devices-table-columns.tsx +123 -8
  138. package/src/components/features/devices/index.ts +7 -0
  139. package/src/components/features/devices/types.ts +14 -0
  140. package/src/components/features/devices/use-tag-filter-modal.ts +32 -14
  141. package/src/components/navigation/app-layout.tsx +4 -4
  142. package/src/components/ui/date-picker.tsx +21 -3
  143. package/src/hooks/ui/use-content-breakpoint.ts +21 -2
  144. package/src/hooks/ui/use-media-query.ts +1 -0
  145. package/src/utils/presentation-for.ts +10 -0
  146. package/dist/chunk-UAI4VMEF.cjs +0 -46
@@ -12,7 +12,7 @@ var _chunkOT6P57ZScjs = require('./chunk-OT6P57ZS.cjs');
12
12
 
13
13
 
14
14
 
15
- var _chunkEIACEY2Lcjs = require('./chunk-EIACEY2L.cjs');
15
+ var _chunk63ZV3UGGcjs = require('./chunk-63ZV3UGG.cjs');
16
16
 
17
17
 
18
18
 
@@ -99,7 +99,7 @@ var _chunkXIBCMGBWcjs = require('./chunk-XIBCMGBW.cjs');
99
99
 
100
100
 
101
101
 
102
- var _chunkFW7RKWPYcjs = require('./chunk-FW7RKWPY.cjs');
102
+ var _chunkJKBNK5U6cjs = require('./chunk-JKBNK5U6.cjs');
103
103
 
104
104
 
105
105
  var _chunkSKI6NKOEcjs = require('./chunk-SKI6NKOE.cjs');
@@ -109,14 +109,14 @@ var _chunkSKI6NKOEcjs = require('./chunk-SKI6NKOE.cjs');
109
109
 
110
110
 
111
111
 
112
- var _chunkW7OFAROYcjs = require('./chunk-W7OFAROY.cjs');
112
+ var _chunkKA3L6D5Ncjs = require('./chunk-KA3L6D5N.cjs');
113
113
 
114
114
 
115
115
  var _chunkRUHKTWGBcjs = require('./chunk-RUHKTWGB.cjs');
116
116
 
117
117
 
118
118
 
119
- var _chunkCOWMXUHNcjs = require('./chunk-COWMXUHN.cjs');
119
+ var _chunk4SSJ3T3Ncjs = require('./chunk-4SSJ3T3N.cjs');
120
120
 
121
121
 
122
122
  var _chunkKKFDRCQFcjs = require('./chunk-KKFDRCQF.cjs');
@@ -195,13 +195,13 @@ function TruncateText({
195
195
  loading: loadingProp = false
196
196
  }) {
197
197
  const isMultiLine = lines > 1;
198
- const { ref, isTruncated } = _chunkCOWMXUHNcjs.useIsTruncated.call(void 0, children, { multiline: isMultiLine });
198
+ const { ref, isTruncated } = _chunk4SSJ3T3Ncjs.useIsTruncated.call(void 0, children, { multiline: isMultiLine });
199
199
  const loading = _chunk63A4GZMBcjs.useLoadingScope.call(void 0, ) && !children || loadingProp;
200
200
  if (loading)
201
201
  return /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkPMUCEUFQcjs.TextLineSkeleton, { type: variant, lines, as, className: _chunk63A4GZMBcjs.cn.call(void 0, "w-3/4", triggerClassName) });
202
202
  const clampClass = isMultiLine ? LINE_CLAMP_CLASS[lines] : "truncate block";
203
203
  return /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
204
- _chunkW7OFAROYcjs.FloatingTooltip,
204
+ _chunkKA3L6D5Ncjs.FloatingTooltip,
205
205
  {
206
206
  content: _nullishCoalesce(tooltip, () => ( children)),
207
207
  side,
@@ -349,7 +349,7 @@ function AutocompleteInner(props, ref) {
349
349
  };
350
350
  const [isOpen, setIsOpen] = _react.useState.call(void 0, false);
351
351
  const [highlightedIndex, setHighlightedIndex] = _react.useState.call(void 0, -1);
352
- const keyboardPadding = _chunkFW7RKWPYcjs.useKeyboardCollisionPadding.call(void 0, );
352
+ const keyboardPadding = _chunkJKBNK5U6cjs.useKeyboardCollisionPadding.call(void 0, );
353
353
  const containerRef = _react.useRef.call(void 0, null);
354
354
  const hiddenTagsPopupRef = _react.useRef.call(void 0, null);
355
355
  const isInvalid = invalid || !!error;
@@ -371,7 +371,7 @@ function AutocompleteInner(props, ref) {
371
371
  textMeasureRef,
372
372
  badgeRef,
373
373
  inputRef
374
- } = _chunkFW7RKWPYcjs.useAutoLimitTags.call(void 0, {
374
+ } = _chunkJKBNK5U6cjs.useAutoLimitTags.call(void 0, {
375
375
  count: multiple ? selectedOptions.length : 0,
376
376
  limitTags: multiple ? wrapTags ? selectedOptions.length : limitTagsProp : 0,
377
377
  placeholder: inputPlaceholder
@@ -590,7 +590,7 @@ function AutocompleteInner(props, ref) {
590
590
  ),
591
591
  children: [
592
592
  multiple && visibleTags.map((option) => /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
593
- _chunkW7OFAROYcjs.Tag,
593
+ _chunkKA3L6D5Ncjs.Tag,
594
594
  {
595
595
  variant: "outline",
596
596
  className: wrapTags ? "max-w-full" : void 0,
@@ -790,7 +790,7 @@ function AutocompleteInner(props, ref) {
790
790
  children: /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: "relative", ref: containerRef, children: [
791
791
  popover,
792
792
  multiple && showHiddenTags && hiddenTagsCount > 0 && /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
793
- _chunkEIACEY2Lcjs.HiddenTagsPopup,
793
+ _chunk63ZV3UGGcjs.HiddenTagsPopup,
794
794
  {
795
795
  ref: hiddenTagsPopupRef,
796
796
  items: hiddenTags,
@@ -803,10 +803,10 @@ function AutocompleteInner(props, ref) {
803
803
  }
804
804
  }
805
805
  ),
806
- multiple && /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { "aria-hidden": "true", className: _chunkFW7RKWPYcjs.MEASURE_LAYER_CLASS, children: [
806
+ multiple && /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { "aria-hidden": "true", className: _chunkJKBNK5U6cjs.MEASURE_LAYER_CLASS, children: [
807
807
  /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "span", { ref: textMeasureRef, "aria-hidden": "true", className: "whitespace-nowrap text-h4", children: inputPlaceholder }),
808
808
  /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { ref: measureRef, "aria-hidden": "true", className: "flex w-max gap-2", children: selectedOptions.map((option) => /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
809
- _chunkW7OFAROYcjs.Tag,
809
+ _chunkKA3L6D5Ncjs.Tag,
810
810
  {
811
811
  variant: "outline",
812
812
  labelClassName: "max-w-[90px] truncate",
@@ -1340,13 +1340,13 @@ var ENTITY_IMAGE_SIZE = _chunkPMUCEUFQcjs.TILE_SIZE.entity;
1340
1340
  var ENTITY_IMAGE_RADIUS_CLASS = "rounded-md";
1341
1341
  function EntityImage({ src, alt, fallbackText, sizeClassName, className }) {
1342
1342
  const held = _chunk63A4GZMBcjs.useLoadingScope.call(void 0, );
1343
- const authedSrc = _chunkCOWMXUHNcjs.useAuthedImageSrc.call(void 0, held ? void 0 : src);
1343
+ const authedSrc = _chunk4SSJ3T3Ncjs.useAuthedImageSrc.call(void 0, held ? void 0 : src);
1344
1344
  const resolvedSrc = authedSrc;
1345
1345
  const [failedSrc, setFailedSrc] = _react2.default.useState(null);
1346
1346
  const imageFailed = resolvedSrc !== void 0 && failedSrc === resolvedSrc;
1347
1347
  if (held) return /* @__PURE__ */ _jsxruntime.jsx.call(void 0, EntityImageSkeleton, { sizeClassName, className });
1348
1348
  const showFallback = imageFailed || !resolvedSrc;
1349
- const initials = _chunkW7OFAROYcjs.personInitials.call(void 0, _nullishCoalesce(fallbackText, () => ( alt)));
1349
+ const initials = _chunkKA3L6D5Ncjs.personInitials.call(void 0, _nullishCoalesce(fallbackText, () => ( alt)));
1350
1350
  if (showFallback) {
1351
1351
  return /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
1352
1352
  "div",
@@ -1439,10 +1439,10 @@ function TitleBlock({
1439
1439
  const titleClass = titleSize === "h1" ? "text-h1" : "text-h2";
1440
1440
  const titleOverflowClass = titleWrap ? "break-words" : "truncate";
1441
1441
  const skeletonSize = TITLE_SKELETON_SIZE[titleSize];
1442
- const { ref: titleRef, isTruncated: titleTruncated } = _chunkCOWMXUHNcjs.useIsTruncated.call(void 0,
1442
+ const { ref: titleRef, isTruncated: titleTruncated } = _chunk4SSJ3T3Ncjs.useIsTruncated.call(void 0,
1443
1443
  titleLoading ? null : title
1444
1444
  );
1445
- const { ref: subtitleRef, isTruncated: subtitleTruncated } = _chunkCOWMXUHNcjs.useIsTruncated.call(void 0,
1445
+ const { ref: subtitleRef, isTruncated: subtitleTruncated } = _chunk4SSJ3T3Ncjs.useIsTruncated.call(void 0,
1446
1446
  subtitleLoading ? null : subtitle
1447
1447
  );
1448
1448
  const titleNode = titleLoading && titleSkeletonLines && titleWrap ? /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkPMUCEUFQcjs.TextLinesByBreakpointSkeleton, { as: "span", lines: titleSkeletonLines }) : titleLoading && titleSkeletonLines ? (
@@ -1508,7 +1508,7 @@ function TitleBlock({
1508
1508
  /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: "flex min-w-0 flex-1 flex-col justify-center", children: [
1509
1509
  (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: [
1510
1510
  /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
1511
- _chunkW7OFAROYcjs.FloatingTooltip,
1511
+ _chunkKA3L6D5Ncjs.FloatingTooltip,
1512
1512
  {
1513
1513
  content: title,
1514
1514
  side: "bottom",
@@ -1525,12 +1525,12 @@ function TitleBlock({
1525
1525
  }
1526
1526
  ),
1527
1527
  /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "span", { className: "shrink-0", children: titleAdornment })
1528
- ] }) : /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkW7OFAROYcjs.FloatingTooltip, { content: title, side: "bottom", disabled: !titleTruncated, children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, PageTitle, { ref: titleRef, className: _chunk63A4GZMBcjs.cn.call(void 0, titleClass, "text-ods-text-primary", titleOverflowClass), children: titleNode }) })),
1528
+ ] }) : /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkKA3L6D5Ncjs.FloatingTooltip, { content: title, side: "bottom", disabled: !titleTruncated, children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, PageTitle, { ref: titleRef, className: _chunk63A4GZMBcjs.cn.call(void 0, titleClass, "text-ods-text-primary", titleOverflowClass), children: titleNode }) })),
1529
1529
  hasSubtitleRow && /* The NBSP is a pure spacer, reached only in `'always'` mode: an
1530
1530
  empty `p` collapses to zero height (its only content would be
1531
1531
  collapsible whitespace), which is exactly the shift that mode
1532
1532
  exists to prevent. Hidden from AT — it carries no meaning. */
1533
- /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkW7OFAROYcjs.FloatingTooltip, { content: subtitle, side: "bottom", disabled: !subtitleTruncated, children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
1533
+ /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkKA3L6D5Ncjs.FloatingTooltip, { content: subtitle, side: "bottom", disabled: !subtitleTruncated, children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
1534
1534
  "p",
1535
1535
  {
1536
1536
  ref: subtitleRef,
@@ -1548,7 +1548,7 @@ function TitleBlock({
1548
1548
  ) })
1549
1549
  ] })
1550
1550
  ] }) : title && (titleAdornment ? /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: "flex w-full min-w-0 items-center gap-[var(--spacing-system-m)]", children: [
1551
- /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkW7OFAROYcjs.FloatingTooltip, { content: title, side: "bottom", disabled: !titleTruncated, triggerClassName: "min-w-0", children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
1551
+ /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkKA3L6D5Ncjs.FloatingTooltip, { content: title, side: "bottom", disabled: !titleTruncated, triggerClassName: "min-w-0", children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
1552
1552
  PageTitle,
1553
1553
  {
1554
1554
  ref: titleRef,
@@ -1676,7 +1676,7 @@ function RemoteSessionViewers({ viewers, max = 4, className }) {
1676
1676
  children: [
1677
1677
  /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "span", { className: "flex items-center", children: [
1678
1678
  faces.map((viewer, index) => /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
1679
- _chunkW7OFAROYcjs.SquareAvatar,
1679
+ _chunkKA3L6D5Ncjs.SquareAvatar,
1680
1680
  {
1681
1681
  variant: "round",
1682
1682
  sizePx: 32,
@@ -1710,7 +1710,7 @@ function RemoteSessionViewers({ viewers, max = 4, className }) {
1710
1710
  ),
1711
1711
  children: [
1712
1712
  /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
1713
- _chunkW7OFAROYcjs.SquareAvatar,
1713
+ _chunkKA3L6D5Ncjs.SquareAvatar,
1714
1714
  {
1715
1715
  variant: "round",
1716
1716
  sizePx: 24,
@@ -1756,7 +1756,7 @@ function RemoteSessionScope({ children, className }) {
1756
1756
  function RemoteSessionOrgLogo({ name, logoUrl, sizePx, className }) {
1757
1757
  if (logoUrl) {
1758
1758
  return /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
1759
- _chunkW7OFAROYcjs.SquareAvatar,
1759
+ _chunkKA3L6D5Ncjs.SquareAvatar,
1760
1760
  {
1761
1761
  variant: "square",
1762
1762
  fit: "contain",
@@ -1866,7 +1866,7 @@ function RemoteAccessRequestCard({
1866
1866
  /* @__PURE__ */ _jsxruntime.jsx.call(void 0, RemoteSessionOrgLogo, { name: organizationName, logoUrl: party.organizationLogoUrl, sizePx: 64 }),
1867
1867
  /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: "flex min-w-0 flex-1 flex-col", children: [
1868
1868
  /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "p", { className: "w-full truncate text-ods-text-primary text-h3", children: organizationName }),
1869
- siteUrl && /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "p", { className: "w-full truncate text-ods-text-secondary text-h4", children: _chunkW7OFAROYcjs.formatUrlForDisplay.call(void 0, siteUrl, { keepWww: true }) })
1869
+ siteUrl && /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "p", { className: "w-full truncate text-ods-text-secondary text-h4", children: _chunkKA3L6D5Ncjs.formatUrlForDisplay.call(void 0, siteUrl, { keepWww: true }) })
1870
1870
  ] }),
1871
1871
  openableSite && onOpenSite && /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkFCZAUK4Dcjs.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" }) })
1872
1872
  ] }),
@@ -1977,7 +1977,7 @@ function RemoteSessionSummary({
1977
1977
  ...dragHandlers,
1978
1978
  children: [
1979
1979
  technician ? /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
1980
- _chunkW7OFAROYcjs.SquareAvatar,
1980
+ _chunkKA3L6D5Ncjs.SquareAvatar,
1981
1981
  {
1982
1982
  variant: "round",
1983
1983
  sizePx: 48,
@@ -2031,7 +2031,7 @@ var RemoteSessionMinimizedChip = _react.forwardRef.call(void 0,
2031
2031
  ...dragHandlers,
2032
2032
  children: /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "span", { className: "flex flex-col overflow-hidden rounded-md border border-ods-border", children: [
2033
2033
  technician ? /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
2034
- _chunkW7OFAROYcjs.SquareAvatar,
2034
+ _chunkKA3L6D5Ncjs.SquareAvatar,
2035
2035
  {
2036
2036
  sizePx: 48,
2037
2037
  src: _nullishCoalesce(party.technicianAvatarUrl, () => ( void 0)),
@@ -2183,7 +2183,7 @@ function RemoteSessionChatMessageRow({
2183
2183
  return /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: "flex w-full flex-col", children: [
2184
2184
  /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: "flex w-full items-center gap-[var(--spacing-system-xs)]", children: [
2185
2185
  isTechnician && /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
2186
- _chunkW7OFAROYcjs.SquareAvatar,
2186
+ _chunkKA3L6D5Ncjs.SquareAvatar,
2187
2187
  {
2188
2188
  variant: "round",
2189
2189
  sizePx: 16,
@@ -2226,7 +2226,7 @@ function RemoteDesktopChatMessageRow({
2226
2226
  return /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: MESSAGE_ROW_CLASS, "aria-hidden": loading || void 0, ..._chunk63A4GZMBcjs.loadingItemProps.call(void 0, props), children: [
2227
2227
  /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: MESSAGE_HEAD_CLASS, children: [
2228
2228
  isTechnician && /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
2229
- _chunkW7OFAROYcjs.SquareAvatar,
2229
+ _chunkKA3L6D5Ncjs.SquareAvatar,
2230
2230
  {
2231
2231
  loading,
2232
2232
  variant: "round",
@@ -2245,7 +2245,7 @@ function RemoteDesktopChatMessageRow({
2245
2245
  ),
2246
2246
  loading ? /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkPMUCEUFQcjs.TextLineSkeleton, { type: "h6", as: "span", className: "w-12 shrink-0" }) : (
2247
2247
  // The time is in the viewer's zone, which a server render cannot know.
2248
- /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "span", { suppressHydrationWarning: true, className: "shrink-0 text-ods-text-secondary text-h6", children: _chunkEIACEY2Lcjs.formatTime.call(void 0, sentAt) })
2248
+ /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "span", { suppressHydrationWarning: true, className: "shrink-0 text-ods-text-secondary text-h6", children: _chunk63ZV3UGGcjs.formatTime.call(void 0, sentAt) })
2249
2249
  )
2250
2250
  ] }),
2251
2251
  loading ? /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkPMUCEUFQcjs.TextLineSkeleton, { type: "h4", className: "w-3/4" }) : /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "p", { className: "whitespace-pre-wrap text-ods-text-primary text-h4", children: body })
@@ -2311,7 +2311,7 @@ function RemoteDesktopChatPanel({
2311
2311
  message.id
2312
2312
  )) }) }),
2313
2313
  /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
2314
- _chunkEIACEY2Lcjs.ChatInput,
2314
+ _chunk63ZV3UGGcjs.ChatInput,
2315
2315
  {
2316
2316
  placeholder: "Enter your Message...",
2317
2317
  onSend,
@@ -2654,9 +2654,9 @@ function KeepRecordingModal({
2654
2654
  if (!canKeep || isPending) return;
2655
2655
  onConfirm({ reason, description: reason === "OTHER" ? trimmed : null });
2656
2656
  };
2657
- return /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, _chunkEIACEY2Lcjs.Modal, { isOpen, onClose: isPending ? () => {
2657
+ return /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, _chunk63ZV3UGGcjs.Modal, { isOpen, onClose: isPending ? () => {
2658
2658
  } : onClose, className: "text-left md:max-w-[600px]", children: [
2659
- /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkEIACEY2Lcjs.ModalHeader, { children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkEIACEY2Lcjs.ModalTitle, { children: "Keep this recording" }) }),
2659
+ /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunk63ZV3UGGcjs.ModalHeader, { children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunk63ZV3UGGcjs.ModalTitle, { children: "Keep this recording" }) }),
2660
2660
  /* @__PURE__ */ _jsxruntime.jsxs.call(void 0,
2661
2661
  KeepNotice,
2662
2662
  {
@@ -2694,7 +2694,7 @@ function KeepRecordingModal({
2694
2694
  }
2695
2695
  )
2696
2696
  ] }),
2697
- /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, _chunkEIACEY2Lcjs.ModalFooter, { children: [
2697
+ /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, _chunk63ZV3UGGcjs.ModalFooter, { children: [
2698
2698
  /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkFCZAUK4Dcjs.Button, { type: "button", variant: "outline", onClick: onClose, disabled: isPending, className: "flex-1 md:hidden", children: "Cancel" }),
2699
2699
  /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: "hidden flex-1 md:block" }),
2700
2700
  /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
@@ -2724,9 +2724,9 @@ function ReleaseKeepingModal({
2724
2724
  isPending = false,
2725
2725
  onConfirm
2726
2726
  }) {
2727
- return /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, _chunkEIACEY2Lcjs.Modal, { isOpen, onClose: isPending ? () => {
2727
+ return /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, _chunk63ZV3UGGcjs.Modal, { isOpen, onClose: isPending ? () => {
2728
2728
  } : onClose, className: "text-left md:max-w-[600px]", children: [
2729
- /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkEIACEY2Lcjs.ModalHeader, { children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkEIACEY2Lcjs.ModalTitle, { children: "Release Keeping" }) }),
2729
+ /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunk63ZV3UGGcjs.ModalHeader, { children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunk63ZV3UGGcjs.ModalTitle, { children: "Release Keeping" }) }),
2730
2730
  /* @__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: [
2731
2731
  /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "p", { children: [
2732
2732
  "Kept by ",
@@ -2743,7 +2743,7 @@ function ReleaseKeepingModal({
2743
2743
  ] })
2744
2744
  ] }),
2745
2745
  /* @__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." }),
2746
- /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, _chunkEIACEY2Lcjs.ModalFooter, { children: [
2746
+ /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, _chunk63ZV3UGGcjs.ModalFooter, { children: [
2747
2747
  /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkFCZAUK4Dcjs.Button, { type: "button", variant: "outline", onClick: onClose, disabled: isPending, className: "flex-1 md:hidden", children: "Cancel" }),
2748
2748
  /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: "hidden flex-1 md:block" }),
2749
2749
  /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkFCZAUK4Dcjs.Button, { type: "button", variant: "accent", onClick: onConfirm, loading: isPending, className: "flex-1", children: "Release Keeping" })
@@ -2785,9 +2785,9 @@ function AssignTicketModal({
2785
2785
  if (ticketIds.length === 0 || isPending) return;
2786
2786
  onConfirm(ticketIds);
2787
2787
  };
2788
- return /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, _chunkEIACEY2Lcjs.Modal, { isOpen, onClose: isPending ? () => {
2788
+ return /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, _chunk63ZV3UGGcjs.Modal, { isOpen, onClose: isPending ? () => {
2789
2789
  } : onClose, className: "text-left md:max-w-[600px]", children: [
2790
- /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkEIACEY2Lcjs.ModalHeader, { children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkEIACEY2Lcjs.ModalTitle, { children: "Assign Ticket" }) }),
2790
+ /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunk63ZV3UGGcjs.ModalHeader, { children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunk63ZV3UGGcjs.ModalTitle, { children: "Assign Ticket" }) }),
2791
2791
  /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
2792
2792
  Autocomplete,
2793
2793
  {
@@ -2806,7 +2806,7 @@ function AssignTicketModal({
2806
2806
  disabled: isPending
2807
2807
  }
2808
2808
  ),
2809
- /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, _chunkEIACEY2Lcjs.ModalFooter, { children: [
2809
+ /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, _chunk63ZV3UGGcjs.ModalFooter, { children: [
2810
2810
  /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkFCZAUK4Dcjs.Button, { type: "button", variant: "outline", onClick: onClose, disabled: isPending, className: "flex-1 md:hidden", children: "Cancel" }),
2811
2811
  /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: "hidden flex-1 md:block" }),
2812
2812
  /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
@@ -2825,11 +2825,11 @@ function AssignTicketModal({
2825
2825
  ] });
2826
2826
  }
2827
2827
  function UnassignTicketModal({ isOpen, onClose, isPending = false, onConfirm }) {
2828
- return /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, _chunkEIACEY2Lcjs.Modal, { isOpen, onClose: isPending ? () => {
2828
+ return /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, _chunk63ZV3UGGcjs.Modal, { isOpen, onClose: isPending ? () => {
2829
2829
  } : onClose, className: "text-left md:max-w-[600px]", children: [
2830
- /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkEIACEY2Lcjs.ModalHeader, { children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkEIACEY2Lcjs.ModalTitle, { children: "Unassign Ticket" }) }),
2830
+ /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunk63ZV3UGGcjs.ModalHeader, { children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunk63ZV3UGGcjs.ModalTitle, { children: "Unassign Ticket" }) }),
2831
2831
  /* @__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." }),
2832
- /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, _chunkEIACEY2Lcjs.ModalFooter, { children: [
2832
+ /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, _chunk63ZV3UGGcjs.ModalFooter, { children: [
2833
2833
  /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkFCZAUK4Dcjs.Button, { type: "button", variant: "outline", onClick: onClose, disabled: isPending, className: "flex-1 md:hidden", children: "Cancel" }),
2834
2834
  /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: "hidden flex-1 md:block" }),
2835
2835
  /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkFCZAUK4Dcjs.Button, { type: "button", variant: "destructive", onClick: onConfirm, loading: isPending, className: "flex-1", children: "Unassign" })
@@ -2910,7 +2910,7 @@ var STATUS_TAG = {
2910
2910
  function RemoteSessionStatusTag({ status, className }) {
2911
2911
  const { label, variant } = STATUS_TAG[status];
2912
2912
  return /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
2913
- _chunkW7OFAROYcjs.Tag,
2913
+ _chunkKA3L6D5Ncjs.Tag,
2914
2914
  {
2915
2915
  label,
2916
2916
  variant,
@@ -12,7 +12,7 @@ var _chunkDLTPSP5Fcjs = require('./chunk-DLTPSP5F.cjs');
12
12
 
13
13
 
14
14
 
15
- var _chunk2W22LY3Wcjs = require('./chunk-2W22LY3W.cjs');
15
+ var _chunkFBANHIAGcjs = require('./chunk-FBANHIAG.cjs');
16
16
 
17
17
 
18
18
 
@@ -27,7 +27,7 @@ var _chunk2W22LY3Wcjs = require('./chunk-2W22LY3W.cjs');
27
27
 
28
28
 
29
29
 
30
- var _chunkNMWLXHFHcjs = require('./chunk-NMWLXHFH.cjs');
30
+ var _chunkYY3WP2YQcjs = require('./chunk-YY3WP2YQ.cjs');
31
31
 
32
32
 
33
33
  var _chunkO3EKOXFZcjs = require('./chunk-O3EKOXFZ.cjs');
@@ -449,13 +449,13 @@ function programEntry(configKey) {
449
449
  return cardEntry({
450
450
  // The gallery and hosts rows are drawn only for a type whose cards show them (its config's `cardShowsGallery`,
451
451
  // `cardShowsHosts`), as `ProgramCard` decides in a scope: elsewhere a record may have none.
452
- skeleton: (size, extras) => /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkNMWLXHFHcjs.ProgramCard, { loading: true, config: _optionalChain([extras, 'optionalAccess', _2 => _2.programConfigs, 'optionalAccess', _3 => _3[configKey]]), size: size === "sm" ? "sm" : "default" }),
452
+ skeleton: (size, extras) => /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkYY3WP2YQcjs.ProgramCard, { loading: true, config: _optionalChain([extras, 'optionalAccess', _2 => _2.programConfigs, 'optionalAccess', _3 => _3[configKey]]), size: size === "sm" ? "sm" : "default" }),
453
453
  decode: decodeProgramRow,
454
454
  render: (item, ctx) => {
455
455
  const config = _optionalChain([ctx, 'access', _4 => _4.extras, 'optionalAccess', _5 => _5.programConfigs, 'optionalAccess', _6 => _6[configKey]]);
456
456
  if (!config) return null;
457
457
  return /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
458
- _chunkNMWLXHFHcjs.ProgramCard,
458
+ _chunkYY3WP2YQcjs.ProgramCard,
459
459
  {
460
460
  config,
461
461
  item,
@@ -473,10 +473,10 @@ function programEntry(configKey) {
473
473
  }
474
474
  function roadmapEntry(cardType) {
475
475
  return cardEntry({
476
- skeleton: (size) => /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkNMWLXHFHcjs.RoadmapCard, { loading: true, size: size === "sm" ? "sm" : "default" }),
476
+ skeleton: (size) => /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkYY3WP2YQcjs.RoadmapCard, { loading: true, size: size === "sm" ? "sm" : "default" }),
477
477
  decode: decodeRoadmapRow,
478
478
  render: (item, ctx) => /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
479
- _chunkNMWLXHFHcjs.RoadmapCard,
479
+ _chunkYY3WP2YQcjs.RoadmapCard,
480
480
  {
481
481
  item,
482
482
  href: ctx.href,
@@ -493,10 +493,10 @@ function roadmapEntry(cardType) {
493
493
  }
494
494
  var RELATED_CARD_REGISTRY = {
495
495
  blog_post_existing: cardEntry({
496
- skeleton: (size) => /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkNMWLXHFHcjs.BlogCard, { loading: true, size: size === "sm" ? "sm" : "default" }),
496
+ skeleton: (size) => /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkYY3WP2YQcjs.BlogCard, { loading: true, size: size === "sm" ? "sm" : "default" }),
497
497
  decode: decodeBlogRow,
498
498
  render: (post, ctx) => /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
499
- _chunkNMWLXHFHcjs.BlogCard,
499
+ _chunkYY3WP2YQcjs.BlogCard,
500
500
  {
501
501
  post,
502
502
  size: ctx.legacySize,
@@ -524,10 +524,10 @@ var RELATED_CARD_REGISTRY = {
524
524
  )
525
525
  }),
526
526
  customer_interview: cardEntry({
527
- skeleton: (size) => /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkNMWLXHFHcjs.CustomerInterviewCard, { loading: true, size: size === "sm" ? "sm" : "default" }),
527
+ skeleton: (size) => /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkYY3WP2YQcjs.CustomerInterviewCard, { loading: true, size: size === "sm" ? "sm" : "default" }),
528
528
  decode: decodeCustomerInterviewRow,
529
529
  render: (interview, ctx) => /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
530
- _chunkNMWLXHFHcjs.CustomerInterviewCard,
530
+ _chunkYY3WP2YQcjs.CustomerInterviewCard,
531
531
  {
532
532
  interview,
533
533
  size: ctx.legacySize,
@@ -545,13 +545,13 @@ var RELATED_CARD_REGISTRY = {
545
545
  * record, and the three props the rail sets itself are read off it.
546
546
  */
547
547
  product_release: cardEntry({
548
- skeleton: (size) => /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkNMWLXHFHcjs.ProductReleaseCard, { loading: true, size: size === "sm" ? "sm" : "lg" }),
548
+ skeleton: (size) => /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkYY3WP2YQcjs.ProductReleaseCard, { loading: true, size: size === "sm" ? "sm" : "lg" }),
549
549
  decode: asRecord,
550
550
  render: (release, ctx) => {
551
- const buildReleaseProps = _nullishCoalesce(_optionalChain([ctx, 'access', _7 => _7.extras, 'optionalAccess', _8 => _8.buildProductReleaseCardProps]), () => ( _chunkNMWLXHFHcjs.buildProductReleaseCardProps));
551
+ const buildReleaseProps = _nullishCoalesce(_optionalChain([ctx, 'access', _7 => _7.extras, 'optionalAccess', _8 => _8.buildProductReleaseCardProps]), () => ( _chunkYY3WP2YQcjs.buildProductReleaseCardProps));
552
552
  const releaseProps = buildReleaseProps(release);
553
553
  return /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
554
- _chunkNMWLXHFHcjs.ProductReleaseCard,
554
+ _chunkYY3WP2YQcjs.ProductReleaseCard,
555
555
  {
556
556
  size: ctx.size === "sm" ? "sm" : "lg",
557
557
  title: str(release, "title"),
@@ -567,10 +567,10 @@ var RELATED_CARD_REGISTRY = {
567
567
  webinar: programEntry("webinar"),
568
568
  event: programEntry("event"),
569
569
  investor_update: cardEntry({
570
- skeleton: (size) => /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkNMWLXHFHcjs.InvestorUpdateCard, { loading: true, size: size === "sm" ? "sm" : "default" }),
570
+ skeleton: (size) => /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkYY3WP2YQcjs.InvestorUpdateCard, { loading: true, size: size === "sm" ? "sm" : "default" }),
571
571
  decode: decodeInvestorUpdateRow,
572
572
  render: (update, ctx) => /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
573
- _chunkNMWLXHFHcjs.InvestorUpdateCard,
573
+ _chunkYY3WP2YQcjs.InvestorUpdateCard,
574
574
  {
575
575
  update,
576
576
  size: ctx.legacySize,
@@ -585,10 +585,10 @@ var RELATED_CARD_REGISTRY = {
585
585
  * step-numbered 'default' variant is for the guide detail page's "More in
586
586
  * section" rail, not this full-width row. */
587
587
  onboarding_guide: cardEntry({
588
- skeleton: (size) => /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkNMWLXHFHcjs.OnboardingGuideCard, { loading: true, size: size === "sm" ? "sm" : "catalog", published: false }),
588
+ skeleton: (size) => /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkYY3WP2YQcjs.OnboardingGuideCard, { loading: true, size: size === "sm" ? "sm" : "catalog", published: false }),
589
589
  decode: decodeOnboardingGuideRow,
590
590
  render: (guide, ctx) => /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
591
- _chunkNMWLXHFHcjs.OnboardingGuideCard,
591
+ _chunkYY3WP2YQcjs.OnboardingGuideCard,
592
592
  {
593
593
  guide,
594
594
  size: ctx.size === "sm" ? "sm" : "catalog",
@@ -605,10 +605,10 @@ var RELATED_CARD_REGISTRY = {
605
605
  * href: an object with `href: undefined` is still truthy and would wrap the
606
606
  * card in a dead <a>. */
607
607
  what_i_shipped: cardEntry({
608
- skeleton: () => /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunk2W22LY3Wcjs.WhatIShippedCard, { loading: true }),
608
+ skeleton: () => /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkFBANHIAGcjs.WhatIShippedCard, { loading: true }),
609
609
  decode: decodeEmployeeEntryRow,
610
610
  render: (entry, ctx) => /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
611
- _chunk2W22LY3Wcjs.WhatIShippedCard,
611
+ _chunkFBANHIAGcjs.WhatIShippedCard,
612
612
  {
613
613
  entry,
614
614
  placeholderUrl: ctx.placeholderUrl,
@@ -618,10 +618,10 @@ var RELATED_CARD_REGISTRY = {
618
618
  }),
619
619
  /** Same shared employee-entry shape + anchor contract as What I Shipped. */
620
620
  how_i_work: cardEntry({
621
- skeleton: () => /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunk2W22LY3Wcjs.HowIWorkCard, { loading: true }),
621
+ skeleton: () => /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkFBANHIAGcjs.HowIWorkCard, { loading: true }),
622
622
  decode: decodeEmployeeEntryRow,
623
623
  render: (entry, ctx) => /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
624
- _chunk2W22LY3Wcjs.HowIWorkCard,
624
+ _chunkFBANHIAGcjs.HowIWorkCard,
625
625
  {
626
626
  entry,
627
627
  placeholderUrl: ctx.placeholderUrl,
@@ -631,10 +631,10 @@ var RELATED_CARD_REGISTRY = {
631
631
  }),
632
632
  /** Same shared employee-entry shape + anchor contract as What I Shipped. */
633
633
  ai_prompt: cardEntry({
634
- skeleton: () => /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunk2W22LY3Wcjs.AiPromptCard, { loading: true }),
634
+ skeleton: () => /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkFBANHIAGcjs.AiPromptCard, { loading: true }),
635
635
  decode: decodeEmployeeEntryRow,
636
636
  render: (entry, ctx) => /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
637
- _chunk2W22LY3Wcjs.AiPromptCard,
637
+ _chunkFBANHIAGcjs.AiPromptCard,
638
638
  {
639
639
  entry,
640
640
  placeholderUrl: ctx.placeholderUrl,
@@ -718,9 +718,9 @@ function useGroupItems(type, refs, buildUrl, seedRows) {
718
718
  () => seedRows && url !== null ? /* @__PURE__ */ new Map([[url, [...seedRows]]]) : /* @__PURE__ */ new Map()
719
719
  );
720
720
  const cached = url !== null ? pages.get(url) : void 0;
721
- const { data, dataUrl, error } = _chunk2W22LY3Wcjs.useSelfFetch.call(void 0, cached ? null : url);
721
+ const { data, dataUrl, error } = _chunkFBANHIAGcjs.useSelfFetch.call(void 0, cached ? null : url);
722
722
  if (data != null && dataUrl !== null && !pages.has(dataUrl)) {
723
- setPages(new Map(pages).set(dataUrl, _chunkNMWLXHFHcjs.extractItems.call(void 0, data)));
723
+ setPages(new Map(pages).set(dataUrl, _chunkYY3WP2YQcjs.extractItems.call(void 0, data)));
724
724
  }
725
725
  if (url === null) return { items: null, isLoading: false };
726
726
  return { items: _nullishCoalesce(cached, () => ( (error ? [] : null))), isLoading: !cached && !error };
@@ -729,7 +729,7 @@ function gridClassFor(columns) {
729
729
  return columns === 3 ? "grid grid-cols-1 sm:grid-cols-2 lg:grid-cols-3 gap-6" : "grid grid-cols-1 sm:grid-cols-2 gap-6";
730
730
  }
731
731
  function resolveGroupConfig(type) {
732
- return _nullishCoalesce(_chunk2W22LY3Wcjs.CONTENT_REF_GROUPS[type], () => ( {
732
+ return _nullishCoalesce(_chunkFBANHIAGcjs.CONTENT_REF_GROUPS[type], () => ( {
733
733
  label: type,
734
734
  order: 999,
735
735
  layout: "grid",
@@ -742,15 +742,15 @@ var GROUP_HEADING_CLASS = "font-semibold text-ods-text-secondary text-h5";
742
742
  var RAIL_CLASS = "flex flex-col gap-8";
743
743
  var UNKNOWN_TYPE_CARD = "blog_post_existing";
744
744
  function GroupHeading({ type }) {
745
- return /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "h3", { className: GROUP_HEADING_CLASS, children: _chunk2W22LY3Wcjs.getContentRefLabelOrTitleCase.call(void 0, type) });
745
+ return /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "h3", { className: GROUP_HEADING_CLASS, children: _chunkFBANHIAGcjs.getContentRefLabelOrTitleCase.call(void 0, type) });
746
746
  }
747
747
  function orderRailTypes(types, entityType) {
748
- let ordered = _chunk2W22LY3Wcjs.orderContentRefTypes.call(void 0, types);
748
+ let ordered = _chunkFBANHIAGcjs.orderContentRefTypes.call(void 0, types);
749
749
  if (entityType) {
750
- const canonicalEntityType = _chunkNMWLXHFHcjs.canonicalContentRefType.call(void 0, entityType);
751
- const sameType = ordered.filter((t) => _chunkNMWLXHFHcjs.canonicalContentRefType.call(void 0, t) === canonicalEntityType);
750
+ const canonicalEntityType = _chunkYY3WP2YQcjs.canonicalContentRefType.call(void 0, entityType);
751
+ const sameType = ordered.filter((t) => _chunkYY3WP2YQcjs.canonicalContentRefType.call(void 0, t) === canonicalEntityType);
752
752
  if (sameType.length > 0) {
753
- ordered = [...sameType, ...ordered.filter((t) => _chunkNMWLXHFHcjs.canonicalContentRefType.call(void 0, t) !== canonicalEntityType)];
753
+ ordered = [...sameType, ...ordered.filter((t) => _chunkYY3WP2YQcjs.canonicalContentRefType.call(void 0, t) !== canonicalEntityType)];
754
754
  }
755
755
  }
756
756
  return ordered;
@@ -779,8 +779,8 @@ function ContentGroup({
779
779
  setPagedRefsKey(refsKey);
780
780
  setPage(1);
781
781
  }
782
- const totalGroupPages = _chunkBLH2SFOOcjs.pageCount.call(void 0, refs.length, _chunk2W22LY3Wcjs.GROUP_PAGE_SIZE);
783
- const pageRefs = refs.slice((page - 1) * _chunk2W22LY3Wcjs.GROUP_PAGE_SIZE, page * _chunk2W22LY3Wcjs.GROUP_PAGE_SIZE);
782
+ const totalGroupPages = _chunkBLH2SFOOcjs.pageCount.call(void 0, refs.length, _chunkFBANHIAGcjs.GROUP_PAGE_SIZE);
783
+ const pageRefs = refs.slice((page - 1) * _chunkFBANHIAGcjs.GROUP_PAGE_SIZE, page * _chunkFBANHIAGcjs.GROUP_PAGE_SIZE);
784
784
  const { items, isLoading } = useGroupItems(type, pageRefs, buildUrl, seedRows);
785
785
  const groupPagination = totalGroupPages > 1 ? /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkDLTPSP5Fcjs.Pagination, { currentPage: page, totalPages: totalGroupPages, onPageChange: setPage }) : null;
786
786
  _react.useEffect.call(void 0, () => {
@@ -800,7 +800,7 @@ function ContentGroup({
800
800
  }
801
801
  if (!items) return null;
802
802
  const rowKey = (it) => {
803
- const extracted = _chunkNMWLXHFHcjs.extractItemId.call(void 0, type, it);
803
+ const extracted = _chunkYY3WP2YQcjs.extractItemId.call(void 0, type, it);
804
804
  if (extracted !== null) return extracted;
805
805
  return String(typeof it === "object" && it !== null ? it.id : void 0);
806
806
  };
@@ -871,11 +871,11 @@ function RelatedContentSection({
871
871
  types: includeTypes !== void 0 ? includeTypes.join(",") : void 0,
872
872
  excludeTypes: excludeTypes && excludeTypes.length > 0 ? excludeTypes.join(",") : void 0
873
873
  };
874
- const authorUrl = contentRefs === void 0 && authorId && !suggestionsDisabled ? _chunk2W22LY3Wcjs.buildSuggestionUrl.call(void 0, "/api/related-content", {
874
+ const authorUrl = contentRefs === void 0 && authorId && !suggestionsDisabled ? _chunkFBANHIAGcjs.buildSuggestionUrl.call(void 0, "/api/related-content", {
875
875
  apiBaseUrl,
876
876
  extraParams: { authorId, ...typeFilterParams }
877
877
  }) : null;
878
- const suggestUrl = _nullishCoalesce(authorUrl, () => ( (contentRefs === void 0 && entityType && entityId !== void 0 && entityId !== null && entityId !== "" && !suggestionsDisabled ? _chunk2W22LY3Wcjs.buildSuggestionUrl.call(void 0, "/api/related-content", {
878
+ const suggestUrl = _nullishCoalesce(authorUrl, () => ( (contentRefs === void 0 && entityType && entityId !== void 0 && entityId !== null && entityId !== "" && !suggestionsDisabled ? _chunkFBANHIAGcjs.buildSuggestionUrl.call(void 0, "/api/related-content", {
879
879
  apiBaseUrl,
880
880
  entityType,
881
881
  entityId,
@@ -892,7 +892,7 @@ function RelatedContentSection({
892
892
  () => !suggestionsDisabled && initialItems ? { refs: initialItems } : void 0,
893
893
  [initialItems, suggestionsDisabled]
894
894
  );
895
- const { data, isLoading } = _chunk2W22LY3Wcjs.useSelfFetch.call(void 0, suggestUrl, { initialData });
895
+ const { data, isLoading } = _chunkFBANHIAGcjs.useSelfFetch.call(void 0, suggestUrl, { initialData });
896
896
  const inScope = _chunk63A4GZMBcjs.useLoadingScope.call(void 0, );
897
897
  const [loadingTypes, setLoadingTypes] = _react.useState.call(void 0, () => /* @__PURE__ */ new Set());
898
898
  const onGroupLoadingChange = _react.useCallback.call(void 0, (type, loading) => {
@@ -905,7 +905,7 @@ function RelatedContentSection({
905
905
  });
906
906
  }, []);
907
907
  const effectiveBuildListUrl = _react.useMemo.call(void 0,
908
- () => _nullishCoalesce(buildListUrl2, () => ( ((type, ids) => _chunkNMWLXHFHcjs.buildListUrl.call(void 0, type, ids, apiBaseUrl)))),
908
+ () => _nullishCoalesce(buildListUrl2, () => ( ((type, ids) => _chunkYY3WP2YQcjs.buildListUrl.call(void 0, type, ids, apiBaseUrl)))),
909
909
  [buildListUrl2, apiBaseUrl]
910
910
  );
911
911
  const refs = _nullishCoalesce(_nullishCoalesce(contentRefs, () => ( _optionalChain([data, 'optionalAccess', _12 => _12.refs]))), () => ( []));
@@ -929,7 +929,7 @@ function RelatedContentSection({
929
929
  }
930
930
  if (!showWhenEmpty) return null;
931
931
  return /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: "space-y-8", children: [
932
- /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "h2", { className: "text-2xl font-bold text-ods-text-primary", children: _chunkNMWLXHFHcjs.accentSentenceMarks.call(void 0, title) }),
932
+ /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "h2", { className: "text-2xl font-bold text-ods-text-primary", children: _chunkYY3WP2YQcjs.accentSentenceMarks.call(void 0, title) }),
933
933
  _nullishCoalesce(emptyState, () => ( /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "p", { className: "text-ods-text-secondary", children: emptyStateText })))
934
934
  ] });
935
935
  }
@@ -955,7 +955,7 @@ function RelatedContentSection({
955
955
  );
956
956
  }
957
957
  return /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, _chunk2XCORRJVcjs.LoadingRegion, { as: "section", label: "Loading related content", announce: loadingTypes.size > 0, className: RAIL_CLASS, children: [
958
- /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "h2", { className: RAIL_TITLE_CLASS, children: _chunkNMWLXHFHcjs.accentSentenceMarks.call(void 0, title) }),
958
+ /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "h2", { className: RAIL_TITLE_CLASS, children: _chunkYY3WP2YQcjs.accentSentenceMarks.call(void 0, title) }),
959
959
  orderedTypes.map((type, groupIndex) => /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
960
960
  ContentGroup,
961
961
  {
@@ -986,24 +986,24 @@ function RelatedContentSectionSkeleton({
986
986
  adminCampaignCard,
987
987
  extras
988
988
  }) {
989
- const canonicalEntityType = entityType ? _chunkNMWLXHFHcjs.canonicalContentRefType.call(void 0, entityType) : null;
989
+ const canonicalEntityType = entityType ? _chunkYY3WP2YQcjs.canonicalContentRefType.call(void 0, entityType) : null;
990
990
  const unknownGroup = types.length === 0 ? /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: GROUP_CLASS, "aria-hidden": true, "data-loading-item": true, children: [
991
991
  /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "h3", { className: GROUP_HEADING_CLASS, children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkPMUCEUFQcjs.TextLineSkeleton, { type: "inherit", as: "span", className: "w-24" }) }),
992
- /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: gridClassFor(columns), children: Array.from({ length: _chunk2W22LY3Wcjs.GROUP_PAGE_SIZE }, (_, i) => (
992
+ /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: gridClassFor(columns), children: Array.from({ length: _chunkFBANHIAGcjs.GROUP_PAGE_SIZE }, (_, i) => (
993
993
  // biome-ignore lint/suspicious/noArrayIndexKey: skeleton cards never reorder
994
994
  /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { "data-loading-item": true, children: renderSkeletonForType(UNKNOWN_TYPE_CARD, "default", adminCampaignCard, extras) }, i)
995
995
  )) })
996
996
  ] }) : null;
997
997
  return /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, _chunk2XCORRJVcjs.LoadingRegion, { as: "section", label: "Loading related content", className: RAIL_CLASS, children: [
998
- /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "h2", { className: RAIL_TITLE_CLASS, children: title ? _chunkNMWLXHFHcjs.accentSentenceMarks.call(void 0, title) : /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkPMUCEUFQcjs.TextLineSkeleton, { type: "inherit", as: "span", className: "w-1/2" }) }),
998
+ /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "h2", { className: RAIL_TITLE_CLASS, children: title ? _chunkYY3WP2YQcjs.accentSentenceMarks.call(void 0, title) : /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkPMUCEUFQcjs.TextLineSkeleton, { type: "inherit", as: "span", className: "w-1/2" }) }),
999
999
  unknownGroup,
1000
1000
  orderRailTypes(new Set(types), entityType).map((type) => {
1001
1001
  const config = resolveGroupConfig(type);
1002
- const sameType = canonicalEntityType !== null && _chunkNMWLXHFHcjs.canonicalContentRefType.call(void 0, type) === canonicalEntityType;
1002
+ const sameType = canonicalEntityType !== null && _chunkYY3WP2YQcjs.canonicalContentRefType.call(void 0, type) === canonicalEntityType;
1003
1003
  const isList = config.layout === "list";
1004
1004
  const count = Math.min(
1005
- _chunk2W22LY3Wcjs.GROUP_PAGE_SIZE,
1006
- _nullishCoalesce((sameType ? _nullishCoalesce(sameTypeMinResults, () => ( minResults)) : minResults), () => ( _chunk2W22LY3Wcjs.GROUP_PAGE_SIZE))
1005
+ _chunkFBANHIAGcjs.GROUP_PAGE_SIZE,
1006
+ _nullishCoalesce((sameType ? _nullishCoalesce(sameTypeMinResults, () => ( minResults)) : minResults), () => ( _chunkFBANHIAGcjs.GROUP_PAGE_SIZE))
1007
1007
  );
1008
1008
  const cards = Array.from({ length: count }, (_, i) => (
1009
1009
  // biome-ignore lint/suspicious/noArrayIndexKey: skeleton cards never reorder