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

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (746) hide show
  1. package/dist/{chunk-35XIT2CF.cjs → chunk-2G3NXF6J.cjs} +17 -17
  2. package/dist/{chunk-35XIT2CF.cjs.map → chunk-2G3NXF6J.cjs.map} +1 -1
  3. package/dist/{chunk-IK2X5YJU.js → chunk-7PCP7YQR.js} +2 -2
  4. package/dist/{chunk-ZDF6F7ED.cjs → chunk-D4MNFY67.cjs} +4 -3
  5. package/dist/chunk-D4MNFY67.cjs.map +1 -0
  6. package/dist/{chunk-OTKJASSX.cjs → chunk-NGFP4RVL.cjs} +24 -24
  7. package/dist/{chunk-OTKJASSX.cjs.map → chunk-NGFP4RVL.cjs.map} +1 -1
  8. package/dist/{chunk-3JWIJJ44.js → chunk-R6MLPU4A.js} +2 -2
  9. package/dist/{chunk-ZTJVRSN5.js → chunk-WQZP3JIZ.js} +4 -3
  10. package/dist/chunk-WQZP3JIZ.js.map +1 -0
  11. package/dist/components/chat/index.cjs +2 -2
  12. package/dist/components/chat/index.js +1 -1
  13. package/dist/components/contact/index.cjs +3 -3
  14. package/dist/components/contact/index.js +2 -2
  15. package/dist/components/features/index.cjs +2 -2
  16. package/dist/components/features/index.js +1 -1
  17. package/dist/components/index.cjs +49 -49
  18. package/dist/components/index.js +2 -2
  19. package/dist/components/navigation/index.cjs +2 -2
  20. package/dist/components/navigation/index.js +1 -1
  21. package/dist/components/tickets/index.cjs +61 -61
  22. package/dist/components/tickets/index.js +3 -3
  23. package/dist/components/ui/index.cjs +2 -2
  24. package/dist/components/ui/index.js +1 -1
  25. package/dist/index.cjs +2 -2
  26. package/dist/index.js +1 -1
  27. package/package.json +1 -1
  28. package/src/.index.md +36 -34
  29. package/src/components/.alert-dialog.md +27 -23
  30. package/src/components/.announcement-bar.md +26 -21
  31. package/src/components/.breadcrumb.md +19 -15
  32. package/src/components/.calendar.md +24 -19
  33. package/src/components/.categories-cart.md +29 -24
  34. package/src/components/.checkbox.md +23 -25
  35. package/src/components/.chevron-button.md +37 -32
  36. package/src/components/.comment-card.md +32 -62
  37. package/src/components/.dialog.md +26 -26
  38. package/src/components/.dynamic-skeleton.md +54 -57
  39. package/src/components/.empty-state.md +42 -51
  40. package/src/components/.faq-accordion.md +27 -21
  41. package/src/components/.filter-chip.md +41 -24
  42. package/src/components/.flamingo-logo.md +20 -23
  43. package/src/components/.footer-waitlist-button.md +29 -22
  44. package/src/components/.footer.md +32 -32
  45. package/src/components/.icons-block.md +27 -17
  46. package/src/components/.image-cropper.md +41 -32
  47. package/src/components/.index.md +33 -39
  48. package/src/components/.input.md +31 -35
  49. package/src/components/.logs-list.md +31 -20
  50. package/src/components/.media-carousel.md +35 -36
  51. package/src/components/.open-source-features.md +33 -16
  52. package/src/components/.pagination.md +52 -51
  53. package/src/components/.provider-button.md +21 -23
  54. package/src/components/.select.md +31 -20
  55. package/src/components/.sidebar.md +34 -24
  56. package/src/components/.smooth-accordion.md +29 -24
  57. package/src/components/.social-icon-row.md +36 -32
  58. package/src/components/.textarea.md +25 -31
  59. package/src/components/.tool-icon.md +24 -26
  60. package/src/components/.unified-filter-logic.md +37 -30
  61. package/src/components/.unified-pagination.md +23 -22
  62. package/src/components/.user-summary-stub.md +38 -22
  63. package/src/components/.vendor-display-button.md +25 -25
  64. package/src/components/.vendor-icon.md +33 -25
  65. package/src/components/.why-it-matters.md +28 -25
  66. package/src/components/chat/.approval-batch-message.md +51 -0
  67. package/src/components/chat/.approval-request-message.md +35 -34
  68. package/src/components/chat/.chat-attachment-bar.md +64 -0
  69. package/src/components/chat/.chat-container.md +36 -18
  70. package/src/components/chat/.chat-input.md +37 -20
  71. package/src/components/chat/.chat-message-enhanced.md +30 -49
  72. package/src/components/chat/.chat-message-list.md +45 -32
  73. package/src/components/chat/.chat-message-skeleton.md +26 -22
  74. package/src/components/chat/.chat-panel-context.md +52 -0
  75. package/src/components/chat/.chat-ref.types.md +42 -0
  76. package/src/components/chat/.chat-sidebar-skeleton.md +34 -25
  77. package/src/components/chat/.chat-sidebar.md +31 -26
  78. package/src/components/chat/.chat-ticket-list.md +39 -0
  79. package/src/components/chat/.context-compaction-display.md +36 -0
  80. package/src/components/chat/.cycling-phrase.md +52 -0
  81. package/src/components/chat/.embeddable-chat.md +48 -0
  82. package/src/components/chat/.expand-chevron.md +24 -0
  83. package/src/components/chat/.index.md +31 -35
  84. package/src/components/chat/.mingo-onboarding-card-skeleton.md +44 -0
  85. package/src/components/chat/.mingo-onboarding-card.md +62 -0
  86. package/src/components/chat/.model-display.md +32 -30
  87. package/src/components/chat/.nav-link-anchor-via-runtime.md +40 -0
  88. package/src/components/chat/.remark-card-links.md +38 -0
  89. package/src/components/chat/.slash-command-suggestions.md +47 -0
  90. package/src/components/chat/.source-action-button.md +48 -0
  91. package/src/components/chat/.thinking-display.md +42 -0
  92. package/src/components/chat/.tool-call-blocks.md +45 -0
  93. package/src/components/chat/.tool-execution-display.md +44 -36
  94. package/src/components/chat/chat-container.tsx +1 -1
  95. package/src/components/chat/entity-cards/.admin-content-card.md +43 -0
  96. package/src/components/chat/entity-cards/.block-card.md +47 -0
  97. package/src/components/chat/entity-cards/.blog-card.md +52 -0
  98. package/src/components/chat/entity-cards/.blog-image-placeholder.md +39 -0
  99. package/src/components/chat/entity-cards/.campaign-card-admin.md +47 -0
  100. package/src/components/chat/entity-cards/.case-study-card.md +58 -0
  101. package/src/components/chat/entity-cards/.chat-ticket-item.md +40 -0
  102. package/src/components/chat/entity-cards/.chat-video-entity-card.md +43 -0
  103. package/src/components/chat/entity-cards/.customer-interview-card.md +53 -0
  104. package/src/components/chat/entity-cards/.data-room-doc-card.md +47 -0
  105. package/src/components/chat/entity-cards/.dispatch.md +39 -0
  106. package/src/components/chat/entity-cards/.entity-author-card.md +51 -0
  107. package/src/components/chat/entity-cards/.generic-entity-card.md +62 -0
  108. package/src/components/chat/entity-cards/.github-activity-card.md +61 -0
  109. package/src/components/chat/entity-cards/.hubspot-ticket-card.md +53 -0
  110. package/src/components/chat/entity-cards/.index.md +66 -0
  111. package/src/components/chat/entity-cards/.investor-update-card.md +47 -0
  112. package/src/components/chat/entity-cards/.onboarding-guide-card.md +58 -0
  113. package/src/components/chat/entity-cards/.product-release-card-defaults.md +31 -0
  114. package/src/components/chat/entity-cards/.product-release-card.md +29 -0
  115. package/src/components/chat/entity-cards/.program-card-defaults.md +41 -0
  116. package/src/components/chat/entity-cards/.program-card.md +59 -0
  117. package/src/components/chat/entity-cards/.roadmap-card.md +46 -0
  118. package/src/components/chat/entity-cards/.roadmap-vote-button.md +52 -0
  119. package/src/components/chat/entity-cards/.slack-message-card.md +48 -0
  120. package/src/components/chat/entity-cards/.task-type-icon.md +47 -0
  121. package/src/components/chat/hooks/.index.md +36 -21
  122. package/src/components/chat/hooks/.use-chat-attachment-image-gallery.md +51 -0
  123. package/src/components/chat/hooks/.use-chat-attachments.md +48 -0
  124. package/src/components/chat/hooks/.use-chat-card-item.md +39 -0
  125. package/src/components/chat/hooks/.use-chat-identity.md +45 -0
  126. package/src/components/chat/hooks/.use-chat.md +58 -0
  127. package/src/components/chat/hooks/.use-chunk-catchup.md +46 -48
  128. package/src/components/chat/hooks/.use-close-on-navigation.md +44 -0
  129. package/src/components/chat/hooks/.use-collapsible.md +48 -0
  130. package/src/components/chat/hooks/.use-embedded-chat.md +32 -0
  131. package/src/components/chat/hooks/.use-jetstream-dialog-subscription.md +40 -0
  132. package/src/components/chat/hooks/.use-nats-chat-adapter.md +52 -0
  133. package/src/components/chat/hooks/.use-nats-dialog-subscription.md +49 -30
  134. package/src/components/chat/hooks/.use-proxied-image-url.md +40 -0
  135. package/src/components/chat/hooks/.use-realtime-chunk-processor.md +43 -40
  136. package/src/components/chat/hooks/.use-slash-commands.md +46 -0
  137. package/src/components/chat/hooks/.use-sse-chat-adapter.md +34 -0
  138. package/src/components/chat/hooks/.use-sse.md +60 -0
  139. package/src/components/chat/hooks/.use-unified-chat.md +57 -0
  140. package/src/components/chat/types/.api.types.md +52 -38
  141. package/src/components/chat/types/.chat.types.md +43 -34
  142. package/src/components/chat/types/.component.types.md +47 -48
  143. package/src/components/chat/types/.index.md +20 -27
  144. package/src/components/chat/types/.message.types.md +58 -48
  145. package/src/components/chat/types/.network.types.md +57 -31
  146. package/src/components/chat/types/.processing.types.md +49 -31
  147. package/src/components/chat/types/.unified-chat-state.types.md +41 -0
  148. package/src/components/chat/types/entities/.blog.md +43 -0
  149. package/src/components/chat/types/entities/.case-study.md +26 -0
  150. package/src/components/chat/types/entities/.content-ref.md +41 -0
  151. package/src/components/chat/types/entities/.customer-interview.md +28 -0
  152. package/src/components/chat/types/entities/.data-room-doc.md +36 -0
  153. package/src/components/chat/types/entities/.github-activity.md +43 -0
  154. package/src/components/chat/types/entities/.hubspot-ticket.md +53 -0
  155. package/src/components/chat/types/entities/.index.md +42 -0
  156. package/src/components/chat/types/entities/.investor-update.md +45 -0
  157. package/src/components/chat/types/entities/.onboarding-guide.md +50 -0
  158. package/src/components/chat/types/entities/.program-types.md +57 -0
  159. package/src/components/chat/types/entities/.roadmap-item.md +58 -0
  160. package/src/components/chat/types/entities/.slack-message.md +35 -0
  161. package/src/components/chat/utils/.agent-status-message.md +45 -0
  162. package/src/components/chat/utils/.auto-continuation-directive.md +58 -0
  163. package/src/components/chat/utils/.chat-attachment-markdown.md +54 -0
  164. package/src/components/chat/utils/.chat-authed-fetch.md +25 -0
  165. package/src/components/chat/utils/.chat-nav-resolution.md +46 -0
  166. package/src/components/chat/utils/.chat-proxy-auth-storage.md +38 -0
  167. package/src/components/chat/utils/.chip-action-class.md +34 -0
  168. package/src/components/chat/utils/.chip-styles.md +46 -0
  169. package/src/components/chat/utils/.chunk-parser.md +38 -28
  170. package/src/components/chat/utils/.clickup-task-type-utils.md +48 -0
  171. package/src/components/chat/utils/.compact-card-classes.md +62 -0
  172. package/src/components/chat/utils/.decide-new-tab.md +51 -0
  173. package/src/components/chat/utils/.external-app-urls.md +29 -0
  174. package/src/components/chat/utils/.extract-incomplete-message-state.md +25 -29
  175. package/src/components/chat/utils/.flatten-assistant-content.md +34 -0
  176. package/src/components/chat/utils/.icon-registry.md +46 -0
  177. package/src/components/chat/utils/.index.md +37 -32
  178. package/src/components/chat/utils/.is-cross-origin-url.md +35 -0
  179. package/src/components/chat/utils/.message-segment-accumulator.md +25 -34
  180. package/src/components/chat/utils/.nav-anchor-props.md +44 -0
  181. package/src/components/chat/utils/.nav-click-handler.md +47 -0
  182. package/src/components/chat/utils/.onboarding-icons.md +28 -0
  183. package/src/components/chat/utils/.process-historical-messages.md +46 -35
  184. package/src/components/chat/utils/.scroll-anchor.md +40 -0
  185. package/src/components/chat/utils/.slash-dispatch-utils.md +44 -0
  186. package/src/components/chat/utils/.source-icons.md +35 -0
  187. package/src/components/chat/utils/.source-row-cta.md +54 -0
  188. package/src/components/chat/utils/.tool-call-helpers.md +42 -0
  189. package/src/components/contact/.contact-form.md +43 -0
  190. package/src/components/contact/.index.md +27 -0
  191. package/src/components/features/.array-entry-manager.md +36 -45
  192. package/src/components/features/.changelog-manager.md +47 -21
  193. package/src/components/features/.changelog-sections-manager.md +21 -26
  194. package/src/components/features/.command-box.md +31 -28
  195. package/src/components/features/.entity-summary-editor.md +46 -0
  196. package/src/components/features/.entity-video-section.md +51 -0
  197. package/src/components/features/.figma-prototype-viewer.md +48 -29
  198. package/src/components/features/.filters-dropdown.md +33 -46
  199. package/src/components/features/.highlight-config-section.md +42 -0
  200. package/src/components/features/.highlight-generation-section.md +46 -0
  201. package/src/components/features/.highlight-video-combined-section.md +47 -0
  202. package/src/components/features/.highlight-video-preview.md +44 -0
  203. package/src/components/features/.highlight-video-section.md +47 -0
  204. package/src/components/features/.index.md +40 -66
  205. package/src/components/features/.media-gallery-manager.md +48 -38
  206. package/src/components/features/.more-about-button.md +22 -19
  207. package/src/components/features/.og-editor-preview.md +40 -36
  208. package/src/components/features/.parallax-image-showcase.md +33 -26
  209. package/src/components/features/.paths-display.md +42 -43
  210. package/src/components/features/.platform-badge.md +37 -36
  211. package/src/components/features/.platform-filter.md +23 -16
  212. package/src/components/features/.policy-configuration-panel.md +48 -56
  213. package/src/components/features/.provider-button.md +33 -36
  214. package/src/components/features/.push-button-selector.md +40 -29
  215. package/src/components/features/.release-media-manager.md +46 -31
  216. package/src/components/features/.section-selector.md +26 -31
  217. package/src/components/features/.select-button.md +35 -25
  218. package/src/components/features/.seo-editor-preview.md +41 -44
  219. package/src/components/features/.social-links-manager.md +25 -19
  220. package/src/components/features/.start-with-openframe-button.md +37 -29
  221. package/src/components/features/.status-filter-component.md +36 -20
  222. package/src/components/features/.tags-selector.md +40 -24
  223. package/src/components/features/.transcribe-and-summarize-combined-section.md +45 -0
  224. package/src/components/features/.transcribe-summarize-section.md +48 -0
  225. package/src/components/features/.transcript-summary-editor.md +53 -0
  226. package/src/components/features/.video-bites-display.md +46 -0
  227. package/src/components/features/.video-clips-section.md +41 -0
  228. package/src/components/features/.video-ratio-tabs.md +56 -0
  229. package/src/components/features/.video-source-selector.md +60 -0
  230. package/src/components/features/.video.md +44 -0
  231. package/src/components/features/.waitlist-form.md +60 -0
  232. package/src/components/features/ai-enrich/.AIEnrichButton.md +30 -27
  233. package/src/components/features/ai-enrich/.AIEnrichSection.md +46 -42
  234. package/src/components/features/board/.board-column-header.md +38 -0
  235. package/src/components/features/board/.board-column.md +43 -0
  236. package/src/components/features/board/.board.md +51 -0
  237. package/src/components/features/board/.color-utils.md +26 -0
  238. package/src/components/features/board/.index.md +56 -0
  239. package/src/components/features/board/.ticket-card-skeleton.md +38 -0
  240. package/src/components/features/board/.ticket-card.md +47 -0
  241. package/src/components/features/board/.types.md +45 -0
  242. package/src/components/features/board/.use-board-collapse.md +34 -0
  243. package/src/components/features/notifications/.index.md +57 -0
  244. package/src/components/features/notifications/.notification-drawer.md +34 -0
  245. package/src/components/features/notifications/.notification-tile.md +39 -0
  246. package/src/components/features/notifications/.notifications-context.md +73 -0
  247. package/src/components/features/notifications/.types.md +45 -0
  248. package/src/components/icons/.about-icon.md +20 -28
  249. package/src/components/icons/.ai-robot-icon.md +15 -17
  250. package/src/components/icons/.bash-icon.md +16 -23
  251. package/src/components/icons/.buildings-icon.md +10 -24
  252. package/src/components/icons/.capterra-icon.md +30 -26
  253. package/src/components/icons/.carta-icon.md +29 -0
  254. package/src/components/icons/.clickup-icon.md +26 -0
  255. package/src/components/icons/.cmd-icon.md +15 -22
  256. package/src/components/icons/.coins-icon.md +17 -25
  257. package/src/components/icons/.community-hub-icon.md +19 -25
  258. package/src/components/icons/.community-icon.md +24 -21
  259. package/src/components/icons/.compare-icon.md +32 -19
  260. package/src/components/icons/.copy-icon.md +29 -15
  261. package/src/components/icons/.custom-external-link-icon.md +19 -17
  262. package/src/components/icons/.custom-fork-icon.md +32 -21
  263. package/src/components/icons/.custom-license-icon.md +29 -25
  264. package/src/components/icons/.custom-star-icon.md +20 -28
  265. package/src/components/icons/.custom-time-icon.md +21 -22
  266. package/src/components/icons/.cut-vendor-costs-icon.md +6 -19
  267. package/src/components/icons/.dashboard-icon.md +13 -18
  268. package/src/components/icons/.deno-icon.md +16 -23
  269. package/src/components/icons/.donut-icon.md +12 -23
  270. package/src/components/icons/.double-chevron-icon.md +28 -36
  271. package/src/components/icons/.elestio-logo.md +13 -23
  272. package/src/components/icons/.empty-vendor-icon.md +16 -18
  273. package/src/components/icons/.explore-categories-icon.md +18 -29
  274. package/src/components/icons/.eye-icon.md +16 -26
  275. package/src/components/icons/.facebook-icon.md +9 -20
  276. package/src/components/icons/.figma-icon.md +8 -17
  277. package/src/components/icons/.filter-icon.md +15 -17
  278. package/src/components/icons/.flamingo-logo.md +28 -27
  279. package/src/components/icons/.folder-shield-icon.md +28 -19
  280. package/src/components/icons/.g2-icon.md +22 -21
  281. package/src/components/icons/.getapp-icon.md +25 -21
  282. package/src/components/icons/.github-icon.md +13 -25
  283. package/src/components/icons/.globe-icon.md +14 -19
  284. package/src/components/icons/.google-gemini-icon.md +16 -19
  285. package/src/components/icons/.google-logo.md +15 -21
  286. package/src/components/icons/.grid-view-icon.md +30 -19
  287. package/src/components/icons/.hamburger-icon.md +22 -20
  288. package/src/components/icons/.hand-dollar-icon.md +24 -34
  289. package/src/components/icons/.hotel-icon.md +27 -21
  290. package/src/components/icons/.icon-utils.md +28 -29
  291. package/src/components/icons/.image-icon.md +15 -22
  292. package/src/components/icons/.index.md +25 -28
  293. package/src/components/icons/.info-circle-icon.md +29 -30
  294. package/src/components/icons/.instagram-icon.md +10 -24
  295. package/src/components/icons/.jump-in-icon.md +18 -18
  296. package/src/components/icons/.linux-icon.md +18 -18
  297. package/src/components/icons/.log-out-icon.md +15 -23
  298. package/src/components/icons/.logs-icon.md +14 -23
  299. package/src/components/icons/.margin-crisis-icon.md +21 -20
  300. package/src/components/icons/.menu-icon.md +18 -19
  301. package/src/components/icons/.miami-cyber-gang-logo-face-only.md +18 -21
  302. package/src/components/icons/.miami-cyber-gang-logo.md +22 -14
  303. package/src/components/icons/.mlg-logo.md +18 -16
  304. package/src/components/icons/.moon-icon.md +32 -22
  305. package/src/components/icons/.ms-icon.md +30 -19
  306. package/src/components/icons/.nushell-icon.md +7 -21
  307. package/src/components/icons/.open-source-icon.md +19 -23
  308. package/src/components/icons/.openai-icon.md +9 -24
  309. package/src/components/icons/.openframe-ai-icons.md +25 -26
  310. package/src/components/icons/.openframe-logo.md +28 -22
  311. package/src/components/icons/.openframe-text.md +24 -27
  312. package/src/components/icons/.openmsp-logo.md +26 -23
  313. package/src/components/icons/.pilot-icon.md +23 -0
  314. package/src/components/icons/.powershell-icon.md +17 -22
  315. package/src/components/icons/.python-icon.md +16 -23
  316. package/src/components/icons/.queries-icon.md +13 -21
  317. package/src/components/icons/.reddit-icon.md +28 -24
  318. package/src/components/icons/.remote-control-icon.md +13 -17
  319. package/src/components/icons/.script-icon.md +27 -19
  320. package/src/components/icons/.search-icon.md +21 -21
  321. package/src/components/icons/.send-icon.md +14 -16
  322. package/src/components/icons/.settings-icon.md +30 -19
  323. package/src/components/icons/.shape-circle-dash-icon.md +16 -21
  324. package/src/components/icons/.shell-icon.md +15 -19
  325. package/src/components/icons/.shield-check-icon.md +18 -31
  326. package/src/components/icons/.shield-key-icon.md +25 -25
  327. package/src/components/icons/.shield-lock-icon.md +8 -18
  328. package/src/components/icons/.slack-icon.md +28 -32
  329. package/src/components/icons/.sparkles-icon.md +18 -23
  330. package/src/components/icons/.sso-configuration-icon.md +29 -16
  331. package/src/components/icons/.sun-icon.md +20 -18
  332. package/src/components/icons/.table-view-icon.md +17 -19
  333. package/src/components/icons/.telegram-icon.md +8 -22
  334. package/src/components/icons/.thumbs-down-icon.md +10 -19
  335. package/src/components/icons/.thumbs-up-icon.md +8 -17
  336. package/src/components/icons/.tool-directory-icons.md +24 -28
  337. package/src/components/icons/.trustpilot-icon.md +25 -22
  338. package/src/components/icons/.user-icon.md +26 -28
  339. package/src/components/icons/.users-group-icon.md +28 -24
  340. package/src/components/icons/.vendor-showcase-icons.md +21 -29
  341. package/src/components/icons/.vendors-icon.md +18 -22
  342. package/src/components/icons/.whatsapp-icon.md +30 -14
  343. package/src/components/icons/.x-icon.md +18 -23
  344. package/src/components/icons/.x-logo.md +13 -38
  345. package/src/components/icons/.youtube-icon.md +8 -19
  346. package/src/components/icons/device-type-icons/.get-device-type-icon.md +26 -34
  347. package/src/components/icons-v2-generated/.index.md +52 -0
  348. package/src/components/icons-v2-generated/alphabet/.index.md +33 -0
  349. package/src/components/icons-v2-generated/arrows/.index.md +39 -0
  350. package/src/components/icons-v2-generated/audio-and-visual/.index.md +40 -0
  351. package/src/components/icons-v2-generated/brand-logos/.elestio-logo-icon.md +40 -0
  352. package/src/components/icons-v2-generated/brand-logos/.gemini-logo-icon.md +37 -0
  353. package/src/components/icons-v2-generated/brand-logos/.google-gemini-logo-icon.md +33 -0
  354. package/src/components/icons-v2-generated/brand-logos/.index.md +38 -0
  355. package/src/components/icons-v2-generated/brand-logos/.meshcentral-logo-grey-icon.md +35 -0
  356. package/src/components/icons-v2-generated/brand-logos/.meshcentral-logo-icon.md +36 -0
  357. package/src/components/icons-v2-generated/buildings/.index.md +48 -0
  358. package/src/components/icons-v2-generated/charts/.index.md +40 -0
  359. package/src/components/icons-v2-generated/clothes/.index.md +48 -0
  360. package/src/components/icons-v2-generated/coding/.index.md +42 -0
  361. package/src/components/icons-v2-generated/communication/.index.md +39 -0
  362. package/src/components/icons-v2-generated/date-and-time/.index.md +29 -0
  363. package/src/components/icons-v2-generated/design/.index.md +39 -0
  364. package/src/components/icons-v2-generated/devices/.index.md +38 -0
  365. package/src/components/icons-v2-generated/documents/.index.md +38 -0
  366. package/src/components/icons-v2-generated/finance/.index.md +34 -0
  367. package/src/components/icons-v2-generated/food-and-drinks/.index.md +34 -0
  368. package/src/components/icons-v2-generated/food-and-drinks/.leafy-green-icon.md +36 -0
  369. package/src/components/icons-v2-generated/food-and-drinks/.strawberry-icon.md +39 -0
  370. package/src/components/icons-v2-generated/health/.index.md +40 -0
  371. package/src/components/icons-v2-generated/household/.index.md +45 -0
  372. package/src/components/icons-v2-generated/interface/.index.md +36 -0
  373. package/src/components/icons-v2-generated/map-and-travel/.index.md +41 -0
  374. package/src/components/icons-v2-generated/media-playback/.index.md +51 -0
  375. package/src/components/icons-v2-generated/number/.index.md +41 -0
  376. package/src/components/icons-v2-generated/school/.index.md +37 -0
  377. package/src/components/icons-v2-generated/security/.fingerprint-icon.md +38 -0
  378. package/src/components/icons-v2-generated/security/.index.md +39 -0
  379. package/src/components/icons-v2-generated/shopping/.index.md +42 -0
  380. package/src/components/icons-v2-generated/signs-and-symbols/.index.md +32 -0
  381. package/src/components/icons-v2-generated/sort-and-filter/.index.md +35 -0
  382. package/src/components/icons-v2-generated/sport/.index.md +41 -0
  383. package/src/components/icons-v2-generated/text-editor/.index.md +44 -0
  384. package/src/components/icons-v2-generated/users/.index.md +45 -0
  385. package/src/components/icons-v2-generated/vehicles-and-delivery/.index.md +36 -0
  386. package/src/components/icons-v2-generated/weather-and-nature/.flower-sakura-icon.md +36 -0
  387. package/src/components/icons-v2-generated/weather-and-nature/.index.md +34 -0
  388. package/src/components/layout/.article-detail-layout.md +43 -0
  389. package/src/components/layout/.back-button.md +40 -0
  390. package/src/components/layout/.list-page-layout.md +35 -26
  391. package/src/components/layout/.page-container.md +27 -38
  392. package/src/components/layout/.page-layout.md +50 -0
  393. package/src/components/layout/.title-block.md +42 -0
  394. package/src/components/loading/.card-skeleton.md +38 -29
  395. package/src/components/loading/.device-card-skeleton.md +29 -25
  396. package/src/components/loading/.index.md +39 -46
  397. package/src/components/loading/.margin-report-skeleton.md +45 -34
  398. package/src/components/loading/.organization-card-skeleton.md +39 -44
  399. package/src/components/loading/.page-layout-skeleton.md +34 -45
  400. package/src/components/loading/.unified-skeleton.md +62 -36
  401. package/src/components/navigation/.app-header.md +40 -29
  402. package/src/components/navigation/.app-layout.md +25 -26
  403. package/src/components/navigation/.header-global-search.md +34 -37
  404. package/src/components/navigation/.header-organization-filter.md +23 -22
  405. package/src/components/navigation/.header.md +31 -35
  406. package/src/components/navigation/.mobile-burger-menu.md +39 -47
  407. package/src/components/navigation/.mobile-nav-panel.md +51 -32
  408. package/src/components/navigation/.navigation-sidebar-header.md +36 -0
  409. package/src/components/navigation/.navigation-sidebar-item.md +45 -0
  410. package/src/components/navigation/.navigation-sidebar-toggle.md +38 -0
  411. package/src/components/navigation/.navigation-sidebar.md +33 -34
  412. package/src/components/navigation/.sliding-sidebar.md +52 -41
  413. package/src/components/navigation/.sticky-section-nav.md +56 -48
  414. package/src/components/platform/.ScriptArguments.md +39 -25
  415. package/src/components/platform/.ScriptInfoSection.md +30 -26
  416. package/src/components/platform/.ShellTypeBadge.md +18 -13
  417. package/src/components/platform/.SoftwareInfo.md +23 -27
  418. package/src/components/platform/.SoftwareSourceBadge.md +28 -19
  419. package/src/components/platform/.ToolBadge.md +25 -26
  420. package/src/components/platform/ShellTypeBadge.tsx +2 -2
  421. package/src/components/providers/.theme-provider.md +52 -0
  422. package/src/components/shared/delivery/.delivery-lists.md +39 -0
  423. package/src/components/shared/delivery/.delivery-row.md +41 -0
  424. package/src/components/shared/delivery/.delivery-table.md +41 -0
  425. package/src/components/shared/delivery/.index.md +38 -0
  426. package/src/components/shared/dev-section/.dev-card-row.md +60 -0
  427. package/src/components/shared/dev-section/.dev-section-page.md +48 -0
  428. package/src/components/shared/dev-section/.dev-section-view.md +43 -0
  429. package/src/components/shared/dev-section/.index.md +38 -0
  430. package/src/components/shared/legal-document/.index.md +40 -0
  431. package/src/components/shared/legal-document/.legal-document-page.md +50 -0
  432. package/src/components/shared/legal-document/.use-legal-docs.md +42 -0
  433. package/src/components/shared/onboarding/.onboarding-step-card.md +32 -31
  434. package/src/components/shared/onboarding/.onboarding-walkthrough.md +39 -43
  435. package/src/components/shared/product-release/.index.md +28 -30
  436. package/src/components/shared/product-release/.product-release-card-skeleton.md +28 -28
  437. package/src/components/shared/product-release/.product-release-card.md +45 -27
  438. package/src/components/shared/product-release/.release-detail-page.md +23 -24
  439. package/src/components/shared/roadmap/.index.md +37 -0
  440. package/src/components/shared/roadmap/.roadmap-grid-skeleton.md +39 -0
  441. package/src/components/shared/roadmap/.roadmap-grid.md +66 -0
  442. package/src/components/shared/roadmap/.use-roadmap-voting.md +68 -0
  443. package/src/components/tickets/.help-center-card.md +51 -0
  444. package/src/components/tickets/.help-center-create-form.md +38 -0
  445. package/src/components/tickets/.help-center-list.md +40 -0
  446. package/src/components/tickets/.index.md +65 -0
  447. package/src/components/tickets/.ticket-center.md +51 -0
  448. package/src/components/tickets/.ticket-detail-drawer.md +48 -0
  449. package/src/components/tickets/.ticket-linked-delivery-card.md +36 -0
  450. package/src/components/tickets/.ticket-open-form.md +50 -0
  451. package/src/components/tickets/.ticket-row.md +30 -0
  452. package/src/components/tickets/.types.md +57 -0
  453. package/src/components/tickets/hooks/.use-ticket-actions.md +77 -0
  454. package/src/components/tickets/hooks/.use-ticket-engagements.md +42 -0
  455. package/src/components/tickets/hooks/.use-tickets-list.md +54 -0
  456. package/src/components/ui/.actions-menu.md +66 -41
  457. package/src/components/ui/.alert-dialog.md +29 -26
  458. package/src/components/ui/.allowed-domains-input.md +29 -21
  459. package/src/components/ui/.assignee-dropdown.md +45 -0
  460. package/src/components/ui/.autocomplete.md +47 -41
  461. package/src/components/ui/.benefit-card.md +51 -36
  462. package/src/components/ui/.brand-association-card.md +30 -27
  463. package/src/components/ui/.breadcrumb.md +17 -15
  464. package/src/components/ui/.checkbox-block.md +39 -35
  465. package/src/components/ui/.checkbox-with-description.md +23 -16
  466. package/src/components/ui/.checkbox.md +31 -23
  467. package/src/components/ui/.circular-progress.md +49 -19
  468. package/src/components/ui/.content-loader.md +32 -20
  469. package/src/components/ui/.cursor-pagination.md +41 -52
  470. package/src/components/ui/.dashboard-info-card.md +33 -26
  471. package/src/components/ui/.date-picker.md +27 -25
  472. package/src/components/ui/.device-card-compact.md +28 -29
  473. package/src/components/ui/.device-card.md +27 -27
  474. package/src/components/ui/.dialog.md +25 -16
  475. package/src/components/ui/.drawer.md +86 -0
  476. package/src/components/ui/.dropdown-button.md +45 -0
  477. package/src/components/ui/.entity-image.md +46 -0
  478. package/src/components/ui/.error-state.md +41 -28
  479. package/src/components/ui/.feature-card.md +35 -31
  480. package/src/components/ui/.feature-list.md +48 -0
  481. package/src/components/ui/.field-wrapper.md +47 -0
  482. package/src/components/ui/.file-upload.md +42 -0
  483. package/src/components/ui/.filter-checkbox-item.md +43 -0
  484. package/src/components/ui/.filter-list.md +57 -0
  485. package/src/components/ui/.filter-modal.md +59 -0
  486. package/src/components/ui/.floating-tooltip.md +43 -26
  487. package/src/components/ui/.hidden-tags-popup.md +49 -0
  488. package/src/components/ui/.hover-dropdown.md +54 -0
  489. package/src/components/ui/.image-gallery-modal.md +41 -34
  490. package/src/components/ui/.image-uploader.md +53 -0
  491. package/src/components/ui/.index.md +40 -34
  492. package/src/components/ui/.info-card.md +31 -31
  493. package/src/components/ui/.info-row.md +31 -27
  494. package/src/components/ui/.input-trigger.md +44 -0
  495. package/src/components/ui/.input.md +37 -31
  496. package/src/components/ui/.markdown-editor.md +57 -0
  497. package/src/components/ui/.modal-v2.md +51 -0
  498. package/src/components/ui/.modal.md +32 -31
  499. package/src/components/ui/.more-actions-menu.md +45 -38
  500. package/src/components/ui/.organization-card.md +31 -37
  501. package/src/components/ui/.page-actions.md +44 -54
  502. package/src/components/ui/.phone-input.md +54 -0
  503. package/src/components/ui/.progress-bar.md +35 -27
  504. package/src/components/ui/.radio-group.md +39 -27
  505. package/src/components/ui/.release-changelog-section.md +34 -34
  506. package/src/components/ui/.search-input.md +48 -0
  507. package/src/components/ui/.select.md +54 -34
  508. package/src/components/ui/.service-card.md +42 -40
  509. package/src/components/ui/.sheet.md +27 -18
  510. package/src/components/ui/.simple-markdown-renderer.md +29 -31
  511. package/src/components/ui/.sort-column-item.md +42 -0
  512. package/src/components/ui/.square-avatar.md +34 -24
  513. package/src/components/ui/.status-badge.md +26 -38
  514. package/src/components/ui/.switch.md +22 -35
  515. package/src/components/ui/.tab-navigation.md +56 -53
  516. package/src/components/ui/.tab-selector.md +40 -0
  517. package/src/components/ui/.tag-key-value-filter.md +56 -0
  518. package/src/components/ui/.tag-search-input.md +53 -0
  519. package/src/components/ui/.tag.md +49 -31
  520. package/src/components/ui/.tags-manager.md +60 -0
  521. package/src/components/ui/.textarea.md +44 -34
  522. package/src/components/ui/.ticket-attachments-list.md +45 -0
  523. package/src/components/ui/.ticket-detail-section.md +29 -0
  524. package/src/components/ui/.ticket-info-section.md +56 -0
  525. package/src/components/ui/.ticket-note-card.md +53 -0
  526. package/src/components/ui/.ticket-notes-section.md +54 -0
  527. package/src/components/ui/.ticket-status-tag.md +49 -0
  528. package/src/components/ui/.title-content-block.md +25 -26
  529. package/src/components/ui/.toaster.md +40 -28
  530. package/src/components/ui/.tooltip.md +22 -11
  531. package/src/components/ui/.truncate-text.md +39 -0
  532. package/src/components/ui/button/.button-styles.md +35 -0
  533. package/src/components/ui/button/.button.md +53 -0
  534. package/src/components/ui/button/.split-button.md +48 -0
  535. package/src/components/ui/data-table/.data-table-body.md +48 -0
  536. package/src/components/ui/data-table/.data-table-column-filter.md +45 -0
  537. package/src/components/ui/data-table/.data-table-cursor-footer.md +45 -0
  538. package/src/components/ui/data-table/.data-table-empty.md +43 -0
  539. package/src/components/ui/data-table/.data-table-header.md +55 -0
  540. package/src/components/ui/data-table/.data-table-infinite-footer.md +44 -0
  541. package/src/components/ui/data-table/.data-table-row-count.md +43 -0
  542. package/src/components/ui/data-table/.data-table-row.md +47 -0
  543. package/src/components/ui/data-table/.data-table-skeleton.md +42 -0
  544. package/src/components/ui/data-table/.data-table.md +47 -0
  545. package/src/components/ui/data-table/.index.md +55 -0
  546. package/src/components/ui/data-table/.types.md +54 -0
  547. package/src/components/ui/data-table/.use-data-table.md +45 -0
  548. package/src/components/ui/data-table/.utils.md +38 -0
  549. package/src/components/ui/file-manager/.file-manager-action-bar.md +39 -30
  550. package/src/components/ui/file-manager/.file-manager-breadcrumb.md +29 -27
  551. package/src/components/ui/file-manager/.file-manager-context-menu.md +38 -42
  552. package/src/components/ui/file-manager/.file-manager-empty.md +26 -39
  553. package/src/components/ui/file-manager/.file-manager-table-row.md +33 -41
  554. package/src/components/ui/file-manager/.file-manager.md +35 -31
  555. package/src/components/ui/query-report-table/.index.md +43 -0
  556. package/src/components/ui/query-report-table/.query-report-table-header.md +36 -0
  557. package/src/components/ui/query-report-table/.query-report-table-row.md +40 -0
  558. package/src/components/ui/query-report-table/.query-report-table-skeleton.md +44 -0
  559. package/src/components/ui/query-report-table/.query-report-table.md +47 -0
  560. package/src/components/ui/query-report-table/.types.md +41 -0
  561. package/src/components/ui/query-report-table/.utils.md +35 -0
  562. package/src/components/ui/table/.index.md +27 -48
  563. package/src/components/ui/table/.table-cell.md +18 -27
  564. package/src/components/ui/table/.table-column-filter-dropdown.md +40 -0
  565. package/src/components/ui/table/.table-description-cell.md +24 -14
  566. package/src/components/ui/table/.table-empty-state.md +21 -22
  567. package/src/components/ui/table/.table-header.md +25 -40
  568. package/src/components/ui/table/.table-row.md +22 -40
  569. package/src/components/ui/table/.table-skeleton.md +33 -26
  570. package/src/components/ui/table/.table-timestamp-cell.md +26 -16
  571. package/src/components/ui/table/.table.md +39 -59
  572. package/src/components/ui/table/.types.md +44 -36
  573. package/src/components/ui/table/.utils.md +18 -20
  574. package/src/contexts/.chat-runtime-context.md +54 -0
  575. package/src/contexts/.endpoints-runtime-context.md +58 -0
  576. package/src/contexts/.index.md +53 -0
  577. package/src/contexts/.use-outer-or-default.md +36 -0
  578. package/src/embed-shims/.index.md +45 -0
  579. package/src/embed-shims/.next-dynamic.md +43 -0
  580. package/src/embed-shims/.next-image.md +45 -0
  581. package/src/embed-shims/.next-link.md +59 -0
  582. package/src/embed-shims/.next-navigation.md +59 -0
  583. package/src/hooks/.index.md +34 -29
  584. package/src/hooks/.use-access-code-integration.md +49 -0
  585. package/src/hooks/.use-contact-submission.md +37 -26
  586. package/src/hooks/.use-copy-to-clipboard.md +42 -0
  587. package/src/hooks/.use-near-viewport.md +44 -0
  588. package/src/hooks/.use-og-placeholder.md +51 -0
  589. package/src/hooks/.use-toast.md +36 -35
  590. package/src/hooks/state/.use-api-params.md +29 -46
  591. package/src/hooks/state/.use-query-params.md +37 -33
  592. package/src/hooks/ui/.index.md +33 -32
  593. package/src/hooks/ui/.use-auto-limit-tags.md +54 -0
  594. package/src/hooks/ui/.use-horizontal-scrollbar.md +74 -0
  595. package/src/hooks/ui/.use-image-edge-color.md +42 -0
  596. package/src/hooks/ui/.use-media-query.md +33 -25
  597. package/src/hooks/ui/.use-search.md +51 -0
  598. package/src/nats/.nats.md +49 -28
  599. package/src/schemas/.contact-schema.md +45 -0
  600. package/src/stories/.AnnouncementBar.stories.md +45 -0
  601. package/src/stories/.AppLayout.stories.md +20 -21
  602. package/src/stories/.Autocomplete.stories.md +48 -34
  603. package/src/stories/.Board.stories.md +35 -0
  604. package/src/stories/.Button.stories.md +36 -33
  605. package/src/stories/.ChatTicketList.stories.md +33 -0
  606. package/src/stories/.CheckboxBlock.stories.md +40 -28
  607. package/src/stories/.ContentLoader.stories.md +47 -0
  608. package/src/stories/.DashboardInfoCard.stories.md +57 -0
  609. package/src/stories/.DataTable.stories.md +41 -0
  610. package/src/stories/.DatePicker.stories.md +66 -52
  611. package/src/stories/.DeviceCard.stories.md +41 -40
  612. package/src/stories/.DeviceCardCompact.stories.md +41 -0
  613. package/src/stories/.DotsLoaderIcon.stories.md +36 -0
  614. package/src/stories/.Drawer.stories.md +58 -0
  615. package/src/stories/.EmbeddableChat.stories.md +41 -0
  616. package/src/stories/.FileManager.stories.md +41 -0
  617. package/src/stories/.FileManagerActionBar.stories.md +38 -0
  618. package/src/stories/.FileUpload.stories.md +53 -0
  619. package/src/stories/.FilterList.stories.md +54 -0
  620. package/src/stories/.FilterModal.stories.md +72 -0
  621. package/src/stories/.FiltersDropdown.stories.md +57 -0
  622. package/src/stories/.Header.stories.md +48 -0
  623. package/src/stories/.ImageUploader.stories.md +49 -0
  624. package/src/stories/.InfoCard.stories.md +54 -0
  625. package/src/stories/.Input.stories.md +48 -30
  626. package/src/stories/.ListPageLayout.stories.md +56 -43
  627. package/src/stories/.MingoOnboardingCard.stories.md +42 -0
  628. package/src/stories/.MingoOnboardingCardSkeleton.stories.md +35 -0
  629. package/src/stories/.Modal.stories.md +40 -31
  630. package/src/stories/.NotificationDrawer.stories.md +55 -0
  631. package/src/stories/.OnboardingStepCard.stories.md +41 -0
  632. package/src/stories/.OrganizationCard.stories.md +61 -0
  633. package/src/stories/.PageActions.stories.md +52 -49
  634. package/src/stories/.PageContainer.stories.md +41 -35
  635. package/src/stories/.PageLayout.stories.md +60 -0
  636. package/src/stories/.ParallaxImageShowcase.stories.md +49 -0
  637. package/src/stories/.PhoneInput.stories.md +53 -0
  638. package/src/stories/.QueryReportTable.stories.md +44 -0
  639. package/src/stories/.RadioGroup.stories.md +46 -0
  640. package/src/stories/.RadioGroupBlock.stories.md +45 -0
  641. package/src/stories/.Select.stories.md +29 -15
  642. package/src/stories/.SlashCommandSuggestions.stories.md +41 -0
  643. package/src/stories/.SplitButton.stories.md +62 -0
  644. package/src/stories/.TabNavigation.stories.md +47 -38
  645. package/src/stories/.TabSelector.stories.md +65 -0
  646. package/src/stories/.Table.stories.md +38 -46
  647. package/src/stories/.TableColumnFilterDropdown.stories.md +46 -0
  648. package/src/stories/.Tag.stories.md +43 -32
  649. package/src/stories/.TagKeyValueFilter.stories.md +44 -0
  650. package/src/stories/.TagSearchInput.stories.md +61 -0
  651. package/src/stories/.Textarea.stories.md +49 -26
  652. package/src/stories/.Theme.stories.md +41 -0
  653. package/src/stories/.TicketAttachmentsList.stories.md +39 -0
  654. package/src/stories/.TicketDescriptionViewer.stories.md +39 -0
  655. package/src/stories/.TicketInfoSection.stories.md +40 -0
  656. package/src/stories/.TicketKnowledgeBaseList.stories.md +36 -0
  657. package/src/stories/.TicketNotesSection.stories.md +50 -0
  658. package/src/stories/.Toaster.stories.md +40 -0
  659. package/src/stories/.ToolExecutionDisplay.stories.md +41 -0
  660. package/src/stories/.Tooltip.stories.md +41 -0
  661. package/src/stories/.UserSummary.stories.md +41 -0
  662. package/src/stories/.WaitlistForm.stories.md +42 -0
  663. package/src/stories/BlogCard.stories.tsx +61 -0
  664. package/src/stories/CampaignCardAdmin.stories.tsx +52 -0
  665. package/src/stories/CaseStudyCard.stories.tsx +42 -0
  666. package/src/stories/ChatContainer.stories.tsx +186 -0
  667. package/src/stories/ChatInlineVideoPill.stories.tsx +63 -0
  668. package/src/stories/CustomerInterviewCard.stories.tsx +42 -0
  669. package/src/stories/DataRoomDocCard.stories.tsx +52 -0
  670. package/src/stories/GenericEntityCard.stories.tsx +66 -0
  671. package/src/stories/GitHubActivityCard.stories.tsx +61 -0
  672. package/src/stories/HubspotTicketCard.stories.tsx +98 -0
  673. package/src/stories/InvestorUpdateCard.stories.tsx +42 -0
  674. package/src/stories/OnboardingGuideCard.stories.tsx +52 -0
  675. package/src/stories/ProductReleaseCard.stories.tsx +61 -0
  676. package/src/stories/ProgramCard.stories.tsx +79 -0
  677. package/src/stories/RoadmapCard.stories.tsx +75 -0
  678. package/src/stories/SlackMessageCard.stories.tsx +41 -0
  679. package/src/stories/__fixtures__/chat-cards.ts +604 -0
  680. package/src/types/.blog.md +53 -29
  681. package/src/types/.case-study.md +44 -27
  682. package/src/types/.customer-interview.md +66 -44
  683. package/src/types/.delivery.md +40 -0
  684. package/src/types/.employee.md +24 -30
  685. package/src/types/.index.md +33 -47
  686. package/src/types/.marketing.md +49 -44
  687. package/src/types/.navigation.md +33 -25
  688. package/src/types/.os.types.md +32 -27
  689. package/src/types/.platform.md +31 -28
  690. package/src/types/.product-release.md +65 -38
  691. package/src/types/.supabase.md +37 -29
  692. package/src/types/.team.md +41 -33
  693. package/src/types/.video-processing.md +54 -0
  694. package/src/types/.waitlist.md +40 -36
  695. package/src/utils/.access-code-client.md +37 -36
  696. package/src/utils/.cn.md +31 -23
  697. package/src/utils/.color-analysis.md +35 -0
  698. package/src/utils/.country-phone-utils.md +39 -0
  699. package/src/utils/.date-formatters.md +19 -18
  700. package/src/utils/.embed-authed-fetch.md +39 -0
  701. package/src/utils/.embed-proxy-auth-storage.md +38 -0
  702. package/src/utils/.fetch-priority.md +41 -0
  703. package/src/utils/.format.md +74 -25
  704. package/src/utils/.generic-domain-utils.md +42 -0
  705. package/src/utils/.image-proxy.md +59 -23
  706. package/src/utils/.index.md +42 -49
  707. package/src/utils/.local-storage-adapter.md +50 -0
  708. package/src/utils/.ods-color-utils.md +55 -38
  709. package/src/utils/.platform-config.md +45 -25
  710. package/src/utils/.scroll-into-view.md +40 -0
  711. package/src/utils/.source-icons.md +53 -0
  712. package/src/utils/.sse-decision-frame.md +46 -0
  713. package/src/utils/dev-sections/.index.md +34 -0
  714. package/src/utils/dev-sections/.openframe-dev-sections.md +49 -0
  715. package/dist/chunk-ZDF6F7ED.cjs.map +0 -1
  716. package/dist/chunk-ZTJVRSN5.js.map +0 -1
  717. package/src/components/.card.md +0 -42
  718. package/src/components/.contact-button.md +0 -30
  719. package/src/components/.drawer.md +0 -46
  720. package/src/components/.fixed-layout-container.md +0 -47
  721. package/src/components/.footer-waitlist-card.md +0 -29
  722. package/src/components/.join-waitlist-cta.md +0 -29
  723. package/src/components/.sheet.md +0 -47
  724. package/src/components/.sliding-panel.md +0 -48
  725. package/src/components/.tooltip.md +0 -48
  726. package/src/components/.use-mobile.md +0 -42
  727. package/src/components/.vendor-compact-card.md +0 -66
  728. package/src/components/.x-button.md +0 -42
  729. package/src/components/features/.github-repo-button.md +0 -40
  730. package/src/components/features/.organization-icon.md +0 -47
  731. package/src/components/features/.organization-selector.md +0 -45
  732. package/src/components/icons/.fleet-icon.md +0 -39
  733. package/src/components/icons/.meshcentral-icon.md +0 -35
  734. package/src/components/icons/.refresh-icon.md +0 -34
  735. package/src/components/icons/.tactical-icon.md +0 -35
  736. package/src/components/ui/.button.md +0 -69
  737. package/src/components/ui/.log-table-row.md +0 -47
  738. package/src/components/ui/.selectable-device-card.md +0 -46
  739. package/src/hooks/.api-hooks-stub.md +0 -45
  740. package/src/hooks/api/.use-product-releases.md +0 -53
  741. package/src/stories/.OrganizationSelector.stories.md +0 -42
  742. package/src/stories/.SelectableDeviceCard.stories.md +0 -30
  743. package/src/utils/.lite-youtube-embed-stub.md +0 -37
  744. package/src/utils/.lite-youtube-embed.md +0 -33
  745. /package/dist/{chunk-IK2X5YJU.js.map → chunk-7PCP7YQR.js.map} +0 -0
  746. /package/dist/{chunk-3JWIJJ44.js.map → chunk-R6MLPU4A.js.map} +0 -0
@@ -1,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
+ ```
@@ -1,38 +1,45 @@
1
- <!-- source-hash: f79f8bb1d9edf6587a6e5969375e5636 -->
2
- A Next.js client component that provides a context-aware waitlist button for use in footers, with smart navigation and form focusing capabilities.
1
+ <!-- source-hash: 8e25a68fa3e51dd5cde8b484877f10f2 -->
2
+ A footer button component that navigates users to the OpenFrame waitlist page, routing through the unified navigation system when available.
3
3
 
4
4
  ## Key Components
5
5
 
6
- **`FooterWaitlistButton`**: Main component that renders a button with OpenFrame logo and intelligent click behavior
7
- - **Props**: `FooterWaitlistButtonProps` interface with optional `className`
8
- - **Dependencies**: Next.js navigation hooks (`usePathname`, `useRouter`), custom UI components (`Button`, `OpenFrameLogo`)
6
+ ### `FooterWaitlistButtonProps`
7
+ - `className?: string` Optional CSS class for styling overrides.
8
+
9
+ ### `FooterWaitlistButton`
10
+ A `Button` wrapper that handles navigation to `/waitlist#top` via a two-tier fallback strategy:
11
+
12
+ 1. **Primary:** `runtime.navigation.navigate` — the host's unified-nav hook (provided by `HubRuntimeProvider`), which handles cross-platform new-tab decisions, same-URL re-scroll, and embed-mode short-circuiting.
13
+ 2. **Fallback:** `router.push` via the embed-shim's `useRouter` — used when no `ChatRuntimeContext` is mounted (e.g., third-party embedders).
14
+
15
+ Renders with the `OpenFrameLogo` icon as a left icon inside the button.
9
16
 
10
17
  ## Usage Example
11
18
 
12
19
  ```typescript
13
20
  import { FooterWaitlistButton } from './footer-waitlist-button';
14
21
 
15
- // Basic usage in footer
16
- function Footer() {
22
+ // Basic usage inside a footer layout
23
+ export function AppFooter() {
17
24
  return (
18
- <footer className="bg-gray-900">
19
- <div className="container mx-auto px-4 py-8">
20
- <FooterWaitlistButton className="mt-4" />
21
- </div>
25
+ <footer>
26
+ <FooterWaitlistButton className="mt-4 w-full" />
22
27
  </footer>
23
28
  );
24
29
  }
25
-
26
- // With custom styling
27
- function CustomFooter() {
28
- return (
29
- <FooterWaitlistButton className="bg-primary hover:bg-primary/90 text-white" />
30
- );
31
- }
32
30
  ```
33
31
 
34
- The component implements smart navigation logic:
35
- - **On `/waitlist` page**: Smoothly scrolls to `#waitlist-form` element and focuses the email input after 400ms delay
36
- - **On other pages**: Navigates to `/waitlist#waitlist-form` URL with anchor
32
+ > **Navigation note:** The `#top` anchor targets an explicit `<div id="top">` at the top of the waitlist page's `<main>` element, ensuring consistent scroll behavior across all browsers regardless of HTML5 magic-anchor handling.
33
+
34
+ ## Navigation Flow
37
35
 
38
- The button displays "Join Waitlist" text with the OpenFrame logo as a left icon, providing consistent branding across the application.
36
+ ```mermaid
37
+ graph TD
38
+ A["FooterWaitlistButton clicked"] --> B{"runtime.navigation.navigate available?"}
39
+ B -->|Yes| C["Call runtime.navigation.navigate"]
40
+ C --> D{"Handled?"}
41
+ D -->|Yes| E["Done - unified nav handled"]
42
+ D -->|No| F["Fallback: router.push"]
43
+ B -->|No| F
44
+ F --> G["Navigate to /waitlist#top"]
45
+ ```