@flamingo-stack/openframe-frontend-core 0.0.310 → 0.0.311-snapshot.20260623165315

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 (96) hide show
  1. package/dist/{chunk-AIHM4TT7.cjs → chunk-52MEECZB.cjs} +5 -5
  2. package/dist/{chunk-AIHM4TT7.cjs.map → chunk-52MEECZB.cjs.map} +1 -1
  3. package/dist/{chunk-2YYAKVL7.cjs → chunk-64JGK22Q.cjs} +50 -30
  4. package/dist/chunk-64JGK22Q.cjs.map +1 -0
  5. package/dist/{chunk-4RHOLPFU.cjs → chunk-6GKJXZZM.cjs} +14 -14
  6. package/dist/{chunk-4RHOLPFU.cjs.map → chunk-6GKJXZZM.cjs.map} +1 -1
  7. package/dist/{chunk-PLFQJ5E7.cjs → chunk-7G7QJNLY.cjs} +37 -37
  8. package/dist/{chunk-PLFQJ5E7.cjs.map → chunk-7G7QJNLY.cjs.map} +1 -1
  9. package/dist/{chunk-CKFHYXSJ.cjs → chunk-7KKIACLD.cjs} +7 -7
  10. package/dist/{chunk-CKFHYXSJ.cjs.map → chunk-7KKIACLD.cjs.map} +1 -1
  11. package/dist/{chunk-6RMANFX7.cjs → chunk-AHVG5CFA.cjs} +30 -30
  12. package/dist/{chunk-6RMANFX7.cjs.map → chunk-AHVG5CFA.cjs.map} +1 -1
  13. package/dist/{chunk-5OFBD6EQ.js → chunk-BX4MDVBL.js} +40 -20
  14. package/dist/chunk-BX4MDVBL.js.map +1 -0
  15. package/dist/{chunk-6SBJVDH3.js → chunk-CGR2DPPQ.js} +4 -4
  16. package/dist/{chunk-N3YPIZBH.js → chunk-DJBMLHN7.js} +2 -2
  17. package/dist/{chunk-WSEK6W4B.js → chunk-F45P357Q.js} +2 -2
  18. package/dist/{chunk-46KRPHHL.js → chunk-GRBFBBSX.js} +2 -2
  19. package/dist/{chunk-QPTJOLAP.js → chunk-GZPOUZAY.js} +2 -2
  20. package/dist/{chunk-E7FIV5LH.js → chunk-IHCOTCIG.js} +2 -2
  21. package/dist/{chunk-ER4CMF47.js → chunk-MI6TET5N.js} +56 -34
  22. package/dist/chunk-MI6TET5N.js.map +1 -0
  23. package/dist/{chunk-6TRTIHGW.cjs → chunk-NQDC366J.cjs} +110 -88
  24. package/dist/chunk-NQDC366J.cjs.map +1 -0
  25. package/dist/{chunk-QWMYOUGP.js → chunk-PH2RLC4E.js} +2 -2
  26. package/dist/{chunk-4RI7S6ZD.cjs → chunk-SPFV5TFS.cjs} +9 -9
  27. package/dist/{chunk-4RI7S6ZD.cjs.map → chunk-SPFV5TFS.cjs.map} +1 -1
  28. package/dist/{chunk-J3YKVLQ5.cjs → chunk-UFJVTOGS.cjs} +26 -26
  29. package/dist/{chunk-J3YKVLQ5.cjs.map → chunk-UFJVTOGS.cjs.map} +1 -1
  30. package/dist/components/case-studies/index.cjs +8 -8
  31. package/dist/components/case-studies/index.js +2 -2
  32. package/dist/components/chart.d.ts +1 -1
  33. package/dist/components/chat/entity-cards/program-card.d.ts.map +1 -1
  34. package/dist/components/chat/index.cjs +2 -2
  35. package/dist/components/chat/index.js +1 -1
  36. package/dist/components/chat/types/entities/investor-update.d.ts.map +1 -1
  37. package/dist/components/chat/utils/execute-navigation.d.ts.map +1 -1
  38. package/dist/components/contact/index.cjs +3 -3
  39. package/dist/components/contact/index.js +2 -2
  40. package/dist/components/docs/index.cjs +5 -5
  41. package/dist/components/docs/index.js +4 -4
  42. package/dist/components/embeds/index.cjs +3 -3
  43. package/dist/components/embeds/index.js +2 -2
  44. package/dist/components/faq/faq-document-page.d.ts +39 -3
  45. package/dist/components/faq/faq-document-page.d.ts.map +1 -1
  46. package/dist/components/faq/faq-section.d.ts.map +1 -1
  47. package/dist/components/faq/index.cjs +3 -3
  48. package/dist/components/faq/index.js +2 -2
  49. package/dist/components/features/index.cjs +2 -2
  50. package/dist/components/features/index.js +1 -1
  51. package/dist/components/index.cjs +172 -172
  52. package/dist/components/index.js +8 -8
  53. package/dist/components/logs-list.d.ts.map +1 -1
  54. package/dist/components/navigation/index.cjs +2 -2
  55. package/dist/components/navigation/index.js +1 -1
  56. package/dist/components/onboarding-guides/index.cjs +23 -23
  57. package/dist/components/onboarding-guides/index.js +3 -3
  58. package/dist/components/related-content/index.cjs +3 -3
  59. package/dist/components/related-content/index.js +2 -2
  60. package/dist/components/tickets/index.cjs +60 -60
  61. package/dist/components/tickets/index.js +3 -3
  62. package/dist/components/ui/device-card.d.ts.map +1 -1
  63. package/dist/components/ui/index.cjs +2 -2
  64. package/dist/components/ui/index.js +1 -1
  65. package/dist/index.cjs +2 -2
  66. package/dist/index.js +1 -1
  67. package/dist/utils/date-utils.d.ts.map +1 -1
  68. package/dist/utils/format.d.ts +12 -3
  69. package/dist/utils/format.d.ts.map +1 -1
  70. package/dist/utils/index.cjs +26 -14
  71. package/dist/utils/index.cjs.map +1 -1
  72. package/dist/utils/index.js +26 -14
  73. package/dist/utils/index.js.map +1 -1
  74. package/package.json +1 -1
  75. package/src/components/chat/entity-cards/blog-card.tsx +2 -2
  76. package/src/components/chat/entity-cards/dispatch.tsx +1 -1
  77. package/src/components/chat/entity-cards/program-card.tsx +17 -4
  78. package/src/components/chat/types/entities/investor-update.ts +2 -0
  79. package/src/components/chat/utils/execute-navigation.ts +15 -1
  80. package/src/components/faq/faq-document-page.tsx +78 -19
  81. package/src/components/faq/faq-section.tsx +23 -8
  82. package/src/components/logs-list.tsx +8 -6
  83. package/src/components/ui/device-card.tsx +8 -6
  84. package/src/utils/date-utils.ts +27 -14
  85. package/src/utils/format.ts +27 -8
  86. package/dist/chunk-2YYAKVL7.cjs.map +0 -1
  87. package/dist/chunk-5OFBD6EQ.js.map +0 -1
  88. package/dist/chunk-6TRTIHGW.cjs.map +0 -1
  89. package/dist/chunk-ER4CMF47.js.map +0 -1
  90. /package/dist/{chunk-6SBJVDH3.js.map → chunk-CGR2DPPQ.js.map} +0 -0
  91. /package/dist/{chunk-N3YPIZBH.js.map → chunk-DJBMLHN7.js.map} +0 -0
  92. /package/dist/{chunk-WSEK6W4B.js.map → chunk-F45P357Q.js.map} +0 -0
  93. /package/dist/{chunk-46KRPHHL.js.map → chunk-GRBFBBSX.js.map} +0 -0
  94. /package/dist/{chunk-QPTJOLAP.js.map → chunk-GZPOUZAY.js.map} +0 -0
  95. /package/dist/{chunk-E7FIV5LH.js.map → chunk-IHCOTCIG.js.map} +0 -0
  96. /package/dist/{chunk-QWMYOUGP.js.map → chunk-PH2RLC4E.js.map} +0 -0
@@ -1 +1 @@
1
- {"version":3,"file":"format.d.ts","sourceRoot":"","sources":["../../src/utils/format.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"format.d.ts","sourceRoot":"","sources":["../../src/utils/format.ts"],"names":[],"mappings":"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"}
@@ -164,7 +164,7 @@ function formatDate(date, options = {
164
164
  console.warn("Invalid date provided to formatDate:", date);
165
165
  return "Invalid Date";
166
166
  }
167
- return dateObj.toLocaleDateString("en-US", options);
167
+ return dateObj.toLocaleDateString("en-US", { timeZone: "UTC", ...options });
168
168
  }
169
169
  function formatNumber(num) {
170
170
  return num.toLocaleString();
@@ -263,12 +263,17 @@ function formatDurationCompact(seconds) {
263
263
  function formatTimeWithTimezone(date, timezone) {
264
264
  if (!date) return "";
265
265
  const dateObj = typeof date === "string" ? new Date(date) : date;
266
- const timeStr = dateObj.toLocaleTimeString("en-US", {
266
+ const opts = {
267
267
  hour: "numeric",
268
268
  minute: "2-digit",
269
- hour12: true
270
- });
271
- return timezone ? `${timeStr} ${timezone}` : timeStr;
269
+ hour12: true,
270
+ timeZone: timezone || "UTC"
271
+ };
272
+ try {
273
+ return dateObj.toLocaleTimeString("en-US", opts);
274
+ } catch {
275
+ return dateObj.toLocaleTimeString("en-US", { ...opts, timeZone: "UTC" });
276
+ }
272
277
  }
273
278
  function formatDurationFromRange(startAt, endAt) {
274
279
  if (!startAt || !endAt) return "";
@@ -2459,19 +2464,19 @@ function formatTicketRelativeTime(iso) {
2459
2464
  if (diffMin < 60) return `${diffMin} min ago`;
2460
2465
  const diffHours = Math.floor(diffMin / 60);
2461
2466
  if (diffHours < 24) return diffHours === 1 ? "1 hour ago" : `${diffHours} hours ago`;
2462
- const mm = String(date.getMonth() + 1).padStart(2, "0");
2463
- const dd = String(date.getDate()).padStart(2, "0");
2464
- const yyyy = date.getFullYear();
2467
+ const mm = String(date.getUTCMonth() + 1).padStart(2, "0");
2468
+ const dd = String(date.getUTCDate()).padStart(2, "0");
2469
+ const yyyy = date.getUTCFullYear();
2465
2470
  return `${mm}/${dd}/${yyyy}`;
2466
2471
  }
2467
2472
  function formatTicketFullTimestamp(iso) {
2468
2473
  const date = new Date(iso);
2469
2474
  if (Number.isNaN(date.getTime())) return "";
2470
- const mm = String(date.getMonth() + 1).padStart(2, "0");
2471
- const dd = String(date.getDate()).padStart(2, "0");
2472
- const yyyy = date.getFullYear();
2473
- let hours = date.getHours();
2474
- const minutes = String(date.getMinutes()).padStart(2, "0");
2475
+ const mm = String(date.getUTCMonth() + 1).padStart(2, "0");
2476
+ const dd = String(date.getUTCDate()).padStart(2, "0");
2477
+ const yyyy = date.getUTCFullYear();
2478
+ let hours = date.getUTCHours();
2479
+ const minutes = String(date.getUTCMinutes()).padStart(2, "0");
2475
2480
  const ampm = hours >= 12 ? "PM" : "AM";
2476
2481
  hours = hours % 12 || 12;
2477
2482
  return `${mm}/${dd}/${yyyy}, ${hours}:${minutes} ${ampm}`;
@@ -2501,7 +2506,8 @@ function formatRelativeTime(timestamp) {
2501
2506
  return targetTime.toLocaleDateString("en-US", {
2502
2507
  month: "short",
2503
2508
  day: "numeric",
2504
- year: targetTime.getFullYear() !== now.getFullYear() ? "numeric" : void 0
2509
+ year: targetTime.getUTCFullYear() !== now.getUTCFullYear() ? "numeric" : void 0,
2510
+ timeZone: "UTC"
2505
2511
  });
2506
2512
  }
2507
2513
  function formatAbsoluteDate(timestamp, options = {}) {
@@ -2514,6 +2520,9 @@ function formatAbsoluteDate(timestamp, options = {}) {
2514
2520
  year: "numeric",
2515
2521
  month: "short",
2516
2522
  day: "numeric",
2523
+ // Pin to UTC so SSR (Vercel = UTC) and the client agree (React #418).
2524
+ // Caller can override via `options`.
2525
+ timeZone: "UTC",
2517
2526
  ...options
2518
2527
  };
2519
2528
  return targetTime.toLocaleDateString("en-US", defaultOptions);
@@ -2530,6 +2539,9 @@ function formatDateTime(timestamp, options = {}) {
2530
2539
  day: "numeric",
2531
2540
  hour: "numeric",
2532
2541
  minute: "2-digit",
2542
+ // Pin to UTC so SSR (Vercel = UTC) and the client agree (React #418).
2543
+ // Caller can override via `options`.
2544
+ timeZone: "UTC",
2533
2545
  ...options
2534
2546
  };
2535
2547
  return targetTime.toLocaleDateString("en-US", defaultOptions);