@flamingo-stack/openframe-frontend-core 0.0.274 → 0.0.275

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-XDGDCO3I.cjs → chunk-5LOLBUZG.cjs} +45 -44
  2. package/dist/chunk-5LOLBUZG.cjs.map +1 -0
  3. package/dist/{chunk-4YKGXZ7W.js → chunk-7AH75KFQ.js} +1 -1
  4. package/dist/chunk-7AH75KFQ.js.map +1 -0
  5. package/dist/{chunk-CYMMGPPV.js → chunk-CTBL56EC.js} +41 -5
  6. package/dist/chunk-CTBL56EC.js.map +1 -0
  7. package/dist/{chunk-2KHFSSFZ.cjs → chunk-DBJZF2OV.cjs} +15 -15
  8. package/dist/{chunk-2KHFSSFZ.cjs.map → chunk-DBJZF2OV.cjs.map} +1 -1
  9. package/dist/{chunk-4DYXV3E7.cjs → chunk-DEAWHNYW.cjs} +1177 -1223
  10. package/dist/chunk-DEAWHNYW.cjs.map +1 -0
  11. package/dist/{chunk-WU6PMH5L.cjs → chunk-E6RCVOQG.cjs} +41 -43
  12. package/dist/chunk-E6RCVOQG.cjs.map +1 -0
  13. package/dist/{chunk-FLIWL6V4.js → chunk-EINXNG5D.js} +4 -4
  14. package/dist/{chunk-OPSZNW3I.js → chunk-EKWPIEHH.js} +3031 -3077
  15. package/dist/chunk-EKWPIEHH.js.map +1 -0
  16. package/dist/{chunk-N5MCKGAB.js → chunk-FDHKJJPK.js} +34 -33
  17. package/dist/{chunk-N5MCKGAB.js.map → chunk-FDHKJJPK.js.map} +1 -1
  18. package/dist/{chunk-BSOHVQ7X.js → chunk-GHWOQUB4.js} +366 -391
  19. package/dist/chunk-GHWOQUB4.js.map +1 -0
  20. package/dist/{chunk-T7AJBKZP.cjs → chunk-GVSTRN36.cjs} +5 -2
  21. package/dist/chunk-GVSTRN36.cjs.map +1 -0
  22. package/dist/{chunk-L4LAAA5Q.js → chunk-IMNGGLKL.js} +5 -2
  23. package/dist/chunk-IMNGGLKL.js.map +1 -0
  24. package/dist/{chunk-VASNLWPZ.js → chunk-NY7OG2OJ.js} +5 -7
  25. package/dist/{chunk-VASNLWPZ.js.map → chunk-NY7OG2OJ.js.map} +1 -1
  26. package/dist/{chunk-5QJQAFTP.cjs → chunk-OKDCUJOZ.cjs} +48 -12
  27. package/dist/chunk-OKDCUJOZ.cjs.map +1 -0
  28. package/dist/{chunk-MEAR2WHS.cjs → chunk-PC7YOZ4I.cjs} +1 -1
  29. package/dist/chunk-PC7YOZ4I.cjs.map +1 -0
  30. package/dist/{chunk-QLWBBCI5.cjs → chunk-Q2ITV3NY.cjs} +5 -4
  31. package/dist/chunk-Q2ITV3NY.cjs.map +1 -0
  32. package/dist/chunk-RGALV4UX.js +433 -0
  33. package/dist/chunk-RGALV4UX.js.map +1 -0
  34. package/dist/{chunk-W5KBDFCR.cjs → chunk-SA4ZTD3G.cjs} +30 -30
  35. package/dist/{chunk-W5KBDFCR.cjs.map → chunk-SA4ZTD3G.cjs.map} +1 -1
  36. package/dist/{chunk-GL5X6VVC.js → chunk-T4XXYAYY.js} +4 -4
  37. package/dist/{chunk-ZMFT5XOB.js → chunk-UXJCZOLA.js} +4 -3
  38. package/dist/chunk-UXJCZOLA.js.map +1 -0
  39. package/dist/{chunk-7NJUPRN6.cjs → chunk-XCPBD2PG.cjs} +183 -208
  40. package/dist/chunk-XCPBD2PG.cjs.map +1 -0
  41. package/dist/chunk-ZSUNQJRO.cjs +433 -0
  42. package/dist/chunk-ZSUNQJRO.cjs.map +1 -0
  43. package/dist/components/chat/chat-message-row.d.ts +1 -1
  44. package/dist/components/chat/chat-message-row.d.ts.map +1 -1
  45. package/dist/components/chat/index.cjs +10 -11
  46. package/dist/components/chat/index.cjs.map +1 -1
  47. package/dist/components/chat/index.js +12 -13
  48. package/dist/components/contact/index.cjs +7 -9
  49. package/dist/components/contact/index.cjs.map +1 -1
  50. package/dist/components/contact/index.js +6 -8
  51. package/dist/components/faq/faq-document-page.d.ts +21 -0
  52. package/dist/components/faq/faq-document-page.d.ts.map +1 -0
  53. package/dist/components/faq/index.cjs +22 -5
  54. package/dist/components/faq/index.cjs.map +1 -1
  55. package/dist/components/faq/index.d.ts +1 -0
  56. package/dist/components/faq/index.d.ts.map +1 -1
  57. package/dist/components/faq/index.js +21 -4
  58. package/dist/components/features/index.cjs +6 -8
  59. package/dist/components/features/index.cjs.map +1 -1
  60. package/dist/components/features/index.js +5 -7
  61. package/dist/components/index.cjs +304 -309
  62. package/dist/components/index.cjs.map +1 -1
  63. package/dist/components/index.js +249 -254
  64. package/dist/components/index.js.map +1 -1
  65. package/dist/components/layout/article-detail-layout.d.ts +21 -9
  66. package/dist/components/layout/article-detail-layout.d.ts.map +1 -1
  67. package/dist/components/navigation/index.cjs +6 -8
  68. package/dist/components/navigation/index.cjs.map +1 -1
  69. package/dist/components/navigation/index.js +5 -7
  70. package/dist/components/onboarding-guides/index.cjs +33 -46
  71. package/dist/components/onboarding-guides/index.cjs.map +1 -1
  72. package/dist/components/onboarding-guides/index.js +11 -24
  73. package/dist/components/onboarding-guides/index.js.map +1 -1
  74. package/dist/components/onboarding-guides/onboarding-guide-detail-view.d.ts.map +1 -1
  75. package/dist/components/related-content/index.cjs +8 -10
  76. package/dist/components/related-content/index.cjs.map +1 -1
  77. package/dist/components/related-content/index.js +7 -9
  78. package/dist/components/shared/delivery/delivery-lists.d.ts.map +1 -1
  79. package/dist/components/shared/detail-page-skeleton.d.ts +6 -1
  80. package/dist/components/shared/detail-page-skeleton.d.ts.map +1 -1
  81. package/dist/components/shared/legal-document/use-legal-docs.d.ts.map +1 -1
  82. package/dist/components/shared/product-release/release-detail-page.d.ts.map +1 -1
  83. package/dist/components/shared/roadmap/roadmap-grid.d.ts.map +1 -1
  84. package/dist/components/shared/roadmap/use-roadmap-voting.d.ts.map +1 -1
  85. package/dist/components/tickets/help-center-list.d.ts +9 -1
  86. package/dist/components/tickets/help-center-list.d.ts.map +1 -1
  87. package/dist/components/tickets/hooks/use-ticket-actions.d.ts.map +1 -1
  88. package/dist/components/tickets/hooks/use-ticket-engagements.d.ts.map +1 -1
  89. package/dist/components/tickets/hooks/use-tickets-list.d.ts.map +1 -1
  90. package/dist/components/tickets/index.cjs +81 -76
  91. package/dist/components/tickets/index.cjs.map +1 -1
  92. package/dist/components/tickets/index.js +27 -22
  93. package/dist/components/tickets/index.js.map +1 -1
  94. package/dist/components/ui/index.cjs +12 -15
  95. package/dist/components/ui/index.cjs.map +1 -1
  96. package/dist/components/ui/index.js +24 -27
  97. package/dist/contexts/chat-runtime-context.d.ts +9 -0
  98. package/dist/contexts/chat-runtime-context.d.ts.map +1 -1
  99. package/dist/contexts/index.cjs +2 -2
  100. package/dist/contexts/index.js +1 -1
  101. package/dist/hooks/index.cjs +3 -3
  102. package/dist/hooks/index.js +2 -2
  103. package/dist/hooks/use-contact-submission.d.ts.map +1 -1
  104. package/dist/hooks/use-self-fetch.d.ts.map +1 -1
  105. package/dist/index.cjs +11 -15
  106. package/dist/index.cjs.map +1 -1
  107. package/dist/index.js +32 -36
  108. package/dist/utils/embed-authed-fetch.d.ts +7 -0
  109. package/dist/utils/embed-authed-fetch.d.ts.map +1 -1
  110. package/dist/utils/embed-content-fetch.d.ts +2 -0
  111. package/dist/utils/embed-content-fetch.d.ts.map +1 -0
  112. package/dist/utils/index.cjs.map +1 -1
  113. package/dist/utils/index.js.map +1 -1
  114. package/package.json +1 -1
  115. package/src/components/chat/chat-message-row.tsx +12 -2
  116. package/src/components/faq/faq-document-page.tsx +69 -0
  117. package/src/components/faq/index.ts +1 -0
  118. package/src/components/layout/article-detail-layout.tsx +24 -11
  119. package/src/components/onboarding-guides/onboarding-guide-detail-view.tsx +21 -16
  120. package/src/components/shared/delivery/delivery-lists.tsx +3 -2
  121. package/src/components/shared/detail-page-skeleton.tsx +18 -10
  122. package/src/components/shared/legal-document/use-legal-docs.ts +2 -1
  123. package/src/components/shared/product-release/release-detail-page.tsx +27 -17
  124. package/src/components/shared/roadmap/roadmap-grid.tsx +2 -1
  125. package/src/components/shared/roadmap/use-roadmap-voting.ts +3 -2
  126. package/src/components/tickets/help-center-list.tsx +12 -4
  127. package/src/components/tickets/hooks/use-ticket-actions.ts +7 -2
  128. package/src/components/tickets/hooks/use-ticket-engagements.ts +6 -1
  129. package/src/components/tickets/hooks/use-tickets-list.ts +7 -1
  130. package/src/components/tickets/ticket-detail-drawer.tsx +1 -0
  131. package/src/contexts/chat-runtime-context.tsx +9 -0
  132. package/src/hooks/use-contact-submission.ts +2 -1
  133. package/src/hooks/use-self-fetch.ts +2 -1
  134. package/src/styles/index.css +1 -0
  135. package/src/styles/ods-page-shell.css +29 -0
  136. package/src/utils/embed-authed-fetch.ts +10 -0
  137. package/src/utils/embed-content-fetch.ts +30 -0
  138. package/dist/chunk-4DYXV3E7.cjs.map +0 -1
  139. package/dist/chunk-4YKGXZ7W.js.map +0 -1
  140. package/dist/chunk-5QJQAFTP.cjs.map +0 -1
  141. package/dist/chunk-722TTRIJ.cjs +0 -29
  142. package/dist/chunk-722TTRIJ.cjs.map +0 -1
  143. package/dist/chunk-7NJUPRN6.cjs.map +0 -1
  144. package/dist/chunk-BSOHVQ7X.js.map +0 -1
  145. package/dist/chunk-CYMMGPPV.js.map +0 -1
  146. package/dist/chunk-DAAFVOTL.cjs +0 -172
  147. package/dist/chunk-DAAFVOTL.cjs.map +0 -1
  148. package/dist/chunk-L4LAAA5Q.js.map +0 -1
  149. package/dist/chunk-MEAR2WHS.cjs.map +0 -1
  150. package/dist/chunk-OO4ZGDRO.js +0 -29
  151. package/dist/chunk-OO4ZGDRO.js.map +0 -1
  152. package/dist/chunk-OPSZNW3I.js.map +0 -1
  153. package/dist/chunk-QLWBBCI5.cjs.map +0 -1
  154. package/dist/chunk-T2URJAX2.js +0 -169
  155. package/dist/chunk-T2URJAX2.js.map +0 -1
  156. package/dist/chunk-T7AJBKZP.cjs.map +0 -1
  157. package/dist/chunk-WU6PMH5L.cjs.map +0 -1
  158. package/dist/chunk-XDGDCO3I.cjs.map +0 -1
  159. package/dist/chunk-Y2B6WDU6.cjs +0 -169
  160. package/dist/chunk-Y2B6WDU6.cjs.map +0 -1
  161. package/dist/chunk-ZMFT5XOB.js.map +0 -1
  162. package/dist/chunk-ZXZJSTNV.js +0 -172
  163. package/dist/chunk-ZXZJSTNV.js.map +0 -1
  164. /package/dist/{chunk-FLIWL6V4.js.map → chunk-EINXNG5D.js.map} +0 -0
  165. /package/dist/{chunk-GL5X6VVC.js.map → chunk-T4XXYAYY.js.map} +0 -0
@@ -7,11 +7,11 @@ import {
7
7
  EmptyState,
8
8
  UnifiedPagination,
9
9
  init_unified_pagination
10
- } from "../../chunk-GL5X6VVC.js";
10
+ } from "../../chunk-T4XXYAYY.js";
11
11
  import "../../chunk-4XLJWX2N.js";
12
12
  import {
13
13
  ContactForm
14
- } from "../../chunk-FLIWL6V4.js";
14
+ } from "../../chunk-EINXNG5D.js";
15
15
  import {
16
16
  AlertDialog,
17
17
  AlertDialogAction,
@@ -30,19 +30,16 @@ import {
30
30
  Label,
31
31
  Textarea,
32
32
  TicketAttachmentsList,
33
- embedAuthedFetch,
34
33
  formatRelativeTime,
35
34
  getStatusColorScheme,
35
+ scrollElementIntoView,
36
36
  useChatAttachments,
37
37
  useChatIdentity
38
- } from "../../chunk-OPSZNW3I.js";
38
+ } from "../../chunk-EKWPIEHH.js";
39
39
  import {
40
40
  toast
41
- } from "../../chunk-ZMFT5XOB.js";
41
+ } from "../../chunk-UXJCZOLA.js";
42
42
  import "../../chunk-MJNXIEV2.js";
43
- import {
44
- scrollElementIntoView
45
- } from "../../chunk-T2URJAX2.js";
46
43
  import {
47
44
  Input,
48
45
  Skeleton
@@ -52,9 +49,13 @@ import {
52
49
  Card,
53
50
  SquareAvatar,
54
51
  StatusBadge
55
- } from "../../chunk-BSOHVQ7X.js";
56
- import "../../chunk-ZXZJSTNV.js";
57
- import "../../chunk-4YKGXZ7W.js";
52
+ } from "../../chunk-GHWOQUB4.js";
53
+ import {
54
+ embedAuthedFetch
55
+ } from "../../chunk-RGALV4UX.js";
56
+ import {
57
+ useRequiredChatRuntime
58
+ } from "../../chunk-7AH75KFQ.js";
58
59
  import "../../chunk-LXC6P2EO.js";
59
60
  import "../../chunk-EL5YVPD5.js";
60
61
  import {
@@ -62,7 +63,6 @@ import {
62
63
  useRouter,
63
64
  useSearchParams
64
65
  } from "../../chunk-PLJLE4A4.js";
65
- import "../../chunk-OO4ZGDRO.js";
66
66
  import {
67
67
  Button,
68
68
  init_button2 as init_button
@@ -243,6 +243,7 @@ var LIST_ENGAGEMENTS_ENDPOINT = "/api/chat/agent/list-engagements";
243
243
  function useTicketEngagements(externalTicketId, enabled = true, refetchInterval = false) {
244
244
  const identity = useChatIdentity();
245
245
  const identityKey = identity.user?.email ?? "anon";
246
+ const listEngagementsEndpoint = useRequiredChatRuntime().endpoints.listEngagementsUrl ?? LIST_ENGAGEMENTS_ENDPOINT;
246
247
  const fetchable = enabled && !!externalTicketId && !externalTicketId.startsWith("temp-");
247
248
  const queryEnabled = fetchable && identity.authTier !== "anon" && !!identity.user?.email;
248
249
  const query = useQuery({
@@ -261,7 +262,7 @@ function useTicketEngagements(externalTicketId, enabled = true, refetchInterval
261
262
  // so polling pauses on a hidden tab.
262
263
  refetchInterval,
263
264
  queryFn: async () => {
264
- const response = await embedAuthedFetch(LIST_ENGAGEMENTS_ENDPOINT, {
265
+ const response = await embedAuthedFetch(listEngagementsEndpoint, {
265
266
  method: "POST",
266
267
  body: JSON.stringify({ ticket_id: externalTicketId })
267
268
  });
@@ -787,6 +788,7 @@ import { useQuery as useQuery2 } from "@tanstack/react-query";
787
788
  var FIND_TICKET_ENDPOINT = "/api/chat/agent/find-ticket";
788
789
  var DEFAULT_PAGE_SIZE = 20;
789
790
  function useTicketsList(filters) {
791
+ const findTicketEndpoint = useRequiredChatRuntime().endpoints.findTicketUrl ?? FIND_TICKET_ENDPOINT;
790
792
  const customerEmail = filters.customerEmail;
791
793
  const search = (filters.search ?? "").trim();
792
794
  const status = (filters.status ?? "").trim().toLowerCase();
@@ -819,7 +821,7 @@ function useTicketsList(filters) {
819
821
  pageSize
820
822
  };
821
823
  if (statusFilter) body.status = statusFilter;
822
- const response = await embedAuthedFetch(FIND_TICKET_ENDPOINT, {
824
+ const response = await embedAuthedFetch(findTicketEndpoint, {
823
825
  method: "POST",
824
826
  body: JSON.stringify(body)
825
827
  });
@@ -885,6 +887,7 @@ var REPLY_BANNER_CODES = /* @__PURE__ */ new Set([
885
887
  var MIRROR_SYNC_BACKOFF_MS = [3e3, 6e3, 12e3];
886
888
  function useTicketActions(options) {
887
889
  const queryClient = useQueryClient();
890
+ const ticketActionEndpoint = useRequiredChatRuntime().endpoints.ticketActionUrl ?? TICKET_ACTION_ENDPOINT;
888
891
  const { prependOptimistic, removeOptimistic, removeTicketFromCache, toast: toast2, onSupportSystemDown } = options;
889
892
  const formInFlightRef = useRef2(false);
890
893
  const [isSubmittingForm, setIsSubmittingForm] = useState3(false);
@@ -933,7 +936,7 @@ function useTicketActions(options) {
933
936
  }, []);
934
937
  const executeTicketAction = useCallback3(
935
938
  async (toolName, args) => {
936
- const res = await embedAuthedFetch(TICKET_ACTION_ENDPOINT, {
939
+ const res = await embedAuthedFetch(ticketActionEndpoint, {
937
940
  method: "POST",
938
941
  body: JSON.stringify({ tool_name: toolName, args })
939
942
  });
@@ -945,7 +948,7 @@ function useTicketActions(options) {
945
948
  }
946
949
  return body;
947
950
  },
948
- []
951
+ [ticketActionEndpoint]
949
952
  );
950
953
  const watchMirrorSync = useCallback3(
951
954
  (placeholderId, expectedTicketId) => {
@@ -1684,7 +1687,7 @@ function HelpCenterCreateForm({
1684
1687
 
1685
1688
  // src/components/tickets/help-center-list.tsx
1686
1689
  import { jsx as jsx9, jsxs as jsxs8 } from "react/jsx-runtime";
1687
- function HelpCenterList({ toast: toast2 = toast } = {}) {
1690
+ function HelpCenterList({ toast: toast2 = toast, backButton } = {}) {
1688
1691
  const identity = useChatIdentity();
1689
1692
  const searchParams = useSearchParams();
1690
1693
  const router = useRouter();
@@ -1695,10 +1698,10 @@ function HelpCenterList({ toast: toast2 = toast } = {}) {
1695
1698
  const rawPage = Number(searchParams.get("page"));
1696
1699
  const page = Number.isFinite(rawPage) && rawPage > 0 ? Math.floor(rawPage) : 1;
1697
1700
  if (identity.isLoading) {
1698
- return /* @__PURE__ */ jsx9(DevSectionPage, { sectionKey: "tickets", preControls: /* @__PURE__ */ jsx9(HelpCenterCreateFormSkeleton, {}), children: /* @__PURE__ */ jsx9(DevCardRowSkeletonList, {}) });
1701
+ return /* @__PURE__ */ jsx9(DevSectionPage, { sectionKey: "tickets", backButton, preControls: /* @__PURE__ */ jsx9(HelpCenterCreateFormSkeleton, {}), children: /* @__PURE__ */ jsx9(DevCardRowSkeletonList, {}) });
1699
1702
  }
1700
1703
  if (identity.authTier === "anon" || !identity.user?.email) {
1701
- return /* @__PURE__ */ jsx9(DevSectionPage, { sectionKey: "tickets", children: /* @__PURE__ */ jsx9(
1704
+ return /* @__PURE__ */ jsx9(DevSectionPage, { sectionKey: "tickets", backButton, children: /* @__PURE__ */ jsx9(
1702
1705
  EmptyState,
1703
1706
  {
1704
1707
  type: "generic",
@@ -1722,7 +1725,8 @@ function HelpCenterList({ toast: toast2 = toast } = {}) {
1722
1725
  pathname,
1723
1726
  toast: toast2,
1724
1727
  sessionName,
1725
- sessionEmail
1728
+ sessionEmail,
1729
+ backButton
1726
1730
  }
1727
1731
  );
1728
1732
  }
@@ -1736,7 +1740,8 @@ function HelpCenterListAuthed({
1736
1740
  pathname,
1737
1741
  toast: toast2,
1738
1742
  sessionName,
1739
- sessionEmail
1743
+ sessionEmail,
1744
+ backButton
1740
1745
  }) {
1741
1746
  const queryClient = useQueryClient3();
1742
1747
  const [optimisticTickets, setOptimisticTickets] = useState6([]);
@@ -1883,7 +1888,7 @@ function HelpCenterListAuthed({
1883
1888
  ) }),
1884
1889
  !error && totalPages > 1 && /* @__PURE__ */ jsx9(UnifiedPagination, { currentPage: page, totalPages })
1885
1890
  ] });
1886
- return /* @__PURE__ */ jsx9(DevSectionPage, { sectionKey: "tickets", preControls: form, children: body });
1891
+ return /* @__PURE__ */ jsx9(DevSectionPage, { sectionKey: "tickets", backButton, preControls: form, children: body });
1887
1892
  }
1888
1893
  export {
1889
1894
  HelpCenterCard,