@flamingo-stack/openframe-frontend-core 0.0.553 → 0.0.554-snapshot.20260818101820

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 (108) hide show
  1. package/dist/{chunk-QOS27D5S.js → chunk-6ER3AYJM.js} +2 -2
  2. package/dist/{chunk-B5N2IG4Z.cjs → chunk-6QRKCVYR.cjs} +7 -7
  3. package/dist/{chunk-B5N2IG4Z.cjs.map → chunk-6QRKCVYR.cjs.map} +1 -1
  4. package/dist/{chunk-T7UUDSDW.cjs → chunk-A7ES3NZK.cjs} +3 -3
  5. package/dist/{chunk-T7UUDSDW.cjs.map → chunk-A7ES3NZK.cjs.map} +1 -1
  6. package/dist/{chunk-B7TI3RYG.js → chunk-B2GEKAAA.js} +2 -2
  7. package/dist/{chunk-UVAB3XAB.js → chunk-CTTY5EKH.js} +4 -4
  8. package/dist/{chunk-XPRFVYES.cjs → chunk-CU6Q2KQT.cjs} +9 -9
  9. package/dist/{chunk-XPRFVYES.cjs.map → chunk-CU6Q2KQT.cjs.map} +1 -1
  10. package/dist/{chunk-25BXB4SH.js → chunk-CVCQW7WG.js} +2 -2
  11. package/dist/{chunk-BUNDMGAD.js → chunk-E2IPBWGT.js} +5 -5
  12. package/dist/{chunk-ZGQZLUO6.cjs → chunk-E56VNTBV.cjs} +46 -35
  13. package/dist/{chunk-ZGQZLUO6.cjs.map → chunk-E56VNTBV.cjs.map} +1 -1
  14. package/dist/{chunk-MSNTPZJ3.js → chunk-HO3Q7NXJ.js} +2 -2
  15. package/dist/{chunk-LL6EPMAD.cjs → chunk-J76LCSR4.cjs} +31 -31
  16. package/dist/{chunk-LL6EPMAD.cjs.map → chunk-J76LCSR4.cjs.map} +1 -1
  17. package/dist/{chunk-VYVOER73.js → chunk-K432ES7N.js} +2 -2
  18. package/dist/{chunk-XBKBBKPR.cjs → chunk-KXLQITOX.cjs} +5 -5
  19. package/dist/{chunk-XBKBBKPR.cjs.map → chunk-KXLQITOX.cjs.map} +1 -1
  20. package/dist/{chunk-LZGHXN2E.js → chunk-L36R3G7Z.js} +4 -4
  21. package/dist/{chunk-OI56TF4Y.cjs → chunk-M5TWHFIN.cjs} +39 -39
  22. package/dist/{chunk-OI56TF4Y.cjs.map → chunk-M5TWHFIN.cjs.map} +1 -1
  23. package/dist/{chunk-Y2WE2GOL.cjs → chunk-MLVF3OXU.cjs} +62 -62
  24. package/dist/{chunk-Y2WE2GOL.cjs.map → chunk-MLVF3OXU.cjs.map} +1 -1
  25. package/dist/{chunk-NFQEDT43.cjs → chunk-N5A4AC2J.cjs} +20 -20
  26. package/dist/{chunk-NFQEDT43.cjs.map → chunk-N5A4AC2J.cjs.map} +1 -1
  27. package/dist/{chunk-3OBWO6N6.js → chunk-ODRMPI3Y.js} +2 -2
  28. package/dist/{chunk-6WA3RI55.cjs → chunk-P22HM2MO.cjs} +11 -11
  29. package/dist/{chunk-6WA3RI55.cjs.map → chunk-P22HM2MO.cjs.map} +1 -1
  30. package/dist/{chunk-WLQER7GC.js → chunk-P7MSXPGL.js} +6 -6
  31. package/dist/{chunk-CGIZ4UGO.js → chunk-QMQQ37RW.js} +2 -2
  32. package/dist/{chunk-ZS7VC5SX.js → chunk-QZ64JOE2.js} +46 -35
  33. package/dist/{chunk-ZS7VC5SX.js.map → chunk-QZ64JOE2.js.map} +1 -1
  34. package/dist/{chunk-S7ATADRE.cjs → chunk-SST2YI7S.cjs} +27 -18
  35. package/dist/{chunk-S7ATADRE.cjs.map → chunk-SST2YI7S.cjs.map} +1 -1
  36. package/dist/{chunk-YI2735PG.js → chunk-TXV444YV.js} +2 -2
  37. package/dist/{chunk-N22NG622.js → chunk-UL3WQWTF.js} +15 -6
  38. package/dist/chunk-UL3WQWTF.js.map +1 -0
  39. package/dist/{chunk-V643QZFI.cjs → chunk-UXW63WCV.cjs} +4 -4
  40. package/dist/{chunk-V643QZFI.cjs.map → chunk-UXW63WCV.cjs.map} +1 -1
  41. package/dist/{chunk-EGPI3SFI.cjs → chunk-XOKRFZBD.cjs} +86 -86
  42. package/dist/{chunk-EGPI3SFI.cjs.map → chunk-XOKRFZBD.cjs.map} +1 -1
  43. package/dist/{chunk-PWWMA3EJ.cjs → chunk-YAOBDOI5.cjs} +26 -26
  44. package/dist/{chunk-PWWMA3EJ.cjs.map → chunk-YAOBDOI5.cjs.map} +1 -1
  45. package/dist/components/case-studies/index.cjs +8 -8
  46. package/dist/components/case-studies/index.js +2 -2
  47. package/dist/components/chat/hooks/use-chat-card-item.d.ts.map +1 -1
  48. package/dist/components/chat/index.cjs +2 -2
  49. package/dist/components/chat/index.js +1 -1
  50. package/dist/components/chat/stream/chat-stream-reducer.d.ts +1 -1
  51. package/dist/components/chat/stream/chat-stream-reducer.d.ts.map +1 -1
  52. package/dist/components/chat/utils/message-segment-accumulator.d.ts +7 -5
  53. package/dist/components/chat/utils/message-segment-accumulator.d.ts.map +1 -1
  54. package/dist/components/contact/index.cjs +3 -3
  55. package/dist/components/contact/index.js +2 -2
  56. package/dist/components/docs/index.cjs +5 -5
  57. package/dist/components/docs/index.js +4 -4
  58. package/dist/components/embeds/index.cjs +3 -3
  59. package/dist/components/embeds/index.js +2 -2
  60. package/dist/components/faq/index.cjs +3 -3
  61. package/dist/components/faq/index.js +2 -2
  62. package/dist/components/features/index.cjs +2 -2
  63. package/dist/components/features/index.js +1 -1
  64. package/dist/components/help-center-pages/index.cjs +22 -22
  65. package/dist/components/help-center-pages/index.js +13 -13
  66. package/dist/components/index.cjs +131 -131
  67. package/dist/components/index.js +11 -11
  68. package/dist/components/meeting-scheduler/index.cjs +28 -28
  69. package/dist/components/meeting-scheduler/index.js +3 -3
  70. package/dist/components/navigation/index.cjs +2 -2
  71. package/dist/components/navigation/index.js +1 -1
  72. package/dist/components/onboarding-guides/index.cjs +5 -5
  73. package/dist/components/onboarding-guides/index.js +4 -4
  74. package/dist/components/related-content/index.cjs +3 -3
  75. package/dist/components/related-content/index.js +2 -2
  76. package/dist/components/shared/dev-section/dev-section-view.d.ts.map +1 -1
  77. package/dist/components/tickets/index.cjs +6 -6
  78. package/dist/components/tickets/index.js +5 -5
  79. package/dist/components/ui/index.cjs +2 -2
  80. package/dist/components/ui/index.js +1 -1
  81. package/dist/index.cjs +2 -2
  82. package/dist/index.js +1 -1
  83. package/dist/utils/dev-sections/openframe-dev-sections.d.ts +7 -0
  84. package/dist/utils/dev-sections/openframe-dev-sections.d.ts.map +1 -1
  85. package/dist/utils/index.cjs +8 -1
  86. package/dist/utils/index.cjs.map +1 -1
  87. package/dist/utils/index.js +8 -1
  88. package/dist/utils/index.js.map +1 -1
  89. package/package.json +1 -1
  90. package/src/components/chat/__tests__/ticket-event.test.ts +52 -0
  91. package/src/components/chat/hooks/use-chat-card-item.ts +11 -15
  92. package/src/components/chat/stream/chat-stream-reducer.ts +15 -11
  93. package/src/components/chat/utils/message-segment-accumulator.ts +31 -17
  94. package/src/components/shared/dev-section/dev-section-view.tsx +27 -7
  95. package/src/utils/dev-sections/openframe-dev-sections.ts +15 -2
  96. package/dist/chunk-N22NG622.js.map +0 -1
  97. /package/dist/{chunk-QOS27D5S.js.map → chunk-6ER3AYJM.js.map} +0 -0
  98. /package/dist/{chunk-B7TI3RYG.js.map → chunk-B2GEKAAA.js.map} +0 -0
  99. /package/dist/{chunk-UVAB3XAB.js.map → chunk-CTTY5EKH.js.map} +0 -0
  100. /package/dist/{chunk-25BXB4SH.js.map → chunk-CVCQW7WG.js.map} +0 -0
  101. /package/dist/{chunk-BUNDMGAD.js.map → chunk-E2IPBWGT.js.map} +0 -0
  102. /package/dist/{chunk-MSNTPZJ3.js.map → chunk-HO3Q7NXJ.js.map} +0 -0
  103. /package/dist/{chunk-VYVOER73.js.map → chunk-K432ES7N.js.map} +0 -0
  104. /package/dist/{chunk-LZGHXN2E.js.map → chunk-L36R3G7Z.js.map} +0 -0
  105. /package/dist/{chunk-3OBWO6N6.js.map → chunk-ODRMPI3Y.js.map} +0 -0
  106. /package/dist/{chunk-WLQER7GC.js.map → chunk-P7MSXPGL.js.map} +0 -0
  107. /package/dist/{chunk-CGIZ4UGO.js.map → chunk-QMQQ37RW.js.map} +0 -0
  108. /package/dist/{chunk-YI2735PG.js.map → chunk-TXV444YV.js.map} +0 -0
@@ -1,16 +1,16 @@
1
1
  "use client";
2
2
  import {
3
3
  PersistentPaginationWrapper
4
- } from "./chunk-CGIZ4UGO.js";
4
+ } from "./chunk-QMQQ37RW.js";
5
5
  import {
6
6
  DeliveryRow
7
- } from "./chunk-N22NG622.js";
7
+ } from "./chunk-UL3WQWTF.js";
8
8
  import {
9
9
  EmptyState
10
- } from "./chunk-3OBWO6N6.js";
10
+ } from "./chunk-ODRMPI3Y.js";
11
11
  import {
12
12
  DetailPageSkeleton
13
- } from "./chunk-MSNTPZJ3.js";
13
+ } from "./chunk-HO3Q7NXJ.js";
14
14
  import {
15
15
  useSelfFetch
16
16
  } from "./chunk-OR67WC32.js";
@@ -46,7 +46,7 @@ import {
46
46
  toStripProfile,
47
47
  useCaptions,
48
48
  useEntityCardLink
49
- } from "./chunk-ZS7VC5SX.js";
49
+ } from "./chunk-QZ64JOE2.js";
50
50
  import {
51
51
  STICKY_HEADER_OFFSET_PX,
52
52
  contentFetch,
@@ -1310,4 +1310,4 @@ export {
1310
1310
  useLegalDocs,
1311
1311
  LegalDocumentPage
1312
1312
  };
1313
- //# sourceMappingURL=chunk-WLQER7GC.js.map
1313
+ //# sourceMappingURL=chunk-P7MSXPGL.js.map
@@ -2,7 +2,7 @@
2
2
  import {
3
3
  init_unified_pagination,
4
4
  unified_pagination_exports
5
- } from "./chunk-3OBWO6N6.js";
5
+ } from "./chunk-ODRMPI3Y.js";
6
6
  import {
7
7
  cn,
8
8
  init_cn
@@ -172,4 +172,4 @@ export {
172
172
  usePaginationLoading,
173
173
  PersistentPaginationWrapper
174
174
  };
175
- //# sourceMappingURL=chunk-CGIZ4UGO.js.map
175
+ //# sourceMappingURL=chunk-QMQQ37RW.js.map
@@ -28554,7 +28554,14 @@ var OPENFRAME_DEV_SECTIONS = {
28554
28554
  title: "Help Center",
28555
28555
  description: "Open new tickets, follow up on existing ones, and track responses from the team \u2014 all in one place."
28556
28556
  },
28557
- search: { placeholder: "Search your tickets...", paramKey: DEV_SECTION_PARAM_KEYS.search },
28557
+ search: {
28558
+ placeholder: "Search your tickets...",
28559
+ paramKey: DEV_SECTION_PARAM_KEYS.search,
28560
+ // Chat-card deep links arrive as `?ticket=<id>&search=<id>`
28561
+ // (buildTicketOpenHref) — clearing the search resets the whole
28562
+ // linked context, drawer param included.
28563
+ clearParamKeys: [TICKET_OPEN_PARAM]
28564
+ },
28558
28565
  filter: {
28559
28566
  label: "Status",
28560
28567
  paramKey: DEV_SECTION_PARAM_KEYS.status,
@@ -52028,19 +52035,15 @@ function useChatCardItem(type, id) {
52028
52035
  return match2 ?? null;
52029
52036
  },
52030
52037
  enabled: !!url && id.length > 0,
52031
- // Don't refetch on window focus inside the chat — the chat panel
52032
- // is opened and closed frequently, and re-fetching every time the
52033
- // user toggles back to the tab is wasteful (the row's id-keyed
52034
- // payload is effectively immutable).
52035
- refetchOnWindowFocus: false,
52036
- // The id-keyed payload is effectively immutable, and a fetch-mode card
52038
+ // ALWAYS FRESH — no freshness window. Card entities are mutable
52039
+ // (tickets, tasks change status), so a cached row is a lie waiting to
52040
+ // render: a 5-min staleTime shipped a "NEW" badge on a ticket the
52041
+ // receipt right above it said was just CLOSED (2026-08-18). Every
52042
+ // mount refetches. `gcTime` is kept ONLY as render continuity: a card
52037
52043
  // inside a STREAMING assistant message re-mounts on every chunk as the
52038
- // surrounding markdown re-parses. Without a staleTime that meant a fresh
52039
- // network fetch + loading-skeleton flash on every single chunk. Treat the
52040
- // row as fresh for 5 min (matches the public pages) and keep it cached
52041
- // long after unmount so remounts resolve synchronously from cache — no
52042
- // refetch, no skeleton flash.
52043
- staleTime: 5 * 60 * 1e3,
52044
+ // surrounding markdown re-parses, and the previous data renders while
52045
+ // the refetch is in flight — no skeleton flash, never stale-forever.
52046
+ staleTime: 0,
52044
52047
  gcTime: 30 * 60 * 1e3
52045
52048
  });
52046
52049
  return {
@@ -56089,13 +56092,15 @@ var MessageSegmentAccumulator = class {
56089
56092
  /**
56090
56093
  * Add a ticket lifecycle receipt (resolved / reopened / unknown kind).
56091
56094
  *
56092
- * Upsert identity is the chunk's stream sequence when BOTH sides know it;
56093
- * otherwise full payload equality. History-hydrated segments come back
56095
+ * Upsert identity is the chunk's stream sequence when BOTH sides know it.
56096
+ * The payload fallback exists for one overlap only: history hydration is
56094
56097
  * seq-less (the persisted row's seq lives on the message, not the
56095
56098
  * `messageData`), so a JetStream catch-up redelivery of the same event must
56096
- * still match its hydrated twin — payload equality is what catches that.
56097
- * Two genuinely distinct events (resolve → reopen → resolve) differ in seq
56098
- * or payload and both render.
56099
+ * still match its hydrated twin. That twin is necessarily the LATEST ticket
56100
+ * event, so the fallback may consider only that one — scanning older
56101
+ * segments swallowed a genuinely REPEATED event: resolve → reopen → resolve
56102
+ * by the same actor is payload-identical to the first resolve, and matching
56103
+ * the old card meant the final one never rendered.
56099
56104
  */
56100
56105
  addTicketEvent(data, streamSeq) {
56101
56106
  const segment = {
@@ -56103,11 +56108,18 @@ var MessageSegmentAccumulator = class {
56103
56108
  data,
56104
56109
  ...streamSeq !== void 0 ? { streamSeq } : {}
56105
56110
  };
56106
- const existingIndex = this.segments.findIndex((s) => {
56107
- if (s.type !== "ticket_event") return false;
56108
- if (s.streamSeq !== void 0 && streamSeq !== void 0) return s.streamSeq === streamSeq;
56109
- return s.data.kind === data.kind && s.data.actorId === data.actorId && s.data.actorName === data.actorName && s.data.actorType === data.actorType && s.data.reason === data.reason && s.data.targetStatusKind === data.targetStatusKind;
56110
- });
56111
+ let existingIndex = streamSeq !== void 0 ? this.segments.findIndex((s) => s.type === "ticket_event" && s.streamSeq === streamSeq) : -1;
56112
+ if (existingIndex === -1) {
56113
+ for (let i = this.segments.length - 1; i >= 0; i--) {
56114
+ const s = this.segments[i];
56115
+ if (s.type !== "ticket_event") continue;
56116
+ const seqsDistinguish = s.streamSeq !== void 0 && streamSeq !== void 0;
56117
+ if (!seqsDistinguish && s.data.kind === data.kind && s.data.actorId === data.actorId && s.data.actorName === data.actorName && s.data.actorType === data.actorType && s.data.reason === data.reason && s.data.targetStatusKind === data.targetStatusKind) {
56118
+ existingIndex = i;
56119
+ }
56120
+ break;
56121
+ }
56122
+ }
56111
56123
  if (existingIndex !== -1) {
56112
56124
  this.segments[existingIndex] = segment;
56113
56125
  return this.getSegments();
@@ -56869,18 +56881,17 @@ function createChatStreamReducer(options = {}) {
56869
56881
  }
56870
56882
  case "ticket-event": {
56871
56883
  const before = accumulator.getSegments().length;
56872
- const segments = accumulator.addTicketEvent(
56873
- {
56874
- kind: event.kind,
56875
- actorId: event.actorId,
56876
- actorName: event.actorName,
56877
- actorType: event.actorType,
56878
- reason: event.reason,
56879
- targetStatusKind: event.targetStatusKind
56880
- },
56881
- seq
56882
- );
56884
+ const data = {
56885
+ kind: event.kind,
56886
+ actorId: event.actorId,
56887
+ actorName: event.actorName,
56888
+ actorType: event.actorType,
56889
+ reason: event.reason,
56890
+ targetStatusKind: event.targetStatusKind
56891
+ };
56892
+ const segments = accumulator.addTicketEvent(data, seq);
56883
56893
  applyAccumulated(before, segments);
56894
+ emit("onTicketEvent", data);
56884
56895
  break;
56885
56896
  }
56886
56897
  case "error": {
@@ -62888,4 +62899,4 @@ export {
62888
62899
  LogsList,
62889
62900
  assets
62890
62901
  };
62891
- //# sourceMappingURL=chunk-ZS7VC5SX.js.map
62902
+ //# sourceMappingURL=chunk-QZ64JOE2.js.map