@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,44 +1,45 @@
1
- <!-- source-hash: 2667346028d431e1bcbabbae2bbfb32b -->
2
- A flexible, accessible modal dialog component system built with React and Tailwind CSS. Provides keyboard navigation, backdrop click handling, and scroll blocking functionality.
1
+ <!-- source-hash: bde5cd5df57a305212c78a5d9d2b8add -->
2
+ A **deprecated** modal dialog component set providing accessible overlay UI primitives. All exports are superseded by `ModalV2` from `./modal-v2`.
3
+
4
+ > ⚠️ **Deprecated** — Migrate to `ModalV2` and its sub-components from `./modal-v2`.
3
5
 
4
6
  ## Key Components
5
7
 
6
- - **`Modal`** - Main modal container with overlay, keyboard handling (Escape key), and scroll blocking
7
- - **`ModalContent`** - Wrapper for modal body content
8
- - **`ModalHeader`** - Styled header section with bottom border
9
- - **`ModalTitle`** - Semantic h2 title element for the modal
10
- - **`ModalFooter`** - Footer section with right-aligned button layout
8
+ | Export | Description |
9
+ |--------|-------------|
10
+ | `Modal` | Root overlay container; handles `Escape` key, backdrop click, and scroll locking |
11
+ | `ModalContent` | Scrollable body area (`overflow-y-auto`) |
12
+ | `ModalHeader` | Top section with bottom border, fixed height |
13
+ | `ModalTitle` | Styled `<h2>` heading within the header |
14
+ | `ModalFooter` | Bottom action bar, right-aligned with gap |
15
+
16
+ All components use `React.forwardRef` and accept an optional `className` for Tailwind overrides via `cn()`.
11
17
 
12
18
  ## Usage Example
13
19
 
14
20
  ```typescript
15
- import { Modal, ModalHeader, ModalTitle, ModalContent, ModalFooter } from './modal'
16
- import { useState } from 'react'
17
-
18
- function MyComponent() {
19
- const [isOpen, setIsOpen] = useState(false)
21
+ import { Modal, ModalContent, ModalHeader, ModalTitle, ModalFooter } from "./modal"
20
22
 
23
+ function ExampleDialog({ open, onClose }: { open: boolean; onClose: () => void }) {
21
24
  return (
22
- <>
23
- <button onClick={() => setIsOpen(true)}>Open Modal</button>
24
-
25
- <Modal isOpen={isOpen} onClose={() => setIsOpen(false)}>
26
- <ModalHeader>
27
- <ModalTitle>Confirm Action</ModalTitle>
28
- </ModalHeader>
29
-
30
- <ModalContent>
31
- <p className="px-6 py-4">Are you sure you want to proceed?</p>
32
- </ModalContent>
33
-
34
- <ModalFooter>
35
- <button onClick={() => setIsOpen(false)}>Cancel</button>
36
- <button onClick={() => setIsOpen(false)}>Confirm</button>
37
- </ModalFooter>
38
- </Modal>
39
- </>
25
+ <Modal isOpen={open} onClose={onClose}>
26
+ <ModalHeader>
27
+ <ModalTitle>Confirm Action</ModalTitle>
28
+ </ModalHeader>
29
+ <ModalContent className="px-6 py-4">
30
+ <p>Are you sure you want to proceed?</p>
31
+ </ModalContent>
32
+ <ModalFooter>
33
+ <button onClick={onClose}>Cancel</button>
34
+ <button onClick={onClose}>Confirm</button>
35
+ </ModalFooter>
36
+ </Modal>
40
37
  )
41
38
  }
42
39
  ```
43
40
 
44
- The modal automatically handles accessibility attributes (`role="dialog"`, `aria-modal="true"`), prevents background scrolling when open, and closes on Escape key or backdrop click.
41
+ ## Behavior Notes
42
+
43
+ - Backdrop click and `Escape` key both trigger `onClose`
44
+ - `document.body` scroll is blocked (`overflow: hidden`) while modal is open and restored on close/unmount
45
+ - Renders at `z-index: 1300` using a fixed full-screen overlay
@@ -1,47 +1,54 @@
1
- <!-- source-hash: 2dd78ebc3acbb9fedfdbd148ee5426c8 -->
2
- A reusable dropdown menu component that displays contextual actions behind an ellipsis (three dots) icon button. Built on top of Radix UI's DropdownMenu primitive with custom OpenFrame design system styling.
1
+ <!-- source-hash: d1c57ae6ae958d461aaf3fb171dd1d00 -->
2
+ A compact, reusable dropdown menu component triggered by an ellipsis icon button, built on Radix UI's `DropdownMenu`. Supports both link-based and click-based menu items with optional icons, danger states, and controlled open/close behavior.
3
3
 
4
4
  ## Key Components
5
5
 
6
- - **`MoreActionsMenu`** - Main component that renders the ellipsis trigger and dropdown menu
7
- - **`MoreActionsItem`** - Type definition for menu items with label, click handler, optional icon, disabled state, and danger styling
8
- - **`MoreActionsMenuProps`** - Interface defining positioning, styling, and accessibility options
6
+ ### `MoreActionsItem`
7
+ Type definition for individual menu entries:
8
+ - `label` display text
9
+ - `onClick` — optional click handler
10
+ - `href` — renders item as a `<Link>` (anchor tag) instead of a button
11
+ - `openInNewTab` — applies `target="_blank"` when using `href`
12
+ - `icon` — optional React node rendered before the label
13
+ - `disabled` — disables interaction and reduces opacity
14
+ - `danger` — applies error color styling to the icon
15
+
16
+ ### `MoreActionsMenuProps`
17
+ Configuration interface for the menu:
18
+ - `items` — array of `MoreActionsItem`
19
+ - `align`, `side`, `sideOffset` — Radix positioning controls
20
+ - `trigger` — optional custom trigger element (replaces default ellipsis button)
21
+ - `open` / `onOpenChange` — controlled open state support
22
+
23
+ ### `MoreActionsMenu`
24
+ The exported component. Renders either a default ellipsis icon `Button` or a custom `trigger`, with a `DropdownMenuContent` list of items.
9
25
 
10
26
  ## Usage Example
11
27
 
12
28
  ```typescript
13
29
  import { MoreActionsMenu } from './more-actions-menu'
14
- import { EditIcon, DeleteIcon } from '../icons'
15
-
16
- const menuItems = [
17
- {
18
- label: 'Edit Item',
19
- onClick: () => console.log('Edit clicked'),
20
- icon: <EditIcon />
21
- },
22
- {
23
- label: 'Delete Item',
24
- onClick: () => console.log('Delete clicked'),
25
- icon: <DeleteIcon />,
26
- danger: true
27
- },
28
- {
29
- label: 'Disabled Action',
30
- onClick: () => {},
31
- disabled: true
32
- }
33
- ]
34
-
35
- function MyComponent() {
36
- return (
37
- <MoreActionsMenu
38
- items={menuItems}
39
- align="end"
40
- side="bottom"
41
- ariaLabel="Item actions"
42
- />
43
- )
44
- }
45
- ```
30
+ import { EditIcon, TrashIcon } from '../icons'
46
31
 
47
- The component automatically handles click events, disabled states, danger styling (red text for destructive actions), and provides proper keyboard accessibility through ARIA labels.
32
+ <MoreActionsMenu
33
+ items={[
34
+ {
35
+ label: 'Edit',
36
+ icon: <EditIcon />,
37
+ onClick: () => console.log('edit'),
38
+ },
39
+ {
40
+ label: 'View Details',
41
+ href: '/tickets/123',
42
+ openInNewTab: true,
43
+ },
44
+ {
45
+ label: 'Delete',
46
+ icon: <TrashIcon />,
47
+ danger: true,
48
+ onClick: () => console.log('delete'),
49
+ },
50
+ ]}
51
+ align="end"
52
+ side="bottom"
53
+ />
54
+ ```
@@ -1,51 +1,45 @@
1
- <!-- source-hash: c0f00fd9117e172d8b481dcf3049b999 -->
2
- A reusable card component for displaying organization information with OpenMSP VendorCard styling parity, featuring interactive hover effects, customizable footers, and action buttons.
1
+ <!-- source-hash: a5842b7f26b01448b4819804ae2a446d -->
2
+ Reusable card component for displaying organization/client summary information in a grid or list layout, supporting optional navigation, action buttons, device counts, and customizable footer stats.
3
3
 
4
4
  ## Key Components
5
5
 
6
- - **Organization interface**: Type definition for organization data including id, name, image, industry, stats, and custom metadata
7
- - **OrganizationCardProps interface**: Comprehensive props interface supporting custom styling, action buttons, footer stats, and navigation
8
- - **OrganizationCard component**: Main card component with VendorCard-style hover effects, 60px organization logo, fixed-height description, and flexible footer stats display
6
+ ### Interfaces
7
+ - **`Organization`** Data model for an organization entity (id, name, imageUrl, industry, tier, devices, MRR, etc.)
8
+ - **`OrganizationCardProps`** Full prop interface including optional `href`, `actionButton`, `footerStats`, `customFooter`, and `deviceCount`
9
9
 
10
- ## Usage Example
11
-
12
- ```typescript
13
- import { OrganizationCard } from './organization-card'
14
- import { Monitor, Trash2 } from 'lucide-react'
10
+ ### Component
11
+ - **`OrganizationCard`** — Renders the card with three configurable zones:
12
+ - **Header** — `EntityImage` + name + subtitle (industry, tier, or website)
13
+ - **Body** Optional 2-line clamped description
14
+ - **Footer** `customFooter` node or auto-rendered `footerStats` array
15
+ - **Top-right overlay** — Either a device count badge (with `Monitor` icon) or an action button (ghost/primary variant)
15
16
 
16
- // Basic usage with pre-fetched image
17
- const org = {
18
- id: '123',
19
- name: 'Acme Corp',
20
- industry: 'Technology',
21
- description: 'Leading software company...',
22
- totalDevices: 150
23
- }
17
+ When `href` is provided, the entire card is wrapped in a `Link` for navigation.
24
18
 
25
- // Simple card
26
- <OrganizationCard organization={org} />
19
+ ## Usage Example
27
20
 
28
- // With custom footer stats and action button
21
+ ```typescript
29
22
  <OrganizationCard
30
- organization={org}
23
+ organization={{
24
+ id: "org_123",
25
+ name: "Acme Corp",
26
+ industry: "Manufacturing",
27
+ description: "A leading widget manufacturer.",
28
+ totalDevices: 42,
29
+ }}
30
+ href="/organizations/org_123"
31
+ deviceCount={42}
31
32
  footerStats={[
32
- { icon: <Monitor className="w-4 h-4" />, value: 150, label: 'devices' },
33
- { value: '$2,500', label: 'MRR' }
33
+ { icon: <DollarSign className="w-4 h-4" />, value: 1200, label: "MRR" },
34
34
  ]}
35
- showActionButton
36
35
  actionButton={{
37
- icon: <Trash2 className="h-4 w-4" />,
38
- label: 'Remove',
39
- onClick: (org) => handleRemove(org.id),
40
- variant: 'ghost'
36
+ icon: <Trash2 className="w-4 h-4" />,
37
+ label: "Remove",
38
+ variant: "ghost",
39
+ onClick: (org, e) => handleRemove(org.id),
41
40
  }}
42
- deviceCount={150}
41
+ showActionButton
43
42
  />
43
+ ```
44
44
 
45
- // With custom navigation
46
- <OrganizationCard
47
- organization={org}
48
- onClick={(org) => router.push(`/custom/${org.id}`)}
49
- baseUrl="https://app.example.com"
50
- />
51
- ```
45
+ > **Note:** `deviceCount` takes display priority over `showActionButton` — if both are provided, only the device badge renders in the top-right corner.
@@ -1,62 +1,52 @@
1
- <!-- source-hash: 4f2f7fa333798c2bab1dbe0d9f5200dc -->
2
- A responsive page actions component that provides flexible button layouts and mobile-optimized interfaces for page-level actions across OpenFrame.
1
+ <!-- source-hash: 70d0d7bf97f25795ba22d26ce08d067f -->
2
+ Responsive page-level action bar component that renders action buttons in three layout variants (`icon-buttons`, `primary-buttons`, `menu-primary`), automatically adapting between desktop and mobile layouts with overflow menus.
3
3
 
4
4
  ## Key Components
5
5
 
6
- - **`PageActions`** - Main component supporting three variants: `icon-buttons`, `primary-buttons`, and `menu-primary`
7
- - **`PageActionButton`** - Type definition for action buttons with label, onClick, icon, variant, and mobile visibility options
8
- - **`IconButtonsVariant`** - Desktop icon buttons that collapse to a single icon or menu on mobile
9
- - **`PrimaryButtonsVariant`** - Primary/outline buttons that become a fixed bottom bar on mobile
10
- - **`MenuPrimaryVariant`** - Combines dropdown menu with primary buttons, mobile-optimized bottom bar
11
- - **`usePageActionsBottomPadding`** - Hook returning CSS classes for bottom padding when fixed mobile bars are present
6
+ ### Types
7
+ - **`PageActionButton`** Action descriptor supporting labels, icons, links (`href`), submenus, split-button icon actions, and visibility/rendering flags like `showOnlyMobile` and `iconOnlyOnDesktop`
8
+ - **`PageActionsProps`** Props for the main `PageActions` component
9
+
10
+ ### Components
11
+ - **`PageActions`** Root component; dispatches to the correct variant
12
+ - **`IconButtonsVariant`** — Desktop: icon buttons + optional overflow menu. Mobile: single icon or merged `...` dropdown
13
+ - **`PrimaryButtonsVariant`** — Desktop: labeled buttons sorted by variant. Mobile: fixed bottom bar
14
+ - **`MenuPrimaryVariant`** — Desktop: `...` menu + accent-styled primary buttons. Mobile: all actions in a single `...` dropdown
15
+
16
+ ### Utilities
17
+ - **`renderActionButton`** — Renders a `Button`, `SplitButton`, or submenu `ActionsMenuDropdown` based on action config
18
+ - **`actionToMenuItems`** — Converts a `PageActionButton` to `ActionsMenuItem[]` for mobile dropdown merging
19
+ - **`usePageActionsBottomPadding`** — Hook returning a Tailwind padding class to prevent content from being obscured by the mobile bottom bar
12
20
 
13
21
  ## Usage Example
14
22
 
15
23
  ```typescript
16
- import { PageActions } from './page-actions'
17
- import { PlusIcon, EditIcon } from '../icons'
18
-
19
- // Icon buttons variant (collapses to menu on mobile)
20
- <PageActions
21
- variant="icon-buttons"
22
- actions={[
23
- {
24
- label: 'Create Item',
25
- onClick: () => handleCreate(),
26
- icon: <PlusIcon />,
27
- variant: 'outline'
28
- },
29
- {
30
- label: 'Edit',
31
- onClick: () => handleEdit(),
32
- icon: <EditIcon />,
33
- disabled: !selectedItem
34
- }
35
- ]}
36
- gap="md"
37
- />
38
-
39
- // Primary buttons with fixed mobile bottom bar
40
- <PageActions
41
- variant="primary-buttons"
42
- actions={[
43
- { label: 'Cancel', onClick: onCancel, variant: 'outline' },
44
- { label: 'Save Changes', onClick: onSave, variant: 'primary', loading: isSaving }
45
- ]}
46
- />
47
-
48
- // Menu + primary variant for complex action sets
49
- <PageActions
50
- variant="menu-primary"
51
- actions={[
52
- { label: 'Publish', onClick: onPublish, variant: 'primary' }
53
- ]}
54
- menuActions={[
55
- { label: 'Duplicate', onClick: onDuplicate, icon: <CopyIcon /> },
56
- { label: 'Delete', onClick: onDelete, icon: <TrashIcon />, danger: true }
57
- ]}
58
- />
59
-
60
- // Add bottom padding when using fixed mobile bars
61
- const paddingClass = usePageActionsBottomPadding('primary-buttons')
24
+ import { PageActions, usePageActionsBottomPadding } from './page-actions'
25
+
26
+ function MyPage() {
27
+ const bottomPad = usePageActionsBottomPadding('primary-buttons')
28
+
29
+ return (
30
+ <div className={bottomPad}>
31
+ <PageActions
32
+ variant="primary-buttons"
33
+ actions={[
34
+ {
35
+ label: 'Save',
36
+ variant: 'accent',
37
+ onClick: () => handleSave(),
38
+ },
39
+ {
40
+ label: 'More',
41
+ icon: <SettingsIcon />,
42
+ submenu: [
43
+ { id: 'export', label: 'Export', onClick: handleExport },
44
+ { id: 'delete', label: 'Delete', onClick: handleDelete },
45
+ ],
46
+ },
47
+ ]}
48
+ />
49
+ </div>
50
+ )
51
+ }
62
52
  ```
@@ -0,0 +1,54 @@
1
+ <!-- source-hash: 8f44dd654f7205b5e41cde63c6ee32dd -->
2
+ A composite phone number input component combining a country selector dropdown with a phone number text field, featuring debounced validation using `libphonenumber-js`.
3
+
4
+ ## Key Components
5
+
6
+ ### `PhoneInput` (main export)
7
+ A controlled input component that renders a country code selector and phone number field side-by-side.
8
+
9
+ **Props (`PhoneInputProps`):**
10
+
11
+ | Prop | Type | Description |
12
+ |------|------|-------------|
13
+ | `value` | `string` | Current phone number value |
14
+ | `countryCode` | `CountryCode` | Selected country (ISO code) |
15
+ | `onPhoneChange` | `(phone: string) => void` | Called on phone input change |
16
+ | `onCountryChange` | `(country: CountryCode) => void` | Called on country selection |
17
+ | `onValidationChange` | `(isInvalid: boolean) => void` | Optional validation state callback |
18
+ | `disabled` | `boolean` | Disables both inputs |
19
+ | `placeholder` | `string` | Input placeholder text |
20
+ | `onKeyDown` | `React.KeyboardEvent handler` | Key event passthrough |
21
+
22
+ ### `CountryOption` (internal)
23
+ Renders a single country row inside the dropdown showing flag, dial code, and country name.
24
+
25
+ ### Validation Behavior
26
+ - Input is restricted to digits, spaces, hyphens, and parentheses
27
+ - Validation triggers via debounce (300ms) after 4+ digits are entered
28
+ - Immediate validation fires on input blur
29
+ - Empty input clears any invalid state without triggering validation
30
+
31
+ ## Usage Example
32
+
33
+ ```typescript
34
+ import { PhoneInput } from './phone-input'
35
+ import { useState } from 'react'
36
+ import type { CountryCode } from 'libphonenumber-js'
37
+
38
+ function ContactForm() {
39
+ const [phone, setPhone] = useState('')
40
+ const [country, setCountry] = useState<CountryCode>('US')
41
+ const [hasError, setHasError] = useState(false)
42
+
43
+ return (
44
+ <PhoneInput
45
+ value={phone}
46
+ countryCode={country}
47
+ onPhoneChange={setPhone}
48
+ onCountryChange={setCountry}
49
+ onValidationChange={setHasError}
50
+ placeholder="Phone Number (optional)"
51
+ />
52
+ )
53
+ }
54
+ ```
@@ -1,42 +1,50 @@
1
- <!-- source-hash: 3772caa7006d2e37150d4cab56dc1904 -->
2
- A segmented progress bar component that dynamically calculates segments based on container width and provides configurable color thresholds for different data types.
1
+ <!-- source-hash: e7dc6507dbb40dd8dffb5171634e1bd5 -->
2
+ Segmented progress bar component that visualizes a numeric value (0–100) using dynamically calculated fill segments, with responsive sizing and threshold-based color coding.
3
3
 
4
4
  ## Key Components
5
5
 
6
- **ProgressBar** - Main React component that renders a horizontal segmented progress bar with:
7
- - Dynamic segment calculation using ResizeObserver
8
- - Configurable warning and critical thresholds
9
- - Inverted color logic for different data types (disk usage vs battery health)
10
- - ODS design token integration for consistent styling
6
+ ### `ProgressBarProps`
7
+ | Prop | Type | Default | Description |
8
+ |------|------|---------|-------------|
9
+ | `progress` | `number` | | Value from 0–100 to display |
10
+ | `warningThreshold` | `number` | `75` | Threshold for warning color |
11
+ | `criticalThreshold` | `number` | `90` | Threshold for critical color |
12
+ | `segmentWidth` | `number` | `3.43px` | Desktop segment width |
13
+ | `mobileSegmentWidth` | `number` | `5px` | Mobile segment width |
14
+ | `segmentGap` | `number` | `2px` | Gap between segments |
15
+ | `height` | `number` | `24px` | Desktop bar height |
16
+ | `mobileHeight` | `number` | `8px` | Mobile bar height |
17
+ | `inverted` | `boolean` | `false` | Flips color logic (high = good) |
18
+
19
+ ### Color Logic
20
+ - **Normal** (e.g., disk usage): green → warning → red as value increases
21
+ - **Inverted** (e.g., battery health): red → warning → green as value increases
22
+ - Uses ODS design tokens: `--ods-attention-green-success`, `--color-warning`, `--ods-attention-red-error`
23
+
24
+ ### Responsive Behavior
25
+ Uses `useMdUp()` hook to switch between desktop and mobile segment dimensions. A `ResizeObserver` dynamically recalculates segment count based on container width, ensuring pixel-perfect fills on any layout.
11
26
 
12
27
  ## Usage Example
13
28
 
14
29
  ```typescript
15
- import { ProgressBar } from './progress-bar';
16
-
17
- // Disk usage (high = bad, red)
18
- <ProgressBar
19
- progress={85}
20
- warningThreshold={70}
21
- criticalThreshold={90}
22
- height={20}
23
- />
30
+ // Normal mode disk usage (high values = bad)
31
+ <ProgressBar progress={85} warningThreshold={70} criticalThreshold={90} />
24
32
 
25
- // Battery health (high = good, green)
26
- <ProgressBar
27
- progress={45}
33
+ // Inverted mode — battery health (high values = good)
34
+ <ProgressBar
35
+ progress={25}
36
+ warningThreshold={40}
37
+ criticalThreshold={80}
28
38
  inverted={true}
29
- warningThreshold={30}
30
- criticalThreshold={70}
31
39
  />
32
40
 
33
- // Custom styling
41
+ // Custom sizing
34
42
  <ProgressBar
35
43
  progress={60}
36
- segmentWidth={8}
44
+ segmentWidth={5}
45
+ mobileSegmentWidth={8}
46
+ height={32}
47
+ mobileHeight={12}
37
48
  segmentGap={3}
38
- height={24}
39
49
  />
40
- ```
41
-
42
- The component automatically adjusts segment count based on container width and applies appropriate colors using CSS custom properties. The `inverted` prop switches the color logic - useful for metrics where high values are positive (battery level) versus negative (disk usage).
50
+ ```
@@ -1,36 +1,48 @@
1
- <!-- source-hash: 67512c48ad1cb3283a707c84ed5d2c77 -->
2
- A React radio group component built on Radix UI primitives with custom styling and accessibility features. This component provides a styled radio button interface for single-selection scenarios.
1
+ <!-- source-hash: 519574bf2339595c3bc66b2894c29fca -->
2
+ Accessible radio group components built on Radix UI primitives, providing three levels of abstraction: a base `RadioGroup`, a styled `RadioGroupItem`, and a higher-level `RadioGroupBlock` that renders labeled option cards from a data array.
3
3
 
4
4
  ## Key Components
5
5
 
6
- - **`RadioGroup`** - The root container component that wraps radio items in a grid layout
7
- - **`RadioGroupItem`** - Individual radio button with custom styling, focus states, and a filled circle indicator when selected
6
+ | Export | Type | Description |
7
+ |--------|------|-------------|
8
+ | `RadioGroup` | Component | Thin wrapper around Radix `RadioGroup.Root` with `grid gap-2` layout |
9
+ | `RadioGroupItem` | Component | Styled circular radio input with focus ring, disabled, hover, and checked states |
10
+ | `RadioGroupBlock` | Component | Data-driven option list with label, description, trailing slot, error state, and two layout variants |
11
+ | `RadioGroupBlockOption` | Interface | Option shape: `value`, `label`, `description?`, `disabled?`, `trailing?` |
12
+ | `RadioGroupBlockProps` | Interface | Props for `RadioGroupBlock` including `options`, `variant`, `error`, `itemClassName` |
8
13
 
9
14
  ## Usage Example
10
15
 
11
16
  ```typescript
12
- import { RadioGroup, RadioGroupItem } from "./radio-group"
13
-
14
- function SettingsForm() {
15
- const [theme, setTheme] = React.useState("light")
16
-
17
- return (
18
- <RadioGroup value={theme} onValueChange={setTheme}>
19
- <div className="flex items-center space-x-2">
20
- <RadioGroupItem value="light" id="light" />
21
- <label htmlFor="light">Light theme</label>
22
- </div>
23
- <div className="flex items-center space-x-2">
24
- <RadioGroupItem value="dark" id="dark" />
25
- <label htmlFor="dark">Dark theme</label>
26
- </div>
27
- <div className="flex items-center space-x-2">
28
- <RadioGroupItem value="system" id="system" />
29
- <label htmlFor="system">System theme</label>
30
- </div>
31
- </RadioGroup>
32
- )
33
- }
17
+ import { RadioGroup, RadioGroupItem, RadioGroupBlock } from "@/components/ui/radio-group"
18
+
19
+ // Primitive usage
20
+ <RadioGroup defaultValue="a">
21
+ <RadioGroupItem value="a" id="a" />
22
+ <RadioGroupItem value="b" id="b" />
23
+ </RadioGroup>
24
+
25
+ // Block usage — separated variant (default)
26
+ <RadioGroupBlock
27
+ name="plan"
28
+ defaultValue="pro"
29
+ options={[
30
+ { value: "free", label: "Free", description: "Up to 3 users" },
31
+ { value: "pro", label: "Pro", description: "$49/mo", trailing: <Badge>Popular</Badge> },
32
+ { value: "ent", label: "Enterprise", disabled: true },
33
+ ]}
34
+ error="Please select a plan"
35
+ />
36
+
37
+ // Block usage — grouped variant (single bordered card)
38
+ <RadioGroupBlock
39
+ name="region"
40
+ variant="grouped"
41
+ options={[
42
+ { value: "us", label: "United States" },
43
+ { value: "eu", label: "Europe" },
44
+ ]}
45
+ />
34
46
  ```
35
47
 
36
- The component uses OpenFrame Design System (ODS) color tokens and includes proper focus management, disabled states, and keyboard navigation support through Radix UI's accessibility features.
48
+ > The `grouped` variant wraps all options in a single rounded border with dividers between rows, while `separated` (default) renders each option as its own card. Both variants propagate `error` as a red border and an absolute helper text rendered below the group.