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

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (745) hide show
  1. package/dist/{chunk-3JWIJJ44.js → chunk-5OWDOFKK.js} +2 -2
  2. package/dist/{chunk-IK2X5YJU.js → chunk-HWY35EAK.js} +2 -2
  3. package/dist/{chunk-OTKJASSX.cjs → chunk-IZL2KEH6.cjs} +24 -24
  4. package/dist/{chunk-OTKJASSX.cjs.map → chunk-IZL2KEH6.cjs.map} +1 -1
  5. package/dist/{chunk-35XIT2CF.cjs → chunk-KDNGUYZM.cjs} +17 -17
  6. package/dist/{chunk-35XIT2CF.cjs.map → chunk-KDNGUYZM.cjs.map} +1 -1
  7. package/dist/{chunk-ZTJVRSN5.js → chunk-UKND27XC.js} +2 -2
  8. package/dist/chunk-UKND27XC.js.map +1 -0
  9. package/dist/{chunk-ZDF6F7ED.cjs → chunk-YZUUFTIK.cjs} +2 -2
  10. package/dist/chunk-YZUUFTIK.cjs.map +1 -0
  11. package/dist/components/chat/index.cjs +2 -2
  12. package/dist/components/chat/index.js +1 -1
  13. package/dist/components/contact/index.cjs +3 -3
  14. package/dist/components/contact/index.js +2 -2
  15. package/dist/components/features/index.cjs +2 -2
  16. package/dist/components/features/index.js +1 -1
  17. package/dist/components/index.cjs +49 -49
  18. package/dist/components/index.js +2 -2
  19. package/dist/components/navigation/index.cjs +2 -2
  20. package/dist/components/navigation/index.js +1 -1
  21. package/dist/components/tickets/index.cjs +61 -61
  22. package/dist/components/tickets/index.js +3 -3
  23. package/dist/components/ui/index.cjs +2 -2
  24. package/dist/components/ui/index.js +1 -1
  25. package/dist/index.cjs +2 -2
  26. package/dist/index.js +1 -1
  27. package/package.json +1 -1
  28. package/src/.index.md +36 -34
  29. package/src/components/.alert-dialog.md +27 -23
  30. package/src/components/.announcement-bar.md +26 -21
  31. package/src/components/.breadcrumb.md +19 -15
  32. package/src/components/.calendar.md +24 -19
  33. package/src/components/.categories-cart.md +29 -24
  34. package/src/components/.checkbox.md +23 -25
  35. package/src/components/.chevron-button.md +37 -32
  36. package/src/components/.comment-card.md +32 -62
  37. package/src/components/.dialog.md +26 -26
  38. package/src/components/.dynamic-skeleton.md +54 -57
  39. package/src/components/.empty-state.md +42 -51
  40. package/src/components/.faq-accordion.md +27 -21
  41. package/src/components/.filter-chip.md +41 -24
  42. package/src/components/.flamingo-logo.md +20 -23
  43. package/src/components/.footer-waitlist-button.md +29 -22
  44. package/src/components/.footer.md +32 -32
  45. package/src/components/.icons-block.md +27 -17
  46. package/src/components/.image-cropper.md +41 -32
  47. package/src/components/.index.md +33 -39
  48. package/src/components/.input.md +31 -35
  49. package/src/components/.logs-list.md +31 -20
  50. package/src/components/.media-carousel.md +35 -36
  51. package/src/components/.open-source-features.md +33 -16
  52. package/src/components/.pagination.md +52 -51
  53. package/src/components/.provider-button.md +21 -23
  54. package/src/components/.select.md +31 -20
  55. package/src/components/.sidebar.md +34 -24
  56. package/src/components/.smooth-accordion.md +29 -24
  57. package/src/components/.social-icon-row.md +36 -32
  58. package/src/components/.textarea.md +25 -31
  59. package/src/components/.tool-icon.md +24 -26
  60. package/src/components/.unified-filter-logic.md +37 -30
  61. package/src/components/.unified-pagination.md +23 -22
  62. package/src/components/.user-summary-stub.md +38 -22
  63. package/src/components/.vendor-display-button.md +25 -25
  64. package/src/components/.vendor-icon.md +33 -25
  65. package/src/components/.why-it-matters.md +28 -25
  66. package/src/components/chat/.approval-batch-message.md +51 -0
  67. package/src/components/chat/.approval-request-message.md +35 -34
  68. package/src/components/chat/.chat-attachment-bar.md +64 -0
  69. package/src/components/chat/.chat-container.md +36 -18
  70. package/src/components/chat/.chat-input.md +37 -20
  71. package/src/components/chat/.chat-message-enhanced.md +30 -49
  72. package/src/components/chat/.chat-message-list.md +45 -32
  73. package/src/components/chat/.chat-message-skeleton.md +26 -22
  74. package/src/components/chat/.chat-panel-context.md +52 -0
  75. package/src/components/chat/.chat-ref.types.md +42 -0
  76. package/src/components/chat/.chat-sidebar-skeleton.md +34 -25
  77. package/src/components/chat/.chat-sidebar.md +31 -26
  78. package/src/components/chat/.chat-ticket-list.md +39 -0
  79. package/src/components/chat/.context-compaction-display.md +36 -0
  80. package/src/components/chat/.cycling-phrase.md +52 -0
  81. package/src/components/chat/.embeddable-chat.md +48 -0
  82. package/src/components/chat/.expand-chevron.md +24 -0
  83. package/src/components/chat/.index.md +31 -35
  84. package/src/components/chat/.mingo-onboarding-card-skeleton.md +44 -0
  85. package/src/components/chat/.mingo-onboarding-card.md +62 -0
  86. package/src/components/chat/.model-display.md +32 -30
  87. package/src/components/chat/.nav-link-anchor-via-runtime.md +40 -0
  88. package/src/components/chat/.remark-card-links.md +38 -0
  89. package/src/components/chat/.slash-command-suggestions.md +47 -0
  90. package/src/components/chat/.source-action-button.md +48 -0
  91. package/src/components/chat/.thinking-display.md +42 -0
  92. package/src/components/chat/.tool-call-blocks.md +45 -0
  93. package/src/components/chat/.tool-execution-display.md +44 -36
  94. package/src/components/chat/chat-container.tsx +1 -1
  95. package/src/components/chat/entity-cards/.admin-content-card.md +43 -0
  96. package/src/components/chat/entity-cards/.block-card.md +47 -0
  97. package/src/components/chat/entity-cards/.blog-card.md +52 -0
  98. package/src/components/chat/entity-cards/.blog-image-placeholder.md +39 -0
  99. package/src/components/chat/entity-cards/.campaign-card-admin.md +47 -0
  100. package/src/components/chat/entity-cards/.case-study-card.md +58 -0
  101. package/src/components/chat/entity-cards/.chat-ticket-item.md +40 -0
  102. package/src/components/chat/entity-cards/.chat-video-entity-card.md +43 -0
  103. package/src/components/chat/entity-cards/.customer-interview-card.md +53 -0
  104. package/src/components/chat/entity-cards/.data-room-doc-card.md +47 -0
  105. package/src/components/chat/entity-cards/.dispatch.md +39 -0
  106. package/src/components/chat/entity-cards/.entity-author-card.md +51 -0
  107. package/src/components/chat/entity-cards/.generic-entity-card.md +62 -0
  108. package/src/components/chat/entity-cards/.github-activity-card.md +61 -0
  109. package/src/components/chat/entity-cards/.hubspot-ticket-card.md +53 -0
  110. package/src/components/chat/entity-cards/.index.md +66 -0
  111. package/src/components/chat/entity-cards/.investor-update-card.md +47 -0
  112. package/src/components/chat/entity-cards/.onboarding-guide-card.md +58 -0
  113. package/src/components/chat/entity-cards/.product-release-card-defaults.md +31 -0
  114. package/src/components/chat/entity-cards/.product-release-card.md +29 -0
  115. package/src/components/chat/entity-cards/.program-card-defaults.md +41 -0
  116. package/src/components/chat/entity-cards/.program-card.md +59 -0
  117. package/src/components/chat/entity-cards/.roadmap-card.md +46 -0
  118. package/src/components/chat/entity-cards/.roadmap-vote-button.md +52 -0
  119. package/src/components/chat/entity-cards/.slack-message-card.md +48 -0
  120. package/src/components/chat/entity-cards/.task-type-icon.md +47 -0
  121. package/src/components/chat/hooks/.index.md +36 -21
  122. package/src/components/chat/hooks/.use-chat-attachment-image-gallery.md +51 -0
  123. package/src/components/chat/hooks/.use-chat-attachments.md +48 -0
  124. package/src/components/chat/hooks/.use-chat-card-item.md +39 -0
  125. package/src/components/chat/hooks/.use-chat-identity.md +45 -0
  126. package/src/components/chat/hooks/.use-chat.md +58 -0
  127. package/src/components/chat/hooks/.use-chunk-catchup.md +46 -48
  128. package/src/components/chat/hooks/.use-close-on-navigation.md +44 -0
  129. package/src/components/chat/hooks/.use-collapsible.md +48 -0
  130. package/src/components/chat/hooks/.use-embedded-chat.md +32 -0
  131. package/src/components/chat/hooks/.use-jetstream-dialog-subscription.md +40 -0
  132. package/src/components/chat/hooks/.use-nats-chat-adapter.md +52 -0
  133. package/src/components/chat/hooks/.use-nats-dialog-subscription.md +49 -30
  134. package/src/components/chat/hooks/.use-proxied-image-url.md +40 -0
  135. package/src/components/chat/hooks/.use-realtime-chunk-processor.md +43 -40
  136. package/src/components/chat/hooks/.use-slash-commands.md +46 -0
  137. package/src/components/chat/hooks/.use-sse-chat-adapter.md +34 -0
  138. package/src/components/chat/hooks/.use-sse.md +60 -0
  139. package/src/components/chat/hooks/.use-unified-chat.md +57 -0
  140. package/src/components/chat/types/.api.types.md +52 -38
  141. package/src/components/chat/types/.chat.types.md +43 -34
  142. package/src/components/chat/types/.component.types.md +47 -48
  143. package/src/components/chat/types/.index.md +20 -27
  144. package/src/components/chat/types/.message.types.md +58 -48
  145. package/src/components/chat/types/.network.types.md +57 -31
  146. package/src/components/chat/types/.processing.types.md +49 -31
  147. package/src/components/chat/types/.unified-chat-state.types.md +41 -0
  148. package/src/components/chat/types/entities/.blog.md +43 -0
  149. package/src/components/chat/types/entities/.case-study.md +26 -0
  150. package/src/components/chat/types/entities/.content-ref.md +41 -0
  151. package/src/components/chat/types/entities/.customer-interview.md +28 -0
  152. package/src/components/chat/types/entities/.data-room-doc.md +36 -0
  153. package/src/components/chat/types/entities/.github-activity.md +43 -0
  154. package/src/components/chat/types/entities/.hubspot-ticket.md +53 -0
  155. package/src/components/chat/types/entities/.index.md +42 -0
  156. package/src/components/chat/types/entities/.investor-update.md +45 -0
  157. package/src/components/chat/types/entities/.onboarding-guide.md +50 -0
  158. package/src/components/chat/types/entities/.program-types.md +57 -0
  159. package/src/components/chat/types/entities/.roadmap-item.md +58 -0
  160. package/src/components/chat/types/entities/.slack-message.md +35 -0
  161. package/src/components/chat/utils/.agent-status-message.md +45 -0
  162. package/src/components/chat/utils/.auto-continuation-directive.md +58 -0
  163. package/src/components/chat/utils/.chat-attachment-markdown.md +54 -0
  164. package/src/components/chat/utils/.chat-authed-fetch.md +25 -0
  165. package/src/components/chat/utils/.chat-nav-resolution.md +46 -0
  166. package/src/components/chat/utils/.chat-proxy-auth-storage.md +38 -0
  167. package/src/components/chat/utils/.chip-action-class.md +34 -0
  168. package/src/components/chat/utils/.chip-styles.md +46 -0
  169. package/src/components/chat/utils/.chunk-parser.md +38 -28
  170. package/src/components/chat/utils/.clickup-task-type-utils.md +48 -0
  171. package/src/components/chat/utils/.compact-card-classes.md +62 -0
  172. package/src/components/chat/utils/.decide-new-tab.md +51 -0
  173. package/src/components/chat/utils/.external-app-urls.md +29 -0
  174. package/src/components/chat/utils/.extract-incomplete-message-state.md +25 -29
  175. package/src/components/chat/utils/.flatten-assistant-content.md +34 -0
  176. package/src/components/chat/utils/.icon-registry.md +46 -0
  177. package/src/components/chat/utils/.index.md +37 -32
  178. package/src/components/chat/utils/.is-cross-origin-url.md +35 -0
  179. package/src/components/chat/utils/.message-segment-accumulator.md +25 -34
  180. package/src/components/chat/utils/.nav-anchor-props.md +44 -0
  181. package/src/components/chat/utils/.nav-click-handler.md +47 -0
  182. package/src/components/chat/utils/.onboarding-icons.md +28 -0
  183. package/src/components/chat/utils/.process-historical-messages.md +46 -35
  184. package/src/components/chat/utils/.scroll-anchor.md +40 -0
  185. package/src/components/chat/utils/.slash-dispatch-utils.md +44 -0
  186. package/src/components/chat/utils/.source-icons.md +35 -0
  187. package/src/components/chat/utils/.source-row-cta.md +54 -0
  188. package/src/components/chat/utils/.tool-call-helpers.md +42 -0
  189. package/src/components/contact/.contact-form.md +43 -0
  190. package/src/components/contact/.index.md +27 -0
  191. package/src/components/features/.array-entry-manager.md +36 -45
  192. package/src/components/features/.changelog-manager.md +47 -21
  193. package/src/components/features/.changelog-sections-manager.md +21 -26
  194. package/src/components/features/.command-box.md +31 -28
  195. package/src/components/features/.entity-summary-editor.md +46 -0
  196. package/src/components/features/.entity-video-section.md +51 -0
  197. package/src/components/features/.figma-prototype-viewer.md +48 -29
  198. package/src/components/features/.filters-dropdown.md +33 -46
  199. package/src/components/features/.highlight-config-section.md +42 -0
  200. package/src/components/features/.highlight-generation-section.md +46 -0
  201. package/src/components/features/.highlight-video-combined-section.md +47 -0
  202. package/src/components/features/.highlight-video-preview.md +44 -0
  203. package/src/components/features/.highlight-video-section.md +47 -0
  204. package/src/components/features/.index.md +40 -66
  205. package/src/components/features/.media-gallery-manager.md +48 -38
  206. package/src/components/features/.more-about-button.md +22 -19
  207. package/src/components/features/.og-editor-preview.md +40 -36
  208. package/src/components/features/.parallax-image-showcase.md +33 -26
  209. package/src/components/features/.paths-display.md +42 -43
  210. package/src/components/features/.platform-badge.md +37 -36
  211. package/src/components/features/.platform-filter.md +23 -16
  212. package/src/components/features/.policy-configuration-panel.md +48 -56
  213. package/src/components/features/.provider-button.md +33 -36
  214. package/src/components/features/.push-button-selector.md +40 -29
  215. package/src/components/features/.release-media-manager.md +46 -31
  216. package/src/components/features/.section-selector.md +26 -31
  217. package/src/components/features/.select-button.md +35 -25
  218. package/src/components/features/.seo-editor-preview.md +41 -44
  219. package/src/components/features/.social-links-manager.md +25 -19
  220. package/src/components/features/.start-with-openframe-button.md +37 -29
  221. package/src/components/features/.status-filter-component.md +36 -20
  222. package/src/components/features/.tags-selector.md +40 -24
  223. package/src/components/features/.transcribe-and-summarize-combined-section.md +45 -0
  224. package/src/components/features/.transcribe-summarize-section.md +48 -0
  225. package/src/components/features/.transcript-summary-editor.md +53 -0
  226. package/src/components/features/.video-bites-display.md +46 -0
  227. package/src/components/features/.video-clips-section.md +41 -0
  228. package/src/components/features/.video-ratio-tabs.md +56 -0
  229. package/src/components/features/.video-source-selector.md +60 -0
  230. package/src/components/features/.video.md +44 -0
  231. package/src/components/features/.waitlist-form.md +60 -0
  232. package/src/components/features/ai-enrich/.AIEnrichButton.md +30 -27
  233. package/src/components/features/ai-enrich/.AIEnrichSection.md +46 -42
  234. package/src/components/features/board/.board-column-header.md +38 -0
  235. package/src/components/features/board/.board-column.md +43 -0
  236. package/src/components/features/board/.board.md +51 -0
  237. package/src/components/features/board/.color-utils.md +26 -0
  238. package/src/components/features/board/.index.md +56 -0
  239. package/src/components/features/board/.ticket-card-skeleton.md +38 -0
  240. package/src/components/features/board/.ticket-card.md +47 -0
  241. package/src/components/features/board/.types.md +45 -0
  242. package/src/components/features/board/.use-board-collapse.md +34 -0
  243. package/src/components/features/notifications/.index.md +57 -0
  244. package/src/components/features/notifications/.notification-drawer.md +34 -0
  245. package/src/components/features/notifications/.notification-tile.md +39 -0
  246. package/src/components/features/notifications/.notifications-context.md +73 -0
  247. package/src/components/features/notifications/.types.md +45 -0
  248. package/src/components/icons/.about-icon.md +20 -28
  249. package/src/components/icons/.ai-robot-icon.md +15 -17
  250. package/src/components/icons/.bash-icon.md +16 -23
  251. package/src/components/icons/.buildings-icon.md +10 -24
  252. package/src/components/icons/.capterra-icon.md +30 -26
  253. package/src/components/icons/.carta-icon.md +29 -0
  254. package/src/components/icons/.clickup-icon.md +26 -0
  255. package/src/components/icons/.cmd-icon.md +15 -22
  256. package/src/components/icons/.coins-icon.md +17 -25
  257. package/src/components/icons/.community-hub-icon.md +19 -25
  258. package/src/components/icons/.community-icon.md +24 -21
  259. package/src/components/icons/.compare-icon.md +32 -19
  260. package/src/components/icons/.copy-icon.md +29 -15
  261. package/src/components/icons/.custom-external-link-icon.md +19 -17
  262. package/src/components/icons/.custom-fork-icon.md +32 -21
  263. package/src/components/icons/.custom-license-icon.md +29 -25
  264. package/src/components/icons/.custom-star-icon.md +20 -28
  265. package/src/components/icons/.custom-time-icon.md +21 -22
  266. package/src/components/icons/.cut-vendor-costs-icon.md +6 -19
  267. package/src/components/icons/.dashboard-icon.md +13 -18
  268. package/src/components/icons/.deno-icon.md +16 -23
  269. package/src/components/icons/.donut-icon.md +12 -23
  270. package/src/components/icons/.double-chevron-icon.md +28 -36
  271. package/src/components/icons/.elestio-logo.md +13 -23
  272. package/src/components/icons/.empty-vendor-icon.md +16 -18
  273. package/src/components/icons/.explore-categories-icon.md +18 -29
  274. package/src/components/icons/.eye-icon.md +16 -26
  275. package/src/components/icons/.facebook-icon.md +9 -20
  276. package/src/components/icons/.figma-icon.md +8 -17
  277. package/src/components/icons/.filter-icon.md +15 -17
  278. package/src/components/icons/.flamingo-logo.md +28 -27
  279. package/src/components/icons/.folder-shield-icon.md +28 -19
  280. package/src/components/icons/.g2-icon.md +22 -21
  281. package/src/components/icons/.getapp-icon.md +25 -21
  282. package/src/components/icons/.github-icon.md +13 -25
  283. package/src/components/icons/.globe-icon.md +14 -19
  284. package/src/components/icons/.google-gemini-icon.md +16 -19
  285. package/src/components/icons/.google-logo.md +15 -21
  286. package/src/components/icons/.grid-view-icon.md +30 -19
  287. package/src/components/icons/.hamburger-icon.md +22 -20
  288. package/src/components/icons/.hand-dollar-icon.md +24 -34
  289. package/src/components/icons/.hotel-icon.md +27 -21
  290. package/src/components/icons/.icon-utils.md +28 -29
  291. package/src/components/icons/.image-icon.md +15 -22
  292. package/src/components/icons/.index.md +25 -28
  293. package/src/components/icons/.info-circle-icon.md +29 -30
  294. package/src/components/icons/.instagram-icon.md +10 -24
  295. package/src/components/icons/.jump-in-icon.md +18 -18
  296. package/src/components/icons/.linux-icon.md +18 -18
  297. package/src/components/icons/.log-out-icon.md +15 -23
  298. package/src/components/icons/.logs-icon.md +14 -23
  299. package/src/components/icons/.margin-crisis-icon.md +21 -20
  300. package/src/components/icons/.menu-icon.md +18 -19
  301. package/src/components/icons/.miami-cyber-gang-logo-face-only.md +18 -21
  302. package/src/components/icons/.miami-cyber-gang-logo.md +22 -14
  303. package/src/components/icons/.mlg-logo.md +18 -16
  304. package/src/components/icons/.moon-icon.md +32 -22
  305. package/src/components/icons/.ms-icon.md +30 -19
  306. package/src/components/icons/.nushell-icon.md +7 -21
  307. package/src/components/icons/.open-source-icon.md +19 -23
  308. package/src/components/icons/.openai-icon.md +9 -24
  309. package/src/components/icons/.openframe-ai-icons.md +25 -26
  310. package/src/components/icons/.openframe-logo.md +28 -22
  311. package/src/components/icons/.openframe-text.md +24 -27
  312. package/src/components/icons/.openmsp-logo.md +26 -23
  313. package/src/components/icons/.pilot-icon.md +23 -0
  314. package/src/components/icons/.powershell-icon.md +17 -22
  315. package/src/components/icons/.python-icon.md +16 -23
  316. package/src/components/icons/.queries-icon.md +13 -21
  317. package/src/components/icons/.reddit-icon.md +28 -24
  318. package/src/components/icons/.remote-control-icon.md +13 -17
  319. package/src/components/icons/.script-icon.md +27 -19
  320. package/src/components/icons/.search-icon.md +21 -21
  321. package/src/components/icons/.send-icon.md +14 -16
  322. package/src/components/icons/.settings-icon.md +30 -19
  323. package/src/components/icons/.shape-circle-dash-icon.md +16 -21
  324. package/src/components/icons/.shell-icon.md +15 -19
  325. package/src/components/icons/.shield-check-icon.md +18 -31
  326. package/src/components/icons/.shield-key-icon.md +25 -25
  327. package/src/components/icons/.shield-lock-icon.md +8 -18
  328. package/src/components/icons/.slack-icon.md +28 -32
  329. package/src/components/icons/.sparkles-icon.md +18 -23
  330. package/src/components/icons/.sso-configuration-icon.md +29 -16
  331. package/src/components/icons/.sun-icon.md +20 -18
  332. package/src/components/icons/.table-view-icon.md +17 -19
  333. package/src/components/icons/.telegram-icon.md +8 -22
  334. package/src/components/icons/.thumbs-down-icon.md +10 -19
  335. package/src/components/icons/.thumbs-up-icon.md +8 -17
  336. package/src/components/icons/.tool-directory-icons.md +24 -28
  337. package/src/components/icons/.trustpilot-icon.md +25 -22
  338. package/src/components/icons/.user-icon.md +26 -28
  339. package/src/components/icons/.users-group-icon.md +28 -24
  340. package/src/components/icons/.vendor-showcase-icons.md +21 -29
  341. package/src/components/icons/.vendors-icon.md +18 -22
  342. package/src/components/icons/.whatsapp-icon.md +30 -14
  343. package/src/components/icons/.x-icon.md +18 -23
  344. package/src/components/icons/.x-logo.md +13 -38
  345. package/src/components/icons/.youtube-icon.md +8 -19
  346. package/src/components/icons/device-type-icons/.get-device-type-icon.md +26 -34
  347. package/src/components/icons-v2-generated/.index.md +52 -0
  348. package/src/components/icons-v2-generated/alphabet/.index.md +33 -0
  349. package/src/components/icons-v2-generated/arrows/.index.md +39 -0
  350. package/src/components/icons-v2-generated/audio-and-visual/.index.md +40 -0
  351. package/src/components/icons-v2-generated/brand-logos/.elestio-logo-icon.md +40 -0
  352. package/src/components/icons-v2-generated/brand-logos/.gemini-logo-icon.md +37 -0
  353. package/src/components/icons-v2-generated/brand-logos/.google-gemini-logo-icon.md +33 -0
  354. package/src/components/icons-v2-generated/brand-logos/.index.md +38 -0
  355. package/src/components/icons-v2-generated/brand-logos/.meshcentral-logo-grey-icon.md +35 -0
  356. package/src/components/icons-v2-generated/brand-logos/.meshcentral-logo-icon.md +36 -0
  357. package/src/components/icons-v2-generated/buildings/.index.md +48 -0
  358. package/src/components/icons-v2-generated/charts/.index.md +40 -0
  359. package/src/components/icons-v2-generated/clothes/.index.md +48 -0
  360. package/src/components/icons-v2-generated/coding/.index.md +42 -0
  361. package/src/components/icons-v2-generated/communication/.index.md +39 -0
  362. package/src/components/icons-v2-generated/date-and-time/.index.md +29 -0
  363. package/src/components/icons-v2-generated/design/.index.md +39 -0
  364. package/src/components/icons-v2-generated/devices/.index.md +38 -0
  365. package/src/components/icons-v2-generated/documents/.index.md +38 -0
  366. package/src/components/icons-v2-generated/finance/.index.md +34 -0
  367. package/src/components/icons-v2-generated/food-and-drinks/.index.md +34 -0
  368. package/src/components/icons-v2-generated/food-and-drinks/.leafy-green-icon.md +36 -0
  369. package/src/components/icons-v2-generated/food-and-drinks/.strawberry-icon.md +39 -0
  370. package/src/components/icons-v2-generated/health/.index.md +40 -0
  371. package/src/components/icons-v2-generated/household/.index.md +45 -0
  372. package/src/components/icons-v2-generated/interface/.index.md +36 -0
  373. package/src/components/icons-v2-generated/map-and-travel/.index.md +41 -0
  374. package/src/components/icons-v2-generated/media-playback/.index.md +51 -0
  375. package/src/components/icons-v2-generated/number/.index.md +41 -0
  376. package/src/components/icons-v2-generated/school/.index.md +37 -0
  377. package/src/components/icons-v2-generated/security/.fingerprint-icon.md +38 -0
  378. package/src/components/icons-v2-generated/security/.index.md +39 -0
  379. package/src/components/icons-v2-generated/shopping/.index.md +42 -0
  380. package/src/components/icons-v2-generated/signs-and-symbols/.index.md +32 -0
  381. package/src/components/icons-v2-generated/sort-and-filter/.index.md +35 -0
  382. package/src/components/icons-v2-generated/sport/.index.md +41 -0
  383. package/src/components/icons-v2-generated/text-editor/.index.md +44 -0
  384. package/src/components/icons-v2-generated/users/.index.md +45 -0
  385. package/src/components/icons-v2-generated/vehicles-and-delivery/.index.md +36 -0
  386. package/src/components/icons-v2-generated/weather-and-nature/.flower-sakura-icon.md +36 -0
  387. package/src/components/icons-v2-generated/weather-and-nature/.index.md +34 -0
  388. package/src/components/layout/.article-detail-layout.md +43 -0
  389. package/src/components/layout/.back-button.md +40 -0
  390. package/src/components/layout/.list-page-layout.md +35 -26
  391. package/src/components/layout/.page-container.md +27 -38
  392. package/src/components/layout/.page-layout.md +50 -0
  393. package/src/components/layout/.title-block.md +42 -0
  394. package/src/components/loading/.card-skeleton.md +38 -29
  395. package/src/components/loading/.device-card-skeleton.md +29 -25
  396. package/src/components/loading/.index.md +39 -46
  397. package/src/components/loading/.margin-report-skeleton.md +45 -34
  398. package/src/components/loading/.organization-card-skeleton.md +39 -44
  399. package/src/components/loading/.page-layout-skeleton.md +34 -45
  400. package/src/components/loading/.unified-skeleton.md +62 -36
  401. package/src/components/navigation/.app-header.md +40 -29
  402. package/src/components/navigation/.app-layout.md +25 -26
  403. package/src/components/navigation/.header-global-search.md +34 -37
  404. package/src/components/navigation/.header-organization-filter.md +23 -22
  405. package/src/components/navigation/.header.md +31 -35
  406. package/src/components/navigation/.mobile-burger-menu.md +39 -47
  407. package/src/components/navigation/.mobile-nav-panel.md +51 -32
  408. package/src/components/navigation/.navigation-sidebar-header.md +36 -0
  409. package/src/components/navigation/.navigation-sidebar-item.md +45 -0
  410. package/src/components/navigation/.navigation-sidebar-toggle.md +38 -0
  411. package/src/components/navigation/.navigation-sidebar.md +33 -34
  412. package/src/components/navigation/.sliding-sidebar.md +52 -41
  413. package/src/components/navigation/.sticky-section-nav.md +56 -48
  414. package/src/components/platform/.ScriptArguments.md +39 -25
  415. package/src/components/platform/.ScriptInfoSection.md +30 -26
  416. package/src/components/platform/.ShellTypeBadge.md +18 -13
  417. package/src/components/platform/.SoftwareInfo.md +23 -27
  418. package/src/components/platform/.SoftwareSourceBadge.md +28 -19
  419. package/src/components/platform/.ToolBadge.md +25 -26
  420. package/src/components/providers/.theme-provider.md +52 -0
  421. package/src/components/shared/delivery/.delivery-lists.md +39 -0
  422. package/src/components/shared/delivery/.delivery-row.md +41 -0
  423. package/src/components/shared/delivery/.delivery-table.md +41 -0
  424. package/src/components/shared/delivery/.index.md +38 -0
  425. package/src/components/shared/dev-section/.dev-card-row.md +60 -0
  426. package/src/components/shared/dev-section/.dev-section-page.md +48 -0
  427. package/src/components/shared/dev-section/.dev-section-view.md +43 -0
  428. package/src/components/shared/dev-section/.index.md +38 -0
  429. package/src/components/shared/legal-document/.index.md +40 -0
  430. package/src/components/shared/legal-document/.legal-document-page.md +50 -0
  431. package/src/components/shared/legal-document/.use-legal-docs.md +42 -0
  432. package/src/components/shared/onboarding/.onboarding-step-card.md +32 -31
  433. package/src/components/shared/onboarding/.onboarding-walkthrough.md +39 -43
  434. package/src/components/shared/product-release/.index.md +28 -30
  435. package/src/components/shared/product-release/.product-release-card-skeleton.md +28 -28
  436. package/src/components/shared/product-release/.product-release-card.md +45 -27
  437. package/src/components/shared/product-release/.release-detail-page.md +23 -24
  438. package/src/components/shared/roadmap/.index.md +37 -0
  439. package/src/components/shared/roadmap/.roadmap-grid-skeleton.md +39 -0
  440. package/src/components/shared/roadmap/.roadmap-grid.md +66 -0
  441. package/src/components/shared/roadmap/.use-roadmap-voting.md +68 -0
  442. package/src/components/tickets/.help-center-card.md +51 -0
  443. package/src/components/tickets/.help-center-create-form.md +38 -0
  444. package/src/components/tickets/.help-center-list.md +40 -0
  445. package/src/components/tickets/.index.md +65 -0
  446. package/src/components/tickets/.ticket-center.md +51 -0
  447. package/src/components/tickets/.ticket-detail-drawer.md +48 -0
  448. package/src/components/tickets/.ticket-linked-delivery-card.md +36 -0
  449. package/src/components/tickets/.ticket-open-form.md +50 -0
  450. package/src/components/tickets/.ticket-row.md +30 -0
  451. package/src/components/tickets/.types.md +57 -0
  452. package/src/components/tickets/hooks/.use-ticket-actions.md +77 -0
  453. package/src/components/tickets/hooks/.use-ticket-engagements.md +42 -0
  454. package/src/components/tickets/hooks/.use-tickets-list.md +54 -0
  455. package/src/components/ui/.actions-menu.md +66 -41
  456. package/src/components/ui/.alert-dialog.md +29 -26
  457. package/src/components/ui/.allowed-domains-input.md +29 -21
  458. package/src/components/ui/.assignee-dropdown.md +45 -0
  459. package/src/components/ui/.autocomplete.md +47 -41
  460. package/src/components/ui/.benefit-card.md +51 -36
  461. package/src/components/ui/.brand-association-card.md +30 -27
  462. package/src/components/ui/.breadcrumb.md +17 -15
  463. package/src/components/ui/.checkbox-block.md +39 -35
  464. package/src/components/ui/.checkbox-with-description.md +23 -16
  465. package/src/components/ui/.checkbox.md +31 -23
  466. package/src/components/ui/.circular-progress.md +49 -19
  467. package/src/components/ui/.content-loader.md +32 -20
  468. package/src/components/ui/.cursor-pagination.md +41 -52
  469. package/src/components/ui/.dashboard-info-card.md +33 -26
  470. package/src/components/ui/.date-picker.md +27 -25
  471. package/src/components/ui/.device-card-compact.md +28 -29
  472. package/src/components/ui/.device-card.md +27 -27
  473. package/src/components/ui/.dialog.md +25 -16
  474. package/src/components/ui/.drawer.md +86 -0
  475. package/src/components/ui/.dropdown-button.md +45 -0
  476. package/src/components/ui/.entity-image.md +46 -0
  477. package/src/components/ui/.error-state.md +41 -28
  478. package/src/components/ui/.feature-card.md +35 -31
  479. package/src/components/ui/.feature-list.md +48 -0
  480. package/src/components/ui/.field-wrapper.md +47 -0
  481. package/src/components/ui/.file-upload.md +42 -0
  482. package/src/components/ui/.filter-checkbox-item.md +43 -0
  483. package/src/components/ui/.filter-list.md +57 -0
  484. package/src/components/ui/.filter-modal.md +59 -0
  485. package/src/components/ui/.floating-tooltip.md +43 -26
  486. package/src/components/ui/.hidden-tags-popup.md +49 -0
  487. package/src/components/ui/.hover-dropdown.md +54 -0
  488. package/src/components/ui/.image-gallery-modal.md +41 -34
  489. package/src/components/ui/.image-uploader.md +53 -0
  490. package/src/components/ui/.index.md +40 -34
  491. package/src/components/ui/.info-card.md +31 -31
  492. package/src/components/ui/.info-row.md +31 -27
  493. package/src/components/ui/.input-trigger.md +44 -0
  494. package/src/components/ui/.input.md +37 -31
  495. package/src/components/ui/.markdown-editor.md +57 -0
  496. package/src/components/ui/.modal-v2.md +51 -0
  497. package/src/components/ui/.modal.md +32 -31
  498. package/src/components/ui/.more-actions-menu.md +45 -38
  499. package/src/components/ui/.organization-card.md +31 -37
  500. package/src/components/ui/.page-actions.md +44 -54
  501. package/src/components/ui/.phone-input.md +54 -0
  502. package/src/components/ui/.progress-bar.md +35 -27
  503. package/src/components/ui/.radio-group.md +39 -27
  504. package/src/components/ui/.release-changelog-section.md +34 -34
  505. package/src/components/ui/.search-input.md +48 -0
  506. package/src/components/ui/.select.md +54 -34
  507. package/src/components/ui/.service-card.md +42 -40
  508. package/src/components/ui/.sheet.md +27 -18
  509. package/src/components/ui/.simple-markdown-renderer.md +29 -31
  510. package/src/components/ui/.sort-column-item.md +42 -0
  511. package/src/components/ui/.square-avatar.md +34 -24
  512. package/src/components/ui/.status-badge.md +26 -38
  513. package/src/components/ui/.switch.md +22 -35
  514. package/src/components/ui/.tab-navigation.md +56 -53
  515. package/src/components/ui/.tab-selector.md +40 -0
  516. package/src/components/ui/.tag-key-value-filter.md +56 -0
  517. package/src/components/ui/.tag-search-input.md +53 -0
  518. package/src/components/ui/.tag.md +49 -31
  519. package/src/components/ui/.tags-manager.md +60 -0
  520. package/src/components/ui/.textarea.md +44 -34
  521. package/src/components/ui/.ticket-attachments-list.md +45 -0
  522. package/src/components/ui/.ticket-detail-section.md +29 -0
  523. package/src/components/ui/.ticket-info-section.md +56 -0
  524. package/src/components/ui/.ticket-note-card.md +53 -0
  525. package/src/components/ui/.ticket-notes-section.md +54 -0
  526. package/src/components/ui/.ticket-status-tag.md +49 -0
  527. package/src/components/ui/.title-content-block.md +25 -26
  528. package/src/components/ui/.toaster.md +40 -28
  529. package/src/components/ui/.tooltip.md +22 -11
  530. package/src/components/ui/.truncate-text.md +39 -0
  531. package/src/components/ui/button/.button-styles.md +35 -0
  532. package/src/components/ui/button/.button.md +53 -0
  533. package/src/components/ui/button/.split-button.md +48 -0
  534. package/src/components/ui/data-table/.data-table-body.md +48 -0
  535. package/src/components/ui/data-table/.data-table-column-filter.md +45 -0
  536. package/src/components/ui/data-table/.data-table-cursor-footer.md +45 -0
  537. package/src/components/ui/data-table/.data-table-empty.md +43 -0
  538. package/src/components/ui/data-table/.data-table-header.md +55 -0
  539. package/src/components/ui/data-table/.data-table-infinite-footer.md +44 -0
  540. package/src/components/ui/data-table/.data-table-row-count.md +43 -0
  541. package/src/components/ui/data-table/.data-table-row.md +47 -0
  542. package/src/components/ui/data-table/.data-table-skeleton.md +42 -0
  543. package/src/components/ui/data-table/.data-table.md +47 -0
  544. package/src/components/ui/data-table/.index.md +55 -0
  545. package/src/components/ui/data-table/.types.md +54 -0
  546. package/src/components/ui/data-table/.use-data-table.md +45 -0
  547. package/src/components/ui/data-table/.utils.md +38 -0
  548. package/src/components/ui/file-manager/.file-manager-action-bar.md +39 -30
  549. package/src/components/ui/file-manager/.file-manager-breadcrumb.md +29 -27
  550. package/src/components/ui/file-manager/.file-manager-context-menu.md +38 -42
  551. package/src/components/ui/file-manager/.file-manager-empty.md +26 -39
  552. package/src/components/ui/file-manager/.file-manager-table-row.md +33 -41
  553. package/src/components/ui/file-manager/.file-manager.md +35 -31
  554. package/src/components/ui/query-report-table/.index.md +43 -0
  555. package/src/components/ui/query-report-table/.query-report-table-header.md +36 -0
  556. package/src/components/ui/query-report-table/.query-report-table-row.md +40 -0
  557. package/src/components/ui/query-report-table/.query-report-table-skeleton.md +44 -0
  558. package/src/components/ui/query-report-table/.query-report-table.md +47 -0
  559. package/src/components/ui/query-report-table/.types.md +41 -0
  560. package/src/components/ui/query-report-table/.utils.md +35 -0
  561. package/src/components/ui/table/.index.md +27 -48
  562. package/src/components/ui/table/.table-cell.md +18 -27
  563. package/src/components/ui/table/.table-column-filter-dropdown.md +40 -0
  564. package/src/components/ui/table/.table-description-cell.md +24 -14
  565. package/src/components/ui/table/.table-empty-state.md +21 -22
  566. package/src/components/ui/table/.table-header.md +25 -40
  567. package/src/components/ui/table/.table-row.md +22 -40
  568. package/src/components/ui/table/.table-skeleton.md +33 -26
  569. package/src/components/ui/table/.table-timestamp-cell.md +26 -16
  570. package/src/components/ui/table/.table.md +39 -59
  571. package/src/components/ui/table/.types.md +44 -36
  572. package/src/components/ui/table/.utils.md +18 -20
  573. package/src/contexts/.chat-runtime-context.md +54 -0
  574. package/src/contexts/.endpoints-runtime-context.md +58 -0
  575. package/src/contexts/.index.md +53 -0
  576. package/src/contexts/.use-outer-or-default.md +36 -0
  577. package/src/embed-shims/.index.md +45 -0
  578. package/src/embed-shims/.next-dynamic.md +43 -0
  579. package/src/embed-shims/.next-image.md +45 -0
  580. package/src/embed-shims/.next-link.md +59 -0
  581. package/src/embed-shims/.next-navigation.md +59 -0
  582. package/src/hooks/.index.md +34 -29
  583. package/src/hooks/.use-access-code-integration.md +49 -0
  584. package/src/hooks/.use-contact-submission.md +37 -26
  585. package/src/hooks/.use-copy-to-clipboard.md +42 -0
  586. package/src/hooks/.use-near-viewport.md +44 -0
  587. package/src/hooks/.use-og-placeholder.md +51 -0
  588. package/src/hooks/.use-toast.md +36 -35
  589. package/src/hooks/state/.use-api-params.md +29 -46
  590. package/src/hooks/state/.use-query-params.md +37 -33
  591. package/src/hooks/ui/.index.md +33 -32
  592. package/src/hooks/ui/.use-auto-limit-tags.md +54 -0
  593. package/src/hooks/ui/.use-horizontal-scrollbar.md +74 -0
  594. package/src/hooks/ui/.use-image-edge-color.md +42 -0
  595. package/src/hooks/ui/.use-media-query.md +33 -25
  596. package/src/hooks/ui/.use-search.md +51 -0
  597. package/src/nats/.nats.md +49 -28
  598. package/src/schemas/.contact-schema.md +45 -0
  599. package/src/stories/.AnnouncementBar.stories.md +45 -0
  600. package/src/stories/.AppLayout.stories.md +20 -21
  601. package/src/stories/.Autocomplete.stories.md +48 -34
  602. package/src/stories/.Board.stories.md +35 -0
  603. package/src/stories/.Button.stories.md +36 -33
  604. package/src/stories/.ChatTicketList.stories.md +33 -0
  605. package/src/stories/.CheckboxBlock.stories.md +40 -28
  606. package/src/stories/.ContentLoader.stories.md +47 -0
  607. package/src/stories/.DashboardInfoCard.stories.md +57 -0
  608. package/src/stories/.DataTable.stories.md +41 -0
  609. package/src/stories/.DatePicker.stories.md +66 -52
  610. package/src/stories/.DeviceCard.stories.md +41 -40
  611. package/src/stories/.DeviceCardCompact.stories.md +41 -0
  612. package/src/stories/.DotsLoaderIcon.stories.md +36 -0
  613. package/src/stories/.Drawer.stories.md +58 -0
  614. package/src/stories/.EmbeddableChat.stories.md +41 -0
  615. package/src/stories/.FileManager.stories.md +41 -0
  616. package/src/stories/.FileManagerActionBar.stories.md +38 -0
  617. package/src/stories/.FileUpload.stories.md +53 -0
  618. package/src/stories/.FilterList.stories.md +54 -0
  619. package/src/stories/.FilterModal.stories.md +72 -0
  620. package/src/stories/.FiltersDropdown.stories.md +57 -0
  621. package/src/stories/.Header.stories.md +48 -0
  622. package/src/stories/.ImageUploader.stories.md +49 -0
  623. package/src/stories/.InfoCard.stories.md +54 -0
  624. package/src/stories/.Input.stories.md +48 -30
  625. package/src/stories/.ListPageLayout.stories.md +56 -43
  626. package/src/stories/.MingoOnboardingCard.stories.md +42 -0
  627. package/src/stories/.MingoOnboardingCardSkeleton.stories.md +35 -0
  628. package/src/stories/.Modal.stories.md +40 -31
  629. package/src/stories/.NotificationDrawer.stories.md +55 -0
  630. package/src/stories/.OnboardingStepCard.stories.md +41 -0
  631. package/src/stories/.OrganizationCard.stories.md +61 -0
  632. package/src/stories/.PageActions.stories.md +52 -49
  633. package/src/stories/.PageContainer.stories.md +41 -35
  634. package/src/stories/.PageLayout.stories.md +60 -0
  635. package/src/stories/.ParallaxImageShowcase.stories.md +49 -0
  636. package/src/stories/.PhoneInput.stories.md +53 -0
  637. package/src/stories/.QueryReportTable.stories.md +44 -0
  638. package/src/stories/.RadioGroup.stories.md +46 -0
  639. package/src/stories/.RadioGroupBlock.stories.md +45 -0
  640. package/src/stories/.Select.stories.md +29 -15
  641. package/src/stories/.SlashCommandSuggestions.stories.md +41 -0
  642. package/src/stories/.SplitButton.stories.md +62 -0
  643. package/src/stories/.TabNavigation.stories.md +47 -38
  644. package/src/stories/.TabSelector.stories.md +65 -0
  645. package/src/stories/.Table.stories.md +38 -46
  646. package/src/stories/.TableColumnFilterDropdown.stories.md +46 -0
  647. package/src/stories/.Tag.stories.md +43 -32
  648. package/src/stories/.TagKeyValueFilter.stories.md +44 -0
  649. package/src/stories/.TagSearchInput.stories.md +61 -0
  650. package/src/stories/.Textarea.stories.md +49 -26
  651. package/src/stories/.Theme.stories.md +41 -0
  652. package/src/stories/.TicketAttachmentsList.stories.md +39 -0
  653. package/src/stories/.TicketDescriptionViewer.stories.md +39 -0
  654. package/src/stories/.TicketInfoSection.stories.md +40 -0
  655. package/src/stories/.TicketKnowledgeBaseList.stories.md +36 -0
  656. package/src/stories/.TicketNotesSection.stories.md +50 -0
  657. package/src/stories/.Toaster.stories.md +40 -0
  658. package/src/stories/.ToolExecutionDisplay.stories.md +41 -0
  659. package/src/stories/.Tooltip.stories.md +41 -0
  660. package/src/stories/.UserSummary.stories.md +41 -0
  661. package/src/stories/.WaitlistForm.stories.md +42 -0
  662. package/src/stories/BlogCard.stories.tsx +61 -0
  663. package/src/stories/CampaignCardAdmin.stories.tsx +52 -0
  664. package/src/stories/CaseStudyCard.stories.tsx +42 -0
  665. package/src/stories/ChatContainer.stories.tsx +186 -0
  666. package/src/stories/ChatInlineVideoPill.stories.tsx +63 -0
  667. package/src/stories/CustomerInterviewCard.stories.tsx +42 -0
  668. package/src/stories/DataRoomDocCard.stories.tsx +52 -0
  669. package/src/stories/GenericEntityCard.stories.tsx +66 -0
  670. package/src/stories/GitHubActivityCard.stories.tsx +61 -0
  671. package/src/stories/HubspotTicketCard.stories.tsx +98 -0
  672. package/src/stories/InvestorUpdateCard.stories.tsx +42 -0
  673. package/src/stories/OnboardingGuideCard.stories.tsx +52 -0
  674. package/src/stories/ProductReleaseCard.stories.tsx +61 -0
  675. package/src/stories/ProgramCard.stories.tsx +79 -0
  676. package/src/stories/RoadmapCard.stories.tsx +75 -0
  677. package/src/stories/SlackMessageCard.stories.tsx +41 -0
  678. package/src/stories/__fixtures__/chat-cards.ts +604 -0
  679. package/src/types/.blog.md +53 -29
  680. package/src/types/.case-study.md +44 -27
  681. package/src/types/.customer-interview.md +66 -44
  682. package/src/types/.delivery.md +40 -0
  683. package/src/types/.employee.md +24 -30
  684. package/src/types/.index.md +33 -47
  685. package/src/types/.marketing.md +49 -44
  686. package/src/types/.navigation.md +33 -25
  687. package/src/types/.os.types.md +32 -27
  688. package/src/types/.platform.md +31 -28
  689. package/src/types/.product-release.md +65 -38
  690. package/src/types/.supabase.md +37 -29
  691. package/src/types/.team.md +41 -33
  692. package/src/types/.video-processing.md +54 -0
  693. package/src/types/.waitlist.md +40 -36
  694. package/src/utils/.access-code-client.md +37 -36
  695. package/src/utils/.cn.md +31 -23
  696. package/src/utils/.color-analysis.md +35 -0
  697. package/src/utils/.country-phone-utils.md +39 -0
  698. package/src/utils/.date-formatters.md +19 -18
  699. package/src/utils/.embed-authed-fetch.md +39 -0
  700. package/src/utils/.embed-proxy-auth-storage.md +38 -0
  701. package/src/utils/.fetch-priority.md +41 -0
  702. package/src/utils/.format.md +74 -25
  703. package/src/utils/.generic-domain-utils.md +42 -0
  704. package/src/utils/.image-proxy.md +59 -23
  705. package/src/utils/.index.md +42 -49
  706. package/src/utils/.local-storage-adapter.md +50 -0
  707. package/src/utils/.ods-color-utils.md +55 -38
  708. package/src/utils/.platform-config.md +45 -25
  709. package/src/utils/.scroll-into-view.md +40 -0
  710. package/src/utils/.source-icons.md +53 -0
  711. package/src/utils/.sse-decision-frame.md +46 -0
  712. package/src/utils/dev-sections/.index.md +34 -0
  713. package/src/utils/dev-sections/.openframe-dev-sections.md +49 -0
  714. package/dist/chunk-ZDF6F7ED.cjs.map +0 -1
  715. package/dist/chunk-ZTJVRSN5.js.map +0 -1
  716. package/src/components/.card.md +0 -42
  717. package/src/components/.contact-button.md +0 -30
  718. package/src/components/.drawer.md +0 -46
  719. package/src/components/.fixed-layout-container.md +0 -47
  720. package/src/components/.footer-waitlist-card.md +0 -29
  721. package/src/components/.join-waitlist-cta.md +0 -29
  722. package/src/components/.sheet.md +0 -47
  723. package/src/components/.sliding-panel.md +0 -48
  724. package/src/components/.tooltip.md +0 -48
  725. package/src/components/.use-mobile.md +0 -42
  726. package/src/components/.vendor-compact-card.md +0 -66
  727. package/src/components/.x-button.md +0 -42
  728. package/src/components/features/.github-repo-button.md +0 -40
  729. package/src/components/features/.organization-icon.md +0 -47
  730. package/src/components/features/.organization-selector.md +0 -45
  731. package/src/components/icons/.fleet-icon.md +0 -39
  732. package/src/components/icons/.meshcentral-icon.md +0 -35
  733. package/src/components/icons/.refresh-icon.md +0 -34
  734. package/src/components/icons/.tactical-icon.md +0 -35
  735. package/src/components/ui/.button.md +0 -69
  736. package/src/components/ui/.log-table-row.md +0 -47
  737. package/src/components/ui/.selectable-device-card.md +0 -46
  738. package/src/hooks/.api-hooks-stub.md +0 -45
  739. package/src/hooks/api/.use-product-releases.md +0 -53
  740. package/src/stories/.OrganizationSelector.stories.md +0 -42
  741. package/src/stories/.SelectableDeviceCard.stories.md +0 -30
  742. package/src/utils/.lite-youtube-embed-stub.md +0 -37
  743. package/src/utils/.lite-youtube-embed.md +0 -33
  744. /package/dist/{chunk-3JWIJJ44.js.map → chunk-5OWDOFKK.js.map} +0 -0
  745. /package/dist/{chunk-IK2X5YJU.js.map → chunk-HWY35EAK.js.map} +0 -0
@@ -1,48 +1,52 @@
1
- <!-- source-hash: bbddedb267b92c11a666b6cf20ee7915 -->
2
- A comprehensive alert dialog component built on top of Radix UI primitives with custom styling and animations. This provides a complete set of composable components for creating accessible confirmation dialogs and alerts.
1
+ <!-- source-hash: 935e51d8951204b9160ca16e9245ae95 -->
2
+ Accessible alert dialog component built on Radix UI's `AlertDialogPrimitive`, providing a styled modal for confirmations and destructive actions that require explicit user acknowledgment.
3
3
 
4
4
  ## Key Components
5
5
 
6
- - **AlertDialog** - Root container component
7
- - **AlertDialogTrigger** - Element that opens the dialog
8
- - **AlertDialogContent** - Main dialog container with overlay and animations
9
- - **AlertDialogOverlay** - Semi-transparent backdrop
10
- - **AlertDialogHeader/Footer** - Layout components for organizing content
11
- - **AlertDialogTitle/Description** - Text content components
12
- - **AlertDialogAction/Cancel** - Action buttons with proper styling
6
+ | Export | Description |
7
+ |--------|-------------|
8
+ | `AlertDialog` | Root wrapper (re-export of Radix `Root`) |
9
+ | `AlertDialogTrigger` | Element that opens the dialog |
10
+ | `AlertDialogPortal` | Renders dialog outside the DOM tree |
11
+ | `AlertDialogOverlay` | Animated dark backdrop (`bg-black/80`) with fade in/out |
12
+ | `AlertDialogContent` | Centered modal panel with zoom/slide animations |
13
+ | `AlertDialogHeader` | Top section for title and description |
14
+ | `AlertDialogFooter` | Bottom action area, stacked on mobile / row on desktop |
15
+ | `AlertDialogTitle` | Semibold heading (`text-lg font-semibold`) |
16
+ | `AlertDialogDescription` | Muted supporting text (`text-sm text-muted-foreground`) |
17
+ | `AlertDialogAction` | Confirm button styled via `buttonVariants()` |
18
+ | `AlertDialogCancel` | Dismiss button using `buttonVariants({ variant: "outline" })` |
13
19
 
14
20
  ## Usage Example
15
21
 
16
22
  ```typescript
17
23
  import {
18
24
  AlertDialog,
19
- AlertDialogAction,
20
- AlertDialogCancel,
25
+ AlertDialogTrigger,
21
26
  AlertDialogContent,
22
- AlertDialogDescription,
23
- AlertDialogFooter,
24
27
  AlertDialogHeader,
25
28
  AlertDialogTitle,
26
- AlertDialogTrigger,
29
+ AlertDialogDescription,
30
+ AlertDialogFooter,
31
+ AlertDialogAction,
32
+ AlertDialogCancel,
27
33
  } from "./alert-dialog"
28
34
 
29
- function DeleteConfirmation() {
35
+ export function DeleteConfirmation() {
30
36
  return (
31
37
  <AlertDialog>
32
- <AlertDialogTrigger asChild>
33
- <button>Delete Item</button>
34
- </AlertDialogTrigger>
38
+ <AlertDialogTrigger>Delete Device</AlertDialogTrigger>
35
39
  <AlertDialogContent>
36
40
  <AlertDialogHeader>
37
- <AlertDialogTitle>Are you sure?</AlertDialogTitle>
41
+ <AlertDialogTitle>Are you absolutely sure?</AlertDialogTitle>
38
42
  <AlertDialogDescription>
39
- This action cannot be undone. This will permanently delete the item.
43
+ This will permanently remove the device from your fleet.
40
44
  </AlertDialogDescription>
41
45
  </AlertDialogHeader>
42
46
  <AlertDialogFooter>
43
47
  <AlertDialogCancel>Cancel</AlertDialogCancel>
44
- <AlertDialogAction onClick={() => console.log("Deleted")}>
45
- Delete
48
+ <AlertDialogAction onClick={handleDelete}>
49
+ Continue
46
50
  </AlertDialogAction>
47
51
  </AlertDialogFooter>
48
52
  </AlertDialogContent>
@@ -51,4 +55,4 @@ function DeleteConfirmation() {
51
55
  }
52
56
  ```
53
57
 
54
- The dialog includes smooth fade and zoom animations, responsive design, and follows accessibility best practices through Radix UI primitives.
58
+ > All animations are driven by Radix `data-[state]` attributes, ensuring accessible open/close transitions with no extra state management required.
@@ -1,35 +1,40 @@
1
- <!-- source-hash: bd23968cf231aeb2cf4be0beba5bbfc5 -->
2
- A client-side React component that displays a dismissible announcement bar across the top of the application. The component fetches active announcements from the server, handles platform-specific caching and dismissal states, and provides responsive mobile-first design with optional CTA buttons.
1
+ <!-- source-hash: cbe120bea34edef14f05fff077b0b285 -->
2
+ A client-side React component that renders a dismissible announcement banner, fetching active announcements from a configured API endpoint with localStorage-based caching and per-announcement dismissal persistence.
3
3
 
4
4
  ## Key Components
5
5
 
6
- - **AnnouncementBar**: Main React component that manages announcement display state and user interactions
7
- - **fetchActiveAnnouncement()**: Async function that retrieves active announcements from `/api/announcements/active`
8
- - **handleDismiss()**: User action handler that stores dismissal state in localStorage with platform-specific keys
9
- - **handleCtaClick()**: CTA button click handler that opens links based on target preference
10
- - **renderIcon()**: Helper that renders either PNG images or SVG icons using the icon-utils system
11
- - **getSvgIcon()**: Wrapper function that standardizes SVG icon rendering with responsive sizing
6
+ | Export/Function | Description |
7
+ |----------------|-------------|
8
+ | `AnnouncementBar` | Main component renders the announcement banner or `null` if hidden/dismissed |
9
+ | `fetchActiveAnnouncement` | Fetches the active announcement from `announcementsUrl`, updates state and localStorage cache |
10
+ | `handleDismiss` | Marks the current announcement as dismissed in localStorage and hides the bar |
11
+ | `handleCtaClick` | Navigates to the CTA URL, respecting `_blank` target for new-tab behavior |
12
+ | `renderIcon` | Renders either a PNG `<Image>` or an SVG icon based on `announcement.icon_type` |
13
+ | `getSvgIcon` | Thin wrapper around `renderSvgIcon` applying size-appropriate Tailwind classes |
14
+
15
+ ## Behavior Notes
16
+
17
+ - **Instant paint**: On mount, the cached announcement from localStorage is applied synchronously before the API response arrives.
18
+ - **Polling**: Refreshes every 5 minutes via `setInterval`; interval restarts if `announcementsUrl` changes.
19
+ - **No provider fallback**: When `useEndpointsRuntime` returns no URL, polling is skipped entirely — cached data still renders.
20
+ - **Platform-scoped keys**: localStorage keys are prefixed with the platform type (via `getAppType()`) to prevent key collisions across apps.
21
+ - **Responsive CTA**: The CTA button is desktop-only; on mobile, tapping the content area triggers `handleCtaClick` directly.
12
22
 
13
23
  ## Usage Example
14
24
 
15
25
  ```typescript
16
- import { AnnouncementBar } from './components/announcement-bar';
26
+ // Wrap your app with the endpoints provider, then drop in the bar:
27
+ import { AnnouncementBar } from './announcement-bar';
28
+ import { EndpointsRuntimeProvider } from '../contexts/endpoints-runtime-context';
17
29
 
18
- export default function Layout({ children }: { children: React.ReactNode }) {
30
+ function AppShell() {
19
31
  return (
20
- <div>
32
+ <EndpointsRuntimeProvider announcementsUrl="/api/announcements/active">
21
33
  <AnnouncementBar />
22
- <main>{children}</main>
23
- </div>
34
+ <main>{/* app content */}</main>
35
+ </EndpointsRuntimeProvider>
24
36
  );
25
37
  }
26
-
27
- // The component automatically:
28
- // - Fetches announcements on mount
29
- // - Uses cached data for instant rendering
30
- // - Refreshes every 5 minutes
31
- // - Handles platform-specific dismissals (OpenFrame vs Flamingo)
32
- // - Provides mobile-optimized interactions
33
38
  ```
34
39
 
35
- The component integrates with the announcement storage utilities and respects platform-specific configuration through the app-config system, ensuring proper data isolation between different application contexts.
40
+ > **Note:** The component renders nothing (`null`) when no active announcement exists, when the fetch URL is unconfigured, or when the user has previously dismissed the current announcement.
@@ -1,15 +1,17 @@
1
- <!-- source-hash: b2961e8d88031f10470397a6791442ed -->
2
- A comprehensive breadcrumb navigation component built with React and TypeScript that provides accessible navigation trails with customizable separators and ellipsis handling for long paths.
1
+ <!-- source-hash: 7dab09d7ecaf9eacb41a428d82640701 -->
2
+ Accessible breadcrumb navigation component built with Radix UI's `Slot` primitive, providing a composable set of sub-components for rendering hierarchical navigation trails.
3
3
 
4
4
  ## Key Components
5
5
 
6
- - **Breadcrumb** - Main navigation container with `nav` element and breadcrumb aria-label
7
- - **BreadcrumbList** - Ordered list wrapper with responsive flex layout and text styling
8
- - **BreadcrumbItem** - Individual breadcrumb item container with inline flex layout
9
- - **BreadcrumbLink** - Interactive link component with hover effects and optional `asChild` prop for custom rendering
10
- - **BreadcrumbPage** - Current page indicator with proper ARIA attributes (non-interactive)
11
- - **BreadcrumbSeparator** - Visual separator between items, defaults to ChevronRight icon
12
- - **BreadcrumbEllipsis** - Truncation indicator using MoreHorizontal icon for long paths
6
+ | Export | Type | Description |
7
+ |--------|------|-------------|
8
+ | `Breadcrumb` | `nav` wrapper | Root container with `aria-label="breadcrumb"` |
9
+ | `BreadcrumbList` | `ol` element | Flex-wrapped ordered list of breadcrumb items |
10
+ | `BreadcrumbItem` | `li` element | Individual breadcrumb entry wrapper |
11
+ | `BreadcrumbLink` | `a` element | Clickable link with hover color transition; supports `asChild` for custom renderers |
12
+ | `BreadcrumbPage` | `span` element | Non-interactive current page indicator (`aria-current="page"`) |
13
+ | `BreadcrumbSeparator` | `li` element | Decorative separator defaulting to `ChevronRight` icon |
14
+ | `BreadcrumbEllipsis` | `span` element | Collapsed items indicator using `MoreHorizontal` icon |
13
15
 
14
16
  ## Usage Example
15
17
 
@@ -22,9 +24,9 @@ import {
22
24
  BreadcrumbPage,
23
25
  BreadcrumbSeparator,
24
26
  BreadcrumbEllipsis,
25
- } from "./breadcrumb"
27
+ } from "@/components/breadcrumb"
26
28
 
27
- function Navigation() {
29
+ export function AppBreadcrumb() {
28
30
  return (
29
31
  <Breadcrumb>
30
32
  <BreadcrumbList>
@@ -33,18 +35,20 @@ function Navigation() {
33
35
  </BreadcrumbItem>
34
36
  <BreadcrumbSeparator />
35
37
  <BreadcrumbItem>
36
- <BreadcrumbLink href="/docs">Documentation</BreadcrumbLink>
38
+ <BreadcrumbEllipsis />
37
39
  </BreadcrumbItem>
38
40
  <BreadcrumbSeparator />
39
41
  <BreadcrumbItem>
40
- <BreadcrumbEllipsis />
42
+ <BreadcrumbLink href="/clients">Clients</BreadcrumbLink>
41
43
  </BreadcrumbItem>
42
44
  <BreadcrumbSeparator />
43
45
  <BreadcrumbItem>
44
- <BreadcrumbPage>Current Page</BreadcrumbPage>
46
+ <BreadcrumbPage>Acme Corp</BreadcrumbPage>
45
47
  </BreadcrumbItem>
46
48
  </BreadcrumbList>
47
49
  </Breadcrumb>
48
50
  )
49
51
  }
50
- ```
52
+ ```
53
+
54
+ > **`asChild` pattern:** Pass `asChild` to `BreadcrumbLink` to delegate rendering to a child component (e.g., a router `Link`), forwarding all props via Radix UI's `Slot`.
@@ -1,46 +1,51 @@
1
- <!-- source-hash: f3005c5dada61ba6352cbb0a2c9ba87f -->
2
- A React calendar component built on top of `react-day-picker` with customized styling and navigation controls for date selection interfaces.
1
+ <!-- source-hash: f8ae158ddc696cfb68419e4860069278 -->
2
+ A styled calendar component wrapping `react-day-picker`'s `DayPicker` with Flamingo/Tailwind design tokens and accessible navigation icons.
3
3
 
4
4
  ## Key Components
5
5
 
6
- - **Calendar**: Main calendar component that wraps `DayPicker` with custom styling
7
- - **CalendarProps**: TypeScript type extending `DayPicker` component props
8
- - **Custom Navigation**: Uses Lucide React chevron icons for month navigation
9
- - **Tailwind Classes**: Comprehensive styling for all calendar states and elements
6
+ - **`Calendar`** Main export; a thin wrapper around `DayPicker` that applies consistent Tailwind class names for layout, navigation, day cells, selected/range/today states, and outside-day visibility.
7
+ - **`CalendarProps`** Re-exported type alias for `React.ComponentProps<typeof DayPicker>`, allowing full passthrough of any `DayPicker` prop.
8
+ - **`Chevron` override** Replaces the default DayPicker navigation icon with `lucide-react`'s `ChevronLeft` at a fixed `h-4 w-4` size.
10
9
 
11
10
  ## Usage Example
12
11
 
13
12
  ```typescript
14
- import { Calendar } from "./calendar"
13
+ import { Calendar } from "@/components/calendar"
14
+ import { useState } from "react"
15
15
 
16
- // Basic calendar
17
- function DatePicker() {
18
- const [date, setDate] = React.useState<Date | undefined>(new Date())
16
+ export function DatePicker() {
17
+ const [selected, setSelected] = useState<Date>()
19
18
 
20
19
  return (
21
20
  <Calendar
22
21
  mode="single"
23
- selected={date}
24
- onSelect={setDate}
25
- className="rounded-md border"
22
+ selected={selected}
23
+ onSelect={setSelected}
24
+ showOutsideDays={false}
26
25
  />
27
26
  )
28
27
  }
28
+ ```
29
+
30
+ ```typescript
31
+ // Date range selection
32
+ import { DateRange } from "react-day-picker"
29
33
 
30
- // Date range picker
31
- function DateRangePicker() {
32
- const [range, setRange] = React.useState<DateRange | undefined>()
34
+ export function RangePicker() {
35
+ const [range, setRange] = useState<DateRange>()
33
36
 
34
37
  return (
35
38
  <Calendar
36
39
  mode="range"
37
40
  selected={range}
38
41
  onSelect={setRange}
39
- numberOfMonths={2}
40
- showOutsideDays={false}
41
42
  />
42
43
  )
43
44
  }
44
45
  ```
45
46
 
46
- The component provides comprehensive styling for selected dates, today's date, disabled dates, and range selections, making it suitable for various date picking scenarios in forms and interfaces.
47
+ ## Notes
48
+
49
+ - `showOutsideDays` defaults to `true`; pass `false` to hide days from adjacent months.
50
+ - Custom `classNames` are merged via spread (`...classNames`), so individual slot styles can be overridden per instance.
51
+ - The `Chevron` component override is cast with `as any` to satisfy DayPicker's internal component map typing.
@@ -1,37 +1,42 @@
1
- <!-- source-hash: e9b736a7607c06a157802f282b8c1181 -->
2
- A React component that renders an interactive category card displaying vendor logos, category information, and navigation for the Flamingo MSP platform's vendor directory.
1
+ <!-- source-hash: 7161864532df5559c1bd18aba5ddcb23 -->
2
+ A clickable card component that displays a product/vendor category with its associated vendor icons, subcategory count, and product count, linking to a filtered vendor listing page.
3
3
 
4
4
  ## Key Components
5
5
 
6
- - **CategoriesCart**: Main component that renders a clickable category card with vendor icons, category details, and hover effects
7
- - **VendorIcon Integration**: Displays a grid of vendor logos with grayscale filter and fade effects
8
- - **Responsive Design**: Adapts layout and sizing for mobile and desktop viewports
9
- - **Loading States**: Shows skeleton placeholders while data is being fetched
10
- - **Interactive Elements**: Hover effects with color transitions and arrow navigation button
6
+ - **`CategoriesCart`** Main exported component accepting `RealCategoryCardProps`
7
+ - `category` Category object with `slug`, `name`, and `description`
8
+ - `vendors` Array of vendor objects to display as icons (default: `[]`)
9
+ - `vendorCount` Total number of products in the category (default: `0`)
10
+ - `subcategoryCount` Number of subcategories (default: `0`)
11
+ - `isLoading` — Toggles skeleton loading state (default: `false`)
12
+ - `className` — Optional additional CSS classes
13
+
14
+ ## Key Behaviors
15
+
16
+ | State | Behavior |
17
+ |-------|----------|
18
+ | `isLoading: true` | Renders 20 animated pulse skeleton placeholders |
19
+ | Vendors present | Renders `VendorIcon` components in grayscale/muted style |
20
+ | No vendors | Renders 6 grey placeholder icon blocks |
21
+
22
+ - Navigates to `/vendors?category={slug}` on click
23
+ - Highlights border and arrow button in `#FFC008` (Flamingo yellow) on hover
24
+ - Applies left/right gradient overlays to fade the vendor icon row
11
25
 
12
26
  ## Usage Example
13
27
 
14
28
  ```typescript
15
29
  import { CategoriesCart } from './categories-cart';
16
30
 
17
- // Basic usage with category data
18
31
  <CategoriesCart
19
32
  category={{
20
- name: "Network Security",
21
- slug: "network-security",
22
- description: "Comprehensive security solutions for network infrastructure"
33
+ slug: 'rmm-tools',
34
+ name: 'RMM Tools',
35
+ description: 'Remote monitoring and management platforms for MSPs.',
23
36
  }}
24
- vendors={vendorArray}
25
- vendorCount={25}
26
- subcategoryCount={8}
37
+ vendors={[{ id: '1', name: 'NinjaRMM', logo: '/logos/ninja.png' }]}
38
+ vendorCount={12}
39
+ subcategoryCount={3}
40
+ isLoading={false}
27
41
  />
28
-
29
- // Loading state
30
- <CategoriesCart
31
- category={categoryData}
32
- isLoading={true}
33
- className="custom-spacing"
34
- />
35
- ```
36
-
37
- The component creates a hover-interactive card that links to `/vendors?category={slug}`, featuring a scrolling vendor icon grid with gradient fade effects, category statistics, and a prominent call-to-action arrow that changes color on hover.
42
+ ```
@@ -1,41 +1,39 @@
1
- <!-- source-hash: 48e893d0b953dc4ea14554f218644641 -->
2
- A reusable checkbox component built on Radix UI primitives with customizable styling and accessibility features.
1
+ <!-- source-hash: ebf5d1beb048574c71be25e85338e2db -->
2
+ Accessible checkbox component built on Radix UI's `CheckboxPrimitive`, styled with Tailwind CSS utility classes and a custom checkmark icon.
3
3
 
4
4
  ## Key Components
5
5
 
6
- - **`Checkbox`** - Main checkbox component with forwarded ref support
7
- - **`CheckboxPrimitive.Root`** - Base Radix UI checkbox primitive
8
- - **`CheckboxPrimitive.Indicator`** - Visual indicator container for checked state
9
- - **`Check`** - Lucide React icon for the checkmark visual
6
+ - **`Checkbox`** — A forwarded-ref React component wrapping `@radix-ui/react-checkbox` with Flamingo design system styles, including focus ring, disabled state, and checked state variants.
10
7
 
11
8
  ## Usage Example
12
9
 
13
10
  ```typescript
14
- import { Checkbox } from "./components/ui/checkbox"
11
+ import { Checkbox } from "@/components/checkbox"
15
12
 
16
13
  // Basic usage
17
- <Checkbox />
14
+ <Checkbox id="terms" />
18
15
 
19
- // With custom styling
20
- <Checkbox className="h-6 w-6 border-2" />
16
+ // With label and controlled state
17
+ const [checked, setChecked] = React.useState(false)
21
18
 
22
- // Controlled component
23
- const [checked, setChecked] = useState(false)
24
- <Checkbox
25
- checked={checked}
26
- onCheckedChange={setChecked}
27
- />
19
+ <div className="flex items-center gap-2">
20
+ <Checkbox
21
+ id="accept"
22
+ checked={checked}
23
+ onCheckedChange={setChecked}
24
+ />
25
+ <label htmlFor="accept">Accept terms and conditions</label>
26
+ </div>
28
27
 
29
28
  // Disabled state
30
29
  <Checkbox disabled />
31
-
32
- // With form integration
33
- <form>
34
- <div className="flex items-center space-x-2">
35
- <Checkbox id="terms" />
36
- <label htmlFor="terms">Accept terms and conditions</label>
37
- </div>
38
- </form>
39
30
  ```
40
31
 
41
- The component automatically handles focus states, keyboard navigation, and screen reader compatibility through Radix UI primitives. The checkmark icon appears when the checkbox is in a checked state, with smooth transitions and proper color theming based on CSS custom properties.
32
+ ## Styling Highlights
33
+
34
+ | State | Applied Style |
35
+ |---|---|
36
+ | Default | `border-primary`, `rounded-sm` |
37
+ | Checked | `bg-primary text-primary-foreground` |
38
+ | Focused | `ring-2 ring-ring ring-offset-2` |
39
+ | Disabled | `cursor-not-allowed opacity-50` |
@@ -1,41 +1,46 @@
1
- <!-- source-hash: e1bda247f65658eec261b3399f769e46 -->
2
- A reusable React component that renders an animated chevron button with customizable styling and expansion states, commonly used for collapsible UI elements.
1
+ <!-- source-hash: b0e5b6389fabb9232cd48e08b608bcb8 -->
2
+ A reusable toggle button component that renders a chevron icon with animated rotation to indicate expanded/collapsed state.
3
3
 
4
4
  ## Key Components
5
5
 
6
- - **`ChevronButton`** - Main component that wraps a Button with a rotating ChevronDown icon
7
- - **`ChevronButtonProps`** - TypeScript interface defining component props including expansion state, styling options, and event handlers
8
- - **Dynamic styling system** - Handles background color, border customization, and hover effects
9
- - **Size variants** - Supports 'sm', 'default', 'lg', and 'icon' sizing options
6
+ ### `ChevronButton`
7
+ The primary exported component. Wraps the base `Button` with a `ChevronDown` icon that rotates 180° when `isExpanded` is `true`.
8
+
9
+ ### `ChevronButtonProps`
10
+ | Prop | Type | Default | Description |
11
+ |------|------|---------|-------------|
12
+ | `isExpanded` | `boolean` | `false` | Controls chevron rotation (0° → 180°) |
13
+ | `size` | `'sm' \| 'default' \| 'lg' \| 'icon'` | `'icon'` | Sets button and icon dimensions |
14
+ | `backgroundColor` | `string` | `'transparent'` | Custom background color (clears on hover) |
15
+ | `borderColor` | `string` | `'transparent'` | Custom border color and style |
16
+ | `className` | `string` | — | Additional Tailwind classes |
17
+ | `onClick` | `(e: React.MouseEvent) => void` | — | Click handler |
10
18
 
11
19
  ## Usage Example
12
20
 
13
21
  ```typescript
14
- import { ChevronButton } from './components/chevron-button';
15
-
16
- function CollapsibleSection() {
17
- const [isExpanded, setIsExpanded] = useState(false);
18
-
19
- return (
20
- <div className="border rounded-lg p-4">
21
- <div className="flex items-center justify-between">
22
- <h3>Section Title</h3>
23
- <ChevronButton
24
- isExpanded={isExpanded}
25
- size="default"
26
- backgroundColor="#f3f4f6"
27
- borderColor="#d1d5db"
28
- onClick={() => setIsExpanded(!isExpanded)}
29
- />
30
- </div>
31
- {isExpanded && (
32
- <div className="mt-4">
33
- <p>Collapsible content here...</p>
34
- </div>
35
- )}
36
- </div>
37
- );
38
- }
22
+ import { ChevronButton } from './chevron-button';
23
+
24
+ // Basic expand/collapse toggle
25
+ const [isOpen, setIsOpen] = React.useState(false);
26
+
27
+ <ChevronButton
28
+ isExpanded={isOpen}
29
+ onClick={() => setIsOpen(!isOpen)}
30
+ />
31
+
32
+ // Custom styled with border and size
33
+ <ChevronButton
34
+ isExpanded={isOpen}
35
+ size="default"
36
+ backgroundColor="#1a1a2e"
37
+ borderColor="#FFC008"
38
+ onClick={() => setIsOpen(!isOpen)}
39
+ />
39
40
  ```
40
41
 
41
- The component features smooth 180-degree rotation animation when toggled, customizable hover effects that override background colors, and responsive sizing that automatically adjusts icon dimensions based on the selected size variant.
42
+ ## Behavior Notes
43
+
44
+ - **Hover state**: Background color resets to `transparent` on hover regardless of `backgroundColor` prop.
45
+ - **Rotation**: Chevron smoothly rotates via `transition-transform` when `isExpanded` toggles.
46
+ - **Border**: Border width/style are only applied when `borderColor` is not `'transparent'`.
@@ -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
  ```