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

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (746) hide show
  1. package/dist/{chunk-35XIT2CF.cjs → chunk-2G3NXF6J.cjs} +17 -17
  2. package/dist/{chunk-35XIT2CF.cjs.map → chunk-2G3NXF6J.cjs.map} +1 -1
  3. package/dist/{chunk-IK2X5YJU.js → chunk-7PCP7YQR.js} +2 -2
  4. package/dist/{chunk-ZDF6F7ED.cjs → chunk-D4MNFY67.cjs} +4 -3
  5. package/dist/chunk-D4MNFY67.cjs.map +1 -0
  6. package/dist/{chunk-OTKJASSX.cjs → chunk-NGFP4RVL.cjs} +24 -24
  7. package/dist/{chunk-OTKJASSX.cjs.map → chunk-NGFP4RVL.cjs.map} +1 -1
  8. package/dist/{chunk-3JWIJJ44.js → chunk-R6MLPU4A.js} +2 -2
  9. package/dist/{chunk-ZTJVRSN5.js → chunk-WQZP3JIZ.js} +4 -3
  10. package/dist/chunk-WQZP3JIZ.js.map +1 -0
  11. package/dist/components/chat/index.cjs +2 -2
  12. package/dist/components/chat/index.js +1 -1
  13. package/dist/components/contact/index.cjs +3 -3
  14. package/dist/components/contact/index.js +2 -2
  15. package/dist/components/features/index.cjs +2 -2
  16. package/dist/components/features/index.js +1 -1
  17. package/dist/components/index.cjs +49 -49
  18. package/dist/components/index.js +2 -2
  19. package/dist/components/navigation/index.cjs +2 -2
  20. package/dist/components/navigation/index.js +1 -1
  21. package/dist/components/tickets/index.cjs +61 -61
  22. package/dist/components/tickets/index.js +3 -3
  23. package/dist/components/ui/index.cjs +2 -2
  24. package/dist/components/ui/index.js +1 -1
  25. package/dist/index.cjs +2 -2
  26. package/dist/index.js +1 -1
  27. package/package.json +1 -1
  28. package/src/.index.md +36 -34
  29. package/src/components/.alert-dialog.md +27 -23
  30. package/src/components/.announcement-bar.md +26 -21
  31. package/src/components/.breadcrumb.md +19 -15
  32. package/src/components/.calendar.md +24 -19
  33. package/src/components/.categories-cart.md +29 -24
  34. package/src/components/.checkbox.md +23 -25
  35. package/src/components/.chevron-button.md +37 -32
  36. package/src/components/.comment-card.md +32 -62
  37. package/src/components/.dialog.md +26 -26
  38. package/src/components/.dynamic-skeleton.md +54 -57
  39. package/src/components/.empty-state.md +42 -51
  40. package/src/components/.faq-accordion.md +27 -21
  41. package/src/components/.filter-chip.md +41 -24
  42. package/src/components/.flamingo-logo.md +20 -23
  43. package/src/components/.footer-waitlist-button.md +29 -22
  44. package/src/components/.footer.md +32 -32
  45. package/src/components/.icons-block.md +27 -17
  46. package/src/components/.image-cropper.md +41 -32
  47. package/src/components/.index.md +33 -39
  48. package/src/components/.input.md +31 -35
  49. package/src/components/.logs-list.md +31 -20
  50. package/src/components/.media-carousel.md +35 -36
  51. package/src/components/.open-source-features.md +33 -16
  52. package/src/components/.pagination.md +52 -51
  53. package/src/components/.provider-button.md +21 -23
  54. package/src/components/.select.md +31 -20
  55. package/src/components/.sidebar.md +34 -24
  56. package/src/components/.smooth-accordion.md +29 -24
  57. package/src/components/.social-icon-row.md +36 -32
  58. package/src/components/.textarea.md +25 -31
  59. package/src/components/.tool-icon.md +24 -26
  60. package/src/components/.unified-filter-logic.md +37 -30
  61. package/src/components/.unified-pagination.md +23 -22
  62. package/src/components/.user-summary-stub.md +38 -22
  63. package/src/components/.vendor-display-button.md +25 -25
  64. package/src/components/.vendor-icon.md +33 -25
  65. package/src/components/.why-it-matters.md +28 -25
  66. package/src/components/chat/.approval-batch-message.md +51 -0
  67. package/src/components/chat/.approval-request-message.md +35 -34
  68. package/src/components/chat/.chat-attachment-bar.md +64 -0
  69. package/src/components/chat/.chat-container.md +36 -18
  70. package/src/components/chat/.chat-input.md +37 -20
  71. package/src/components/chat/.chat-message-enhanced.md +30 -49
  72. package/src/components/chat/.chat-message-list.md +45 -32
  73. package/src/components/chat/.chat-message-skeleton.md +26 -22
  74. package/src/components/chat/.chat-panel-context.md +52 -0
  75. package/src/components/chat/.chat-ref.types.md +42 -0
  76. package/src/components/chat/.chat-sidebar-skeleton.md +34 -25
  77. package/src/components/chat/.chat-sidebar.md +31 -26
  78. package/src/components/chat/.chat-ticket-list.md +39 -0
  79. package/src/components/chat/.context-compaction-display.md +36 -0
  80. package/src/components/chat/.cycling-phrase.md +52 -0
  81. package/src/components/chat/.embeddable-chat.md +48 -0
  82. package/src/components/chat/.expand-chevron.md +24 -0
  83. package/src/components/chat/.index.md +31 -35
  84. package/src/components/chat/.mingo-onboarding-card-skeleton.md +44 -0
  85. package/src/components/chat/.mingo-onboarding-card.md +62 -0
  86. package/src/components/chat/.model-display.md +32 -30
  87. package/src/components/chat/.nav-link-anchor-via-runtime.md +40 -0
  88. package/src/components/chat/.remark-card-links.md +38 -0
  89. package/src/components/chat/.slash-command-suggestions.md +47 -0
  90. package/src/components/chat/.source-action-button.md +48 -0
  91. package/src/components/chat/.thinking-display.md +42 -0
  92. package/src/components/chat/.tool-call-blocks.md +45 -0
  93. package/src/components/chat/.tool-execution-display.md +44 -36
  94. package/src/components/chat/chat-container.tsx +1 -1
  95. package/src/components/chat/entity-cards/.admin-content-card.md +43 -0
  96. package/src/components/chat/entity-cards/.block-card.md +47 -0
  97. package/src/components/chat/entity-cards/.blog-card.md +52 -0
  98. package/src/components/chat/entity-cards/.blog-image-placeholder.md +39 -0
  99. package/src/components/chat/entity-cards/.campaign-card-admin.md +47 -0
  100. package/src/components/chat/entity-cards/.case-study-card.md +58 -0
  101. package/src/components/chat/entity-cards/.chat-ticket-item.md +40 -0
  102. package/src/components/chat/entity-cards/.chat-video-entity-card.md +43 -0
  103. package/src/components/chat/entity-cards/.customer-interview-card.md +53 -0
  104. package/src/components/chat/entity-cards/.data-room-doc-card.md +47 -0
  105. package/src/components/chat/entity-cards/.dispatch.md +39 -0
  106. package/src/components/chat/entity-cards/.entity-author-card.md +51 -0
  107. package/src/components/chat/entity-cards/.generic-entity-card.md +62 -0
  108. package/src/components/chat/entity-cards/.github-activity-card.md +61 -0
  109. package/src/components/chat/entity-cards/.hubspot-ticket-card.md +53 -0
  110. package/src/components/chat/entity-cards/.index.md +66 -0
  111. package/src/components/chat/entity-cards/.investor-update-card.md +47 -0
  112. package/src/components/chat/entity-cards/.onboarding-guide-card.md +58 -0
  113. package/src/components/chat/entity-cards/.product-release-card-defaults.md +31 -0
  114. package/src/components/chat/entity-cards/.product-release-card.md +29 -0
  115. package/src/components/chat/entity-cards/.program-card-defaults.md +41 -0
  116. package/src/components/chat/entity-cards/.program-card.md +59 -0
  117. package/src/components/chat/entity-cards/.roadmap-card.md +46 -0
  118. package/src/components/chat/entity-cards/.roadmap-vote-button.md +52 -0
  119. package/src/components/chat/entity-cards/.slack-message-card.md +48 -0
  120. package/src/components/chat/entity-cards/.task-type-icon.md +47 -0
  121. package/src/components/chat/hooks/.index.md +36 -21
  122. package/src/components/chat/hooks/.use-chat-attachment-image-gallery.md +51 -0
  123. package/src/components/chat/hooks/.use-chat-attachments.md +48 -0
  124. package/src/components/chat/hooks/.use-chat-card-item.md +39 -0
  125. package/src/components/chat/hooks/.use-chat-identity.md +45 -0
  126. package/src/components/chat/hooks/.use-chat.md +58 -0
  127. package/src/components/chat/hooks/.use-chunk-catchup.md +46 -48
  128. package/src/components/chat/hooks/.use-close-on-navigation.md +44 -0
  129. package/src/components/chat/hooks/.use-collapsible.md +48 -0
  130. package/src/components/chat/hooks/.use-embedded-chat.md +32 -0
  131. package/src/components/chat/hooks/.use-jetstream-dialog-subscription.md +40 -0
  132. package/src/components/chat/hooks/.use-nats-chat-adapter.md +52 -0
  133. package/src/components/chat/hooks/.use-nats-dialog-subscription.md +49 -30
  134. package/src/components/chat/hooks/.use-proxied-image-url.md +40 -0
  135. package/src/components/chat/hooks/.use-realtime-chunk-processor.md +43 -40
  136. package/src/components/chat/hooks/.use-slash-commands.md +46 -0
  137. package/src/components/chat/hooks/.use-sse-chat-adapter.md +34 -0
  138. package/src/components/chat/hooks/.use-sse.md +60 -0
  139. package/src/components/chat/hooks/.use-unified-chat.md +57 -0
  140. package/src/components/chat/types/.api.types.md +52 -38
  141. package/src/components/chat/types/.chat.types.md +43 -34
  142. package/src/components/chat/types/.component.types.md +47 -48
  143. package/src/components/chat/types/.index.md +20 -27
  144. package/src/components/chat/types/.message.types.md +58 -48
  145. package/src/components/chat/types/.network.types.md +57 -31
  146. package/src/components/chat/types/.processing.types.md +49 -31
  147. package/src/components/chat/types/.unified-chat-state.types.md +41 -0
  148. package/src/components/chat/types/entities/.blog.md +43 -0
  149. package/src/components/chat/types/entities/.case-study.md +26 -0
  150. package/src/components/chat/types/entities/.content-ref.md +41 -0
  151. package/src/components/chat/types/entities/.customer-interview.md +28 -0
  152. package/src/components/chat/types/entities/.data-room-doc.md +36 -0
  153. package/src/components/chat/types/entities/.github-activity.md +43 -0
  154. package/src/components/chat/types/entities/.hubspot-ticket.md +53 -0
  155. package/src/components/chat/types/entities/.index.md +42 -0
  156. package/src/components/chat/types/entities/.investor-update.md +45 -0
  157. package/src/components/chat/types/entities/.onboarding-guide.md +50 -0
  158. package/src/components/chat/types/entities/.program-types.md +57 -0
  159. package/src/components/chat/types/entities/.roadmap-item.md +58 -0
  160. package/src/components/chat/types/entities/.slack-message.md +35 -0
  161. package/src/components/chat/utils/.agent-status-message.md +45 -0
  162. package/src/components/chat/utils/.auto-continuation-directive.md +58 -0
  163. package/src/components/chat/utils/.chat-attachment-markdown.md +54 -0
  164. package/src/components/chat/utils/.chat-authed-fetch.md +25 -0
  165. package/src/components/chat/utils/.chat-nav-resolution.md +46 -0
  166. package/src/components/chat/utils/.chat-proxy-auth-storage.md +38 -0
  167. package/src/components/chat/utils/.chip-action-class.md +34 -0
  168. package/src/components/chat/utils/.chip-styles.md +46 -0
  169. package/src/components/chat/utils/.chunk-parser.md +38 -28
  170. package/src/components/chat/utils/.clickup-task-type-utils.md +48 -0
  171. package/src/components/chat/utils/.compact-card-classes.md +62 -0
  172. package/src/components/chat/utils/.decide-new-tab.md +51 -0
  173. package/src/components/chat/utils/.external-app-urls.md +29 -0
  174. package/src/components/chat/utils/.extract-incomplete-message-state.md +25 -29
  175. package/src/components/chat/utils/.flatten-assistant-content.md +34 -0
  176. package/src/components/chat/utils/.icon-registry.md +46 -0
  177. package/src/components/chat/utils/.index.md +37 -32
  178. package/src/components/chat/utils/.is-cross-origin-url.md +35 -0
  179. package/src/components/chat/utils/.message-segment-accumulator.md +25 -34
  180. package/src/components/chat/utils/.nav-anchor-props.md +44 -0
  181. package/src/components/chat/utils/.nav-click-handler.md +47 -0
  182. package/src/components/chat/utils/.onboarding-icons.md +28 -0
  183. package/src/components/chat/utils/.process-historical-messages.md +46 -35
  184. package/src/components/chat/utils/.scroll-anchor.md +40 -0
  185. package/src/components/chat/utils/.slash-dispatch-utils.md +44 -0
  186. package/src/components/chat/utils/.source-icons.md +35 -0
  187. package/src/components/chat/utils/.source-row-cta.md +54 -0
  188. package/src/components/chat/utils/.tool-call-helpers.md +42 -0
  189. package/src/components/contact/.contact-form.md +43 -0
  190. package/src/components/contact/.index.md +27 -0
  191. package/src/components/features/.array-entry-manager.md +36 -45
  192. package/src/components/features/.changelog-manager.md +47 -21
  193. package/src/components/features/.changelog-sections-manager.md +21 -26
  194. package/src/components/features/.command-box.md +31 -28
  195. package/src/components/features/.entity-summary-editor.md +46 -0
  196. package/src/components/features/.entity-video-section.md +51 -0
  197. package/src/components/features/.figma-prototype-viewer.md +48 -29
  198. package/src/components/features/.filters-dropdown.md +33 -46
  199. package/src/components/features/.highlight-config-section.md +42 -0
  200. package/src/components/features/.highlight-generation-section.md +46 -0
  201. package/src/components/features/.highlight-video-combined-section.md +47 -0
  202. package/src/components/features/.highlight-video-preview.md +44 -0
  203. package/src/components/features/.highlight-video-section.md +47 -0
  204. package/src/components/features/.index.md +40 -66
  205. package/src/components/features/.media-gallery-manager.md +48 -38
  206. package/src/components/features/.more-about-button.md +22 -19
  207. package/src/components/features/.og-editor-preview.md +40 -36
  208. package/src/components/features/.parallax-image-showcase.md +33 -26
  209. package/src/components/features/.paths-display.md +42 -43
  210. package/src/components/features/.platform-badge.md +37 -36
  211. package/src/components/features/.platform-filter.md +23 -16
  212. package/src/components/features/.policy-configuration-panel.md +48 -56
  213. package/src/components/features/.provider-button.md +33 -36
  214. package/src/components/features/.push-button-selector.md +40 -29
  215. package/src/components/features/.release-media-manager.md +46 -31
  216. package/src/components/features/.section-selector.md +26 -31
  217. package/src/components/features/.select-button.md +35 -25
  218. package/src/components/features/.seo-editor-preview.md +41 -44
  219. package/src/components/features/.social-links-manager.md +25 -19
  220. package/src/components/features/.start-with-openframe-button.md +37 -29
  221. package/src/components/features/.status-filter-component.md +36 -20
  222. package/src/components/features/.tags-selector.md +40 -24
  223. package/src/components/features/.transcribe-and-summarize-combined-section.md +45 -0
  224. package/src/components/features/.transcribe-summarize-section.md +48 -0
  225. package/src/components/features/.transcript-summary-editor.md +53 -0
  226. package/src/components/features/.video-bites-display.md +46 -0
  227. package/src/components/features/.video-clips-section.md +41 -0
  228. package/src/components/features/.video-ratio-tabs.md +56 -0
  229. package/src/components/features/.video-source-selector.md +60 -0
  230. package/src/components/features/.video.md +44 -0
  231. package/src/components/features/.waitlist-form.md +60 -0
  232. package/src/components/features/ai-enrich/.AIEnrichButton.md +30 -27
  233. package/src/components/features/ai-enrich/.AIEnrichSection.md +46 -42
  234. package/src/components/features/board/.board-column-header.md +38 -0
  235. package/src/components/features/board/.board-column.md +43 -0
  236. package/src/components/features/board/.board.md +51 -0
  237. package/src/components/features/board/.color-utils.md +26 -0
  238. package/src/components/features/board/.index.md +56 -0
  239. package/src/components/features/board/.ticket-card-skeleton.md +38 -0
  240. package/src/components/features/board/.ticket-card.md +47 -0
  241. package/src/components/features/board/.types.md +45 -0
  242. package/src/components/features/board/.use-board-collapse.md +34 -0
  243. package/src/components/features/notifications/.index.md +57 -0
  244. package/src/components/features/notifications/.notification-drawer.md +34 -0
  245. package/src/components/features/notifications/.notification-tile.md +39 -0
  246. package/src/components/features/notifications/.notifications-context.md +73 -0
  247. package/src/components/features/notifications/.types.md +45 -0
  248. package/src/components/icons/.about-icon.md +20 -28
  249. package/src/components/icons/.ai-robot-icon.md +15 -17
  250. package/src/components/icons/.bash-icon.md +16 -23
  251. package/src/components/icons/.buildings-icon.md +10 -24
  252. package/src/components/icons/.capterra-icon.md +30 -26
  253. package/src/components/icons/.carta-icon.md +29 -0
  254. package/src/components/icons/.clickup-icon.md +26 -0
  255. package/src/components/icons/.cmd-icon.md +15 -22
  256. package/src/components/icons/.coins-icon.md +17 -25
  257. package/src/components/icons/.community-hub-icon.md +19 -25
  258. package/src/components/icons/.community-icon.md +24 -21
  259. package/src/components/icons/.compare-icon.md +32 -19
  260. package/src/components/icons/.copy-icon.md +29 -15
  261. package/src/components/icons/.custom-external-link-icon.md +19 -17
  262. package/src/components/icons/.custom-fork-icon.md +32 -21
  263. package/src/components/icons/.custom-license-icon.md +29 -25
  264. package/src/components/icons/.custom-star-icon.md +20 -28
  265. package/src/components/icons/.custom-time-icon.md +21 -22
  266. package/src/components/icons/.cut-vendor-costs-icon.md +6 -19
  267. package/src/components/icons/.dashboard-icon.md +13 -18
  268. package/src/components/icons/.deno-icon.md +16 -23
  269. package/src/components/icons/.donut-icon.md +12 -23
  270. package/src/components/icons/.double-chevron-icon.md +28 -36
  271. package/src/components/icons/.elestio-logo.md +13 -23
  272. package/src/components/icons/.empty-vendor-icon.md +16 -18
  273. package/src/components/icons/.explore-categories-icon.md +18 -29
  274. package/src/components/icons/.eye-icon.md +16 -26
  275. package/src/components/icons/.facebook-icon.md +9 -20
  276. package/src/components/icons/.figma-icon.md +8 -17
  277. package/src/components/icons/.filter-icon.md +15 -17
  278. package/src/components/icons/.flamingo-logo.md +28 -27
  279. package/src/components/icons/.folder-shield-icon.md +28 -19
  280. package/src/components/icons/.g2-icon.md +22 -21
  281. package/src/components/icons/.getapp-icon.md +25 -21
  282. package/src/components/icons/.github-icon.md +13 -25
  283. package/src/components/icons/.globe-icon.md +14 -19
  284. package/src/components/icons/.google-gemini-icon.md +16 -19
  285. package/src/components/icons/.google-logo.md +15 -21
  286. package/src/components/icons/.grid-view-icon.md +30 -19
  287. package/src/components/icons/.hamburger-icon.md +22 -20
  288. package/src/components/icons/.hand-dollar-icon.md +24 -34
  289. package/src/components/icons/.hotel-icon.md +27 -21
  290. package/src/components/icons/.icon-utils.md +28 -29
  291. package/src/components/icons/.image-icon.md +15 -22
  292. package/src/components/icons/.index.md +25 -28
  293. package/src/components/icons/.info-circle-icon.md +29 -30
  294. package/src/components/icons/.instagram-icon.md +10 -24
  295. package/src/components/icons/.jump-in-icon.md +18 -18
  296. package/src/components/icons/.linux-icon.md +18 -18
  297. package/src/components/icons/.log-out-icon.md +15 -23
  298. package/src/components/icons/.logs-icon.md +14 -23
  299. package/src/components/icons/.margin-crisis-icon.md +21 -20
  300. package/src/components/icons/.menu-icon.md +18 -19
  301. package/src/components/icons/.miami-cyber-gang-logo-face-only.md +18 -21
  302. package/src/components/icons/.miami-cyber-gang-logo.md +22 -14
  303. package/src/components/icons/.mlg-logo.md +18 -16
  304. package/src/components/icons/.moon-icon.md +32 -22
  305. package/src/components/icons/.ms-icon.md +30 -19
  306. package/src/components/icons/.nushell-icon.md +7 -21
  307. package/src/components/icons/.open-source-icon.md +19 -23
  308. package/src/components/icons/.openai-icon.md +9 -24
  309. package/src/components/icons/.openframe-ai-icons.md +25 -26
  310. package/src/components/icons/.openframe-logo.md +28 -22
  311. package/src/components/icons/.openframe-text.md +24 -27
  312. package/src/components/icons/.openmsp-logo.md +26 -23
  313. package/src/components/icons/.pilot-icon.md +23 -0
  314. package/src/components/icons/.powershell-icon.md +17 -22
  315. package/src/components/icons/.python-icon.md +16 -23
  316. package/src/components/icons/.queries-icon.md +13 -21
  317. package/src/components/icons/.reddit-icon.md +28 -24
  318. package/src/components/icons/.remote-control-icon.md +13 -17
  319. package/src/components/icons/.script-icon.md +27 -19
  320. package/src/components/icons/.search-icon.md +21 -21
  321. package/src/components/icons/.send-icon.md +14 -16
  322. package/src/components/icons/.settings-icon.md +30 -19
  323. package/src/components/icons/.shape-circle-dash-icon.md +16 -21
  324. package/src/components/icons/.shell-icon.md +15 -19
  325. package/src/components/icons/.shield-check-icon.md +18 -31
  326. package/src/components/icons/.shield-key-icon.md +25 -25
  327. package/src/components/icons/.shield-lock-icon.md +8 -18
  328. package/src/components/icons/.slack-icon.md +28 -32
  329. package/src/components/icons/.sparkles-icon.md +18 -23
  330. package/src/components/icons/.sso-configuration-icon.md +29 -16
  331. package/src/components/icons/.sun-icon.md +20 -18
  332. package/src/components/icons/.table-view-icon.md +17 -19
  333. package/src/components/icons/.telegram-icon.md +8 -22
  334. package/src/components/icons/.thumbs-down-icon.md +10 -19
  335. package/src/components/icons/.thumbs-up-icon.md +8 -17
  336. package/src/components/icons/.tool-directory-icons.md +24 -28
  337. package/src/components/icons/.trustpilot-icon.md +25 -22
  338. package/src/components/icons/.user-icon.md +26 -28
  339. package/src/components/icons/.users-group-icon.md +28 -24
  340. package/src/components/icons/.vendor-showcase-icons.md +21 -29
  341. package/src/components/icons/.vendors-icon.md +18 -22
  342. package/src/components/icons/.whatsapp-icon.md +30 -14
  343. package/src/components/icons/.x-icon.md +18 -23
  344. package/src/components/icons/.x-logo.md +13 -38
  345. package/src/components/icons/.youtube-icon.md +8 -19
  346. package/src/components/icons/device-type-icons/.get-device-type-icon.md +26 -34
  347. package/src/components/icons-v2-generated/.index.md +52 -0
  348. package/src/components/icons-v2-generated/alphabet/.index.md +33 -0
  349. package/src/components/icons-v2-generated/arrows/.index.md +39 -0
  350. package/src/components/icons-v2-generated/audio-and-visual/.index.md +40 -0
  351. package/src/components/icons-v2-generated/brand-logos/.elestio-logo-icon.md +40 -0
  352. package/src/components/icons-v2-generated/brand-logos/.gemini-logo-icon.md +37 -0
  353. package/src/components/icons-v2-generated/brand-logos/.google-gemini-logo-icon.md +33 -0
  354. package/src/components/icons-v2-generated/brand-logos/.index.md +38 -0
  355. package/src/components/icons-v2-generated/brand-logos/.meshcentral-logo-grey-icon.md +35 -0
  356. package/src/components/icons-v2-generated/brand-logos/.meshcentral-logo-icon.md +36 -0
  357. package/src/components/icons-v2-generated/buildings/.index.md +48 -0
  358. package/src/components/icons-v2-generated/charts/.index.md +40 -0
  359. package/src/components/icons-v2-generated/clothes/.index.md +48 -0
  360. package/src/components/icons-v2-generated/coding/.index.md +42 -0
  361. package/src/components/icons-v2-generated/communication/.index.md +39 -0
  362. package/src/components/icons-v2-generated/date-and-time/.index.md +29 -0
  363. package/src/components/icons-v2-generated/design/.index.md +39 -0
  364. package/src/components/icons-v2-generated/devices/.index.md +38 -0
  365. package/src/components/icons-v2-generated/documents/.index.md +38 -0
  366. package/src/components/icons-v2-generated/finance/.index.md +34 -0
  367. package/src/components/icons-v2-generated/food-and-drinks/.index.md +34 -0
  368. package/src/components/icons-v2-generated/food-and-drinks/.leafy-green-icon.md +36 -0
  369. package/src/components/icons-v2-generated/food-and-drinks/.strawberry-icon.md +39 -0
  370. package/src/components/icons-v2-generated/health/.index.md +40 -0
  371. package/src/components/icons-v2-generated/household/.index.md +45 -0
  372. package/src/components/icons-v2-generated/interface/.index.md +36 -0
  373. package/src/components/icons-v2-generated/map-and-travel/.index.md +41 -0
  374. package/src/components/icons-v2-generated/media-playback/.index.md +51 -0
  375. package/src/components/icons-v2-generated/number/.index.md +41 -0
  376. package/src/components/icons-v2-generated/school/.index.md +37 -0
  377. package/src/components/icons-v2-generated/security/.fingerprint-icon.md +38 -0
  378. package/src/components/icons-v2-generated/security/.index.md +39 -0
  379. package/src/components/icons-v2-generated/shopping/.index.md +42 -0
  380. package/src/components/icons-v2-generated/signs-and-symbols/.index.md +32 -0
  381. package/src/components/icons-v2-generated/sort-and-filter/.index.md +35 -0
  382. package/src/components/icons-v2-generated/sport/.index.md +41 -0
  383. package/src/components/icons-v2-generated/text-editor/.index.md +44 -0
  384. package/src/components/icons-v2-generated/users/.index.md +45 -0
  385. package/src/components/icons-v2-generated/vehicles-and-delivery/.index.md +36 -0
  386. package/src/components/icons-v2-generated/weather-and-nature/.flower-sakura-icon.md +36 -0
  387. package/src/components/icons-v2-generated/weather-and-nature/.index.md +34 -0
  388. package/src/components/layout/.article-detail-layout.md +43 -0
  389. package/src/components/layout/.back-button.md +40 -0
  390. package/src/components/layout/.list-page-layout.md +35 -26
  391. package/src/components/layout/.page-container.md +27 -38
  392. package/src/components/layout/.page-layout.md +50 -0
  393. package/src/components/layout/.title-block.md +42 -0
  394. package/src/components/loading/.card-skeleton.md +38 -29
  395. package/src/components/loading/.device-card-skeleton.md +29 -25
  396. package/src/components/loading/.index.md +39 -46
  397. package/src/components/loading/.margin-report-skeleton.md +45 -34
  398. package/src/components/loading/.organization-card-skeleton.md +39 -44
  399. package/src/components/loading/.page-layout-skeleton.md +34 -45
  400. package/src/components/loading/.unified-skeleton.md +62 -36
  401. package/src/components/navigation/.app-header.md +40 -29
  402. package/src/components/navigation/.app-layout.md +25 -26
  403. package/src/components/navigation/.header-global-search.md +34 -37
  404. package/src/components/navigation/.header-organization-filter.md +23 -22
  405. package/src/components/navigation/.header.md +31 -35
  406. package/src/components/navigation/.mobile-burger-menu.md +39 -47
  407. package/src/components/navigation/.mobile-nav-panel.md +51 -32
  408. package/src/components/navigation/.navigation-sidebar-header.md +36 -0
  409. package/src/components/navigation/.navigation-sidebar-item.md +45 -0
  410. package/src/components/navigation/.navigation-sidebar-toggle.md +38 -0
  411. package/src/components/navigation/.navigation-sidebar.md +33 -34
  412. package/src/components/navigation/.sliding-sidebar.md +52 -41
  413. package/src/components/navigation/.sticky-section-nav.md +56 -48
  414. package/src/components/platform/.ScriptArguments.md +39 -25
  415. package/src/components/platform/.ScriptInfoSection.md +30 -26
  416. package/src/components/platform/.ShellTypeBadge.md +18 -13
  417. package/src/components/platform/.SoftwareInfo.md +23 -27
  418. package/src/components/platform/.SoftwareSourceBadge.md +28 -19
  419. package/src/components/platform/.ToolBadge.md +25 -26
  420. package/src/components/platform/ShellTypeBadge.tsx +2 -2
  421. package/src/components/providers/.theme-provider.md +52 -0
  422. package/src/components/shared/delivery/.delivery-lists.md +39 -0
  423. package/src/components/shared/delivery/.delivery-row.md +41 -0
  424. package/src/components/shared/delivery/.delivery-table.md +41 -0
  425. package/src/components/shared/delivery/.index.md +38 -0
  426. package/src/components/shared/dev-section/.dev-card-row.md +60 -0
  427. package/src/components/shared/dev-section/.dev-section-page.md +48 -0
  428. package/src/components/shared/dev-section/.dev-section-view.md +43 -0
  429. package/src/components/shared/dev-section/.index.md +38 -0
  430. package/src/components/shared/legal-document/.index.md +40 -0
  431. package/src/components/shared/legal-document/.legal-document-page.md +50 -0
  432. package/src/components/shared/legal-document/.use-legal-docs.md +42 -0
  433. package/src/components/shared/onboarding/.onboarding-step-card.md +32 -31
  434. package/src/components/shared/onboarding/.onboarding-walkthrough.md +39 -43
  435. package/src/components/shared/product-release/.index.md +28 -30
  436. package/src/components/shared/product-release/.product-release-card-skeleton.md +28 -28
  437. package/src/components/shared/product-release/.product-release-card.md +45 -27
  438. package/src/components/shared/product-release/.release-detail-page.md +23 -24
  439. package/src/components/shared/roadmap/.index.md +37 -0
  440. package/src/components/shared/roadmap/.roadmap-grid-skeleton.md +39 -0
  441. package/src/components/shared/roadmap/.roadmap-grid.md +66 -0
  442. package/src/components/shared/roadmap/.use-roadmap-voting.md +68 -0
  443. package/src/components/tickets/.help-center-card.md +51 -0
  444. package/src/components/tickets/.help-center-create-form.md +38 -0
  445. package/src/components/tickets/.help-center-list.md +40 -0
  446. package/src/components/tickets/.index.md +65 -0
  447. package/src/components/tickets/.ticket-center.md +51 -0
  448. package/src/components/tickets/.ticket-detail-drawer.md +48 -0
  449. package/src/components/tickets/.ticket-linked-delivery-card.md +36 -0
  450. package/src/components/tickets/.ticket-open-form.md +50 -0
  451. package/src/components/tickets/.ticket-row.md +30 -0
  452. package/src/components/tickets/.types.md +57 -0
  453. package/src/components/tickets/hooks/.use-ticket-actions.md +77 -0
  454. package/src/components/tickets/hooks/.use-ticket-engagements.md +42 -0
  455. package/src/components/tickets/hooks/.use-tickets-list.md +54 -0
  456. package/src/components/ui/.actions-menu.md +66 -41
  457. package/src/components/ui/.alert-dialog.md +29 -26
  458. package/src/components/ui/.allowed-domains-input.md +29 -21
  459. package/src/components/ui/.assignee-dropdown.md +45 -0
  460. package/src/components/ui/.autocomplete.md +47 -41
  461. package/src/components/ui/.benefit-card.md +51 -36
  462. package/src/components/ui/.brand-association-card.md +30 -27
  463. package/src/components/ui/.breadcrumb.md +17 -15
  464. package/src/components/ui/.checkbox-block.md +39 -35
  465. package/src/components/ui/.checkbox-with-description.md +23 -16
  466. package/src/components/ui/.checkbox.md +31 -23
  467. package/src/components/ui/.circular-progress.md +49 -19
  468. package/src/components/ui/.content-loader.md +32 -20
  469. package/src/components/ui/.cursor-pagination.md +41 -52
  470. package/src/components/ui/.dashboard-info-card.md +33 -26
  471. package/src/components/ui/.date-picker.md +27 -25
  472. package/src/components/ui/.device-card-compact.md +28 -29
  473. package/src/components/ui/.device-card.md +27 -27
  474. package/src/components/ui/.dialog.md +25 -16
  475. package/src/components/ui/.drawer.md +86 -0
  476. package/src/components/ui/.dropdown-button.md +45 -0
  477. package/src/components/ui/.entity-image.md +46 -0
  478. package/src/components/ui/.error-state.md +41 -28
  479. package/src/components/ui/.feature-card.md +35 -31
  480. package/src/components/ui/.feature-list.md +48 -0
  481. package/src/components/ui/.field-wrapper.md +47 -0
  482. package/src/components/ui/.file-upload.md +42 -0
  483. package/src/components/ui/.filter-checkbox-item.md +43 -0
  484. package/src/components/ui/.filter-list.md +57 -0
  485. package/src/components/ui/.filter-modal.md +59 -0
  486. package/src/components/ui/.floating-tooltip.md +43 -26
  487. package/src/components/ui/.hidden-tags-popup.md +49 -0
  488. package/src/components/ui/.hover-dropdown.md +54 -0
  489. package/src/components/ui/.image-gallery-modal.md +41 -34
  490. package/src/components/ui/.image-uploader.md +53 -0
  491. package/src/components/ui/.index.md +40 -34
  492. package/src/components/ui/.info-card.md +31 -31
  493. package/src/components/ui/.info-row.md +31 -27
  494. package/src/components/ui/.input-trigger.md +44 -0
  495. package/src/components/ui/.input.md +37 -31
  496. package/src/components/ui/.markdown-editor.md +57 -0
  497. package/src/components/ui/.modal-v2.md +51 -0
  498. package/src/components/ui/.modal.md +32 -31
  499. package/src/components/ui/.more-actions-menu.md +45 -38
  500. package/src/components/ui/.organization-card.md +31 -37
  501. package/src/components/ui/.page-actions.md +44 -54
  502. package/src/components/ui/.phone-input.md +54 -0
  503. package/src/components/ui/.progress-bar.md +35 -27
  504. package/src/components/ui/.radio-group.md +39 -27
  505. package/src/components/ui/.release-changelog-section.md +34 -34
  506. package/src/components/ui/.search-input.md +48 -0
  507. package/src/components/ui/.select.md +54 -34
  508. package/src/components/ui/.service-card.md +42 -40
  509. package/src/components/ui/.sheet.md +27 -18
  510. package/src/components/ui/.simple-markdown-renderer.md +29 -31
  511. package/src/components/ui/.sort-column-item.md +42 -0
  512. package/src/components/ui/.square-avatar.md +34 -24
  513. package/src/components/ui/.status-badge.md +26 -38
  514. package/src/components/ui/.switch.md +22 -35
  515. package/src/components/ui/.tab-navigation.md +56 -53
  516. package/src/components/ui/.tab-selector.md +40 -0
  517. package/src/components/ui/.tag-key-value-filter.md +56 -0
  518. package/src/components/ui/.tag-search-input.md +53 -0
  519. package/src/components/ui/.tag.md +49 -31
  520. package/src/components/ui/.tags-manager.md +60 -0
  521. package/src/components/ui/.textarea.md +44 -34
  522. package/src/components/ui/.ticket-attachments-list.md +45 -0
  523. package/src/components/ui/.ticket-detail-section.md +29 -0
  524. package/src/components/ui/.ticket-info-section.md +56 -0
  525. package/src/components/ui/.ticket-note-card.md +53 -0
  526. package/src/components/ui/.ticket-notes-section.md +54 -0
  527. package/src/components/ui/.ticket-status-tag.md +49 -0
  528. package/src/components/ui/.title-content-block.md +25 -26
  529. package/src/components/ui/.toaster.md +40 -28
  530. package/src/components/ui/.tooltip.md +22 -11
  531. package/src/components/ui/.truncate-text.md +39 -0
  532. package/src/components/ui/button/.button-styles.md +35 -0
  533. package/src/components/ui/button/.button.md +53 -0
  534. package/src/components/ui/button/.split-button.md +48 -0
  535. package/src/components/ui/data-table/.data-table-body.md +48 -0
  536. package/src/components/ui/data-table/.data-table-column-filter.md +45 -0
  537. package/src/components/ui/data-table/.data-table-cursor-footer.md +45 -0
  538. package/src/components/ui/data-table/.data-table-empty.md +43 -0
  539. package/src/components/ui/data-table/.data-table-header.md +55 -0
  540. package/src/components/ui/data-table/.data-table-infinite-footer.md +44 -0
  541. package/src/components/ui/data-table/.data-table-row-count.md +43 -0
  542. package/src/components/ui/data-table/.data-table-row.md +47 -0
  543. package/src/components/ui/data-table/.data-table-skeleton.md +42 -0
  544. package/src/components/ui/data-table/.data-table.md +47 -0
  545. package/src/components/ui/data-table/.index.md +55 -0
  546. package/src/components/ui/data-table/.types.md +54 -0
  547. package/src/components/ui/data-table/.use-data-table.md +45 -0
  548. package/src/components/ui/data-table/.utils.md +38 -0
  549. package/src/components/ui/file-manager/.file-manager-action-bar.md +39 -30
  550. package/src/components/ui/file-manager/.file-manager-breadcrumb.md +29 -27
  551. package/src/components/ui/file-manager/.file-manager-context-menu.md +38 -42
  552. package/src/components/ui/file-manager/.file-manager-empty.md +26 -39
  553. package/src/components/ui/file-manager/.file-manager-table-row.md +33 -41
  554. package/src/components/ui/file-manager/.file-manager.md +35 -31
  555. package/src/components/ui/query-report-table/.index.md +43 -0
  556. package/src/components/ui/query-report-table/.query-report-table-header.md +36 -0
  557. package/src/components/ui/query-report-table/.query-report-table-row.md +40 -0
  558. package/src/components/ui/query-report-table/.query-report-table-skeleton.md +44 -0
  559. package/src/components/ui/query-report-table/.query-report-table.md +47 -0
  560. package/src/components/ui/query-report-table/.types.md +41 -0
  561. package/src/components/ui/query-report-table/.utils.md +35 -0
  562. package/src/components/ui/table/.index.md +27 -48
  563. package/src/components/ui/table/.table-cell.md +18 -27
  564. package/src/components/ui/table/.table-column-filter-dropdown.md +40 -0
  565. package/src/components/ui/table/.table-description-cell.md +24 -14
  566. package/src/components/ui/table/.table-empty-state.md +21 -22
  567. package/src/components/ui/table/.table-header.md +25 -40
  568. package/src/components/ui/table/.table-row.md +22 -40
  569. package/src/components/ui/table/.table-skeleton.md +33 -26
  570. package/src/components/ui/table/.table-timestamp-cell.md +26 -16
  571. package/src/components/ui/table/.table.md +39 -59
  572. package/src/components/ui/table/.types.md +44 -36
  573. package/src/components/ui/table/.utils.md +18 -20
  574. package/src/contexts/.chat-runtime-context.md +54 -0
  575. package/src/contexts/.endpoints-runtime-context.md +58 -0
  576. package/src/contexts/.index.md +53 -0
  577. package/src/contexts/.use-outer-or-default.md +36 -0
  578. package/src/embed-shims/.index.md +45 -0
  579. package/src/embed-shims/.next-dynamic.md +43 -0
  580. package/src/embed-shims/.next-image.md +45 -0
  581. package/src/embed-shims/.next-link.md +59 -0
  582. package/src/embed-shims/.next-navigation.md +59 -0
  583. package/src/hooks/.index.md +34 -29
  584. package/src/hooks/.use-access-code-integration.md +49 -0
  585. package/src/hooks/.use-contact-submission.md +37 -26
  586. package/src/hooks/.use-copy-to-clipboard.md +42 -0
  587. package/src/hooks/.use-near-viewport.md +44 -0
  588. package/src/hooks/.use-og-placeholder.md +51 -0
  589. package/src/hooks/.use-toast.md +36 -35
  590. package/src/hooks/state/.use-api-params.md +29 -46
  591. package/src/hooks/state/.use-query-params.md +37 -33
  592. package/src/hooks/ui/.index.md +33 -32
  593. package/src/hooks/ui/.use-auto-limit-tags.md +54 -0
  594. package/src/hooks/ui/.use-horizontal-scrollbar.md +74 -0
  595. package/src/hooks/ui/.use-image-edge-color.md +42 -0
  596. package/src/hooks/ui/.use-media-query.md +33 -25
  597. package/src/hooks/ui/.use-search.md +51 -0
  598. package/src/nats/.nats.md +49 -28
  599. package/src/schemas/.contact-schema.md +45 -0
  600. package/src/stories/.AnnouncementBar.stories.md +45 -0
  601. package/src/stories/.AppLayout.stories.md +20 -21
  602. package/src/stories/.Autocomplete.stories.md +48 -34
  603. package/src/stories/.Board.stories.md +35 -0
  604. package/src/stories/.Button.stories.md +36 -33
  605. package/src/stories/.ChatTicketList.stories.md +33 -0
  606. package/src/stories/.CheckboxBlock.stories.md +40 -28
  607. package/src/stories/.ContentLoader.stories.md +47 -0
  608. package/src/stories/.DashboardInfoCard.stories.md +57 -0
  609. package/src/stories/.DataTable.stories.md +41 -0
  610. package/src/stories/.DatePicker.stories.md +66 -52
  611. package/src/stories/.DeviceCard.stories.md +41 -40
  612. package/src/stories/.DeviceCardCompact.stories.md +41 -0
  613. package/src/stories/.DotsLoaderIcon.stories.md +36 -0
  614. package/src/stories/.Drawer.stories.md +58 -0
  615. package/src/stories/.EmbeddableChat.stories.md +41 -0
  616. package/src/stories/.FileManager.stories.md +41 -0
  617. package/src/stories/.FileManagerActionBar.stories.md +38 -0
  618. package/src/stories/.FileUpload.stories.md +53 -0
  619. package/src/stories/.FilterList.stories.md +54 -0
  620. package/src/stories/.FilterModal.stories.md +72 -0
  621. package/src/stories/.FiltersDropdown.stories.md +57 -0
  622. package/src/stories/.Header.stories.md +48 -0
  623. package/src/stories/.ImageUploader.stories.md +49 -0
  624. package/src/stories/.InfoCard.stories.md +54 -0
  625. package/src/stories/.Input.stories.md +48 -30
  626. package/src/stories/.ListPageLayout.stories.md +56 -43
  627. package/src/stories/.MingoOnboardingCard.stories.md +42 -0
  628. package/src/stories/.MingoOnboardingCardSkeleton.stories.md +35 -0
  629. package/src/stories/.Modal.stories.md +40 -31
  630. package/src/stories/.NotificationDrawer.stories.md +55 -0
  631. package/src/stories/.OnboardingStepCard.stories.md +41 -0
  632. package/src/stories/.OrganizationCard.stories.md +61 -0
  633. package/src/stories/.PageActions.stories.md +52 -49
  634. package/src/stories/.PageContainer.stories.md +41 -35
  635. package/src/stories/.PageLayout.stories.md +60 -0
  636. package/src/stories/.ParallaxImageShowcase.stories.md +49 -0
  637. package/src/stories/.PhoneInput.stories.md +53 -0
  638. package/src/stories/.QueryReportTable.stories.md +44 -0
  639. package/src/stories/.RadioGroup.stories.md +46 -0
  640. package/src/stories/.RadioGroupBlock.stories.md +45 -0
  641. package/src/stories/.Select.stories.md +29 -15
  642. package/src/stories/.SlashCommandSuggestions.stories.md +41 -0
  643. package/src/stories/.SplitButton.stories.md +62 -0
  644. package/src/stories/.TabNavigation.stories.md +47 -38
  645. package/src/stories/.TabSelector.stories.md +65 -0
  646. package/src/stories/.Table.stories.md +38 -46
  647. package/src/stories/.TableColumnFilterDropdown.stories.md +46 -0
  648. package/src/stories/.Tag.stories.md +43 -32
  649. package/src/stories/.TagKeyValueFilter.stories.md +44 -0
  650. package/src/stories/.TagSearchInput.stories.md +61 -0
  651. package/src/stories/.Textarea.stories.md +49 -26
  652. package/src/stories/.Theme.stories.md +41 -0
  653. package/src/stories/.TicketAttachmentsList.stories.md +39 -0
  654. package/src/stories/.TicketDescriptionViewer.stories.md +39 -0
  655. package/src/stories/.TicketInfoSection.stories.md +40 -0
  656. package/src/stories/.TicketKnowledgeBaseList.stories.md +36 -0
  657. package/src/stories/.TicketNotesSection.stories.md +50 -0
  658. package/src/stories/.Toaster.stories.md +40 -0
  659. package/src/stories/.ToolExecutionDisplay.stories.md +41 -0
  660. package/src/stories/.Tooltip.stories.md +41 -0
  661. package/src/stories/.UserSummary.stories.md +41 -0
  662. package/src/stories/.WaitlistForm.stories.md +42 -0
  663. package/src/stories/BlogCard.stories.tsx +61 -0
  664. package/src/stories/CampaignCardAdmin.stories.tsx +52 -0
  665. package/src/stories/CaseStudyCard.stories.tsx +42 -0
  666. package/src/stories/ChatContainer.stories.tsx +186 -0
  667. package/src/stories/ChatInlineVideoPill.stories.tsx +63 -0
  668. package/src/stories/CustomerInterviewCard.stories.tsx +42 -0
  669. package/src/stories/DataRoomDocCard.stories.tsx +52 -0
  670. package/src/stories/GenericEntityCard.stories.tsx +66 -0
  671. package/src/stories/GitHubActivityCard.stories.tsx +61 -0
  672. package/src/stories/HubspotTicketCard.stories.tsx +98 -0
  673. package/src/stories/InvestorUpdateCard.stories.tsx +42 -0
  674. package/src/stories/OnboardingGuideCard.stories.tsx +52 -0
  675. package/src/stories/ProductReleaseCard.stories.tsx +61 -0
  676. package/src/stories/ProgramCard.stories.tsx +79 -0
  677. package/src/stories/RoadmapCard.stories.tsx +75 -0
  678. package/src/stories/SlackMessageCard.stories.tsx +41 -0
  679. package/src/stories/__fixtures__/chat-cards.ts +604 -0
  680. package/src/types/.blog.md +53 -29
  681. package/src/types/.case-study.md +44 -27
  682. package/src/types/.customer-interview.md +66 -44
  683. package/src/types/.delivery.md +40 -0
  684. package/src/types/.employee.md +24 -30
  685. package/src/types/.index.md +33 -47
  686. package/src/types/.marketing.md +49 -44
  687. package/src/types/.navigation.md +33 -25
  688. package/src/types/.os.types.md +32 -27
  689. package/src/types/.platform.md +31 -28
  690. package/src/types/.product-release.md +65 -38
  691. package/src/types/.supabase.md +37 -29
  692. package/src/types/.team.md +41 -33
  693. package/src/types/.video-processing.md +54 -0
  694. package/src/types/.waitlist.md +40 -36
  695. package/src/utils/.access-code-client.md +37 -36
  696. package/src/utils/.cn.md +31 -23
  697. package/src/utils/.color-analysis.md +35 -0
  698. package/src/utils/.country-phone-utils.md +39 -0
  699. package/src/utils/.date-formatters.md +19 -18
  700. package/src/utils/.embed-authed-fetch.md +39 -0
  701. package/src/utils/.embed-proxy-auth-storage.md +38 -0
  702. package/src/utils/.fetch-priority.md +41 -0
  703. package/src/utils/.format.md +74 -25
  704. package/src/utils/.generic-domain-utils.md +42 -0
  705. package/src/utils/.image-proxy.md +59 -23
  706. package/src/utils/.index.md +42 -49
  707. package/src/utils/.local-storage-adapter.md +50 -0
  708. package/src/utils/.ods-color-utils.md +55 -38
  709. package/src/utils/.platform-config.md +45 -25
  710. package/src/utils/.scroll-into-view.md +40 -0
  711. package/src/utils/.source-icons.md +53 -0
  712. package/src/utils/.sse-decision-frame.md +46 -0
  713. package/src/utils/dev-sections/.index.md +34 -0
  714. package/src/utils/dev-sections/.openframe-dev-sections.md +49 -0
  715. package/dist/chunk-ZDF6F7ED.cjs.map +0 -1
  716. package/dist/chunk-ZTJVRSN5.js.map +0 -1
  717. package/src/components/.card.md +0 -42
  718. package/src/components/.contact-button.md +0 -30
  719. package/src/components/.drawer.md +0 -46
  720. package/src/components/.fixed-layout-container.md +0 -47
  721. package/src/components/.footer-waitlist-card.md +0 -29
  722. package/src/components/.join-waitlist-cta.md +0 -29
  723. package/src/components/.sheet.md +0 -47
  724. package/src/components/.sliding-panel.md +0 -48
  725. package/src/components/.tooltip.md +0 -48
  726. package/src/components/.use-mobile.md +0 -42
  727. package/src/components/.vendor-compact-card.md +0 -66
  728. package/src/components/.x-button.md +0 -42
  729. package/src/components/features/.github-repo-button.md +0 -40
  730. package/src/components/features/.organization-icon.md +0 -47
  731. package/src/components/features/.organization-selector.md +0 -45
  732. package/src/components/icons/.fleet-icon.md +0 -39
  733. package/src/components/icons/.meshcentral-icon.md +0 -35
  734. package/src/components/icons/.refresh-icon.md +0 -34
  735. package/src/components/icons/.tactical-icon.md +0 -35
  736. package/src/components/ui/.button.md +0 -69
  737. package/src/components/ui/.log-table-row.md +0 -47
  738. package/src/components/ui/.selectable-device-card.md +0 -46
  739. package/src/hooks/.api-hooks-stub.md +0 -45
  740. package/src/hooks/api/.use-product-releases.md +0 -53
  741. package/src/stories/.OrganizationSelector.stories.md +0 -42
  742. package/src/stories/.SelectableDeviceCard.stories.md +0 -30
  743. package/src/utils/.lite-youtube-embed-stub.md +0 -37
  744. package/src/utils/.lite-youtube-embed.md +0 -33
  745. /package/dist/{chunk-IK2X5YJU.js.map → chunk-7PCP7YQR.js.map} +0 -0
  746. /package/dist/{chunk-3JWIJJ44.js.map → chunk-R6MLPU4A.js.map} +0 -0
@@ -1,44 +1,39 @@
1
- <!-- source-hash: 044075e8eda2a0ce2427ef7e529ff9f3 -->
2
- A responsive application layout component that provides a structured shell with navigation sidebar, header, and mobile menu functionality for Flamingo Stack applications.
1
+ <!-- source-hash: 4a7aa4db8bec1fcce07d28f27fea4092 -->
2
+ Orchestrates the top-level application shell, combining the sidebar, header, mobile menu, and notification drawer into a single full-screen layout with managed mobile menu state.
3
3
 
4
4
  ## Key Components
5
5
 
6
- - **`AppLayout`** - Main layout component that orchestrates the entire application shell
7
- - **`AppLayoutProps`** - TypeScript interface defining all layout configuration options
8
- - **Mobile menu state management** - Handles toggle and close functionality for mobile navigation
9
- - **Responsive design** - Combines desktop sidebar with mobile burger menu
10
- - **Suspense integration** - Built-in loading state handling for async content
6
+ | Export | Type | Description |
7
+ |--------|------|-------------|
8
+ | `AppLayout` | Component | Root layout wrapper rendering all chrome elements and the main content area |
9
+ | `AppLayoutProps` | Interface | Configuration interface for the layout component |
10
+
11
+ **Key props:**
12
+ - `sidebarConfig` — Navigation structure passed to both `NavigationSidebar` and `MobileBurgerMenu`
13
+ - `headerProps` — Forwarded to `AppHeader` (mobile menu state/toggle are managed internally)
14
+ - `mobileBurgerMenuProps` — Forwarded to `MobileBurgerMenu` (open/close/config are managed internally)
15
+ - `disabled` — Freezes header and sidebar interactions without affecting `children`
16
+ - `loadingFallback` — Custom `Suspense` fallback for the main content area
11
17
 
12
18
  ## Usage Example
13
19
 
14
20
  ```typescript
15
21
  import { AppLayout } from './app-layout'
16
- import { NavigationSidebarConfig } from '../../types/navigation'
17
-
18
- const sidebarConfig: NavigationSidebarConfig = {
19
- sections: [
20
- {
21
- title: 'Dashboard',
22
- items: [
23
- { label: 'Overview', href: '/dashboard', icon: 'dashboard' }
24
- ]
25
- }
26
- ]
27
- }
22
+ import { sidebarConfig } from '../config/navigation'
28
23
 
29
- function MyApp({ children }: { children: React.ReactNode }) {
24
+ export default function RootLayout({ children }: { children: React.ReactNode }) {
30
25
  return (
31
26
  <AppLayout
32
27
  sidebarConfig={sidebarConfig}
33
28
  headerProps={{
34
- title: 'Flamingo MSP',
35
- user: { name: 'John Doe', avatar: '/avatar.jpg' }
29
+ logo: <Logo />,
30
+ actions: <UserMenu />,
36
31
  }}
37
32
  mobileBurgerMenuProps={{
38
- className: 'custom-mobile-menu'
33
+ footerContent: <SupportLink />,
39
34
  }}
40
- loadingFallback={<div>Loading...</div>}
41
- mainClassName="custom-main-styles"
35
+ loadingFallback={<PageSkeleton />}
36
+ mainClassName="p-6"
42
37
  >
43
38
  {children}
44
39
  </AppLayout>
@@ -46,4 +41,8 @@ function MyApp({ children }: { children: React.ReactNode }) {
46
41
  }
47
42
  ```
48
43
 
49
- The component uses Tailwind CSS classes for styling and implements a flex-based layout with overflow handling for proper scrolling behavior on both desktop and mobile devices.
44
+ ## Notes
45
+
46
+ - Mobile menu open/close state is fully self-contained — consumers only provide content-level props via `mobileBurgerMenuProps`
47
+ - `children` are wrapped in `Suspense`, enabling async page transitions out of the box
48
+ - `disabled` is intended for loading or onboarding states where navigation should be temporarily locked
@@ -1,46 +1,43 @@
1
- <!-- source-hash: 87e72e6e65d4632e153a3f9d171549d4 -->
2
- A React component that provides a global search input field with a search icon, designed for header navigation areas in the OpenFrame platform.
1
+ <!-- source-hash: d02572a5b408584db5dc8403984b5d76 -->
2
+ A controlled/uncontrolled global search input component for the OpenFrame header, supporting both controlled (via `onChange`) and uncontrolled usage patterns.
3
3
 
4
4
  ## Key Components
5
5
 
6
- - **HeaderGlobalSearch**: Main functional component that renders a search form with an input field and search icon
7
- - **HeaderGlobalSearchProps**: TypeScript interface defining component props including value, onChange, onSubmit callbacks, and styling options
8
- - **Internal state management**: Handles both controlled and uncontrolled input modes depending on whether onChange prop is provided
6
+ ### `HeaderGlobalSearch`
7
+ A form-based search input that renders a search icon alongside a text field. Automatically toggles between controlled and uncontrolled modes based on whether `onChange` is provided.
8
+
9
+ ### `HeaderGlobalSearchProps`
10
+ | Prop | Type | Default | Description |
11
+ |------|------|---------|-------------|
12
+ | `value` | `string` | `''` | Current search value |
13
+ | `onChange` | `(value: string) => void` | — | Enables controlled mode |
14
+ | `onSubmit` | `(value: string) => void` | — | Fires on form submit or Enter key |
15
+ | `placeholder` | `string` | `'Global Search'` | Input placeholder text |
16
+ | `className` | `string` | — | Additional CSS classes |
9
17
 
10
18
  ## Usage Example
11
19
 
20
+ **Controlled:**
12
21
  ```typescript
13
- import { HeaderGlobalSearch } from './header-global-search'
14
-
15
- // Controlled mode with external state
16
- function App() {
17
- const [searchQuery, setSearchQuery] = useState('')
18
-
19
- const handleSearch = (query: string) => {
20
- console.log('Searching for:', query)
21
- // Perform search logic
22
- }
23
-
24
- return (
25
- <HeaderGlobalSearch
26
- value={searchQuery}
27
- onChange={setSearchQuery}
28
- onSubmit={handleSearch}
29
- placeholder="Search across all modules..."
30
- className="max-w-md"
31
- />
32
- )
33
- }
34
-
35
- // Uncontrolled mode with internal state
36
- function SimpleSearch() {
37
- return (
38
- <HeaderGlobalSearch
39
- onSubmit={(query) => performSearch(query)}
40
- placeholder="Quick search..."
41
- />
42
- )
43
- }
22
+ const [query, setQuery] = React.useState('')
23
+
24
+ <HeaderGlobalSearch
25
+ value={query}
26
+ onChange={setQuery}
27
+ onSubmit={(val) => console.log('Search:', val)}
28
+ placeholder="Search tickets, clients..."
29
+ />
44
30
  ```
45
31
 
46
- The component supports both Enter key and form submission for triggering searches, uses OpenFrame design system classes (ods-*), and automatically manages focus states and responsive styling.
32
+ **Uncontrolled:**
33
+ ```typescript
34
+ <HeaderGlobalSearch
35
+ onSubmit={(val) => console.log('Search:', val)}
36
+ />
37
+ ```
38
+
39
+ ## Notes
40
+
41
+ - Submission triggers on both **form submit** and **Enter keydown**
42
+ - Without `onChange`, component manages its own internal state
43
+ - Styled with ODS design tokens (`ods-card`, `ods-text-primary`, `ods-text-secondary`) for consistent theming across OpenFrame
@@ -1,35 +1,36 @@
1
- <!-- source-hash: ddff72d1c680d353e286136f90d4f686 -->
2
- A React component that provides a dropdown filter for switching between organizations in a header layout, displaying the selected organization name and device count.
1
+ <!-- source-hash: dec1eb29c513b449612c49f5b36f6f9d -->
2
+ A client-side dropdown filter component for switching between organizations in the OpenFrame header, displaying the selected organization's name and device count.
3
3
 
4
4
  ## Key Components
5
5
 
6
- - **`HeaderOrganizationFilterOrganization`** - Interface defining organization structure with id, name, and optional device count
7
- - **`HeaderOrganizationFilterProps`** - Props interface supporting organization list, selection state, change callbacks, and styling
8
- - **`HeaderOrganizationFilter`** - Main component rendering a dropdown trigger button with organization selection menu
6
+ ### Interfaces
7
+ - **`HeaderOrganizationFilterOrganization`** Shape for each organization entry (`id`, `name`, `deviceCount?`)
8
+ - **`HeaderOrganizationFilterProps`** Component props including `organizations`, `selectedOrgId`, `onOrgChange`, `totalDeviceCount`, and `className`
9
+
10
+ ### Component
11
+ - **`HeaderOrganizationFilter`** — Renders a styled trigger button with a filter icon, organization name, and device count, wired to a dropdown menu listing all organizations plus an "All Organizations" reset option
9
12
 
10
13
  ## Usage Example
11
14
 
12
15
  ```typescript
13
16
  import { HeaderOrganizationFilter } from './header-organization-filter'
14
17
 
15
- const organizations = [
16
- { id: 'org1', name: 'Acme Corp', deviceCount: 150 },
17
- { id: 'org2', name: 'TechStart Inc', deviceCount: 75 }
18
+ const orgs = [
19
+ { id: 'org-1', name: 'Acme Corp', deviceCount: 42 },
20
+ { id: 'org-2', name: 'Globex Inc', deviceCount: 17 },
18
21
  ]
19
22
 
20
- function Header() {
21
- const [selectedOrgId, setSelectedOrgId] = useState('')
22
-
23
- return (
24
- <HeaderOrganizationFilter
25
- organizations={organizations}
26
- selectedOrgId={selectedOrgId}
27
- onOrgChange={setSelectedOrgId}
28
- totalDeviceCount={225}
29
- className="border-r"
30
- />
31
- )
32
- }
23
+ <HeaderOrganizationFilter
24
+ organizations={orgs}
25
+ selectedOrgId="org-1"
26
+ totalDeviceCount={59}
27
+ onOrgChange={(id) => console.log('Selected org:', id)}
28
+ />
33
29
  ```
34
30
 
35
- The component displays "All Organizations" when no specific organization is selected, shows individual organization names when selected, and includes device counts below the organization name. It uses a fixed width design (240px) with hover effects and proper text truncation for long organization names.
31
+ ## Behavior Notes
32
+
33
+ - When no `selectedOrgId` matches, defaults to **"All Organizations"** and shows `totalDeviceCount`
34
+ - Selecting "All Organizations" from the dropdown calls `onOrgChange('')`
35
+ - Device count is formatted with `toLocaleString()` (e.g., `1,234 Devices`)
36
+ - Fixed width of `240px` with `border-l` separator, designed for header toolbar placement
@@ -1,66 +1,62 @@
1
- <!-- source-hash: 28b90e91239d0079021b0b62fbf4abf8 -->
2
- A responsive header component for React/Next.js applications that provides auto-hide scrolling behavior, dropdown navigation, and mobile menu support with customizable styling.
1
+ <!-- source-hash: 1a8c2c67117a2cb265b878e7d99e1a25 -->
2
+ A responsive, sticky navigation header component with auto-hide on scroll, dropdown menus, and configurable layout zones (logo, navigation, actions).
3
3
 
4
4
  ## Key Components
5
5
 
6
- **Main Export:**
7
- - `Header` - Primary header component with navigation and mobile support
8
- - `HeaderProps` - Interface for component props
9
- - `HeaderConfig` - Re-exported type for header configuration
6
+ ### `Header`
7
+ The primary exported component that renders a full-width sticky header. Accepts a `HeaderConfig` object to control all visual and behavioral aspects.
10
8
 
11
- **Core Features:**
12
- - Auto-hide on scroll (configurable)
13
- - Dropdown navigation menus with click-outside handling
14
- - Mobile responsive design with hamburger menu
15
- - Keyboard navigation (Escape key support)
16
- - Active state management for navigation items
9
+ **Props:**
10
+ | Prop | Type | Description |
11
+ |------|------|-------------|
12
+ | `config` | `HeaderConfig` | Full layout/behavior configuration |
13
+ | `platform` | `string` | Optional platform identifier |
17
14
 
18
- **Internal Functions:**
19
- - `renderNavigationItem()` - Renders different navigation item types (links, dropdowns, custom elements)
20
- - Scroll event handling for auto-hide functionality
21
- - Dropdown state management with refs for DOM manipulation
15
+ ### Behaviors
16
+
17
+ - **Auto-hide on scroll** Hides when scrolling down past 50px, reappears on scroll up. Controlled via `config.autoHide`.
18
+ - **Dropdown menus** Custom-built dropdowns using `inert` (not `aria-hidden`) for proper a11y/focus management. Closes on outside click or `Escape`.
19
+ - **Mobile menu toggle** — Shows a hamburger icon button on small screens, hidden on `md+` breakpoints.
20
+
21
+ ### Layout Zones
22
+ | Zone | Description |
23
+ |------|-------------|
24
+ | Left | Logo link + optional `config.actions.left` slot |
25
+ | Center/Right | Navigation items (positioned via `config.navigation.position`) |
26
+ | Right | Desktop action slot + mobile menu toggle |
22
27
 
23
28
  ## Usage Example
24
29
 
25
30
  ```typescript
26
- import { Header, HeaderConfig } from './components/header'
27
- import { Logo } from './components/logo'
28
- import { Button } from './components/ui/button'
31
+ import { Header, HeaderConfig } from './header'
29
32
 
30
- const headerConfig: HeaderConfig = {
33
+ const config: HeaderConfig = {
31
34
  logo: {
32
35
  href: '/',
33
- element: <Logo />
36
+ element: <img src="/logo.svg" alt="Flamingo" />,
34
37
  },
35
38
  navigation: {
36
39
  position: 'center',
37
40
  items: [
41
+ { id: 'docs', label: 'Docs', href: '/docs' },
38
42
  {
39
43
  id: 'products',
40
44
  label: 'Products',
41
45
  children: [
42
46
  { id: 'openframe', label: 'OpenFrame', href: '/openframe' },
43
- { id: 'flamingo', label: 'Flamingo MSP', href: '/msp' }
44
- ]
47
+ { id: 'mingo', label: 'Mingo AI', href: '/mingo' },
48
+ ],
45
49
  },
46
- {
47
- id: 'docs',
48
- label: 'Documentation',
49
- href: '/docs'
50
- }
51
- ]
50
+ ],
52
51
  },
53
52
  actions: {
54
- right: <Button variant="primary">Get Started</Button>
53
+ right: <Button href="/login">Sign In</Button>,
55
54
  },
56
55
  autoHide: true,
57
- mobile: {
58
- enabled: true,
59
- onToggle: () => setMobileMenuOpen(!mobileMenuOpen)
60
- }
56
+ mobile: { enabled: true, onToggle: () => setMenuOpen(v => !v) },
61
57
  }
62
58
 
63
59
  export default function Layout() {
64
- return <Header config={headerConfig} platform="openframe" />
60
+ return <Header config={config} />
65
61
  }
66
62
  ```
@@ -1,58 +1,50 @@
1
- <!-- source-hash: 7e2ac30fc88e2a98c0dfef3cab4d783c -->
2
- A mobile burger menu component that provides a full-screen overlay navigation interface for mobile devices, featuring user profile display, grid-based navigation items, and smooth slide animations.
1
+ <!-- source-hash: 5b93029e90f2707d4d17ae7b8abe09dc -->
2
+ A mobile slide-down navigation menu component that renders a full-screen overlay panel with user profile card, primary/secondary navigation items in a responsive grid layout, and optional action buttons (logout, edit profile, search user).
3
3
 
4
4
  ## Key Components
5
5
 
6
- - **MobileBurgerMenu** - Main component that renders a slide-down mobile menu with backdrop blur
7
- - **MobileBurgerMenuProps** - Interface defining menu configuration, user data, and callback functions
8
- - **Navigation Grid System** - Renders primary navigation items in a 2-column grid layout
9
- - **User Profile Card** - Displays user avatar, name, email, role badge, and action buttons
10
- - **Keyboard & Scroll Management** - Handles ESC key closing and prevents body scroll when open
6
+ **`MobileBurgerMenu`** Memoized React component (`React.memo`) with the following behavior:
7
+ - Locks body scroll and traps `Escape` key while open
8
+ - Renders a blur backdrop and animated slide-down panel below the fixed header (`48px` offset)
9
+ - Splits `config.items` into **primary** (2-column grid) and **secondary** (full-width list) sections
10
+ - Supports a `disabled` prop that freezes all interactive items while keeping close/backdrop functional
11
+
12
+ **`MobileBurgerMenuProps`** — Exported interface defining all props:
13
+
14
+ | Prop | Type | Description |
15
+ |------|------|-------------|
16
+ | `isOpen` | `boolean` | Controls visibility and animation |
17
+ | `onClose` | `() => void` | Close handler (backdrop click, Escape key) |
18
+ | `config` | `NavigationSidebarConfig` | Nav items and `onNavigate` callback |
19
+ | `user` | `object` | Optional user card data (name, email, avatar, role) |
20
+ | `onSearchUser` | `() => void` | Optional search user action button |
21
+ | `onEditProfile` | `() => void` | Optional edit profile action button |
22
+ | `onLogout` | `() => void` | Optional logout button at bottom |
23
+ | `disabled` | `boolean` | Disables all interactive items |
11
24
 
12
25
  ## Usage Example
13
26
 
14
27
  ```typescript
15
28
  import { MobileBurgerMenu } from './mobile-burger-menu'
16
- import { HomeIcon, SettingsIcon } from '../icons'
17
29
 
18
- function MobileNav() {
19
- const [isMenuOpen, setIsMenuOpen] = useState(false)
20
-
21
- const navigationConfig = {
30
+ const [menuOpen, setMenuOpen] = useState(false)
31
+
32
+ <MobileBurgerMenu
33
+ isOpen={menuOpen}
34
+ onClose={() => setMenuOpen(false)}
35
+ config={{
22
36
  items: [
23
- {
24
- id: 'home',
25
- label: 'Dashboard',
26
- icon: <HomeIcon />,
27
- path: '/dashboard',
28
- isActive: true
29
- },
30
- {
31
- id: 'settings',
32
- label: 'Settings',
33
- icon: <SettingsIcon />,
34
- path: '/settings',
35
- section: 'secondary'
36
- }
37
+ { id: 'dashboard', label: 'Dashboard', path: '/dashboard', isActive: true },
38
+ { id: 'settings', label: 'Settings', section: 'secondary', path: '/settings' },
37
39
  ],
38
- onNavigate: (path: string) => router.push(path)
39
- }
40
-
41
- return (
42
- <MobileBurgerMenu
43
- isOpen={isMenuOpen}
44
- onClose={() => setIsMenuOpen(false)}
45
- config={navigationConfig}
46
- user={{
47
- userName: "John Doe",
48
- userEmail: "john@example.com",
49
- userRole: "admin"
50
- }}
51
- onLogout={() => signOut()}
52
- onEditProfile={() => router.push('/profile')}
53
- />
54
- )
55
- }
56
- ```
57
-
58
- The component automatically positions itself below the header (48px), provides smooth slide-down animations, and includes accessibility features like keyboard navigation and ARIA labels.
40
+ onNavigate: (path) => router.push(path),
41
+ }}
42
+ user={{
43
+ userName: 'Jane Smith',
44
+ userEmail: 'jane@example.com',
45
+ userRole: 'Admin',
46
+ }}
47
+ onLogout={() => signOut()}
48
+ onEditProfile={() => router.push('/profile')}
49
+ />
50
+ ```
@@ -1,45 +1,64 @@
1
- <!-- source-hash: aa14a70d25a79da695aa0b3293e38dfc -->
2
- A React component that renders a mobile-optimized navigation panel with backdrop overlay, scrollable content sections, and accessibility features including keyboard navigation and focus management.
1
+ <!-- source-hash: 22dc571f86ff6412c173e898a5bebb85 -->
2
+ A client-side React component that renders a full-featured mobile navigation panel with backdrop overlay, keyboard support, and scroll locking.
3
3
 
4
4
  ## Key Components
5
5
 
6
- - **MobileNavPanel** - Main component rendering a modal-style navigation panel
7
- - **MobileNavPanelProps** - Interface defining component props including open state and configuration
8
- - **renderNavigationItem** - Internal function handling different navigation item types (links, buttons, custom elements)
9
- - **Backdrop overlay** - Click-outside-to-close functionality with z-index layering
10
- - **Responsive positioning** - Mobile-first design with breakpoint-specific sizing and positioning
6
+ ### `MobileNavPanel`
7
+ The primary export a modal-style slide-in navigation panel controlled by `isOpen`.
8
+
9
+ **Props (`MobileNavPanelProps`):**
10
+
11
+ | Prop | Type | Description |
12
+ |------|------|-------------|
13
+ | `isOpen` | `boolean` | Controls panel visibility |
14
+ | `config` | `MobileNavConfig` | Navigation structure and callbacks |
15
+
16
+ **Behaviors:**
17
+ - Locks `document.body` scroll while open
18
+ - Closes on `Escape` key press (via `config.onClose`)
19
+ - Closes on backdrop click; prevents propagation inside panel
20
+ - Renders `null` when closed (no DOM presence)
21
+
22
+ **Layout structure:**
23
+ - **Backdrop** — full-screen overlay (`z-[9998]`) that closes the panel on click
24
+ - **Panel** — floating card (`z-[9999]`), full-width on mobile / `400px` on `md+`, anchored top-right with scroll-locked content area
25
+ - **Header** — fixed close (`X`) button
26
+ - **Body** — scrollable section list with optional section titles and nav items
27
+ - **Footer** — optional sticky footer from `config.footer`
28
+
29
+ ### `renderNavigationItem` (internal)
30
+ Handles three `NavigationItem` render modes:
31
+ 1. **Custom element** — renders `item.element` directly
32
+ 2. **Link** — `<Button href=...>` with icon, badge, and active state
33
+ 3. **Action** — `<Button onClick=...>` with inline badge support
11
34
 
12
35
  ## Usage Example
13
36
 
14
37
  ```typescript
15
38
  import { MobileNavPanel } from './mobile-nav-panel'
16
- import { MobileNavConfig } from '../../types/navigation'
17
-
18
- function App() {
19
- const [isNavOpen, setIsNavOpen] = useState(false)
20
-
21
- const navConfig: MobileNavConfig = {
22
- onClose: () => setIsNavOpen(false),
23
- sections: [
24
- {
25
- title: "Main Navigation",
26
- items: [
27
- { id: '1', label: 'Home', href: '/', icon: <HomeIcon /> },
28
- { id: '2', label: 'About', href: '/about' },
29
- { id: '3', label: 'Contact', onClick: () => openContact() }
30
- ]
31
- }
32
- ],
33
- footer: <Button>Sign Out</Button>
34
- }
39
+ import { useState } from 'react'
40
+ import { Home, Settings } from 'lucide-react'
41
+
42
+ export function AppShell() {
43
+ const [menuOpen, setMenuOpen] = useState(false)
35
44
 
36
45
  return (
37
- <MobileNavPanel
38
- isOpen={isNavOpen}
39
- config={navConfig}
46
+ <MobileNavPanel
47
+ isOpen={menuOpen}
48
+ config={{
49
+ onClose: () => setMenuOpen(false),
50
+ sections: [
51
+ {
52
+ title: 'Main',
53
+ items: [
54
+ { id: 'home', label: 'Home', href: '/', icon: <Home />, isActive: true },
55
+ { id: 'settings', label: 'Settings', href: '/settings', icon: <Settings /> },
56
+ ],
57
+ },
58
+ ],
59
+ footer: <button onClick={() => setMenuOpen(false)}>Sign Out</button>,
60
+ }}
40
61
  />
41
62
  )
42
63
  }
43
- ```
44
-
45
- The component automatically handles body scroll prevention, escape key closing, and renders different navigation item types including links, buttons, and custom React elements.
64
+ ```
@@ -0,0 +1,36 @@
1
+ <!-- source-hash: e8725ed939f32a658cd8720c67e49da2 -->
2
+ Header component for the navigation sidebar displaying the OpenFrame logo and text, with animated show/hide behavior based on the sidebar's minimized state.
3
+
4
+ ## Key Components
5
+
6
+ ### `NavigationSidebarHeaderProps`
7
+ | Prop | Type | Description |
8
+ |------|------|-------------|
9
+ | `minimized` | `boolean` | Controls whether the sidebar is in collapsed state |
10
+
11
+ ### `NavigationSidebarHeader`
12
+ Renders a fixed-height (`h-14`) header containing:
13
+ - **`OpenFrameLogo`** — Always visible; uses CSS design tokens for primary text and accent colors
14
+ - **`OpenFrameText`** — Fades in/out with a smooth `opacity` + `margin-left` CSS transition (300ms); hidden from accessibility tree via `aria-hidden` when minimized
15
+
16
+ ## Usage Example
17
+
18
+ ```typescript
19
+ import { NavigationSidebarHeader } from './navigation-sidebar-header'
20
+
21
+ function Sidebar() {
22
+ const [minimized, setMinimized] = useState(false)
23
+
24
+ return (
25
+ <aside>
26
+ <NavigationSidebarHeader minimized={minimized} />
27
+ {/* rest of sidebar content */}
28
+ </aside>
29
+ )
30
+ }
31
+ ```
32
+
33
+ ## Notes
34
+ - Uses `cn()` utility for conditional class merging
35
+ - Relies on CSS design tokens (`--color-text-primary`, `--color-accent-primary`, `--spacing-system-m`, `--spacing-system-xs`) for theming — ensure these variables are defined in the global stylesheet
36
+ - The text element uses `overflow-hidden` + `min-w-0` to prevent layout shift during the collapse transition
@@ -0,0 +1,45 @@
1
+ <!-- source-hash: c8f7676bd726a51b4cf502a4fd6cee17 -->
2
+ Renders an individual navigation sidebar button with support for active state, disabled state, icon rendering, collapsible label visibility, and optional badge display.
3
+
4
+ ## Key Components
5
+
6
+ ### `NavigationSidebarItemButtonProps`
7
+ | Prop | Type | Description |
8
+ |------|------|-------------|
9
+ | `item` | `NavigationSidebarItem` | Navigation item data (label, icon, badge, isActive) |
10
+ | `showLabel` | `boolean` | Controls label and badge visibility (collapsed/expanded sidebar) |
11
+ | `disabled` | `boolean` | Disables interaction and applies reduced-opacity styling |
12
+ | `onClick` | `(item, event?) => void` | Click handler receiving the item and optional mouse event |
13
+
14
+ ### `NavigationSidebarItemButton`
15
+ The primary exported component. Applies four distinct visual states via `cn()`:
16
+
17
+ | State | Appearance |
18
+ |-------|-----------|
19
+ | Default | Primary text, secondary icon fill |
20
+ | Hover (not active) | `ods-bg-hover` background |
21
+ | Active | Yellow-light background, accent text/icon, left accent border |
22
+ | Disabled | 50% opacity, `not-allowed` cursor |
23
+
24
+ ## Usage Example
25
+
26
+ ```typescript
27
+ import { NavigationSidebarItemButton } from './navigation-sidebar-item'
28
+ import { HomeIcon } from '../icons'
29
+
30
+ const item = {
31
+ label: 'Dashboard',
32
+ icon: <HomeIcon />,
33
+ isActive: true,
34
+ badge: '3',
35
+ }
36
+
37
+ <NavigationSidebarItemButton
38
+ item={item}
39
+ showLabel={true}
40
+ disabled={false}
41
+ onClick={(item, event) => console.log('Navigating to', item.label)}
42
+ />
43
+ ```
44
+
45
+ > **Note:** The icon is rendered via `cloneElement` to inject the appropriate `color` prop based on active/disabled state. Ensure icons accept an `IconProps`-compatible interface (`color`, `className`).
@@ -0,0 +1,38 @@
1
+ <!-- source-hash: 239b864e6e86694ea92908db743917ff -->
2
+ A client-side toggle button component for collapsing/expanding the navigation sidebar, with animated chevron icon and a fade-in/out label.
3
+
4
+ ## Key Components
5
+
6
+ ### `NavigationSidebarToggleProps`
7
+ | Prop | Type | Description |
8
+ |------|------|-------------|
9
+ | `minimized` | `boolean` | Whether the sidebar is currently collapsed; rotates the chevron 180° |
10
+ | `showLabel` | `boolean` | Controls opacity/margin animation of the "Hide Menu" label |
11
+ | `onToggle` | `() => void` | Callback fired when the button is clicked |
12
+
13
+ ### `NavigationSidebarToggle`
14
+ A full-width button rendered inside a top-bordered container. Uses `Chevrons03LeftIcon` with a CSS rotation transform when minimized, and a `<span>` label that transitions opacity and margin-left based on `showLabel`.
15
+
16
+ ## Usage Example
17
+
18
+ ```typescript
19
+ import { NavigationSidebarToggle } from './navigation-sidebar-toggle'
20
+ import { useState } from 'react'
21
+
22
+ export function Sidebar() {
23
+ const [minimized, setMinimized] = useState(false)
24
+
25
+ return (
26
+ <nav className={minimized ? 'w-16' : 'w-64'}>
27
+ {/* sidebar content */}
28
+ <NavigationSidebarToggle
29
+ minimized={minimized}
30
+ showLabel={!minimized}
31
+ onToggle={() => setMinimized(prev => !prev)}
32
+ />
33
+ </nav>
34
+ )
35
+ }
36
+ ```
37
+
38
+ > **Note:** `showLabel` and `minimized` are intentionally separate props — this allows the label fade-out animation to complete before the sidebar fully collapses, decoupling visual transitions from layout state.