@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,36 @@
1
+ <!-- source-hash: 735975f25b78a4907321d619b6aaa5d8 -->
2
+ Storybook stories for the `DotsLoaderIcon` component, covering size variants, ODS color token usage, color inheritance, and in-context card placement.
3
+
4
+ ## Key Components
5
+
6
+ | Story | Description |
7
+ |---|---|
8
+ | `Default` | 24px icon inheriting text color via `currentColor` |
9
+ | `Large` | 64px icon for full-page or blocking loading states |
10
+ | `InheritsTextColor` | Demonstrates `currentColor` inheriting from a parent ODS text class |
11
+ | `OdsColors` | Showcases explicit ODS token colors (`--ods-text-primary`, `--ods-accent`, `--ods-error`, etc.) |
12
+ | `Sizes` | Full size scale from 16px to 96px |
13
+ | `InCard` | Icon centered inside an ODS-styled card for inline loading context |
14
+
15
+ ## Usage Example
16
+
17
+ ```typescript
18
+ import { DotsLoaderIcon } from '../components/icons-v2-generated/loaders/dots-loader-icon';
19
+
20
+ // Default — inherits surrounding text color
21
+ <DotsLoaderIcon size={24} />
22
+
23
+ // Explicit ODS color token — never hardcode hex values
24
+ <DotsLoaderIcon size={40} color="var(--ods-accent)" />
25
+
26
+ // Inherit from parent text color class
27
+ <div className="text-ods-accent">
28
+ <DotsLoaderIcon size={40} />
29
+ </div>
30
+ ```
31
+
32
+ ## Notes
33
+
34
+ - Animation is driven by an infinite SMIL chain on the three dots — no CSS keyframes required.
35
+ - Always prefer ODS design tokens (e.g. `var(--ods-accent)`) over hardcoded hex values for the `color` prop.
36
+ - The `size` prop accepts numbers between `12` and `128` (step `4`).
@@ -0,0 +1,58 @@
1
+ <!-- source-hash: df41a32c852e3d01e5a937d8567445ad -->
2
+ Storybook stories for the `Drawer` UI component, demonstrating all supported slide-in directions, footer usage, and scrollable content scenarios.
3
+
4
+ ## Key Components
5
+
6
+ | Story | Description |
7
+ |-------|-------------|
8
+ | `Right` | Drawer sliding in from the right edge |
9
+ | `Left` | Drawer sliding in from the left edge |
10
+ | `Top` | Drawer sliding in from the top edge |
11
+ | `Bottom` | Drawer sliding in from the bottom edge |
12
+ | `AllSides` | Interactive demo toggling all four `DrawerSide` directions from a single view |
13
+ | `WithFooter` | Drawer with `DrawerFooter` containing Cancel/Confirm actions |
14
+ | `LongContent` | Drawer with 20 scrollable items to validate overflow/scroll behavior |
15
+
16
+ **Drawer sub-components used:** `DrawerContent`, `DrawerHeader`, `DrawerTitle`, `DrawerDescription`, `DrawerBody`, `DrawerFooter`
17
+
18
+ ## Usage Example
19
+
20
+ ```typescript
21
+ import { useState } from 'react'
22
+ import { Button } from '../components/ui/button'
23
+ import {
24
+ Drawer,
25
+ DrawerBody,
26
+ DrawerContent,
27
+ DrawerFooter,
28
+ DrawerHeader,
29
+ DrawerTitle,
30
+ DrawerDescription,
31
+ } from '../components/ui/drawer'
32
+
33
+ function MyDrawer() {
34
+ const [open, setOpen] = useState(false)
35
+
36
+ return (
37
+ <Drawer open={open} onOpenChange={setOpen}>
38
+ <Button variant="outline" onClick={() => setOpen(true)}>
39
+ Open
40
+ </Button>
41
+ <DrawerContent side="right">
42
+ <DrawerHeader>
43
+ <DrawerTitle>Settings</DrawerTitle>
44
+ <DrawerDescription>Manage your preferences.</DrawerDescription>
45
+ </DrawerHeader>
46
+ <DrawerBody>
47
+ <p>Content here.</p>
48
+ </DrawerBody>
49
+ <DrawerFooter>
50
+ <Button variant="accent" onClick={() => setOpen(false)}>Save</Button>
51
+ </DrawerFooter>
52
+ </DrawerContent>
53
+ </Drawer>
54
+ )
55
+ }
56
+ ```
57
+
58
+ The `side` prop on `DrawerContent` accepts `"right" | "left" | "top" | "bottom"`, defaulting to `"right"` when omitted.
@@ -0,0 +1,41 @@
1
+ <!-- source-hash: 928a4aa8278d9b5dca88c4e94782c25c -->
2
+ Storybook stories for the `EmbeddableChat` component, covering three chat surface configurations: Guide-only, Mingo-only, and dual-mode (both transports enabled with a toggle).
3
+
4
+ ## Key Components
5
+
6
+ | Export | Type | Description |
7
+ |--------|------|-------------|
8
+ | `GuideOnly` | `Story` | Legacy single-mode Guide consumer matching `multi-platform-hub` mount pattern |
9
+ | `MingoOnly` | `Story` | NATS agent transport surface with no mode toggle |
10
+ | `BothModes` | `Story` | Dual-mode consumer with segmented Guide/Mingo header toggle |
11
+ | `StoryShell` | Decorator | Wraps stories with `QueryClientProvider` + `ChatRuntimeContext` + canvas background |
12
+ | `createMockRuntime()` | Helper | Returns a `ChatRuntime` with stub endpoints (all `/__story__/*`) |
13
+ | `createMockMingoConfig()` | Helper | Returns a `UseNatsChatAdapterConfig` with `getNatsWsUrl: () => null` (no WS handshake) |
14
+ | `SAMPLE_SLASH_COMMANDS` | Constant | 13 mock slash commands used to populate the empty-state chip grid |
15
+
16
+ ## Usage Example
17
+
18
+ ```typescript
19
+ // Minimal dual-mode story using the same pattern as BothModes
20
+ export const MyStory: Story = {
21
+ render: (args) => (
22
+ <EmbeddableChat
23
+ {...args}
24
+ modes={{
25
+ guide: {},
26
+ mingo: createMockMingoConfig(),
27
+ }}
28
+ defaultActiveMode="mingo"
29
+ defaultOpen
30
+ showInternalTrigger={false}
31
+ />
32
+ ),
33
+ args: {},
34
+ }
35
+ ```
36
+
37
+ ## Notes
38
+
39
+ - The `window.fetch` shim is installed **at module level** (not inside an effect) so the mock is in place before `EmbeddableChat`'s `useEffect` fires. A `__embeddableChatStoriesMockInstalled__` flag prevents double-patching across hot reloads.
40
+ - All story endpoints resolve to `/__story__/*` — accidental real fetches return 404, not real server data.
41
+ - `getNatsWsUrl: () => null` keeps the NATS dialog subscription idle in all stories.
@@ -0,0 +1,41 @@
1
+ <!-- source-hash: 5c554e5f85ea796af4b31616f108e4eb -->
2
+ Storybook stories for the `FileManager` UI component, covering rendering states, navigation paths, selection, search, and UI configuration variants.
3
+
4
+ ## Key Components
5
+
6
+ - **`meta`** — Storybook metadata registering the component under `UI/FileManager` with default args (sample files, mock handlers via `fn()`) and argType controls for boolean/text props
7
+ - **`sampleFiles`** — Shared fixture array of `FileItem` objects (folders + files) used across stories
8
+ - **Story exports** — Individual named story objects, each overriding specific args to isolate a scenario
9
+
10
+ ## Stories
11
+
12
+ | Story | Description |
13
+ |---|---|
14
+ | `Default` | Root path with mixed files and folders |
15
+ | `NestedPath` | Deep breadcrumb path (`/Documents/Projects/my-app`) |
16
+ | `WithSelection` | Two files selected, enabling copy/cut actions |
17
+ | `WithPasteAvailable` | Clipboard paste action enabled |
18
+ | `Loading` | Skeleton/spinner state while fetching contents |
19
+ | `Searching` | Active search query with filtered results |
20
+ | `SearchInProgress` | Search spinner while results load |
21
+ | `EmptyDirectory` | No files present in current path |
22
+ | `MinimalUI` | No search bar, action bar, or checkboxes |
23
+ | `WindowsPath` | Windows-style `C:\Users\...` path handling |
24
+
25
+ ## Usage Example
26
+
27
+ ```typescript
28
+ import { FileManager } from '../components/ui/file-manager/file-manager';
29
+
30
+ <FileManager
31
+ files={sampleFiles}
32
+ currentPath="/"
33
+ selectedFiles={[]}
34
+ onNavigate={(path) => console.log('navigate', path)}
35
+ onSelectFile={(id) => console.log('select', id)}
36
+ onFolderOpen={(item) => console.log('open', item)}
37
+ showSearch
38
+ showActions
39
+ showCheckboxes
40
+ />
41
+ ```
@@ -0,0 +1,38 @@
1
+ <!-- source-hash: aef805784aca574d32a20c120db03cdb -->
2
+ Storybook stories for the `FileManagerActionBar` component, covering default, selection, clipboard, and fully-enabled interaction states.
3
+
4
+ ## Key Components
5
+
6
+ | Export | Type | Description |
7
+ |--------|------|-------------|
8
+ | `meta` | `Meta` | Storybook metadata — registers component under `UI/FileManagerActionBar` with mocked action handlers |
9
+ | `Default` | `Story` | No selection, no clipboard content; Copy, Cut, and Paste disabled |
10
+ | `WithSelection` | `Story` | `hasSelection: true` — Copy and Cut buttons become active |
11
+ | `WithPasteAvailable` | `Story` | `canPaste: true` — Paste button becomes active |
12
+ | `AllEnabled` | `Story` | Both `hasSelection` and `canPaste` set — all action buttons enabled |
13
+
14
+ ## Usage Example
15
+
16
+ ```typescript
17
+ // Render the AllEnabled story in a test or custom harness
18
+ import { AllEnabled } from './FileManagerActionBar.stories';
19
+
20
+ <AllEnabled.component
21
+ {...AllEnabled.args}
22
+ onCopy={() => console.log('copy')}
23
+ onCut={() => console.log('cut')}
24
+ onPaste={() => console.log('paste')}
25
+ onNewFolder={() => console.log('new folder')}
26
+ onUpload={() => console.log('upload')}
27
+ onSelectAll={() => console.log('select all')}
28
+ />
29
+ ```
30
+
31
+ ## Controlled Props
32
+
33
+ | Prop | Control | Effect |
34
+ |------|---------|--------|
35
+ | `hasSelection` | `boolean` | Enables Copy and Cut actions |
36
+ | `canPaste` | `boolean` | Enables Paste action |
37
+
38
+ All handler props (`onNewFolder`, `onCopy`, `onCut`, `onPaste`, `onUpload`, `onSelectAll`) are wired to Storybook `fn()` spies, making interaction events visible in the **Actions** panel during development.
@@ -0,0 +1,53 @@
1
+ <!-- source-hash: bbf76fcab5ddf0e39246fdc2d4fe5d17 -->
2
+ Storybook stories for the `FileUpload` UI component, showcasing drag-and-drop file upload variants including label, multi-file, image-only, interactive state management, and disabled states.
3
+
4
+ ## Key Components
5
+
6
+ | Story | Description |
7
+ |-------|-------------|
8
+ | `Default` | Basic dropzone with no additional configuration |
9
+ | `WithLabel` | Dropzone with a field label (`Attachments`) |
10
+ | `Multiple` | Multi-file upload with custom label and description |
11
+ | `ImagesOnly` | Restricted to `image/*` MIME types |
12
+ | `Interactive` | Stateful render with live file count display |
13
+ | `Disabled` | Non-interactive disabled dropzone |
14
+
15
+ ## Usage Example
16
+
17
+ ```typescript
18
+ // Basic usage
19
+ <FileUpload onChange={(files) => console.log(files)} />
20
+
21
+ // Multi-file with label
22
+ <FileUpload
23
+ multiple
24
+ fieldLabel="Attachments"
25
+ label="Upload Files"
26
+ description="(Click Here or Drag and Drop)"
27
+ onChange={(files) => handleFiles(files)}
28
+ />
29
+
30
+ // Images only
31
+ <FileUpload
32
+ accept="image/*"
33
+ label="Upload Images"
34
+ description="PNG, JPEG, WebP only"
35
+ onChange={(files) => handleImages(files)}
36
+ />
37
+
38
+ // Controlled (stateful)
39
+ const [files, setFiles] = useState<File[]>([]);
40
+ <FileUpload
41
+ value={files}
42
+ onChange={(f) => setFiles(f as File[] || [])}
43
+ multiple
44
+ fieldLabel="Upload Files"
45
+ />
46
+ ```
47
+
48
+ ## Notes
49
+
50
+ - All stories are wrapped in a `500px` container via a shared decorator for consistent layout.
51
+ - The `Interactive` story demonstrates controlled usage with `useState`, reflecting selected file count below the dropzone.
52
+ - `accept` prop follows standard MIME type syntax (e.g. `"image/*"`).
53
+ - `autodocs` tag enables automatic Storybook documentation generation.
@@ -0,0 +1,54 @@
1
+ <!-- source-hash: 488942b1b8a347ad8c23f81bddec013a -->
2
+ Storybook stories for the `FilterList` UI component, covering multi-select, single-select, disabled items, item states, and long title truncation behaviors.
3
+
4
+ ## Key Components
5
+
6
+ | Export | Type | Description |
7
+ |--------|------|-------------|
8
+ | `Default` | `Story` | Multi-select list with pre-selected item |
9
+ | `SingleSelect` | `Story` | Single-selection mode (`multiple: false`) |
10
+ | `NoMeta` | `Story` | Items rendered with title only, no meta values |
11
+ | `WithDisabledItem` | `Story` | List with one individually disabled row |
12
+ | `ItemStates` | `StoryObj` | Side-by-side `FilterListItem` in default and selected states |
13
+ | `LongTitles` | `Story` | Validates ellipsis truncation on long titles |
14
+
15
+ ## Usage Example
16
+
17
+ ```typescript
18
+ import { FilterList } from '../components/ui/filter-list';
19
+ import { useState } from 'react';
20
+
21
+ const items = [
22
+ { id: '1', title: 'Acme Corporation', meta: ['Technology', '100 devices'] },
23
+ { id: '2', title: 'Globex Inc.', meta: ['Finance', '245 devices'] },
24
+ { id: '3', title: 'Initech', meta: ['Consulting', '58 devices'], disabled: true },
25
+ ];
26
+
27
+ export function OrgFilter() {
28
+ const [selected, setSelected] = useState<string[]>(['1']);
29
+
30
+ return (
31
+ <FilterList
32
+ items={items}
33
+ selectedIds={selected}
34
+ onChange={setSelected}
35
+ multiple={false} // omit for multi-select (default)
36
+ />
37
+ );
38
+ }
39
+ ```
40
+
41
+ ## Story Variants
42
+
43
+ ```mermaid
44
+ graph TD
45
+ FilterList["FilterList Stories"]
46
+ FilterList --> Default["Default (multi-select)"]
47
+ FilterList --> SingleSelect["SingleSelect (one active)"]
48
+ FilterList --> NoMeta["NoMeta (title only)"]
49
+ FilterList --> WithDisabledItem["WithDisabledItem"]
50
+ FilterList --> ItemStates["ItemStates (FilterListItem)"]
51
+ FilterList --> LongTitles["LongTitles (truncation)"]
52
+ ```
53
+
54
+ Selected rows render with a yellow-secondary background and accent-colored meta text. Each story wraps `useState` internally so selection state is interactive inside Storybook.
@@ -0,0 +1,72 @@
1
+ <!-- source-hash: 997a920fba0072bc3666a97dfbeeae72 -->
2
+ Storybook stories for the `FilterModal` component, covering all major prop combinations including filter groups, sorting, tag key:value filters, loading states, and interactive stateful examples.
3
+
4
+ ## Key Components
5
+
6
+ ### Exported Stories
7
+
8
+ | Story | Description |
9
+ |-------|-------------|
10
+ | `Default` | Basic modal with status filter group and pre-selected filters |
11
+ | `Interactive` | Stateful example with open/close toggle and live filter count |
12
+ | `MultipleGroups` | Modal with several filter groups (statuses, types, OS) |
13
+ | `WithoutCounts` | Filter options rendered without item counts |
14
+ | `WithSorting` | Combined sort columns + filter groups |
15
+ | `SortingOnly` | Sort configuration with no filter groups |
16
+ | `InteractiveWithSorting` | Stateful sort + filter with live sort display |
17
+ | `EmptyFilters` | Filter groups present but nothing selected |
18
+ | `NoFiltersAvailable` / `FullyEmpty` | Edge cases with no options or config |
19
+ | `Loading` | Skeleton placeholder state during data fetch |
20
+ | `WithTagFilter` | Tag key:value filter section alongside regular filters |
21
+ | `TagFilterOnly` | Tag filters with no regular filter groups |
22
+ | `FullFeatured` | All features combined: sort + filters + tags |
23
+ | `InteractiveWithTags` | Fully interactive with tags, sort, and filters |
24
+
25
+ ### Key Types Used
26
+
27
+ - `FilterGroup` — group id, title, and options array (with optional counts)
28
+ - `SortConfig` — column definitions, active sort key, and direction
29
+ - `TagKeyConfig` — tag key with label and selectable values
30
+ - `TableFilters` — record mapping filter group ids to selected option ids
31
+
32
+ ## Usage Example
33
+
34
+ ```typescript
35
+ import { FilterModal, type FilterGroup, type SortConfig } from '../components/ui/filter-modal'
36
+ import type { TableFilters } from '../components/ui/table/types'
37
+
38
+ const filterGroups: FilterGroup[] = [
39
+ {
40
+ id: 'statuses',
41
+ title: 'Statuses',
42
+ options: [
43
+ { id: 'active', label: 'Active', count: 2975 },
44
+ { id: 'inactive', label: 'Inactive', count: 245 },
45
+ ],
46
+ },
47
+ ]
48
+
49
+ const sortConfig: SortConfig = {
50
+ columns: [{ key: 'name', label: 'Name' }, { key: 'date', label: 'Date' }],
51
+ sortBy: 'name',
52
+ sortDirection: 'asc',
53
+ }
54
+
55
+ function MyPage() {
56
+ const [isOpen, setIsOpen] = useState(false)
57
+ const [filters, setFilters] = useState<TableFilters>({})
58
+
59
+ return (
60
+ <FilterModal
61
+ isOpen={isOpen}
62
+ onClose={() => setIsOpen(false)}
63
+ title="Sort and Filter"
64
+ filterGroups={filterGroups}
65
+ currentFilters={filters}
66
+ onFilterChange={setFilters}
67
+ sortConfig={sortConfig}
68
+ onSort={(col, dir) => console.log(col, dir)}
69
+ />
70
+ )
71
+ }
72
+ ```
@@ -0,0 +1,57 @@
1
+ <!-- source-hash: 194f540562ec706068c7dde122366c19 -->
2
+ Storybook stories for the `FiltersDropdown` component, covering checkbox/radio sections, custom triggers, placement variants, and interactive state management.
3
+
4
+ ## Key Components
5
+
6
+ | Export | Type | Description |
7
+ |--------|------|-------------|
8
+ | `Default` | `Story` | Single checkbox section with pre-selected filters |
9
+ | `MultipleSections` | `Story` | Two checkbox sections (Status + Device Type) |
10
+ | `RadioSection` | `Story` | Single-select radio group for sort ordering |
11
+ | `WithSeparator` | `Story` | Checkbox section with a visual separator between option groups |
12
+ | `CustomTrigger` | `Story` | Replaces default text button with a custom `Button` element |
13
+ | `PlacementBottomEnd` | `Story` | Dropdown aligned to the right via `bottom-end` placement |
14
+ | `NoActiveFilters` | `Story` | Empty `currentFilters` state |
15
+ | `ManyOptions` | `Story` | Three large sections demonstrating scrollable overflow |
16
+ | `Interactive` | `Story` | Live stateful example showing applied filter feedback |
17
+
18
+ ## Usage Example
19
+
20
+ ```typescript
21
+ // Basic checkbox filter dropdown
22
+ <FiltersDropdown
23
+ triggerLabel="STATUS"
24
+ sections={[
25
+ {
26
+ id: 'status',
27
+ title: 'Status',
28
+ type: 'checkbox',
29
+ options: [
30
+ { id: 'active', label: 'Active', value: 'active', count: 2975 },
31
+ { id: 'inactive', label: 'Inactive', value: 'inactive', count: 245 },
32
+ ],
33
+ allowSelectAll: true,
34
+ },
35
+ ]}
36
+ currentFilters={{ status: ['active'] }}
37
+ onApply={(filters) => console.log(filters)}
38
+ onReset={() => console.log('reset')}
39
+ />
40
+
41
+ // Custom trigger with bottom-end placement
42
+ <FiltersDropdown
43
+ triggerElement={<Button variant="outline">Open Filters</Button>}
44
+ sections={sections}
45
+ placement="bottom-end"
46
+ onApply={handleApply}
47
+ onReset={handleReset}
48
+ />
49
+ ```
50
+
51
+ ## Configurable Args
52
+
53
+ | Arg | Control | Description |
54
+ |-----|---------|-------------|
55
+ | `triggerLabel` | `text` | Label rendered on the default trigger button |
56
+ | `placement` | `select` | `bottom-start` \| `bottom-end` \| `bottom` |
57
+ | `responsive` | `boolean` | Enables mobile-responsive behavior |
@@ -0,0 +1,48 @@
1
+ <!-- source-hash: 5344552d615a3d0d05eef4235e82937c -->
2
+ Storybook stories for the `Header` navigation component, covering dropdown behavior, SEO link visibility, and scroll auto-hide functionality.
3
+
4
+ ## Key Components
5
+
6
+ | Export | Type | Description |
7
+ |--------|------|-------------|
8
+ | `Default` | `Story` | Standard header with dropdown navigation and auto-hide enabled |
9
+ | `DropdownOpen` | `Story` | Programmatically opens the first dropdown on mount for visual regression snapshots |
10
+ | `SeoLinksAlwaysInDom` | `Story` | Live DOM inspector that counts `<a href>` anchors in the header, proving SEO crawler visibility regardless of dropdown state |
11
+ | `FixedHeader` | `Story` | Header with `autoHide: false` — remains fixed during scroll |
12
+
13
+ **Shared fixtures:**
14
+ - `flamingoLogo` — branded logo element using `FlamingoLogo` icon + DM Sans wordmark
15
+ - `baseNavigation` — three-item nav config (`OpenFrame`, `OpenMSP`, `Company`) with nested dropdown children
16
+ - `rightActions` — accent CTA button linking to `/signup`
17
+
18
+ ## Usage Example
19
+
20
+ ```typescript
21
+ import { Header } from '../components/navigation/header';
22
+ import type { HeaderConfig } from '../types/navigation';
23
+
24
+ const config: HeaderConfig = {
25
+ logo: { element: <FlamingoLogo />, href: '/' },
26
+ navigation: {
27
+ position: 'center',
28
+ items: [
29
+ {
30
+ id: 'docs',
31
+ label: 'Docs',
32
+ children: [
33
+ { id: 'getting-started', label: 'Getting Started', href: '/docs/getting-started' },
34
+ ],
35
+ },
36
+ ],
37
+ },
38
+ actions: {
39
+ right: [<Button key="cta" variant="accent" href="/signup">Start Free Trial</Button>],
40
+ },
41
+ autoHide: true,
42
+ mobile: { enabled: true, onToggle: () => {} },
43
+ };
44
+
45
+ <Header config={config} />
46
+ ```
47
+
48
+ > **SEO note:** Dropdown children are always rendered in the DOM and hidden via CSS `visibility: hidden` + `aria-hidden`, keeping all `<a href>` links crawlable without JavaScript execution.
@@ -0,0 +1,49 @@
1
+ <!-- source-hash: 3916654dd739ee2e8657ff84693270c8 -->
2
+ Storybook stories for the `ImageUploader` UI component, covering all visual states, prop variants, and an interactive upload simulation.
3
+
4
+ ## Key Components
5
+
6
+ | Export | Description |
7
+ |--------|-------------|
8
+ | `Default` | Bare uploader with no initial value |
9
+ | `AllStates` | Side-by-side grid of all four Figma states: default, hover, action, uploaded |
10
+ | `WithFieldLabel` | Uploader with an accessible label above the dropzone |
11
+ | `WithPreview` | Pre-populated image preview with remove action |
12
+ | `PreviewWithoutRemove` | Preview state with `onRemove` omitted |
13
+ | `SquareAspectRatio` | Custom `1 / 1` aspect ratio at 320px width |
14
+ | `ObjectFitContain` | Image preview using `contain` fit instead of the default `cover` |
15
+ | `Loading` | Spinner overlay on an existing preview |
16
+ | `LoadingEmpty` | Spinner overlay on the empty dropzone |
17
+ | `Disabled` / `DisabledWithPreview` | Non-interactive states |
18
+ | `WithError` | Field-level validation error message |
19
+ | `CustomCopy` | Custom label, description, accepted MIME types, and max file size |
20
+ | `Interactive` | Fully wired story using `useState` + `FileReader` to simulate real upload flow |
21
+
22
+ ## Usage Example
23
+
24
+ ```typescript
25
+ // Interactive story pattern — wire up local state to preview uploads
26
+ import { useState } from 'react';
27
+ import { ImageUploader } from '../components/ui/image-uploader';
28
+
29
+ function Demo() {
30
+ const [preview, setPreview] = useState<string | undefined>();
31
+
32
+ const handleChange = (file: File) => {
33
+ const reader = new FileReader();
34
+ reader.onload = () => setPreview(reader.result as string);
35
+ reader.readAsDataURL(file);
36
+ };
37
+
38
+ return (
39
+ <ImageUploader
40
+ value={preview}
41
+ onChange={handleChange}
42
+ onRemove={() => setPreview(undefined)}
43
+ fieldLabel="Cover image"
44
+ />
45
+ );
46
+ }
47
+ ```
48
+
49
+ > `ImageUploader` is intentionally decoupled from upload logic — it calls `onChange(file)` and the consumer owns the upload, preview URL management, and remove behaviour.
@@ -0,0 +1,54 @@
1
+ <!-- source-hash: 5b42d2668b0cbc76ddb288a5b0d0cf2b -->
2
+ Storybook stories for the `InfoCard` UI component, demonstrating various configurations including disk usage, RAM stats, copyable network values, and a multi-card grid layout.
3
+
4
+ ## Key Components
5
+
6
+ | Story | Description |
7
+ |-------|-------------|
8
+ | `DiskC` | SSD drive card with usage percentage and capacity, default progress bar |
9
+ | `DiskD` | HDD drive card with warning/critical thresholds on the progress bar |
10
+ | `PhysicalRAM` | RAM card showing DDR4 memory usage and capacity |
11
+ | `WithCopyableValues` | Network info card with copyable hostname, IPv4, and MAC fields |
12
+ | `Grid` | Three-column grid layout showcasing multiple `InfoCard` instances side by side |
13
+
14
+ ## Usage Example
15
+
16
+ ```typescript
17
+ import { InfoCard } from '../components'
18
+
19
+ // Basic disk card with progress bar
20
+ <InfoCard
21
+ data={{
22
+ title: 'C:',
23
+ subtitle: 'SSD Drive',
24
+ items: [
25
+ { label: 'Current Usage', value: '42.6%' },
26
+ { label: 'Capacity', value: '931 GB' },
27
+ ],
28
+ progress: { value: 42.6 },
29
+ }}
30
+ />
31
+
32
+ // With warning/critical thresholds
33
+ <InfoCard
34
+ data={{
35
+ title: 'D:',
36
+ progress: {
37
+ value: 62.3,
38
+ warningThreshold: 60,
39
+ criticalThreshold: 85,
40
+ },
41
+ items: [{ label: 'Current Usage', value: '62.3%' }],
42
+ }}
43
+ />
44
+
45
+ // With copyable values
46
+ <InfoCard
47
+ data={{
48
+ title: 'Network',
49
+ items: [
50
+ { label: 'IPv4', value: '192.168.1.100', copyable: true },
51
+ ],
52
+ }}
53
+ />
54
+ ```