@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,36 @@
1
+ <!-- source-hash: 10bc87374ddc44d31270589592965faf -->
2
+ Barrel export file that re-exports all transportation and travel-related icon components from their individual modules as a single unified entry point.
3
+
4
+ ## Key Components
5
+
6
+ All exports are React icon components in the **Transportation & Travel** category:
7
+
8
+ | Group | Icons |
9
+ |-------|-------|
10
+ | **Road Vehicles** | `CarIcon`, `CarSideIcon`, `CarSideElectricIcon`, `CarTaxiIcon`, `BikeIcon`, `MotorbikeIcon`, `BusIcon`, `TruckIcon`, `TruckFastIcon`, `TruckDelayIcon`, `TruckMedicalIcon`, `RvIcon` |
11
+ | **Rail & Water** | `TrainIcon`, `SpeedTrainIcon`, `TramIcon`, `TrainTunnelIcon`, `CableCarIcon`, `FerryIcon`, `SailboatIcon` |
12
+ | **Air & Space** | `PlaneIcon`, `PlaneAltIcon`, `PlaneOffIcon`, `PlaneVerticalIcon`, `PlaneVerticalOffIcon`, `HelicopterIcon`, `Rocket01Icon`, `Rocket02Icon` |
13
+ | **Parcels** | `Parcel01Icon`–`Parcel03Icon`, `ParcelsIcon`, plus variants (Check, Fast, Lock, Search, Star, Heart, Label, Delay) |
14
+ | **Infrastructure** | `RoadIcon`, `RoadBarrierIcon`, `TrafficConeIcon`, `TrafficSignalIcon`, `PumpGasIcon`, `PumpElectricIcon`, `Gauge01Icon`, `Gauge02Icon` |
15
+ | **Accessories** | `AnchorIcon`, `HelmetIcon`, `SteeringWheelIcon`, `CarBattery01Icon`, `CarBattery02Icon`, `BabyCarriageIcon`, `TrolleyIcon`, `HandParcelIcon` |
16
+
17
+ ## Usage Example
18
+
19
+ ```typescript
20
+ import {
21
+ CarSideElectricIcon,
22
+ TruckFastIcon,
23
+ Parcel01CheckIcon,
24
+ PlaneIcon,
25
+ TrafficSignalIcon
26
+ } from './transportation';
27
+
28
+ // Use in a React component
29
+ const ShipmentStatus = () => (
30
+ <div>
31
+ <TruckFastIcon size={24} />
32
+ <Parcel01CheckIcon size={24} color="green" />
33
+ <PlaneIcon size={24} />
34
+ </div>
35
+ );
36
+ ```
@@ -0,0 +1,36 @@
1
+ <!-- source-hash: 73f62f8a88e9d1c95a1eb2397e3f5878 -->
2
+ A React SVG icon component that renders a sakura (cherry blossom) flower icon with configurable size, color, and className props.
3
+
4
+ ## Key Components
5
+
6
+ ### `FlowerSakuraIconProps`
7
+ Interface extending `SVGProps<SVGSVGElement>` (excluding `width` and `height`) with:
8
+
9
+ | Prop | Type | Default | Description |
10
+ |------|------|---------|-------------|
11
+ | `className` | `string` | `""` | CSS class name |
12
+ | `size` | `number` | `24` | Width and height in pixels |
13
+ | `color` | `string` | `"currentColor"` | Fill color |
14
+
15
+ ### `FlowerSakuraIcon`
16
+ Functional component rendering a 24×24 viewBox SVG sakura flower with two paths — an outer petal shape and an inner center detail.
17
+
18
+ ## Usage Example
19
+
20
+ ```typescript
21
+ import { FlowerSakuraIcon } from "./flower-sakura-icon";
22
+
23
+ // Default usage
24
+ <FlowerSakuraIcon />
25
+
26
+ // Custom size and color
27
+ <FlowerSakuraIcon size={32} color="#FF69B4" />
28
+
29
+ // With Tailwind class
30
+ <FlowerSakuraIcon className="text-pink-400" size={20} />
31
+
32
+ // Inherits parent color via currentColor
33
+ <div style={{ color: "#e91e8c" }}>
34
+ <FlowerSakuraIcon />
35
+ </div>
36
+ ```
@@ -0,0 +1,34 @@
1
+ <!-- source-hash: 9d9dad636cdb6841a5aa6411927da6ee -->
2
+ Barrel export file for the **nature, weather, and environment** icon set, re-exporting all individual icon components from their respective modules.
3
+
4
+ ## Key Components
5
+
6
+ | Category | Exports |
7
+ |---|---|
8
+ | Weather | `CloudWeatherBoltIcon`, `CloudWeatherDrizzleIcon`, `CloudWeatherFogIcon`, `CloudWeatherRainIcon`, `CloudWeatherSnowIcon`, `CloudWeatherSunIcon`, `HurricaneIcon`, `TornadoIcon`, `WindIcon` |
9
+ | Temperature & Sky | `TemperatureIcon`, `TemperatureColdIcon`, `TemperatureHotIcon`, `HeatIcon`, `MoonIcon`, `MoonStarIcon`, `Sun01Icon`, `Sun02Icon`, `SunriseIcon`, `SunsetIcon`, `SnowflakeIcon` |
10
+ | Flora | `FlowerIcon`, `FlowerSakuraIcon`, `FlowerTulipIcon`, `FlowerPlantIcon`, `LeafIcon`, `LeavesIcon`, `TreeIcon`, `TreesIcon`, `SeedlingIcon`, `SeedlingPotIcon`, `HandSeedlingIcon` |
11
+ | Animals | `DogIcon`, `DogLeashIcon`, `PawIcon` |
12
+ | Natural Disasters | `ExplosionIcon`, `FireIcon`, `FloodIcon`, `DrowningIcon`, `HillAvalancheIcon`, `HillRockslideIcon` |
13
+ | Misc | `AquariumIcon`, `UfoIcon`, `RadiationIcon`, `StarsIcon`, `SparkleIcon`, `WaterDropletIcon`, `WaterWaveIcon` |
14
+
15
+ ## Usage Example
16
+
17
+ ```typescript
18
+ import {
19
+ SunriseIcon,
20
+ TornadoIcon,
21
+ FlowerSakuraIcon,
22
+ TemperatureColdIcon,
23
+ } from './icons/nature';
24
+
25
+ // Use in a React component
26
+ const WeatherDisplay = () => (
27
+ <div>
28
+ <SunriseIcon />
29
+ <TemperatureColdIcon />
30
+ <TornadoIcon />
31
+ <FlowerSakuraIcon />
32
+ </div>
33
+ );
34
+ ```
@@ -0,0 +1,43 @@
1
+ <!-- source-hash: f1c1fbdd04d056b4c98f44f6bacd4fb8 -->
2
+ Unified page layout components providing two layout variants for consistent page structure across the application.
3
+
4
+ ## Key Components
5
+
6
+ | Export | Max Width | Purpose |
7
+ |--------|-----------|---------|
8
+ | `PageShell` | 1920px | List pages, dashboards, wide layouts |
9
+ | `ArticleDetailLayout` | 1280px | Articles, blog posts, release notes, case studies |
10
+
11
+ **`LayoutProps` interface:**
12
+ - `children` — page content (no additional layout wrappers needed)
13
+ - `schemas?` — optional JSON-LD `<script>` elements (breadcrumbs, article schema, etc.)
14
+
15
+ Both components render a `<main>` element with `bg-ods-bg`, `min-h-screen`, responsive horizontal padding (`px-6` / `md:px-20`), and vertical padding (`py-6` / `md:py-10`).
16
+
17
+ ## Usage Example
18
+
19
+ ```typescript
20
+ // Wide layout for a list/dashboard page
21
+ import { PageShell } from '@/components/article-detail-layout';
22
+
23
+ export default function DevicesPage() {
24
+ return (
25
+ <PageShell>
26
+ <DeviceTable />
27
+ </PageShell>
28
+ );
29
+ }
30
+
31
+ // Constrained layout for a readable article/detail page
32
+ import { ArticleDetailLayout } from '@/components/article-detail-layout';
33
+
34
+ export default function BlogPost({ schema }: { schema: React.ReactNode }) {
35
+ return (
36
+ <ArticleDetailLayout schemas={schema}>
37
+ <ArticleContent />
38
+ </ArticleDetailLayout>
39
+ );
40
+ }
41
+ ```
42
+
43
+ > Child components should render content only — no additional `<main>`, max-width, or padding wrappers required.
@@ -0,0 +1,40 @@
1
+ <!-- source-hash: bbc5ab0313f6e7cb301fe2ba986ea93b -->
2
+ A reusable "Back" navigation button component that renders a left chevron icon alongside a customizable label, styled with ODS (OpenFrame Design System) tokens.
3
+
4
+ ## Key Components
5
+
6
+ | Export | Type | Description |
7
+ |--------|------|-------------|
8
+ | `BackButton` | `React.FC` | Main button component with chevron icon and label |
9
+ | `BackButtonProps` | `interface` | Extends `HTMLButtonElement` attributes, omitting `children` |
10
+
11
+ ### Props
12
+
13
+ | Prop | Type | Default | Description |
14
+ |------|------|---------|-------------|
15
+ | `label` | `string` | `'Back'` | Button text displayed next to the chevron |
16
+ | `onClick` | `MouseEventHandler` | — | Click handler for navigation logic |
17
+ | `className` | `string` | — | Additional CSS classes merged via `cn()` |
18
+ | `type` | `string` | `'button'` | HTML button type attribute |
19
+
20
+ ## Usage Example
21
+
22
+ ```typescript
23
+ import { BackButton } from './components/back-button'
24
+ import { useRouter } from 'next/navigation'
25
+
26
+ export function PageHeader() {
27
+ const router = useRouter()
28
+
29
+ return (
30
+ <header>
31
+ <BackButton
32
+ label="Back to Dashboard"
33
+ onClick={() => router.back()}
34
+ />
35
+ </header>
36
+ )
37
+ }
38
+ ```
39
+
40
+ > **Note:** The `type` prop defaults to `'button'` (not `'submit'`) to prevent accidental form submissions when used inside `<form>` elements.
@@ -1,12 +1,32 @@
1
- <!-- source-hash: 5eb52e6779e6d0d0828920da4c48f44b -->
2
- A standardized layout component that provides consistent structure and functionality for all list-based pages in the OpenFrame application, including search, filtering, and mobile-responsive design patterns.
1
+ <!-- source-hash: 32c9dcb06a56d3c5fa171224fc048981 -->
2
+ A deprecated layout component for list-based pages in OpenFrame, providing a standardized structure with a title header, full-width search bar with debouncing, optional mobile filter modal, and a main content area for tables or grids.
3
3
 
4
4
  ## Key Components
5
5
 
6
- - **`ListPageLayout`** - Main layout component with title header, search bar, and content area
7
- - **`ListPageLayoutProps`** - TypeScript interface defining component props including search, filtering, and mobile configuration options
8
- - **Mobile Filter Integration** - Built-in support for mobile filter modal with sort and filter capabilities
9
- - **Debounced Search** - Integrated search functionality with 500ms debounce for performance optimization
6
+ ### `ListPageLayoutProps`
7
+
8
+ | Prop | Type | Description |
9
+ |------|------|-------------|
10
+ | `title` | `string` | Page title displayed in the header |
11
+ | `searchPlaceholder` | `string` | Placeholder text for the search input |
12
+ | `searchValue` | `string` | Controlled search input value |
13
+ | `onSearch` | `(term: string) => void` | Callback fired after 500ms debounce |
14
+ | `headerActions` | `React.ReactNode` | Optional content rendered right-aligned in the header |
15
+ | `actions` | `PageActionButton[]` | Action buttons passed to the page container |
16
+ | `mobileFilterGroups` | `FilterGroup[]` | Filter groups shown in the mobile filter modal |
17
+ | `mobileSortConfig` | `SortConfig` | Sort columns available in the mobile filter modal |
18
+ | `stickyHeader` | `boolean` | Makes the search bar sticky on scroll |
19
+ | `error` | `string \| null` | Renders a `PageError` instead of the layout |
20
+ | `padding` | `'none' \| 'sm' \| 'md' \| 'lg'` | Inner padding size (default: `'sm'`) |
21
+ | `background` | `'default' \| 'card' \| 'transparent'` | Background style (default: `'default'`) |
22
+
23
+ ### `ListPageLayout`
24
+
25
+ The main exported function component. Internally manages:
26
+
27
+ - **Local search state** synced with the controlled `searchValue` prop
28
+ - **Debounced search** — `onSearch` fires 500ms after the user stops typing
29
+ - **Mobile filter visibility** — a `Filter02Icon` button toggling a `FilterModal` overlay, rendered only when `mobileFilterGroups` or `mobileSortConfig` are provided
10
30
 
11
31
  ## Usage Example
12
32
 
@@ -15,38 +35,27 @@ import { ListPageLayout } from './list-page-layout'
15
35
  import { Button } from '../ui'
16
36
 
17
37
  function DevicesPage() {
18
- const [searchTerm, setSearchTerm] = useState('')
38
+ const [search, setSearch] = useState('')
19
39
  const [filters, setFilters] = useState({})
20
40
 
21
41
  return (
22
42
  <ListPageLayout
23
- title="Device Management"
24
- headerActions={
25
- <div className="flex gap-2">
26
- <Button variant="outline">Export</Button>
27
- <Button>Add Device</Button>
28
- </div>
29
- }
43
+ title="Devices"
30
44
  searchPlaceholder="Search devices..."
31
- searchValue={searchTerm}
32
- onSearch={setSearchTerm}
45
+ searchValue={search}
46
+ onSearch={setSearch}
47
+ headerActions={<Button>Refresh</Button>}
33
48
  mobileFilterGroups={[
34
- {
35
- id: 'status',
36
- label: 'Status',
37
- options: [
38
- { id: 'online', label: 'Online' },
39
- { id: 'offline', label: 'Offline' }
40
- ]
41
- }
49
+ { id: 'status', label: 'Status', options: [{ value: 'online', label: 'Online' }] },
42
50
  ]}
43
51
  onMobileFilterChange={setFilters}
44
52
  currentMobileFilters={filters}
53
+ stickyHeader
45
54
  >
46
- <DeviceTable data={filteredDevices} />
55
+ <DevicesTable />
47
56
  </ListPageLayout>
48
57
  )
49
58
  }
50
59
  ```
51
60
 
52
- The component provides a consistent layout structure with a title header, optional action buttons, debounced search bar, and mobile-responsive filter modal. It's designed to standardize the appearance and behavior of list pages throughout the application while supporting flexible content through the children prop.
61
+ > **Deprecated** Use `PageLayout` from `'../layout/page-layout'` instead.
@@ -1,56 +1,45 @@
1
- <!-- source-hash: 8dcbf27d582bedb7a355f6a4841a68f7 -->
2
- A versatile React container component that provides both legacy layout functionality and advanced page structure patterns with responsive headers, actions, and variants.
1
+ <!-- source-hash: 601f78e11aff8ba0205359b5d858638e -->
2
+ Unified page container component that supports both legacy layout patterns and a new advanced UI pattern with variants, titles, actions, and responsive headers.
3
3
 
4
4
  ## Key Components
5
5
 
6
- - **PageContainer** - Main component supporting both legacy and advanced usage patterns
7
- - **LegacyPageContainerProps** - Interface for backward-compatible layout functionality
8
- - **AdvancedPageContainerProps** - Interface for new UI patterns with variants, headers, and actions
9
- - **isAdvancedProps** - Type guard function to differentiate between usage patterns
6
+ ### Exported Types
7
+ - **`PageContainerProps`** Union type supporting `LegacyPageContainerProps` and `AdvancedPageContainerProps`
8
+
9
+ ### Main Export
10
+ - **`PageContainer`** — Auto-detects prop interface via `isAdvancedProps()` type guard and delegates to the appropriate renderer
11
+
12
+ ### Internal Renderers
13
+ - **`renderLegacyPageContainer`** — Wraps content in a configurable semantic element (`section`, `div`, `main`, `article`) with optional full-width background
14
+ - **`renderAdvancedPageContainer`** — Renders variant-aware layout (`list` | `detail` | `form` | `content`) with header, back button, title, subtitle, and `PageActions`
10
15
 
11
16
  ## Usage Example
12
17
 
13
18
  ```typescript
14
- // Legacy usage (backward compatible)
15
- <PageContainer
16
- backgroundClassName="bg-gray-100"
17
- contentPadding="p-6"
18
- maxWidth="max-w-6xl"
19
- >
20
- <h1>Your Content</h1>
19
+ // Legacy usage
20
+ <PageContainer backgroundClassName="bg-gray-100" contentPadding="px-6 py-4">
21
+ <h1>Content</h1>
21
22
  </PageContainer>
22
23
 
23
- // Advanced usage with variant-specific layouts
24
+ // Advanced - list page
24
25
  <PageContainer
25
- variant="detail"
26
- title="User Profile"
27
- subtitle="Manage user information and settings"
28
- backButton={{
29
- label: "Back to Users",
30
- onClick: () => router.back()
31
- }}
32
- actions={[
33
- { label: "Edit", onClick: handleEdit, variant: "primary" },
34
- { label: "Delete", onClick: handleDelete, variant: "destructive" }
35
- ]}
36
- padding="md"
37
- background="card"
26
+ variant="list"
27
+ title="Devices"
28
+ subtitle="All managed devices"
29
+ actions={[{ label: 'Add Device', onClick: handleAdd }]}
38
30
  >
39
- <div>Page content goes here</div>
31
+ <DeviceTable />
40
32
  </PageContainer>
41
33
 
42
- // Form variant with custom header actions
34
+ // Advanced - detail page with back button
43
35
  <PageContainer
44
- variant="form"
45
- title="Create New Project"
46
- headerActions={<Button variant="outline">Save Draft</Button>}
47
- actions={[
48
- { label: "Cancel", onClick: handleCancel },
49
- { label: "Create", onClick: handleSubmit, variant: "primary" }
50
- ]}
36
+ variant="detail"
37
+ title="Device Details"
38
+ backButton={{ label: 'Back', onClick: () => router.back() }}
39
+ headerActions={<StatusBadge status="online" />}
51
40
  >
52
- <ProjectForm />
41
+ <DeviceDetail />
53
42
  </PageContainer>
54
43
  ```
55
44
 
56
- The component automatically handles responsive layouts, mobile-optimized action buttons, and provides consistent spacing and styling across different page types.
45
+ > **Deprecated:** Prefer `PageLayout` from `'../layout/page-layout'` for new implementations.
@@ -0,0 +1,50 @@
1
+ <!-- source-hash: 8a798bc4d9131ab38604adc9a1b7d675 -->
2
+ Reusable page layout wrapper that provides consistent structure with an optional header (`TitleBlock`), configurable actions, and standardized spacing for full-page views.
3
+
4
+ ## Key Components
5
+
6
+ ### `PageLayout` (default export)
7
+ Main layout component accepting the following props:
8
+
9
+ | Prop | Type | Default | Description |
10
+ |------|------|---------|-------------|
11
+ | `children` | `ReactNode` | — | Page content |
12
+ | `title` | `string` | — | Page heading |
13
+ | `subtitle` | `string` | — | Secondary heading |
14
+ | `image` | `{ src, alt? }` | — | Header image |
15
+ | `backButton` | `{ label?, onClick }` | — | Back navigation button |
16
+ | `actions` | `PageActionButton[]` | — | Action buttons rendered in the header |
17
+ | `actionsVariant` | `'icon-buttons' \| 'primary-buttons' \| 'menu-primary'` | `'icon-buttons'` | Controls button style/layout |
18
+ | `menuActions` | `ActionsMenuGroup[]` | — | Grouped dropdown menu actions |
19
+ | `selector` | `ReactNode` | — | Desktop-only slot (e.g. `TabSelector`) |
20
+ | `headerVariant` | `'plain' \| 'card'` | — | `card` adds background, border, and mobile padding |
21
+ | `showHeader` | `boolean` | `true` | Conditionally renders the header block |
22
+ | `className` | `string` | — | Outer wrapper class override |
23
+ | `contentClassName` | `string` | — | Content area class override |
24
+
25
+ ### Re-exports
26
+ - `TitleBlock` + `TitleBlockProps` — header sub-component
27
+ - `PageActionButton` — action button type
28
+
29
+ ## Usage Example
30
+
31
+ ```typescript
32
+ import { PageLayout } from './page-layout'
33
+
34
+ export default function SettingsPage() {
35
+ return (
36
+ <PageLayout
37
+ title="Settings"
38
+ subtitle="Manage your preferences"
39
+ backButton={{ label: 'Back', onClick: () => router.back() }}
40
+ actions={[{ label: 'Save', onClick: handleSave }]}
41
+ actionsVariant="primary-buttons"
42
+ headerVariant="card"
43
+ >
44
+ <SettingsForm />
45
+ </PageLayout>
46
+ )
47
+ }
48
+ ```
49
+
50
+ > When `actionsVariant="primary-buttons"`, the content area automatically gains `pb-28` on mobile to prevent overlap with sticky action buttons.
@@ -0,0 +1,42 @@
1
+ <!-- source-hash: ff0ecf9e6a81a5b5db96e020586aff9d -->
2
+ A client-side page header component that renders a title, optional subtitle, entity image, back button, and action controls in a responsive layout.
3
+
4
+ ## Key Components
5
+
6
+ - **`TitleBlockProps`** — Interface defining all configurable props including title, subtitle, image, navigation, actions, and visual variant
7
+ - **`TitleBlock`** — Main exported component handling layout for page-level headings with responsive behavior (`plain` vs `card` variants)
8
+ - **`variant`** — Controls visual treatment: `plain` (default, transparent) collapses `card` style (bordered, padded) on `md+` breakpoints
9
+
10
+ ## Usage Example
11
+
12
+ ```typescript
13
+ import { TitleBlock } from './title-block'
14
+
15
+ // Basic usage
16
+ <TitleBlock
17
+ title="Devices"
18
+ subtitle="Manage all enrolled devices"
19
+ backButton={{ label: 'Back', onClick: () => router.back() }}
20
+ actions={[
21
+ { label: 'Add Device', icon: PlusIcon, onClick: handleAdd },
22
+ ]}
23
+ actionsVariant="primary-buttons"
24
+ />
25
+
26
+ // With entity image and card variant (e.g. mobile-first detail pages)
27
+ <TitleBlock
28
+ title="Acme Corp"
29
+ subtitle="Enterprise Client"
30
+ image={{ src: '/logos/acme.png', alt: 'Acme Corp' }}
31
+ variant="card"
32
+ actions={[{ label: 'Edit', icon: EditIcon, onClick: handleEdit }]}
33
+ menuActions={[{ label: 'More', items: [...] }]}
34
+ selector={<TabSelector tabs={tabs} />}
35
+ />
36
+ ```
37
+
38
+ ## Notes
39
+
40
+ - The `selector` slot (e.g. a `TabSelector`) is desktop-only and rendered alongside actions
41
+ - Back button is hidden on mobile (`hidden md:inline-flex`)
42
+ - Title truncates with `title` attribute tooltip when content overflows
@@ -1,45 +1,54 @@
1
- <!-- source-hash: 275660d702885f476e326afc5abc6cbb -->
2
- A comprehensive skeleton loading component system that provides consistent card loading states across different layouts and variants in the application.
1
+ <!-- source-hash: b4a4c7c8c54bac836e374bc9dd198d5b -->
2
+ Reusable skeleton loading components for card UI elements, providing animated placeholder states that match the structure of vendor, blog, category, and alternative card layouts.
3
3
 
4
4
  ## Key Components
5
5
 
6
- - **CardSkeleton** - Main unified skeleton component supporting vendor, blog, category, and alternative card layouts
7
- - **CardSkeletonGrid** - Grid wrapper for displaying multiple skeleton cards with responsive layouts
8
- - **VendorCardContent** - Skeleton matching vendor cards with logo, title, description, and stats
9
- - **BlogCardContent** - Skeleton for blog posts with image, title, chips, and metadata
10
- - **CategoryCardContent** - Skeleton for category cards with icon grid and content
11
- - **AlternativeCardContent** - Skeleton for vendor comparison/alternative cards
6
+ | Export | Description |
7
+ |--------|-------------|
8
+ | `CardSkeleton` | Single card skeleton with variant-based layout rendering |
9
+ | `CardSkeletonGrid` | Responsive grid of `CardSkeleton` instances for list loading states |
10
+ | `CardSkeletonProps` | Interface defining variant, visibility toggles, and styling options |
11
+
12
+ **Internal sub-components (not exported):**
13
+
14
+ | Component | Mirrors |
15
+ |-----------|---------|
16
+ | `VendorCardContent` | Logo, title, category, description, stats, and tag |
17
+ | `BlogCardContent` | OG image, title chips, description, author, and date metadata |
18
+ | `CategoryCardContent` | Icon grid, title, description, and action button |
19
+ | `AlternativeCardContent` | Avatar, title, description, and optional action button |
12
20
 
13
21
  ## Usage Example
14
22
 
15
23
  ```typescript
16
- import { CardSkeleton, CardSkeletonGrid } from './card-skeleton'
24
+ import { CardSkeleton, CardSkeletonGrid } from "./card-skeleton"
17
25
 
18
- // Single vendor card skeleton
19
- <CardSkeleton
20
- variant="vendor"
21
- showActions={true}
22
- showMetadata={true}
23
- />
26
+ // Single skeleton while fetching one vendor
27
+ <CardSkeleton variant="vendor" showActions showMetadata />
24
28
 
25
- // Blog card grid while loading
26
- <CardSkeletonGrid
27
- count={6}
29
+ // Full loading grid for a blog listing page
30
+ <CardSkeletonGrid
28
31
  variant="blog"
29
- className="custom-grid"
32
+ count={4}
33
+ showActions={false}
34
+ showMetadata
35
+ className="my-8"
30
36
  />
31
37
 
32
- // Category cards with custom styling
33
- <CardSkeleton
38
+ // Category grid without custom container styling
39
+ <CardSkeletonGrid
34
40
  variant="category"
35
- containerClassName="bg-custom border-custom"
36
- />
37
-
38
- // Alternative vendor cards (no metadata)
39
- <CardSkeleton
40
- variant="alternative"
41
- showActions={false}
41
+ count={8}
42
+ containerClassName="bg-neutral-900 border border-neutral-700"
42
43
  />
43
44
  ```
44
45
 
45
- The component uses the unified skeleton system for consistent animations and styling, with each variant precisely matching the structure and dimensions of its corresponding real card component for seamless loading transitions.
46
+ ## Props Reference
47
+
48
+ | Prop | Type | Default | Description |
49
+ |------|------|---------|-------------|
50
+ | `variant` | `'vendor' \| 'blog' \| 'category' \| 'alternative'` | `'vendor'` | Card layout to replicate |
51
+ | `showActions` | `boolean` | `true` | Renders action button placeholder |
52
+ | `showMetadata` | `boolean` | `true` | Renders footer metadata placeholder |
53
+ | `containerClassName` | `string` | `bg-ods-card border border-ods-border` | Overrides card container background and border |
54
+ | `count` *(grid only)* | `number` | `6` | Number of skeleton cards to render |
@@ -1,43 +1,47 @@
1
- <!-- source-hash: 683fe375c683dcca047380ff0dd11c94 -->
2
- A React TypeScript component providing loading skeleton placeholders for device cards and device grids, maintaining exact layout dimensions to prevent content jumping during data loading.
1
+ <!-- source-hash: 778a7f2774363f614672d36f1704ffb9 -->
2
+ Loading skeleton component that mimics the exact layout of a `DeviceCard` to prevent layout shifts during data fetching.
3
3
 
4
4
  ## Key Components
5
5
 
6
- - **`DeviceCardSkeleton`** - Individual device card loading skeleton with three-row layout (device info, OS/organization, status/last seen)
7
- - **`DeviceCardSkeletonGrid`** - Responsive grid container for multiple device card skeletons with configurable count
8
- - **`DeviceCardSkeletonProps`** - Interface defining optional className prop for styling customization
9
- - **`OrganizationIconSkeleton`** - Imported component for organization icon placeholder
6
+ ### `DeviceCardSkeleton`
7
+ A single animated placeholder card matching the three-row `DeviceCard` structure:
8
+ - **Row 1:** Device icon + device name + more button
9
+ - **Row 2:** OS badge + organization icon + organization name
10
+ - **Row 3:** Status badge + last seen timestamp
11
+
12
+ | Prop | Type | Description |
13
+ |------|------|-------------|
14
+ | `className` | `string?` | Additional CSS classes |
15
+
16
+ ### `DeviceCardSkeletonGrid`
17
+ Renders a responsive grid of `DeviceCardSkeleton` instances, matching the `DevicesGrid` responsive column layout.
18
+
19
+ | Prop | Type | Default | Description |
20
+ |------|------|---------|-------------|
21
+ | `count` | `number?` | `12` | Number of skeleton cards to render |
22
+ | `className` | `string?` | — | Additional CSS classes |
23
+
24
+ **Responsive columns:** 1 → 2 (md) → 4 (lg)
10
25
 
11
26
  ## Usage Example
12
27
 
13
28
  ```typescript
14
- import { DeviceCardSkeleton, DeviceCardSkeletonGrid } from './device-card-skeleton'
29
+ // Single skeleton card
30
+ import { DeviceCardSkeleton } from "./device-card-skeleton"
15
31
 
16
- // Single device card skeleton
17
- function LoadingDevice() {
18
- return <DeviceCardSkeleton className="mb-4" />
32
+ function DeviceDetailLoader() {
33
+ return <DeviceCardSkeleton className="max-w-sm" />
19
34
  }
20
35
 
21
- // Grid of device skeletons while loading
22
- function DevicesLoadingView() {
23
- return (
24
- <div className="p-4">
25
- <DeviceCardSkeletonGrid
26
- count={8}
27
- className="mt-6"
28
- />
29
- </div>
30
- )
31
- }
36
+ // Full grid during page load
37
+ import { DeviceCardSkeletonGrid } from "./device-card-skeleton"
32
38
 
33
- // Conditional rendering during data fetch
34
39
  function DevicesPage({ isLoading, devices }) {
35
40
  if (isLoading) {
36
- return <DeviceCardSkeletonGrid count={12} />
41
+ return <DeviceCardSkeletonGrid count={8} />
37
42
  }
38
-
39
43
  return <DevicesGrid devices={devices} />
40
44
  }
41
45
  ```
42
46
 
43
- The skeleton components use CSS animations and semantic ARIA labels for accessibility, with responsive breakpoints matching the actual device grid layout (1-4 columns based on screen size).
47
+ > Both components include ARIA attributes (`role="status"` and `aria-label`) for screen reader accessibility during loading states.