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

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (746) hide show
  1. package/dist/{chunk-35XIT2CF.cjs → chunk-2G3NXF6J.cjs} +17 -17
  2. package/dist/{chunk-35XIT2CF.cjs.map → chunk-2G3NXF6J.cjs.map} +1 -1
  3. package/dist/{chunk-IK2X5YJU.js → chunk-7PCP7YQR.js} +2 -2
  4. package/dist/{chunk-ZDF6F7ED.cjs → chunk-D4MNFY67.cjs} +4 -3
  5. package/dist/chunk-D4MNFY67.cjs.map +1 -0
  6. package/dist/{chunk-OTKJASSX.cjs → chunk-NGFP4RVL.cjs} +24 -24
  7. package/dist/{chunk-OTKJASSX.cjs.map → chunk-NGFP4RVL.cjs.map} +1 -1
  8. package/dist/{chunk-3JWIJJ44.js → chunk-R6MLPU4A.js} +2 -2
  9. package/dist/{chunk-ZTJVRSN5.js → chunk-WQZP3JIZ.js} +4 -3
  10. package/dist/chunk-WQZP3JIZ.js.map +1 -0
  11. package/dist/components/chat/index.cjs +2 -2
  12. package/dist/components/chat/index.js +1 -1
  13. package/dist/components/contact/index.cjs +3 -3
  14. package/dist/components/contact/index.js +2 -2
  15. package/dist/components/features/index.cjs +2 -2
  16. package/dist/components/features/index.js +1 -1
  17. package/dist/components/index.cjs +49 -49
  18. package/dist/components/index.js +2 -2
  19. package/dist/components/navigation/index.cjs +2 -2
  20. package/dist/components/navigation/index.js +1 -1
  21. package/dist/components/tickets/index.cjs +61 -61
  22. package/dist/components/tickets/index.js +3 -3
  23. package/dist/components/ui/index.cjs +2 -2
  24. package/dist/components/ui/index.js +1 -1
  25. package/dist/index.cjs +2 -2
  26. package/dist/index.js +1 -1
  27. package/package.json +1 -1
  28. package/src/.index.md +36 -34
  29. package/src/components/.alert-dialog.md +27 -23
  30. package/src/components/.announcement-bar.md +26 -21
  31. package/src/components/.breadcrumb.md +19 -15
  32. package/src/components/.calendar.md +24 -19
  33. package/src/components/.categories-cart.md +29 -24
  34. package/src/components/.checkbox.md +23 -25
  35. package/src/components/.chevron-button.md +37 -32
  36. package/src/components/.comment-card.md +32 -62
  37. package/src/components/.dialog.md +26 -26
  38. package/src/components/.dynamic-skeleton.md +54 -57
  39. package/src/components/.empty-state.md +42 -51
  40. package/src/components/.faq-accordion.md +27 -21
  41. package/src/components/.filter-chip.md +41 -24
  42. package/src/components/.flamingo-logo.md +20 -23
  43. package/src/components/.footer-waitlist-button.md +29 -22
  44. package/src/components/.footer.md +32 -32
  45. package/src/components/.icons-block.md +27 -17
  46. package/src/components/.image-cropper.md +41 -32
  47. package/src/components/.index.md +33 -39
  48. package/src/components/.input.md +31 -35
  49. package/src/components/.logs-list.md +31 -20
  50. package/src/components/.media-carousel.md +35 -36
  51. package/src/components/.open-source-features.md +33 -16
  52. package/src/components/.pagination.md +52 -51
  53. package/src/components/.provider-button.md +21 -23
  54. package/src/components/.select.md +31 -20
  55. package/src/components/.sidebar.md +34 -24
  56. package/src/components/.smooth-accordion.md +29 -24
  57. package/src/components/.social-icon-row.md +36 -32
  58. package/src/components/.textarea.md +25 -31
  59. package/src/components/.tool-icon.md +24 -26
  60. package/src/components/.unified-filter-logic.md +37 -30
  61. package/src/components/.unified-pagination.md +23 -22
  62. package/src/components/.user-summary-stub.md +38 -22
  63. package/src/components/.vendor-display-button.md +25 -25
  64. package/src/components/.vendor-icon.md +33 -25
  65. package/src/components/.why-it-matters.md +28 -25
  66. package/src/components/chat/.approval-batch-message.md +51 -0
  67. package/src/components/chat/.approval-request-message.md +35 -34
  68. package/src/components/chat/.chat-attachment-bar.md +64 -0
  69. package/src/components/chat/.chat-container.md +36 -18
  70. package/src/components/chat/.chat-input.md +37 -20
  71. package/src/components/chat/.chat-message-enhanced.md +30 -49
  72. package/src/components/chat/.chat-message-list.md +45 -32
  73. package/src/components/chat/.chat-message-skeleton.md +26 -22
  74. package/src/components/chat/.chat-panel-context.md +52 -0
  75. package/src/components/chat/.chat-ref.types.md +42 -0
  76. package/src/components/chat/.chat-sidebar-skeleton.md +34 -25
  77. package/src/components/chat/.chat-sidebar.md +31 -26
  78. package/src/components/chat/.chat-ticket-list.md +39 -0
  79. package/src/components/chat/.context-compaction-display.md +36 -0
  80. package/src/components/chat/.cycling-phrase.md +52 -0
  81. package/src/components/chat/.embeddable-chat.md +48 -0
  82. package/src/components/chat/.expand-chevron.md +24 -0
  83. package/src/components/chat/.index.md +31 -35
  84. package/src/components/chat/.mingo-onboarding-card-skeleton.md +44 -0
  85. package/src/components/chat/.mingo-onboarding-card.md +62 -0
  86. package/src/components/chat/.model-display.md +32 -30
  87. package/src/components/chat/.nav-link-anchor-via-runtime.md +40 -0
  88. package/src/components/chat/.remark-card-links.md +38 -0
  89. package/src/components/chat/.slash-command-suggestions.md +47 -0
  90. package/src/components/chat/.source-action-button.md +48 -0
  91. package/src/components/chat/.thinking-display.md +42 -0
  92. package/src/components/chat/.tool-call-blocks.md +45 -0
  93. package/src/components/chat/.tool-execution-display.md +44 -36
  94. package/src/components/chat/chat-container.tsx +1 -1
  95. package/src/components/chat/entity-cards/.admin-content-card.md +43 -0
  96. package/src/components/chat/entity-cards/.block-card.md +47 -0
  97. package/src/components/chat/entity-cards/.blog-card.md +52 -0
  98. package/src/components/chat/entity-cards/.blog-image-placeholder.md +39 -0
  99. package/src/components/chat/entity-cards/.campaign-card-admin.md +47 -0
  100. package/src/components/chat/entity-cards/.case-study-card.md +58 -0
  101. package/src/components/chat/entity-cards/.chat-ticket-item.md +40 -0
  102. package/src/components/chat/entity-cards/.chat-video-entity-card.md +43 -0
  103. package/src/components/chat/entity-cards/.customer-interview-card.md +53 -0
  104. package/src/components/chat/entity-cards/.data-room-doc-card.md +47 -0
  105. package/src/components/chat/entity-cards/.dispatch.md +39 -0
  106. package/src/components/chat/entity-cards/.entity-author-card.md +51 -0
  107. package/src/components/chat/entity-cards/.generic-entity-card.md +62 -0
  108. package/src/components/chat/entity-cards/.github-activity-card.md +61 -0
  109. package/src/components/chat/entity-cards/.hubspot-ticket-card.md +53 -0
  110. package/src/components/chat/entity-cards/.index.md +66 -0
  111. package/src/components/chat/entity-cards/.investor-update-card.md +47 -0
  112. package/src/components/chat/entity-cards/.onboarding-guide-card.md +58 -0
  113. package/src/components/chat/entity-cards/.product-release-card-defaults.md +31 -0
  114. package/src/components/chat/entity-cards/.product-release-card.md +29 -0
  115. package/src/components/chat/entity-cards/.program-card-defaults.md +41 -0
  116. package/src/components/chat/entity-cards/.program-card.md +59 -0
  117. package/src/components/chat/entity-cards/.roadmap-card.md +46 -0
  118. package/src/components/chat/entity-cards/.roadmap-vote-button.md +52 -0
  119. package/src/components/chat/entity-cards/.slack-message-card.md +48 -0
  120. package/src/components/chat/entity-cards/.task-type-icon.md +47 -0
  121. package/src/components/chat/hooks/.index.md +36 -21
  122. package/src/components/chat/hooks/.use-chat-attachment-image-gallery.md +51 -0
  123. package/src/components/chat/hooks/.use-chat-attachments.md +48 -0
  124. package/src/components/chat/hooks/.use-chat-card-item.md +39 -0
  125. package/src/components/chat/hooks/.use-chat-identity.md +45 -0
  126. package/src/components/chat/hooks/.use-chat.md +58 -0
  127. package/src/components/chat/hooks/.use-chunk-catchup.md +46 -48
  128. package/src/components/chat/hooks/.use-close-on-navigation.md +44 -0
  129. package/src/components/chat/hooks/.use-collapsible.md +48 -0
  130. package/src/components/chat/hooks/.use-embedded-chat.md +32 -0
  131. package/src/components/chat/hooks/.use-jetstream-dialog-subscription.md +40 -0
  132. package/src/components/chat/hooks/.use-nats-chat-adapter.md +52 -0
  133. package/src/components/chat/hooks/.use-nats-dialog-subscription.md +49 -30
  134. package/src/components/chat/hooks/.use-proxied-image-url.md +40 -0
  135. package/src/components/chat/hooks/.use-realtime-chunk-processor.md +43 -40
  136. package/src/components/chat/hooks/.use-slash-commands.md +46 -0
  137. package/src/components/chat/hooks/.use-sse-chat-adapter.md +34 -0
  138. package/src/components/chat/hooks/.use-sse.md +60 -0
  139. package/src/components/chat/hooks/.use-unified-chat.md +57 -0
  140. package/src/components/chat/types/.api.types.md +52 -38
  141. package/src/components/chat/types/.chat.types.md +43 -34
  142. package/src/components/chat/types/.component.types.md +47 -48
  143. package/src/components/chat/types/.index.md +20 -27
  144. package/src/components/chat/types/.message.types.md +58 -48
  145. package/src/components/chat/types/.network.types.md +57 -31
  146. package/src/components/chat/types/.processing.types.md +49 -31
  147. package/src/components/chat/types/.unified-chat-state.types.md +41 -0
  148. package/src/components/chat/types/entities/.blog.md +43 -0
  149. package/src/components/chat/types/entities/.case-study.md +26 -0
  150. package/src/components/chat/types/entities/.content-ref.md +41 -0
  151. package/src/components/chat/types/entities/.customer-interview.md +28 -0
  152. package/src/components/chat/types/entities/.data-room-doc.md +36 -0
  153. package/src/components/chat/types/entities/.github-activity.md +43 -0
  154. package/src/components/chat/types/entities/.hubspot-ticket.md +53 -0
  155. package/src/components/chat/types/entities/.index.md +42 -0
  156. package/src/components/chat/types/entities/.investor-update.md +45 -0
  157. package/src/components/chat/types/entities/.onboarding-guide.md +50 -0
  158. package/src/components/chat/types/entities/.program-types.md +57 -0
  159. package/src/components/chat/types/entities/.roadmap-item.md +58 -0
  160. package/src/components/chat/types/entities/.slack-message.md +35 -0
  161. package/src/components/chat/utils/.agent-status-message.md +45 -0
  162. package/src/components/chat/utils/.auto-continuation-directive.md +58 -0
  163. package/src/components/chat/utils/.chat-attachment-markdown.md +54 -0
  164. package/src/components/chat/utils/.chat-authed-fetch.md +25 -0
  165. package/src/components/chat/utils/.chat-nav-resolution.md +46 -0
  166. package/src/components/chat/utils/.chat-proxy-auth-storage.md +38 -0
  167. package/src/components/chat/utils/.chip-action-class.md +34 -0
  168. package/src/components/chat/utils/.chip-styles.md +46 -0
  169. package/src/components/chat/utils/.chunk-parser.md +38 -28
  170. package/src/components/chat/utils/.clickup-task-type-utils.md +48 -0
  171. package/src/components/chat/utils/.compact-card-classes.md +62 -0
  172. package/src/components/chat/utils/.decide-new-tab.md +51 -0
  173. package/src/components/chat/utils/.external-app-urls.md +29 -0
  174. package/src/components/chat/utils/.extract-incomplete-message-state.md +25 -29
  175. package/src/components/chat/utils/.flatten-assistant-content.md +34 -0
  176. package/src/components/chat/utils/.icon-registry.md +46 -0
  177. package/src/components/chat/utils/.index.md +37 -32
  178. package/src/components/chat/utils/.is-cross-origin-url.md +35 -0
  179. package/src/components/chat/utils/.message-segment-accumulator.md +25 -34
  180. package/src/components/chat/utils/.nav-anchor-props.md +44 -0
  181. package/src/components/chat/utils/.nav-click-handler.md +47 -0
  182. package/src/components/chat/utils/.onboarding-icons.md +28 -0
  183. package/src/components/chat/utils/.process-historical-messages.md +46 -35
  184. package/src/components/chat/utils/.scroll-anchor.md +40 -0
  185. package/src/components/chat/utils/.slash-dispatch-utils.md +44 -0
  186. package/src/components/chat/utils/.source-icons.md +35 -0
  187. package/src/components/chat/utils/.source-row-cta.md +54 -0
  188. package/src/components/chat/utils/.tool-call-helpers.md +42 -0
  189. package/src/components/contact/.contact-form.md +43 -0
  190. package/src/components/contact/.index.md +27 -0
  191. package/src/components/features/.array-entry-manager.md +36 -45
  192. package/src/components/features/.changelog-manager.md +47 -21
  193. package/src/components/features/.changelog-sections-manager.md +21 -26
  194. package/src/components/features/.command-box.md +31 -28
  195. package/src/components/features/.entity-summary-editor.md +46 -0
  196. package/src/components/features/.entity-video-section.md +51 -0
  197. package/src/components/features/.figma-prototype-viewer.md +48 -29
  198. package/src/components/features/.filters-dropdown.md +33 -46
  199. package/src/components/features/.highlight-config-section.md +42 -0
  200. package/src/components/features/.highlight-generation-section.md +46 -0
  201. package/src/components/features/.highlight-video-combined-section.md +47 -0
  202. package/src/components/features/.highlight-video-preview.md +44 -0
  203. package/src/components/features/.highlight-video-section.md +47 -0
  204. package/src/components/features/.index.md +40 -66
  205. package/src/components/features/.media-gallery-manager.md +48 -38
  206. package/src/components/features/.more-about-button.md +22 -19
  207. package/src/components/features/.og-editor-preview.md +40 -36
  208. package/src/components/features/.parallax-image-showcase.md +33 -26
  209. package/src/components/features/.paths-display.md +42 -43
  210. package/src/components/features/.platform-badge.md +37 -36
  211. package/src/components/features/.platform-filter.md +23 -16
  212. package/src/components/features/.policy-configuration-panel.md +48 -56
  213. package/src/components/features/.provider-button.md +33 -36
  214. package/src/components/features/.push-button-selector.md +40 -29
  215. package/src/components/features/.release-media-manager.md +46 -31
  216. package/src/components/features/.section-selector.md +26 -31
  217. package/src/components/features/.select-button.md +35 -25
  218. package/src/components/features/.seo-editor-preview.md +41 -44
  219. package/src/components/features/.social-links-manager.md +25 -19
  220. package/src/components/features/.start-with-openframe-button.md +37 -29
  221. package/src/components/features/.status-filter-component.md +36 -20
  222. package/src/components/features/.tags-selector.md +40 -24
  223. package/src/components/features/.transcribe-and-summarize-combined-section.md +45 -0
  224. package/src/components/features/.transcribe-summarize-section.md +48 -0
  225. package/src/components/features/.transcript-summary-editor.md +53 -0
  226. package/src/components/features/.video-bites-display.md +46 -0
  227. package/src/components/features/.video-clips-section.md +41 -0
  228. package/src/components/features/.video-ratio-tabs.md +56 -0
  229. package/src/components/features/.video-source-selector.md +60 -0
  230. package/src/components/features/.video.md +44 -0
  231. package/src/components/features/.waitlist-form.md +60 -0
  232. package/src/components/features/ai-enrich/.AIEnrichButton.md +30 -27
  233. package/src/components/features/ai-enrich/.AIEnrichSection.md +46 -42
  234. package/src/components/features/board/.board-column-header.md +38 -0
  235. package/src/components/features/board/.board-column.md +43 -0
  236. package/src/components/features/board/.board.md +51 -0
  237. package/src/components/features/board/.color-utils.md +26 -0
  238. package/src/components/features/board/.index.md +56 -0
  239. package/src/components/features/board/.ticket-card-skeleton.md +38 -0
  240. package/src/components/features/board/.ticket-card.md +47 -0
  241. package/src/components/features/board/.types.md +45 -0
  242. package/src/components/features/board/.use-board-collapse.md +34 -0
  243. package/src/components/features/notifications/.index.md +57 -0
  244. package/src/components/features/notifications/.notification-drawer.md +34 -0
  245. package/src/components/features/notifications/.notification-tile.md +39 -0
  246. package/src/components/features/notifications/.notifications-context.md +73 -0
  247. package/src/components/features/notifications/.types.md +45 -0
  248. package/src/components/icons/.about-icon.md +20 -28
  249. package/src/components/icons/.ai-robot-icon.md +15 -17
  250. package/src/components/icons/.bash-icon.md +16 -23
  251. package/src/components/icons/.buildings-icon.md +10 -24
  252. package/src/components/icons/.capterra-icon.md +30 -26
  253. package/src/components/icons/.carta-icon.md +29 -0
  254. package/src/components/icons/.clickup-icon.md +26 -0
  255. package/src/components/icons/.cmd-icon.md +15 -22
  256. package/src/components/icons/.coins-icon.md +17 -25
  257. package/src/components/icons/.community-hub-icon.md +19 -25
  258. package/src/components/icons/.community-icon.md +24 -21
  259. package/src/components/icons/.compare-icon.md +32 -19
  260. package/src/components/icons/.copy-icon.md +29 -15
  261. package/src/components/icons/.custom-external-link-icon.md +19 -17
  262. package/src/components/icons/.custom-fork-icon.md +32 -21
  263. package/src/components/icons/.custom-license-icon.md +29 -25
  264. package/src/components/icons/.custom-star-icon.md +20 -28
  265. package/src/components/icons/.custom-time-icon.md +21 -22
  266. package/src/components/icons/.cut-vendor-costs-icon.md +6 -19
  267. package/src/components/icons/.dashboard-icon.md +13 -18
  268. package/src/components/icons/.deno-icon.md +16 -23
  269. package/src/components/icons/.donut-icon.md +12 -23
  270. package/src/components/icons/.double-chevron-icon.md +28 -36
  271. package/src/components/icons/.elestio-logo.md +13 -23
  272. package/src/components/icons/.empty-vendor-icon.md +16 -18
  273. package/src/components/icons/.explore-categories-icon.md +18 -29
  274. package/src/components/icons/.eye-icon.md +16 -26
  275. package/src/components/icons/.facebook-icon.md +9 -20
  276. package/src/components/icons/.figma-icon.md +8 -17
  277. package/src/components/icons/.filter-icon.md +15 -17
  278. package/src/components/icons/.flamingo-logo.md +28 -27
  279. package/src/components/icons/.folder-shield-icon.md +28 -19
  280. package/src/components/icons/.g2-icon.md +22 -21
  281. package/src/components/icons/.getapp-icon.md +25 -21
  282. package/src/components/icons/.github-icon.md +13 -25
  283. package/src/components/icons/.globe-icon.md +14 -19
  284. package/src/components/icons/.google-gemini-icon.md +16 -19
  285. package/src/components/icons/.google-logo.md +15 -21
  286. package/src/components/icons/.grid-view-icon.md +30 -19
  287. package/src/components/icons/.hamburger-icon.md +22 -20
  288. package/src/components/icons/.hand-dollar-icon.md +24 -34
  289. package/src/components/icons/.hotel-icon.md +27 -21
  290. package/src/components/icons/.icon-utils.md +28 -29
  291. package/src/components/icons/.image-icon.md +15 -22
  292. package/src/components/icons/.index.md +25 -28
  293. package/src/components/icons/.info-circle-icon.md +29 -30
  294. package/src/components/icons/.instagram-icon.md +10 -24
  295. package/src/components/icons/.jump-in-icon.md +18 -18
  296. package/src/components/icons/.linux-icon.md +18 -18
  297. package/src/components/icons/.log-out-icon.md +15 -23
  298. package/src/components/icons/.logs-icon.md +14 -23
  299. package/src/components/icons/.margin-crisis-icon.md +21 -20
  300. package/src/components/icons/.menu-icon.md +18 -19
  301. package/src/components/icons/.miami-cyber-gang-logo-face-only.md +18 -21
  302. package/src/components/icons/.miami-cyber-gang-logo.md +22 -14
  303. package/src/components/icons/.mlg-logo.md +18 -16
  304. package/src/components/icons/.moon-icon.md +32 -22
  305. package/src/components/icons/.ms-icon.md +30 -19
  306. package/src/components/icons/.nushell-icon.md +7 -21
  307. package/src/components/icons/.open-source-icon.md +19 -23
  308. package/src/components/icons/.openai-icon.md +9 -24
  309. package/src/components/icons/.openframe-ai-icons.md +25 -26
  310. package/src/components/icons/.openframe-logo.md +28 -22
  311. package/src/components/icons/.openframe-text.md +24 -27
  312. package/src/components/icons/.openmsp-logo.md +26 -23
  313. package/src/components/icons/.pilot-icon.md +23 -0
  314. package/src/components/icons/.powershell-icon.md +17 -22
  315. package/src/components/icons/.python-icon.md +16 -23
  316. package/src/components/icons/.queries-icon.md +13 -21
  317. package/src/components/icons/.reddit-icon.md +28 -24
  318. package/src/components/icons/.remote-control-icon.md +13 -17
  319. package/src/components/icons/.script-icon.md +27 -19
  320. package/src/components/icons/.search-icon.md +21 -21
  321. package/src/components/icons/.send-icon.md +14 -16
  322. package/src/components/icons/.settings-icon.md +30 -19
  323. package/src/components/icons/.shape-circle-dash-icon.md +16 -21
  324. package/src/components/icons/.shell-icon.md +15 -19
  325. package/src/components/icons/.shield-check-icon.md +18 -31
  326. package/src/components/icons/.shield-key-icon.md +25 -25
  327. package/src/components/icons/.shield-lock-icon.md +8 -18
  328. package/src/components/icons/.slack-icon.md +28 -32
  329. package/src/components/icons/.sparkles-icon.md +18 -23
  330. package/src/components/icons/.sso-configuration-icon.md +29 -16
  331. package/src/components/icons/.sun-icon.md +20 -18
  332. package/src/components/icons/.table-view-icon.md +17 -19
  333. package/src/components/icons/.telegram-icon.md +8 -22
  334. package/src/components/icons/.thumbs-down-icon.md +10 -19
  335. package/src/components/icons/.thumbs-up-icon.md +8 -17
  336. package/src/components/icons/.tool-directory-icons.md +24 -28
  337. package/src/components/icons/.trustpilot-icon.md +25 -22
  338. package/src/components/icons/.user-icon.md +26 -28
  339. package/src/components/icons/.users-group-icon.md +28 -24
  340. package/src/components/icons/.vendor-showcase-icons.md +21 -29
  341. package/src/components/icons/.vendors-icon.md +18 -22
  342. package/src/components/icons/.whatsapp-icon.md +30 -14
  343. package/src/components/icons/.x-icon.md +18 -23
  344. package/src/components/icons/.x-logo.md +13 -38
  345. package/src/components/icons/.youtube-icon.md +8 -19
  346. package/src/components/icons/device-type-icons/.get-device-type-icon.md +26 -34
  347. package/src/components/icons-v2-generated/.index.md +52 -0
  348. package/src/components/icons-v2-generated/alphabet/.index.md +33 -0
  349. package/src/components/icons-v2-generated/arrows/.index.md +39 -0
  350. package/src/components/icons-v2-generated/audio-and-visual/.index.md +40 -0
  351. package/src/components/icons-v2-generated/brand-logos/.elestio-logo-icon.md +40 -0
  352. package/src/components/icons-v2-generated/brand-logos/.gemini-logo-icon.md +37 -0
  353. package/src/components/icons-v2-generated/brand-logos/.google-gemini-logo-icon.md +33 -0
  354. package/src/components/icons-v2-generated/brand-logos/.index.md +38 -0
  355. package/src/components/icons-v2-generated/brand-logos/.meshcentral-logo-grey-icon.md +35 -0
  356. package/src/components/icons-v2-generated/brand-logos/.meshcentral-logo-icon.md +36 -0
  357. package/src/components/icons-v2-generated/buildings/.index.md +48 -0
  358. package/src/components/icons-v2-generated/charts/.index.md +40 -0
  359. package/src/components/icons-v2-generated/clothes/.index.md +48 -0
  360. package/src/components/icons-v2-generated/coding/.index.md +42 -0
  361. package/src/components/icons-v2-generated/communication/.index.md +39 -0
  362. package/src/components/icons-v2-generated/date-and-time/.index.md +29 -0
  363. package/src/components/icons-v2-generated/design/.index.md +39 -0
  364. package/src/components/icons-v2-generated/devices/.index.md +38 -0
  365. package/src/components/icons-v2-generated/documents/.index.md +38 -0
  366. package/src/components/icons-v2-generated/finance/.index.md +34 -0
  367. package/src/components/icons-v2-generated/food-and-drinks/.index.md +34 -0
  368. package/src/components/icons-v2-generated/food-and-drinks/.leafy-green-icon.md +36 -0
  369. package/src/components/icons-v2-generated/food-and-drinks/.strawberry-icon.md +39 -0
  370. package/src/components/icons-v2-generated/health/.index.md +40 -0
  371. package/src/components/icons-v2-generated/household/.index.md +45 -0
  372. package/src/components/icons-v2-generated/interface/.index.md +36 -0
  373. package/src/components/icons-v2-generated/map-and-travel/.index.md +41 -0
  374. package/src/components/icons-v2-generated/media-playback/.index.md +51 -0
  375. package/src/components/icons-v2-generated/number/.index.md +41 -0
  376. package/src/components/icons-v2-generated/school/.index.md +37 -0
  377. package/src/components/icons-v2-generated/security/.fingerprint-icon.md +38 -0
  378. package/src/components/icons-v2-generated/security/.index.md +39 -0
  379. package/src/components/icons-v2-generated/shopping/.index.md +42 -0
  380. package/src/components/icons-v2-generated/signs-and-symbols/.index.md +32 -0
  381. package/src/components/icons-v2-generated/sort-and-filter/.index.md +35 -0
  382. package/src/components/icons-v2-generated/sport/.index.md +41 -0
  383. package/src/components/icons-v2-generated/text-editor/.index.md +44 -0
  384. package/src/components/icons-v2-generated/users/.index.md +45 -0
  385. package/src/components/icons-v2-generated/vehicles-and-delivery/.index.md +36 -0
  386. package/src/components/icons-v2-generated/weather-and-nature/.flower-sakura-icon.md +36 -0
  387. package/src/components/icons-v2-generated/weather-and-nature/.index.md +34 -0
  388. package/src/components/layout/.article-detail-layout.md +43 -0
  389. package/src/components/layout/.back-button.md +40 -0
  390. package/src/components/layout/.list-page-layout.md +35 -26
  391. package/src/components/layout/.page-container.md +27 -38
  392. package/src/components/layout/.page-layout.md +50 -0
  393. package/src/components/layout/.title-block.md +42 -0
  394. package/src/components/loading/.card-skeleton.md +38 -29
  395. package/src/components/loading/.device-card-skeleton.md +29 -25
  396. package/src/components/loading/.index.md +39 -46
  397. package/src/components/loading/.margin-report-skeleton.md +45 -34
  398. package/src/components/loading/.organization-card-skeleton.md +39 -44
  399. package/src/components/loading/.page-layout-skeleton.md +34 -45
  400. package/src/components/loading/.unified-skeleton.md +62 -36
  401. package/src/components/navigation/.app-header.md +40 -29
  402. package/src/components/navigation/.app-layout.md +25 -26
  403. package/src/components/navigation/.header-global-search.md +34 -37
  404. package/src/components/navigation/.header-organization-filter.md +23 -22
  405. package/src/components/navigation/.header.md +31 -35
  406. package/src/components/navigation/.mobile-burger-menu.md +39 -47
  407. package/src/components/navigation/.mobile-nav-panel.md +51 -32
  408. package/src/components/navigation/.navigation-sidebar-header.md +36 -0
  409. package/src/components/navigation/.navigation-sidebar-item.md +45 -0
  410. package/src/components/navigation/.navigation-sidebar-toggle.md +38 -0
  411. package/src/components/navigation/.navigation-sidebar.md +33 -34
  412. package/src/components/navigation/.sliding-sidebar.md +52 -41
  413. package/src/components/navigation/.sticky-section-nav.md +56 -48
  414. package/src/components/platform/.ScriptArguments.md +39 -25
  415. package/src/components/platform/.ScriptInfoSection.md +30 -26
  416. package/src/components/platform/.ShellTypeBadge.md +18 -13
  417. package/src/components/platform/.SoftwareInfo.md +23 -27
  418. package/src/components/platform/.SoftwareSourceBadge.md +28 -19
  419. package/src/components/platform/.ToolBadge.md +25 -26
  420. package/src/components/platform/ShellTypeBadge.tsx +2 -2
  421. package/src/components/providers/.theme-provider.md +52 -0
  422. package/src/components/shared/delivery/.delivery-lists.md +39 -0
  423. package/src/components/shared/delivery/.delivery-row.md +41 -0
  424. package/src/components/shared/delivery/.delivery-table.md +41 -0
  425. package/src/components/shared/delivery/.index.md +38 -0
  426. package/src/components/shared/dev-section/.dev-card-row.md +60 -0
  427. package/src/components/shared/dev-section/.dev-section-page.md +48 -0
  428. package/src/components/shared/dev-section/.dev-section-view.md +43 -0
  429. package/src/components/shared/dev-section/.index.md +38 -0
  430. package/src/components/shared/legal-document/.index.md +40 -0
  431. package/src/components/shared/legal-document/.legal-document-page.md +50 -0
  432. package/src/components/shared/legal-document/.use-legal-docs.md +42 -0
  433. package/src/components/shared/onboarding/.onboarding-step-card.md +32 -31
  434. package/src/components/shared/onboarding/.onboarding-walkthrough.md +39 -43
  435. package/src/components/shared/product-release/.index.md +28 -30
  436. package/src/components/shared/product-release/.product-release-card-skeleton.md +28 -28
  437. package/src/components/shared/product-release/.product-release-card.md +45 -27
  438. package/src/components/shared/product-release/.release-detail-page.md +23 -24
  439. package/src/components/shared/roadmap/.index.md +37 -0
  440. package/src/components/shared/roadmap/.roadmap-grid-skeleton.md +39 -0
  441. package/src/components/shared/roadmap/.roadmap-grid.md +66 -0
  442. package/src/components/shared/roadmap/.use-roadmap-voting.md +68 -0
  443. package/src/components/tickets/.help-center-card.md +51 -0
  444. package/src/components/tickets/.help-center-create-form.md +38 -0
  445. package/src/components/tickets/.help-center-list.md +40 -0
  446. package/src/components/tickets/.index.md +65 -0
  447. package/src/components/tickets/.ticket-center.md +51 -0
  448. package/src/components/tickets/.ticket-detail-drawer.md +48 -0
  449. package/src/components/tickets/.ticket-linked-delivery-card.md +36 -0
  450. package/src/components/tickets/.ticket-open-form.md +50 -0
  451. package/src/components/tickets/.ticket-row.md +30 -0
  452. package/src/components/tickets/.types.md +57 -0
  453. package/src/components/tickets/hooks/.use-ticket-actions.md +77 -0
  454. package/src/components/tickets/hooks/.use-ticket-engagements.md +42 -0
  455. package/src/components/tickets/hooks/.use-tickets-list.md +54 -0
  456. package/src/components/ui/.actions-menu.md +66 -41
  457. package/src/components/ui/.alert-dialog.md +29 -26
  458. package/src/components/ui/.allowed-domains-input.md +29 -21
  459. package/src/components/ui/.assignee-dropdown.md +45 -0
  460. package/src/components/ui/.autocomplete.md +47 -41
  461. package/src/components/ui/.benefit-card.md +51 -36
  462. package/src/components/ui/.brand-association-card.md +30 -27
  463. package/src/components/ui/.breadcrumb.md +17 -15
  464. package/src/components/ui/.checkbox-block.md +39 -35
  465. package/src/components/ui/.checkbox-with-description.md +23 -16
  466. package/src/components/ui/.checkbox.md +31 -23
  467. package/src/components/ui/.circular-progress.md +49 -19
  468. package/src/components/ui/.content-loader.md +32 -20
  469. package/src/components/ui/.cursor-pagination.md +41 -52
  470. package/src/components/ui/.dashboard-info-card.md +33 -26
  471. package/src/components/ui/.date-picker.md +27 -25
  472. package/src/components/ui/.device-card-compact.md +28 -29
  473. package/src/components/ui/.device-card.md +27 -27
  474. package/src/components/ui/.dialog.md +25 -16
  475. package/src/components/ui/.drawer.md +86 -0
  476. package/src/components/ui/.dropdown-button.md +45 -0
  477. package/src/components/ui/.entity-image.md +46 -0
  478. package/src/components/ui/.error-state.md +41 -28
  479. package/src/components/ui/.feature-card.md +35 -31
  480. package/src/components/ui/.feature-list.md +48 -0
  481. package/src/components/ui/.field-wrapper.md +47 -0
  482. package/src/components/ui/.file-upload.md +42 -0
  483. package/src/components/ui/.filter-checkbox-item.md +43 -0
  484. package/src/components/ui/.filter-list.md +57 -0
  485. package/src/components/ui/.filter-modal.md +59 -0
  486. package/src/components/ui/.floating-tooltip.md +43 -26
  487. package/src/components/ui/.hidden-tags-popup.md +49 -0
  488. package/src/components/ui/.hover-dropdown.md +54 -0
  489. package/src/components/ui/.image-gallery-modal.md +41 -34
  490. package/src/components/ui/.image-uploader.md +53 -0
  491. package/src/components/ui/.index.md +40 -34
  492. package/src/components/ui/.info-card.md +31 -31
  493. package/src/components/ui/.info-row.md +31 -27
  494. package/src/components/ui/.input-trigger.md +44 -0
  495. package/src/components/ui/.input.md +37 -31
  496. package/src/components/ui/.markdown-editor.md +57 -0
  497. package/src/components/ui/.modal-v2.md +51 -0
  498. package/src/components/ui/.modal.md +32 -31
  499. package/src/components/ui/.more-actions-menu.md +45 -38
  500. package/src/components/ui/.organization-card.md +31 -37
  501. package/src/components/ui/.page-actions.md +44 -54
  502. package/src/components/ui/.phone-input.md +54 -0
  503. package/src/components/ui/.progress-bar.md +35 -27
  504. package/src/components/ui/.radio-group.md +39 -27
  505. package/src/components/ui/.release-changelog-section.md +34 -34
  506. package/src/components/ui/.search-input.md +48 -0
  507. package/src/components/ui/.select.md +54 -34
  508. package/src/components/ui/.service-card.md +42 -40
  509. package/src/components/ui/.sheet.md +27 -18
  510. package/src/components/ui/.simple-markdown-renderer.md +29 -31
  511. package/src/components/ui/.sort-column-item.md +42 -0
  512. package/src/components/ui/.square-avatar.md +34 -24
  513. package/src/components/ui/.status-badge.md +26 -38
  514. package/src/components/ui/.switch.md +22 -35
  515. package/src/components/ui/.tab-navigation.md +56 -53
  516. package/src/components/ui/.tab-selector.md +40 -0
  517. package/src/components/ui/.tag-key-value-filter.md +56 -0
  518. package/src/components/ui/.tag-search-input.md +53 -0
  519. package/src/components/ui/.tag.md +49 -31
  520. package/src/components/ui/.tags-manager.md +60 -0
  521. package/src/components/ui/.textarea.md +44 -34
  522. package/src/components/ui/.ticket-attachments-list.md +45 -0
  523. package/src/components/ui/.ticket-detail-section.md +29 -0
  524. package/src/components/ui/.ticket-info-section.md +56 -0
  525. package/src/components/ui/.ticket-note-card.md +53 -0
  526. package/src/components/ui/.ticket-notes-section.md +54 -0
  527. package/src/components/ui/.ticket-status-tag.md +49 -0
  528. package/src/components/ui/.title-content-block.md +25 -26
  529. package/src/components/ui/.toaster.md +40 -28
  530. package/src/components/ui/.tooltip.md +22 -11
  531. package/src/components/ui/.truncate-text.md +39 -0
  532. package/src/components/ui/button/.button-styles.md +35 -0
  533. package/src/components/ui/button/.button.md +53 -0
  534. package/src/components/ui/button/.split-button.md +48 -0
  535. package/src/components/ui/data-table/.data-table-body.md +48 -0
  536. package/src/components/ui/data-table/.data-table-column-filter.md +45 -0
  537. package/src/components/ui/data-table/.data-table-cursor-footer.md +45 -0
  538. package/src/components/ui/data-table/.data-table-empty.md +43 -0
  539. package/src/components/ui/data-table/.data-table-header.md +55 -0
  540. package/src/components/ui/data-table/.data-table-infinite-footer.md +44 -0
  541. package/src/components/ui/data-table/.data-table-row-count.md +43 -0
  542. package/src/components/ui/data-table/.data-table-row.md +47 -0
  543. package/src/components/ui/data-table/.data-table-skeleton.md +42 -0
  544. package/src/components/ui/data-table/.data-table.md +47 -0
  545. package/src/components/ui/data-table/.index.md +55 -0
  546. package/src/components/ui/data-table/.types.md +54 -0
  547. package/src/components/ui/data-table/.use-data-table.md +45 -0
  548. package/src/components/ui/data-table/.utils.md +38 -0
  549. package/src/components/ui/file-manager/.file-manager-action-bar.md +39 -30
  550. package/src/components/ui/file-manager/.file-manager-breadcrumb.md +29 -27
  551. package/src/components/ui/file-manager/.file-manager-context-menu.md +38 -42
  552. package/src/components/ui/file-manager/.file-manager-empty.md +26 -39
  553. package/src/components/ui/file-manager/.file-manager-table-row.md +33 -41
  554. package/src/components/ui/file-manager/.file-manager.md +35 -31
  555. package/src/components/ui/query-report-table/.index.md +43 -0
  556. package/src/components/ui/query-report-table/.query-report-table-header.md +36 -0
  557. package/src/components/ui/query-report-table/.query-report-table-row.md +40 -0
  558. package/src/components/ui/query-report-table/.query-report-table-skeleton.md +44 -0
  559. package/src/components/ui/query-report-table/.query-report-table.md +47 -0
  560. package/src/components/ui/query-report-table/.types.md +41 -0
  561. package/src/components/ui/query-report-table/.utils.md +35 -0
  562. package/src/components/ui/table/.index.md +27 -48
  563. package/src/components/ui/table/.table-cell.md +18 -27
  564. package/src/components/ui/table/.table-column-filter-dropdown.md +40 -0
  565. package/src/components/ui/table/.table-description-cell.md +24 -14
  566. package/src/components/ui/table/.table-empty-state.md +21 -22
  567. package/src/components/ui/table/.table-header.md +25 -40
  568. package/src/components/ui/table/.table-row.md +22 -40
  569. package/src/components/ui/table/.table-skeleton.md +33 -26
  570. package/src/components/ui/table/.table-timestamp-cell.md +26 -16
  571. package/src/components/ui/table/.table.md +39 -59
  572. package/src/components/ui/table/.types.md +44 -36
  573. package/src/components/ui/table/.utils.md +18 -20
  574. package/src/contexts/.chat-runtime-context.md +54 -0
  575. package/src/contexts/.endpoints-runtime-context.md +58 -0
  576. package/src/contexts/.index.md +53 -0
  577. package/src/contexts/.use-outer-or-default.md +36 -0
  578. package/src/embed-shims/.index.md +45 -0
  579. package/src/embed-shims/.next-dynamic.md +43 -0
  580. package/src/embed-shims/.next-image.md +45 -0
  581. package/src/embed-shims/.next-link.md +59 -0
  582. package/src/embed-shims/.next-navigation.md +59 -0
  583. package/src/hooks/.index.md +34 -29
  584. package/src/hooks/.use-access-code-integration.md +49 -0
  585. package/src/hooks/.use-contact-submission.md +37 -26
  586. package/src/hooks/.use-copy-to-clipboard.md +42 -0
  587. package/src/hooks/.use-near-viewport.md +44 -0
  588. package/src/hooks/.use-og-placeholder.md +51 -0
  589. package/src/hooks/.use-toast.md +36 -35
  590. package/src/hooks/state/.use-api-params.md +29 -46
  591. package/src/hooks/state/.use-query-params.md +37 -33
  592. package/src/hooks/ui/.index.md +33 -32
  593. package/src/hooks/ui/.use-auto-limit-tags.md +54 -0
  594. package/src/hooks/ui/.use-horizontal-scrollbar.md +74 -0
  595. package/src/hooks/ui/.use-image-edge-color.md +42 -0
  596. package/src/hooks/ui/.use-media-query.md +33 -25
  597. package/src/hooks/ui/.use-search.md +51 -0
  598. package/src/nats/.nats.md +49 -28
  599. package/src/schemas/.contact-schema.md +45 -0
  600. package/src/stories/.AnnouncementBar.stories.md +45 -0
  601. package/src/stories/.AppLayout.stories.md +20 -21
  602. package/src/stories/.Autocomplete.stories.md +48 -34
  603. package/src/stories/.Board.stories.md +35 -0
  604. package/src/stories/.Button.stories.md +36 -33
  605. package/src/stories/.ChatTicketList.stories.md +33 -0
  606. package/src/stories/.CheckboxBlock.stories.md +40 -28
  607. package/src/stories/.ContentLoader.stories.md +47 -0
  608. package/src/stories/.DashboardInfoCard.stories.md +57 -0
  609. package/src/stories/.DataTable.stories.md +41 -0
  610. package/src/stories/.DatePicker.stories.md +66 -52
  611. package/src/stories/.DeviceCard.stories.md +41 -40
  612. package/src/stories/.DeviceCardCompact.stories.md +41 -0
  613. package/src/stories/.DotsLoaderIcon.stories.md +36 -0
  614. package/src/stories/.Drawer.stories.md +58 -0
  615. package/src/stories/.EmbeddableChat.stories.md +41 -0
  616. package/src/stories/.FileManager.stories.md +41 -0
  617. package/src/stories/.FileManagerActionBar.stories.md +38 -0
  618. package/src/stories/.FileUpload.stories.md +53 -0
  619. package/src/stories/.FilterList.stories.md +54 -0
  620. package/src/stories/.FilterModal.stories.md +72 -0
  621. package/src/stories/.FiltersDropdown.stories.md +57 -0
  622. package/src/stories/.Header.stories.md +48 -0
  623. package/src/stories/.ImageUploader.stories.md +49 -0
  624. package/src/stories/.InfoCard.stories.md +54 -0
  625. package/src/stories/.Input.stories.md +48 -30
  626. package/src/stories/.ListPageLayout.stories.md +56 -43
  627. package/src/stories/.MingoOnboardingCard.stories.md +42 -0
  628. package/src/stories/.MingoOnboardingCardSkeleton.stories.md +35 -0
  629. package/src/stories/.Modal.stories.md +40 -31
  630. package/src/stories/.NotificationDrawer.stories.md +55 -0
  631. package/src/stories/.OnboardingStepCard.stories.md +41 -0
  632. package/src/stories/.OrganizationCard.stories.md +61 -0
  633. package/src/stories/.PageActions.stories.md +52 -49
  634. package/src/stories/.PageContainer.stories.md +41 -35
  635. package/src/stories/.PageLayout.stories.md +60 -0
  636. package/src/stories/.ParallaxImageShowcase.stories.md +49 -0
  637. package/src/stories/.PhoneInput.stories.md +53 -0
  638. package/src/stories/.QueryReportTable.stories.md +44 -0
  639. package/src/stories/.RadioGroup.stories.md +46 -0
  640. package/src/stories/.RadioGroupBlock.stories.md +45 -0
  641. package/src/stories/.Select.stories.md +29 -15
  642. package/src/stories/.SlashCommandSuggestions.stories.md +41 -0
  643. package/src/stories/.SplitButton.stories.md +62 -0
  644. package/src/stories/.TabNavigation.stories.md +47 -38
  645. package/src/stories/.TabSelector.stories.md +65 -0
  646. package/src/stories/.Table.stories.md +38 -46
  647. package/src/stories/.TableColumnFilterDropdown.stories.md +46 -0
  648. package/src/stories/.Tag.stories.md +43 -32
  649. package/src/stories/.TagKeyValueFilter.stories.md +44 -0
  650. package/src/stories/.TagSearchInput.stories.md +61 -0
  651. package/src/stories/.Textarea.stories.md +49 -26
  652. package/src/stories/.Theme.stories.md +41 -0
  653. package/src/stories/.TicketAttachmentsList.stories.md +39 -0
  654. package/src/stories/.TicketDescriptionViewer.stories.md +39 -0
  655. package/src/stories/.TicketInfoSection.stories.md +40 -0
  656. package/src/stories/.TicketKnowledgeBaseList.stories.md +36 -0
  657. package/src/stories/.TicketNotesSection.stories.md +50 -0
  658. package/src/stories/.Toaster.stories.md +40 -0
  659. package/src/stories/.ToolExecutionDisplay.stories.md +41 -0
  660. package/src/stories/.Tooltip.stories.md +41 -0
  661. package/src/stories/.UserSummary.stories.md +41 -0
  662. package/src/stories/.WaitlistForm.stories.md +42 -0
  663. package/src/stories/BlogCard.stories.tsx +61 -0
  664. package/src/stories/CampaignCardAdmin.stories.tsx +52 -0
  665. package/src/stories/CaseStudyCard.stories.tsx +42 -0
  666. package/src/stories/ChatContainer.stories.tsx +186 -0
  667. package/src/stories/ChatInlineVideoPill.stories.tsx +63 -0
  668. package/src/stories/CustomerInterviewCard.stories.tsx +42 -0
  669. package/src/stories/DataRoomDocCard.stories.tsx +52 -0
  670. package/src/stories/GenericEntityCard.stories.tsx +66 -0
  671. package/src/stories/GitHubActivityCard.stories.tsx +61 -0
  672. package/src/stories/HubspotTicketCard.stories.tsx +98 -0
  673. package/src/stories/InvestorUpdateCard.stories.tsx +42 -0
  674. package/src/stories/OnboardingGuideCard.stories.tsx +52 -0
  675. package/src/stories/ProductReleaseCard.stories.tsx +61 -0
  676. package/src/stories/ProgramCard.stories.tsx +79 -0
  677. package/src/stories/RoadmapCard.stories.tsx +75 -0
  678. package/src/stories/SlackMessageCard.stories.tsx +41 -0
  679. package/src/stories/__fixtures__/chat-cards.ts +604 -0
  680. package/src/types/.blog.md +53 -29
  681. package/src/types/.case-study.md +44 -27
  682. package/src/types/.customer-interview.md +66 -44
  683. package/src/types/.delivery.md +40 -0
  684. package/src/types/.employee.md +24 -30
  685. package/src/types/.index.md +33 -47
  686. package/src/types/.marketing.md +49 -44
  687. package/src/types/.navigation.md +33 -25
  688. package/src/types/.os.types.md +32 -27
  689. package/src/types/.platform.md +31 -28
  690. package/src/types/.product-release.md +65 -38
  691. package/src/types/.supabase.md +37 -29
  692. package/src/types/.team.md +41 -33
  693. package/src/types/.video-processing.md +54 -0
  694. package/src/types/.waitlist.md +40 -36
  695. package/src/utils/.access-code-client.md +37 -36
  696. package/src/utils/.cn.md +31 -23
  697. package/src/utils/.color-analysis.md +35 -0
  698. package/src/utils/.country-phone-utils.md +39 -0
  699. package/src/utils/.date-formatters.md +19 -18
  700. package/src/utils/.embed-authed-fetch.md +39 -0
  701. package/src/utils/.embed-proxy-auth-storage.md +38 -0
  702. package/src/utils/.fetch-priority.md +41 -0
  703. package/src/utils/.format.md +74 -25
  704. package/src/utils/.generic-domain-utils.md +42 -0
  705. package/src/utils/.image-proxy.md +59 -23
  706. package/src/utils/.index.md +42 -49
  707. package/src/utils/.local-storage-adapter.md +50 -0
  708. package/src/utils/.ods-color-utils.md +55 -38
  709. package/src/utils/.platform-config.md +45 -25
  710. package/src/utils/.scroll-into-view.md +40 -0
  711. package/src/utils/.source-icons.md +53 -0
  712. package/src/utils/.sse-decision-frame.md +46 -0
  713. package/src/utils/dev-sections/.index.md +34 -0
  714. package/src/utils/dev-sections/.openframe-dev-sections.md +49 -0
  715. package/dist/chunk-ZDF6F7ED.cjs.map +0 -1
  716. package/dist/chunk-ZTJVRSN5.js.map +0 -1
  717. package/src/components/.card.md +0 -42
  718. package/src/components/.contact-button.md +0 -30
  719. package/src/components/.drawer.md +0 -46
  720. package/src/components/.fixed-layout-container.md +0 -47
  721. package/src/components/.footer-waitlist-card.md +0 -29
  722. package/src/components/.join-waitlist-cta.md +0 -29
  723. package/src/components/.sheet.md +0 -47
  724. package/src/components/.sliding-panel.md +0 -48
  725. package/src/components/.tooltip.md +0 -48
  726. package/src/components/.use-mobile.md +0 -42
  727. package/src/components/.vendor-compact-card.md +0 -66
  728. package/src/components/.x-button.md +0 -42
  729. package/src/components/features/.github-repo-button.md +0 -40
  730. package/src/components/features/.organization-icon.md +0 -47
  731. package/src/components/features/.organization-selector.md +0 -45
  732. package/src/components/icons/.fleet-icon.md +0 -39
  733. package/src/components/icons/.meshcentral-icon.md +0 -35
  734. package/src/components/icons/.refresh-icon.md +0 -34
  735. package/src/components/icons/.tactical-icon.md +0 -35
  736. package/src/components/ui/.button.md +0 -69
  737. package/src/components/ui/.log-table-row.md +0 -47
  738. package/src/components/ui/.selectable-device-card.md +0 -46
  739. package/src/hooks/.api-hooks-stub.md +0 -45
  740. package/src/hooks/api/.use-product-releases.md +0 -53
  741. package/src/stories/.OrganizationSelector.stories.md +0 -42
  742. package/src/stories/.SelectableDeviceCard.stories.md +0 -30
  743. package/src/utils/.lite-youtube-embed-stub.md +0 -37
  744. package/src/utils/.lite-youtube-embed.md +0 -33
  745. /package/dist/{chunk-IK2X5YJU.js.map → chunk-7PCP7YQR.js.map} +0 -0
  746. /package/dist/{chunk-3JWIJJ44.js.map → chunk-R6MLPU4A.js.map} +0 -0
@@ -1,42 +1,52 @@
1
- <!-- source-hash: fb292df7a4c271bf8bfb904b650f406a -->
2
- A customizable textarea component built with React forwardRef that provides consistent styling and error state handling for form inputs in the Flamingo design system.
1
+ <!-- source-hash: ec4ed0c801de7134f1ad25648dec0319 -->
2
+ A client-side textarea component supporting labels, validation states, and optional end icons (as decorative spans or interactive buttons), built on top of `FieldWrapper`.
3
3
 
4
4
  ## Key Components
5
5
 
6
- - **TextareaProps**: Interface extending React's textarea attributes with an `invalid` prop for error states
7
- - **Textarea**: Forwardref component that renders a styled textarea with comprehensive visual states
8
- - **cn**: Utility function for conditional class name merging
6
+ ### `Textarea`
7
+ A `React.forwardRef` component extending native `HTMLTextAreaElement` attributes with the following additional props:
9
8
 
10
- The component features dark theme styling, focus states with accent color rings, hover effects, and vertical resizing capability. Error states are handled through the `invalid` prop which applies red border styling.
9
+ | Prop | Type | Description |
10
+ |------|------|-------------|
11
+ | `invalid` | `boolean` | Renders red error border/ring |
12
+ | `label` | `string` | Label text above the textarea |
13
+ | `error` | `string` | Error message below the textarea |
14
+ | `endIcon` | `React.ReactNode` | Icon rendered at the right edge |
15
+ | `endIconAsButton` | `boolean` | Wraps `endIcon` in a styled `<button>` |
16
+ | `endIconButtonProps` | `ButtonHTMLAttributes` | Extra props for the end-icon button |
17
+
18
+ **Two layout modes:**
19
+ - **Without `endIcon`**: Border and background styles live directly on the `<textarea>` element.
20
+ - **With `endIcon`**: A `<label>` wrapper hosts the border/background so the icon appears visually inside the field. The textarea uses `[field-sizing:content]` for native CSS auto-grow and caps height at `160px` with internal scroll.
11
21
 
12
22
  ## Usage Example
13
23
 
14
24
  ```typescript
15
- import { Textarea } from "./textarea"
16
- import { useState } from "react"
17
-
18
- function CommentForm() {
19
- const [comment, setComment] = useState("")
20
- const [hasError, setHasError] = useState(false)
21
-
22
- return (
23
- <div className="space-y-4">
24
- <Textarea
25
- placeholder="Enter your comment..."
26
- value={comment}
27
- onChange={(e) => setComment(e.target.value)}
28
- invalid={hasError}
29
- rows={4}
30
- />
31
-
32
- <Textarea
33
- placeholder="Optional feedback"
34
- className="min-h-[120px]"
35
- disabled
36
- />
37
- </div>
38
- )
39
- }
40
- ```
41
-
42
- The component automatically handles focus management, supports all standard textarea attributes, and maintains visual consistency with the broader form input system through shared design tokens and responsive behaviors.
25
+ // Basic textarea with label and validation
26
+ <Textarea
27
+ label="Message"
28
+ placeholder="Type your message..."
29
+ error="Message is required"
30
+ />
31
+
32
+ // Auto-growing textarea with a submit button icon
33
+ <Textarea
34
+ label="Chat Input"
35
+ placeholder="Ask something..."
36
+ endIcon={<SendIcon />}
37
+ endIconAsButton
38
+ endIconButtonProps={{
39
+ 'aria-label': 'Send message',
40
+ onClick: handleSend,
41
+ disabled: isLoading,
42
+ }}
43
+ />
44
+
45
+ // Controlled with disabled state
46
+ <Textarea
47
+ value={value}
48
+ onChange={(e) => setValue(e.target.value)}
49
+ disabled
50
+ rows={4}
51
+ />
52
+ ```
@@ -0,0 +1,45 @@
1
+ <!-- source-hash: 9fe959702866abb3d54c107fab70e0a4 -->
2
+ Renders a styled list of file attachments for a support ticket, displaying thumbnail or file icon, name, size, and an optional download button per item.
3
+
4
+ ## Key Components
5
+
6
+ - **`TicketAttachment`** — Interface describing a single attachment: `id`, `fileName`, `fileSize`, optional `thumbnailSrc`, and optional `onDownload` callback
7
+ - **`TicketAttachmentsListProps`** — Props interface accepting an `attachments` array and optional `className`
8
+ - **`TicketAttachmentsList`** — Main component that maps over attachments, rendering each row with a `SquareAvatar` (if thumbnail exists) or a fallback `FileIcon`, truncated filename, file size, and a download button
9
+
10
+ ## Usage Example
11
+
12
+ ```typescript
13
+ import { TicketAttachmentsList, TicketAttachment } from "./ticket-attachments-list"
14
+
15
+ const attachments: TicketAttachment[] = [
16
+ {
17
+ id: "1",
18
+ fileName: "screenshot.png",
19
+ fileSize: "1.2 MB",
20
+ thumbnailSrc: "https://cdn.example.com/thumb.png",
21
+ onDownload: () => console.log("Downloading screenshot.png"),
22
+ },
23
+ {
24
+ id: "2",
25
+ fileName: "error-log.txt",
26
+ fileSize: "48 KB",
27
+ onDownload: () => console.log("Downloading error-log.txt"),
28
+ },
29
+ ]
30
+
31
+ export default function TicketDetail() {
32
+ return (
33
+ <TicketAttachmentsList
34
+ attachments={attachments}
35
+ className="mt-4"
36
+ />
37
+ )
38
+ }
39
+ ```
40
+
41
+ ## Notes
42
+
43
+ - Returns `null` when the `attachments` array is empty — safe to render unconditionally
44
+ - Long filenames are truncated with CSS and exposed via the `title` attribute for full visibility on hover
45
+ - Download button only renders when `onDownload` is provided
@@ -0,0 +1,29 @@
1
+ <!-- source-hash: cc870cf8d23036d002a435c07bd1d5aa -->
2
+ A reusable layout component that renders a labeled section within a ticket detail view, pairing an uppercase secondary-text heading with arbitrary child content.
3
+
4
+ ## Key Components
5
+
6
+ ### `TicketDetailSection`
7
+ A simple presentational component that wraps a section label and its associated content in a flex column layout.
8
+
9
+ **Props (`TicketDetailSectionProps`):**
10
+
11
+ | Prop | Type | Description |
12
+ |------|------|-------------|
13
+ | `label` | `string` | Section heading displayed in secondary text style |
14
+ | `children` | `React.ReactNode` | Content rendered below the label |
15
+ | `className` | `string?` | Optional additional CSS classes |
16
+
17
+ ## Usage Example
18
+
19
+ ```typescript
20
+ import { TicketDetailSection } from "./ticket-detail-section"
21
+
22
+ export function TicketDetails() {
23
+ return (
24
+ <TicketDetailSection label="Assigned To">
25
+ <span>John Doe</span>
26
+ </TicketDetailSection>
27
+ )
28
+ }
29
+ ```
@@ -0,0 +1,56 @@
1
+ <!-- source-hash: 25c594905e7f584756ad751975cbc35e -->
2
+ A collapsible ticket information panel that displays key ticket metadata (organization, assignee, device, status) in a header row, with an expandable section revealing additional details like description, attachments, tags, and notes.
3
+
4
+ ## Key Components
5
+
6
+ ### `TicketInfoSection`
7
+ Main export. Renders a bordered card with a responsive header grid and optional expanded content area.
8
+
9
+ ### `InfoCell` (internal)
10
+ Reusable label/value display cell supporting an optional icon and clickable value.
11
+
12
+ ### `TicketInfoSectionProps`
13
+ Full interface for the component:
14
+
15
+ | Prop | Type | Description |
16
+ |------|------|-------------|
17
+ | `organization` | `{ name, imageSrc? }` | Org name and avatar |
18
+ | `device` | `{ name, icon?, onClick? }` | Device name with optional navigation |
19
+ | `status` | `string` | Rendered via `TicketStatusTag` |
20
+ | `assigned` | `AssignedConfig` | Assignee dropdown config |
21
+ | `expanded` | `boolean` | Controls expanded section visibility |
22
+ | `onExpand` | `() => void` | Expand/collapse toggle handler |
23
+ | `description` | `string` | Markdown/HTML content |
24
+ | `attachments` | `TicketAttachment[]` | Downloadable file list |
25
+ | `tags` | `string[]` | Label tags |
26
+ | `notes` | `TicketNote[]` | Notes with add/edit/delete handlers |
27
+
28
+ ## Usage Example
29
+
30
+ ```typescript
31
+ import { TicketInfoSection } from "./ticket-info-section"
32
+
33
+ function TicketPage() {
34
+ const [expanded, setExpanded] = React.useState(false)
35
+
36
+ return (
37
+ <TicketInfoSection
38
+ organization={{ name: "Acme Corp", imageSrc: "/acme-logo.png" }}
39
+ device={{ name: "DESKTOP-XYZ01", onClick: () => router.push("/devices/1") }}
40
+ status="open"
41
+ expanded={expanded}
42
+ onExpand={() => setExpanded(prev => !prev)}
43
+ assigned={{
44
+ currentAssignee: { id: "u1", name: "Jane Doe" },
45
+ options: assigneeOptions,
46
+ onAssign: (userId) => handleAssign(userId),
47
+ }}
48
+ createdAt="Jan 15, 2025"
49
+ description="**Issue:** User cannot log in.\n\nSteps to reproduce..."
50
+ tags={["urgent", "auth"]}
51
+ notes={notes}
52
+ onAddNote={(text) => addNote(text)}
53
+ />
54
+ )
55
+ }
56
+ ```
@@ -0,0 +1,53 @@
1
+ <!-- source-hash: 88db6ae7f82dae65095e5d817320bc8e -->
2
+ A client-side React component that renders a single ticket note with inline editing, delete, and author attribution capabilities.
3
+
4
+ ## Key Components
5
+
6
+ ### Interfaces
7
+
8
+ - **`TicketNote`** — Data model for a note, including `id`, `text`, `authorName`, `authorAvatar`, `createdAt`, and `isOwn` (controls edit/delete visibility)
9
+ - **`TicketNoteCardProps`** — Component props accepting a `TicketNote`, optional `onEdit`/`onDelete` callbacks, and `className`
10
+
11
+ ### Component
12
+
13
+ - **`TicketNoteCard`** — Stateful card component managing edit mode toggle, text input state, save/cancel/keyboard interactions (`Enter` to save, `Escape` to cancel)
14
+
15
+ ## Usage Example
16
+
17
+ ```typescript
18
+ import { TicketNoteCard, TicketNote } from "./ticket-note-card"
19
+
20
+ const note: TicketNote = {
21
+ id: "note-1",
22
+ text: "Customer confirmed the issue is reproducible on Windows only.",
23
+ authorName: "Jane Doe",
24
+ authorAvatar: "https://cdn.example.com/avatars/jane.png",
25
+ createdAt: "Jan 15, 2025",
26
+ isOwn: true,
27
+ }
28
+
29
+ function NoteList() {
30
+ const handleEdit = (id: string, text: string) => {
31
+ console.log("Updated note:", id, text)
32
+ }
33
+
34
+ const handleDelete = (id: string) => {
35
+ console.log("Deleted note:", id)
36
+ }
37
+
38
+ return (
39
+ <TicketNoteCard
40
+ note={note}
41
+ onEdit={handleEdit}
42
+ onDelete={handleDelete}
43
+ className="my-2"
44
+ />
45
+ )
46
+ }
47
+ ```
48
+
49
+ ## Behavior Notes
50
+
51
+ - Edit/delete actions are only rendered when `note.isOwn` is `true`
52
+ - Save is disabled if the trimmed input is empty
53
+ - Uses `SquareAvatar` for author display and `Input` for inline editing
@@ -0,0 +1,54 @@
1
+ <!-- source-hash: b7535dbf79220d22a1a0b0b0e1da828e -->
2
+ A client-side React component that renders a list of ticket notes with an optional inline input for adding new notes.
3
+
4
+ ## Key Components
5
+
6
+ ### `TicketNotesSectionProps`
7
+ | Prop | Type | Description |
8
+ |------|------|-------------|
9
+ | `notes` | `TicketNote[]` | Array of note objects to display |
10
+ | `onAddNote` | `(text: string) => void` | Callback when a new note is submitted; omitting it hides the input UI |
11
+ | `onEditNote` | `(id: string, text: string) => void` | Callback to update an existing note |
12
+ | `onDeleteNote` | `(id: string) => void` | Callback to remove a note |
13
+ | `isAddingNote` | `boolean` | Disables input and send button during async submission |
14
+ | `className` | `string` | Additional CSS classes for the wrapper |
15
+
16
+ ### `TicketNotesSection`
17
+ The default export. Manages local `noteText` state and exposes two submission paths:
18
+ - **`Enter` key** (without `Shift`) triggers `handleSend`
19
+ - **Send button** click triggers `handleSend`
20
+
21
+ Both paths trim whitespace and short-circuit if the input is empty or `isAddingNote` is `true`.
22
+
23
+ ## Usage Example
24
+
25
+ ```typescript
26
+ import { TicketNotesSection } from "./ticket-notes-section"
27
+ import type { TicketNote } from "./ticket-note-card"
28
+
29
+ const notes: TicketNote[] = [
30
+ { id: "1", text: "Checked network config", author: "Alice", createdAt: "2024-01-10" },
31
+ ]
32
+
33
+ function TicketDetail() {
34
+ const [adding, setAdding] = React.useState(false)
35
+
36
+ const handleAdd = async (text: string) => {
37
+ setAdding(true)
38
+ await saveNote(text)
39
+ setAdding(false)
40
+ }
41
+
42
+ return (
43
+ <TicketNotesSection
44
+ notes={notes}
45
+ onAddNote={handleAdd}
46
+ onEditNote={(id, text) => updateNote(id, text)}
47
+ onDeleteNote={(id) => removeNote(id)}
48
+ isAddingNote={adding}
49
+ />
50
+ )
51
+ }
52
+ ```
53
+
54
+ > **Note:** The add-note input row only renders when `onAddNote` is provided, making the component usable in read-only contexts by simply omitting the prop.
@@ -0,0 +1,49 @@
1
+ <!-- source-hash: 5f8fd0a180217b9085f7ea5f038d319a -->
2
+ Renders a styled badge for ticket statuses, normalizing any known status string (backend, chat, dialog-layer) into a canonical `TicketStatus` value with the correct color variant and optional icon.
3
+
4
+ ## Key Components
5
+
6
+ ### Types & Exports
7
+ | Export | Description |
8
+ |--------|-------------|
9
+ | `TicketStatus` | Canonical union type: `'ACTIVE' \| 'TECH_REQUIRED' \| 'ON_HOLD' \| 'RESOLVED' \| 'ARCHIVED'` |
10
+ | `TicketStatusTagProps` | Props interface for the main component |
11
+
12
+ ### Utility Functions
13
+ | Function | Description |
14
+ |----------|-------------|
15
+ | `resolveTicketStatus(status)` | Maps any known alias to a canonical `TicketStatus`; returns `null` for unknowns |
16
+ | `getTicketStatusConfig(status)` | Returns `{ label, variant, icon }` for a given status string |
17
+ | `getTicketStatusTag(status)` | Drop-in utility returning label/variant/icon for use outside the component |
18
+
19
+ ### Component
20
+ - **`TicketStatusTag`** — Wraps the base `Tag` component with resolved status config. Supports label override, hex `color` override with automatic contrast text, `showIcon` toggle, and additional `className`.
21
+
22
+ ## Usage Example
23
+
24
+ ```typescript
25
+ // Basic usage
26
+ <TicketStatusTag status="ACTIVE" />
27
+
28
+ // With alias from dialog layer
29
+ <TicketStatusTag status="ACTION_REQUIRED" />
30
+
31
+ // HubSpot pipeline stage — custom label, canonical color
32
+ <TicketStatusTag status="OPEN" label="Waiting on Contact" />
33
+
34
+ // Hex color override (e.g. from a custom pipeline stage)
35
+ <TicketStatusTag status="ON_HOLD" color="#7C3AED" />
36
+
37
+ // Utility usage outside JSX
38
+ const { label, variant } = getTicketStatusTag('resolved')
39
+ // → { label: 'Resolved', variant: 'outline', icon: <CheckCircleIcon /> }
40
+ ```
41
+
42
+ ### Status → Variant Map
43
+ | Status | Variant | Icon |
44
+ |--------|---------|------|
45
+ | `ACTIVE` | `success` | — |
46
+ | `TECH_REQUIRED` | `warning` | — |
47
+ | `ON_HOLD` | `error` | — |
48
+ | `RESOLVED` | `outline` | ✅ CheckCircle |
49
+ | `ARCHIVED` | `grey` | — |
@@ -1,41 +1,40 @@
1
- <!-- source-hash: 996ae0afe94f2dd7bb1173eb32a69763 -->
2
- A flexible React component for displaying title-content pairs with consistent typography and spacing, commonly used for labeled data displays and section headings.
1
+ <!-- source-hash: 63aa69e366662eef49a80f4c013e6522 -->
2
+ A reusable React component that renders a labeled content block with a title and content element, supporting configurable typography, spacing, and semantic HTML elements.
3
3
 
4
4
  ## Key Components
5
5
 
6
- - **`TitleContentBlock`** - Main component that renders a title above content with customizable styling
7
- - **`TitleContentBlockProps`** - TypeScript interface defining all component props including styling and semantic options
8
- - **`spacingMap`** - Internal mapping object for consistent vertical spacing between title and content
6
+ ### `TitleContentBlock`
7
+ The main export a client-side React component that pairs a title label with a primary content value.
8
+
9
+ ### `TitleContentBlockProps`
10
+ | Prop | Type | Default | Description |
11
+ |------|------|---------|-------------|
12
+ | `title` | `string` | — | Label/title text |
13
+ | `content` | `React.ReactNode` | — | Primary content value |
14
+ | `titleColor` | `string` | `text-ods-text-secondary` | Tailwind color class for title |
15
+ | `titleClassName` | `string` | `text-h5 tracking-[-0.28px]` | Additional title styles |
16
+ | `contentClassName` | `string` | `text-h2 tracking-[-0.64px] text-ods-text-primary` | Content element styles |
17
+ | `containerClassName` | `string` | `''` | Wrapper `div` styles |
18
+ | `titleAs` | `h1–h6 \| div` | `div` | Semantic element for the title |
19
+ | `contentAs` | `h1–h6 \| p \| div` | `h4` | Semantic element for the content |
20
+ | `spacing` | `sm \| md \| lg` | `md` | Vertical gap between title and content |
9
21
 
10
22
  ## Usage Example
11
23
 
12
24
  ```typescript
13
- import { TitleContentBlock } from './title-content-block';
14
-
15
- // Basic usage with default styling
25
+ // Basic usage stat or metric display
16
26
  <TitleContentBlock
17
- title="Project Status"
18
- content="In Progress"
27
+ title="Total Devices"
28
+ content="1,248"
19
29
  />
20
30
 
21
- // Advanced usage with custom styling and semantic elements
31
+ // Custom semantic elements and spacing
22
32
  <TitleContentBlock
23
- title="Revenue"
24
- content="$1,234,567"
33
+ title="Active Tickets"
34
+ content={<span className="text-red-500">42</span>}
25
35
  titleAs="h3"
26
36
  contentAs="p"
27
37
  spacing="lg"
28
- titleColor="text-blue-600"
29
- contentClassName="text-green-600 font-bold text-xl"
30
- containerClassName="p-4 bg-gray-50 rounded"
38
+ containerClassName="p-4 rounded-lg bg-ods-surface"
31
39
  />
32
-
33
- // Dynamic content example
34
- <TitleContentBlock
35
- title="User Count"
36
- content={<span>{userCount.toLocaleString()}</span>}
37
- spacing="sm"
38
- />
39
- ```
40
-
41
- The component uses Azeret Mono font family by default and provides three spacing options (sm/md/lg) with responsive text sizing. Both title and content elements can be rendered as different HTML tags for proper semantic structure.
40
+ ```
@@ -1,45 +1,57 @@
1
- <!-- source-hash: ba005812ae189473256085a9a1a1fafd -->
2
- A React client-side component that provides a customized toast notification system using Sonner with theme-aware styling.
1
+ <!-- source-hash: 1847d3dd263a7c340149cc9157774ef5 -->
2
+ A client-side toast notification system built on top of [Sonner](https://sonner.emilkowal.ski/), providing styled toast components with variant support, progress indicators, and a specialized command approval flow.
3
3
 
4
4
  ## Key Components
5
5
 
6
- - **Toaster**: Main component that renders the Sonner toast container with custom positioning and styling
7
- - Positioned at bottom-right with custom CSS classes for consistent theming
8
- - Supports different toast types (error, success, warning, info) with distinct visual styles
6
+ | Export | Type | Description |
7
+ |--------|------|-------------|
8
+ | `Toaster` | Component | Root provider wrapping Sonner's `Toaster`; injects the `toast-progress` keyframe animation |
9
+ | `ToastCard` | Component | Standard toast card with title, description, colored dot indicator, dismiss button, and animated progress bar |
10
+ | `CommandApprovalToast` | Component | Expandable toast with Approve/Reject actions for AI command authorization flows |
11
+ | `showToast` | Function | Imperative helper to fire a `ToastCard` toast |
12
+ | `showCommandApprovalToast` | Function | Imperative helper to fire a `CommandApprovalToast` |
13
+ | `ToastVariant` | Type | `'default' \| 'success' \| 'warning' \| 'error' \| 'info'` |
9
14
 
10
15
  ## Usage Example
11
16
 
17
+ **Mount the provider once (root layout):**
18
+
12
19
  ```typescript
13
- import { Toaster } from './toaster'
14
- import { toast } from 'sonner'
20
+ import { Toaster } from '@/components/toaster'
15
21
 
16
- // Include in your app layout
17
- function Layout({ children }: { children: React.ReactNode }) {
22
+ export default function RootLayout({ children }) {
18
23
  return (
19
- <div>
24
+ <>
20
25
  {children}
21
- <Toaster />
22
- </div>
26
+ <Toaster position="bottom-right" />
27
+ </>
23
28
  )
24
29
  }
30
+ ```
25
31
 
26
- // Trigger toasts from anywhere in your app
27
- function MyComponent() {
28
- const handleSuccess = () => {
29
- toast.success('Operation completed successfully!')
30
- }
32
+ **Fire a standard toast:**
31
33
 
32
- const handleError = () => {
33
- toast.error('Something went wrong')
34
- }
34
+ ```typescript
35
+ import { showToast } from '@/components/toaster'
35
36
 
36
- return (
37
- <div>
38
- <button onClick={handleSuccess}>Success Toast</button>
39
- <button onClick={handleError}>Error Toast</button>
40
- </div>
41
- )
42
- }
37
+ showToast({ title: 'Saved', description: 'Changes saved successfully.', variant: 'success' })
38
+
39
+ // Shorthand
40
+ showToast('Operation complete')
41
+ ```
42
+
43
+ **Request command approval (Mingo AI flow):**
44
+
45
+ ```typescript
46
+ import { showCommandApprovalToast } from '@/components/toaster'
47
+
48
+ showCommandApprovalToast({
49
+ command: 'apt-get upgrade -y',
50
+ toolType: 'terminal',
51
+ approvalDescription: 'This will upgrade all system packages.',
52
+ onApprove: () => executeCommand(),
53
+ onReject: () => cancelJob(),
54
+ })
43
55
  ```
44
56
 
45
- The component uses ODS (design system) CSS custom properties for consistent theming across toast states, with semi-transparent backgrounds and matching borders for visual hierarchy.
57
+ > `CommandApprovalToast` defaults to `duration: Infinity` so it persists until the technician explicitly approves or rejects the action.
@@ -1,27 +1,34 @@
1
- <!-- source-hash: a3607c1ea05dad72d4bcf94d01e56f46 -->
2
- A React tooltip component built on Radix UI primitives with dark theme styling and maximum z-index for overlay visibility.
1
+ <!-- source-hash: 7a9da2d80c73e939b410ce27e719aa66 -->
2
+ Accessible tooltip component built on Radix UI primitives, providing animated, portal-rendered tooltips with consistent ODS (OpenFrame Design System) styling.
3
3
 
4
4
  ## Key Components
5
5
 
6
- - **TooltipProvider** - Context provider for tooltip functionality
7
- - **Tooltip** - Root tooltip container component
8
- - **TooltipTrigger** - Element that triggers the tooltip on hover/focus
9
- - **TooltipContent** - Styled tooltip content with portal rendering and animations
6
+ | Export | Type | Description |
7
+ |--------|------|-------------|
8
+ | `TooltipProvider` | Component | Context provider required at the app/layout level to manage tooltip state |
9
+ | `Tooltip` | Component | Root wrapper controlling open/close behavior |
10
+ | `TooltipTrigger` | Component | Element that activates the tooltip on hover/focus |
11
+ | `TooltipContent` | Component | Styled content panel rendered in a portal with enter/exit animations |
10
12
 
11
13
  ## Usage Example
12
14
 
13
15
  ```typescript
14
- import { Tooltip, TooltipContent, TooltipProvider, TooltipTrigger } from "./tooltip"
16
+ import {
17
+ Tooltip,
18
+ TooltipContent,
19
+ TooltipProvider,
20
+ TooltipTrigger,
21
+ } from "@/components/ui/tooltip"
15
22
 
16
- function App() {
23
+ export function ActionButton() {
17
24
  return (
18
25
  <TooltipProvider>
19
26
  <Tooltip>
20
27
  <TooltipTrigger asChild>
21
28
  <button>Hover me</button>
22
29
  </TooltipTrigger>
23
- <TooltipContent>
24
- <p>This is a tooltip message</p>
30
+ <TooltipContent side="top">
31
+ <p>Helpful context here</p>
25
32
  </TooltipContent>
26
33
  </Tooltip>
27
34
  </TooltipProvider>
@@ -29,4 +36,8 @@ function App() {
29
36
  }
30
37
  ```
31
38
 
32
- The component features a dark theme with `#1A1A1A` background, smooth fade/zoom animations, and maximum z-index (`2147483647`) to ensure tooltips appear above all other content. The content automatically positions itself relative to the trigger with a 4px offset and includes directional slide animations.
39
+ ## Notes
40
+
41
+ - `TooltipContent` defaults to `sideOffset={4}` and supports all four sides (`top`, `bottom`, `left`, `right`) with direction-aware slide-in animations via Tailwind data attributes.
42
+ - Content is injected via a **portal**, ensuring correct stacking context (`z-[1400]`) above modals and overlays.
43
+ - `TooltipProvider` should be placed high in the component tree (e.g., root layout) to avoid nesting multiple providers unnecessarily.
@@ -0,0 +1,39 @@
1
+ <!-- source-hash: 8d0022286e01a2ce895c17613d9cae17 -->
2
+ Renders truncated text using ODS typography tokens, displaying a `FloatingTooltip` with the full content only when overflow is detected via `ResizeObserver`.
3
+
4
+ ## Key Components
5
+
6
+ - **`TruncateText`** — Main export. Wraps a `<span>` with overflow detection and conditionally enables a tooltip.
7
+ - **`TruncateTextProps`** — Interface defining all configuration options.
8
+ - **`TruncateTextVariant`** — Union type (`'h1'`–`'h6'`) mapping to ODS typography utilities.
9
+ - **`TruncateTextTone`** — Union type (`'primary'` | `'secondary'`) mapping to ODS text colour utilities.
10
+ - **Overflow detection** — Uses `ResizeObserver` to re-check truncation on container resize; single-line uses `scrollWidth`, multi-line uses `scrollHeight`.
11
+
12
+ ## Usage Example
13
+
14
+ ```typescript
15
+ // Single-line truncation (default h4 / primary)
16
+ <TruncateText>{deviceName}</TruncateText>
17
+
18
+ // Secondary caption style with custom tooltip side
19
+ <TruncateText variant="h6" tone="secondary" side="bottom">
20
+ {email}
21
+ </TruncateText>
22
+
23
+ // Multi-line clamp with custom tooltip content
24
+ <TruncateText lines={3} tooltip={<span>Full description here</span>}>
25
+ {longDescription}
26
+ </TruncateText>
27
+
28
+ // Monospace heading font, forced secondary tone
29
+ <TruncateText variant="h5" tone="secondary" mono>
30
+ {ticketId}
31
+ </TruncateText>
32
+ ```
33
+
34
+ ## Behaviour Notes
35
+
36
+ - Tooltip is **disabled** until actual overflow occurs — no tooltip shown for short strings.
37
+ - `lines={1}` applies Tailwind `truncate` (single-line ellipsis); `lines={2–6}` applies `line-clamp-N`.
38
+ - `tooltip` prop defaults to `children` when omitted.
39
+ - The `mono` prop swaps the font family to `--font-family-heading` while preserving the variant's size scale.