@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
@@ -0,0 +1,65 @@
1
+ <!-- source-hash: eea14186773eb206e54d1ffb8e785935 -->
2
+ Storybook stories for the `TabSelector` UI component, showcasing all supported variants, states, and composition patterns.
3
+
4
+ ## Key Components
5
+
6
+ ### Exported Stories
7
+
8
+ | Story | Description |
9
+ |-------|-------------|
10
+ | `Primary` | Accent background on active tab (default variant) |
11
+ | `Secondary` | Soft grey background on active tab |
12
+ | `FiveTabs` | Full 5-tab layout matching Figma spec |
13
+ | `WithIcons` | Tabs with Lucide icon prefixes |
14
+ | `WithLabel` | Optional label rendered above the selector |
15
+ | `WithDisabled` | Single tab disabled via `disabled` item property |
16
+ | `Disabled` | Entire selector disabled via top-level `disabled` prop |
17
+ | `TwoTabs` | Minimal two-tab configuration |
18
+ | `PlatformExample` | Real-world OS platform picker with icons and label |
19
+ | `VariantComparison` | Side-by-side `accent` vs `secondary` rendering |
20
+ | `WithBadges` | Tabs with badge slots (e.g., "Soon" pill on Enterprise) |
21
+
22
+ ### `TabSelectorItem` Shape
23
+
24
+ ```typescript
25
+ interface TabSelectorItem {
26
+ id: string;
27
+ label: string;
28
+ icon?: React.ReactNode;
29
+ disabled?: boolean;
30
+ badge?: React.ReactNode;
31
+ }
32
+ ```
33
+
34
+ ## Usage Example
35
+
36
+ ```typescript
37
+ import { TabSelector, type TabSelectorItem } from '../components/ui/tab-selector';
38
+ import { useState } from 'react';
39
+
40
+ const platforms: TabSelectorItem[] = [
41
+ { id: 'windows', label: 'Windows', icon: <Monitor className="w-5 h-5" /> },
42
+ { id: 'macos', label: 'macOS', icon: <Apple className="w-5 h-5" /> },
43
+ { id: 'linux', label: 'Linux', icon: <Globe className="w-5 h-5" />, disabled: true },
44
+ ];
45
+
46
+ export function PlatformPicker() {
47
+ const [platform, setPlatform] = useState('macos');
48
+
49
+ return (
50
+ <TabSelector
51
+ label="Select Platform"
52
+ variant="primary" // 'primary' | 'secondary'
53
+ value={platform}
54
+ onValueChange={setPlatform}
55
+ items={platforms}
56
+ />
57
+ );
58
+ }
59
+ ```
60
+
61
+ ## Notes
62
+
63
+ - All stories use a controlled `useState` render function to ensure interactive tab switching works correctly in Storybook.
64
+ - The decorator wraps every story in a `600px` wide container to match typical usage contexts.
65
+ - Badge content accepts any `React.ReactNode`, allowing custom pills, icons, or counters per tab.
@@ -1,56 +1,48 @@
1
- <!-- source-hash: 388b6c7933a0ee25057051f55e9ab1f1 -->
2
- A comprehensive Storybook configuration file that demonstrates various Table component use cases through interactive stories, including responsive column visibility, sorting, filtering, and different layout patterns optimized for different screen sizes.
1
+ <!-- source-hash: b88a597eb0e06d6c5293430c95a28ff3 -->
2
+ Storybook stories for the `Table` UI component, demonstrating all supported features including sorting, filtering, selection, responsive column visibility, loading/empty states, and row actions.
3
3
 
4
4
  ## Key Components
5
5
 
6
- **Interface Definitions:**
7
- - `User` - Sample data structure representing user records
8
- - `sampleUsers` - Mock dataset with 5 user records for story examples
9
-
10
- **Story Exports:**
11
- - `Basic` - Standard table with essential columns
12
- - `ResponsiveColumns` - Progressive column disclosure based on screen size
13
- - `MultipleBreakpoints` - Complex breakpoint hiding with array-based configuration
14
- - `Loading` - Skeleton state with configurable row count
15
- - `Empty` - No data state with custom messaging
16
- - `Selectable` - Row selection functionality
17
- - `Sortable` - Column sorting capabilities
18
- - `Clickable` - Interactive row click handling
19
- - `MobileFirst` - Mobile-optimized progressive enhancement
20
- - `TabletOptimized` - Tablet-specific column visibility for interactive elements
6
+ - **`Basic`** — Minimal table with static columns, no interactivity
7
+ - **`ResponsiveColumns`** — Progressive column disclosure using `hideAt` breakpoints (`sm`, `md`, `lg`, `xl`)
8
+ - **`MultipleBreakpoints`** — `hideAt` accepting an array of breakpoints for granular visibility control
9
+ - **`Loading`** — Skeleton row state via `loading: true` and `skeletonRows`
10
+ - **`Empty`** — Empty state with custom `emptyMessage`
11
+ - **`Selectable`** Row selection with `selectable` and `selectedRows` props
12
+ - **`Sortable`** Column sorting via `sortable`, `sortBy`, and `sortDirection` props
13
+ - **`Clickable`** / **`ClickableWithActions`** Row click handlers with optional inline `rowActions`
14
+ - **`MobileFirst`** — Mobile-optimized layout with progressive column reveal
15
+ - **`TabletOptimized`** — Tablet-focused layout showing only sortable/filterable columns at 768–1024px
16
+ - **`WithFilters`** — Stateful story using `useState` to drive `filterable` columns with `filterOptions`
21
17
 
22
18
  ## Usage Example
23
19
 
24
20
  ```typescript
25
- // Basic responsive table story
26
- export const ResponsiveColumns: Story = {
27
- args: {
28
- data: sampleUsers,
29
- columns: [
30
- { key: 'name', label: 'Name' },
31
- { key: 'email', label: 'Email' },
32
- { key: 'role', label: 'Role', hideAt: 'sm' },
33
- { key: 'status', label: 'Status', hideAt: 'md' }
34
- ] as TableColumn<User>[],
35
- rowKey: 'id'
36
- }
37
- }
21
+ import { Table, type TableColumn, type TableFilters } from '../components/ui/table'
38
22
 
39
- // Table with filtering and sorting
40
- export const TabletOptimized: Story = {
41
- args: {
42
- columns: [
43
- { key: 'name', label: 'Name', sortable: true },
44
- {
45
- key: 'status',
46
- label: 'Status',
47
- filterable: true,
48
- filterOptions: [
49
- { id: 'active', label: 'Active', value: 'active' }
50
- ]
51
- }
23
+ const columns: TableColumn<User>[] = [
24
+ { key: 'name', label: 'Name', sortable: true },
25
+ { key: 'email', label: 'Email', hideAt: 'sm' },
26
+ {
27
+ key: 'status',
28
+ label: 'Status',
29
+ filterable: true,
30
+ filterOptions: [
31
+ { id: 'active', label: 'Active', value: 'active' },
32
+ { id: 'inactive', label: 'Inactive', value: 'inactive' },
52
33
  ],
53
- onFilterChange: (filters) => console.log(filters)
54
- }
55
- }
34
+ },
35
+ ]
36
+
37
+ <Table
38
+ data={users}
39
+ columns={columns}
40
+ rowKey="id"
41
+ sortBy="name"
42
+ sortDirection="asc"
43
+ selectable
44
+ selectedRows={[]}
45
+ onFilterChange={(filters: TableFilters) => console.log(filters)}
46
+ rowActions={[{ label: 'Edit', variant: 'outline', onClick: (item) => console.log(item) }]}
47
+ />
56
48
  ```
@@ -0,0 +1,46 @@
1
+ <!-- source-hash: e750ae57313642f731dcbf7079870828 -->
2
+ Storybook stories for the `TableColumnFilterDropdown` component, demonstrating a compact filter icon button used in table column headers with checkbox-based filtering options.
3
+
4
+ ## Key Components
5
+
6
+ - **`Default`** — Base state with no active filters; icon renders subtly
7
+ - **`WithActiveFilters`** — Pre-selected filters (`active`, `inactive`) causing the icon to highlight with accent color
8
+ - **`InTableHeaderContext`** — Decorates the story inside a styled table header row for visual context
9
+ - **`MultipleColumns`** — Side-by-side Status and Type filter dropdowns sharing a single `TableFilters` state via `useState`
10
+ - **`Interactive`** — Fully stateful story showing real-time filter selection feedback
11
+
12
+ ## Usage Example
13
+
14
+ ```typescript
15
+ import { TableColumnFilterDropdown } from '../components/ui/table/table-column-filter-dropdown'
16
+ import type { FilterOption, TableFilters } from '../components/ui/table/types'
17
+
18
+ const statusOptions: FilterOption[] = [
19
+ { id: 'active', label: 'Active', value: 'active' },
20
+ { id: 'inactive', label: 'Inactive', value: 'inactive' },
21
+ ]
22
+
23
+ function TableHeader() {
24
+ const [filters, setFilters] = useState<TableFilters>({})
25
+
26
+ return (
27
+ <div className="flex items-center gap-2">
28
+ <span>Status</span>
29
+ <TableColumnFilterDropdown
30
+ columnKey="status"
31
+ columnLabel="Status"
32
+ filterOptions={statusOptions}
33
+ filters={filters}
34
+ onFilterChange={setFilters}
35
+ placement="bottom-start"
36
+ />
37
+ </div>
38
+ )
39
+ }
40
+ ```
41
+
42
+ ## Notes
43
+
44
+ - `placement` prop accepts `bottom-start`, `bottom-end`, or `bottom` (controllable via Storybook select)
45
+ - The filter icon highlights automatically when `filters[columnKey]` contains active selections
46
+ - `onFilterChange` receives the full updated `TableFilters` object, making it suitable for shared multi-column filter state
@@ -1,41 +1,52 @@
1
- <!-- source-hash: 51def75df74b17c99fb886c2e1837a96 -->
2
- Storybook configuration file that defines interactive stories and documentation for the Tag UI component. This file showcases all available variants, states, and configurations of the Tag component with live examples and controls.
1
+ <!-- source-hash: 6142d73d82bfcb3ba377d2f80cb29999 -->
2
+ Storybook stories for the `Tag` UI component, covering all visual variants, icon/close button combinations, disabled states, and composite showcase renders.
3
3
 
4
4
  ## Key Components
5
5
 
6
- - **meta**: Storybook configuration object defining the component title, controls, and argument types
7
- - **Story variants**: Individual stories demonstrating each tag variant (primary, outline, success, warning, error, critical, grey)
8
- - **Feature stories**: Examples showcasing icons, close buttons, and combined functionality
9
- - **Collection stories**: Grouped displays showing all variants together for comparison
6
+ | Export | Description |
7
+ |--------|-------------|
8
+ | `Primary` | Default primary variant |
9
+ | `Outline` | Outline/bordered variant |
10
+ | `Success` / `Warning` / `Error` / `Critical` / `Grey` | Semantic status variants |
11
+ | `WithIcon` | Tag with a leading icon |
12
+ | `WithCloseButton` | Tag with dismissible close handler |
13
+ | `WithIconAndClose` | Tag combining icon and close button |
14
+ | `Disabled` / `AllDisabled` | Disabled state across all variants |
15
+ | `AllVariants` | Showcase of every variant side-by-side |
16
+ | `AllWithIcons` | All variants with icons |
17
+ | `AllWithClose` | All variants with close buttons |
18
+ | `AllWithIconAndClose` | All variants with both icon and close |
19
+ | `DisabledWithIconAndClose` | Disabled state with full feature set |
10
20
 
11
21
  ## Usage Example
12
22
 
13
23
  ```typescript
14
- // Individual variant story
15
- export const Primary: Story = {
16
- args: { variant: 'primary', children: 'Tag' },
17
- };
18
-
19
- // Story with interactive features
20
- export const WithIconAndClose: Story = {
21
- args: {
22
- variant: 'success',
23
- children: 'Tag',
24
- icon: <Smile className="size-5" />,
25
- onClose: () => alert('close'),
26
- },
27
- };
28
-
29
- // Custom render function for grouped display
30
- export const AllVariants: Story = {
31
- render: () => (
32
- <div className="flex flex-wrap gap-3">
33
- <Tag variant="primary">Primary</Tag>
34
- <Tag variant="outline">Outline</Tag>
35
- {/* ... other variants */}
36
- </div>
37
- ),
38
- };
24
+ import { Tag } from '../components/ui/tag';
25
+ import { Smile } from 'lucide-react';
26
+
27
+ // Basic variant
28
+ <Tag variant="success" label="Active" />
29
+
30
+ // With icon
31
+ <Tag variant="primary" label="Category" icon={<Smile className="size-5" />} />
32
+
33
+ // Dismissible
34
+ <Tag variant="warning" label="Pending" onClose={() => handleRemove()} />
35
+
36
+ // Full featured
37
+ <Tag
38
+ variant="error"
39
+ label="Failed"
40
+ icon={<Smile className="size-5" />}
41
+ onClose={() => handleRemove()}
42
+ disabled={false}
43
+ />
39
44
  ```
40
45
 
41
- The stories provide a comprehensive testing and documentation environment for the Tag component, allowing developers to interact with different configurations and see visual examples of all available options.
46
+ ## Variants
47
+
48
+ The `Tag` component supports 7 variants controlled via the Storybook `select` control:
49
+
50
+ ```text
51
+ primary | outline | success | warning | error | critical | grey
52
+ ```
@@ -0,0 +1,44 @@
1
+ <!-- source-hash: 2efd92dbc250ad80e5820ff475ea0636 -->
2
+ Storybook stories for `TagKeyValueFilter` and related UI components, demonstrating tag-based filtering workflows across standalone, combined, and modal contexts.
3
+
4
+ ## Key Components
5
+
6
+ | Export | Description |
7
+ |---|---|
8
+ | `Standalone` | Basic `TagKeyValueFilter` with live selection display |
9
+ | `WithPreselected` | Filter initialized with pre-selected `key:value` tag strings |
10
+ | `WithTagSearchInput` | Combined `TagSearchInput` + `TagKeyValueFilter` for a full search-and-filter workflow |
11
+ | `InsideFilterModal` | `TagKeyValueFilter` embedded inside `FilterModal` alongside standard filter groups |
12
+ | `FilterModalTagsOnly` | `FilterModal` with only tag filters and no regular filter groups |
13
+
14
+ **Sample data shapes used across stories:**
15
+ - `sampleKeys` — `TagKeyConfig[]` covering `site`, `env`, `os`, and `role` dimensions with associated value counts
16
+ - `sampleFilterGroups` — `FilterGroup[]` for a standard `Status` filter group
17
+
18
+ ## Usage Example
19
+
20
+ ```typescript
21
+ // Standalone controlled usage
22
+ const [tags, setTags] = useState<string[]>([]);
23
+
24
+ <TagKeyValueFilter
25
+ keys={sampleKeys} // TagKeyConfig[] — key/value tree
26
+ selectedTags={tags} // string[] in "key:value" format
27
+ onTagsChange={setTags}
28
+ />
29
+
30
+ // Inside FilterModal with mixed filter groups
31
+ <FilterModal
32
+ isOpen={isOpen}
33
+ onClose={() => setIsOpen(false)}
34
+ filterGroups={sampleFilterGroups}
35
+ currentFilters={filters}
36
+ onFilterChange={setFilters}
37
+ tagFilterKeys={sampleKeys}
38
+ selectedTags={tags}
39
+ onTagsChange={setTags}
40
+ tagFilterTitle="Device Tags"
41
+ />
42
+ ```
43
+
44
+ > Tags follow the `"key:value"` string format (e.g., `"site:chicago"`, `"env:production"`). All stories use controlled state via React's `useState`.
@@ -0,0 +1,61 @@
1
+ <!-- source-hash: 39e74029d3a13eedba8671d2a0c9a8f5 -->
2
+ Storybook stories for the `TagSearchInput` UI component, covering all interactive states and layout behaviors including overflow, tag limits, and disabled mode.
3
+
4
+ ## Key Components
5
+
6
+ **Exported Stories**
7
+
8
+ | Story | Description |
9
+ |---|---|
10
+ | `Empty` | No tags, bare search input |
11
+ | `WithTags` | A few tags fitting on one line |
12
+ | `OverflowWithBadge` | Many tags triggering the automatic `+N` overflow badge |
13
+ | `Resizable` | Drag-to-resize container demonstrating dynamic `+N` badge recalculation |
14
+ | `NarrowContainer` | Narrow container collapsing all tags into `+N` |
15
+ | `Disabled` | Non-interactive disabled state |
16
+ | `WithSubmit` | Press Enter to add typed values as tags |
17
+ | `LimitTags` | Hard cap of 2 visible tags via `limitTags` prop |
18
+ | `NoClearAll` | Hides the clear-all button via `showClearAll={false}` |
19
+ | `AllVariants` | All states rendered together for visual comparison |
20
+
21
+ **Sample Data**
22
+
23
+ - `sampleTags` — 3 tags (`site`, `env` prefixes)
24
+ - `manyTags` — 8 tags across multiple prefixes (`site`, `env`, `os`, `role`, `team`, `region`, `status`)
25
+
26
+ ## Usage Example
27
+
28
+ ```typescript
29
+ import { TagSearchInput, TagSearchOption } from '../components/ui/tag-search-input';
30
+ import { useState } from 'react';
31
+
32
+ const tags: TagSearchOption[] = [
33
+ { label: 'site:chicago', value: 'site:chicago' },
34
+ { label: 'env:production', value: 'env:production' },
35
+ ];
36
+
37
+ function Example() {
38
+ const [activeTags, setActiveTags] = useState(tags);
39
+ const [search, setSearch] = useState('');
40
+
41
+ return (
42
+ <TagSearchInput
43
+ tags={activeTags}
44
+ searchValue={search}
45
+ onSearchChange={setSearch}
46
+ onTagRemove={(val) =>
47
+ setActiveTags((t) => t.filter((x) => x.value !== val))
48
+ }
49
+ onClearAll={() => { setActiveTags([]); setSearch(''); }}
50
+ onSubmit={(val) => {
51
+ if (val.trim()) {
52
+ setActiveTags((t) => [...t, { label: val, value: val }]);
53
+ setSearch('');
54
+ }
55
+ }}
56
+ limitTags={3}
57
+ placeholder="Search devices..."
58
+ />
59
+ );
60
+ }
61
+ ```
@@ -1,33 +1,56 @@
1
- <!-- source-hash: 74738542f0c031ba8ae22f9b94866314 -->
2
- Storybook configuration file that defines interactive documentation and testing scenarios for the Textarea UI component, including various states like disabled, invalid, and custom sizing options.
1
+ <!-- source-hash: ab03748717bd50a809cf19a269adcb31 -->
2
+ Storybook stories for the `Textarea` UI component, covering all interactive states, variants, and compositional patterns used across the Flamingo/OpenFrame platform.
3
3
 
4
4
  ## Key Components
5
5
 
6
- - **meta**: Main Storybook configuration object with component metadata, controls, and decorators
7
- - **Story variants**: Multiple story exports demonstrating different textarea states and configurations
8
- - **argTypes**: Control definitions for interactive property manipulation in Storybook UI
9
- - **decorators**: Custom wrapper providing consistent styling and layout for all stories
6
+ | Export | Description |
7
+ |--------|-------------|
8
+ | `Default` | Basic textarea with placeholder text |
9
+ | `WithValue` | Pre-filled textarea using `defaultValue` |
10
+ | `Disabled` / `DisabledWithValue` | Read-only disabled states |
11
+ | `CustomRows` | Textarea with a configurable `rows` count |
12
+ | `NoResize` | Fixed-height textarea via `!resize-none` class |
13
+ | `Invalid` | Error/invalid visual state |
14
+ | `WithLabel` | Textarea paired with a label |
15
+ | `WithLabelAndError` | Label + inline validation error message |
16
+ | `WithErrorOnly` | Validation error without a label |
17
+ | `AllVariants` | Side-by-side comparison of all variants |
18
+
19
+ ## Configurable ArgTypes
20
+
21
+ | Arg | Type | Description |
22
+ |-----|------|-------------|
23
+ | `placeholder` | `text` | Hint text shown when empty |
24
+ | `disabled` | `boolean` | Prevents user interaction |
25
+ | `invalid` | `boolean` | Applies error styling |
26
+ | `rows` | `number` | Visible row height |
10
27
 
11
28
  ## Usage Example
12
29
 
13
30
  ```typescript
14
- // Basic story definition
15
- export const Default: Story = {
16
- args: {
17
- placeholder: 'Enter description...',
18
- },
19
- }
20
-
21
- // Complex story with custom render function
22
- export const AllVariants: Story = {
23
- render: () => (
24
- <div style={{ display: 'flex', flexDirection: 'column', gap: '1rem' }}>
25
- <Textarea placeholder="Default textarea" />
26
- <Textarea defaultValue="With pre-filled value" />
27
- <Textarea placeholder="Disabled" disabled />
28
- </div>
29
- ),
30
- }
31
- ```
32
-
33
- The file exports 8 different story variants including `Default`, `WithValue`, `Disabled`, `CustomRows`, `NoResize`, `Invalid`, and `AllVariants` for comprehensive component testing. Each story demonstrates specific textarea functionality like error states, disabled states, custom row counts, and resize behavior. The stories support interactive controls for `placeholder`, `disabled`, `invalid`, and `rows` properties through Storybook's args system.
31
+ import { Textarea } from '@/components/ui/textarea'
32
+
33
+ // Basic usage
34
+ <Textarea placeholder="Enter description..." />
35
+
36
+ // With label and validation error
37
+ <Textarea
38
+ label="Description"
39
+ placeholder="Enter description..."
40
+ error="Description is required"
41
+ invalid
42
+ />
43
+
44
+ // Disabled with pre-filled content
45
+ <Textarea
46
+ defaultValue="This content is read-only."
47
+ disabled
48
+ />
49
+
50
+ // Fixed height, no resize
51
+ <Textarea
52
+ placeholder="Fixed height..."
53
+ rows={8}
54
+ className="!resize-none"
55
+ />
56
+ ```
@@ -0,0 +1,41 @@
1
+ <!-- source-hash: a1cf673720fb7e195d055604da5c8efd -->
2
+ Storybook stories for the ODS (OpenFrame Design System) theme system, demonstrating light/dark theme switching, design token visualization, and component behavior across themes.
3
+
4
+ ## Key Components
5
+
6
+ | Export | Type | Description |
7
+ |--------|------|-------------|
8
+ | `Showcase` | Story | Full-page demo with theme toggle, color token grid, and all UI components |
9
+ | `ToggleOnly` | Story | Minimal copy-paste reference showing `ThemeProvider` + `useThemeToggle()` integration |
10
+ | `SideBySide` | Story | Forced side-by-side light/dark panels using `.theme-light`/`.theme-dark` class escapes |
11
+ | `ThemeToggleButton` | Helper | Toggle button built on `useThemeToggle()` with Sun/Moon icons |
12
+ | `ThemeStatusBar` | Helper | Status bar showing current theme with explicit `setTheme('light' | 'dark')` controls |
13
+ | `TokenGrid` | Helper | Visual swatches for all `--ods-*` surface, text, accent, status, and border tokens |
14
+ | `ComponentsShowcase` | Helper | Renders Buttons, Inputs, Badges, Cards, and Alerts against the active theme |
15
+ | `Swatch` | Helper | Single color swatch rendering a Tailwind token class with its label |
16
+
17
+ ## Usage Example
18
+
19
+ ```typescript
20
+ // Wrap once with ThemeProvider; consume useThemeToggle() anywhere inside
21
+ import { ThemeProvider, useThemeToggle } from '../components/providers/theme-provider'
22
+
23
+ function MyToggle() {
24
+ const { isDark, toggle, mounted } = useThemeToggle()
25
+ return (
26
+ <button onClick={toggle}>
27
+ {mounted ? (isDark ? 'Switch to light' : 'Switch to dark') : 'Toggle theme'}
28
+ </button>
29
+ )
30
+ }
31
+
32
+ export default function App() {
33
+ return (
34
+ <ThemeProvider>
35
+ <MyToggle />
36
+ </ThemeProvider>
37
+ )
38
+ }
39
+ ```
40
+
41
+ > **How it works:** `ThemeProvider` (wrapping `next-themes`) sets `data-theme="light|dark"` on `<html>`. The `src/styles/ods-colors.css` file swaps all `--ods-*` primitive values accordingly — components only read tokens and are theme-unaware.
@@ -0,0 +1,39 @@
1
+ <!-- source-hash: ddd9ad67dd51d76015bd6c722cee21e2 -->
2
+ Storybook stories for the `TicketAttachmentsList` component, covering view-only file attachment list rendering across multiple attachment states.
3
+
4
+ ## Key Components
5
+
6
+ - **`Default`** — Three mixed-format attachments (PNG, SVG, MP4) with download handlers
7
+ - **`SingleFile`** — Minimal single PDF attachment scenario
8
+ - **`NoDownload`** — Read-only attachment without a download action callback
9
+ - **`Empty`** — Zero-attachment edge case rendering
10
+
11
+ ## Usage Example
12
+
13
+ ```typescript
14
+ import { TicketAttachmentsList } from '../components/ui/ticket-attachments-list';
15
+
16
+ // Basic usage with download handlers
17
+ <TicketAttachmentsList
18
+ attachments={[
19
+ { id: '1', fileName: 'report.pdf', fileSize: '2.3 MB', onDownload: () => handleDownload('1') },
20
+ { id: '2', fileName: 'screenshot.png', fileSize: '512 KB', onDownload: () => handleDownload('2') },
21
+ ]}
22
+ />
23
+
24
+ // Read-only, no download action
25
+ <TicketAttachmentsList
26
+ attachments={[
27
+ { id: '1', fileName: 'readonly-file.txt', fileSize: '128 KB' },
28
+ ]}
29
+ />
30
+ ```
31
+
32
+ ## Attachment Item Shape
33
+
34
+ | Field | Type | Required | Description |
35
+ |-------|------|----------|-------------|
36
+ | `id` | `string` | ✅ | Unique attachment identifier |
37
+ | `fileName` | `string` | ✅ | Displayed file name with extension |
38
+ | `fileSize` | `string` | ✅ | Human-readable size label |
39
+ | `onDownload` | `() => void` | ❌ | Download action; omit for read-only |
@@ -0,0 +1,39 @@
1
+ <!-- source-hash: 70e0ec1bd6faabbc539fcfb3af28cb70 -->
2
+ Storybook stories for the `TicketDescriptionViewer` component, providing visual test cases for rendering ticket description content in various formats (plain text, HTML, code, and empty states).
3
+
4
+ ## Key Components
5
+
6
+ | Export | Type | Description |
7
+ |--------|------|-------------|
8
+ | `meta` | `Meta` | Storybook metadata — mounts component at `Tickets/TicketDescriptionViewer` with a 600px wrapper |
9
+ | `PlainText` | `Story` | Plain text with line breaks |
10
+ | `HtmlContent` | `Story` | Rich HTML with headings, lists, blockquotes |
11
+ | `WithCode` | `Story` | Inline and block `<code>` / `<pre>` elements |
12
+ | `Empty` | `Story` | Empty string fallback rendering |
13
+
14
+ ## Usage Example
15
+
16
+ ```typescript
17
+ import { TicketDescriptionViewer } from '../components/ui/ticket-description-viewer';
18
+
19
+ // Plain text
20
+ <TicketDescriptionViewer content="Reduce onboarding from 4 weeks to 10 days." />
21
+
22
+ // HTML from RichTextEditor output
23
+ <TicketDescriptionViewer content="<h2>Steps</h2><ul><li>Setup</li></ul>" />
24
+
25
+ // Empty state
26
+ <TicketDescriptionViewer content="" />
27
+ ```
28
+
29
+ ## Story Overview
30
+
31
+ ```mermaid
32
+ graph TD
33
+ meta["TicketDescriptionViewer Stories"] --> PlainText["PlainText\n(line-break text)"]
34
+ meta --> HtmlContent["HtmlContent\n(headings, lists, blockquote)"]
35
+ meta --> WithCode["WithCode\n(pre + code blocks)"]
36
+ meta --> Empty["Empty\n(empty string)"]
37
+ ```
38
+
39
+ > All stories render inside a 600px-wide decorator div to simulate a realistic ticket detail panel width, matching the expected `RichTextEditor` output environment.
@@ -0,0 +1,40 @@
1
+ <!-- source-hash: 82f8ca355b8119e08afe608bf0b4cf05 -->
2
+ Storybook stories for the `TicketInfoSection` component, covering collapsed, expanded, interactive, and minimal display states of the collapsible ticket info bar.
3
+
4
+ ## Key Components
5
+
6
+ - **`Collapsed`** — Default header-only view showing organization, user, device, and status fields
7
+ - **`Expanded`** — Fully populated view with description, attachments, tags, knowledge base articles, and notes
8
+ - **`Interactive`** — Stateful story demonstrating expand/collapse toggle with `useState`, device click handler, and note CRUD callbacks
9
+ - **`Minimal`** — Expanded state with all fields set to "Unassigned", useful for empty-state validation
10
+
11
+ ## Usage Example
12
+
13
+ ```typescript
14
+ import { TicketInfoSection } from '../components/ui/ticket-info-section';
15
+
16
+ // Basic collapsed header
17
+ <TicketInfoSection
18
+ organization={{ name: 'Acme Corp' }}
19
+ user="John Doe"
20
+ device={{ name: 'WIN-SERVER-01', icon: <Monitor className="size-4" /> }}
21
+ status="TECH_REQUIRED"
22
+ expanded={false}
23
+ />
24
+
25
+ // Expanded with notes and attachments
26
+ <TicketInfoSection
27
+ organization={{ name: 'Acme Corp' }}
28
+ user="John Doe"
29
+ device={{ name: 'WIN-SERVER-01' }}
30
+ status="ACTIVE"
31
+ expanded={true}
32
+ notes={mockNotes}
33
+ attachments={mockAttachments}
34
+ knowledgeBaseArticles={mockArticles}
35
+ tags={['Client-onboarding']}
36
+ onAddNote={(text) => console.log('Add note:', text)}
37
+ onEditNote={(id) => console.log('Edit note:', id)}
38
+ onDeleteNote={(id) => console.log('Delete note:', id)}
39
+ />
40
+ ```