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

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (745) hide show
  1. package/dist/{chunk-3JWIJJ44.js → chunk-5OWDOFKK.js} +2 -2
  2. package/dist/{chunk-IK2X5YJU.js → chunk-HWY35EAK.js} +2 -2
  3. package/dist/{chunk-OTKJASSX.cjs → chunk-IZL2KEH6.cjs} +24 -24
  4. package/dist/{chunk-OTKJASSX.cjs.map → chunk-IZL2KEH6.cjs.map} +1 -1
  5. package/dist/{chunk-35XIT2CF.cjs → chunk-KDNGUYZM.cjs} +17 -17
  6. package/dist/{chunk-35XIT2CF.cjs.map → chunk-KDNGUYZM.cjs.map} +1 -1
  7. package/dist/{chunk-ZTJVRSN5.js → chunk-UKND27XC.js} +2 -2
  8. package/dist/chunk-UKND27XC.js.map +1 -0
  9. package/dist/{chunk-ZDF6F7ED.cjs → chunk-YZUUFTIK.cjs} +2 -2
  10. package/dist/chunk-YZUUFTIK.cjs.map +1 -0
  11. package/dist/components/chat/index.cjs +2 -2
  12. package/dist/components/chat/index.js +1 -1
  13. package/dist/components/contact/index.cjs +3 -3
  14. package/dist/components/contact/index.js +2 -2
  15. package/dist/components/features/index.cjs +2 -2
  16. package/dist/components/features/index.js +1 -1
  17. package/dist/components/index.cjs +49 -49
  18. package/dist/components/index.js +2 -2
  19. package/dist/components/navigation/index.cjs +2 -2
  20. package/dist/components/navigation/index.js +1 -1
  21. package/dist/components/tickets/index.cjs +61 -61
  22. package/dist/components/tickets/index.js +3 -3
  23. package/dist/components/ui/index.cjs +2 -2
  24. package/dist/components/ui/index.js +1 -1
  25. package/dist/index.cjs +2 -2
  26. package/dist/index.js +1 -1
  27. package/package.json +1 -1
  28. package/src/.index.md +36 -34
  29. package/src/components/.alert-dialog.md +27 -23
  30. package/src/components/.announcement-bar.md +26 -21
  31. package/src/components/.breadcrumb.md +19 -15
  32. package/src/components/.calendar.md +24 -19
  33. package/src/components/.categories-cart.md +29 -24
  34. package/src/components/.checkbox.md +23 -25
  35. package/src/components/.chevron-button.md +37 -32
  36. package/src/components/.comment-card.md +32 -62
  37. package/src/components/.dialog.md +26 -26
  38. package/src/components/.dynamic-skeleton.md +54 -57
  39. package/src/components/.empty-state.md +42 -51
  40. package/src/components/.faq-accordion.md +27 -21
  41. package/src/components/.filter-chip.md +41 -24
  42. package/src/components/.flamingo-logo.md +20 -23
  43. package/src/components/.footer-waitlist-button.md +29 -22
  44. package/src/components/.footer.md +32 -32
  45. package/src/components/.icons-block.md +27 -17
  46. package/src/components/.image-cropper.md +41 -32
  47. package/src/components/.index.md +33 -39
  48. package/src/components/.input.md +31 -35
  49. package/src/components/.logs-list.md +31 -20
  50. package/src/components/.media-carousel.md +35 -36
  51. package/src/components/.open-source-features.md +33 -16
  52. package/src/components/.pagination.md +52 -51
  53. package/src/components/.provider-button.md +21 -23
  54. package/src/components/.select.md +31 -20
  55. package/src/components/.sidebar.md +34 -24
  56. package/src/components/.smooth-accordion.md +29 -24
  57. package/src/components/.social-icon-row.md +36 -32
  58. package/src/components/.textarea.md +25 -31
  59. package/src/components/.tool-icon.md +24 -26
  60. package/src/components/.unified-filter-logic.md +37 -30
  61. package/src/components/.unified-pagination.md +23 -22
  62. package/src/components/.user-summary-stub.md +38 -22
  63. package/src/components/.vendor-display-button.md +25 -25
  64. package/src/components/.vendor-icon.md +33 -25
  65. package/src/components/.why-it-matters.md +28 -25
  66. package/src/components/chat/.approval-batch-message.md +51 -0
  67. package/src/components/chat/.approval-request-message.md +35 -34
  68. package/src/components/chat/.chat-attachment-bar.md +64 -0
  69. package/src/components/chat/.chat-container.md +36 -18
  70. package/src/components/chat/.chat-input.md +37 -20
  71. package/src/components/chat/.chat-message-enhanced.md +30 -49
  72. package/src/components/chat/.chat-message-list.md +45 -32
  73. package/src/components/chat/.chat-message-skeleton.md +26 -22
  74. package/src/components/chat/.chat-panel-context.md +52 -0
  75. package/src/components/chat/.chat-ref.types.md +42 -0
  76. package/src/components/chat/.chat-sidebar-skeleton.md +34 -25
  77. package/src/components/chat/.chat-sidebar.md +31 -26
  78. package/src/components/chat/.chat-ticket-list.md +39 -0
  79. package/src/components/chat/.context-compaction-display.md +36 -0
  80. package/src/components/chat/.cycling-phrase.md +52 -0
  81. package/src/components/chat/.embeddable-chat.md +48 -0
  82. package/src/components/chat/.expand-chevron.md +24 -0
  83. package/src/components/chat/.index.md +31 -35
  84. package/src/components/chat/.mingo-onboarding-card-skeleton.md +44 -0
  85. package/src/components/chat/.mingo-onboarding-card.md +62 -0
  86. package/src/components/chat/.model-display.md +32 -30
  87. package/src/components/chat/.nav-link-anchor-via-runtime.md +40 -0
  88. package/src/components/chat/.remark-card-links.md +38 -0
  89. package/src/components/chat/.slash-command-suggestions.md +47 -0
  90. package/src/components/chat/.source-action-button.md +48 -0
  91. package/src/components/chat/.thinking-display.md +42 -0
  92. package/src/components/chat/.tool-call-blocks.md +45 -0
  93. package/src/components/chat/.tool-execution-display.md +44 -36
  94. package/src/components/chat/chat-container.tsx +1 -1
  95. package/src/components/chat/entity-cards/.admin-content-card.md +43 -0
  96. package/src/components/chat/entity-cards/.block-card.md +47 -0
  97. package/src/components/chat/entity-cards/.blog-card.md +52 -0
  98. package/src/components/chat/entity-cards/.blog-image-placeholder.md +39 -0
  99. package/src/components/chat/entity-cards/.campaign-card-admin.md +47 -0
  100. package/src/components/chat/entity-cards/.case-study-card.md +58 -0
  101. package/src/components/chat/entity-cards/.chat-ticket-item.md +40 -0
  102. package/src/components/chat/entity-cards/.chat-video-entity-card.md +43 -0
  103. package/src/components/chat/entity-cards/.customer-interview-card.md +53 -0
  104. package/src/components/chat/entity-cards/.data-room-doc-card.md +47 -0
  105. package/src/components/chat/entity-cards/.dispatch.md +39 -0
  106. package/src/components/chat/entity-cards/.entity-author-card.md +51 -0
  107. package/src/components/chat/entity-cards/.generic-entity-card.md +62 -0
  108. package/src/components/chat/entity-cards/.github-activity-card.md +61 -0
  109. package/src/components/chat/entity-cards/.hubspot-ticket-card.md +53 -0
  110. package/src/components/chat/entity-cards/.index.md +66 -0
  111. package/src/components/chat/entity-cards/.investor-update-card.md +47 -0
  112. package/src/components/chat/entity-cards/.onboarding-guide-card.md +58 -0
  113. package/src/components/chat/entity-cards/.product-release-card-defaults.md +31 -0
  114. package/src/components/chat/entity-cards/.product-release-card.md +29 -0
  115. package/src/components/chat/entity-cards/.program-card-defaults.md +41 -0
  116. package/src/components/chat/entity-cards/.program-card.md +59 -0
  117. package/src/components/chat/entity-cards/.roadmap-card.md +46 -0
  118. package/src/components/chat/entity-cards/.roadmap-vote-button.md +52 -0
  119. package/src/components/chat/entity-cards/.slack-message-card.md +48 -0
  120. package/src/components/chat/entity-cards/.task-type-icon.md +47 -0
  121. package/src/components/chat/hooks/.index.md +36 -21
  122. package/src/components/chat/hooks/.use-chat-attachment-image-gallery.md +51 -0
  123. package/src/components/chat/hooks/.use-chat-attachments.md +48 -0
  124. package/src/components/chat/hooks/.use-chat-card-item.md +39 -0
  125. package/src/components/chat/hooks/.use-chat-identity.md +45 -0
  126. package/src/components/chat/hooks/.use-chat.md +58 -0
  127. package/src/components/chat/hooks/.use-chunk-catchup.md +46 -48
  128. package/src/components/chat/hooks/.use-close-on-navigation.md +44 -0
  129. package/src/components/chat/hooks/.use-collapsible.md +48 -0
  130. package/src/components/chat/hooks/.use-embedded-chat.md +32 -0
  131. package/src/components/chat/hooks/.use-jetstream-dialog-subscription.md +40 -0
  132. package/src/components/chat/hooks/.use-nats-chat-adapter.md +52 -0
  133. package/src/components/chat/hooks/.use-nats-dialog-subscription.md +49 -30
  134. package/src/components/chat/hooks/.use-proxied-image-url.md +40 -0
  135. package/src/components/chat/hooks/.use-realtime-chunk-processor.md +43 -40
  136. package/src/components/chat/hooks/.use-slash-commands.md +46 -0
  137. package/src/components/chat/hooks/.use-sse-chat-adapter.md +34 -0
  138. package/src/components/chat/hooks/.use-sse.md +60 -0
  139. package/src/components/chat/hooks/.use-unified-chat.md +57 -0
  140. package/src/components/chat/types/.api.types.md +52 -38
  141. package/src/components/chat/types/.chat.types.md +43 -34
  142. package/src/components/chat/types/.component.types.md +47 -48
  143. package/src/components/chat/types/.index.md +20 -27
  144. package/src/components/chat/types/.message.types.md +58 -48
  145. package/src/components/chat/types/.network.types.md +57 -31
  146. package/src/components/chat/types/.processing.types.md +49 -31
  147. package/src/components/chat/types/.unified-chat-state.types.md +41 -0
  148. package/src/components/chat/types/entities/.blog.md +43 -0
  149. package/src/components/chat/types/entities/.case-study.md +26 -0
  150. package/src/components/chat/types/entities/.content-ref.md +41 -0
  151. package/src/components/chat/types/entities/.customer-interview.md +28 -0
  152. package/src/components/chat/types/entities/.data-room-doc.md +36 -0
  153. package/src/components/chat/types/entities/.github-activity.md +43 -0
  154. package/src/components/chat/types/entities/.hubspot-ticket.md +53 -0
  155. package/src/components/chat/types/entities/.index.md +42 -0
  156. package/src/components/chat/types/entities/.investor-update.md +45 -0
  157. package/src/components/chat/types/entities/.onboarding-guide.md +50 -0
  158. package/src/components/chat/types/entities/.program-types.md +57 -0
  159. package/src/components/chat/types/entities/.roadmap-item.md +58 -0
  160. package/src/components/chat/types/entities/.slack-message.md +35 -0
  161. package/src/components/chat/utils/.agent-status-message.md +45 -0
  162. package/src/components/chat/utils/.auto-continuation-directive.md +58 -0
  163. package/src/components/chat/utils/.chat-attachment-markdown.md +54 -0
  164. package/src/components/chat/utils/.chat-authed-fetch.md +25 -0
  165. package/src/components/chat/utils/.chat-nav-resolution.md +46 -0
  166. package/src/components/chat/utils/.chat-proxy-auth-storage.md +38 -0
  167. package/src/components/chat/utils/.chip-action-class.md +34 -0
  168. package/src/components/chat/utils/.chip-styles.md +46 -0
  169. package/src/components/chat/utils/.chunk-parser.md +38 -28
  170. package/src/components/chat/utils/.clickup-task-type-utils.md +48 -0
  171. package/src/components/chat/utils/.compact-card-classes.md +62 -0
  172. package/src/components/chat/utils/.decide-new-tab.md +51 -0
  173. package/src/components/chat/utils/.external-app-urls.md +29 -0
  174. package/src/components/chat/utils/.extract-incomplete-message-state.md +25 -29
  175. package/src/components/chat/utils/.flatten-assistant-content.md +34 -0
  176. package/src/components/chat/utils/.icon-registry.md +46 -0
  177. package/src/components/chat/utils/.index.md +37 -32
  178. package/src/components/chat/utils/.is-cross-origin-url.md +35 -0
  179. package/src/components/chat/utils/.message-segment-accumulator.md +25 -34
  180. package/src/components/chat/utils/.nav-anchor-props.md +44 -0
  181. package/src/components/chat/utils/.nav-click-handler.md +47 -0
  182. package/src/components/chat/utils/.onboarding-icons.md +28 -0
  183. package/src/components/chat/utils/.process-historical-messages.md +46 -35
  184. package/src/components/chat/utils/.scroll-anchor.md +40 -0
  185. package/src/components/chat/utils/.slash-dispatch-utils.md +44 -0
  186. package/src/components/chat/utils/.source-icons.md +35 -0
  187. package/src/components/chat/utils/.source-row-cta.md +54 -0
  188. package/src/components/chat/utils/.tool-call-helpers.md +42 -0
  189. package/src/components/contact/.contact-form.md +43 -0
  190. package/src/components/contact/.index.md +27 -0
  191. package/src/components/features/.array-entry-manager.md +36 -45
  192. package/src/components/features/.changelog-manager.md +47 -21
  193. package/src/components/features/.changelog-sections-manager.md +21 -26
  194. package/src/components/features/.command-box.md +31 -28
  195. package/src/components/features/.entity-summary-editor.md +46 -0
  196. package/src/components/features/.entity-video-section.md +51 -0
  197. package/src/components/features/.figma-prototype-viewer.md +48 -29
  198. package/src/components/features/.filters-dropdown.md +33 -46
  199. package/src/components/features/.highlight-config-section.md +42 -0
  200. package/src/components/features/.highlight-generation-section.md +46 -0
  201. package/src/components/features/.highlight-video-combined-section.md +47 -0
  202. package/src/components/features/.highlight-video-preview.md +44 -0
  203. package/src/components/features/.highlight-video-section.md +47 -0
  204. package/src/components/features/.index.md +40 -66
  205. package/src/components/features/.media-gallery-manager.md +48 -38
  206. package/src/components/features/.more-about-button.md +22 -19
  207. package/src/components/features/.og-editor-preview.md +40 -36
  208. package/src/components/features/.parallax-image-showcase.md +33 -26
  209. package/src/components/features/.paths-display.md +42 -43
  210. package/src/components/features/.platform-badge.md +37 -36
  211. package/src/components/features/.platform-filter.md +23 -16
  212. package/src/components/features/.policy-configuration-panel.md +48 -56
  213. package/src/components/features/.provider-button.md +33 -36
  214. package/src/components/features/.push-button-selector.md +40 -29
  215. package/src/components/features/.release-media-manager.md +46 -31
  216. package/src/components/features/.section-selector.md +26 -31
  217. package/src/components/features/.select-button.md +35 -25
  218. package/src/components/features/.seo-editor-preview.md +41 -44
  219. package/src/components/features/.social-links-manager.md +25 -19
  220. package/src/components/features/.start-with-openframe-button.md +37 -29
  221. package/src/components/features/.status-filter-component.md +36 -20
  222. package/src/components/features/.tags-selector.md +40 -24
  223. package/src/components/features/.transcribe-and-summarize-combined-section.md +45 -0
  224. package/src/components/features/.transcribe-summarize-section.md +48 -0
  225. package/src/components/features/.transcript-summary-editor.md +53 -0
  226. package/src/components/features/.video-bites-display.md +46 -0
  227. package/src/components/features/.video-clips-section.md +41 -0
  228. package/src/components/features/.video-ratio-tabs.md +56 -0
  229. package/src/components/features/.video-source-selector.md +60 -0
  230. package/src/components/features/.video.md +44 -0
  231. package/src/components/features/.waitlist-form.md +60 -0
  232. package/src/components/features/ai-enrich/.AIEnrichButton.md +30 -27
  233. package/src/components/features/ai-enrich/.AIEnrichSection.md +46 -42
  234. package/src/components/features/board/.board-column-header.md +38 -0
  235. package/src/components/features/board/.board-column.md +43 -0
  236. package/src/components/features/board/.board.md +51 -0
  237. package/src/components/features/board/.color-utils.md +26 -0
  238. package/src/components/features/board/.index.md +56 -0
  239. package/src/components/features/board/.ticket-card-skeleton.md +38 -0
  240. package/src/components/features/board/.ticket-card.md +47 -0
  241. package/src/components/features/board/.types.md +45 -0
  242. package/src/components/features/board/.use-board-collapse.md +34 -0
  243. package/src/components/features/notifications/.index.md +57 -0
  244. package/src/components/features/notifications/.notification-drawer.md +34 -0
  245. package/src/components/features/notifications/.notification-tile.md +39 -0
  246. package/src/components/features/notifications/.notifications-context.md +73 -0
  247. package/src/components/features/notifications/.types.md +45 -0
  248. package/src/components/icons/.about-icon.md +20 -28
  249. package/src/components/icons/.ai-robot-icon.md +15 -17
  250. package/src/components/icons/.bash-icon.md +16 -23
  251. package/src/components/icons/.buildings-icon.md +10 -24
  252. package/src/components/icons/.capterra-icon.md +30 -26
  253. package/src/components/icons/.carta-icon.md +29 -0
  254. package/src/components/icons/.clickup-icon.md +26 -0
  255. package/src/components/icons/.cmd-icon.md +15 -22
  256. package/src/components/icons/.coins-icon.md +17 -25
  257. package/src/components/icons/.community-hub-icon.md +19 -25
  258. package/src/components/icons/.community-icon.md +24 -21
  259. package/src/components/icons/.compare-icon.md +32 -19
  260. package/src/components/icons/.copy-icon.md +29 -15
  261. package/src/components/icons/.custom-external-link-icon.md +19 -17
  262. package/src/components/icons/.custom-fork-icon.md +32 -21
  263. package/src/components/icons/.custom-license-icon.md +29 -25
  264. package/src/components/icons/.custom-star-icon.md +20 -28
  265. package/src/components/icons/.custom-time-icon.md +21 -22
  266. package/src/components/icons/.cut-vendor-costs-icon.md +6 -19
  267. package/src/components/icons/.dashboard-icon.md +13 -18
  268. package/src/components/icons/.deno-icon.md +16 -23
  269. package/src/components/icons/.donut-icon.md +12 -23
  270. package/src/components/icons/.double-chevron-icon.md +28 -36
  271. package/src/components/icons/.elestio-logo.md +13 -23
  272. package/src/components/icons/.empty-vendor-icon.md +16 -18
  273. package/src/components/icons/.explore-categories-icon.md +18 -29
  274. package/src/components/icons/.eye-icon.md +16 -26
  275. package/src/components/icons/.facebook-icon.md +9 -20
  276. package/src/components/icons/.figma-icon.md +8 -17
  277. package/src/components/icons/.filter-icon.md +15 -17
  278. package/src/components/icons/.flamingo-logo.md +28 -27
  279. package/src/components/icons/.folder-shield-icon.md +28 -19
  280. package/src/components/icons/.g2-icon.md +22 -21
  281. package/src/components/icons/.getapp-icon.md +25 -21
  282. package/src/components/icons/.github-icon.md +13 -25
  283. package/src/components/icons/.globe-icon.md +14 -19
  284. package/src/components/icons/.google-gemini-icon.md +16 -19
  285. package/src/components/icons/.google-logo.md +15 -21
  286. package/src/components/icons/.grid-view-icon.md +30 -19
  287. package/src/components/icons/.hamburger-icon.md +22 -20
  288. package/src/components/icons/.hand-dollar-icon.md +24 -34
  289. package/src/components/icons/.hotel-icon.md +27 -21
  290. package/src/components/icons/.icon-utils.md +28 -29
  291. package/src/components/icons/.image-icon.md +15 -22
  292. package/src/components/icons/.index.md +25 -28
  293. package/src/components/icons/.info-circle-icon.md +29 -30
  294. package/src/components/icons/.instagram-icon.md +10 -24
  295. package/src/components/icons/.jump-in-icon.md +18 -18
  296. package/src/components/icons/.linux-icon.md +18 -18
  297. package/src/components/icons/.log-out-icon.md +15 -23
  298. package/src/components/icons/.logs-icon.md +14 -23
  299. package/src/components/icons/.margin-crisis-icon.md +21 -20
  300. package/src/components/icons/.menu-icon.md +18 -19
  301. package/src/components/icons/.miami-cyber-gang-logo-face-only.md +18 -21
  302. package/src/components/icons/.miami-cyber-gang-logo.md +22 -14
  303. package/src/components/icons/.mlg-logo.md +18 -16
  304. package/src/components/icons/.moon-icon.md +32 -22
  305. package/src/components/icons/.ms-icon.md +30 -19
  306. package/src/components/icons/.nushell-icon.md +7 -21
  307. package/src/components/icons/.open-source-icon.md +19 -23
  308. package/src/components/icons/.openai-icon.md +9 -24
  309. package/src/components/icons/.openframe-ai-icons.md +25 -26
  310. package/src/components/icons/.openframe-logo.md +28 -22
  311. package/src/components/icons/.openframe-text.md +24 -27
  312. package/src/components/icons/.openmsp-logo.md +26 -23
  313. package/src/components/icons/.pilot-icon.md +23 -0
  314. package/src/components/icons/.powershell-icon.md +17 -22
  315. package/src/components/icons/.python-icon.md +16 -23
  316. package/src/components/icons/.queries-icon.md +13 -21
  317. package/src/components/icons/.reddit-icon.md +28 -24
  318. package/src/components/icons/.remote-control-icon.md +13 -17
  319. package/src/components/icons/.script-icon.md +27 -19
  320. package/src/components/icons/.search-icon.md +21 -21
  321. package/src/components/icons/.send-icon.md +14 -16
  322. package/src/components/icons/.settings-icon.md +30 -19
  323. package/src/components/icons/.shape-circle-dash-icon.md +16 -21
  324. package/src/components/icons/.shell-icon.md +15 -19
  325. package/src/components/icons/.shield-check-icon.md +18 -31
  326. package/src/components/icons/.shield-key-icon.md +25 -25
  327. package/src/components/icons/.shield-lock-icon.md +8 -18
  328. package/src/components/icons/.slack-icon.md +28 -32
  329. package/src/components/icons/.sparkles-icon.md +18 -23
  330. package/src/components/icons/.sso-configuration-icon.md +29 -16
  331. package/src/components/icons/.sun-icon.md +20 -18
  332. package/src/components/icons/.table-view-icon.md +17 -19
  333. package/src/components/icons/.telegram-icon.md +8 -22
  334. package/src/components/icons/.thumbs-down-icon.md +10 -19
  335. package/src/components/icons/.thumbs-up-icon.md +8 -17
  336. package/src/components/icons/.tool-directory-icons.md +24 -28
  337. package/src/components/icons/.trustpilot-icon.md +25 -22
  338. package/src/components/icons/.user-icon.md +26 -28
  339. package/src/components/icons/.users-group-icon.md +28 -24
  340. package/src/components/icons/.vendor-showcase-icons.md +21 -29
  341. package/src/components/icons/.vendors-icon.md +18 -22
  342. package/src/components/icons/.whatsapp-icon.md +30 -14
  343. package/src/components/icons/.x-icon.md +18 -23
  344. package/src/components/icons/.x-logo.md +13 -38
  345. package/src/components/icons/.youtube-icon.md +8 -19
  346. package/src/components/icons/device-type-icons/.get-device-type-icon.md +26 -34
  347. package/src/components/icons-v2-generated/.index.md +52 -0
  348. package/src/components/icons-v2-generated/alphabet/.index.md +33 -0
  349. package/src/components/icons-v2-generated/arrows/.index.md +39 -0
  350. package/src/components/icons-v2-generated/audio-and-visual/.index.md +40 -0
  351. package/src/components/icons-v2-generated/brand-logos/.elestio-logo-icon.md +40 -0
  352. package/src/components/icons-v2-generated/brand-logos/.gemini-logo-icon.md +37 -0
  353. package/src/components/icons-v2-generated/brand-logos/.google-gemini-logo-icon.md +33 -0
  354. package/src/components/icons-v2-generated/brand-logos/.index.md +38 -0
  355. package/src/components/icons-v2-generated/brand-logos/.meshcentral-logo-grey-icon.md +35 -0
  356. package/src/components/icons-v2-generated/brand-logos/.meshcentral-logo-icon.md +36 -0
  357. package/src/components/icons-v2-generated/buildings/.index.md +48 -0
  358. package/src/components/icons-v2-generated/charts/.index.md +40 -0
  359. package/src/components/icons-v2-generated/clothes/.index.md +48 -0
  360. package/src/components/icons-v2-generated/coding/.index.md +42 -0
  361. package/src/components/icons-v2-generated/communication/.index.md +39 -0
  362. package/src/components/icons-v2-generated/date-and-time/.index.md +29 -0
  363. package/src/components/icons-v2-generated/design/.index.md +39 -0
  364. package/src/components/icons-v2-generated/devices/.index.md +38 -0
  365. package/src/components/icons-v2-generated/documents/.index.md +38 -0
  366. package/src/components/icons-v2-generated/finance/.index.md +34 -0
  367. package/src/components/icons-v2-generated/food-and-drinks/.index.md +34 -0
  368. package/src/components/icons-v2-generated/food-and-drinks/.leafy-green-icon.md +36 -0
  369. package/src/components/icons-v2-generated/food-and-drinks/.strawberry-icon.md +39 -0
  370. package/src/components/icons-v2-generated/health/.index.md +40 -0
  371. package/src/components/icons-v2-generated/household/.index.md +45 -0
  372. package/src/components/icons-v2-generated/interface/.index.md +36 -0
  373. package/src/components/icons-v2-generated/map-and-travel/.index.md +41 -0
  374. package/src/components/icons-v2-generated/media-playback/.index.md +51 -0
  375. package/src/components/icons-v2-generated/number/.index.md +41 -0
  376. package/src/components/icons-v2-generated/school/.index.md +37 -0
  377. package/src/components/icons-v2-generated/security/.fingerprint-icon.md +38 -0
  378. package/src/components/icons-v2-generated/security/.index.md +39 -0
  379. package/src/components/icons-v2-generated/shopping/.index.md +42 -0
  380. package/src/components/icons-v2-generated/signs-and-symbols/.index.md +32 -0
  381. package/src/components/icons-v2-generated/sort-and-filter/.index.md +35 -0
  382. package/src/components/icons-v2-generated/sport/.index.md +41 -0
  383. package/src/components/icons-v2-generated/text-editor/.index.md +44 -0
  384. package/src/components/icons-v2-generated/users/.index.md +45 -0
  385. package/src/components/icons-v2-generated/vehicles-and-delivery/.index.md +36 -0
  386. package/src/components/icons-v2-generated/weather-and-nature/.flower-sakura-icon.md +36 -0
  387. package/src/components/icons-v2-generated/weather-and-nature/.index.md +34 -0
  388. package/src/components/layout/.article-detail-layout.md +43 -0
  389. package/src/components/layout/.back-button.md +40 -0
  390. package/src/components/layout/.list-page-layout.md +35 -26
  391. package/src/components/layout/.page-container.md +27 -38
  392. package/src/components/layout/.page-layout.md +50 -0
  393. package/src/components/layout/.title-block.md +42 -0
  394. package/src/components/loading/.card-skeleton.md +38 -29
  395. package/src/components/loading/.device-card-skeleton.md +29 -25
  396. package/src/components/loading/.index.md +39 -46
  397. package/src/components/loading/.margin-report-skeleton.md +45 -34
  398. package/src/components/loading/.organization-card-skeleton.md +39 -44
  399. package/src/components/loading/.page-layout-skeleton.md +34 -45
  400. package/src/components/loading/.unified-skeleton.md +62 -36
  401. package/src/components/navigation/.app-header.md +40 -29
  402. package/src/components/navigation/.app-layout.md +25 -26
  403. package/src/components/navigation/.header-global-search.md +34 -37
  404. package/src/components/navigation/.header-organization-filter.md +23 -22
  405. package/src/components/navigation/.header.md +31 -35
  406. package/src/components/navigation/.mobile-burger-menu.md +39 -47
  407. package/src/components/navigation/.mobile-nav-panel.md +51 -32
  408. package/src/components/navigation/.navigation-sidebar-header.md +36 -0
  409. package/src/components/navigation/.navigation-sidebar-item.md +45 -0
  410. package/src/components/navigation/.navigation-sidebar-toggle.md +38 -0
  411. package/src/components/navigation/.navigation-sidebar.md +33 -34
  412. package/src/components/navigation/.sliding-sidebar.md +52 -41
  413. package/src/components/navigation/.sticky-section-nav.md +56 -48
  414. package/src/components/platform/.ScriptArguments.md +39 -25
  415. package/src/components/platform/.ScriptInfoSection.md +30 -26
  416. package/src/components/platform/.ShellTypeBadge.md +18 -13
  417. package/src/components/platform/.SoftwareInfo.md +23 -27
  418. package/src/components/platform/.SoftwareSourceBadge.md +28 -19
  419. package/src/components/platform/.ToolBadge.md +25 -26
  420. package/src/components/providers/.theme-provider.md +52 -0
  421. package/src/components/shared/delivery/.delivery-lists.md +39 -0
  422. package/src/components/shared/delivery/.delivery-row.md +41 -0
  423. package/src/components/shared/delivery/.delivery-table.md +41 -0
  424. package/src/components/shared/delivery/.index.md +38 -0
  425. package/src/components/shared/dev-section/.dev-card-row.md +60 -0
  426. package/src/components/shared/dev-section/.dev-section-page.md +48 -0
  427. package/src/components/shared/dev-section/.dev-section-view.md +43 -0
  428. package/src/components/shared/dev-section/.index.md +38 -0
  429. package/src/components/shared/legal-document/.index.md +40 -0
  430. package/src/components/shared/legal-document/.legal-document-page.md +50 -0
  431. package/src/components/shared/legal-document/.use-legal-docs.md +42 -0
  432. package/src/components/shared/onboarding/.onboarding-step-card.md +32 -31
  433. package/src/components/shared/onboarding/.onboarding-walkthrough.md +39 -43
  434. package/src/components/shared/product-release/.index.md +28 -30
  435. package/src/components/shared/product-release/.product-release-card-skeleton.md +28 -28
  436. package/src/components/shared/product-release/.product-release-card.md +45 -27
  437. package/src/components/shared/product-release/.release-detail-page.md +23 -24
  438. package/src/components/shared/roadmap/.index.md +37 -0
  439. package/src/components/shared/roadmap/.roadmap-grid-skeleton.md +39 -0
  440. package/src/components/shared/roadmap/.roadmap-grid.md +66 -0
  441. package/src/components/shared/roadmap/.use-roadmap-voting.md +68 -0
  442. package/src/components/tickets/.help-center-card.md +51 -0
  443. package/src/components/tickets/.help-center-create-form.md +38 -0
  444. package/src/components/tickets/.help-center-list.md +40 -0
  445. package/src/components/tickets/.index.md +65 -0
  446. package/src/components/tickets/.ticket-center.md +51 -0
  447. package/src/components/tickets/.ticket-detail-drawer.md +48 -0
  448. package/src/components/tickets/.ticket-linked-delivery-card.md +36 -0
  449. package/src/components/tickets/.ticket-open-form.md +50 -0
  450. package/src/components/tickets/.ticket-row.md +30 -0
  451. package/src/components/tickets/.types.md +57 -0
  452. package/src/components/tickets/hooks/.use-ticket-actions.md +77 -0
  453. package/src/components/tickets/hooks/.use-ticket-engagements.md +42 -0
  454. package/src/components/tickets/hooks/.use-tickets-list.md +54 -0
  455. package/src/components/ui/.actions-menu.md +66 -41
  456. package/src/components/ui/.alert-dialog.md +29 -26
  457. package/src/components/ui/.allowed-domains-input.md +29 -21
  458. package/src/components/ui/.assignee-dropdown.md +45 -0
  459. package/src/components/ui/.autocomplete.md +47 -41
  460. package/src/components/ui/.benefit-card.md +51 -36
  461. package/src/components/ui/.brand-association-card.md +30 -27
  462. package/src/components/ui/.breadcrumb.md +17 -15
  463. package/src/components/ui/.checkbox-block.md +39 -35
  464. package/src/components/ui/.checkbox-with-description.md +23 -16
  465. package/src/components/ui/.checkbox.md +31 -23
  466. package/src/components/ui/.circular-progress.md +49 -19
  467. package/src/components/ui/.content-loader.md +32 -20
  468. package/src/components/ui/.cursor-pagination.md +41 -52
  469. package/src/components/ui/.dashboard-info-card.md +33 -26
  470. package/src/components/ui/.date-picker.md +27 -25
  471. package/src/components/ui/.device-card-compact.md +28 -29
  472. package/src/components/ui/.device-card.md +27 -27
  473. package/src/components/ui/.dialog.md +25 -16
  474. package/src/components/ui/.drawer.md +86 -0
  475. package/src/components/ui/.dropdown-button.md +45 -0
  476. package/src/components/ui/.entity-image.md +46 -0
  477. package/src/components/ui/.error-state.md +41 -28
  478. package/src/components/ui/.feature-card.md +35 -31
  479. package/src/components/ui/.feature-list.md +48 -0
  480. package/src/components/ui/.field-wrapper.md +47 -0
  481. package/src/components/ui/.file-upload.md +42 -0
  482. package/src/components/ui/.filter-checkbox-item.md +43 -0
  483. package/src/components/ui/.filter-list.md +57 -0
  484. package/src/components/ui/.filter-modal.md +59 -0
  485. package/src/components/ui/.floating-tooltip.md +43 -26
  486. package/src/components/ui/.hidden-tags-popup.md +49 -0
  487. package/src/components/ui/.hover-dropdown.md +54 -0
  488. package/src/components/ui/.image-gallery-modal.md +41 -34
  489. package/src/components/ui/.image-uploader.md +53 -0
  490. package/src/components/ui/.index.md +40 -34
  491. package/src/components/ui/.info-card.md +31 -31
  492. package/src/components/ui/.info-row.md +31 -27
  493. package/src/components/ui/.input-trigger.md +44 -0
  494. package/src/components/ui/.input.md +37 -31
  495. package/src/components/ui/.markdown-editor.md +57 -0
  496. package/src/components/ui/.modal-v2.md +51 -0
  497. package/src/components/ui/.modal.md +32 -31
  498. package/src/components/ui/.more-actions-menu.md +45 -38
  499. package/src/components/ui/.organization-card.md +31 -37
  500. package/src/components/ui/.page-actions.md +44 -54
  501. package/src/components/ui/.phone-input.md +54 -0
  502. package/src/components/ui/.progress-bar.md +35 -27
  503. package/src/components/ui/.radio-group.md +39 -27
  504. package/src/components/ui/.release-changelog-section.md +34 -34
  505. package/src/components/ui/.search-input.md +48 -0
  506. package/src/components/ui/.select.md +54 -34
  507. package/src/components/ui/.service-card.md +42 -40
  508. package/src/components/ui/.sheet.md +27 -18
  509. package/src/components/ui/.simple-markdown-renderer.md +29 -31
  510. package/src/components/ui/.sort-column-item.md +42 -0
  511. package/src/components/ui/.square-avatar.md +34 -24
  512. package/src/components/ui/.status-badge.md +26 -38
  513. package/src/components/ui/.switch.md +22 -35
  514. package/src/components/ui/.tab-navigation.md +56 -53
  515. package/src/components/ui/.tab-selector.md +40 -0
  516. package/src/components/ui/.tag-key-value-filter.md +56 -0
  517. package/src/components/ui/.tag-search-input.md +53 -0
  518. package/src/components/ui/.tag.md +49 -31
  519. package/src/components/ui/.tags-manager.md +60 -0
  520. package/src/components/ui/.textarea.md +44 -34
  521. package/src/components/ui/.ticket-attachments-list.md +45 -0
  522. package/src/components/ui/.ticket-detail-section.md +29 -0
  523. package/src/components/ui/.ticket-info-section.md +56 -0
  524. package/src/components/ui/.ticket-note-card.md +53 -0
  525. package/src/components/ui/.ticket-notes-section.md +54 -0
  526. package/src/components/ui/.ticket-status-tag.md +49 -0
  527. package/src/components/ui/.title-content-block.md +25 -26
  528. package/src/components/ui/.toaster.md +40 -28
  529. package/src/components/ui/.tooltip.md +22 -11
  530. package/src/components/ui/.truncate-text.md +39 -0
  531. package/src/components/ui/button/.button-styles.md +35 -0
  532. package/src/components/ui/button/.button.md +53 -0
  533. package/src/components/ui/button/.split-button.md +48 -0
  534. package/src/components/ui/data-table/.data-table-body.md +48 -0
  535. package/src/components/ui/data-table/.data-table-column-filter.md +45 -0
  536. package/src/components/ui/data-table/.data-table-cursor-footer.md +45 -0
  537. package/src/components/ui/data-table/.data-table-empty.md +43 -0
  538. package/src/components/ui/data-table/.data-table-header.md +55 -0
  539. package/src/components/ui/data-table/.data-table-infinite-footer.md +44 -0
  540. package/src/components/ui/data-table/.data-table-row-count.md +43 -0
  541. package/src/components/ui/data-table/.data-table-row.md +47 -0
  542. package/src/components/ui/data-table/.data-table-skeleton.md +42 -0
  543. package/src/components/ui/data-table/.data-table.md +47 -0
  544. package/src/components/ui/data-table/.index.md +55 -0
  545. package/src/components/ui/data-table/.types.md +54 -0
  546. package/src/components/ui/data-table/.use-data-table.md +45 -0
  547. package/src/components/ui/data-table/.utils.md +38 -0
  548. package/src/components/ui/file-manager/.file-manager-action-bar.md +39 -30
  549. package/src/components/ui/file-manager/.file-manager-breadcrumb.md +29 -27
  550. package/src/components/ui/file-manager/.file-manager-context-menu.md +38 -42
  551. package/src/components/ui/file-manager/.file-manager-empty.md +26 -39
  552. package/src/components/ui/file-manager/.file-manager-table-row.md +33 -41
  553. package/src/components/ui/file-manager/.file-manager.md +35 -31
  554. package/src/components/ui/query-report-table/.index.md +43 -0
  555. package/src/components/ui/query-report-table/.query-report-table-header.md +36 -0
  556. package/src/components/ui/query-report-table/.query-report-table-row.md +40 -0
  557. package/src/components/ui/query-report-table/.query-report-table-skeleton.md +44 -0
  558. package/src/components/ui/query-report-table/.query-report-table.md +47 -0
  559. package/src/components/ui/query-report-table/.types.md +41 -0
  560. package/src/components/ui/query-report-table/.utils.md +35 -0
  561. package/src/components/ui/table/.index.md +27 -48
  562. package/src/components/ui/table/.table-cell.md +18 -27
  563. package/src/components/ui/table/.table-column-filter-dropdown.md +40 -0
  564. package/src/components/ui/table/.table-description-cell.md +24 -14
  565. package/src/components/ui/table/.table-empty-state.md +21 -22
  566. package/src/components/ui/table/.table-header.md +25 -40
  567. package/src/components/ui/table/.table-row.md +22 -40
  568. package/src/components/ui/table/.table-skeleton.md +33 -26
  569. package/src/components/ui/table/.table-timestamp-cell.md +26 -16
  570. package/src/components/ui/table/.table.md +39 -59
  571. package/src/components/ui/table/.types.md +44 -36
  572. package/src/components/ui/table/.utils.md +18 -20
  573. package/src/contexts/.chat-runtime-context.md +54 -0
  574. package/src/contexts/.endpoints-runtime-context.md +58 -0
  575. package/src/contexts/.index.md +53 -0
  576. package/src/contexts/.use-outer-or-default.md +36 -0
  577. package/src/embed-shims/.index.md +45 -0
  578. package/src/embed-shims/.next-dynamic.md +43 -0
  579. package/src/embed-shims/.next-image.md +45 -0
  580. package/src/embed-shims/.next-link.md +59 -0
  581. package/src/embed-shims/.next-navigation.md +59 -0
  582. package/src/hooks/.index.md +34 -29
  583. package/src/hooks/.use-access-code-integration.md +49 -0
  584. package/src/hooks/.use-contact-submission.md +37 -26
  585. package/src/hooks/.use-copy-to-clipboard.md +42 -0
  586. package/src/hooks/.use-near-viewport.md +44 -0
  587. package/src/hooks/.use-og-placeholder.md +51 -0
  588. package/src/hooks/.use-toast.md +36 -35
  589. package/src/hooks/state/.use-api-params.md +29 -46
  590. package/src/hooks/state/.use-query-params.md +37 -33
  591. package/src/hooks/ui/.index.md +33 -32
  592. package/src/hooks/ui/.use-auto-limit-tags.md +54 -0
  593. package/src/hooks/ui/.use-horizontal-scrollbar.md +74 -0
  594. package/src/hooks/ui/.use-image-edge-color.md +42 -0
  595. package/src/hooks/ui/.use-media-query.md +33 -25
  596. package/src/hooks/ui/.use-search.md +51 -0
  597. package/src/nats/.nats.md +49 -28
  598. package/src/schemas/.contact-schema.md +45 -0
  599. package/src/stories/.AnnouncementBar.stories.md +45 -0
  600. package/src/stories/.AppLayout.stories.md +20 -21
  601. package/src/stories/.Autocomplete.stories.md +48 -34
  602. package/src/stories/.Board.stories.md +35 -0
  603. package/src/stories/.Button.stories.md +36 -33
  604. package/src/stories/.ChatTicketList.stories.md +33 -0
  605. package/src/stories/.CheckboxBlock.stories.md +40 -28
  606. package/src/stories/.ContentLoader.stories.md +47 -0
  607. package/src/stories/.DashboardInfoCard.stories.md +57 -0
  608. package/src/stories/.DataTable.stories.md +41 -0
  609. package/src/stories/.DatePicker.stories.md +66 -52
  610. package/src/stories/.DeviceCard.stories.md +41 -40
  611. package/src/stories/.DeviceCardCompact.stories.md +41 -0
  612. package/src/stories/.DotsLoaderIcon.stories.md +36 -0
  613. package/src/stories/.Drawer.stories.md +58 -0
  614. package/src/stories/.EmbeddableChat.stories.md +41 -0
  615. package/src/stories/.FileManager.stories.md +41 -0
  616. package/src/stories/.FileManagerActionBar.stories.md +38 -0
  617. package/src/stories/.FileUpload.stories.md +53 -0
  618. package/src/stories/.FilterList.stories.md +54 -0
  619. package/src/stories/.FilterModal.stories.md +72 -0
  620. package/src/stories/.FiltersDropdown.stories.md +57 -0
  621. package/src/stories/.Header.stories.md +48 -0
  622. package/src/stories/.ImageUploader.stories.md +49 -0
  623. package/src/stories/.InfoCard.stories.md +54 -0
  624. package/src/stories/.Input.stories.md +48 -30
  625. package/src/stories/.ListPageLayout.stories.md +56 -43
  626. package/src/stories/.MingoOnboardingCard.stories.md +42 -0
  627. package/src/stories/.MingoOnboardingCardSkeleton.stories.md +35 -0
  628. package/src/stories/.Modal.stories.md +40 -31
  629. package/src/stories/.NotificationDrawer.stories.md +55 -0
  630. package/src/stories/.OnboardingStepCard.stories.md +41 -0
  631. package/src/stories/.OrganizationCard.stories.md +61 -0
  632. package/src/stories/.PageActions.stories.md +52 -49
  633. package/src/stories/.PageContainer.stories.md +41 -35
  634. package/src/stories/.PageLayout.stories.md +60 -0
  635. package/src/stories/.ParallaxImageShowcase.stories.md +49 -0
  636. package/src/stories/.PhoneInput.stories.md +53 -0
  637. package/src/stories/.QueryReportTable.stories.md +44 -0
  638. package/src/stories/.RadioGroup.stories.md +46 -0
  639. package/src/stories/.RadioGroupBlock.stories.md +45 -0
  640. package/src/stories/.Select.stories.md +29 -15
  641. package/src/stories/.SlashCommandSuggestions.stories.md +41 -0
  642. package/src/stories/.SplitButton.stories.md +62 -0
  643. package/src/stories/.TabNavigation.stories.md +47 -38
  644. package/src/stories/.TabSelector.stories.md +65 -0
  645. package/src/stories/.Table.stories.md +38 -46
  646. package/src/stories/.TableColumnFilterDropdown.stories.md +46 -0
  647. package/src/stories/.Tag.stories.md +43 -32
  648. package/src/stories/.TagKeyValueFilter.stories.md +44 -0
  649. package/src/stories/.TagSearchInput.stories.md +61 -0
  650. package/src/stories/.Textarea.stories.md +49 -26
  651. package/src/stories/.Theme.stories.md +41 -0
  652. package/src/stories/.TicketAttachmentsList.stories.md +39 -0
  653. package/src/stories/.TicketDescriptionViewer.stories.md +39 -0
  654. package/src/stories/.TicketInfoSection.stories.md +40 -0
  655. package/src/stories/.TicketKnowledgeBaseList.stories.md +36 -0
  656. package/src/stories/.TicketNotesSection.stories.md +50 -0
  657. package/src/stories/.Toaster.stories.md +40 -0
  658. package/src/stories/.ToolExecutionDisplay.stories.md +41 -0
  659. package/src/stories/.Tooltip.stories.md +41 -0
  660. package/src/stories/.UserSummary.stories.md +41 -0
  661. package/src/stories/.WaitlistForm.stories.md +42 -0
  662. package/src/stories/BlogCard.stories.tsx +61 -0
  663. package/src/stories/CampaignCardAdmin.stories.tsx +52 -0
  664. package/src/stories/CaseStudyCard.stories.tsx +42 -0
  665. package/src/stories/ChatContainer.stories.tsx +186 -0
  666. package/src/stories/ChatInlineVideoPill.stories.tsx +63 -0
  667. package/src/stories/CustomerInterviewCard.stories.tsx +42 -0
  668. package/src/stories/DataRoomDocCard.stories.tsx +52 -0
  669. package/src/stories/GenericEntityCard.stories.tsx +66 -0
  670. package/src/stories/GitHubActivityCard.stories.tsx +61 -0
  671. package/src/stories/HubspotTicketCard.stories.tsx +98 -0
  672. package/src/stories/InvestorUpdateCard.stories.tsx +42 -0
  673. package/src/stories/OnboardingGuideCard.stories.tsx +52 -0
  674. package/src/stories/ProductReleaseCard.stories.tsx +61 -0
  675. package/src/stories/ProgramCard.stories.tsx +79 -0
  676. package/src/stories/RoadmapCard.stories.tsx +75 -0
  677. package/src/stories/SlackMessageCard.stories.tsx +41 -0
  678. package/src/stories/__fixtures__/chat-cards.ts +604 -0
  679. package/src/types/.blog.md +53 -29
  680. package/src/types/.case-study.md +44 -27
  681. package/src/types/.customer-interview.md +66 -44
  682. package/src/types/.delivery.md +40 -0
  683. package/src/types/.employee.md +24 -30
  684. package/src/types/.index.md +33 -47
  685. package/src/types/.marketing.md +49 -44
  686. package/src/types/.navigation.md +33 -25
  687. package/src/types/.os.types.md +32 -27
  688. package/src/types/.platform.md +31 -28
  689. package/src/types/.product-release.md +65 -38
  690. package/src/types/.supabase.md +37 -29
  691. package/src/types/.team.md +41 -33
  692. package/src/types/.video-processing.md +54 -0
  693. package/src/types/.waitlist.md +40 -36
  694. package/src/utils/.access-code-client.md +37 -36
  695. package/src/utils/.cn.md +31 -23
  696. package/src/utils/.color-analysis.md +35 -0
  697. package/src/utils/.country-phone-utils.md +39 -0
  698. package/src/utils/.date-formatters.md +19 -18
  699. package/src/utils/.embed-authed-fetch.md +39 -0
  700. package/src/utils/.embed-proxy-auth-storage.md +38 -0
  701. package/src/utils/.fetch-priority.md +41 -0
  702. package/src/utils/.format.md +74 -25
  703. package/src/utils/.generic-domain-utils.md +42 -0
  704. package/src/utils/.image-proxy.md +59 -23
  705. package/src/utils/.index.md +42 -49
  706. package/src/utils/.local-storage-adapter.md +50 -0
  707. package/src/utils/.ods-color-utils.md +55 -38
  708. package/src/utils/.platform-config.md +45 -25
  709. package/src/utils/.scroll-into-view.md +40 -0
  710. package/src/utils/.source-icons.md +53 -0
  711. package/src/utils/.sse-decision-frame.md +46 -0
  712. package/src/utils/dev-sections/.index.md +34 -0
  713. package/src/utils/dev-sections/.openframe-dev-sections.md +49 -0
  714. package/dist/chunk-ZDF6F7ED.cjs.map +0 -1
  715. package/dist/chunk-ZTJVRSN5.js.map +0 -1
  716. package/src/components/.card.md +0 -42
  717. package/src/components/.contact-button.md +0 -30
  718. package/src/components/.drawer.md +0 -46
  719. package/src/components/.fixed-layout-container.md +0 -47
  720. package/src/components/.footer-waitlist-card.md +0 -29
  721. package/src/components/.join-waitlist-cta.md +0 -29
  722. package/src/components/.sheet.md +0 -47
  723. package/src/components/.sliding-panel.md +0 -48
  724. package/src/components/.tooltip.md +0 -48
  725. package/src/components/.use-mobile.md +0 -42
  726. package/src/components/.vendor-compact-card.md +0 -66
  727. package/src/components/.x-button.md +0 -42
  728. package/src/components/features/.github-repo-button.md +0 -40
  729. package/src/components/features/.organization-icon.md +0 -47
  730. package/src/components/features/.organization-selector.md +0 -45
  731. package/src/components/icons/.fleet-icon.md +0 -39
  732. package/src/components/icons/.meshcentral-icon.md +0 -35
  733. package/src/components/icons/.refresh-icon.md +0 -34
  734. package/src/components/icons/.tactical-icon.md +0 -35
  735. package/src/components/ui/.button.md +0 -69
  736. package/src/components/ui/.log-table-row.md +0 -47
  737. package/src/components/ui/.selectable-device-card.md +0 -46
  738. package/src/hooks/.api-hooks-stub.md +0 -45
  739. package/src/hooks/api/.use-product-releases.md +0 -53
  740. package/src/stories/.OrganizationSelector.stories.md +0 -42
  741. package/src/stories/.SelectableDeviceCard.stories.md +0 -30
  742. package/src/utils/.lite-youtube-embed-stub.md +0 -37
  743. package/src/utils/.lite-youtube-embed.md +0 -33
  744. /package/dist/{chunk-3JWIJJ44.js.map → chunk-5OWDOFKK.js.map} +0 -0
  745. /package/dist/{chunk-IK2X5YJU.js.map → chunk-HWY35EAK.js.map} +0 -0
@@ -0,0 +1,54 @@
1
+ <!-- source-hash: 0bb70a064412065a884dd7759655fdc8 -->
2
+ Augments TanStack React Table's `ColumnMeta` interface with Flamingo-specific display and behavior options, and exports shared filter/breakpoint types used across data table components.
3
+
4
+ ## Key Components
5
+
6
+ | Export | Type | Description |
7
+ |--------|------|-------------|
8
+ | `TailwindBreakpoint` | Type alias | Union of responsive breakpoints: `'md' \| 'lg' \| 'xl' \| '2xl'` |
9
+ | `DataTableFilterOption` | Interface | Shape for individual filter dropdown options (`id`, `label`, `value`) |
10
+ | `ColumnMeta` (module augmentation) | Interface extension | Adds Flamingo-specific metadata fields to TanStack Table's `ColumnMeta` |
11
+
12
+ ### `ColumnMeta` Augmented Fields
13
+
14
+ | Field | Type | Description |
15
+ |-------|------|-------------|
16
+ | `width` | `string` | Tailwind width class (e.g. `'w-40'`, `'flex-1 min-w-0'`) |
17
+ | `align` | `'left' \| 'center' \| 'right'` | Horizontal alignment for cell and header |
18
+ | `hideAt` | `TailwindBreakpoint \| TailwindBreakpoint[]` | Hides the column at/below specified breakpoint(s) |
19
+ | `filter` | `{ options, placement? }` | Enables a filter dropdown in the header with provided options |
20
+ | `sortable` | `boolean` | Opt-in sort indicator in header; defaults to `false` |
21
+ | `cellClassName` | `string` | Extra class names for the body cell wrapper |
22
+ | `headerClassName` | `string` | Extra class names for the header cell wrapper |
23
+
24
+ ## Usage Example
25
+
26
+ ```typescript
27
+ import type { ColumnDef } from '@tanstack/react-table'
28
+ import type { DataTableFilterOption } from './types'
29
+
30
+ const statusOptions: DataTableFilterOption[] = [
31
+ { id: 'active', label: 'Active', value: 'active' },
32
+ { id: 'inactive', label: 'Inactive', value: 'inactive' },
33
+ ]
34
+
35
+ const columns: ColumnDef<User>[] = [
36
+ {
37
+ accessorKey: 'name',
38
+ meta: {
39
+ width: 'flex-1 min-w-0',
40
+ align: 'left',
41
+ sortable: true,
42
+ hideAt: ['md', 'lg'],
43
+ },
44
+ },
45
+ {
46
+ accessorKey: 'status',
47
+ meta: {
48
+ width: 'w-40',
49
+ filter: { options: statusOptions, placement: 'bottom-start' },
50
+ cellClassName: 'font-medium',
51
+ },
52
+ },
53
+ ]
54
+ ```
@@ -0,0 +1,45 @@
1
+ <!-- source-hash: 4c242f0aea85fea9fe359656cea3e3d5 -->
2
+ A thin wrapper around TanStack's `useReactTable` with sensible defaults for server-driven (Relay/REST) pagination, sorting, and filtering. Row-model factories are instantiated once at module load to preserve internal TanStack caches across renders.
3
+
4
+ ## Key Components
5
+
6
+ - **`UseDataTableOptions<T>`** — Extends TanStack's `TableOptions<T>` (omitting `getCoreRowModel`) with two additional flags:
7
+ - `clientSideSorting` — enables `getSortedRowModel` (default: `false`)
8
+ - `clientSideFiltering` — enables `getFilteredRowModel` (default: `false`)
9
+ - **`useDataTable<T>`** — The main hook. Wraps `useReactTable` and automatically sets `manualSorting`/`manualFiltering` to the inverse of the client-side flags unless explicitly overridden.
10
+
11
+ ## Usage Example
12
+
13
+ ```typescript
14
+ import { useMemo, useCallback } from 'react'
15
+ import { useDataTable } from './use-data-table'
16
+ import type { ColumnDef } from '@tanstack/react-table'
17
+
18
+ // Stable references — required to avoid row-model rebuilds on every render
19
+ const data = useMemo(() => rows.map(toUiRow), [rows])
20
+ const columns = useMemo<ColumnDef<MyRow>[]>(() => [
21
+ { accessorKey: 'name', header: 'Name' },
22
+ { accessorKey: 'status', header: 'Status' },
23
+ ], [])
24
+ const getRowId = useCallback((row: MyRow) => row.id, [])
25
+ const sorting = useMemo(() => [{ id: sortKey, desc: sortDesc }], [sortKey, sortDesc])
26
+
27
+ const table = useDataTable({
28
+ data,
29
+ columns,
30
+ getRowId,
31
+ state: { sorting }, // wrapper object can be inline
32
+ onSortingChange: handleSort, // callbacks can be inline
33
+ // clientSideSorting: true, // opt-in for fully client-side tables
34
+ })
35
+ ```
36
+
37
+ ## Reference-Stability Notes
38
+
39
+ | Option | Safe inline? |
40
+ |---|---|
41
+ | `data`, `columns` | ❌ — must `useMemo` |
42
+ | `state` (wrapper) | ✅ — build inline freely |
43
+ | `state.sorting`, `state.pagination` | ❌ — must be stable refs |
44
+ | `onXChange` callbacks | ✅ — invoked, never compared |
45
+ | `meta`, `defaultColumn` | ⚠️ — recommended `useMemo` |
@@ -0,0 +1,38 @@
1
+ <!-- source-hash: 1499b2bf29298a7d9f4f5ec8c921eb3e -->
2
+ Utility functions for TanStack React Table and Tailwind CSS column/cell rendering helpers.
3
+
4
+ ## Key Components
5
+
6
+ | Export | Type | Description |
7
+ |--------|------|-------------|
8
+ | `getHideClasses` | `function` | Generates Tailwind responsive visibility classes from breakpoint config |
9
+ | `alignJustify` | `function` | Maps column alignment metadata to Tailwind flex/text justify classes |
10
+ | `multiSelectFilterFn` | `FilterFn<any>` | TanStack Table filter function for multi-select column filters |
11
+
12
+ ## Usage Example
13
+
14
+ ```typescript
15
+ import { getHideClasses, alignJustify, multiSelectFilterFn } from './utils'
16
+ import type { ColumnDef } from '@tanstack/react-table'
17
+
18
+ // Responsive column visibility
19
+ getHideClasses('md') // 'hidden md:flex'
20
+ getHideClasses(['md', 'lg']) // 'md:hidden lg:hidden xl:flex'
21
+
22
+ // Column alignment
23
+ alignJustify('right') // 'justify-end text-right'
24
+ alignJustify('center') // 'justify-center text-center'
25
+ alignJustify() // 'justify-start text-left' (default)
26
+
27
+ // Multi-select client-side filtering
28
+ const columns: ColumnDef<Device>[] = [
29
+ {
30
+ accessorKey: 'status',
31
+ header: 'Status',
32
+ filterFn: multiSelectFilterFn,
33
+ meta: { filter: { options: STATUS_OPTIONS } },
34
+ },
35
+ ]
36
+ ```
37
+
38
+ > **Note on `multiSelectFilterFn`:** Only applies when `clientSideFiltering: true` is set on `useDataTable`. For server-side (Relay/REST) filtering, `manualFiltering` is enabled and TanStack never calls `filterFn` — translate `columnFilters` state into your backend query variables directly.
@@ -1,39 +1,48 @@
1
- <!-- source-hash: 7f4091a6eea7a1623fd7eaf21bd6edb8 -->
2
- A React component that renders a file management toolbar with standard file operations like copy, cut, paste, upload, and folder creation.
1
+ <!-- source-hash: 35fc4ad5dd56ef4d64fe4e521ab6318a -->
2
+ A toolbar component for the File Manager that renders action buttons for common file operations.
3
3
 
4
4
  ## Key Components
5
5
 
6
- - **FileManagerActionBar**: Main component that renders action buttons for file management operations
7
- - **Button Integration**: Uses custom Button component with outline variant and small sizing
8
- - **Icon Integration**: Leverages Lucide React icons for visual button indicators
9
- - **Conditional States**: Handles disabled states for copy/cut (requires selection) and paste (requires clipboard content)
6
+ ### `FileManagerActionBar`
7
+ A client-side React component that displays a responsive button bar with six file management actions.
8
+
9
+ | Button | Icon | Disabled When |
10
+ |--------|------|---------------|
11
+ | New Folder | `FolderPlus` | Never |
12
+ | Copy | `Copy` | `hasSelection = false` |
13
+ | Cut | `Scissors` | `hasSelection = false` |
14
+ | Paste | `Clipboard` | `canPaste = false` |
15
+ | Upload | `Upload` | Never |
16
+ | Select All | `CheckSquare` | Never |
17
+
18
+ ### Props (`FileManagerActionBarProps`)
19
+
20
+ | Prop | Type | Default | Description |
21
+ |------|------|---------|-------------|
22
+ | `canPaste` | `boolean` | `false` | Enables the Paste button |
23
+ | `hasSelection` | `boolean` | `false` | Enables Copy and Cut buttons |
24
+ | `onNewFolder` | `() => void` | — | Create folder handler |
25
+ | `onPaste` | `() => void` | — | Paste handler |
26
+ | `onCopy` | `() => void` | — | Copy handler |
27
+ | `onCut` | `() => void` | — | Cut handler |
28
+ | `onUpload` | `() => void` | — | Upload handler |
29
+ | `onSelectAll` | `() => void` | — | Select all handler |
30
+ | `className` | `string` | — | Additional CSS classes |
10
31
 
11
32
  ## Usage Example
12
33
 
13
34
  ```typescript
14
- import { FileManagerActionBar } from './file-manager-action-bar'
15
-
16
- function FileExplorer() {
17
- const [selectedFiles, setSelectedFiles] = useState<string[]>([])
18
- const [clipboardHasContent, setClipboardHasContent] = useState(false)
19
-
20
- return (
21
- <div>
22
- <FileManagerActionBar
23
- hasSelection={selectedFiles.length > 0}
24
- canPaste={clipboardHasContent}
25
- onNewFolder={() => console.log('Create new folder')}
26
- onCopy={() => console.log('Copy selected files')}
27
- onCut={() => console.log('Cut selected files')}
28
- onPaste={() => console.log('Paste from clipboard')}
29
- onUpload={() => console.log('Upload files')}
30
- onSelectAll={() => console.log('Select all files')}
31
- className="mb-4"
32
- />
33
- {/* File list components */}
34
- </div>
35
- )
36
- }
35
+ <FileManagerActionBar
36
+ canPaste={clipboard !== null}
37
+ hasSelection={selectedItems.length > 0}
38
+ onNewFolder={() => setShowNewFolderModal(true)}
39
+ onCopy={() => setClipboard({ mode: 'copy', items: selectedItems })}
40
+ onCut={() => setClipboard({ mode: 'cut', items: selectedItems })}
41
+ onPaste={() => handlePaste(currentPath)}
42
+ onUpload={() => fileInputRef.current?.click()}
43
+ onSelectAll={() => setSelectedItems(allItems)}
44
+ className="px-4 py-2 border-b"
45
+ />
37
46
  ```
38
47
 
39
- The component provides a responsive toolbar with wrapped buttons, appropriate disabled states, and consistent styling using Tailwind classes and the cn utility for conditional styling.
48
+ The bar is responsive it wraps on small screens and right-aligns on `md` and above via `flex-wrap md:justify-end`.
@@ -1,38 +1,40 @@
1
- <!-- source-hash: 7dbf1d4bdaf21bcabc561fc643fe10c4 -->
2
- A React component that renders a clickable breadcrumb navigation for file system hierarchies, displaying the path with chevron separators and hover interactions.
1
+ <!-- source-hash: 10ec2f9a1b5237b3543c1a35d4d9d860 -->
2
+ Renders a navigable breadcrumb trail for a file manager UI, displaying a series of clickable path segments separated by chevron icons.
3
3
 
4
4
  ## Key Components
5
5
 
6
- - **FileManagerBreadcrumb** - Main component that renders breadcrumb navigation
7
- - **Props Interface** - Accepts `items` array, `onItemClick` callback, and optional `className`
8
- - **Navigation Items** - Each breadcrumb segment is a clickable button with path and label
9
- - **Responsive Design** - Handles text wrapping and flexible layout for long paths
6
+ - **`FileManagerBreadcrumb`** Main exported component that maps over a `FileManagerBreadcrumbProps.items` array to render a `<nav>` with interactive path buttons
7
+ - **`ChevronRight`** Lucide icon injected as a separator between breadcrumb segments (omitted before the first item)
8
+ - **`cn`** Utility for conditional class merging
9
+
10
+ ## Props (`FileManagerBreadcrumbProps`)
11
+
12
+ | Prop | Description |
13
+ |------|-------------|
14
+ | `items` | Array of breadcrumb segments, each with a `label` and `path` |
15
+ | `onItemClick` | Optional callback invoked with the segment's `path` on click |
16
+ | `className` | Optional additional class names applied to the `<nav>` element |
17
+
18
+ ## Behavior Notes
19
+
20
+ - The **last item** receives `font-medium` styling to visually indicate the current location
21
+ - All items use `break-all` to handle long path strings gracefully within wrapped layouts
22
+ - Separators use `flex-shrink-0` to prevent chevrons from collapsing in tight spaces
10
23
 
11
24
  ## Usage Example
12
25
 
13
26
  ```typescript
14
27
  import { FileManagerBreadcrumb } from './file-manager-breadcrumb'
15
28
 
16
- const breadcrumbItems = [
17
- { path: '/', label: 'Root' },
18
- { path: '/documents', label: 'Documents' },
19
- { path: '/documents/projects', label: 'Projects' }
29
+ const breadcrumbs = [
30
+ { label: 'Home', path: '/' },
31
+ { label: 'Documents', path: '/documents' },
32
+ { label: 'Reports', path: '/documents/reports' },
20
33
  ]
21
34
 
22
- function FileExplorer() {
23
- const handleBreadcrumbClick = (path: string) => {
24
- // Navigate to the selected path
25
- console.log('Navigating to:', path)
26
- }
27
-
28
- return (
29
- <FileManagerBreadcrumb
30
- items={breadcrumbItems}
31
- onItemClick={handleBreadcrumbClick}
32
- className="mb-4"
33
- />
34
- )
35
- }
36
- ```
37
-
38
- The component features responsive text wrapping, hover states with color transitions, and highlights the current (last) item with bold text. Chevron separators between items provide clear visual hierarchy.
35
+ <FileManagerBreadcrumb
36
+ items={breadcrumbs}
37
+ onItemClick={(path) => console.log('Navigate to:', path)}
38
+ className="px-4 py-2"
39
+ />
40
+ ```
@@ -1,57 +1,53 @@
1
- <!-- source-hash: 5af3dcf0725a92a044da20c82a01d47a -->
2
- A React context menu component that provides standard file management operations like download, copy, rename, cut, and delete for file manager interfaces.
1
+ <!-- source-hash: 2011101ea13458a40241b85da0182863 -->
2
+ Context menu component for file manager operations, rendering a dropdown with context-sensitive actions based on file type and selection state.
3
3
 
4
4
  ## Key Components
5
5
 
6
- - **FileManagerContextMenu**: Main component that renders a dropdown menu with file operation actions
7
- - **menuItems**: Configuration array defining available actions with icons, labels, and visibility conditions
8
- - **Props Interface**: Accepts `FileManagerContextMenuProps` for customization and event handling
6
+ **`FileManagerContextMenu`** Main exported component that wraps a `DropdownMenu` with file-specific actions.
9
7
 
10
- ## Features
8
+ **Menu Actions** (conditionally shown):
11
9
 
12
- - **Dynamic Actions**: Shows/hides menu items based on file type and selection state
13
- - **Event Prevention**: Prevents menu clicks from bubbling up to parent elements
14
- - **Custom Trigger**: Supports custom trigger elements or defaults to a "more" icon button
15
- - **Conditional Rendering**: Filters menu items based on context (single file vs. multiple selection)
16
- - **Keyboard Accessible**: Built on shadcn/ui dropdown components with proper ARIA support
10
+ | Action | Icon | Condition |
11
+ |--------|------|-----------|
12
+ | `download` | `Download` | File type or has selection |
13
+ | `copy` | `Copy` | Always visible |
14
+ | `rename` | `Edit2` | Single item only (no selection) |
15
+ | `cut` | `Scissors` | Always visible |
16
+ | `delete` | `Trash2` | Always visible (with separator) |
17
+
18
+ **Props** (`FileManagerContextMenuProps`):
19
+
20
+ | Prop | Description |
21
+ |------|-------------|
22
+ | `open` / `onOpenChange` | Controlled open state |
23
+ | `onAction` | Callback receiving the action key |
24
+ | `fileType` | `'file'` or `'folder'` — affects available actions |
25
+ | `hasSelection` | Hides `rename`, shows `download` for multi-select |
26
+ | `trigger` | Optional custom trigger element |
27
+ | `className` | Additional classes for the dropdown content |
17
28
 
18
29
  ## Usage Example
19
30
 
20
31
  ```typescript
21
32
  import { FileManagerContextMenu } from './file-manager-context-menu'
22
33
 
23
- function FileItem({ file, isSelected }) {
24
- const [menuOpen, setMenuOpen] = useState(false)
25
-
26
- const handleAction = (action: string) => {
27
- switch (action) {
28
- case 'download':
29
- downloadFile(file)
30
- break
31
- case 'copy':
32
- copyToClipboard(file)
33
- break
34
- case 'rename':
35
- setRenaming(true)
36
- break
37
- case 'delete':
38
- deleteFile(file)
39
- break
40
- }
41
- setMenuOpen(false)
42
- }
34
+ function FileRow({ file }) {
35
+ const [menuOpen, setMenuOpen] = React.useState(false)
43
36
 
44
37
  return (
45
- <div className="file-item">
46
- <span>{file.name}</span>
47
- <FileManagerContextMenu
48
- open={menuOpen}
49
- onOpenChange={setMenuOpen}
50
- onAction={handleAction}
51
- fileType={file.type}
52
- hasSelection={isSelected}
53
- />
54
- </div>
38
+ <FileManagerContextMenu
39
+ open={menuOpen}
40
+ onOpenChange={setMenuOpen}
41
+ fileType="file"
42
+ hasSelection={false}
43
+ onAction={(action) => {
44
+ if (action === 'delete') deleteFile(file.id)
45
+ if (action === 'rename') startRename(file.id)
46
+ if (action === 'download') downloadFile(file.id)
47
+ }}
48
+ />
55
49
  )
56
50
  }
57
- ```
51
+ ```
52
+
53
+ > The default trigger renders a `MoreHorizontal` icon button. Pass a custom `trigger` element to replace it. Click events use `stopPropagation` to prevent row selection conflicts.
@@ -1,48 +1,35 @@
1
- <!-- source-hash: fc258d7342679da38471b42800515f84 -->
2
- A React component that displays an empty state UI for file manager interfaces when no files or folders are present.
1
+ <!-- source-hash: fd21e114568a67d1874d4692f7a1d514 -->
2
+ Empty state component for the File Manager UI, displaying a centered message with an icon when a folder contains no files or folders.
3
3
 
4
4
  ## Key Components
5
5
 
6
- - **FileManagerEmpty** - Main component that renders an empty state with icon, message, description, and optional action button
7
- - **Props Interface** - Uses `FileManagerEmptyProps` type for component configuration including custom messages and actions
8
- - **Styling** - Uses CSS utility classes with ODS (design system) tokens for consistent theming
9
- - **Icon Integration** - Leverages Lucide React's `FolderOpen` icon for visual context
6
+ - **`FileManagerEmpty`** React component that renders a centered empty state with a folder icon, heading, description text, and an optional action button
7
+
8
+ ### Props (`FileManagerEmptyProps`)
9
+
10
+ | Prop | Default | Description |
11
+ |------|---------|-------------|
12
+ | `message` | `'No files or folders found'` | Primary heading text |
13
+ | `description` | `'This folder is empty...'` | Secondary descriptive text |
14
+ | `action` | `undefined` | Optional `{ label, onClick }` to render a call-to-action button |
15
+ | `className` | `undefined` | Additional CSS classes for the wrapper |
10
16
 
11
17
  ## Usage Example
12
18
 
13
19
  ```typescript
14
20
  import { FileManagerEmpty } from './file-manager-empty'
15
21
 
16
- function FileExplorer() {
17
- const handleCreateFolder = () => {
18
- // Logic to create new folder
19
- console.log('Creating new folder...')
20
- }
21
-
22
- return (
23
- <div className="file-explorer">
24
- <FileManagerEmpty
25
- message="No documents found"
26
- description="Upload your first document or create a new folder to organize your files."
27
- action={{
28
- label: "Create Folder",
29
- onClick: handleCreateFolder
30
- }}
31
- className="min-h-96"
32
- />
33
- </div>
34
- )
35
- }
36
-
37
- // Basic usage without action button
38
- function SimpleEmpty() {
39
- return (
40
- <FileManagerEmpty
41
- message="Folder is empty"
42
- description="No files have been uploaded to this location yet."
43
- />
44
- )
45
- }
46
- ```
47
-
48
- The component provides a user-friendly empty state that guides users toward taking action, with customizable messaging and optional call-to-action buttons for improved user experience.
22
+ // Basic usage
23
+ <FileManagerEmpty />
24
+
25
+ // With custom message and action
26
+ <FileManagerEmpty
27
+ message="No documents yet"
28
+ description="Upload your first document to get started."
29
+ action={{
30
+ label: 'Upload File',
31
+ onClick: () => openUploadDialog()
32
+ }}
33
+ className="min-h-[400px]"
34
+ />
35
+ ```
@@ -1,49 +1,41 @@
1
- <!-- source-hash: 1d6639c72f3e41028b5b7f00d97ee6f4 -->
2
- A React component that renders a single row in a file manager table interface, displaying file/folder information with interactive capabilities like selection, context menus, and navigation.
1
+ <!-- source-hash: 0825a14a4aea648af8873376f22c05eb -->
2
+ A single table row component for the File Manager UI, rendering file/folder metadata with interactive selection, context menus, and navigation controls.
3
3
 
4
4
  ## Key Components
5
5
 
6
- - **FileManagerTableRow**: Main component that renders file/folder data in a table row format
7
- - **Interactive Elements**: Checkbox for selection, context menu button, and folder navigation chevron
8
- - **File Information Display**: Shows file icon, name, optional path, size, and modification date
9
- - **Event Handlers**: Manages clicks, double-clicks, context menu actions, and selection state
6
+ ### `FileManagerTableRow`
7
+ The primary exported component that renders a horizontal row displaying:
8
+ - **Checkbox** optional selection toggle (guarded with `data-no-row-click`)
9
+ - **FileIcon** type/extension-aware icon with file name and optional path
10
+ - **Metadata columns** — file size and last modified date
11
+ - **Action controls** — `MoreHorizontal` context menu button (visible on hover) and a `ChevronRight` navigate-into button for folders
10
12
 
11
- ## Usage Example
12
-
13
- ```typescript
14
- import { FileManagerTableRow } from './file-manager-table-row'
13
+ ## Key Behaviors
15
14
 
16
- function FileList() {
17
- const [selectedFiles, setSelectedFiles] = useState<string[]>([])
15
+ | Behavior | Detail |
16
+ |---|---|
17
+ | `data-no-row-click` | Prevents checkbox and action buttons from bubbling clicks to the row handler |
18
+ | Context menu | Managed via `contextMenuOpen` state; closes automatically after an action |
19
+ | Folder vs file | Renders `ChevronRight` nav button for folders; renders an empty spacer `div` for files to preserve alignment |
20
+ | File extension | Parsed from `file.name` for files; `undefined` for folders |
18
21
 
19
- const handleFileSelect = (fileId: string, checked: boolean) => {
20
- if (checked) {
21
- setSelectedFiles(prev => [...prev, fileId])
22
- } else {
23
- setSelectedFiles(prev => prev.filter(id => id !== fileId))
24
- }
25
- }
22
+ ## Usage Example
26
23
 
27
- return (
28
- <div>
29
- <FileManagerTableRow
30
- file={{
31
- id: '1',
32
- name: 'document.pdf',
33
- type: 'file',
34
- size: '2.4 MB',
35
- modified: '2024-01-15'
36
- }}
37
- isSelected={selectedFiles.includes('1')}
38
- showCheckbox={true}
39
- showPath={false}
40
- onSelect={(checked) => handleFileSelect('1', checked)}
41
- onClick={() => console.log('File clicked')}
42
- onDoubleClick={() => console.log('File opened')}
43
- onContextMenu={(e) => console.log('Context menu')}
44
- onActionClick={(action) => console.log('Action:', action)}
45
- />
46
- </div>
47
- )
48
- }
24
+ ```typescript
25
+ <FileManagerTableRow
26
+ file={{
27
+ name: 'report.pdf',
28
+ type: 'file',
29
+ size: '2.4 MB',
30
+ modified: 'Jan 15, 2025',
31
+ path: '/documents/reports/report.pdf',
32
+ }}
33
+ isSelected={false}
34
+ showCheckbox={true}
35
+ showPath={true}
36
+ onSelect={(checked) => handleSelect(fileId, checked)}
37
+ onClick={() => handlePreview(file)}
38
+ onDoubleClick={() => handleOpen(file)}
39
+ onActionClick={(action) => handleFileAction(file, action)}
40
+ />
49
41
  ```
@@ -1,48 +1,52 @@
1
- <!-- source-hash: cfac1940c87a5497a0a75aa2796c2ab9 -->
2
- A comprehensive file manager component that provides a complete file browser interface with navigation, search, and file operations capabilities.
1
+ <!-- source-hash: 1ed33038349c92c3847f382acdaaf4c5 -->
2
+ A client-side React component that renders a full-featured file manager UI, combining breadcrumb navigation, an action bar, search input, and a file table into a single composable interface.
3
3
 
4
4
  ## Key Components
5
5
 
6
- - **FileManager** - Main component that orchestrates the file management interface
7
- - **Breadcrumb Navigation** - Cross-platform path handling (Windows/Unix) with clickable navigation
8
- - **Search Integration** - Built-in search bar with loading states and result counts
9
- - **File Operations** - Action bar with copy, cut, paste, upload, and new folder actions
10
- - **File Table** - Displays files with selection checkboxes and interactive operations
11
- - **Path Management** - Intelligent path handling for both Windows (`C:\path`) and Unix (`/path`) file systems
6
+ - **`FileManager`** Main exported component that orchestrates all sub-components
7
+ - **`breadcrumbItems`** (`useMemo`) Derives structured breadcrumb items from `currentPath`, handling both Unix (`/`) and Windows (`\`, drive letters) path formats
8
+ - **`handleFolderOpen`** Constructs the new navigation path when a folder is opened, respecting path separator conventions
9
+ - **`handleBreadcrumbClick`** Calls both `onBreadcrumbClick` and `onNavigate` callbacks on breadcrumb interaction
10
+ - **Sub-components used:** `FileManagerBreadcrumb`, `FileManagerActionBar`, `FileManagerTable`, `Input`
11
+
12
+ ## Key Props
13
+
14
+ | Prop | Type | Description |
15
+ |------|------|-------------|
16
+ | `files` | `FileItem[]` | List of files/folders to display |
17
+ | `currentPath` | `string` | Active directory path (Unix or Windows) |
18
+ | `selectedFiles` | `string[]` | Array of selected file IDs |
19
+ | `showCheckboxes` | `boolean` | Toggle selection checkboxes (default: `true`) |
20
+ | `showSearch` | `boolean` | Toggle search input (default: `true`) |
21
+ | `showActions` | `boolean` | Toggle action bar (default: `true`) |
22
+ | `canPaste` | `boolean` | Enables paste action in action bar |
23
+ | `onNavigate` | `(path: string) => void` | Called on folder open or breadcrumb click |
24
+ | `onFileAction` | `(action: string) => void` | Handles copy, cut, paste, upload, new-folder |
12
25
 
13
26
  ## Usage Example
14
27
 
15
28
  ```typescript
16
29
  import { FileManager } from './file-manager'
17
30
 
18
- function App() {
19
- const [files, setFiles] = useState([])
20
- const [selectedFiles, setSelectedFiles] = useState<string[]>([])
21
- const [currentPath, setCurrentPath] = useState('')
31
+ function MyFileBrowser() {
32
+ const [currentPath, setCurrentPath] = useState('/')
33
+ const [selected, setSelected] = useState<string[]>([])
22
34
 
23
35
  return (
24
36
  <FileManager
25
- files={files}
37
+ files={fileList}
26
38
  currentPath={currentPath}
27
- selectedFiles={selectedFiles}
39
+ selectedFiles={selected}
28
40
  searchQuery=""
29
- onNavigate={(path) => setCurrentPath(path)}
30
- onSelectFile={(fileId, selected) => {
31
- if (selected) {
32
- setSelectedFiles(prev => [...prev, fileId])
33
- } else {
34
- setSelectedFiles(prev => prev.filter(id => id !== fileId))
35
- }
36
- }}
37
- onFileAction={(action) => {
38
- console.log('File action:', action)
39
- }}
40
- onSearch={(query) => {
41
- // Implement search logic
42
- }}
41
+ onNavigate={setCurrentPath}
42
+ onSelectFile={(id, checked) =>
43
+ setSelected(prev =>
44
+ checked ? [...prev, id] : prev.filter(f => f !== id)
45
+ )
46
+ }
47
+ onSelectAll={(all) => setSelected(all ? fileList.map(f => f.id) : [])}
48
+ onFileAction={(action) => console.log('Action:', action)}
43
49
  />
44
50
  )
45
51
  }
46
- ```
47
-
48
- The component automatically generates breadcrumb navigation from the current path and handles both Windows drive letters and Unix-style paths. It provides a complete file management experience with customizable visibility for search, actions, and checkboxes.
52
+ ```