@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,41 +1,48 @@
1
- <!-- source-hash: b79fb965ec043fff7ff7066e9d359aa6 -->
2
- A reusable dashboard metrics card component that displays key performance indicators with optional progress visualization and navigation capabilities.
1
+ <!-- source-hash: ad7aa24ce00c67388baad4341f1e3d5b -->
2
+ A dashboard metric card component that displays a title, value, optional percentage, circular progress indicator, and tooltip — supporting both static and navigable (linked) variants.
3
3
 
4
4
  ## Key Components
5
5
 
6
- - **DashboardInfoCard**: Main component that renders a card with title, value, optional percentage, and circular progress indicator
7
- - **Props Interface**: Comprehensive configuration including styling, navigation (`href`), click handlers, and progress display options
8
- - **Navigation Logic**: Supports both programmatic navigation via `href` prop and custom click handlers via `onClick`
9
- - **Value Formatting**: Automatically formats numeric values with locale-appropriate thousand separators
6
+ ### `DashboardInfoCard`
7
+ Main export. Renders a styled card with:
8
+ - **Title** secondary text label
9
+ - **Value** formatted number (via `toLocaleString`) or string, with optional custom className
10
+ - **Percentage** — displayed as a `Tag` (for `warning`/`error` variants) or plain secondary text
11
+ - **Circular progress ring** — shown when `showProgress` and `percentage` are both provided
12
+ - **Tooltip** — question-mark icon trigger via `FloatingTooltip`
13
+ - **Link behavior** — when `href` is supplied, renders as a Next.js `Link` with hover accent styles
14
+
15
+ ### `DashboardInfoCardProps`
16
+ Interface driving all card configuration, including `progressOverflow` which controls how the `CircularProgress` ring handles values exceeding 100 (`'clamp'` default or `'wrap'` for overflow/overage display).
10
17
 
11
18
  ## Usage Example
12
19
 
13
20
  ```typescript
14
- import { DashboardInfoCard } from './dashboard-info-card'
15
-
16
- // Basic usage with navigation
21
+ // Static metric card
17
22
  <DashboardInfoCard
18
- title="Total Users"
19
- value={1250}
20
- href="/dashboard/users"
23
+ title="Open Tickets"
24
+ value={142}
25
+ percentage={72}
26
+ showProgress
27
+ progressVariant="warning"
28
+ tooltip="Tickets currently unresolved"
21
29
  />
22
30
 
23
- // With progress indicator and custom styling
31
+ // Navigable card with overflow progress
24
32
  <DashboardInfoCard
25
- title="Server Uptime"
26
- value="99.9"
27
- percentage={99.9}
28
- showProgress={true}
29
- progressColor="#00ff88"
30
- className="col-span-2"
33
+ title="SLA Breaches"
34
+ value={18}
35
+ percentage={110}
36
+ showProgress
37
+ progressVariant="error"
38
+ progressOverflow="wrap"
39
+ href="/reports/sla"
31
40
  />
32
41
 
33
- // With custom click handler
42
+ // Simple card, no progress
34
43
  <DashboardInfoCard
35
- title="Active Sessions"
36
- value={847}
37
- onClick={() => console.log('Sessions clicked')}
44
+ title="Devices Online"
45
+ value="1,024"
46
+ className="col-span-2"
38
47
  />
39
- ```
40
-
41
- The component uses the `InteractiveCard` wrapper for consistent hover states and accessibility, with special styling for navigation-enabled cards that highlight on hover. Progress visualization is provided through the `CircularProgress` component when enabled.
48
+ ```
@@ -1,44 +1,46 @@
1
- <!-- source-hash: d6fe11c9ed7217421566bb0d75070790 -->
2
- A date picker component built with Radix UI Popover and react-day-picker, supporting both single date and date range selection modes with customizable styling and locale support.
1
+ <!-- source-hash: c8a503e7c476a61ed70475150ecd1672 -->
2
+ A composable date picker component supporting both single-date and date-range selection modes, built on `react-day-picker` and `@radix-ui/react-popover` with Flamingo's design system tokens.
3
3
 
4
4
  ## Key Components
5
5
 
6
- ### Types
7
- - **`DatePickerMode`** - Union type for picker modes: "single" | "range"
8
- - **`DatePickerBaseProps`** - Shared props interface with placeholder, formatting, and constraints
9
- - **`SingleDatePickerProps`** - Props for single date selection mode
10
- - **`RangeDatePickerProps`** - Props for date range selection mode
11
- - **`DatePickerProps`** - Union of single and range props
12
-
13
- ### Components
14
- - **`CalendarNavButton`** - Navigation button for previous/next month controls
15
- - **`DatePickerCalendar`** - Core calendar component with month navigation and date selection
16
- - **Helper functions** - `defaultFormatDate` and `formatDateRange` for date formatting
6
+ | Export | Type | Description |
7
+ |--------|------|-------------|
8
+ | `DatePickerProps` | Type | Union of `SingleDatePickerProps` \| `RangeDatePickerProps` |
9
+ | `DatePickerMode` | Type | `"single"` \| `"range"` |
10
+ | `DatePickerBaseProps` | Interface | Shared props: `placeholder`, `disabled`, `fromDate`, `toDate`, `label`, `error`, `invalid`, `locale` |
11
+ | `SingleDatePickerProps` | Interface | Extends base; `value: Date`, `onChange: (date) => void` |
12
+ | `RangeDatePickerProps` | Interface | Extends base; `value: DateRange`, `onChange: (range) => void` |
13
+ | `DatePickerCalendar` | Component | Internal calendar renderer with custom nav and range styling |
14
+ | `CalendarNavButton` | Component | Chevron nav button wrapping Flamingo `Button` |
17
15
 
18
16
  ## Usage Example
19
17
 
20
18
  ```typescript
21
- import { DatePicker } from "./date-picker";
22
-
23
19
  // Single date picker
24
20
  <DatePicker
25
21
  mode="single"
22
+ label="Start Date"
26
23
  value={selectedDate}
27
- onChange={setSelectedDate}
28
- placeholder="Select a date"
29
- formatDate={(date) => date.toLocaleDateString()}
24
+ onChange={(date) => setSelectedDate(date)}
25
+ fromDate={new Date()}
30
26
  />
31
27
 
32
- // Date range picker
28
+ // Date range picker (dual month)
33
29
  <DatePicker
34
30
  mode="range"
35
- value={selectedRange}
36
- onChange={setSelectedRange}
31
+ label="Date Range"
37
32
  numberOfMonths={2}
38
- placeholder="Select date range"
39
- fromDate={new Date()}
40
- toDate={new Date(Date.now() + 365 * 24 * 60 * 60 * 1000)}
33
+ value={range}
34
+ onChange={(range) => setRange(range)}
35
+ error={formError}
36
+ invalid={!!formError}
41
37
  />
42
38
  ```
43
39
 
44
- The component features custom dark theme styling with Flamingo brand colors (#ffc008), responsive design, and accessibility support through ARIA labels and keyboard navigation.
40
+ ## Key Behaviors
41
+
42
+ - **Single mode**: renders one `DayPicker` month with custom nav header
43
+ - **Range mode**: supports 1 or 2 simultaneous months; range start/end use accent color (`--ods-accent`), range middle uses `--ods-open-yellow-light`
44
+ - **Popover trigger**: displays a calendar icon with formatted date or placeholder text; applies red border when `invalid={true}`
45
+ - **Month navigation**: controlled internally via `useState<Date>`, independent of `DayPicker`'s built-in nav (hidden via `hideNavigation`)
46
+ - **Locale support**: passes `locale` prop directly to `DayPicker` for i18n formatting
@@ -1,46 +1,45 @@
1
- <!-- source-hash: 208410c670289a616bb1324ae6148df2 -->
2
- A compact React component that renders device information (name and organization) in a space-efficient vertical layout, primarily designed for use in table cells or other constrained spaces.
1
+ <!-- source-hash: e2dcd0d341956fecb4817f070e40d10a -->
2
+ Compact React component for displaying device name and organization in a stacked layout, optimized for use within table cells.
3
3
 
4
4
  ## Key Components
5
5
 
6
- - **`DeviceCardCompactProps`** - Interface extending HTML div attributes with optional `deviceName` and `organization` props
7
- - **`DeviceCardCompact`** - React functional component that conditionally renders device details in a stacked layout
8
- - **Value validation** - Built-in filtering for null, undefined, '-', and string 'null' values
9
- - **Empty state handling** - Returns empty fragment when no valid data is present
6
+ ### `DeviceCardCompactProps`
7
+ Extends `React.HTMLAttributes<HTMLDivElement>` with two optional fields:
8
+
9
+ | Prop | Type | Description |
10
+ |------|------|-------------|
11
+ | `deviceName` | `string \| null` | Primary label shown in larger text |
12
+ | `organization` | `string \| null` | Secondary label shown in smaller muted text |
13
+
14
+ ### `DeviceCardCompact`
15
+ A display-only component that renders device info in a vertical flex column. Performs null-safety checks against `null`, `undefined`, `'-'`, and the string `'null'`. Returns an empty fragment when both values are absent.
10
16
 
11
17
  ## Usage Example
12
18
 
13
19
  ```typescript
14
- import { DeviceCardCompact } from './device-card-compact'
15
-
16
20
  // Basic usage in a table cell
17
- <td>
18
- <DeviceCardCompact
19
- deviceName="iPad Pro 12.9"
20
- organization="Engineering Team"
21
- />
22
- </td>
23
-
24
- // With custom styling
25
- <DeviceCardCompact
26
- deviceName="MacBook Air"
27
- organization="Design Department"
28
- className="border rounded p-2"
21
+ <DeviceCardCompact
22
+ deviceName="DESKTOP-ABC123"
23
+ organization="Acme Corp"
29
24
  />
30
25
 
31
- // Handles missing/invalid data gracefully
32
- <DeviceCardCompact
26
+ // Handles missing/invalid values gracefully - renders nothing
27
+ <DeviceCardCompact
33
28
  deviceName={null}
34
29
  organization="-"
35
- // Returns empty fragment - nothing rendered
36
30
  />
37
31
 
38
- // Only organization available
39
- <DeviceCardCompact
40
- deviceName=""
41
- organization="Marketing Team"
42
- // Only shows organization
32
+ // With custom className
33
+ <DeviceCardCompact
34
+ deviceName="SERVER-01"
35
+ organization={null}
36
+ className="max-w-[200px]"
43
37
  />
44
38
  ```
45
39
 
46
- The component uses Tailwind CSS with custom font styling and automatically truncates long text to prevent layout overflow.
40
+ ## Behavior Notes
41
+
42
+ - **Empty state**: Returns `<></>` when both props are falsy, `'-'`, or `'null'`
43
+ - **Partial render**: Renders only the available field when one value is missing
44
+ - **Overflow**: Both labels use `truncate` with a `title` attribute for full text on hover
45
+ - **Typography**: Device name renders at `16px` (`ods-text-primary`); organization at `14px` (`ods-text-secondary`)
@@ -1,43 +1,43 @@
1
- <!-- source-hash: 20e16cdb03f6879f6848856b39fb1030 -->
2
- A React component that renders device information in a structured card layout with interactive actions and customizable visual elements.
1
+ <!-- source-hash: c41a33e86906d6bdb122fe05e0b8b30c -->
2
+ A React client component that renders a styled card UI for displaying device information, including OS type, organization, status, last seen timestamp, and tags.
3
3
 
4
4
  ## Key Components
5
5
 
6
- - **Device Interface**: Comprehensive device data model supporting various device types, OS platforms, and metadata
7
- - **ActionButton Interface**: Configuration for custom action buttons with labels and click handlers
8
- - **DeviceCardProps Interface**: Props interface extending HTML div attributes with device data and action configuration
9
- - **DeviceCard Component**: Main card component with four distinct content rows (header, OS/organization, actions, status/tags)
10
- - **formatLastSeen Function**: Internal utility for formatting date/time strings in YYYY/MM/DD, HH:MM format
6
+ ### Interfaces
7
+ - **`Device`** Core device data model with fields for `id`, `name`, `type`, `operatingSystem`, `organization`, `status`, `lastSeen`, `tags`, and network properties (`ipAddress`, `macAddress`, etc.)
8
+ - **`ActionButton`** Configuration for custom action buttons with `label`, `onClick`, `variant`, and `visible` controls
9
+ - **`DeviceCardProps`** Extends `HTMLAttributes<HTMLDivElement>` with `device`, `actions`, `statusTag`, and `onDeviceClick`
10
+
11
+ ### Main Export
12
+ - **`DeviceCard`** — The primary card component rendering a two-row layout: device identity (icon, name, OS, org, action buttons) and metadata (status tag, last seen, tags)
11
13
 
12
14
  ## Usage Example
13
15
 
14
16
  ```typescript
15
- import { DeviceCard, Device } from './device-card'
16
-
17
- const device: Device = {
18
- id: '123',
19
- name: 'MacBook Pro',
20
- type: 'laptop',
21
- operatingSystem: 'darwin',
22
- organization: 'Acme Corp',
23
- status: 'active',
24
- lastSeen: new Date(),
25
- tags: ['development', 'remote']
26
- }
17
+ import { DeviceCard } from './device-card'
27
18
 
28
19
  <DeviceCard
29
- device={device}
20
+ device={{
21
+ name: "WORKSTATION-01",
22
+ operatingSystem: "windows",
23
+ organization: "Acme Corp",
24
+ status: "active",
25
+ lastSeen: new Date(),
26
+ tags: ["managed", "production"],
27
+ }}
30
28
  actions={{
31
- moreButton: { visible: true, onClick: () => console.log('More clicked') },
32
- detailsButton: { visible: true, component: <Button>Details</Button> },
29
+ moreButton: { visible: true, onClick: () => console.log("more clicked") },
33
30
  customActions: [
34
- { label: 'Connect', onClick: () => connect(device.id) },
35
- { label: 'Restart', onClick: () => restart(device.id) }
31
+ { label: "Remote", onClick: () => startRemoteSession(), visible: true }
36
32
  ]
37
33
  }}
38
- statusBadgeComponent={<StatusBadge status={device.status} />}
39
- onDeviceClick={(device) => navigate(`/devices/${device.id}`)}
34
+ statusTag={{ variant: "success", label: "Online" }}
35
+ onDeviceClick={(device) => router.push(`/devices/${device.id}`)}
40
36
  />
41
37
  ```
42
38
 
43
- The component uses OpenFrame's design system (ODS) classes and supports both legacy OS identifiers and the newer OSPlatformId system for cross-compatibility.
39
+ ## Notes
40
+
41
+ - `operatingSystem` supports both `OSPlatformId` values and legacy strings (`macos`, `ios`, `android`); `macos` is internally mapped to `darwin` for icon resolution
42
+ - Action buttons use `e.stopPropagation()` to prevent triggering `onDeviceClick` when interacting with controls
43
+ - `lastSeen` accepts either a `string` or `Date` and formats to `YYYY/MM/DD, HH:MM`
@@ -1,30 +1,36 @@
1
- <!-- source-hash: 2adff8bf876dd4a242bbb418cc3662e5 -->
2
- A styled dialog component system built on top of Radix UI's Dialog primitive, providing a complete modal implementation with overlay, animations, and customizable styling.
1
+ <!-- source-hash: 1007936b4fa31192c76c72547575559a -->
2
+ Accessible modal dialog component built on Radix UI's `DialogPrimitive`, providing a fully composed set of dialog sub-components with enter/exit animations, backdrop blur overlay, and a built-in close button.
3
3
 
4
4
  ## Key Components
5
5
 
6
- - **Dialog** - Root dialog component (alias for DialogPrimitive.Root)
7
- - **DialogTrigger** - Button to open the dialog (alias for DialogPrimitive.Trigger)
8
- - **DialogContent** - Main dialog container with overlay, close button, and animations
9
- - **DialogOverlay** - Backdrop overlay with blur effect and fade animations
10
- - **DialogHeader/DialogFooter** - Layout containers for dialog sections
11
- - **DialogTitle/DialogDescription** - Semantic text components with proper styling
12
- - **DialogClose** - Close button component (alias for DialogPrimitive.Close)
6
+ | Export | Description |
7
+ |--------|-------------|
8
+ | `Dialog` | Root component managing open/close state |
9
+ | `DialogTrigger` | Element that opens the dialog on interaction |
10
+ | `DialogContent` | Main modal container; renders via `DialogPortal` with overlay, animations, and a close (`X`) button |
11
+ | `DialogOverlay` | Fixed full-screen backdrop with blur and fade animations |
12
+ | `DialogHeader` | Layout wrapper for title/description area |
13
+ | `DialogFooter` | Layout wrapper for action buttons (reverses column order on mobile) |
14
+ | `DialogTitle` | Semibold heading with accessible binding |
15
+ | `DialogDescription` | Muted secondary text beneath the title |
16
+ | `DialogClose` | Primitive close button for custom trigger placement |
17
+ | `DialogPortal` | Renders dialog outside the DOM tree via a portal |
13
18
 
14
19
  ## Usage Example
15
20
 
16
21
  ```typescript
17
22
  import {
18
23
  Dialog,
24
+ DialogTrigger,
19
25
  DialogContent,
20
- DialogDescription,
21
- DialogFooter,
22
26
  DialogHeader,
23
27
  DialogTitle,
24
- DialogTrigger,
25
- } from "./dialog"
28
+ DialogDescription,
29
+ DialogFooter,
30
+ DialogClose,
31
+ } from "@/components/ui/dialog"
26
32
 
27
- function MyDialog() {
33
+ export function ConfirmDialog() {
28
34
  return (
29
35
  <Dialog>
30
36
  <DialogTrigger asChild>
@@ -38,7 +44,10 @@ function MyDialog() {
38
44
  </DialogDescription>
39
45
  </DialogHeader>
40
46
  <DialogFooter>
41
- <button type="submit">Confirm</button>
47
+ <DialogClose asChild>
48
+ <button>Cancel</button>
49
+ </DialogClose>
50
+ <button onClick={() => console.log("confirmed")}>Confirm</button>
42
51
  </DialogFooter>
43
52
  </DialogContent>
44
53
  </Dialog>
@@ -46,4 +55,4 @@ function MyDialog() {
46
55
  }
47
56
  ```
48
57
 
49
- The dialog features automatic backdrop blur, smooth zoom/slide animations, responsive design, and accessibility features including focus management and keyboard navigation.
58
+ > `DialogContent` automatically injects `DialogOverlay` and the close (`X`) button no need to add them manually. Use `DialogClose` only for custom close triggers within the footer or body.
@@ -0,0 +1,86 @@
1
+ <!-- source-hash: 2221d7f0d18b72b3da12ead1872e85f9 -->
2
+ A client-side drawer component built on Radix UI's Dialog primitive, providing animated slide-in panels from any viewport edge with optional drag-to-resize and localStorage persistence.
3
+
4
+ ## Key Components
5
+
6
+ | Export | Type | Description |
7
+ |--------|------|-------------|
8
+ | `Drawer` | Component | Root dialog primitive (alias for `DialogPrimitive.Root`) |
9
+ | `DrawerTrigger` | Component | Trigger element to open the drawer |
10
+ | `DrawerClose` | Component | Button/element to close the drawer |
11
+ | `DrawerPortal` | Component | Renders drawer outside the DOM tree |
12
+ | `DrawerOverlay` | Component | Semi-transparent backdrop with fade animations |
13
+ | `DrawerContent` | Component | Main panel with slide animations, resize handle, and variant support |
14
+ | `drawerVariants` | CVA | Wrapper positioning variants (`side`, `flush`) |
15
+ | `drawerPanelVariants` | CVA | Panel chrome variants (rounded corners, border, padding) |
16
+ | `DrawerResizeHandle` | Internal | Drag/keyboard-accessible resize handle rendered as panel sibling |
17
+ | `useResizableSize` | Hook | Manages clamped panel size with viewport awareness and localStorage |
18
+
19
+ **`DrawerContent` Props:**
20
+
21
+ | Prop | Type | Default | Description |
22
+ |------|------|---------|-------------|
23
+ | `side` | `"right" \| "left" \| "top" \| "bottom"` | `"right"` | Slide-in direction |
24
+ | `flush` | `boolean` | `false` | Full-bleed mode (removes padding/border/rounded on mobile) |
25
+ | `resizable` | `boolean` | — | Enables drag-to-resize handle |
26
+ | `minSize` | `number` | — | Minimum resize size in px |
27
+ | `maxSize` | `number` | — | Maximum resize size in px (also clamped by viewport) |
28
+ | `defaultSize` | `number` | — | Initial size in px when no localStorage entry exists |
29
+ | `storageKey` | `string` | — | localStorage key for persisting size across sessions |
30
+ | `mobileBreakpoint` | `number` | — | Px breakpoint below which resizing is disabled |
31
+ | `overlayClassName` | `string` | — | Additional classes for the overlay |
32
+ | `resizeAriaLabel` | `string` | — | Accessible label for the resize handle |
33
+
34
+ ## Usage Example
35
+
36
+ ```typescript
37
+ import {
38
+ Drawer,
39
+ DrawerTrigger,
40
+ DrawerClose,
41
+ DrawerContent,
42
+ } from "@/components/ui/drawer"
43
+
44
+ // Basic drawer from the right
45
+ function BasicDrawer() {
46
+ return (
47
+ <Drawer>
48
+ <DrawerTrigger asChild>
49
+ <button>Open Panel</button>
50
+ </DrawerTrigger>
51
+ <DrawerContent side="right">
52
+ <p>Drawer content here</p>
53
+ <DrawerClose asChild>
54
+ <button>Close</button>
55
+ </DrawerClose>
56
+ </DrawerContent>
57
+ </Drawer>
58
+ )
59
+ }
60
+
61
+ // Resizable flush chat panel persisted across sessions
62
+ function ChatDrawer() {
63
+ return (
64
+ <Drawer>
65
+ <DrawerTrigger asChild>
66
+ <button>Open Chat</button>
67
+ </DrawerTrigger>
68
+ <DrawerContent
69
+ side="right"
70
+ flush
71
+ resizable
72
+ minSize={280}
73
+ maxSize={800}
74
+ defaultSize={400}
75
+ storageKey="chat-panel-width"
76
+ mobileBreakpoint={768}
77
+ resizeAriaLabel="Resize chat panel"
78
+ >
79
+ <p>Chat content</p>
80
+ </DrawerContent>
81
+ </Drawer>
82
+ )
83
+ }
84
+ ```
85
+
86
+ > **Resize handle accessibility:** The handle supports keyboard navigation — `ArrowLeft`/`ArrowRight` (or `ArrowUp`/`ArrowDown`) resize in 16px steps; hold `Shift` for 40px steps. `Home`/`End` jump to `minSize`/`maxSize`.
@@ -0,0 +1,45 @@
1
+ <!-- source-hash: 755936e5a23162889a0f4b377887a066 -->
2
+ A styled dropdown trigger button that combines a labeled action area with a rotating chevron indicator, opening a `MoreActionsMenu` on click.
3
+
4
+ ## Key Components
5
+
6
+ | Export | Type | Description |
7
+ |--------|------|-------------|
8
+ | `DropdownButton` | Component | Main trigger button that wraps `MoreActionsMenu` |
9
+ | `DropdownButtonProps` | Interface | Props definition for the component |
10
+
11
+ ### Props
12
+
13
+ | Prop | Type | Default | Description |
14
+ |------|------|---------|-------------|
15
+ | `label` | `string` | — | Button label text |
16
+ | `icon` | `ReactNode` | — | Optional leading icon |
17
+ | `items` | `MoreActionsItem[]` | — | Dropdown menu items |
18
+ | `align` | `'start' \| 'center' \| 'end'` | `'end'` | Menu alignment |
19
+ | `side` | `'top' \| 'right' \| 'bottom' \| 'left'` | `'bottom'` | Menu opening side |
20
+ | `disabled` | `boolean` | — | Disables interaction |
21
+
22
+ ## Key Behaviors
23
+
24
+ - **Single click target** — label and chevron areas are visually separated by a border seam but share one `<button>` element
25
+ - **Open state styles** — background lightens (`ods-bg-hover`) when the menu is open or hovered
26
+ - **Chevron rotation** — animates 180° when the dropdown is open
27
+ - **Disabled guard** — blocks `onOpenChange` and prevents pointer events when `disabled` is set
28
+
29
+ ## Usage Example
30
+
31
+ ```typescript
32
+ import { DropdownButton } from './dropdown-button'
33
+ import { SettingsIcon } from '../icons-v2-generated'
34
+
35
+ <DropdownButton
36
+ label="Actions"
37
+ icon={<SettingsIcon />}
38
+ align="end"
39
+ side="bottom"
40
+ items={[
41
+ { label: 'Edit', onClick: () => console.log('edit') },
42
+ { label: 'Delete', onClick: () => console.log('delete'), destructive: true },
43
+ ]}
44
+ />
45
+ ```
@@ -0,0 +1,46 @@
1
+ <!-- source-hash: 3405ab77a3bbd5f68b76564b38e7a642 -->
2
+ A client-side React component that renders an entity's avatar image with an automatic initials-based fallback when the image source is unavailable or fails to load.
3
+
4
+ ## Key Components
5
+
6
+ ### `EntityImageProps`
7
+ | Prop | Type | Description |
8
+ |------|------|-------------|
9
+ | `src` | `string \| null` | Image URL to display |
10
+ | `alt` | `string` | Alt text for the image and fallback aria-label |
11
+ | `fallbackText` | `string` | Overrides `alt` as the initials source |
12
+ | `className` | `string` | Additional CSS classes |
13
+
14
+ ### `EntityImage`
15
+ Main export. Renders an `<img>` tag when a valid `src` is provided and loads successfully. Falls back to a styled `<div>` showing two-letter initials (via `getFirstLastInitials`) or `?` when no initials can be derived.
16
+
17
+ **Fallback triggers:**
18
+ - `src` is `null` or `undefined`
19
+ - Image fires an `onError` event (broken URL, network failure, etc.)
20
+ - Image error state resets automatically when `src` changes
21
+
22
+ ## Usage Example
23
+
24
+ ```typescript
25
+ import { EntityImage } from './entity-image'
26
+
27
+ // Renders the avatar image
28
+ <EntityImage
29
+ src="https://cdn.example.com/avatars/acme.png"
30
+ alt="Acme Corp"
31
+ />
32
+
33
+ // Renders initials fallback "AC" if image fails
34
+ <EntityImage
35
+ src={null}
36
+ alt="Acme Corp"
37
+ className="my-custom-class"
38
+ />
39
+
40
+ // Override initials source independently from alt text
41
+ <EntityImage
42
+ src="https://cdn.example.com/avatars/john.png"
43
+ alt="User avatar"
44
+ fallbackText="John Doe"
45
+ />
46
+ ```
@@ -1,44 +1,57 @@
1
- <!-- source-hash: 8d026771a83a6389470261977d32ec19 -->
2
- A React component for displaying error states with customizable variants, icons, and action buttons for consistent error handling across the application.
1
+ <!-- source-hash: 147d509f918f296b0265bcdeb8f2a9c1 -->
2
+ Flexible error state display component for rendering contextual error, warning, and info messages with optional retry and navigation actions.
3
3
 
4
4
  ## Key Components
5
5
 
6
- - **ErrorState** - Main component with configurable title, message, variant (error/warning/info), and optional retry/home actions
7
- - **PageError** - Convenience component for general page errors with retry and home navigation options
8
- - **LoadError** - Specialized component for loading failures with retry functionality
9
- - **NotFoundError** - Component for 404-style errors with home navigation option
6
+ ### `ErrorState`
7
+ The core component accepting the following props:
8
+
9
+ | Prop | Type | Default | Description |
10
+ |------|------|---------|-------------|
11
+ | `title` | `string` | `'Error'` | Heading text displayed above the message |
12
+ | `message` | `string` | — | *(required)* Body text describing the error |
13
+ | `variant` | `'error' \| 'warning' \| 'info'` | `'error'` | Controls color scheme and styling |
14
+ | `showIcon` | `boolean` | `true` | Toggles the `AlertTriangle` icon |
15
+ | `showRetry` | `boolean` | `false` | Shows "Try Again" button when `onRetry` is also provided |
16
+ | `showHome` | `boolean` | `false` | Shows "Go Home" button when `onHome` is also provided |
17
+ | `onRetry` | `() => void` | — | Callback fired on retry button click |
18
+ | `onHome` | `() => void` | — | Callback fired on home button click |
19
+ | `className` | `string` | — | Applied to the inner bordered card |
20
+ | `containerClassName` | `string` | — | Applied to the outer wrapper `div` |
21
+
22
+ ### Convenience Components
23
+
24
+ | Component | Variant | Buttons |
25
+ |-----------|---------|---------|
26
+ | `PageError` | `error` | Retry + Home |
27
+ | `LoadError` | `error` | Retry |
28
+ | `NotFoundError` | `warning` | Home |
10
29
 
11
30
  ## Usage Example
12
31
 
13
32
  ```typescript
14
33
  import { ErrorState, PageError, LoadError, NotFoundError } from './error-state'
15
34
 
16
- // Basic error with custom message
17
- <ErrorState
18
- message="Something went wrong while processing your request"
19
- variant="error"
20
- showRetry
21
- onRetry={() => window.location.reload()}
22
- />
23
-
24
- // Page error with navigation options
25
- <PageError
26
- message="Failed to load the dashboard"
35
+ // Full control via ErrorState
36
+ <ErrorState
37
+ title="Connection Failed"
38
+ message="Unable to reach the server."
39
+ variant="warning"
40
+ showRetry
27
41
  onRetry={() => refetch()}
28
- onHome={() => router.push('/')}
29
42
  />
30
43
 
31
- // Loading error with retry
32
- <LoadError
33
- message="Unable to fetch user data"
34
- onRetry={() => retry()}
44
+ // Convenience wrappers
45
+ <PageError
46
+ message="Something went wrong loading this page."
47
+ onRetry={() => router.refresh()}
48
+ onHome={() => router.push('/')}
35
49
  />
36
50
 
37
- // Not found error
38
- <NotFoundError
39
- message="The requested project was not found"
40
- onHome={() => navigate('/projects')}
51
+ <LoadError
52
+ message="Failed to load device list."
53
+ onRetry={() => refetch()}
41
54
  />
42
- ```
43
55
 
44
- The component uses the OpenFrame Design System (ODS) color tokens and provides consistent styling across error, warning, and info variants with proper accessibility through semantic colors and icons.
56
+ <NotFoundError onHome={() => router.push('/')} />
57
+ ```