@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
@@ -1,43 +1,44 @@
1
- <!-- source-hash: 8d3c4c86cfef654b8a89093151c49814 -->
2
- A React component that renders an interactive card for individual onboarding steps, displaying step information and providing action buttons based on completion status.
1
+ <!-- source-hash: a586fc7eef91717f42e06b54e7cb5290 -->
2
+ A React client component that renders a single onboarding step as an interactive card, supporting completed, skipped, pending, and loading states with appropriate actions.
3
3
 
4
4
  ## Key Components
5
5
 
6
- - **OnboardingStepCardProps**: Interface defining the step object, completion states, action handlers, and styling props
7
- - **OnboardingStepCard**: Main component that renders step cards with responsive layout and state-dependent UI
8
- - **handleAction**: Async function that manages processing state during step actions
9
- - **handleSkip**: Function for handling step skip actions with event propagation prevention
6
+ ### `OnboardingStepCard`
7
+ The primary exported component. Renders a responsive card with a title/description column and a dynamic action column based on step state.
10
8
 
11
- ## Usage Example
9
+ **Props (`OnboardingStepCardProps`):**
12
10
 
13
- ```typescript
14
- import { OnboardingStepCard } from './onboarding-step-card'
15
- import { CheckIcon } from 'lucide-react'
11
+ | Prop | Type | Description |
12
+ |------|------|-------------|
13
+ | `step` | `object` | Step metadata including title, description, icons, action text, and callbacks |
14
+ | `isCompleted` | `boolean` | Shows a success badge and re-run action button |
15
+ | `isSkipped` | `boolean` | Shows a neutral "SKIPPED" badge |
16
+ | `isCheckingCompletion` | `boolean` | Renders animated skeleton placeholders |
17
+ | `onAction` | `() => void \| Promise<void>` | Primary action handler (async-safe) |
18
+ | `onSkip` | `() => void` | Skip step handler |
19
+ | `className` | `string?` | Optional additional CSS classes |
20
+
21
+ **Internal state:**
22
+ - `isProcessing` — Tracks in-flight async action calls to disable the button and prevent double-submission.
16
23
 
17
- const step = {
18
- id: 'connect-device',
19
- title: 'Connect Your Device',
20
- description: 'Link your OpenFrame device to get started',
21
- actionIcon: (color?: string) => <CheckIcon color={color} />,
22
- actionText: 'Connect Now',
23
- completedText: 'Reconnect',
24
- onAction: async () => {
25
- // Device connection logic
26
- },
27
- onSkip: () => {
28
- // Skip step logic
29
- }
30
- }
24
+ ## Usage Example
31
25
 
26
+ ```typescript
32
27
  <OnboardingStepCard
33
- step={step}
28
+ step={{
29
+ id: 'connect-psa',
30
+ title: 'Connect your PSA',
31
+ description: 'Link your ticketing system to get started',
32
+ actionIcon: (color) => <PlugIcon color={color} />,
33
+ actionText: 'Connect Now',
34
+ completedText: 'Reconnect',
35
+ onAction: () => router.push('/integrations/psa'),
36
+ onSkip: () => console.log('skipped'),
37
+ }}
34
38
  isCompleted={false}
35
39
  isSkipped={false}
36
40
  isCheckingCompletion={false}
37
- onAction={handleStepAction}
38
- onSkip={handleStepSkip}
39
- className="max-w-md"
41
+ onAction={() => router.push('/integrations/psa')}
42
+ onSkip={() => markStepSkipped('connect-psa')}
40
43
  />
41
- ```
42
-
43
- The component automatically handles different states: incomplete (showing Skip/Action buttons), completed (showing badge and reconnect option), skipped (showing skipped badge), and loading (showing skeleton UI).
44
+ ```
@@ -1,51 +1,47 @@
1
- <!-- source-hash: d87b964ccbfaf2cb1dd8da2dfb0db703 -->
2
- A React component that renders a complete onboarding walkthrough with steps that can be completed, skipped, or automatically marked as complete based on external validation.
1
+ <!-- source-hash: 89208f0119005a51561aa80d8594f307 -->
2
+ Renders a multi-step onboarding walkthrough UI that syncs external completion status with local storage state, prevents race conditions via refs, and displays dismissible step cards.
3
3
 
4
4
  ## Key Components
5
5
 
6
- - **OnboardingWalkthrough**: Main component that orchestrates the onboarding flow
7
- - **OnboardingWalkthroughProps**: Interface defining configuration options including steps, completion status, and loading states
8
- - **useOnboardingState**: Custom hook for managing onboarding state and persistence
9
- - **OnboardingStepCard**: Child component for rendering individual steps (imported)
10
-
11
- ## Key Features
12
-
13
- - **Auto-completion Sync**: Automatically marks steps as complete based on external `completionStatus` prop
14
- - **Race Condition Prevention**: Uses refs to prevent duplicate actions and state conflicts
15
- - **Responsive Design**: Mobile-first layout with stacked elements on small screens
16
- - **Persistent State**: Stores progress in localStorage via configurable `storageKey`
17
- - **Action Handling**: Executes step actions and validates completion asynchronously
6
+ - **`OnboardingWalkthrough`** Main exported component that orchestrates step rendering, completion tracking, and dismissal
7
+ - **`OnboardingWalkthroughProps`** Interface defining the component's props
8
+ - **`useOnboardingState`** Hook managing persistent onboarding state (completed/skipped/dismissed) via `localStorage`
9
+ - **`OnboardingStepCard`** Child component rendering individual step cards
10
+ - **Race condition guards** — Three refs (`hasAutoMarkedRef`, `autoMarkingInProgressRef`, `actionInProgressRef`) prevent duplicate or concurrent state mutations
18
11
 
19
12
  ## Usage Example
20
13
 
21
14
  ```typescript
22
15
  import { OnboardingWalkthrough } from './onboarding-walkthrough'
23
- import { useOnboardingCompletion } from './hooks/use-onboarding-completion'
24
-
25
- function App() {
26
- const { completionStatus, isLoading } = useOnboardingCompletion()
27
-
28
- const steps = [
29
- {
30
- id: 'setup-device',
31
- title: 'Setup Device',
32
- onAction: async () => {
33
- // Navigate to device setup
34
- },
35
- checkComplete: async () => {
36
- // Verify device is configured
37
- return await checkDeviceStatus()
38
- }
39
- }
40
- ]
41
-
42
- return (
43
- <OnboardingWalkthrough
44
- steps={steps}
45
- completionStatus={completionStatus}
46
- isLoadingCompletion={isLoading}
47
- onDismiss={() => console.log('Onboarding dismissed')}
48
- />
49
- )
50
- }
51
- ```
16
+ import type { OnboardingStepConfig } from '../../../hooks/ui/use-onboarding-state'
17
+
18
+ const steps: OnboardingStepConfig[] = [
19
+ {
20
+ id: 'knowledge-base',
21
+ title: 'Set up Knowledge Base',
22
+ description: 'Upload your documentation.',
23
+ onAction: async () => { /* open modal or navigate */ },
24
+ },
25
+ {
26
+ id: 'connect-psa',
27
+ title: 'Connect your PSA',
28
+ description: 'Integrate your ticketing system.',
29
+ onAction: async () => { /* trigger integration flow */ },
30
+ checkComplete: async () => await checkPsaConnected(),
31
+ },
32
+ ]
33
+
34
+ <OnboardingWalkthrough
35
+ steps={steps}
36
+ storageKey="my-app-onboarding"
37
+ completionStatus={{ 'connect-psa': true }}
38
+ isLoadingCompletion={false}
39
+ onDismiss={() => console.log('dismissed')}
40
+ />
41
+ ```
42
+
43
+ ## Behavior Notes
44
+
45
+ - **Auto-sync**: When `completionStatus` prop changes, steps flagged `true` are automatically marked complete via `markMultipleComplete`, guarded by a JSON-stringified status key to avoid re-processing identical data.
46
+ - **Action deduplication**: `actionInProgressRef` tracks in-flight step actions per `step.id`, silently skipping duplicate triggers.
47
+ - **All hooks called unconditionally** — the `state.dismissed` early return happens *after* all hooks and refs are initialized, satisfying React's Rules of Hooks.
@@ -1,40 +1,38 @@
1
- <!-- source-hash: fe3c3eaf77690b6e1108b738006bd2c9 -->
2
- A client-side module that exports components and types for displaying product releases and roadmap information in the Flamingo platform.
1
+ <!-- source-hash: b0b73e639c7dda545193a2a31fafd1ca -->
2
+ Barrel export file for the **product release** UI component family, re-exporting all public components, skeletons, and related TypeScript types from the `product-release` feature directory.
3
3
 
4
4
  ## Key Components
5
5
 
6
- - **ProductReleaseCard** - Component for displaying individual product release cards with associated props type
7
- - **ProductReleaseCardSkeleton** - Loading skeleton component for product release cards
8
- - **ReleaseDetailPage** - Main component for rendering detailed release pages with markdown content and roadmap sections
9
- - **ReleaseDetailSkeleton** - Loading skeleton for the release detail page
10
- - **Type Exports** - Comprehensive TypeScript interfaces including `MarkdownRendererProps`, `RoadmapItem`, `DeliveryResponse`, and section-specific prop types
6
+ | Export | Type | Description |
7
+ |--------|------|-------------|
8
+ | `ProductReleaseCard` | Component | Card UI for displaying a product release |
9
+ | `ProductReleaseCardSkeleton` | Component | Loading skeleton for `ProductReleaseCard` |
10
+ | `ReleaseDetailPage` | Component | Full release detail page layout |
11
+ | `ReleaseDetailSkeleton` | Component | Loading skeleton for `ReleaseDetailPage` |
12
+ | `DeliveryResponse` | Type | Canonical delivery response type (sourced from `types/delivery`) |
13
+ | `ProductReleaseCardProps` | Type | Props for `ProductReleaseCard` |
14
+ | `ReleaseDetailPageProps` | Type | Props for `ReleaseDetailPage` |
15
+ | `VideoDisplaySectionProps` | Type | Props for the video display section slot |
16
+ | `MarkdownRendererProps` | Type | Props for the markdown renderer slot |
17
+ | `RoadmapItem` | Type | Individual roadmap item type |
18
+
19
+ > **Note:** `RoadmapSectionProps` and `DeliverySectionProps` are intentionally **not** re-exported here to avoid TS2308 ambiguous re-export conflicts with the concrete `<RoadmapGrid>` / `<DeliverySection>` components. Import them directly from the `release-detail-page` module if needed.
11
20
 
12
21
  ## Usage Example
13
22
 
14
23
  ```typescript
15
- import {
16
- ProductReleaseCard,
17
- ReleaseDetailPage,
24
+ import {
25
+ ProductReleaseCard,
18
26
  ProductReleaseCardSkeleton,
19
- type RoadmapItem
20
- } from './index'
21
-
22
- // Display a product release card
23
- <ProductReleaseCard
24
- title="OpenFrame v2.1"
25
- description="Enhanced AI automation features"
26
- releaseDate="2024-03-15"
27
- />
28
-
29
- // Show loading state
30
- <ProductReleaseCardSkeleton />
27
+ ReleaseDetailPage,
28
+ ReleaseDetailSkeleton,
29
+ type ReleaseDetailPageProps,
30
+ type DeliveryResponse,
31
+ } from '@flamingo-stack/openframe-frontend-core/components/shared/product-release'
31
32
 
32
- // Render detailed release page with roadmap
33
- <ReleaseDetailPage
34
- releaseId="v2.1"
35
- markdownContent={content}
36
- roadmapItems={roadmapData}
37
- />
38
- ```
33
+ // Render a release card
34
+ <ProductReleaseCard title="v2.1.0" date="2025-06-01" />
39
35
 
40
- The module follows the "use client" directive, indicating these components are designed for client-side rendering in Next.js applications and likely include interactive features for browsing Flamingo's product releases and development roadmap.
36
+ // Deep import for internal slot types
37
+ import type { RoadmapSectionProps } from '@flamingo-stack/openframe-frontend-core/components/shared/product-release/release-detail-page'
38
+ ```
@@ -1,44 +1,44 @@
1
- <!-- source-hash: c0adf54207555e0c4b1be60f8796bbfe -->
2
- A React skeleton loader component that displays animated placeholder content while product release card data is loading.
1
+ <!-- source-hash: 35eb2dca49e5c1311632535a7cffdf8b -->
2
+ Pixel-perfect loading skeleton for `ProductReleaseCard` that prevents layout shift by mirroring the loaded card's exact dimensions in both `lg` and `sm` variants.
3
3
 
4
4
  ## Key Components
5
5
 
6
- - **ProductReleaseCardSkeleton** - Main skeleton component with pulse animation
7
- - **ProductReleaseCardSkeletonProps** - TypeScript interface defining component props
8
- - **cn utility** - CSS class name merging function for conditional styling
6
+ ### `ProductReleaseCardSkeleton`
7
+
8
+ A client-side animated pulse skeleton component with two size branches:
9
+
10
+ | Branch | Matches | Structure |
11
+ |--------|---------|-----------|
12
+ | `lg` | `ProductReleaseCard size="lg"` | Hero image + version pill + title + summary + changelog strip + 4-cell metadata grid |
13
+ | `sm` | `ProductReleaseCard size="sm"` | Thumbnail + title row + date row + summary row |
14
+
15
+ ### `ProductReleaseCardSkeletonProps`
16
+
17
+ | Prop | Type | Default | Description |
18
+ |------|------|---------|-------------|
19
+ | `className` | `string` | — | Additional CSS classes |
20
+ | `size` | `'lg' \| 'sm'` | `'lg'` | Must match the target card's `size` prop to prevent layout shift on resolve |
9
21
 
10
22
  ## Usage Example
11
23
 
12
24
  ```typescript
13
25
  import { ProductReleaseCardSkeleton } from './product-release-card-skeleton'
14
26
 
15
- // Basic usage
16
- function LoadingState() {
17
- return <ProductReleaseCardSkeleton />
18
- }
19
-
20
- // With custom styling
21
- function CustomLoadingState() {
27
+ // Full release card placeholder (e.g. in ReleasesList grid)
28
+ function ReleasesListLoading() {
22
29
  return (
23
- <ProductReleaseCardSkeleton
24
- className="shadow-lg border-2"
25
- />
30
+ <div className="grid grid-cols-1 gap-4">
31
+ {Array.from({ length: 5 }).map((_, i) => (
32
+ <ProductReleaseCardSkeleton key={i} size="lg" />
33
+ ))}
34
+ </div>
26
35
  )
27
36
  }
28
37
 
29
- // Multiple skeletons for list loading
30
- function ProductReleasesList({ isLoading }) {
31
- if (isLoading) {
32
- return (
33
- <div className="space-y-4">
34
- {Array.from({ length: 3 }).map((_, index) => (
35
- <ProductReleaseCardSkeleton key={index} />
36
- ))}
37
- </div>
38
- )
39
- }
40
- // ... render actual content
38
+ // Compact inline placeholder (e.g. inside a chat message)
39
+ function ChatReleaseLoading() {
40
+ return <ProductReleaseCardSkeleton size="sm" />
41
41
  }
42
42
  ```
43
43
 
44
- The component provides a responsive layout that adapts from column to row orientation on mobile/desktop, with skeleton placeholders for title (2 lines), description (3 lines), version info, date, and an icon. The pulse animation provides visual feedback during loading states.
44
+ > **Important:** Always pass the same `size` value as the `ProductReleaseCard` it replaces. Mismatched sizes cause measurable layout shift when the loaded card resolves, since placeholder heights are calibrated to match each variant's exact rendered metrics.
@@ -1,38 +1,56 @@
1
- <!-- source-hash: d95c7f17971bf8e3a5aa9bf22f8c17a9 -->
2
- A React component that displays product release information in an interactive card format with responsive layout for desktop and mobile viewports.
1
+ <!-- source-hash: 46c409eeb72da32ccf9384919a0c8ba0 -->
2
+ React card component for displaying product release information in two density variants (`lg` and `sm`), used across OpenFrame's releases catalog, Flamingo's DevCenter, and related-content rails.
3
3
 
4
4
  ## Key Components
5
5
 
6
- - **ProductReleaseCard** - Main component that renders release information
7
- - **ProductReleaseCardProps** - TypeScript interface defining component props
8
- - **InteractiveCard** - Imported wrapper component providing click interactions
9
- - **ChevronRight** - Lucide React icon for visual navigation cue
6
+ ### Types & Interfaces
7
+
8
+ | Export | Description |
9
+ |--------|-------------|
10
+ | `ProductReleaseCardSize` | Union type `'lg' \| 'sm'` controlling card density |
11
+ | `ProductReleaseCardAnchorProps` | Structural `<a>` prop bundle for consumer-controlled routing (href, target, rel, onClick) |
12
+ | `ProductReleaseCardProps` | Full prop surface for the card component |
13
+
14
+ ### `ProductReleaseCard`
15
+
16
+ The primary export. Renders in two layout modes:
17
+
18
+ - **`lg` (default):** Three-zone rich card — hero (16:9 cover + version pill + title + summary), changelog stats strip (features/fixes/improvements/breaking counts), and a 4-cell metadata grid (Type · Status · Released · Author). Author cell falls back to an `EMPTY_AUTHOR_PLACEHOLDER` shape to prevent skeleton reflow.
19
+ - **`sm`:** Compact horizontal layout (~80px tall) for chat messages and tight inline surfaces. Replaces `<h3>` with `<span>`, uses a `<span>`-anchored link wrapper, and renders: 56px icon + 1-line title + version/date meta.
10
20
 
11
21
  ## Usage Example
12
22
 
13
23
  ```typescript
14
24
  import { ProductReleaseCard } from './product-release-card'
15
25
 
16
- function ReleaseList() {
17
- return (
18
- <div className="space-y-4">
19
- <ProductReleaseCard
20
- title="Major UI Overhaul"
21
- summary="Complete redesign of the dashboard interface with improved user experience"
22
- version="2.1.0"
23
- formattedDate="March 15, 2024"
24
- onClick={() => router.push('/releases/2.1.0')}
25
- className="hover:shadow-lg"
26
- />
27
- <ProductReleaseCard
28
- title="Security Updates"
29
- version="2.0.1"
30
- formattedDate="February 28, 2024"
31
- onClick={() => router.push('/releases/2.0.1')}
32
- />
33
- </div>
34
- )
35
- }
26
+ // Large catalog card with full metadata
27
+ <ProductReleaseCard
28
+ size="lg"
29
+ title="OpenFrame 2.1.0"
30
+ summary="Unified AI-driven interface improvements and new automation hooks."
31
+ version="2.1.0"
32
+ formattedDate="May 2026"
33
+ coverImage="https://cdn.flamingo.run/releases/2.1.0.jpg"
34
+ releaseType="minor"
35
+ releaseStatus="stable"
36
+ releaseTypeBadgeColor="success"
37
+ changelogCounts={{ features: 8, fixes: 5, improvements: 3, breaking: 0 }}
38
+ author={{ full_name: "Jane Doe", avatar_url: null, job_title: "Engineer" }}
39
+ anchorProps={{ href: "/releases/2.1.0", onClick: handleNav }}
40
+ />
41
+
42
+ // Compact inline card (e.g., inside a chat message)
43
+ <ProductReleaseCard
44
+ size="sm"
45
+ title="OpenFrame 2.1.0"
46
+ version="2.1.0"
47
+ formattedDate="May 2026"
48
+ anchorProps={{ href: "/releases/2.1.0" }}
49
+ />
36
50
  ```
37
51
 
38
- The component features a responsive design that stacks content vertically on mobile and arranges it horizontally on desktop. It uses DM Sans typography, ODS design tokens for styling, and includes proper click event handling with propagation control for nested interactive elements.
52
+ ## Notes
53
+
54
+ - **Routing:** Prefer `anchorProps` (from the hub's `useNavLink`) over the legacy `onClick` prop. When both are provided, `anchorProps` wins.
55
+ - **Author cell:** Always rendered using `effectiveAuthor` (falls back to `{ full_name: '—', avatar_url: null, job_title: 'Unknown' }`) to maintain a fixed 4-column grid and prevent skeleton reflow.
56
+ - **Inline duplication policy:** The `lg` metadata grid intentionally duplicates the hub's `<EntityAuthorCard>` visuals — the OSS lib carries zero hub imports by design. Keep both in lockstep when cell padding, divider styles, or avatar sizes change.
@@ -1,42 +1,41 @@
1
- <!-- source-hash: cdd882b49d403f07e79375cf36040ac9 -->
2
- A React component that renders a detailed release page with metadata display, media gallery, linked tasks, and flexible component injection for different app contexts.
1
+ <!-- source-hash: bce89d098aaae5a0045e31b754508d2a -->
2
+ A client-side React page component that renders a detailed view of a product release, including metadata, changelog sections, linked roadmap/delivery tasks, media, and video content. It supports injectable components for app-specific rendering and pre-fetched data for admin preview.
3
3
 
4
4
  ## Key Components
5
5
 
6
- - **ReleaseDetailPage**: Main component that displays comprehensive release information including title, version, metadata grid, and changelog sections
7
- - **DefaultMarkdownRenderer**: Simple fallback component for rendering markdown content as plain text
8
- - **Type interfaces**: `ReleaseDetailPageProps`, `UseReleaseResult`, `MarkdownRendererProps` for component customization and data structure
9
- - **Media gallery integration**: Handles image gallery modal with navigation functionality
10
- - **Linked tasks fetching**: Automatically fetches roadmap and delivery tasks associated with the release
6
+ ### Exported Types
7
+ - **`ReleaseDetailPageProps`** Main props interface; accepts `slug`, optional `initialData`, a `useRelease` hook, and injectable section components
8
+ - **`UseReleaseResult`** Shape returned by the injected `useRelease` hook
9
+ - **`MarkdownRendererProps`**, **`RoadmapSectionProps`**, **`DeliverySectionProps`**, **`VideoSectionProps`**, **`VideoDisplaySectionProps`** Props interfaces for each injectable section component
10
+ - **`RoadmapItem`**, **`DeliveryResponse`** Re-exported canonical types for source compatibility
11
+
12
+ ### Main Export
13
+ - **`ReleaseDetailPage`** — Primary page component; orchestrates data fetching, linked task loading, gallery state, and layout rendering
14
+
15
+ ### Internal Helpers
16
+ - **`DefaultMarkdownRenderer`** — Fallback renderer using `whitespace-pre-wrap` when no `MarkdownRenderer` is injected
11
17
 
12
18
  ## Usage Example
13
19
 
14
20
  ```typescript
15
21
  import { ReleaseDetailPage } from './release-detail-page';
16
- import { useRelease } from '../hooks/useRelease';
17
- import { CustomMarkdownRenderer } from '../components/markdown';
22
+ import { useRelease } from '@/hooks/use-release';
23
+ import { MarkdownRenderer } from '@/components/markdown-renderer';
24
+ import { RoadmapSection } from '@/components/roadmap-section';
18
25
 
19
- function ReleasePage({ params }: { params: { slug: string } }) {
26
+ export default function ReleasePage({ params }: { params: { slug: string } }) {
20
27
  return (
21
28
  <ReleaseDetailPage
22
29
  slug={params.slug}
23
30
  useRelease={useRelease}
24
- MarkdownRenderer={CustomMarkdownRenderer}
25
- RoadmapSection={RoadmapTasksComponent}
26
- DeliverySection={DeliveryTasksComponent}
27
- roadmapApiEndpoint="/api/roadmap-tasks"
28
- deliveryApiEndpoint="/api/delivery-tasks"
31
+ MarkdownRenderer={MarkdownRenderer}
32
+ RoadmapSection={RoadmapSection}
33
+ roadmapApiEndpoint="/api/roadmap"
34
+ deliveryApiEndpoint="/api/delivery"
35
+ backButton={{ label: 'Back to releases', href: '/releases' }}
29
36
  />
30
37
  );
31
38
  }
32
-
33
- // For admin preview with pre-fetched data
34
- <ReleaseDetailPage
35
- slug="v2.1.0"
36
- initialData={preloadedReleaseData}
37
- useRelease={useRelease}
38
- MarkdownRenderer={RichMarkdownRenderer}
39
- />
40
39
  ```
41
40
 
42
- The component supports both public release viewing and admin preview modes, with optional component injection for custom markdown rendering and task management sections.
41
+ > **Note:** The `useRelease` hook must be provided at the app level to ensure it uses the correct `QueryClient`. When `initialData` is supplied, the hook is bypassed entirely enabling admin preview without a network fetch.
@@ -0,0 +1,37 @@
1
+ <!-- source-hash: 499214f4840bb2650161d384a662b71b -->
2
+ Barrel export file for the shared roadmap surface, exposing grid components and voting hook while intentionally omitting `RoadmapItem` and `VoteType` to prevent TypeScript TS2308 ambiguous re-export errors.
3
+
4
+ ## Key Components
5
+
6
+ | Export | Type | Description |
7
+ |--------|------|-------------|
8
+ | `RoadmapGrid` | Component | Main grid layout for displaying roadmap items |
9
+ | `RoadmapGridProps` | Type | Props interface for `RoadmapGrid` |
10
+ | `RoadmapGridSkeleton` | Component | Loading skeleton for the roadmap grid |
11
+ | `RoadmapGridSkeletonProps` | Type | Props interface for `RoadmapGridSkeleton` |
12
+ | `useRoadmapVoting` | Hook | Hook encapsulating roadmap voting logic |
13
+ | `VoteState` | Type | State shape for a vote interaction |
14
+ | `UseRoadmapVotingOptions` | Type | Options interface for `useRoadmapVoting` |
15
+
16
+ ## Intentionally Omitted Exports
17
+
18
+ | Omitted | Reason | Canonical Import Path |
19
+ |---------|--------|-----------------------|
20
+ | `RoadmapItem` | Already exported via two paths; a third triggers TS2308 | `@flamingo-stack/openframe-frontend-core/components/chat` |
21
+ | `VoteType` | Duplicate of the same type re-exported from `./chat` | `@flamingo-stack/openframe-frontend-core/components/chat` |
22
+
23
+ ## Usage Example
24
+
25
+ ```typescript
26
+ // ✅ Import roadmap surface components from this barrel
27
+ import {
28
+ RoadmapGrid,
29
+ RoadmapGridSkeleton,
30
+ useRoadmapVoting,
31
+ type VoteState,
32
+ type UseRoadmapVotingOptions,
33
+ } from '@flamingo-stack/openframe-frontend-core/components/shared/roadmap';
34
+
35
+ // ✅ Import omitted types from their canonical paths
36
+ import type { RoadmapItem, VoteType } from '@flamingo-stack/openframe-frontend-core/components/chat';
37
+ ```
@@ -0,0 +1,39 @@
1
+ <!-- source-hash: 906f9090b003db906415d2c34987f68e -->
2
+ Loading skeleton for the `/roadmap` grid view, rendering animated placeholder cards while roadmap data is being fetched.
3
+
4
+ ## Key Components
5
+
6
+ ### `RoadmapCardSkeleton` *(internal)*
7
+ A 340px animated placeholder card mimicking the full grid card layout. Renders pulsing skeletons for:
8
+ - Status badge (top-right)
9
+ - Icon + title + subtitle
10
+ - 3-line description block
11
+ - Bottom action area (button + badge)
12
+
13
+ > **Note:** Intentionally kept file-internal to avoid naming collision with `RoadmapCardSkeleton` from `lib/chat/entity-cards/roadmap-card.tsx`, which is a compact 56px chat-card variant.
14
+
15
+ ### `RoadmapGridSkeleton` *(exported)*
16
+ Renders a responsive 1→2 column grid of `RoadmapCardSkeleton` instances.
17
+
18
+ ### `RoadmapGridSkeletonProps`
19
+
20
+ | Prop | Type | Default | Description |
21
+ |------|------|---------|-------------|
22
+ | `count` | `number` | `4` | Number of skeleton cards to render |
23
+ | `showLeftMargin` | `boolean` | `true` | Applies `md:ml-[120px]` to align with the page hero title block. Pass `false` for narrower surfaces (e.g. release detail page) |
24
+
25
+ ## Usage Example
26
+
27
+ ```typescript
28
+ // Default: 4 cards with left margin (full roadmap page)
29
+ <RoadmapGridSkeleton />
30
+
31
+ // Custom count, no left margin (embedded in a narrower rail)
32
+ <RoadmapGridSkeleton count={6} showLeftMargin={false} />
33
+
34
+ // Typical Suspense / conditional pattern
35
+ {isLoading
36
+ ? <RoadmapGridSkeleton count={4} />
37
+ : <RoadmapGrid items={roadmapItems} />
38
+ }
39
+ ```
@@ -0,0 +1,66 @@
1
+ <!-- source-hash: afe909dc035ab417a954948a391b890a -->
2
+ Full-page roadmap surface that renders a responsive 2-column grid of `RoadmapCard` components with integrated voting state and live count refresh.
3
+
4
+ ## Key Components
5
+
6
+ | Export | Type | Description |
7
+ |--------|------|-------------|
8
+ | `RoadmapGrid` | Component | Main grid component rendering all roadmap items |
9
+ | `RoadmapGridProps` | Interface | Component prop contract |
10
+ | `DEFAULT_BUILD_REFRESH_URL` | Constant | Default URL builder: `(taskId) => /api/roadmap/${taskId}` |
11
+
12
+ ## Props
13
+
14
+ | Prop | Type | Default | Description |
15
+ |------|------|---------|-------------|
16
+ | `items` | `RoadmapItem[]` | — | Roadmap entries to display |
17
+ | `onItemUpdate` | `(item: RoadmapItem) => void` | — | Callback fired after a successful vote refresh |
18
+ | `showLeftMargin` | `boolean` | `true` | Applies `md:ml-[120px]` for hero alignment; pass `false` for rails |
19
+ | `buildRefreshUrl` | `(taskId: string) => string` | `DEFAULT_BUILD_REFRESH_URL` | Path-based URL builder for per-task refresh after vote |
20
+ | `votingOptions` | `UseRoadmapVotingOptions` | — | Vote endpoint + storage key forwarded to `useRoadmapVoting` |
21
+
22
+ ## Voting Flow
23
+
24
+ ```mermaid
25
+ graph TD
26
+ A["User Clicks Vote"] --> B{"Task Already Voting?"}
27
+ B -->|Yes| C["Ignore / No-op"]
28
+ B -->|No| D["Lock Task ID in votingTasks"]
29
+ D --> E["toggleVote()"]
30
+ E --> F{"result.success?"}
31
+ F -->|No| G["Unlock Task ID"]
32
+ F -->|Yes| H["GET buildRefreshUrl(taskId)"]
33
+ H --> I{"response.ok?"}
34
+ I -->|Yes| J["onItemUpdate(data.item)"]
35
+ I -->|No| G
36
+ J --> G
37
+ ```
38
+
39
+ ## Usage Example
40
+
41
+ ```typescript
42
+ import { RoadmapGrid } from './roadmap-grid';
43
+ import type { RoadmapItem } from '../../chat/types/entities/roadmap-item';
44
+
45
+ function RoadmapPage({ items }: { items: RoadmapItem[] }) {
46
+ const [roadmapItems, setRoadmapItems] = useState(items);
47
+
48
+ const handleItemUpdate = (updated: RoadmapItem) => {
49
+ setRoadmapItems(prev =>
50
+ prev.map(i => (i.id === updated.id ? updated : i))
51
+ );
52
+ };
53
+
54
+ return (
55
+ <RoadmapGrid
56
+ items={roadmapItems}
57
+ onItemUpdate={handleItemUpdate}
58
+ showLeftMargin={true}
59
+ buildRefreshUrl={(taskId) => `/api/roadmap/${taskId}`}
60
+ votingOptions={{ endpoint: '/api/votes', storageKey: 'roadmap-votes' }}
61
+ />
62
+ );
63
+ }
64
+ ```
65
+
66
+ > **Note on `buildRefreshUrl`:** This prop is intentionally a function rather than a string template to safely support embedders whose by-id route shape differs (e.g. `/api/roadmap?id=…`). String concatenation would silently break non-standard routes.