@flamingo-stack/openframe-frontend-core 0.0.718 → 0.0.719

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 (86) hide show
  1. package/dist/{chunk-N2PF5CFX.js → chunk-2JLP2X2M.js} +1 -1
  2. package/dist/{chunk-YEMCCYIF.js → chunk-4D6NMPOO.js} +1 -1
  3. package/dist/{chunk-MIQLUUVF.cjs → chunk-4JIGEK7C.cjs} +6 -6
  4. package/dist/{chunk-JIWMBIVZ.js → chunk-5U3KWQXP.js} +3 -3
  5. package/dist/{chunk-67QBMN4R.js → chunk-5YAGX5DY.js} +1 -1
  6. package/dist/{chunk-GEDY7HQI.cjs → chunk-6X3O67OL.cjs} +4 -0
  7. package/dist/{chunk-DEZDMTBM.js → chunk-7BCY77W6.js} +5 -5
  8. package/dist/{chunk-BWIN42ZA.cjs → chunk-7BREFV7G.cjs} +19 -19
  9. package/dist/{chunk-45F7PXUI.js → chunk-AJHSQ5XK.js} +2 -2
  10. package/dist/{chunk-TBCZCRQ5.js → chunk-CU6NWO2M.js} +5 -5
  11. package/dist/{chunk-DCD5WZUF.js → chunk-D6PMVWDI.js} +2 -2
  12. package/dist/{chunk-2RKFMUNW.cjs → chunk-DFEPUYTF.cjs} +24 -21
  13. package/dist/{chunk-BOTM373R.cjs → chunk-E2V2EH2G.cjs} +2 -2
  14. package/dist/{chunk-PQ6HBLZ7.js → chunk-EAHOB64X.js} +3 -3
  15. package/dist/{chunk-SGFTTJKO.js → chunk-FVQJBII6.js} +1 -1
  16. package/dist/{chunk-APJZBDQN.js → chunk-H5V7GRN5.js} +24 -21
  17. package/dist/{chunk-6A43ZDWV.cjs → chunk-H5VIMBRN.cjs} +2 -2
  18. package/dist/{chunk-DXCBOZVT.cjs → chunk-HCFNEKO3.cjs} +13 -13
  19. package/dist/{chunk-Z5UWW3Z2.cjs → chunk-LCLDFMDF.cjs} +66 -50
  20. package/dist/{chunk-NDZ5ZXOQ.cjs → chunk-LOZLHG2U.cjs} +6 -6
  21. package/dist/{chunk-Z3CVSPO3.cjs → chunk-NQVS4G7G.cjs} +134 -134
  22. package/dist/{chunk-EZC2F5OT.cjs → chunk-NYWESHOQ.cjs} +15 -15
  23. package/dist/{chunk-YBQQNDC7.js → chunk-RR6PY34K.js} +4 -0
  24. package/dist/{chunk-GN4A7PMB.cjs → chunk-SWAVO7BB.cjs} +23 -23
  25. package/dist/{chunk-S2FUFMLW.cjs → chunk-TDZ76NCB.cjs} +16 -16
  26. package/dist/{chunk-QXZCLQNV.js → chunk-TELAANY6.js} +1 -1
  27. package/dist/{chunk-MM7MCIXL.js → chunk-TTEFN6VO.js} +4 -4
  28. package/dist/{chunk-YC5COB5V.cjs → chunk-WS7WRR5Z.cjs} +32 -32
  29. package/dist/{chunk-LOYPRJWA.js → chunk-Y4MB25KW.js} +66 -50
  30. package/dist/{chunk-WALCXC7J.cjs → chunk-ZKNZ2CXW.cjs} +3 -3
  31. package/dist/{cloud-tenants-TAKOWXLD.js → cloud-tenants-DNBPNQNP.js} +2 -2
  32. package/dist/{cloud-tenants-PFDF7O5U.cjs → cloud-tenants-FBUO66GW.cjs} +3 -3
  33. package/dist/components/case-studies/index.cjs +11 -11
  34. package/dist/components/case-studies/index.js +3 -3
  35. package/dist/components/contact/index.cjs +4 -4
  36. package/dist/components/contact/index.js +3 -3
  37. package/dist/components/docs/index.cjs +6 -6
  38. package/dist/components/docs/index.js +5 -5
  39. package/dist/components/embeds/index.cjs +4 -4
  40. package/dist/components/embeds/index.js +3 -3
  41. package/dist/components/faq/index.cjs +5 -5
  42. package/dist/components/faq/index.js +4 -4
  43. package/dist/components/features/index.cjs +3 -3
  44. package/dist/components/features/index.js +2 -2
  45. package/dist/components/features/remote-session/remote-desktop-view.d.ts +6 -2
  46. package/dist/components/features/remote-session/remote-desktop-view.d.ts.map +1 -1
  47. package/dist/components/help-center-pages/index.cjs +48 -48
  48. package/dist/components/help-center-pages/index.js +13 -13
  49. package/dist/components/index.cjs +23 -23
  50. package/dist/components/index.js +12 -12
  51. package/dist/components/meeting-scheduler/index.cjs +18 -18
  52. package/dist/components/meeting-scheduler/index.js +2 -2
  53. package/dist/components/navigation/index.cjs +4 -4
  54. package/dist/components/navigation/index.js +3 -3
  55. package/dist/components/onboarding-guides/index.cjs +7 -7
  56. package/dist/components/onboarding-guides/index.js +6 -6
  57. package/dist/components/product-demo/index.cjs +7 -7
  58. package/dist/components/product-demo/index.js +7 -7
  59. package/dist/components/related-content/index.cjs +3 -3
  60. package/dist/components/related-content/index.js +2 -2
  61. package/dist/components/related-content/related-content-section.d.ts +6 -6
  62. package/dist/components/related-content/related-content-section.d.ts.map +1 -1
  63. package/dist/components/tickets/index.cjs +6 -6
  64. package/dist/components/tickets/index.js +5 -5
  65. package/dist/components/ui/index.cjs +3 -3
  66. package/dist/components/ui/index.js +2 -2
  67. package/dist/{devices-KRCGZMGA.cjs → devices-5A5TY4JD.cjs} +4 -4
  68. package/dist/{devices-LHEX7O5T.js → devices-PLDAEUSL.js} +2 -2
  69. package/dist/hooks/use-self-fetch.d.ts +3 -0
  70. package/dist/hooks/use-self-fetch.d.ts.map +1 -1
  71. package/dist/index.cjs +4 -4
  72. package/dist/index.js +3 -3
  73. package/dist/{knowledge-KLVPVEYZ.cjs → knowledge-FKTJ723Z.cjs} +3 -3
  74. package/dist/{knowledge-RZSFNR33.js → knowledge-G6Q5KRWV.js} +2 -2
  75. package/dist/{logs-OX3XTVL2.cjs → logs-CJCXUBU6.cjs} +11 -11
  76. package/dist/{logs-E5DOV5JO.js → logs-QMV6XIC4.js} +2 -2
  77. package/dist/{policies-MC2S4S5G.js → policies-G6D7AX6F.js} +2 -2
  78. package/dist/{policies-FOSCIZGK.cjs → policies-QMRTK3CY.cjs} +7 -7
  79. package/dist/{remote-session-DRFE5XZE.cjs → remote-session-2JVI7RVA.cjs} +3 -3
  80. package/dist/{remote-session-JQ2BPIE3.js → remote-session-DBD6OSTX.js} +1 -1
  81. package/dist/{software-update-D4OEIH65.js → software-update-6BQM6BKH.js} +2 -2
  82. package/dist/{software-update-HOBSTWVO.cjs → software-update-PNZMRDBT.cjs} +7 -7
  83. package/package.json +1 -1
  84. package/src/components/features/remote-session/remote-desktop-view.tsx +86 -63
  85. package/src/components/related-content/related-content-section.tsx +46 -47
  86. package/src/hooks/use-self-fetch.ts +7 -0
@@ -24,7 +24,7 @@ import {
24
24
  SelectTrigger,
25
25
  SelectValue,
26
26
  TruncateText
27
- } from "./chunk-LOYPRJWA.js";
27
+ } from "./chunk-Y4MB25KW.js";
28
28
  import {
29
29
  dotColorByVariant,
30
30
  progressColorByVariant,
@@ -12,7 +12,7 @@ import {
12
12
  UnreadCountBadge,
13
13
  UnreadDot,
14
14
  useOptionalNotifications
15
- } from "./chunk-N2PF5CFX.js";
15
+ } from "./chunk-2JLP2X2M.js";
16
16
  import {
17
17
  resolveActiveSection,
18
18
  useActiveSection,
@@ -1,13 +1,13 @@
1
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
- var _chunkGEDY7HQIcjs = require('./chunk-GEDY7HQI.cjs');
4
+ var _chunk6X3O67OLcjs = require('./chunk-6X3O67OL.cjs');
5
5
 
6
6
 
7
- var _chunkZ3CVSPO3cjs = require('./chunk-Z3CVSPO3.cjs');
7
+ var _chunkNQVS4G7Gcjs = require('./chunk-NQVS4G7G.cjs');
8
8
 
9
9
 
10
- var _chunkZ5UWW3Z2cjs = require('./chunk-Z5UWW3Z2.cjs');
10
+ var _chunkLCLDFMDFcjs = require('./chunk-LCLDFMDF.cjs');
11
11
 
12
12
 
13
13
  var _chunkZXCZYMN4cjs = require('./chunk-ZXCZYMN4.cjs');
@@ -311,7 +311,7 @@ function FaqSection({
311
311
  () => initialFaqs ? { faqs: initialFaqs } : void 0,
312
312
  [initialFaqs]
313
313
  );
314
- const { data, isLoading, error } = _chunkGEDY7HQIcjs.useSelfFetch.call(void 0, url, { initialData });
314
+ const { data, isLoading, error } = _chunk6X3O67OLcjs.useSelfFetch.call(void 0, url, { initialData });
315
315
  const faqs = _react.useMemo.call(void 0, () => _nullishCoalesce(_optionalChain([data, 'optionalAccess', _14 => _14.faqs]), () => ( [])), [_optionalChain([data, 'optionalAccess', _15 => _15.faqs])]);
316
316
  const groups = _react.useMemo.call(void 0, () => faqs.length > 0 ? groupFaqsBySection(faqs) : [], [faqs]);
317
317
  const headingNode = heading === void 0 ? /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "h2", { className: _chunkETYLOZOBcjs.SECTION_HEADING_CLASS, children: DEFAULT_HEADING_TEXT }) : heading;
@@ -364,7 +364,7 @@ function FaqDocumentPage({
364
364
  label: _nullishCoalesce(_optionalChain([backButton, 'optionalAccess', _16 => _16.label]), () => ( "Back to home")),
365
365
  onClick: () => router.push(_nullishCoalesce(_optionalChain([backButton, 'optionalAccess', _17 => _17.href]), () => ( "/")))
366
366
  };
367
- const inner = /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkZ5UWW3Z2cjs.PageLayout, { title, subtitle, backButton: backCfg, titleSize: "h1", titleWrap: true, children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
367
+ const inner = /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkLCLDFMDFcjs.PageLayout, { title, subtitle, backButton: backCfg, titleSize: "h1", titleWrap: true, children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
368
368
  FaqSection,
369
369
  {
370
370
  initialFaqs,
@@ -377,7 +377,7 @@ function FaqDocumentPage({
377
377
  minResults
378
378
  }
379
379
  ) });
380
- return shell ? /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkZ3CVSPO3cjs.PageShell, { children: inner }) : /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: "page-shell-content", children: inner });
380
+ return shell ? /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkNQVS4G7Gcjs.PageShell, { children: inner }) : /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: "page-shell-content", children: inner });
381
381
  }
382
382
 
383
383
 
@@ -1,14 +1,14 @@
1
1
  "use client";
2
2
  import {
3
3
  ContactForm
4
- } from "./chunk-DCD5WZUF.js";
4
+ } from "./chunk-D6PMVWDI.js";
5
5
  import {
6
6
  DeliveryRow,
7
7
  DevCardRowContent,
8
8
  DevCardRowSkeletonList,
9
9
  DevSectionPage,
10
10
  ListEmptyState
11
- } from "./chunk-45F7PXUI.js";
11
+ } from "./chunk-AJHSQ5XK.js";
12
12
  import {
13
13
  EmptyState,
14
14
  UnifiedPagination
@@ -31,7 +31,7 @@ import {
31
31
  AlertDialogTitle,
32
32
  Textarea,
33
33
  TicketAttachmentsList
34
- } from "./chunk-N2PF5CFX.js";
34
+ } from "./chunk-2JLP2X2M.js";
35
35
  import {
36
36
  toast,
37
37
  useScrollToHash
@@ -1,7 +1,7 @@
1
1
  "use client";
2
2
  import {
3
3
  SearchInput
4
- } from "./chunk-N2PF5CFX.js";
4
+ } from "./chunk-2JLP2X2M.js";
5
5
  import {
6
6
  contentFetch
7
7
  } from "./chunk-G3GRYDMS.js";
@@ -9,6 +9,7 @@ function useSelfFetch(url, options) {
9
9
  const initialData = _optionalChain([options, 'optionalAccess', _ => _.initialData]);
10
10
  const revalidateOnVisibleAfterMs = _optionalChain([options, 'optionalAccess', _2 => _2.revalidateOnVisibleAfterMs]);
11
11
  const [data, setData] = _react.useState.call(void 0, _nullishCoalesce(initialData, () => ( null)));
12
+ const [dataUrl, setDataUrl] = _react.useState.call(void 0, initialData !== void 0 ? url : null);
12
13
  const [isLoading, setIsLoading] = _react.useState.call(void 0, initialData === void 0 && url !== null);
13
14
  const [error, setError] = _react.useState.call(void 0, false);
14
15
  const [reloadKey, setReloadKey] = _react.useState.call(void 0, 0);
@@ -20,6 +21,7 @@ function useSelfFetch(url, options) {
20
21
  setSyncedProps({ url, initialData });
21
22
  if (syncedProps.initialData !== initialData && initialData !== void 0) {
22
23
  setData(initialData);
24
+ setDataUrl(url);
23
25
  }
24
26
  if (syncedProps.url !== url && url === null) {
25
27
  setIsLoading(false);
@@ -39,6 +41,7 @@ function useSelfFetch(url, options) {
39
41
  const json = await res.json();
40
42
  if (!cancelled) {
41
43
  setData(json);
44
+ setDataUrl(url);
42
45
  dataUrlRef.current = url;
43
46
  dataAtRef.current = Date.now();
44
47
  }
@@ -72,6 +75,7 @@ function useSelfFetch(url, options) {
72
75
  }, [url, revalidateOnVisibleAfterMs]);
73
76
  return {
74
77
  data,
78
+ dataUrl,
75
79
  setData,
76
80
  isLoading,
77
81
  error,
@@ -2,24 +2,24 @@
2
2
  import {
3
3
  ArticleAuthorByline,
4
4
  DetailPageSkeleton
5
- } from "./chunk-QXZCLQNV.js";
5
+ } from "./chunk-TELAANY6.js";
6
6
  import {
7
7
  DocSearchBar,
8
8
  useDocSearch
9
- } from "./chunk-67QBMN4R.js";
9
+ } from "./chunk-5YAGX5DY.js";
10
10
  import {
11
11
  useSelfFetch
12
- } from "./chunk-YBQQNDC7.js";
12
+ } from "./chunk-RR6PY34K.js";
13
13
  import {
14
14
  EntityTagBadges,
15
15
  FilterPillRow,
16
16
  LoadError,
17
17
  PageShell,
18
18
  RichMarkdownRenderer
19
- } from "./chunk-N2PF5CFX.js";
19
+ } from "./chunk-2JLP2X2M.js";
20
20
  import {
21
21
  PageLayout
22
- } from "./chunk-LOYPRJWA.js";
22
+ } from "./chunk-Y4MB25KW.js";
23
23
  import {
24
24
  EntityVideoSection,
25
25
  VideoBitesStrip,
@@ -2,24 +2,24 @@
2
2
 
3
3
 
4
4
 
5
- var _chunk6A43ZDWVcjs = require('./chunk-6A43ZDWV.cjs');
5
+ var _chunkH5VIMBRNcjs = require('./chunk-H5VIMBRN.cjs');
6
6
 
7
7
 
8
8
 
9
- var _chunkBOTM373Rcjs = require('./chunk-BOTM373R.cjs');
9
+ var _chunkE2V2EH2Gcjs = require('./chunk-E2V2EH2G.cjs');
10
10
 
11
11
 
12
- var _chunkGEDY7HQIcjs = require('./chunk-GEDY7HQI.cjs');
12
+ var _chunk6X3O67OLcjs = require('./chunk-6X3O67OL.cjs');
13
13
 
14
14
 
15
15
 
16
16
 
17
17
 
18
18
 
19
- var _chunkZ3CVSPO3cjs = require('./chunk-Z3CVSPO3.cjs');
19
+ var _chunkNQVS4G7Gcjs = require('./chunk-NQVS4G7G.cjs');
20
20
 
21
21
 
22
- var _chunkZ5UWW3Z2cjs = require('./chunk-Z5UWW3Z2.cjs');
22
+ var _chunkLCLDFMDFcjs = require('./chunk-LCLDFMDF.cjs');
23
23
 
24
24
 
25
25
 
@@ -88,10 +88,10 @@ function OnboardingGuidesCatalogView({
88
88
  const sectionValue = selfFetch ? _nullishCoalesce(searchParams.get("section"), () => ( "")) : initialSection;
89
89
  const activeSection = sectionValue || "all";
90
90
  const guidesQs = sectionValue ? `?section=${encodeURIComponent(sectionValue)}` : "";
91
- const guidesRes = _chunkGEDY7HQIcjs.useSelfFetch.call(void 0,
91
+ const guidesRes = _chunk6X3O67OLcjs.useSelfFetch.call(void 0,
92
92
  selfFetch && guidesEndpoint ? `${guidesEndpoint}${guidesQs}` : null
93
93
  );
94
- const sectionsRes = _chunkGEDY7HQIcjs.useSelfFetch.call(void 0, selfFetch && sectionsEndpoint ? sectionsEndpoint : null);
94
+ const sectionsRes = _chunk6X3O67OLcjs.useSelfFetch.call(void 0, selfFetch && sectionsEndpoint ? sectionsEndpoint : null);
95
95
  const guides = _react.useMemo.call(void 0, () => _nullishCoalesce(_nullishCoalesce(initialGuides, () => ( _optionalChain([guidesRes, 'access', _2 => _2.data, 'optionalAccess', _3 => _3.data]))), () => ( [])), [initialGuides, _optionalChain([guidesRes, 'access', _4 => _4.data, 'optionalAccess', _5 => _5.data])]);
96
96
  const sections = _react.useMemo.call(void 0,
97
97
  () => _nullishCoalesce(initialSections, () => ( (Array.isArray(sectionsRes.data) ? sectionsRes.data : []))),
@@ -134,7 +134,7 @@ function OnboardingGuidesCatalogView({
134
134
  });
135
135
  };
136
136
  const source = _nullishCoalesce(_optionalChain([runtime, 'optionalAccess', _6 => _6.source]), () => ( "openframe"));
137
- const docSearch = _chunkBOTM373Rcjs.useDocSearch.call(void 0, {
137
+ const docSearch = _chunkE2V2EH2Gcjs.useDocSearch.call(void 0, {
138
138
  source,
139
139
  baseRoute: basePath,
140
140
  onNavigate: (path) => router.push(path),
@@ -152,7 +152,7 @@ function OnboardingGuidesCatalogView({
152
152
  const renderCardFn = _nullishCoalesce(renderCard, () => ( defaultRenderCard));
153
153
  const preControls = /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: "space-y-4", children: [
154
154
  /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
155
- _chunkBOTM373Rcjs.DocSearchBar,
155
+ _chunkE2V2EH2Gcjs.DocSearchBar,
156
156
  {
157
157
  placeholder: "Search onboarding guides, releases, case studies\u2026",
158
158
  query: docSearch.query,
@@ -164,7 +164,7 @@ function OnboardingGuidesCatalogView({
164
164
  }
165
165
  ),
166
166
  sections.length > 0 && /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
167
- _chunkZ3CVSPO3cjs.FilterPillRow,
167
+ _chunkNQVS4G7Gcjs.FilterPillRow,
168
168
  {
169
169
  label: "Section",
170
170
  selectedValue: activeSection,
@@ -174,7 +174,7 @@ function OnboardingGuidesCatalogView({
174
174
  )
175
175
  ] });
176
176
  if (selfFetch && guidesRes.error) {
177
- return /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkZ3CVSPO3cjs.LoadError, { message: "Failed to load onboarding guides.", onRetry: guidesRes.reload });
177
+ return /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkNQVS4G7Gcjs.LoadError, { message: "Failed to load onboarding guides.", onRetry: guidesRes.reload });
178
178
  }
179
179
  if (selfFetch && guidesRes.data == null && isLoading) {
180
180
  return /* @__PURE__ */ _jsxruntime.jsx.call(void 0, OnboardingGuidesCatalogSkeleton, {});
@@ -206,7 +206,7 @@ function OnboardingGuideDetailView({
206
206
  slug,
207
207
  guideEndpoint,
208
208
  related = [],
209
- MarkdownRenderer = _chunkZ3CVSPO3cjs.RichMarkdownRenderer,
209
+ MarkdownRenderer = _chunkNQVS4G7Gcjs.RichMarkdownRenderer,
210
210
  renderRelatedCard,
211
211
  backHref,
212
212
  backLabel = "Back to Getting Started",
@@ -218,21 +218,21 @@ function OnboardingGuideDetailView({
218
218
  const runtime = _chunkUJ7AXHRZcjs.useChatRuntime.call(void 0, );
219
219
  const captions = _chunkUWQWMGJ7cjs.useCaptions.call(void 0, );
220
220
  const router = _chunk7DNL734Scjs.useRouter.call(void 0, );
221
- const renderShell = (node) => shell ? /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkZ3CVSPO3cjs.PageShell, { children: node }) : /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: "page-shell-content", children: node });
221
+ const renderShell = (node) => shell ? /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkNQVS4G7Gcjs.PageShell, { children: node }) : /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: "page-shell-content", children: node });
222
222
  const url = initialData ? null : slug && guideEndpoint ? guideEndpoint(slug) : null;
223
- const { data: guide, isLoading, error, reload } = _chunkGEDY7HQIcjs.useSelfFetch.call(void 0, url, { initialData });
223
+ const { data: guide, isLoading, error, reload } = _chunk6X3O67OLcjs.useSelfFetch.call(void 0, url, { initialData });
224
224
  const { ref: videoWarmupRef } = _chunkETYLOZOBcjs.useVideoWarmup.call(void 0, {
225
225
  videoUrl: _optionalChain([guide, 'optionalAccess', _8 => _8.main_video_url]),
226
226
  supabaseStorageOrigin: _optionalChain([runtime, 'optionalAccess', _9 => _9.endpoints, 'access', _10 => _10.supabaseStorageOrigin])
227
227
  });
228
228
  if (error || !guide && !isLoading) {
229
- return renderShell(/* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkZ3CVSPO3cjs.LoadError, { message: "Guide not found.", onRetry: reload }));
229
+ return renderShell(/* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkNQVS4G7Gcjs.LoadError, { message: "Guide not found.", onRetry: reload }));
230
230
  }
231
231
  if (!guide) {
232
232
  return renderShell(
233
233
  // Match the loaded page's top offset (TitleBlock's
234
234
  // `pt-[var(--spacing-system-l)]`) so content doesn't jump on load.
235
- /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: "pt-[var(--spacing-system-l)]", children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunk6A43ZDWVcjs.DetailPageSkeleton, { bare: true, showImageGallery: false }) })
235
+ /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: "pt-[var(--spacing-system-l)]", children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkH5VIMBRNcjs.DetailPageSkeleton, { bare: true, showImageGallery: false }) })
236
236
  );
237
237
  }
238
238
  const { captionsUrl, highlightCaptionsUrl } = captions.forEntity("onboarding_guide", guide);
@@ -251,14 +251,14 @@ function OnboardingGuideDetailView({
251
251
  const renderRelatedCardFn = _nullishCoalesce(renderRelatedCard, () => ( defaultRenderRelatedCard));
252
252
  return renderShell(
253
253
  /* @__PURE__ */ _jsxruntime.jsxs.call(void 0,
254
- _chunkZ5UWW3Z2cjs.PageLayout,
254
+ _chunkLCLDFMDFcjs.PageLayout,
255
255
  {
256
256
  title: guide.title,
257
257
  titleSize: "h1",
258
258
  titleWrap: true,
259
259
  backButton: { label: backLabel, onClick: () => router.push(resolvedBackHref) },
260
260
  children: [
261
- /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkZ3CVSPO3cjs.EntityTagBadges, { tags: guide.onboarding_guide_tags }),
261
+ /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkNQVS4G7Gcjs.EntityTagBadges, { tags: guide.onboarding_guide_tags }),
262
262
  /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
263
263
  _chunkETYLOZOBcjs.EntityAuthorCard,
264
264
  {
@@ -303,7 +303,7 @@ function OnboardingGuideDetailView({
303
303
  }
304
304
  ),
305
305
  /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
306
- _chunk6A43ZDWVcjs.ArticleAuthorByline,
306
+ _chunkH5VIMBRNcjs.ArticleAuthorByline,
307
307
  {
308
308
  author: _nullishCoalesce(_optionalChain([guide, 'access', _13 => _13.author, 'optionalAccess', _14 => _14.full_name]), () => ( null)),
309
309
  avatar: _optionalChain([guide, 'access', _15 => _15.author, 'optionalAccess', _16 => _16.avatar_url]),
@@ -6,10 +6,10 @@ import {
6
6
  PageShell,
7
7
  SearchInput,
8
8
  StatusFilterComponent
9
- } from "./chunk-N2PF5CFX.js";
9
+ } from "./chunk-2JLP2X2M.js";
10
10
  import {
11
11
  PageLayout
12
- } from "./chunk-LOYPRJWA.js";
12
+ } from "./chunk-Y4MB25KW.js";
13
13
  import {
14
14
  OPENFRAME_DEV_SECTIONS,
15
15
  TASK_TYPE_LABELS,
@@ -5,16 +5,16 @@ import {
5
5
  import {
6
6
  DeliveryRow,
7
7
  ListEmptyState
8
- } from "./chunk-45F7PXUI.js";
8
+ } from "./chunk-AJHSQ5XK.js";
9
9
  import {
10
10
  EmptyState
11
11
  } from "./chunk-6YPTUHM7.js";
12
12
  import {
13
13
  DetailPageSkeleton
14
- } from "./chunk-QXZCLQNV.js";
14
+ } from "./chunk-TELAANY6.js";
15
15
  import {
16
16
  useSelfFetch
17
- } from "./chunk-YBQQNDC7.js";
17
+ } from "./chunk-RR6PY34K.js";
18
18
  import {
19
19
  Accordion,
20
20
  AccordionContent,
@@ -26,10 +26,10 @@ import {
26
26
  PageShell,
27
27
  ReleaseChangelogSection,
28
28
  RichMarkdownRenderer
29
- } from "./chunk-N2PF5CFX.js";
29
+ } from "./chunk-2JLP2X2M.js";
30
30
  import {
31
31
  PageLayout
32
- } from "./chunk-LOYPRJWA.js";
32
+ } from "./chunk-Y4MB25KW.js";
33
33
  import {
34
34
  useHumanitySignals,
35
35
  useScrollToHash
@@ -2,14 +2,14 @@
2
2
  import {
3
3
  HoneypotField,
4
4
  Textarea
5
- } from "./chunk-N2PF5CFX.js";
5
+ } from "./chunk-2JLP2X2M.js";
6
6
  import {
7
7
  Select,
8
8
  SelectContent,
9
9
  SelectItem,
10
10
  SelectTrigger,
11
11
  SelectValue
12
- } from "./chunk-LOYPRJWA.js";
12
+ } from "./chunk-Y4MB25KW.js";
13
13
  import {
14
14
  useContactSubmission,
15
15
  useHumanitySignals,
@@ -1,7 +1,7 @@
1
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
- var _chunkGEDY7HQIcjs = require('./chunk-GEDY7HQI.cjs');
4
+ var _chunk6X3O67OLcjs = require('./chunk-6X3O67OL.cjs');
5
5
 
6
6
 
7
7
  var _chunkWBNAEYTQcjs = require('./chunk-WBNAEYTQ.cjs');
@@ -700,9 +700,14 @@ function CardForType({
700
700
  function useGroupItems(type, refs, buildUrl) {
701
701
  const ids = refs.map((r) => r.id);
702
702
  const url = ids.length > 0 ? buildUrl(type, ids) : null;
703
- const { data, isLoading } = _chunkGEDY7HQIcjs.useSelfFetch.call(void 0, url);
704
- const items = data != null ? _chunkETYLOZOBcjs.extractItems.call(void 0, data) : null;
705
- return { items, isLoading };
703
+ const [pages, setPages] = _react.useState.call(void 0, () => /* @__PURE__ */ new Map());
704
+ const cached = url !== null ? pages.get(url) : void 0;
705
+ const { data, dataUrl, error } = _chunk6X3O67OLcjs.useSelfFetch.call(void 0, cached ? null : url);
706
+ if (data != null && dataUrl !== null && !pages.has(dataUrl)) {
707
+ setPages(new Map(pages).set(dataUrl, _chunkETYLOZOBcjs.extractItems.call(void 0, data)));
708
+ }
709
+ if (url === null) return { items: null, isLoading: false };
710
+ return { items: _nullishCoalesce(cached, () => ( (error ? [] : null))), isLoading: !cached && !error };
706
711
  }
707
712
  function gridClassFor(columns) {
708
713
  return columns === 3 ? "grid grid-cols-1 sm:grid-cols-2 lg:grid-cols-3 gap-6" : "grid grid-cols-1 sm:grid-cols-2 gap-6";
@@ -727,38 +732,36 @@ function ContentGroup({
727
732
  adminCampaignCard,
728
733
  heading
729
734
  }) {
730
- const { items, isLoading } = useGroupItems(type, refs, buildUrl);
731
735
  const config = resolveGroupConfig(type);
732
736
  const isListLayout = config.layout === "list";
733
737
  const cardSize = config.gridSize;
734
738
  const [page, setPage] = _react.useState.call(void 0, 1);
735
739
  const refsKey = refs.map((r) => r.id).join("|");
736
- const prevRefsKeyRef = _react.useRef.call(void 0, refsKey);
737
- _react.useEffect.call(void 0, () => {
738
- if (prevRefsKeyRef.current !== refsKey) {
739
- prevRefsKeyRef.current = refsKey;
740
- setPage(1);
741
- }
742
- }, [refsKey]);
740
+ const [pagedRefsKey, setPagedRefsKey] = _react.useState.call(void 0, refsKey);
741
+ if (pagedRefsKey !== refsKey) {
742
+ setPagedRefsKey(refsKey);
743
+ setPage(1);
744
+ }
743
745
  const totalGroupPages = _chunkAECTRMGQcjs.pageCount.call(void 0, refs.length, GROUP_PAGE_SIZE);
744
- const safePage = Math.min(page, totalGroupPages);
745
- const visibleGroupRefs = refs.length > GROUP_PAGE_SIZE ? refs.slice((safePage - 1) * GROUP_PAGE_SIZE, safePage * GROUP_PAGE_SIZE) : refs;
746
- const groupPagination = totalGroupPages > 1 ? /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkWBNAEYTQcjs.Pagination, { currentPage: safePage, totalPages: totalGroupPages, onPageChange: setPage }) : null;
747
- if (isLoading && !items) {
748
- const skeletons = visibleGroupRefs.map((r) => /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { children: renderSkeletonForType(type, cardSize, adminCampaignCard) }, r.id));
746
+ const pageRefs = refs.slice((page - 1) * GROUP_PAGE_SIZE, page * GROUP_PAGE_SIZE);
747
+ const { items, isLoading } = useGroupItems(type, pageRefs, buildUrl);
748
+ const groupPagination = totalGroupPages > 1 ? /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkWBNAEYTQcjs.Pagination, { currentPage: page, totalPages: totalGroupPages, onPageChange: setPage }) : null;
749
+ if (isLoading) {
750
+ const skeletons = pageRefs.map((r) => /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { children: renderSkeletonForType(type, cardSize, adminCampaignCard) }, r.id));
749
751
  return /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: "space-y-4", children: [
750
752
  heading,
751
- isListLayout ? /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: "space-y-4", children: skeletons }) : /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: gridClassFor(columns), children: skeletons })
753
+ isListLayout ? /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: "space-y-4", children: skeletons }) : /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: gridClassFor(columns), children: skeletons }),
754
+ groupPagination
752
755
  ] });
753
756
  }
754
- if (!items || items.length === 0) return null;
757
+ if (!items) return null;
755
758
  const rowKey = (it) => {
756
759
  const extracted = _chunkETYLOZOBcjs.extractItemId.call(void 0, type, it);
757
760
  if (extracted !== null) return extracted;
758
761
  return String(typeof it === "object" && it !== null ? it.id : void 0);
759
762
  };
760
763
  const itemById = new Map(items.map((it) => [rowKey(it), it]));
761
- const cards = visibleGroupRefs.map((contentRef) => {
764
+ const cards = pageRefs.map((contentRef) => {
762
765
  const itemId = String(contentRef.id);
763
766
  const item = itemById.get(itemId);
764
767
  if (!item) return null;
@@ -842,7 +845,7 @@ function RelatedContentSection({
842
845
  () => !suggestionsDisabled && initialItems ? { refs: initialItems } : void 0,
843
846
  [initialItems, suggestionsDisabled]
844
847
  );
845
- const { data, isLoading } = _chunkGEDY7HQIcjs.useSelfFetch.call(void 0, suggestUrl, { initialData });
848
+ const { data, isLoading } = _chunk6X3O67OLcjs.useSelfFetch.call(void 0, suggestUrl, { initialData });
846
849
  const effectiveBuildListUrl = _react.useMemo.call(void 0,
847
850
  () => _nullishCoalesce(buildListUrl2, () => ( ((type, ids) => _chunkETYLOZOBcjs.buildListUrl.call(void 0, type, ids, apiBaseUrl)))),
848
851
  [buildListUrl2, apiBaseUrl]
@@ -1,7 +1,7 @@
1
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
- var _chunkZ3CVSPO3cjs = require('./chunk-Z3CVSPO3.cjs');
4
+ var _chunkNQVS4G7Gcjs = require('./chunk-NQVS4G7G.cjs');
5
5
 
6
6
 
7
7
  var _chunkAUMKE74Mcjs = require('./chunk-AUMKE74M.cjs');
@@ -69,7 +69,7 @@ function DocSearchBar({
69
69
  renderResult
70
70
  }) {
71
71
  return /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
72
- _chunkZ3CVSPO3cjs.SearchInput,
72
+ _chunkNQVS4G7Gcjs.SearchInput,
73
73
  {
74
74
  placeholder,
75
75
  value: query,
@@ -1,13 +1,13 @@
1
1
  "use client";
2
2
  import {
3
3
  useSelfFetch
4
- } from "./chunk-YBQQNDC7.js";
4
+ } from "./chunk-RR6PY34K.js";
5
5
  import {
6
6
  PageShell
7
- } from "./chunk-N2PF5CFX.js";
7
+ } from "./chunk-2JLP2X2M.js";
8
8
  import {
9
9
  PageLayout
10
- } from "./chunk-LOYPRJWA.js";
10
+ } from "./chunk-Y4MB25KW.js";
11
11
  import {
12
12
  useScrollToHash
13
13
  } from "./chunk-IWCPXJEE.js";
@@ -1,7 +1,7 @@
1
1
  "use client";
2
2
  import {
3
3
  EmbedViewerFrame
4
- } from "./chunk-N2PF5CFX.js";
4
+ } from "./chunk-2JLP2X2M.js";
5
5
  import {
6
6
  toGoogleSheetsEmbedUrl,
7
7
  toGoogleSheetsOriginalUrl
@@ -1,7 +1,7 @@
1
1
  "use client";
2
2
  import {
3
3
  useSelfFetch
4
- } from "./chunk-YBQQNDC7.js";
4
+ } from "./chunk-RR6PY34K.js";
5
5
  import {
6
6
  Pagination
7
7
  } from "./chunk-WSDT7LYL.js";
@@ -45,7 +45,7 @@ import {
45
45
  } from "./chunk-AGVXKD4K.js";
46
46
 
47
47
  // src/components/related-content/related-content-section.tsx
48
- import { useEffect, useMemo, useRef, useState } from "react";
48
+ import { useMemo, useState } from "react";
49
49
 
50
50
  // src/components/related-content/card-registry.tsx
51
51
  import { jsx } from "react/jsx-runtime";
@@ -700,9 +700,14 @@ function CardForType({
700
700
  function useGroupItems(type, refs, buildUrl) {
701
701
  const ids = refs.map((r) => r.id);
702
702
  const url = ids.length > 0 ? buildUrl(type, ids) : null;
703
- const { data, isLoading } = useSelfFetch(url);
704
- const items = data != null ? extractItems(data) : null;
705
- return { items, isLoading };
703
+ const [pages, setPages] = useState(() => /* @__PURE__ */ new Map());
704
+ const cached = url !== null ? pages.get(url) : void 0;
705
+ const { data, dataUrl, error } = useSelfFetch(cached ? null : url);
706
+ if (data != null && dataUrl !== null && !pages.has(dataUrl)) {
707
+ setPages(new Map(pages).set(dataUrl, extractItems(data)));
708
+ }
709
+ if (url === null) return { items: null, isLoading: false };
710
+ return { items: cached ?? (error ? [] : null), isLoading: !cached && !error };
706
711
  }
707
712
  function gridClassFor(columns) {
708
713
  return columns === 3 ? "grid grid-cols-1 sm:grid-cols-2 lg:grid-cols-3 gap-6" : "grid grid-cols-1 sm:grid-cols-2 gap-6";
@@ -727,38 +732,36 @@ function ContentGroup({
727
732
  adminCampaignCard,
728
733
  heading
729
734
  }) {
730
- const { items, isLoading } = useGroupItems(type, refs, buildUrl);
731
735
  const config = resolveGroupConfig(type);
732
736
  const isListLayout = config.layout === "list";
733
737
  const cardSize = config.gridSize;
734
738
  const [page, setPage] = useState(1);
735
739
  const refsKey = refs.map((r) => r.id).join("|");
736
- const prevRefsKeyRef = useRef(refsKey);
737
- useEffect(() => {
738
- if (prevRefsKeyRef.current !== refsKey) {
739
- prevRefsKeyRef.current = refsKey;
740
- setPage(1);
741
- }
742
- }, [refsKey]);
740
+ const [pagedRefsKey, setPagedRefsKey] = useState(refsKey);
741
+ if (pagedRefsKey !== refsKey) {
742
+ setPagedRefsKey(refsKey);
743
+ setPage(1);
744
+ }
743
745
  const totalGroupPages = pageCount(refs.length, GROUP_PAGE_SIZE);
744
- const safePage = Math.min(page, totalGroupPages);
745
- const visibleGroupRefs = refs.length > GROUP_PAGE_SIZE ? refs.slice((safePage - 1) * GROUP_PAGE_SIZE, safePage * GROUP_PAGE_SIZE) : refs;
746
- const groupPagination = totalGroupPages > 1 ? /* @__PURE__ */ jsx2(Pagination, { currentPage: safePage, totalPages: totalGroupPages, onPageChange: setPage }) : null;
747
- if (isLoading && !items) {
748
- const skeletons = visibleGroupRefs.map((r) => /* @__PURE__ */ jsx2("div", { children: renderSkeletonForType(type, cardSize, adminCampaignCard) }, r.id));
746
+ const pageRefs = refs.slice((page - 1) * GROUP_PAGE_SIZE, page * GROUP_PAGE_SIZE);
747
+ const { items, isLoading } = useGroupItems(type, pageRefs, buildUrl);
748
+ const groupPagination = totalGroupPages > 1 ? /* @__PURE__ */ jsx2(Pagination, { currentPage: page, totalPages: totalGroupPages, onPageChange: setPage }) : null;
749
+ if (isLoading) {
750
+ const skeletons = pageRefs.map((r) => /* @__PURE__ */ jsx2("div", { children: renderSkeletonForType(type, cardSize, adminCampaignCard) }, r.id));
749
751
  return /* @__PURE__ */ jsxs("div", { className: "space-y-4", children: [
750
752
  heading,
751
- isListLayout ? /* @__PURE__ */ jsx2("div", { className: "space-y-4", children: skeletons }) : /* @__PURE__ */ jsx2("div", { className: gridClassFor(columns), children: skeletons })
753
+ isListLayout ? /* @__PURE__ */ jsx2("div", { className: "space-y-4", children: skeletons }) : /* @__PURE__ */ jsx2("div", { className: gridClassFor(columns), children: skeletons }),
754
+ groupPagination
752
755
  ] });
753
756
  }
754
- if (!items || items.length === 0) return null;
757
+ if (!items) return null;
755
758
  const rowKey = (it) => {
756
759
  const extracted = extractItemId(type, it);
757
760
  if (extracted !== null) return extracted;
758
761
  return String(typeof it === "object" && it !== null ? it.id : void 0);
759
762
  };
760
763
  const itemById = new Map(items.map((it) => [rowKey(it), it]));
761
- const cards = visibleGroupRefs.map((contentRef) => {
764
+ const cards = pageRefs.map((contentRef) => {
762
765
  const itemId = String(contentRef.id);
763
766
  const item = itemById.get(itemId);
764
767
  if (!item) return null;
@@ -1,7 +1,7 @@
1
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
- var _chunkZ5UWW3Z2cjs = require('./chunk-Z5UWW3Z2.cjs');
4
+ var _chunkLCLDFMDFcjs = require('./chunk-LCLDFMDF.cjs');
5
5
 
6
6
 
7
7
  var _chunkETYLOZOBcjs = require('./chunk-ETYLOZOB.cjs');
@@ -66,7 +66,7 @@ function DetailPageSkeleton({
66
66
  ] });
67
67
  if (bare) return content;
68
68
  return /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
69
- _chunkZ5UWW3Z2cjs.PageLayout,
69
+ _chunkLCLDFMDFcjs.PageLayout,
70
70
  {
71
71
  showHeader: false,
72
72
  className: "mx-auto max-w-[1280px] bg-ods-bg px-6 py-6 content-md:px-20 content-md:py-10",