@flamingo-stack/openframe-frontend-core 0.0.402 → 0.0.404-snapshot.20260711053526

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 (153) hide show
  1. package/dist/{chunk-NHFQ2LCC.js → chunk-3XCNFTFV.js} +3 -3
  2. package/dist/{chunk-F63VMX4S.js → chunk-5XZEY34X.js} +3 -3
  3. package/dist/{chunk-EDOLCPBS.cjs → chunk-6OQ7YOX5.cjs} +33 -33
  4. package/dist/{chunk-EDOLCPBS.cjs.map → chunk-6OQ7YOX5.cjs.map} +1 -1
  5. package/dist/{chunk-A4RDD2PS.cjs → chunk-ACJ4CM6H.cjs} +93 -93
  6. package/dist/{chunk-A4RDD2PS.cjs.map → chunk-ACJ4CM6H.cjs.map} +1 -1
  7. package/dist/{chunk-WM72XFOD.js → chunk-BK7QCB5J.js} +6 -6
  8. package/dist/{chunk-ONAWSVFK.cjs → chunk-BS6O4HLJ.cjs} +40 -40
  9. package/dist/{chunk-ONAWSVFK.cjs.map → chunk-BS6O4HLJ.cjs.map} +1 -1
  10. package/dist/{chunk-GA5AN24T.cjs → chunk-BX3R44MR.cjs} +2 -2
  11. package/dist/chunk-BX3R44MR.cjs.map +1 -0
  12. package/dist/{chunk-J4XR6YYZ.cjs → chunk-CCIBZ7TO.cjs} +10 -6
  13. package/dist/chunk-CCIBZ7TO.cjs.map +1 -0
  14. package/dist/{chunk-DYV47UA6.cjs → chunk-DHIYBC5Z.cjs} +32 -32
  15. package/dist/{chunk-DYV47UA6.cjs.map → chunk-DHIYBC5Z.cjs.map} +1 -1
  16. package/dist/{chunk-DH6HTYOV.js → chunk-E6YHDT3D.js} +6 -2
  17. package/dist/chunk-E6YHDT3D.js.map +1 -0
  18. package/dist/{chunk-CWLKGOU4.cjs → chunk-ELLTTMPE.cjs} +5 -5
  19. package/dist/{chunk-CWLKGOU4.cjs.map → chunk-ELLTTMPE.cjs.map} +1 -1
  20. package/dist/{chunk-6VAJDGZK.js → chunk-F3YLM5PO.js} +3 -3
  21. package/dist/{chunk-MEU2JEXL.cjs → chunk-FFYEDIAG.cjs} +511 -447
  22. package/dist/chunk-FFYEDIAG.cjs.map +1 -0
  23. package/dist/{chunk-D3HPV6YE.cjs → chunk-FOJRR647.cjs} +73 -73
  24. package/dist/{chunk-D3HPV6YE.cjs.map → chunk-FOJRR647.cjs.map} +1 -1
  25. package/dist/{chunk-6FIVVZO2.js → chunk-GT7AJXKH.js} +2 -2
  26. package/dist/{chunk-RZIFF62P.js → chunk-ICJRSNBM.js} +73 -9
  27. package/dist/chunk-ICJRSNBM.js.map +1 -0
  28. package/dist/{chunk-32K5CRL2.cjs → chunk-LREN3G7R.cjs} +12 -12
  29. package/dist/{chunk-32K5CRL2.cjs.map → chunk-LREN3G7R.cjs.map} +1 -1
  30. package/dist/{chunk-HU5HWEQ5.cjs → chunk-M6BGJVDY.cjs} +19 -19
  31. package/dist/{chunk-HU5HWEQ5.cjs.map → chunk-M6BGJVDY.cjs.map} +1 -1
  32. package/dist/{chunk-MTBFE3JF.js → chunk-PNJ5LMVK.js} +16 -2
  33. package/dist/chunk-PNJ5LMVK.js.map +1 -0
  34. package/dist/{chunk-VMJTNXOH.js → chunk-Q2KKEE6W.js} +6 -6
  35. package/dist/{chunk-Q3AO2QWK.cjs → chunk-QAFRLO5N.cjs} +18 -4
  36. package/dist/chunk-QAFRLO5N.cjs.map +1 -0
  37. package/dist/{chunk-O5QU5KAC.js → chunk-QYTGHN2T.js} +24 -21
  38. package/dist/chunk-QYTGHN2T.js.map +1 -0
  39. package/dist/{chunk-COGPHD7D.js → chunk-RC35ITSR.js} +6 -6
  40. package/dist/{chunk-3TCCW7B4.js → chunk-RIGB7LP7.js} +4 -4
  41. package/dist/{chunk-YPNI74ZP.js → chunk-UIAQXIA6.js} +5 -5
  42. package/dist/{chunk-LAFLYVZ4.js → chunk-UN2BJ7XW.js} +3 -3
  43. package/dist/{chunk-YIJOSOSA.cjs → chunk-V4MOB3AD.cjs} +12 -12
  44. package/dist/{chunk-YIJOSOSA.cjs.map → chunk-V4MOB3AD.cjs.map} +1 -1
  45. package/dist/{chunk-JXSWDXUA.cjs → chunk-VFWEFR3Q.cjs} +40 -40
  46. package/dist/{chunk-JXSWDXUA.cjs.map → chunk-VFWEFR3Q.cjs.map} +1 -1
  47. package/dist/{chunk-OPCGDJU7.cjs → chunk-WEZIVLCO.cjs} +37 -34
  48. package/dist/chunk-WEZIVLCO.cjs.map +1 -0
  49. package/dist/{chunk-HGKWTKW7.js → chunk-WJRPMULP.js} +2 -2
  50. package/dist/chunk-WJRPMULP.js.map +1 -0
  51. package/dist/components/announcement-bar.d.ts +27 -1
  52. package/dist/components/announcement-bar.d.ts.map +1 -1
  53. package/dist/components/case-studies/index.cjs +10 -10
  54. package/dist/components/case-studies/index.js +4 -4
  55. package/dist/components/chat/index.cjs +4 -4
  56. package/dist/components/chat/index.js +3 -3
  57. package/dist/components/contact/index.cjs +5 -5
  58. package/dist/components/contact/index.js +4 -4
  59. package/dist/components/docs/index.cjs +7 -7
  60. package/dist/components/docs/index.js +6 -6
  61. package/dist/components/embeds/index.cjs +5 -5
  62. package/dist/components/embeds/index.js +4 -4
  63. package/dist/components/faq/index.cjs +6 -6
  64. package/dist/components/faq/index.js +5 -5
  65. package/dist/components/faq-accordion.d.ts.map +1 -1
  66. package/dist/components/features/index.cjs +4 -4
  67. package/dist/components/features/index.js +3 -3
  68. package/dist/components/help-center-pages/index.cjs +23 -23
  69. package/dist/components/help-center-pages/index.js +14 -14
  70. package/dist/components/index.cjs +274 -299
  71. package/dist/components/index.cjs.map +1 -1
  72. package/dist/components/index.js +110 -135
  73. package/dist/components/index.js.map +1 -1
  74. package/dist/components/navigation/index.cjs +4 -4
  75. package/dist/components/navigation/index.js +3 -3
  76. package/dist/components/onboarding-guides/index.cjs +8 -8
  77. package/dist/components/onboarding-guides/index.js +7 -7
  78. package/dist/components/related-content/index.cjs +6 -6
  79. package/dist/components/related-content/index.js +5 -5
  80. package/dist/components/tickets/index.cjs +7 -7
  81. package/dist/components/tickets/index.js +6 -6
  82. package/dist/components/ui/file-manager/index.cjs +50 -50
  83. package/dist/components/ui/file-manager/index.js +1 -1
  84. package/dist/components/ui/index.cjs +4 -4
  85. package/dist/components/ui/index.js +3 -3
  86. package/dist/hooks/api-hooks.d.ts +0 -4
  87. package/dist/hooks/api-hooks.d.ts.map +1 -1
  88. package/dist/hooks/index.cjs +2 -2
  89. package/dist/hooks/index.js +1 -1
  90. package/dist/hooks/use-self-fetch.d.ts +7 -0
  91. package/dist/hooks/use-self-fetch.d.ts.map +1 -1
  92. package/dist/index.cjs +20 -4
  93. package/dist/index.cjs.map +1 -1
  94. package/dist/index.js +19 -3
  95. package/dist/types/announcement.cjs +5 -0
  96. package/dist/types/announcement.cjs.map +1 -1
  97. package/dist/types/announcement.d.ts +37 -7
  98. package/dist/types/announcement.d.ts.map +1 -1
  99. package/dist/types/announcement.js +5 -1
  100. package/dist/types/announcement.js.map +1 -1
  101. package/dist/types/index.cjs +5 -0
  102. package/dist/types/index.cjs.map +1 -1
  103. package/dist/types/index.js +5 -1
  104. package/dist/types/index.js.map +1 -1
  105. package/dist/utils/announcement-storage.d.ts +39 -7
  106. package/dist/utils/announcement-storage.d.ts.map +1 -1
  107. package/dist/utils/app-config.d.ts.map +1 -1
  108. package/dist/utils/color-analysis.d.ts +13 -0
  109. package/dist/utils/color-analysis.d.ts.map +1 -1
  110. package/dist/utils/index.cjs +58 -1
  111. package/dist/utils/index.cjs.map +1 -1
  112. package/dist/utils/index.d.ts +1 -0
  113. package/dist/utils/index.d.ts.map +1 -1
  114. package/dist/utils/index.js +52 -2
  115. package/dist/utils/index.js.map +1 -1
  116. package/package.json +1 -1
  117. package/src/components/.announcement-bar.md +32 -30
  118. package/src/components/announcement-bar.tsx +227 -182
  119. package/src/components/faq/faq-section.tsx +3 -3
  120. package/src/components/faq-accordion.tsx +17 -20
  121. package/src/components/features/video.tsx +26 -6
  122. package/src/components/ui/button/button.tsx +1 -1
  123. package/src/hooks/.api-hooks.md +1 -4
  124. package/src/hooks/api-hooks.ts +0 -7
  125. package/src/hooks/use-self-fetch.ts +29 -1
  126. package/src/stories/AnnouncementBar.stories.tsx +188 -152
  127. package/src/types/.announcement.md +2 -2
  128. package/src/types/announcement.ts +37 -7
  129. package/src/utils/.announcement-storage.md +19 -24
  130. package/src/utils/announcement-storage.ts +74 -28
  131. package/src/utils/app-config.ts +10 -1
  132. package/src/utils/color-analysis.ts +16 -1
  133. package/src/utils/index.ts +3 -0
  134. package/dist/chunk-DH6HTYOV.js.map +0 -1
  135. package/dist/chunk-GA5AN24T.cjs.map +0 -1
  136. package/dist/chunk-HGKWTKW7.js.map +0 -1
  137. package/dist/chunk-J4XR6YYZ.cjs.map +0 -1
  138. package/dist/chunk-MEU2JEXL.cjs.map +0 -1
  139. package/dist/chunk-MTBFE3JF.js.map +0 -1
  140. package/dist/chunk-O5QU5KAC.js.map +0 -1
  141. package/dist/chunk-OPCGDJU7.cjs.map +0 -1
  142. package/dist/chunk-Q3AO2QWK.cjs.map +0 -1
  143. package/dist/chunk-RZIFF62P.js.map +0 -1
  144. /package/dist/{chunk-NHFQ2LCC.js.map → chunk-3XCNFTFV.js.map} +0 -0
  145. /package/dist/{chunk-F63VMX4S.js.map → chunk-5XZEY34X.js.map} +0 -0
  146. /package/dist/{chunk-WM72XFOD.js.map → chunk-BK7QCB5J.js.map} +0 -0
  147. /package/dist/{chunk-6VAJDGZK.js.map → chunk-F3YLM5PO.js.map} +0 -0
  148. /package/dist/{chunk-6FIVVZO2.js.map → chunk-GT7AJXKH.js.map} +0 -0
  149. /package/dist/{chunk-VMJTNXOH.js.map → chunk-Q2KKEE6W.js.map} +0 -0
  150. /package/dist/{chunk-COGPHD7D.js.map → chunk-RC35ITSR.js.map} +0 -0
  151. /package/dist/{chunk-3TCCW7B4.js.map → chunk-RIGB7LP7.js.map} +0 -0
  152. /package/dist/{chunk-YPNI74ZP.js.map → chunk-UIAQXIA6.js.map} +0 -0
  153. /package/dist/{chunk-LAFLYVZ4.js.map → chunk-UN2BJ7XW.js.map} +0 -0
@@ -3,7 +3,7 @@ import {
3
3
  PageLayout,
4
4
  formatBioText,
5
5
  getProxiedImageUrl
6
- } from "./chunk-RZIFF62P.js";
6
+ } from "./chunk-ICJRSNBM.js";
7
7
  import {
8
8
  useChatRuntime
9
9
  } from "./chunk-NA7XJRWB.js";
@@ -146,4 +146,4 @@ export {
146
146
  DetailPageSkeleton,
147
147
  ArticleAuthorByline
148
148
  };
149
- //# sourceMappingURL=chunk-6FIVVZO2.js.map
149
+ //# sourceMappingURL=chunk-GT7AJXKH.js.map
@@ -26,7 +26,7 @@ import {
26
26
  useOgPlaceholderUrl,
27
27
  useOnboardingState,
28
28
  useToast
29
- } from "./chunk-DH6HTYOV.js";
29
+ } from "./chunk-E6YHDT3D.js";
30
30
  import {
31
31
  AlertCircleIcon,
32
32
  AnthropicLogoGreyIcon,
@@ -180,7 +180,7 @@ import {
180
180
  init_button2,
181
181
  init_split_button,
182
182
  usePortalContainer
183
- } from "./chunk-HGKWTKW7.js";
183
+ } from "./chunk-WJRPMULP.js";
184
184
  import {
185
185
  CheckboxCheckmarkIcon,
186
186
  SearchIcon
@@ -10118,6 +10118,7 @@ function YouTubeFacade({
10118
10118
  return /* @__PURE__ */ jsx72(YouTubeFacadeInner, { videoId, title, priority, className, minimalControls });
10119
10119
  }
10120
10120
  var YT_NOCOOKIE_ORIGIN = "https://www.youtube-nocookie.com";
10121
+ var YT_POSTER_TIERS = ["maxresdefault", "mqdefault"];
10121
10122
  var YT_STATE_ENDED = 0;
10122
10123
  var YT_STATE_PLAYING = 1;
10123
10124
  var YT_PLAYING_BLUR_DELAY_MS = 1e3;
@@ -10130,7 +10131,7 @@ function YouTubeFacadeInner({
10130
10131
  }) {
10131
10132
  const [activated, setActivated] = useState22(false);
10132
10133
  const iframeRef = useRef12(null);
10133
- const { embedUrl, posterJpg, posterWebp } = useMemo12(() => {
10134
+ const embedUrl = useMemo12(() => {
10134
10135
  const params = new URLSearchParams({
10135
10136
  autoplay: "1",
10136
10137
  rel: "0",
@@ -10148,12 +10149,16 @@ function YouTubeFacadeInner({
10148
10149
  params.set("cc_load_policy", "0");
10149
10150
  params.set("disablekb", "1");
10150
10151
  }
10151
- return {
10152
- embedUrl: `${YT_NOCOOKIE_ORIGIN}/embed/${videoId}?${params.toString()}`,
10153
- posterJpg: `https://i.ytimg.com/vi/${videoId}/mqdefault.jpg`,
10154
- posterWebp: `https://i.ytimg.com/vi_webp/${videoId}/mqdefault.webp`
10155
- };
10152
+ return `${YT_NOCOOKIE_ORIGIN}/embed/${videoId}?${params.toString()}`;
10156
10153
  }, [videoId, minimalControls]);
10154
+ const [posterTier, setPosterTier] = useState22(0);
10155
+ useEffect16(() => {
10156
+ setPosterTier(0);
10157
+ }, [videoId]);
10158
+ const posterQuality = YT_POSTER_TIERS[posterTier];
10159
+ const posterJpg = `https://i.ytimg.com/vi/${videoId}/${posterQuality}.jpg`;
10160
+ const posterWebp = `https://i.ytimg.com/vi_webp/${videoId}/${posterQuality}.webp`;
10161
+ const handlePosterError = () => setPosterTier((tier) => Math.min(tier + 1, YT_POSTER_TIERS.length - 1));
10157
10162
  useEffect16(() => {
10158
10163
  if (!activated) return;
10159
10164
  const iframe = iframeRef.current;
@@ -10229,6 +10234,7 @@ function YouTubeFacadeInner({
10229
10234
  src: posterJpg,
10230
10235
  alt: title,
10231
10236
  loading: "lazy",
10237
+ onError: handlePosterError,
10232
10238
  ...fetchPriorityProp(priority),
10233
10239
  decoding: priority ? "sync" : "async",
10234
10240
  className: "absolute inset-0 w-full h-full object-cover"
@@ -22900,6 +22906,10 @@ var DESIGN_PALETTE = [
22900
22906
  { name: "black", hex: "#161616", rgb: [22, 22, 22] },
22901
22907
  { name: "gray", hex: "#888888", rgb: [136, 136, 136] }
22902
22908
  ];
22909
+ function hexToRgb2(hex) {
22910
+ const result = /^#?([a-f\d]{2})([a-f\d]{2})([a-f\d]{2})$/i.exec(hex);
22911
+ return result ? [parseInt(result[1], 16), parseInt(result[2], 16), parseInt(result[3], 16)] : [0, 0, 0];
22912
+ }
22903
22913
  function getLuminance(rgb) {
22904
22914
  const [r, g, b] = rgb.map((c) => {
22905
22915
  c = c / 255;
@@ -22914,6 +22924,12 @@ function getContrastRatio(color1, color2) {
22914
22924
  const darkest = Math.min(lum1, lum2);
22915
22925
  return (brightest + 0.05) / (darkest + 0.05);
22916
22926
  }
22927
+ function pickReadableTextColor(bgHex) {
22928
+ const bg = hexToRgb2(bgHex);
22929
+ const darkContrast = getContrastRatio(bg, [26, 26, 26]);
22930
+ const lightContrast = getContrastRatio(bg, [250, 250, 250]);
22931
+ return darkContrast >= lightContrast ? "dark" : "light";
22932
+ }
22917
22933
  function extractDominantColor(canvas) {
22918
22934
  const ctx = canvas.getContext("2d");
22919
22935
  if (!ctx) return [128, 128, 128];
@@ -23051,6 +23067,42 @@ async function extractImageEdgeColorAsync(imageUrl) {
23051
23067
  });
23052
23068
  }
23053
23069
 
23070
+ // src/utils/announcement-storage.ts
23071
+ function announcementDismissCookieName(platform) {
23072
+ return `${platform}-announcement-dismissed`;
23073
+ }
23074
+ function isDismissedCookieValue(cookieValue, id) {
23075
+ return !!id && cookieValue === id;
23076
+ }
23077
+ function readCookie(name) {
23078
+ if (typeof document === "undefined") return void 0;
23079
+ const match2 = document.cookie.split("; ").find((row) => row.startsWith(`${name}=`));
23080
+ return match2 ? decodeURIComponent(match2.slice(name.length + 1)) : void 0;
23081
+ }
23082
+ var legacyDismissKey = (platform, id) => `${platform}-announcement-${id}-dismissed`;
23083
+ function dismissAnnouncement(platform, id) {
23084
+ if (typeof document === "undefined") return;
23085
+ const name = announcementDismissCookieName(platform);
23086
+ document.cookie = `${name}=${encodeURIComponent(id)}; path=/; max-age=31536000; SameSite=Lax`;
23087
+ }
23088
+ function isAnnouncementDismissed(platform, id) {
23089
+ if (typeof document === "undefined") return false;
23090
+ const cookieValue = readCookie(announcementDismissCookieName(platform));
23091
+ if (cookieValue !== void 0) return isDismissedCookieValue(cookieValue, id);
23092
+ try {
23093
+ return localStorage.getItem(legacyDismissKey(platform, id)) !== null;
23094
+ } catch {
23095
+ return false;
23096
+ }
23097
+ }
23098
+ function clearLegacyAnnouncementCache(platform) {
23099
+ if (typeof window === "undefined") return;
23100
+ try {
23101
+ localStorage.removeItem(`${platform}-announcement-cache`);
23102
+ } catch {
23103
+ }
23104
+ }
23105
+
23054
23106
  // src/utils/source-icons.ts
23055
23107
  var SOURCE_ICON_NAMES = {
23056
23108
  // Doc tables
@@ -23435,6 +23487,10 @@ function clickupTaskUrl(externalId) {
23435
23487
  import { Map as MapIcon2, Wrench as Wrench2, Rocket as Rocket2, GraduationCap as GraduationCap3, LifeBuoy } from "lucide-react";
23436
23488
 
23437
23489
  // src/types/announcement.ts
23490
+ var ANNOUNCEMENT_CTA_DEFAULTS = {
23491
+ background: "#1A1A1A",
23492
+ text: "#FAFAFA"
23493
+ };
23438
23494
  var AVAILABLE_SVG_ICONS = [
23439
23495
  // OpenFrame Logo Options
23440
23496
  { name: "openframe-logo", label: "OpenFrame Logo", component: null },
@@ -52977,12 +53033,20 @@ export {
52977
53033
  hasGenericEmailDomain,
52978
53034
  isGenericWebsiteDomain,
52979
53035
  DESIGN_PALETTE,
53036
+ getLuminance,
52980
53037
  getContrastRatio,
53038
+ pickReadableTextColor,
52981
53039
  extractDominantColor,
52982
53040
  getBestContrastColor,
52983
53041
  analyzeImageColor,
52984
53042
  extractImageEdgeColorAsync,
53043
+ announcementDismissCookieName,
53044
+ isDismissedCookieValue,
53045
+ dismissAnnouncement,
53046
+ isAnnouncementDismissed,
53047
+ clearLegacyAnnouncementCache,
52985
53048
  readLeadingDecisionFrame,
53049
+ ANNOUNCEMENT_CTA_DEFAULTS,
52986
53050
  AVAILABLE_SVG_ICONS,
52987
53051
  releaseTypeOptions,
52988
53052
  releaseStatusOptions,
@@ -53295,4 +53359,4 @@ export {
53295
53359
  LogsList,
53296
53360
  assets
53297
53361
  };
53298
- //# sourceMappingURL=chunk-RZIFF62P.js.map
53362
+ //# sourceMappingURL=chunk-ICJRSNBM.js.map