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

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (746) hide show
  1. package/dist/{chunk-35XIT2CF.cjs → chunk-2G3NXF6J.cjs} +17 -17
  2. package/dist/{chunk-35XIT2CF.cjs.map → chunk-2G3NXF6J.cjs.map} +1 -1
  3. package/dist/{chunk-IK2X5YJU.js → chunk-7PCP7YQR.js} +2 -2
  4. package/dist/{chunk-ZDF6F7ED.cjs → chunk-D4MNFY67.cjs} +4 -3
  5. package/dist/chunk-D4MNFY67.cjs.map +1 -0
  6. package/dist/{chunk-OTKJASSX.cjs → chunk-NGFP4RVL.cjs} +24 -24
  7. package/dist/{chunk-OTKJASSX.cjs.map → chunk-NGFP4RVL.cjs.map} +1 -1
  8. package/dist/{chunk-3JWIJJ44.js → chunk-R6MLPU4A.js} +2 -2
  9. package/dist/{chunk-ZTJVRSN5.js → chunk-WQZP3JIZ.js} +4 -3
  10. package/dist/chunk-WQZP3JIZ.js.map +1 -0
  11. package/dist/components/chat/index.cjs +2 -2
  12. package/dist/components/chat/index.js +1 -1
  13. package/dist/components/contact/index.cjs +3 -3
  14. package/dist/components/contact/index.js +2 -2
  15. package/dist/components/features/index.cjs +2 -2
  16. package/dist/components/features/index.js +1 -1
  17. package/dist/components/index.cjs +49 -49
  18. package/dist/components/index.js +2 -2
  19. package/dist/components/navigation/index.cjs +2 -2
  20. package/dist/components/navigation/index.js +1 -1
  21. package/dist/components/tickets/index.cjs +61 -61
  22. package/dist/components/tickets/index.js +3 -3
  23. package/dist/components/ui/index.cjs +2 -2
  24. package/dist/components/ui/index.js +1 -1
  25. package/dist/index.cjs +2 -2
  26. package/dist/index.js +1 -1
  27. package/package.json +1 -1
  28. package/src/.index.md +36 -34
  29. package/src/components/.alert-dialog.md +27 -23
  30. package/src/components/.announcement-bar.md +26 -21
  31. package/src/components/.breadcrumb.md +19 -15
  32. package/src/components/.calendar.md +24 -19
  33. package/src/components/.categories-cart.md +29 -24
  34. package/src/components/.checkbox.md +23 -25
  35. package/src/components/.chevron-button.md +37 -32
  36. package/src/components/.comment-card.md +32 -62
  37. package/src/components/.dialog.md +26 -26
  38. package/src/components/.dynamic-skeleton.md +54 -57
  39. package/src/components/.empty-state.md +42 -51
  40. package/src/components/.faq-accordion.md +27 -21
  41. package/src/components/.filter-chip.md +41 -24
  42. package/src/components/.flamingo-logo.md +20 -23
  43. package/src/components/.footer-waitlist-button.md +29 -22
  44. package/src/components/.footer.md +32 -32
  45. package/src/components/.icons-block.md +27 -17
  46. package/src/components/.image-cropper.md +41 -32
  47. package/src/components/.index.md +33 -39
  48. package/src/components/.input.md +31 -35
  49. package/src/components/.logs-list.md +31 -20
  50. package/src/components/.media-carousel.md +35 -36
  51. package/src/components/.open-source-features.md +33 -16
  52. package/src/components/.pagination.md +52 -51
  53. package/src/components/.provider-button.md +21 -23
  54. package/src/components/.select.md +31 -20
  55. package/src/components/.sidebar.md +34 -24
  56. package/src/components/.smooth-accordion.md +29 -24
  57. package/src/components/.social-icon-row.md +36 -32
  58. package/src/components/.textarea.md +25 -31
  59. package/src/components/.tool-icon.md +24 -26
  60. package/src/components/.unified-filter-logic.md +37 -30
  61. package/src/components/.unified-pagination.md +23 -22
  62. package/src/components/.user-summary-stub.md +38 -22
  63. package/src/components/.vendor-display-button.md +25 -25
  64. package/src/components/.vendor-icon.md +33 -25
  65. package/src/components/.why-it-matters.md +28 -25
  66. package/src/components/chat/.approval-batch-message.md +51 -0
  67. package/src/components/chat/.approval-request-message.md +35 -34
  68. package/src/components/chat/.chat-attachment-bar.md +64 -0
  69. package/src/components/chat/.chat-container.md +36 -18
  70. package/src/components/chat/.chat-input.md +37 -20
  71. package/src/components/chat/.chat-message-enhanced.md +30 -49
  72. package/src/components/chat/.chat-message-list.md +45 -32
  73. package/src/components/chat/.chat-message-skeleton.md +26 -22
  74. package/src/components/chat/.chat-panel-context.md +52 -0
  75. package/src/components/chat/.chat-ref.types.md +42 -0
  76. package/src/components/chat/.chat-sidebar-skeleton.md +34 -25
  77. package/src/components/chat/.chat-sidebar.md +31 -26
  78. package/src/components/chat/.chat-ticket-list.md +39 -0
  79. package/src/components/chat/.context-compaction-display.md +36 -0
  80. package/src/components/chat/.cycling-phrase.md +52 -0
  81. package/src/components/chat/.embeddable-chat.md +48 -0
  82. package/src/components/chat/.expand-chevron.md +24 -0
  83. package/src/components/chat/.index.md +31 -35
  84. package/src/components/chat/.mingo-onboarding-card-skeleton.md +44 -0
  85. package/src/components/chat/.mingo-onboarding-card.md +62 -0
  86. package/src/components/chat/.model-display.md +32 -30
  87. package/src/components/chat/.nav-link-anchor-via-runtime.md +40 -0
  88. package/src/components/chat/.remark-card-links.md +38 -0
  89. package/src/components/chat/.slash-command-suggestions.md +47 -0
  90. package/src/components/chat/.source-action-button.md +48 -0
  91. package/src/components/chat/.thinking-display.md +42 -0
  92. package/src/components/chat/.tool-call-blocks.md +45 -0
  93. package/src/components/chat/.tool-execution-display.md +44 -36
  94. package/src/components/chat/chat-container.tsx +1 -1
  95. package/src/components/chat/entity-cards/.admin-content-card.md +43 -0
  96. package/src/components/chat/entity-cards/.block-card.md +47 -0
  97. package/src/components/chat/entity-cards/.blog-card.md +52 -0
  98. package/src/components/chat/entity-cards/.blog-image-placeholder.md +39 -0
  99. package/src/components/chat/entity-cards/.campaign-card-admin.md +47 -0
  100. package/src/components/chat/entity-cards/.case-study-card.md +58 -0
  101. package/src/components/chat/entity-cards/.chat-ticket-item.md +40 -0
  102. package/src/components/chat/entity-cards/.chat-video-entity-card.md +43 -0
  103. package/src/components/chat/entity-cards/.customer-interview-card.md +53 -0
  104. package/src/components/chat/entity-cards/.data-room-doc-card.md +47 -0
  105. package/src/components/chat/entity-cards/.dispatch.md +39 -0
  106. package/src/components/chat/entity-cards/.entity-author-card.md +51 -0
  107. package/src/components/chat/entity-cards/.generic-entity-card.md +62 -0
  108. package/src/components/chat/entity-cards/.github-activity-card.md +61 -0
  109. package/src/components/chat/entity-cards/.hubspot-ticket-card.md +53 -0
  110. package/src/components/chat/entity-cards/.index.md +66 -0
  111. package/src/components/chat/entity-cards/.investor-update-card.md +47 -0
  112. package/src/components/chat/entity-cards/.onboarding-guide-card.md +58 -0
  113. package/src/components/chat/entity-cards/.product-release-card-defaults.md +31 -0
  114. package/src/components/chat/entity-cards/.product-release-card.md +29 -0
  115. package/src/components/chat/entity-cards/.program-card-defaults.md +41 -0
  116. package/src/components/chat/entity-cards/.program-card.md +59 -0
  117. package/src/components/chat/entity-cards/.roadmap-card.md +46 -0
  118. package/src/components/chat/entity-cards/.roadmap-vote-button.md +52 -0
  119. package/src/components/chat/entity-cards/.slack-message-card.md +48 -0
  120. package/src/components/chat/entity-cards/.task-type-icon.md +47 -0
  121. package/src/components/chat/hooks/.index.md +36 -21
  122. package/src/components/chat/hooks/.use-chat-attachment-image-gallery.md +51 -0
  123. package/src/components/chat/hooks/.use-chat-attachments.md +48 -0
  124. package/src/components/chat/hooks/.use-chat-card-item.md +39 -0
  125. package/src/components/chat/hooks/.use-chat-identity.md +45 -0
  126. package/src/components/chat/hooks/.use-chat.md +58 -0
  127. package/src/components/chat/hooks/.use-chunk-catchup.md +46 -48
  128. package/src/components/chat/hooks/.use-close-on-navigation.md +44 -0
  129. package/src/components/chat/hooks/.use-collapsible.md +48 -0
  130. package/src/components/chat/hooks/.use-embedded-chat.md +32 -0
  131. package/src/components/chat/hooks/.use-jetstream-dialog-subscription.md +40 -0
  132. package/src/components/chat/hooks/.use-nats-chat-adapter.md +52 -0
  133. package/src/components/chat/hooks/.use-nats-dialog-subscription.md +49 -30
  134. package/src/components/chat/hooks/.use-proxied-image-url.md +40 -0
  135. package/src/components/chat/hooks/.use-realtime-chunk-processor.md +43 -40
  136. package/src/components/chat/hooks/.use-slash-commands.md +46 -0
  137. package/src/components/chat/hooks/.use-sse-chat-adapter.md +34 -0
  138. package/src/components/chat/hooks/.use-sse.md +60 -0
  139. package/src/components/chat/hooks/.use-unified-chat.md +57 -0
  140. package/src/components/chat/types/.api.types.md +52 -38
  141. package/src/components/chat/types/.chat.types.md +43 -34
  142. package/src/components/chat/types/.component.types.md +47 -48
  143. package/src/components/chat/types/.index.md +20 -27
  144. package/src/components/chat/types/.message.types.md +58 -48
  145. package/src/components/chat/types/.network.types.md +57 -31
  146. package/src/components/chat/types/.processing.types.md +49 -31
  147. package/src/components/chat/types/.unified-chat-state.types.md +41 -0
  148. package/src/components/chat/types/entities/.blog.md +43 -0
  149. package/src/components/chat/types/entities/.case-study.md +26 -0
  150. package/src/components/chat/types/entities/.content-ref.md +41 -0
  151. package/src/components/chat/types/entities/.customer-interview.md +28 -0
  152. package/src/components/chat/types/entities/.data-room-doc.md +36 -0
  153. package/src/components/chat/types/entities/.github-activity.md +43 -0
  154. package/src/components/chat/types/entities/.hubspot-ticket.md +53 -0
  155. package/src/components/chat/types/entities/.index.md +42 -0
  156. package/src/components/chat/types/entities/.investor-update.md +45 -0
  157. package/src/components/chat/types/entities/.onboarding-guide.md +50 -0
  158. package/src/components/chat/types/entities/.program-types.md +57 -0
  159. package/src/components/chat/types/entities/.roadmap-item.md +58 -0
  160. package/src/components/chat/types/entities/.slack-message.md +35 -0
  161. package/src/components/chat/utils/.agent-status-message.md +45 -0
  162. package/src/components/chat/utils/.auto-continuation-directive.md +58 -0
  163. package/src/components/chat/utils/.chat-attachment-markdown.md +54 -0
  164. package/src/components/chat/utils/.chat-authed-fetch.md +25 -0
  165. package/src/components/chat/utils/.chat-nav-resolution.md +46 -0
  166. package/src/components/chat/utils/.chat-proxy-auth-storage.md +38 -0
  167. package/src/components/chat/utils/.chip-action-class.md +34 -0
  168. package/src/components/chat/utils/.chip-styles.md +46 -0
  169. package/src/components/chat/utils/.chunk-parser.md +38 -28
  170. package/src/components/chat/utils/.clickup-task-type-utils.md +48 -0
  171. package/src/components/chat/utils/.compact-card-classes.md +62 -0
  172. package/src/components/chat/utils/.decide-new-tab.md +51 -0
  173. package/src/components/chat/utils/.external-app-urls.md +29 -0
  174. package/src/components/chat/utils/.extract-incomplete-message-state.md +25 -29
  175. package/src/components/chat/utils/.flatten-assistant-content.md +34 -0
  176. package/src/components/chat/utils/.icon-registry.md +46 -0
  177. package/src/components/chat/utils/.index.md +37 -32
  178. package/src/components/chat/utils/.is-cross-origin-url.md +35 -0
  179. package/src/components/chat/utils/.message-segment-accumulator.md +25 -34
  180. package/src/components/chat/utils/.nav-anchor-props.md +44 -0
  181. package/src/components/chat/utils/.nav-click-handler.md +47 -0
  182. package/src/components/chat/utils/.onboarding-icons.md +28 -0
  183. package/src/components/chat/utils/.process-historical-messages.md +46 -35
  184. package/src/components/chat/utils/.scroll-anchor.md +40 -0
  185. package/src/components/chat/utils/.slash-dispatch-utils.md +44 -0
  186. package/src/components/chat/utils/.source-icons.md +35 -0
  187. package/src/components/chat/utils/.source-row-cta.md +54 -0
  188. package/src/components/chat/utils/.tool-call-helpers.md +42 -0
  189. package/src/components/contact/.contact-form.md +43 -0
  190. package/src/components/contact/.index.md +27 -0
  191. package/src/components/features/.array-entry-manager.md +36 -45
  192. package/src/components/features/.changelog-manager.md +47 -21
  193. package/src/components/features/.changelog-sections-manager.md +21 -26
  194. package/src/components/features/.command-box.md +31 -28
  195. package/src/components/features/.entity-summary-editor.md +46 -0
  196. package/src/components/features/.entity-video-section.md +51 -0
  197. package/src/components/features/.figma-prototype-viewer.md +48 -29
  198. package/src/components/features/.filters-dropdown.md +33 -46
  199. package/src/components/features/.highlight-config-section.md +42 -0
  200. package/src/components/features/.highlight-generation-section.md +46 -0
  201. package/src/components/features/.highlight-video-combined-section.md +47 -0
  202. package/src/components/features/.highlight-video-preview.md +44 -0
  203. package/src/components/features/.highlight-video-section.md +47 -0
  204. package/src/components/features/.index.md +40 -66
  205. package/src/components/features/.media-gallery-manager.md +48 -38
  206. package/src/components/features/.more-about-button.md +22 -19
  207. package/src/components/features/.og-editor-preview.md +40 -36
  208. package/src/components/features/.parallax-image-showcase.md +33 -26
  209. package/src/components/features/.paths-display.md +42 -43
  210. package/src/components/features/.platform-badge.md +37 -36
  211. package/src/components/features/.platform-filter.md +23 -16
  212. package/src/components/features/.policy-configuration-panel.md +48 -56
  213. package/src/components/features/.provider-button.md +33 -36
  214. package/src/components/features/.push-button-selector.md +40 -29
  215. package/src/components/features/.release-media-manager.md +46 -31
  216. package/src/components/features/.section-selector.md +26 -31
  217. package/src/components/features/.select-button.md +35 -25
  218. package/src/components/features/.seo-editor-preview.md +41 -44
  219. package/src/components/features/.social-links-manager.md +25 -19
  220. package/src/components/features/.start-with-openframe-button.md +37 -29
  221. package/src/components/features/.status-filter-component.md +36 -20
  222. package/src/components/features/.tags-selector.md +40 -24
  223. package/src/components/features/.transcribe-and-summarize-combined-section.md +45 -0
  224. package/src/components/features/.transcribe-summarize-section.md +48 -0
  225. package/src/components/features/.transcript-summary-editor.md +53 -0
  226. package/src/components/features/.video-bites-display.md +46 -0
  227. package/src/components/features/.video-clips-section.md +41 -0
  228. package/src/components/features/.video-ratio-tabs.md +56 -0
  229. package/src/components/features/.video-source-selector.md +60 -0
  230. package/src/components/features/.video.md +44 -0
  231. package/src/components/features/.waitlist-form.md +60 -0
  232. package/src/components/features/ai-enrich/.AIEnrichButton.md +30 -27
  233. package/src/components/features/ai-enrich/.AIEnrichSection.md +46 -42
  234. package/src/components/features/board/.board-column-header.md +38 -0
  235. package/src/components/features/board/.board-column.md +43 -0
  236. package/src/components/features/board/.board.md +51 -0
  237. package/src/components/features/board/.color-utils.md +26 -0
  238. package/src/components/features/board/.index.md +56 -0
  239. package/src/components/features/board/.ticket-card-skeleton.md +38 -0
  240. package/src/components/features/board/.ticket-card.md +47 -0
  241. package/src/components/features/board/.types.md +45 -0
  242. package/src/components/features/board/.use-board-collapse.md +34 -0
  243. package/src/components/features/notifications/.index.md +57 -0
  244. package/src/components/features/notifications/.notification-drawer.md +34 -0
  245. package/src/components/features/notifications/.notification-tile.md +39 -0
  246. package/src/components/features/notifications/.notifications-context.md +73 -0
  247. package/src/components/features/notifications/.types.md +45 -0
  248. package/src/components/icons/.about-icon.md +20 -28
  249. package/src/components/icons/.ai-robot-icon.md +15 -17
  250. package/src/components/icons/.bash-icon.md +16 -23
  251. package/src/components/icons/.buildings-icon.md +10 -24
  252. package/src/components/icons/.capterra-icon.md +30 -26
  253. package/src/components/icons/.carta-icon.md +29 -0
  254. package/src/components/icons/.clickup-icon.md +26 -0
  255. package/src/components/icons/.cmd-icon.md +15 -22
  256. package/src/components/icons/.coins-icon.md +17 -25
  257. package/src/components/icons/.community-hub-icon.md +19 -25
  258. package/src/components/icons/.community-icon.md +24 -21
  259. package/src/components/icons/.compare-icon.md +32 -19
  260. package/src/components/icons/.copy-icon.md +29 -15
  261. package/src/components/icons/.custom-external-link-icon.md +19 -17
  262. package/src/components/icons/.custom-fork-icon.md +32 -21
  263. package/src/components/icons/.custom-license-icon.md +29 -25
  264. package/src/components/icons/.custom-star-icon.md +20 -28
  265. package/src/components/icons/.custom-time-icon.md +21 -22
  266. package/src/components/icons/.cut-vendor-costs-icon.md +6 -19
  267. package/src/components/icons/.dashboard-icon.md +13 -18
  268. package/src/components/icons/.deno-icon.md +16 -23
  269. package/src/components/icons/.donut-icon.md +12 -23
  270. package/src/components/icons/.double-chevron-icon.md +28 -36
  271. package/src/components/icons/.elestio-logo.md +13 -23
  272. package/src/components/icons/.empty-vendor-icon.md +16 -18
  273. package/src/components/icons/.explore-categories-icon.md +18 -29
  274. package/src/components/icons/.eye-icon.md +16 -26
  275. package/src/components/icons/.facebook-icon.md +9 -20
  276. package/src/components/icons/.figma-icon.md +8 -17
  277. package/src/components/icons/.filter-icon.md +15 -17
  278. package/src/components/icons/.flamingo-logo.md +28 -27
  279. package/src/components/icons/.folder-shield-icon.md +28 -19
  280. package/src/components/icons/.g2-icon.md +22 -21
  281. package/src/components/icons/.getapp-icon.md +25 -21
  282. package/src/components/icons/.github-icon.md +13 -25
  283. package/src/components/icons/.globe-icon.md +14 -19
  284. package/src/components/icons/.google-gemini-icon.md +16 -19
  285. package/src/components/icons/.google-logo.md +15 -21
  286. package/src/components/icons/.grid-view-icon.md +30 -19
  287. package/src/components/icons/.hamburger-icon.md +22 -20
  288. package/src/components/icons/.hand-dollar-icon.md +24 -34
  289. package/src/components/icons/.hotel-icon.md +27 -21
  290. package/src/components/icons/.icon-utils.md +28 -29
  291. package/src/components/icons/.image-icon.md +15 -22
  292. package/src/components/icons/.index.md +25 -28
  293. package/src/components/icons/.info-circle-icon.md +29 -30
  294. package/src/components/icons/.instagram-icon.md +10 -24
  295. package/src/components/icons/.jump-in-icon.md +18 -18
  296. package/src/components/icons/.linux-icon.md +18 -18
  297. package/src/components/icons/.log-out-icon.md +15 -23
  298. package/src/components/icons/.logs-icon.md +14 -23
  299. package/src/components/icons/.margin-crisis-icon.md +21 -20
  300. package/src/components/icons/.menu-icon.md +18 -19
  301. package/src/components/icons/.miami-cyber-gang-logo-face-only.md +18 -21
  302. package/src/components/icons/.miami-cyber-gang-logo.md +22 -14
  303. package/src/components/icons/.mlg-logo.md +18 -16
  304. package/src/components/icons/.moon-icon.md +32 -22
  305. package/src/components/icons/.ms-icon.md +30 -19
  306. package/src/components/icons/.nushell-icon.md +7 -21
  307. package/src/components/icons/.open-source-icon.md +19 -23
  308. package/src/components/icons/.openai-icon.md +9 -24
  309. package/src/components/icons/.openframe-ai-icons.md +25 -26
  310. package/src/components/icons/.openframe-logo.md +28 -22
  311. package/src/components/icons/.openframe-text.md +24 -27
  312. package/src/components/icons/.openmsp-logo.md +26 -23
  313. package/src/components/icons/.pilot-icon.md +23 -0
  314. package/src/components/icons/.powershell-icon.md +17 -22
  315. package/src/components/icons/.python-icon.md +16 -23
  316. package/src/components/icons/.queries-icon.md +13 -21
  317. package/src/components/icons/.reddit-icon.md +28 -24
  318. package/src/components/icons/.remote-control-icon.md +13 -17
  319. package/src/components/icons/.script-icon.md +27 -19
  320. package/src/components/icons/.search-icon.md +21 -21
  321. package/src/components/icons/.send-icon.md +14 -16
  322. package/src/components/icons/.settings-icon.md +30 -19
  323. package/src/components/icons/.shape-circle-dash-icon.md +16 -21
  324. package/src/components/icons/.shell-icon.md +15 -19
  325. package/src/components/icons/.shield-check-icon.md +18 -31
  326. package/src/components/icons/.shield-key-icon.md +25 -25
  327. package/src/components/icons/.shield-lock-icon.md +8 -18
  328. package/src/components/icons/.slack-icon.md +28 -32
  329. package/src/components/icons/.sparkles-icon.md +18 -23
  330. package/src/components/icons/.sso-configuration-icon.md +29 -16
  331. package/src/components/icons/.sun-icon.md +20 -18
  332. package/src/components/icons/.table-view-icon.md +17 -19
  333. package/src/components/icons/.telegram-icon.md +8 -22
  334. package/src/components/icons/.thumbs-down-icon.md +10 -19
  335. package/src/components/icons/.thumbs-up-icon.md +8 -17
  336. package/src/components/icons/.tool-directory-icons.md +24 -28
  337. package/src/components/icons/.trustpilot-icon.md +25 -22
  338. package/src/components/icons/.user-icon.md +26 -28
  339. package/src/components/icons/.users-group-icon.md +28 -24
  340. package/src/components/icons/.vendor-showcase-icons.md +21 -29
  341. package/src/components/icons/.vendors-icon.md +18 -22
  342. package/src/components/icons/.whatsapp-icon.md +30 -14
  343. package/src/components/icons/.x-icon.md +18 -23
  344. package/src/components/icons/.x-logo.md +13 -38
  345. package/src/components/icons/.youtube-icon.md +8 -19
  346. package/src/components/icons/device-type-icons/.get-device-type-icon.md +26 -34
  347. package/src/components/icons-v2-generated/.index.md +52 -0
  348. package/src/components/icons-v2-generated/alphabet/.index.md +33 -0
  349. package/src/components/icons-v2-generated/arrows/.index.md +39 -0
  350. package/src/components/icons-v2-generated/audio-and-visual/.index.md +40 -0
  351. package/src/components/icons-v2-generated/brand-logos/.elestio-logo-icon.md +40 -0
  352. package/src/components/icons-v2-generated/brand-logos/.gemini-logo-icon.md +37 -0
  353. package/src/components/icons-v2-generated/brand-logos/.google-gemini-logo-icon.md +33 -0
  354. package/src/components/icons-v2-generated/brand-logos/.index.md +38 -0
  355. package/src/components/icons-v2-generated/brand-logos/.meshcentral-logo-grey-icon.md +35 -0
  356. package/src/components/icons-v2-generated/brand-logos/.meshcentral-logo-icon.md +36 -0
  357. package/src/components/icons-v2-generated/buildings/.index.md +48 -0
  358. package/src/components/icons-v2-generated/charts/.index.md +40 -0
  359. package/src/components/icons-v2-generated/clothes/.index.md +48 -0
  360. package/src/components/icons-v2-generated/coding/.index.md +42 -0
  361. package/src/components/icons-v2-generated/communication/.index.md +39 -0
  362. package/src/components/icons-v2-generated/date-and-time/.index.md +29 -0
  363. package/src/components/icons-v2-generated/design/.index.md +39 -0
  364. package/src/components/icons-v2-generated/devices/.index.md +38 -0
  365. package/src/components/icons-v2-generated/documents/.index.md +38 -0
  366. package/src/components/icons-v2-generated/finance/.index.md +34 -0
  367. package/src/components/icons-v2-generated/food-and-drinks/.index.md +34 -0
  368. package/src/components/icons-v2-generated/food-and-drinks/.leafy-green-icon.md +36 -0
  369. package/src/components/icons-v2-generated/food-and-drinks/.strawberry-icon.md +39 -0
  370. package/src/components/icons-v2-generated/health/.index.md +40 -0
  371. package/src/components/icons-v2-generated/household/.index.md +45 -0
  372. package/src/components/icons-v2-generated/interface/.index.md +36 -0
  373. package/src/components/icons-v2-generated/map-and-travel/.index.md +41 -0
  374. package/src/components/icons-v2-generated/media-playback/.index.md +51 -0
  375. package/src/components/icons-v2-generated/number/.index.md +41 -0
  376. package/src/components/icons-v2-generated/school/.index.md +37 -0
  377. package/src/components/icons-v2-generated/security/.fingerprint-icon.md +38 -0
  378. package/src/components/icons-v2-generated/security/.index.md +39 -0
  379. package/src/components/icons-v2-generated/shopping/.index.md +42 -0
  380. package/src/components/icons-v2-generated/signs-and-symbols/.index.md +32 -0
  381. package/src/components/icons-v2-generated/sort-and-filter/.index.md +35 -0
  382. package/src/components/icons-v2-generated/sport/.index.md +41 -0
  383. package/src/components/icons-v2-generated/text-editor/.index.md +44 -0
  384. package/src/components/icons-v2-generated/users/.index.md +45 -0
  385. package/src/components/icons-v2-generated/vehicles-and-delivery/.index.md +36 -0
  386. package/src/components/icons-v2-generated/weather-and-nature/.flower-sakura-icon.md +36 -0
  387. package/src/components/icons-v2-generated/weather-and-nature/.index.md +34 -0
  388. package/src/components/layout/.article-detail-layout.md +43 -0
  389. package/src/components/layout/.back-button.md +40 -0
  390. package/src/components/layout/.list-page-layout.md +35 -26
  391. package/src/components/layout/.page-container.md +27 -38
  392. package/src/components/layout/.page-layout.md +50 -0
  393. package/src/components/layout/.title-block.md +42 -0
  394. package/src/components/loading/.card-skeleton.md +38 -29
  395. package/src/components/loading/.device-card-skeleton.md +29 -25
  396. package/src/components/loading/.index.md +39 -46
  397. package/src/components/loading/.margin-report-skeleton.md +45 -34
  398. package/src/components/loading/.organization-card-skeleton.md +39 -44
  399. package/src/components/loading/.page-layout-skeleton.md +34 -45
  400. package/src/components/loading/.unified-skeleton.md +62 -36
  401. package/src/components/navigation/.app-header.md +40 -29
  402. package/src/components/navigation/.app-layout.md +25 -26
  403. package/src/components/navigation/.header-global-search.md +34 -37
  404. package/src/components/navigation/.header-organization-filter.md +23 -22
  405. package/src/components/navigation/.header.md +31 -35
  406. package/src/components/navigation/.mobile-burger-menu.md +39 -47
  407. package/src/components/navigation/.mobile-nav-panel.md +51 -32
  408. package/src/components/navigation/.navigation-sidebar-header.md +36 -0
  409. package/src/components/navigation/.navigation-sidebar-item.md +45 -0
  410. package/src/components/navigation/.navigation-sidebar-toggle.md +38 -0
  411. package/src/components/navigation/.navigation-sidebar.md +33 -34
  412. package/src/components/navigation/.sliding-sidebar.md +52 -41
  413. package/src/components/navigation/.sticky-section-nav.md +56 -48
  414. package/src/components/platform/.ScriptArguments.md +39 -25
  415. package/src/components/platform/.ScriptInfoSection.md +30 -26
  416. package/src/components/platform/.ShellTypeBadge.md +18 -13
  417. package/src/components/platform/.SoftwareInfo.md +23 -27
  418. package/src/components/platform/.SoftwareSourceBadge.md +28 -19
  419. package/src/components/platform/.ToolBadge.md +25 -26
  420. package/src/components/platform/ShellTypeBadge.tsx +2 -2
  421. package/src/components/providers/.theme-provider.md +52 -0
  422. package/src/components/shared/delivery/.delivery-lists.md +39 -0
  423. package/src/components/shared/delivery/.delivery-row.md +41 -0
  424. package/src/components/shared/delivery/.delivery-table.md +41 -0
  425. package/src/components/shared/delivery/.index.md +38 -0
  426. package/src/components/shared/dev-section/.dev-card-row.md +60 -0
  427. package/src/components/shared/dev-section/.dev-section-page.md +48 -0
  428. package/src/components/shared/dev-section/.dev-section-view.md +43 -0
  429. package/src/components/shared/dev-section/.index.md +38 -0
  430. package/src/components/shared/legal-document/.index.md +40 -0
  431. package/src/components/shared/legal-document/.legal-document-page.md +50 -0
  432. package/src/components/shared/legal-document/.use-legal-docs.md +42 -0
  433. package/src/components/shared/onboarding/.onboarding-step-card.md +32 -31
  434. package/src/components/shared/onboarding/.onboarding-walkthrough.md +39 -43
  435. package/src/components/shared/product-release/.index.md +28 -30
  436. package/src/components/shared/product-release/.product-release-card-skeleton.md +28 -28
  437. package/src/components/shared/product-release/.product-release-card.md +45 -27
  438. package/src/components/shared/product-release/.release-detail-page.md +23 -24
  439. package/src/components/shared/roadmap/.index.md +37 -0
  440. package/src/components/shared/roadmap/.roadmap-grid-skeleton.md +39 -0
  441. package/src/components/shared/roadmap/.roadmap-grid.md +66 -0
  442. package/src/components/shared/roadmap/.use-roadmap-voting.md +68 -0
  443. package/src/components/tickets/.help-center-card.md +51 -0
  444. package/src/components/tickets/.help-center-create-form.md +38 -0
  445. package/src/components/tickets/.help-center-list.md +40 -0
  446. package/src/components/tickets/.index.md +65 -0
  447. package/src/components/tickets/.ticket-center.md +51 -0
  448. package/src/components/tickets/.ticket-detail-drawer.md +48 -0
  449. package/src/components/tickets/.ticket-linked-delivery-card.md +36 -0
  450. package/src/components/tickets/.ticket-open-form.md +50 -0
  451. package/src/components/tickets/.ticket-row.md +30 -0
  452. package/src/components/tickets/.types.md +57 -0
  453. package/src/components/tickets/hooks/.use-ticket-actions.md +77 -0
  454. package/src/components/tickets/hooks/.use-ticket-engagements.md +42 -0
  455. package/src/components/tickets/hooks/.use-tickets-list.md +54 -0
  456. package/src/components/ui/.actions-menu.md +66 -41
  457. package/src/components/ui/.alert-dialog.md +29 -26
  458. package/src/components/ui/.allowed-domains-input.md +29 -21
  459. package/src/components/ui/.assignee-dropdown.md +45 -0
  460. package/src/components/ui/.autocomplete.md +47 -41
  461. package/src/components/ui/.benefit-card.md +51 -36
  462. package/src/components/ui/.brand-association-card.md +30 -27
  463. package/src/components/ui/.breadcrumb.md +17 -15
  464. package/src/components/ui/.checkbox-block.md +39 -35
  465. package/src/components/ui/.checkbox-with-description.md +23 -16
  466. package/src/components/ui/.checkbox.md +31 -23
  467. package/src/components/ui/.circular-progress.md +49 -19
  468. package/src/components/ui/.content-loader.md +32 -20
  469. package/src/components/ui/.cursor-pagination.md +41 -52
  470. package/src/components/ui/.dashboard-info-card.md +33 -26
  471. package/src/components/ui/.date-picker.md +27 -25
  472. package/src/components/ui/.device-card-compact.md +28 -29
  473. package/src/components/ui/.device-card.md +27 -27
  474. package/src/components/ui/.dialog.md +25 -16
  475. package/src/components/ui/.drawer.md +86 -0
  476. package/src/components/ui/.dropdown-button.md +45 -0
  477. package/src/components/ui/.entity-image.md +46 -0
  478. package/src/components/ui/.error-state.md +41 -28
  479. package/src/components/ui/.feature-card.md +35 -31
  480. package/src/components/ui/.feature-list.md +48 -0
  481. package/src/components/ui/.field-wrapper.md +47 -0
  482. package/src/components/ui/.file-upload.md +42 -0
  483. package/src/components/ui/.filter-checkbox-item.md +43 -0
  484. package/src/components/ui/.filter-list.md +57 -0
  485. package/src/components/ui/.filter-modal.md +59 -0
  486. package/src/components/ui/.floating-tooltip.md +43 -26
  487. package/src/components/ui/.hidden-tags-popup.md +49 -0
  488. package/src/components/ui/.hover-dropdown.md +54 -0
  489. package/src/components/ui/.image-gallery-modal.md +41 -34
  490. package/src/components/ui/.image-uploader.md +53 -0
  491. package/src/components/ui/.index.md +40 -34
  492. package/src/components/ui/.info-card.md +31 -31
  493. package/src/components/ui/.info-row.md +31 -27
  494. package/src/components/ui/.input-trigger.md +44 -0
  495. package/src/components/ui/.input.md +37 -31
  496. package/src/components/ui/.markdown-editor.md +57 -0
  497. package/src/components/ui/.modal-v2.md +51 -0
  498. package/src/components/ui/.modal.md +32 -31
  499. package/src/components/ui/.more-actions-menu.md +45 -38
  500. package/src/components/ui/.organization-card.md +31 -37
  501. package/src/components/ui/.page-actions.md +44 -54
  502. package/src/components/ui/.phone-input.md +54 -0
  503. package/src/components/ui/.progress-bar.md +35 -27
  504. package/src/components/ui/.radio-group.md +39 -27
  505. package/src/components/ui/.release-changelog-section.md +34 -34
  506. package/src/components/ui/.search-input.md +48 -0
  507. package/src/components/ui/.select.md +54 -34
  508. package/src/components/ui/.service-card.md +42 -40
  509. package/src/components/ui/.sheet.md +27 -18
  510. package/src/components/ui/.simple-markdown-renderer.md +29 -31
  511. package/src/components/ui/.sort-column-item.md +42 -0
  512. package/src/components/ui/.square-avatar.md +34 -24
  513. package/src/components/ui/.status-badge.md +26 -38
  514. package/src/components/ui/.switch.md +22 -35
  515. package/src/components/ui/.tab-navigation.md +56 -53
  516. package/src/components/ui/.tab-selector.md +40 -0
  517. package/src/components/ui/.tag-key-value-filter.md +56 -0
  518. package/src/components/ui/.tag-search-input.md +53 -0
  519. package/src/components/ui/.tag.md +49 -31
  520. package/src/components/ui/.tags-manager.md +60 -0
  521. package/src/components/ui/.textarea.md +44 -34
  522. package/src/components/ui/.ticket-attachments-list.md +45 -0
  523. package/src/components/ui/.ticket-detail-section.md +29 -0
  524. package/src/components/ui/.ticket-info-section.md +56 -0
  525. package/src/components/ui/.ticket-note-card.md +53 -0
  526. package/src/components/ui/.ticket-notes-section.md +54 -0
  527. package/src/components/ui/.ticket-status-tag.md +49 -0
  528. package/src/components/ui/.title-content-block.md +25 -26
  529. package/src/components/ui/.toaster.md +40 -28
  530. package/src/components/ui/.tooltip.md +22 -11
  531. package/src/components/ui/.truncate-text.md +39 -0
  532. package/src/components/ui/button/.button-styles.md +35 -0
  533. package/src/components/ui/button/.button.md +53 -0
  534. package/src/components/ui/button/.split-button.md +48 -0
  535. package/src/components/ui/data-table/.data-table-body.md +48 -0
  536. package/src/components/ui/data-table/.data-table-column-filter.md +45 -0
  537. package/src/components/ui/data-table/.data-table-cursor-footer.md +45 -0
  538. package/src/components/ui/data-table/.data-table-empty.md +43 -0
  539. package/src/components/ui/data-table/.data-table-header.md +55 -0
  540. package/src/components/ui/data-table/.data-table-infinite-footer.md +44 -0
  541. package/src/components/ui/data-table/.data-table-row-count.md +43 -0
  542. package/src/components/ui/data-table/.data-table-row.md +47 -0
  543. package/src/components/ui/data-table/.data-table-skeleton.md +42 -0
  544. package/src/components/ui/data-table/.data-table.md +47 -0
  545. package/src/components/ui/data-table/.index.md +55 -0
  546. package/src/components/ui/data-table/.types.md +54 -0
  547. package/src/components/ui/data-table/.use-data-table.md +45 -0
  548. package/src/components/ui/data-table/.utils.md +38 -0
  549. package/src/components/ui/file-manager/.file-manager-action-bar.md +39 -30
  550. package/src/components/ui/file-manager/.file-manager-breadcrumb.md +29 -27
  551. package/src/components/ui/file-manager/.file-manager-context-menu.md +38 -42
  552. package/src/components/ui/file-manager/.file-manager-empty.md +26 -39
  553. package/src/components/ui/file-manager/.file-manager-table-row.md +33 -41
  554. package/src/components/ui/file-manager/.file-manager.md +35 -31
  555. package/src/components/ui/query-report-table/.index.md +43 -0
  556. package/src/components/ui/query-report-table/.query-report-table-header.md +36 -0
  557. package/src/components/ui/query-report-table/.query-report-table-row.md +40 -0
  558. package/src/components/ui/query-report-table/.query-report-table-skeleton.md +44 -0
  559. package/src/components/ui/query-report-table/.query-report-table.md +47 -0
  560. package/src/components/ui/query-report-table/.types.md +41 -0
  561. package/src/components/ui/query-report-table/.utils.md +35 -0
  562. package/src/components/ui/table/.index.md +27 -48
  563. package/src/components/ui/table/.table-cell.md +18 -27
  564. package/src/components/ui/table/.table-column-filter-dropdown.md +40 -0
  565. package/src/components/ui/table/.table-description-cell.md +24 -14
  566. package/src/components/ui/table/.table-empty-state.md +21 -22
  567. package/src/components/ui/table/.table-header.md +25 -40
  568. package/src/components/ui/table/.table-row.md +22 -40
  569. package/src/components/ui/table/.table-skeleton.md +33 -26
  570. package/src/components/ui/table/.table-timestamp-cell.md +26 -16
  571. package/src/components/ui/table/.table.md +39 -59
  572. package/src/components/ui/table/.types.md +44 -36
  573. package/src/components/ui/table/.utils.md +18 -20
  574. package/src/contexts/.chat-runtime-context.md +54 -0
  575. package/src/contexts/.endpoints-runtime-context.md +58 -0
  576. package/src/contexts/.index.md +53 -0
  577. package/src/contexts/.use-outer-or-default.md +36 -0
  578. package/src/embed-shims/.index.md +45 -0
  579. package/src/embed-shims/.next-dynamic.md +43 -0
  580. package/src/embed-shims/.next-image.md +45 -0
  581. package/src/embed-shims/.next-link.md +59 -0
  582. package/src/embed-shims/.next-navigation.md +59 -0
  583. package/src/hooks/.index.md +34 -29
  584. package/src/hooks/.use-access-code-integration.md +49 -0
  585. package/src/hooks/.use-contact-submission.md +37 -26
  586. package/src/hooks/.use-copy-to-clipboard.md +42 -0
  587. package/src/hooks/.use-near-viewport.md +44 -0
  588. package/src/hooks/.use-og-placeholder.md +51 -0
  589. package/src/hooks/.use-toast.md +36 -35
  590. package/src/hooks/state/.use-api-params.md +29 -46
  591. package/src/hooks/state/.use-query-params.md +37 -33
  592. package/src/hooks/ui/.index.md +33 -32
  593. package/src/hooks/ui/.use-auto-limit-tags.md +54 -0
  594. package/src/hooks/ui/.use-horizontal-scrollbar.md +74 -0
  595. package/src/hooks/ui/.use-image-edge-color.md +42 -0
  596. package/src/hooks/ui/.use-media-query.md +33 -25
  597. package/src/hooks/ui/.use-search.md +51 -0
  598. package/src/nats/.nats.md +49 -28
  599. package/src/schemas/.contact-schema.md +45 -0
  600. package/src/stories/.AnnouncementBar.stories.md +45 -0
  601. package/src/stories/.AppLayout.stories.md +20 -21
  602. package/src/stories/.Autocomplete.stories.md +48 -34
  603. package/src/stories/.Board.stories.md +35 -0
  604. package/src/stories/.Button.stories.md +36 -33
  605. package/src/stories/.ChatTicketList.stories.md +33 -0
  606. package/src/stories/.CheckboxBlock.stories.md +40 -28
  607. package/src/stories/.ContentLoader.stories.md +47 -0
  608. package/src/stories/.DashboardInfoCard.stories.md +57 -0
  609. package/src/stories/.DataTable.stories.md +41 -0
  610. package/src/stories/.DatePicker.stories.md +66 -52
  611. package/src/stories/.DeviceCard.stories.md +41 -40
  612. package/src/stories/.DeviceCardCompact.stories.md +41 -0
  613. package/src/stories/.DotsLoaderIcon.stories.md +36 -0
  614. package/src/stories/.Drawer.stories.md +58 -0
  615. package/src/stories/.EmbeddableChat.stories.md +41 -0
  616. package/src/stories/.FileManager.stories.md +41 -0
  617. package/src/stories/.FileManagerActionBar.stories.md +38 -0
  618. package/src/stories/.FileUpload.stories.md +53 -0
  619. package/src/stories/.FilterList.stories.md +54 -0
  620. package/src/stories/.FilterModal.stories.md +72 -0
  621. package/src/stories/.FiltersDropdown.stories.md +57 -0
  622. package/src/stories/.Header.stories.md +48 -0
  623. package/src/stories/.ImageUploader.stories.md +49 -0
  624. package/src/stories/.InfoCard.stories.md +54 -0
  625. package/src/stories/.Input.stories.md +48 -30
  626. package/src/stories/.ListPageLayout.stories.md +56 -43
  627. package/src/stories/.MingoOnboardingCard.stories.md +42 -0
  628. package/src/stories/.MingoOnboardingCardSkeleton.stories.md +35 -0
  629. package/src/stories/.Modal.stories.md +40 -31
  630. package/src/stories/.NotificationDrawer.stories.md +55 -0
  631. package/src/stories/.OnboardingStepCard.stories.md +41 -0
  632. package/src/stories/.OrganizationCard.stories.md +61 -0
  633. package/src/stories/.PageActions.stories.md +52 -49
  634. package/src/stories/.PageContainer.stories.md +41 -35
  635. package/src/stories/.PageLayout.stories.md +60 -0
  636. package/src/stories/.ParallaxImageShowcase.stories.md +49 -0
  637. package/src/stories/.PhoneInput.stories.md +53 -0
  638. package/src/stories/.QueryReportTable.stories.md +44 -0
  639. package/src/stories/.RadioGroup.stories.md +46 -0
  640. package/src/stories/.RadioGroupBlock.stories.md +45 -0
  641. package/src/stories/.Select.stories.md +29 -15
  642. package/src/stories/.SlashCommandSuggestions.stories.md +41 -0
  643. package/src/stories/.SplitButton.stories.md +62 -0
  644. package/src/stories/.TabNavigation.stories.md +47 -38
  645. package/src/stories/.TabSelector.stories.md +65 -0
  646. package/src/stories/.Table.stories.md +38 -46
  647. package/src/stories/.TableColumnFilterDropdown.stories.md +46 -0
  648. package/src/stories/.Tag.stories.md +43 -32
  649. package/src/stories/.TagKeyValueFilter.stories.md +44 -0
  650. package/src/stories/.TagSearchInput.stories.md +61 -0
  651. package/src/stories/.Textarea.stories.md +49 -26
  652. package/src/stories/.Theme.stories.md +41 -0
  653. package/src/stories/.TicketAttachmentsList.stories.md +39 -0
  654. package/src/stories/.TicketDescriptionViewer.stories.md +39 -0
  655. package/src/stories/.TicketInfoSection.stories.md +40 -0
  656. package/src/stories/.TicketKnowledgeBaseList.stories.md +36 -0
  657. package/src/stories/.TicketNotesSection.stories.md +50 -0
  658. package/src/stories/.Toaster.stories.md +40 -0
  659. package/src/stories/.ToolExecutionDisplay.stories.md +41 -0
  660. package/src/stories/.Tooltip.stories.md +41 -0
  661. package/src/stories/.UserSummary.stories.md +41 -0
  662. package/src/stories/.WaitlistForm.stories.md +42 -0
  663. package/src/stories/BlogCard.stories.tsx +61 -0
  664. package/src/stories/CampaignCardAdmin.stories.tsx +52 -0
  665. package/src/stories/CaseStudyCard.stories.tsx +42 -0
  666. package/src/stories/ChatContainer.stories.tsx +186 -0
  667. package/src/stories/ChatInlineVideoPill.stories.tsx +63 -0
  668. package/src/stories/CustomerInterviewCard.stories.tsx +42 -0
  669. package/src/stories/DataRoomDocCard.stories.tsx +52 -0
  670. package/src/stories/GenericEntityCard.stories.tsx +66 -0
  671. package/src/stories/GitHubActivityCard.stories.tsx +61 -0
  672. package/src/stories/HubspotTicketCard.stories.tsx +98 -0
  673. package/src/stories/InvestorUpdateCard.stories.tsx +42 -0
  674. package/src/stories/OnboardingGuideCard.stories.tsx +52 -0
  675. package/src/stories/ProductReleaseCard.stories.tsx +61 -0
  676. package/src/stories/ProgramCard.stories.tsx +79 -0
  677. package/src/stories/RoadmapCard.stories.tsx +75 -0
  678. package/src/stories/SlackMessageCard.stories.tsx +41 -0
  679. package/src/stories/__fixtures__/chat-cards.ts +604 -0
  680. package/src/types/.blog.md +53 -29
  681. package/src/types/.case-study.md +44 -27
  682. package/src/types/.customer-interview.md +66 -44
  683. package/src/types/.delivery.md +40 -0
  684. package/src/types/.employee.md +24 -30
  685. package/src/types/.index.md +33 -47
  686. package/src/types/.marketing.md +49 -44
  687. package/src/types/.navigation.md +33 -25
  688. package/src/types/.os.types.md +32 -27
  689. package/src/types/.platform.md +31 -28
  690. package/src/types/.product-release.md +65 -38
  691. package/src/types/.supabase.md +37 -29
  692. package/src/types/.team.md +41 -33
  693. package/src/types/.video-processing.md +54 -0
  694. package/src/types/.waitlist.md +40 -36
  695. package/src/utils/.access-code-client.md +37 -36
  696. package/src/utils/.cn.md +31 -23
  697. package/src/utils/.color-analysis.md +35 -0
  698. package/src/utils/.country-phone-utils.md +39 -0
  699. package/src/utils/.date-formatters.md +19 -18
  700. package/src/utils/.embed-authed-fetch.md +39 -0
  701. package/src/utils/.embed-proxy-auth-storage.md +38 -0
  702. package/src/utils/.fetch-priority.md +41 -0
  703. package/src/utils/.format.md +74 -25
  704. package/src/utils/.generic-domain-utils.md +42 -0
  705. package/src/utils/.image-proxy.md +59 -23
  706. package/src/utils/.index.md +42 -49
  707. package/src/utils/.local-storage-adapter.md +50 -0
  708. package/src/utils/.ods-color-utils.md +55 -38
  709. package/src/utils/.platform-config.md +45 -25
  710. package/src/utils/.scroll-into-view.md +40 -0
  711. package/src/utils/.source-icons.md +53 -0
  712. package/src/utils/.sse-decision-frame.md +46 -0
  713. package/src/utils/dev-sections/.index.md +34 -0
  714. package/src/utils/dev-sections/.openframe-dev-sections.md +49 -0
  715. package/dist/chunk-ZDF6F7ED.cjs.map +0 -1
  716. package/dist/chunk-ZTJVRSN5.js.map +0 -1
  717. package/src/components/.card.md +0 -42
  718. package/src/components/.contact-button.md +0 -30
  719. package/src/components/.drawer.md +0 -46
  720. package/src/components/.fixed-layout-container.md +0 -47
  721. package/src/components/.footer-waitlist-card.md +0 -29
  722. package/src/components/.join-waitlist-cta.md +0 -29
  723. package/src/components/.sheet.md +0 -47
  724. package/src/components/.sliding-panel.md +0 -48
  725. package/src/components/.tooltip.md +0 -48
  726. package/src/components/.use-mobile.md +0 -42
  727. package/src/components/.vendor-compact-card.md +0 -66
  728. package/src/components/.x-button.md +0 -42
  729. package/src/components/features/.github-repo-button.md +0 -40
  730. package/src/components/features/.organization-icon.md +0 -47
  731. package/src/components/features/.organization-selector.md +0 -45
  732. package/src/components/icons/.fleet-icon.md +0 -39
  733. package/src/components/icons/.meshcentral-icon.md +0 -35
  734. package/src/components/icons/.refresh-icon.md +0 -34
  735. package/src/components/icons/.tactical-icon.md +0 -35
  736. package/src/components/ui/.button.md +0 -69
  737. package/src/components/ui/.log-table-row.md +0 -47
  738. package/src/components/ui/.selectable-device-card.md +0 -46
  739. package/src/hooks/.api-hooks-stub.md +0 -45
  740. package/src/hooks/api/.use-product-releases.md +0 -53
  741. package/src/stories/.OrganizationSelector.stories.md +0 -42
  742. package/src/stories/.SelectableDeviceCard.stories.md +0 -30
  743. package/src/utils/.lite-youtube-embed-stub.md +0 -37
  744. package/src/utils/.lite-youtube-embed.md +0 -33
  745. /package/dist/{chunk-IK2X5YJU.js.map → chunk-7PCP7YQR.js.map} +0 -0
  746. /package/dist/{chunk-3JWIJJ44.js.map → chunk-R6MLPU4A.js.map} +0 -0
@@ -1,52 +1,59 @@
1
- <!-- source-hash: 341cf101c715d69c78742d89d5203380 -->
2
- A reusable full-screen image gallery modal component with keyboard navigation, thumbnail controls, and error handling for unsupported image formats like HEIC.
1
+ <!-- source-hash: 7ceb686fa07cb2b79511a1e43f5bce1a -->
2
+ A full-screen image gallery modal component with keyboard navigation, prev/next controls, and an image counter. Extracted as a reusable component from the TMCG event detail page.
3
3
 
4
4
  ## Key Components
5
5
 
6
- - **ImageGalleryModal**: Main component that renders a full-screen modal with image navigation
7
- - **Navigation Controls**: Previous/next buttons with chevron icons (only shown when multiple images exist)
8
- - **Keyboard Support**: Arrow keys for navigation, Escape to close
9
- - **Image Counter**: Shows current position in gallery (e.g., "3 / 10")
10
- - **Error Handling**: Graceful fallback for unsupported formats with download option
6
+ ### `ImageGalleryModal`
7
+ The primary export a React client component wrapping the base `Modal` with gallery-specific behavior.
8
+
9
+ **Props (`ImageGalleryModalProps`):**
10
+
11
+ | Prop | Type | Description |
12
+ |------|------|-------------|
13
+ | `images` | `string[]` | Array of image URLs to display |
14
+ | `isOpen` | `boolean` | Controls modal visibility |
15
+ | `onClose` | `() => void` | Callback fired on close or `Escape` key |
16
+ | `initialIndex` | `number` | Starting image index (default: `0`) |
17
+
18
+ **Features:**
19
+ - **Keyboard navigation** — `ArrowLeft`, `ArrowRight` to navigate; `Escape` to close
20
+ - **Prev/Next buttons** — conditionally rendered based on current index boundaries
21
+ - **Image counter** — shown when gallery has more than one image (e.g. `2 / 5`)
22
+ - **Error handling** — gracefully handles unsupported formats (HEIC) with a download fallback
23
+ - **Index reset** — resets to `initialIndex` each time the modal opens
11
24
 
12
25
  ## Usage Example
13
26
 
14
27
  ```typescript
15
28
  import { ImageGalleryModal } from './image-gallery-modal';
16
29
 
17
- function EventPhotos() {
18
- const [isGalleryOpen, setIsGalleryOpen] = useState(false);
19
- const [selectedImageIndex, setSelectedImageIndex] = useState(0);
20
-
21
- const images = [
22
- '/photos/event1.jpg',
23
- '/photos/event2.png',
24
- '/photos/event3.heic'
25
- ];
26
-
27
- const openGallery = (index: number) => {
28
- setSelectedImageIndex(index);
29
- setIsGalleryOpen(true);
30
- };
30
+ const screenshots = [
31
+ 'https://cdn.example.com/img1.jpg',
32
+ 'https://cdn.example.com/img2.jpg',
33
+ 'https://cdn.example.com/img3.heic',
34
+ ];
35
+
36
+ export function EventDetail() {
37
+ const [isOpen, setIsOpen] = useState(false);
38
+ const [startIndex, setStartIndex] = useState(0);
31
39
 
32
40
  return (
33
- <div>
34
- {images.map((image, index) => (
35
- <img
36
- key={index}
37
- src={image}
38
- onClick={() => openGallery(index)}
39
- className="cursor-pointer"
41
+ <>
42
+ {screenshots.map((src, i) => (
43
+ <img
44
+ key={src}
45
+ src={src}
46
+ onClick={() => { setStartIndex(i); setIsOpen(true); }}
40
47
  />
41
48
  ))}
42
-
49
+
43
50
  <ImageGalleryModal
44
- images={images}
45
- isOpen={isGalleryOpen}
46
- onClose={() => setIsGalleryOpen(false)}
47
- initialIndex={selectedImageIndex}
51
+ images={screenshots}
52
+ isOpen={isOpen}
53
+ onClose={() => setIsOpen(false)}
54
+ initialIndex={startIndex}
48
55
  />
49
- </div>
56
+ </>
50
57
  );
51
58
  }
52
59
  ```
@@ -0,0 +1,53 @@
1
+ <!-- source-hash: 7a3018246d0e272d26eee450458f6d52 -->
2
+ A client-side React component that renders a drag-and-drop / click-to-upload image input with preview, replace, and remove functionality. Wraps a hidden `<input type="file">` with validation, loading states, and accessible keyboard interaction.
3
+
4
+ ## Key Components
5
+
6
+ - **`ImageUploader`** — Main export. Renders the dropzone or image preview depending on whether `value` is set.
7
+ - **`ActionIconButton`** — Internal button used for the "Replace" and "Remove" overlay actions on the image preview.
8
+ - **`formatSize(bytes)`** — Utility that formats a byte count as a human-readable `KB`/`MB` string.
9
+ - **`matchesAccept(file, accept)`** — Validates a `File` against an `accept` string (MIME types and extensions).
10
+
11
+ ## Key Props (`ImageUploaderProps`)
12
+
13
+ | Prop | Type | Description |
14
+ |------|------|-------------|
15
+ | `value` | `string` | Current image URL; triggers preview state when set |
16
+ | `onChange` | `(file: File) => void` | Called with the selected/dropped `File` after validation |
17
+ | `onRemove` | `() => void` | Shows trash icon when provided; called on click |
18
+ | `accept` | `string` | Accepted MIME types/extensions. Default: `"image/*"` |
19
+ | `maxSize` | `number` | Max file size in bytes. Default: 25 MB |
20
+ | `aspectRatio` | `string` | CSS aspect-ratio override (e.g. `"16 / 9"`) |
21
+ | `loading` | `boolean` | Shows spinner overlay and disables interaction |
22
+ | `error` | `string` | External error message (internal validation errors take precedence) |
23
+
24
+ ## Usage Example
25
+
26
+ ```typescript
27
+ import { ImageUploader } from "@/components/ui/image-uploader"
28
+ import { useState } from "react"
29
+
30
+ export function CoverImageField() {
31
+ const [imageUrl, setImageUrl] = useState<string | undefined>()
32
+
33
+ const handleChange = async (file: File) => {
34
+ const url = await uploadToStorage(file) // your upload logic
35
+ setImageUrl(url)
36
+ }
37
+
38
+ return (
39
+ <ImageUploader
40
+ value={imageUrl}
41
+ onChange={handleChange}
42
+ onRemove={() => setImageUrl(undefined)}
43
+ aspectRatio="16 / 9"
44
+ maxSize={5 * 1024 * 1024} // 5 MB
45
+ fieldLabel="Cover Image"
46
+ label="Upload a cover photo"
47
+ description="Click or drag and drop"
48
+ />
49
+ )
50
+ }
51
+ ```
52
+
53
+ > **Note:** `onChange` receives the raw `File` — the consumer is responsible for uploading it to a server or object storage and updating `value` with the resulting URL.
@@ -1,46 +1,52 @@
1
- <!-- source-hash: 1176d6ee91af39908dd46ef426fa860c -->
2
- Centralized component export index file providing a unified import interface for the Flamingo UI component library. This file serves as the main entry point for accessing all UI, layout, navigation, and feedback components throughout the application.
1
+ <!-- source-hash: 69fabf50cc24470b1828f706f8765a69 -->
2
+ Central barrel export file for the UI kit library, re-exporting all client-side UI components organized by category (form inputs, layout, navigation, feedback, tables, chat, and more).
3
3
 
4
4
  ## Key Components
5
5
 
6
- ### UI Components
7
- - **Form Controls**: `Button`, `Input`, `Checkbox`, `Select`, `Switch`, `RadioGroup`, `DatePicker`
8
- - **Content Display**: `Card`, `Badge`, `InfoCard`, `StatusBadge`, `ProgressBar`
9
- - **Data Entry**: `Autocomplete`, `TagsInput`, `Textarea`, `AllowedDomainsInput`
10
- - **Loading States**: `ContentLoader`, `PageLoader`, `Skeleton`, `CircularProgress`
11
-
12
- ### Layout Components
13
- - **Modals & Dialogs**: `Dialog`, `AlertDialog`, `Modal`, `Sheet`
14
- - **Structure**: `Tabs`, `Separator`, `AspectRatio`, `ImageGalleryModal`
15
-
16
- ### Navigation Components
17
- - **Menus**: `DropdownMenu`, `NavigationMenu`, `Menubar`, `ActionsMenu`
18
- - **Organization**: `Accordion`, `Breadcrumb`, `TabNavigation`
19
-
20
- ### Specialized Components
21
- - **Tables**: `Table`, `TableRow`, `TableCell`, `CursorPagination`
22
- - **Business Logic**: `DeviceCard`, `OrganizationCard`, `ServiceCard`, `BrandAssociationGrid`
23
- - **Icons**: Custom icon exports from Lucide React
6
+ Organized into the following categories:
7
+
8
+ | Category | Notable Exports |
9
+ |---|---|
10
+ | **Form / Input** | `Button`, `Input`, `Select`, `Checkbox`, `DatePicker`, `TagsInput`, `RadioGroup`, `Switch` |
11
+ | **Layout** | `Dialog`, `Modal`, `ModalV2`, `Sheet`, `Drawer`, `Tabs`, `Separator` |
12
+ | **Navigation** | `Accordion`, `Breadcrumb`, `DropdownMenu`, `NavigationMenu`, `TabNavigation` |
13
+ | **Feedback** | `Alert`, `Badge`, `Progress`, `StatusBadge`, `Toaster`, `StatusIndicator` |
14
+ | **Table** | `Table`, `TableRow`, `TableCell`, `TableHeader`, `TableEmptyState`, `TableTimestampCell` |
15
+ | **Query Report** | `QueryReportTable`, `deriveColumns`, `exportToCSV` |
16
+ | **DataTable** | Headless TanStack Table-based replacement for legacy `Table` |
17
+ | **Pagination** | `CursorPagination`, `CursorPaginationSimple` |
18
+ | **Search / Filter** | `SearchInput`, `FilterList`, `TagSearchInput`, `TagKeyValueFilter` |
19
+ | **Chat / Layout** | `chat`, `ListPageLayout`, `PageContainer`, `PageLayout` |
20
+ | **Ticket** | `TicketStatusTag`, `AssigneeDropdown`, `TicketNoteCard`, `SimpleMarkdownRenderer` |
21
+ | **Media / Upload** | `FileUpload`, `ImageUploader`, `MediaTypeSelector` |
22
+ | **Misc** | `FloatingTooltip`, `TruncateText`, `CircularProgress`, `Skeleton`, `Slider` |
24
23
 
25
24
  ## Usage Example
26
25
 
27
26
  ```typescript
28
- import {
29
- Button,
30
- Card,
31
- Input,
32
- Dialog,
27
+ import {
28
+ Button,
29
+ Input,
30
+ Select,
33
31
  Table,
34
- StatusBadge
35
- } from '@/components/ui'
32
+ TableRow,
33
+ TableCell,
34
+ CursorPagination,
35
+ StatusBadge,
36
+ QueryReportTable,
37
+ deriveColumns,
38
+ } from '@your-org/ui-kit'
39
+
40
+ function DeviceTable({ data, pagination }) {
41
+ const columns = deriveColumns(data)
36
42
 
37
- function MyComponent() {
38
43
  return (
39
- <Card>
40
- <Input placeholder="Search..." />
41
- <Button variant="primary">Submit</Button>
42
- <StatusBadge status="active" />
43
- </Card>
44
+ <>
45
+ <QueryReportTable columns={columns} rows={data} />
46
+ <CursorPagination {...pagination} />
47
+ </>
44
48
  )
45
49
  }
46
- ```
50
+ ```
51
+
52
+ > **Note:** This file is marked `"use client"` — all exported components are client-side only and require a React environment with client rendering support (e.g. Next.js App Router).
@@ -1,41 +1,41 @@
1
- <!-- source-hash: 3ca2d06c5ec6b892b020bb391b10787d -->
2
- A React component that renders structured information in a card format with support for icons, copyable values, dotted leaders, and optional progress indicators.
1
+ <!-- source-hash: 871aa5b6b708ec48977c99b3cc86ea5f -->
2
+ A reusable card component for displaying structured key-value information with optional title, subtitle, progress bar, and clipboard copy support.
3
3
 
4
4
  ## Key Components
5
5
 
6
- - **`InfoCardData`** - Interface defining the card's data structure including title, items, and progress
7
- - **`InfoCardProps`** - Component props interface with data and optional className
8
- - **`InfoCard`** - Main component that renders a dark-themed information card with:
9
- - Optional title with icon
10
- - Optional subtitle
11
- - List of label-value pairs with dotted leaders
12
- - Copyable values with clipboard functionality
13
- - Optional progress bar at the bottom
6
+ - **`InfoCard`** Main exported component that renders a styled card with title, subtitle, info items, and an optional progress bar
7
+ - **`InfoCardValueRow`** Internal component rendering a single label/value row with a divider and optional copy-to-clipboard button
8
+ - **`InfoCardData`** Interface defining the card's data shape including items, optional progress config, and display metadata
9
+ - **`InfoCardProps`** Component props interface accepting `data` and an optional `className`
14
10
 
15
11
  ## Usage Example
16
12
 
17
13
  ```typescript
18
- import { InfoCard } from './components/info-card'
19
- import { ServerIcon } from './icons'
14
+ import { InfoCard } from './info-card'
20
15
 
21
- const cardData = {
22
- title: "System Status",
23
- subtitle: "Current metrics",
24
- icon: <ServerIcon className="w-5 h-5" />,
25
- items: [
26
- { label: "Status", value: "Online", copyable: false },
27
- { label: "IP Address", value: "192.168.1.100", copyable: true },
28
- { label: "Ports", value: ["80", "443", "8080"], copyable: true }
29
- ],
30
- progress: {
31
- value: 75,
32
- warningThreshold: 80,
33
- criticalThreshold: 90,
34
- inverted: false
35
- }
36
- }
37
-
38
- <InfoCard data={cardData} className="w-full max-w-md" />
16
+ // Basic usage with copyable values and progress bar
17
+ <InfoCard
18
+ data={{
19
+ title: "Server Details",
20
+ subtitle: "Production Node",
21
+ icon: <ServerIcon />,
22
+ items: [
23
+ { label: "IP Address", value: "192.168.1.100", copyable: true },
24
+ { label: "Tags", value: ["web", "prod"], copyable: false },
25
+ ],
26
+ progress: {
27
+ value: 85,
28
+ warningThreshold: 70,
29
+ criticalThreshold: 90,
30
+ inverted: false,
31
+ },
32
+ }}
33
+ className="max-w-sm"
34
+ />
39
35
  ```
40
36
 
41
- The component automatically handles array values by displaying multiple rows, shows dotted leaders between labels and values, and provides one-click copying for designated fields.
37
+ ## Notes
38
+
39
+ - Multi-value items (arrays) render each value as a separate row, with the label shown only on the first row
40
+ - The progress bar supports `inverted` mode where high values are treated as healthy (green) and low values as critical (red)
41
+ - Copy state resets automatically via the `useCopyToClipboard` hook, toggling between a copy and check icon
@@ -1,36 +1,40 @@
1
- <!-- source-hash: 9d6e7a15dea73a9757bb7224faf5fbe6 -->
2
- A reusable React component that displays key-value pairs in a horizontal layout with a decorative divider line between the label and value.
1
+ <!-- source-hash: 841435ad2eb230c8516130a8d58de981 -->
2
+ A reusable UI component that renders a single labeled row with a value, connected by a horizontal dotted separator line commonly used for displaying key-value metadata in detail panels or cards.
3
3
 
4
4
  ## Key Components
5
5
 
6
- - **InfoRow**: Main component that renders a label-value pair with optional icon
7
- - **InfoRowProps**: TypeScript interface defining the component's props:
8
- - `label`: Display text for the left side
9
- - `value`: Display text for the right side
10
- - `icon`: Optional React node (typically an icon) displayed after the value
6
+ ### `InfoRow`
7
+ A client-side React component that accepts the following props:
8
+
9
+ | Prop | Type | Required | Description |
10
+ |------|------|----------|-------------|
11
+ | `label` | `string` | ✅ | Left-aligned label text |
12
+ | `value` | `string` | ✅ | Right-aligned value text |
13
+ | `icon` | `React.ReactNode` | ❌ | Optional icon rendered inline after the value |
11
14
 
12
15
  ## Usage Example
13
16
 
14
17
  ```typescript
15
- import { InfoRow } from './info-row'
16
- import { CheckIcon } from 'lucide-react'
17
-
18
- // Basic usage
19
- <InfoRow label="Status" value="Active" />
20
-
21
- // With icon
22
- <InfoRow
23
- label="Email Verified"
24
- value="Yes"
25
- icon={<CheckIcon className="w-4 h-4 text-green-500" />}
26
- />
27
-
28
- // Multiple rows for a details section
29
- <div className="space-y-2">
30
- <InfoRow label="Name" value="John Doe" />
31
- <InfoRow label="Role" value="Administrator" />
32
- <InfoRow label="Last Login" value="2 hours ago" />
33
- </div>
18
+ import { InfoRow } from "@/components/info-row"
19
+ import { Globe } from "lucide-react"
20
+
21
+ export function DeviceDetails() {
22
+ return (
23
+ <div className="flex flex-col gap-2">
24
+ <InfoRow label="Hostname" value="workstation-01" />
25
+ <InfoRow label="IP Address" value="192.168.1.100" />
26
+ <InfoRow
27
+ label="Status"
28
+ value="Online"
29
+ icon={<Globe className="w-4 h-4 text-green-400" />}
30
+ />
31
+ </div>
32
+ )
33
+ }
34
34
  ```
35
35
 
36
- The component features a clean design with DM Sans typography, ellipsis overflow handling, and a subtle gray divider line that automatically fills the available space between the label and value.
36
+ ## Layout Behavior
37
+
38
+ - **Label** — left side, truncates with ellipsis on overflow
39
+ - **Separator** — flexible `1px` horizontal line that fills available space between label and value
40
+ - **Value + Icon** — right side, truncates with ellipsis, icon rendered inline after text
@@ -0,0 +1,44 @@
1
+ <!-- source-hash: c9b91d56212a5346e7a50d8e42269480 -->
2
+ A `forwardRef`-wrapped button component styled to match Input fields, designed to trigger popups, popovers, dropdowns, and custom calendars while maintaining visual consistency with other form elements.
3
+
4
+ ## Key Components
5
+
6
+ ### `InputTriggerProps`
7
+ Extends `React.ButtonHTMLAttributes<HTMLButtonElement>` (omitting `children`) with:
8
+
9
+ | Prop | Type | Description |
10
+ |------|------|-------------|
11
+ | `selectedLabel` | `React.ReactNode` | Displayed when a value is selected |
12
+ | `placeholder` | `string` | Shown when no value is selected |
13
+ | `startIcon` | `React.ReactNode` | Icon rendered on the left |
14
+ | `endIcon` | `React.ReactNode` | Icon rendered on the right (e.g. chevron) |
15
+ | `invalid` | `boolean` | Applies error border styling |
16
+
17
+ ### `InputTrigger`
18
+ A `forwardRef` button that:
19
+ - Renders `placeholder` text (muted) when `selectedLabel` is `undefined`, `null`, or `""`
20
+ - Applies `data-invalid` for error states and `data-[state=open]` accent border when open
21
+ - Supports disabled, hover, and active visual states via Tailwind utility classes
22
+
23
+ ## Usage Example
24
+
25
+ ```typescript
26
+ import { InputTrigger } from "./input-trigger";
27
+ import { CalendarIcon, ChevronDownIcon } from "lucide-react";
28
+
29
+ // Inside a Radix Popover
30
+ <Popover>
31
+ <PopoverTrigger asChild>
32
+ <InputTrigger
33
+ selectedLabel={selectedDate ? format(selectedDate, "PPP") : undefined}
34
+ placeholder="Pick a date"
35
+ startIcon={<CalendarIcon size={16} />}
36
+ endIcon={<ChevronDownIcon size={16} />}
37
+ invalid={!!formErrors.date}
38
+ />
39
+ </PopoverTrigger>
40
+ <PopoverContent>...</PopoverContent>
41
+ </Popover>
42
+ ```
43
+
44
+ > **When to use:** Triggers for popovers, custom calendars, or `ActionsMenuDropdown`. Use `<Select>` for flat-list selection, and `<Button>` for page-level CTAs.
@@ -1,47 +1,53 @@
1
- <!-- source-hash: 5636f32d922f68d1e7189e5dc4be59af -->
2
- A comprehensive input component built on React's forwardRef pattern that supports adornments, validation states, and preview modes with consistent Flamingo design system styling.
1
+ <!-- source-hash: deeae07a7913733b844e875487c55c37 -->
2
+ A client-side input component built with `React.forwardRef`, supporting labels, validation states, adornments, loading indicators, and a special range slider variant.
3
3
 
4
4
  ## Key Components
5
5
 
6
- - **Input** - Main forwardRef component extending `HTMLInputElement` attributes
7
- - **InputProps** - Interface defining component props including validation and adornment options
8
- - **cn** - Utility function for conditional class name merging
6
+ - **`Input`** Main exported component extending native `HTMLInputElement` attributes
7
+ - **`InputProps`** Interface adding `invalid`, `startAdornment`, `endAdornment`, `label`, `error`, `errorVariant`, and `loading` props
8
+ - **`invalidBorderClasses`** Tailwind class map for `"error"` (red) and `"warning"` (yellow) border states
9
+ - **`FieldWrapper`** — Wraps the input with optional label and error message rendering
9
10
 
10
- Key props:
11
- - `invalid` - Applies red error styling for validation states
12
- - `startAdornment`/`endAdornment` - React nodes displayed at input edges
13
- - `preview` - Non-interactive display mode showing current value
11
+ ## Behavior Notes
12
+
13
+ - **Range type** renders a styled slider without borders or adornments; still supports `label` via `FieldWrapper`
14
+ - **`loading`** replaces `endAdornment` with a spinning `Loader2` icon
15
+ - **`isInvalid`** is derived from either the `invalid` prop or a truthy `error` string
16
+ - Autofill background override applied via `-webkit-box-shadow` hack for consistent theming
14
17
 
15
18
  ## Usage Example
16
19
 
17
20
  ```typescript
18
- import { Input } from "./input";
19
- import { Search, Lock } from "lucide-react";
20
-
21
- // Basic input
22
- <Input placeholder="Enter your email" />
23
-
24
- // With validation
25
- <Input
26
- type="email"
27
- invalid={!isValidEmail}
28
- placeholder="email@example.com"
21
+ // Basic input with label and error
22
+ <Input
23
+ label="Email"
24
+ type="email"
25
+ placeholder="you@example.com"
26
+ error="Invalid email address"
27
+ errorVariant="error"
29
28
  />
30
29
 
31
- // With adornments
30
+ // Input with adornments and loading state
32
31
  <Input
33
- type="search"
34
- placeholder="Search..."
35
- startAdornment={<Search size={16} />}
36
- endAdornment="⌘K"
32
+ label="Search"
33
+ startAdornment={<SearchIcon />}
34
+ loading={isFetching}
35
+ placeholder="Search tickets..."
37
36
  />
38
37
 
39
- // Preview mode (read-only display)
38
+ // Range slider
40
39
  <Input
41
- preview
42
- value="john@example.com"
43
- startAdornment={<Lock size={16} />}
40
+ type="range"
41
+ label="Volume"
42
+ min={0}
43
+ max={100}
44
+ defaultValue={50}
44
45
  />
45
- ```
46
46
 
47
- The component automatically handles three rendering modes: basic input, input with adornments (wrapped in label), and preview mode with non-interactive styling. All modes support the Flamingo dark theme with proper focus states and accessibility features.
47
+ // Warning variant
48
+ <Input
49
+ label="Username"
50
+ error="Username already taken"
51
+ errorVariant="warning"
52
+ />
53
+ ```
@@ -0,0 +1,57 @@
1
+ <!-- source-hash: ffc5aef958faee68b30051c7f83e0b1e -->
2
+ A full-featured, theme-aware Markdown editor component wrapping `@uiw/react-md-editor` with Flamingo design system styling, file upload support, and auto-scroll during resize.
3
+
4
+ ## Key Components
5
+
6
+ ### `MarkdownEditor` (default export)
7
+ The primary editor component. Dynamically loads the underlying `MDEditor` (SSR-safe) and injects scoped CSS overrides to match Flamingo's design tokens.
8
+
9
+ ### `MarkdownEditorStyles`
10
+ Internal component that injects `<style>` into `document.head` once on mount, applying Flamingo theme variables to all `.w-md-editor-*` selectors.
11
+
12
+ ### `MarkdownEditorProps`
13
+ | Prop | Type | Description |
14
+ |------|------|-------------|
15
+ | `value` | `string` | Controlled markdown content |
16
+ | `onChange` | `(markdown: string) => void` | Change callback |
17
+ | `placeholder` | `string` | Editor placeholder text |
18
+ | `disabled` | `boolean` | Disables editing |
19
+ | `height` | `number` | Initial height in px (default: `600`) |
20
+ | `minHeight` | `number` | Minimum height in px (default: `100`) |
21
+ | `onUploadFile` | `(file: File) => Promise<string>` | Upload handler; shows upload button when provided |
22
+ | `onFileUploaded` | `(url, filename) => void` | Post-upload callback |
23
+ | `renderPreview` | `(source: string) => ReactNode` | Custom preview renderer |
24
+
25
+ ## Usage Example
26
+
27
+ ```typescript
28
+ import { MarkdownEditor } from "./markdown-editor"
29
+
30
+ function MyForm() {
31
+ const [content, setContent] = useState("# Hello")
32
+
33
+ const handleUpload = async (file: File): Promise<string> => {
34
+ const formData = new FormData()
35
+ formData.append("file", file)
36
+ const res = await fetch("/api/upload", { method: "POST", body: formData })
37
+ const { url } = await res.json()
38
+ return url
39
+ }
40
+
41
+ return (
42
+ <MarkdownEditor
43
+ value={content}
44
+ onChange={setContent}
45
+ placeholder="Write something..."
46
+ height={400}
47
+ onUploadFile={handleUpload}
48
+ onFileUploaded={(url, name) => console.log("Uploaded:", name, url)}
49
+ />
50
+ )
51
+ }
52
+ ```
53
+
54
+ **Notable behaviors:**
55
+ - Pasting an image from clipboard triggers `onUploadFile` automatically
56
+ - Uploaded files are inserted as `![name](url)` (images) or `[name](url)` (other)
57
+ - The resize drag handle triggers an auto-scroll RAF loop to prevent viewport lock during resize
@@ -0,0 +1,51 @@
1
+ <!-- source-hash: 4e95a6a9f9ef814174b92059833949dc -->
2
+ Accessible modal dialog component with keyboard navigation, backdrop click-to-close, and scroll locking. Built with React context to share close functionality across sub-components.
3
+
4
+ ## Key Components
5
+
6
+ | Export | Description |
7
+ |--------|-------------|
8
+ | `ModalV2` | Root modal container — manages open state, Escape key handling, and body scroll lock |
9
+ | `ModalV2Header` | Header row with close button (desktop only); consumes `ModalContext` for `onClose` |
10
+ | `ModalV2Title` | Styled `<h2>` heading for the modal title |
11
+ | `ModalV2Content` | Scrollable content area with `overflow-y-auto` |
12
+ | `ModalV2Footer` | Flex row container for action buttons |
13
+
14
+ ## Usage Example
15
+
16
+ ```typescript
17
+ import {
18
+ ModalV2,
19
+ ModalV2Header,
20
+ ModalV2Title,
21
+ ModalV2Content,
22
+ ModalV2Footer,
23
+ } from "@/components/modal-v2"
24
+
25
+ function ExampleModal() {
26
+ const [isOpen, setIsOpen] = React.useState(false)
27
+
28
+ return (
29
+ <ModalV2 isOpen={isOpen} onClose={() => setIsOpen(false)}>
30
+ <ModalV2Header>
31
+ <ModalV2Title>Confirm Action</ModalV2Title>
32
+ </ModalV2Header>
33
+ <ModalV2Content>
34
+ <p>Are you sure you want to proceed?</p>
35
+ </ModalV2Content>
36
+ <ModalV2Footer>
37
+ <button onClick={() => setIsOpen(false)}>Cancel</button>
38
+ <button onClick={handleConfirm}>Confirm</button>
39
+ </ModalV2Footer>
40
+ </ModalV2>
41
+ )
42
+ }
43
+ ```
44
+
45
+ ## Behavior Notes
46
+
47
+ - **Escape key** closes the modal automatically while open
48
+ - **Backdrop click** dismisses via the overlay `div`
49
+ - **Body scroll** is locked (`overflow: hidden`) while open and restored on close
50
+ - **Close button** renders only on `md+` breakpoints; mobile relies on backdrop/Escape
51
+ - All sub-components forward refs to their underlying DOM elements