@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
@@ -1,50 +1,51 @@
1
- <!-- source-hash: 8fc07a96a287d7d30046a7e6b1251b68 -->
2
- A React component that renders platform-specific badges with branded icons, colors, and labels for Flamingo Stack platforms.
1
+ <!-- source-hash: 8742c38ee7680d3664638dd468a8ed67 -->
2
+ A client-side React component that renders a styled badge identifying the source platform of content, with platform-specific icons, colors, and sizing options.
3
3
 
4
4
  ## Key Components
5
5
 
6
- - **PlatformBadge** - Main component that displays a platform badge with icon and optional label
7
- - **PlatformIcon** - Internal component that renders platform-specific icons based on platform name
8
- - **sizeClasses** - Configuration object defining size variants (xs, sm, md) for container, icon, and text
9
- - **platformColors** - Color scheme mapping for each platform (background, border, text colors)
10
- - **PlatformBadgeProps** - TypeScript interface defining component props including platform data, size, and display options
6
+ - **`PlatformBadge`** Main exported component that renders a rounded pill badge with an icon and optional label
7
+ - **`PlatformIcon`** Internal component that resolves the correct logo/icon for a given platform ID
8
+ - **`sizeClasses`** Size variant map (`xs`, `sm`, `md`) controlling container padding, icon dimensions, and text size
9
+ - **`platformColors`** Color theme map per platform, defining background, border, and text Tailwind classes
10
+
11
+ ### Supported Platforms
12
+
13
+ | Platform ID | Color |
14
+ |---|---|
15
+ | `openmsp` | Yellow `#FFC008` |
16
+ | `flamingo` / `flamingo-teaser` | Pink `#FF006E` |
17
+ | `openframe` | Cyan `#00D9D9` |
18
+ | `tmcg` | Magenta `#F357BB` |
19
+ | `company-hub` | Red `#f36666` |
20
+ | `marketing-hub` | Magenta `#F357BB` |
21
+ | `product-hub` | Green `#5EA62E` |
22
+ | `revenue-hub` | Yellow `#FFC008` |
23
+ | `people-hub` | Teal `#5EFAF0` |
24
+ | `universal` (fallback) | Gray `#6B7280` |
11
25
 
12
26
  ## Usage Example
13
27
 
14
28
  ```typescript
15
- import { PlatformBadge } from './components/ui/platform-badge';
16
-
17
- // Basic usage with platform object
18
- <PlatformBadge
19
- platform={{
20
- id: "1",
21
- name: "flamingo",
22
- display_name: "Flamingo"
23
- }}
24
- />
29
+ import { PlatformBadge } from './platform-badge';
25
30
 
26
- // Different sizes and configurations
27
- <PlatformBadge
28
- platform={{
29
- id: "2",
30
- name: "openframe",
31
- display_name: "OpenFrame"
32
- }}
33
- size="md"
31
+ // Basic usage with label
32
+ <PlatformBadge
33
+ platform={{ id: '1', name: 'flamingo', display_name: 'Flamingo' }}
34
+ size="sm"
34
35
  showLabel={true}
35
- className="custom-styles"
36
36
  />
37
37
 
38
- // Icon only (no label)
39
- <PlatformBadge
40
- platform={{
41
- id: "3",
42
- name: "openmsp",
43
- display_name: "OpenMSP"
44
- }}
45
- size="xs"
38
+ // Icon-only, larger size
39
+ <PlatformBadge
40
+ platform={{ id: '2', name: 'openframe', display_name: 'OpenFrame' }}
41
+ size="md"
46
42
  showLabel={false}
47
43
  />
48
- ```
49
44
 
50
- The component supports platforms like Flamingo, OpenMSP, OpenFrame, Admin Hub, and TMCG with their respective brand colors and icons. It gracefully handles unknown platforms with a generic globe icon and gray color scheme.
45
+ // With custom class override
46
+ <PlatformBadge
47
+ platform={{ id: '3', name: 'openmsp', display_name: 'OpenMSP' }}
48
+ size="xs"
49
+ className="opacity-75"
50
+ />
51
+ ```
@@ -1,38 +1,45 @@
1
- <!-- source-hash: 03180f80130a11561f970ec5330ba8be -->
2
- A React component that renders a set of filter buttons for selecting different platforms, with support for icons and customizable styling.
1
+ <!-- source-hash: aa1e11dd3e0b9d6a8141611784c7d212 -->
2
+ A reusable React filter component that renders a row of platform-selection buttons, including an "All Platforms" option, with optional platform icons.
3
3
 
4
4
  ## Key Components
5
5
 
6
- - **PlatformFilterComponentProps** - Interface defining component props including platform selection state, change handler, and styling options
7
- - **PlatformFilterComponent** - Main functional component that renders platform filter buttons with optional icons
8
- - **getSmallPlatformIcon** - Utility function import for retrieving platform-specific icons
6
+ ### `PlatformFilterComponent`
7
+ The primary export — a client-side React component that maps a `PlatformConfig[]` array into toggle buttons, highlighting the currently selected platform using the `"accent"` variant.
8
+
9
+ ### `PlatformFilterComponentProps`
10
+
11
+ | Prop | Type | Default | Description |
12
+ |------|------|---------|-------------|
13
+ | `selectedPlatform` | `string` | — | Currently active platform value (use `'all'` for the global option) |
14
+ | `onPlatformChange` | `(platform: string) => void` | — | Callback fired when a platform button is clicked |
15
+ | `platforms` | `PlatformConfig[]` | `[]` | List of platform options to render |
16
+ | `className` | `string` | `''` | Additional CSS classes for the wrapper `div` |
17
+ | `showIcons` | `boolean` | `true` | Whether to render small platform icons via `getSmallPlatformIcon` |
18
+ | `size` | `'small-legacy' \| 'default'` | `'small-legacy'` | Button size variant |
9
19
 
10
20
  ## Usage Example
11
21
 
12
22
  ```typescript
13
23
  import { PlatformFilterComponent } from './platform-filter';
14
- import type { PlatformConfig } from '../types/platform';
24
+ import type { PlatformConfig } from '../../types/platform';
15
25
 
16
26
  const platforms: PlatformConfig[] = [
17
- { value: 'ios', label: 'iOS' },
18
- { value: 'android', label: 'Android' },
19
- { value: 'web', label: 'Web' }
27
+ { value: 'connectwise', label: 'ConnectWise' },
28
+ { value: 'halo', label: 'HaloPSA' },
20
29
  ];
21
30
 
22
- function AppFilters() {
23
- const [selectedPlatform, setSelectedPlatform] = useState('all');
31
+ function TicketFilters() {
32
+ const [platform, setPlatform] = React.useState('all');
24
33
 
25
34
  return (
26
35
  <PlatformFilterComponent
27
- selectedPlatform={selectedPlatform}
28
- onPlatformChange={setSelectedPlatform}
36
+ selectedPlatform={platform}
37
+ onPlatformChange={setPlatform}
29
38
  platforms={platforms}
30
39
  showIcons={true}
31
- size="default"
32
- className="my-4"
33
40
  />
34
41
  );
35
42
  }
36
43
  ```
37
44
 
38
- The component renders an "All Platforms" button followed by individual platform buttons, with the selected platform highlighted using the primary variant. Icons are displayed by default and can be toggled via the `showIcons` prop.
45
+ > **Note:** Platform icons are resolved via the shared `getSmallPlatformIcon` utility in `platform-config`. To add a new platform, extend the `PlatformConfig` type and register its icon there rather than modifying this component.
@@ -1,66 +1,58 @@
1
- <!-- source-hash: c4760001ccc6ea7295fa325e79556bf6 -->
2
- A comprehensive React component that renders an expandable permission policy configuration interface with hierarchical categories and granular policy controls.
1
+ <!-- source-hash: bd515872f4cb1c49add8d17631e037c5 -->
2
+ A React panel component for displaying and editing permission policies grouped by category, supporting both view and edit modes with animated expand/collapse behavior.
3
3
 
4
4
  ## Key Components
5
5
 
6
- **PolicyConfigurationPanel**: Main container component that renders a list of expandable permission categories with global and individual policy settings.
7
-
8
- **CategorySection**: Individual category component with animated expansion/collapse, global permission dropdown, and policy list management.
9
-
10
- **PolicyRow**: Individual policy item component displaying tool icon, policy details (name and command pattern), and permission level dropdown.
11
-
12
- **useAnimatedHeight**: Custom hook providing smooth height animations for expanding/collapsing category sections.
13
-
14
- **Helper Functions**:
15
- - `getApprovalLevelLabel()`: Maps approval level values to user-friendly labels
16
- - `approvalLevelOptions`: Predefined approval level configuration
6
+ | Export / Internal | Type | Description |
7
+ |---|---|---|
8
+ | `PolicyConfigurationPanel` | Component (exported) | Root panel rendering all permission categories |
9
+ | `CategorySection` | Internal component | Collapsible category with global permission dropdown |
10
+ | `PolicyRow` | Internal component | Single policy entry with approval level selector |
11
+ | `useAnimatedHeight` | Custom hook | Smooth height animation for expand/collapse transitions |
12
+ | `approvalLevelOptions` | Constant | Available levels: `ALLOW`, `ASK_USER`, `ASK_TECHNICIAN`, `DENY` |
13
+ | `getApprovalLevelLabel` | Utility fn | Resolves `ApprovalLevel` enum to display string |
17
14
 
18
15
  ## Usage Example
19
16
 
20
17
  ```typescript
21
18
  import { PolicyConfigurationPanel } from './policy-configuration-panel'
22
-
23
- function PermissionsSettings() {
24
- const [categories, setCategories] = useState<PermissionCategory[]>([
25
- {
26
- id: 'network',
27
- name: 'Network Tools',
28
- icon: '🌐',
29
- configurationsCount: 5,
30
- isExpanded: false,
31
- globalPermission: 'ASK_USER',
32
- policies: [
33
- {
34
- id: 'ping',
35
- name: 'Ping Command',
36
- toolName: 'ping',
37
- commandPattern: 'ping -c 4 {host}',
38
- approvalLevel: 'ALLOW'
39
- }
40
- ]
41
- }
42
- ])
43
-
44
- return (
45
- <PolicyConfigurationPanel
46
- categories={categories}
47
- editMode={true}
48
- onCategoryToggle={(categoryId) => {
49
- setCategories(prev => prev.map(cat =>
50
- cat.id === categoryId
51
- ? { ...cat, isExpanded: !cat.isExpanded }
52
- : cat
53
- ))
54
- }}
55
- onGlobalPermissionChange={(categoryId, level) => {
56
- // Update global permission logic
57
- }}
58
- onPolicyPermissionChange={(categoryId, policyId, level) => {
59
- // Update individual policy logic
60
- }}
61
- />
62
- )
63
- }
19
+ import { PermissionCategory, ApprovalLevel } from '../../types/permissions'
20
+
21
+ const categories: PermissionCategory[] = [
22
+ {
23
+ id: 'network',
24
+ name: 'Network',
25
+ icon: <NetworkIcon />,
26
+ configurationsCount: 3,
27
+ isExpanded: false,
28
+ globalPermission: 'ALLOW',
29
+ policies: [
30
+ {
31
+ id: 'ping',
32
+ name: 'Ping Host',
33
+ commandPattern: 'ping *',
34
+ toolName: 'network',
35
+ approvalLevel: 'ALLOW',
36
+ },
37
+ ],
38
+ },
39
+ ]
40
+
41
+ <PolicyConfigurationPanel
42
+ categories={categories}
43
+ editMode={true}
44
+ onCategoryToggle={(categoryId) => toggleCategory(categoryId)}
45
+ onGlobalPermissionChange={(categoryId, level) => setGlobal(categoryId, level)}
46
+ onPolicyPermissionChange={(categoryId, policyId, level) =>
47
+ updatePolicy(categoryId, policyId, level)
48
+ }
49
+ className="my-4"
50
+ />
64
51
  ```
65
52
 
66
- The component features smooth animations, responsive design, and comprehensive permission management with support for both category-level global permissions and individual policy-level controls.
53
+ ## Behavior Notes
54
+
55
+ - In **edit mode**, dropdowns allow selecting approval levels per policy or globally per category
56
+ - In **view mode**, current levels are rendered as static text
57
+ - `useAnimatedHeight` uses `scrollHeight` measurement + CSS transitions for smooth accordion animation
58
+ - Category header clicks and the chevron button both toggle expansion; dropdown clicks use `stopPropagation` to prevent conflicts
@@ -1,50 +1,47 @@
1
- <!-- source-hash: 274a22be0c31fdc49ccdc0daf827abd4 -->
2
- A React component that renders authentication provider buttons with integrated loading states and consistent styling for OAuth sign-in flows.
1
+ <!-- source-hash: 18cb2f4cc768f6f9efb9b720bfbd1714 -->
2
+ A reusable OAuth provider sign-in button component that handles loading states, click propagation, and renders the appropriate provider icon and label.
3
3
 
4
4
  ## Key Components
5
5
 
6
- **ProviderButton Component**
7
- - `ProviderButtonProps` - Interface defining provider type, click handler, and optional disabled/loading states
8
- - `PROVIDER_CONFIG` - Configuration object mapping provider names to display text and icons
9
- - Supports Microsoft, Google, Slack, and GitHub authentication providers
6
+ ### `ProviderButtonProps`
7
+ | Prop | Type | Description |
8
+ |------|------|-------------|
9
+ | `provider` | `'microsoft' \| 'google' \| 'slack' \| 'github'` | OAuth provider to render |
10
+ | `onClick` | `() => Promise<void> \| void` | Sign-in handler (sync or async) |
11
+ | `disabled` | `boolean` | Disables the button (default: `false`) |
12
+ | `loading` | `boolean` | External loading state override (default: `false`) |
10
13
 
11
- **Key Features**
12
- - Dual loading state management (internal and external)
13
- - Event bubbling prevention for modal contexts
14
- - Consistent styling with hover states and accessibility labels
15
- - Error handling with console logging
14
+ ### `PROVIDER_CONFIG`
15
+ Static map linking each provider key to its display name and icon component.
16
+
17
+ ### `ProviderButton`
18
+ Main exported component. Manages an internal loading state that activates during async `onClick` execution, falling back gracefully when an external `loading` prop is passed. Stops click propagation to prevent accidental modal/backdrop dismissals.
16
19
 
17
20
  ## Usage Example
18
21
 
19
22
  ```typescript
20
23
  import { ProviderButton } from './provider-button';
21
24
 
22
- function SignInModal() {
23
- const [loading, setLoading] = useState(false);
25
+ async function handleMicrosoftSignIn() {
26
+ await signIn('microsoft');
27
+ }
28
+
29
+ // Basic usage
30
+ <ProviderButton provider="microsoft" onClick={handleMicrosoftSignIn} />
24
31
 
25
- const handleGoogleSignIn = async () => {
32
+ // With external loading control
33
+ const [loading, setLoading] = useState(false);
34
+
35
+ <ProviderButton
36
+ provider="google"
37
+ onClick={async () => {
26
38
  setLoading(true);
27
- try {
28
- await signInWithGoogle();
29
- } finally {
30
- setLoading(false);
31
- }
32
- };
33
-
34
- return (
35
- <div className="space-y-3">
36
- <ProviderButton
37
- provider="google"
38
- onClick={handleGoogleSignIn}
39
- loading={loading}
40
- />
41
- <ProviderButton
42
- provider="github"
43
- onClick={() => signInWithGitHub()}
44
- />
45
- </div>
46
- );
47
- }
39
+ await signIn('google');
40
+ setLoading(false);
41
+ }}
42
+ loading={loading}
43
+ disabled={loading}
44
+ />
48
45
  ```
49
46
 
50
- The component automatically handles loading states, displays appropriate icons, and provides consistent UX patterns for authentication flows across different OAuth providers.
47
+ > **Note:** When `loading` is provided externally, internal loading state management is skipped to avoid state conflicts.
@@ -1,51 +1,62 @@
1
- <!-- source-hash: 4405e37ec9d96729a3270f3e6a23dc05 -->
2
- A reusable React component that provides an interactive list of selectable options with visual feedback, supporting both single and multi-selection modes with comprehensive loading, error, and validation states.
1
+ <!-- source-hash: 07ba5865678ee01e8867762d1e641327 -->
2
+ A reusable React selector component that renders options as push-button cards with checkbox indicators, supporting single/multi-select, grouped sections, loading skeletons, and error states.
3
3
 
4
4
  ## Key Components
5
5
 
6
- - **`SelectableOption`** - Interface defining the structure for selectable items with optional metadata
7
- - **`PushButtonSelector`** - Main component providing clickable option selection with visual indicators
8
- - **`PushButtonSelectorSkeleton`** - Loading state component with animated placeholders
9
- - **`PushButtonSelectorError`** - Error state component with themed error messaging
6
+ | Export | Type | Description |
7
+ |--------|------|-------------|
8
+ | `PushButtonSelector` | Component | Main selector rendered as interactive card list |
9
+ | `SelectableOption` | Interface | Shape of each selectable item (id, name, icon, section, etc.) |
10
+ | `SectionDefinition` | Interface | Defines a named group to bucket options under |
11
+ | `PushButtonSelectorSkeleton` | Internal | Animated skeleton shown during `isLoading` |
12
+ | `PushButtonSelectorError` | Internal | Error panel using ODS error tokens |
13
+
14
+ ## Key Props
15
+
16
+ | Prop | Type | Default | Description |
17
+ |------|------|---------|-------------|
18
+ | `options` | `SelectableOption[]` | — | All available options |
19
+ | `selectedIds` | `string[]` | — | Controlled selected IDs |
20
+ | `onSelectionChange` | `(ids: string[]) => void` | — | Fires on toggle |
21
+ | `multiSelect` | `boolean` | `true` | Allow multiple selections |
22
+ | `sections` | `SectionDefinition[]` | — | Groups options under labeled headers |
23
+ | `selectionSummary` | `boolean` | `false` | Shows badge summary of selected items |
24
+ | `optional` | `boolean` | `false` | Suppresses empty-state warning |
25
+ | `isLoading` | `boolean` | `false` | Renders skeleton UI |
26
+ | `error` | `string \| null` | `null` | Renders error panel |
10
27
 
11
28
  ## Usage Example
12
29
 
13
30
  ```typescript
14
- import { PushButtonSelector, SelectableOption } from './push-button-selector';
31
+ import { PushButtonSelector, SelectableOption, SectionDefinition } from './push-button-selector';
15
32
 
16
33
  const platforms: SelectableOption[] = [
17
- {
18
- id: '1',
19
- name: 'github',
20
- displayName: 'GitHub',
21
- description: 'Version control platform',
22
- icon: <GitHubIcon />,
23
- disabled: false
24
- },
25
- {
26
- id: '2',
27
- name: 'gitlab',
28
- displayName: 'GitLab',
29
- description: 'DevOps platform',
30
- icon: <GitLabIcon />
31
- }
34
+ { id: 'uuid-1', name: 'connectwise', displayName: 'ConnectWise', description: 'PSA platform', section: 'psa' },
35
+ { id: 'uuid-2', name: 'halo', displayName: 'HaloPSA', description: 'PSA platform', section: 'psa' },
36
+ { id: 'uuid-3', name: 'ninja', displayName: 'NinjaRMM', description: 'RMM platform', section: 'rmm' },
32
37
  ];
33
38
 
34
- function PlatformSelector() {
35
- const [selected, setSelected] = useState<string[]>([]);
39
+ const sections: SectionDefinition[] = [
40
+ { id: 'psa', label: 'PSA Tools' },
41
+ { id: 'rmm', label: 'RMM Tools' },
42
+ ];
43
+
44
+ function IntegrationPicker() {
45
+ const [selected, setSelected] = React.useState<string[]>([]);
36
46
 
37
47
  return (
38
48
  <PushButtonSelector
39
49
  options={platforms}
40
50
  selectedIds={selected}
41
51
  onSelectionChange={setSelected}
42
- title="Select Platforms"
43
- multiSelect={true}
44
- selectionSummary={true}
45
- helpText="Choose one or more platforms to integrate"
52
+ sections={sections}
53
+ title="Select Integrations"
54
+ helpText="Choose the platforms to connect."
55
+ selectionSummary
56
+ multiSelect
46
57
  />
47
58
  );
48
59
  }
49
60
  ```
50
61
 
51
- The component features hover effects, selection validation, skeleton loading states, and comprehensive error handling with ODS (OpenFrame Design System) styling.
62
+ > **Note:** Invalid `selectedIds` (IDs not present in `options`) are silently filtered once `options` has loaded. A `console.warn` is emitted in `development` mode to aid debugging.
@@ -1,43 +1,58 @@
1
- <!-- source-hash: 0b2642ad551b655994b6986eb6e18999 -->
2
- A comprehensive React component for managing media uploads and organization in release creation, featuring drag-and-drop reordering, real-time upload states, and media type categorization.
1
+ <!-- source-hash: 567153c4bee0ea823c8dcb3ad142df21 -->
2
+ A React client component for managing media attachments (images, videos, screenshots, demos) on release entries, supporting file upload, drag-to-reorder, and inline editing.
3
3
 
4
4
  ## Key Components
5
5
 
6
- - **`ReleaseMediaItem`** - Interface defining media items with type, URL, metadata, and upload state
7
- - **`ReleaseMediaManagerProps`** - Component props including media array, change handler, and upload function
8
- - **`ReleaseMediaManager`** - Main component with file upload, preview, editing, and reordering capabilities
6
+ ### `ReleaseMediaItem` (interface)
7
+ Represents a single media entry with the following fields:
8
+
9
+ | Field | Type | Description |
10
+ |-------|------|-------------|
11
+ | `media_type` | `'image' \| 'video' \| 'screenshot' \| 'demo'` | Category of media |
12
+ | `media_url` | `string` | Public URL after upload |
13
+ | `title` | `string?` | Optional display title |
14
+ | `description` | `string?` | Optional description |
15
+ | `display_order` | `number?` | Sort position in gallery |
16
+ | `_file` | `File?` | Temporary pre-upload file reference |
17
+ | `_uploading` | `boolean?` | Upload in-progress flag |
18
+
19
+ ### `ReleaseMediaManager` (component)
20
+
21
+ **Props:**
22
+
23
+ | Prop | Type | Description |
24
+ |------|------|-------------|
25
+ | `media` | `ReleaseMediaItem[]` | Controlled media list |
26
+ | `onChange` | `(media: ReleaseMediaItem[]) => void` | Called on any list mutation |
27
+ | `onUpload` | `(file, mediaType) => Promise<string>` | Handles actual file upload, returns URL |
28
+ | `className` | `string?` | Optional wrapper class |
29
+
30
+ **Internal behaviors:**
31
+ - `handleFileSelect` — detects file MIME type, auto-assigns `media_type`, triggers `onUpload`, rolls back on failure
32
+ - `removeMedia` — removes item by index
33
+ - `updateMedia` — updates a single field on an existing item
34
+ - `handleDragStart` / `handleDragOver` / `handleDrop` — native HTML5 drag-and-drop reordering, updates `display_order` on drop
9
35
 
10
36
  ## Usage Example
11
37
 
12
38
  ```typescript
13
39
  import { ReleaseMediaManager, ReleaseMediaItem } from './release-media-manager';
14
40
 
15
- function ReleaseForm() {
16
- const [media, setMedia] = useState<ReleaseMediaItem[]>([]);
17
-
18
- const handleUpload = async (file: File, mediaType: string) => {
19
- // Upload logic - return uploaded URL
20
- const formData = new FormData();
21
- formData.append('file', file);
22
-
23
- const response = await fetch('/api/upload', {
24
- method: 'POST',
25
- body: formData
26
- });
27
-
28
- const { url } = await response.json();
29
- return url;
30
- };
31
-
32
- return (
33
- <ReleaseMediaManager
34
- media={media}
35
- onChange={setMedia}
36
- onUpload={handleUpload}
37
- className="w-full"
38
- />
39
- );
41
+ const [media, setMedia] = useState<ReleaseMediaItem[]>([]);
42
+
43
+ async function uploadToStorage(file: File, mediaType: string): Promise<string> {
44
+ const formData = new FormData();
45
+ formData.append('file', file);
46
+ const res = await fetch('/api/upload', { method: 'POST', body: formData });
47
+ const { url } = await res.json();
48
+ return url;
40
49
  }
50
+
51
+ <ReleaseMediaManager
52
+ media={media}
53
+ onChange={setMedia}
54
+ onUpload={uploadToStorage}
55
+ />
41
56
  ```
42
57
 
43
- The component supports automatic file type detection, real-time upload progress, drag-and-drop reordering, and provides a responsive grid layout with preview functionality for both images and videos.
58
+ > **Note:** The component is fully controlled the parent owns the `media` array. Failed uploads automatically roll back to the previous state without manual intervention.
@@ -1,56 +1,51 @@
1
- <!-- source-hash: 4f16f50a29435f77c23b9c708e9e4a98 -->
2
- A React component that renders a configurable section selector with button-style navigation items, supporting both vertical and wrap layouts with badges, icons, and descriptions.
1
+ <!-- source-hash: 760f28bd91ca25a2a1341b709f1c96c4 -->
2
+ A client-side navigation component that renders a list of selectable section buttons with support for vertical and wrap layouts, optional badges, icons, descriptions, and active state highlighting.
3
3
 
4
4
  ## Key Components
5
5
 
6
- **Interfaces:**
7
- - `SectionItem` - Configuration for individual section buttons including title, badge, icons, and state
8
- - `SectionSelectorProps` - Main component props with layout, styling, and behavior options
6
+ ### Interfaces
9
7
 
10
- **Components:**
11
- - `SectionButton` - Internal button component handling individual section rendering
12
- - `SectionSelector` - Main component that renders the collection of section buttons
8
+ - **`SectionItem`** — Defines a single section entry with `id`, `title`, optional `subtitle`, `description`, `number`, `leftIcon`, `badge`, `screenshots`, and `disabled` flag.
9
+ - **`SectionSelectorProps`** — Configuration for the selector including `sections`, `activeSection`, `onSectionChange` callback, `layout`, `buttonWidth`, `minHeight`, and display toggles.
13
10
 
14
- **Key Features:**
15
- - Two layout modes: `vertical` (stacked) and `wrap` (flexible grid)
16
- - Status badges with customizable variants and color schemes
17
- - Optional left icons, numbering, and descriptions
18
- - Responsive button widths (`auto`, `full`, `responsive`)
19
- - Disabled state support at item and component level
11
+ ### Components
12
+
13
+ - **`SectionButton`** *(internal)* Renders an individual section button. Supports two layout modes:
14
+ - `vertical` — Displays number prefix, left icon, title, badge, and description stacked.
15
+ - `wrap` Displays left icon, title, badge, and subtitle in a compact horizontal card.
16
+ - **`SectionSelector`** *(exported)* Orchestrates the full selector by mapping `sections` to `SectionButton` instances inside a flex container.
20
17
 
21
18
  ## Usage Example
22
19
 
23
20
  ```typescript
24
- import { SectionSelector, SectionItem } from './components/section-selector'
25
- import { Settings, User } from 'lucide-react'
21
+ import SectionSelector, { SectionItem } from './section-selector'
26
22
 
27
23
  const sections: SectionItem[] = [
28
24
  {
29
- id: 'profile',
30
- title: 'User Profile',
31
- description: 'Manage your account settings',
32
- leftIcon: <User size={20} />,
33
- badge: { text: 'New', colorScheme: 'green' }
25
+ id: 'overview',
26
+ title: 'Overview',
27
+ subtitle: 'General information',
28
+ badge: { text: 'New', colorScheme: 'green' },
34
29
  },
35
30
  {
36
31
  id: 'settings',
37
- title: 'Application Settings',
38
- subtitle: 'Configure app preferences',
39
- leftIcon: <Settings size={20} />,
40
- number: '2'
41
- }
32
+ title: 'Settings',
33
+ description: 'Configure your preferences',
34
+ number: '02',
35
+ disabled: false,
36
+ },
42
37
  ]
43
38
 
44
- function NavigationPanel() {
45
- const [activeSection, setActiveSection] = useState('profile')
39
+ export default function Page() {
40
+ const [active, setActive] = React.useState('overview')
46
41
 
47
42
  return (
48
43
  <SectionSelector
49
44
  sections={sections}
50
- activeSection={activeSection}
51
- onSectionChange={setActiveSection}
45
+ activeSection={active}
46
+ onSectionChange={setActive}
52
47
  layout="vertical"
53
- buttonWidth="responsive"
48
+ buttonWidth="full"
54
49
  showDescription={true}
55
50
  />
56
51
  )