@flamingo-stack/openframe-frontend-core 0.0.720 → 0.0.722

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 (165) hide show
  1. package/dist/{chunk-3HZ6XSZC.js → chunk-2TXGR7IK.js} +136 -59
  2. package/dist/{chunk-WSDT7LYL.js → chunk-3UBWDR65.js} +1 -1
  3. package/dist/{chunk-CMZ3QTFQ.js → chunk-4I3K6LEH.js} +24 -0
  4. package/dist/{chunk-4SIZCHVZ.cjs → chunk-4LY6R4TN.cjs} +126 -49
  5. package/dist/{chunk-2NASBO7O.js → chunk-5D2K7TFT.js} +3 -3
  6. package/dist/{chunk-HFEYEPOG.cjs → chunk-5K6YKRP5.cjs} +29 -29
  7. package/dist/{chunk-7HYEQKN6.js → chunk-65C4WHG4.js} +6 -6
  8. package/dist/{chunk-DOPOHO6H.cjs → chunk-6HRQLM6T.cjs} +20 -20
  9. package/dist/{chunk-B2N4YX66.js → chunk-6YBUQAOH.js} +1 -1
  10. package/dist/{chunk-GANIUMRU.js → chunk-7UZ2JZJY.js} +3 -3
  11. package/dist/{chunk-4HJRHEXD.cjs → chunk-ABSWD4PQ.cjs} +27 -27
  12. package/dist/{chunk-VYVPII4W.js → chunk-AWWLEYAU.js} +6 -6
  13. package/dist/{chunk-V6B2FBZK.js → chunk-BCU6UUNQ.js} +8 -8
  14. package/dist/{chunk-LO3KCLEF.js → chunk-BUDZWXRG.js} +4 -4
  15. package/dist/{chunk-WBNAEYTQ.cjs → chunk-BYUIFT7Q.cjs} +6 -6
  16. package/dist/{chunk-KSGMZHVV.cjs → chunk-DFM572VH.cjs} +2 -2
  17. package/dist/{chunk-YDPKUAP4.js → chunk-DJ4IFQNQ.js} +2 -0
  18. package/dist/{chunk-DYDDAA6O.cjs → chunk-DWSBTGKT.cjs} +816 -798
  19. package/dist/{chunk-PSMJYZMV.js → chunk-DX3W7DPC.js} +2 -2
  20. package/dist/{chunk-PXAKSPLZ.js → chunk-E7NIZXDT.js} +20 -8
  21. package/dist/{chunk-6W46LVK4.js → chunk-ETQVXIYW.js} +6 -6
  22. package/dist/{chunk-742BGXNX.js → chunk-EWED6ISQ.js} +1 -1
  23. package/dist/{chunk-Q5327DXK.js → chunk-F33RMJOL.js} +11 -11
  24. package/dist/{chunk-RZQGIWK3.cjs → chunk-FDWYBJYD.cjs} +8 -8
  25. package/dist/{chunk-QF464PPL.cjs → chunk-GAFK3WNT.cjs} +62 -62
  26. package/dist/{chunk-6BLN5WDS.cjs → chunk-GYSTZD6X.cjs} +40 -40
  27. package/dist/{chunk-TORERAXD.js → chunk-HA2ASGJM.js} +6 -6
  28. package/dist/{chunk-KT3U3ZRP.cjs → chunk-HP4UUBJC.cjs} +16 -16
  29. package/dist/{chunk-DFQYAYBH.cjs → chunk-HQIOMFJH.cjs} +2 -0
  30. package/dist/{chunk-AZRI4XBP.js → chunk-I3UUMRO7.js} +1 -1
  31. package/dist/{chunk-VYZCKY5K.js → chunk-IF72N4PE.js} +7 -7
  32. package/dist/{chunk-RFUOIQSG.cjs → chunk-IITZ6JSC.cjs} +37 -37
  33. package/dist/{chunk-7LPR4RZ3.cjs → chunk-JQ55FFIK.cjs} +31 -31
  34. package/dist/{chunk-GQ7JJUIT.cjs → chunk-K2JUJ37D.cjs} +25 -1
  35. package/dist/{chunk-URW23QUM.js → chunk-K76ACBR3.js} +2 -2
  36. package/dist/{chunk-7IOU6BJE.js → chunk-KBPGSPXQ.js} +2387 -2369
  37. package/dist/{chunk-ILNN6QRW.js → chunk-KS3YLYVL.js} +4 -4
  38. package/dist/{chunk-2C72EWQR.cjs → chunk-KWBH63GV.cjs} +26 -26
  39. package/dist/{chunk-IYVFSLWJ.js → chunk-KZQO5EJQ.js} +4 -0
  40. package/dist/{chunk-IMTY3GRR.cjs → chunk-LV6UJD2K.cjs} +2 -2
  41. package/dist/{chunk-UWJMDFDO.cjs → chunk-MJ4SXOG2.cjs} +28 -28
  42. package/dist/{chunk-VF2CJXZ2.cjs → chunk-NFABAOMD.cjs} +77 -79
  43. package/dist/{chunk-B5LNX4GZ.js → chunk-NMGWNUKB.js} +3 -3
  44. package/dist/{chunk-RDP5UZXQ.cjs → chunk-P7Y626YJ.cjs} +370 -358
  45. package/dist/{chunk-P3JMAMHP.js → chunk-REETLEL5.js} +1 -1
  46. package/dist/{chunk-FFT56TYB.cjs → chunk-RUZIICXT.cjs} +2 -2
  47. package/dist/{chunk-ISCZ6UNF.cjs → chunk-RVQV6J5K.cjs} +75 -75
  48. package/dist/{chunk-VBHGJFA3.js → chunk-SZ3CBFSH.js} +13 -13
  49. package/dist/{chunk-O3MKJU6A.js → chunk-SZF7ENIW.js} +4 -4
  50. package/dist/{chunk-F5BPGWGT.cjs → chunk-TKFTWM3V.cjs} +5 -1
  51. package/dist/{chunk-YK3X74SF.js → chunk-UYMTAFHG.js} +6 -8
  52. package/dist/{chunk-DHNJSQGX.cjs → chunk-VC7COEWF.cjs} +105 -105
  53. package/dist/{chunk-XW3Q623Q.js → chunk-VSYQJCNR.js} +2 -2
  54. package/dist/{chunk-IL3ZWNM2.cjs → chunk-VU7RU3LL.cjs} +7 -7
  55. package/dist/{chunk-XSM46FHD.cjs → chunk-VV5INIQB.cjs} +3 -3
  56. package/dist/{chunk-HTS46FFY.cjs → chunk-VYHCN5NU.cjs} +16 -16
  57. package/dist/{chunk-ZPHOQDAE.js → chunk-WY4SLTMZ.js} +3 -3
  58. package/dist/{chunk-5XDCCQ4A.cjs → chunk-XJYAUIOL.cjs} +13 -13
  59. package/dist/{chunk-ZHD3F2TH.cjs → chunk-XR7NVJXS.cjs} +13 -13
  60. package/dist/{chunk-EVMM3JE6.cjs → chunk-ZHC6MDGF.cjs} +43 -43
  61. package/dist/{chunk-K2BYVPGR.js → chunk-ZMHP4Y6M.js} +5 -5
  62. package/dist/{chunk-NYSMDM4J.cjs → chunk-ZSOFLPQN.cjs} +7 -7
  63. package/dist/{cloud-tenants-RKQRSDNE.js → cloud-tenants-4Z36KWSX.js} +14 -14
  64. package/dist/{cloud-tenants-UQZASXUB.cjs → cloud-tenants-5NIC5VXK.cjs} +15 -15
  65. package/dist/components/calendar.cjs +4 -4
  66. package/dist/components/calendar.js +1 -1
  67. package/dist/components/case-studies/index.cjs +29 -29
  68. package/dist/components/case-studies/index.js +15 -15
  69. package/dist/components/chat/index.cjs +10 -10
  70. package/dist/components/chat/index.js +9 -9
  71. package/dist/components/contact/index.cjs +16 -16
  72. package/dist/components/contact/index.js +15 -15
  73. package/dist/components/docs/index.cjs +19 -19
  74. package/dist/components/docs/index.js +18 -18
  75. package/dist/components/embeds/index.cjs +16 -16
  76. package/dist/components/embeds/index.js +15 -15
  77. package/dist/components/faq/index.cjs +16 -16
  78. package/dist/components/faq/index.js +15 -15
  79. package/dist/components/features/index.cjs +15 -15
  80. package/dist/components/features/index.js +14 -14
  81. package/dist/components/features/remote-session/remote-access-request-card.d.ts.map +1 -1
  82. package/dist/components/help-center-pages/download-apps-page.d.ts +68 -0
  83. package/dist/components/help-center-pages/download-apps-page.d.ts.map +1 -0
  84. package/dist/components/help-center-pages/index.cjs +347 -117
  85. package/dist/components/help-center-pages/index.d.ts +1 -0
  86. package/dist/components/help-center-pages/index.d.ts.map +1 -1
  87. package/dist/components/help-center-pages/index.js +260 -30
  88. package/dist/components/index.cjs +87 -85
  89. package/dist/components/index.js +30 -28
  90. package/dist/components/meeting-scheduler/index.cjs +67 -67
  91. package/dist/components/meeting-scheduler/index.js +16 -16
  92. package/dist/components/navigation/index.cjs +18 -18
  93. package/dist/components/navigation/index.js +17 -17
  94. package/dist/components/onboarding-guides/index.cjs +18 -18
  95. package/dist/components/onboarding-guides/index.js +17 -17
  96. package/dist/components/product-demo/index.cjs +8 -8
  97. package/dist/components/product-demo/index.js +8 -8
  98. package/dist/components/related-content/index.cjs +7 -7
  99. package/dist/components/related-content/index.js +6 -6
  100. package/dist/components/tickets/index.cjs +20 -20
  101. package/dist/components/tickets/index.js +19 -19
  102. package/dist/components/ui/button/button.d.ts.map +1 -1
  103. package/dist/components/ui/file-manager/index.cjs +11 -11
  104. package/dist/components/ui/file-manager/index.js +1 -1
  105. package/dist/components/ui/index.cjs +17 -15
  106. package/dist/components/ui/index.d.ts +1 -0
  107. package/dist/components/ui/index.d.ts.map +1 -1
  108. package/dist/components/ui/index.js +16 -14
  109. package/dist/components/ui/mobile-app-qr.d.ts +21 -0
  110. package/dist/components/ui/mobile-app-qr.d.ts.map +1 -0
  111. package/dist/components/ui/store-badges.d.ts +7 -4
  112. package/dist/components/ui/store-badges.d.ts.map +1 -1
  113. package/dist/{devices-U3Y4IIW4.js → devices-2TK3LAKM.js} +14 -14
  114. package/dist/{devices-7Q2EUM7B.cjs → devices-7IKT72DK.cjs} +16 -16
  115. package/dist/hooks/index.cjs +9 -3
  116. package/dist/hooks/index.d.ts +1 -0
  117. package/dist/hooks/index.d.ts.map +1 -1
  118. package/dist/hooks/index.js +8 -2
  119. package/dist/hooks/use-downloads.d.ts +41 -0
  120. package/dist/hooks/use-downloads.d.ts.map +1 -0
  121. package/dist/index.cjs +52 -20
  122. package/dist/index.js +50 -18
  123. package/dist/{knowledge-NST53EXE.js → knowledge-3GJ4MU3V.js} +14 -14
  124. package/dist/{knowledge-UYIZ74MA.cjs → knowledge-HYSEV35H.cjs} +16 -16
  125. package/dist/{logs-JVTRG232.js → logs-TATVM62H.js} +14 -14
  126. package/dist/{logs-HTH7X7KV.cjs → logs-ZX3NADQC.cjs} +24 -24
  127. package/dist/{policies-MXK2HB4W.cjs → policies-J4FSDKPI.cjs} +19 -19
  128. package/dist/{policies-DTXTRK56.js → policies-MRRKLF4Q.js} +14 -14
  129. package/dist/{remote-session-LAJZKQBN.js → remote-session-WCLR47RN.js} +6 -6
  130. package/dist/{remote-session-SKKF4PBV.cjs → remote-session-Z2YCUPHU.cjs} +8 -8
  131. package/dist/{software-update-P6BSM6HX.cjs → software-update-CXUBWYD2.cjs} +19 -19
  132. package/dist/{software-update-6RHMPM3W.js → software-update-KM46WUVQ.js} +14 -14
  133. package/dist/{tickets-board-BHLPAVNJ.cjs → tickets-board-R5OQSEEC.cjs} +10 -10
  134. package/dist/{tickets-board-PYDNELSK.js → tickets-board-U3RF3AO4.js} +5 -5
  135. package/dist/types/downloads.d.ts +83 -0
  136. package/dist/types/downloads.d.ts.map +1 -0
  137. package/dist/types/index.cjs +24 -0
  138. package/dist/types/index.d.ts +1 -0
  139. package/dist/types/index.d.ts.map +1 -1
  140. package/dist/types/index.js +16 -1
  141. package/dist/utils/format.d.ts +11 -0
  142. package/dist/utils/format.d.ts.map +1 -1
  143. package/dist/utils/index.cjs +15 -0
  144. package/dist/utils/index.d.ts +2 -1
  145. package/dist/utils/index.d.ts.map +1 -1
  146. package/dist/utils/index.js +13 -1
  147. package/dist/utils/mobile-app.cjs +37 -0
  148. package/dist/utils/mobile-app.d.ts +23 -0
  149. package/dist/utils/mobile-app.d.ts.map +1 -0
  150. package/dist/utils/mobile-app.js +34 -0
  151. package/package.json +7 -1
  152. package/src/components/features/remote-session/remote-access-request-card.tsx +6 -6
  153. package/src/components/help-center-pages/download-apps-page.tsx +388 -0
  154. package/src/components/help-center-pages/index.ts +1 -0
  155. package/src/components/ui/button/button.tsx +3 -0
  156. package/src/components/ui/index.ts +1 -0
  157. package/src/components/ui/mobile-app-qr.tsx +35 -0
  158. package/src/components/ui/store-badges.tsx +17 -9
  159. package/src/hooks/index.ts +1 -0
  160. package/src/hooks/use-downloads.ts +138 -0
  161. package/src/types/downloads.ts +99 -0
  162. package/src/types/index.ts +1 -0
  163. package/src/utils/format.ts +15 -0
  164. package/src/utils/index.ts +3 -1
  165. package/src/utils/mobile-app.ts +34 -0
@@ -5,7 +5,7 @@ var _chunkAL2GUHAJcjs = require('./chunk-AL2GUHAJ.cjs');
5
5
 
6
6
 
7
7
 
8
- var _chunkIMTY3GRRcjs = require('./chunk-IMTY3GRR.cjs');
8
+ var _chunkLV6UJD2Kcjs = require('./chunk-LV6UJD2K.cjs');
9
9
 
10
10
 
11
11
 
@@ -19,7 +19,7 @@ var _chunkIMTY3GRRcjs = require('./chunk-IMTY3GRR.cjs');
19
19
 
20
20
 
21
21
 
22
- var _chunkF5BPGWGTcjs = require('./chunk-F5BPGWGT.cjs');
22
+ var _chunkTKFTWM3Vcjs = require('./chunk-TKFTWM3V.cjs');
23
23
 
24
24
 
25
25
  var _chunkMGHIV4L6cjs = require('./chunk-MGHIV4L6.cjs');
@@ -52,7 +52,7 @@ var _chunkULWVKHSIcjs = require('./chunk-ULWVKHSI.cjs');
52
52
  var _chunkLLSUVPQCcjs = require('./chunk-LLSUVPQC.cjs');
53
53
 
54
54
 
55
- var _chunkDFQYAYBHcjs = require('./chunk-DFQYAYBH.cjs');
55
+ var _chunkHQIOMFJHcjs = require('./chunk-HQIOMFJH.cjs');
56
56
 
57
57
 
58
58
  var _chunkLLRGR4I5cjs = require('./chunk-LLRGR4I5.cjs');
@@ -276,7 +276,7 @@ function ImageGalleryModal({ images, isOpen, onClose, initialIndex = 0 }) {
276
276
  return /* @__PURE__ */ _jsxruntime.jsx.call(void 0, Modal, { isOpen, onClose, className: "max-w-[95vw]", children: /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: "relative flex items-center justify-center rounded-lg bg-black", children: [
277
277
  images.length > 1 && /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, _jsxruntime.Fragment, { children: [
278
278
  selectedImageIndex > 0 && /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: "absolute left-4 top-1/2 z-[10000] -translate-y-1/2", children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
279
- _chunkDFQYAYBHcjs.Button,
279
+ _chunkHQIOMFJHcjs.Button,
280
280
  {
281
281
  variant: "transparent",
282
282
  size: "small-legacy",
@@ -286,7 +286,7 @@ function ImageGalleryModal({ images, isOpen, onClose, initialIndex = 0 }) {
286
286
  }
287
287
  ) }),
288
288
  selectedImageIndex < images.length - 1 && /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: "absolute right-4 top-1/2 z-[10000] -translate-y-1/2", children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
289
- _chunkDFQYAYBHcjs.Button,
289
+ _chunkHQIOMFJHcjs.Button,
290
290
  {
291
291
  variant: "transparent",
292
292
  size: "small-legacy",
@@ -628,9 +628,9 @@ function VideoErrorOverlay({
628
628
  return /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: "absolute inset-0 z-10 flex flex-col items-center justify-center gap-[var(--spacing-system-sf)] bg-ods-overlay p-[var(--spacing-system-lf)] text-center", children: [
629
629
  /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "p", { className: "text-ods-text-secondary text-h6", children: "This video failed to play." }),
630
630
  /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: "flex items-center gap-[var(--spacing-system-sf)]", children: [
631
- /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkDFQYAYBHcjs.Button, { variant: "outline", size: "small", onClick: onRetry, children: "Try again" }),
631
+ /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkHQIOMFJHcjs.Button, { variant: "outline", size: "small", onClick: onRetry, children: "Try again" }),
632
632
  watchOnYouTubeId ? /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
633
- _chunkDFQYAYBHcjs.Button,
633
+ _chunkHQIOMFJHcjs.Button,
634
634
  {
635
635
  variant: "transparent",
636
636
  size: "small",
@@ -1614,7 +1614,7 @@ function EntityIcon({
1614
1614
  }
1615
1615
  );
1616
1616
  }
1617
- const Glyph = _chunkIMTY3GRRcjs.resolveIcon.call(void 0, _nullishCoalesce(_optionalChain([icon, 'optionalAccess', _107 => _107.name]), () => ( void 0)));
1617
+ const Glyph = _chunkLV6UJD2Kcjs.resolveIcon.call(void 0, _nullishCoalesce(_optionalChain([icon, 'optionalAccess', _107 => _107.name]), () => ( void 0)));
1618
1618
  return /* @__PURE__ */ _jsxruntime.jsx.call(void 0, Glyph, { size, className, ..._nullishCoalesce(_optionalChain([icon, 'optionalAccess', _108 => _108.props]), () => ( {})) });
1619
1619
  }
1620
1620
 
@@ -1627,7 +1627,7 @@ function escapeRegExp(value) {
1627
1627
  function formatDayHead(dateString, style) {
1628
1628
  const ymd = splitYmd(dateString);
1629
1629
  if (!ymd) return dateString;
1630
- return _chunkF5BPGWGTcjs.formatDateWithTimezone.call(void 0, ymd.join("-"), null, style) || dateString;
1630
+ return _chunkTKFTWM3Vcjs.formatDateWithTimezone.call(void 0, ymd.join("-"), null, style) || dateString;
1631
1631
  }
1632
1632
  function splitYmd(dateString) {
1633
1633
  const head = dateString.split("T")[0];
@@ -2103,9 +2103,9 @@ function programMetaFormatters(fmt, opts = {}) {
2103
2103
 
2104
2104
  // src/utils/program-meta-renderers.ts
2105
2105
  var PROGRAM_META_RENDERERS = {
2106
- date: _chunkF5BPGWGTcjs.formatProgramDate,
2107
- duration: _chunkF5BPGWGTcjs.formatDurationCompact,
2108
- webinarMeta: _chunkF5BPGWGTcjs.formatWebinarTimeMeta
2106
+ date: _chunkTKFTWM3Vcjs.formatProgramDate,
2107
+ duration: _chunkTKFTWM3Vcjs.formatDurationCompact,
2108
+ webinarMeta: _chunkTKFTWM3Vcjs.formatWebinarTimeMeta
2109
2109
  };
2110
2110
 
2111
2111
  // src/components/chat/utils/decide-new-tab.ts
@@ -2176,11 +2176,11 @@ function EntityMetadataAuthorCell({
2176
2176
  const fullName = trimmedName || "Unknown Author";
2177
2177
  return /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: `flex items-center gap-3 p-4 ${_nullishCoalesce(className, () => ( ""))}`, children: [
2178
2178
  /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
2179
- _chunkF5BPGWGTcjs.SquareAvatar,
2179
+ _chunkTKFTWM3Vcjs.SquareAvatar,
2180
2180
  {
2181
2181
  src: author.avatar_url || "",
2182
2182
  alt: fullName,
2183
- fallback: _chunkF5BPGWGTcjs.nameInitials.call(void 0, fullName, ""),
2183
+ fallback: _chunkTKFTWM3Vcjs.nameInitials.call(void 0, fullName, ""),
2184
2184
  size: "md",
2185
2185
  variant: "round"
2186
2186
  }
@@ -2204,7 +2204,7 @@ function EntityAuthorCard({
2204
2204
  const hasAuthor = !!_optionalChain([author, 'optionalAccess', _120 => _120.full_name]);
2205
2205
  if (!hasAuthor && !renderEmptyAuthor) return null;
2206
2206
  const effectiveAuthor = hasAuthor ? author : EMPTY_AUTHOR_PLACEHOLDER;
2207
- const formatted = publishedAt ? _chunkF5BPGWGTcjs.formatDate.call(void 0, publishedAt) : "";
2207
+ const formatted = publishedAt ? _chunkTKFTWM3Vcjs.formatDate.call(void 0, publishedAt) : "";
2208
2208
  const dateLabel = formatted === "Invalid Date" ? "" : formatted;
2209
2209
  const showDateCell = !!dateLabel;
2210
2210
  const extras = _nullishCoalesce(extraCells, () => ( []));
@@ -2770,7 +2770,7 @@ function WhatIShippedCard({ entry, placeholderUrl, actions, anchorProps, classNa
2770
2770
  EmployeeEntryCard,
2771
2771
  {
2772
2772
  entry,
2773
- dateLabel: _chunkF5BPGWGTcjs.formatEntryMonthUTC.call(void 0, entry.entry_month, "short"),
2773
+ dateLabel: _chunkTKFTWM3Vcjs.formatEntryMonthUTC.call(void 0, entry.entry_month, "short"),
2774
2774
  placeholderUrl,
2775
2775
  actions,
2776
2776
  anchorProps,
@@ -2790,7 +2790,7 @@ function HowIWorkCard({ entry, placeholderUrl, actions, anchorProps, className }
2790
2790
  EmployeeEntryCard,
2791
2791
  {
2792
2792
  entry,
2793
- dateLabel: entry.session_date ? _chunkF5BPGWGTcjs.formatDateUTC.call(void 0, entry.session_date, { fallback: "" }) || null : null,
2793
+ dateLabel: entry.session_date ? _chunkTKFTWM3Vcjs.formatDateUTC.call(void 0, entry.session_date, { fallback: "" }) || null : null,
2794
2794
  extraBadges: entry.discipline ? /* @__PURE__ */ _jsxruntime.jsx.call(void 0, EmployeeEntryBadge, { children: disciplineLabel(entry.discipline) }) : null,
2795
2795
  untitledLabel: "Untitled session",
2796
2796
  placeholderUrl,
@@ -2811,7 +2811,7 @@ function AiPromptCard({ entry, placeholderUrl, actions, anchorProps, className }
2811
2811
  EmployeeEntryCard,
2812
2812
  {
2813
2813
  entry,
2814
- dateLabel: entry.published_at ? _chunkF5BPGWGTcjs.formatDateUTC.call(void 0, entry.published_at, { fallback: "" }) || null : null,
2814
+ dateLabel: entry.published_at ? _chunkTKFTWM3Vcjs.formatDateUTC.call(void 0, entry.published_at, { fallback: "" }) || null : null,
2815
2815
  extraBadges: /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, _jsxruntime.Fragment, { children: [
2816
2816
  departmentName ? /* @__PURE__ */ _jsxruntime.jsx.call(void 0, DepartmentBadge, { department: { name: departmentName, color: _nullishCoalesce(_optionalChain([entry, 'access', _133 => _133.department, 'optionalAccess', _134 => _134.color]), () => ( null)) } }) : null,
2817
2817
  steps > 1 ? /* @__PURE__ */ _jsxruntime.jsx.call(void 0, EmployeeEntryBadge, { children: `${steps} steps` }) : null
@@ -3181,7 +3181,7 @@ function ProductReleaseCard({
3181
3181
  ] }) }, `${cell.label}-${i}`)),
3182
3182
  /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: "flex items-center gap-3 p-4", children: [
3183
3183
  /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
3184
- _chunkF5BPGWGTcjs.SquareAvatar,
3184
+ _chunkTKFTWM3Vcjs.SquareAvatar,
3185
3185
  {
3186
3186
  src: _nullishCoalesce(effectiveAuthor.avatar_url, () => ( void 0)),
3187
3187
  alt: effectiveAuthor.full_name,
@@ -3516,7 +3516,7 @@ function BlogCard({
3516
3516
  });
3517
3517
  const { src: displayImage, onError: onImageError } = useCoverImageFallback(post.featured_image, placeholderUrl);
3518
3518
  if (size === "sm") {
3519
- const dateStr2 = post.published_at ? _chunkF5BPGWGTcjs.formatDateWithTimezone.call(void 0, post.published_at, null, "medium") : "";
3519
+ const dateStr2 = post.published_at ? _chunkTKFTWM3Vcjs.formatDateWithTimezone.call(void 0, post.published_at, null, "medium") : "";
3520
3520
  const firstCategory = _optionalChain([post, 'access', _151 => _151.categories, 'optionalAccess', _152 => _152.find, 'call', _153 => _153((c) => c && c.name), 'optionalAccess', _154 => _154.name]);
3521
3521
  return /* @__PURE__ */ _jsxruntime.jsxs.call(void 0,
3522
3522
  "a",
@@ -3556,7 +3556,7 @@ function BlogCard({
3556
3556
  );
3557
3557
  }
3558
3558
  if (size === "portrait") {
3559
- const dateStr2 = post.published_at ? _chunkF5BPGWGTcjs.formatDateWithTimezone.call(void 0, post.published_at, null, "medium") : "";
3559
+ const dateStr2 = post.published_at ? _chunkTKFTWM3Vcjs.formatDateWithTimezone.call(void 0, post.published_at, null, "medium") : "";
3560
3560
  return /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
3561
3561
  EntityPortraitCard,
3562
3562
  {
@@ -3577,7 +3577,7 @@ function BlogCard({
3577
3577
  }
3578
3578
  );
3579
3579
  }
3580
- const dateStr = post.published_at ? _chunkF5BPGWGTcjs.formatDateWithTimezone.call(void 0, post.published_at, null, "medium") : "";
3580
+ const dateStr = post.published_at ? _chunkTKFTWM3Vcjs.formatDateWithTimezone.call(void 0, post.published_at, null, "medium") : "";
3581
3581
  return /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "article", { className: _chunk3ATAYP36cjs.cn.call(void 0, CONTENT_CARD_FRAME_CLASS, "flex h-full flex-col", className), role: "article", children: /* @__PURE__ */ _jsxruntime.jsxs.call(void 0,
3582
3582
  "a",
3583
3583
  {
@@ -4097,7 +4097,7 @@ function CustomerInterviewCard({
4097
4097
  // src/components/chat/types/entities/investor-update.ts
4098
4098
  function formatInvestorUpdatePeriod(start, end, options) {
4099
4099
  if (!start && !end) return "";
4100
- const fmt = (d) => _chunkF5BPGWGTcjs.formatDateWithTimezone.call(void 0, d, null, _optionalChain([options, 'optionalAccess', _222 => _222.monthFormat]) === "long" ? "monthYear" : "monthYearShort") || "?";
4100
+ const fmt = (d) => _chunkTKFTWM3Vcjs.formatDateWithTimezone.call(void 0, d, null, _optionalChain([options, 'optionalAccess', _222 => _222.monthFormat]) === "long" ? "monthYear" : "monthYearShort") || "?";
4101
4101
  const s = start ? fmt(start) : "?";
4102
4102
  const e = end ? fmt(end) : "?";
4103
4103
  return `${s} - ${e}`;
@@ -4344,7 +4344,7 @@ function OnboardingGuideCard({
4344
4344
  const coverImage = guide.featured_image || guide.main_video_thumbnail || guide.og_image_url || null;
4345
4345
  const hasVideoCover = !!(guide.main_video_thumbnail || guide.highlight_video_thumbnail);
4346
4346
  const stepLabel = typeof guide.step_order === "number" ? String(guide.step_order).padStart(2, "0") : "\u2014";
4347
- const durationLabel = typeof guide.highlight_video_duration_ms === "number" && guide.highlight_video_duration_ms > 0 ? _chunkF5BPGWGTcjs.formatDurationMMSS.call(void 0, Math.floor(guide.highlight_video_duration_ms / 1e3)) : "";
4347
+ const durationLabel = typeof guide.highlight_video_duration_ms === "number" && guide.highlight_video_duration_ms > 0 ? _chunkTKFTWM3Vcjs.formatDurationMMSS.call(void 0, Math.floor(guide.highlight_video_duration_ms / 1e3)) : "";
4348
4348
  return /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
4349
4349
  _chunkLLRGR4I5cjs.next_link_default,
4350
4350
  {
@@ -4476,7 +4476,7 @@ function RoadmapVoteButton({
4476
4476
  }) {
4477
4477
  const Icon = voteType === "up" ? _chunkLLSUVPQCcjs.ThumbsUpIcon : _chunkLLSUVPQCcjs.ThumbsDownIcon;
4478
4478
  return /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
4479
- _chunkDFQYAYBHcjs.Button,
4479
+ _chunkHQIOMFJHcjs.Button,
4480
4480
  {
4481
4481
  variant: "outline",
4482
4482
  onClick,
@@ -4703,7 +4703,7 @@ function RoadmapCard({
4703
4703
  ]
4704
4704
  }
4705
4705
  ) : null,
4706
- item.assignees && item.assignees.length > 0 ? /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkIMTY3GRRcjs.AvatarStack, { size: "xs", people: assigneePeople(item.assignees), className: "shrink-0" }) : null
4706
+ item.assignees && item.assignees.length > 0 ? /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkLV6UJD2Kcjs.AvatarStack, { size: "xs", people: assigneePeople(item.assignees), className: "shrink-0" }) : null
4707
4707
  ] }),
4708
4708
  /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "span", { className: COMPACT_CARD_META_ROW_BOX, children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "span", { className: COMPACT_CARD_SUMMARY, children: item.description || COMPACT_CARD_ROW_FILLER }) })
4709
4709
  ] })
@@ -4790,9 +4790,9 @@ function RoadmapCard({
4790
4790
  )
4791
4791
  ] }),
4792
4792
  /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: "flex min-w-0 items-center gap-2", children: [
4793
- item.assignees && item.assignees.length > 0 ? /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkIMTY3GRRcjs.AvatarStack, { size: "xs", people: assigneePeople(item.assignees), className: "shrink-0" }) : null,
4793
+ item.assignees && item.assignees.length > 0 ? /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkLV6UJD2Kcjs.AvatarStack, { size: "xs", people: assigneePeople(item.assignees), className: "shrink-0" }) : null,
4794
4794
  item.screenshots && item.screenshots.length > 0 && /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
4795
- _chunkDFQYAYBHcjs.Button,
4795
+ _chunkHQIOMFJHcjs.Button,
4796
4796
  {
4797
4797
  variant: "outline",
4798
4798
  size: "small-legacy",
@@ -4803,7 +4803,7 @@ function RoadmapCard({
4803
4803
  (() => {
4804
4804
  const figmaSafe = safeHref(item.figmaUrl);
4805
4805
  return figmaSafe ? /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
4806
- _chunkDFQYAYBHcjs.Button,
4806
+ _chunkHQIOMFJHcjs.Button,
4807
4807
  {
4808
4808
  variant: "outline",
4809
4809
  size: "small-legacy",
@@ -5080,7 +5080,7 @@ function ProgramEditorialCard({
5080
5080
  /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "span", { className: "line-clamp-3 min-h-[3lh] text-ods-text-secondary text-h4", children: description }),
5081
5081
  /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "span", { className: EDITORIAL_PERSON_ROW, children: profile && /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, _jsxruntime.Fragment, { children: [
5082
5082
  /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
5083
- _chunkF5BPGWGTcjs.SquareAvatar,
5083
+ _chunkTKFTWM3Vcjs.SquareAvatar,
5084
5084
  {
5085
5085
  variant: "round",
5086
5086
  src: profile.avatarUrl || void 0,
@@ -5142,7 +5142,7 @@ function ProgramCard({
5142
5142
  // Compact densities join plain strings, so the zone rides inline here; the
5143
5143
  // default density below renders it as its own styled span instead.
5144
5144
  } = programMetaLine(item, config.type, programMetaFormatters(PROGRAM_META_RENDERERS));
5145
- const compactDate = _chunkF5BPGWGTcjs.formatProgramDate.call(void 0, zonedDate, "medium");
5145
+ const compactDate = _chunkTKFTWM3Vcjs.formatProgramDate.call(void 0, zonedDate, "medium");
5146
5146
  if (size === "portrait") {
5147
5147
  const profile = programItemToStripProfile(item);
5148
5148
  const dateMeta = compactMetaLine;
@@ -5175,7 +5175,7 @@ function ProgramCard({
5175
5175
  description: item.description,
5176
5176
  cover: coverImage || placeholderUrl || null,
5177
5177
  eyebrow,
5178
- date: _chunkF5BPGWGTcjs.formatProgramDate.call(void 0, zonedDate, "weekday"),
5178
+ date: _chunkTKFTWM3Vcjs.formatProgramDate.call(void 0, zonedDate, "weekday"),
5179
5179
  typeMeta: compactTypeMetaValue,
5180
5180
  profile: programItemToStripProfile(item),
5181
5181
  playable: isPlayable,
@@ -5203,7 +5203,7 @@ function ProgramCard({
5203
5203
  /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "span", { className: "flex h-5 shrink-0 items-center self-start text-ods-text-secondary", children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _lucidereact.ExternalLink, { className: "h-3.5 w-3.5" }) })
5204
5204
  ] });
5205
5205
  }
5206
- const dateFormat = _chunkF5BPGWGTcjs.formatProgramDate.call(void 0, zonedDate, "weekday");
5206
+ const dateFormat = _chunkTKFTWM3Vcjs.formatProgramDate.call(void 0, zonedDate, "weekday");
5207
5207
  const { typeMeta: defaultTypeMeta, audience: defaultAudience } = programMetaLine(
5208
5208
  item,
5209
5209
  config.type,
@@ -5234,7 +5234,7 @@ function ProgramCard({
5234
5234
  return null;
5235
5235
  };
5236
5236
  const endAt = "end_at" in item && typeof item.end_at === "string" ? item.end_at : null;
5237
- const dateLabel = _nullishCoalesce(_chunkF5BPGWGTcjs.formatProgramDateRange.call(void 0, zonedDate, endAt), () => ( dateFormat));
5237
+ const dateLabel = _nullishCoalesce(_chunkTKFTWM3Vcjs.formatProgramDateRange.call(void 0, zonedDate, endAt), () => ( dateFormat));
5238
5238
  const cardHeader = /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: DEFAULT_HEADER, children: [
5239
5239
  coverImage && /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: DEFAULT_COVER_FRAME, children: [
5240
5240
  /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
@@ -5263,10 +5263,10 @@ function ProgramCard({
5263
5263
  ] })
5264
5264
  ] }),
5265
5265
  /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "p", { className: DEFAULT_DESCRIPTION, children: item.description }),
5266
- tags.length > 0 && /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: DEFAULT_TAG_ROW, children: tags.map((tag) => /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkF5BPGWGTcjs.Tag, { as: "span", label: tag, variant: "outline" }, tag)) })
5266
+ tags.length > 0 && /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: DEFAULT_TAG_ROW, children: tags.map((tag) => /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkTKFTWM3Vcjs.Tag, { as: "span", label: tag, variant: "outline" }, tag)) })
5267
5267
  ] }),
5268
5268
  hosts.length > 0 && /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: "flex flex-wrap gap-2 md:justify-end", children: hosts.map((host, index) => /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
5269
- _chunkF5BPGWGTcjs.SquareAvatar,
5269
+ _chunkTKFTWM3Vcjs.SquareAvatar,
5270
5270
  {
5271
5271
  variant: "round",
5272
5272
  src: host.avatar || void 0,
@@ -5311,7 +5311,7 @@ function ProgramCard({
5311
5311
  /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "a", { href, target, rel, className: "block", "aria-label": `Open ${item.title}`, children: cardHeader }),
5312
5312
  images.length > 0 && /* @__PURE__ */ _jsxruntime.jsx.call(void 0, MediaGallery, { images, title: item.title }),
5313
5313
  /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: DEFAULT_FOOTER, children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
5314
- _chunkDFQYAYBHcjs.Button,
5314
+ _chunkHQIOMFJHcjs.Button,
5315
5315
  {
5316
5316
  variant: "outline",
5317
5317
  href,
@@ -2,27 +2,27 @@
2
2
 
3
3
 
4
4
 
5
- var _chunkIL3ZWNM2cjs = require('./chunk-IL3ZWNM2.cjs');
5
+ var _chunkVU7RU3LLcjs = require('./chunk-VU7RU3LL.cjs');
6
6
 
7
7
 
8
8
 
9
- var _chunk5XDCCQ4Acjs = require('./chunk-5XDCCQ4A.cjs');
9
+ var _chunkXJYAUIOLcjs = require('./chunk-XJYAUIOL.cjs');
10
10
 
11
11
 
12
12
 
13
13
 
14
14
 
15
15
 
16
- var _chunkDYDDAA6Ocjs = require('./chunk-DYDDAA6O.cjs');
16
+ var _chunkDWSBTGKTcjs = require('./chunk-DWSBTGKT.cjs');
17
17
 
18
18
 
19
- var _chunkVF2CJXZ2cjs = require('./chunk-VF2CJXZ2.cjs');
19
+ var _chunkNFABAOMDcjs = require('./chunk-NFABAOMD.cjs');
20
20
 
21
21
 
22
22
 
23
23
 
24
24
 
25
- var _chunkRDP5UZXQcjs = require('./chunk-RDP5UZXQ.cjs');
25
+ var _chunkP7Y626YJcjs = require('./chunk-P7Y626YJ.cjs');
26
26
 
27
27
 
28
28
 
@@ -34,7 +34,7 @@ var _chunk7DNL734Scjs = require('./chunk-7DNL734S.cjs');
34
34
 
35
35
 
36
36
 
37
- var _chunkRFUOIQSGcjs = require('./chunk-RFUOIQSG.cjs');
37
+ var _chunkIITZ6JSCcjs = require('./chunk-IITZ6JSC.cjs');
38
38
 
39
39
 
40
40
  var _chunk7GRPR7XAcjs = require('./chunk-7GRPR7XA.cjs');
@@ -62,7 +62,7 @@ function OnboardingGuidesCatalogSkeleton() {
62
62
  /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "span", { className: "h-6 w-40 rounded bg-ods-border/70" }),
63
63
  /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "span", { className: "h-5 w-8 rounded-full bg-ods-text-secondary/20" })
64
64
  ] }),
65
- /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "ul", { className: "flex flex-col gap-4", children: Array.from({ length: cardCount }).map((_, cardIdx) => /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "li", { children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkRFUOIQSGcjs.OnboardingGuideCardSkeleton, { size: "catalog" }) }, cardIdx)) })
65
+ /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "ul", { className: "flex flex-col gap-4", children: Array.from({ length: cardCount }).map((_, cardIdx) => /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "li", { children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkIITZ6JSCcjs.OnboardingGuideCardSkeleton, { size: "catalog" }) }, cardIdx)) })
66
66
  ] }, sectionIdx)) })
67
67
  ] });
68
68
  }
@@ -86,10 +86,10 @@ function OnboardingGuidesCatalogView({
86
86
  const sectionValue = selfFetch ? _nullishCoalesce(searchParams.get("section"), () => ( "")) : initialSection;
87
87
  const activeSection = sectionValue || "all";
88
88
  const guidesQs = sectionValue ? `?section=${encodeURIComponent(sectionValue)}` : "";
89
- const guidesRes = _chunkRFUOIQSGcjs.useSelfFetch.call(void 0,
89
+ const guidesRes = _chunkIITZ6JSCcjs.useSelfFetch.call(void 0,
90
90
  selfFetch && guidesEndpoint ? `${guidesEndpoint}${guidesQs}` : null
91
91
  );
92
- const sectionsRes = _chunkRFUOIQSGcjs.useSelfFetch.call(void 0, selfFetch && sectionsEndpoint ? sectionsEndpoint : null);
92
+ const sectionsRes = _chunkIITZ6JSCcjs.useSelfFetch.call(void 0, selfFetch && sectionsEndpoint ? sectionsEndpoint : null);
93
93
  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])]);
94
94
  const sections = _react.useMemo.call(void 0,
95
95
  () => _nullishCoalesce(initialSections, () => ( (Array.isArray(sectionsRes.data) ? sectionsRes.data : []))),
@@ -132,25 +132,25 @@ function OnboardingGuidesCatalogView({
132
132
  });
133
133
  };
134
134
  const source = _nullishCoalesce(_optionalChain([runtime, 'optionalAccess', _6 => _6.source]), () => ( "openframe"));
135
- const docSearch = _chunk5XDCCQ4Acjs.useDocSearch.call(void 0, {
135
+ const docSearch = _chunkXJYAUIOLcjs.useDocSearch.call(void 0, {
136
136
  source,
137
137
  baseRoute: basePath,
138
138
  onNavigate: (path) => router.push(path),
139
139
  tableIds: ["onboarding-guides"]
140
140
  });
141
141
  const defaultRenderCard = (guide) => {
142
- const cta = _chunkRDP5UZXQcjs.resolveContentHref.call(void 0, _optionalChain([runtime, 'optionalAccess', _7 => _7.composeContentUrl]), {
142
+ const cta = _chunkP7Y626YJcjs.resolveContentHref.call(void 0, _optionalChain([runtime, 'optionalAccess', _7 => _7.composeContentUrl]), {
143
143
  type: "onboarding_guide",
144
144
  slug: guide.slug,
145
145
  basePath,
146
146
  platforms: guide.onboarding_guide_platforms
147
147
  });
148
- return /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkRFUOIQSGcjs.OnboardingGuideCard, { guide, href: cta.href, targetPlatform: cta.targetPlatform, size: "catalog" });
148
+ return /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkIITZ6JSCcjs.OnboardingGuideCard, { guide, href: cta.href, targetPlatform: cta.targetPlatform, size: "catalog" });
149
149
  };
150
150
  const renderCardFn = _nullishCoalesce(renderCard, () => ( defaultRenderCard));
151
151
  const preControls = /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: "space-y-4", children: [
152
152
  /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
153
- _chunk5XDCCQ4Acjs.DocSearchBar,
153
+ _chunkXJYAUIOLcjs.DocSearchBar,
154
154
  {
155
155
  placeholder: "Search onboarding guides, releases, case studies\u2026",
156
156
  query: docSearch.query,
@@ -162,7 +162,7 @@ function OnboardingGuidesCatalogView({
162
162
  }
163
163
  ),
164
164
  sections.length > 0 && /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
165
- _chunkDYDDAA6Ocjs.FilterPillRow,
165
+ _chunkDWSBTGKTcjs.FilterPillRow,
166
166
  {
167
167
  label: "Section",
168
168
  selectedValue: activeSection,
@@ -172,7 +172,7 @@ function OnboardingGuidesCatalogView({
172
172
  )
173
173
  ] });
174
174
  if (selfFetch && guidesRes.error) {
175
- return /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkDYDDAA6Ocjs.LoadError, { message: "Failed to load onboarding guides.", onRetry: guidesRes.reload });
175
+ return /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkDWSBTGKTcjs.LoadError, { message: "Failed to load onboarding guides.", onRetry: guidesRes.reload });
176
176
  }
177
177
  if (selfFetch && guidesRes.data == null && isLoading) {
178
178
  return /* @__PURE__ */ _jsxruntime.jsx.call(void 0, OnboardingGuidesCatalogSkeleton, {});
@@ -204,7 +204,7 @@ function OnboardingGuideDetailView({
204
204
  slug,
205
205
  guideEndpoint,
206
206
  related = [],
207
- MarkdownRenderer = _chunkDYDDAA6Ocjs.RichMarkdownRenderer,
207
+ MarkdownRenderer = _chunkDWSBTGKTcjs.RichMarkdownRenderer,
208
208
  renderRelatedCard,
209
209
  backHref,
210
210
  backLabel = "Back to Getting Started",
@@ -214,23 +214,23 @@ function OnboardingGuideDetailView({
214
214
  }) {
215
215
  const resolvedBackHref = _nullishCoalesce(backHref, () => ( basePath));
216
216
  const runtime = _chunkUJ7AXHRZcjs.useChatRuntime.call(void 0, );
217
- const captions = _chunkRDP5UZXQcjs.useCaptions.call(void 0, );
217
+ const captions = _chunkP7Y626YJcjs.useCaptions.call(void 0, );
218
218
  const router = _chunk7DNL734Scjs.useRouter.call(void 0, );
219
- const renderShell = (node) => shell ? /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkDYDDAA6Ocjs.PageShell, { children: node }) : /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: "page-shell-content", children: node });
219
+ const renderShell = (node) => shell ? /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkDWSBTGKTcjs.PageShell, { children: node }) : /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: "page-shell-content", children: node });
220
220
  const url = initialData ? null : slug && guideEndpoint ? guideEndpoint(slug) : null;
221
- const { data: guide, isLoading, error, reload } = _chunkRFUOIQSGcjs.useSelfFetch.call(void 0, url, { initialData });
222
- const { ref: videoWarmupRef } = _chunkRFUOIQSGcjs.useVideoWarmup.call(void 0, {
221
+ const { data: guide, isLoading, error, reload } = _chunkIITZ6JSCcjs.useSelfFetch.call(void 0, url, { initialData });
222
+ const { ref: videoWarmupRef } = _chunkIITZ6JSCcjs.useVideoWarmup.call(void 0, {
223
223
  videoUrl: _optionalChain([guide, 'optionalAccess', _8 => _8.main_video_url]),
224
224
  supabaseStorageOrigin: _optionalChain([runtime, 'optionalAccess', _9 => _9.endpoints, 'access', _10 => _10.supabaseStorageOrigin])
225
225
  });
226
226
  if (error || !guide && !isLoading) {
227
- return renderShell(/* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkDYDDAA6Ocjs.LoadError, { message: "Guide not found.", onRetry: reload }));
227
+ return renderShell(/* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkDWSBTGKTcjs.LoadError, { message: "Guide not found.", onRetry: reload }));
228
228
  }
229
229
  if (!guide) {
230
230
  return renderShell(
231
231
  // Match the loaded page's top offset (TitleBlock's
232
232
  // `pt-[var(--spacing-system-l)]`) so content doesn't jump on load.
233
- /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: "pt-[var(--spacing-system-l)]", children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkIL3ZWNM2cjs.DetailPageSkeleton, { bare: true, showImageGallery: false }) })
233
+ /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: "pt-[var(--spacing-system-l)]", children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkVU7RU3LLcjs.DetailPageSkeleton, { bare: true, showImageGallery: false }) })
234
234
  );
235
235
  }
236
236
  const { captionsUrl, highlightCaptionsUrl } = captions.forEntity("onboarding_guide", guide);
@@ -238,27 +238,27 @@ function OnboardingGuideDetailView({
238
238
  // worst), so it's the terminal fallback — no trailing `|| undefined` needed.
239
239
  _chunk7GRPR7XAcjs.buildOgPlaceholderUrl.call(void 0, _optionalChain([runtime, 'optionalAccess', _11 => _11.endpoints]), guide.title, { aspect: "wide" });
240
240
  const defaultRenderRelatedCard = (g) => {
241
- const cta = _chunkRDP5UZXQcjs.resolveContentHref.call(void 0, _optionalChain([runtime, 'optionalAccess', _12 => _12.composeContentUrl]), {
241
+ const cta = _chunkP7Y626YJcjs.resolveContentHref.call(void 0, _optionalChain([runtime, 'optionalAccess', _12 => _12.composeContentUrl]), {
242
242
  type: "onboarding_guide",
243
243
  slug: g.slug,
244
244
  basePath,
245
245
  platforms: g.onboarding_guide_platforms
246
246
  });
247
- return /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkRFUOIQSGcjs.OnboardingGuideCard, { guide: g, href: cta.href, targetPlatform: cta.targetPlatform });
247
+ return /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkIITZ6JSCcjs.OnboardingGuideCard, { guide: g, href: cta.href, targetPlatform: cta.targetPlatform });
248
248
  };
249
249
  const renderRelatedCardFn = _nullishCoalesce(renderRelatedCard, () => ( defaultRenderRelatedCard));
250
250
  return renderShell(
251
251
  /* @__PURE__ */ _jsxruntime.jsxs.call(void 0,
252
- _chunkVF2CJXZ2cjs.PageLayout,
252
+ _chunkNFABAOMDcjs.PageLayout,
253
253
  {
254
254
  title: guide.title,
255
255
  titleSize: "h1",
256
256
  titleWrap: true,
257
257
  backButton: { label: backLabel, onClick: () => router.push(resolvedBackHref) },
258
258
  children: [
259
- /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkDYDDAA6Ocjs.EntityTagBadges, { tags: guide.onboarding_guide_tags }),
259
+ /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkDWSBTGKTcjs.EntityTagBadges, { tags: guide.onboarding_guide_tags }),
260
260
  /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
261
- _chunkRFUOIQSGcjs.EntityAuthorCard,
261
+ _chunkIITZ6JSCcjs.EntityAuthorCard,
262
262
  {
263
263
  author: guide.author,
264
264
  authorHref,
@@ -273,7 +273,7 @@ function OnboardingGuideDetailView({
273
273
  }
274
274
  ),
275
275
  (guide.main_video_url || guide.youtube_url) && /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { ref: videoWarmupRef, children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
276
- _chunkRDP5UZXQcjs.EntityVideoSection,
276
+ _chunkP7Y626YJcjs.EntityVideoSection,
277
277
  {
278
278
  mainVideoUrl: guide.main_video_url,
279
279
  youtubeUrl: guide.youtube_url || void 0,
@@ -291,17 +291,17 @@ function OnboardingGuideDetailView({
291
291
  ) }),
292
292
  guide.content && /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: "space-y-4", children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, MarkdownRenderer, { content: guide.content }) }),
293
293
  /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
294
- _chunkRDP5UZXQcjs.VideoBitesStrip,
294
+ _chunkP7Y626YJcjs.VideoBitesStrip,
295
295
  {
296
296
  bites: _nullishCoalesce(guide.video_bites, () => ( [])),
297
297
  filterPublished: true,
298
298
  showTitle: false,
299
- profile: _chunkRFUOIQSGcjs.toStripProfile.call(void 0, guide.author),
299
+ profile: _chunkIITZ6JSCcjs.toStripProfile.call(void 0, guide.author),
300
300
  href: `/onboarding-guides/${guide.slug}`
301
301
  }
302
302
  ),
303
303
  /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
304
- _chunkIL3ZWNM2cjs.ArticleAuthorByline,
304
+ _chunkVU7RU3LLcjs.ArticleAuthorByline,
305
305
  {
306
306
  author: _nullishCoalesce(_optionalChain([guide, 'access', _13 => _13.author, 'optionalAccess', _14 => _14.full_name]), () => ( null)),
307
307
  avatar: _optionalChain([guide, 'access', _15 => _15.author, 'optionalAccess', _16 => _16.avatar_url]),
@@ -429,6 +429,21 @@ function getPlatformColorClass(platformName) {
429
429
  return _chunkULWVKHSIcjs.getPlatformBrandClasses.call(void 0, platformName).accentBg;
430
430
  }
431
431
 
432
+ // src/types/downloads.ts
433
+ var DOWNLOADS_API_PATH = "/api/downloads";
434
+ var DOWNLOADS_CACHE_SECONDS = 300;
435
+ var DOWNLOADS_TITLE = "Download OpenFrame";
436
+ var DOWNLOADS_TAGLINE = "Install it on the computer you manage IT from, and on your phone. One account everywhere.";
437
+ var DOWNLOADS_MOBILE_TITLE = "Get the OpenFrame app";
438
+ var DOWNLOADS_MOBILE_TAGLINE = "Alerts and tickets on your phone, signed in with the account you already have.";
439
+ var APP_DOWNLOAD_KINDS = ["binary", "command"];
440
+ var DESKTOP_OS_LABELS = { mac: "Mac", windows: "Windows", linux: "Linux" };
441
+ var DOWNLOAD_ARCHITECTURE_LABELS = {
442
+ universal: "Apple Silicon and Intel",
443
+ x64: "x64",
444
+ arm64: "ARM"
445
+ };
446
+
432
447
  // src/utils/access-code-client.ts
433
448
  async function validateAccessCode(email, code, endpoints) {
434
449
  try {
@@ -1204,4 +1219,13 @@ function captureFormRescueEvent(event, properties) {
1204
1219
 
1205
1220
 
1206
1221
 
1207
- exports.useDebounce = useDebounce; exports.useHeaderHeight = useHeaderHeight; exports.useMarqueeEngine = useMarqueeEngine; exports.useResetOnPageHidden = useResetOnPageHidden; exports.useSuppressCloneFocus = useSuppressCloneFocus; exports.PREFERS_REDUCED_MOTION_QUERY = PREFERS_REDUCED_MOTION_QUERY; exports.usePrefersReducedMotion = usePrefersReducedMotion; exports.usePrefersReducedMotionState = usePrefersReducedMotionState; exports.useInView = useInView; exports.useAutoplay = useAutoplay; exports.DESKTOP_OSES = DESKTOP_OSES; exports.detectVisitorOs = detectVisitorOs; exports.desktopOsOf = desktopOsOf; exports.detectDesktopOs = detectDesktopOs; exports.usesCommandKey = usesCommandKey; exports.shortcutLabel = shortcutLabel; exports.useVisitorOs = useVisitorOs; exports.platformIcons = platformIcons; exports.transformPlatformConfigsToOptions = transformPlatformConfigsToOptions; exports.getPlatformIcon = getPlatformIcon; exports.getSmallPlatformIcon = getSmallPlatformIcon; exports.getPlatformIconComponent = getPlatformIconComponent; exports.validateAccessCode = validateAccessCode; exports.consumeAccessCode = consumeAccessCode; exports.validateAndConsumeAccessCode = validateAndConsumeAccessCode; exports.toGoogleSheetsEmbedUrl = toGoogleSheetsEmbedUrl; exports.toGoogleSheetsOriginalUrl = toGoogleSheetsOriginalUrl; exports.toFigmaEmbedUrl = toFigmaEmbedUrl; exports.isFigmaSlidesUrl = isFigmaSlidesUrl; exports.toFigmaOriginalUrl = toFigmaOriginalUrl; exports.toClaudeMirrorPath = toClaudeMirrorPath; exports.toClaudeEmbedUrl = toClaudeEmbedUrl; exports.isBlankLine = isBlankLine; exports.createFenceTracker = createFenceTracker; exports.HEADING_EMOJI_RE = HEADING_EMOJI_RE; exports.stripHeadingEmojis = stripHeadingEmojis; exports.slugifyHeadingBase = slugifyHeadingBase; exports.slugifyHeadingText = slugifyHeadingText; exports.scanHeadings = scanHeadings; exports.createHeadingIdDeduper = createHeadingIdDeduper; exports.normalizeAnchorId = normalizeAnchorId; exports.findAnchorElementByNormalizedId = findAnchorElementByNormalizedId; exports.getScrollableAncestor = getScrollableAncestor; exports.declaredScrollMarginTop = declaredScrollMarginTop; exports.scrollElementIntoView = scrollElementIntoView; exports.STICKY_HEADER_OFFSET_PX = STICKY_HEADER_OFFSET_PX; exports.HUB_HEADER_OFFSET_PX = HUB_HEADER_OFFSET_PX; exports.normalizeHashFragment = normalizeHashFragment; exports.getHashTargetElement = getHashTargetElement; exports.LOCATION_HASH_SYNC_EVENT = LOCATION_HASH_SYNC_EVENT; exports.ACTIVE_ANCHOR_ATTRIBUTE = ACTIVE_ANCHOR_ATTRIBUTE; exports.replaceLocationHash = replaceLocationHash; exports.isScrollSyncedHash = isScrollSyncedHash; exports.navigateSamePageHash = navigateSamePageHash; exports.HONEYPOT_FIELD = HONEYPOT_FIELD; exports.ELAPSED_MS_FIELD = ELAPSED_MS_FIELD; exports.DEFAULT_MIN_FILL_MS = DEFAULT_MIN_FILL_MS; exports.HUMANITY_SIGNAL_KEYS = HUMANITY_SIGNAL_KEYS; exports.isHumanitySignalKey = isHumanitySignalKey; exports.extractHumanitySignals = extractHumanitySignals; exports.findHoneypotCopySource = findHoneypotCopySource; exports.evaluateHumanitySignals = evaluateHumanitySignals; exports.splitCsvEnv = splitCsvEnv; exports.defineRescueForm = defineRescueForm; exports.getRescueForm = getRescueForm; exports.listRescueForms = listRescueForms; exports.RESCUE_FORMS = RESCUE_FORMS; exports.FORM_RESCUE_VALUE_FIELDS = FORM_RESCUE_VALUE_FIELDS; exports.isExcludedRescueField = isExcludedRescueField; exports.FORM_RESCUE_MAX_VALUE_CHARS = FORM_RESCUE_MAX_VALUE_CHARS; exports.FORM_RESCUE_DEBOUNCE_MS = FORM_RESCUE_DEBOUNCE_MS; exports.FORM_RESCUE_MAX_FIELDS = FORM_RESCUE_MAX_FIELDS; exports.FORM_RESCUE_ATTEMPT_FIELD = FORM_RESCUE_ATTEMPT_FIELD; exports.FORM_RESCUE_RESUME_FIELD = FORM_RESCUE_RESUME_FIELD; exports.FORM_RESCUE_SUBMIT_KEYS = FORM_RESCUE_SUBMIT_KEYS; exports.FORM_RESCUE_RESUME_PARAM = FORM_RESCUE_RESUME_PARAM; exports.isResumeToken = isResumeToken; exports.FORM_DRAFT_STATUSES = FORM_DRAFT_STATUSES; exports.FORM_RESCUE_SKIP_REASONS = FORM_RESCUE_SKIP_REASONS; exports.isRescueEmail = isRescueEmail; exports.isFormAttemptId = isFormAttemptId; exports.sanitizeRescueValues = sanitizeRescueValues; exports.filledRescueFields = filledRescueFields; exports.rescueCompletionPct = rescueCompletionPct; exports.sanitizeRescueFieldName = sanitizeRescueFieldName; exports.parseFormDraftSaveRequest = parseFormDraftSaveRequest; exports.FORM_RESCUE_EVENTS = FORM_RESCUE_EVENTS; exports.captureFormRescueEvent = captureFormRescueEvent;
1222
+
1223
+
1224
+
1225
+
1226
+
1227
+
1228
+
1229
+
1230
+
1231
+ exports.useDebounce = useDebounce; exports.useHeaderHeight = useHeaderHeight; exports.useMarqueeEngine = useMarqueeEngine; exports.useResetOnPageHidden = useResetOnPageHidden; exports.useSuppressCloneFocus = useSuppressCloneFocus; exports.PREFERS_REDUCED_MOTION_QUERY = PREFERS_REDUCED_MOTION_QUERY; exports.usePrefersReducedMotion = usePrefersReducedMotion; exports.usePrefersReducedMotionState = usePrefersReducedMotionState; exports.useInView = useInView; exports.useAutoplay = useAutoplay; exports.DESKTOP_OSES = DESKTOP_OSES; exports.detectVisitorOs = detectVisitorOs; exports.desktopOsOf = desktopOsOf; exports.detectDesktopOs = detectDesktopOs; exports.usesCommandKey = usesCommandKey; exports.shortcutLabel = shortcutLabel; exports.useVisitorOs = useVisitorOs; exports.platformIcons = platformIcons; exports.transformPlatformConfigsToOptions = transformPlatformConfigsToOptions; exports.getPlatformIcon = getPlatformIcon; exports.getSmallPlatformIcon = getSmallPlatformIcon; exports.getPlatformIconComponent = getPlatformIconComponent; exports.DOWNLOADS_API_PATH = DOWNLOADS_API_PATH; exports.DOWNLOADS_CACHE_SECONDS = DOWNLOADS_CACHE_SECONDS; exports.DOWNLOADS_TITLE = DOWNLOADS_TITLE; exports.DOWNLOADS_TAGLINE = DOWNLOADS_TAGLINE; exports.DOWNLOADS_MOBILE_TITLE = DOWNLOADS_MOBILE_TITLE; exports.DOWNLOADS_MOBILE_TAGLINE = DOWNLOADS_MOBILE_TAGLINE; exports.APP_DOWNLOAD_KINDS = APP_DOWNLOAD_KINDS; exports.DESKTOP_OS_LABELS = DESKTOP_OS_LABELS; exports.DOWNLOAD_ARCHITECTURE_LABELS = DOWNLOAD_ARCHITECTURE_LABELS; exports.validateAccessCode = validateAccessCode; exports.consumeAccessCode = consumeAccessCode; exports.validateAndConsumeAccessCode = validateAndConsumeAccessCode; exports.toGoogleSheetsEmbedUrl = toGoogleSheetsEmbedUrl; exports.toGoogleSheetsOriginalUrl = toGoogleSheetsOriginalUrl; exports.toFigmaEmbedUrl = toFigmaEmbedUrl; exports.isFigmaSlidesUrl = isFigmaSlidesUrl; exports.toFigmaOriginalUrl = toFigmaOriginalUrl; exports.toClaudeMirrorPath = toClaudeMirrorPath; exports.toClaudeEmbedUrl = toClaudeEmbedUrl; exports.isBlankLine = isBlankLine; exports.createFenceTracker = createFenceTracker; exports.HEADING_EMOJI_RE = HEADING_EMOJI_RE; exports.stripHeadingEmojis = stripHeadingEmojis; exports.slugifyHeadingBase = slugifyHeadingBase; exports.slugifyHeadingText = slugifyHeadingText; exports.scanHeadings = scanHeadings; exports.createHeadingIdDeduper = createHeadingIdDeduper; exports.normalizeAnchorId = normalizeAnchorId; exports.findAnchorElementByNormalizedId = findAnchorElementByNormalizedId; exports.getScrollableAncestor = getScrollableAncestor; exports.declaredScrollMarginTop = declaredScrollMarginTop; exports.scrollElementIntoView = scrollElementIntoView; exports.STICKY_HEADER_OFFSET_PX = STICKY_HEADER_OFFSET_PX; exports.HUB_HEADER_OFFSET_PX = HUB_HEADER_OFFSET_PX; exports.normalizeHashFragment = normalizeHashFragment; exports.getHashTargetElement = getHashTargetElement; exports.LOCATION_HASH_SYNC_EVENT = LOCATION_HASH_SYNC_EVENT; exports.ACTIVE_ANCHOR_ATTRIBUTE = ACTIVE_ANCHOR_ATTRIBUTE; exports.replaceLocationHash = replaceLocationHash; exports.isScrollSyncedHash = isScrollSyncedHash; exports.navigateSamePageHash = navigateSamePageHash; exports.HONEYPOT_FIELD = HONEYPOT_FIELD; exports.ELAPSED_MS_FIELD = ELAPSED_MS_FIELD; exports.DEFAULT_MIN_FILL_MS = DEFAULT_MIN_FILL_MS; exports.HUMANITY_SIGNAL_KEYS = HUMANITY_SIGNAL_KEYS; exports.isHumanitySignalKey = isHumanitySignalKey; exports.extractHumanitySignals = extractHumanitySignals; exports.findHoneypotCopySource = findHoneypotCopySource; exports.evaluateHumanitySignals = evaluateHumanitySignals; exports.splitCsvEnv = splitCsvEnv; exports.defineRescueForm = defineRescueForm; exports.getRescueForm = getRescueForm; exports.listRescueForms = listRescueForms; exports.RESCUE_FORMS = RESCUE_FORMS; exports.FORM_RESCUE_VALUE_FIELDS = FORM_RESCUE_VALUE_FIELDS; exports.isExcludedRescueField = isExcludedRescueField; exports.FORM_RESCUE_MAX_VALUE_CHARS = FORM_RESCUE_MAX_VALUE_CHARS; exports.FORM_RESCUE_DEBOUNCE_MS = FORM_RESCUE_DEBOUNCE_MS; exports.FORM_RESCUE_MAX_FIELDS = FORM_RESCUE_MAX_FIELDS; exports.FORM_RESCUE_ATTEMPT_FIELD = FORM_RESCUE_ATTEMPT_FIELD; exports.FORM_RESCUE_RESUME_FIELD = FORM_RESCUE_RESUME_FIELD; exports.FORM_RESCUE_SUBMIT_KEYS = FORM_RESCUE_SUBMIT_KEYS; exports.FORM_RESCUE_RESUME_PARAM = FORM_RESCUE_RESUME_PARAM; exports.isResumeToken = isResumeToken; exports.FORM_DRAFT_STATUSES = FORM_DRAFT_STATUSES; exports.FORM_RESCUE_SKIP_REASONS = FORM_RESCUE_SKIP_REASONS; exports.isRescueEmail = isRescueEmail; exports.isFormAttemptId = isFormAttemptId; exports.sanitizeRescueValues = sanitizeRescueValues; exports.filledRescueFields = filledRescueFields; exports.rescueCompletionPct = rescueCompletionPct; exports.sanitizeRescueFieldName = sanitizeRescueFieldName; exports.parseFormDraftSaveRequest = parseFormDraftSaveRequest; exports.FORM_RESCUE_EVENTS = FORM_RESCUE_EVENTS; exports.captureFormRescueEvent = captureFormRescueEvent;
@@ -1,7 +1,7 @@
1
1
  "use client";
2
2
  import {
3
3
  Pagination
4
- } from "./chunk-WSDT7LYL.js";
4
+ } from "./chunk-3UBWDR65.js";
5
5
  import {
6
6
  usePathname,
7
7
  useRouter,
@@ -12,7 +12,7 @@ import {
12
12
  } from "./chunk-FSQQZFVG.js";
13
13
  import {
14
14
  Button
15
- } from "./chunk-YDPKUAP4.js";
15
+ } from "./chunk-DJ4IFQNQ.js";
16
16
 
17
17
  // src/components/empty-state.tsx
18
18
  import { Search, FileText, Package } from "lucide-react";