@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,51 +1,51 @@
1
- <!-- source-hash: 02bdd5a69b9b56515feb0ba7774fd9b5 -->
2
- React component that renders a changelog section for product releases, displaying a list of changelog entries with optional section titles and breaking change indicators.
1
+ <!-- source-hash: 7fa49d7ef85ecd5ac09ebac9a632fbac -->
2
+ Renders a collapsible/expandable changelog section for product releases, supporting three display modes: default (always visible), collapsible (toggle open/closed), and preview-first (show first entry with fade-masked overflow).
3
3
 
4
4
  ## Key Components
5
5
 
6
- - **ReleaseChangelogSection** - Main component that renders a changelog section with title, entry count badge, and formatted entry list
7
- - **ReleaseChangelogSectionProps** - Interface defining component props including title, entries array, breaking change flag, and markdown renderer
8
- - **ChangelogEntry** - Type import for individual changelog entries from product release types
6
+ ### `ReleaseChangelogSection` (exported)
7
+ Main component accepting these key props:
8
+
9
+ | Prop | Type | Description |
10
+ |------|------|-------------|
11
+ | `title` | `string` | Section heading text |
12
+ | `entries` | `ChangelogEntry[]` | List of changelog items to render |
13
+ | `isBreaking` | `boolean` | Applies red styling for breaking changes |
14
+ | `collapsible` | `boolean` | Enables toggle open/close mode (wins over `previewFirst`) |
15
+ | `defaultCollapsed` | `boolean` | Initial collapsed state when `collapsible=true` (default: `true`) |
16
+ | `previewFirst` | `boolean` | Shows first entry fully, fades remaining with "Show N more" toggle |
17
+ | `icon` | `React.ReactNode` | Optional Lucide icon rendered before title |
18
+ | `SimpleMarkdownRenderer` | `ComponentType` | Injected markdown renderer for entry descriptions |
19
+
20
+ ### `ChangelogEntryList` (internal)
21
+ Shared list renderer used by both default and preview-first branches. Renders each `ChangelogEntry` as a left-bordered list item with bold title and markdown-rendered description, with responsive typography tokens pinned via Tailwind `[&_p]:!` overrides.
9
22
 
10
23
  ## Usage Example
11
24
 
12
25
  ```typescript
13
26
  import { ReleaseChangelogSection } from './release-changelog-section';
14
- import { SimpleMarkdownRenderer } from './markdown-renderer';
15
-
16
- const changelogEntries = [
17
- {
18
- title: "New authentication system",
19
- description: "Implemented OAuth2 support with **enhanced security** features"
20
- },
21
- {
22
- title: "Performance improvements",
23
- description: "Reduced API response time by 40%"
24
- }
25
- ];
26
-
27
- // Regular changelog section
27
+ import { Sparkles } from 'lucide-react';
28
+
28
29
  <ReleaseChangelogSection
29
30
  title="New Features"
30
- entries={changelogEntries}
31
- SimpleMarkdownRenderer={SimpleMarkdownRenderer}
31
+ entries={[
32
+ { title: "AI Ticketing", description: "Automated ticket routing via Mingo AI." },
33
+ { title: "Client Portal", description: "Fae self-service dashboard launched." },
34
+ ]}
35
+ icon={<Sparkles className="w-5 h-5" />}
36
+ previewFirst
37
+ SimpleMarkdownRenderer={MyMarkdownRenderer}
32
38
  />
33
39
 
34
- // Breaking changes section with red styling
40
+ // Collapsible breaking-changes section
35
41
  <ReleaseChangelogSection
36
42
  title="Breaking Changes"
37
- entries={breakingChanges}
38
- isBreaking={true}
39
- SimpleMarkdownRenderer={SimpleMarkdownRenderer}
40
- />
41
-
42
- // Hidden title variant
43
- <ReleaseChangelogSection
44
- title="Updates"
45
- entries={updates}
46
- hideTitle={true}
47
- SimpleMarkdownRenderer={SimpleMarkdownRenderer}
43
+ entries={breakingEntries}
44
+ isBreaking
45
+ collapsible
46
+ defaultCollapsed={false}
47
+ SimpleMarkdownRenderer={MyMarkdownRenderer}
48
48
  />
49
49
  ```
50
50
 
51
- The component features responsive styling with custom typography (DM Sans font), border accents for entry items, and conditional red coloring for breaking changes. Each entry displays a title and optional markdown-rendered description.
51
+ > **Note:** When both `collapsible` and `previewFirst` are passed, `collapsible` takes precedence. The `previewFirst` fade toggle resets automatically when `entries.length` changes.
@@ -0,0 +1,48 @@
1
+ <!-- source-hash: e33f919319929a558fb7204fa5689d69 -->
2
+ A client-side search input component with debounced querying, filter chip management, keyboard navigation, and a popover-based results dropdown.
3
+
4
+ ## Key Components
5
+
6
+ ### Types
7
+ - **`SearchResult`** — Shape of a single search result (`id`, `title`, `description`, `icon`, `type`, `metadata`)
8
+ - **`FilterChipData`** — Inline filter chip definition with optional variant (`selected`, `category`, `subcategory`, `tag`)
9
+ - **`SearchInputProps`** — Full prop surface for the component (controlled/uncontrolled, debounce, grouping, chip limits, adornments)
10
+
11
+ ### Exported Component
12
+ - **`SearchInput`** — Main component combining:
13
+ - Debounced input via `useDebounce`
14
+ - Auto-limiting visible chips via `useAutoLimitTags`
15
+ - Radix UI `Popover` for the results dropdown
16
+ - Radix UI `ScrollArea` for scrollable results
17
+ - Keyboard navigation (`ArrowUp`, `ArrowDown`, `Enter`, `Escape`, `Backspace`)
18
+ - Grouped results support via `groupBy` prop
19
+ - Modifier-key-aware result selection (supports cmd/ctrl/middle-click pass-through)
20
+ - Hidden chips overflow popup via `HiddenTagsPopup`
21
+
22
+ ## Usage Example
23
+
24
+ ```typescript
25
+ import { SearchInput, SearchResult } from "./search-input"
26
+
27
+ const results: SearchResult[] = [
28
+ { id: "1", title: "Ticket #1042", description: "Printer offline", type: "ticket" },
29
+ { id: "2", title: "Client: Acme Corp", type: "client" },
30
+ ]
31
+
32
+ <SearchInput
33
+ placeholder="Search tickets, clients..."
34
+ debounceMs={300}
35
+ results={results}
36
+ minQueryLength={2}
37
+ onResultSelect={(result, modifiers) => {
38
+ if (modifiers?.metaKey) {
39
+ openInNewTab(result.path)
40
+ } else {
41
+ navigate(result.path)
42
+ }
43
+ }}
44
+ filterChips={[{ id: "open", label: "Status: Open", variant: "selected" }]}
45
+ onFilterRemove={(id) => removeFilter(id)}
46
+ limitTags="auto"
47
+ />
48
+ ```
@@ -1,43 +1,63 @@
1
- <!-- source-hash: 4e374e3b2f93e6064e92168d97eda2ed -->
2
- A comprehensive Select component built on Radix UI primitives with custom styling for the Flamingo platform. It provides an accessible dropdown selection interface with proper focus management, keyboard navigation, and visual feedback.
1
+ <!-- source-hash: 223f5a1c3c624e5773b99c85b384c3b9 -->
2
+ Accessible, styled select dropdown component built on Radix UI's Select primitive, integrated with the OpenFrame Design System (ODS) token system and `FieldWrapper` for label/error support.
3
3
 
4
4
  ## Key Components
5
5
 
6
- - **Select** - Root component that manages the select state
7
- - **SelectTrigger** - The button that opens the dropdown, styled to match Input components
8
- - **SelectContent** - The dropdown container with portal rendering and animations
9
- - **SelectItem** - Individual option items with hover states and check indicators
10
- - **SelectValue** - Displays the selected value in the trigger
11
- - **SelectLabel** - Section headers within the dropdown
12
- - **SelectGroup** - Groups related items together
13
- - **SelectSeparator** - Visual divider between sections
14
- - **SelectScrollUpButton/SelectScrollDownButton** - Navigation for long lists
6
+ | Export | Description |
7
+ |--------|-------------|
8
+ | `Select` | Root select primitive (Radix `SelectPrimitive.Root`) |
9
+ | `SelectTrigger` | Styled trigger button with `invalid`, `label`, and `error` props; wraps in `FieldWrapper` |
10
+ | `SelectContent` | Dropdown panel rendered in a portal with open/close animations |
11
+ | `SelectItem` | Individual option row with checkmark indicator and hover/disabled states |
12
+ | `SelectGroup` | Groups related options (Radix `SelectPrimitive.Group`) |
13
+ | `SelectLabel` | Label for an option group |
14
+ | `SelectValue` | Displays the currently selected value placeholder |
15
+ | `SelectSeparator` | Horizontal divider between options |
16
+ | `SelectScrollUpButton` / `SelectScrollDownButton` | Scroll controls for long option lists |
15
17
 
16
18
  ## Usage Example
17
19
 
18
20
  ```typescript
19
- import {
20
- Select,
21
- SelectContent,
22
- SelectItem,
23
- SelectTrigger,
24
- SelectValue
25
- } from "./select"
26
-
27
- function StatusSelector() {
28
- return (
29
- <Select defaultValue="active">
30
- <SelectTrigger className="w-48">
31
- <SelectValue placeholder="Select status..." />
32
- </SelectTrigger>
33
- <SelectContent>
34
- <SelectItem value="active">Active</SelectItem>
35
- <SelectItem value="pending">Pending</SelectItem>
36
- <SelectItem value="inactive">Inactive</SelectItem>
37
- </SelectContent>
38
- </Select>
39
- )
40
- }
21
+ import {
22
+ Select,
23
+ SelectContent,
24
+ SelectGroup,
25
+ SelectItem,
26
+ SelectLabel,
27
+ SelectTrigger,
28
+ SelectValue,
29
+ } from "@/components/ui/select"
30
+
31
+ // Basic usage with label and error validation
32
+ <Select>
33
+ <SelectTrigger label="Region" error={errors.region?.message}>
34
+ <SelectValue placeholder="Select a region..." />
35
+ </SelectTrigger>
36
+ <SelectContent>
37
+ <SelectGroup>
38
+ <SelectLabel>North America</SelectLabel>
39
+ <SelectItem value="us-east">US East</SelectItem>
40
+ <SelectItem value="us-west">US West</SelectItem>
41
+ </SelectGroup>
42
+ </SelectContent>
43
+ </Select>
44
+
45
+ // Invalid / error state
46
+ <Select>
47
+ <SelectTrigger label="Priority" invalid error="Priority is required">
48
+ <SelectValue placeholder="Select priority..." />
49
+ </SelectTrigger>
50
+ <SelectContent>
51
+ <SelectItem value="low">Low</SelectItem>
52
+ <SelectItem value="medium">Medium</SelectItem>
53
+ <SelectItem value="high">High</SelectItem>
54
+ </SelectContent>
55
+ </Select>
41
56
  ```
42
57
 
43
- The component features dark theme styling with `#212121` background, `#3a3a3a` borders, and accent color highlights for selected items. It includes smooth animations, proper accessibility attributes, and responsive sizing that matches the platform's Input component design.
58
+ ## Notes
59
+
60
+ - **Validation states**: Pass `error` (string) or `invalid` (boolean) to `SelectTrigger` to apply `ods-error` border and icon tinting.
61
+ - **ODS tokens**: All colors use `ods-*` CSS custom properties (`ods-card`, `ods-accent`, `ods-error`, etc.) for consistent theming.
62
+ - **Content width**: Dropdown matches trigger width via `--radix-select-trigger-width` CSS variable.
63
+ - **Accessibility**: Built on Radix UI — keyboard navigation, ARIA roles, and focus management are handled automatically.
@@ -1,48 +1,50 @@
1
- <!-- source-hash: 6ca572f21be54b6053e67fb5bcd5ecad -->
2
- A React component that renders service information cards with configurable rows, actions, and secret value masking functionality.
1
+ <!-- source-hash: fd0b3b382332c759225974101fb17198 -->
2
+ Displays structured service information in a card layout with labeled rows that support copy, reveal (masked secrets), and external link actions.
3
3
 
4
4
  ## Key Components
5
5
 
6
- - **`ServiceCard`** - Main card component displaying service details with header, icon, and rows
7
- - **`ServiceCardRowItem`** - Individual row component with label, value, and action buttons
8
- - **`MaskedValue`** - Utility component for hiding/showing secret values
9
- - **`ServiceCardProps`** - Main component props interface
10
- - **`ServiceCardRow`** - Row configuration interface with actions and display options
11
- - **`ServiceCardTag`** - Optional tag display interface
12
- - **`ServiceCardRowAction`** - Action button configuration interface
6
+ - **`ServiceCard`** Main card component rendering a header (icon, title, subtitle, tag) and a list of data rows
7
+ - **`ServiceCardRowItem`** Internal row component handling per-row interactivity (reveal/copy/open)
8
+ - **`MaskedValue`** Renders a value as bullet dots (`•`) until revealed
9
+ - **`ServiceCardProps`** Props interface for the card
10
+ - **`ServiceCardRow`** Defines a single row with optional label, secret masking, monospace formatting, href, and action overrides
11
+ - **`ServiceCardTag`** Badge displayed in the card header
12
+ - **`ServiceCardRowAction`** Flags controlling which actions (`copy`, `open`, `reveal`) appear per row
13
13
 
14
14
  ## Usage Example
15
15
 
16
16
  ```typescript
17
- import { ServiceCard } from './service-card'
17
+ import { ServiceCard } from '@your-org/ui'
18
18
 
19
- function MyComponent() {
20
- return (
21
- <ServiceCard
22
- title="API Service"
23
- subtitle="Production Environment"
24
- tag={{ label: "Active" }}
25
- rows={[
26
- {
27
- label: "Endpoint",
28
- value: "https://api.example.com",
29
- href: "https://api.example.com",
30
- actions: { copy: true, open: true }
31
- },
32
- {
33
- label: "API Key",
34
- value: "sk_live_abc123xyz789",
35
- isSecret: true,
36
- monospace: true,
37
- actions: { copy: true, reveal: true }
38
- },
39
- {
40
- label: "Status",
41
- value: "Running",
42
- actions: { copy: false, open: false }
43
- }
44
- ]}
45
- />
46
- )
47
- }
48
- ```
19
+ <ServiceCard
20
+ title="PostgreSQL"
21
+ subtitle="Primary database"
22
+ tag={{ label: 'Production' }}
23
+ rows={[
24
+ {
25
+ label: 'Host',
26
+ value: 'db.example.com',
27
+ actions: { copy: true },
28
+ },
29
+ {
30
+ label: 'Password',
31
+ value: 's3cr3tpassword',
32
+ isSecret: true,
33
+ copyValue: 's3cr3tpassword',
34
+ },
35
+ {
36
+ label: 'Console',
37
+ value: 'Open dashboard',
38
+ href: 'https://console.example.com',
39
+ actions: { copy: false, open: true },
40
+ },
41
+ ]}
42
+ />
43
+ ```
44
+
45
+ ## Behavior Notes
46
+
47
+ - **Secrets** default to masked display; `reveal` action toggles visibility
48
+ - **Copy** action defaults to `true`; uses `copyValue` if provided, otherwise falls back to `value`
49
+ - **Open** action is automatically enabled when a `href` is present
50
+ - Falls back to the **OpenFrameLogo** if no `icon` is supplied
@@ -1,30 +1,36 @@
1
- <!-- source-hash: e8fb9325bde87bb1cb5577b034ebb17b -->
2
- A comprehensive sheet/drawer component built on Radix UI Dialog primitives, providing slide-out panels that can appear from any side of the screen with smooth animations and accessibility features.
1
+ <!-- source-hash: b12df94d463c0d388bcb0c53bac39207 -->
2
+ A slide-out panel component built on top of Radix UI's Dialog primitive, supporting four directional variants (top, bottom, left, right) with animated open/close transitions.
3
3
 
4
4
  ## Key Components
5
5
 
6
- - **Sheet** - Root component that manages sheet state
7
- - **SheetTrigger** - Button or element that opens the sheet
8
- - **SheetContent** - Main container with configurable slide direction (`top`, `bottom`, `left`, `right`)
9
- - **SheetOverlay** - Background overlay with fade animations
10
- - **SheetClose** - Close button with X icon
11
- - **SheetHeader/SheetFooter** - Layout containers for sheet sections
12
- - **SheetTitle/SheetDescription** - Accessible heading and description components
13
- - **SheetPortal** - Portal for rendering outside component tree
6
+ | Export | Description |
7
+ |--------|-------------|
8
+ | `Sheet` | Root component wrapping Radix Dialog root |
9
+ | `SheetTrigger` | Button/element that opens the sheet |
10
+ | `SheetClose` | Element that closes the sheet |
11
+ | `SheetPortal` | Renders sheet outside DOM hierarchy |
12
+ | `SheetOverlay` | Semi-transparent backdrop (`z-[9997]`) |
13
+ | `SheetContent` | Main panel container with side variants (`top`, `bottom`, `left`, `right`), defaults to `right` |
14
+ | `SheetHeader` | Flex column wrapper for title/description |
15
+ | `SheetFooter` | Flex row wrapper for action buttons |
16
+ | `SheetTitle` | Styled heading (`text-lg font-semibold`) |
17
+ | `SheetDescription` | Styled subtitle (`text-sm text-muted-foreground`) |
14
18
 
15
19
  ## Usage Example
16
20
 
17
21
  ```typescript
18
22
  import {
19
23
  Sheet,
24
+ SheetTrigger,
20
25
  SheetContent,
21
- SheetDescription,
22
26
  SheetHeader,
23
27
  SheetTitle,
24
- SheetTrigger,
28
+ SheetDescription,
29
+ SheetFooter,
30
+ SheetClose,
25
31
  } from "./sheet"
26
32
 
27
- function MyComponent() {
33
+ export function SettingsPanel() {
28
34
  return (
29
35
  <Sheet>
30
36
  <SheetTrigger asChild>
@@ -33,15 +39,18 @@ function MyComponent() {
33
39
  <SheetContent side="right">
34
40
  <SheetHeader>
35
41
  <SheetTitle>Settings</SheetTitle>
36
- <SheetDescription>
37
- Configure your application preferences
38
- </SheetDescription>
42
+ <SheetDescription>Manage your preferences.</SheetDescription>
39
43
  </SheetHeader>
40
- {/* Sheet content */}
44
+ {/* content */}
45
+ <SheetFooter>
46
+ <SheetClose asChild>
47
+ <button>Close</button>
48
+ </SheetClose>
49
+ </SheetFooter>
41
50
  </SheetContent>
42
51
  </Sheet>
43
52
  )
44
53
  }
45
54
  ```
46
55
 
47
- The component uses class-variance-authority for styling variants and includes built-in animations, focus management, and keyboard navigation. The sheet automatically includes a close button and can be dismissed by clicking the overlay or pressing escape.
56
+ > The `side` prop on `SheetContent` accepts `"top" | "bottom" | "left" | "right"` and drives both positioning and slide animation direction. The close button (`X` icon) is automatically rendered inside `SheetContent`.
@@ -1,42 +1,40 @@
1
- <!-- source-hash: f96a8385aeb28ffc329d74dca516b959 -->
2
- A client-side React component that renders markdown content with enhanced styling, syntax highlighting, and responsive design using ReactMarkdown with several plugins.
1
+ <!-- source-hash: cb258dc120396ef8c715487b0cdc1022 -->
2
+ Client-side React component that renders LLM-generated markdown safely, combining `react-markdown` with a custom XSS sanitization pipeline and support for GitHub-flavored markdown, syntax highlighting, and embedded media.
3
3
 
4
4
  ## Key Components
5
5
 
6
- - **`SimpleMarkdownRenderer`** - Main functional component that processes and renders markdown content
7
- - **`components`** - Memoized object containing custom renderers for markdown elements (code blocks, headings, links, etc.)
8
- - **Markdown plugins**: `remarkGfm` (GitHub Flavored Markdown), `remarkBreaks` (line breaks), `rehypeHighlight` (syntax highlighting), `rehypeRaw` (HTML support)
6
+ ### Security Pipeline
7
+ - **`rehypeStripUnsafe()`** — Custom rehype plugin that strips dangerous HAST nodes after `rehype-raw` parsing. Removes `<script>`, `<style>`, `<object>`, event handler attributes (`on*`), `javascript:` / `data:` URIs, and `iframe srcdoc` vectors.
8
+ - **`srcsetHasUnsafeCandidate()`** Inspects every candidate URL in `srcset` attributes (not just the first), preventing multi-candidate injection attacks.
9
+ - **`escapeUnknownHtmlTags()`** — Pre-processes markdown text to escape HTML tags not in the `SAFE_HTML_TAGS` allowlist, preventing LLM-emitted XML-style tags (e.g., `<ticket>`, `<their>`) from reaching React as unrecognized custom elements. Preserves code blocks and inline code spans.
10
+ - **`cardAwareUrlTransform()`** — Extends `react-markdown`'s default URL sanitizer to allow the internal `card://` scheme for chat-card markers while keeping all other unsafe schemes blocked.
11
+
12
+ ### Constants & Regexes
13
+ | Export | Purpose |
14
+ |--------|---------|
15
+ | `SAFE_HTML_TAGS` | Allowlist of permitted HTML5 tags forwarded to React |
16
+ | `STRIP_ELEMENTS` | Tags removed entirely at the HAST level |
17
+ | `EVENT_HANDLER_ATTR_RE` | Matches `on*` attribute names |
18
+ | `JAVASCRIPT_URL_RE` / `DATA_URL_RE` | Detect unsafe URL schemes |
19
+ | `TAG_LIKE_REGEX` | Parses HTML-like tags in markdown source |
20
+
21
+ ### Mermaid Support
22
+ - `mermaidStyles` — Responsive CSS for Mermaid SVG diagrams using DM Sans font.
9
23
 
10
24
  ## Usage Example
11
25
 
12
26
  ```typescript
13
27
  import { SimpleMarkdownRenderer } from './simple-markdown-renderer';
14
28
 
15
- function DocumentationPage() {
16
- const markdownContent = `
17
- # API Documentation
18
-
19
- This is a **bold** statement with \`inline code\`.
20
-
21
- \`\`\`typescript
22
- interface User {
23
- id: string;
24
- name: string;
25
- }
26
- \`\`\`
27
-
28
- > This is a blockquote with important information.
29
- `;
30
-
31
- return (
32
- <div>
33
- <SimpleMarkdownRenderer
34
- content={markdownContent}
35
- className="documentation-content"
36
- />
37
- </div>
38
- );
39
- }
29
+ // Basic usage — content is sanitized automatically
30
+ <SimpleMarkdownRenderer
31
+ content="## Hello\n\nThis is **LLM-generated** markdown with `code`."
32
+ />
33
+
34
+ // The sanitizer prevents XSS from LLM output automatically:
35
+ // "<script>alert(1)</script>" → stripped
36
+ // "<their> tag" → escaped to &lt;their&gt;
37
+ // "javascript:alert(1)" href → removed
40
38
  ```
41
39
 
42
- The component features responsive typography, custom-styled code blocks with language headers, themed blockquotes, and proper hydration handling to prevent SSR mismatches. All styling uses CSS custom properties for theming consistency.
40
+ > **Note:** This renderer is designed specifically for untrusted LLM output. The sanitization pipeline runs in layers: text pre-processing `rehype-raw` `rehypeStripUnsafe` `rehype-highlight`, ensuring no XSS vectors survive even if one layer is bypassed. Community support is available on the [OpenMSP Slack](https://join.slack.com/t/openmsp/shared_invite/zt-36bl7mx0h-3~U2nFH6nqHqoTPXMaHEHA).
@@ -0,0 +1,42 @@
1
+ <!-- source-hash: 576067b7bb2d4b4d4bb10818d0012e49 -->
2
+ A client-side React component that renders a single sortable column item, cycling through ascending, descending, and cleared sort states on click.
3
+
4
+ ## Key Components
5
+
6
+ ### Interfaces & Types
7
+ - **`SortableColumn`** — Defines a column with `key`, `label`, and optional `sortKey`
8
+ - **`SortDirection`** — Union type `"asc" | "desc"`
9
+ - **`SortConfig`** — Configuration shape for a full sort UI (columns list, active sort state, title)
10
+ - **`SortColumnItemProps`** — Props for the `SortColumnItem` component
11
+
12
+ ### Component: `SortColumnItem`
13
+ Renders a clickable row displaying a column label and a directional sort icon. Click behavior cycles through states:
14
+ 1. No sort → `"asc"`
15
+ 2. `"asc"` → `"desc"`
16
+ 3. `"desc"` → calls `onClear()` (if provided) or resets to `"asc"`
17
+
18
+ Icons used per state:
19
+ - `Arrow01UpIcon` — ascending (accent color)
20
+ - `Arrow01DownIcon` — descending (accent color)
21
+ - `SwitchVrIcon` — unsorted (secondary color)
22
+
23
+ ## Usage Example
24
+
25
+ ```typescript
26
+ import { SortColumnItem, SortableColumn, SortDirection } from "./sort-column-item"
27
+
28
+ const column: SortableColumn = { key: "name", label: "Name", sortKey: "name" }
29
+
30
+ function MyTable() {
31
+ const [direction, setDirection] = useState<SortDirection | undefined>()
32
+
33
+ return (
34
+ <SortColumnItem
35
+ column={column}
36
+ currentDirection={direction}
37
+ onSort={(dir) => setDirection(dir)}
38
+ onClear={() => setDirection(undefined)}
39
+ />
40
+ )
41
+ }
42
+ ```
@@ -1,39 +1,49 @@
1
- <!-- source-hash: 35355c38ee34a9569d3b2519d2f153ca -->
2
- A flexible avatar component that displays user images with fallback initials, supporting both square and rounded variants with multiple size options.
1
+ <!-- source-hash: 5ede4b179e76c93d7dbba4fcff5327a9 -->
2
+ A flexible avatar component that displays a user image or falls back to initials, supporting both square and round variants with multiple size options.
3
3
 
4
4
  ## Key Components
5
5
 
6
- - **`getInitials`** - Utility function that extracts first letter of first and last word from a name
7
- - **`SquareAvatar`** - Main component that renders either an image or initials fallback
8
- - **`SquareAvatarProps`** - Interface extending HTML div attributes with avatar-specific props
9
- - **Size variants** - `sm`, `md`, `lg`, `xl` with corresponding pixel dimensions
10
- - **Shape variants** - `square` (rounded corners) or `round` (circular)
6
+ ### `SquareAvatarProps`
7
+ Extends `React.HTMLAttributes<HTMLDivElement>` with:
8
+
9
+ | Prop | Type | Default | Description |
10
+ |------|------|---------|-------------|
11
+ | `src` | `string` | — | Image URL |
12
+ | `alt` | `string` | — | Image alt text (also used for initials fallback) |
13
+ | `size` | `'sm' \| 'md' \| 'lg' \| 'xl'` | `'md'` | Controls dimensions (32/40/48/64px) |
14
+ | `fallback` | `string` | — | Preferred string for generating initials |
15
+ | `variant` | `'square' \| 'round'` | `'square'` | Border radius style |
16
+
17
+ ### `SquareAvatar`
18
+ A memoized, forwarded-ref component that renders an image with automatic graceful degradation to initials on load error or missing `src`.
19
+
20
+ **Fallback behavior:** Uses `getFirstLastInitials()` on `fallback ?? alt`, rendering `'?'` if neither yields initials. The initials layer uses `text-ods-text-primary` to maintain WCAG AA contrast across accent-fill backgrounds (e.g. Mingo cyan, current-user pink).
11
21
 
12
22
  ## Usage Example
13
23
 
14
24
  ```typescript
15
- import { SquareAvatar } from './components/square-avatar';
16
-
17
- // With image source
18
- <SquareAvatar
19
- src="/user-profile.jpg"
20
- alt="John Doe"
25
+ // Image avatar
26
+ <SquareAvatar
27
+ src="https://example.com/avatar.jpg"
28
+ alt="Jane Doe"
21
29
  size="lg"
22
30
  variant="round"
23
31
  />
24
32
 
25
- // Fallback to initials
26
- <SquareAvatar
27
- fallback="Jane Smith"
28
- size="md"
33
+ // Initials-only avatar (no src)
34
+ <SquareAvatar
35
+ fallback="Jane Doe"
36
+ size="md"
29
37
  variant="square"
30
38
  />
31
39
 
32
- // Using alt text for initials
33
- <SquareAvatar
34
- alt="Alex Johnson"
35
- size="sm"
40
+ // With custom className and forwarded ref
41
+ const ref = React.useRef<HTMLDivElement>(null);
42
+ <SquareAvatar
43
+ ref={ref}
44
+ src={userAvatarUrl}
45
+ alt={userName}
46
+ size="xl"
47
+ className="ring-2 ring-ods-flamingo-pink"
36
48
  />
37
- ```
38
-
39
- The component automatically falls back to displaying user initials in a styled container when no image source is provided, making it perfect for user interfaces where profile pictures may not always be available.
49
+ ```