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

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (806) hide show
  1. package/dist/{chunk-QKFBZLIR.js → chunk-5OWDOFKK.js} +2 -2
  2. package/dist/chunk-CZR7ARBA.js +698 -0
  3. package/dist/chunk-CZR7ARBA.js.map +1 -0
  4. package/dist/{chunk-UYQOPC57.js → chunk-HICZPTRR.js} +4 -351
  5. package/dist/chunk-HICZPTRR.js.map +1 -0
  6. package/dist/{chunk-5BNWGK6D.js → chunk-HWY35EAK.js} +3 -3
  7. package/dist/{chunk-VTUIMMHO.cjs → chunk-IZL2KEH6.cjs} +26 -26
  8. package/dist/{chunk-VTUIMMHO.cjs.map → chunk-IZL2KEH6.cjs.map} +1 -1
  9. package/dist/{chunk-ZFBLC5GV.cjs → chunk-KDNGUYZM.cjs} +17 -17
  10. package/dist/{chunk-ZFBLC5GV.cjs.map → chunk-KDNGUYZM.cjs.map} +1 -1
  11. package/dist/chunk-OZ3GH6OQ.cjs +698 -0
  12. package/dist/chunk-OZ3GH6OQ.cjs.map +1 -0
  13. package/dist/{chunk-3E5ANY55.js → chunk-UKND27XC.js} +410 -544
  14. package/dist/chunk-UKND27XC.js.map +1 -0
  15. package/dist/{chunk-EH3RWVF3.cjs → chunk-WT5JV2GS.cjs} +8 -355
  16. package/dist/chunk-WT5JV2GS.cjs.map +1 -0
  17. package/dist/{chunk-WI76ZUBE.cjs → chunk-YZUUFTIK.cjs} +545 -679
  18. package/dist/chunk-YZUUFTIK.cjs.map +1 -0
  19. package/dist/components/chat/hooks/use-jetstream-dialog-subscription.d.ts.map +1 -1
  20. package/dist/components/chat/hooks/use-nats-dialog-subscription.d.ts +0 -9
  21. package/dist/components/chat/hooks/use-nats-dialog-subscription.d.ts.map +1 -1
  22. package/dist/components/chat/index.cjs +5 -4
  23. package/dist/components/chat/index.cjs.map +1 -1
  24. package/dist/components/chat/index.js +4 -3
  25. package/dist/components/contact/index.cjs +6 -5
  26. package/dist/components/contact/index.cjs.map +1 -1
  27. package/dist/components/contact/index.js +5 -4
  28. package/dist/components/features/index.cjs +5 -4
  29. package/dist/components/features/index.cjs.map +1 -1
  30. package/dist/components/features/index.js +4 -3
  31. package/dist/components/features/notifications/index.d.ts +2 -2
  32. package/dist/components/features/notifications/index.d.ts.map +1 -1
  33. package/dist/components/features/notifications/notifications-context.d.ts +16 -1
  34. package/dist/components/features/notifications/notifications-context.d.ts.map +1 -1
  35. package/dist/components/features/notifications/types.d.ts +4 -0
  36. package/dist/components/features/notifications/types.d.ts.map +1 -1
  37. package/dist/components/index.cjs +55 -54
  38. package/dist/components/index.cjs.map +1 -1
  39. package/dist/components/index.js +7 -6
  40. package/dist/components/index.js.map +1 -1
  41. package/dist/components/navigation/app-header.d.ts.map +1 -1
  42. package/dist/components/navigation/index.cjs +5 -4
  43. package/dist/components/navigation/index.cjs.map +1 -1
  44. package/dist/components/navigation/index.js +4 -3
  45. package/dist/components/tickets/index.cjs +66 -65
  46. package/dist/components/tickets/index.cjs.map +1 -1
  47. package/dist/components/tickets/index.js +6 -5
  48. package/dist/components/tickets/index.js.map +1 -1
  49. package/dist/components/ui/index.cjs +5 -4
  50. package/dist/components/ui/index.cjs.map +1 -1
  51. package/dist/components/ui/index.js +4 -3
  52. package/dist/embed-shims/index.cjs +3 -3
  53. package/dist/embed-shims/index.cjs.map +1 -1
  54. package/dist/embed-shims/index.js +4 -4
  55. package/dist/hooks/index.cjs +3 -2
  56. package/dist/hooks/index.cjs.map +1 -1
  57. package/dist/hooks/index.js +2 -1
  58. package/dist/index.cjs +5 -4
  59. package/dist/index.cjs.map +1 -1
  60. package/dist/index.js +4 -3
  61. package/dist/nats/index.cjs +28 -346
  62. package/dist/nats/index.cjs.map +1 -1
  63. package/dist/nats/index.d.ts +3 -0
  64. package/dist/nats/index.d.ts.map +1 -1
  65. package/dist/nats/index.js +30 -346
  66. package/dist/nats/index.js.map +1 -1
  67. package/dist/nats/nats-provider.d.ts +28 -0
  68. package/dist/nats/nats-provider.d.ts.map +1 -0
  69. package/dist/nats/nats.d.ts +1 -0
  70. package/dist/nats/nats.d.ts.map +1 -1
  71. package/dist/nats/shared-connection.d.ts +73 -0
  72. package/dist/nats/shared-connection.d.ts.map +1 -0
  73. package/dist/nats/use-nats-subscription.d.ts +18 -0
  74. package/dist/nats/use-nats-subscription.d.ts.map +1 -0
  75. package/package.json +1 -1
  76. package/src/.index.md +36 -34
  77. package/src/components/.alert-dialog.md +27 -23
  78. package/src/components/.announcement-bar.md +26 -21
  79. package/src/components/.breadcrumb.md +19 -15
  80. package/src/components/.calendar.md +24 -19
  81. package/src/components/.categories-cart.md +29 -24
  82. package/src/components/.checkbox.md +23 -25
  83. package/src/components/.chevron-button.md +37 -32
  84. package/src/components/.comment-card.md +32 -62
  85. package/src/components/.dialog.md +26 -26
  86. package/src/components/.dynamic-skeleton.md +54 -57
  87. package/src/components/.empty-state.md +42 -51
  88. package/src/components/.faq-accordion.md +27 -21
  89. package/src/components/.filter-chip.md +41 -24
  90. package/src/components/.flamingo-logo.md +20 -23
  91. package/src/components/.footer-waitlist-button.md +29 -22
  92. package/src/components/.footer.md +32 -32
  93. package/src/components/.icons-block.md +27 -17
  94. package/src/components/.image-cropper.md +41 -32
  95. package/src/components/.index.md +33 -39
  96. package/src/components/.input.md +31 -35
  97. package/src/components/.logs-list.md +31 -20
  98. package/src/components/.media-carousel.md +35 -36
  99. package/src/components/.open-source-features.md +33 -16
  100. package/src/components/.pagination.md +52 -51
  101. package/src/components/.provider-button.md +21 -23
  102. package/src/components/.select.md +31 -20
  103. package/src/components/.sidebar.md +34 -24
  104. package/src/components/.smooth-accordion.md +29 -24
  105. package/src/components/.social-icon-row.md +36 -32
  106. package/src/components/.textarea.md +25 -31
  107. package/src/components/.tool-icon.md +24 -26
  108. package/src/components/.unified-filter-logic.md +37 -30
  109. package/src/components/.unified-pagination.md +23 -22
  110. package/src/components/.user-summary-stub.md +38 -22
  111. package/src/components/.vendor-display-button.md +25 -25
  112. package/src/components/.vendor-icon.md +33 -25
  113. package/src/components/.why-it-matters.md +28 -25
  114. package/src/components/chat/.approval-batch-message.md +51 -0
  115. package/src/components/chat/.approval-request-message.md +35 -34
  116. package/src/components/chat/.chat-attachment-bar.md +64 -0
  117. package/src/components/chat/.chat-container.md +36 -18
  118. package/src/components/chat/.chat-input.md +37 -20
  119. package/src/components/chat/.chat-message-enhanced.md +30 -49
  120. package/src/components/chat/.chat-message-list.md +45 -32
  121. package/src/components/chat/.chat-message-skeleton.md +26 -22
  122. package/src/components/chat/.chat-panel-context.md +52 -0
  123. package/src/components/chat/.chat-ref.types.md +42 -0
  124. package/src/components/chat/.chat-sidebar-skeleton.md +34 -25
  125. package/src/components/chat/.chat-sidebar.md +31 -26
  126. package/src/components/chat/.chat-ticket-list.md +39 -0
  127. package/src/components/chat/.context-compaction-display.md +36 -0
  128. package/src/components/chat/.cycling-phrase.md +52 -0
  129. package/src/components/chat/.embeddable-chat.md +48 -0
  130. package/src/components/chat/.expand-chevron.md +24 -0
  131. package/src/components/chat/.index.md +31 -35
  132. package/src/components/chat/.mingo-onboarding-card-skeleton.md +44 -0
  133. package/src/components/chat/.mingo-onboarding-card.md +62 -0
  134. package/src/components/chat/.model-display.md +32 -30
  135. package/src/components/chat/.nav-link-anchor-via-runtime.md +40 -0
  136. package/src/components/chat/.remark-card-links.md +38 -0
  137. package/src/components/chat/.slash-command-suggestions.md +47 -0
  138. package/src/components/chat/.source-action-button.md +48 -0
  139. package/src/components/chat/.thinking-display.md +42 -0
  140. package/src/components/chat/.tool-call-blocks.md +45 -0
  141. package/src/components/chat/.tool-execution-display.md +44 -36
  142. package/src/components/chat/chat-container.tsx +1 -1
  143. package/src/components/chat/entity-cards/.admin-content-card.md +43 -0
  144. package/src/components/chat/entity-cards/.block-card.md +47 -0
  145. package/src/components/chat/entity-cards/.blog-card.md +52 -0
  146. package/src/components/chat/entity-cards/.blog-image-placeholder.md +39 -0
  147. package/src/components/chat/entity-cards/.campaign-card-admin.md +47 -0
  148. package/src/components/chat/entity-cards/.case-study-card.md +58 -0
  149. package/src/components/chat/entity-cards/.chat-ticket-item.md +40 -0
  150. package/src/components/chat/entity-cards/.chat-video-entity-card.md +43 -0
  151. package/src/components/chat/entity-cards/.customer-interview-card.md +53 -0
  152. package/src/components/chat/entity-cards/.data-room-doc-card.md +47 -0
  153. package/src/components/chat/entity-cards/.dispatch.md +39 -0
  154. package/src/components/chat/entity-cards/.entity-author-card.md +51 -0
  155. package/src/components/chat/entity-cards/.generic-entity-card.md +62 -0
  156. package/src/components/chat/entity-cards/.github-activity-card.md +61 -0
  157. package/src/components/chat/entity-cards/.hubspot-ticket-card.md +53 -0
  158. package/src/components/chat/entity-cards/.index.md +66 -0
  159. package/src/components/chat/entity-cards/.investor-update-card.md +47 -0
  160. package/src/components/chat/entity-cards/.onboarding-guide-card.md +58 -0
  161. package/src/components/chat/entity-cards/.product-release-card-defaults.md +31 -0
  162. package/src/components/chat/entity-cards/.product-release-card.md +29 -0
  163. package/src/components/chat/entity-cards/.program-card-defaults.md +41 -0
  164. package/src/components/chat/entity-cards/.program-card.md +59 -0
  165. package/src/components/chat/entity-cards/.roadmap-card.md +46 -0
  166. package/src/components/chat/entity-cards/.roadmap-vote-button.md +52 -0
  167. package/src/components/chat/entity-cards/.slack-message-card.md +48 -0
  168. package/src/components/chat/entity-cards/.task-type-icon.md +47 -0
  169. package/src/components/chat/hooks/.index.md +36 -21
  170. package/src/components/chat/hooks/.use-chat-attachment-image-gallery.md +51 -0
  171. package/src/components/chat/hooks/.use-chat-attachments.md +48 -0
  172. package/src/components/chat/hooks/.use-chat-card-item.md +39 -0
  173. package/src/components/chat/hooks/.use-chat-identity.md +45 -0
  174. package/src/components/chat/hooks/.use-chat.md +58 -0
  175. package/src/components/chat/hooks/.use-chunk-catchup.md +46 -48
  176. package/src/components/chat/hooks/.use-close-on-navigation.md +44 -0
  177. package/src/components/chat/hooks/.use-collapsible.md +48 -0
  178. package/src/components/chat/hooks/.use-embedded-chat.md +32 -0
  179. package/src/components/chat/hooks/.use-jetstream-dialog-subscription.md +40 -0
  180. package/src/components/chat/hooks/.use-nats-chat-adapter.md +52 -0
  181. package/src/components/chat/hooks/.use-nats-dialog-subscription.md +49 -30
  182. package/src/components/chat/hooks/.use-proxied-image-url.md +40 -0
  183. package/src/components/chat/hooks/.use-realtime-chunk-processor.md +43 -40
  184. package/src/components/chat/hooks/.use-slash-commands.md +46 -0
  185. package/src/components/chat/hooks/.use-sse-chat-adapter.md +34 -0
  186. package/src/components/chat/hooks/.use-sse.md +60 -0
  187. package/src/components/chat/hooks/.use-unified-chat.md +57 -0
  188. package/src/components/chat/hooks/use-jetstream-dialog-subscription.ts +60 -207
  189. package/src/components/chat/hooks/use-nats-dialog-subscription.ts +71 -214
  190. package/src/components/chat/types/.api.types.md +52 -38
  191. package/src/components/chat/types/.chat.types.md +43 -34
  192. package/src/components/chat/types/.component.types.md +47 -48
  193. package/src/components/chat/types/.index.md +20 -27
  194. package/src/components/chat/types/.message.types.md +58 -48
  195. package/src/components/chat/types/.network.types.md +57 -31
  196. package/src/components/chat/types/.processing.types.md +49 -31
  197. package/src/components/chat/types/.unified-chat-state.types.md +41 -0
  198. package/src/components/chat/types/entities/.blog.md +43 -0
  199. package/src/components/chat/types/entities/.case-study.md +26 -0
  200. package/src/components/chat/types/entities/.content-ref.md +41 -0
  201. package/src/components/chat/types/entities/.customer-interview.md +28 -0
  202. package/src/components/chat/types/entities/.data-room-doc.md +36 -0
  203. package/src/components/chat/types/entities/.github-activity.md +43 -0
  204. package/src/components/chat/types/entities/.hubspot-ticket.md +53 -0
  205. package/src/components/chat/types/entities/.index.md +42 -0
  206. package/src/components/chat/types/entities/.investor-update.md +45 -0
  207. package/src/components/chat/types/entities/.onboarding-guide.md +50 -0
  208. package/src/components/chat/types/entities/.program-types.md +57 -0
  209. package/src/components/chat/types/entities/.roadmap-item.md +58 -0
  210. package/src/components/chat/types/entities/.slack-message.md +35 -0
  211. package/src/components/chat/utils/.agent-status-message.md +45 -0
  212. package/src/components/chat/utils/.auto-continuation-directive.md +58 -0
  213. package/src/components/chat/utils/.chat-attachment-markdown.md +54 -0
  214. package/src/components/chat/utils/.chat-authed-fetch.md +25 -0
  215. package/src/components/chat/utils/.chat-nav-resolution.md +46 -0
  216. package/src/components/chat/utils/.chat-proxy-auth-storage.md +38 -0
  217. package/src/components/chat/utils/.chip-action-class.md +34 -0
  218. package/src/components/chat/utils/.chip-styles.md +46 -0
  219. package/src/components/chat/utils/.chunk-parser.md +38 -28
  220. package/src/components/chat/utils/.clickup-task-type-utils.md +48 -0
  221. package/src/components/chat/utils/.compact-card-classes.md +62 -0
  222. package/src/components/chat/utils/.decide-new-tab.md +51 -0
  223. package/src/components/chat/utils/.external-app-urls.md +29 -0
  224. package/src/components/chat/utils/.extract-incomplete-message-state.md +25 -29
  225. package/src/components/chat/utils/.flatten-assistant-content.md +34 -0
  226. package/src/components/chat/utils/.icon-registry.md +46 -0
  227. package/src/components/chat/utils/.index.md +37 -32
  228. package/src/components/chat/utils/.is-cross-origin-url.md +35 -0
  229. package/src/components/chat/utils/.message-segment-accumulator.md +25 -34
  230. package/src/components/chat/utils/.nav-anchor-props.md +44 -0
  231. package/src/components/chat/utils/.nav-click-handler.md +47 -0
  232. package/src/components/chat/utils/.onboarding-icons.md +28 -0
  233. package/src/components/chat/utils/.process-historical-messages.md +46 -35
  234. package/src/components/chat/utils/.scroll-anchor.md +40 -0
  235. package/src/components/chat/utils/.slash-dispatch-utils.md +44 -0
  236. package/src/components/chat/utils/.source-icons.md +35 -0
  237. package/src/components/chat/utils/.source-row-cta.md +54 -0
  238. package/src/components/chat/utils/.tool-call-helpers.md +42 -0
  239. package/src/components/contact/.contact-form.md +43 -0
  240. package/src/components/contact/.index.md +27 -0
  241. package/src/components/features/.array-entry-manager.md +36 -45
  242. package/src/components/features/.changelog-manager.md +47 -21
  243. package/src/components/features/.changelog-sections-manager.md +21 -26
  244. package/src/components/features/.command-box.md +31 -28
  245. package/src/components/features/.entity-summary-editor.md +46 -0
  246. package/src/components/features/.entity-video-section.md +51 -0
  247. package/src/components/features/.figma-prototype-viewer.md +48 -29
  248. package/src/components/features/.filters-dropdown.md +33 -46
  249. package/src/components/features/.highlight-config-section.md +42 -0
  250. package/src/components/features/.highlight-generation-section.md +46 -0
  251. package/src/components/features/.highlight-video-combined-section.md +47 -0
  252. package/src/components/features/.highlight-video-preview.md +44 -0
  253. package/src/components/features/.highlight-video-section.md +47 -0
  254. package/src/components/features/.index.md +40 -66
  255. package/src/components/features/.media-gallery-manager.md +48 -38
  256. package/src/components/features/.more-about-button.md +22 -19
  257. package/src/components/features/.og-editor-preview.md +40 -36
  258. package/src/components/features/.parallax-image-showcase.md +33 -26
  259. package/src/components/features/.paths-display.md +42 -43
  260. package/src/components/features/.platform-badge.md +37 -36
  261. package/src/components/features/.platform-filter.md +23 -16
  262. package/src/components/features/.policy-configuration-panel.md +48 -56
  263. package/src/components/features/.provider-button.md +33 -36
  264. package/src/components/features/.push-button-selector.md +40 -29
  265. package/src/components/features/.release-media-manager.md +46 -31
  266. package/src/components/features/.section-selector.md +26 -31
  267. package/src/components/features/.select-button.md +35 -25
  268. package/src/components/features/.seo-editor-preview.md +41 -44
  269. package/src/components/features/.social-links-manager.md +25 -19
  270. package/src/components/features/.start-with-openframe-button.md +37 -29
  271. package/src/components/features/.status-filter-component.md +36 -20
  272. package/src/components/features/.tags-selector.md +40 -24
  273. package/src/components/features/.transcribe-and-summarize-combined-section.md +45 -0
  274. package/src/components/features/.transcribe-summarize-section.md +48 -0
  275. package/src/components/features/.transcript-summary-editor.md +53 -0
  276. package/src/components/features/.video-bites-display.md +46 -0
  277. package/src/components/features/.video-clips-section.md +41 -0
  278. package/src/components/features/.video-ratio-tabs.md +56 -0
  279. package/src/components/features/.video-source-selector.md +60 -0
  280. package/src/components/features/.video.md +44 -0
  281. package/src/components/features/.waitlist-form.md +60 -0
  282. package/src/components/features/ai-enrich/.AIEnrichButton.md +30 -27
  283. package/src/components/features/ai-enrich/.AIEnrichSection.md +46 -42
  284. package/src/components/features/board/.board-column-header.md +38 -0
  285. package/src/components/features/board/.board-column.md +43 -0
  286. package/src/components/features/board/.board.md +51 -0
  287. package/src/components/features/board/.color-utils.md +26 -0
  288. package/src/components/features/board/.index.md +56 -0
  289. package/src/components/features/board/.ticket-card-skeleton.md +38 -0
  290. package/src/components/features/board/.ticket-card.md +47 -0
  291. package/src/components/features/board/.types.md +45 -0
  292. package/src/components/features/board/.use-board-collapse.md +34 -0
  293. package/src/components/features/notifications/.index.md +57 -0
  294. package/src/components/features/notifications/.notification-drawer.md +34 -0
  295. package/src/components/features/notifications/.notification-tile.md +39 -0
  296. package/src/components/features/notifications/.notifications-context.md +73 -0
  297. package/src/components/features/notifications/.types.md +45 -0
  298. package/src/components/features/notifications/index.ts +2 -1
  299. package/src/components/features/notifications/notifications-context.tsx +104 -6
  300. package/src/components/features/notifications/types.ts +5 -0
  301. package/src/components/icons/.about-icon.md +20 -28
  302. package/src/components/icons/.ai-robot-icon.md +15 -17
  303. package/src/components/icons/.bash-icon.md +16 -23
  304. package/src/components/icons/.buildings-icon.md +10 -24
  305. package/src/components/icons/.capterra-icon.md +30 -26
  306. package/src/components/icons/.carta-icon.md +29 -0
  307. package/src/components/icons/.clickup-icon.md +26 -0
  308. package/src/components/icons/.cmd-icon.md +15 -22
  309. package/src/components/icons/.coins-icon.md +17 -25
  310. package/src/components/icons/.community-hub-icon.md +19 -25
  311. package/src/components/icons/.community-icon.md +24 -21
  312. package/src/components/icons/.compare-icon.md +32 -19
  313. package/src/components/icons/.copy-icon.md +29 -15
  314. package/src/components/icons/.custom-external-link-icon.md +19 -17
  315. package/src/components/icons/.custom-fork-icon.md +32 -21
  316. package/src/components/icons/.custom-license-icon.md +29 -25
  317. package/src/components/icons/.custom-star-icon.md +20 -28
  318. package/src/components/icons/.custom-time-icon.md +21 -22
  319. package/src/components/icons/.cut-vendor-costs-icon.md +6 -19
  320. package/src/components/icons/.dashboard-icon.md +13 -18
  321. package/src/components/icons/.deno-icon.md +16 -23
  322. package/src/components/icons/.donut-icon.md +12 -23
  323. package/src/components/icons/.double-chevron-icon.md +28 -36
  324. package/src/components/icons/.elestio-logo.md +13 -23
  325. package/src/components/icons/.empty-vendor-icon.md +16 -18
  326. package/src/components/icons/.explore-categories-icon.md +18 -29
  327. package/src/components/icons/.eye-icon.md +16 -26
  328. package/src/components/icons/.facebook-icon.md +9 -20
  329. package/src/components/icons/.figma-icon.md +8 -17
  330. package/src/components/icons/.filter-icon.md +15 -17
  331. package/src/components/icons/.flamingo-logo.md +28 -27
  332. package/src/components/icons/.folder-shield-icon.md +28 -19
  333. package/src/components/icons/.g2-icon.md +22 -21
  334. package/src/components/icons/.getapp-icon.md +25 -21
  335. package/src/components/icons/.github-icon.md +13 -25
  336. package/src/components/icons/.globe-icon.md +14 -19
  337. package/src/components/icons/.google-gemini-icon.md +16 -19
  338. package/src/components/icons/.google-logo.md +15 -21
  339. package/src/components/icons/.grid-view-icon.md +30 -19
  340. package/src/components/icons/.hamburger-icon.md +22 -20
  341. package/src/components/icons/.hand-dollar-icon.md +24 -34
  342. package/src/components/icons/.hotel-icon.md +27 -21
  343. package/src/components/icons/.icon-utils.md +28 -29
  344. package/src/components/icons/.image-icon.md +15 -22
  345. package/src/components/icons/.index.md +25 -28
  346. package/src/components/icons/.info-circle-icon.md +29 -30
  347. package/src/components/icons/.instagram-icon.md +10 -24
  348. package/src/components/icons/.jump-in-icon.md +18 -18
  349. package/src/components/icons/.linux-icon.md +18 -18
  350. package/src/components/icons/.log-out-icon.md +15 -23
  351. package/src/components/icons/.logs-icon.md +14 -23
  352. package/src/components/icons/.margin-crisis-icon.md +21 -20
  353. package/src/components/icons/.menu-icon.md +18 -19
  354. package/src/components/icons/.miami-cyber-gang-logo-face-only.md +18 -21
  355. package/src/components/icons/.miami-cyber-gang-logo.md +22 -14
  356. package/src/components/icons/.mlg-logo.md +18 -16
  357. package/src/components/icons/.moon-icon.md +32 -22
  358. package/src/components/icons/.ms-icon.md +30 -19
  359. package/src/components/icons/.nushell-icon.md +7 -21
  360. package/src/components/icons/.open-source-icon.md +19 -23
  361. package/src/components/icons/.openai-icon.md +9 -24
  362. package/src/components/icons/.openframe-ai-icons.md +25 -26
  363. package/src/components/icons/.openframe-logo.md +28 -22
  364. package/src/components/icons/.openframe-text.md +24 -27
  365. package/src/components/icons/.openmsp-logo.md +26 -23
  366. package/src/components/icons/.pilot-icon.md +23 -0
  367. package/src/components/icons/.powershell-icon.md +17 -22
  368. package/src/components/icons/.python-icon.md +16 -23
  369. package/src/components/icons/.queries-icon.md +13 -21
  370. package/src/components/icons/.reddit-icon.md +28 -24
  371. package/src/components/icons/.remote-control-icon.md +13 -17
  372. package/src/components/icons/.script-icon.md +27 -19
  373. package/src/components/icons/.search-icon.md +21 -21
  374. package/src/components/icons/.send-icon.md +14 -16
  375. package/src/components/icons/.settings-icon.md +30 -19
  376. package/src/components/icons/.shape-circle-dash-icon.md +16 -21
  377. package/src/components/icons/.shell-icon.md +15 -19
  378. package/src/components/icons/.shield-check-icon.md +18 -31
  379. package/src/components/icons/.shield-key-icon.md +25 -25
  380. package/src/components/icons/.shield-lock-icon.md +8 -18
  381. package/src/components/icons/.slack-icon.md +28 -32
  382. package/src/components/icons/.sparkles-icon.md +18 -23
  383. package/src/components/icons/.sso-configuration-icon.md +29 -16
  384. package/src/components/icons/.sun-icon.md +20 -18
  385. package/src/components/icons/.table-view-icon.md +17 -19
  386. package/src/components/icons/.telegram-icon.md +8 -22
  387. package/src/components/icons/.thumbs-down-icon.md +10 -19
  388. package/src/components/icons/.thumbs-up-icon.md +8 -17
  389. package/src/components/icons/.tool-directory-icons.md +24 -28
  390. package/src/components/icons/.trustpilot-icon.md +25 -22
  391. package/src/components/icons/.user-icon.md +26 -28
  392. package/src/components/icons/.users-group-icon.md +28 -24
  393. package/src/components/icons/.vendor-showcase-icons.md +21 -29
  394. package/src/components/icons/.vendors-icon.md +18 -22
  395. package/src/components/icons/.whatsapp-icon.md +30 -14
  396. package/src/components/icons/.x-icon.md +18 -23
  397. package/src/components/icons/.x-logo.md +13 -38
  398. package/src/components/icons/.youtube-icon.md +8 -19
  399. package/src/components/icons/device-type-icons/.get-device-type-icon.md +26 -34
  400. package/src/components/icons-v2-generated/.index.md +52 -0
  401. package/src/components/icons-v2-generated/alphabet/.index.md +33 -0
  402. package/src/components/icons-v2-generated/arrows/.index.md +39 -0
  403. package/src/components/icons-v2-generated/audio-and-visual/.index.md +40 -0
  404. package/src/components/icons-v2-generated/brand-logos/.elestio-logo-icon.md +40 -0
  405. package/src/components/icons-v2-generated/brand-logos/.gemini-logo-icon.md +37 -0
  406. package/src/components/icons-v2-generated/brand-logos/.google-gemini-logo-icon.md +33 -0
  407. package/src/components/icons-v2-generated/brand-logos/.index.md +38 -0
  408. package/src/components/icons-v2-generated/brand-logos/.meshcentral-logo-grey-icon.md +35 -0
  409. package/src/components/icons-v2-generated/brand-logos/.meshcentral-logo-icon.md +36 -0
  410. package/src/components/icons-v2-generated/buildings/.index.md +48 -0
  411. package/src/components/icons-v2-generated/charts/.index.md +40 -0
  412. package/src/components/icons-v2-generated/clothes/.index.md +48 -0
  413. package/src/components/icons-v2-generated/coding/.index.md +42 -0
  414. package/src/components/icons-v2-generated/communication/.index.md +39 -0
  415. package/src/components/icons-v2-generated/date-and-time/.index.md +29 -0
  416. package/src/components/icons-v2-generated/design/.index.md +39 -0
  417. package/src/components/icons-v2-generated/devices/.index.md +38 -0
  418. package/src/components/icons-v2-generated/documents/.index.md +38 -0
  419. package/src/components/icons-v2-generated/finance/.index.md +34 -0
  420. package/src/components/icons-v2-generated/food-and-drinks/.index.md +34 -0
  421. package/src/components/icons-v2-generated/food-and-drinks/.leafy-green-icon.md +36 -0
  422. package/src/components/icons-v2-generated/food-and-drinks/.strawberry-icon.md +39 -0
  423. package/src/components/icons-v2-generated/health/.index.md +40 -0
  424. package/src/components/icons-v2-generated/household/.index.md +45 -0
  425. package/src/components/icons-v2-generated/interface/.index.md +36 -0
  426. package/src/components/icons-v2-generated/map-and-travel/.index.md +41 -0
  427. package/src/components/icons-v2-generated/media-playback/.index.md +51 -0
  428. package/src/components/icons-v2-generated/number/.index.md +41 -0
  429. package/src/components/icons-v2-generated/school/.index.md +37 -0
  430. package/src/components/icons-v2-generated/security/.fingerprint-icon.md +38 -0
  431. package/src/components/icons-v2-generated/security/.index.md +39 -0
  432. package/src/components/icons-v2-generated/shopping/.index.md +42 -0
  433. package/src/components/icons-v2-generated/signs-and-symbols/.index.md +32 -0
  434. package/src/components/icons-v2-generated/sort-and-filter/.index.md +35 -0
  435. package/src/components/icons-v2-generated/sport/.index.md +41 -0
  436. package/src/components/icons-v2-generated/text-editor/.index.md +44 -0
  437. package/src/components/icons-v2-generated/users/.index.md +45 -0
  438. package/src/components/icons-v2-generated/vehicles-and-delivery/.index.md +36 -0
  439. package/src/components/icons-v2-generated/weather-and-nature/.flower-sakura-icon.md +36 -0
  440. package/src/components/icons-v2-generated/weather-and-nature/.index.md +34 -0
  441. package/src/components/layout/.article-detail-layout.md +43 -0
  442. package/src/components/layout/.back-button.md +40 -0
  443. package/src/components/layout/.list-page-layout.md +35 -26
  444. package/src/components/layout/.page-container.md +27 -38
  445. package/src/components/layout/.page-layout.md +50 -0
  446. package/src/components/layout/.title-block.md +42 -0
  447. package/src/components/loading/.card-skeleton.md +38 -29
  448. package/src/components/loading/.device-card-skeleton.md +29 -25
  449. package/src/components/loading/.index.md +39 -46
  450. package/src/components/loading/.margin-report-skeleton.md +45 -34
  451. package/src/components/loading/.organization-card-skeleton.md +39 -44
  452. package/src/components/loading/.page-layout-skeleton.md +34 -45
  453. package/src/components/loading/.unified-skeleton.md +62 -36
  454. package/src/components/navigation/.app-header.md +40 -29
  455. package/src/components/navigation/.app-layout.md +25 -26
  456. package/src/components/navigation/.header-global-search.md +34 -37
  457. package/src/components/navigation/.header-organization-filter.md +23 -22
  458. package/src/components/navigation/.header.md +31 -35
  459. package/src/components/navigation/.mobile-burger-menu.md +39 -47
  460. package/src/components/navigation/.mobile-nav-panel.md +51 -32
  461. package/src/components/navigation/.navigation-sidebar-header.md +36 -0
  462. package/src/components/navigation/.navigation-sidebar-item.md +45 -0
  463. package/src/components/navigation/.navigation-sidebar-toggle.md +38 -0
  464. package/src/components/navigation/.navigation-sidebar.md +33 -34
  465. package/src/components/navigation/.sliding-sidebar.md +52 -41
  466. package/src/components/navigation/.sticky-section-nav.md +56 -48
  467. package/src/components/navigation/app-header.tsx +7 -9
  468. package/src/components/platform/.ScriptArguments.md +39 -25
  469. package/src/components/platform/.ScriptInfoSection.md +30 -26
  470. package/src/components/platform/.ShellTypeBadge.md +18 -13
  471. package/src/components/platform/.SoftwareInfo.md +23 -27
  472. package/src/components/platform/.SoftwareSourceBadge.md +28 -19
  473. package/src/components/platform/.ToolBadge.md +25 -26
  474. package/src/components/providers/.theme-provider.md +52 -0
  475. package/src/components/shared/delivery/.delivery-lists.md +39 -0
  476. package/src/components/shared/delivery/.delivery-row.md +41 -0
  477. package/src/components/shared/delivery/.delivery-table.md +41 -0
  478. package/src/components/shared/delivery/.index.md +38 -0
  479. package/src/components/shared/dev-section/.dev-card-row.md +60 -0
  480. package/src/components/shared/dev-section/.dev-section-page.md +48 -0
  481. package/src/components/shared/dev-section/.dev-section-view.md +43 -0
  482. package/src/components/shared/dev-section/.index.md +38 -0
  483. package/src/components/shared/legal-document/.index.md +40 -0
  484. package/src/components/shared/legal-document/.legal-document-page.md +50 -0
  485. package/src/components/shared/legal-document/.use-legal-docs.md +42 -0
  486. package/src/components/shared/onboarding/.onboarding-step-card.md +32 -31
  487. package/src/components/shared/onboarding/.onboarding-walkthrough.md +39 -43
  488. package/src/components/shared/product-release/.index.md +28 -30
  489. package/src/components/shared/product-release/.product-release-card-skeleton.md +28 -28
  490. package/src/components/shared/product-release/.product-release-card.md +45 -27
  491. package/src/components/shared/product-release/.release-detail-page.md +23 -24
  492. package/src/components/shared/roadmap/.index.md +37 -0
  493. package/src/components/shared/roadmap/.roadmap-grid-skeleton.md +39 -0
  494. package/src/components/shared/roadmap/.roadmap-grid.md +66 -0
  495. package/src/components/shared/roadmap/.use-roadmap-voting.md +68 -0
  496. package/src/components/tickets/.help-center-card.md +51 -0
  497. package/src/components/tickets/.help-center-create-form.md +38 -0
  498. package/src/components/tickets/.help-center-list.md +40 -0
  499. package/src/components/tickets/.index.md +65 -0
  500. package/src/components/tickets/.ticket-center.md +51 -0
  501. package/src/components/tickets/.ticket-detail-drawer.md +48 -0
  502. package/src/components/tickets/.ticket-linked-delivery-card.md +36 -0
  503. package/src/components/tickets/.ticket-open-form.md +50 -0
  504. package/src/components/tickets/.ticket-row.md +30 -0
  505. package/src/components/tickets/.types.md +57 -0
  506. package/src/components/tickets/hooks/.use-ticket-actions.md +77 -0
  507. package/src/components/tickets/hooks/.use-ticket-engagements.md +42 -0
  508. package/src/components/tickets/hooks/.use-tickets-list.md +54 -0
  509. package/src/components/ui/.actions-menu.md +66 -41
  510. package/src/components/ui/.alert-dialog.md +29 -26
  511. package/src/components/ui/.allowed-domains-input.md +29 -21
  512. package/src/components/ui/.assignee-dropdown.md +45 -0
  513. package/src/components/ui/.autocomplete.md +47 -41
  514. package/src/components/ui/.benefit-card.md +51 -36
  515. package/src/components/ui/.brand-association-card.md +30 -27
  516. package/src/components/ui/.breadcrumb.md +17 -15
  517. package/src/components/ui/.checkbox-block.md +39 -35
  518. package/src/components/ui/.checkbox-with-description.md +23 -16
  519. package/src/components/ui/.checkbox.md +31 -23
  520. package/src/components/ui/.circular-progress.md +49 -19
  521. package/src/components/ui/.content-loader.md +32 -20
  522. package/src/components/ui/.cursor-pagination.md +41 -52
  523. package/src/components/ui/.dashboard-info-card.md +33 -26
  524. package/src/components/ui/.date-picker.md +27 -25
  525. package/src/components/ui/.device-card-compact.md +28 -29
  526. package/src/components/ui/.device-card.md +27 -27
  527. package/src/components/ui/.dialog.md +25 -16
  528. package/src/components/ui/.drawer.md +86 -0
  529. package/src/components/ui/.dropdown-button.md +45 -0
  530. package/src/components/ui/.entity-image.md +46 -0
  531. package/src/components/ui/.error-state.md +41 -28
  532. package/src/components/ui/.feature-card.md +35 -31
  533. package/src/components/ui/.feature-list.md +48 -0
  534. package/src/components/ui/.field-wrapper.md +47 -0
  535. package/src/components/ui/.file-upload.md +42 -0
  536. package/src/components/ui/.filter-checkbox-item.md +43 -0
  537. package/src/components/ui/.filter-list.md +57 -0
  538. package/src/components/ui/.filter-modal.md +59 -0
  539. package/src/components/ui/.floating-tooltip.md +43 -26
  540. package/src/components/ui/.hidden-tags-popup.md +49 -0
  541. package/src/components/ui/.hover-dropdown.md +54 -0
  542. package/src/components/ui/.image-gallery-modal.md +41 -34
  543. package/src/components/ui/.image-uploader.md +53 -0
  544. package/src/components/ui/.index.md +40 -34
  545. package/src/components/ui/.info-card.md +31 -31
  546. package/src/components/ui/.info-row.md +31 -27
  547. package/src/components/ui/.input-trigger.md +44 -0
  548. package/src/components/ui/.input.md +37 -31
  549. package/src/components/ui/.markdown-editor.md +57 -0
  550. package/src/components/ui/.modal-v2.md +51 -0
  551. package/src/components/ui/.modal.md +32 -31
  552. package/src/components/ui/.more-actions-menu.md +45 -38
  553. package/src/components/ui/.organization-card.md +31 -37
  554. package/src/components/ui/.page-actions.md +44 -54
  555. package/src/components/ui/.phone-input.md +54 -0
  556. package/src/components/ui/.progress-bar.md +35 -27
  557. package/src/components/ui/.radio-group.md +39 -27
  558. package/src/components/ui/.release-changelog-section.md +34 -34
  559. package/src/components/ui/.search-input.md +48 -0
  560. package/src/components/ui/.select.md +54 -34
  561. package/src/components/ui/.service-card.md +42 -40
  562. package/src/components/ui/.sheet.md +27 -18
  563. package/src/components/ui/.simple-markdown-renderer.md +29 -31
  564. package/src/components/ui/.sort-column-item.md +42 -0
  565. package/src/components/ui/.square-avatar.md +34 -24
  566. package/src/components/ui/.status-badge.md +26 -38
  567. package/src/components/ui/.switch.md +22 -35
  568. package/src/components/ui/.tab-navigation.md +56 -53
  569. package/src/components/ui/.tab-selector.md +40 -0
  570. package/src/components/ui/.tag-key-value-filter.md +56 -0
  571. package/src/components/ui/.tag-search-input.md +53 -0
  572. package/src/components/ui/.tag.md +49 -31
  573. package/src/components/ui/.tags-manager.md +60 -0
  574. package/src/components/ui/.textarea.md +44 -34
  575. package/src/components/ui/.ticket-attachments-list.md +45 -0
  576. package/src/components/ui/.ticket-detail-section.md +29 -0
  577. package/src/components/ui/.ticket-info-section.md +56 -0
  578. package/src/components/ui/.ticket-note-card.md +53 -0
  579. package/src/components/ui/.ticket-notes-section.md +54 -0
  580. package/src/components/ui/.ticket-status-tag.md +49 -0
  581. package/src/components/ui/.title-content-block.md +25 -26
  582. package/src/components/ui/.toaster.md +40 -28
  583. package/src/components/ui/.tooltip.md +22 -11
  584. package/src/components/ui/.truncate-text.md +39 -0
  585. package/src/components/ui/button/.button-styles.md +35 -0
  586. package/src/components/ui/button/.button.md +53 -0
  587. package/src/components/ui/button/.split-button.md +48 -0
  588. package/src/components/ui/data-table/.data-table-body.md +48 -0
  589. package/src/components/ui/data-table/.data-table-column-filter.md +45 -0
  590. package/src/components/ui/data-table/.data-table-cursor-footer.md +45 -0
  591. package/src/components/ui/data-table/.data-table-empty.md +43 -0
  592. package/src/components/ui/data-table/.data-table-header.md +55 -0
  593. package/src/components/ui/data-table/.data-table-infinite-footer.md +44 -0
  594. package/src/components/ui/data-table/.data-table-row-count.md +43 -0
  595. package/src/components/ui/data-table/.data-table-row.md +47 -0
  596. package/src/components/ui/data-table/.data-table-skeleton.md +42 -0
  597. package/src/components/ui/data-table/.data-table.md +47 -0
  598. package/src/components/ui/data-table/.index.md +55 -0
  599. package/src/components/ui/data-table/.types.md +54 -0
  600. package/src/components/ui/data-table/.use-data-table.md +45 -0
  601. package/src/components/ui/data-table/.utils.md +38 -0
  602. package/src/components/ui/file-manager/.file-manager-action-bar.md +39 -30
  603. package/src/components/ui/file-manager/.file-manager-breadcrumb.md +29 -27
  604. package/src/components/ui/file-manager/.file-manager-context-menu.md +38 -42
  605. package/src/components/ui/file-manager/.file-manager-empty.md +26 -39
  606. package/src/components/ui/file-manager/.file-manager-table-row.md +33 -41
  607. package/src/components/ui/file-manager/.file-manager.md +35 -31
  608. package/src/components/ui/query-report-table/.index.md +43 -0
  609. package/src/components/ui/query-report-table/.query-report-table-header.md +36 -0
  610. package/src/components/ui/query-report-table/.query-report-table-row.md +40 -0
  611. package/src/components/ui/query-report-table/.query-report-table-skeleton.md +44 -0
  612. package/src/components/ui/query-report-table/.query-report-table.md +47 -0
  613. package/src/components/ui/query-report-table/.types.md +41 -0
  614. package/src/components/ui/query-report-table/.utils.md +35 -0
  615. package/src/components/ui/table/.index.md +27 -48
  616. package/src/components/ui/table/.table-cell.md +18 -27
  617. package/src/components/ui/table/.table-column-filter-dropdown.md +40 -0
  618. package/src/components/ui/table/.table-description-cell.md +24 -14
  619. package/src/components/ui/table/.table-empty-state.md +21 -22
  620. package/src/components/ui/table/.table-header.md +25 -40
  621. package/src/components/ui/table/.table-row.md +22 -40
  622. package/src/components/ui/table/.table-skeleton.md +33 -26
  623. package/src/components/ui/table/.table-timestamp-cell.md +26 -16
  624. package/src/components/ui/table/.table.md +39 -59
  625. package/src/components/ui/table/.types.md +44 -36
  626. package/src/components/ui/table/.utils.md +18 -20
  627. package/src/contexts/.chat-runtime-context.md +54 -0
  628. package/src/contexts/.endpoints-runtime-context.md +58 -0
  629. package/src/contexts/.index.md +53 -0
  630. package/src/contexts/.use-outer-or-default.md +36 -0
  631. package/src/embed-shims/.index.md +45 -0
  632. package/src/embed-shims/.next-dynamic.md +43 -0
  633. package/src/embed-shims/.next-image.md +45 -0
  634. package/src/embed-shims/.next-link.md +59 -0
  635. package/src/embed-shims/.next-navigation.md +59 -0
  636. package/src/hooks/.index.md +34 -29
  637. package/src/hooks/.use-access-code-integration.md +49 -0
  638. package/src/hooks/.use-contact-submission.md +37 -26
  639. package/src/hooks/.use-copy-to-clipboard.md +42 -0
  640. package/src/hooks/.use-near-viewport.md +44 -0
  641. package/src/hooks/.use-og-placeholder.md +51 -0
  642. package/src/hooks/.use-toast.md +36 -35
  643. package/src/hooks/state/.use-api-params.md +29 -46
  644. package/src/hooks/state/.use-query-params.md +37 -33
  645. package/src/hooks/ui/.index.md +33 -32
  646. package/src/hooks/ui/.use-auto-limit-tags.md +54 -0
  647. package/src/hooks/ui/.use-horizontal-scrollbar.md +74 -0
  648. package/src/hooks/ui/.use-image-edge-color.md +42 -0
  649. package/src/hooks/ui/.use-media-query.md +33 -25
  650. package/src/hooks/ui/.use-search.md +51 -0
  651. package/src/nats/.nats.md +49 -28
  652. package/src/nats/index.ts +3 -0
  653. package/src/nats/nats-provider.tsx +146 -0
  654. package/src/nats/nats.ts +2 -0
  655. package/src/nats/shared-connection.ts +285 -0
  656. package/src/nats/use-nats-subscription.ts +99 -0
  657. package/src/schemas/.contact-schema.md +45 -0
  658. package/src/stories/.AnnouncementBar.stories.md +45 -0
  659. package/src/stories/.AppLayout.stories.md +20 -21
  660. package/src/stories/.Autocomplete.stories.md +48 -34
  661. package/src/stories/.Board.stories.md +35 -0
  662. package/src/stories/.Button.stories.md +36 -33
  663. package/src/stories/.ChatTicketList.stories.md +33 -0
  664. package/src/stories/.CheckboxBlock.stories.md +40 -28
  665. package/src/stories/.ContentLoader.stories.md +47 -0
  666. package/src/stories/.DashboardInfoCard.stories.md +57 -0
  667. package/src/stories/.DataTable.stories.md +41 -0
  668. package/src/stories/.DatePicker.stories.md +66 -52
  669. package/src/stories/.DeviceCard.stories.md +41 -40
  670. package/src/stories/.DeviceCardCompact.stories.md +41 -0
  671. package/src/stories/.DotsLoaderIcon.stories.md +36 -0
  672. package/src/stories/.Drawer.stories.md +58 -0
  673. package/src/stories/.EmbeddableChat.stories.md +41 -0
  674. package/src/stories/.FileManager.stories.md +41 -0
  675. package/src/stories/.FileManagerActionBar.stories.md +38 -0
  676. package/src/stories/.FileUpload.stories.md +53 -0
  677. package/src/stories/.FilterList.stories.md +54 -0
  678. package/src/stories/.FilterModal.stories.md +72 -0
  679. package/src/stories/.FiltersDropdown.stories.md +57 -0
  680. package/src/stories/.Header.stories.md +48 -0
  681. package/src/stories/.ImageUploader.stories.md +49 -0
  682. package/src/stories/.InfoCard.stories.md +54 -0
  683. package/src/stories/.Input.stories.md +48 -30
  684. package/src/stories/.ListPageLayout.stories.md +56 -43
  685. package/src/stories/.MingoOnboardingCard.stories.md +42 -0
  686. package/src/stories/.MingoOnboardingCardSkeleton.stories.md +35 -0
  687. package/src/stories/.Modal.stories.md +40 -31
  688. package/src/stories/.NotificationDrawer.stories.md +55 -0
  689. package/src/stories/.OnboardingStepCard.stories.md +41 -0
  690. package/src/stories/.OrganizationCard.stories.md +61 -0
  691. package/src/stories/.PageActions.stories.md +52 -49
  692. package/src/stories/.PageContainer.stories.md +41 -35
  693. package/src/stories/.PageLayout.stories.md +60 -0
  694. package/src/stories/.ParallaxImageShowcase.stories.md +49 -0
  695. package/src/stories/.PhoneInput.stories.md +53 -0
  696. package/src/stories/.QueryReportTable.stories.md +44 -0
  697. package/src/stories/.RadioGroup.stories.md +46 -0
  698. package/src/stories/.RadioGroupBlock.stories.md +45 -0
  699. package/src/stories/.Select.stories.md +29 -15
  700. package/src/stories/.SlashCommandSuggestions.stories.md +41 -0
  701. package/src/stories/.SplitButton.stories.md +62 -0
  702. package/src/stories/.TabNavigation.stories.md +47 -38
  703. package/src/stories/.TabSelector.stories.md +65 -0
  704. package/src/stories/.Table.stories.md +38 -46
  705. package/src/stories/.TableColumnFilterDropdown.stories.md +46 -0
  706. package/src/stories/.Tag.stories.md +43 -32
  707. package/src/stories/.TagKeyValueFilter.stories.md +44 -0
  708. package/src/stories/.TagSearchInput.stories.md +61 -0
  709. package/src/stories/.Textarea.stories.md +49 -26
  710. package/src/stories/.Theme.stories.md +41 -0
  711. package/src/stories/.TicketAttachmentsList.stories.md +39 -0
  712. package/src/stories/.TicketDescriptionViewer.stories.md +39 -0
  713. package/src/stories/.TicketInfoSection.stories.md +40 -0
  714. package/src/stories/.TicketKnowledgeBaseList.stories.md +36 -0
  715. package/src/stories/.TicketNotesSection.stories.md +50 -0
  716. package/src/stories/.Toaster.stories.md +40 -0
  717. package/src/stories/.ToolExecutionDisplay.stories.md +41 -0
  718. package/src/stories/.Tooltip.stories.md +41 -0
  719. package/src/stories/.UserSummary.stories.md +41 -0
  720. package/src/stories/.WaitlistForm.stories.md +42 -0
  721. package/src/stories/BlogCard.stories.tsx +61 -0
  722. package/src/stories/CampaignCardAdmin.stories.tsx +52 -0
  723. package/src/stories/CaseStudyCard.stories.tsx +42 -0
  724. package/src/stories/ChatContainer.stories.tsx +186 -0
  725. package/src/stories/ChatInlineVideoPill.stories.tsx +63 -0
  726. package/src/stories/CustomerInterviewCard.stories.tsx +42 -0
  727. package/src/stories/DataRoomDocCard.stories.tsx +52 -0
  728. package/src/stories/GenericEntityCard.stories.tsx +66 -0
  729. package/src/stories/GitHubActivityCard.stories.tsx +61 -0
  730. package/src/stories/HubspotTicketCard.stories.tsx +98 -0
  731. package/src/stories/InvestorUpdateCard.stories.tsx +42 -0
  732. package/src/stories/OnboardingGuideCard.stories.tsx +52 -0
  733. package/src/stories/ProductReleaseCard.stories.tsx +61 -0
  734. package/src/stories/ProgramCard.stories.tsx +79 -0
  735. package/src/stories/RoadmapCard.stories.tsx +75 -0
  736. package/src/stories/SlackMessageCard.stories.tsx +41 -0
  737. package/src/stories/__fixtures__/chat-cards.ts +604 -0
  738. package/src/types/.blog.md +53 -29
  739. package/src/types/.case-study.md +44 -27
  740. package/src/types/.customer-interview.md +66 -44
  741. package/src/types/.delivery.md +40 -0
  742. package/src/types/.employee.md +24 -30
  743. package/src/types/.index.md +33 -47
  744. package/src/types/.marketing.md +49 -44
  745. package/src/types/.navigation.md +33 -25
  746. package/src/types/.os.types.md +32 -27
  747. package/src/types/.platform.md +31 -28
  748. package/src/types/.product-release.md +65 -38
  749. package/src/types/.supabase.md +37 -29
  750. package/src/types/.team.md +41 -33
  751. package/src/types/.video-processing.md +54 -0
  752. package/src/types/.waitlist.md +40 -36
  753. package/src/utils/.access-code-client.md +37 -36
  754. package/src/utils/.cn.md +31 -23
  755. package/src/utils/.color-analysis.md +35 -0
  756. package/src/utils/.country-phone-utils.md +39 -0
  757. package/src/utils/.date-formatters.md +19 -18
  758. package/src/utils/.embed-authed-fetch.md +39 -0
  759. package/src/utils/.embed-proxy-auth-storage.md +38 -0
  760. package/src/utils/.fetch-priority.md +41 -0
  761. package/src/utils/.format.md +74 -25
  762. package/src/utils/.generic-domain-utils.md +42 -0
  763. package/src/utils/.image-proxy.md +59 -23
  764. package/src/utils/.index.md +42 -49
  765. package/src/utils/.local-storage-adapter.md +50 -0
  766. package/src/utils/.ods-color-utils.md +55 -38
  767. package/src/utils/.platform-config.md +45 -25
  768. package/src/utils/.scroll-into-view.md +40 -0
  769. package/src/utils/.source-icons.md +53 -0
  770. package/src/utils/.sse-decision-frame.md +46 -0
  771. package/src/utils/dev-sections/.index.md +34 -0
  772. package/src/utils/dev-sections/.openframe-dev-sections.md +49 -0
  773. package/dist/chunk-3E5ANY55.js.map +0 -1
  774. package/dist/chunk-EH3RWVF3.cjs.map +0 -1
  775. package/dist/chunk-UYQOPC57.js.map +0 -1
  776. package/dist/chunk-WI76ZUBE.cjs.map +0 -1
  777. package/src/components/.card.md +0 -42
  778. package/src/components/.contact-button.md +0 -30
  779. package/src/components/.drawer.md +0 -46
  780. package/src/components/.fixed-layout-container.md +0 -47
  781. package/src/components/.footer-waitlist-card.md +0 -29
  782. package/src/components/.join-waitlist-cta.md +0 -29
  783. package/src/components/.sheet.md +0 -47
  784. package/src/components/.sliding-panel.md +0 -48
  785. package/src/components/.tooltip.md +0 -48
  786. package/src/components/.use-mobile.md +0 -42
  787. package/src/components/.vendor-compact-card.md +0 -66
  788. package/src/components/.x-button.md +0 -42
  789. package/src/components/features/.github-repo-button.md +0 -40
  790. package/src/components/features/.organization-icon.md +0 -47
  791. package/src/components/features/.organization-selector.md +0 -45
  792. package/src/components/icons/.fleet-icon.md +0 -39
  793. package/src/components/icons/.meshcentral-icon.md +0 -35
  794. package/src/components/icons/.refresh-icon.md +0 -34
  795. package/src/components/icons/.tactical-icon.md +0 -35
  796. package/src/components/ui/.button.md +0 -69
  797. package/src/components/ui/.log-table-row.md +0 -47
  798. package/src/components/ui/.selectable-device-card.md +0 -46
  799. package/src/hooks/.api-hooks-stub.md +0 -45
  800. package/src/hooks/api/.use-product-releases.md +0 -53
  801. package/src/stories/.OrganizationSelector.stories.md +0 -42
  802. package/src/stories/.SelectableDeviceCard.stories.md +0 -30
  803. package/src/utils/.lite-youtube-embed-stub.md +0 -37
  804. package/src/utils/.lite-youtube-embed.md +0 -33
  805. /package/dist/{chunk-QKFBZLIR.js.map → chunk-5OWDOFKK.js.map} +0 -0
  806. /package/dist/{chunk-5BNWGK6D.js.map → chunk-HWY35EAK.js.map} +0 -0
@@ -1,43 +1,47 @@
1
- <!-- source-hash: 08ec4f842d84b7970d3f7a6fb899875b -->
2
- A unified React component for editing SEO metadata and Open Graph data with live preview functionality. This component provides a consistent interface for managing meta titles, descriptions, keywords, and OG images across different content types.
1
+ <!-- source-hash: 7e8d4cbbf42c408ee48d1318fbf9c4e3 -->
2
+ Unified SEO & Open Graph editor component that combines meta fields (title, description, keywords), OG image upload, and a live preview into a single reusable panel. Designed for content editors across blog posts, case studies, and product releases.
3
3
 
4
4
  ## Key Components
5
5
 
6
- - **OGEditorPreview** - Main component that renders the complete SEO/OG editing interface
7
- - **OGEditorPreviewProps** - TypeScript interface defining all required props including SEO fields, auto-populate sources, change handlers, and render prop components
8
- - Responsive grid layout with form inputs for SEO metadata
9
- - Integration points for custom OG image upload and preview components
6
+ ### `OGEditorPreview`
7
+ Main exported component that renders a card-style panel with:
8
+ - **SEO Title + Keywords** — side-by-side `Input` fields (responsive grid)
9
+ - **SEO Description + OG Image** — `Textarea` paired with an injected upload widget
10
+ - **OG Preview** — rendered below a divider via the `OGPreviewComponent` slot
11
+
12
+ ### `OGEditorPreviewProps`
13
+ Full interface defining:
14
+
15
+ | Prop | Type | Description |
16
+ |------|------|-------------|
17
+ | `seoTitle` / `seoDescription` / `seoKeywords` | `string` | Controlled SEO field values |
18
+ | `ogImageUrl` | `string` | Current OG image URL |
19
+ | `title` / `summary` / `featuredImage` | `string` | Auto-populate sources from parent content |
20
+ | `categories` | `Array<{name, slug}>` | Optional category metadata |
21
+ | `OGImageUploadComponent` | `React.ReactNode` | Upload widget injected by parent |
22
+ | `OGPreviewComponent` | `React.ReactNode` | Preview widget injected by parent |
23
+ | `disabled` | `boolean` | Disables all inputs |
10
24
 
11
25
  ## Usage Example
12
26
 
13
27
  ```typescript
14
- import { OGEditorPreview } from './components/og-editor-preview';
15
- import { OGImageUpload } from './components/og-image-upload';
16
- import { OGPreviewCard } from './components/og-preview-card';
17
-
18
- function BlogEditor() {
19
- const [seoData, setSeoData] = useState({
20
- title: '',
21
- description: '',
22
- keywords: ''
23
- });
24
-
25
- return (
26
- <OGEditorPreview
27
- seoTitle={seoData.title}
28
- seoDescription={seoData.description}
29
- seoKeywords={seoData.keywords}
30
- ogImageUrl=""
31
- title="Blog Post Title"
32
- summary="Auto-populated summary"
33
- featuredImage=""
34
- onSeoTitleChange={(title) => setSeoData(prev => ({ ...prev, title }))}
35
- onSeoDescriptionChange={(description) => setSeoData(prev => ({ ...prev, description }))}
36
- onSeoKeywordsChange={(keywords) => setSeoData(prev => ({ ...prev, keywords }))}
37
- onOgImageUrlChange={(url) => console.log('OG image changed:', url)}
38
- OGImageUploadComponent={<OGImageUpload />}
39
- OGPreviewComponent={<OGPreviewCard />}
40
- />
41
- );
42
- }
43
- ```
28
+ import { OGEditorPreview } from './og-editor-preview';
29
+
30
+ <OGEditorPreview
31
+ seoTitle={post.seoTitle}
32
+ seoDescription={post.seoDescription}
33
+ seoKeywords={post.seoKeywords}
34
+ ogImageUrl={post.ogImageUrl}
35
+ title={post.title}
36
+ summary={post.summary}
37
+ featuredImage={post.featuredImage}
38
+ onSeoTitleChange={(val) => updateField('seoTitle', val)}
39
+ onSeoDescriptionChange={(val) => updateField('seoDescription', val)}
40
+ onSeoKeywordsChange={(val) => updateField('seoKeywords', val)}
41
+ onOgImageUrlChange={(val) => updateField('ogImageUrl', val)}
42
+ OGImageUploadComponent={<OGImageUploader postId={post.id} />}
43
+ OGPreviewComponent={<OGPreview title={post.seoTitle} description={post.seoDescription} image={post.ogImageUrl} />}
44
+ />
45
+ ```
46
+
47
+ > Upload and preview widgets are passed as render props (`React.ReactNode`), keeping this component decoupled from specific upload or preview implementations.
@@ -1,47 +1,54 @@
1
- <!-- source-hash: 5ea87f0b89bc2824f1f4d66b74b70a08 -->
2
- An interactive React component that creates animated image showcases with parallax effects, supporting three distinct layouts with scroll and mouse-based movement animations.
1
+ <!-- source-hash: 95c8b5bc96c688ed1c4897e169dbdcc0 -->
2
+ A React component that renders up to three images with scroll-based and mouse-tracking parallax animations using Framer Motion, supporting three distinct layout modes.
3
3
 
4
4
  ## Key Components
5
5
 
6
- - **ParallaxImageShowcase**: Main component with three layout modes:
7
- - `non-boxed`: Stacked images with z-index layering and complex positioning
8
- - `boxed`: Clean two-row grid with logo support and image overlaps
9
- - `grid`: Simple responsive three-column grid layout
10
- - **Animation System**: Combines scroll-based and global mouse tracking using Framer Motion
11
- - **Responsive Design**: Adaptive layouts with mobile-friendly breakpoints
6
+ ### `ParallaxImageShowcaseProps`
7
+ | Prop | Type | Description |
8
+ |------|------|-------------|
9
+ | `images` | `array` | Up to 3 images with `src`, `alt`, and `position` (`left`, `center`, `right`) |
10
+ | `layout` | `'non-boxed' \| 'boxed' \| 'grid'` | Visual arrangement mode (default: `'non-boxed'`) |
11
+ | `intensity` | `number` | Animation strength multiplier (default: `1`; range: `0.1`–`10`) |
12
+ | `shadow` | `boolean` | Applies drop shadow to images (grid layout only) |
13
+ | `logoElement` | `ReactNode` | Custom logo rendered above images in boxed layout |
14
+ | `className` | `string` | Additional Tailwind classes on the root element |
15
+
16
+ ### Layout Modes
17
+ - **`non-boxed`** — Overlapping layered images with z-index depth, large responsive offsets
18
+ - **`boxed`** — Two-row structure with a logo slot and two overlapping card-style images
19
+ - **`grid`** — Responsive 3-column grid with gentler vertical-only parallax
20
+
21
+ ### Animation System
22
+ - **Scroll**: `useScroll` → `useTransform` drives `x`, `y`, and `rotate` based on page scroll position
23
+ - **Mouse**: Global `mousemove` listener computes cursor offset relative to the component's `DOMRect`, fed into spring-smoothed motion values
24
+ - **Combined**: Scroll and mouse transforms are summed via `useTransform` with array input
12
25
 
13
26
  ## Usage Example
14
27
 
15
28
  ```typescript
16
29
  import { ParallaxImageShowcase } from './parallax-image-showcase'
17
30
 
18
- // Grid layout with shadows
19
- <ParallaxImageShowcase
20
- images={[
21
- { src: '/img1.jpg', alt: 'Screenshot 1', position: 'left' },
22
- { src: '/img2.jpg', alt: 'Screenshot 2', position: 'center' },
23
- { src: '/img3.jpg', alt: 'Screenshot 3', position: 'right' }
24
- ]}
25
- layout="grid"
26
- intensity={2}
27
- shadow={true}
28
- className="h-96"
29
- />
31
+ const images = [
32
+ { src: '/screens/dashboard.png', alt: 'Dashboard', position: 'left' as const },
33
+ { src: '/screens/tickets.png', alt: 'Tickets', position: 'center' as const },
34
+ { src: '/screens/reports.png', alt: 'Reports', position: 'right' as const },
35
+ ]
30
36
 
31
- // Boxed layout with logo
37
+ // Gentle grid layout with shadows
32
38
  <ParallaxImageShowcase
33
39
  images={images}
34
- layout="boxed"
35
- logoElement={<div>My Logo</div>}
40
+ layout="grid"
36
41
  intensity={0.5}
42
+ shadow
37
43
  />
38
44
 
39
- // Non-boxed layered layout
45
+ // Aggressive non-boxed hero section
40
46
  <ParallaxImageShowcase
41
47
  images={images}
42
48
  layout="non-boxed"
43
- intensity={1}
49
+ intensity={3}
50
+ className="h-[600px]"
44
51
  />
45
52
  ```
46
53
 
47
- The component features global mouse tracking, smooth spring animations, and configurable intensity levels for different visual effects. All layouts respond to both scroll position and mouse movement for immersive parallax experiences.
54
+ > **Intensity guide:** `0.1` = nearly static · `1` = default · `5` = dramatic · `10` = extreme. Tune per layout — `grid` looks best below `1`, `non-boxed` can handle up to `3–5`.
@@ -1,51 +1,50 @@
1
- <!-- source-hash: 7ad75ac8ea63324a0a3900bc15151bcb -->
2
- A React component for displaying file system paths with copy-to-clipboard functionality, featuring ODS styling and cross-platform path support. Designed for use cases like antivirus exclusions or system configuration paths.
1
+ <!-- source-hash: da445924e21f0d905c4ca341c95ec68c -->
2
+ Displays a list of file/folder paths with optional copy-to-clipboard functionality, styled with ODS design tokens and monospace formatting.
3
3
 
4
4
  ## Key Components
5
5
 
6
- - **PathsDisplay**: Main component that renders a list of paths with optional copy buttons
7
- - **PathsDisplayProps**: TypeScript interface defining component props
8
- - **OPENFRAME_PATHS**: Pre-defined path constants for Windows, macOS, and Linux platforms
9
- - **getOpenFramePaths**: Utility function to retrieve platform-specific OpenFrame paths
10
- - **OpenFramePathsPlatform**: Type union for supported platforms
6
+ | Export | Type | Description |
7
+ |--------|------|-------------|
8
+ | `PathsDisplay` | Component | Main component rendering a styled list of paths with optional copy buttons |
9
+ | `PathsDisplayProps` | Interface | Props definition for the `PathsDisplay` component |
10
+ | `OPENFRAME_PATHS` | Constant | Pre-defined path sets for Windows, macOS, and Linux platforms |
11
+ | `getOpenFramePaths` | Function | Returns a mutable array of paths for a given platform key |
12
+ | `OpenFramePathsPlatform` | Type | Union type of `'windows' \| 'darwin' \| 'linux'` |
11
13
 
12
14
  ## Usage Example
13
15
 
14
16
  ```typescript
15
- import { PathsDisplay, getOpenFramePaths } from './paths-display'
16
-
17
- // Basic usage with custom paths
18
- const systemPaths = [
19
- 'C:\\Program Files\\MyApp\\',
20
- 'C:\\Users\\%USERNAME%\\AppData\\Local\\MyApp\\'
21
- ]
22
-
23
- function PathsList() {
24
- const handleCopyPath = (path: string) => {
17
+ import { PathsDisplay, getOpenFramePaths } from '@flamingo/ui-kit/components/features'
18
+
19
+ // Basic usage with antivirus exclusion paths
20
+ <PathsDisplay
21
+ paths={getOpenFramePaths('windows')}
22
+ title="Antivirus Exclusions"
23
+ description="Add these folders to your antivirus exclusions list"
24
+ onCopyPath={(path) => {
25
25
  navigator.clipboard.writeText(path)
26
- toast({ title: 'Copied!', description: 'Path copied to clipboard' })
27
- }
28
-
29
- return (
30
- <PathsDisplay
31
- paths={systemPaths}
32
- title="Antivirus Exclusions"
33
- description="Add these paths to your antivirus whitelist"
34
- onCopyPath={handleCopyPath}
35
- showCopyButtons={true}
36
- />
37
- )
38
- }
39
-
40
- // Using pre-defined OpenFrame paths
41
- function OpenFramePaths() {
42
- const windowsPaths = getOpenFramePaths('windows')
43
-
44
- return (
45
- <PathsDisplay
46
- paths={windowsPaths}
47
- title="OpenFrame Installation Paths"
48
- />
49
- )
50
- }
51
- ```
26
+ toast({ title: 'Copied', description: 'Path copied to clipboard' })
27
+ }}
28
+ />
29
+
30
+ // Display-only, no copy buttons
31
+ <PathsDisplay
32
+ paths={getOpenFramePaths('linux')}
33
+ title="Linux Agent Paths"
34
+ showCopyButtons={false}
35
+ />
36
+ ```
37
+
38
+ ## Props
39
+
40
+ | Prop | Type | Default | Description |
41
+ |------|------|---------|-------------|
42
+ | `paths` | `string[]` | — | Array of paths to display |
43
+ | `onCopyPath` | `(path: string) => void` | — | Callback triggered on copy button click |
44
+ | `title` | `string` | — | Optional heading above the list |
45
+ | `description` | `string` | — | Optional subtext below the title |
46
+ | `showCopyButtons` | `boolean` | `true` | Toggle copy button visibility |
47
+ | `copyIconSize` | `string` | `'w-5 h-5'` | Tailwind size classes for the copy icon |
48
+ | `className` | `string` | — | Additional CSS classes for the container |
49
+
50
+ > **Note:** The component renders `null` when `paths` is empty or undefined. Copy buttons only render when both `showCopyButtons` is `true` **and** `onCopyPath` is provided.
@@ -1,50 +1,51 @@
1
- <!-- source-hash: 8fc07a96a287d7d30046a7e6b1251b68 -->
2
- A React component that renders platform-specific badges with branded icons, colors, and labels for Flamingo Stack platforms.
1
+ <!-- source-hash: 8742c38ee7680d3664638dd468a8ed67 -->
2
+ A client-side React component that renders a styled badge identifying the source platform of content, with platform-specific icons, colors, and sizing options.
3
3
 
4
4
  ## Key Components
5
5
 
6
- - **PlatformBadge** - Main component that displays a platform badge with icon and optional label
7
- - **PlatformIcon** - Internal component that renders platform-specific icons based on platform name
8
- - **sizeClasses** - Configuration object defining size variants (xs, sm, md) for container, icon, and text
9
- - **platformColors** - Color scheme mapping for each platform (background, border, text colors)
10
- - **PlatformBadgeProps** - TypeScript interface defining component props including platform data, size, and display options
6
+ - **`PlatformBadge`** — Main exported component that renders a rounded pill badge with an icon and optional label
7
+ - **`PlatformIcon`** — Internal component that resolves the correct logo/icon for a given platform ID
8
+ - **`sizeClasses`** — Size variant map (`xs`, `sm`, `md`) controlling container padding, icon dimensions, and text size
9
+ - **`platformColors`** — Color theme map per platform, defining background, border, and text Tailwind classes
10
+
11
+ ### Supported Platforms
12
+
13
+ | Platform ID | Color |
14
+ |---|---|
15
+ | `openmsp` | Yellow `#FFC008` |
16
+ | `flamingo` / `flamingo-teaser` | Pink `#FF006E` |
17
+ | `openframe` | Cyan `#00D9D9` |
18
+ | `tmcg` | Magenta `#F357BB` |
19
+ | `company-hub` | Red `#f36666` |
20
+ | `marketing-hub` | Magenta `#F357BB` |
21
+ | `product-hub` | Green `#5EA62E` |
22
+ | `revenue-hub` | Yellow `#FFC008` |
23
+ | `people-hub` | Teal `#5EFAF0` |
24
+ | `universal` (fallback) | Gray `#6B7280` |
11
25
 
12
26
  ## Usage Example
13
27
 
14
28
  ```typescript
15
- import { PlatformBadge } from './components/ui/platform-badge';
16
-
17
- // Basic usage with platform object
18
- <PlatformBadge
19
- platform={{
20
- id: "1",
21
- name: "flamingo",
22
- display_name: "Flamingo"
23
- }}
24
- />
29
+ import { PlatformBadge } from './platform-badge';
25
30
 
26
- // Different sizes and configurations
27
- <PlatformBadge
28
- platform={{
29
- id: "2",
30
- name: "openframe",
31
- display_name: "OpenFrame"
32
- }}
33
- size="md"
31
+ // Basic usage with label
32
+ <PlatformBadge
33
+ platform={{ id: '1', name: 'flamingo', display_name: 'Flamingo' }}
34
+ size="sm"
34
35
  showLabel={true}
35
- className="custom-styles"
36
36
  />
37
37
 
38
- // Icon only (no label)
39
- <PlatformBadge
40
- platform={{
41
- id: "3",
42
- name: "openmsp",
43
- display_name: "OpenMSP"
44
- }}
45
- size="xs"
38
+ // Icon-only, larger size
39
+ <PlatformBadge
40
+ platform={{ id: '2', name: 'openframe', display_name: 'OpenFrame' }}
41
+ size="md"
46
42
  showLabel={false}
47
43
  />
48
- ```
49
44
 
50
- The component supports platforms like Flamingo, OpenMSP, OpenFrame, Admin Hub, and TMCG with their respective brand colors and icons. It gracefully handles unknown platforms with a generic globe icon and gray color scheme.
45
+ // With custom class override
46
+ <PlatformBadge
47
+ platform={{ id: '3', name: 'openmsp', display_name: 'OpenMSP' }}
48
+ size="xs"
49
+ className="opacity-75"
50
+ />
51
+ ```
@@ -1,38 +1,45 @@
1
- <!-- source-hash: 03180f80130a11561f970ec5330ba8be -->
2
- A React component that renders a set of filter buttons for selecting different platforms, with support for icons and customizable styling.
1
+ <!-- source-hash: aa1e11dd3e0b9d6a8141611784c7d212 -->
2
+ A reusable React filter component that renders a row of platform-selection buttons, including an "All Platforms" option, with optional platform icons.
3
3
 
4
4
  ## Key Components
5
5
 
6
- - **PlatformFilterComponentProps** - Interface defining component props including platform selection state, change handler, and styling options
7
- - **PlatformFilterComponent** - Main functional component that renders platform filter buttons with optional icons
8
- - **getSmallPlatformIcon** - Utility function import for retrieving platform-specific icons
6
+ ### `PlatformFilterComponent`
7
+ The primary export — a client-side React component that maps a `PlatformConfig[]` array into toggle buttons, highlighting the currently selected platform using the `"accent"` variant.
8
+
9
+ ### `PlatformFilterComponentProps`
10
+
11
+ | Prop | Type | Default | Description |
12
+ |------|------|---------|-------------|
13
+ | `selectedPlatform` | `string` | — | Currently active platform value (use `'all'` for the global option) |
14
+ | `onPlatformChange` | `(platform: string) => void` | — | Callback fired when a platform button is clicked |
15
+ | `platforms` | `PlatformConfig[]` | `[]` | List of platform options to render |
16
+ | `className` | `string` | `''` | Additional CSS classes for the wrapper `div` |
17
+ | `showIcons` | `boolean` | `true` | Whether to render small platform icons via `getSmallPlatformIcon` |
18
+ | `size` | `'small-legacy' \| 'default'` | `'small-legacy'` | Button size variant |
9
19
 
10
20
  ## Usage Example
11
21
 
12
22
  ```typescript
13
23
  import { PlatformFilterComponent } from './platform-filter';
14
- import type { PlatformConfig } from '../types/platform';
24
+ import type { PlatformConfig } from '../../types/platform';
15
25
 
16
26
  const platforms: PlatformConfig[] = [
17
- { value: 'ios', label: 'iOS' },
18
- { value: 'android', label: 'Android' },
19
- { value: 'web', label: 'Web' }
27
+ { value: 'connectwise', label: 'ConnectWise' },
28
+ { value: 'halo', label: 'HaloPSA' },
20
29
  ];
21
30
 
22
- function AppFilters() {
23
- const [selectedPlatform, setSelectedPlatform] = useState('all');
31
+ function TicketFilters() {
32
+ const [platform, setPlatform] = React.useState('all');
24
33
 
25
34
  return (
26
35
  <PlatformFilterComponent
27
- selectedPlatform={selectedPlatform}
28
- onPlatformChange={setSelectedPlatform}
36
+ selectedPlatform={platform}
37
+ onPlatformChange={setPlatform}
29
38
  platforms={platforms}
30
39
  showIcons={true}
31
- size="default"
32
- className="my-4"
33
40
  />
34
41
  );
35
42
  }
36
43
  ```
37
44
 
38
- The component renders an "All Platforms" button followed by individual platform buttons, with the selected platform highlighted using the primary variant. Icons are displayed by default and can be toggled via the `showIcons` prop.
45
+ > **Note:** Platform icons are resolved via the shared `getSmallPlatformIcon` utility in `platform-config`. To add a new platform, extend the `PlatformConfig` type and register its icon there rather than modifying this component.
@@ -1,66 +1,58 @@
1
- <!-- source-hash: c4760001ccc6ea7295fa325e79556bf6 -->
2
- A comprehensive React component that renders an expandable permission policy configuration interface with hierarchical categories and granular policy controls.
1
+ <!-- source-hash: bd515872f4cb1c49add8d17631e037c5 -->
2
+ A React panel component for displaying and editing permission policies grouped by category, supporting both view and edit modes with animated expand/collapse behavior.
3
3
 
4
4
  ## Key Components
5
5
 
6
- **PolicyConfigurationPanel**: Main container component that renders a list of expandable permission categories with global and individual policy settings.
7
-
8
- **CategorySection**: Individual category component with animated expansion/collapse, global permission dropdown, and policy list management.
9
-
10
- **PolicyRow**: Individual policy item component displaying tool icon, policy details (name and command pattern), and permission level dropdown.
11
-
12
- **useAnimatedHeight**: Custom hook providing smooth height animations for expanding/collapsing category sections.
13
-
14
- **Helper Functions**:
15
- - `getApprovalLevelLabel()`: Maps approval level values to user-friendly labels
16
- - `approvalLevelOptions`: Predefined approval level configuration
6
+ | Export / Internal | Type | Description |
7
+ |---|---|---|
8
+ | `PolicyConfigurationPanel` | Component (exported) | Root panel rendering all permission categories |
9
+ | `CategorySection` | Internal component | Collapsible category with global permission dropdown |
10
+ | `PolicyRow` | Internal component | Single policy entry with approval level selector |
11
+ | `useAnimatedHeight` | Custom hook | Smooth height animation for expand/collapse transitions |
12
+ | `approvalLevelOptions` | Constant | Available levels: `ALLOW`, `ASK_USER`, `ASK_TECHNICIAN`, `DENY` |
13
+ | `getApprovalLevelLabel` | Utility fn | Resolves `ApprovalLevel` enum to display string |
17
14
 
18
15
  ## Usage Example
19
16
 
20
17
  ```typescript
21
18
  import { PolicyConfigurationPanel } from './policy-configuration-panel'
22
-
23
- function PermissionsSettings() {
24
- const [categories, setCategories] = useState<PermissionCategory[]>([
25
- {
26
- id: 'network',
27
- name: 'Network Tools',
28
- icon: '🌐',
29
- configurationsCount: 5,
30
- isExpanded: false,
31
- globalPermission: 'ASK_USER',
32
- policies: [
33
- {
34
- id: 'ping',
35
- name: 'Ping Command',
36
- toolName: 'ping',
37
- commandPattern: 'ping -c 4 {host}',
38
- approvalLevel: 'ALLOW'
39
- }
40
- ]
41
- }
42
- ])
43
-
44
- return (
45
- <PolicyConfigurationPanel
46
- categories={categories}
47
- editMode={true}
48
- onCategoryToggle={(categoryId) => {
49
- setCategories(prev => prev.map(cat =>
50
- cat.id === categoryId
51
- ? { ...cat, isExpanded: !cat.isExpanded }
52
- : cat
53
- ))
54
- }}
55
- onGlobalPermissionChange={(categoryId, level) => {
56
- // Update global permission logic
57
- }}
58
- onPolicyPermissionChange={(categoryId, policyId, level) => {
59
- // Update individual policy logic
60
- }}
61
- />
62
- )
63
- }
19
+ import { PermissionCategory, ApprovalLevel } from '../../types/permissions'
20
+
21
+ const categories: PermissionCategory[] = [
22
+ {
23
+ id: 'network',
24
+ name: 'Network',
25
+ icon: <NetworkIcon />,
26
+ configurationsCount: 3,
27
+ isExpanded: false,
28
+ globalPermission: 'ALLOW',
29
+ policies: [
30
+ {
31
+ id: 'ping',
32
+ name: 'Ping Host',
33
+ commandPattern: 'ping *',
34
+ toolName: 'network',
35
+ approvalLevel: 'ALLOW',
36
+ },
37
+ ],
38
+ },
39
+ ]
40
+
41
+ <PolicyConfigurationPanel
42
+ categories={categories}
43
+ editMode={true}
44
+ onCategoryToggle={(categoryId) => toggleCategory(categoryId)}
45
+ onGlobalPermissionChange={(categoryId, level) => setGlobal(categoryId, level)}
46
+ onPolicyPermissionChange={(categoryId, policyId, level) =>
47
+ updatePolicy(categoryId, policyId, level)
48
+ }
49
+ className="my-4"
50
+ />
64
51
  ```
65
52
 
66
- The component features smooth animations, responsive design, and comprehensive permission management with support for both category-level global permissions and individual policy-level controls.
53
+ ## Behavior Notes
54
+
55
+ - In **edit mode**, dropdowns allow selecting approval levels per policy or globally per category
56
+ - In **view mode**, current levels are rendered as static text
57
+ - `useAnimatedHeight` uses `scrollHeight` measurement + CSS transitions for smooth accordion animation
58
+ - Category header clicks and the chevron button both toggle expansion; dropdown clicks use `stopPropagation` to prevent conflicts
@@ -1,50 +1,47 @@
1
- <!-- source-hash: 274a22be0c31fdc49ccdc0daf827abd4 -->
2
- A React component that renders authentication provider buttons with integrated loading states and consistent styling for OAuth sign-in flows.
1
+ <!-- source-hash: 18cb2f4cc768f6f9efb9b720bfbd1714 -->
2
+ A reusable OAuth provider sign-in button component that handles loading states, click propagation, and renders the appropriate provider icon and label.
3
3
 
4
4
  ## Key Components
5
5
 
6
- **ProviderButton Component**
7
- - `ProviderButtonProps` - Interface defining provider type, click handler, and optional disabled/loading states
8
- - `PROVIDER_CONFIG` - Configuration object mapping provider names to display text and icons
9
- - Supports Microsoft, Google, Slack, and GitHub authentication providers
6
+ ### `ProviderButtonProps`
7
+ | Prop | Type | Description |
8
+ |------|------|-------------|
9
+ | `provider` | `'microsoft' \| 'google' \| 'slack' \| 'github'` | OAuth provider to render |
10
+ | `onClick` | `() => Promise<void> \| void` | Sign-in handler (sync or async) |
11
+ | `disabled` | `boolean` | Disables the button (default: `false`) |
12
+ | `loading` | `boolean` | External loading state override (default: `false`) |
10
13
 
11
- **Key Features**
12
- - Dual loading state management (internal and external)
13
- - Event bubbling prevention for modal contexts
14
- - Consistent styling with hover states and accessibility labels
15
- - Error handling with console logging
14
+ ### `PROVIDER_CONFIG`
15
+ Static map linking each provider key to its display name and icon component.
16
+
17
+ ### `ProviderButton`
18
+ Main exported component. Manages an internal loading state that activates during async `onClick` execution, falling back gracefully when an external `loading` prop is passed. Stops click propagation to prevent accidental modal/backdrop dismissals.
16
19
 
17
20
  ## Usage Example
18
21
 
19
22
  ```typescript
20
23
  import { ProviderButton } from './provider-button';
21
24
 
22
- function SignInModal() {
23
- const [loading, setLoading] = useState(false);
25
+ async function handleMicrosoftSignIn() {
26
+ await signIn('microsoft');
27
+ }
28
+
29
+ // Basic usage
30
+ <ProviderButton provider="microsoft" onClick={handleMicrosoftSignIn} />
24
31
 
25
- const handleGoogleSignIn = async () => {
32
+ // With external loading control
33
+ const [loading, setLoading] = useState(false);
34
+
35
+ <ProviderButton
36
+ provider="google"
37
+ onClick={async () => {
26
38
  setLoading(true);
27
- try {
28
- await signInWithGoogle();
29
- } finally {
30
- setLoading(false);
31
- }
32
- };
33
-
34
- return (
35
- <div className="space-y-3">
36
- <ProviderButton
37
- provider="google"
38
- onClick={handleGoogleSignIn}
39
- loading={loading}
40
- />
41
- <ProviderButton
42
- provider="github"
43
- onClick={() => signInWithGitHub()}
44
- />
45
- </div>
46
- );
47
- }
39
+ await signIn('google');
40
+ setLoading(false);
41
+ }}
42
+ loading={loading}
43
+ disabled={loading}
44
+ />
48
45
  ```
49
46
 
50
- The component automatically handles loading states, displays appropriate icons, and provides consistent UX patterns for authentication flows across different OAuth providers.
47
+ > **Note:** When `loading` is provided externally, internal loading state management is skipped to avoid state conflicts.