@flamingo-stack/openframe-frontend-core 0.0.213 → 0.0.214-snapshot.20260528192313

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 (746) hide show
  1. package/dist/{chunk-35XIT2CF.cjs → chunk-2G3NXF6J.cjs} +17 -17
  2. package/dist/{chunk-35XIT2CF.cjs.map → chunk-2G3NXF6J.cjs.map} +1 -1
  3. package/dist/{chunk-IK2X5YJU.js → chunk-7PCP7YQR.js} +2 -2
  4. package/dist/{chunk-ZDF6F7ED.cjs → chunk-D4MNFY67.cjs} +4 -3
  5. package/dist/chunk-D4MNFY67.cjs.map +1 -0
  6. package/dist/{chunk-OTKJASSX.cjs → chunk-NGFP4RVL.cjs} +24 -24
  7. package/dist/{chunk-OTKJASSX.cjs.map → chunk-NGFP4RVL.cjs.map} +1 -1
  8. package/dist/{chunk-3JWIJJ44.js → chunk-R6MLPU4A.js} +2 -2
  9. package/dist/{chunk-ZTJVRSN5.js → chunk-WQZP3JIZ.js} +4 -3
  10. package/dist/chunk-WQZP3JIZ.js.map +1 -0
  11. package/dist/components/chat/index.cjs +2 -2
  12. package/dist/components/chat/index.js +1 -1
  13. package/dist/components/contact/index.cjs +3 -3
  14. package/dist/components/contact/index.js +2 -2
  15. package/dist/components/features/index.cjs +2 -2
  16. package/dist/components/features/index.js +1 -1
  17. package/dist/components/index.cjs +49 -49
  18. package/dist/components/index.js +2 -2
  19. package/dist/components/navigation/index.cjs +2 -2
  20. package/dist/components/navigation/index.js +1 -1
  21. package/dist/components/tickets/index.cjs +61 -61
  22. package/dist/components/tickets/index.js +3 -3
  23. package/dist/components/ui/index.cjs +2 -2
  24. package/dist/components/ui/index.js +1 -1
  25. package/dist/index.cjs +2 -2
  26. package/dist/index.js +1 -1
  27. package/package.json +1 -1
  28. package/src/.index.md +36 -34
  29. package/src/components/.alert-dialog.md +27 -23
  30. package/src/components/.announcement-bar.md +26 -21
  31. package/src/components/.breadcrumb.md +19 -15
  32. package/src/components/.calendar.md +24 -19
  33. package/src/components/.categories-cart.md +29 -24
  34. package/src/components/.checkbox.md +23 -25
  35. package/src/components/.chevron-button.md +37 -32
  36. package/src/components/.comment-card.md +32 -62
  37. package/src/components/.dialog.md +26 -26
  38. package/src/components/.dynamic-skeleton.md +54 -57
  39. package/src/components/.empty-state.md +42 -51
  40. package/src/components/.faq-accordion.md +27 -21
  41. package/src/components/.filter-chip.md +41 -24
  42. package/src/components/.flamingo-logo.md +20 -23
  43. package/src/components/.footer-waitlist-button.md +29 -22
  44. package/src/components/.footer.md +32 -32
  45. package/src/components/.icons-block.md +27 -17
  46. package/src/components/.image-cropper.md +41 -32
  47. package/src/components/.index.md +33 -39
  48. package/src/components/.input.md +31 -35
  49. package/src/components/.logs-list.md +31 -20
  50. package/src/components/.media-carousel.md +35 -36
  51. package/src/components/.open-source-features.md +33 -16
  52. package/src/components/.pagination.md +52 -51
  53. package/src/components/.provider-button.md +21 -23
  54. package/src/components/.select.md +31 -20
  55. package/src/components/.sidebar.md +34 -24
  56. package/src/components/.smooth-accordion.md +29 -24
  57. package/src/components/.social-icon-row.md +36 -32
  58. package/src/components/.textarea.md +25 -31
  59. package/src/components/.tool-icon.md +24 -26
  60. package/src/components/.unified-filter-logic.md +37 -30
  61. package/src/components/.unified-pagination.md +23 -22
  62. package/src/components/.user-summary-stub.md +38 -22
  63. package/src/components/.vendor-display-button.md +25 -25
  64. package/src/components/.vendor-icon.md +33 -25
  65. package/src/components/.why-it-matters.md +28 -25
  66. package/src/components/chat/.approval-batch-message.md +51 -0
  67. package/src/components/chat/.approval-request-message.md +35 -34
  68. package/src/components/chat/.chat-attachment-bar.md +64 -0
  69. package/src/components/chat/.chat-container.md +36 -18
  70. package/src/components/chat/.chat-input.md +37 -20
  71. package/src/components/chat/.chat-message-enhanced.md +30 -49
  72. package/src/components/chat/.chat-message-list.md +45 -32
  73. package/src/components/chat/.chat-message-skeleton.md +26 -22
  74. package/src/components/chat/.chat-panel-context.md +52 -0
  75. package/src/components/chat/.chat-ref.types.md +42 -0
  76. package/src/components/chat/.chat-sidebar-skeleton.md +34 -25
  77. package/src/components/chat/.chat-sidebar.md +31 -26
  78. package/src/components/chat/.chat-ticket-list.md +39 -0
  79. package/src/components/chat/.context-compaction-display.md +36 -0
  80. package/src/components/chat/.cycling-phrase.md +52 -0
  81. package/src/components/chat/.embeddable-chat.md +48 -0
  82. package/src/components/chat/.expand-chevron.md +24 -0
  83. package/src/components/chat/.index.md +31 -35
  84. package/src/components/chat/.mingo-onboarding-card-skeleton.md +44 -0
  85. package/src/components/chat/.mingo-onboarding-card.md +62 -0
  86. package/src/components/chat/.model-display.md +32 -30
  87. package/src/components/chat/.nav-link-anchor-via-runtime.md +40 -0
  88. package/src/components/chat/.remark-card-links.md +38 -0
  89. package/src/components/chat/.slash-command-suggestions.md +47 -0
  90. package/src/components/chat/.source-action-button.md +48 -0
  91. package/src/components/chat/.thinking-display.md +42 -0
  92. package/src/components/chat/.tool-call-blocks.md +45 -0
  93. package/src/components/chat/.tool-execution-display.md +44 -36
  94. package/src/components/chat/chat-container.tsx +1 -1
  95. package/src/components/chat/entity-cards/.admin-content-card.md +43 -0
  96. package/src/components/chat/entity-cards/.block-card.md +47 -0
  97. package/src/components/chat/entity-cards/.blog-card.md +52 -0
  98. package/src/components/chat/entity-cards/.blog-image-placeholder.md +39 -0
  99. package/src/components/chat/entity-cards/.campaign-card-admin.md +47 -0
  100. package/src/components/chat/entity-cards/.case-study-card.md +58 -0
  101. package/src/components/chat/entity-cards/.chat-ticket-item.md +40 -0
  102. package/src/components/chat/entity-cards/.chat-video-entity-card.md +43 -0
  103. package/src/components/chat/entity-cards/.customer-interview-card.md +53 -0
  104. package/src/components/chat/entity-cards/.data-room-doc-card.md +47 -0
  105. package/src/components/chat/entity-cards/.dispatch.md +39 -0
  106. package/src/components/chat/entity-cards/.entity-author-card.md +51 -0
  107. package/src/components/chat/entity-cards/.generic-entity-card.md +62 -0
  108. package/src/components/chat/entity-cards/.github-activity-card.md +61 -0
  109. package/src/components/chat/entity-cards/.hubspot-ticket-card.md +53 -0
  110. package/src/components/chat/entity-cards/.index.md +66 -0
  111. package/src/components/chat/entity-cards/.investor-update-card.md +47 -0
  112. package/src/components/chat/entity-cards/.onboarding-guide-card.md +58 -0
  113. package/src/components/chat/entity-cards/.product-release-card-defaults.md +31 -0
  114. package/src/components/chat/entity-cards/.product-release-card.md +29 -0
  115. package/src/components/chat/entity-cards/.program-card-defaults.md +41 -0
  116. package/src/components/chat/entity-cards/.program-card.md +59 -0
  117. package/src/components/chat/entity-cards/.roadmap-card.md +46 -0
  118. package/src/components/chat/entity-cards/.roadmap-vote-button.md +52 -0
  119. package/src/components/chat/entity-cards/.slack-message-card.md +48 -0
  120. package/src/components/chat/entity-cards/.task-type-icon.md +47 -0
  121. package/src/components/chat/hooks/.index.md +36 -21
  122. package/src/components/chat/hooks/.use-chat-attachment-image-gallery.md +51 -0
  123. package/src/components/chat/hooks/.use-chat-attachments.md +48 -0
  124. package/src/components/chat/hooks/.use-chat-card-item.md +39 -0
  125. package/src/components/chat/hooks/.use-chat-identity.md +45 -0
  126. package/src/components/chat/hooks/.use-chat.md +58 -0
  127. package/src/components/chat/hooks/.use-chunk-catchup.md +46 -48
  128. package/src/components/chat/hooks/.use-close-on-navigation.md +44 -0
  129. package/src/components/chat/hooks/.use-collapsible.md +48 -0
  130. package/src/components/chat/hooks/.use-embedded-chat.md +32 -0
  131. package/src/components/chat/hooks/.use-jetstream-dialog-subscription.md +40 -0
  132. package/src/components/chat/hooks/.use-nats-chat-adapter.md +52 -0
  133. package/src/components/chat/hooks/.use-nats-dialog-subscription.md +49 -30
  134. package/src/components/chat/hooks/.use-proxied-image-url.md +40 -0
  135. package/src/components/chat/hooks/.use-realtime-chunk-processor.md +43 -40
  136. package/src/components/chat/hooks/.use-slash-commands.md +46 -0
  137. package/src/components/chat/hooks/.use-sse-chat-adapter.md +34 -0
  138. package/src/components/chat/hooks/.use-sse.md +60 -0
  139. package/src/components/chat/hooks/.use-unified-chat.md +57 -0
  140. package/src/components/chat/types/.api.types.md +52 -38
  141. package/src/components/chat/types/.chat.types.md +43 -34
  142. package/src/components/chat/types/.component.types.md +47 -48
  143. package/src/components/chat/types/.index.md +20 -27
  144. package/src/components/chat/types/.message.types.md +58 -48
  145. package/src/components/chat/types/.network.types.md +57 -31
  146. package/src/components/chat/types/.processing.types.md +49 -31
  147. package/src/components/chat/types/.unified-chat-state.types.md +41 -0
  148. package/src/components/chat/types/entities/.blog.md +43 -0
  149. package/src/components/chat/types/entities/.case-study.md +26 -0
  150. package/src/components/chat/types/entities/.content-ref.md +41 -0
  151. package/src/components/chat/types/entities/.customer-interview.md +28 -0
  152. package/src/components/chat/types/entities/.data-room-doc.md +36 -0
  153. package/src/components/chat/types/entities/.github-activity.md +43 -0
  154. package/src/components/chat/types/entities/.hubspot-ticket.md +53 -0
  155. package/src/components/chat/types/entities/.index.md +42 -0
  156. package/src/components/chat/types/entities/.investor-update.md +45 -0
  157. package/src/components/chat/types/entities/.onboarding-guide.md +50 -0
  158. package/src/components/chat/types/entities/.program-types.md +57 -0
  159. package/src/components/chat/types/entities/.roadmap-item.md +58 -0
  160. package/src/components/chat/types/entities/.slack-message.md +35 -0
  161. package/src/components/chat/utils/.agent-status-message.md +45 -0
  162. package/src/components/chat/utils/.auto-continuation-directive.md +58 -0
  163. package/src/components/chat/utils/.chat-attachment-markdown.md +54 -0
  164. package/src/components/chat/utils/.chat-authed-fetch.md +25 -0
  165. package/src/components/chat/utils/.chat-nav-resolution.md +46 -0
  166. package/src/components/chat/utils/.chat-proxy-auth-storage.md +38 -0
  167. package/src/components/chat/utils/.chip-action-class.md +34 -0
  168. package/src/components/chat/utils/.chip-styles.md +46 -0
  169. package/src/components/chat/utils/.chunk-parser.md +38 -28
  170. package/src/components/chat/utils/.clickup-task-type-utils.md +48 -0
  171. package/src/components/chat/utils/.compact-card-classes.md +62 -0
  172. package/src/components/chat/utils/.decide-new-tab.md +51 -0
  173. package/src/components/chat/utils/.external-app-urls.md +29 -0
  174. package/src/components/chat/utils/.extract-incomplete-message-state.md +25 -29
  175. package/src/components/chat/utils/.flatten-assistant-content.md +34 -0
  176. package/src/components/chat/utils/.icon-registry.md +46 -0
  177. package/src/components/chat/utils/.index.md +37 -32
  178. package/src/components/chat/utils/.is-cross-origin-url.md +35 -0
  179. package/src/components/chat/utils/.message-segment-accumulator.md +25 -34
  180. package/src/components/chat/utils/.nav-anchor-props.md +44 -0
  181. package/src/components/chat/utils/.nav-click-handler.md +47 -0
  182. package/src/components/chat/utils/.onboarding-icons.md +28 -0
  183. package/src/components/chat/utils/.process-historical-messages.md +46 -35
  184. package/src/components/chat/utils/.scroll-anchor.md +40 -0
  185. package/src/components/chat/utils/.slash-dispatch-utils.md +44 -0
  186. package/src/components/chat/utils/.source-icons.md +35 -0
  187. package/src/components/chat/utils/.source-row-cta.md +54 -0
  188. package/src/components/chat/utils/.tool-call-helpers.md +42 -0
  189. package/src/components/contact/.contact-form.md +43 -0
  190. package/src/components/contact/.index.md +27 -0
  191. package/src/components/features/.array-entry-manager.md +36 -45
  192. package/src/components/features/.changelog-manager.md +47 -21
  193. package/src/components/features/.changelog-sections-manager.md +21 -26
  194. package/src/components/features/.command-box.md +31 -28
  195. package/src/components/features/.entity-summary-editor.md +46 -0
  196. package/src/components/features/.entity-video-section.md +51 -0
  197. package/src/components/features/.figma-prototype-viewer.md +48 -29
  198. package/src/components/features/.filters-dropdown.md +33 -46
  199. package/src/components/features/.highlight-config-section.md +42 -0
  200. package/src/components/features/.highlight-generation-section.md +46 -0
  201. package/src/components/features/.highlight-video-combined-section.md +47 -0
  202. package/src/components/features/.highlight-video-preview.md +44 -0
  203. package/src/components/features/.highlight-video-section.md +47 -0
  204. package/src/components/features/.index.md +40 -66
  205. package/src/components/features/.media-gallery-manager.md +48 -38
  206. package/src/components/features/.more-about-button.md +22 -19
  207. package/src/components/features/.og-editor-preview.md +40 -36
  208. package/src/components/features/.parallax-image-showcase.md +33 -26
  209. package/src/components/features/.paths-display.md +42 -43
  210. package/src/components/features/.platform-badge.md +37 -36
  211. package/src/components/features/.platform-filter.md +23 -16
  212. package/src/components/features/.policy-configuration-panel.md +48 -56
  213. package/src/components/features/.provider-button.md +33 -36
  214. package/src/components/features/.push-button-selector.md +40 -29
  215. package/src/components/features/.release-media-manager.md +46 -31
  216. package/src/components/features/.section-selector.md +26 -31
  217. package/src/components/features/.select-button.md +35 -25
  218. package/src/components/features/.seo-editor-preview.md +41 -44
  219. package/src/components/features/.social-links-manager.md +25 -19
  220. package/src/components/features/.start-with-openframe-button.md +37 -29
  221. package/src/components/features/.status-filter-component.md +36 -20
  222. package/src/components/features/.tags-selector.md +40 -24
  223. package/src/components/features/.transcribe-and-summarize-combined-section.md +45 -0
  224. package/src/components/features/.transcribe-summarize-section.md +48 -0
  225. package/src/components/features/.transcript-summary-editor.md +53 -0
  226. package/src/components/features/.video-bites-display.md +46 -0
  227. package/src/components/features/.video-clips-section.md +41 -0
  228. package/src/components/features/.video-ratio-tabs.md +56 -0
  229. package/src/components/features/.video-source-selector.md +60 -0
  230. package/src/components/features/.video.md +44 -0
  231. package/src/components/features/.waitlist-form.md +60 -0
  232. package/src/components/features/ai-enrich/.AIEnrichButton.md +30 -27
  233. package/src/components/features/ai-enrich/.AIEnrichSection.md +46 -42
  234. package/src/components/features/board/.board-column-header.md +38 -0
  235. package/src/components/features/board/.board-column.md +43 -0
  236. package/src/components/features/board/.board.md +51 -0
  237. package/src/components/features/board/.color-utils.md +26 -0
  238. package/src/components/features/board/.index.md +56 -0
  239. package/src/components/features/board/.ticket-card-skeleton.md +38 -0
  240. package/src/components/features/board/.ticket-card.md +47 -0
  241. package/src/components/features/board/.types.md +45 -0
  242. package/src/components/features/board/.use-board-collapse.md +34 -0
  243. package/src/components/features/notifications/.index.md +57 -0
  244. package/src/components/features/notifications/.notification-drawer.md +34 -0
  245. package/src/components/features/notifications/.notification-tile.md +39 -0
  246. package/src/components/features/notifications/.notifications-context.md +73 -0
  247. package/src/components/features/notifications/.types.md +45 -0
  248. package/src/components/icons/.about-icon.md +20 -28
  249. package/src/components/icons/.ai-robot-icon.md +15 -17
  250. package/src/components/icons/.bash-icon.md +16 -23
  251. package/src/components/icons/.buildings-icon.md +10 -24
  252. package/src/components/icons/.capterra-icon.md +30 -26
  253. package/src/components/icons/.carta-icon.md +29 -0
  254. package/src/components/icons/.clickup-icon.md +26 -0
  255. package/src/components/icons/.cmd-icon.md +15 -22
  256. package/src/components/icons/.coins-icon.md +17 -25
  257. package/src/components/icons/.community-hub-icon.md +19 -25
  258. package/src/components/icons/.community-icon.md +24 -21
  259. package/src/components/icons/.compare-icon.md +32 -19
  260. package/src/components/icons/.copy-icon.md +29 -15
  261. package/src/components/icons/.custom-external-link-icon.md +19 -17
  262. package/src/components/icons/.custom-fork-icon.md +32 -21
  263. package/src/components/icons/.custom-license-icon.md +29 -25
  264. package/src/components/icons/.custom-star-icon.md +20 -28
  265. package/src/components/icons/.custom-time-icon.md +21 -22
  266. package/src/components/icons/.cut-vendor-costs-icon.md +6 -19
  267. package/src/components/icons/.dashboard-icon.md +13 -18
  268. package/src/components/icons/.deno-icon.md +16 -23
  269. package/src/components/icons/.donut-icon.md +12 -23
  270. package/src/components/icons/.double-chevron-icon.md +28 -36
  271. package/src/components/icons/.elestio-logo.md +13 -23
  272. package/src/components/icons/.empty-vendor-icon.md +16 -18
  273. package/src/components/icons/.explore-categories-icon.md +18 -29
  274. package/src/components/icons/.eye-icon.md +16 -26
  275. package/src/components/icons/.facebook-icon.md +9 -20
  276. package/src/components/icons/.figma-icon.md +8 -17
  277. package/src/components/icons/.filter-icon.md +15 -17
  278. package/src/components/icons/.flamingo-logo.md +28 -27
  279. package/src/components/icons/.folder-shield-icon.md +28 -19
  280. package/src/components/icons/.g2-icon.md +22 -21
  281. package/src/components/icons/.getapp-icon.md +25 -21
  282. package/src/components/icons/.github-icon.md +13 -25
  283. package/src/components/icons/.globe-icon.md +14 -19
  284. package/src/components/icons/.google-gemini-icon.md +16 -19
  285. package/src/components/icons/.google-logo.md +15 -21
  286. package/src/components/icons/.grid-view-icon.md +30 -19
  287. package/src/components/icons/.hamburger-icon.md +22 -20
  288. package/src/components/icons/.hand-dollar-icon.md +24 -34
  289. package/src/components/icons/.hotel-icon.md +27 -21
  290. package/src/components/icons/.icon-utils.md +28 -29
  291. package/src/components/icons/.image-icon.md +15 -22
  292. package/src/components/icons/.index.md +25 -28
  293. package/src/components/icons/.info-circle-icon.md +29 -30
  294. package/src/components/icons/.instagram-icon.md +10 -24
  295. package/src/components/icons/.jump-in-icon.md +18 -18
  296. package/src/components/icons/.linux-icon.md +18 -18
  297. package/src/components/icons/.log-out-icon.md +15 -23
  298. package/src/components/icons/.logs-icon.md +14 -23
  299. package/src/components/icons/.margin-crisis-icon.md +21 -20
  300. package/src/components/icons/.menu-icon.md +18 -19
  301. package/src/components/icons/.miami-cyber-gang-logo-face-only.md +18 -21
  302. package/src/components/icons/.miami-cyber-gang-logo.md +22 -14
  303. package/src/components/icons/.mlg-logo.md +18 -16
  304. package/src/components/icons/.moon-icon.md +32 -22
  305. package/src/components/icons/.ms-icon.md +30 -19
  306. package/src/components/icons/.nushell-icon.md +7 -21
  307. package/src/components/icons/.open-source-icon.md +19 -23
  308. package/src/components/icons/.openai-icon.md +9 -24
  309. package/src/components/icons/.openframe-ai-icons.md +25 -26
  310. package/src/components/icons/.openframe-logo.md +28 -22
  311. package/src/components/icons/.openframe-text.md +24 -27
  312. package/src/components/icons/.openmsp-logo.md +26 -23
  313. package/src/components/icons/.pilot-icon.md +23 -0
  314. package/src/components/icons/.powershell-icon.md +17 -22
  315. package/src/components/icons/.python-icon.md +16 -23
  316. package/src/components/icons/.queries-icon.md +13 -21
  317. package/src/components/icons/.reddit-icon.md +28 -24
  318. package/src/components/icons/.remote-control-icon.md +13 -17
  319. package/src/components/icons/.script-icon.md +27 -19
  320. package/src/components/icons/.search-icon.md +21 -21
  321. package/src/components/icons/.send-icon.md +14 -16
  322. package/src/components/icons/.settings-icon.md +30 -19
  323. package/src/components/icons/.shape-circle-dash-icon.md +16 -21
  324. package/src/components/icons/.shell-icon.md +15 -19
  325. package/src/components/icons/.shield-check-icon.md +18 -31
  326. package/src/components/icons/.shield-key-icon.md +25 -25
  327. package/src/components/icons/.shield-lock-icon.md +8 -18
  328. package/src/components/icons/.slack-icon.md +28 -32
  329. package/src/components/icons/.sparkles-icon.md +18 -23
  330. package/src/components/icons/.sso-configuration-icon.md +29 -16
  331. package/src/components/icons/.sun-icon.md +20 -18
  332. package/src/components/icons/.table-view-icon.md +17 -19
  333. package/src/components/icons/.telegram-icon.md +8 -22
  334. package/src/components/icons/.thumbs-down-icon.md +10 -19
  335. package/src/components/icons/.thumbs-up-icon.md +8 -17
  336. package/src/components/icons/.tool-directory-icons.md +24 -28
  337. package/src/components/icons/.trustpilot-icon.md +25 -22
  338. package/src/components/icons/.user-icon.md +26 -28
  339. package/src/components/icons/.users-group-icon.md +28 -24
  340. package/src/components/icons/.vendor-showcase-icons.md +21 -29
  341. package/src/components/icons/.vendors-icon.md +18 -22
  342. package/src/components/icons/.whatsapp-icon.md +30 -14
  343. package/src/components/icons/.x-icon.md +18 -23
  344. package/src/components/icons/.x-logo.md +13 -38
  345. package/src/components/icons/.youtube-icon.md +8 -19
  346. package/src/components/icons/device-type-icons/.get-device-type-icon.md +26 -34
  347. package/src/components/icons-v2-generated/.index.md +52 -0
  348. package/src/components/icons-v2-generated/alphabet/.index.md +33 -0
  349. package/src/components/icons-v2-generated/arrows/.index.md +39 -0
  350. package/src/components/icons-v2-generated/audio-and-visual/.index.md +40 -0
  351. package/src/components/icons-v2-generated/brand-logos/.elestio-logo-icon.md +40 -0
  352. package/src/components/icons-v2-generated/brand-logos/.gemini-logo-icon.md +37 -0
  353. package/src/components/icons-v2-generated/brand-logos/.google-gemini-logo-icon.md +33 -0
  354. package/src/components/icons-v2-generated/brand-logos/.index.md +38 -0
  355. package/src/components/icons-v2-generated/brand-logos/.meshcentral-logo-grey-icon.md +35 -0
  356. package/src/components/icons-v2-generated/brand-logos/.meshcentral-logo-icon.md +36 -0
  357. package/src/components/icons-v2-generated/buildings/.index.md +48 -0
  358. package/src/components/icons-v2-generated/charts/.index.md +40 -0
  359. package/src/components/icons-v2-generated/clothes/.index.md +48 -0
  360. package/src/components/icons-v2-generated/coding/.index.md +42 -0
  361. package/src/components/icons-v2-generated/communication/.index.md +39 -0
  362. package/src/components/icons-v2-generated/date-and-time/.index.md +29 -0
  363. package/src/components/icons-v2-generated/design/.index.md +39 -0
  364. package/src/components/icons-v2-generated/devices/.index.md +38 -0
  365. package/src/components/icons-v2-generated/documents/.index.md +38 -0
  366. package/src/components/icons-v2-generated/finance/.index.md +34 -0
  367. package/src/components/icons-v2-generated/food-and-drinks/.index.md +34 -0
  368. package/src/components/icons-v2-generated/food-and-drinks/.leafy-green-icon.md +36 -0
  369. package/src/components/icons-v2-generated/food-and-drinks/.strawberry-icon.md +39 -0
  370. package/src/components/icons-v2-generated/health/.index.md +40 -0
  371. package/src/components/icons-v2-generated/household/.index.md +45 -0
  372. package/src/components/icons-v2-generated/interface/.index.md +36 -0
  373. package/src/components/icons-v2-generated/map-and-travel/.index.md +41 -0
  374. package/src/components/icons-v2-generated/media-playback/.index.md +51 -0
  375. package/src/components/icons-v2-generated/number/.index.md +41 -0
  376. package/src/components/icons-v2-generated/school/.index.md +37 -0
  377. package/src/components/icons-v2-generated/security/.fingerprint-icon.md +38 -0
  378. package/src/components/icons-v2-generated/security/.index.md +39 -0
  379. package/src/components/icons-v2-generated/shopping/.index.md +42 -0
  380. package/src/components/icons-v2-generated/signs-and-symbols/.index.md +32 -0
  381. package/src/components/icons-v2-generated/sort-and-filter/.index.md +35 -0
  382. package/src/components/icons-v2-generated/sport/.index.md +41 -0
  383. package/src/components/icons-v2-generated/text-editor/.index.md +44 -0
  384. package/src/components/icons-v2-generated/users/.index.md +45 -0
  385. package/src/components/icons-v2-generated/vehicles-and-delivery/.index.md +36 -0
  386. package/src/components/icons-v2-generated/weather-and-nature/.flower-sakura-icon.md +36 -0
  387. package/src/components/icons-v2-generated/weather-and-nature/.index.md +34 -0
  388. package/src/components/layout/.article-detail-layout.md +43 -0
  389. package/src/components/layout/.back-button.md +40 -0
  390. package/src/components/layout/.list-page-layout.md +35 -26
  391. package/src/components/layout/.page-container.md +27 -38
  392. package/src/components/layout/.page-layout.md +50 -0
  393. package/src/components/layout/.title-block.md +42 -0
  394. package/src/components/loading/.card-skeleton.md +38 -29
  395. package/src/components/loading/.device-card-skeleton.md +29 -25
  396. package/src/components/loading/.index.md +39 -46
  397. package/src/components/loading/.margin-report-skeleton.md +45 -34
  398. package/src/components/loading/.organization-card-skeleton.md +39 -44
  399. package/src/components/loading/.page-layout-skeleton.md +34 -45
  400. package/src/components/loading/.unified-skeleton.md +62 -36
  401. package/src/components/navigation/.app-header.md +40 -29
  402. package/src/components/navigation/.app-layout.md +25 -26
  403. package/src/components/navigation/.header-global-search.md +34 -37
  404. package/src/components/navigation/.header-organization-filter.md +23 -22
  405. package/src/components/navigation/.header.md +31 -35
  406. package/src/components/navigation/.mobile-burger-menu.md +39 -47
  407. package/src/components/navigation/.mobile-nav-panel.md +51 -32
  408. package/src/components/navigation/.navigation-sidebar-header.md +36 -0
  409. package/src/components/navigation/.navigation-sidebar-item.md +45 -0
  410. package/src/components/navigation/.navigation-sidebar-toggle.md +38 -0
  411. package/src/components/navigation/.navigation-sidebar.md +33 -34
  412. package/src/components/navigation/.sliding-sidebar.md +52 -41
  413. package/src/components/navigation/.sticky-section-nav.md +56 -48
  414. package/src/components/platform/.ScriptArguments.md +39 -25
  415. package/src/components/platform/.ScriptInfoSection.md +30 -26
  416. package/src/components/platform/.ShellTypeBadge.md +18 -13
  417. package/src/components/platform/.SoftwareInfo.md +23 -27
  418. package/src/components/platform/.SoftwareSourceBadge.md +28 -19
  419. package/src/components/platform/.ToolBadge.md +25 -26
  420. package/src/components/platform/ShellTypeBadge.tsx +2 -2
  421. package/src/components/providers/.theme-provider.md +52 -0
  422. package/src/components/shared/delivery/.delivery-lists.md +39 -0
  423. package/src/components/shared/delivery/.delivery-row.md +41 -0
  424. package/src/components/shared/delivery/.delivery-table.md +41 -0
  425. package/src/components/shared/delivery/.index.md +38 -0
  426. package/src/components/shared/dev-section/.dev-card-row.md +60 -0
  427. package/src/components/shared/dev-section/.dev-section-page.md +48 -0
  428. package/src/components/shared/dev-section/.dev-section-view.md +43 -0
  429. package/src/components/shared/dev-section/.index.md +38 -0
  430. package/src/components/shared/legal-document/.index.md +40 -0
  431. package/src/components/shared/legal-document/.legal-document-page.md +50 -0
  432. package/src/components/shared/legal-document/.use-legal-docs.md +42 -0
  433. package/src/components/shared/onboarding/.onboarding-step-card.md +32 -31
  434. package/src/components/shared/onboarding/.onboarding-walkthrough.md +39 -43
  435. package/src/components/shared/product-release/.index.md +28 -30
  436. package/src/components/shared/product-release/.product-release-card-skeleton.md +28 -28
  437. package/src/components/shared/product-release/.product-release-card.md +45 -27
  438. package/src/components/shared/product-release/.release-detail-page.md +23 -24
  439. package/src/components/shared/roadmap/.index.md +37 -0
  440. package/src/components/shared/roadmap/.roadmap-grid-skeleton.md +39 -0
  441. package/src/components/shared/roadmap/.roadmap-grid.md +66 -0
  442. package/src/components/shared/roadmap/.use-roadmap-voting.md +68 -0
  443. package/src/components/tickets/.help-center-card.md +51 -0
  444. package/src/components/tickets/.help-center-create-form.md +38 -0
  445. package/src/components/tickets/.help-center-list.md +40 -0
  446. package/src/components/tickets/.index.md +65 -0
  447. package/src/components/tickets/.ticket-center.md +51 -0
  448. package/src/components/tickets/.ticket-detail-drawer.md +48 -0
  449. package/src/components/tickets/.ticket-linked-delivery-card.md +36 -0
  450. package/src/components/tickets/.ticket-open-form.md +50 -0
  451. package/src/components/tickets/.ticket-row.md +30 -0
  452. package/src/components/tickets/.types.md +57 -0
  453. package/src/components/tickets/hooks/.use-ticket-actions.md +77 -0
  454. package/src/components/tickets/hooks/.use-ticket-engagements.md +42 -0
  455. package/src/components/tickets/hooks/.use-tickets-list.md +54 -0
  456. package/src/components/ui/.actions-menu.md +66 -41
  457. package/src/components/ui/.alert-dialog.md +29 -26
  458. package/src/components/ui/.allowed-domains-input.md +29 -21
  459. package/src/components/ui/.assignee-dropdown.md +45 -0
  460. package/src/components/ui/.autocomplete.md +47 -41
  461. package/src/components/ui/.benefit-card.md +51 -36
  462. package/src/components/ui/.brand-association-card.md +30 -27
  463. package/src/components/ui/.breadcrumb.md +17 -15
  464. package/src/components/ui/.checkbox-block.md +39 -35
  465. package/src/components/ui/.checkbox-with-description.md +23 -16
  466. package/src/components/ui/.checkbox.md +31 -23
  467. package/src/components/ui/.circular-progress.md +49 -19
  468. package/src/components/ui/.content-loader.md +32 -20
  469. package/src/components/ui/.cursor-pagination.md +41 -52
  470. package/src/components/ui/.dashboard-info-card.md +33 -26
  471. package/src/components/ui/.date-picker.md +27 -25
  472. package/src/components/ui/.device-card-compact.md +28 -29
  473. package/src/components/ui/.device-card.md +27 -27
  474. package/src/components/ui/.dialog.md +25 -16
  475. package/src/components/ui/.drawer.md +86 -0
  476. package/src/components/ui/.dropdown-button.md +45 -0
  477. package/src/components/ui/.entity-image.md +46 -0
  478. package/src/components/ui/.error-state.md +41 -28
  479. package/src/components/ui/.feature-card.md +35 -31
  480. package/src/components/ui/.feature-list.md +48 -0
  481. package/src/components/ui/.field-wrapper.md +47 -0
  482. package/src/components/ui/.file-upload.md +42 -0
  483. package/src/components/ui/.filter-checkbox-item.md +43 -0
  484. package/src/components/ui/.filter-list.md +57 -0
  485. package/src/components/ui/.filter-modal.md +59 -0
  486. package/src/components/ui/.floating-tooltip.md +43 -26
  487. package/src/components/ui/.hidden-tags-popup.md +49 -0
  488. package/src/components/ui/.hover-dropdown.md +54 -0
  489. package/src/components/ui/.image-gallery-modal.md +41 -34
  490. package/src/components/ui/.image-uploader.md +53 -0
  491. package/src/components/ui/.index.md +40 -34
  492. package/src/components/ui/.info-card.md +31 -31
  493. package/src/components/ui/.info-row.md +31 -27
  494. package/src/components/ui/.input-trigger.md +44 -0
  495. package/src/components/ui/.input.md +37 -31
  496. package/src/components/ui/.markdown-editor.md +57 -0
  497. package/src/components/ui/.modal-v2.md +51 -0
  498. package/src/components/ui/.modal.md +32 -31
  499. package/src/components/ui/.more-actions-menu.md +45 -38
  500. package/src/components/ui/.organization-card.md +31 -37
  501. package/src/components/ui/.page-actions.md +44 -54
  502. package/src/components/ui/.phone-input.md +54 -0
  503. package/src/components/ui/.progress-bar.md +35 -27
  504. package/src/components/ui/.radio-group.md +39 -27
  505. package/src/components/ui/.release-changelog-section.md +34 -34
  506. package/src/components/ui/.search-input.md +48 -0
  507. package/src/components/ui/.select.md +54 -34
  508. package/src/components/ui/.service-card.md +42 -40
  509. package/src/components/ui/.sheet.md +27 -18
  510. package/src/components/ui/.simple-markdown-renderer.md +29 -31
  511. package/src/components/ui/.sort-column-item.md +42 -0
  512. package/src/components/ui/.square-avatar.md +34 -24
  513. package/src/components/ui/.status-badge.md +26 -38
  514. package/src/components/ui/.switch.md +22 -35
  515. package/src/components/ui/.tab-navigation.md +56 -53
  516. package/src/components/ui/.tab-selector.md +40 -0
  517. package/src/components/ui/.tag-key-value-filter.md +56 -0
  518. package/src/components/ui/.tag-search-input.md +53 -0
  519. package/src/components/ui/.tag.md +49 -31
  520. package/src/components/ui/.tags-manager.md +60 -0
  521. package/src/components/ui/.textarea.md +44 -34
  522. package/src/components/ui/.ticket-attachments-list.md +45 -0
  523. package/src/components/ui/.ticket-detail-section.md +29 -0
  524. package/src/components/ui/.ticket-info-section.md +56 -0
  525. package/src/components/ui/.ticket-note-card.md +53 -0
  526. package/src/components/ui/.ticket-notes-section.md +54 -0
  527. package/src/components/ui/.ticket-status-tag.md +49 -0
  528. package/src/components/ui/.title-content-block.md +25 -26
  529. package/src/components/ui/.toaster.md +40 -28
  530. package/src/components/ui/.tooltip.md +22 -11
  531. package/src/components/ui/.truncate-text.md +39 -0
  532. package/src/components/ui/button/.button-styles.md +35 -0
  533. package/src/components/ui/button/.button.md +53 -0
  534. package/src/components/ui/button/.split-button.md +48 -0
  535. package/src/components/ui/data-table/.data-table-body.md +48 -0
  536. package/src/components/ui/data-table/.data-table-column-filter.md +45 -0
  537. package/src/components/ui/data-table/.data-table-cursor-footer.md +45 -0
  538. package/src/components/ui/data-table/.data-table-empty.md +43 -0
  539. package/src/components/ui/data-table/.data-table-header.md +55 -0
  540. package/src/components/ui/data-table/.data-table-infinite-footer.md +44 -0
  541. package/src/components/ui/data-table/.data-table-row-count.md +43 -0
  542. package/src/components/ui/data-table/.data-table-row.md +47 -0
  543. package/src/components/ui/data-table/.data-table-skeleton.md +42 -0
  544. package/src/components/ui/data-table/.data-table.md +47 -0
  545. package/src/components/ui/data-table/.index.md +55 -0
  546. package/src/components/ui/data-table/.types.md +54 -0
  547. package/src/components/ui/data-table/.use-data-table.md +45 -0
  548. package/src/components/ui/data-table/.utils.md +38 -0
  549. package/src/components/ui/file-manager/.file-manager-action-bar.md +39 -30
  550. package/src/components/ui/file-manager/.file-manager-breadcrumb.md +29 -27
  551. package/src/components/ui/file-manager/.file-manager-context-menu.md +38 -42
  552. package/src/components/ui/file-manager/.file-manager-empty.md +26 -39
  553. package/src/components/ui/file-manager/.file-manager-table-row.md +33 -41
  554. package/src/components/ui/file-manager/.file-manager.md +35 -31
  555. package/src/components/ui/query-report-table/.index.md +43 -0
  556. package/src/components/ui/query-report-table/.query-report-table-header.md +36 -0
  557. package/src/components/ui/query-report-table/.query-report-table-row.md +40 -0
  558. package/src/components/ui/query-report-table/.query-report-table-skeleton.md +44 -0
  559. package/src/components/ui/query-report-table/.query-report-table.md +47 -0
  560. package/src/components/ui/query-report-table/.types.md +41 -0
  561. package/src/components/ui/query-report-table/.utils.md +35 -0
  562. package/src/components/ui/table/.index.md +27 -48
  563. package/src/components/ui/table/.table-cell.md +18 -27
  564. package/src/components/ui/table/.table-column-filter-dropdown.md +40 -0
  565. package/src/components/ui/table/.table-description-cell.md +24 -14
  566. package/src/components/ui/table/.table-empty-state.md +21 -22
  567. package/src/components/ui/table/.table-header.md +25 -40
  568. package/src/components/ui/table/.table-row.md +22 -40
  569. package/src/components/ui/table/.table-skeleton.md +33 -26
  570. package/src/components/ui/table/.table-timestamp-cell.md +26 -16
  571. package/src/components/ui/table/.table.md +39 -59
  572. package/src/components/ui/table/.types.md +44 -36
  573. package/src/components/ui/table/.utils.md +18 -20
  574. package/src/contexts/.chat-runtime-context.md +54 -0
  575. package/src/contexts/.endpoints-runtime-context.md +58 -0
  576. package/src/contexts/.index.md +53 -0
  577. package/src/contexts/.use-outer-or-default.md +36 -0
  578. package/src/embed-shims/.index.md +45 -0
  579. package/src/embed-shims/.next-dynamic.md +43 -0
  580. package/src/embed-shims/.next-image.md +45 -0
  581. package/src/embed-shims/.next-link.md +59 -0
  582. package/src/embed-shims/.next-navigation.md +59 -0
  583. package/src/hooks/.index.md +34 -29
  584. package/src/hooks/.use-access-code-integration.md +49 -0
  585. package/src/hooks/.use-contact-submission.md +37 -26
  586. package/src/hooks/.use-copy-to-clipboard.md +42 -0
  587. package/src/hooks/.use-near-viewport.md +44 -0
  588. package/src/hooks/.use-og-placeholder.md +51 -0
  589. package/src/hooks/.use-toast.md +36 -35
  590. package/src/hooks/state/.use-api-params.md +29 -46
  591. package/src/hooks/state/.use-query-params.md +37 -33
  592. package/src/hooks/ui/.index.md +33 -32
  593. package/src/hooks/ui/.use-auto-limit-tags.md +54 -0
  594. package/src/hooks/ui/.use-horizontal-scrollbar.md +74 -0
  595. package/src/hooks/ui/.use-image-edge-color.md +42 -0
  596. package/src/hooks/ui/.use-media-query.md +33 -25
  597. package/src/hooks/ui/.use-search.md +51 -0
  598. package/src/nats/.nats.md +49 -28
  599. package/src/schemas/.contact-schema.md +45 -0
  600. package/src/stories/.AnnouncementBar.stories.md +45 -0
  601. package/src/stories/.AppLayout.stories.md +20 -21
  602. package/src/stories/.Autocomplete.stories.md +48 -34
  603. package/src/stories/.Board.stories.md +35 -0
  604. package/src/stories/.Button.stories.md +36 -33
  605. package/src/stories/.ChatTicketList.stories.md +33 -0
  606. package/src/stories/.CheckboxBlock.stories.md +40 -28
  607. package/src/stories/.ContentLoader.stories.md +47 -0
  608. package/src/stories/.DashboardInfoCard.stories.md +57 -0
  609. package/src/stories/.DataTable.stories.md +41 -0
  610. package/src/stories/.DatePicker.stories.md +66 -52
  611. package/src/stories/.DeviceCard.stories.md +41 -40
  612. package/src/stories/.DeviceCardCompact.stories.md +41 -0
  613. package/src/stories/.DotsLoaderIcon.stories.md +36 -0
  614. package/src/stories/.Drawer.stories.md +58 -0
  615. package/src/stories/.EmbeddableChat.stories.md +41 -0
  616. package/src/stories/.FileManager.stories.md +41 -0
  617. package/src/stories/.FileManagerActionBar.stories.md +38 -0
  618. package/src/stories/.FileUpload.stories.md +53 -0
  619. package/src/stories/.FilterList.stories.md +54 -0
  620. package/src/stories/.FilterModal.stories.md +72 -0
  621. package/src/stories/.FiltersDropdown.stories.md +57 -0
  622. package/src/stories/.Header.stories.md +48 -0
  623. package/src/stories/.ImageUploader.stories.md +49 -0
  624. package/src/stories/.InfoCard.stories.md +54 -0
  625. package/src/stories/.Input.stories.md +48 -30
  626. package/src/stories/.ListPageLayout.stories.md +56 -43
  627. package/src/stories/.MingoOnboardingCard.stories.md +42 -0
  628. package/src/stories/.MingoOnboardingCardSkeleton.stories.md +35 -0
  629. package/src/stories/.Modal.stories.md +40 -31
  630. package/src/stories/.NotificationDrawer.stories.md +55 -0
  631. package/src/stories/.OnboardingStepCard.stories.md +41 -0
  632. package/src/stories/.OrganizationCard.stories.md +61 -0
  633. package/src/stories/.PageActions.stories.md +52 -49
  634. package/src/stories/.PageContainer.stories.md +41 -35
  635. package/src/stories/.PageLayout.stories.md +60 -0
  636. package/src/stories/.ParallaxImageShowcase.stories.md +49 -0
  637. package/src/stories/.PhoneInput.stories.md +53 -0
  638. package/src/stories/.QueryReportTable.stories.md +44 -0
  639. package/src/stories/.RadioGroup.stories.md +46 -0
  640. package/src/stories/.RadioGroupBlock.stories.md +45 -0
  641. package/src/stories/.Select.stories.md +29 -15
  642. package/src/stories/.SlashCommandSuggestions.stories.md +41 -0
  643. package/src/stories/.SplitButton.stories.md +62 -0
  644. package/src/stories/.TabNavigation.stories.md +47 -38
  645. package/src/stories/.TabSelector.stories.md +65 -0
  646. package/src/stories/.Table.stories.md +38 -46
  647. package/src/stories/.TableColumnFilterDropdown.stories.md +46 -0
  648. package/src/stories/.Tag.stories.md +43 -32
  649. package/src/stories/.TagKeyValueFilter.stories.md +44 -0
  650. package/src/stories/.TagSearchInput.stories.md +61 -0
  651. package/src/stories/.Textarea.stories.md +49 -26
  652. package/src/stories/.Theme.stories.md +41 -0
  653. package/src/stories/.TicketAttachmentsList.stories.md +39 -0
  654. package/src/stories/.TicketDescriptionViewer.stories.md +39 -0
  655. package/src/stories/.TicketInfoSection.stories.md +40 -0
  656. package/src/stories/.TicketKnowledgeBaseList.stories.md +36 -0
  657. package/src/stories/.TicketNotesSection.stories.md +50 -0
  658. package/src/stories/.Toaster.stories.md +40 -0
  659. package/src/stories/.ToolExecutionDisplay.stories.md +41 -0
  660. package/src/stories/.Tooltip.stories.md +41 -0
  661. package/src/stories/.UserSummary.stories.md +41 -0
  662. package/src/stories/.WaitlistForm.stories.md +42 -0
  663. package/src/stories/BlogCard.stories.tsx +61 -0
  664. package/src/stories/CampaignCardAdmin.stories.tsx +52 -0
  665. package/src/stories/CaseStudyCard.stories.tsx +42 -0
  666. package/src/stories/ChatContainer.stories.tsx +186 -0
  667. package/src/stories/ChatInlineVideoPill.stories.tsx +63 -0
  668. package/src/stories/CustomerInterviewCard.stories.tsx +42 -0
  669. package/src/stories/DataRoomDocCard.stories.tsx +52 -0
  670. package/src/stories/GenericEntityCard.stories.tsx +66 -0
  671. package/src/stories/GitHubActivityCard.stories.tsx +61 -0
  672. package/src/stories/HubspotTicketCard.stories.tsx +98 -0
  673. package/src/stories/InvestorUpdateCard.stories.tsx +42 -0
  674. package/src/stories/OnboardingGuideCard.stories.tsx +52 -0
  675. package/src/stories/ProductReleaseCard.stories.tsx +61 -0
  676. package/src/stories/ProgramCard.stories.tsx +79 -0
  677. package/src/stories/RoadmapCard.stories.tsx +75 -0
  678. package/src/stories/SlackMessageCard.stories.tsx +41 -0
  679. package/src/stories/__fixtures__/chat-cards.ts +604 -0
  680. package/src/types/.blog.md +53 -29
  681. package/src/types/.case-study.md +44 -27
  682. package/src/types/.customer-interview.md +66 -44
  683. package/src/types/.delivery.md +40 -0
  684. package/src/types/.employee.md +24 -30
  685. package/src/types/.index.md +33 -47
  686. package/src/types/.marketing.md +49 -44
  687. package/src/types/.navigation.md +33 -25
  688. package/src/types/.os.types.md +32 -27
  689. package/src/types/.platform.md +31 -28
  690. package/src/types/.product-release.md +65 -38
  691. package/src/types/.supabase.md +37 -29
  692. package/src/types/.team.md +41 -33
  693. package/src/types/.video-processing.md +54 -0
  694. package/src/types/.waitlist.md +40 -36
  695. package/src/utils/.access-code-client.md +37 -36
  696. package/src/utils/.cn.md +31 -23
  697. package/src/utils/.color-analysis.md +35 -0
  698. package/src/utils/.country-phone-utils.md +39 -0
  699. package/src/utils/.date-formatters.md +19 -18
  700. package/src/utils/.embed-authed-fetch.md +39 -0
  701. package/src/utils/.embed-proxy-auth-storage.md +38 -0
  702. package/src/utils/.fetch-priority.md +41 -0
  703. package/src/utils/.format.md +74 -25
  704. package/src/utils/.generic-domain-utils.md +42 -0
  705. package/src/utils/.image-proxy.md +59 -23
  706. package/src/utils/.index.md +42 -49
  707. package/src/utils/.local-storage-adapter.md +50 -0
  708. package/src/utils/.ods-color-utils.md +55 -38
  709. package/src/utils/.platform-config.md +45 -25
  710. package/src/utils/.scroll-into-view.md +40 -0
  711. package/src/utils/.source-icons.md +53 -0
  712. package/src/utils/.sse-decision-frame.md +46 -0
  713. package/src/utils/dev-sections/.index.md +34 -0
  714. package/src/utils/dev-sections/.openframe-dev-sections.md +49 -0
  715. package/dist/chunk-ZDF6F7ED.cjs.map +0 -1
  716. package/dist/chunk-ZTJVRSN5.js.map +0 -1
  717. package/src/components/.card.md +0 -42
  718. package/src/components/.contact-button.md +0 -30
  719. package/src/components/.drawer.md +0 -46
  720. package/src/components/.fixed-layout-container.md +0 -47
  721. package/src/components/.footer-waitlist-card.md +0 -29
  722. package/src/components/.join-waitlist-cta.md +0 -29
  723. package/src/components/.sheet.md +0 -47
  724. package/src/components/.sliding-panel.md +0 -48
  725. package/src/components/.tooltip.md +0 -48
  726. package/src/components/.use-mobile.md +0 -42
  727. package/src/components/.vendor-compact-card.md +0 -66
  728. package/src/components/.x-button.md +0 -42
  729. package/src/components/features/.github-repo-button.md +0 -40
  730. package/src/components/features/.organization-icon.md +0 -47
  731. package/src/components/features/.organization-selector.md +0 -45
  732. package/src/components/icons/.fleet-icon.md +0 -39
  733. package/src/components/icons/.meshcentral-icon.md +0 -35
  734. package/src/components/icons/.refresh-icon.md +0 -34
  735. package/src/components/icons/.tactical-icon.md +0 -35
  736. package/src/components/ui/.button.md +0 -69
  737. package/src/components/ui/.log-table-row.md +0 -47
  738. package/src/components/ui/.selectable-device-card.md +0 -46
  739. package/src/hooks/.api-hooks-stub.md +0 -45
  740. package/src/hooks/api/.use-product-releases.md +0 -53
  741. package/src/stories/.OrganizationSelector.stories.md +0 -42
  742. package/src/stories/.SelectableDeviceCard.stories.md +0 -30
  743. package/src/utils/.lite-youtube-embed-stub.md +0 -37
  744. package/src/utils/.lite-youtube-embed.md +0 -33
  745. /package/dist/{chunk-IK2X5YJU.js.map → chunk-7PCP7YQR.js.map} +0 -0
  746. /package/dist/{chunk-3JWIJJ44.js.map → chunk-R6MLPU4A.js.map} +0 -0
@@ -0,0 +1,50 @@
1
+ <!-- source-hash: 5421df27f5f23a658e7a9769d35c1b32 -->
2
+ Brief description of the file's purpose in 1-2 sentences.
3
+
4
+ Defines the shared TypeScript wire types for the onboarding guide feature, covering the full row shape returned by `/api/onboarding-guides` and the chat onboarding-guide card. These types are intentionally client-safe — DAL mutations stay hub-side.
5
+
6
+ ## Key Components
7
+
8
+ | Export | Type | Description |
9
+ |--------|------|-------------|
10
+ | `OnboardingGuide` | `interface` | Full row shape: identity, ordering, body content, video pipeline, images, SEO, workflow, and audit fields |
11
+ | `OnboardingGuideFilters` | `interface` | Query parameters for list endpoints (`status`, `search`, `section`, `platform`, pagination, `ids`) |
12
+ | `OnboardingGuideListResponse` | `interface` | Paginated list response wrapping `OnboardingGuide[]` with a total `count` |
13
+ | `OnboardingGuideSectionSummary` | `interface` | Lightweight section rollup: name, ordering, and guide count |
14
+
15
+ ## Usage Example
16
+
17
+ ```typescript
18
+ import type {
19
+ OnboardingGuide,
20
+ OnboardingGuideFilters,
21
+ OnboardingGuideListResponse,
22
+ } from './onboarding-guide';
23
+
24
+ // Fetch guides for a specific platform section
25
+ async function fetchGuides(
26
+ filters: OnboardingGuideFilters
27
+ ): Promise<OnboardingGuideListResponse> {
28
+ const params = new URLSearchParams({
29
+ ...(filters.status && { status: filters.status }),
30
+ ...(filters.platform && { platform: filters.platform }),
31
+ ...(filters.section && { section: filters.section }),
32
+ limit: String(filters.limit ?? 20),
33
+ offset: String(filters.offset ?? 0),
34
+ });
35
+
36
+ const res = await fetch(`/api/onboarding-guides?${params}`);
37
+ return res.json() as Promise<OnboardingGuideListResponse>;
38
+ }
39
+
40
+ // Resolve video source (Mux/MP4 preferred, YouTube as fallback)
41
+ function resolveVideoUrl(guide: OnboardingGuide): string | null {
42
+ return guide.main_video_url ?? guide.youtube_url ?? null;
43
+ }
44
+ ```
45
+
46
+ ## Notes
47
+
48
+ - **Video pipeline**: `main_video_url` (Mux/MP4) and `youtube_url` are independent columns — consumers should use whichever is populated, matching the `<VideoSourceSelector>` admin toggle.
49
+ - **Multi-platform**: `onboarding_guide_platforms` is a junction array; a single guide can be featured across multiple platforms with independent `featured_order` values.
50
+ - **Ordering**: Use `section_order` + `step_order` together for deterministic sort within a section.
@@ -0,0 +1,57 @@
1
+ <!-- source-hash: a31da27a1da7444bbcbd4a8716703941 -->
2
+ Defines the Unified Program System's TypeScript type hierarchy, providing base interfaces, database row types, program-specific extensions, configuration objects, and pure transform utilities for events, podcasts, and webinars across a single set of generic components.
3
+
4
+ ## Key Components
5
+
6
+ | Export | Kind | Description |
7
+ |--------|------|-------------|
8
+ | `ProgramHost` | Interface | Host/speaker info (name, avatar, role, etc.) |
9
+ | `LumaEventRow` / `PodcastEpisodeRow` / `WebinarRow` | Interfaces | Raw DB row shapes for each program source table |
10
+ | `BaseProgramItem` | Interface | Shared contract all program items must satisfy |
11
+ | `EventItem` / `PodcastItem` / `WebinarItem` | Interfaces | Extended shapes with program-specific fields |
12
+ | `ProgramType` | Type | `'event' \| 'podcast' \| 'webinar'` discriminant |
13
+ | `ProgramConfig<T>` | Interface | Configuration object that drives generic component behavior (labels, routing, icons, sort order) |
14
+ | `ProgramLabels` | Interface | Display strings (singular, plural, archive, empty, etc.) |
15
+ | `ProgramListResponse<T>` / `ProgramItemResponse<T>` | Interfaces | Generic API response wrappers |
16
+ | `ProgramFilter` / `AdminProgramFilter` | Interfaces | Query/filter option shapes |
17
+ | `transformEventToProgram` | Function | Maps `LumaEventRow` → `EventItem` |
18
+ | `transformPodcastToProgram` | Function | Maps `PodcastEpisodeRow` → `PodcastItem` |
19
+ | `transformWebinarToProgram` | Function | Maps `WebinarRow` → `WebinarItem` |
20
+
21
+ ## Usage Example
22
+
23
+ ```typescript
24
+ import type {
25
+ ProgramConfig,
26
+ EventItem,
27
+ ProgramLabels,
28
+ } from './program-types';
29
+ import { transformEventToProgram } from './program-types';
30
+ import { CalendarDays } from 'lucide-react';
31
+
32
+ // Define a typed config for events
33
+ const eventConfig: ProgramConfig<EventItem> = {
34
+ type: 'event',
35
+ table: 'luma_events',
36
+ apiEndpoint: '/api/events',
37
+ dateField: 'start_at',
38
+ detailRoute: '/events',
39
+ externalLinkLabel: 'View on Luma',
40
+ icon: <CalendarDays />,
41
+ sortOrder: 'asc',
42
+ labels: {
43
+ singular: 'Event',
44
+ plural: 'Events',
45
+ upcoming: 'Next Event',
46
+ upcomingSection: 'Upcoming Events',
47
+ archive: 'Past Events',
48
+ empty: 'No events yet',
49
+ },
50
+ };
51
+
52
+ // Transform a raw DB row into a typed EventItem
53
+ const row = await db.from('luma_events').select('*').single();
54
+ const eventItem: EventItem = transformEventToProgram(row);
55
+ ```
56
+
57
+ > `BaseProgramItem` is the generic constraint used throughout — any new program type only needs to extend it and supply a matching `ProgramConfig` to plug into all shared components automatically.
@@ -0,0 +1,58 @@
1
+ <!-- source-hash: ad455db496eef8ee2c54f68792ebfef2 -->
2
+ Defines the canonical wire-shape interfaces for roadmap items consumed by the chat roadmap card and the public `/api/roadmap` endpoint.
3
+
4
+ ## Key Components
5
+
6
+ ### `RoadmapItem`
7
+ Strongly-typed entity mirroring the `roadmap_items` projection produced by `transformTask()` in `clickup-sync-utils.ts`. Represents a single ClickUp task surfaced as a public roadmap entry.
8
+
9
+ | Field | Type | Description |
10
+ |---|---|---|
11
+ | `id` | `string` | Unique identifier |
12
+ | `status` / `statusColor` | `string` | Display status and its hex/named color |
13
+ | `icon` | `string \| null` | Optional icon URL |
14
+ | `figmaUrl` | `string \| null` | Linked Figma design |
15
+ | `screenshots` | `string[]` | Attached screenshot URLs |
16
+ | `targetVersion` | `string \| null` | Planned release version |
17
+ | `upvotes` / `downvotes` | `number` | Community voting counts |
18
+ | `quarter` | `string` | Planning quarter label |
19
+ | `clickupUrl` | `string` | Canonical ClickUp task URL |
20
+ | `customItemId` | `number \| null` | ClickUp task-type taxonomy ID (e.g. `1008`=Bug, `1009`=Request, `1010`=Feature) — drives type icons via `getTaskTypeIcon` |
21
+
22
+ ### `RoadmapStaleness`
23
+ Tracks cache freshness for roadmap data synced from ClickUp.
24
+
25
+ | Field | Type | Description |
26
+ |---|---|---|
27
+ | `lastSyncedAt` | `string \| null` | ISO timestamp of last successful sync |
28
+ | `staleSinceMs` | `number` | Milliseconds elapsed since last sync |
29
+
30
+ ## Usage Example
31
+
32
+ ```typescript
33
+ import type { RoadmapItem, RoadmapStaleness } from '@/components/chat/types/entities/roadmap-item';
34
+
35
+ const item: RoadmapItem = {
36
+ id: 'task_abc123',
37
+ title: 'Dark mode support',
38
+ description: 'Add system-level dark mode across all views',
39
+ status: 'In Progress',
40
+ statusColor: '#f5a623',
41
+ icon: null,
42
+ figmaUrl: 'https://figma.com/file/...',
43
+ screenshots: [],
44
+ targetVersion: 'v2.4.0',
45
+ upvotes: 42,
46
+ downvotes: 3,
47
+ quarter: 'Q3 2025',
48
+ clickupUrl: 'https://app.clickup.com/t/abc123',
49
+ customItemId: 1010, // Feature
50
+ };
51
+
52
+ const staleness: RoadmapStaleness = {
53
+ lastSyncedAt: '2025-07-01T12:00:00Z',
54
+ staleSinceMs: 3600000, // 1 hour
55
+ };
56
+ ```
57
+
58
+ > **Import note:** Always import from `@/components/chat/types/entities/roadmap-item` for the strongly-typed shape. The legacy `RoadmapItem` stub in `product-release/release-detail-page.tsx` is untyped (`{ id: string; [key: string]: unknown }`) and will be reconciled in a follow-up.
@@ -0,0 +1,35 @@
1
+ <!-- source-hash: 5dd665815decf79ecf870dd4eb652947 -->
2
+ Defines the minimal wire shape for Slack message data as displayed in the chat RAG result card, representing a post-retrieval projection stripped of community-feature fields like reactions and threading.
3
+
4
+ ## Key Components
5
+
6
+ ### `SlackMessageItem` interface
7
+
8
+ A lean projection of a `slack_messages` RAG table row containing only the fields required to render the `slack-message-card` UI component.
9
+
10
+ | Field | Type | Description |
11
+ |---|---|---|
12
+ | `id` | `string` | Slack message ID (`ts` or URL-derived) |
13
+ | `title` | `string` | Display title — typically `"author · channel"` |
14
+ | `preview` | `string?` | PII-sanitized message body preview |
15
+ | `channel` | `string?` | Channel name parsed from URL or stored row |
16
+ | `dateUpdated` | `string \| number \| null?` | ISO timestamp or millisecond epoch |
17
+ | `url` | `string \| null?` | Full Slack permalink (`https://*.slack.com/archives/...`) |
18
+
19
+ ## Usage Example
20
+
21
+ ```typescript
22
+ import { SlackMessageItem } from '@/types/slack-message';
23
+
24
+ // Mapping a RAG table row to the card's wire shape
25
+ const item: SlackMessageItem = {
26
+ id: '1712345678.000100',
27
+ title: 'jane.doe · #support',
28
+ preview: 'Has anyone seen the ticket for the VPN issue?',
29
+ channel: 'support',
30
+ dateUpdated: '2024-04-05T14:22:00.000Z',
31
+ url: 'https://acme.slack.com/archives/C01AB2CD3EF/p1712345678000100',
32
+ };
33
+ ```
34
+
35
+ > **Naming note:** This interface is intentionally distinct from the broader `SlackMessage` type in `src/types/slack.ts`, which covers the full Slack Community feature shape including reactions, threading, and user objects.
@@ -0,0 +1,45 @@
1
+ <!-- source-hash: 75abfd053b43306b990d3311c7dd4813 -->
2
+ Resolves a status string to an abstract color scheme name for use in `StatusBadge` components across job, ClickUp task, and log-level status surfaces.
3
+
4
+ ## Key Components
5
+
6
+ | Export | Type | Description |
7
+ |--------|------|-------------|
8
+ | `ColorScheme` | `type` | Union type: `'success' \| 'error' \| 'warning' \| 'cyan' \| 'default'` |
9
+ | `getStatusColorScheme` | `function` | Maps a status string to a `ColorScheme` value |
10
+
11
+ ### Resolution Strategy
12
+
13
+ `getStatusColorScheme` applies a two-pass lookup:
14
+
15
+ 1. **Exact match** — case-sensitive switch on common statuses
16
+ 2. **Partial match** — lowercase substring checks for ClickUp-style freeform statuses (e.g. `"In Progress"`, `"Complete"`)
17
+
18
+ | ColorScheme | Matched statuses |
19
+ |-------------|-----------------|
20
+ | `success` | `completed`, `success`, `active`, `*complete*`, `*done*` |
21
+ | `error` | `failed`, `failure`, `cancelled`, `error`, `*blocked*`, `*failed*` |
22
+ | `cyan` | `running`, `processing`, `closed`, `*review*` |
23
+ | `warning` | `pending`, `warning`, `*working*`, `*progress*` |
24
+ | `default` | `draft`, `info`, or any unmatched value |
25
+
26
+ ## Usage Example
27
+
28
+ ```typescript
29
+ import { getStatusColorScheme } from './agent-status-message'
30
+
31
+ // Exact match
32
+ getStatusColorScheme('completed') // → 'success'
33
+ getStatusColorScheme('failed') // → 'error'
34
+ getStatusColorScheme('running') // → 'cyan'
35
+
36
+ // Partial match (ClickUp-style)
37
+ getStatusColorScheme('In Progress') // → 'warning'
38
+ getStatusColorScheme('Done') // → 'success'
39
+ getStatusColorScheme('Code Review') // → 'cyan'
40
+
41
+ // Consumed by StatusBadge
42
+ <StatusBadge colorScheme={getStatusColorScheme(task.status)} label={task.status} />
43
+ ```
44
+
45
+ > **Note:** This is the lib-side subset of the hub's `agent-status-message.ts`. CSS class resolvers and the `AgentStatusMessage` SSE builder live hub-side, as they reference hub-only ODS class names.
@@ -0,0 +1,58 @@
1
+ <!-- source-hash: 202df1de78269679793058f2735da78c -->
2
+ Brief description of the file's purpose and what it does.
3
+
4
+ Defines the shared cross-process contract for the post-approval auto-continuation directive, providing a single source of truth for both server-side routing and client-side message construction.
5
+
6
+ ## Key Components
7
+
8
+ | Export | Type | Description |
9
+ |--------|------|-------------|
10
+ | `AUTO_CONTINUATION_DIRECTIVE_PREFIX` | `const string` | Sentinel prefix used by both `decideRoute` (server) and `autoContinueRef` (client) to identify hidden directive messages |
11
+ | `BuildAutoContinuationOptions` | `interface` | Options bag for `ticketId` and `status` to branch directive logic |
12
+ | `buildAutoContinuationDirective` | `function` | Builds the hidden synthetic user message injected after every successful tool approval |
13
+
14
+ ## Directive Branches
15
+
16
+ ```mermaid
17
+ graph TD
18
+ A["buildAutoContinuationDirective(toolName, opts)"] --> B{"toolName?"}
19
+ B -->|"create_ticket"| C["§1a — Ask 2-4 diagnostic\nfollow-up questions"]
20
+ B -->|"update_ticket + CLOSED"| D["§1b — Ask ONE closing\nresolution question"]
21
+ B -->|"update_ticket (other)"| E["Acknowledge change,\nask if anything else needed"]
22
+ C --> F["Prefix + prose only\nNo tool call this turn"]
23
+ D --> F
24
+ E --> F
25
+ ```
26
+
27
+ ## Usage Example
28
+
29
+ ```typescript
30
+ import {
31
+ AUTO_CONTINUATION_DIRECTIVE_PREFIX,
32
+ buildAutoContinuationDirective,
33
+ } from './auto-continuation-directive'
34
+
35
+ // After a create_ticket approval — injects diagnostic follow-up Qs
36
+ const directive = buildAutoContinuationDirective('create_ticket', {
37
+ ticketId: '4821',
38
+ })
39
+ // → "[internal-auto-continuation] The user just approved create_ticket (ticket #4821). ..."
40
+
41
+ // After closing a ticket
42
+ const closeDirective = buildAutoContinuationDirective('update_ticket', {
43
+ ticketId: '4821',
44
+ status: 'CLOSED',
45
+ })
46
+ // → "[internal-auto-continuation] The user just approved closing ticket #4821. ..."
47
+
48
+ // Server-side route guard — tools disabled for directive turns
49
+ if (rawUserQuery.startsWith(AUTO_CONTINUATION_DIRECTIVE_PREFIX)) {
50
+ disableTools()
51
+ }
52
+ ```
53
+
54
+ ## Important Constraints
55
+
56
+ - **Never drift the prefix** — server `decideRoute` and client `autoContinueRef` must both import from this file. A mismatched literal silently re-enables tools, causing the LLM to duplicate the just-approved tool call.
57
+ - **Tools are hard-disabled** on the directive turn — all branches instruct the LLM to respond with prose only.
58
+ - `toolName` is typed as `string` (not a const-union) intentionally, keeping the module generic across hub deployments.
@@ -0,0 +1,54 @@
1
+ <!-- source-hash: 3113ae48366d1440e4d993a3e0404da3 -->
2
+ Shared utility providing a single source of truth for formatting and parsing chat attachment markdown between the host-side bubble renderer and server-side LLM input cleaner, preventing drift between the two systems.
3
+
4
+ ## Key Components
5
+
6
+ | Export | Type | Description |
7
+ |--------|------|-------------|
8
+ | `CHAT_ATTACHMENT_VIEW_URL_PREFIX` | `const` | Hub-default proxy URL prefix for attachment view routes |
9
+ | `CHAT_ATTACHMENT_VIEW_TOKEN_QUERY_PARAM` | `const` | Query param name (`t`) for the HMAC view token |
10
+ | `ANTHROPIC_SUPPORTED_IMAGE_MIME` | `const` | Image MIME types renderable as Anthropic image blocks |
11
+ | `ChatAttachment` | `interface` | Wire shape for a single chat attachment |
12
+ | `buildChatAttachmentViewUrl` | `function` | Constructs the signed proxy URL for an attachment |
13
+ | `escapeMarkdownInline` | `function` | Sanitizes filenames against markdown injection attacks |
14
+ | `formatChatAttachmentMarkdownForBubble` | `function` | Produces the `![]()` or `[Attached: ...]` markdown line |
15
+ | `CHAT_ATTACHMENT_MARKDOWN_PATTERN` | `RegExp` | Anchored regex matching both image and link attachment forms |
16
+ | `stripChatAttachmentMarkdown` | `function` | Strips attachment markdown from text and extracts storage paths |
17
+
18
+ ## Usage Example
19
+
20
+ ```typescript
21
+ import {
22
+ CHAT_ATTACHMENT_VIEW_URL_PREFIX,
23
+ formatChatAttachmentMarkdownForBubble,
24
+ stripChatAttachmentMarkdown,
25
+ } from './chat-attachment-markdown'
26
+
27
+ // Host-side: format attachment for user bubble (pass runtime prefix)
28
+ const attachment: ChatAttachment = {
29
+ storagePath: 'org-123/chat/screenshot.png',
30
+ viewToken: 'hmac-signed-token',
31
+ contentType: 'image/png',
32
+ fileName: 'screenshot.png',
33
+ size: 204800,
34
+ }
35
+
36
+ // Embedded app overrides prefix; hub uses the constant directly
37
+ const markdown = formatChatAttachmentMarkdownForBubble(
38
+ attachment,
39
+ 'https://hub.example.com/api/storage/view/chat-attachments/',
40
+ )
41
+ // → "\n\n![screenshot.png](https://hub.example.com/api/storage/view/...?t=...)"
42
+
43
+ // Server-side: strip attachment lines before sending to LLM
44
+ const userMessage = `Please review this\n\n![screenshot.png](/api/storage/view/chat-attachments/org-123/chat/screenshot.png?t=abc)`
45
+ const { stripped, storagePaths } = stripChatAttachmentMarkdown(userMessage)
46
+ // stripped → "Please review this"
47
+ // storagePaths → ["org-123/chat/screenshot.png"]
48
+ ```
49
+
50
+ ## Security Notes
51
+
52
+ - **Markdown injection**: `escapeMarkdownInline` escapes `[`, `]`, `(`, `)`, `\`, `<`, `>`, and `"` from filenames — preventing a crafted name like `screenshot](https://evil.com).png` from hijacking the image URL.
53
+ - **Anthropic image blocks**: raw Supabase signed URLs are used (not the proxy) because Anthropic's fetcher does not reliably follow `302` redirects.
54
+ - **View tokens**: HMAC-signed server-side; the client never generates them.
@@ -0,0 +1,25 @@
1
+ <!-- source-hash: b57cf7dd5609e4a80ebf96f0658340cc -->
2
+ Re-exports `embedAuthedFetch` under the legacy `chatAuthedFetch` alias to maintain backwards compatibility for existing chat-namespace callers.
3
+
4
+ ## Key Components
5
+
6
+ | Export | Type | Description |
7
+ |--------|------|-------------|
8
+ | `chatAuthedFetch` | Re-export (alias) | Legacy alias for `embedAuthedFetch` from `utils/embed-authed-fetch` |
9
+
10
+ ## Usage Example
11
+
12
+ **New code** should import directly from the canonical source:
13
+
14
+ ```typescript
15
+ import { embedAuthedFetch } from '@flamingo-stack/openframe-frontend-core/utils'
16
+ ```
17
+
18
+ **Legacy callers** (still compiling via this shim):
19
+
20
+ ```typescript
21
+ import { chatAuthedFetch } from './chat-authed-fetch'
22
+ // chatAuthedFetch === embedAuthedFetch — same function, legacy name
23
+ ```
24
+
25
+ > **⚠️ Deprecated:** This file is a compatibility shim only. All new code — whether in the chat or ticket center namespace — should import `embedAuthedFetch` from `@flamingo-stack/openframe-frontend-core/utils` directly. Wire headers (`X-Chat-Act-As`, etc.) are unchanged by the rename.
@@ -0,0 +1,46 @@
1
+ <!-- source-hash: 1b020dd80f0099498e2af194cf845b64 -->
2
+ Handles embed-mode URL resolution and external navigation for chat panel link interactions, ensuring relative paths are correctly absolutized against the embedder-supplied content origin and opened safely in new tabs.
3
+
4
+ ## Key Components
5
+
6
+ | Export | Type | Description |
7
+ |--------|------|-------------|
8
+ | `NEW_TAB_FEATURES` | `const` | Window features string (`noopener,noreferrer`) for reverse-tabnabbing prevention |
9
+ | `isModifierClick` | `function` | Detects cmd/ctrl/shift/alt or non-primary button clicks |
10
+ | `stripSameOriginToPath` | `function` | Strips origin from same-origin absolute URLs, returning a router-friendly relative path |
11
+ | `resolveHrefForRuntime` | `function` | Pre-resolves hrefs against `defaultContentOrigin` in embed mode; no-op in host mode |
12
+ | `resolveExternalNavigation` | `function` | Full resolution pipeline — absolutizes href, handles protocol-relative guards, returns an inline-callable `open()` |
13
+ | `ExternalNavResolution` | `interface` | Return type: resolved `href` + synchronous `open()` invoker |
14
+
15
+ ## Usage Example
16
+
17
+ ```typescript
18
+ import {
19
+ resolveExternalNavigation,
20
+ resolveHrefForRuntime,
21
+ isModifierClick,
22
+ } from './chat-nav-resolution'
23
+
24
+ // Pre-render: absolutize href so modifier-click / status bar shows correct URL
25
+ const resolvedHref = resolveHrefForRuntime('/knowledge-base/article.md', runtime)
26
+ // embed mode + defaultContentOrigin="https://hub.example.com"
27
+ // → "https://hub.example.com/knowledge-base/article.md"
28
+
29
+ // onClick handler
30
+ function handleChipClick(e: React.MouseEvent, href: string) {
31
+ if (isModifierClick(e)) return // let browser handle natively (already absolute)
32
+
33
+ const { open } = resolveExternalNavigation({
34
+ href,
35
+ targetPlatform: 'hub',
36
+ runtime,
37
+ })
38
+ open() // must be called synchronously inside user gesture
39
+ }
40
+ ```
41
+
42
+ ## Notes
43
+
44
+ - `resolveExternalNavigation` uses an explicit `if/else` (not `??`) when invoking `openExternal` to avoid a double-open bug where a `void` return would fall through to `window.open`.
45
+ - Protocol-relative URLs (`//evil.com/path`) are normalized to `https://` before processing to prevent open-redirect vulnerabilities.
46
+ - In embed mode, relative hrefs without a `defaultContentOrigin` emit a `console.warn` in non-production environments.
@@ -0,0 +1,38 @@
1
+ <!-- source-hash: 951b153c177b85c14bc55650838662fe -->
2
+ Thin compatibility shim that re-exports the canonical embed proxy authentication utilities under legacy `chat-`-prefixed names, preserving backward compatibility for existing chat-namespace callers.
3
+
4
+ ## Key Components
5
+
6
+ | Export | Original Name | Description |
7
+ |--------|--------------|-------------|
8
+ | `ChatProxyAuth` | `EmbedProxyAuth` | Type alias for the proxy auth object |
9
+ | `getChatProxyAuth` | `getEmbedProxyAuth` | Retrieves current proxy auth from storage |
10
+ | `setChatProxyAuth` | `setEmbedProxyAuth` | Persists proxy auth to storage |
11
+ | `clearChatProxyAuth` | `clearEmbedProxyAuth` | Clears proxy auth from storage |
12
+ | `getPersistedProxyEmail` | *(unchanged)* | Reads the persisted proxy email |
13
+ | `applyProxyAuth` | *(unchanged)* | Applies proxy auth headers to requests |
14
+
15
+ > **Deprecated:** All exports here are forwarded from `@flamingo-stack/openframe-frontend-core/utils/embed-proxy-auth-storage`. New code should import from that module directly. Wire headers (`X-Chat-Act-As`, etc.) and the storage key (`chat.proxy-auth.v1`) remain unchanged.
16
+
17
+ ## Usage Example
18
+
19
+ **Legacy callers (still valid, but deprecated):**
20
+
21
+ ```typescript
22
+ import { getChatProxyAuth, setChatProxyAuth, clearChatProxyAuth } from './chat-proxy-auth-storage'
23
+
24
+ const auth = getChatProxyAuth()
25
+ setChatProxyAuth({ token: 'abc123', email: 'tech@msp.com' })
26
+ clearChatProxyAuth()
27
+ ```
28
+
29
+ **New code should import from the canonical path:**
30
+
31
+ ```typescript
32
+ import {
33
+ getEmbedProxyAuth,
34
+ setEmbedProxyAuth,
35
+ clearEmbedProxyAuth,
36
+ applyProxyAuth,
37
+ } from '@flamingo-stack/openframe-frontend-core/utils'
38
+ ```
@@ -0,0 +1,34 @@
1
+ <!-- source-hash: cef5cf927873caff6558f4d9a0c3a3ed -->
2
+ Defines and exports a single shared Tailwind CSS class string for chip-density action buttons used across the device density UI components.
3
+
4
+ ## Key Components
5
+
6
+ - **`CHIP_ACTION_BUTTON_CLASS`** — A constant string of Tailwind utility classes providing consistent styling for compact action buttons (e.g., Recent, Search, Find, Display, Submit, Cancel) rendered inside chip card tertiary action rows and the `<DisplayChipAction>` popover.
7
+
8
+ ## Usage Example
9
+
10
+ ```typescript
11
+ import { CHIP_ACTION_BUTTON_CLASS } from './chip-action-class'
12
+
13
+ // Apply to a button element
14
+ <button className={CHIP_ACTION_BUTTON_CLASS}>
15
+ Recent
16
+ </button>
17
+
18
+ // Extend with additional classes when needed
19
+ <button className={`${CHIP_ACTION_BUTTON_CLASS} my-extra-class`}>
20
+ Search
21
+ </button>
22
+ ```
23
+
24
+ ## Design Notes
25
+
26
+ | Property | Value | Intent |
27
+ |----------|-------|--------|
28
+ | Font size | `text-[11px]` | Sub-UI-Kit density, fits chip action rows |
29
+ | Padding | `px-2 py-1` | Tight, below standard `Button size="small"` |
30
+ | Colors | `ods-text-secondary` / hover `ods-text-primary` | ODS token-based theming |
31
+ | Background | `bg-transparent` / hover `ods-card-hover` | Subtle interactive feedback |
32
+ | Focus ring | `focus-visible:ring-ods-focus` | Accessible keyboard navigation |
33
+
34
+ Centralizing this constant prevents Tailwind class chain drift across the empty-state chip and `<DisplayChipAction>` popover, ensuring byte-equivalent styling at both call sites.
@@ -0,0 +1,46 @@
1
+ <!-- source-hash: 53f316e6709d2c8161bb544234df2d3a -->
2
+ Centralises Tailwind/ODS className generation for the chat-adjacent UI chip family, ensuring consistent styling across citation chips, inline entity-card pills, and search-result dropdown rows.
3
+
4
+ ## Key Components
5
+
6
+ ### `ChipClassOptions` (interface)
7
+
8
+ | Property | Type | Description |
9
+ |----------|------|-------------|
10
+ | `tone` | `'primary' \| 'secondary'` | Controls resting text color — `primary` matches body text; `secondary` is muted for metadata |
11
+ | `density` | `'chip' \| 'list-row' \| 'card-row'` | Controls size/padding variant. Defaults to `'chip'` |
12
+ | `extra` | `string` | Optional additional classes appended verbatim (e.g. `cursor-pointer`) |
13
+
14
+ ### `chatChipClass(options)` (function)
15
+
16
+ Accepts a `ChipClassOptions` object and returns a composed Tailwind class string. All three density variants share the same border, hover transition, and accent treatment so they read as one UI family regardless of size.
17
+
18
+ | Density | Sizing | Frame |
19
+ |---------|--------|-------|
20
+ | `chip` | `px-2 py-0.5 text-[11px]` | bordered card bg |
21
+ | `list-row` | `px-3 py-2 text-sm` | bordered card bg |
22
+ | `card-row` | `px-2 py-1 text-[11px]` | no border/bg |
23
+
24
+ ## Usage Example
25
+
26
+ ```typescript
27
+ import { chatChipClass } from './chip-styles'
28
+
29
+ // Citation chip (default density)
30
+ const citationClass = chatChipClass({ tone: 'secondary' })
31
+
32
+ // Search dropdown row
33
+ const dropdownRowClass = chatChipClass({
34
+ tone: 'primary',
35
+ density: 'list-row',
36
+ extra: 'cursor-pointer w-full',
37
+ })
38
+
39
+ // Tracking strip under a card frame
40
+ const cardRowClass = chatChipClass({
41
+ tone: 'secondary',
42
+ density: 'card-row',
43
+ })
44
+ ```
45
+
46
+ > **Design note:** A single ODS token change here propagates to all three surfaces simultaneously — citation chips, inline entity markers, and search results will always render as the same visual family.
@@ -1,41 +1,51 @@
1
- <!-- source-hash: 7638e9ed81b8f00f7e8ab732efcd6c0b -->
2
- Utilities for parsing NATS message chunks into structured actions for AI tool execution workflows. This module provides functions to transform raw chunk data into typed action objects and utilities for identifying different chunk types.
1
+ <!-- source-hash: 637d22f77dbdb02b04013632095ddfdb -->
2
+ Utilities for parsing raw NATS message chunks into typed, structured action objects consumed by the AI message pipeline.
3
3
 
4
4
  ## Key Components
5
5
 
6
- - **`parseChunkToAction`** - Main parser function that converts raw NATS chunks into structured `ParsedChunkAction` objects
7
- - **`isControlChunk`** - Identifies message start/end control chunks
8
- - **`isErrorChunk`** - Detects error message chunks
9
- - **`isMetadataChunk`** - Identifies AI model metadata chunks
10
- - **`extractTextFromChunk`** - Extracts text content from text-type chunks
6
+ ### `parseChunkToAction(chunk)`
7
+ Core export that maps a raw `ChunkData` object to a `ParsedChunkAction` union type. Uses a `switch` on `MESSAGE_TYPE` to handle all supported message variants:
8
+
9
+ | Action | Description |
10
+ |---|---|
11
+ | `message_start` / `message_end` | Lifecycle control signals |
12
+ | `metadata` | AI model/provider info |
13
+ | `text` / `thinking` / `system` | Content streaming |
14
+ | `tool_execution` | Tool start/completion events |
15
+ | `approval_request` / `approval_batch` | Single or multi-tool approval flows |
16
+ | `approval_result` | Approval outcome |
17
+ | `token_usage` | Token consumption stats |
18
+ | `context_compaction_start/end` | Context window management |
19
+ | `direct_message` | Owner-attributed messages |
20
+ | `dialog_closed` | Session termination |
21
+
22
+ Returns `null` for unknown or malformed chunks.
23
+
24
+ ### `normalizeToolCalls(raw)` *(internal)*
25
+ Coerces an unknown array into `PendingToolCallData[]`, safely defaulting missing fields and enforcing correct types.
26
+
27
+ ### Guard Helpers
28
+ Lightweight boolean checks for common chunk classifications:
29
+
30
+ - `isControlChunk(chunk)` — start/end signals
31
+ - `isErrorChunk(chunk)` — error type
32
+ - `isMetadataChunk(chunk)` — AI metadata
33
+ - `extractTextFromChunk(chunk)` — returns text content or `null`
11
34
 
12
35
  ## Usage Example
13
36
 
14
37
  ```typescript
15
- import { parseChunkToAction, isControlChunk, extractTextFromChunk } from './chunk-parser'
38
+ import { parseChunkToAction, isErrorChunk } from './chunk-parser'
16
39
 
17
- // Parse different chunk types
18
- const textChunk = { type: 'TEXT', text: 'Hello world' }
19
- const action = parseChunkToAction(textChunk)
20
- // Returns: { action: 'text', text: 'Hello world' }
40
+ // Incoming NATS message payload
41
+ const raw = { type: 'TEXT', text: 'Hello from Mingo AI' }
21
42
 
22
- // Check for control messages
23
- const startChunk = { type: 'MESSAGE_START' }
24
- if (isControlChunk(startChunk)) {
25
- console.log('Processing message start')
43
+ if (isErrorChunk(raw)) {
44
+ console.error('Stream error received')
26
45
  }
27
46
 
28
- // Extract text content
29
- const text = extractTextFromChunk(textChunk)
30
- // Returns: 'Hello world'
31
-
32
- // Handle tool execution
33
- const toolChunk = {
34
- type: 'EXECUTING_TOOL',
35
- integratedToolType: 'filesystem',
36
- toolFunction: 'readFile',
37
- parameters: { path: '/tmp/file.txt' }
47
+ const action = parseChunkToAction(raw)
48
+ if (action?.action === 'text') {
49
+ renderText(action.text) // "Hello from Mingo AI"
38
50
  }
39
- const toolAction = parseChunkToAction(toolChunk)
40
- // Returns structured tool execution action
41
51
  ```