@flamingo-stack/openframe-frontend-core 0.0.842 → 0.0.844

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 (77) hide show
  1. package/dist/build/export-map.json +1 -1
  2. package/dist/{chunk-2HRQU4ZL.cjs → chunk-7ERU4NGF.cjs} +10 -10
  3. package/dist/{chunk-RAFWT3WG.cjs → chunk-B4FUDHRE.cjs} +24 -24
  4. package/dist/{chunk-WOYARKPQ.cjs → chunk-C2X73N3E.cjs} +7 -7
  5. package/dist/{chunk-GQJXOX5S.cjs → chunk-EGOCAIZJ.cjs} +158 -86
  6. package/dist/{chunk-IVM35OAW.cjs → chunk-GBB7NLN7.cjs} +3 -3
  7. package/dist/{chunk-IVS23CAK.cjs → chunk-IUWCOK3X.cjs} +3 -3
  8. package/dist/{chunk-7UZYI4GV.cjs → chunk-KSOBM66X.cjs} +2 -2
  9. package/dist/{chunk-3ONBCAD2.cjs → chunk-KSPMB4GV.cjs} +22 -33
  10. package/dist/{chunk-CQQRGM6D.cjs → chunk-M7QI23GE.cjs} +31 -31
  11. package/dist/{chunk-SMZWXY4X.cjs → chunk-QKZQ5Q6E.cjs} +6 -1
  12. package/dist/{chunk-ZOWAYKDN.cjs → chunk-SVI3AB3A.cjs} +3 -3
  13. package/dist/{chunk-YNKXXDOI.cjs → chunk-WUJGPHF2.cjs} +4 -4
  14. package/dist/{cloud-tenants-U6Y2UZVF.cjs → cloud-tenants-5C32YDIE.cjs} +2 -2
  15. package/dist/components/case-studies/index.cjs +11 -11
  16. package/dist/components/contact/index.cjs +3 -3
  17. package/dist/components/docs/index.cjs +4 -4
  18. package/dist/components/embeds/index.cjs +3 -3
  19. package/dist/components/faq/index.cjs +3 -3
  20. package/dist/components/features/devices/device-unread-indicator.d.ts +6 -0
  21. package/dist/components/features/devices/device-unread-indicator.d.ts.map +1 -0
  22. package/dist/components/features/devices/device-unread-indicator.js +12 -0
  23. package/dist/components/features/devices/devices-grid.d.ts.map +1 -1
  24. package/dist/components/features/devices/devices-grid.js +5 -1
  25. package/dist/components/features/devices/devices-table-columns.d.ts.map +1 -1
  26. package/dist/components/features/devices/devices-table-columns.js +3 -1
  27. package/dist/components/features/devices/devices-view-config.d.ts +6 -4
  28. package/dist/components/features/devices/devices-view-config.d.ts.map +1 -1
  29. package/dist/components/features/devices/index.d.ts +1 -0
  30. package/dist/components/features/devices/index.d.ts.map +1 -1
  31. package/dist/components/features/devices/index.js +2 -0
  32. package/dist/components/features/devices/types.d.ts +2 -0
  33. package/dist/components/features/devices/types.d.ts.map +1 -1
  34. package/dist/components/features/index.cjs +4 -2
  35. package/dist/components/features/software/update-settings-fields.d.ts.map +1 -1
  36. package/dist/components/features/software/update-settings-fields.js +1 -1
  37. package/dist/components/help-center-pages/index.cjs +46 -46
  38. package/dist/components/index.cjs +25 -17
  39. package/dist/components/meeting-scheduler/index.cjs +20 -20
  40. package/dist/components/navigation/count-pill.d.ts +10 -0
  41. package/dist/components/navigation/count-pill.d.ts.map +1 -0
  42. package/dist/components/navigation/count-pill.js +18 -0
  43. package/dist/components/navigation/index.cjs +9 -3
  44. package/dist/components/navigation/index.d.ts +4 -0
  45. package/dist/components/navigation/index.d.ts.map +1 -1
  46. package/dist/components/navigation/index.js +5 -0
  47. package/dist/components/navigation/navigation-sidebar-grouped.d.ts.map +1 -1
  48. package/dist/components/navigation/navigation-sidebar-grouped.js +1 -12
  49. package/dist/components/navigation/unread-notifications-indicator.d.ts +19 -0
  50. package/dist/components/navigation/unread-notifications-indicator.d.ts.map +1 -0
  51. package/dist/components/navigation/unread-notifications-indicator.js +45 -0
  52. package/dist/components/onboarding-guides/index.cjs +3 -3
  53. package/dist/components/product-demo/fixtures/devices.d.ts.map +1 -1
  54. package/dist/components/product-demo/fixtures/devices.js +6 -1
  55. package/dist/components/product-demo/index.cjs +11 -11
  56. package/dist/components/tickets/index.cjs +5 -5
  57. package/dist/components/ui/index.cjs +2 -2
  58. package/dist/{devices-HB4GEMJH.cjs → devices-F2ENCTJM.cjs} +5 -5
  59. package/dist/index.cjs +11 -3
  60. package/dist/{knowledge-I53Z6DV7.cjs → knowledge-ZNUNREKL.cjs} +2 -2
  61. package/dist/{logs-SFLAZIQG.cjs → logs-DHZFCX2I.cjs} +9 -9
  62. package/dist/{policies-EIAGQO6T.cjs → policies-2FKRLSOC.cjs} +6 -6
  63. package/dist/{scripts-SNJ4UVRF.cjs → scripts-J3J7XCT4.cjs} +7 -7
  64. package/dist/{software-update-AZFRUC5N.cjs → software-update-AIQHLJ5O.cjs} +7 -7
  65. package/package.json +1 -1
  66. package/src/components/features/devices/device-unread-indicator.tsx +14 -0
  67. package/src/components/features/devices/devices-grid.tsx +9 -1
  68. package/src/components/features/devices/devices-table-columns.tsx +3 -0
  69. package/src/components/features/devices/devices-view-config.tsx +6 -4
  70. package/src/components/features/devices/index.ts +1 -0
  71. package/src/components/features/devices/types.ts +2 -0
  72. package/src/components/features/software/update-settings-fields.tsx +19 -16
  73. package/src/components/navigation/count-pill.tsx +25 -0
  74. package/src/components/navigation/index.ts +4 -0
  75. package/src/components/navigation/navigation-sidebar-grouped.tsx +1 -14
  76. package/src/components/navigation/unread-notifications-indicator.tsx +69 -0
  77. package/src/components/product-demo/fixtures/devices.ts +7 -0
@@ -1,7 +1,7 @@
1
1
  "use strict";Object.defineProperty(exports, "__esModule", {value: true});"use client";
2
2
 
3
3
 
4
- var _chunkGQJXOX5Scjs = require('./chunk-GQJXOX5S.cjs');
4
+ var _chunkEGOCAIZJcjs = require('./chunk-EGOCAIZJ.cjs');
5
5
 
6
6
 
7
7
  var _chunkCKR42OBKcjs = require('./chunk-CKR42OBK.cjs');
@@ -48,7 +48,7 @@ function GoogleSheetsViewer({ externalUrl, fileName, height }) {
48
48
  ] });
49
49
  }
50
50
  return /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
51
- _chunkGQJXOX5Scjs.EmbedViewerFrame,
51
+ _chunkEGOCAIZJcjs.EmbedViewerFrame,
52
52
  {
53
53
  icon: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkCKR42OBKcjs.GoogleSheetsIcon, { className: "h-5 w-5 shrink-0" }),
54
54
  title: displayName,
@@ -83,7 +83,7 @@ function PdfViewer({ src, fileName, onPreview, onDownload, height }) {
83
83
  ] });
84
84
  }
85
85
  return /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
86
- _chunkGQJXOX5Scjs.EmbedViewerFrame,
86
+ _chunkEGOCAIZJcjs.EmbedViewerFrame,
87
87
  {
88
88
  icon: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkM7ZSKWT3cjs.AdobePdfIcon, { className: "h-5 w-5 shrink-0" }),
89
89
  title: displayName,
@@ -2,7 +2,7 @@
2
2
 
3
3
 
4
4
 
5
- var _chunkGQJXOX5Scjs = require('./chunk-GQJXOX5S.cjs');
5
+ var _chunkEGOCAIZJcjs = require('./chunk-EGOCAIZJ.cjs');
6
6
 
7
7
 
8
8
 
@@ -209,7 +209,7 @@ function ContactForm({
209
209
  !showEmail && /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "input", { type: "hidden", ...register("email") }),
210
210
  !showHelpCategory && /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "input", { type: "hidden", ...register("helpCategory") }),
211
211
  !showMessage && /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "input", { type: "hidden", ...register("message") }),
212
- /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkGQJXOX5Scjs.HoneypotField, { ...honeypotInputProps }),
212
+ /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkEGOCAIZJcjs.HoneypotField, { ...honeypotInputProps }),
213
213
  extraTopField,
214
214
  showNameEmailRow && /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: "grid grid-cols-1 gap-4 content-md:grid-cols-2 content-md:gap-6", children: [
215
215
  showName && /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: "flex flex-col", children: [
@@ -334,7 +334,7 @@ function ContactForm({
334
334
  /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkSWF6TNZ3cjs.RequiredMark, {})
335
335
  ] }),
336
336
  /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
337
- _chunkGQJXOX5Scjs.Textarea,
337
+ _chunkEGOCAIZJcjs.Textarea,
338
338
  {
339
339
  id: "message",
340
340
  ...register("message"),
@@ -4,7 +4,7 @@
4
4
  var _chunkQPJUQ5YUcjs = require('./chunk-QPJUQ5YU.cjs');
5
5
 
6
6
 
7
- var _chunkGQJXOX5Scjs = require('./chunk-GQJXOX5S.cjs');
7
+ var _chunkEGOCAIZJcjs = require('./chunk-EGOCAIZJ.cjs');
8
8
 
9
9
 
10
10
  var _chunkWCK5T3UDcjs = require('./chunk-WCK5T3UD.cjs');
@@ -51,7 +51,7 @@ function FaqDocumentPage({
51
51
  skeletonNav
52
52
  }
53
53
  ) });
54
- return shell ? /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkGQJXOX5Scjs.PageShell, { children: inner }) : /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: "page-shell-content", children: inner });
54
+ return shell ? /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkEGOCAIZJcjs.PageShell, { children: inner }) : /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: "page-shell-content", children: inner });
55
55
  }
56
56
 
57
57
 
@@ -18,7 +18,8 @@ var _chunkMWQOM2EIcjs = require('./chunk-MWQOM2EI.cjs');
18
18
 
19
19
 
20
20
 
21
- var _chunkGQJXOX5Scjs = require('./chunk-GQJXOX5S.cjs');
21
+
22
+ var _chunkEGOCAIZJcjs = require('./chunk-EGOCAIZJ.cjs');
22
23
 
23
24
 
24
25
 
@@ -218,7 +219,7 @@ function NavItemRow({
218
219
  className
219
220
  }) {
220
221
  const label = navLinkLabel(link);
221
- const counter = badge ? /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkGQJXOX5Scjs.UnreadCountBadge, { count: badge, className: "static shrink-0" }) : null;
222
+ const counter = badge ? /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkEGOCAIZJcjs.UnreadCountBadge, { count: badge, className: "static shrink-0" }) : null;
222
223
  const singleLine = !link.description && !link.builtOn;
223
224
  const rowClassName = _chunk63A4GZMBcjs.cn.call(void 0,
224
225
  ROW_CLASSES[variant],
@@ -640,7 +641,7 @@ function SiteHeader({
640
641
  leading: /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, _jsxruntime.Fragment, { children: [
641
642
  leading,
642
643
  mobile && /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
643
- _chunkGQJXOX5Scjs.HeaderButton,
644
+ _chunkEGOCAIZJcjs.HeaderButton,
644
645
  {
645
646
  className: "border-r border-ods-border lg:hidden",
646
647
  onClick: mobile.onToggle,
@@ -947,7 +948,7 @@ function SiteFooter({
947
948
  const bandPrimary = typeof nav.primaryCta === "object" ? /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkFCZAUK4Dcjs.Button, { variant: "accent", href: nav.primaryCta.href, children: nav.primaryCta.label }) : nav.primaryCta === "none" ? null : _nullishCoalesce(cta, () => ( null));
948
949
  const columns = nav.footerColumns;
949
950
  const accordion = columns.length > ACCORDION_OVER;
950
- const socialRow = _nullishCoalesce(social, () => ( (nav.brand.social.length > 0 ? /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkGQJXOX5Scjs.SocialIconRow, { compact: true, links: _chunkGQJXOX5Scjs.siteNavSocialLinks.call(void 0, nav.brand.social) }) : null)));
951
+ const socialRow = _nullishCoalesce(social, () => ( (nav.brand.social.length > 0 ? /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkEGOCAIZJcjs.SocialIconRow, { compact: true, links: _chunkEGOCAIZJcjs.siteNavSocialLinks.call(void 0, nav.brand.social) }) : null)));
951
952
  return /* @__PURE__ */ _jsxruntime.jsxs.call(void 0,
952
953
  "footer",
953
954
  {
@@ -1251,7 +1252,7 @@ function PageSectionBar({ sections: listed, label, brand, action }) {
1251
1252
  });
1252
1253
  if (sections.length === 0 && !inScope) return null;
1253
1254
  return /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
1254
- _chunkGQJXOX5Scjs.PageContainer,
1255
+ _chunkEGOCAIZJcjs.PageContainer,
1255
1256
  {
1256
1257
  as: "div",
1257
1258
  backgroundClassName: "sticky z-30 border-b border-ods-border bg-ods-bg transition-[top] duration-300 ease-in-out motion-reduce:transition-none",
@@ -1347,20 +1348,8 @@ var idleIcon = (group) => _chunk63A4GZMBcjs.cn.call(void 0,
1347
1348
  group === "row" ? "group-hover/nav-row:text-ods-text-primary" : "group-hover/nav-child:text-ods-text-primary"
1348
1349
  );
1349
1350
  var EXPANDED_ONLY = "opacity-0 transition-opacity duration-150 @[140px]/of-nav-sidebar:opacity-100 motion-reduce:transition-none";
1350
- function CountPill({ count, className }) {
1351
- return /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
1352
- "span",
1353
- {
1354
- className: _chunk63A4GZMBcjs.cn.call(void 0,
1355
- "flex h-6 min-w-6 shrink-0 items-center justify-center rounded-md bg-ods-accent px-[var(--spacing-system-xxs)]",
1356
- className
1357
- ),
1358
- children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "span", { className: "text-ods-text-on-accent text-h5", children: count > 99 ? "99+" : count })
1359
- }
1360
- );
1361
- }
1362
1351
  function RowEnd({ count }) {
1363
- return count > 0 ? /* @__PURE__ */ _jsxruntime.jsx.call(void 0, CountPill, { count, className: "ml-auto" }) : null;
1352
+ return count > 0 ? /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkEGOCAIZJcjs.CountPill, { count, className: "ml-auto" }) : null;
1364
1353
  }
1365
1354
  function RowLabel({ item, showLabel = true }) {
1366
1355
  const unreadCount = _nullishCoalesce(item.unreadCount, () => ( 0));
@@ -1397,7 +1386,7 @@ function RowIcon({ item, size, className }) {
1397
1386
  className: _chunk63A4GZMBcjs.cn.call(void 0, "relative flex shrink-0 items-center justify-center", size === 20 ? "size-5" : "size-4", className),
1398
1387
  children: [
1399
1388
  sizedIcon(item.icon, size),
1400
- (_nullishCoalesce(item.unreadCount, () => ( 0))) > 0 && /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkGQJXOX5Scjs.UnreadDot, { size: "fixed", className: "@[140px]/of-nav-sidebar:hidden" })
1389
+ (_nullishCoalesce(item.unreadCount, () => ( 0))) > 0 && /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkEGOCAIZJcjs.UnreadDot, { size: "fixed", className: "@[140px]/of-nav-sidebar:hidden" })
1401
1390
  ]
1402
1391
  }
1403
1392
  );
@@ -1732,7 +1721,7 @@ function LoadedNavigationSidebarItemButton({
1732
1721
  const content = /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, _jsxruntime.Fragment, { children: [
1733
1722
  /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: "relative flex flex-shrink-0 items-center justify-center", children: [
1734
1723
  _react.cloneElement.call(void 0, item.icon, { color: "inherit" }),
1735
- hasUnread && !showLabel && /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkGQJXOX5Scjs.UnreadDot, { size: "fixed" })
1724
+ hasUnread && !showLabel && /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkEGOCAIZJcjs.UnreadDot, { size: "fixed" })
1736
1725
  ] }),
1737
1726
  /* @__PURE__ */ _jsxruntime.jsxs.call(void 0,
1738
1727
  "span",
@@ -2350,7 +2339,7 @@ function toMenuGroups(entries) {
2350
2339
  ),
2351
2340
  children: [
2352
2341
  entry.icon,
2353
- /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkGQJXOX5Scjs.UnreadCountBadge, { count: _nullishCoalesce(entry.count, () => ( 0)) })
2342
+ /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkEGOCAIZJcjs.UnreadCountBadge, { count: _nullishCoalesce(entry.count, () => ( 0)) })
2354
2343
  ]
2355
2344
  }
2356
2345
  ) : void 0,
@@ -2423,7 +2412,7 @@ function AccountPopover({
2423
2412
  "aria-hidden": "true"
2424
2413
  }
2425
2414
  ),
2426
- unread && /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkGQJXOX5Scjs.UnreadDot, { size: "fixed" })
2415
+ unread && /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkEGOCAIZJcjs.UnreadDot, { size: "fixed" })
2427
2416
  ] }),
2428
2417
  /* @__PURE__ */ _jsxruntime.jsxs.call(void 0,
2429
2418
  "span",
@@ -2622,14 +2611,14 @@ function NotificationsBellButton({
2622
2611
  variant = "cell",
2623
2612
  className
2624
2613
  }) {
2625
- const ctx = _chunkGQJXOX5Scjs.useOptionalNotifications.call(void 0, );
2614
+ const ctx = _chunkEGOCAIZJcjs.useOptionalNotifications.call(void 0, );
2626
2615
  const hasUnread = (_nullishCoalesce(_optionalChain([ctx, 'optionalAccess', _75 => _75.unreadCount]), () => ( fallbackUnreadCount))) > 0;
2627
2616
  const isActive = _nullishCoalesce(_optionalChain([ctx, 'optionalAccess', _76 => _76.isOpen]), () => ( false));
2628
2617
  const onClick = _optionalChain([ctx, 'optionalAccess', _77 => _77.toggle]);
2629
2618
  const floating = variant === "floating";
2630
2619
  const iconClassName = variant === "cell" ? "h-6 w-6" : "h-5 w-5";
2631
2620
  return /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
2632
- _chunkGQJXOX5Scjs.HeaderButton,
2621
+ _chunkEGOCAIZJcjs.HeaderButton,
2633
2622
  {
2634
2623
  icon: isActive ? /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkWWUSFOJ7cjs.XmarkIcon, { className: iconClassName }) : /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkCON36SEJcjs.BellIcon, { className: iconClassName }),
2635
2624
  showUnreadDot: !isActive && hasUnread,
@@ -2659,7 +2648,7 @@ function TicketAlertsButton({ href, disabled, variant = "cell", className }) {
2659
2648
  const target = targetId ? _chunk4ASUUB3Acjs.buildTicketOpenHref.call(void 0, href, targetId) : href;
2660
2649
  const handleClick = () => _chunkXCVH5BCZcjs.executeNavigationImperative.call(void 0, { runtime, href: target });
2661
2650
  return /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
2662
- _chunkGQJXOX5Scjs.HeaderButton,
2651
+ _chunkEGOCAIZJcjs.HeaderButton,
2663
2652
  {
2664
2653
  icon: (
2665
2654
  // Glyph inherits HeaderButton's standard cell coloring (secondary at
@@ -2669,7 +2658,7 @@ function TicketAlertsButton({ href, disabled, variant = "cell", className }) {
2669
2658
  // existing while updates are unread — never by tinting the glyph.
2670
2659
  /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "span", { className: "relative inline-flex", children: [
2671
2660
  /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunk365ZKGGOcjs.LifeBuoyIcon, { className: variant === "compact" ? "h-5 w-5" : "h-6 w-6" }),
2672
- /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkGQJXOX5Scjs.UnreadCountBadge, { count: live.unreadTotal })
2661
+ /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkEGOCAIZJcjs.UnreadCountBadge, { count: live.unreadTotal })
2673
2662
  ] })
2674
2663
  ),
2675
2664
  "aria-label": `Support tickets \u2014 ${live.unreadTotal} unread ${live.unreadTotal === 1 ? "update" : "updates"}`,
@@ -2742,7 +2731,7 @@ var AppHeader = _react2.default.memo(function AppHeaderImpl({
2742
2731
  const dimmedClass = disabled ? "pointer-events-none opacity-50" : "";
2743
2732
  const cellDivider = "border-l border-ods-border";
2744
2733
  const renderCustomCells = (placement) => _optionalChain([customCells, 'optionalAccess', _78 => _78.filter, 'call', _79 => _79((cell) => (_nullishCoalesce(cell.placement, () => ( "start"))) === placement), 'access', _80 => _80.map, 'call', _81 => _81((cell) => /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
2745
- _chunkGQJXOX5Scjs.HeaderButton,
2734
+ _chunkEGOCAIZJcjs.HeaderButton,
2746
2735
  {
2747
2736
  type: "button",
2748
2737
  icon: cell.icon,
@@ -2763,7 +2752,7 @@ var AppHeader = _react2.default.memo(function AppHeaderImpl({
2763
2752
  leading: (
2764
2753
  // Mobile: Burger Menu Button
2765
2754
  !isMdUp && /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
2766
- _chunkGQJXOX5Scjs.HeaderButton,
2755
+ _chunkEGOCAIZJcjs.HeaderButton,
2767
2756
  {
2768
2757
  onClick: onToggleMobileMenu,
2769
2758
  isActive: isMobileMenuOpen,
@@ -2789,7 +2778,7 @@ var AppHeader = _react2.default.memo(function AppHeaderImpl({
2789
2778
  center: showSearch ? /* @__PURE__ */ _jsxruntime.jsx.call(void 0, HeaderGlobalSearch, { onSubmit: onSearch, className: _chunk63A4GZMBcjs.cn.call(void 0, "w-full", dimmedClass) }) : void 0,
2790
2779
  sideActions: /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, _jsxruntime.Fragment, { children: [
2791
2780
  showSearch && /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
2792
- _chunkGQJXOX5Scjs.HeaderButton,
2781
+ _chunkEGOCAIZJcjs.HeaderButton,
2793
2782
  {
2794
2783
  icon: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkZ74QE57Tcjs.SearchIcon, { className: "h-6 w-6" }),
2795
2784
  "aria-label": "Search",
@@ -2807,7 +2796,7 @@ var AppHeader = _react2.default.memo(function AppHeaderImpl({
2807
2796
  }
2808
2797
  ),
2809
2798
  renderCustomCells("start"),
2810
- showTimeTracker && /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkGQJXOX5Scjs.TimeTrackerHeaderButton, { disabled, className: _chunk63A4GZMBcjs.cn.call(void 0, cellDivider, dimmedClass) }),
2799
+ showTimeTracker && /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkEGOCAIZJcjs.TimeTrackerHeaderButton, { disabled, className: _chunk63A4GZMBcjs.cn.call(void 0, cellDivider, dimmedClass) }),
2811
2800
  showNotifications && /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
2812
2801
  NotificationsBellButton,
2813
2802
  {
@@ -2826,7 +2815,7 @@ var AppHeader = _react2.default.memo(function AppHeaderImpl({
2826
2815
  ),
2827
2816
  isMdUp && showUser && /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, _chunkS3QXLD4Xcjs.DropdownMenu, { children: [
2828
2817
  /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkS3QXLD4Xcjs.DropdownMenuTrigger, { asChild: true, disabled, children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
2829
- _chunkGQJXOX5Scjs.HeaderButton,
2818
+ _chunkEGOCAIZJcjs.HeaderButton,
2830
2819
  {
2831
2820
  icon: /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
2832
2821
  _chunkNFNSPLGCcjs.SquareAvatar,
@@ -3752,7 +3741,7 @@ function AppLayout({
3752
3741
  disabled
3753
3742
  }
3754
3743
  ),
3755
- /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkGQJXOX5Scjs.NotificationDrawer, { showClose: !desktopHeader }),
3744
+ /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkEGOCAIZJcjs.NotificationDrawer, { showClose: !desktopHeader }),
3756
3745
  /* @__PURE__ */ _jsxruntime.jsxs.call(void 0,
3757
3746
  "div",
3758
3747
  {
@@ -3789,7 +3778,7 @@ function AppLayout({
3789
3778
  style: bottomInset > 0 || dockFloats ? {
3790
3779
  paddingBottom: bottomInset,
3791
3780
  [COMPOSER_DOCK_INSET_VAR]: `${dockFloats ? dockHeight : 0}px`,
3792
- ...dockFloats && dockHeight > 0 ? _chunkGQJXOX5Scjs.previewFadeMask.call(void 0, `calc(100% - ${dockHeight}px)`) : {}
3781
+ ...dockFloats && dockHeight > 0 ? _chunkEGOCAIZJcjs.previewFadeMask.call(void 0, `calc(100% - ${dockHeight}px)`) : {}
3793
3782
  } : void 0,
3794
3783
  children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkUAI4VMEFcjs.ContentAreaWidthContext.Provider, { value: contentAreaWidth, children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkOT6P57ZScjs.ComposerDockHeightContext.Provider, { value: hasDock ? dockHeight : 0, children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: adaptive ? "ods-content-scope" : "contents", children }) }) })
3795
3784
  }
@@ -3,7 +3,7 @@
3
3
 
4
4
 
5
5
 
6
- var _chunkYNKXXDOIcjs = require('./chunk-YNKXXDOI.cjs');
6
+ var _chunkWUJGPHF2cjs = require('./chunk-WUJGPHF2.cjs');
7
7
 
8
8
 
9
9
 
@@ -23,7 +23,7 @@ var _chunkQPJUQ5YUcjs = require('./chunk-QPJUQ5YU.cjs');
23
23
 
24
24
 
25
25
 
26
- var _chunkGQJXOX5Scjs = require('./chunk-GQJXOX5S.cjs');
26
+ var _chunkEGOCAIZJcjs = require('./chunk-EGOCAIZJ.cjs');
27
27
 
28
28
 
29
29
  var _chunkWCK5T3UDcjs = require('./chunk-WCK5T3UD.cjs');
@@ -186,7 +186,7 @@ function ProductReleasesView({
186
186
  initialData
187
187
  });
188
188
  const isLoading = inScope || fetching;
189
- _chunkYNKXXDOIcjs.usePageDataSync.call(void 0, _optionalChain([data, 'optionalAccess', _3 => _3.sync]), isLoading && !data);
189
+ _chunkWUJGPHF2cjs.usePageDataSync.call(void 0, _optionalChain([data, 'optionalAccess', _3 => _3.sync]), isLoading && !data);
190
190
  const releases = _nullishCoalesce(_optionalChain([data, 'optionalAccess', _4 => _4.data]), () => ( []));
191
191
  const totalCount = _nullishCoalesce(_optionalChain([data, 'optionalAccess', _5 => _5.count]), () => ( 0));
192
192
  const totalPages = _chunkBLH2SFOOcjs.pageCount.call(void 0, totalCount, itemsPerPage);
@@ -205,10 +205,10 @@ function ProductReleasesView({
205
205
  router.replace(`${pathname}?${params.toString()}`, { scroll: false });
206
206
  };
207
207
  if (error) {
208
- return /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: _chunk63A4GZMBcjs.cn.call(void 0, "w-full", className), children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkGQJXOX5Scjs.LoadError, { message: "Failed to load releases.", onRetry: reload }) });
208
+ return /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: _chunk63A4GZMBcjs.cn.call(void 0, "w-full", className), children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkEGOCAIZJcjs.LoadError, { message: "Failed to load releases.", onRetry: reload }) });
209
209
  }
210
210
  return /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: _chunk63A4GZMBcjs.cn.call(void 0, "flex w-full flex-col gap-[40px]", className), children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: "min-h-[600px]", children: showEmpty ? /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: "flex h-[600px] items-center justify-center", children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
211
- _chunkYNKXXDOIcjs.ListEmptyState,
211
+ _chunkWUJGPHF2cjs.ListEmptyState,
212
212
  {
213
213
  isFiltered: hasActiveFilters,
214
214
  filtered: {
@@ -321,7 +321,7 @@ function MediaGalleryStripSkeleton({
321
321
  var _lucidereact = require('lucide-react');
322
322
 
323
323
 
324
- var DefaultMarkdownRenderer = _chunkGQJXOX5Scjs.RichMarkdownRenderer;
324
+ var DefaultMarkdownRenderer = _chunkEGOCAIZJcjs.RichMarkdownRenderer;
325
325
  var CONTENT_STACK_CLASS = "space-y-6 content-md:space-y-8";
326
326
  var RELEASE_TITLE_SKELETON_LINES = { phone: 7, md: 4, lg: 2 };
327
327
  var METADATA_GRID_CLASS = "grid w-full grid-cols-1 overflow-hidden rounded-md border border-ods-border content-md:grid-cols-4";
@@ -371,7 +371,7 @@ function ReleaseDetailPage({
371
371
  }) {
372
372
  const router = _chunk7DNL734Scjs.useRouter.call(void 0, );
373
373
  const captions = _chunkWPMJUYW3cjs.useCaptions.call(void 0, );
374
- const renderShell = (node) => shell ? /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkGQJXOX5Scjs.PageShell, { children: node }) : /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: "page-shell-content", children: node });
374
+ const renderShell = (node) => shell ? /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkEGOCAIZJcjs.PageShell, { children: node }) : /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: "page-shell-content", children: node });
375
375
  const seed = initialData == null ? void 0 : initialData;
376
376
  const {
377
377
  data: release,
@@ -477,7 +477,7 @@ function ReleaseDetailPage({
477
477
  children: [
478
478
  /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: CONTENT_STACK_CLASS, children: [
479
479
  /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
480
- _chunkGQJXOX5Scjs.EntityTagBadges,
480
+ _chunkEGOCAIZJcjs.EntityTagBadges,
481
481
  {
482
482
  tags: view.product_release_tags,
483
483
  max: RELEASE_TAG_ROW_MAX,
@@ -558,7 +558,7 @@ function ReleaseDetailPage({
558
558
  ] })
559
559
  ] }) }) }),
560
560
  loading ? null : /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
561
- _chunkGQJXOX5Scjs.ReleaseChangelogSection,
561
+ _chunkEGOCAIZJcjs.ReleaseChangelogSection,
562
562
  {
563
563
  title: "Breaking Changes",
564
564
  entries: breakingChanges || [],
@@ -570,7 +570,7 @@ function ReleaseDetailPage({
570
570
  }
571
571
  ),
572
572
  /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
573
- _chunkGQJXOX5Scjs.ReleaseChangelogSection,
573
+ _chunkEGOCAIZJcjs.ReleaseChangelogSection,
574
574
  {
575
575
  title: "Features Added",
576
576
  entries: featuresAdded || [],
@@ -580,7 +580,7 @@ function ReleaseDetailPage({
580
580
  }
581
581
  ),
582
582
  /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
583
- _chunkGQJXOX5Scjs.ReleaseChangelogSection,
583
+ _chunkEGOCAIZJcjs.ReleaseChangelogSection,
584
584
  {
585
585
  title: "Bugs Fixed",
586
586
  entries: bugFixed || [],
@@ -590,7 +590,7 @@ function ReleaseDetailPage({
590
590
  }
591
591
  ),
592
592
  /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
593
- _chunkGQJXOX5Scjs.ReleaseChangelogSection,
593
+ _chunkEGOCAIZJcjs.ReleaseChangelogSection,
594
594
  {
595
595
  title: "Improvements",
596
596
  entries: improvements || [],
@@ -619,9 +619,9 @@ function ReleaseDetailPage({
619
619
  return deliveryLoading ? (
620
620
  // The loaded preview's frame, its height written into the markup (`fixedHeight`), so the tables'
621
621
  // loading state takes the collapsed preview's place, toggle row included. Inert: nothing to open yet.
622
- /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { inert: true, children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkGQJXOX5Scjs.FadePreview, { fixedHeight: true, collapsedHeight: DELIVERY_PREVIEW_HEIGHT, children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: DELIVERY_TABLES_STACK_CLASS, children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, DeliverySection, { data: deliveryData, isLoading: deliveryLoading }) }) }) })
622
+ /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { inert: true, children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkEGOCAIZJcjs.FadePreview, { fixedHeight: true, collapsedHeight: DELIVERY_PREVIEW_HEIGHT, children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: DELIVERY_TABLES_STACK_CLASS, children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, DeliverySection, { data: deliveryData, isLoading: deliveryLoading }) }) }) })
623
623
  ) : /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
624
- _chunkGQJXOX5Scjs.FadePreview,
624
+ _chunkEGOCAIZJcjs.FadePreview,
625
625
  {
626
626
  hiddenCount: deliveryCount - 1,
627
627
  collapsedHeight: DELIVERY_PREVIEW_HEIGHT,
@@ -1055,7 +1055,7 @@ function RoadmapGrid({
1055
1055
  );
1056
1056
  }
1057
1057
  return /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
1058
- _chunkGQJXOX5Scjs.Accordion,
1058
+ _chunkEGOCAIZJcjs.Accordion,
1059
1059
  {
1060
1060
  type: "multiple",
1061
1061
  value: expandedQuarters,
@@ -1065,14 +1065,14 @@ function RoadmapGrid({
1065
1065
  const itemCount = _optionalChain([itemsByQuarter, 'access', _19 => _19[quarter], 'optionalAccess', _20 => _20.length]) || 0;
1066
1066
  const isExpanded = expandedQuarters.includes(quarter);
1067
1067
  return /* @__PURE__ */ _jsxruntime.jsxs.call(void 0,
1068
- _chunkGQJXOX5Scjs.AccordionItem,
1068
+ _chunkEGOCAIZJcjs.AccordionItem,
1069
1069
  {
1070
1070
  value: quarter,
1071
1071
  id: `quarter-${quarter.replace(/\s+/g, "-").toLowerCase()}`,
1072
1072
  className: "border-0",
1073
1073
  "data-loading-item": true,
1074
1074
  children: [
1075
- /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkGQJXOX5Scjs.AccordionTrigger, { className: "w-full p-0 hover:no-underline [&>svg]:ml-auto [&>svg]:h-5 [&>svg]:w-5 [&>svg]:shrink-0 [&>svg]:text-ods-text-secondary", children: /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: QUARTER_HEAD_CLASS, children: [
1075
+ /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkEGOCAIZJcjs.AccordionTrigger, { className: "w-full p-0 hover:no-underline [&>svg]:ml-auto [&>svg]:h-5 [&>svg]:w-5 [&>svg]:shrink-0 [&>svg]:text-ods-text-secondary", children: /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: QUARTER_HEAD_CLASS, children: [
1076
1076
  /* @__PURE__ */ _jsxruntime.jsxs.call(void 0,
1077
1077
  "h3",
1078
1078
  {
@@ -1102,7 +1102,7 @@ function RoadmapGrid({
1102
1102
  }
1103
1103
  )
1104
1104
  ] }) }),
1105
- /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkGQJXOX5Scjs.AccordionContent, { className: "overflow-hidden pb-0 pt-4 data-[state=closed]:animate-none data-[state=open]:animate-none", children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
1105
+ /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkEGOCAIZJcjs.AccordionContent, { className: "overflow-hidden pb-0 pt-4 data-[state=closed]:animate-none data-[state=open]:animate-none", children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
1106
1106
  RoadmapGridSingle,
1107
1107
  {
1108
1108
  items: itemsByQuarter[quarter],
@@ -1153,18 +1153,18 @@ function RoadmapView({
1153
1153
  });
1154
1154
  const items = _nullishCoalesce(_optionalChain([data, 'optionalAccess', _21 => _21.items]), () => ( []));
1155
1155
  _chunkSSSI2RBVcjs.useScrollToHash.call(void 0, data, { headerOffset: _chunkXCVH5BCZcjs.STICKY_HEADER_OFFSET_PX });
1156
- const syncInPage = _chunkYNKXXDOIcjs.usePageDataSync.call(void 0, _optionalChain([data, 'optionalAccess', _22 => _22.sync]), isLoading && !data);
1156
+ const syncInPage = _chunkWUJGPHF2cjs.usePageDataSync.call(void 0, _optionalChain([data, 'optionalAccess', _22 => _22.sync]), isLoading && !data);
1157
1157
  if (error) {
1158
- return /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkGQJXOX5Scjs.LoadError, { message: "Failed to load roadmap.", onRetry: reload });
1158
+ return /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkEGOCAIZJcjs.LoadError, { message: "Failed to load roadmap.", onRetry: reload });
1159
1159
  }
1160
1160
  if (isLoading && !data) {
1161
1161
  return /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: SYNCED_LIST_CLASS, children: [
1162
- !syncInPage && /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkGQJXOX5Scjs.DataSyncLine, { loading: true }),
1162
+ !syncInPage && /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkEGOCAIZJcjs.DataSyncLine, { loading: true }),
1163
1163
  /* @__PURE__ */ _jsxruntime.jsx.call(void 0, RoadmapGrid, { items: NO_ITEMS, isLoading: true, groupByQuarter: true, showLeftMargin })
1164
1164
  ] });
1165
1165
  }
1166
1166
  return /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: SYNCED_LIST_CLASS, children: [
1167
- !syncInPage && /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkGQJXOX5Scjs.DataSyncLine, { sync: _optionalChain([data, 'optionalAccess', _23 => _23.sync]) }),
1167
+ !syncInPage && /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkEGOCAIZJcjs.DataSyncLine, { sync: _optionalChain([data, 'optionalAccess', _23 => _23.sync]) }),
1168
1168
  /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
1169
1169
  RoadmapGrid,
1170
1170
  {
@@ -1188,7 +1188,7 @@ var TABLE_FRAME_CLASS = `w-full ${_chunkEUEPGHY4cjs.CONTENT_CARD_SKELETON_FRAME_
1188
1188
  var ROW_SEPARATOR_CLASS = "border-b border-ods-border last:border-b-0";
1189
1189
  var DELIVERY_TABLE_SKELETON_ROWS = 5;
1190
1190
  function DeliveryTableSkeleton() {
1191
- return /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: TABLE_FRAME_CLASS, "aria-hidden": true, children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: "w-full", children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunk63A4GZMBcjs.LoadingItems, { count: DELIVERY_TABLE_SKELETON_ROWS, children: () => /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { "data-loading-item": true, className: ROW_SEPARATOR_CLASS, children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkYNKXXDOIcjs.DeliveryRow, { loading: true }) }) }) }) });
1191
+ return /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: TABLE_FRAME_CLASS, "aria-hidden": true, children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: "w-full", children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunk63A4GZMBcjs.LoadingItems, { count: DELIVERY_TABLE_SKELETON_ROWS, children: () => /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { "data-loading-item": true, className: ROW_SEPARATOR_CLASS, children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkWUJGPHF2cjs.DeliveryRow, { loading: true }) }) }) }) });
1192
1192
  }
1193
1193
  function DeliveryTable({ items, isLoading = false }) {
1194
1194
  if (_chunk63A4GZMBcjs.useLoadingScope.call(void 0, ) || isLoading) return /* @__PURE__ */ _jsxruntime.jsx.call(void 0, DeliveryTableSkeleton, {});
@@ -1201,7 +1201,7 @@ function DeliveryTable({ items, isLoading = false }) {
1201
1201
  // → `#delivery-<external_id>`; `useScrollToHash` in
1202
1202
  // `delivery-lists.tsx` finds the row by id and scrolls. The
1203
1203
  // outer wrapper here ONLY exists for the row separators.
1204
- /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { "data-loading-item": true, className: ROW_SEPARATOR_CLASS, children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkYNKXXDOIcjs.DeliveryRow, { item, id: _chunk4ASUUB3Acjs.devSectionAnchorId.call(void 0, "delivery", item.id) }) }, item.id)
1204
+ /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { "data-loading-item": true, className: ROW_SEPARATOR_CLASS, children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkWUJGPHF2cjs.DeliveryRow, { item, id: _chunk4ASUUB3Acjs.devSectionAnchorId.call(void 0, "delivery", item.id) }) }, item.id)
1205
1205
  )) }) });
1206
1206
  }
1207
1207
 
@@ -1286,18 +1286,18 @@ function DeliveryLists({
1286
1286
  const filteredCompleted = _optionalChain([data, 'optionalAccess', _24 => _24.completed]) || [];
1287
1287
  const filteredInProgress = _optionalChain([data, 'optionalAccess', _25 => _25.inProgress]) || [];
1288
1288
  _chunkSSSI2RBVcjs.useScrollToHash.call(void 0, data, { headerOffset: _chunkXCVH5BCZcjs.STICKY_HEADER_OFFSET_PX });
1289
- const syncInPage = _chunkYNKXXDOIcjs.usePageDataSync.call(void 0, sync, isLoading && !data);
1289
+ const syncInPage = _chunkWUJGPHF2cjs.usePageDataSync.call(void 0, sync, isLoading && !data);
1290
1290
  const showCompleted = true;
1291
1291
  const showInProgress = true;
1292
1292
  const hasActiveFilters = searchQuery !== "" || taskTypeFilter !== "all";
1293
1293
  const hasResults = showCompleted && filteredCompleted.length > 0 || showInProgress && filteredInProgress.length > 0;
1294
1294
  if (error) {
1295
- return /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: "w-full", children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkGQJXOX5Scjs.LoadError, { message: error, onRetry: () => window.location.reload() }) });
1295
+ return /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: "w-full", children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkEGOCAIZJcjs.LoadError, { message: error, onRetry: () => window.location.reload() }) });
1296
1296
  }
1297
1297
  return /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: "flex w-full flex-col gap-[40px]", children: [
1298
- !syncInPage && /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkGQJXOX5Scjs.DataSyncLine, { sync, loading: isLoading && !data }),
1298
+ !syncInPage && /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkEGOCAIZJcjs.DataSyncLine, { sync, loading: isLoading && !data }),
1299
1299
  !isLoading && !hasResults && /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
1300
- _chunkYNKXXDOIcjs.ListEmptyState,
1300
+ _chunkWUJGPHF2cjs.ListEmptyState,
1301
1301
  {
1302
1302
  isFiltered: hasActiveFilters,
1303
1303
  filtered: {
@@ -1533,7 +1533,7 @@ function LegalDocumentPage({
1533
1533
  emptyStateMessage: emptyStateMessageProp,
1534
1534
  initialData = null,
1535
1535
  apiEndpoint,
1536
- MarkdownRenderer = _chunkGQJXOX5Scjs.RichMarkdownRenderer,
1536
+ MarkdownRenderer = _chunkEGOCAIZJcjs.RichMarkdownRenderer,
1537
1537
  documentsEndpoint,
1538
1538
  backButton,
1539
1539
  shell = true
@@ -1561,7 +1561,7 @@ function LegalDocumentPage({
1561
1561
  titleSize: "h1",
1562
1562
  titleWrap: true,
1563
1563
  children: [
1564
- /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkGQJXOX5Scjs.DataSyncLine, { sync: data ? { source: "github", syncedAt: data.lastSynced } : null, loading: isLoading }),
1564
+ /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkEGOCAIZJcjs.DataSyncLine, { sync: data ? { source: "github", syncedAt: data.lastSynced } : null, loading: isLoading }),
1565
1565
  /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: "flex flex-1 flex-col items-start gap-6 lg:flex-row lg:gap-10", children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: _chunk63A4GZMBcjs.cn.call(void 0, "flex-1", isLoading && "w-full"), children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: "w-full", children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "article", { className: "space-y-2", children: isLoading ? /* @__PURE__ */ _jsxruntime.jsx.call(void 0, LegalDocumentSkeleton, {}) : error ? /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: "space-y-4 text-center", children: [
1566
1566
  /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: "rounded-lg border border-ods-error bg-ods-error-secondary p-6", children: [
1567
1567
  /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "p", { className: "mb-2 text-ods-error", children: errorTitle }),
@@ -1585,7 +1585,7 @@ function LegalDocumentPage({
1585
1585
  ]
1586
1586
  }
1587
1587
  );
1588
- return shell ? /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkGQJXOX5Scjs.PageShell, { children: inner }) : /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: "page-shell-content", children: inner });
1588
+ return shell ? /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkEGOCAIZJcjs.PageShell, { children: inner }) : /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: "page-shell-content", children: inner });
1589
1589
  }
1590
1590
 
1591
1591
 
@@ -6,6 +6,10 @@
6
6
  var _chunkFDZOE5TLcjs = require('./chunk-FDZOE5TL.cjs');
7
7
 
8
8
  // src/components/product-demo/fixtures/devices.ts
9
+ var DEMO_UNREAD_NOTIFICATIONS = {
10
+ "device-reception": 2,
11
+ "device-leo": 1
12
+ };
9
13
  function device(cast, demo, type, status, lastSeenMinutesAgo) {
10
14
  const organization = cast.organization(demo.organization);
11
15
  return {
@@ -19,7 +23,8 @@ function device(cast, demo, type, status, lastSeenMinutesAgo) {
19
23
  last_seen: _chunkFDZOE5TLcjs.demoMinutesAgo.call(void 0, lastSeenMinutesAgo),
20
24
  organizationId: organization.id,
21
25
  organization: organization.name,
22
- organizationImageUrl: organization.logoUrl
26
+ organizationImageUrl: organization.logoUrl,
27
+ unreadNotificationCount: DEMO_UNREAD_NOTIFICATIONS[demo.id]
23
28
  };
24
29
  }
25
30
  function countBy(devices, pick) {
@@ -5,12 +5,12 @@ var _chunkFDZOE5TLcjs = require('./chunk-FDZOE5TL.cjs');
5
5
 
6
6
 
7
7
 
8
- var _chunkGQJXOX5Scjs = require('./chunk-GQJXOX5S.cjs');
8
+ var _chunkEGOCAIZJcjs = require('./chunk-EGOCAIZJ.cjs');
9
9
 
10
10
  // src/components/product-demo/screens/devices-view.tsx
11
11
  var _jsxruntime = require('react/jsx-runtime');
12
12
  var DEVICES_SEARCH_QUERY = "Windows";
13
- var TOOLBAR = { ..._chunkGQJXOX5Scjs.IDLE_DEVICES_TOOLBAR, searchValue: DEVICES_SEARCH_QUERY };
13
+ var TOOLBAR = { ..._chunkEGOCAIZJcjs.IDLE_DEVICES_TOOLBAR, searchValue: DEVICES_SEARCH_QUERY };
14
14
  var NO_HEADER = /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _jsxruntime.Fragment, {});
15
15
  var HIDDEN_WHEN_COMPACT = ["organization"];
16
16
  var NO_DEVICES = [];
@@ -22,7 +22,7 @@ function DevicesScreenView({
22
22
  loading = false
23
23
  }) {
24
24
  return /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: "h-full bg-ods-bg", children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
25
- _chunkGQJXOX5Scjs.DevicesPanelView,
25
+ _chunkEGOCAIZJcjs.DevicesPanelView,
26
26
  {
27
27
  className: "p-[var(--spacing-system-l)]",
28
28
  headerSlot: NO_HEADER,
@@ -13,7 +13,7 @@ var _chunkHEVW75L3cjs = require('./chunk-HEVW75L3.cjs');
13
13
 
14
14
 
15
15
 
16
- var _chunkGQJXOX5Scjs = require('./chunk-GQJXOX5S.cjs');
16
+ var _chunkEGOCAIZJcjs = require('./chunk-EGOCAIZJ.cjs');
17
17
 
18
18
 
19
19
  var _chunkWCK5T3UDcjs = require('./chunk-WCK5T3UD.cjs');
@@ -106,7 +106,7 @@ function PageDataSyncProvider({
106
106
  function PageDataSyncRow({ inline = false }) {
107
107
  const context = _react.useContext.call(void 0, PageDataSyncContext);
108
108
  if (!context) return null;
109
- const line = /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkGQJXOX5Scjs.DataSyncLine, { sync: context.state.sync, loading: context.state.loading, stated: context.stated, inline });
109
+ const line = /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkEGOCAIZJcjs.DataSyncLine, { sync: context.state.sync, loading: context.state.loading, stated: context.stated, inline });
110
110
  return context.stated ? line : /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: "contents", "data-loading-optional": "", children: line });
111
111
  }
112
112
  function usePageDataSync(sync, loading) {
@@ -177,7 +177,7 @@ function DevSectionView({ sectionKey, preControls, children, showHeading = true
177
177
  }
178
178
  ),
179
179
  filter && /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
180
- _chunkGQJXOX5Scjs.StatusFilterComponent,
180
+ _chunkEGOCAIZJcjs.StatusFilterComponent,
181
181
  {
182
182
  selectedStatus: currentFilterValue,
183
183
  onStatusChange: handleFilterChange,
@@ -228,7 +228,7 @@ function DevSectionPage({
228
228
  }
229
229
  )
230
230
  );
231
- return shell ? /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkGQJXOX5Scjs.PageShell, { children: inner }) : /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: "page-shell-content", children: inner });
231
+ return shell ? /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkEGOCAIZJcjs.PageShell, { children: inner }) : /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: "page-shell-content", children: inner });
232
232
  }
233
233
 
234
234
  // src/components/shared/dev-section/dev-card-row.tsx
@@ -9,7 +9,7 @@ var _chunkLHV2R6QUcjs = require('./chunk-LHV2R6QU.cjs');
9
9
  var _chunkFDZOE5TLcjs = require('./chunk-FDZOE5TL.cjs');
10
10
 
11
11
 
12
- var _chunkGQJXOX5Scjs = require('./chunk-GQJXOX5S.cjs');
12
+ var _chunkEGOCAIZJcjs = require('./chunk-EGOCAIZJ.cjs');
13
13
  require('./chunk-WCK5T3UD.cjs');
14
14
  require('./chunk-744JXTDP.cjs');
15
15
  require('./chunk-NMLNZCK2.cjs');
@@ -1921,7 +1921,7 @@ var getHref = () => "#";
1921
1921
  function CloudTenantsScreen(_props) {
1922
1922
  const cast = _chunkLHV2R6QUcjs.useProductDemoCast.call(void 0, );
1923
1923
  const fixture = _react.useMemo.call(void 0, () => buildCloudTenantsFixture(cast), [cast]);
1924
- const table = /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkGQJXOX5Scjs.TenantsTableView, { rows: fixture.rows, getHref, now: fixture.now });
1924
+ const table = /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkEGOCAIZJcjs.TenantsTableView, { rows: fixture.rows, getHref, now: fixture.now });
1925
1925
  return /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: "h-full bg-ods-bg p-[var(--spacing-system-l)]", children: table });
1926
1926
  }
1927
1927