@flamingo-stack/openframe-frontend-core 0.0.757 → 0.0.758

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 (87) hide show
  1. package/dist/build/export-map.json +1 -1
  2. package/dist/{chunk-S5ITKW6G.cjs → chunk-2AEGJHW2.cjs} +51 -50
  3. package/dist/{chunk-7RADSQJF.cjs → chunk-5THYJU3G.cjs} +47 -1
  4. package/dist/{chunk-ORC3ZKHT.cjs → chunk-ECHJO4NI.cjs} +43 -19
  5. package/dist/{chunk-CT3UDNAV.cjs → chunk-GU3M4YF3.cjs} +64 -57
  6. package/dist/{chunk-VD4HVLXG.cjs → chunk-IQFXJSAH.cjs} +15 -15
  7. package/dist/{chunk-BLYP7ZT4.cjs → chunk-N2US7DLB.cjs} +25 -14
  8. package/dist/{chunk-33PJH2TF.cjs → chunk-RUMRBL5X.cjs} +10 -10
  9. package/dist/{chunk-HB3QFOHD.cjs → chunk-SEPHTWFL.cjs} +3 -3
  10. package/dist/{chunk-33RJU565.cjs → chunk-U2UVB4IF.cjs} +2 -2
  11. package/dist/{chunk-UWXUGP3V.cjs → chunk-YBOA5GZV.cjs} +3 -3
  12. package/dist/{chunk-AZFSHHWT.cjs → chunk-YLVTECAD.cjs} +2 -2
  13. package/dist/{cloud-tenants-PA5UU2KQ.cjs → cloud-tenants-WJCL4P3Y.cjs} +2 -2
  14. package/dist/components/case-studies/index.cjs +10 -10
  15. package/dist/components/contact/index.cjs +3 -3
  16. package/dist/components/docs/doc-viewer.d.ts +4 -0
  17. package/dist/components/docs/doc-viewer.d.ts.map +1 -1
  18. package/dist/components/docs/doc-viewer.js +3 -0
  19. package/dist/components/docs/index.cjs +5 -5
  20. package/dist/components/docs/use-document-tree.d.ts.map +1 -1
  21. package/dist/components/docs/use-document-tree.js +9 -1
  22. package/dist/components/embeds/index.cjs +3 -3
  23. package/dist/components/faq/index.cjs +3 -3
  24. package/dist/components/features/index.cjs +2 -2
  25. package/dist/components/help-center-pages/index.cjs +48 -47
  26. package/dist/components/help-center-pages/trust-center-page.d.ts +7 -1
  27. package/dist/components/help-center-pages/trust-center-page.d.ts.map +1 -1
  28. package/dist/components/help-center-pages/trust-center-page.js +4 -3
  29. package/dist/components/index.cjs +19 -17
  30. package/dist/components/layout/page-data-sync.d.ts +18 -0
  31. package/dist/components/layout/page-data-sync.d.ts.map +1 -0
  32. package/dist/components/layout/page-data-sync.js +33 -0
  33. package/dist/components/meeting-scheduler/index.cjs +13 -13
  34. package/dist/components/navigation/index.cjs +3 -3
  35. package/dist/components/onboarding-guides/index.cjs +4 -4
  36. package/dist/components/product-demo/index.cjs +7 -7
  37. package/dist/components/shared/delivery/delivery-lists.d.ts.map +1 -1
  38. package/dist/components/shared/delivery/delivery-lists.js +6 -0
  39. package/dist/components/shared/dev-section/dev-section-view.d.ts +3 -16
  40. package/dist/components/shared/dev-section/dev-section-view.d.ts.map +1 -1
  41. package/dist/components/shared/dev-section/dev-section-view.js +6 -13
  42. package/dist/components/shared/legal-document/legal-document-page.d.ts +1 -3
  43. package/dist/components/shared/legal-document/legal-document-page.d.ts.map +1 -1
  44. package/dist/components/shared/legal-document/legal-document-page.js +3 -9
  45. package/dist/components/shared/roadmap/roadmap-view.d.ts.map +1 -1
  46. package/dist/components/shared/roadmap/roadmap-view.js +29 -17
  47. package/dist/components/tickets/hooks/use-tickets-list.d.ts +4 -0
  48. package/dist/components/tickets/hooks/use-tickets-list.d.ts.map +1 -1
  49. package/dist/components/tickets/hooks/use-tickets-list.js +1 -0
  50. package/dist/components/tickets/index.cjs +5 -5
  51. package/dist/components/tickets/ticket-center.d.ts.map +1 -1
  52. package/dist/components/tickets/ticket-center.js +5 -6
  53. package/dist/components/ui/data-attribution.d.ts +13 -0
  54. package/dist/components/ui/data-attribution.d.ts.map +1 -1
  55. package/dist/components/ui/data-attribution.js +30 -1
  56. package/dist/components/ui/index.cjs +4 -2
  57. package/dist/{devices-72YSJM4Z.cjs → devices-PCMSALOA.cjs} +3 -3
  58. package/dist/index.cjs +9 -3
  59. package/dist/{knowledge-76RIDA7P.cjs → knowledge-FVCXNAMW.cjs} +2 -2
  60. package/dist/{logs-ODMJ3KOP.cjs → logs-IINFWMUF.cjs} +10 -10
  61. package/dist/{policies-5BZ5X2S4.cjs → policies-P3ZT774G.cjs} +6 -6
  62. package/dist/{scripts-TWQPG46M.cjs → scripts-KO4V2XO5.cjs} +7 -7
  63. package/dist/{software-update-TSGISQV5.cjs → software-update-PSJUU363.cjs} +5 -5
  64. package/dist/types/data-sync.d.ts +22 -0
  65. package/dist/types/data-sync.d.ts.map +1 -0
  66. package/dist/types/data-sync.js +12 -0
  67. package/dist/types/doc-source.d.ts +4 -0
  68. package/dist/types/doc-source.d.ts.map +1 -1
  69. package/dist/types/index.cjs +12 -0
  70. package/dist/types/index.d.ts +1 -0
  71. package/dist/types/index.d.ts.map +1 -1
  72. package/dist/types/index.js +1 -0
  73. package/package.json +1 -1
  74. package/src/components/docs/doc-viewer.tsx +9 -0
  75. package/src/components/docs/use-document-tree.ts +10 -0
  76. package/src/components/help-center-pages/trust-center-page.tsx +10 -3
  77. package/src/components/layout/page-data-sync.tsx +60 -0
  78. package/src/components/shared/delivery/delivery-lists.tsx +12 -2
  79. package/src/components/shared/dev-section/dev-section-view.tsx +37 -56
  80. package/src/components/shared/legal-document/legal-document-page.tsx +5 -13
  81. package/src/components/shared/roadmap/roadmap-view.tsx +37 -20
  82. package/src/components/tickets/hooks/use-tickets-list.ts +7 -0
  83. package/src/components/tickets/ticket-center.tsx +7 -3
  84. package/src/components/ui/data-attribution.tsx +44 -0
  85. package/src/types/data-sync.ts +26 -0
  86. package/src/types/doc-source.ts +4 -0
  87. package/src/types/index.ts +1 -0
@@ -1,4 +1,4 @@
1
- "use strict";Object.defineProperty(exports, "__esModule", {value: true}); function _nullishCoalesce(lhs, rhsFn) { if (lhs != null) { return lhs; } else { return rhsFn(); } }"use client";
1
+ "use strict";Object.defineProperty(exports, "__esModule", {value: true}); function _nullishCoalesce(lhs, rhsFn) { if (lhs != null) { return lhs; } else { return rhsFn(); } } function _optionalChain(ops) { let lastAccessLHS = undefined; let value = ops[0]; let i = 1; while (i < ops.length) { const op = ops[i]; const fn = ops[i + 1]; i += 2; if ((op === 'optionalAccess' || op === 'optionalCall') && value == null) { return undefined; } if (op === 'access' || op === 'optionalAccess') { lastAccessLHS = value; value = fn(value); } else if (op === 'call' || op === 'optionalCall') { value = fn((...args) => value.call(lastAccessLHS, ...args)); lastAccessLHS = undefined; } } return value; }"use client";
2
2
 
3
3
 
4
4
  var _chunk5E6JHOGXcjs = require('./chunk-5E6JHOGX.cjs');
@@ -14,7 +14,8 @@ var _chunkHEVW75L3cjs = require('./chunk-HEVW75L3.cjs');
14
14
 
15
15
 
16
16
 
17
- var _chunk7RADSQJFcjs = require('./chunk-7RADSQJF.cjs');
17
+
18
+ var _chunk5THYJU3Gcjs = require('./chunk-5THYJU3G.cjs');
18
19
 
19
20
 
20
21
  var _chunkAXBVN5SWcjs = require('./chunk-AXBVN5SW.cjs');
@@ -29,6 +30,7 @@ var _chunk7DNL734Scjs = require('./chunk-7DNL734S.cjs');
29
30
 
30
31
 
31
32
 
33
+
32
34
  var _chunk7Z4EQOIXcjs = require('./chunk-7Z4EQOIX.cjs');
33
35
 
34
36
 
@@ -80,7 +82,37 @@ function ListEmptyState({ isFiltered, filtered, onClearFilters, empty }) {
80
82
  // src/components/shared/dev-section/dev-section-view.tsx
81
83
  var _react = require('react');
82
84
 
83
- function DevSectionView({ sectionKey, hero, preControls, children, showHeading = true }) {
85
+ // src/components/layout/page-data-sync.tsx
86
+
87
+
88
+ var PageDataSyncContext = _react.createContext.call(void 0, null);
89
+ var EMPTY = { sync: null, loading: false };
90
+ function PageDataSyncProvider({ children }) {
91
+ const [state, report] = _react.useState.call(void 0, EMPTY);
92
+ const value = _react.useMemo.call(void 0, () => ({ state, report }), [state]);
93
+ return /* @__PURE__ */ _jsxruntime.jsx.call(void 0, PageDataSyncContext.Provider, { value, children });
94
+ }
95
+ function PageDataSyncRow({ inline = false }) {
96
+ const context = _react.useContext.call(void 0, PageDataSyncContext);
97
+ if (!context) return null;
98
+ return /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunk5THYJU3Gcjs.DataSyncLine, { sync: context.state.sync, loading: context.state.loading, inline });
99
+ }
100
+ function usePageDataSync(sync, loading) {
101
+ const context = _react.useContext.call(void 0, PageDataSyncContext);
102
+ const report = _optionalChain([context, 'optionalAccess', _2 => _2.report]);
103
+ const source = _nullishCoalesce(_optionalChain([sync, 'optionalAccess', _3 => _3.source]), () => ( null));
104
+ const syncedAt = _nullishCoalesce(_optionalChain([sync, 'optionalAccess', _4 => _4.syncedAt]), () => ( null));
105
+ _react.useEffect.call(void 0, () => {
106
+ if (!report) return;
107
+ report({ sync: source ? { source, syncedAt } : null, loading });
108
+ }, [report, source, syncedAt, loading]);
109
+ _react.useEffect.call(void 0, () => report ? () => report(EMPTY) : void 0, [report]);
110
+ return Boolean(context);
111
+ }
112
+
113
+ // src/components/shared/dev-section/dev-section-view.tsx
114
+
115
+ function DevSectionView({ sectionKey, preControls, children, showHeading = true }) {
84
116
  const section = _chunk3C4U4UW6cjs.OPENFRAME_DEV_SECTIONS[sectionKey];
85
117
  const router = _chunk7DNL734Scjs.useRouter.call(void 0, );
86
118
  const pathname = _chunk7DNL734Scjs.usePathname.call(void 0, );
@@ -118,21 +150,12 @@ function DevSectionView({ sectionKey, hero, preControls, children, showHeading =
118
150
  else params.set(filter.paramKey, value);
119
151
  router.replace(`${pathname}?${params.toString()}`, { scroll: false });
120
152
  };
121
- return /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: "flex w-full flex-col gap-10", children: [
122
- showHeading && (hero ? /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: "space-y-4", children: [
123
- /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "h1", { className: "flex items-center gap-3 tracking-[-1.12px] text-ods-text-primary text-h1", children: [
124
- hero.icon,
125
- _nullishCoalesce(hero.title, () => ( section.hero.title))
126
- ] }),
127
- /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "p", { className: "max-w-3xl text-ods-text-secondary text-h4", children: hero.description })
128
- ] }) : /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: "flex w-full items-center justify-between", children: /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "h2", { className: "font-['Azeret_Mono'] text-[32px] font-semibold leading-[40px] tracking-[-0.64px] text-ods-text-primary content-md:text-[40px] content-md:leading-[48px] content-md:tracking-[-0.8px] content-lg:text-[48px] content-lg:leading-[56px] content-lg:tracking-[-0.96px]", children: [
129
- section.hero.title,
130
- /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "span", { className: "text-ods-accent", children: ":" })
131
- ] }) })),
153
+ return /* @__PURE__ */ _jsxruntime.jsx.call(void 0, PageDataSyncProvider, { children: /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: "flex w-full flex-col gap-10", children: [
154
+ showHeading ? /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunk7Z4EQOIXcjs.SectionHeading, { title: section.hero.title, punctuation: ":", action: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, PageDataSyncRow, { inline: true }) }) : /* @__PURE__ */ _jsxruntime.jsx.call(void 0, PageDataSyncRow, {}),
132
155
  preControls,
133
156
  (search || filter) && /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: "space-y-4", children: [
134
157
  search && /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
135
- _chunk7RADSQJFcjs.SearchInput,
158
+ _chunk5THYJU3Gcjs.SearchInput,
136
159
  {
137
160
  showDropdown: false,
138
161
  placeholder: search.placeholder,
@@ -142,7 +165,7 @@ function DevSectionView({ sectionKey, hero, preControls, children, showHeading =
142
165
  }
143
166
  ),
144
167
  filter && /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
145
- _chunk7RADSQJFcjs.StatusFilterComponent,
168
+ _chunk5THYJU3Gcjs.StatusFilterComponent,
146
169
  {
147
170
  selectedStatus: currentFilterValue,
148
171
  onStatusChange: handleFilterChange,
@@ -151,7 +174,7 @@ function DevSectionView({ sectionKey, hero, preControls, children, showHeading =
151
174
  )
152
175
  ] }),
153
176
  children
154
- ] });
177
+ ] }) });
155
178
  }
156
179
 
157
180
  // src/components/shared/dev-section/dev-section-page.tsx
@@ -194,7 +217,7 @@ function DevSectionPage({
194
217
  }
195
218
  )
196
219
  );
197
- return shell ? /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunk7RADSQJFcjs.PageShell, { children: inner }) : /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: "page-shell-content", children: inner });
220
+ return shell ? /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunk5THYJU3Gcjs.PageShell, { children: inner }) : /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: "page-shell-content", children: inner });
198
221
  }
199
222
 
200
223
  // src/components/shared/dev-section/dev-card-row.tsx
@@ -334,4 +357,5 @@ function DeliveryRow({ item, href, target, caption, id, className }) {
334
357
 
335
358
 
336
359
 
337
- exports.ListEmptyState = ListEmptyState; exports.DevSectionView = DevSectionView; exports.DevSectionPage = DevSectionPage; exports.DevCardRowContent = DevCardRowContent; exports.DevCardRowSkeleton = DevCardRowSkeleton; exports.DevCardRowSkeletonList = DevCardRowSkeletonList; exports.DeliveryRow = DeliveryRow;
360
+
361
+ exports.ListEmptyState = ListEmptyState; exports.usePageDataSync = usePageDataSync; exports.DevSectionView = DevSectionView; exports.DevSectionPage = DevSectionPage; exports.DevCardRowContent = DevCardRowContent; exports.DevCardRowSkeleton = DevCardRowSkeleton; exports.DevCardRowSkeletonList = DevCardRowSkeletonList; exports.DeliveryRow = DeliveryRow;
@@ -5,7 +5,8 @@ var _chunkWBOHLXFCcjs = require('./chunk-WBOHLXFC.cjs');
5
5
 
6
6
 
7
7
 
8
- var _chunkORC3ZKHTcjs = require('./chunk-ORC3ZKHT.cjs');
8
+
9
+ var _chunkECHJO4NIcjs = require('./chunk-ECHJO4NI.cjs');
9
10
 
10
11
 
11
12
  var _chunk5E6JHOGXcjs = require('./chunk-5E6JHOGX.cjs');
@@ -27,7 +28,8 @@ var _chunkVUSXDMCEcjs = require('./chunk-VUSXDMCE.cjs');
27
28
 
28
29
 
29
30
 
30
- var _chunk7RADSQJFcjs = require('./chunk-7RADSQJF.cjs');
31
+
32
+ var _chunk5THYJU3Gcjs = require('./chunk-5THYJU3G.cjs');
31
33
 
32
34
 
33
35
  var _chunkAXBVN5SWcjs = require('./chunk-AXBVN5SW.cjs');
@@ -79,9 +81,6 @@ var _chunkB27XV2TCcjs = require('./chunk-B27XV2TC.cjs');
79
81
  var _chunk7Z4EQOIXcjs = require('./chunk-7Z4EQOIX.cjs');
80
82
 
81
83
 
82
- var _chunkJHQNUWFMcjs = require('./chunk-JHQNUWFM.cjs');
83
-
84
-
85
84
 
86
85
  var _chunkBLH2SFOOcjs = require('./chunk-BLH2SFOO.cjs');
87
86
 
@@ -191,10 +190,10 @@ function ProductReleasesView({
191
190
  router.replace(`${pathname}?${params.toString()}`, { scroll: false });
192
191
  };
193
192
  if (error) {
194
- return /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: _chunk3ATAYP36cjs.cn.call(void 0, "w-full", className), children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunk7RADSQJFcjs.LoadError, { message: "Failed to load releases.", onRetry: reload }) });
193
+ return /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: _chunk3ATAYP36cjs.cn.call(void 0, "w-full", className), children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunk5THYJU3Gcjs.LoadError, { message: "Failed to load releases.", onRetry: reload }) });
195
194
  }
196
195
  return /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: _chunk3ATAYP36cjs.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,
197
- _chunkORC3ZKHTcjs.ListEmptyState,
196
+ _chunkECHJO4NIcjs.ListEmptyState,
198
197
  {
199
198
  isFiltered: hasActiveFilters,
200
199
  filtered: {
@@ -289,7 +288,7 @@ function MediaGalleryStrip({ items, className }) {
289
288
  var _lucidereact = require('lucide-react');
290
289
 
291
290
 
292
- var DefaultMarkdownRenderer = _chunk7RADSQJFcjs.RichMarkdownRenderer;
291
+ var DefaultMarkdownRenderer = _chunk5THYJU3Gcjs.RichMarkdownRenderer;
293
292
  var DEFAULT_ENDPOINT2 = "/api/releases";
294
293
  function ReleaseDetailPage({
295
294
  authorHref,
@@ -308,7 +307,7 @@ function ReleaseDetailPage({
308
307
  }) {
309
308
  const router = _chunk7DNL734Scjs.useRouter.call(void 0, );
310
309
  const captions = _chunkQTYSYEHKcjs.useCaptions.call(void 0, );
311
- const renderShell = (node) => shell ? /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunk7RADSQJFcjs.PageShell, { children: node }) : /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: "page-shell-content", children: node });
310
+ const renderShell = (node) => shell ? /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunk5THYJU3Gcjs.PageShell, { children: node }) : /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: "page-shell-content", children: node });
312
311
  const seed = initialData == null ? void 0 : initialData;
313
312
  const {
314
313
  data: release,
@@ -415,7 +414,7 @@ function ReleaseDetailPage({
415
414
  backButton: showBackButton ? { label: backLabel, onClick: () => router.push(backHref) } : void 0,
416
415
  children: [
417
416
  /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: "space-y-6 content-md:space-y-8", children: [
418
- /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunk7RADSQJFcjs.EntityTagBadges, { tags: release.product_release_tags }),
417
+ /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunk5THYJU3Gcjs.EntityTagBadges, { tags: release.product_release_tags }),
419
418
  /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: "grid w-full grid-cols-1 overflow-hidden rounded-md border border-ods-border content-md:grid-cols-4", children: [
420
419
  /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: "flex flex-col gap-3 border-b border-ods-border bg-ods-card p-4 content-md:border-b-0 content-md:border-r", children: /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: "flex flex-col gap-0", children: [
421
420
  /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "p", { className: "text-ods-text-primary text-h4", children: releaseType.toLocaleUpperCase() }),
@@ -477,7 +476,7 @@ function ReleaseDetailPage({
477
476
  ] })
478
477
  ] }) }) }),
479
478
  /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
480
- _chunk7RADSQJFcjs.ReleaseChangelogSection,
479
+ _chunk5THYJU3Gcjs.ReleaseChangelogSection,
481
480
  {
482
481
  title: "Breaking Changes",
483
482
  entries: breakingChanges || [],
@@ -488,7 +487,7 @@ function ReleaseDetailPage({
488
487
  }
489
488
  ),
490
489
  /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
491
- _chunk7RADSQJFcjs.ReleaseChangelogSection,
490
+ _chunk5THYJU3Gcjs.ReleaseChangelogSection,
492
491
  {
493
492
  title: "Features Added",
494
493
  entries: featuresAdded || [],
@@ -498,7 +497,7 @@ function ReleaseDetailPage({
498
497
  }
499
498
  ),
500
499
  /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
501
- _chunk7RADSQJFcjs.ReleaseChangelogSection,
500
+ _chunk5THYJU3Gcjs.ReleaseChangelogSection,
502
501
  {
503
502
  title: "Bugs Fixed",
504
503
  entries: bugFixed || [],
@@ -508,7 +507,7 @@ function ReleaseDetailPage({
508
507
  }
509
508
  ),
510
509
  /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
511
- _chunk7RADSQJFcjs.ReleaseChangelogSection,
510
+ _chunk5THYJU3Gcjs.ReleaseChangelogSection,
512
511
  {
513
512
  title: "Improvements",
514
513
  entries: improvements || [],
@@ -534,7 +533,7 @@ function ReleaseDetailPage({
534
533
  /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "p", { className: "tracking-[-0.28px] text-ods-text-secondary text-h5", children: "Related Enhancements and Bug-fixes" }),
535
534
  (() => {
536
535
  const deliveryCount = deliveryData ? deliveryData.completed.length + deliveryData.inProgress.length : 0;
537
- return deliveryLoading ? /* @__PURE__ */ _jsxruntime.jsx.call(void 0, DeliverySection, { data: deliveryData, isLoading: deliveryLoading }) : /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunk7RADSQJFcjs.FadePreview, { hiddenCount: deliveryCount - 1, collapsedHeight: 300, resetKey: deliveryCount, children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: "space-y-4", children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, DeliverySection, { data: deliveryData, isLoading: false }) }) });
536
+ return deliveryLoading ? /* @__PURE__ */ _jsxruntime.jsx.call(void 0, DeliverySection, { data: deliveryData, isLoading: deliveryLoading }) : /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunk5THYJU3Gcjs.FadePreview, { hiddenCount: deliveryCount - 1, collapsedHeight: 300, resetKey: deliveryCount, children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: "space-y-4", children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, DeliverySection, { data: deliveryData, isLoading: false }) }) });
538
537
  })()
539
538
  ] }),
540
539
  (_optionalChain([githubReleases, 'optionalAccess', _8 => _8.length]) || _optionalChain([knowledgeBaseLinks, 'optionalAccess', _9 => _9.length]) || migrationGuideUrl || documentationUrl) && /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: "w-full space-y-1", children: [
@@ -898,7 +897,7 @@ function RoadmapGrid({
898
897
  );
899
898
  }
900
899
  return /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
901
- _chunk7RADSQJFcjs.Accordion,
900
+ _chunk5THYJU3Gcjs.Accordion,
902
901
  {
903
902
  type: "multiple",
904
903
  value: expandedQuarters,
@@ -908,13 +907,13 @@ function RoadmapGrid({
908
907
  const itemCount = _optionalChain([itemsByQuarter, 'access', _18 => _18[quarter], 'optionalAccess', _19 => _19.length]) || 0;
909
908
  const isExpanded = expandedQuarters.includes(quarter);
910
909
  return /* @__PURE__ */ _jsxruntime.jsxs.call(void 0,
911
- _chunk7RADSQJFcjs.AccordionItem,
910
+ _chunk5THYJU3Gcjs.AccordionItem,
912
911
  {
913
912
  value: quarter,
914
913
  id: `quarter-${quarter.replace(/\s+/g, "-").toLowerCase()}`,
915
914
  className: "border-0",
916
915
  children: [
917
- /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunk7RADSQJFcjs.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: "flex items-center gap-3", children: [
916
+ /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunk5THYJU3Gcjs.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: "flex items-center gap-3", children: [
918
917
  /* @__PURE__ */ _jsxruntime.jsxs.call(void 0,
919
918
  "h3",
920
919
  {
@@ -944,7 +943,7 @@ function RoadmapGrid({
944
943
  }
945
944
  )
946
945
  ] }) }),
947
- /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunk7RADSQJFcjs.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,
946
+ /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunk5THYJU3Gcjs.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,
948
947
  RoadmapGridSingle,
949
948
  {
950
949
  items: itemsByQuarter[quarter],
@@ -982,6 +981,7 @@ function RoadmapGridSkeleton({ region = true, count = 4, showLeftMargin = true }
982
981
 
983
982
 
984
983
  var DEFAULT_ENDPOINT3 = "/api/roadmap";
984
+ var SYNCED_LIST_CLASS = "flex w-full flex-col gap-[var(--spacing-system-lf)]";
985
985
  var DEFAULT_SEARCH_PARAM_KEY2 = _chunk3C4U4UW6cjs.DEV_SECTION_PARAM_KEYS.search;
986
986
  var DEFAULT_STATUS_PARAM_KEY2 = _chunk3C4U4UW6cjs.DEV_SECTION_PARAM_KEYS.status;
987
987
  function RoadmapView({
@@ -1002,29 +1002,38 @@ function RoadmapView({
1002
1002
  const qs = listParams.toString();
1003
1003
  const url = qs ? `${endpoint}?${qs}` : endpoint;
1004
1004
  const initialData = _react.useMemo.call(void 0, () => initialItems ? { items: initialItems } : void 0, [initialItems]);
1005
- const { data, setData, isLoading, error, reload } = _chunkB27XV2TCcjs.useSelfFetch.call(void 0, url, { initialData });
1005
+ const { data, setData, isLoading, error, reload } = _chunkB27XV2TCcjs.useSelfFetch.call(void 0, url, {
1006
+ initialData
1007
+ });
1006
1008
  const items = _nullishCoalesce(_optionalChain([data, 'optionalAccess', _20 => _20.items]), () => ( []));
1007
1009
  _chunkVUWPLQBYcjs.useScrollToHash.call(void 0, data, { headerOffset: _chunkCSJO7ZGNcjs.STICKY_HEADER_OFFSET_PX });
1010
+ const syncInPage = _chunkECHJO4NIcjs.usePageDataSync.call(void 0, _optionalChain([data, 'optionalAccess', _21 => _21.sync]), isLoading && !data);
1008
1011
  if (error) {
1009
- return /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunk7RADSQJFcjs.LoadError, { message: "Failed to load roadmap.", onRetry: reload });
1012
+ return /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunk5THYJU3Gcjs.LoadError, { message: "Failed to load roadmap.", onRetry: reload });
1010
1013
  }
1011
1014
  if (isLoading && !data) {
1012
- return /* @__PURE__ */ _jsxruntime.jsx.call(void 0, RoadmapGridSkeleton, { showLeftMargin });
1015
+ return /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: SYNCED_LIST_CLASS, children: [
1016
+ !syncInPage && /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunk5THYJU3Gcjs.DataSyncLine, { loading: true }),
1017
+ /* @__PURE__ */ _jsxruntime.jsx.call(void 0, RoadmapGridSkeleton, { showLeftMargin })
1018
+ ] });
1013
1019
  }
1014
- return /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
1015
- RoadmapGrid,
1016
- {
1017
- items,
1018
- showLeftMargin,
1019
- buildRefreshUrl,
1020
- votingOptions,
1021
- groupByQuarter: true,
1022
- hasActiveFilters: search !== "" || status !== "all",
1023
- onItemUpdate: (updated) => setData(
1024
- (prev) => prev ? { ...prev, items: (_nullishCoalesce(prev.items, () => ( []))).map((it) => it.id === updated.id ? updated : it) } : prev
1025
- )
1026
- }
1027
- );
1020
+ return /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: SYNCED_LIST_CLASS, children: [
1021
+ !syncInPage && /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunk5THYJU3Gcjs.DataSyncLine, { sync: _optionalChain([data, 'optionalAccess', _22 => _22.sync]) }),
1022
+ /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
1023
+ RoadmapGrid,
1024
+ {
1025
+ items,
1026
+ showLeftMargin,
1027
+ buildRefreshUrl,
1028
+ votingOptions,
1029
+ groupByQuarter: true,
1030
+ hasActiveFilters: search !== "" || status !== "all",
1031
+ onItemUpdate: (updated) => setData(
1032
+ (prev) => prev ? { ...prev, items: (_nullishCoalesce(prev.items, () => ( []))).map((it) => it.id === updated.id ? updated : it) } : prev
1033
+ )
1034
+ }
1035
+ )
1036
+ ] });
1028
1037
  }
1029
1038
 
1030
1039
  // src/components/shared/delivery/delivery-table.tsx
@@ -1059,7 +1068,7 @@ function DeliveryTable({ items, isLoading = false }) {
1059
1068
  // → `#delivery-<external_id>`; `useScrollToHash` in
1060
1069
  // `delivery-lists.tsx` finds the row by id and scrolls. The
1061
1070
  // outer wrapper here ONLY exists for the row separators.
1062
- /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: "border-b border-ods-border last:border-b-0", children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkORC3ZKHTcjs.DeliveryRow, { item, id: _chunk3C4U4UW6cjs.devSectionAnchorId.call(void 0, "delivery", item.id) }) }, item.id)
1071
+ /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: "border-b border-ods-border last:border-b-0", children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkECHJO4NIcjs.DeliveryRow, { item, id: _chunk3C4U4UW6cjs.devSectionAnchorId.call(void 0, "delivery", item.id) }) }, item.id)
1063
1072
  )) }) });
1064
1073
  }
1065
1074
 
@@ -1082,6 +1091,7 @@ function DeliveryLists({
1082
1091
  const [data, setData] = _react.useState.call(void 0, null);
1083
1092
  const [isLoading, setIsLoading] = _react.useState.call(void 0, true);
1084
1093
  const [error, setError] = _react.useState.call(void 0, null);
1094
+ const [sync, setSync] = _react.useState.call(void 0, null);
1085
1095
  const searchQuery = searchParams.get(searchParamKey) || "";
1086
1096
  const taskTypeFilter = searchParams.get(taskTypeParamKey) || "all";
1087
1097
  _react.useEffect.call(void 0, () => {
@@ -1115,6 +1125,7 @@ function DeliveryLists({
1115
1125
  completed: _nullishCoalesce(completedResult.items, () => ( [])),
1116
1126
  inProgress: _nullishCoalesce(inProgressResult.items, () => ( []))
1117
1127
  });
1128
+ setSync(_nullishCoalesce(_nullishCoalesce(completedResult.sync, () => ( inProgressResult.sync)), () => ( null)));
1118
1129
  } catch (err) {
1119
1130
  if (cancelled) return;
1120
1131
  console.error("Error fetching delivery items:", err);
@@ -1128,19 +1139,21 @@ function DeliveryLists({
1128
1139
  cancelled = true;
1129
1140
  };
1130
1141
  }, [searchQuery, taskTypeFilter, completedApiEndpoint, inProgressApiEndpoint, searchParamKey, taskTypeParamKey]);
1131
- const filteredCompleted = _optionalChain([data, 'optionalAccess', _21 => _21.completed]) || [];
1132
- const filteredInProgress = _optionalChain([data, 'optionalAccess', _22 => _22.inProgress]) || [];
1142
+ const filteredCompleted = _optionalChain([data, 'optionalAccess', _23 => _23.completed]) || [];
1143
+ const filteredInProgress = _optionalChain([data, 'optionalAccess', _24 => _24.inProgress]) || [];
1133
1144
  _chunkVUWPLQBYcjs.useScrollToHash.call(void 0, data, { headerOffset: _chunkCSJO7ZGNcjs.STICKY_HEADER_OFFSET_PX });
1145
+ const syncInPage = _chunkECHJO4NIcjs.usePageDataSync.call(void 0, sync, isLoading && !data);
1134
1146
  const showCompleted = true;
1135
1147
  const showInProgress = true;
1136
1148
  const hasActiveFilters = searchQuery !== "" || taskTypeFilter !== "all";
1137
1149
  const hasResults = showCompleted && filteredCompleted.length > 0 || showInProgress && filteredInProgress.length > 0;
1138
1150
  if (error) {
1139
- return /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: "w-full", children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunk7RADSQJFcjs.LoadError, { message: error, onRetry: () => window.location.reload() }) });
1151
+ return /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: "w-full", children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunk5THYJU3Gcjs.LoadError, { message: error, onRetry: () => window.location.reload() }) });
1140
1152
  }
1141
1153
  return /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: "flex w-full flex-col gap-[40px]", children: [
1154
+ !syncInPage && /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunk5THYJU3Gcjs.DataSyncLine, { sync, loading: isLoading && !data }),
1142
1155
  !isLoading && !hasResults && /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
1143
- _chunkORC3ZKHTcjs.ListEmptyState,
1156
+ _chunkECHJO4NIcjs.ListEmptyState,
1144
1157
  {
1145
1158
  isFiltered: hasActiveFilters,
1146
1159
  filtered: {
@@ -1355,8 +1368,8 @@ function useLegalDocuments(options = {}) {
1355
1368
 
1356
1369
  function legalDocumentStampLabel(doc) {
1357
1370
  const parts = [
1358
- _optionalChain([doc, 'optionalAccess', _23 => _23.version]) ? `Version ${doc.version}` : null,
1359
- _optionalChain([doc, 'optionalAccess', _24 => _24.effectiveDate]) ? `Effective ${doc.effectiveDate}` : null
1371
+ _optionalChain([doc, 'optionalAccess', _25 => _25.version]) ? `Version ${doc.version}` : null,
1372
+ _optionalChain([doc, 'optionalAccess', _26 => _26.effectiveDate]) ? `Effective ${doc.effectiveDate}` : null
1360
1373
  ].filter((part) => part !== null);
1361
1374
  return parts.length > 0 ? parts.join(" \xB7 ") : null;
1362
1375
  }
@@ -1369,9 +1382,8 @@ function LegalDocumentPage({
1369
1382
  errorTitle: errorTitleProp,
1370
1383
  emptyStateMessage: emptyStateMessageProp,
1371
1384
  initialData = null,
1372
- initialLastUpdatedLabel = null,
1373
1385
  apiEndpoint,
1374
- MarkdownRenderer = _chunk7RADSQJFcjs.RichMarkdownRenderer,
1386
+ MarkdownRenderer = _chunk5THYJU3Gcjs.RichMarkdownRenderer,
1375
1387
  documentsEndpoint,
1376
1388
  backButton,
1377
1389
  faq,
@@ -1380,24 +1392,19 @@ function LegalDocumentPage({
1380
1392
  const router = _chunk7DNL734Scjs.useRouter.call(void 0, );
1381
1393
  const { data, isLoading, error } = useLegalDocs(docType, { initialData, apiEndpoint });
1382
1394
  const backCfg = backButton === false ? void 0 : {
1383
- label: _nullishCoalesce(_optionalChain([backButton, 'optionalAccess', _25 => _25.label]), () => ( "Back to home")),
1384
- onClick: () => router.push(_nullishCoalesce(_optionalChain([backButton, 'optionalAccess', _26 => _26.href]), () => ( "/")))
1395
+ label: _nullishCoalesce(_optionalChain([backButton, 'optionalAccess', _27 => _27.label]), () => ( "Back to home")),
1396
+ onClick: () => router.push(_nullishCoalesce(_optionalChain([backButton, 'optionalAccess', _28 => _28.href]), () => ( "/")))
1385
1397
  };
1386
1398
  const { documents } = useLegalDocuments({ apiEndpoint: documentsEndpoint, enabled: Boolean(documentsEndpoint) });
1387
1399
  const listed = documents.find((doc) => doc.docType === docType);
1388
- const title = _nullishCoalesce(_nullishCoalesce(_nullishCoalesce(titleProp, () => ( _optionalChain([data, 'optionalAccess', _27 => _27.title]))), () => ( _optionalChain([listed, 'optionalAccess', _28 => _28.title]))), () => ( "Legal document"));
1389
- const faqTopic = faq && "topic" in faq ? faq.topic : _optionalChain([listed, 'optionalAccess', _29 => _29.faqTopic]);
1400
+ const title = _nullishCoalesce(_nullishCoalesce(_nullishCoalesce(titleProp, () => ( _optionalChain([data, 'optionalAccess', _29 => _29.title]))), () => ( _optionalChain([listed, 'optionalAccess', _30 => _30.title]))), () => ( "Legal document"));
1401
+ const faqTopic = faq && "topic" in faq ? faq.topic : _optionalChain([listed, 'optionalAccess', _31 => _31.faqTopic]);
1390
1402
  const faqSlot = faq && faqTopic ? { ...faq, topic: faqTopic } : null;
1391
1403
  const errorTitle = _nullishCoalesce(errorTitleProp, () => ( `Unable to load ${title}`));
1392
1404
  const emptyStateMessage = _nullishCoalesce(emptyStateMessageProp, () => ( `${title} is not available at this time.`));
1393
- const fallbackLastUpdatedLabel = _optionalChain([data, 'optionalAccess', _30 => _30.lastSynced]) != null ? _chunkJHQNUWFMcjs.formatLegalDate.call(void 0, data.lastSynced) : null;
1394
- const effectiveLastUpdatedLabel = _nullishCoalesce(initialLastUpdatedLabel, () => ( fallbackLastUpdatedLabel));
1395
- const subtitle = _nullishCoalesce(legalDocumentStampLabel(data), () => ( (effectiveLastUpdatedLabel ? `Last Updated: ${effectiveLastUpdatedLabel}` : fallbackDescription)));
1405
+ const subtitle = _nullishCoalesce(legalDocumentStampLabel(data), () => ( fallbackDescription));
1396
1406
  const inner = /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, _chunkAXBVN5SWcjs.PageLayout, { title, subtitle, backButton: backCfg, titleSize: "h1", titleWrap: true, children: [
1397
- _optionalChain([data, 'optionalAccess', _31 => _31.sourceFile]) && /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "p", { className: "text-ods-text-secondary opacity-75 text-h6", children: [
1398
- "Source: ",
1399
- data.sourceFile
1400
- ] }),
1407
+ /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunk5THYJU3Gcjs.DataSyncLine, { sync: data ? { source: "github", syncedAt: data.lastSynced } : null, loading: isLoading && !data }),
1401
1408
  /* @__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: "flex-1", 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 ? (
1402
1409
  // Loading skeleton matching Knowledge Hub pattern
1403
1410
  /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: "space-y-6", children: [
@@ -1434,7 +1441,7 @@ function LegalDocumentPage({
1434
1441
  ] }) }) }) }) }),
1435
1442
  faqSlot && /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkRPADJ2E6cjs.FaqSection, { ..._chunkRPADJ2E6cjs.pageFaqProps.call(void 0, faqSlot) })
1436
1443
  ] });
1437
- return shell ? /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunk7RADSQJFcjs.PageShell, { children: inner }) : /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: "page-shell-content", children: inner });
1444
+ return shell ? /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunk5THYJU3Gcjs.PageShell, { children: inner }) : /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: "page-shell-content", children: inner });
1438
1445
  }
1439
1446
 
1440
1447
 
@@ -12,7 +12,7 @@ var _chunkWSRMYHIVcjs = require('./chunk-WSRMYHIV.cjs');
12
12
 
13
13
 
14
14
 
15
- var _chunk7RADSQJFcjs = require('./chunk-7RADSQJF.cjs');
15
+ var _chunk5THYJU3Gcjs = require('./chunk-5THYJU3G.cjs');
16
16
 
17
17
 
18
18
  var _chunkNTGIQP7Ocjs = require('./chunk-NTGIQP7O.cjs');
@@ -184,7 +184,7 @@ function NavItemRow({
184
184
  className
185
185
  }) {
186
186
  const label = navLinkLabel(link);
187
- const counter = badge ? /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunk7RADSQJFcjs.UnreadCountBadge, { count: badge, className: "static shrink-0" }) : null;
187
+ const counter = badge ? /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunk5THYJU3Gcjs.UnreadCountBadge, { count: badge, className: "static shrink-0" }) : null;
188
188
  const singleLine = !link.description && !link.builtOn;
189
189
  const rowClassName = _chunk3ATAYP36cjs.cn.call(void 0,
190
190
  ROW_CLASSES[variant],
@@ -572,7 +572,7 @@ function SiteHeader({
572
572
  leading: /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, _jsxruntime.Fragment, { children: [
573
573
  leading,
574
574
  mobile && /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
575
- _chunk7RADSQJFcjs.HeaderButton,
575
+ _chunk5THYJU3Gcjs.HeaderButton,
576
576
  {
577
577
  className: "border-r border-ods-border lg:hidden",
578
578
  onClick: mobile.onToggle,
@@ -878,7 +878,7 @@ function SiteFooter({
878
878
  const columns = nav.footerColumns;
879
879
  const accordion = columns.length > ACCORDION_OVER;
880
880
  const socialRow = _nullishCoalesce(social, () => ( (nav.brand.social.length > 0 ? /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
881
- _chunk7RADSQJFcjs.SocialIconRow,
881
+ _chunk5THYJU3Gcjs.SocialIconRow,
882
882
  {
883
883
  compact: true,
884
884
  links: nav.brand.social.map((link) => ({
@@ -1254,7 +1254,7 @@ var NavigationSidebarItemButton = _react.memo.call(void 0, function NavigationSi
1254
1254
  _react.cloneElement.call(void 0, item.icon, {
1255
1255
  color: isActive && !disabled ? "text-ods-accent" : "text-ods-text-secondary"
1256
1256
  }),
1257
- hasUnread && !showLabel && /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunk7RADSQJFcjs.UnreadDot, { size: "fixed" })
1257
+ hasUnread && !showLabel && /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunk5THYJU3Gcjs.UnreadDot, { size: "fixed" })
1258
1258
  ] }),
1259
1259
  /* @__PURE__ */ _jsxruntime.jsxs.call(void 0,
1260
1260
  "span",
@@ -1681,7 +1681,7 @@ function TicketAlertsButton({ href, onNavigate, disabled, className }) {
1681
1681
  else window.location.assign(target);
1682
1682
  };
1683
1683
  return /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
1684
- _chunk7RADSQJFcjs.HeaderButton,
1684
+ _chunk5THYJU3Gcjs.HeaderButton,
1685
1685
  {
1686
1686
  icon: (
1687
1687
  // Glyph inherits HeaderButton's standard cell coloring (secondary at
@@ -1691,7 +1691,7 @@ function TicketAlertsButton({ href, onNavigate, disabled, className }) {
1691
1691
  // existing while updates are unread — never by tinting the glyph.
1692
1692
  /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "span", { className: "relative inline-flex", children: [
1693
1693
  /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunk365ZKGGOcjs.LifeBuoyIcon, { className: "h-6 w-6" }),
1694
- /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunk7RADSQJFcjs.UnreadCountBadge, { count: live.unreadTotal })
1694
+ /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunk5THYJU3Gcjs.UnreadCountBadge, { count: live.unreadTotal })
1695
1695
  ] })
1696
1696
  ),
1697
1697
  "aria-label": `Support tickets \u2014 ${live.unreadTotal} unread ${live.unreadTotal === 1 ? "update" : "updates"}`,
@@ -1767,7 +1767,7 @@ var AppHeader = _react2.default.memo(function AppHeaderImpl({
1767
1767
  leading: (
1768
1768
  // Mobile: Burger Menu Button
1769
1769
  !isMdUp && /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
1770
- _chunk7RADSQJFcjs.HeaderButton,
1770
+ _chunk5THYJU3Gcjs.HeaderButton,
1771
1771
  {
1772
1772
  onClick: onToggleMobileMenu,
1773
1773
  isActive: isMobileMenuOpen,
@@ -1793,7 +1793,7 @@ var AppHeader = _react2.default.memo(function AppHeaderImpl({
1793
1793
  center: showSearch ? /* @__PURE__ */ _jsxruntime.jsx.call(void 0, HeaderGlobalSearch, { onSubmit: onSearch, className: _chunk3ATAYP36cjs.cn.call(void 0, "w-full", dimmedClass) }) : void 0,
1794
1794
  sideActions: /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, _jsxruntime.Fragment, { children: [
1795
1795
  showSearch && /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
1796
- _chunk7RADSQJFcjs.HeaderButton,
1796
+ _chunk5THYJU3Gcjs.HeaderButton,
1797
1797
  {
1798
1798
  icon: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkZ74QE57Tcjs.SearchIcon, { className: "h-6 w-6" }),
1799
1799
  "aria-label": "Search",
@@ -1810,7 +1810,7 @@ var AppHeader = _react2.default.memo(function AppHeaderImpl({
1810
1810
  className: _chunk3ATAYP36cjs.cn.call(void 0, "hidden lg:flex", dimmedClass)
1811
1811
  }
1812
1812
  ),
1813
- showTimeTracker && /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunk7RADSQJFcjs.TimeTrackerHeaderButton, { disabled, className: _chunk3ATAYP36cjs.cn.call(void 0, cellDivider, dimmedClass) }),
1813
+ showTimeTracker && /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunk5THYJU3Gcjs.TimeTrackerHeaderButton, { disabled, className: _chunk3ATAYP36cjs.cn.call(void 0, cellDivider, dimmedClass) }),
1814
1814
  showNotifications && /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
1815
1815
  NotificationsHeaderButton,
1816
1816
  {
@@ -1830,7 +1830,7 @@ var AppHeader = _react2.default.memo(function AppHeaderImpl({
1830
1830
  ),
1831
1831
  isMdUp && showUser && /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, _chunkAKK3EO37cjs.DropdownMenu, { children: [
1832
1832
  /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkAKK3EO37cjs.DropdownMenuTrigger, { asChild: true, disabled, children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
1833
- _chunk7RADSQJFcjs.HeaderButton,
1833
+ _chunk5THYJU3Gcjs.HeaderButton,
1834
1834
  {
1835
1835
  icon: /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
1836
1836
  _chunkJHQNUWFMcjs.SquareAvatar,
@@ -1915,12 +1915,12 @@ var AppHeader = _react2.default.memo(function AppHeaderImpl({
1915
1915
  );
1916
1916
  });
1917
1917
  function NotificationsHeaderButton({ fallbackUnreadCount, disabled, dimmedClass }) {
1918
- const ctx = _chunk7RADSQJFcjs.useOptionalNotifications.call(void 0, );
1918
+ const ctx = _chunk5THYJU3Gcjs.useOptionalNotifications.call(void 0, );
1919
1919
  const hasUnread = (_nullishCoalesce(_optionalChain([ctx, 'optionalAccess', _52 => _52.unreadCount]), () => ( fallbackUnreadCount))) > 0;
1920
1920
  const isActive = _nullishCoalesce(_optionalChain([ctx, 'optionalAccess', _53 => _53.isOpen]), () => ( false));
1921
1921
  const onClick = _optionalChain([ctx, 'optionalAccess', _54 => _54.toggle]);
1922
1922
  return /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
1923
- _chunk7RADSQJFcjs.HeaderButton,
1923
+ _chunk5THYJU3Gcjs.HeaderButton,
1924
1924
  {
1925
1925
  icon: isActive ? /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkWWUSFOJ7cjs.XmarkIcon, { className: "h-6 w-6" }) : /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkCON36SEJcjs.BellIcon, { className: "h-6 w-6" }),
1926
1926
  showUnreadDot: !isActive && hasUnread,
@@ -2593,7 +2593,7 @@ function AppLayout({
2593
2593
  }),
2594
2594
  []
2595
2595
  );
2596
- return /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunk7RADSQJFcjs.AppLayoutDrawerContainerContext.Provider, { value: drawerContainer, children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunk7RADSQJFcjs.AppLayoutDrawerCoordinationContext.Provider, { value: drawerCoordination, children: /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: _chunk3ATAYP36cjs.cn.call(void 0, "flex h-screen flex-col bg-ods-bg", className), children: [
2596
+ return /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunk5THYJU3Gcjs.AppLayoutDrawerContainerContext.Provider, { value: drawerContainer, children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunk5THYJU3Gcjs.AppLayoutDrawerCoordinationContext.Provider, { value: drawerCoordination, children: /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: _chunk3ATAYP36cjs.cn.call(void 0, "flex h-screen flex-col bg-ods-bg", className), children: [
2597
2597
  topBar,
2598
2598
  /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: "relative flex min-h-0 flex-1", children: [
2599
2599
  /* @__PURE__ */ _jsxruntime.jsx.call(void 0, NavigationSidebar, { config: sidebarConfig, disabled, pushOnTablet: hasSidePanel }),
@@ -2617,7 +2617,7 @@ function AppLayout({
2617
2617
  disabled
2618
2618
  }
2619
2619
  ),
2620
- /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunk7RADSQJFcjs.NotificationDrawer, {}),
2620
+ /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunk5THYJU3Gcjs.NotificationDrawer, {}),
2621
2621
  /* @__PURE__ */ _jsxruntime.jsxs.call(void 0,
2622
2622
  "div",
2623
2623
  {