@flamingo-stack/openframe-frontend-core 0.0.213 → 0.0.214

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 (745) hide show
  1. package/dist/{chunk-3JWIJJ44.js → chunk-5OWDOFKK.js} +2 -2
  2. package/dist/{chunk-IK2X5YJU.js → chunk-HWY35EAK.js} +2 -2
  3. package/dist/{chunk-OTKJASSX.cjs → chunk-IZL2KEH6.cjs} +24 -24
  4. package/dist/{chunk-OTKJASSX.cjs.map → chunk-IZL2KEH6.cjs.map} +1 -1
  5. package/dist/{chunk-35XIT2CF.cjs → chunk-KDNGUYZM.cjs} +17 -17
  6. package/dist/{chunk-35XIT2CF.cjs.map → chunk-KDNGUYZM.cjs.map} +1 -1
  7. package/dist/{chunk-ZTJVRSN5.js → chunk-UKND27XC.js} +2 -2
  8. package/dist/chunk-UKND27XC.js.map +1 -0
  9. package/dist/{chunk-ZDF6F7ED.cjs → chunk-YZUUFTIK.cjs} +2 -2
  10. package/dist/chunk-YZUUFTIK.cjs.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/providers/.theme-provider.md +52 -0
  421. package/src/components/shared/delivery/.delivery-lists.md +39 -0
  422. package/src/components/shared/delivery/.delivery-row.md +41 -0
  423. package/src/components/shared/delivery/.delivery-table.md +41 -0
  424. package/src/components/shared/delivery/.index.md +38 -0
  425. package/src/components/shared/dev-section/.dev-card-row.md +60 -0
  426. package/src/components/shared/dev-section/.dev-section-page.md +48 -0
  427. package/src/components/shared/dev-section/.dev-section-view.md +43 -0
  428. package/src/components/shared/dev-section/.index.md +38 -0
  429. package/src/components/shared/legal-document/.index.md +40 -0
  430. package/src/components/shared/legal-document/.legal-document-page.md +50 -0
  431. package/src/components/shared/legal-document/.use-legal-docs.md +42 -0
  432. package/src/components/shared/onboarding/.onboarding-step-card.md +32 -31
  433. package/src/components/shared/onboarding/.onboarding-walkthrough.md +39 -43
  434. package/src/components/shared/product-release/.index.md +28 -30
  435. package/src/components/shared/product-release/.product-release-card-skeleton.md +28 -28
  436. package/src/components/shared/product-release/.product-release-card.md +45 -27
  437. package/src/components/shared/product-release/.release-detail-page.md +23 -24
  438. package/src/components/shared/roadmap/.index.md +37 -0
  439. package/src/components/shared/roadmap/.roadmap-grid-skeleton.md +39 -0
  440. package/src/components/shared/roadmap/.roadmap-grid.md +66 -0
  441. package/src/components/shared/roadmap/.use-roadmap-voting.md +68 -0
  442. package/src/components/tickets/.help-center-card.md +51 -0
  443. package/src/components/tickets/.help-center-create-form.md +38 -0
  444. package/src/components/tickets/.help-center-list.md +40 -0
  445. package/src/components/tickets/.index.md +65 -0
  446. package/src/components/tickets/.ticket-center.md +51 -0
  447. package/src/components/tickets/.ticket-detail-drawer.md +48 -0
  448. package/src/components/tickets/.ticket-linked-delivery-card.md +36 -0
  449. package/src/components/tickets/.ticket-open-form.md +50 -0
  450. package/src/components/tickets/.ticket-row.md +30 -0
  451. package/src/components/tickets/.types.md +57 -0
  452. package/src/components/tickets/hooks/.use-ticket-actions.md +77 -0
  453. package/src/components/tickets/hooks/.use-ticket-engagements.md +42 -0
  454. package/src/components/tickets/hooks/.use-tickets-list.md +54 -0
  455. package/src/components/ui/.actions-menu.md +66 -41
  456. package/src/components/ui/.alert-dialog.md +29 -26
  457. package/src/components/ui/.allowed-domains-input.md +29 -21
  458. package/src/components/ui/.assignee-dropdown.md +45 -0
  459. package/src/components/ui/.autocomplete.md +47 -41
  460. package/src/components/ui/.benefit-card.md +51 -36
  461. package/src/components/ui/.brand-association-card.md +30 -27
  462. package/src/components/ui/.breadcrumb.md +17 -15
  463. package/src/components/ui/.checkbox-block.md +39 -35
  464. package/src/components/ui/.checkbox-with-description.md +23 -16
  465. package/src/components/ui/.checkbox.md +31 -23
  466. package/src/components/ui/.circular-progress.md +49 -19
  467. package/src/components/ui/.content-loader.md +32 -20
  468. package/src/components/ui/.cursor-pagination.md +41 -52
  469. package/src/components/ui/.dashboard-info-card.md +33 -26
  470. package/src/components/ui/.date-picker.md +27 -25
  471. package/src/components/ui/.device-card-compact.md +28 -29
  472. package/src/components/ui/.device-card.md +27 -27
  473. package/src/components/ui/.dialog.md +25 -16
  474. package/src/components/ui/.drawer.md +86 -0
  475. package/src/components/ui/.dropdown-button.md +45 -0
  476. package/src/components/ui/.entity-image.md +46 -0
  477. package/src/components/ui/.error-state.md +41 -28
  478. package/src/components/ui/.feature-card.md +35 -31
  479. package/src/components/ui/.feature-list.md +48 -0
  480. package/src/components/ui/.field-wrapper.md +47 -0
  481. package/src/components/ui/.file-upload.md +42 -0
  482. package/src/components/ui/.filter-checkbox-item.md +43 -0
  483. package/src/components/ui/.filter-list.md +57 -0
  484. package/src/components/ui/.filter-modal.md +59 -0
  485. package/src/components/ui/.floating-tooltip.md +43 -26
  486. package/src/components/ui/.hidden-tags-popup.md +49 -0
  487. package/src/components/ui/.hover-dropdown.md +54 -0
  488. package/src/components/ui/.image-gallery-modal.md +41 -34
  489. package/src/components/ui/.image-uploader.md +53 -0
  490. package/src/components/ui/.index.md +40 -34
  491. package/src/components/ui/.info-card.md +31 -31
  492. package/src/components/ui/.info-row.md +31 -27
  493. package/src/components/ui/.input-trigger.md +44 -0
  494. package/src/components/ui/.input.md +37 -31
  495. package/src/components/ui/.markdown-editor.md +57 -0
  496. package/src/components/ui/.modal-v2.md +51 -0
  497. package/src/components/ui/.modal.md +32 -31
  498. package/src/components/ui/.more-actions-menu.md +45 -38
  499. package/src/components/ui/.organization-card.md +31 -37
  500. package/src/components/ui/.page-actions.md +44 -54
  501. package/src/components/ui/.phone-input.md +54 -0
  502. package/src/components/ui/.progress-bar.md +35 -27
  503. package/src/components/ui/.radio-group.md +39 -27
  504. package/src/components/ui/.release-changelog-section.md +34 -34
  505. package/src/components/ui/.search-input.md +48 -0
  506. package/src/components/ui/.select.md +54 -34
  507. package/src/components/ui/.service-card.md +42 -40
  508. package/src/components/ui/.sheet.md +27 -18
  509. package/src/components/ui/.simple-markdown-renderer.md +29 -31
  510. package/src/components/ui/.sort-column-item.md +42 -0
  511. package/src/components/ui/.square-avatar.md +34 -24
  512. package/src/components/ui/.status-badge.md +26 -38
  513. package/src/components/ui/.switch.md +22 -35
  514. package/src/components/ui/.tab-navigation.md +56 -53
  515. package/src/components/ui/.tab-selector.md +40 -0
  516. package/src/components/ui/.tag-key-value-filter.md +56 -0
  517. package/src/components/ui/.tag-search-input.md +53 -0
  518. package/src/components/ui/.tag.md +49 -31
  519. package/src/components/ui/.tags-manager.md +60 -0
  520. package/src/components/ui/.textarea.md +44 -34
  521. package/src/components/ui/.ticket-attachments-list.md +45 -0
  522. package/src/components/ui/.ticket-detail-section.md +29 -0
  523. package/src/components/ui/.ticket-info-section.md +56 -0
  524. package/src/components/ui/.ticket-note-card.md +53 -0
  525. package/src/components/ui/.ticket-notes-section.md +54 -0
  526. package/src/components/ui/.ticket-status-tag.md +49 -0
  527. package/src/components/ui/.title-content-block.md +25 -26
  528. package/src/components/ui/.toaster.md +40 -28
  529. package/src/components/ui/.tooltip.md +22 -11
  530. package/src/components/ui/.truncate-text.md +39 -0
  531. package/src/components/ui/button/.button-styles.md +35 -0
  532. package/src/components/ui/button/.button.md +53 -0
  533. package/src/components/ui/button/.split-button.md +48 -0
  534. package/src/components/ui/data-table/.data-table-body.md +48 -0
  535. package/src/components/ui/data-table/.data-table-column-filter.md +45 -0
  536. package/src/components/ui/data-table/.data-table-cursor-footer.md +45 -0
  537. package/src/components/ui/data-table/.data-table-empty.md +43 -0
  538. package/src/components/ui/data-table/.data-table-header.md +55 -0
  539. package/src/components/ui/data-table/.data-table-infinite-footer.md +44 -0
  540. package/src/components/ui/data-table/.data-table-row-count.md +43 -0
  541. package/src/components/ui/data-table/.data-table-row.md +47 -0
  542. package/src/components/ui/data-table/.data-table-skeleton.md +42 -0
  543. package/src/components/ui/data-table/.data-table.md +47 -0
  544. package/src/components/ui/data-table/.index.md +55 -0
  545. package/src/components/ui/data-table/.types.md +54 -0
  546. package/src/components/ui/data-table/.use-data-table.md +45 -0
  547. package/src/components/ui/data-table/.utils.md +38 -0
  548. package/src/components/ui/file-manager/.file-manager-action-bar.md +39 -30
  549. package/src/components/ui/file-manager/.file-manager-breadcrumb.md +29 -27
  550. package/src/components/ui/file-manager/.file-manager-context-menu.md +38 -42
  551. package/src/components/ui/file-manager/.file-manager-empty.md +26 -39
  552. package/src/components/ui/file-manager/.file-manager-table-row.md +33 -41
  553. package/src/components/ui/file-manager/.file-manager.md +35 -31
  554. package/src/components/ui/query-report-table/.index.md +43 -0
  555. package/src/components/ui/query-report-table/.query-report-table-header.md +36 -0
  556. package/src/components/ui/query-report-table/.query-report-table-row.md +40 -0
  557. package/src/components/ui/query-report-table/.query-report-table-skeleton.md +44 -0
  558. package/src/components/ui/query-report-table/.query-report-table.md +47 -0
  559. package/src/components/ui/query-report-table/.types.md +41 -0
  560. package/src/components/ui/query-report-table/.utils.md +35 -0
  561. package/src/components/ui/table/.index.md +27 -48
  562. package/src/components/ui/table/.table-cell.md +18 -27
  563. package/src/components/ui/table/.table-column-filter-dropdown.md +40 -0
  564. package/src/components/ui/table/.table-description-cell.md +24 -14
  565. package/src/components/ui/table/.table-empty-state.md +21 -22
  566. package/src/components/ui/table/.table-header.md +25 -40
  567. package/src/components/ui/table/.table-row.md +22 -40
  568. package/src/components/ui/table/.table-skeleton.md +33 -26
  569. package/src/components/ui/table/.table-timestamp-cell.md +26 -16
  570. package/src/components/ui/table/.table.md +39 -59
  571. package/src/components/ui/table/.types.md +44 -36
  572. package/src/components/ui/table/.utils.md +18 -20
  573. package/src/contexts/.chat-runtime-context.md +54 -0
  574. package/src/contexts/.endpoints-runtime-context.md +58 -0
  575. package/src/contexts/.index.md +53 -0
  576. package/src/contexts/.use-outer-or-default.md +36 -0
  577. package/src/embed-shims/.index.md +45 -0
  578. package/src/embed-shims/.next-dynamic.md +43 -0
  579. package/src/embed-shims/.next-image.md +45 -0
  580. package/src/embed-shims/.next-link.md +59 -0
  581. package/src/embed-shims/.next-navigation.md +59 -0
  582. package/src/hooks/.index.md +34 -29
  583. package/src/hooks/.use-access-code-integration.md +49 -0
  584. package/src/hooks/.use-contact-submission.md +37 -26
  585. package/src/hooks/.use-copy-to-clipboard.md +42 -0
  586. package/src/hooks/.use-near-viewport.md +44 -0
  587. package/src/hooks/.use-og-placeholder.md +51 -0
  588. package/src/hooks/.use-toast.md +36 -35
  589. package/src/hooks/state/.use-api-params.md +29 -46
  590. package/src/hooks/state/.use-query-params.md +37 -33
  591. package/src/hooks/ui/.index.md +33 -32
  592. package/src/hooks/ui/.use-auto-limit-tags.md +54 -0
  593. package/src/hooks/ui/.use-horizontal-scrollbar.md +74 -0
  594. package/src/hooks/ui/.use-image-edge-color.md +42 -0
  595. package/src/hooks/ui/.use-media-query.md +33 -25
  596. package/src/hooks/ui/.use-search.md +51 -0
  597. package/src/nats/.nats.md +49 -28
  598. package/src/schemas/.contact-schema.md +45 -0
  599. package/src/stories/.AnnouncementBar.stories.md +45 -0
  600. package/src/stories/.AppLayout.stories.md +20 -21
  601. package/src/stories/.Autocomplete.stories.md +48 -34
  602. package/src/stories/.Board.stories.md +35 -0
  603. package/src/stories/.Button.stories.md +36 -33
  604. package/src/stories/.ChatTicketList.stories.md +33 -0
  605. package/src/stories/.CheckboxBlock.stories.md +40 -28
  606. package/src/stories/.ContentLoader.stories.md +47 -0
  607. package/src/stories/.DashboardInfoCard.stories.md +57 -0
  608. package/src/stories/.DataTable.stories.md +41 -0
  609. package/src/stories/.DatePicker.stories.md +66 -52
  610. package/src/stories/.DeviceCard.stories.md +41 -40
  611. package/src/stories/.DeviceCardCompact.stories.md +41 -0
  612. package/src/stories/.DotsLoaderIcon.stories.md +36 -0
  613. package/src/stories/.Drawer.stories.md +58 -0
  614. package/src/stories/.EmbeddableChat.stories.md +41 -0
  615. package/src/stories/.FileManager.stories.md +41 -0
  616. package/src/stories/.FileManagerActionBar.stories.md +38 -0
  617. package/src/stories/.FileUpload.stories.md +53 -0
  618. package/src/stories/.FilterList.stories.md +54 -0
  619. package/src/stories/.FilterModal.stories.md +72 -0
  620. package/src/stories/.FiltersDropdown.stories.md +57 -0
  621. package/src/stories/.Header.stories.md +48 -0
  622. package/src/stories/.ImageUploader.stories.md +49 -0
  623. package/src/stories/.InfoCard.stories.md +54 -0
  624. package/src/stories/.Input.stories.md +48 -30
  625. package/src/stories/.ListPageLayout.stories.md +56 -43
  626. package/src/stories/.MingoOnboardingCard.stories.md +42 -0
  627. package/src/stories/.MingoOnboardingCardSkeleton.stories.md +35 -0
  628. package/src/stories/.Modal.stories.md +40 -31
  629. package/src/stories/.NotificationDrawer.stories.md +55 -0
  630. package/src/stories/.OnboardingStepCard.stories.md +41 -0
  631. package/src/stories/.OrganizationCard.stories.md +61 -0
  632. package/src/stories/.PageActions.stories.md +52 -49
  633. package/src/stories/.PageContainer.stories.md +41 -35
  634. package/src/stories/.PageLayout.stories.md +60 -0
  635. package/src/stories/.ParallaxImageShowcase.stories.md +49 -0
  636. package/src/stories/.PhoneInput.stories.md +53 -0
  637. package/src/stories/.QueryReportTable.stories.md +44 -0
  638. package/src/stories/.RadioGroup.stories.md +46 -0
  639. package/src/stories/.RadioGroupBlock.stories.md +45 -0
  640. package/src/stories/.Select.stories.md +29 -15
  641. package/src/stories/.SlashCommandSuggestions.stories.md +41 -0
  642. package/src/stories/.SplitButton.stories.md +62 -0
  643. package/src/stories/.TabNavigation.stories.md +47 -38
  644. package/src/stories/.TabSelector.stories.md +65 -0
  645. package/src/stories/.Table.stories.md +38 -46
  646. package/src/stories/.TableColumnFilterDropdown.stories.md +46 -0
  647. package/src/stories/.Tag.stories.md +43 -32
  648. package/src/stories/.TagKeyValueFilter.stories.md +44 -0
  649. package/src/stories/.TagSearchInput.stories.md +61 -0
  650. package/src/stories/.Textarea.stories.md +49 -26
  651. package/src/stories/.Theme.stories.md +41 -0
  652. package/src/stories/.TicketAttachmentsList.stories.md +39 -0
  653. package/src/stories/.TicketDescriptionViewer.stories.md +39 -0
  654. package/src/stories/.TicketInfoSection.stories.md +40 -0
  655. package/src/stories/.TicketKnowledgeBaseList.stories.md +36 -0
  656. package/src/stories/.TicketNotesSection.stories.md +50 -0
  657. package/src/stories/.Toaster.stories.md +40 -0
  658. package/src/stories/.ToolExecutionDisplay.stories.md +41 -0
  659. package/src/stories/.Tooltip.stories.md +41 -0
  660. package/src/stories/.UserSummary.stories.md +41 -0
  661. package/src/stories/.WaitlistForm.stories.md +42 -0
  662. package/src/stories/BlogCard.stories.tsx +61 -0
  663. package/src/stories/CampaignCardAdmin.stories.tsx +52 -0
  664. package/src/stories/CaseStudyCard.stories.tsx +42 -0
  665. package/src/stories/ChatContainer.stories.tsx +186 -0
  666. package/src/stories/ChatInlineVideoPill.stories.tsx +63 -0
  667. package/src/stories/CustomerInterviewCard.stories.tsx +42 -0
  668. package/src/stories/DataRoomDocCard.stories.tsx +52 -0
  669. package/src/stories/GenericEntityCard.stories.tsx +66 -0
  670. package/src/stories/GitHubActivityCard.stories.tsx +61 -0
  671. package/src/stories/HubspotTicketCard.stories.tsx +98 -0
  672. package/src/stories/InvestorUpdateCard.stories.tsx +42 -0
  673. package/src/stories/OnboardingGuideCard.stories.tsx +52 -0
  674. package/src/stories/ProductReleaseCard.stories.tsx +61 -0
  675. package/src/stories/ProgramCard.stories.tsx +79 -0
  676. package/src/stories/RoadmapCard.stories.tsx +75 -0
  677. package/src/stories/SlackMessageCard.stories.tsx +41 -0
  678. package/src/stories/__fixtures__/chat-cards.ts +604 -0
  679. package/src/types/.blog.md +53 -29
  680. package/src/types/.case-study.md +44 -27
  681. package/src/types/.customer-interview.md +66 -44
  682. package/src/types/.delivery.md +40 -0
  683. package/src/types/.employee.md +24 -30
  684. package/src/types/.index.md +33 -47
  685. package/src/types/.marketing.md +49 -44
  686. package/src/types/.navigation.md +33 -25
  687. package/src/types/.os.types.md +32 -27
  688. package/src/types/.platform.md +31 -28
  689. package/src/types/.product-release.md +65 -38
  690. package/src/types/.supabase.md +37 -29
  691. package/src/types/.team.md +41 -33
  692. package/src/types/.video-processing.md +54 -0
  693. package/src/types/.waitlist.md +40 -36
  694. package/src/utils/.access-code-client.md +37 -36
  695. package/src/utils/.cn.md +31 -23
  696. package/src/utils/.color-analysis.md +35 -0
  697. package/src/utils/.country-phone-utils.md +39 -0
  698. package/src/utils/.date-formatters.md +19 -18
  699. package/src/utils/.embed-authed-fetch.md +39 -0
  700. package/src/utils/.embed-proxy-auth-storage.md +38 -0
  701. package/src/utils/.fetch-priority.md +41 -0
  702. package/src/utils/.format.md +74 -25
  703. package/src/utils/.generic-domain-utils.md +42 -0
  704. package/src/utils/.image-proxy.md +59 -23
  705. package/src/utils/.index.md +42 -49
  706. package/src/utils/.local-storage-adapter.md +50 -0
  707. package/src/utils/.ods-color-utils.md +55 -38
  708. package/src/utils/.platform-config.md +45 -25
  709. package/src/utils/.scroll-into-view.md +40 -0
  710. package/src/utils/.source-icons.md +53 -0
  711. package/src/utils/.sse-decision-frame.md +46 -0
  712. package/src/utils/dev-sections/.index.md +34 -0
  713. package/src/utils/dev-sections/.openframe-dev-sections.md +49 -0
  714. package/dist/chunk-ZDF6F7ED.cjs.map +0 -1
  715. package/dist/chunk-ZTJVRSN5.js.map +0 -1
  716. package/src/components/.card.md +0 -42
  717. package/src/components/.contact-button.md +0 -30
  718. package/src/components/.drawer.md +0 -46
  719. package/src/components/.fixed-layout-container.md +0 -47
  720. package/src/components/.footer-waitlist-card.md +0 -29
  721. package/src/components/.join-waitlist-cta.md +0 -29
  722. package/src/components/.sheet.md +0 -47
  723. package/src/components/.sliding-panel.md +0 -48
  724. package/src/components/.tooltip.md +0 -48
  725. package/src/components/.use-mobile.md +0 -42
  726. package/src/components/.vendor-compact-card.md +0 -66
  727. package/src/components/.x-button.md +0 -42
  728. package/src/components/features/.github-repo-button.md +0 -40
  729. package/src/components/features/.organization-icon.md +0 -47
  730. package/src/components/features/.organization-selector.md +0 -45
  731. package/src/components/icons/.fleet-icon.md +0 -39
  732. package/src/components/icons/.meshcentral-icon.md +0 -35
  733. package/src/components/icons/.refresh-icon.md +0 -34
  734. package/src/components/icons/.tactical-icon.md +0 -35
  735. package/src/components/ui/.button.md +0 -69
  736. package/src/components/ui/.log-table-row.md +0 -47
  737. package/src/components/ui/.selectable-device-card.md +0 -46
  738. package/src/hooks/.api-hooks-stub.md +0 -45
  739. package/src/hooks/api/.use-product-releases.md +0 -53
  740. package/src/stories/.OrganizationSelector.stories.md +0 -42
  741. package/src/stories/.SelectableDeviceCard.stories.md +0 -30
  742. package/src/utils/.lite-youtube-embed-stub.md +0 -37
  743. package/src/utils/.lite-youtube-embed.md +0 -33
  744. /package/dist/{chunk-3JWIJJ44.js.map → chunk-5OWDOFKK.js.map} +0 -0
  745. /package/dist/{chunk-IK2X5YJU.js.map → chunk-HWY35EAK.js.map} +0 -0
@@ -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
+ ```
@@ -1,61 +1,48 @@
1
- <!-- source-hash: 43ec97c557bde453e1b537b137f6f8db -->
2
- A customizable dropdown component for filtering UI elements with multi-section support, checkboxes, radio buttons, and responsive mobile behavior.
1
+ <!-- source-hash: a3c5543a6675d1ff7a726459eb736d56 -->
2
+ Animated filter dropdown component for selecting, applying, and resetting multi-section filter configurations with support for checkbox, radio, and select modes.
3
3
 
4
4
  ## Key Components
5
5
 
6
- - **FilterOption**: Interface defining individual filter options with id, label, value, and optional separator type
7
- - **FilterSection**: Interface for grouping filters by type (checkbox/radio/select) with optional select-all functionality
8
- - **FilterCheckbox**: Custom checkbox component with Flamingo branding (yellow accent color)
9
- - **FiltersDropdown**: Main dropdown component with intelligent positioning, mobile responsiveness, and state management
6
+ ### Interfaces
7
+ - **`FilterOption`** Individual filter item with `id`, `label`, `value`, optional `count`, and `type`
8
+ - **`FilterSection`** Grouping of options with a selection `type` (`"checkbox"` | `"radio"` | `"select"`), optional `allowSelectAll`, and `defaultSelected`
9
+ - **`FiltersDropdownProps`** Full component props including `sections`, `onApply`, `onReset`, `currentFilters`, and `placement`
10
+
11
+ ### Internal Components
12
+ - **`FilterCheckbox`** — Styled checkbox with accent fill and checkmark icon when selected
13
+
14
+ ### Main Export
15
+ - **`FiltersDropdown`** — Dropdown panel with animated open/close (mount/unmount + CSS transitions), smart viewport-aware placement, mobile-responsive layout, outside-click and Escape key dismissal, and active filter count indicator
10
16
 
11
17
  ## Usage Example
12
18
 
13
19
  ```typescript
14
- import { FiltersDropdown, FilterSection } from './filters-dropdown'
15
-
16
- const filterSections: FilterSection[] = [
20
+ const sections: FilterSection[] = [
17
21
  {
18
- id: 'status',
19
- title: 'Status',
20
- type: 'checkbox',
22
+ id: "status",
23
+ title: "Status",
24
+ type: "checkbox",
21
25
  allowSelectAll: true,
22
26
  options: [
23
- { id: 'active', label: 'Active', value: 'active' },
24
- { id: 'inactive', label: 'Inactive', value: 'inactive' },
25
- { id: 'pending', label: 'Pending', value: 'pending' }
26
- ]
27
+ { id: "open", label: "Open", value: "open", count: 12 },
28
+ { id: "closed", label: "Closed", value: "closed", count: 4 },
29
+ ],
27
30
  },
28
- {
29
- id: 'priority',
30
- title: 'Priority',
31
- type: 'radio',
32
- options: [
33
- { id: 'high', label: 'High', value: 'high' },
34
- { id: 'medium', label: 'Medium', value: 'medium' },
35
- { id: 'low', label: 'Low', value: 'low' }
36
- ]
37
- }
38
31
  ]
39
32
 
40
- function MyComponent() {
41
- const [appliedFilters, setAppliedFilters] = useState({})
42
-
43
- const handleApplyFilters = (filters: Record<string, string[]>) => {
44
- setAppliedFilters(filters)
45
- // Apply filters to your data
46
- }
47
-
48
- return (
49
- <FiltersDropdown
50
- triggerLabel="Filter Items"
51
- sections={filterSections}
52
- onApply={handleApplyFilters}
53
- currentFilters={appliedFilters}
54
- placement="bottom-start"
55
- responsive={true}
56
- />
57
- )
58
- }
33
+ const [appliedFilters, setAppliedFilters] = useState<Record<string, string[]>>({})
34
+
35
+ <FiltersDropdown
36
+ sections={sections}
37
+ triggerLabel="STATUS"
38
+ placement="bottom-start"
39
+ currentFilters={appliedFilters}
40
+ onApply={(filters) => setAppliedFilters(filters)}
41
+ onReset={() => setAppliedFilters({})}
42
+ />
59
43
  ```
60
44
 
61
- The component features intelligent positioning to avoid viewport overflow, mobile-responsive behavior with full-width dropdowns, and preserves filter state when reopening. It supports custom trigger elements and includes visual indicators for active filter counts.
45
+ ### Key Behaviors
46
+ - `currentFilters` syncs external state back into the dropdown when reopened
47
+ - Placement auto-adjusts (`bottom-start` ↔ `bottom-end`) based on available viewport space
48
+ - On mobile (`< 640px`), the panel switches to a fixed, full-width overlay mode
@@ -0,0 +1,42 @@
1
+ <!-- source-hash: d7af9befa8736257f5fa1a7169b8bc9d -->
2
+ Reusable configuration section component for highlight video generation settings, providing duration selection and subtitle burning controls in a unified horizontal layout.
3
+
4
+ ## Key Components
5
+
6
+ ### `HighlightConfigSection`
7
+ A client-side React component used across `CustomerInterview` and `ProductRelease` entity workflows to configure highlight video output options.
8
+
9
+ ### `HighlightConfigSectionProps`
10
+ | Prop | Type | Description |
11
+ |------|------|-------------|
12
+ | `targetDurationSeconds` | `number` | Current selected duration in seconds |
13
+ | `onTargetDurationChange` | `(seconds: number) => void` | Callback fired on duration change |
14
+ | `skipSubtitleBurning` | `boolean` | Whether subtitle burning is skipped |
15
+ | `onSkipSubtitleBurningChange` | `(skip: boolean) => void` | Callback fired on subtitle toggle |
16
+ | `disabled` | `boolean?` | Disables all controls (default: `false`) |
17
+ | `className` | `string?` | Additional CSS class override |
18
+
19
+ **Duration options:** 60s, 120s, 180s *(recommended)*, 240s, 300s
20
+
21
+ ## Usage Example
22
+
23
+ ```typescript
24
+ import { HighlightConfigSection } from './highlight-config-section';
25
+
26
+ function VideoEditor() {
27
+ const [duration, setDuration] = useState(180);
28
+ const [skipSubs, setSkipSubs] = useState(false);
29
+
30
+ return (
31
+ <HighlightConfigSection
32
+ targetDurationSeconds={duration}
33
+ onTargetDurationChange={setDuration}
34
+ skipSubtitleBurning={skipSubs}
35
+ onSkipSubtitleBurningChange={setSkipSubs}
36
+ disabled={false}
37
+ />
38
+ );
39
+ }
40
+ ```
41
+
42
+ > **Note:** Renders as a dark-themed panel (`bg-[#1a1a1a]`) with a `Select` dropdown for duration and a checkbox for subtitle burning, laid out horizontally via flexbox.
@@ -0,0 +1,46 @@
1
+ <!-- source-hash: 9a48f5db58e0fc209ed8daeba5dd9324 -->
2
+ A reusable React wrapper around `AIEnrichSection` that provides a standardized UI for triggering AI-powered highlight video generation for `CustomerInterview` and `ProductRelease` entities.
3
+
4
+ ## Key Components
5
+
6
+ ### `HighlightGenerationSection`
7
+ The primary export — a thin, opinionated wrapper that pre-configures `AIEnrichSection` with highlight-specific defaults:
8
+
9
+ | Prop | Type | Default |
10
+ |------|------|---------|
11
+ | `onGenerateHighlight` | `() => void` | — |
12
+ | `isProcessing` | `boolean` | — |
13
+ | `canEnrich` | `boolean` | — |
14
+ | `requiredFields` | `AIRequiredField[]` | — |
15
+ | `targetDurationSeconds` | `number` | `180` |
16
+ | `hasResult` | `boolean` | `false` |
17
+ | `disabledMessage` | `string` | `"Upload a video and run transcription first"` |
18
+ | `showCancel` | `boolean` | `true` |
19
+ | `loadingLabel` | `string` | `"Generating highlight..."` |
20
+
21
+ ### `HighlightGenerationSectionProps`
22
+ The exported interface describing all configurable props, including optional overrides for `title`, `description`, `buttonLabel`, and cancellation controls.
23
+
24
+ ## Usage Example
25
+
26
+ ```typescript
27
+ import { HighlightGenerationSection } from './highlight-generation-section';
28
+
29
+ <HighlightGenerationSection
30
+ onGenerateHighlight={handleGenerate}
31
+ isProcessing={isGenerating}
32
+ canEnrich={hasTranscription}
33
+ requiredFields={[
34
+ { label: 'Video Upload', satisfied: hasVideo },
35
+ { label: 'Transcription', satisfied: hasTranscription },
36
+ ]}
37
+ hasResult={!!highlightUrl}
38
+ targetDurationSeconds={120}
39
+ onCancel={handleCancel}
40
+ isCancelling={isCancelling}
41
+ status={status}
42
+ statusMessage={statusMessage}
43
+ />
44
+ ```
45
+
46
+ > **Note:** Pair this component with `HighlightConfigSection` for the full highlight generation experience. The button label automatically switches between `"Generate Highlight"` and `"Regenerate Highlight"` based on the `hasResult` prop.
@@ -0,0 +1,47 @@
1
+ <!-- source-hash: 396284dd8be1b09a6ecb781dd4fed0ce -->
2
+ Unified React component that combines highlight video configuration, AI-powered generation, and video preview/upload into a single composable section used across multiple modal contexts.
3
+
4
+ ## Key Components
5
+
6
+ ### `HighlightVideoCombinedSection`
7
+ The primary export. Renders three sequential sub-sections:
8
+ 1. **`HighlightConfigSection`** — Duration and subtitle burning settings
9
+ 2. **`AIEnrichSection`** — AI generation trigger with status feedback and cancel support
10
+ 3. **Preview + Upload** — Inline video preview with manual upload fallback
11
+
12
+ ### `HighlightVideoCombinedSectionProps`
13
+ Full interface grouping props into four logical namespaces:
14
+ - **Config** — `targetDurationSeconds`, `skipSubtitleBurning`, `configDisabled`
15
+ - **Generation** — `onGenerateHighlight`, `isProcessing`, `canEnrich`, `requiredFields`, `status`
16
+ - **Preview** — `highlightVideoUrl`, `highlightVideoThumbnail`, `renderVideoPreview`, `onUpload`, `onDelete`
17
+ - **Common** — `className`, `title`, `description`, `buttonLabel`
18
+
19
+ ## Usage Example
20
+
21
+ ```typescript
22
+ <HighlightVideoCombinedSection
23
+ // Config
24
+ targetDurationSeconds={120}
25
+ onTargetDurationChange={(s) => setDuration(s)}
26
+ skipSubtitleBurning={false}
27
+ onSkipSubtitleBurningChange={(v) => setSkipSubs(v)}
28
+ // Generation
29
+ onGenerateHighlight={handleGenerate}
30
+ isProcessing={isGenerating}
31
+ canEnrich={hasTranscript}
32
+ requiredFields={[{ key: 'transcript', label: 'Transcription' }]}
33
+ status={jobStatus}
34
+ statusMessage={jobMessage}
35
+ onCancel={handleCancel}
36
+ hasResult={!!highlightUrl}
37
+ // Preview
38
+ highlightVideoUrl={highlightUrl}
39
+ onUpload={async (file) => await uploadFile(file)}
40
+ onDelete={async () => await deleteHighlight()}
41
+ renderVideoPreview={({ videoUrl, title, thumbnailUrl, onDelete }) => (
42
+ <VideoPlayer url={videoUrl} thumbnail={thumbnailUrl} onDelete={onDelete} />
43
+ )}
44
+ />
45
+ ```
46
+
47
+ > **Note:** `renderVideoPreview` uses a render-prop pattern, keeping the component decoupled from any specific video player implementation. The manual upload uses a hidden `<input type="file">` created programmatically to avoid controlled input complexity.
@@ -0,0 +1,44 @@
1
+ <!-- source-hash: 9c2fe27cb025dab5e630418cc7b208a0 -->
2
+ Reusable React component for displaying and managing highlight video previews with support for manual upload, AI-generated badges, and duration display.
3
+
4
+ ## Key Components
5
+
6
+ ### `HighlightVideoPreviewProps`
7
+ | Prop | Type | Description |
8
+ |------|------|-------------|
9
+ | `highlightVideoUrl` | `string \| null` | URL of the highlight video |
10
+ | `highlightVideoThumbnail` | `string \| null` | Thumbnail image URL |
11
+ | `highlightVideoDurationMs` | `number \| null` | Duration in milliseconds |
12
+ | `highlightVideoSource` | `'manual' \| 'ai_generated' \| null` | Video origin, shows AI badge if `ai_generated` |
13
+ | `onUpload` | `(file: File) => Promise<string>` | File upload handler |
14
+ | `onDelete` | `() => Promise<void>` | Delete handler |
15
+ | `renderVideoPreview` | `(props) => ReactNode` | Render prop for custom video player |
16
+ | `uploadProgressComponent` | `ReactNode` | Optional upload progress UI |
17
+
18
+ ### `HighlightVideoPreview`
19
+ Main exported component rendering the label row, badges, upload button, and delegating video display to the `renderVideoPreview` render prop.
20
+
21
+ ## Usage Example
22
+
23
+ ```typescript
24
+ import { HighlightVideoPreview } from './highlight-video-preview';
25
+
26
+ <HighlightVideoPreview
27
+ highlightVideoUrl="https://cdn.example.com/video.mp4"
28
+ highlightVideoThumbnail="https://cdn.example.com/thumb.jpg"
29
+ highlightVideoDurationMs={125000}
30
+ highlightVideoSource="ai_generated"
31
+ onUpload={async (file) => {
32
+ const url = await uploadToStorage(file);
33
+ return url;
34
+ }}
35
+ onDelete={async () => {
36
+ await deleteVideo();
37
+ }}
38
+ renderVideoPreview={({ videoUrl, thumbnailUrl, onDelete }) => (
39
+ <VideoPlayer src={videoUrl} poster={thumbnailUrl} onDelete={onDelete} />
40
+ )}
41
+ />
42
+ ```
43
+
44
+ > **Note:** This component is designed for both `CustomerInterview` and `ProductRelease` entities, providing a consistent highlight video UI across the platform. The `renderVideoPreview` render prop keeps the video player implementation decoupled.