@flamingo-stack/openframe-frontend-core 0.0.204 → 0.0.205

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 (509) hide show
  1. package/dist/{chunk-4CWSZPXH.cjs → chunk-24KCAECR.cjs} +9 -9
  2. package/dist/{chunk-4CWSZPXH.cjs.map → chunk-24KCAECR.cjs.map} +1 -1
  3. package/dist/chunk-27APPAJN.cjs +24 -0
  4. package/dist/chunk-27APPAJN.cjs.map +1 -0
  5. package/dist/{chunk-UC43NICZ.cjs → chunk-664KA5FI.cjs} +2 -35
  6. package/dist/chunk-664KA5FI.cjs.map +1 -0
  7. package/dist/chunk-6RZYJICV.cjs +24 -0
  8. package/dist/chunk-6RZYJICV.cjs.map +1 -0
  9. package/dist/chunk-7L4DWM7P.js +24 -0
  10. package/dist/chunk-7L4DWM7P.js.map +1 -0
  11. package/dist/chunk-BZFW3FOF.cjs +21 -0
  12. package/dist/chunk-BZFW3FOF.cjs.map +1 -0
  13. package/dist/{chunk-N57KWHDB.js → chunk-CIPO6DXK.js} +5 -5
  14. package/dist/chunk-EL5YVPD5.js +21 -0
  15. package/dist/chunk-EL5YVPD5.js.map +1 -0
  16. package/dist/{chunk-ARQ4XP64.cjs → chunk-FDCFI7YT.cjs} +40080 -31492
  17. package/dist/chunk-FDCFI7YT.cjs.map +1 -0
  18. package/dist/chunk-G7UE6RKV.cjs +121 -0
  19. package/dist/chunk-G7UE6RKV.cjs.map +1 -0
  20. package/dist/{chunk-25LVV26X.cjs → chunk-JUZGUQMX.cjs} +178 -50
  21. package/dist/chunk-JUZGUQMX.cjs.map +1 -0
  22. package/dist/{chunk-SZPJ5R5B.js → chunk-KSOOKNBG.js} +1 -34
  23. package/dist/chunk-KSOOKNBG.js.map +1 -0
  24. package/dist/{chunk-RMB5DVED.cjs → chunk-KUZGEA7U.cjs} +83 -66
  25. package/dist/chunk-KUZGEA7U.cjs.map +1 -0
  26. package/dist/chunk-LXC6P2EO.js +63 -0
  27. package/dist/chunk-LXC6P2EO.js.map +1 -0
  28. package/dist/chunk-MJNXIEV2.js +24 -0
  29. package/dist/chunk-MJNXIEV2.js.map +1 -0
  30. package/dist/{chunk-CPXLQ57U.js → chunk-MVGGXOFA.js} +37 -20
  31. package/dist/chunk-MVGGXOFA.js.map +1 -0
  32. package/dist/{chunk-LY34ORX6.js → chunk-O55ZUAX7.js} +39920 -31332
  33. package/dist/chunk-O55ZUAX7.js.map +1 -0
  34. package/dist/chunk-OHPI2HRK.js +47 -0
  35. package/dist/chunk-OHPI2HRK.js.map +1 -0
  36. package/dist/chunk-PLJLE4A4.js +121 -0
  37. package/dist/chunk-PLJLE4A4.js.map +1 -0
  38. package/dist/{chunk-XGL5FKIK.js → chunk-SCN5WFIZ.js} +148 -20
  39. package/dist/chunk-SCN5WFIZ.js.map +1 -0
  40. package/dist/chunk-WBR7H6E3.cjs +47 -0
  41. package/dist/chunk-WBR7H6E3.cjs.map +1 -0
  42. package/dist/chunk-XL4V2PYG.cjs +63 -0
  43. package/dist/chunk-XL4V2PYG.cjs.map +1 -0
  44. package/dist/components/announcement-bar.d.ts.map +1 -1
  45. package/dist/components/chat/chat-attachment-bar.d.ts +66 -0
  46. package/dist/components/chat/chat-attachment-bar.d.ts.map +1 -0
  47. package/dist/components/chat/chat-container.d.ts +21 -1
  48. package/dist/components/chat/chat-container.d.ts.map +1 -1
  49. package/dist/components/chat/chat-input.d.ts.map +1 -1
  50. package/dist/components/chat/chat-message-enhanced.d.ts.map +1 -1
  51. package/dist/components/chat/chat-message-list.d.ts.map +1 -1
  52. package/dist/components/chat/chat-panel-context.d.ts +9 -0
  53. package/dist/components/chat/chat-panel-context.d.ts.map +1 -0
  54. package/dist/components/chat/chat-ticket-list.d.ts +1 -1
  55. package/dist/components/chat/chat-ticket-list.d.ts.map +1 -1
  56. package/dist/components/chat/embeddable-chat.d.ts +42 -0
  57. package/dist/components/chat/embeddable-chat.d.ts.map +1 -0
  58. package/dist/components/chat/entity-cards/admin-content-card.d.ts +34 -0
  59. package/dist/components/chat/entity-cards/admin-content-card.d.ts.map +1 -0
  60. package/dist/components/chat/entity-cards/block-card.d.ts.map +1 -0
  61. package/dist/components/chat/entity-cards/blog-card.d.ts +30 -0
  62. package/dist/components/chat/entity-cards/blog-card.d.ts.map +1 -0
  63. package/dist/components/chat/entity-cards/blog-image-placeholder.d.ts +26 -0
  64. package/dist/components/chat/entity-cards/blog-image-placeholder.d.ts.map +1 -0
  65. package/dist/components/chat/entity-cards/campaign-card-admin.d.ts +33 -0
  66. package/dist/components/chat/entity-cards/campaign-card-admin.d.ts.map +1 -0
  67. package/dist/components/chat/entity-cards/case-study-card.d.ts +20 -0
  68. package/dist/components/chat/entity-cards/case-study-card.d.ts.map +1 -0
  69. package/dist/components/chat/entity-cards/chat-ticket-item.d.ts.map +1 -0
  70. package/dist/components/chat/{chat-video-entity-card.d.ts → entity-cards/chat-video-entity-card.d.ts} +1 -1
  71. package/dist/components/chat/entity-cards/chat-video-entity-card.d.ts.map +1 -0
  72. package/dist/components/chat/entity-cards/customer-interview-card.d.ts +19 -0
  73. package/dist/components/chat/entity-cards/customer-interview-card.d.ts.map +1 -0
  74. package/dist/components/chat/entity-cards/data-room-doc-card.d.ts +47 -0
  75. package/dist/components/chat/entity-cards/data-room-doc-card.d.ts.map +1 -0
  76. package/dist/components/chat/entity-cards/dispatch.d.ts +119 -0
  77. package/dist/components/chat/entity-cards/dispatch.d.ts.map +1 -0
  78. package/dist/components/chat/entity-cards/entity-author-card.d.ts +87 -0
  79. package/dist/components/chat/entity-cards/entity-author-card.d.ts.map +1 -0
  80. package/dist/components/chat/entity-cards/generic-entity-card.d.ts +42 -0
  81. package/dist/components/chat/entity-cards/generic-entity-card.d.ts.map +1 -0
  82. package/dist/components/chat/entity-cards/github-activity-card.d.ts +37 -0
  83. package/dist/components/chat/entity-cards/github-activity-card.d.ts.map +1 -0
  84. package/dist/components/chat/entity-cards/hubspot-ticket-card.d.ts +28 -0
  85. package/dist/components/chat/entity-cards/hubspot-ticket-card.d.ts.map +1 -0
  86. package/dist/components/chat/entity-cards/index.d.ts +32 -0
  87. package/dist/components/chat/entity-cards/index.d.ts.map +1 -0
  88. package/dist/components/chat/entity-cards/investor-update-card.d.ts +19 -0
  89. package/dist/components/chat/entity-cards/investor-update-card.d.ts.map +1 -0
  90. package/dist/components/chat/entity-cards/onboarding-guide-card.d.ts +20 -0
  91. package/dist/components/chat/entity-cards/onboarding-guide-card.d.ts.map +1 -0
  92. package/dist/components/chat/entity-cards/product-release-card-defaults.d.ts +21 -0
  93. package/dist/components/chat/entity-cards/product-release-card-defaults.d.ts.map +1 -0
  94. package/dist/components/chat/entity-cards/product-release-card.d.ts +12 -0
  95. package/dist/components/chat/entity-cards/product-release-card.d.ts.map +1 -0
  96. package/dist/components/chat/entity-cards/program-card-defaults.d.ts +32 -0
  97. package/dist/components/chat/entity-cards/program-card-defaults.d.ts.map +1 -0
  98. package/dist/components/chat/entity-cards/program-card.d.ts +37 -0
  99. package/dist/components/chat/entity-cards/program-card.d.ts.map +1 -0
  100. package/dist/components/chat/entity-cards/roadmap-card.d.ts +28 -0
  101. package/dist/components/chat/entity-cards/roadmap-card.d.ts.map +1 -0
  102. package/dist/components/chat/entity-cards/roadmap-vote-button.d.ts +12 -0
  103. package/dist/components/chat/entity-cards/roadmap-vote-button.d.ts.map +1 -0
  104. package/dist/components/chat/entity-cards/slack-message-card.d.ts +28 -0
  105. package/dist/components/chat/entity-cards/slack-message-card.d.ts.map +1 -0
  106. package/dist/components/chat/entity-cards/task-type-icon.d.ts +6 -0
  107. package/dist/components/chat/entity-cards/task-type-icon.d.ts.map +1 -0
  108. package/dist/components/chat/hooks/index.d.ts +10 -0
  109. package/dist/components/chat/hooks/index.d.ts.map +1 -1
  110. package/dist/components/chat/hooks/use-chat-attachment-image-gallery.d.ts +5 -0
  111. package/dist/components/chat/hooks/use-chat-attachment-image-gallery.d.ts.map +1 -0
  112. package/dist/components/chat/hooks/use-chat-attachments.d.ts +33 -0
  113. package/dist/components/chat/hooks/use-chat-attachments.d.ts.map +1 -0
  114. package/dist/components/chat/hooks/use-chat-card-item.d.ts +7 -0
  115. package/dist/components/chat/hooks/use-chat-card-item.d.ts.map +1 -0
  116. package/dist/components/chat/hooks/use-chat-identity.d.ts +44 -0
  117. package/dist/components/chat/hooks/use-chat-identity.d.ts.map +1 -0
  118. package/dist/components/chat/hooks/use-chat.d.ts +30 -0
  119. package/dist/components/chat/hooks/use-chat.d.ts.map +1 -0
  120. package/dist/components/chat/hooks/use-close-on-navigation.d.ts +2 -0
  121. package/dist/components/chat/hooks/use-close-on-navigation.d.ts.map +1 -0
  122. package/dist/components/chat/hooks/use-embedded-chat.d.ts +174 -0
  123. package/dist/components/chat/hooks/use-embedded-chat.d.ts.map +1 -0
  124. package/dist/components/chat/hooks/use-proxied-image-url.d.ts +18 -0
  125. package/dist/components/chat/hooks/use-proxied-image-url.d.ts.map +1 -0
  126. package/dist/components/chat/hooks/use-slash-commands.d.ts +32 -0
  127. package/dist/components/chat/hooks/use-slash-commands.d.ts.map +1 -0
  128. package/dist/components/chat/hooks/use-sse.d.ts +57 -0
  129. package/dist/components/chat/hooks/use-sse.d.ts.map +1 -0
  130. package/dist/components/chat/index.cjs +393 -0
  131. package/dist/components/chat/index.cjs.map +1 -0
  132. package/dist/components/chat/index.d.ts +5 -3
  133. package/dist/components/chat/index.d.ts.map +1 -1
  134. package/dist/components/chat/index.js +393 -0
  135. package/dist/components/chat/index.js.map +1 -0
  136. package/dist/components/chat/nav-link-anchor-via-runtime.d.ts +33 -0
  137. package/dist/components/chat/nav-link-anchor-via-runtime.d.ts.map +1 -0
  138. package/dist/components/chat/source-action-button.d.ts +39 -0
  139. package/dist/components/chat/source-action-button.d.ts.map +1 -0
  140. package/dist/components/chat/types/chat.types.d.ts +36 -0
  141. package/dist/components/chat/types/chat.types.d.ts.map +1 -1
  142. package/dist/components/chat/types/component.types.d.ts +56 -11
  143. package/dist/components/chat/types/component.types.d.ts.map +1 -1
  144. package/dist/components/chat/types/entities/blog.d.ts +14 -0
  145. package/dist/components/chat/types/entities/blog.d.ts.map +1 -0
  146. package/dist/components/chat/types/entities/case-study.d.ts +10 -0
  147. package/dist/components/chat/types/entities/case-study.d.ts.map +1 -0
  148. package/dist/components/chat/types/entities/content-ref.d.ts +23 -0
  149. package/dist/components/chat/types/entities/content-ref.d.ts.map +1 -0
  150. package/dist/components/chat/types/entities/customer-interview.d.ts +10 -0
  151. package/dist/components/chat/types/entities/customer-interview.d.ts.map +1 -0
  152. package/dist/components/chat/types/entities/data-room-doc.d.ts +37 -0
  153. package/dist/components/chat/types/entities/data-room-doc.d.ts.map +1 -0
  154. package/dist/components/chat/types/entities/github-activity.d.ts +29 -0
  155. package/dist/components/chat/types/entities/github-activity.d.ts.map +1 -0
  156. package/dist/components/chat/types/entities/hubspot-ticket.d.ts +39 -0
  157. package/dist/components/chat/types/entities/hubspot-ticket.d.ts.map +1 -0
  158. package/dist/components/chat/types/entities/index.d.ts +28 -0
  159. package/dist/components/chat/types/entities/index.d.ts.map +1 -0
  160. package/dist/components/chat/types/entities/investor-update.d.ts +83 -0
  161. package/dist/components/chat/types/entities/investor-update.d.ts.map +1 -0
  162. package/dist/components/chat/types/entities/onboarding-guide.d.ts +79 -0
  163. package/dist/components/chat/types/entities/onboarding-guide.d.ts.map +1 -0
  164. package/dist/components/chat/types/entities/program-types.d.ts +303 -0
  165. package/dist/components/chat/types/entities/program-types.d.ts.map +1 -0
  166. package/dist/components/chat/types/entities/roadmap-item.d.ts +41 -0
  167. package/dist/components/chat/types/entities/roadmap-item.d.ts.map +1 -0
  168. package/dist/components/chat/types/entities/slack-message.d.ts +28 -0
  169. package/dist/components/chat/types/entities/slack-message.d.ts.map +1 -0
  170. package/dist/components/chat/types/index.d.ts +1 -0
  171. package/dist/components/chat/types/index.d.ts.map +1 -1
  172. package/dist/components/chat/utils/agent-status-message.d.ts +18 -0
  173. package/dist/components/chat/utils/agent-status-message.d.ts.map +1 -0
  174. package/dist/components/chat/utils/auto-continuation-directive.d.ts +38 -0
  175. package/dist/components/chat/utils/auto-continuation-directive.d.ts.map +1 -0
  176. package/dist/components/chat/utils/chat-attachment-markdown.d.ts +114 -0
  177. package/dist/components/chat/utils/chat-attachment-markdown.d.ts.map +1 -0
  178. package/dist/components/chat/utils/chat-authed-fetch.d.ts +13 -0
  179. package/dist/components/chat/utils/chat-authed-fetch.d.ts.map +1 -0
  180. package/dist/components/chat/utils/chat-nav-resolution.d.ts +72 -0
  181. package/dist/components/chat/utils/chat-nav-resolution.d.ts.map +1 -0
  182. package/dist/components/chat/utils/chat-proxy-auth-storage.d.ts +43 -0
  183. package/dist/components/chat/utils/chat-proxy-auth-storage.d.ts.map +1 -0
  184. package/dist/components/chat/utils/chip-action-class.d.ts +16 -0
  185. package/dist/components/chat/utils/chip-action-class.d.ts.map +1 -0
  186. package/dist/components/chat/utils/chip-styles.d.ts +32 -0
  187. package/dist/components/chat/utils/chip-styles.d.ts.map +1 -0
  188. package/dist/components/chat/utils/clickup-task-type-utils.d.ts +38 -0
  189. package/dist/components/chat/utils/clickup-task-type-utils.d.ts.map +1 -0
  190. package/dist/components/chat/utils/compact-card-classes.d.ts +50 -0
  191. package/dist/components/chat/utils/compact-card-classes.d.ts.map +1 -0
  192. package/dist/components/chat/utils/decide-new-tab.d.ts +39 -0
  193. package/dist/components/chat/utils/decide-new-tab.d.ts.map +1 -0
  194. package/dist/components/chat/utils/external-app-urls.d.ts +14 -0
  195. package/dist/components/chat/utils/external-app-urls.d.ts.map +1 -0
  196. package/dist/components/chat/utils/flatten-assistant-content.d.ts +25 -0
  197. package/dist/components/chat/utils/flatten-assistant-content.d.ts.map +1 -0
  198. package/dist/components/chat/utils/icon-registry.d.ts +67 -0
  199. package/dist/components/chat/utils/icon-registry.d.ts.map +1 -0
  200. package/dist/components/chat/utils/index.d.ts +21 -0
  201. package/dist/components/chat/utils/index.d.ts.map +1 -1
  202. package/dist/components/chat/utils/is-cross-origin-url.d.ts +22 -0
  203. package/dist/components/chat/utils/is-cross-origin-url.d.ts.map +1 -0
  204. package/dist/components/chat/utils/nav-anchor-props.d.ts +54 -0
  205. package/dist/components/chat/utils/nav-anchor-props.d.ts.map +1 -0
  206. package/dist/components/chat/utils/nav-click-handler.d.ts +51 -0
  207. package/dist/components/chat/utils/nav-click-handler.d.ts.map +1 -0
  208. package/dist/components/chat/utils/scroll-anchor.d.ts +30 -0
  209. package/dist/components/chat/utils/scroll-anchor.d.ts.map +1 -0
  210. package/dist/components/chat/utils/slash-dispatch-utils.d.ts +109 -0
  211. package/dist/components/chat/utils/slash-dispatch-utils.d.ts.map +1 -0
  212. package/dist/components/chat/utils/source-icons.d.ts +8 -0
  213. package/dist/components/chat/utils/source-icons.d.ts.map +1 -0
  214. package/dist/components/chat/utils/source-row-cta.d.ts +111 -0
  215. package/dist/components/chat/utils/source-row-cta.d.ts.map +1 -0
  216. package/dist/components/features/figma-prototype-viewer.d.ts.map +1 -1
  217. package/dist/components/features/index.cjs +12 -6
  218. package/dist/components/features/index.cjs.map +1 -1
  219. package/dist/components/features/index.js +11 -5
  220. package/dist/components/features/video.d.ts.map +1 -1
  221. package/dist/components/icons/index.cjs +3 -3
  222. package/dist/components/icons/index.js +2 -2
  223. package/dist/components/index.cjs +274 -8
  224. package/dist/components/index.cjs.map +1 -1
  225. package/dist/components/index.js +273 -7
  226. package/dist/components/interactive-wrapper.d.ts +3 -3
  227. package/dist/components/navigation/index.cjs +12 -6
  228. package/dist/components/navigation/index.cjs.map +1 -1
  229. package/dist/components/navigation/index.js +11 -5
  230. package/dist/components/resizable.d.ts +1 -1
  231. package/dist/components/shared/product-release/product-release-card-skeleton.d.ts +1 -1
  232. package/dist/components/shared/product-release/product-release-card-skeleton.d.ts.map +1 -1
  233. package/dist/components/shared/product-release/product-release-card.d.ts +19 -12
  234. package/dist/components/shared/product-release/product-release-card.d.ts.map +1 -1
  235. package/dist/components/shared/product-release/release-detail-page.d.ts +2 -4
  236. package/dist/components/shared/product-release/release-detail-page.d.ts.map +1 -1
  237. package/dist/components/ui/button/button.d.ts +13 -0
  238. package/dist/components/ui/button/button.d.ts.map +1 -1
  239. package/dist/components/ui/dashboard-info-card.d.ts.map +1 -1
  240. package/dist/components/ui/entity-image.d.ts.map +1 -1
  241. package/dist/components/ui/file-manager/index.cjs +71 -70
  242. package/dist/components/ui/file-manager/index.cjs.map +1 -1
  243. package/dist/components/ui/file-manager/index.js +6 -5
  244. package/dist/components/ui/file-manager/index.js.map +1 -1
  245. package/dist/components/ui/hover-dropdown.d.ts +66 -0
  246. package/dist/components/ui/hover-dropdown.d.ts.map +1 -0
  247. package/dist/components/ui/index.cjs +276 -6
  248. package/dist/components/ui/index.cjs.map +1 -1
  249. package/dist/components/ui/index.d.ts +1 -0
  250. package/dist/components/ui/index.d.ts.map +1 -1
  251. package/dist/components/ui/index.js +278 -8
  252. package/dist/components/ui/simple-markdown-renderer.d.ts.map +1 -1
  253. package/dist/components/ui/square-avatar.d.ts.map +1 -1
  254. package/dist/contexts/chat-runtime-context.d.ts +109 -0
  255. package/dist/contexts/chat-runtime-context.d.ts.map +1 -0
  256. package/dist/contexts/endpoints-runtime-context.d.ts +28 -0
  257. package/dist/contexts/endpoints-runtime-context.d.ts.map +1 -0
  258. package/dist/contexts/index.cjs +30 -0
  259. package/dist/contexts/index.cjs.map +1 -0
  260. package/dist/contexts/index.d.ts +26 -0
  261. package/dist/contexts/index.d.ts.map +1 -0
  262. package/dist/contexts/index.js +30 -0
  263. package/dist/contexts/index.js.map +1 -0
  264. package/dist/contexts/use-outer-or-default.d.ts +29 -0
  265. package/dist/contexts/use-outer-or-default.d.ts.map +1 -0
  266. package/dist/embed-shims/index.cjs +51 -0
  267. package/dist/embed-shims/index.cjs.map +1 -0
  268. package/dist/embed-shims/index.d.ts +31 -0
  269. package/dist/embed-shims/index.d.ts.map +1 -0
  270. package/dist/embed-shims/index.js +51 -0
  271. package/dist/embed-shims/index.js.map +1 -0
  272. package/dist/embed-shims/next-dynamic.cjs +12 -0
  273. package/dist/embed-shims/next-dynamic.cjs.map +1 -0
  274. package/dist/embed-shims/next-dynamic.d.ts +47 -0
  275. package/dist/embed-shims/next-dynamic.d.ts.map +1 -0
  276. package/dist/embed-shims/next-dynamic.js +12 -0
  277. package/dist/embed-shims/next-dynamic.js.map +1 -0
  278. package/dist/embed-shims/next-image.cjs +12 -0
  279. package/dist/embed-shims/next-image.cjs.map +1 -0
  280. package/dist/embed-shims/next-image.d.ts +28 -0
  281. package/dist/embed-shims/next-image.d.ts.map +1 -0
  282. package/dist/embed-shims/next-image.js +12 -0
  283. package/dist/embed-shims/next-image.js.map +1 -0
  284. package/dist/embed-shims/next-link.cjs +14 -0
  285. package/dist/embed-shims/next-link.cjs.map +1 -0
  286. package/dist/embed-shims/next-link.d.ts +22 -0
  287. package/dist/embed-shims/next-link.d.ts.map +1 -0
  288. package/dist/embed-shims/next-link.js +14 -0
  289. package/dist/embed-shims/next-link.js.map +1 -0
  290. package/dist/embed-shims/next-navigation.cjs +30 -0
  291. package/dist/embed-shims/next-navigation.cjs.map +1 -0
  292. package/dist/embed-shims/next-navigation.d.ts +46 -0
  293. package/dist/embed-shims/next-navigation.d.ts.map +1 -0
  294. package/dist/embed-shims/next-navigation.js +30 -0
  295. package/dist/embed-shims/next-navigation.js.map +1 -0
  296. package/dist/hooks/index.cjs +10 -4
  297. package/dist/hooks/index.cjs.map +1 -1
  298. package/dist/hooks/index.d.ts +2 -0
  299. package/dist/hooks/index.d.ts.map +1 -1
  300. package/dist/hooks/index.js +9 -3
  301. package/dist/hooks/use-access-code-integration.d.ts +48 -0
  302. package/dist/hooks/use-access-code-integration.d.ts.map +1 -0
  303. package/dist/hooks/use-contact-submission.d.ts.map +1 -1
  304. package/dist/hooks/use-og-placeholder.d.ts +31 -0
  305. package/dist/hooks/use-og-placeholder.d.ts.map +1 -0
  306. package/dist/hooks/use-toast.d.ts +1 -1
  307. package/dist/index.cjs +367 -7
  308. package/dist/index.cjs.map +1 -1
  309. package/dist/index.js +378 -18
  310. package/dist/types/index.cjs.map +1 -1
  311. package/dist/types/index.js.map +1 -1
  312. package/dist/utils/access-code-client.d.ts +21 -37
  313. package/dist/utils/access-code-client.d.ts.map +1 -1
  314. package/dist/utils/cn.d.ts +0 -27
  315. package/dist/utils/cn.d.ts.map +1 -1
  316. package/dist/utils/color-analysis.d.ts +33 -0
  317. package/dist/utils/color-analysis.d.ts.map +1 -0
  318. package/dist/utils/date-formatters.d.ts +16 -5
  319. package/dist/utils/date-formatters.d.ts.map +1 -1
  320. package/dist/utils/fetch-priority.d.ts +3 -0
  321. package/dist/utils/fetch-priority.d.ts.map +1 -0
  322. package/dist/utils/format.d.ts +192 -1
  323. package/dist/utils/format.d.ts.map +1 -1
  324. package/dist/utils/image-proxy.d.ts +67 -2
  325. package/dist/utils/image-proxy.d.ts.map +1 -1
  326. package/dist/utils/index.cjs +1274 -155
  327. package/dist/utils/index.cjs.map +1 -1
  328. package/dist/utils/index.d.ts +19 -3
  329. package/dist/utils/index.d.ts.map +1 -1
  330. package/dist/utils/index.js +1200 -157
  331. package/dist/utils/index.js.map +1 -1
  332. package/dist/utils/local-storage-adapter.d.ts +46 -0
  333. package/dist/utils/local-storage-adapter.d.ts.map +1 -0
  334. package/dist/utils/source-icons.d.ts +78 -0
  335. package/dist/utils/source-icons.d.ts.map +1 -0
  336. package/package.json +29 -2
  337. package/src/components/announcement-bar.tsx +26 -4
  338. package/src/components/categories-cart.tsx +1 -1
  339. package/src/components/chat/chat-attachment-bar.tsx +323 -0
  340. package/src/components/chat/chat-container.tsx +39 -5
  341. package/src/components/chat/chat-input.tsx +7 -1
  342. package/src/components/chat/chat-message-enhanced.tsx +32 -22
  343. package/src/components/chat/chat-message-list.tsx +53 -4
  344. package/src/components/chat/chat-panel-context.tsx +37 -0
  345. package/src/components/chat/chat-ticket-list.tsx +1 -1
  346. package/src/components/chat/embeddable-chat.tsx +1106 -0
  347. package/src/components/chat/entity-cards/admin-content-card.tsx +155 -0
  348. package/src/components/chat/entity-cards/blog-card.tsx +259 -0
  349. package/src/components/chat/entity-cards/blog-image-placeholder.tsx +52 -0
  350. package/src/components/chat/entity-cards/campaign-card-admin.tsx +113 -0
  351. package/src/components/chat/entity-cards/case-study-card.tsx +192 -0
  352. package/src/components/chat/{chat-ticket-item.tsx → entity-cards/chat-ticket-item.tsx} +2 -2
  353. package/src/components/chat/{chat-video-entity-card.tsx → entity-cards/chat-video-entity-card.tsx} +2 -2
  354. package/src/components/chat/entity-cards/customer-interview-card.tsx +211 -0
  355. package/src/components/chat/entity-cards/data-room-doc-card.tsx +120 -0
  356. package/src/components/chat/entity-cards/dispatch.tsx +1093 -0
  357. package/src/components/chat/entity-cards/entity-author-card.tsx +193 -0
  358. package/src/components/chat/entity-cards/generic-entity-card.tsx +144 -0
  359. package/src/components/chat/entity-cards/github-activity-card.tsx +305 -0
  360. package/src/components/chat/entity-cards/hubspot-ticket-card.tsx +205 -0
  361. package/src/components/chat/entity-cards/index.ts +125 -0
  362. package/src/components/chat/entity-cards/investor-update-card.tsx +150 -0
  363. package/src/components/chat/entity-cards/onboarding-guide-card.tsx +326 -0
  364. package/src/components/chat/entity-cards/product-release-card-defaults.ts +57 -0
  365. package/src/components/chat/entity-cards/product-release-card.tsx +19 -0
  366. package/src/components/chat/entity-cards/program-card-defaults.ts +62 -0
  367. package/src/components/chat/entity-cards/program-card.tsx +451 -0
  368. package/src/components/chat/entity-cards/roadmap-card.tsx +356 -0
  369. package/src/components/chat/entity-cards/roadmap-vote-button.tsx +54 -0
  370. package/src/components/chat/entity-cards/slack-message-card.tsx +182 -0
  371. package/src/components/chat/entity-cards/task-type-icon.tsx +60 -0
  372. package/src/components/chat/hooks/index.ts +22 -0
  373. package/src/components/chat/hooks/use-chat-attachment-image-gallery.tsx +114 -0
  374. package/src/components/chat/hooks/use-chat-attachments.ts +429 -0
  375. package/src/components/chat/hooks/use-chat-card-item.ts +102 -0
  376. package/src/components/chat/hooks/use-chat-identity.ts +139 -0
  377. package/src/components/chat/hooks/use-chat.ts +501 -0
  378. package/src/components/chat/hooks/use-close-on-navigation.ts +87 -0
  379. package/src/components/chat/hooks/use-embedded-chat.ts +1023 -0
  380. package/src/components/chat/hooks/use-proxied-image-url.ts +31 -0
  381. package/src/components/chat/hooks/use-slash-commands.ts +106 -0
  382. package/src/components/chat/hooks/use-sse.ts +143 -0
  383. package/src/components/chat/index.ts +30 -4
  384. package/src/components/chat/nav-link-anchor-via-runtime.tsx +72 -0
  385. package/src/components/chat/source-action-button.tsx +120 -0
  386. package/src/components/chat/types/chat.types.ts +61 -0
  387. package/src/components/chat/types/component.types.ts +57 -11
  388. package/src/components/chat/types/entities/blog.ts +27 -0
  389. package/src/components/chat/types/entities/case-study.ts +14 -0
  390. package/src/components/chat/types/entities/content-ref.ts +23 -0
  391. package/src/components/chat/types/entities/customer-interview.ts +15 -0
  392. package/src/components/chat/types/entities/data-room-doc.ts +37 -0
  393. package/src/components/chat/types/entities/github-activity.ts +36 -0
  394. package/src/components/chat/types/entities/hubspot-ticket.ts +39 -0
  395. package/src/components/chat/types/entities/index.ts +28 -0
  396. package/src/components/chat/types/entities/investor-update.ts +100 -0
  397. package/src/components/chat/types/entities/onboarding-guide.ts +101 -0
  398. package/src/components/chat/types/entities/program-types.ts +433 -0
  399. package/src/components/chat/types/entities/roadmap-item.ts +42 -0
  400. package/src/components/chat/types/entities/slack-message.ts +28 -0
  401. package/src/components/chat/types/index.ts +1 -0
  402. package/src/components/chat/utils/agent-status-message.ts +52 -0
  403. package/src/components/chat/utils/auto-continuation-directive.ts +70 -0
  404. package/src/components/chat/utils/chat-attachment-markdown.ts +190 -0
  405. package/src/components/chat/utils/chat-authed-fetch.ts +73 -0
  406. package/src/components/chat/utils/chat-nav-resolution.ts +151 -0
  407. package/src/components/chat/utils/chat-proxy-auth-storage.ts +148 -0
  408. package/src/components/chat/utils/chip-action-class.ts +19 -0
  409. package/src/components/chat/utils/chip-styles.ts +51 -0
  410. package/src/components/chat/utils/clickup-task-type-utils.ts +59 -0
  411. package/src/components/chat/utils/compact-card-classes.ts +97 -0
  412. package/src/components/chat/utils/decide-new-tab.ts +57 -0
  413. package/src/components/chat/utils/external-app-urls.ts +19 -0
  414. package/src/components/chat/utils/flatten-assistant-content.ts +35 -0
  415. package/src/components/chat/utils/icon-registry.ts +297 -0
  416. package/src/components/chat/utils/index.ts +133 -0
  417. package/src/components/chat/utils/is-cross-origin-url.ts +28 -0
  418. package/src/components/chat/utils/nav-anchor-props.ts +78 -0
  419. package/src/components/chat/utils/nav-click-handler.ts +81 -0
  420. package/src/components/chat/utils/scroll-anchor.ts +35 -0
  421. package/src/components/chat/utils/slash-dispatch-utils.ts +183 -0
  422. package/src/components/chat/utils/source-icons.ts +14 -0
  423. package/src/components/chat/utils/source-row-cta.ts +215 -0
  424. package/src/components/empty-state.tsx +1 -1
  425. package/src/components/features/board/ticket-card.tsx +1 -1
  426. package/src/components/features/figma-prototype-viewer.tsx +2 -1
  427. package/src/components/features/media-gallery-manager.tsx +1 -1
  428. package/src/components/features/parallax-image-showcase.tsx +1 -1
  429. package/src/components/features/release-media-manager.tsx +1 -1
  430. package/src/components/features/seo-editor-preview.tsx +1 -1
  431. package/src/components/features/video.tsx +54 -3
  432. package/src/components/footer-waitlist-button.tsx +1 -1
  433. package/src/components/navigation/header.tsx +1 -1
  434. package/src/components/shared/onboarding/onboarding-step-card.tsx +1 -1
  435. package/src/components/shared/product-release/product-release-card-skeleton.tsx +8 -44
  436. package/src/components/shared/product-release/product-release-card.tsx +31 -116
  437. package/src/components/shared/product-release/release-detail-page.tsx +12 -16
  438. package/src/components/ui/actions-menu.tsx +1 -1
  439. package/src/components/ui/button/button.tsx +41 -11
  440. package/src/components/ui/button/split-button.tsx +1 -1
  441. package/src/components/ui/dashboard-info-card.tsx +2 -3
  442. package/src/components/ui/data-table/data-table-row.tsx +1 -1
  443. package/src/components/ui/entity-image.tsx +2 -8
  444. package/src/components/ui/hover-dropdown.tsx +258 -0
  445. package/src/components/ui/image-gallery-modal.tsx +1 -1
  446. package/src/components/ui/index.ts +1 -0
  447. package/src/components/ui/markdown-editor.tsx +1 -1
  448. package/src/components/ui/more-actions-menu.tsx +1 -1
  449. package/src/components/ui/organization-card.tsx +1 -1
  450. package/src/components/ui/simple-markdown-renderer.tsx +53 -5
  451. package/src/components/ui/square-avatar.tsx +3 -12
  452. package/src/components/ui/tab-navigation.tsx +1 -1
  453. package/src/components/ui/table/table-row.tsx +1 -1
  454. package/src/components/unified-filter-logic.tsx +1 -1
  455. package/src/components/unified-pagination.tsx +1 -1
  456. package/src/components/user-summary-stub.tsx +1 -1
  457. package/src/components/vendor-display-button.tsx +1 -1
  458. package/src/components/vendor-icon.tsx +1 -1
  459. package/src/contexts/chat-runtime-context.tsx +163 -0
  460. package/src/contexts/endpoints-runtime-context.tsx +68 -0
  461. package/src/contexts/index.ts +38 -0
  462. package/src/contexts/use-outer-or-default.ts +42 -0
  463. package/src/embed-shims/index.ts +42 -0
  464. package/src/embed-shims/next-dynamic.tsx +70 -0
  465. package/src/embed-shims/next-image.tsx +114 -0
  466. package/src/embed-shims/next-link.tsx +91 -0
  467. package/src/embed-shims/next-navigation.tsx +201 -0
  468. package/src/hooks/index.ts +9 -0
  469. package/src/hooks/state/use-api-params.ts +1 -1
  470. package/src/hooks/state/use-query-params.ts +1 -1
  471. package/src/hooks/use-access-code-integration.ts +107 -0
  472. package/src/hooks/use-contact-submission.ts +7 -3
  473. package/src/hooks/use-og-placeholder.ts +45 -0
  474. package/src/stories/OnboardingStepCard.stories.tsx +140 -0
  475. package/src/styles/chat-animations.css +65 -0
  476. package/src/styles/index.css +1 -0
  477. package/src/utils/access-code-client.ts +32 -75
  478. package/src/utils/cn.ts +0 -65
  479. package/src/utils/color-analysis.ts +205 -0
  480. package/src/utils/date-formatters.ts +54 -11
  481. package/src/utils/fetch-priority.ts +41 -0
  482. package/src/utils/format.ts +525 -1
  483. package/src/utils/image-proxy.ts +127 -7
  484. package/src/utils/index.ts +145 -5
  485. package/src/utils/local-storage-adapter.ts +105 -0
  486. package/src/utils/source-icons.ts +219 -0
  487. package/dist/chunk-25LVV26X.cjs.map +0 -1
  488. package/dist/chunk-ARQ4XP64.cjs.map +0 -1
  489. package/dist/chunk-CPXLQ57U.js.map +0 -1
  490. package/dist/chunk-LY34ORX6.js.map +0 -1
  491. package/dist/chunk-RMB5DVED.cjs.map +0 -1
  492. package/dist/chunk-SZPJ5R5B.js.map +0 -1
  493. package/dist/chunk-UC43NICZ.cjs.map +0 -1
  494. package/dist/chunk-XGL5FKIK.js.map +0 -1
  495. package/dist/components/chat/block-card.d.ts.map +0 -1
  496. package/dist/components/chat/chat-ticket-item.d.ts.map +0 -1
  497. package/dist/components/chat/chat-video-entity-card.d.ts.map +0 -1
  498. package/dist/utils/dynamic-icons.d.ts +0 -26
  499. package/dist/utils/dynamic-icons.d.ts.map +0 -1
  500. package/dist/utils/format-relative-time.d.ts +0 -21
  501. package/dist/utils/format-relative-time.d.ts.map +0 -1
  502. package/src/utils/.dynamic-icons.md +0 -30
  503. package/src/utils/.format-relative-time.md +0 -36
  504. package/src/utils/dynamic-icons.tsx +0 -120
  505. package/src/utils/format-relative-time.ts +0 -52
  506. /package/dist/{chunk-N57KWHDB.js.map → chunk-CIPO6DXK.js.map} +0 -0
  507. /package/dist/components/chat/{block-card.d.ts → entity-cards/block-card.d.ts} +0 -0
  508. /package/dist/components/chat/{chat-ticket-item.d.ts → entity-cards/chat-ticket-item.d.ts} +0 -0
  509. /package/src/components/chat/{block-card.tsx → entity-cards/block-card.tsx} +0 -0
@@ -0,0 +1,47 @@
1
+ "use client";
2
+ import {
3
+ __esm
4
+ } from "./chunk-GGWZFCYS.js";
5
+
6
+ // src/embed-shims/next-link.tsx
7
+ import {
8
+ forwardRef
9
+ } from "react";
10
+ import { jsx } from "react/jsx-runtime";
11
+ function registerLink(component) {
12
+ impl = component;
13
+ }
14
+ var impl, Link, next_link_default;
15
+ var init_next_link = __esm({
16
+ "src/embed-shims/next-link.tsx"() {
17
+ impl = null;
18
+ Link = forwardRef(function NextLinkShim(props, ref) {
19
+ if (impl) {
20
+ const Real = impl;
21
+ return /* @__PURE__ */ jsx(Real, { ref, ...props });
22
+ }
23
+ const {
24
+ href,
25
+ children,
26
+ prefetch: _prefetch,
27
+ replace: _replace,
28
+ scroll: _scroll,
29
+ shallow: _shallow,
30
+ passHref: _passHref,
31
+ legacyBehavior: _legacyBehavior,
32
+ locale: _locale,
33
+ ...rest
34
+ } = props;
35
+ const hrefStr = typeof href === "string" ? href : href?.pathname ? href.pathname : void 0;
36
+ return /* @__PURE__ */ jsx("a", { ref, href: hrefStr, ...rest, children });
37
+ });
38
+ next_link_default = Link;
39
+ }
40
+ });
41
+
42
+ export {
43
+ registerLink,
44
+ next_link_default,
45
+ init_next_link
46
+ };
47
+ //# sourceMappingURL=chunk-OHPI2HRK.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../src/embed-shims/next-link.tsx"],"sourcesContent":["/**\n * `next/link` shim — environment-aware Link component.\n *\n * Defaults to a plain `<a>` so non-Next hosts (Vite, CRA, esbuild)\n * work out of the box. Next.js hosts can opt into the REAL `next/link`\n * (with client-router prefetching) by calling {@link registerLink}\n * ONCE at app init:\n *\n * // hub: lib/embed-shim-registration.ts\n * import NextLink from 'next/link'\n * import { registerLink } from '@flamingo-stack/openframe-frontend-core/embed-shims'\n * registerLink(NextLink)\n *\n * After registration, every lib component that renders this shim\n * delegates to `NextLink` — prefetch, replace, scroll, locale, etc.\n * all work as expected. Without registration, the shim falls through\n * to the plain `<a>` path that drops Next-specific props.\n *\n * Lib internals import this shim directly (relative path); hub-side\n * code goes through the barrel (`@flamingo-stack/.../embed-shims`).\n */\n'use client'\nimport {\n forwardRef,\n type AnchorHTMLAttributes,\n type ComponentType,\n type ReactNode,\n} from 'react'\n\ntype LinkProps = Omit<AnchorHTMLAttributes<HTMLAnchorElement>, 'href'> & {\n href?: string | { pathname?: string; query?: Record<string, string> }\n prefetch?: boolean | null\n replace?: boolean\n scroll?: boolean\n shallow?: boolean\n passHref?: boolean\n legacyBehavior?: boolean\n locale?: string | false\n children?: ReactNode\n}\n\nlet impl: ComponentType<any> | null = null\n\n/**\n * Register the real `next/link` so this shim delegates to it instead\n * of rendering a plain `<a>`. Call ONCE at app init in a Next.js host.\n */\nexport function registerLink(component: ComponentType<any>): void {\n impl = component\n}\n\nconst Link = forwardRef<HTMLAnchorElement, LinkProps>(function NextLinkShim(\n props,\n ref,\n) {\n // Real impl path — registered by the host. Hand off untouched so\n // every Next-specific prop (prefetch, replace, scroll, locale…)\n // reaches the real component intact.\n if (impl) {\n const Real = impl\n return <Real ref={ref} {...props} />\n }\n\n // Fallback path — plain <a>. Drops Next-only props and reduces\n // `UrlObject` href to its pathname.\n const {\n href,\n children,\n prefetch: _prefetch,\n replace: _replace,\n scroll: _scroll,\n shallow: _shallow,\n passHref: _passHref,\n legacyBehavior: _legacyBehavior,\n locale: _locale,\n ...rest\n } = props\n const hrefStr =\n typeof href === 'string'\n ? href\n : href?.pathname\n ? href.pathname\n : undefined\n return (\n <a ref={ref} href={hrefStr} {...rest}>\n {children}\n </a>\n )\n})\n\nexport default Link\n"],"mappings":";;;;;;AAsBA;AAAA,EACE;AAAA,OAIK;AAiCI;AAbJ,SAAS,aAAa,WAAqC;AAChE,SAAO;AACT;AAjDA,IAyCI,MAUE,MAuCC;AA1FP;AAAA;AAyCA,IAAI,OAAkC;AAUtC,IAAM,OAAO,WAAyC,SAAS,aAC7D,OACA,KACA;AAIA,UAAI,MAAM;AACR,cAAM,OAAO;AACb,eAAO,oBAAC,QAAK,KAAW,GAAG,OAAO;AAAA,MACpC;AAIA,YAAM;AAAA,QACJ;AAAA,QACA;AAAA,QACA,UAAU;AAAA,QACV,SAAS;AAAA,QACT,QAAQ;AAAA,QACR,SAAS;AAAA,QACT,UAAU;AAAA,QACV,gBAAgB;AAAA,QAChB,QAAQ;AAAA,QACR,GAAG;AAAA,MACL,IAAI;AACJ,YAAM,UACJ,OAAO,SAAS,WACZ,OACA,MAAM,WACJ,KAAK,WACL;AACR,aACE,oBAAC,OAAE,KAAU,MAAM,SAAU,GAAG,MAC7B,UACH;AAAA,IAEJ,CAAC;AAED,IAAO,oBAAQ;AAAA;AAAA;","names":[]}
@@ -0,0 +1,121 @@
1
+ "use client";
2
+ import {
3
+ __esm
4
+ } from "./chunk-GGWZFCYS.js";
5
+
6
+ // src/embed-shims/next-navigation.tsx
7
+ import { useEffect, useState } from "react";
8
+ function registerNavigation(nav) {
9
+ impl = { ...impl, ...nav };
10
+ }
11
+ function fallbackUseRouter() {
12
+ if (typeof window === "undefined") return noopRouter;
13
+ return {
14
+ push: (href) => window.location.assign(href),
15
+ replace: (href) => window.location.replace(href),
16
+ back: () => window.history.back(),
17
+ forward: () => window.history.forward(),
18
+ refresh: () => window.location.reload(),
19
+ prefetch: () => {
20
+ }
21
+ };
22
+ }
23
+ function readLocation(read, fallback) {
24
+ return typeof window === "undefined" ? fallback : read();
25
+ }
26
+ function useLocationSubscription() {
27
+ const [tick, setTick] = useState(0);
28
+ useEffect(() => {
29
+ if (typeof window === "undefined") return;
30
+ const onChange = () => setTick((t) => t + 1);
31
+ window.addEventListener("popstate", onChange);
32
+ return () => window.removeEventListener("popstate", onChange);
33
+ }, []);
34
+ return tick;
35
+ }
36
+ function fallbackUsePathname() {
37
+ useLocationSubscription();
38
+ return readLocation(() => window.location.pathname, "/");
39
+ }
40
+ function fallbackUseSearchParams() {
41
+ useLocationSubscription();
42
+ return readLocation(
43
+ () => new URLSearchParams(window.location.search),
44
+ new URLSearchParams()
45
+ );
46
+ }
47
+ function fallbackUseParams() {
48
+ return {};
49
+ }
50
+ function fallbackRedirect(url) {
51
+ if (typeof window !== "undefined") window.location.assign(url);
52
+ throw new Error(`[next-navigation shim] redirect(${url})`);
53
+ }
54
+ function fallbackPermanentRedirect(url) {
55
+ if (typeof window !== "undefined") window.location.replace(url);
56
+ throw new Error(`[next-navigation shim] permanentRedirect(${url})`);
57
+ }
58
+ function fallbackNotFound() {
59
+ throw new Error("[next-navigation shim] notFound()");
60
+ }
61
+ function useRouter() {
62
+ return (impl.useRouter ?? fallbackUseRouter)();
63
+ }
64
+ function usePathname() {
65
+ return (impl.usePathname ?? fallbackUsePathname)();
66
+ }
67
+ function useSearchParams() {
68
+ return (impl.useSearchParams ?? fallbackUseSearchParams)();
69
+ }
70
+ function useParams() {
71
+ return (impl.useParams ?? fallbackUseParams)();
72
+ }
73
+ function redirect(url, type) {
74
+ return (impl.redirect ?? fallbackRedirect)(url, type);
75
+ }
76
+ function permanentRedirect(url, type) {
77
+ return (impl.permanentRedirect ?? fallbackPermanentRedirect)(url, type);
78
+ }
79
+ function notFound() {
80
+ return (impl.notFound ?? fallbackNotFound)();
81
+ }
82
+ var impl, noopRouter, RedirectType, ServerInsertedHTMLContext;
83
+ var init_next_navigation = __esm({
84
+ "src/embed-shims/next-navigation.tsx"() {
85
+ impl = {};
86
+ noopRouter = {
87
+ push: () => {
88
+ },
89
+ replace: () => {
90
+ },
91
+ back: () => {
92
+ },
93
+ forward: () => {
94
+ },
95
+ refresh: () => {
96
+ },
97
+ prefetch: () => {
98
+ }
99
+ };
100
+ RedirectType = {
101
+ push: "push",
102
+ replace: "replace"
103
+ };
104
+ ServerInsertedHTMLContext = null;
105
+ }
106
+ });
107
+
108
+ export {
109
+ registerNavigation,
110
+ useRouter,
111
+ usePathname,
112
+ useSearchParams,
113
+ useParams,
114
+ redirect,
115
+ permanentRedirect,
116
+ notFound,
117
+ RedirectType,
118
+ ServerInsertedHTMLContext,
119
+ init_next_navigation
120
+ };
121
+ //# sourceMappingURL=chunk-PLJLE4A4.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../src/embed-shims/next-navigation.tsx"],"sourcesContent":["/**\n * `next/navigation` shim — environment-aware app-router hooks.\n *\n * Defaults to lightweight stubs backed by `window.location` and\n * `URLSearchParams` so lib components that read the URL work outside\n * a Next.js router shell. Next.js hosts can opt into the REAL\n * `next/navigation` exports (full client-router integration —\n * `router.replace(href, { scroll: false })`, etc.) by calling\n * {@link registerNavigation} ONCE at app init:\n *\n * // hub: lib/embed-shim-registration.ts\n * import {\n * useRouter, usePathname, useSearchParams, useParams,\n * redirect, permanentRedirect, notFound,\n * } from 'next/navigation'\n * import { registerNavigation } from '@flamingo-stack/openframe-frontend-core/embed-shims'\n * registerNavigation({\n * useRouter, usePathname, useSearchParams, useParams,\n * redirect, permanentRedirect, notFound,\n * })\n *\n * After registration, every exported hook in this file delegates to\n * the real implementation. Without registration, the stubs run:\n *\n * - `useRouter()` → push/replace use `window.location.assign/replace`;\n * back/forward use `history.back/forward`; refresh reloads; prefetch\n * is a no-op.\n * - `usePathname()` → returns `window.location.pathname` (popstate-\n * subscribed so back/forward re-renders).\n * - `useSearchParams()` → returns `URLSearchParams` view of\n * `window.location.search` (popstate-subscribed).\n * - `useParams()` → returns `{}` — embedders that need dynamic\n * params should parse them from `usePathname()` themselves.\n * - `notFound()` / `redirect()` / `permanentRedirect()` —\n * best-effort equivalents using `window.location`.\n *\n * The fallback path subscribes to `popstate` only. Programmatic\n * `pushState`/`replaceState` does NOT fire popstate, so the fallback\n * does not auto-re-render on programmatic navigation. Embedders that\n * need that should register a real router or supply their own.\n */\n'use client'\nimport { useEffect, useState } from 'react'\n\n// --- Router shape — matches Next's AppRouterInstance surface enough to\n// --- satisfy hub callsites that pass options like `{ scroll: false }`.\ninterface NavigateOptions {\n scroll?: boolean\n}\n\ninterface PrefetchOptions {\n kind?: unknown\n}\n\ninterface RouterStub {\n push: (href: string, options?: NavigateOptions) => void\n replace: (href: string, options?: NavigateOptions) => void\n back: () => void\n forward: () => void\n refresh: () => void\n prefetch: (href: string, options?: PrefetchOptions) => void\n}\n\n// --- Registration surface — partial so a host can register only the\n// --- hooks it needs (e.g. routes that don't use redirect()).\nexport interface NavigationImpl {\n useRouter: () => RouterStub\n usePathname: () => string\n useSearchParams: () => URLSearchParams\n useParams: <T extends Record<string, string | string[]>>() => T\n redirect: (url: string, type?: unknown) => never\n permanentRedirect: (url: string, type?: unknown) => never\n notFound: () => never\n}\n\nlet impl: Partial<NavigationImpl> = {}\n\n/**\n * Register real `next/navigation` exports. Merges with any prior\n * registration so partial-overrides are safe. Call ONCE at app init\n * in a Next.js host.\n */\nexport function registerNavigation(nav: Partial<NavigationImpl>): void {\n impl = { ...impl, ...nav }\n}\n\n// --- Fallback impls ----------------------------------------------------\n\nconst noopRouter: RouterStub = {\n push: () => {},\n replace: () => {},\n back: () => {},\n forward: () => {},\n refresh: () => {},\n prefetch: () => {},\n}\n\nfunction fallbackUseRouter(): RouterStub {\n if (typeof window === 'undefined') return noopRouter\n return {\n push: (href: string) => window.location.assign(href),\n replace: (href: string) => window.location.replace(href),\n back: () => window.history.back(),\n forward: () => window.history.forward(),\n refresh: () => window.location.reload(),\n prefetch: () => {},\n }\n}\n\nfunction readLocation<T>(read: () => T, fallback: T): T {\n return typeof window === 'undefined' ? fallback : read()\n}\n\n/** Subscribes to `popstate` only. pushState/replaceState do NOT fire\n * popstate by design — callers that mutate the URL programmatically\n * (and want their component to re-render in response) need a real\n * router. */\nfunction useLocationSubscription(): number {\n const [tick, setTick] = useState(0)\n useEffect(() => {\n if (typeof window === 'undefined') return\n const onChange = () => setTick((t) => t + 1)\n window.addEventListener('popstate', onChange)\n return () => window.removeEventListener('popstate', onChange)\n }, [])\n return tick\n}\n\nfunction fallbackUsePathname(): string {\n useLocationSubscription()\n return readLocation(() => window.location.pathname, '/')\n}\n\nfunction fallbackUseSearchParams(): URLSearchParams {\n useLocationSubscription()\n return readLocation(\n () => new URLSearchParams(window.location.search),\n new URLSearchParams(),\n )\n}\n\nfunction fallbackUseParams<T extends Record<string, string | string[]>>(): T {\n return {} as T\n}\n\nfunction fallbackRedirect(url: string): never {\n if (typeof window !== 'undefined') window.location.assign(url)\n throw new Error(`[next-navigation shim] redirect(${url})`)\n}\n\nfunction fallbackPermanentRedirect(url: string): never {\n if (typeof window !== 'undefined') window.location.replace(url)\n throw new Error(`[next-navigation shim] permanentRedirect(${url})`)\n}\n\nfunction fallbackNotFound(): never {\n throw new Error('[next-navigation shim] notFound()')\n}\n\n// --- Public surface — each export checks the registry and falls\n// --- through to the fallback. Hooks must remain hooks (no early-\n// --- return-before-hook) — the registry lookup is itself synchronous\n// --- and the registered impl is a hook in its own right.\n\nexport function useRouter(): RouterStub {\n return (impl.useRouter ?? fallbackUseRouter)()\n}\n\nexport function usePathname(): string {\n return (impl.usePathname ?? fallbackUsePathname)()\n}\n\nexport function useSearchParams(): URLSearchParams {\n return (impl.useSearchParams ?? fallbackUseSearchParams)()\n}\n\nexport function useParams<T extends Record<string, string | string[]>>(): T {\n return ((impl.useParams as (() => T) | undefined) ?? fallbackUseParams)()\n}\n\nexport function redirect(url: string, type?: unknown): never {\n return (impl.redirect ?? fallbackRedirect)(url, type)\n}\n\nexport function permanentRedirect(url: string, type?: unknown): never {\n return (impl.permanentRedirect ?? fallbackPermanentRedirect)(url, type)\n}\n\nexport function notFound(): never {\n return (impl.notFound ?? fallbackNotFound)()\n}\n\n/** Match Next's RedirectType enum surface for code that imports it. */\nexport const RedirectType = {\n push: 'push' as const,\n replace: 'replace' as const,\n}\n\n/** Match Next's ServerInsertedHTMLContext surface — non-functional in\n * the embed environment but importable so consumers don't crash. */\nexport const ServerInsertedHTMLContext = null as any\n"],"mappings":";;;;;;AA0CA,SAAS,WAAW,gBAAgB;AAwC7B,SAAS,mBAAmB,KAAoC;AACrE,SAAO,EAAE,GAAG,MAAM,GAAG,IAAI;AAC3B;AAaA,SAAS,oBAAgC;AACvC,MAAI,OAAO,WAAW,YAAa,QAAO;AAC1C,SAAO;AAAA,IACL,MAAM,CAAC,SAAiB,OAAO,SAAS,OAAO,IAAI;AAAA,IACnD,SAAS,CAAC,SAAiB,OAAO,SAAS,QAAQ,IAAI;AAAA,IACvD,MAAM,MAAM,OAAO,QAAQ,KAAK;AAAA,IAChC,SAAS,MAAM,OAAO,QAAQ,QAAQ;AAAA,IACtC,SAAS,MAAM,OAAO,SAAS,OAAO;AAAA,IACtC,UAAU,MAAM;AAAA,IAAC;AAAA,EACnB;AACF;AAEA,SAAS,aAAgB,MAAe,UAAgB;AACtD,SAAO,OAAO,WAAW,cAAc,WAAW,KAAK;AACzD;AAMA,SAAS,0BAAkC;AACzC,QAAM,CAAC,MAAM,OAAO,IAAI,SAAS,CAAC;AAClC,YAAU,MAAM;AACd,QAAI,OAAO,WAAW,YAAa;AACnC,UAAM,WAAW,MAAM,QAAQ,CAAC,MAAM,IAAI,CAAC;AAC3C,WAAO,iBAAiB,YAAY,QAAQ;AAC5C,WAAO,MAAM,OAAO,oBAAoB,YAAY,QAAQ;AAAA,EAC9D,GAAG,CAAC,CAAC;AACL,SAAO;AACT;AAEA,SAAS,sBAA8B;AACrC,0BAAwB;AACxB,SAAO,aAAa,MAAM,OAAO,SAAS,UAAU,GAAG;AACzD;AAEA,SAAS,0BAA2C;AAClD,0BAAwB;AACxB,SAAO;AAAA,IACL,MAAM,IAAI,gBAAgB,OAAO,SAAS,MAAM;AAAA,IAChD,IAAI,gBAAgB;AAAA,EACtB;AACF;AAEA,SAAS,oBAAoE;AAC3E,SAAO,CAAC;AACV;AAEA,SAAS,iBAAiB,KAAoB;AAC5C,MAAI,OAAO,WAAW,YAAa,QAAO,SAAS,OAAO,GAAG;AAC7D,QAAM,IAAI,MAAM,mCAAmC,GAAG,GAAG;AAC3D;AAEA,SAAS,0BAA0B,KAAoB;AACrD,MAAI,OAAO,WAAW,YAAa,QAAO,SAAS,QAAQ,GAAG;AAC9D,QAAM,IAAI,MAAM,4CAA4C,GAAG,GAAG;AACpE;AAEA,SAAS,mBAA0B;AACjC,QAAM,IAAI,MAAM,mCAAmC;AACrD;AAOO,SAAS,YAAwB;AACtC,UAAQ,KAAK,aAAa,mBAAmB;AAC/C;AAEO,SAAS,cAAsB;AACpC,UAAQ,KAAK,eAAe,qBAAqB;AACnD;AAEO,SAAS,kBAAmC;AACjD,UAAQ,KAAK,mBAAmB,yBAAyB;AAC3D;AAEO,SAAS,YAA4D;AAC1E,UAAS,KAAK,aAAuC,mBAAmB;AAC1E;AAEO,SAAS,SAAS,KAAa,MAAuB;AAC3D,UAAQ,KAAK,YAAY,kBAAkB,KAAK,IAAI;AACtD;AAEO,SAAS,kBAAkB,KAAa,MAAuB;AACpE,UAAQ,KAAK,qBAAqB,2BAA2B,KAAK,IAAI;AACxE;AAEO,SAAS,WAAkB;AAChC,UAAQ,KAAK,YAAY,kBAAkB;AAC7C;AA9LA,IA2EI,MAaE,YAyGO,cAOA;AAxMb;AAAA;AA2EA,IAAI,OAAgC,CAAC;AAarC,IAAM,aAAyB;AAAA,MAC7B,MAAM,MAAM;AAAA,MAAC;AAAA,MACb,SAAS,MAAM;AAAA,MAAC;AAAA,MAChB,MAAM,MAAM;AAAA,MAAC;AAAA,MACb,SAAS,MAAM;AAAA,MAAC;AAAA,MAChB,SAAS,MAAM;AAAA,MAAC;AAAA,MAChB,UAAU,MAAM;AAAA,MAAC;AAAA,IACnB;AAkGO,IAAM,eAAe;AAAA,MAC1B,MAAM;AAAA,MACN,SAAS;AAAA,IACX;AAIO,IAAM,4BAA4B;AAAA;AAAA;","names":[]}
@@ -1,14 +1,4 @@
1
1
  "use client";
2
- import {
3
- FlamingoLogo,
4
- MiamiCyberGangLogoFaceOnly,
5
- OpenFrameLogo,
6
- OpenmspLogo
7
- } from "./chunk-N57KWHDB.js";
8
- import {
9
- cn,
10
- init_cn
11
- } from "./chunk-SZPJ5R5B.js";
12
2
  import {
13
3
  AuthentikLogoIcon,
14
4
  Chevron02DownIcon,
@@ -18,6 +8,24 @@ import {
18
8
  TacticalRmmLogoIcon,
19
9
  XmarkIcon
20
10
  } from "./chunk-J2C2TI5Z.js";
11
+ import {
12
+ useRequiredEndpointsRuntime
13
+ } from "./chunk-MJNXIEV2.js";
14
+ import {
15
+ init_next_navigation,
16
+ useRouter,
17
+ useSearchParams
18
+ } from "./chunk-PLJLE4A4.js";
19
+ import {
20
+ FlamingoLogo,
21
+ MiamiCyberGangLogoFaceOnly,
22
+ OpenFrameLogo,
23
+ OpenmspLogo
24
+ } from "./chunk-CIPO6DXK.js";
25
+ import {
26
+ cn,
27
+ init_cn
28
+ } from "./chunk-KSOOKNBG.js";
21
29
 
22
30
  // src/hooks/ui/use-debounce.ts
23
31
  import { useState, useEffect } from "react";
@@ -1399,18 +1407,19 @@ var useToast = () => ({
1399
1407
 
1400
1408
  // src/hooks/use-contact-submission.ts
1401
1409
  import { useState as useState13, useCallback as useCallback6, useEffect as useEffect9 } from "react";
1402
- import { useRouter } from "next/navigation";
1410
+ init_next_navigation();
1403
1411
  function useContactSubmission(options = {}) {
1404
1412
  const { userId, successRedirectUrl, successToastMessage, onSuccess } = options;
1405
1413
  const { toast: toast2 } = useToast();
1406
1414
  const router = useRouter();
1415
+ const { contactUrl } = useRequiredEndpointsRuntime();
1407
1416
  const [isSubmitting, setIsSubmitting] = useState13(false);
1408
1417
  const [isSuccess, setIsSuccess] = useState13(false);
1409
1418
  const submit = useCallback6(async (formData) => {
1410
1419
  if (isSubmitting) return;
1411
1420
  setIsSubmitting(true);
1412
1421
  try {
1413
- const response = await fetch("/api/contact", {
1422
+ const response = await fetch(contactUrl, {
1414
1423
  method: "POST",
1415
1424
  headers: { "Content-Type": "application/json" },
1416
1425
  body: JSON.stringify({
@@ -1440,7 +1449,7 @@ function useContactSubmission(options = {}) {
1440
1449
  } finally {
1441
1450
  setIsSubmitting(false);
1442
1451
  }
1443
- }, [isSubmitting, toast2, userId, successToastMessage]);
1452
+ }, [isSubmitting, toast2, userId, successToastMessage, contactUrl]);
1444
1453
  useEffect9(() => {
1445
1454
  if (isSuccess && successRedirectUrl) {
1446
1455
  console.log("\u{1F680} Contact submission successful, redirecting to:", successRedirectUrl);
@@ -1828,8 +1837,8 @@ function useAuthenticatedImage(imageUrl, refreshKey, config) {
1828
1837
  }
1829
1838
 
1830
1839
  // src/hooks/state/use-query-params.ts
1840
+ init_next_navigation();
1831
1841
  import { useEffect as useEffect13, useState as useState18, useMemo as useMemo3, useCallback as useCallback9 } from "react";
1832
- import { useRouter as useRouter2, useSearchParams } from "next/navigation";
1833
1842
 
1834
1843
  // src/hooks/state/graphql-parser.ts
1835
1844
  import {
@@ -2289,7 +2298,7 @@ var introspector = new GraphQLIntrospector();
2289
2298
 
2290
2299
  // src/hooks/state/use-query-params.ts
2291
2300
  function useQueryParams(query, options = {}) {
2292
- const router = useRouter2();
2301
+ const router = useRouter();
2293
2302
  const searchParams = useSearchParams();
2294
2303
  const [isLoading, setIsLoading] = useState18(true);
2295
2304
  const [isReady, setIsReady] = useState18(false);
@@ -2449,7 +2458,7 @@ function applyParamMapping(schema, mapping) {
2449
2458
  }
2450
2459
 
2451
2460
  // src/hooks/state/use-api-params.ts
2452
- import { useRouter as useRouter3, useSearchParams as useSearchParams2 } from "next/navigation";
2461
+ init_next_navigation();
2453
2462
  import { useCallback as useCallback10, useMemo as useMemo4, useRef as useRef9 } from "react";
2454
2463
  function useContentStable(value, key) {
2455
2464
  const ref = useRef9(void 0);
@@ -2465,8 +2474,8 @@ function reuseIfShallowEqual(prev, next) {
2465
2474
  return prev;
2466
2475
  }
2467
2476
  function useApiParams(schema, options = {}) {
2468
- const router = useRouter3();
2469
- const searchParamsLive = useSearchParams2();
2477
+ const router = useRouter();
2478
+ const searchParamsLive = useSearchParams();
2470
2479
  const debug = options.debug || false;
2471
2480
  const searchString = searchParamsLive.toString();
2472
2481
  const schemaKey = useMemo4(() => JSON.stringify(schema), [schema]);
@@ -3184,6 +3193,120 @@ function useNearViewport(rootMargin = "500px") {
3184
3193
  return { ref, isNear };
3185
3194
  }
3186
3195
 
3196
+ // src/hooks/use-access-code-integration.ts
3197
+ import React2 from "react";
3198
+
3199
+ // src/utils/access-code-client.ts
3200
+ async function validateAccessCode(email, code, endpoints) {
3201
+ try {
3202
+ const response = await fetch(endpoints.validateUrl, {
3203
+ method: "POST",
3204
+ headers: {
3205
+ "Content-Type": "application/json"
3206
+ },
3207
+ body: JSON.stringify({ email, code })
3208
+ });
3209
+ if (!response.ok) {
3210
+ const error = await response.json().catch(() => ({}));
3211
+ throw new Error(error.error || "Validation request failed");
3212
+ }
3213
+ return await response.json();
3214
+ } catch (error) {
3215
+ return {
3216
+ valid: false,
3217
+ message: error instanceof Error ? error.message : "Validation failed"
3218
+ };
3219
+ }
3220
+ }
3221
+ async function consumeAccessCode(email, code, endpoints) {
3222
+ try {
3223
+ const response = await fetch(endpoints.consumeUrl, {
3224
+ method: "POST",
3225
+ headers: {
3226
+ "Content-Type": "application/json"
3227
+ },
3228
+ body: JSON.stringify({ email, code })
3229
+ });
3230
+ if (!response.ok) {
3231
+ const error = await response.json().catch(() => ({}));
3232
+ throw new Error(error.error || "Consumption request failed");
3233
+ }
3234
+ return await response.json();
3235
+ } catch (error) {
3236
+ return {
3237
+ success: false,
3238
+ consumed: false,
3239
+ message: error instanceof Error ? error.message : "Consumption failed"
3240
+ };
3241
+ }
3242
+ }
3243
+ async function validateAndConsumeAccessCode(email, code, endpoints) {
3244
+ const validation = await validateAccessCode(email, code, endpoints);
3245
+ if (!validation.valid) {
3246
+ return validation;
3247
+ }
3248
+ const consumption = await consumeAccessCode(email, code, endpoints);
3249
+ return {
3250
+ ...validation,
3251
+ consumed: consumption.consumed,
3252
+ message: consumption.consumed ? `Access granted for ${validation.cohort_name}` : consumption.message || validation.message
3253
+ };
3254
+ }
3255
+
3256
+ // src/hooks/use-access-code-integration.ts
3257
+ function useAccessCodeIntegration() {
3258
+ const runtime = useRequiredEndpointsRuntime();
3259
+ const endpoints = runtime.accessCode;
3260
+ const [isValidating, setIsValidating] = React2.useState(false);
3261
+ const [isConsuming, setIsConsuming] = React2.useState(false);
3262
+ const validate = async (email, code) => {
3263
+ setIsValidating(true);
3264
+ try {
3265
+ return await validateAccessCode(email, code, endpoints);
3266
+ } finally {
3267
+ setIsValidating(false);
3268
+ }
3269
+ };
3270
+ const consume = async (email, code) => {
3271
+ setIsConsuming(true);
3272
+ try {
3273
+ return await consumeAccessCode(email, code, endpoints);
3274
+ } finally {
3275
+ setIsConsuming(false);
3276
+ }
3277
+ };
3278
+ const validateAndConsume = async (email, code) => {
3279
+ setIsValidating(true);
3280
+ setIsConsuming(true);
3281
+ try {
3282
+ return await validateAndConsumeAccessCode(email, code, endpoints);
3283
+ } finally {
3284
+ setIsValidating(false);
3285
+ setIsConsuming(false);
3286
+ }
3287
+ };
3288
+ return {
3289
+ validate,
3290
+ consume,
3291
+ validateAndConsume,
3292
+ isValidating,
3293
+ isConsuming,
3294
+ isProcessing: isValidating || isConsuming
3295
+ };
3296
+ }
3297
+
3298
+ // src/hooks/use-og-placeholder.ts
3299
+ import { useMemo as useMemo6 } from "react";
3300
+ function useOgPlaceholder(buildUrl, title, siteName = "", enabled = true, aspect = "wide") {
3301
+ return useMemo6(() => {
3302
+ if (!enabled || !title) return null;
3303
+ const options = {};
3304
+ if (siteName) options.site = siteName;
3305
+ if (aspect === "square") options.aspect = "square";
3306
+ return buildUrl(title, options);
3307
+ }, [buildUrl, title, siteName, enabled, aspect]);
3308
+ }
3309
+
3187
3310
  export {
3188
3311
  useAutoLimitTags,
3189
3312
  platformIcons,
@@ -3203,6 +3326,9 @@ export {
3203
3326
  getPlatformSlogan,
3204
3327
  getSmallPlatformIcon,
3205
3328
  getPlatformIconComponent,
3329
+ validateAccessCode,
3330
+ consumeAccessCode,
3331
+ validateAndConsumeAccessCode,
3206
3332
  ToolTypeValues,
3207
3333
  toolLabels,
3208
3334
  useDebounce,
@@ -3266,6 +3392,8 @@ export {
3266
3392
  useCursorPaginationState,
3267
3393
  createNatsClient,
3268
3394
  useNatsClient,
3269
- useNearViewport
3395
+ useNearViewport,
3396
+ useAccessCodeIntegration,
3397
+ useOgPlaceholder
3270
3398
  };
3271
- //# sourceMappingURL=chunk-XGL5FKIK.js.map
3399
+ //# sourceMappingURL=chunk-SCN5WFIZ.js.map