@flamingo-stack/openframe-frontend-core 0.0.404 → 0.0.405

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 (147) hide show
  1. package/dist/{chunk-NOWXUQWF.js → chunk-3XCNFTFV.js} +3 -3
  2. package/dist/{chunk-HBO2DMX4.js → chunk-5XZEY34X.js} +3 -3
  3. package/dist/{chunk-M7LIGEAX.cjs → chunk-6OQ7YOX5.cjs} +33 -33
  4. package/dist/{chunk-M7LIGEAX.cjs.map → chunk-6OQ7YOX5.cjs.map} +1 -1
  5. package/dist/{chunk-CRUPO3MR.cjs → chunk-ACJ4CM6H.cjs} +93 -93
  6. package/dist/{chunk-CRUPO3MR.cjs.map → chunk-ACJ4CM6H.cjs.map} +1 -1
  7. package/dist/{chunk-AMPQKNAX.js → chunk-BK7QCB5J.js} +6 -6
  8. package/dist/{chunk-TBXE5S6P.cjs → chunk-BS6O4HLJ.cjs} +40 -40
  9. package/dist/{chunk-TBXE5S6P.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-6MO5HF6P.cjs → chunk-DHIYBC5Z.cjs} +32 -32
  15. package/dist/{chunk-6MO5HF6P.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-G4YLKA7O.cjs → chunk-ELLTTMPE.cjs} +5 -5
  19. package/dist/{chunk-G4YLKA7O.cjs.map → chunk-ELLTTMPE.cjs.map} +1 -1
  20. package/dist/{chunk-3I4IZYHM.js → chunk-F3YLM5PO.js} +3 -3
  21. package/dist/{chunk-G3QYCV63.cjs → chunk-FFYEDIAG.cjs} +499 -441
  22. package/dist/chunk-FFYEDIAG.cjs.map +1 -0
  23. package/dist/{chunk-S4ZHBKGS.cjs → chunk-FOJRR647.cjs} +73 -73
  24. package/dist/{chunk-S4ZHBKGS.cjs.map → chunk-FOJRR647.cjs.map} +1 -1
  25. package/dist/{chunk-GYFUGMNM.js → chunk-GT7AJXKH.js} +2 -2
  26. package/dist/{chunk-TTUQSOBL.js → chunk-ICJRSNBM.js} +61 -3
  27. package/dist/chunk-ICJRSNBM.js.map +1 -0
  28. package/dist/{chunk-QXAHXMPD.cjs → chunk-LREN3G7R.cjs} +12 -12
  29. package/dist/{chunk-QXAHXMPD.cjs.map → chunk-LREN3G7R.cjs.map} +1 -1
  30. package/dist/{chunk-PFQQ5H6G.cjs → chunk-M6BGJVDY.cjs} +19 -19
  31. package/dist/{chunk-PFQQ5H6G.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-YXOWUHGQ.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-5Z5GXXRU.js → chunk-QYTGHN2T.js} +4 -4
  38. package/dist/{chunk-R6SMQ2CO.js → chunk-RC35ITSR.js} +6 -6
  39. package/dist/{chunk-RNKXG55J.js → chunk-RIGB7LP7.js} +4 -4
  40. package/dist/{chunk-A636Y7GU.js → chunk-UIAQXIA6.js} +5 -5
  41. package/dist/{chunk-YORONSXG.js → chunk-UN2BJ7XW.js} +3 -3
  42. package/dist/{chunk-KVB7SHXY.cjs → chunk-V4MOB3AD.cjs} +12 -12
  43. package/dist/{chunk-KVB7SHXY.cjs.map → chunk-V4MOB3AD.cjs.map} +1 -1
  44. package/dist/{chunk-FFWIUNOT.cjs → chunk-VFWEFR3Q.cjs} +40 -40
  45. package/dist/{chunk-FFWIUNOT.cjs.map → chunk-VFWEFR3Q.cjs.map} +1 -1
  46. package/dist/{chunk-OJ4HFM3I.cjs → chunk-WEZIVLCO.cjs} +18 -18
  47. package/dist/{chunk-OJ4HFM3I.cjs.map → chunk-WEZIVLCO.cjs.map} +1 -1
  48. package/dist/{chunk-HGKWTKW7.js → chunk-WJRPMULP.js} +2 -2
  49. package/dist/chunk-WJRPMULP.js.map +1 -0
  50. package/dist/components/announcement-bar.d.ts +27 -1
  51. package/dist/components/announcement-bar.d.ts.map +1 -1
  52. package/dist/components/case-studies/index.cjs +10 -10
  53. package/dist/components/case-studies/index.js +4 -4
  54. package/dist/components/chat/index.cjs +4 -4
  55. package/dist/components/chat/index.js +3 -3
  56. package/dist/components/contact/index.cjs +5 -5
  57. package/dist/components/contact/index.js +4 -4
  58. package/dist/components/docs/index.cjs +7 -7
  59. package/dist/components/docs/index.js +6 -6
  60. package/dist/components/embeds/index.cjs +5 -5
  61. package/dist/components/embeds/index.js +4 -4
  62. package/dist/components/faq/index.cjs +6 -6
  63. package/dist/components/faq/index.js +5 -5
  64. package/dist/components/features/index.cjs +4 -4
  65. package/dist/components/features/index.js +3 -3
  66. package/dist/components/help-center-pages/index.cjs +23 -23
  67. package/dist/components/help-center-pages/index.js +14 -14
  68. package/dist/components/index.cjs +274 -299
  69. package/dist/components/index.cjs.map +1 -1
  70. package/dist/components/index.js +110 -135
  71. package/dist/components/index.js.map +1 -1
  72. package/dist/components/navigation/index.cjs +4 -4
  73. package/dist/components/navigation/index.js +3 -3
  74. package/dist/components/onboarding-guides/index.cjs +8 -8
  75. package/dist/components/onboarding-guides/index.js +7 -7
  76. package/dist/components/related-content/index.cjs +6 -6
  77. package/dist/components/related-content/index.js +5 -5
  78. package/dist/components/tickets/index.cjs +7 -7
  79. package/dist/components/tickets/index.js +6 -6
  80. package/dist/components/ui/file-manager/index.cjs +50 -50
  81. package/dist/components/ui/file-manager/index.js +1 -1
  82. package/dist/components/ui/index.cjs +4 -4
  83. package/dist/components/ui/index.js +3 -3
  84. package/dist/hooks/api-hooks.d.ts +0 -4
  85. package/dist/hooks/api-hooks.d.ts.map +1 -1
  86. package/dist/hooks/index.cjs +2 -2
  87. package/dist/hooks/index.js +1 -1
  88. package/dist/hooks/use-self-fetch.d.ts +7 -0
  89. package/dist/hooks/use-self-fetch.d.ts.map +1 -1
  90. package/dist/index.cjs +20 -4
  91. package/dist/index.cjs.map +1 -1
  92. package/dist/index.js +19 -3
  93. package/dist/types/announcement.cjs +5 -0
  94. package/dist/types/announcement.cjs.map +1 -1
  95. package/dist/types/announcement.d.ts +37 -7
  96. package/dist/types/announcement.d.ts.map +1 -1
  97. package/dist/types/announcement.js +5 -1
  98. package/dist/types/announcement.js.map +1 -1
  99. package/dist/types/index.cjs +5 -0
  100. package/dist/types/index.cjs.map +1 -1
  101. package/dist/types/index.js +5 -1
  102. package/dist/types/index.js.map +1 -1
  103. package/dist/utils/announcement-storage.d.ts +39 -7
  104. package/dist/utils/announcement-storage.d.ts.map +1 -1
  105. package/dist/utils/app-config.d.ts.map +1 -1
  106. package/dist/utils/color-analysis.d.ts +13 -0
  107. package/dist/utils/color-analysis.d.ts.map +1 -1
  108. package/dist/utils/index.cjs +58 -1
  109. package/dist/utils/index.cjs.map +1 -1
  110. package/dist/utils/index.d.ts +1 -0
  111. package/dist/utils/index.d.ts.map +1 -1
  112. package/dist/utils/index.js +52 -2
  113. package/dist/utils/index.js.map +1 -1
  114. package/package.json +1 -1
  115. package/src/components/.announcement-bar.md +32 -30
  116. package/src/components/announcement-bar.tsx +227 -182
  117. package/src/components/ui/button/button.tsx +1 -1
  118. package/src/hooks/.api-hooks.md +1 -4
  119. package/src/hooks/api-hooks.ts +0 -7
  120. package/src/hooks/use-self-fetch.ts +29 -1
  121. package/src/stories/AnnouncementBar.stories.tsx +188 -152
  122. package/src/types/.announcement.md +2 -2
  123. package/src/types/announcement.ts +37 -7
  124. package/src/utils/.announcement-storage.md +19 -24
  125. package/src/utils/announcement-storage.ts +74 -28
  126. package/src/utils/app-config.ts +10 -1
  127. package/src/utils/color-analysis.ts +16 -1
  128. package/src/utils/index.ts +3 -0
  129. package/dist/chunk-DH6HTYOV.js.map +0 -1
  130. package/dist/chunk-G3QYCV63.cjs.map +0 -1
  131. package/dist/chunk-GA5AN24T.cjs.map +0 -1
  132. package/dist/chunk-HGKWTKW7.js.map +0 -1
  133. package/dist/chunk-J4XR6YYZ.cjs.map +0 -1
  134. package/dist/chunk-MTBFE3JF.js.map +0 -1
  135. package/dist/chunk-Q3AO2QWK.cjs.map +0 -1
  136. package/dist/chunk-TTUQSOBL.js.map +0 -1
  137. /package/dist/{chunk-NOWXUQWF.js.map → chunk-3XCNFTFV.js.map} +0 -0
  138. /package/dist/{chunk-HBO2DMX4.js.map → chunk-5XZEY34X.js.map} +0 -0
  139. /package/dist/{chunk-AMPQKNAX.js.map → chunk-BK7QCB5J.js.map} +0 -0
  140. /package/dist/{chunk-3I4IZYHM.js.map → chunk-F3YLM5PO.js.map} +0 -0
  141. /package/dist/{chunk-GYFUGMNM.js.map → chunk-GT7AJXKH.js.map} +0 -0
  142. /package/dist/{chunk-YXOWUHGQ.js.map → chunk-Q2KKEE6W.js.map} +0 -0
  143. /package/dist/{chunk-5Z5GXXRU.js.map → chunk-QYTGHN2T.js.map} +0 -0
  144. /package/dist/{chunk-R6SMQ2CO.js.map → chunk-RC35ITSR.js.map} +0 -0
  145. /package/dist/{chunk-RNKXG55J.js.map → chunk-RIGB7LP7.js.map} +0 -0
  146. /package/dist/{chunk-A636Y7GU.js.map → chunk-UIAQXIA6.js.map} +0 -0
  147. /package/dist/{chunk-YORONSXG.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-TTUQSOBL.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-GYFUGMNM.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
@@ -22906,6 +22906,10 @@ var DESIGN_PALETTE = [
22906
22906
  { name: "black", hex: "#161616", rgb: [22, 22, 22] },
22907
22907
  { name: "gray", hex: "#888888", rgb: [136, 136, 136] }
22908
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
+ }
22909
22913
  function getLuminance(rgb) {
22910
22914
  const [r, g, b] = rgb.map((c) => {
22911
22915
  c = c / 255;
@@ -22920,6 +22924,12 @@ function getContrastRatio(color1, color2) {
22920
22924
  const darkest = Math.min(lum1, lum2);
22921
22925
  return (brightest + 0.05) / (darkest + 0.05);
22922
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
+ }
22923
22933
  function extractDominantColor(canvas) {
22924
22934
  const ctx = canvas.getContext("2d");
22925
22935
  if (!ctx) return [128, 128, 128];
@@ -23057,6 +23067,42 @@ async function extractImageEdgeColorAsync(imageUrl) {
23057
23067
  });
23058
23068
  }
23059
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
+
23060
23106
  // src/utils/source-icons.ts
23061
23107
  var SOURCE_ICON_NAMES = {
23062
23108
  // Doc tables
@@ -23441,6 +23487,10 @@ function clickupTaskUrl(externalId) {
23441
23487
  import { Map as MapIcon2, Wrench as Wrench2, Rocket as Rocket2, GraduationCap as GraduationCap3, LifeBuoy } from "lucide-react";
23442
23488
 
23443
23489
  // src/types/announcement.ts
23490
+ var ANNOUNCEMENT_CTA_DEFAULTS = {
23491
+ background: "#1A1A1A",
23492
+ text: "#FAFAFA"
23493
+ };
23444
23494
  var AVAILABLE_SVG_ICONS = [
23445
23495
  // OpenFrame Logo Options
23446
23496
  { name: "openframe-logo", label: "OpenFrame Logo", component: null },
@@ -52983,12 +53033,20 @@ export {
52983
53033
  hasGenericEmailDomain,
52984
53034
  isGenericWebsiteDomain,
52985
53035
  DESIGN_PALETTE,
53036
+ getLuminance,
52986
53037
  getContrastRatio,
53038
+ pickReadableTextColor,
52987
53039
  extractDominantColor,
52988
53040
  getBestContrastColor,
52989
53041
  analyzeImageColor,
52990
53042
  extractImageEdgeColorAsync,
53043
+ announcementDismissCookieName,
53044
+ isDismissedCookieValue,
53045
+ dismissAnnouncement,
53046
+ isAnnouncementDismissed,
53047
+ clearLegacyAnnouncementCache,
52991
53048
  readLeadingDecisionFrame,
53049
+ ANNOUNCEMENT_CTA_DEFAULTS,
52992
53050
  AVAILABLE_SVG_ICONS,
52993
53051
  releaseTypeOptions,
52994
53052
  releaseStatusOptions,
@@ -53301,4 +53359,4 @@ export {
53301
53359
  LogsList,
53302
53360
  assets
53303
53361
  };
53304
- //# sourceMappingURL=chunk-TTUQSOBL.js.map
53362
+ //# sourceMappingURL=chunk-ICJRSNBM.js.map