@flamingo-stack/openframe-frontend-core 0.0.212 → 0.0.213-snapshot.20260528174436

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 (806) hide show
  1. package/dist/{chunk-QKFBZLIR.js → chunk-5OWDOFKK.js} +2 -2
  2. package/dist/chunk-CZR7ARBA.js +698 -0
  3. package/dist/chunk-CZR7ARBA.js.map +1 -0
  4. package/dist/{chunk-UYQOPC57.js → chunk-HICZPTRR.js} +4 -351
  5. package/dist/chunk-HICZPTRR.js.map +1 -0
  6. package/dist/{chunk-5BNWGK6D.js → chunk-HWY35EAK.js} +3 -3
  7. package/dist/{chunk-VTUIMMHO.cjs → chunk-IZL2KEH6.cjs} +26 -26
  8. package/dist/{chunk-VTUIMMHO.cjs.map → chunk-IZL2KEH6.cjs.map} +1 -1
  9. package/dist/{chunk-ZFBLC5GV.cjs → chunk-KDNGUYZM.cjs} +17 -17
  10. package/dist/{chunk-ZFBLC5GV.cjs.map → chunk-KDNGUYZM.cjs.map} +1 -1
  11. package/dist/chunk-OZ3GH6OQ.cjs +698 -0
  12. package/dist/chunk-OZ3GH6OQ.cjs.map +1 -0
  13. package/dist/{chunk-3E5ANY55.js → chunk-UKND27XC.js} +410 -544
  14. package/dist/chunk-UKND27XC.js.map +1 -0
  15. package/dist/{chunk-EH3RWVF3.cjs → chunk-WT5JV2GS.cjs} +8 -355
  16. package/dist/chunk-WT5JV2GS.cjs.map +1 -0
  17. package/dist/{chunk-WI76ZUBE.cjs → chunk-YZUUFTIK.cjs} +545 -679
  18. package/dist/chunk-YZUUFTIK.cjs.map +1 -0
  19. package/dist/components/chat/hooks/use-jetstream-dialog-subscription.d.ts.map +1 -1
  20. package/dist/components/chat/hooks/use-nats-dialog-subscription.d.ts +0 -9
  21. package/dist/components/chat/hooks/use-nats-dialog-subscription.d.ts.map +1 -1
  22. package/dist/components/chat/index.cjs +5 -4
  23. package/dist/components/chat/index.cjs.map +1 -1
  24. package/dist/components/chat/index.js +4 -3
  25. package/dist/components/contact/index.cjs +6 -5
  26. package/dist/components/contact/index.cjs.map +1 -1
  27. package/dist/components/contact/index.js +5 -4
  28. package/dist/components/features/index.cjs +5 -4
  29. package/dist/components/features/index.cjs.map +1 -1
  30. package/dist/components/features/index.js +4 -3
  31. package/dist/components/features/notifications/index.d.ts +2 -2
  32. package/dist/components/features/notifications/index.d.ts.map +1 -1
  33. package/dist/components/features/notifications/notifications-context.d.ts +16 -1
  34. package/dist/components/features/notifications/notifications-context.d.ts.map +1 -1
  35. package/dist/components/features/notifications/types.d.ts +4 -0
  36. package/dist/components/features/notifications/types.d.ts.map +1 -1
  37. package/dist/components/index.cjs +55 -54
  38. package/dist/components/index.cjs.map +1 -1
  39. package/dist/components/index.js +7 -6
  40. package/dist/components/index.js.map +1 -1
  41. package/dist/components/navigation/app-header.d.ts.map +1 -1
  42. package/dist/components/navigation/index.cjs +5 -4
  43. package/dist/components/navigation/index.cjs.map +1 -1
  44. package/dist/components/navigation/index.js +4 -3
  45. package/dist/components/tickets/index.cjs +66 -65
  46. package/dist/components/tickets/index.cjs.map +1 -1
  47. package/dist/components/tickets/index.js +6 -5
  48. package/dist/components/tickets/index.js.map +1 -1
  49. package/dist/components/ui/index.cjs +5 -4
  50. package/dist/components/ui/index.cjs.map +1 -1
  51. package/dist/components/ui/index.js +4 -3
  52. package/dist/embed-shims/index.cjs +3 -3
  53. package/dist/embed-shims/index.cjs.map +1 -1
  54. package/dist/embed-shims/index.js +4 -4
  55. package/dist/hooks/index.cjs +3 -2
  56. package/dist/hooks/index.cjs.map +1 -1
  57. package/dist/hooks/index.js +2 -1
  58. package/dist/index.cjs +5 -4
  59. package/dist/index.cjs.map +1 -1
  60. package/dist/index.js +4 -3
  61. package/dist/nats/index.cjs +28 -346
  62. package/dist/nats/index.cjs.map +1 -1
  63. package/dist/nats/index.d.ts +3 -0
  64. package/dist/nats/index.d.ts.map +1 -1
  65. package/dist/nats/index.js +30 -346
  66. package/dist/nats/index.js.map +1 -1
  67. package/dist/nats/nats-provider.d.ts +28 -0
  68. package/dist/nats/nats-provider.d.ts.map +1 -0
  69. package/dist/nats/nats.d.ts +1 -0
  70. package/dist/nats/nats.d.ts.map +1 -1
  71. package/dist/nats/shared-connection.d.ts +73 -0
  72. package/dist/nats/shared-connection.d.ts.map +1 -0
  73. package/dist/nats/use-nats-subscription.d.ts +18 -0
  74. package/dist/nats/use-nats-subscription.d.ts.map +1 -0
  75. package/package.json +1 -1
  76. package/src/.index.md +36 -34
  77. package/src/components/.alert-dialog.md +27 -23
  78. package/src/components/.announcement-bar.md +26 -21
  79. package/src/components/.breadcrumb.md +19 -15
  80. package/src/components/.calendar.md +24 -19
  81. package/src/components/.categories-cart.md +29 -24
  82. package/src/components/.checkbox.md +23 -25
  83. package/src/components/.chevron-button.md +37 -32
  84. package/src/components/.comment-card.md +32 -62
  85. package/src/components/.dialog.md +26 -26
  86. package/src/components/.dynamic-skeleton.md +54 -57
  87. package/src/components/.empty-state.md +42 -51
  88. package/src/components/.faq-accordion.md +27 -21
  89. package/src/components/.filter-chip.md +41 -24
  90. package/src/components/.flamingo-logo.md +20 -23
  91. package/src/components/.footer-waitlist-button.md +29 -22
  92. package/src/components/.footer.md +32 -32
  93. package/src/components/.icons-block.md +27 -17
  94. package/src/components/.image-cropper.md +41 -32
  95. package/src/components/.index.md +33 -39
  96. package/src/components/.input.md +31 -35
  97. package/src/components/.logs-list.md +31 -20
  98. package/src/components/.media-carousel.md +35 -36
  99. package/src/components/.open-source-features.md +33 -16
  100. package/src/components/.pagination.md +52 -51
  101. package/src/components/.provider-button.md +21 -23
  102. package/src/components/.select.md +31 -20
  103. package/src/components/.sidebar.md +34 -24
  104. package/src/components/.smooth-accordion.md +29 -24
  105. package/src/components/.social-icon-row.md +36 -32
  106. package/src/components/.textarea.md +25 -31
  107. package/src/components/.tool-icon.md +24 -26
  108. package/src/components/.unified-filter-logic.md +37 -30
  109. package/src/components/.unified-pagination.md +23 -22
  110. package/src/components/.user-summary-stub.md +38 -22
  111. package/src/components/.vendor-display-button.md +25 -25
  112. package/src/components/.vendor-icon.md +33 -25
  113. package/src/components/.why-it-matters.md +28 -25
  114. package/src/components/chat/.approval-batch-message.md +51 -0
  115. package/src/components/chat/.approval-request-message.md +35 -34
  116. package/src/components/chat/.chat-attachment-bar.md +64 -0
  117. package/src/components/chat/.chat-container.md +36 -18
  118. package/src/components/chat/.chat-input.md +37 -20
  119. package/src/components/chat/.chat-message-enhanced.md +30 -49
  120. package/src/components/chat/.chat-message-list.md +45 -32
  121. package/src/components/chat/.chat-message-skeleton.md +26 -22
  122. package/src/components/chat/.chat-panel-context.md +52 -0
  123. package/src/components/chat/.chat-ref.types.md +42 -0
  124. package/src/components/chat/.chat-sidebar-skeleton.md +34 -25
  125. package/src/components/chat/.chat-sidebar.md +31 -26
  126. package/src/components/chat/.chat-ticket-list.md +39 -0
  127. package/src/components/chat/.context-compaction-display.md +36 -0
  128. package/src/components/chat/.cycling-phrase.md +52 -0
  129. package/src/components/chat/.embeddable-chat.md +48 -0
  130. package/src/components/chat/.expand-chevron.md +24 -0
  131. package/src/components/chat/.index.md +31 -35
  132. package/src/components/chat/.mingo-onboarding-card-skeleton.md +44 -0
  133. package/src/components/chat/.mingo-onboarding-card.md +62 -0
  134. package/src/components/chat/.model-display.md +32 -30
  135. package/src/components/chat/.nav-link-anchor-via-runtime.md +40 -0
  136. package/src/components/chat/.remark-card-links.md +38 -0
  137. package/src/components/chat/.slash-command-suggestions.md +47 -0
  138. package/src/components/chat/.source-action-button.md +48 -0
  139. package/src/components/chat/.thinking-display.md +42 -0
  140. package/src/components/chat/.tool-call-blocks.md +45 -0
  141. package/src/components/chat/.tool-execution-display.md +44 -36
  142. package/src/components/chat/chat-container.tsx +1 -1
  143. package/src/components/chat/entity-cards/.admin-content-card.md +43 -0
  144. package/src/components/chat/entity-cards/.block-card.md +47 -0
  145. package/src/components/chat/entity-cards/.blog-card.md +52 -0
  146. package/src/components/chat/entity-cards/.blog-image-placeholder.md +39 -0
  147. package/src/components/chat/entity-cards/.campaign-card-admin.md +47 -0
  148. package/src/components/chat/entity-cards/.case-study-card.md +58 -0
  149. package/src/components/chat/entity-cards/.chat-ticket-item.md +40 -0
  150. package/src/components/chat/entity-cards/.chat-video-entity-card.md +43 -0
  151. package/src/components/chat/entity-cards/.customer-interview-card.md +53 -0
  152. package/src/components/chat/entity-cards/.data-room-doc-card.md +47 -0
  153. package/src/components/chat/entity-cards/.dispatch.md +39 -0
  154. package/src/components/chat/entity-cards/.entity-author-card.md +51 -0
  155. package/src/components/chat/entity-cards/.generic-entity-card.md +62 -0
  156. package/src/components/chat/entity-cards/.github-activity-card.md +61 -0
  157. package/src/components/chat/entity-cards/.hubspot-ticket-card.md +53 -0
  158. package/src/components/chat/entity-cards/.index.md +66 -0
  159. package/src/components/chat/entity-cards/.investor-update-card.md +47 -0
  160. package/src/components/chat/entity-cards/.onboarding-guide-card.md +58 -0
  161. package/src/components/chat/entity-cards/.product-release-card-defaults.md +31 -0
  162. package/src/components/chat/entity-cards/.product-release-card.md +29 -0
  163. package/src/components/chat/entity-cards/.program-card-defaults.md +41 -0
  164. package/src/components/chat/entity-cards/.program-card.md +59 -0
  165. package/src/components/chat/entity-cards/.roadmap-card.md +46 -0
  166. package/src/components/chat/entity-cards/.roadmap-vote-button.md +52 -0
  167. package/src/components/chat/entity-cards/.slack-message-card.md +48 -0
  168. package/src/components/chat/entity-cards/.task-type-icon.md +47 -0
  169. package/src/components/chat/hooks/.index.md +36 -21
  170. package/src/components/chat/hooks/.use-chat-attachment-image-gallery.md +51 -0
  171. package/src/components/chat/hooks/.use-chat-attachments.md +48 -0
  172. package/src/components/chat/hooks/.use-chat-card-item.md +39 -0
  173. package/src/components/chat/hooks/.use-chat-identity.md +45 -0
  174. package/src/components/chat/hooks/.use-chat.md +58 -0
  175. package/src/components/chat/hooks/.use-chunk-catchup.md +46 -48
  176. package/src/components/chat/hooks/.use-close-on-navigation.md +44 -0
  177. package/src/components/chat/hooks/.use-collapsible.md +48 -0
  178. package/src/components/chat/hooks/.use-embedded-chat.md +32 -0
  179. package/src/components/chat/hooks/.use-jetstream-dialog-subscription.md +40 -0
  180. package/src/components/chat/hooks/.use-nats-chat-adapter.md +52 -0
  181. package/src/components/chat/hooks/.use-nats-dialog-subscription.md +49 -30
  182. package/src/components/chat/hooks/.use-proxied-image-url.md +40 -0
  183. package/src/components/chat/hooks/.use-realtime-chunk-processor.md +43 -40
  184. package/src/components/chat/hooks/.use-slash-commands.md +46 -0
  185. package/src/components/chat/hooks/.use-sse-chat-adapter.md +34 -0
  186. package/src/components/chat/hooks/.use-sse.md +60 -0
  187. package/src/components/chat/hooks/.use-unified-chat.md +57 -0
  188. package/src/components/chat/hooks/use-jetstream-dialog-subscription.ts +60 -207
  189. package/src/components/chat/hooks/use-nats-dialog-subscription.ts +71 -214
  190. package/src/components/chat/types/.api.types.md +52 -38
  191. package/src/components/chat/types/.chat.types.md +43 -34
  192. package/src/components/chat/types/.component.types.md +47 -48
  193. package/src/components/chat/types/.index.md +20 -27
  194. package/src/components/chat/types/.message.types.md +58 -48
  195. package/src/components/chat/types/.network.types.md +57 -31
  196. package/src/components/chat/types/.processing.types.md +49 -31
  197. package/src/components/chat/types/.unified-chat-state.types.md +41 -0
  198. package/src/components/chat/types/entities/.blog.md +43 -0
  199. package/src/components/chat/types/entities/.case-study.md +26 -0
  200. package/src/components/chat/types/entities/.content-ref.md +41 -0
  201. package/src/components/chat/types/entities/.customer-interview.md +28 -0
  202. package/src/components/chat/types/entities/.data-room-doc.md +36 -0
  203. package/src/components/chat/types/entities/.github-activity.md +43 -0
  204. package/src/components/chat/types/entities/.hubspot-ticket.md +53 -0
  205. package/src/components/chat/types/entities/.index.md +42 -0
  206. package/src/components/chat/types/entities/.investor-update.md +45 -0
  207. package/src/components/chat/types/entities/.onboarding-guide.md +50 -0
  208. package/src/components/chat/types/entities/.program-types.md +57 -0
  209. package/src/components/chat/types/entities/.roadmap-item.md +58 -0
  210. package/src/components/chat/types/entities/.slack-message.md +35 -0
  211. package/src/components/chat/utils/.agent-status-message.md +45 -0
  212. package/src/components/chat/utils/.auto-continuation-directive.md +58 -0
  213. package/src/components/chat/utils/.chat-attachment-markdown.md +54 -0
  214. package/src/components/chat/utils/.chat-authed-fetch.md +25 -0
  215. package/src/components/chat/utils/.chat-nav-resolution.md +46 -0
  216. package/src/components/chat/utils/.chat-proxy-auth-storage.md +38 -0
  217. package/src/components/chat/utils/.chip-action-class.md +34 -0
  218. package/src/components/chat/utils/.chip-styles.md +46 -0
  219. package/src/components/chat/utils/.chunk-parser.md +38 -28
  220. package/src/components/chat/utils/.clickup-task-type-utils.md +48 -0
  221. package/src/components/chat/utils/.compact-card-classes.md +62 -0
  222. package/src/components/chat/utils/.decide-new-tab.md +51 -0
  223. package/src/components/chat/utils/.external-app-urls.md +29 -0
  224. package/src/components/chat/utils/.extract-incomplete-message-state.md +25 -29
  225. package/src/components/chat/utils/.flatten-assistant-content.md +34 -0
  226. package/src/components/chat/utils/.icon-registry.md +46 -0
  227. package/src/components/chat/utils/.index.md +37 -32
  228. package/src/components/chat/utils/.is-cross-origin-url.md +35 -0
  229. package/src/components/chat/utils/.message-segment-accumulator.md +25 -34
  230. package/src/components/chat/utils/.nav-anchor-props.md +44 -0
  231. package/src/components/chat/utils/.nav-click-handler.md +47 -0
  232. package/src/components/chat/utils/.onboarding-icons.md +28 -0
  233. package/src/components/chat/utils/.process-historical-messages.md +46 -35
  234. package/src/components/chat/utils/.scroll-anchor.md +40 -0
  235. package/src/components/chat/utils/.slash-dispatch-utils.md +44 -0
  236. package/src/components/chat/utils/.source-icons.md +35 -0
  237. package/src/components/chat/utils/.source-row-cta.md +54 -0
  238. package/src/components/chat/utils/.tool-call-helpers.md +42 -0
  239. package/src/components/contact/.contact-form.md +43 -0
  240. package/src/components/contact/.index.md +27 -0
  241. package/src/components/features/.array-entry-manager.md +36 -45
  242. package/src/components/features/.changelog-manager.md +47 -21
  243. package/src/components/features/.changelog-sections-manager.md +21 -26
  244. package/src/components/features/.command-box.md +31 -28
  245. package/src/components/features/.entity-summary-editor.md +46 -0
  246. package/src/components/features/.entity-video-section.md +51 -0
  247. package/src/components/features/.figma-prototype-viewer.md +48 -29
  248. package/src/components/features/.filters-dropdown.md +33 -46
  249. package/src/components/features/.highlight-config-section.md +42 -0
  250. package/src/components/features/.highlight-generation-section.md +46 -0
  251. package/src/components/features/.highlight-video-combined-section.md +47 -0
  252. package/src/components/features/.highlight-video-preview.md +44 -0
  253. package/src/components/features/.highlight-video-section.md +47 -0
  254. package/src/components/features/.index.md +40 -66
  255. package/src/components/features/.media-gallery-manager.md +48 -38
  256. package/src/components/features/.more-about-button.md +22 -19
  257. package/src/components/features/.og-editor-preview.md +40 -36
  258. package/src/components/features/.parallax-image-showcase.md +33 -26
  259. package/src/components/features/.paths-display.md +42 -43
  260. package/src/components/features/.platform-badge.md +37 -36
  261. package/src/components/features/.platform-filter.md +23 -16
  262. package/src/components/features/.policy-configuration-panel.md +48 -56
  263. package/src/components/features/.provider-button.md +33 -36
  264. package/src/components/features/.push-button-selector.md +40 -29
  265. package/src/components/features/.release-media-manager.md +46 -31
  266. package/src/components/features/.section-selector.md +26 -31
  267. package/src/components/features/.select-button.md +35 -25
  268. package/src/components/features/.seo-editor-preview.md +41 -44
  269. package/src/components/features/.social-links-manager.md +25 -19
  270. package/src/components/features/.start-with-openframe-button.md +37 -29
  271. package/src/components/features/.status-filter-component.md +36 -20
  272. package/src/components/features/.tags-selector.md +40 -24
  273. package/src/components/features/.transcribe-and-summarize-combined-section.md +45 -0
  274. package/src/components/features/.transcribe-summarize-section.md +48 -0
  275. package/src/components/features/.transcript-summary-editor.md +53 -0
  276. package/src/components/features/.video-bites-display.md +46 -0
  277. package/src/components/features/.video-clips-section.md +41 -0
  278. package/src/components/features/.video-ratio-tabs.md +56 -0
  279. package/src/components/features/.video-source-selector.md +60 -0
  280. package/src/components/features/.video.md +44 -0
  281. package/src/components/features/.waitlist-form.md +60 -0
  282. package/src/components/features/ai-enrich/.AIEnrichButton.md +30 -27
  283. package/src/components/features/ai-enrich/.AIEnrichSection.md +46 -42
  284. package/src/components/features/board/.board-column-header.md +38 -0
  285. package/src/components/features/board/.board-column.md +43 -0
  286. package/src/components/features/board/.board.md +51 -0
  287. package/src/components/features/board/.color-utils.md +26 -0
  288. package/src/components/features/board/.index.md +56 -0
  289. package/src/components/features/board/.ticket-card-skeleton.md +38 -0
  290. package/src/components/features/board/.ticket-card.md +47 -0
  291. package/src/components/features/board/.types.md +45 -0
  292. package/src/components/features/board/.use-board-collapse.md +34 -0
  293. package/src/components/features/notifications/.index.md +57 -0
  294. package/src/components/features/notifications/.notification-drawer.md +34 -0
  295. package/src/components/features/notifications/.notification-tile.md +39 -0
  296. package/src/components/features/notifications/.notifications-context.md +73 -0
  297. package/src/components/features/notifications/.types.md +45 -0
  298. package/src/components/features/notifications/index.ts +2 -1
  299. package/src/components/features/notifications/notifications-context.tsx +104 -6
  300. package/src/components/features/notifications/types.ts +5 -0
  301. package/src/components/icons/.about-icon.md +20 -28
  302. package/src/components/icons/.ai-robot-icon.md +15 -17
  303. package/src/components/icons/.bash-icon.md +16 -23
  304. package/src/components/icons/.buildings-icon.md +10 -24
  305. package/src/components/icons/.capterra-icon.md +30 -26
  306. package/src/components/icons/.carta-icon.md +29 -0
  307. package/src/components/icons/.clickup-icon.md +26 -0
  308. package/src/components/icons/.cmd-icon.md +15 -22
  309. package/src/components/icons/.coins-icon.md +17 -25
  310. package/src/components/icons/.community-hub-icon.md +19 -25
  311. package/src/components/icons/.community-icon.md +24 -21
  312. package/src/components/icons/.compare-icon.md +32 -19
  313. package/src/components/icons/.copy-icon.md +29 -15
  314. package/src/components/icons/.custom-external-link-icon.md +19 -17
  315. package/src/components/icons/.custom-fork-icon.md +32 -21
  316. package/src/components/icons/.custom-license-icon.md +29 -25
  317. package/src/components/icons/.custom-star-icon.md +20 -28
  318. package/src/components/icons/.custom-time-icon.md +21 -22
  319. package/src/components/icons/.cut-vendor-costs-icon.md +6 -19
  320. package/src/components/icons/.dashboard-icon.md +13 -18
  321. package/src/components/icons/.deno-icon.md +16 -23
  322. package/src/components/icons/.donut-icon.md +12 -23
  323. package/src/components/icons/.double-chevron-icon.md +28 -36
  324. package/src/components/icons/.elestio-logo.md +13 -23
  325. package/src/components/icons/.empty-vendor-icon.md +16 -18
  326. package/src/components/icons/.explore-categories-icon.md +18 -29
  327. package/src/components/icons/.eye-icon.md +16 -26
  328. package/src/components/icons/.facebook-icon.md +9 -20
  329. package/src/components/icons/.figma-icon.md +8 -17
  330. package/src/components/icons/.filter-icon.md +15 -17
  331. package/src/components/icons/.flamingo-logo.md +28 -27
  332. package/src/components/icons/.folder-shield-icon.md +28 -19
  333. package/src/components/icons/.g2-icon.md +22 -21
  334. package/src/components/icons/.getapp-icon.md +25 -21
  335. package/src/components/icons/.github-icon.md +13 -25
  336. package/src/components/icons/.globe-icon.md +14 -19
  337. package/src/components/icons/.google-gemini-icon.md +16 -19
  338. package/src/components/icons/.google-logo.md +15 -21
  339. package/src/components/icons/.grid-view-icon.md +30 -19
  340. package/src/components/icons/.hamburger-icon.md +22 -20
  341. package/src/components/icons/.hand-dollar-icon.md +24 -34
  342. package/src/components/icons/.hotel-icon.md +27 -21
  343. package/src/components/icons/.icon-utils.md +28 -29
  344. package/src/components/icons/.image-icon.md +15 -22
  345. package/src/components/icons/.index.md +25 -28
  346. package/src/components/icons/.info-circle-icon.md +29 -30
  347. package/src/components/icons/.instagram-icon.md +10 -24
  348. package/src/components/icons/.jump-in-icon.md +18 -18
  349. package/src/components/icons/.linux-icon.md +18 -18
  350. package/src/components/icons/.log-out-icon.md +15 -23
  351. package/src/components/icons/.logs-icon.md +14 -23
  352. package/src/components/icons/.margin-crisis-icon.md +21 -20
  353. package/src/components/icons/.menu-icon.md +18 -19
  354. package/src/components/icons/.miami-cyber-gang-logo-face-only.md +18 -21
  355. package/src/components/icons/.miami-cyber-gang-logo.md +22 -14
  356. package/src/components/icons/.mlg-logo.md +18 -16
  357. package/src/components/icons/.moon-icon.md +32 -22
  358. package/src/components/icons/.ms-icon.md +30 -19
  359. package/src/components/icons/.nushell-icon.md +7 -21
  360. package/src/components/icons/.open-source-icon.md +19 -23
  361. package/src/components/icons/.openai-icon.md +9 -24
  362. package/src/components/icons/.openframe-ai-icons.md +25 -26
  363. package/src/components/icons/.openframe-logo.md +28 -22
  364. package/src/components/icons/.openframe-text.md +24 -27
  365. package/src/components/icons/.openmsp-logo.md +26 -23
  366. package/src/components/icons/.pilot-icon.md +23 -0
  367. package/src/components/icons/.powershell-icon.md +17 -22
  368. package/src/components/icons/.python-icon.md +16 -23
  369. package/src/components/icons/.queries-icon.md +13 -21
  370. package/src/components/icons/.reddit-icon.md +28 -24
  371. package/src/components/icons/.remote-control-icon.md +13 -17
  372. package/src/components/icons/.script-icon.md +27 -19
  373. package/src/components/icons/.search-icon.md +21 -21
  374. package/src/components/icons/.send-icon.md +14 -16
  375. package/src/components/icons/.settings-icon.md +30 -19
  376. package/src/components/icons/.shape-circle-dash-icon.md +16 -21
  377. package/src/components/icons/.shell-icon.md +15 -19
  378. package/src/components/icons/.shield-check-icon.md +18 -31
  379. package/src/components/icons/.shield-key-icon.md +25 -25
  380. package/src/components/icons/.shield-lock-icon.md +8 -18
  381. package/src/components/icons/.slack-icon.md +28 -32
  382. package/src/components/icons/.sparkles-icon.md +18 -23
  383. package/src/components/icons/.sso-configuration-icon.md +29 -16
  384. package/src/components/icons/.sun-icon.md +20 -18
  385. package/src/components/icons/.table-view-icon.md +17 -19
  386. package/src/components/icons/.telegram-icon.md +8 -22
  387. package/src/components/icons/.thumbs-down-icon.md +10 -19
  388. package/src/components/icons/.thumbs-up-icon.md +8 -17
  389. package/src/components/icons/.tool-directory-icons.md +24 -28
  390. package/src/components/icons/.trustpilot-icon.md +25 -22
  391. package/src/components/icons/.user-icon.md +26 -28
  392. package/src/components/icons/.users-group-icon.md +28 -24
  393. package/src/components/icons/.vendor-showcase-icons.md +21 -29
  394. package/src/components/icons/.vendors-icon.md +18 -22
  395. package/src/components/icons/.whatsapp-icon.md +30 -14
  396. package/src/components/icons/.x-icon.md +18 -23
  397. package/src/components/icons/.x-logo.md +13 -38
  398. package/src/components/icons/.youtube-icon.md +8 -19
  399. package/src/components/icons/device-type-icons/.get-device-type-icon.md +26 -34
  400. package/src/components/icons-v2-generated/.index.md +52 -0
  401. package/src/components/icons-v2-generated/alphabet/.index.md +33 -0
  402. package/src/components/icons-v2-generated/arrows/.index.md +39 -0
  403. package/src/components/icons-v2-generated/audio-and-visual/.index.md +40 -0
  404. package/src/components/icons-v2-generated/brand-logos/.elestio-logo-icon.md +40 -0
  405. package/src/components/icons-v2-generated/brand-logos/.gemini-logo-icon.md +37 -0
  406. package/src/components/icons-v2-generated/brand-logos/.google-gemini-logo-icon.md +33 -0
  407. package/src/components/icons-v2-generated/brand-logos/.index.md +38 -0
  408. package/src/components/icons-v2-generated/brand-logos/.meshcentral-logo-grey-icon.md +35 -0
  409. package/src/components/icons-v2-generated/brand-logos/.meshcentral-logo-icon.md +36 -0
  410. package/src/components/icons-v2-generated/buildings/.index.md +48 -0
  411. package/src/components/icons-v2-generated/charts/.index.md +40 -0
  412. package/src/components/icons-v2-generated/clothes/.index.md +48 -0
  413. package/src/components/icons-v2-generated/coding/.index.md +42 -0
  414. package/src/components/icons-v2-generated/communication/.index.md +39 -0
  415. package/src/components/icons-v2-generated/date-and-time/.index.md +29 -0
  416. package/src/components/icons-v2-generated/design/.index.md +39 -0
  417. package/src/components/icons-v2-generated/devices/.index.md +38 -0
  418. package/src/components/icons-v2-generated/documents/.index.md +38 -0
  419. package/src/components/icons-v2-generated/finance/.index.md +34 -0
  420. package/src/components/icons-v2-generated/food-and-drinks/.index.md +34 -0
  421. package/src/components/icons-v2-generated/food-and-drinks/.leafy-green-icon.md +36 -0
  422. package/src/components/icons-v2-generated/food-and-drinks/.strawberry-icon.md +39 -0
  423. package/src/components/icons-v2-generated/health/.index.md +40 -0
  424. package/src/components/icons-v2-generated/household/.index.md +45 -0
  425. package/src/components/icons-v2-generated/interface/.index.md +36 -0
  426. package/src/components/icons-v2-generated/map-and-travel/.index.md +41 -0
  427. package/src/components/icons-v2-generated/media-playback/.index.md +51 -0
  428. package/src/components/icons-v2-generated/number/.index.md +41 -0
  429. package/src/components/icons-v2-generated/school/.index.md +37 -0
  430. package/src/components/icons-v2-generated/security/.fingerprint-icon.md +38 -0
  431. package/src/components/icons-v2-generated/security/.index.md +39 -0
  432. package/src/components/icons-v2-generated/shopping/.index.md +42 -0
  433. package/src/components/icons-v2-generated/signs-and-symbols/.index.md +32 -0
  434. package/src/components/icons-v2-generated/sort-and-filter/.index.md +35 -0
  435. package/src/components/icons-v2-generated/sport/.index.md +41 -0
  436. package/src/components/icons-v2-generated/text-editor/.index.md +44 -0
  437. package/src/components/icons-v2-generated/users/.index.md +45 -0
  438. package/src/components/icons-v2-generated/vehicles-and-delivery/.index.md +36 -0
  439. package/src/components/icons-v2-generated/weather-and-nature/.flower-sakura-icon.md +36 -0
  440. package/src/components/icons-v2-generated/weather-and-nature/.index.md +34 -0
  441. package/src/components/layout/.article-detail-layout.md +43 -0
  442. package/src/components/layout/.back-button.md +40 -0
  443. package/src/components/layout/.list-page-layout.md +35 -26
  444. package/src/components/layout/.page-container.md +27 -38
  445. package/src/components/layout/.page-layout.md +50 -0
  446. package/src/components/layout/.title-block.md +42 -0
  447. package/src/components/loading/.card-skeleton.md +38 -29
  448. package/src/components/loading/.device-card-skeleton.md +29 -25
  449. package/src/components/loading/.index.md +39 -46
  450. package/src/components/loading/.margin-report-skeleton.md +45 -34
  451. package/src/components/loading/.organization-card-skeleton.md +39 -44
  452. package/src/components/loading/.page-layout-skeleton.md +34 -45
  453. package/src/components/loading/.unified-skeleton.md +62 -36
  454. package/src/components/navigation/.app-header.md +40 -29
  455. package/src/components/navigation/.app-layout.md +25 -26
  456. package/src/components/navigation/.header-global-search.md +34 -37
  457. package/src/components/navigation/.header-organization-filter.md +23 -22
  458. package/src/components/navigation/.header.md +31 -35
  459. package/src/components/navigation/.mobile-burger-menu.md +39 -47
  460. package/src/components/navigation/.mobile-nav-panel.md +51 -32
  461. package/src/components/navigation/.navigation-sidebar-header.md +36 -0
  462. package/src/components/navigation/.navigation-sidebar-item.md +45 -0
  463. package/src/components/navigation/.navigation-sidebar-toggle.md +38 -0
  464. package/src/components/navigation/.navigation-sidebar.md +33 -34
  465. package/src/components/navigation/.sliding-sidebar.md +52 -41
  466. package/src/components/navigation/.sticky-section-nav.md +56 -48
  467. package/src/components/navigation/app-header.tsx +7 -9
  468. package/src/components/platform/.ScriptArguments.md +39 -25
  469. package/src/components/platform/.ScriptInfoSection.md +30 -26
  470. package/src/components/platform/.ShellTypeBadge.md +18 -13
  471. package/src/components/platform/.SoftwareInfo.md +23 -27
  472. package/src/components/platform/.SoftwareSourceBadge.md +28 -19
  473. package/src/components/platform/.ToolBadge.md +25 -26
  474. package/src/components/providers/.theme-provider.md +52 -0
  475. package/src/components/shared/delivery/.delivery-lists.md +39 -0
  476. package/src/components/shared/delivery/.delivery-row.md +41 -0
  477. package/src/components/shared/delivery/.delivery-table.md +41 -0
  478. package/src/components/shared/delivery/.index.md +38 -0
  479. package/src/components/shared/dev-section/.dev-card-row.md +60 -0
  480. package/src/components/shared/dev-section/.dev-section-page.md +48 -0
  481. package/src/components/shared/dev-section/.dev-section-view.md +43 -0
  482. package/src/components/shared/dev-section/.index.md +38 -0
  483. package/src/components/shared/legal-document/.index.md +40 -0
  484. package/src/components/shared/legal-document/.legal-document-page.md +50 -0
  485. package/src/components/shared/legal-document/.use-legal-docs.md +42 -0
  486. package/src/components/shared/onboarding/.onboarding-step-card.md +32 -31
  487. package/src/components/shared/onboarding/.onboarding-walkthrough.md +39 -43
  488. package/src/components/shared/product-release/.index.md +28 -30
  489. package/src/components/shared/product-release/.product-release-card-skeleton.md +28 -28
  490. package/src/components/shared/product-release/.product-release-card.md +45 -27
  491. package/src/components/shared/product-release/.release-detail-page.md +23 -24
  492. package/src/components/shared/roadmap/.index.md +37 -0
  493. package/src/components/shared/roadmap/.roadmap-grid-skeleton.md +39 -0
  494. package/src/components/shared/roadmap/.roadmap-grid.md +66 -0
  495. package/src/components/shared/roadmap/.use-roadmap-voting.md +68 -0
  496. package/src/components/tickets/.help-center-card.md +51 -0
  497. package/src/components/tickets/.help-center-create-form.md +38 -0
  498. package/src/components/tickets/.help-center-list.md +40 -0
  499. package/src/components/tickets/.index.md +65 -0
  500. package/src/components/tickets/.ticket-center.md +51 -0
  501. package/src/components/tickets/.ticket-detail-drawer.md +48 -0
  502. package/src/components/tickets/.ticket-linked-delivery-card.md +36 -0
  503. package/src/components/tickets/.ticket-open-form.md +50 -0
  504. package/src/components/tickets/.ticket-row.md +30 -0
  505. package/src/components/tickets/.types.md +57 -0
  506. package/src/components/tickets/hooks/.use-ticket-actions.md +77 -0
  507. package/src/components/tickets/hooks/.use-ticket-engagements.md +42 -0
  508. package/src/components/tickets/hooks/.use-tickets-list.md +54 -0
  509. package/src/components/ui/.actions-menu.md +66 -41
  510. package/src/components/ui/.alert-dialog.md +29 -26
  511. package/src/components/ui/.allowed-domains-input.md +29 -21
  512. package/src/components/ui/.assignee-dropdown.md +45 -0
  513. package/src/components/ui/.autocomplete.md +47 -41
  514. package/src/components/ui/.benefit-card.md +51 -36
  515. package/src/components/ui/.brand-association-card.md +30 -27
  516. package/src/components/ui/.breadcrumb.md +17 -15
  517. package/src/components/ui/.checkbox-block.md +39 -35
  518. package/src/components/ui/.checkbox-with-description.md +23 -16
  519. package/src/components/ui/.checkbox.md +31 -23
  520. package/src/components/ui/.circular-progress.md +49 -19
  521. package/src/components/ui/.content-loader.md +32 -20
  522. package/src/components/ui/.cursor-pagination.md +41 -52
  523. package/src/components/ui/.dashboard-info-card.md +33 -26
  524. package/src/components/ui/.date-picker.md +27 -25
  525. package/src/components/ui/.device-card-compact.md +28 -29
  526. package/src/components/ui/.device-card.md +27 -27
  527. package/src/components/ui/.dialog.md +25 -16
  528. package/src/components/ui/.drawer.md +86 -0
  529. package/src/components/ui/.dropdown-button.md +45 -0
  530. package/src/components/ui/.entity-image.md +46 -0
  531. package/src/components/ui/.error-state.md +41 -28
  532. package/src/components/ui/.feature-card.md +35 -31
  533. package/src/components/ui/.feature-list.md +48 -0
  534. package/src/components/ui/.field-wrapper.md +47 -0
  535. package/src/components/ui/.file-upload.md +42 -0
  536. package/src/components/ui/.filter-checkbox-item.md +43 -0
  537. package/src/components/ui/.filter-list.md +57 -0
  538. package/src/components/ui/.filter-modal.md +59 -0
  539. package/src/components/ui/.floating-tooltip.md +43 -26
  540. package/src/components/ui/.hidden-tags-popup.md +49 -0
  541. package/src/components/ui/.hover-dropdown.md +54 -0
  542. package/src/components/ui/.image-gallery-modal.md +41 -34
  543. package/src/components/ui/.image-uploader.md +53 -0
  544. package/src/components/ui/.index.md +40 -34
  545. package/src/components/ui/.info-card.md +31 -31
  546. package/src/components/ui/.info-row.md +31 -27
  547. package/src/components/ui/.input-trigger.md +44 -0
  548. package/src/components/ui/.input.md +37 -31
  549. package/src/components/ui/.markdown-editor.md +57 -0
  550. package/src/components/ui/.modal-v2.md +51 -0
  551. package/src/components/ui/.modal.md +32 -31
  552. package/src/components/ui/.more-actions-menu.md +45 -38
  553. package/src/components/ui/.organization-card.md +31 -37
  554. package/src/components/ui/.page-actions.md +44 -54
  555. package/src/components/ui/.phone-input.md +54 -0
  556. package/src/components/ui/.progress-bar.md +35 -27
  557. package/src/components/ui/.radio-group.md +39 -27
  558. package/src/components/ui/.release-changelog-section.md +34 -34
  559. package/src/components/ui/.search-input.md +48 -0
  560. package/src/components/ui/.select.md +54 -34
  561. package/src/components/ui/.service-card.md +42 -40
  562. package/src/components/ui/.sheet.md +27 -18
  563. package/src/components/ui/.simple-markdown-renderer.md +29 -31
  564. package/src/components/ui/.sort-column-item.md +42 -0
  565. package/src/components/ui/.square-avatar.md +34 -24
  566. package/src/components/ui/.status-badge.md +26 -38
  567. package/src/components/ui/.switch.md +22 -35
  568. package/src/components/ui/.tab-navigation.md +56 -53
  569. package/src/components/ui/.tab-selector.md +40 -0
  570. package/src/components/ui/.tag-key-value-filter.md +56 -0
  571. package/src/components/ui/.tag-search-input.md +53 -0
  572. package/src/components/ui/.tag.md +49 -31
  573. package/src/components/ui/.tags-manager.md +60 -0
  574. package/src/components/ui/.textarea.md +44 -34
  575. package/src/components/ui/.ticket-attachments-list.md +45 -0
  576. package/src/components/ui/.ticket-detail-section.md +29 -0
  577. package/src/components/ui/.ticket-info-section.md +56 -0
  578. package/src/components/ui/.ticket-note-card.md +53 -0
  579. package/src/components/ui/.ticket-notes-section.md +54 -0
  580. package/src/components/ui/.ticket-status-tag.md +49 -0
  581. package/src/components/ui/.title-content-block.md +25 -26
  582. package/src/components/ui/.toaster.md +40 -28
  583. package/src/components/ui/.tooltip.md +22 -11
  584. package/src/components/ui/.truncate-text.md +39 -0
  585. package/src/components/ui/button/.button-styles.md +35 -0
  586. package/src/components/ui/button/.button.md +53 -0
  587. package/src/components/ui/button/.split-button.md +48 -0
  588. package/src/components/ui/data-table/.data-table-body.md +48 -0
  589. package/src/components/ui/data-table/.data-table-column-filter.md +45 -0
  590. package/src/components/ui/data-table/.data-table-cursor-footer.md +45 -0
  591. package/src/components/ui/data-table/.data-table-empty.md +43 -0
  592. package/src/components/ui/data-table/.data-table-header.md +55 -0
  593. package/src/components/ui/data-table/.data-table-infinite-footer.md +44 -0
  594. package/src/components/ui/data-table/.data-table-row-count.md +43 -0
  595. package/src/components/ui/data-table/.data-table-row.md +47 -0
  596. package/src/components/ui/data-table/.data-table-skeleton.md +42 -0
  597. package/src/components/ui/data-table/.data-table.md +47 -0
  598. package/src/components/ui/data-table/.index.md +55 -0
  599. package/src/components/ui/data-table/.types.md +54 -0
  600. package/src/components/ui/data-table/.use-data-table.md +45 -0
  601. package/src/components/ui/data-table/.utils.md +38 -0
  602. package/src/components/ui/file-manager/.file-manager-action-bar.md +39 -30
  603. package/src/components/ui/file-manager/.file-manager-breadcrumb.md +29 -27
  604. package/src/components/ui/file-manager/.file-manager-context-menu.md +38 -42
  605. package/src/components/ui/file-manager/.file-manager-empty.md +26 -39
  606. package/src/components/ui/file-manager/.file-manager-table-row.md +33 -41
  607. package/src/components/ui/file-manager/.file-manager.md +35 -31
  608. package/src/components/ui/query-report-table/.index.md +43 -0
  609. package/src/components/ui/query-report-table/.query-report-table-header.md +36 -0
  610. package/src/components/ui/query-report-table/.query-report-table-row.md +40 -0
  611. package/src/components/ui/query-report-table/.query-report-table-skeleton.md +44 -0
  612. package/src/components/ui/query-report-table/.query-report-table.md +47 -0
  613. package/src/components/ui/query-report-table/.types.md +41 -0
  614. package/src/components/ui/query-report-table/.utils.md +35 -0
  615. package/src/components/ui/table/.index.md +27 -48
  616. package/src/components/ui/table/.table-cell.md +18 -27
  617. package/src/components/ui/table/.table-column-filter-dropdown.md +40 -0
  618. package/src/components/ui/table/.table-description-cell.md +24 -14
  619. package/src/components/ui/table/.table-empty-state.md +21 -22
  620. package/src/components/ui/table/.table-header.md +25 -40
  621. package/src/components/ui/table/.table-row.md +22 -40
  622. package/src/components/ui/table/.table-skeleton.md +33 -26
  623. package/src/components/ui/table/.table-timestamp-cell.md +26 -16
  624. package/src/components/ui/table/.table.md +39 -59
  625. package/src/components/ui/table/.types.md +44 -36
  626. package/src/components/ui/table/.utils.md +18 -20
  627. package/src/contexts/.chat-runtime-context.md +54 -0
  628. package/src/contexts/.endpoints-runtime-context.md +58 -0
  629. package/src/contexts/.index.md +53 -0
  630. package/src/contexts/.use-outer-or-default.md +36 -0
  631. package/src/embed-shims/.index.md +45 -0
  632. package/src/embed-shims/.next-dynamic.md +43 -0
  633. package/src/embed-shims/.next-image.md +45 -0
  634. package/src/embed-shims/.next-link.md +59 -0
  635. package/src/embed-shims/.next-navigation.md +59 -0
  636. package/src/hooks/.index.md +34 -29
  637. package/src/hooks/.use-access-code-integration.md +49 -0
  638. package/src/hooks/.use-contact-submission.md +37 -26
  639. package/src/hooks/.use-copy-to-clipboard.md +42 -0
  640. package/src/hooks/.use-near-viewport.md +44 -0
  641. package/src/hooks/.use-og-placeholder.md +51 -0
  642. package/src/hooks/.use-toast.md +36 -35
  643. package/src/hooks/state/.use-api-params.md +29 -46
  644. package/src/hooks/state/.use-query-params.md +37 -33
  645. package/src/hooks/ui/.index.md +33 -32
  646. package/src/hooks/ui/.use-auto-limit-tags.md +54 -0
  647. package/src/hooks/ui/.use-horizontal-scrollbar.md +74 -0
  648. package/src/hooks/ui/.use-image-edge-color.md +42 -0
  649. package/src/hooks/ui/.use-media-query.md +33 -25
  650. package/src/hooks/ui/.use-search.md +51 -0
  651. package/src/nats/.nats.md +49 -28
  652. package/src/nats/index.ts +3 -0
  653. package/src/nats/nats-provider.tsx +146 -0
  654. package/src/nats/nats.ts +2 -0
  655. package/src/nats/shared-connection.ts +285 -0
  656. package/src/nats/use-nats-subscription.ts +99 -0
  657. package/src/schemas/.contact-schema.md +45 -0
  658. package/src/stories/.AnnouncementBar.stories.md +45 -0
  659. package/src/stories/.AppLayout.stories.md +20 -21
  660. package/src/stories/.Autocomplete.stories.md +48 -34
  661. package/src/stories/.Board.stories.md +35 -0
  662. package/src/stories/.Button.stories.md +36 -33
  663. package/src/stories/.ChatTicketList.stories.md +33 -0
  664. package/src/stories/.CheckboxBlock.stories.md +40 -28
  665. package/src/stories/.ContentLoader.stories.md +47 -0
  666. package/src/stories/.DashboardInfoCard.stories.md +57 -0
  667. package/src/stories/.DataTable.stories.md +41 -0
  668. package/src/stories/.DatePicker.stories.md +66 -52
  669. package/src/stories/.DeviceCard.stories.md +41 -40
  670. package/src/stories/.DeviceCardCompact.stories.md +41 -0
  671. package/src/stories/.DotsLoaderIcon.stories.md +36 -0
  672. package/src/stories/.Drawer.stories.md +58 -0
  673. package/src/stories/.EmbeddableChat.stories.md +41 -0
  674. package/src/stories/.FileManager.stories.md +41 -0
  675. package/src/stories/.FileManagerActionBar.stories.md +38 -0
  676. package/src/stories/.FileUpload.stories.md +53 -0
  677. package/src/stories/.FilterList.stories.md +54 -0
  678. package/src/stories/.FilterModal.stories.md +72 -0
  679. package/src/stories/.FiltersDropdown.stories.md +57 -0
  680. package/src/stories/.Header.stories.md +48 -0
  681. package/src/stories/.ImageUploader.stories.md +49 -0
  682. package/src/stories/.InfoCard.stories.md +54 -0
  683. package/src/stories/.Input.stories.md +48 -30
  684. package/src/stories/.ListPageLayout.stories.md +56 -43
  685. package/src/stories/.MingoOnboardingCard.stories.md +42 -0
  686. package/src/stories/.MingoOnboardingCardSkeleton.stories.md +35 -0
  687. package/src/stories/.Modal.stories.md +40 -31
  688. package/src/stories/.NotificationDrawer.stories.md +55 -0
  689. package/src/stories/.OnboardingStepCard.stories.md +41 -0
  690. package/src/stories/.OrganizationCard.stories.md +61 -0
  691. package/src/stories/.PageActions.stories.md +52 -49
  692. package/src/stories/.PageContainer.stories.md +41 -35
  693. package/src/stories/.PageLayout.stories.md +60 -0
  694. package/src/stories/.ParallaxImageShowcase.stories.md +49 -0
  695. package/src/stories/.PhoneInput.stories.md +53 -0
  696. package/src/stories/.QueryReportTable.stories.md +44 -0
  697. package/src/stories/.RadioGroup.stories.md +46 -0
  698. package/src/stories/.RadioGroupBlock.stories.md +45 -0
  699. package/src/stories/.Select.stories.md +29 -15
  700. package/src/stories/.SlashCommandSuggestions.stories.md +41 -0
  701. package/src/stories/.SplitButton.stories.md +62 -0
  702. package/src/stories/.TabNavigation.stories.md +47 -38
  703. package/src/stories/.TabSelector.stories.md +65 -0
  704. package/src/stories/.Table.stories.md +38 -46
  705. package/src/stories/.TableColumnFilterDropdown.stories.md +46 -0
  706. package/src/stories/.Tag.stories.md +43 -32
  707. package/src/stories/.TagKeyValueFilter.stories.md +44 -0
  708. package/src/stories/.TagSearchInput.stories.md +61 -0
  709. package/src/stories/.Textarea.stories.md +49 -26
  710. package/src/stories/.Theme.stories.md +41 -0
  711. package/src/stories/.TicketAttachmentsList.stories.md +39 -0
  712. package/src/stories/.TicketDescriptionViewer.stories.md +39 -0
  713. package/src/stories/.TicketInfoSection.stories.md +40 -0
  714. package/src/stories/.TicketKnowledgeBaseList.stories.md +36 -0
  715. package/src/stories/.TicketNotesSection.stories.md +50 -0
  716. package/src/stories/.Toaster.stories.md +40 -0
  717. package/src/stories/.ToolExecutionDisplay.stories.md +41 -0
  718. package/src/stories/.Tooltip.stories.md +41 -0
  719. package/src/stories/.UserSummary.stories.md +41 -0
  720. package/src/stories/.WaitlistForm.stories.md +42 -0
  721. package/src/stories/BlogCard.stories.tsx +61 -0
  722. package/src/stories/CampaignCardAdmin.stories.tsx +52 -0
  723. package/src/stories/CaseStudyCard.stories.tsx +42 -0
  724. package/src/stories/ChatContainer.stories.tsx +186 -0
  725. package/src/stories/ChatInlineVideoPill.stories.tsx +63 -0
  726. package/src/stories/CustomerInterviewCard.stories.tsx +42 -0
  727. package/src/stories/DataRoomDocCard.stories.tsx +52 -0
  728. package/src/stories/GenericEntityCard.stories.tsx +66 -0
  729. package/src/stories/GitHubActivityCard.stories.tsx +61 -0
  730. package/src/stories/HubspotTicketCard.stories.tsx +98 -0
  731. package/src/stories/InvestorUpdateCard.stories.tsx +42 -0
  732. package/src/stories/OnboardingGuideCard.stories.tsx +52 -0
  733. package/src/stories/ProductReleaseCard.stories.tsx +61 -0
  734. package/src/stories/ProgramCard.stories.tsx +79 -0
  735. package/src/stories/RoadmapCard.stories.tsx +75 -0
  736. package/src/stories/SlackMessageCard.stories.tsx +41 -0
  737. package/src/stories/__fixtures__/chat-cards.ts +604 -0
  738. package/src/types/.blog.md +53 -29
  739. package/src/types/.case-study.md +44 -27
  740. package/src/types/.customer-interview.md +66 -44
  741. package/src/types/.delivery.md +40 -0
  742. package/src/types/.employee.md +24 -30
  743. package/src/types/.index.md +33 -47
  744. package/src/types/.marketing.md +49 -44
  745. package/src/types/.navigation.md +33 -25
  746. package/src/types/.os.types.md +32 -27
  747. package/src/types/.platform.md +31 -28
  748. package/src/types/.product-release.md +65 -38
  749. package/src/types/.supabase.md +37 -29
  750. package/src/types/.team.md +41 -33
  751. package/src/types/.video-processing.md +54 -0
  752. package/src/types/.waitlist.md +40 -36
  753. package/src/utils/.access-code-client.md +37 -36
  754. package/src/utils/.cn.md +31 -23
  755. package/src/utils/.color-analysis.md +35 -0
  756. package/src/utils/.country-phone-utils.md +39 -0
  757. package/src/utils/.date-formatters.md +19 -18
  758. package/src/utils/.embed-authed-fetch.md +39 -0
  759. package/src/utils/.embed-proxy-auth-storage.md +38 -0
  760. package/src/utils/.fetch-priority.md +41 -0
  761. package/src/utils/.format.md +74 -25
  762. package/src/utils/.generic-domain-utils.md +42 -0
  763. package/src/utils/.image-proxy.md +59 -23
  764. package/src/utils/.index.md +42 -49
  765. package/src/utils/.local-storage-adapter.md +50 -0
  766. package/src/utils/.ods-color-utils.md +55 -38
  767. package/src/utils/.platform-config.md +45 -25
  768. package/src/utils/.scroll-into-view.md +40 -0
  769. package/src/utils/.source-icons.md +53 -0
  770. package/src/utils/.sse-decision-frame.md +46 -0
  771. package/src/utils/dev-sections/.index.md +34 -0
  772. package/src/utils/dev-sections/.openframe-dev-sections.md +49 -0
  773. package/dist/chunk-3E5ANY55.js.map +0 -1
  774. package/dist/chunk-EH3RWVF3.cjs.map +0 -1
  775. package/dist/chunk-UYQOPC57.js.map +0 -1
  776. package/dist/chunk-WI76ZUBE.cjs.map +0 -1
  777. package/src/components/.card.md +0 -42
  778. package/src/components/.contact-button.md +0 -30
  779. package/src/components/.drawer.md +0 -46
  780. package/src/components/.fixed-layout-container.md +0 -47
  781. package/src/components/.footer-waitlist-card.md +0 -29
  782. package/src/components/.join-waitlist-cta.md +0 -29
  783. package/src/components/.sheet.md +0 -47
  784. package/src/components/.sliding-panel.md +0 -48
  785. package/src/components/.tooltip.md +0 -48
  786. package/src/components/.use-mobile.md +0 -42
  787. package/src/components/.vendor-compact-card.md +0 -66
  788. package/src/components/.x-button.md +0 -42
  789. package/src/components/features/.github-repo-button.md +0 -40
  790. package/src/components/features/.organization-icon.md +0 -47
  791. package/src/components/features/.organization-selector.md +0 -45
  792. package/src/components/icons/.fleet-icon.md +0 -39
  793. package/src/components/icons/.meshcentral-icon.md +0 -35
  794. package/src/components/icons/.refresh-icon.md +0 -34
  795. package/src/components/icons/.tactical-icon.md +0 -35
  796. package/src/components/ui/.button.md +0 -69
  797. package/src/components/ui/.log-table-row.md +0 -47
  798. package/src/components/ui/.selectable-device-card.md +0 -46
  799. package/src/hooks/.api-hooks-stub.md +0 -45
  800. package/src/hooks/api/.use-product-releases.md +0 -53
  801. package/src/stories/.OrganizationSelector.stories.md +0 -42
  802. package/src/stories/.SelectableDeviceCard.stories.md +0 -30
  803. package/src/utils/.lite-youtube-embed-stub.md +0 -37
  804. package/src/utils/.lite-youtube-embed.md +0 -33
  805. /package/dist/{chunk-QKFBZLIR.js.map → chunk-5OWDOFKK.js.map} +0 -0
  806. /package/dist/{chunk-5BNWGK6D.js.map → chunk-HWY35EAK.js.map} +0 -0
@@ -0,0 +1,43 @@
1
+ <!-- source-hash: e6e63274e2215026ef420402aa7a9e8f -->
2
+ A self-contained, reusable contact form component that supports both standard contact submission and custom ticket-creation flows via configurable props. It handles field visibility toggling, attachment staging, Zod validation, and dual submit paths (built-in API vs. caller-provided handler).
3
+
4
+ ## Key Components
5
+
6
+ **Exported Types**
7
+ - `ContactFormHideableField` — Union type of the six fields that can be suppressed from the UI (`name`, `email`, `companySize`, `referralSource`, `helpCategory`, `message`)
8
+ - `ContactFormProps` — Full prop interface covering attribution, pre-fill, layout, submission, and slot customization
9
+
10
+ **Main Export**
11
+ - `ContactForm` — The primary form component
12
+
13
+ **Internal Hooks Used**
14
+ - `useForm` (react-hook-form) + `zodResolver` against `ContactSchema`
15
+ - `useContactSubmission` — built-in `/api/contact` submit path with toast + redirect
16
+ - `useChatAttachments` — file staging shared with the chat composer
17
+ - `useState` — tracks in-flight state for the custom submit path
18
+
19
+ ## Usage Example
20
+
21
+ ```typescript
22
+ // Standard contact page — built-in submit flow
23
+ <ContactForm
24
+ userId={user?.id}
25
+ helpCategoryOptions={appConfig.contact.contactReasons}
26
+ rdtCid={getStoredRedditClickId()}
27
+ onSubmitSuccess={clearStoredRedditClickId}
28
+ />
29
+
30
+ // Ticket creation — custom submit, hidden fields, extra Subject input
31
+ <ContactForm
32
+ hideFields={['name', 'email', 'companySize', 'referralSource', 'helpCategory']}
33
+ defaultValues={{ name: user.name, email: user.email, helpCategory: 'Support' }}
34
+ attachmentsEnabled
35
+ extraTopField={<SubjectInput value={subject} onChange={setSubject} />}
36
+ submitLabel="Open ticket"
37
+ onCustomSubmit={async (data, attachments) => {
38
+ await actions.submitTicket({ ...data, subject, attachments })
39
+ }}
40
+ />
41
+ ```
42
+
43
+ > **Note:** When hiding `name`, `email`, or `helpCategory`, you **must** supply their values via `defaultValues` — Zod still validates them even when the fields are not rendered. Hidden `<input type="hidden">` elements ensure react-hook-form includes them in the submit payload.
@@ -0,0 +1,27 @@
1
+ <!-- source-hash: 29826720baf088c1409fbd30046713a4 -->
2
+ Re-exports the `ContactForm` component along with its associated TypeScript types from the `contact-form` module.
3
+
4
+ ## Key Components
5
+
6
+ | Export | Type | Description |
7
+ |--------|------|-------------|
8
+ | `ContactForm` | Component | The main contact form component |
9
+ | `ContactFormProps` | Type | Props interface for the `ContactForm` component |
10
+ | `ContactFormHideableField` | Type | Type representing fields that can be hidden in the form |
11
+
12
+ ## Usage Example
13
+
14
+ ```typescript
15
+ import {
16
+ ContactForm,
17
+ type ContactFormProps,
18
+ type ContactFormHideableField,
19
+ } from '@/components/contact-form'
20
+
21
+ const hiddenFields: ContactFormHideableField[] = ['phone', 'company']
22
+
23
+ const props: ContactFormProps = {
24
+ onSubmit: (data) => console.log(data),
25
+ hideFields: hiddenFields,
26
+ }
27
+ ```
@@ -1,53 +1,44 @@
1
- <!-- source-hash: b9899c71d148f2b5407351f417b4f050 -->
2
- A React component for managing arrays of entries with add/edit/remove functionality, supporting both immediate and deferred save modes.
1
+ <!-- source-hash: 9a66a790bb4e14efee7ac5e9ffc0cfb8 -->
2
+ A generic, reusable React component for managing arrays of objects with inline add, edit, remove, and multi-line paste support. Supports both immediate and deferred (save-gated) change modes.
3
3
 
4
4
  ## Key Components
5
5
 
6
- - **ArrayEntryManager** - Generic TypeScript component for managing array entries with configurable fields
7
- - **Props Interface** - Comprehensive configuration options including custom renderers, save modes, and styling
8
- - **State Management** - Handles both immediate updates and draft mode with dirty state tracking
9
- - **Paste Handling** - Smart multi-line paste support for bulk entry addition
6
+ ### `ArrayEntryManager<T>`
7
+ A generic client component that renders a labeled list of editable input entries backed by a typed array.
10
8
 
11
- ## Usage Example
12
-
13
- ```typescript
14
- import { ArrayEntryManager } from './array-entry-manager';
15
- import { Github } from 'lucide-react';
9
+ **Props:**
16
10
 
17
- interface Release {
18
- github_release_url: string;
19
- version?: string;
20
- }
11
+ | Prop | Type | Description |
12
+ |------|------|-------------|
13
+ | `title` | `ReactNode` | Section label; supports strings or badge components |
14
+ | `items` | `T[]` | Array of objects to manage |
15
+ | `onChange` | `(items: T[]) => void` | Called on change (immediate) or save (deferred) |
16
+ | `fieldKey` | `keyof T` | Object key to bind each input to |
17
+ | `requireSave` | `boolean` | When `true`, buffers edits locally until "Save" is clicked |
18
+ | `onDirtyChange` | `(isDirty: boolean) => void` | Notifies parent of unsaved changes |
19
+ | `renderLabel` | `(item: T, index: number) => ReactNode` | Custom renderer above each input |
20
+ | `isSaving` | `boolean` | Shows spinner on the save button during async operations |
21
21
 
22
- function ReleaseManager() {
23
- const [releases, setReleases] = useState<Release[]>([]);
24
- const [isSaving, setIsSaving] = useState(false);
22
+ **Behaviors:**
23
+ - **Draft mode** (`requireSave=true`): edits are buffered in local state; `onChange` fires only on explicit save
24
+ - **Immediate mode** (`requireSave=false`): every edit calls `onChange` directly
25
+ - **Multi-line paste**: pasting newline-separated values auto-creates multiple entries
26
+ - **Add at top**: new items are prepended for better UX
25
27
 
26
- const handleSave = async (items: Release[]) => {
27
- setIsSaving(true);
28
- // Save to API
29
- await saveReleases(items);
30
- setIsSaving(false);
31
- };
32
-
33
- return (
34
- <ArrayEntryManager
35
- title="GitHub Releases"
36
- items={releases}
37
- onChange={handleSave}
38
- fieldKey="github_release_url"
39
- placeholder="https://github.com/owner/repo/releases/tag/v1.0.0"
40
- emptyMessage="No releases configured"
41
- addButtonText="Add Release"
42
- icon={<Github className="h-5 w-5" />}
43
- requireSave={true}
44
- isSaving={isSaving}
45
- renderLabel={(item, index) =>
46
- item.version && <span className="badge">{item.version}</span>
47
- }
48
- />
49
- );
50
- }
51
- ```
28
+ ## Usage Example
52
29
 
53
- The component supports immediate onChange updates or deferred saves with dirty state tracking, multi-line paste for bulk additions, and custom label rendering for enhanced UX.
30
+ ```typescript
31
+ <ArrayEntryManager<{ github_release_url: string }>
32
+ title="Release URLs"
33
+ items={releaseUrls}
34
+ onChange={setReleaseUrls}
35
+ fieldKey="github_release_url"
36
+ placeholder="https://github.com/org/repo/releases/tag/v1.0.0"
37
+ emptyMessage="No release URLs configured."
38
+ addButtonText="Add URL"
39
+ saveButtonText="Save URLs"
40
+ requireSave={true}
41
+ onDirtyChange={(dirty) => setHasUnsavedChanges(dirty)}
42
+ isSaving={isSaving}
43
+ />
44
+ ```
@@ -1,12 +1,35 @@
1
- <!-- source-hash: 3644c900574f6a351d839d94b7f4446b -->
2
- A client-side React component for managing changelog entries with expandable/collapsible sections, providing an interface to add, edit, and remove changelog items with title and description fields.
1
+ <!-- source-hash: 2cb028936365715865c9571d3df0261e -->
2
+ A reusable React component for managing a dynamic list of changelog entries, supporting add, remove, expand/collapse, and optional per-entry visibility toggling.
3
3
 
4
4
  ## Key Components
5
5
 
6
- - **ChangelogManager**: Main component that renders a list of expandable changelog entries
7
- - **ChangelogManagerProps**: Interface defining component props including title, entries array, change handler, and optional expand control
8
- - **State Management**: Uses `useState` for tracking expanded items and `useEffect` for handling expand-all functionality
9
- - **Entry Operations**: Functions for adding, removing, and updating changelog entries with automatic expansion state management
6
+ ### `ChangelogManager` (default export)
7
+
8
+ A controlled list manager rendered as a collapsible accordion of `ChangelogEntry` items.
9
+
10
+ **Props (`ChangelogManagerProps`):**
11
+
12
+ | Prop | Type | Description |
13
+ |------|------|-------------|
14
+ | `title` | `string` | Section label displayed above the entry list |
15
+ | `entries` | `ChangelogEntry[]` | Controlled array of changelog entries |
16
+ | `onChange` | `(entries: ChangelogEntry[]) => void` | Callback fired on any mutation |
17
+ | `className` | `string?` | Optional wrapper class override |
18
+ | `expandAll` | `boolean?` | When `true`, expands all items (e.g. post-AI enrichment) |
19
+ | `showVisibilityToggle` | `boolean?` | Renders a per-entry `Eye`/`EyeOff` toggle; used by investor updates |
20
+
21
+ **Internal state:**
22
+ - `expandedIndices` — `Set<number>` tracking which accordion items are open
23
+
24
+ **Key functions:**
25
+
26
+ | Function | Behavior |
27
+ |----------|----------|
28
+ | `addEntry()` | Appends a blank entry and auto-expands it |
29
+ | `removeEntry(index)` | Removes entry and adjusts the expanded indices set |
30
+ | `updateEntry(index, field, value)` | Immutably updates a single field on an entry |
31
+ | `toggleExpanded(index)` | Toggles accordion open/close state |
32
+ | `toggleVisibility(index)` | Flips `visibility` between `'public'` and `'internal'` |
10
33
 
11
34
  ## Usage Example
12
35
 
@@ -14,20 +37,23 @@ A client-side React component for managing changelog entries with expandable/col
14
37
  import { ChangelogManager } from './changelog-manager';
15
38
  import type { ChangelogEntry } from '../../types/product-release';
16
39
 
17
- function ReleaseNotesForm() {
18
- const [features, setFeatures] = useState<ChangelogEntry[]>([]);
19
- const [expandFeatures, setExpandFeatures] = useState(false);
20
-
21
- return (
22
- <ChangelogManager
23
- title="New Features"
24
- entries={features}
25
- onChange={setFeatures}
26
- expandAll={expandFeatures}
27
- className="mb-6"
28
- />
29
- );
30
- }
40
+ const [entries, setEntries] = useState<ChangelogEntry[]>([]);
41
+
42
+ // Basic product release changelog
43
+ <ChangelogManager
44
+ title="What's New"
45
+ entries={entries}
46
+ onChange={setEntries}
47
+ />
48
+
49
+ // Investor update with visibility control + auto-expand after AI fill
50
+ <ChangelogManager
51
+ title="Highlights"
52
+ entries={entries}
53
+ onChange={setEntries}
54
+ showVisibilityToggle
55
+ expandAll={aiEnrichmentComplete}
56
+ />
31
57
  ```
32
58
 
33
- The component provides a clean interface for managing changelog sections with collapsible entries, automatic expansion of new items, and responsive design with dark theme styling. Each entry includes title and description fields with validation indicators.
59
+ > **Note:** `showVisibilityToggle` is intended for investor update flows. Leave it unset for standard product release changelogs to preserve their default UX. New entries default to `visibility: 'public'` when the toggle is enabled.
@@ -1,11 +1,11 @@
1
- <!-- source-hash: 24082a43cb0377e101a4f1957ec35829 -->
2
- A React component that organizes and manages changelog entries across four distinct categories, providing a structured interface for editing product release notes.
1
+ <!-- source-hash: 25788d62c9b251ff8382443ab8b6fcff -->
2
+ A client-side React component that renders all four standard changelog sections (Features Added, Bugs Fixed, Improvements, Breaking Changes) as a unified, styled panel by composing multiple `ChangelogManager` instances.
3
3
 
4
4
  ## Key Components
5
5
 
6
- - **ChangelogSectionsManager**: Main component that renders four `ChangelogManager` instances for different changelog categories
7
- - **ChangelogSectionsManagerProps**: Interface defining props including entry arrays, change handlers, and display options
8
- - **Category Sections**: Features Added, Bugs Fixed, Improvements, and Breaking Changes
6
+ - **`ChangelogSectionsManager`** — Main exported component that groups and renders all changelog sections in a single card layout
7
+ - **`ChangelogSectionsManagerProps`** — Interface defining per-section entry arrays, change handlers, optional `className`, and `expandAll` flag
8
+ - **`expandAll`** — Boolean prop that expands all entries across all sections simultaneously, intended for use after AI enrichment populates fields
9
9
 
10
10
  ## Usage Example
11
11
 
@@ -13,27 +13,22 @@ A React component that organizes and manages changelog entries across four disti
13
13
  import { ChangelogSectionsManager } from './changelog-sections-manager';
14
14
  import type { ChangelogEntry } from '../../types/product-release';
15
15
 
16
- function ReleaseEditor() {
17
- const [features, setFeatures] = useState<ChangelogEntry[]>([]);
18
- const [bugs, setBugs] = useState<ChangelogEntry[]>([]);
19
- const [improvements, setImprovements] = useState<ChangelogEntry[]>([]);
20
- const [breaking, setBreaking] = useState<ChangelogEntry[]>([]);
16
+ const [featuresAdded, setFeaturesAdded] = useState<ChangelogEntry[]>([]);
17
+ const [bugsFixed, setBugsFixed] = useState<ChangelogEntry[]>([]);
18
+ const [improvements, setImprovements] = useState<ChangelogEntry[]>([]);
19
+ const [breakingChanges, setBreakingChanges] = useState<ChangelogEntry[]>([]);
21
20
 
22
- return (
23
- <ChangelogSectionsManager
24
- featuresAdded={features}
25
- bugsFixed={bugs}
26
- improvements={improvements}
27
- breakingChanges={breaking}
28
- onFeaturesAddedChange={setFeatures}
29
- onBugsFixedChange={setBugs}
30
- onImprovementsChange={setImprovements}
31
- onBreakingChangesChange={setBreaking}
32
- expandAll={true} // Expand all sections after AI enrichment
33
- className="my-4"
34
- />
35
- );
36
- }
21
+ <ChangelogSectionsManager
22
+ featuresAdded={featuresAdded}
23
+ bugsFixed={bugsFixed}
24
+ improvements={improvements}
25
+ breakingChanges={breakingChanges}
26
+ onFeaturesAddedChange={setFeaturesAdded}
27
+ onBugsFixedChange={setBugsFixed}
28
+ onImprovementsChange={setImprovements}
29
+ onBreakingChangesChange={setBreakingChanges}
30
+ expandAll={aiEnrichmentComplete}
31
+ />
37
32
  ```
38
33
 
39
- The component uses a consistent card layout with ODS (OpenFrame Design System) styling and delegates individual section management to the `ChangelogManager` component. The `expandAll` prop is particularly useful for displaying AI-enhanced changelog entries.
34
+ Each section delegates entry management (add, edit, remove) to its own `ChangelogManager` instance while sharing the `expandAll` state, keeping the parent component's state management straightforward with one array and one setter per section.
@@ -1,12 +1,20 @@
1
- <!-- source-hash: 58a52ec93cc9a268c0cf74ea4894e9e7 -->
2
- A unified React component for displaying commands with optional title and configurable action buttons, featuring responsive design and consistent styling within the ODS design system.
1
+ <!-- source-hash: b7d1c615d3d37a540958daff7feed5f3 -->
2
+ A reusable React component for displaying command strings in a styled monospace box with optional title and configurable action buttons.
3
3
 
4
4
  ## Key Components
5
5
 
6
- - **`CommandBoxAction`** - Interface defining action button properties including label, click handler, variant, icon, and state
7
- - **`CommandBoxProps`** - Main component props interface with command text, title, actions, and styling options
8
- - **`CommandBox`** - Primary component that renders command text in a styled card with optional action buttons
9
- - **`lineClampClasses`** - Static mapping object for Tailwind line-clamp classes to enable build-time optimization
6
+ ### Interfaces
7
+
8
+ | Interface | Description |
9
+ |-----------|-------------|
10
+ | `CommandBoxAction` | Defines a button with `label`, `onClick`, optional `variant`, `icon`, `disabled`, and `loading` states |
11
+ | `CommandBoxProps` | Component props including `command` (required), `title`, `primaryAction`, `secondaryAction`, layout classes, and `maxLines` |
12
+
13
+ ### Exports
14
+
15
+ - **`CommandBox`** — Main component rendering the command display box
16
+ - **`CommandBoxAction`** — Interface for action button configuration
17
+ - **`CommandBoxProps`** — Interface for component props
10
18
 
11
19
  ## Usage Example
12
20
 
@@ -14,34 +22,29 @@ A unified React component for displaying commands with optional title and config
14
22
  import { CommandBox } from '@flamingo/ui-kit/components/features'
15
23
  import { Copy, Play } from 'lucide-react'
16
24
 
17
- // Basic command display with copy action
18
25
  <CommandBox
19
- title="Installation Command"
20
- command="npm install @flamingo/ui-kit"
21
- primaryAction={{
22
- label: 'Copy',
23
- onClick: () => navigator.clipboard.writeText(command),
24
- icon: <Copy className="w-4 h-4" />,
25
- variant: 'primary'
26
- }}
27
- />
28
-
29
- // Multi-line command with line limiting
30
- <CommandBox
31
- command="curl -L https://example.com/install.sh | bash -s -- --config production"
32
- maxLines={2}
26
+ title="Device Add Command"
27
+ command="curl -L https://example.com/install.sh | bash"
28
+ maxLines={3}
33
29
  primaryAction={{
34
30
  label: 'Copy Command',
35
- onClick: handleCopy,
36
- variant: 'outline'
31
+ onClick: () => navigator.clipboard.writeText(command),
32
+ icon: <Copy className="w-5 h-5" />,
33
+ variant: 'accent'
37
34
  }}
38
35
  secondaryAction={{
39
- label: 'Execute',
40
- onClick: handleExecute,
41
- icon: <Play className="w-4 h-4" />,
42
- loading: isExecuting
36
+ label: 'Run on Machine',
37
+ onClick: handleRun,
38
+ icon: <Play className="w-5 h-5" />,
39
+ variant: 'outline',
40
+ loading: isRunning
43
41
  }}
44
42
  />
45
43
  ```
46
44
 
47
- The component automatically handles responsive layout, switching from row to column layout on smaller screens, and supports up to 6 lines of text clamping for long commands.
45
+ ## Notes
46
+
47
+ - **Line clamping** uses a static `lineClampClasses` map (`1–6`) to ensure Tailwind generates the correct `line-clamp-*` classes at build time. Set `maxLines={0}` (default) for unlimited display.
48
+ - **Button layout** stacks vertically on mobile and aligns right horizontally on `md+` screens.
49
+ - Secondary action renders before the primary action visually, consistent with standard UI conventions.
50
+ - `variant` defaults to `'accent'` for primary and `'outline'` for secondary if not specified.
@@ -0,0 +1,46 @@
1
+ <!-- source-hash: 87dfd7f5b94bff0f44ed579685785b88 -->
2
+ Reusable editor component for entity summary fields with AI generation badges and confidence score display.
3
+
4
+ ## Key Components
5
+
6
+ **`EntitySummaryEditor`** — Default export. A controlled textarea editor with optional AI metadata indicators.
7
+
8
+ **`EntitySummaryEditorProps`** — TypeScript interface defining all configurable props:
9
+
10
+ | Prop | Type | Default | Description |
11
+ |------|------|---------|-------------|
12
+ | `summary` | `string` | `''` | Controlled text value |
13
+ | `onSummaryChange` | `(value: string) => void` | required | Change handler |
14
+ | `isAIGenerated` | `boolean` | `false` | Shows AI Generated badge |
15
+ | `summaryConfidence` | `number \| null` | — | Confidence score (0–100) |
16
+ | `label` | `string` | `'Summary (Markdown supported)'` | Field label |
17
+ | `helperText` | `string` | `'Entity summary...'` | Subtext below label |
18
+ | `placeholder` | `string` | `'Brief summary...'` | Textarea placeholder |
19
+ | `minHeight` | `number` | `200` | Minimum height in px |
20
+ | `disabled` | `boolean` | `false` | Disables the textarea |
21
+ | `className` | `string` | `''` | Container class override |
22
+
23
+ ## Usage Example
24
+
25
+ ```typescript
26
+ import { EntitySummaryEditor } from './entity-summary-editor';
27
+
28
+ function ReleaseForm() {
29
+ const [summary, setSummary] = React.useState('');
30
+
31
+ return (
32
+ <EntitySummaryEditor
33
+ summary={summary}
34
+ onSummaryChange={setSummary}
35
+ isAIGenerated={true}
36
+ summaryConfidence={87}
37
+ label="Release Summary (Markdown supported)"
38
+ helperText="Displayed on release cards and detail page."
39
+ placeholder="Describe this release..."
40
+ minHeight={240}
41
+ />
42
+ );
43
+ }
44
+ ```
45
+
46
+ When `isAIGenerated` is `true`, a `Sparkles` icon badge renders next to the label. When `summaryConfidence` is provided, `ConfidenceBadge` renders inline showing the AI confidence percentage.
@@ -0,0 +1,51 @@
1
+ <!-- source-hash: e2ba951ef60128447d27416a00b1a586 -->
2
+ Renders the video block for entity detail pages, combining full video, highlight video, AI-generated summary, and video bites into a unified tabbed layout.
3
+
4
+ ## Key Components
5
+
6
+ ### `EntityVideoSection` (default export)
7
+ Main component that orchestrates the video display logic:
8
+ - **Tab UI** — renders "Full Video" / "Highlights" tabs when both a full video and highlight video are present; falls back to a single `<Video>` when only one exists
9
+ - **YouTube precedence** — resolves `youtubeUrl` vs `mainVideoUrl` priority at this level, keeping `<Video>` as a single-source-per-render primitive
10
+ - **Video summary** — renders an AI-generated markdown summary via injected `MarkdownRenderer`
11
+ - **Video bites grid** — delegates to `<VideoBitesDisplay>` when `videoBites` are provided
12
+ - **Null guard** — returns `null` when no video, summary, or bites are present
13
+
14
+ ### `EntityVideoSectionProps`
15
+ Full interface for controlling content and behavior:
16
+
17
+ | Prop | Type | Description |
18
+ |------|------|-------------|
19
+ | `youtubeUrl` | `string \| null` | YouTube URL (takes priority over `mainVideoUrl`) |
20
+ | `mainVideoUrl` | `string \| null` | Uploaded video URL |
21
+ | `highlightVideoUrl` | `string \| null` | AI-generated highlight clip |
22
+ | `captionsUrl` | `string \| null` | HTTPS URL to a VTT captions file |
23
+ | `MarkdownRenderer` | `ComponentType` | Injected renderer for summary markdown |
24
+ | `priority` | `boolean` | LCP hint for eager poster loading |
25
+ | `srtContent` | `string \| null` | Deprecated — use `captionsUrl` |
26
+
27
+ ## Usage Example
28
+
29
+ ```typescript
30
+ import { EntityVideoSection } from './entity-video-section';
31
+ import { MarkdownRenderer } from '@/components/markdown-renderer';
32
+
33
+ export function TalkDetailPage({ talk }) {
34
+ return (
35
+ <EntityVideoSection
36
+ youtubeUrl={talk.youtubeUrl}
37
+ mainVideoUrl={talk.videoUrl}
38
+ highlightVideoUrl={talk.highlightUrl}
39
+ highlightVideoThumbnail={talk.highlightThumb}
40
+ mainVideoPoster={talk.posterUrl}
41
+ title={talk.title}
42
+ videoSummary={talk.aiSummary}
43
+ videoBites={talk.bites}
44
+ bitesTitle="Key Moments"
45
+ captionsUrl={talk.captionsUrl}
46
+ MarkdownRenderer={MarkdownRenderer}
47
+ priority
48
+ />
49
+ );
50
+ }
51
+ ```
@@ -1,45 +1,64 @@
1
- <!-- source-hash: 334f79ef37d39fafa41a9fecfc6bf342 -->
2
- A responsive React component for embedding and viewing Figma prototypes with automatic device detection, adaptive scaling, and section-based navigation.
1
+ <!-- source-hash: d8463fe41098681892c9956a4d6c77ce -->
2
+ Renders an interactive Figma prototype viewer component with responsive layout, automatic device detection, section navigation, and scaled iframe embedding for both desktop and mobile viewports.
3
3
 
4
4
  ## Key Components
5
5
 
6
- - **FigmaPrototypeViewer**: Main component with unified state management and responsive iframe embedding
7
- - **UnifiedState**: Comprehensive state interface managing view modes, scaling, navigation, and UI states
8
- - **ViewMode Types**: `DESKTOP`, `MOBILE`, `MOBILE_TOUCH` with automatic detection based on screen size and touch capability
9
- - **Configuration System**: Supports environment variables and config-based setup for file keys, dimensions, and starting points
10
- - **Scaling Engine**: Calculates optimal iframe scaling and positioning for different screen sizes
11
- - **Section Navigation**: Integration with SectionSelector for prototype flow navigation
6
+ ### Interfaces & Types
7
+ - **`FigmaPrototypeViewerConfig`** — Main configuration object; accepts file keys (per-device or legacy single), sections, dimensions, starting points, and UI class overrides
8
+ - **`FigmaPrototypeSection`** — Defines a navigable prototype section with separate desktop/mobile node IDs
9
+ - **`UnifiedState`** — Consolidated state shape covering view mode, iframe lifecycle, scaling, UI visibility flags, and navigation
10
+ - **`ViewMode`** — `'DESKTOP' | 'MOBILE' | 'MOBILE_TOUCH'`
11
+ - **`IframeState`** — `'INITIAL' | 'LOADING' | 'READY' | 'RELOADING' | 'SLEEP_RECOVERY'`
12
+
13
+ ### Core Functions
14
+ - **`getViewMode(screenWidth, isTouchDevice)`** — Derives current `ViewMode` from screen width against the 768px breakpoint
15
+ - **`calculateScaling(viewMode, containerDimensions, config?)`** — Computes `scale`, `marginX/Y`, and `scaledDimensions` to fit content without upscaling
16
+ - **`resolveFileKey(config, viewMode)`** — Picks the correct Figma file key via env vars → per-device config → legacy `fileKey`
17
+ - **`resolveStartingPoint(config, viewMode, section?)`** — Resolves the initial prototype node via env vars → config → first section fallback
18
+ - **`generateEmbedUrl(...)`** — Builds the `embed.figma.com/proto` URL with all required query parameters
19
+ - **`renderUnifiedUI(state, handlers, config, iframeRef)`** — Pure render function producing the full component JSX from state
20
+
21
+ ### Environment Variable Overrides
22
+ Content dimensions and file keys can be set at the environment level:
23
+
24
+ ```text
25
+ NEXT_PUBLIC_FIGMA_MOBILE_FILE_KEY
26
+ NEXT_PUBLIC_FIGMA_DESKTOP_FILE_KEY
27
+ NEXT_PUBLIC_FIGMA_MOBILE_STARTING_POINT
28
+ NEXT_PUBLIC_FIGMA_DESKTOP_STARTING_POINT
29
+ NEXT_PUBLIC_FIGMA_MOBILE_WIDTH / _HEIGHT
30
+ NEXT_PUBLIC_FIGMA_DESKTOP_WIDTH / _HEIGHT
31
+ ```
32
+
33
+ Priority order: **env vars → config props → defaults**
12
34
 
13
35
  ## Usage Example
14
36
 
15
37
  ```typescript
16
38
  import { FigmaPrototypeViewer } from './figma-prototype-viewer'
39
+ import type { FigmaPrototypeViewerConfig } from './figma-prototype-viewer'
17
40
 
18
- const config = {
19
- title: "Design System Prototype",
20
- desktopFileKey: "abc123...",
21
- mobileFileKey: "def456...",
41
+ const config: FigmaPrototypeViewerConfig = {
42
+ title: 'Onboarding Flow',
43
+ desktopFileKey: 'abc123XYZ',
44
+ mobileFileKey: 'xyz789ABC',
45
+ desktopStartingPoint: '1:23',
46
+ mobileStartingPoint: '4:56',
22
47
  sections: [
23
48
  {
24
- id: "onboarding",
25
- number: "01",
26
- title: "User Onboarding",
27
- startingNodeId: "123:456",
28
- mobileStartingNodeId: "789:012"
29
- }
49
+ id: 'sign-up',
50
+ number: '01',
51
+ title: 'Sign Up',
52
+ description: 'New user registration flow',
53
+ startingNodeId: '1:23',
54
+ mobileStartingNodeId: '4:56',
55
+ },
30
56
  ],
57
+ mobileContentDimensions: { width: 343, height: 600 },
31
58
  desktopContentDimensions: { width: 944, height: 600 },
32
- mobileContentDimensions: { width: 343, height: 600 }
33
59
  }
34
60
 
35
- function PrototypePage() {
36
- return (
37
- <FigmaPrototypeViewer
38
- config={config}
39
- onSectionClick={(sectionId) => console.log('Section changed:', sectionId)}
40
- />
41
- )
61
+ export default function PrototypePage() {
62
+ return <FigmaPrototypeViewer config={config} />
42
63
  }
43
- ```
44
-
45
- The component automatically detects device capabilities, manages iframe states (loading, ready, reloading), and provides smooth transitions between sections. Environment variables can override config settings for deployment flexibility.
64
+ ```