@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
@@ -1,72 +1,42 @@
1
- <!-- source-hash: b7543d98f2f184984a3640db3aa7830d -->
2
- A React component that renders individual comment cards with user information, vendor details, and interactive features like deletion. The component adapts its layout and functionality based on context (profile vs vendor views).
1
+ <!-- source-hash: 0b18246ba972b704769b5c9382e327c6 -->
2
+ Renders a styled card for displaying a user comment, supporting both vendor-context (showing the commenter's identity) and profile-context (showing the associated vendor) views with optional delete functionality.
3
3
 
4
4
  ## Key Components
5
5
 
6
- **Main Component:**
7
- - `CommentCard` - Primary comment display component with responsive layout
6
+ ### `CommentCard`
7
+ The primary exported component accepting a `CommentCardProps` object.
8
8
 
9
- **Key Features:**
10
- - **Dual Context Support** - Renders differently for 'profile' and 'vendor' contexts
11
- - **User Authentication** - Integrates with auth system for deletion permissions
12
- - **Responsive Design** - Adapts layout for different screen sizes with breakpoints
13
- - **Interactive Elements** - Delete button with permission checks
14
- - **Content Overflow Handling** - Text truncation and word breaking for long content
9
+ **Props:**
15
10
 
16
- **Props Interface:**
17
- - `comment` - Comment data including content, metadata, and user/vendor info
18
- - `onViewProduct` - Callback for vendor product navigation
19
- - `onDeleteComment` - Callback for comment deletion
20
- - `showVendorInfo` - Toggle for vendor information display
21
- - `compact` - Compact mode for reduced spacing
22
- - `context` - Context mode ('profile' | 'vendor') affecting layout
11
+ | Prop | Type | Description |
12
+ |------|------|-------------|
13
+ | `comment` | `object` | Comment data including content, metadata, and optional vendor/user info |
14
+ | `onViewProduct` | `(vendorSlug: string) => void` | Callback when vendor button is clicked |
15
+ | `onDeleteComment` | `(commentId: string) => void` | Callback when delete button is clicked |
16
+ | `showVendorInfo` | `boolean` | Whether to display vendor information (default: `true`) |
17
+ | `compact` | `boolean` | Reduces content area height (default: `false`) |
18
+ | `context` | `'profile' \| 'vendor'` | Controls header layout — vendor button or user summary |
19
+
20
+ ### Delete Authorization Logic (`canUserDeleteComment`)
21
+ Context-aware check: in `profile` context, relies on `comment.canDelete`; in `vendor` context, compares `currentUser.id` against `comment.user.id`.
23
22
 
24
23
  ## Usage Example
25
24
 
26
25
  ```typescript
27
- import { CommentCard } from './comment-card'
28
-
29
- function CommentList() {
30
- const handleDeleteComment = (commentId: string) => {
31
- // Delete comment logic
32
- console.log('Deleting comment:', commentId)
33
- }
34
-
35
- const handleViewProduct = (vendorSlug: string) => {
36
- // Navigate to product page
37
- router.push(`/vendor/${vendorSlug}`)
38
- }
39
-
40
- return (
41
- <div className="space-y-4">
42
- <CommentCard
43
- comment={{
44
- id: "comment-1",
45
- content: "This tool has been incredibly helpful for our MSP operations.",
46
- title: "Great automation features",
47
- type: "pro",
48
- importance: "Important",
49
- createdAt: "2024-01-15T10:30:00Z",
50
- vendor: {
51
- id: 1,
52
- title: "ConnectWise",
53
- slug: "connectwise",
54
- logo: "/logos/connectwise.png"
55
- },
56
- user: {
57
- id: "user-123",
58
- name: "John Doe",
59
- profilePicture: "/avatars/john.jpg"
60
- },
61
- canDelete: true
62
- }}
63
- context="profile"
64
- onDeleteComment={handleDeleteComment}
65
- onViewProduct={handleViewProduct}
66
- showVendorInfo={true}
67
- compact={false}
68
- />
69
- </div>
70
- )
71
- }
26
+ <CommentCard
27
+ comment={{
28
+ id: "abc123",
29
+ content: "Excellent ticketing integration with our existing stack.",
30
+ title: "Great RMM Tool",
31
+ type: "pro",
32
+ importance: "Critical",
33
+ createdAt: "2024-11-01T10:00:00Z",
34
+ vendor: { id: 1, title: "NinjaRMM", slug: "ninjarmm", logo: "/logos/ninja.png" },
35
+ canDelete: true,
36
+ }}
37
+ context="profile"
38
+ onViewProduct={(slug) => router.push(`/vendors/${slug}`)}
39
+ onDeleteComment={(id) => handleDelete(id)}
40
+ compact={false}
41
+ />
72
42
  ```
@@ -1,21 +1,24 @@
1
- <!-- source-hash: e422538f37348d581f42222f2cae8228 -->
2
- A comprehensive dialog component system built with React and TypeScript that provides a complete modal dialog implementation with overlay, content positioning, and accessibility features.
1
+ <!-- source-hash: f32246d114b706570b821cefac3455d9 -->
2
+ A custom client-side Dialog component system built without external libraries, providing a controlled modal overlay with backdrop blur, centered content panel, and composable sub-components.
3
3
 
4
4
  ## Key Components
5
5
 
6
- - **Dialog** - Main container component that manages open/closed state with backdrop
7
- - **DialogContent** - Centered modal content with built-in close button and click-outside handling
8
- - **DialogTrigger** - Button component for opening dialogs
9
- - **DialogClose** - Button component for closing dialogs
10
- - **DialogOverlay** - Backdrop overlay with blur effect
11
- - **DialogPortal** - Portal wrapper for rendering outside component tree
12
- - **DialogHeader/Footer** - Layout components for dialog structure
13
- - **DialogTitle/Description** - Text components with semantic styling
6
+ | Component | Description |
7
+ |-----------|-------------|
8
+ | `Dialog` | Root container; renders a full-screen backdrop when `open` is `true`, closes on overlay click |
9
+ | `DialogTrigger` | Button wrapper to programmatically open the dialog |
10
+ | `DialogPortal` | Passthrough wrapper for portaling children (inline, no actual portal) |
11
+ | `DialogOverlay` | Standalone backdrop overlay with blur effect |
12
+ | `DialogClose` | Generic close button element |
13
+ | `DialogContent` | Centered modal panel (`z-[10000]`) with built-in close (`X`) icon button and click-stop propagation |
14
+ | `DialogHeader` | Flex column layout for title/description grouping |
15
+ | `DialogFooter` | Responsive footer with reversed column on mobile, row on desktop |
16
+ | `DialogTitle` | Styled `<h2>` for the modal heading |
17
+ | `DialogDescription` | Styled `<p>` for supporting modal text |
14
18
 
15
19
  ## Usage Example
16
20
 
17
21
  ```typescript
18
- import { useState } from 'react'
19
22
  import {
20
23
  Dialog,
21
24
  DialogContent,
@@ -23,21 +26,20 @@ import {
23
26
  DialogTitle,
24
27
  DialogDescription,
25
28
  DialogFooter,
26
- DialogClose,
27
- DialogTrigger
28
- } from './dialog'
29
+ DialogTrigger,
30
+ } from "./dialog"
29
31
 
30
- function MyComponent() {
31
- const [isOpen, setIsOpen] = useState(false)
32
+ export function ConfirmModal() {
33
+ const [open, setOpen] = React.useState(false)
32
34
 
33
35
  return (
34
36
  <>
35
- <DialogTrigger onClick={() => setIsOpen(true)}>
36
- Open Dialog
37
+ <DialogTrigger onClick={() => setOpen(true)}>
38
+ Open Modal
37
39
  </DialogTrigger>
38
-
39
- <Dialog open={isOpen} onOpenChange={setIsOpen}>
40
- <DialogContent onCloseClick={() => setIsOpen(false)}>
40
+
41
+ <Dialog open={open} onOpenChange={setOpen}>
42
+ <DialogContent onCloseClick={() => setOpen(false)}>
41
43
  <DialogHeader>
42
44
  <DialogTitle>Confirm Action</DialogTitle>
43
45
  <DialogDescription>
@@ -45,10 +47,8 @@ function MyComponent() {
45
47
  </DialogDescription>
46
48
  </DialogHeader>
47
49
  <DialogFooter>
48
- <DialogClose onClick={() => setIsOpen(false)}>
49
- Cancel
50
- </DialogClose>
51
- <button>Confirm</button>
50
+ <button onClick={() => setOpen(false)}>Cancel</button>
51
+ <button onClick={() => setOpen(false)}>Confirm</button>
52
52
  </DialogFooter>
53
53
  </DialogContent>
54
54
  </Dialog>
@@ -57,4 +57,4 @@ function MyComponent() {
57
57
  }
58
58
  ```
59
59
 
60
- The component features a high z-index (9999-10000), click-outside-to-close behavior, and includes debug console logging for development.
60
+ > **Note:** `DialogContent` uses `onCloseClick` (not the standard `onClose`) for the built-in `X` button handler. Backdrop clicks are handled by the root `Dialog` via `onOpenChange`.
@@ -1,71 +1,68 @@
1
- <!-- source-hash: 10582d699bc264129f2c50203b2fd4ba -->
2
- A comprehensive skeleton loading component system that provides platform-aware, themed loading states with multiple animation types and pre-configured patterns for common UI elements.
1
+ <!-- source-hash: 32b3dcc2ebc428837937e7dda53de3ce -->
2
+ A theme-aware, platform-adaptive skeleton loading component that provides multiple animation styles, content-type variants, and pre-configured layout presets for common UI patterns.
3
3
 
4
4
  ## Key Components
5
5
 
6
- - **DynamicSkeleton** - Main skeleton component with customizable animations (pulse, shimmer, wave), variants (text, avatar, card, button, image), and platform-aware styling
7
- - **SkeletonPresets** - Pre-built skeleton configurations for common patterns (Card, Profile, Navigation, Table, VendorGrid, BlogPost)
8
- - **PlatformSkeletonContainer** - Conditional wrapper that shows skeleton during loading state
9
- - **ProgressiveSkeleton** - Multi-stage skeleton that becomes more detailed as loading progresses
6
+ ### `DynamicSkeleton`
7
+ Core skeleton element supporting configurable animation, variant, size, and dimensions with built-in accessibility (`role="status"`, `aria-label`) and multi-line text support.
8
+
9
+ **Props:**
10
+
11
+ | Prop | Type | Default | Description |
12
+ |------|------|---------|-------------|
13
+ | `animation` | `pulse \| shimmer \| wave \| static` | `shimmer` | Skeleton animation style |
14
+ | `variant` | `text \| avatar \| card \| button \| image \| custom` | `text` | Content type shape |
15
+ | `size` | `sm \| md \| lg \| xl` | `md` | Dimension preset |
16
+ | `width` / `height` | `string \| number` | — | Custom dimensions |
17
+ | `lines` | `number` | `1` | Lines for text skeletons (last line renders at 75% width) |
18
+ | `platformAware` | `boolean` | `true` | Applies platform-specific color mixing via CSS vars |
19
+ | `includeAriaLabel` | `boolean` | `true` | Adds `aria-label="Loading content..."` |
20
+
21
+ ### `SkeletonPresets`
22
+ Pre-built composite skeletons for common layouts:
23
+
24
+ | Preset | Props | Description |
25
+ |--------|-------|-------------|
26
+ | `Card` | `showActions`, `showImage` | Card with header, body, and optional actions |
27
+ | `Profile` | — | Avatar + name + bio lines |
28
+ | `Navigation` | `items` | Repeated icon + label rows |
29
+ | `Table` | `rows`, `columns` | Grid-based header and data rows |
30
+ | `VendorGrid` | `items` | Responsive 3-column vendor cards |
31
+ | `BlogPost` | — | Title, metadata, hero image, paragraphs |
32
+
33
+ ### `PlatformSkeletonContainer`
34
+ Conditional wrapper that renders content when `isLoading` is `false`, or a named `SkeletonPresets` component when loading.
35
+
36
+ ### `ProgressiveSkeleton`
37
+ Multi-stage skeleton that transitions through `pulse → shimmer → wave` animations and `text → card → custom` variants as `currentStage` increments.
10
38
 
11
39
  ## Usage Example
12
40
 
13
41
  ```typescript
14
- import { DynamicSkeleton, SkeletonPresets, PlatformSkeletonContainer } from './dynamic-skeleton';
42
+ // Basic skeleton
43
+ <DynamicSkeleton variant="avatar" size="lg" />
15
44
 
16
- // Basic skeleton with shimmer animation
17
- function LoadingText() {
18
- return (
19
- <DynamicSkeleton
20
- variant="text"
21
- animation="shimmer"
22
- lines={3}
23
- size="md"
24
- />
25
- );
26
- }
45
+ // Multi-line text skeleton
46
+ <DynamicSkeleton variant="text" lines={3} size="md" animation="shimmer" />
27
47
 
28
- // Platform-aware card skeleton
29
- function LoadingCard() {
30
- return (
31
- <DynamicSkeleton
32
- variant="card"
33
- width="100%"
34
- height="200px"
35
- platformAware={true}
36
- includeAriaLabel={true}
37
- />
38
- );
39
- }
48
+ // Custom dimensions
49
+ <DynamicSkeleton variant="image" width={400} height={200} />
40
50
 
41
- // Pre-configured vendor grid
42
- function LoadingVendors() {
43
- return <SkeletonPresets.VendorGrid items={6} />;
44
- }
51
+ // Preset: vendor grid
52
+ <SkeletonPresets.VendorGrid items={9} />
45
53
 
46
54
  // Conditional loading wrapper
47
- function DataContainer({ isLoading, children }) {
48
- return (
49
- <PlatformSkeletonContainer
50
- isLoading={isLoading}
51
- skeletonType="Profile"
52
- >
53
- {children}
54
- </PlatformSkeletonContainer>
55
- );
56
- }
55
+ <PlatformSkeletonContainer
56
+ isLoading={isLoading}
57
+ skeletonType="Profile"
58
+ >
59
+ <UserProfile user={user} />
60
+ </PlatformSkeletonContainer>
57
61
 
58
62
  // Progressive loading stages
59
- function ProgressiveLoader({ loadingStage }) {
60
- return (
61
- <ProgressiveSkeleton
62
- currentStage={loadingStage}
63
- stages={['basic', 'detailed', 'interactive']}
64
- variant="card"
65
- size="lg"
66
- />
67
- );
68
- }
69
- ```
70
-
71
- The component integrates with the theme system to provide consistent styling across different platforms and supports accessibility features with proper ARIA labels and semantic HTML structure.
63
+ <ProgressiveSkeleton
64
+ stages={['basic', 'detailed', 'interactive']}
65
+ currentStage={loadingStage}
66
+ size="lg"
67
+ />
68
+ ```
@@ -1,61 +1,52 @@
1
- <!-- source-hash: 752cfd7c91c54af0e2d9145803566dd6 -->
2
- A reusable React component that displays contextual empty states for different content types (vendors, posts, search results) with smart call-to-action buttons and customizable messaging.
1
+ <!-- source-hash: 50c4ce7ece14f33f4a6cb6591ed66364 -->
2
+ A reusable React client component that renders context-aware empty state UI for vendors, posts, search results, or generic scenarios — with smart CTA logic that adapts based on the current URL path.
3
3
 
4
4
  ## Key Components
5
5
 
6
- ### EmptyStateProps Interface
7
- - **type**: Determines the empty state variant (`'vendors' | 'posts' | 'search' | 'generic'`)
8
- - **title/description**: Optional custom content overrides
9
- - **showBackButton**: Toggle for back navigation functionality
10
- - **showCTA**: Toggle for call-to-action button display
11
- - **ctaText/onCtaClick**: Custom CTA configuration
12
- - **ctaVariant**: Button styling variant (`'primary' | 'secondary'`)
6
+ ### `EmptyStateProps` Interface
13
7
 
14
- ### EmptyState Component
15
- - **getDefaultContent()**: Returns type-specific icons, titles, and descriptions
16
- - **getSmartCTA()**: Generates contextual call-to-action buttons based on current route and type
17
- - **Smart Navigation**: Automatically handles URL parameter clearing and route-based actions
8
+ | Prop | Type | Default | Description |
9
+ |------|------|---------|-------------|
10
+ | `type` | `'vendors' \| 'posts' \| 'search' \| 'generic'` | required | Determines default icon, title, and description |
11
+ | `title` | `string` | — | Overrides default title |
12
+ | `description` | `string` | — | Overrides default description |
13
+ | `showBackButton` | `boolean` | `false` | Renders an optional back button |
14
+ | `onGoBack` | `() => void` | — | Handler for the back button |
15
+ | `backButtonText` | `string` | `"Go Back"` | Back button label |
16
+ | `showCTA` | `boolean` | `true` | Toggles the smart CTA button |
17
+ | `ctaText` | `string` | — | Overrides smart CTA label |
18
+ | `onCtaClick` | `() => void` | — | Overrides smart CTA action |
19
+ | `ctaVariant` | `'primary' \| 'secondary'` | `'primary'` | CTA button styling |
20
+
21
+ ### Internal Helpers
22
+
23
+ - **`getDefaultContent()`** — Returns icon, title, and description based on `type`
24
+ - **`getSmartCTA()`** — Derives CTA label and action from `type` + current pathname (e.g., resets filters on `/vendors` or `/blog`, navigates to `/vendors` from `/profile`)
18
25
 
19
26
  ## Usage Example
20
27
 
21
28
  ```typescript
22
- import { EmptyState } from './empty-state'
23
-
24
- // Basic vendor empty state with smart CTA
25
- function VendorList() {
26
- return (
27
- <EmptyState
28
- type="vendors"
29
- />
30
- )
31
- }
32
-
33
- // Custom search empty state with back button
34
- function SearchResults() {
35
- return (
36
- <EmptyState
37
- type="search"
38
- title="No matching results"
39
- description="Try different keywords or check your spelling"
40
- showBackButton={true}
41
- onGoBack={() => router.back()}
42
- ctaText="Clear Filters"
43
- onCtaClick={() => clearSearchFilters()}
44
- />
45
- )
46
- }
47
-
48
- // Generic empty state with custom CTA
49
- function CustomContent() {
50
- return (
51
- <EmptyState
52
- type="generic"
53
- showCTA={true}
54
- ctaVariant="secondary"
55
- onCtaClick={() => handleCustomAction()}
56
- />
57
- )
58
- }
29
+ // Basic usage
30
+ <EmptyState type="vendors" />
31
+
32
+ // Search with custom CTA
33
+ <EmptyState
34
+ type="search"
35
+ title="No results"
36
+ description="Try different keywords."
37
+ ctaText="Clear Search"
38
+ onCtaClick={() => setQuery('')}
39
+ ctaVariant="secondary"
40
+ />
41
+
42
+ // With back button, no CTA
43
+ <EmptyState
44
+ type="posts"
45
+ showCTA={false}
46
+ showBackButton={true}
47
+ onGoBack={() => router.back()}
48
+ backButtonText="Return to Feed"
49
+ />
59
50
  ```
60
51
 
61
- The component automatically adapts its messaging and actions based on the current page context, providing relevant navigation options like "Reset Filters" on search pages or "Browse Vendors" on profile pages.
52
+ > **Smart CTA behavior:** When no `ctaText`/`onCtaClick` is provided, the component inspects `window.location.pathname` to decide whether to reset URL filters or navigate to `/vendors` or `/blog`.
@@ -1,42 +1,48 @@
1
- <!-- source-hash: 5a3bed11c9b0686b28fc7626e02b503e -->
2
- A React FAQ accordion component with smooth animations and keyboard accessibility, featuring expandable/collapsible sections with height transitions.
1
+ <!-- source-hash: 287c2bd98ac7a3ef2c0c3e9abfc07ed3 -->
2
+ Accessible, animated FAQ accordion component that renders a list of question/answer pairs with smooth height transitions and keyboard navigation support.
3
3
 
4
4
  ## Key Components
5
5
 
6
- - **`FaqItem`** - Interface defining FAQ structure with id, question, and answer
7
- - **`FaqAccordion`** - Main accordion component with toggle functionality
8
- - **`useMeasuredHeight`** - Custom hook for measuring and animating content height
9
- - **`toggle`** - Function to handle expanding/collapsing individual FAQ items
6
+ ### Interfaces
7
+ - **`FaqItem`** — Data shape for each FAQ entry (`id`, `question`, `answer`)
8
+ - **`FaqAccordionProps`** — Component props accepting `items` array and optional `defaultOpenIds` for pre-expanded panels
9
+
10
+ ### Hooks
11
+ - **`useMeasuredHeight(isOpen)`** — Internal hook that measures `scrollHeight` outside the render cycle to drive CSS `max-height` animations; returns `ref` and `maxHeight` string
12
+
13
+ ### Component
14
+ - **`FaqAccordion`** — Main export; manages a `Set`-based open/close state, renders each item with animated expansion, `aria-expanded` attribute, and keyboard (`Enter`/`Space`) support
10
15
 
11
16
  ## Usage Example
12
17
 
13
18
  ```typescript
14
19
  import { FaqAccordion, FaqItem } from './faq-accordion'
15
20
 
16
- const faqData: FaqItem[] = [
21
+ const faqs: FaqItem[] = [
17
22
  {
18
23
  id: 1,
19
- question: "What is OpenFrame?",
20
- answer: "OpenFrame is a decentralized platform for creative applications."
24
+ question: 'What is Flamingo?',
25
+ answer: 'Flamingo is an AI-powered MSP platform that replaces expensive proprietary software.',
21
26
  },
22
27
  {
23
28
  id: 2,
24
- question: "How do I get started?",
25
- answer: "You can start by installing the OpenFrame client and creating your first frame."
26
- }
29
+ question: 'What is OpenFrame?',
30
+ answer: 'OpenFrame is a unified platform integrating multiple MSP tools into a single AI-driven interface.',
31
+ },
27
32
  ]
28
33
 
29
- export default function HelpPage() {
34
+ export default function FaqPage() {
30
35
  return (
31
- <div className="max-w-4xl mx-auto p-6">
32
- <h1 className="text-3xl font-bold mb-8">Frequently Asked Questions</h1>
33
- <FaqAccordion
34
- items={faqData}
35
- defaultOpenIds={[1]} // First item open by default
36
- />
37
- </div>
36
+ <FaqAccordion
37
+ items={faqs}
38
+ defaultOpenIds={[1]} // First item open by default
39
+ />
38
40
  )
39
41
  }
40
42
  ```
41
43
 
42
- The component uses a `Set` for tracking open items, supports keyboard navigation (Enter/Space), and includes smooth height animations with opacity transitions. The `useMeasuredHeight` hook efficiently measures content height only when needed to enable smooth expand/collapse animations.
44
+ ## Notes
45
+
46
+ - Multiple panels can be open simultaneously
47
+ - Height animation uses a measured `scrollHeight` approach rather than fixed values, so dynamic content is handled correctly
48
+ - Fully keyboard accessible via `role="button"`, `tabIndex`, and `onKeyDown` handlers
@@ -1,39 +1,56 @@
1
- <!-- source-hash: 4174ee7f3ac49529233a0c26fda153e7 -->
2
- A unified React component for displaying interactive filter chips with consistent styling and multiple variants across the Flamingo platform. Supports selection states, removal functionality, and accessibility features with dark theme optimization.
1
+ <!-- source-hash: fe89e2561aca7887d4e55361b739f66e -->
2
+ Reusable pill-shaped filter chip component for displaying and managing active filters, category tags, and selection states across the UI.
3
3
 
4
4
  ## Key Components
5
5
 
6
- - **FilterChipProps** - Comprehensive interface supporting multiple variants (selected, unselected, category, subcategory, tag, info)
7
- - **FilterChip** - Main component with hover effects, focus management, and responsive sizing
8
- - **Variant System** - Six predefined styles with subtle border color differences for hierarchy
9
- - **Accessibility Features** - ARIA attributes, keyboard navigation, and screen reader support
6
+ ### `FilterChip`
7
+ The sole export — a styled, accessible chip element built with Tailwind CSS classes via `cn`.
8
+
9
+ ### `FilterChipProps`
10
+
11
+ | Prop | Type | Default | Description |
12
+ |------|------|---------|-------------|
13
+ | `id` | `string` | — | Unique identifier |
14
+ | `label` | `string` | — | Display text (truncated with tooltip) |
15
+ | `variant` | `'selected' \| 'unselected' \| 'category' \| 'subcategory' \| 'tag' \| 'info'` | `'unselected'` | Visual style preset |
16
+ | `size` | `'sm' \| 'md'` | `'md'` | Controls padding and text sizing |
17
+ | `removable` | `boolean` | `false` | Shows an `×` remove button when `true` |
18
+ | `onRemove` | `() => void` | — | Callback fired when remove button is clicked |
19
+ | `onClick` | `() => void` | — | Makes the chip interactive as a toggle button |
20
+ | `disabled` | `boolean` | `false` | Dims chip and disables all interactions |
21
+ | `className` | `string` | — | Additional Tailwind classes |
22
+
23
+ **Variants summary:**
24
+ - `selected` / `category` / `subcategory` / `tag` — yellow (`#FFC008`) border at varying opacities for hierarchy
25
+ - `unselected` — neutral dark border
26
+ - `info` — static display only, hover/scale effects disabled
10
27
 
11
28
  ## Usage Example
12
29
 
13
30
  ```typescript
14
- import { FilterChip } from './filter-chip'
15
-
16
- // Basic usage with click handler
31
+ // Basic selectable filter
17
32
  <FilterChip
18
- id="tech-filter"
19
- label="Technology"
33
+ id="status-active"
34
+ label="Active"
20
35
  variant="selected"
21
- onClick={() => console.log('Filter clicked')}
36
+ onClick={() => toggleFilter('active')}
22
37
  />
23
38
 
24
- // Removable filter chip
39
+ // Removable tag chip
25
40
  <FilterChip
26
- id="category-chip"
27
- label="Security"
28
- variant="category"
41
+ id="tag-windows"
42
+ label="Windows"
43
+ variant="tag"
29
44
  removable
30
- onRemove={() => removeFilter('security')}
45
+ onRemove={() => removeTag('windows')}
31
46
  />
32
47
 
33
- // Different variants for hierarchical filtering
34
- <FilterChip id="cat" label="Networking" variant="category" />
35
- <FilterChip id="sub" label="DNS" variant="subcategory" />
36
- <FilterChip id="tag" label="troubleshooting" variant="tag" size="sm" />
37
- ```
38
-
39
- The component uses Flamingo's design system with `#FFC008` accent color and responsive breakpoints for optimal mobile/desktop experience. All variants maintain consistent backgrounds while varying border opacity for visual hierarchy.
48
+ // Small category chip (disabled)
49
+ <FilterChip
50
+ id="cat-networking"
51
+ label="Networking"
52
+ variant="category"
53
+ size="sm"
54
+ disabled
55
+ />
56
+ ```
@@ -1,35 +1,32 @@
1
- <!-- source-hash: aa57675ccada693fa68db3d957dfd4ca -->
2
- A React SVG component that renders the Flamingo logo with customizable styling properties.
1
+ <!-- source-hash: 36bcab31fa5bcda7078052eae1d8dda1 -->
2
+ SVG React component that renders the Flamingo brand logo, accepting configurable size, color, and standard SVG props.
3
3
 
4
4
  ## Key Components
5
5
 
6
- - **FlamingoLogo**: Main functional component that renders an SVG flamingo logo
7
- - **FlamingoLogoProps**: TypeScript interface extending SVG props with custom properties:
8
- - `className` - CSS classes for styling
9
- - `size` - Logo dimensions (default: 120px)
10
- - `color` - Fill color (default: CSS variable `--ods-flamingo-pink-base`)
6
+ ### `FlamingoLogo`
7
+ A named export functional component with the following props:
8
+
9
+ | Prop | Type | Default | Description |
10
+ |------|------|---------|-------------|
11
+ | `size` | `number` | `120` | Width and height of the SVG in pixels |
12
+ | `color` | `string` | `var(--ods-flamingo-pink-base)` | Fill color for the logo path |
13
+ | `className` | `string` | `''` | Additional CSS class names |
14
+ | `...props` | `React.SVGProps<SVGSVGElement>` | — | Any valid SVG element props |
11
15
 
12
16
  ## Usage Example
13
17
 
14
18
  ```typescript
15
19
  import { FlamingoLogo } from './flamingo-logo';
16
20
 
17
- // Basic usage with defaults
21
+ // Default usage
18
22
  <FlamingoLogo />
19
23
 
20
24
  // Custom size and color
21
- <FlamingoLogo
22
- size={80}
23
- color="#ff6b9d"
24
- className="my-logo-class"
25
- />
26
-
27
- // With additional SVG props
28
- <FlamingoLogo
29
- size={150}
30
- onClick={() => console.log('Logo clicked')}
31
- aria-label="Flamingo Documentation Logo"
32
- />
33
- ```
34
-
35
- The component uses `React.useId()` for unique identifier generation and spreads additional props to the underlying SVG element. The logo maintains its aspect ratio and uses a fixed viewBox while allowing size customization through the `size` prop that controls both width and height.
25
+ <FlamingoLogo size={48} color="#FFC008" />
26
+
27
+ // With className for Tailwind/CSS overrides
28
+ <FlamingoLogo className="opacity-80 hover:opacity-100" size={32} />
29
+
30
+ // Override to white for dark backgrounds
31
+ <FlamingoLogo color="#FFFFFF" size={64} />
32
+ ```