@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,58 @@
1
+ <!-- source-hash: 9d75df8f934797fae402329b05b9e8c2 -->
2
+ Provides a React context for sharing API endpoint URLs across the component tree, enabling host applications (including reverse-proxy deployments) to override canonical paths consumed by `oss-lib` components.
3
+
4
+ ## Key Components
5
+
6
+ | Export | Type | Description |
7
+ |--------|------|-------------|
8
+ | `EndpointsRuntime` | `interface` | Shape of the runtime value: `announcementsUrl`, `accessCode.validateUrl`, `accessCode.consumeUrl`, `contactUrl` |
9
+ | `EndpointsRuntimeContext` | `Context<EndpointsRuntime \| null>` | Raw React context — use directly only when mounting a `Provider` |
10
+ | `useEndpointsRuntime()` | hook | Returns `null` when no provider is mounted; safe for optional consumers |
11
+ | `useRequiredEndpointsRuntime()` | hook | Throws a descriptive error when no provider is mounted; use for form submissions and code validation |
12
+
13
+ ## Usage Example
14
+
15
+ ```typescript
16
+ // Hub root — canonical paths
17
+ <EndpointsRuntimeContext.Provider
18
+ value={React.useMemo(() => ({
19
+ announcementsUrl: '/api/announcements/active',
20
+ accessCode: {
21
+ validateUrl: '/api/access-codes/validate',
22
+ consumeUrl: '/api/access-codes/consume',
23
+ },
24
+ contactUrl: '/api/contact',
25
+ }), [])}
26
+ >
27
+ <App />
28
+ </EndpointsRuntimeContext.Provider>
29
+
30
+ // Embedded app — proxied paths (e.g. user1.openframe.ai)
31
+ <EndpointsRuntimeContext.Provider
32
+ value={React.useMemo(() => ({
33
+ announcementsUrl: '/api/mingo-guide/announcements/active',
34
+ accessCode: {
35
+ validateUrl: '/api/mingo-guide/access-codes/validate',
36
+ consumeUrl: '/api/mingo-guide/access-codes/consume',
37
+ },
38
+ contactUrl: '/api/mingo-guide/contact',
39
+ }), [])}
40
+ >
41
+ <EmbeddedApp />
42
+ </EndpointsRuntimeContext.Provider>
43
+
44
+ // Optional consumer (silently skips when outside provider)
45
+ const endpoints = useEndpointsRuntime()
46
+ if (endpoints) poll(endpoints.announcementsUrl)
47
+
48
+ // Required consumer (throws outside provider)
49
+ const { contactUrl } = useRequiredEndpointsRuntime()
50
+ await fetch(contactUrl, { method: 'POST', body })
51
+
52
+ // Tests / Storybook
53
+ <EndpointsRuntimeContext.Provider value={mockedEndpoints}>
54
+ <ComponentUnderTest />
55
+ </EndpointsRuntimeContext.Provider>
56
+ ```
57
+
58
+ > **Embedders:** always `useMemo` the value object passed to the provider. A new object reference on every render invalidates downstream `useEffect` dependency arrays and triggers unnecessary re-fetches.
@@ -0,0 +1,53 @@
1
+ <!-- source-hash: 16840d639c023ac4c1efa4df208dc4be -->
2
+ Barrel export for runtime React contexts used by embeddable OSS-lib components, enforcing a client-only bundle boundary to prevent SSR crashes.
3
+
4
+ ## Key Components
5
+
6
+ | Export | Source | Description |
7
+ |--------|--------|-------------|
8
+ | `EndpointsRuntimeContext` | `endpoints-runtime-context` | React context object for endpoints runtime |
9
+ | `useEndpointsRuntime` | `endpoints-runtime-context` | Hook returning the current endpoints runtime (nullable) |
10
+ | `useRequiredEndpointsRuntime` | `endpoints-runtime-context` | Hook returning the endpoints runtime, throwing if absent |
11
+ | `EndpointsRuntime` | `endpoints-runtime-context` | TypeScript type for the endpoints runtime shape |
12
+ | `ChatRuntimeContext` | `chat-runtime-context` | React context object for chat runtime |
13
+ | `useChatRuntime` | `chat-runtime-context` | Hook returning the current chat runtime (nullable) |
14
+ | `useRequiredChatRuntime` | `chat-runtime-context` | Hook returning the chat runtime, throwing if absent |
15
+ | `ChatRuntime` | `chat-runtime-context` | TypeScript type for the chat runtime shape |
16
+ | `useOuterOrDefault` | `use-outer-or-default` | Utility hook for resolving outer context or falling back to a default |
17
+
18
+ ## Usage Example
19
+
20
+ ```typescript
21
+ import {
22
+ EndpointsRuntimeContext,
23
+ useRequiredEndpointsRuntime,
24
+ useChatRuntime,
25
+ type ChatRuntime,
26
+ } from '@your-org/oss-lib/contexts'
27
+
28
+ // Provide a runtime at the tree root
29
+ function AppRoot() {
30
+ return (
31
+ <EndpointsRuntimeContext.Provider value={myEndpointsRuntime}>
32
+ <ChatPanel />
33
+ </EndpointsRuntimeContext.Provider>
34
+ )
35
+ }
36
+
37
+ // Consume in a child component (must be a Client Component)
38
+ function ChatPanel() {
39
+ const endpoints = useRequiredEndpointsRuntime() // throws if missing
40
+ const chat: ChatRuntime | null = useChatRuntime() // null-safe
41
+ // ...
42
+ }
43
+ ```
44
+
45
+ ## Bundle-Split Rules
46
+
47
+ > **Never import from `src/contexts/`** inside server-bundled modules (`utils/index.ts` and its transitive exports). All contexts call `createContext()` at module top-level, which crashes SSR. See `utils/access-code-client.ts` vs `hooks/use-access-code-integration.ts` as the canonical split pattern.
48
+
49
+ | Code type | Goes in |
50
+ |-----------|---------|
51
+ | Pure functions with runtime as args | `utils/` |
52
+ | Hooks that read runtime via `useContext` | `hooks/` (with `'use client'`) |
53
+ | Context objects / providers | `contexts/` (client bundle only) |
@@ -0,0 +1,36 @@
1
+ <!-- source-hash: d7ee3e1b5c0c5cbc9cc3e58aa144f151 -->
2
+ Resolves a React context value by preferring an outer provider's value when present, falling back to a memoized factory default when no outer provider exists.
3
+
4
+ ## Key Components
5
+
6
+ ### `useOuterOrDefault<T>(context, factory, deps)`
7
+
8
+ A generic hook that enables "outer-override" provider patterns used across hub and embedder providers.
9
+
10
+ | Parameter | Type | Description |
11
+ |-----------|------|-------------|
12
+ | `context` | `Context<T \| null>` | The React context to read from |
13
+ | `factory` | `() => T` | Produces the default value when no outer provider is mounted |
14
+ | `deps` | `ReadonlyArray<unknown>` | Memoization dependencies for `factory` (defaults to `[]`) |
15
+
16
+ **Returns:** The outer context value if available, otherwise the memoized factory result.
17
+
18
+ ## Usage Example
19
+
20
+ ```typescript
21
+ // Stable default (factory runs once — safe for constant/module-scope values)
22
+ const runtime = useOuterOrDefault(ChatRuntimeContext, () => createDefaultRuntime())
23
+
24
+ // Reactive default (factory re-runs when callbacks change)
25
+ const runtime = useOuterOrDefault(
26
+ ChatRuntimeContext,
27
+ () => createChatRuntime({ navigate, decideNewTab }),
28
+ [navigate, decideNewTab], // must be stable refs (e.g. from useCallback)
29
+ )
30
+ ```
31
+
32
+ ## Key Behaviors
33
+
34
+ - **Tree shape stability** — the same provider element renders at the same position regardless of whether an outer provider is mounted, preventing unnecessary consumer remounts.
35
+ - **Reference stability** — returns the same object reference across renders to avoid breaking downstream `useMemo` consumers. With `deps: []` this is trivially guaranteed; with reactive deps, callers must stabilize deps via `useCallback`.
36
+ - **Outer wins** — if an embedder mounts a matching provider above the hub provider, that outer value takes precedence unconditionally.
@@ -0,0 +1,45 @@
1
+ <!-- source-hash: a9946becafacc3106b896d97c9d39009 -->
2
+ Barrel export file for the `embed-shims/` module, providing environment-aware shims for Next.js primitives (`Image`, `Link`, `dynamic`, and navigation hooks) that work in any host environment (Vite, CRA, esbuild) while allowing full Next.js optimization via opt-in registration.
3
+
4
+ ## Key Components
5
+
6
+ | Export | Source | Description |
7
+ |--------|--------|-------------|
8
+ | `Image` / `registerImage` | `./next-image` | Next.js Image Optimization shim |
9
+ | `Link` / `registerLink` | `./next-link` | Client-router prefetching shim |
10
+ | `dynamic` / `registerDynamic` | `./next-dynamic` | Dynamic import shim |
11
+ | `useRouter`, `usePathname`, `useSearchParams`, `useParams` | `./next-navigation` | Navigation hooks shim |
12
+ | `redirect`, `permanentRedirect`, `notFound`, `RedirectType` | `./next-navigation` | Navigation utilities shim |
13
+ | `registerNavigation` / `NavigationImpl` | `./next-navigation` | Navigation registration and type |
14
+
15
+ ## Usage Example
16
+
17
+ **Default (non-Next host — Vite, CRA, esbuild):**
18
+
19
+ ```typescript
20
+ import { Link, Image, dynamic, useRouter } from '@flamingo-stack/openframe-frontend-core/embed-shims'
21
+
22
+ // Works out of the box with plain HTML equivalents — no config needed
23
+ ```
24
+
25
+ **Next.js host — register real implementations once at app init:**
26
+
27
+ ```typescript
28
+ import { registerImage, registerLink, registerDynamic, registerNavigation } from '@flamingo-stack/openframe-frontend-core/embed-shims'
29
+ import NextImage from 'next/image'
30
+ import NextLink from 'next/link'
31
+ import * as NextNavigation from 'next/navigation'
32
+
33
+ registerImage(NextImage)
34
+ registerLink(NextLink)
35
+ registerDynamic(/* next/dynamic */)
36
+ registerNavigation(NextNavigation)
37
+ // All lib components now delegate to real Next.js primitives
38
+ ```
39
+
40
+ **Per-shim import:**
41
+
42
+ ```typescript
43
+ import Link from '@flamingo-stack/openframe-frontend-core/embed-shims/next-link'
44
+ import Image from '@flamingo-stack/openframe-frontend-core/embed-shims/next-image'
45
+ ```
@@ -0,0 +1,43 @@
1
+ <!-- source-hash: d56fe778d5cc9e99389a419b59c5dcc9 -->
2
+ Environment-aware lazy loader shim that defaults to `React.lazy` for non-Next.js hosts (Vite, esbuild, CRA) while supporting opt-in delegation to the real `next/dynamic` in Next.js environments.
3
+
4
+ ## Key Components
5
+
6
+ | Export | Type | Description |
7
+ |--------|------|-------------|
8
+ | `dynamic` | Default export | Drop-in lazy loader; delegates to `React.lazy` or registered `next/dynamic` |
9
+ | `registerDynamic` | Named export | One-time registration to swap in the real `next/dynamic` at app init |
10
+ | `DynamicOptions` | Interface | Subset of `next/dynamic` options (`loading`, `ssr`, `suspense`) |
11
+ | `DynamicLoader<P>` | Type | Loader function returning `{ default: ComponentType }` or bare component |
12
+
13
+ ## Usage Example
14
+
15
+ **Non-Next.js host (Vite/CRA) — no setup required:**
16
+
17
+ ```typescript
18
+ import dynamic from '@flamingo-stack/openframe-frontend-core/next-dynamic'
19
+
20
+ // Callers must be wrapped in a <Suspense> boundary
21
+ const HeavyWidget = dynamic(() => import('./HeavyWidget'))
22
+ ```
23
+
24
+ **Next.js host — register once at app init:**
25
+
26
+ ```typescript
27
+ // lib/embed-shim-registration.ts
28
+ import nextDynamic from 'next/dynamic'
29
+ import { registerDynamic } from '@flamingo-stack/openframe-frontend-core/embed-shims'
30
+
31
+ registerDynamic(nextDynamic)
32
+ ```
33
+
34
+ **With options (Next.js only — ignored on React.lazy fallback):**
35
+
36
+ ```typescript
37
+ const Chart = dynamic(() => import('./Chart'), {
38
+ ssr: false,
39
+ loading: ({ isLoading }) => isLoading ? <Spinner /> : null,
40
+ })
41
+ ```
42
+
43
+ > **Note:** `ssr` and `loading` options are silently ignored when running on the `React.lazy` fallback. Consumers relying on those options must call `registerDynamic` first. All call sites must have a `<Suspense>` boundary in the component tree.
@@ -0,0 +1,45 @@
1
+ <!-- source-hash: 38660f97f3dee9cba42a817ae6b6490d -->
2
+ Environment-aware `next/image` shim that renders a plain `<img>` by default, delegating to the real `next/image` component only when explicitly registered — allowing library components to work across Next.js, Vite, CRA, and esbuild hosts without aliasing.
3
+
4
+ ## Key Components
5
+
6
+ | Export | Type | Description |
7
+ |--------|------|-------------|
8
+ | `Image` | `React.ForwardRefExoticComponent` | Default export; the shim component. Renders `<img>` or delegates to registered `next/image` |
9
+ | `registerImage` | `(component: ComponentType) => void` | Registers the real `next/image` implementation; call once at app init in Next.js hosts |
10
+ | `ImageProps` | `type` | Extended image props supporting both HTML `<img>` attributes and Next.js-specific props |
11
+
12
+ ### `ImageProps` Next.js-specific fields
13
+
14
+ `fill`, `sizes`, `quality`, `priority`, `placeholder`, `blurDataURL`, `unoptimized`, `loader`, `onLoadingComplete`
15
+
16
+ ## Usage Example
17
+
18
+ **Non-Next host (Vite/CRA)** — no setup required:
19
+
20
+ ```typescript
21
+ import Image from './next-image'
22
+
23
+ // Renders a plain <img> automatically
24
+ <Image src="/hero.png" alt="Hero" width={800} height={400} />
25
+ ```
26
+
27
+ **Next.js host** — register once at app init:
28
+
29
+ ```typescript
30
+ // lib/embed-shim-registration.ts
31
+ import NextImage from 'next/image'
32
+ import { registerImage } from '@flamingo-stack/openframe-frontend-core/embed-shims'
33
+
34
+ registerImage(NextImage) // All shim instances now delegate to next/image
35
+ ```
36
+
37
+ **`fill` mode fallback behavior:**
38
+
39
+ ```typescript
40
+ // When unregistered, `fill` maps to absolute positioning via inline style
41
+ <Image src="/bg.png" alt="Background" fill />
42
+ // Renders: <img style="position:absolute; inset:0; width:100%; height:100%; object-fit:cover" />
43
+ ```
44
+
45
+ > **Note:** Next.js-only props (`priority`, `placeholder`, `blurDataURL`, `loader`, etc.) are silently dropped on the plain `<img>` fallback path — no runtime errors in non-Next environments.
@@ -0,0 +1,59 @@
1
+ <!-- source-hash: 0eb3ce12c588e5ff9c30c2f3550ce64f -->
2
+ Environment-aware `next/link` shim that renders a plain `<a>` tag by default, enabling use in non-Next.js hosts (Vite, CRA, esbuild), while allowing full `next/link` functionality via opt-in registration.
3
+
4
+ ## Key Components
5
+
6
+ | Export | Type | Description |
7
+ |--------|------|-------------|
8
+ | `Link` | `ForwardRefExoticComponent` | Default export — the shim component itself |
9
+ | `registerLink` | `(component: ComponentType) => void` | Registers the real `next/link` at app init |
10
+ | `LinkProps` | `type` | Extended anchor props including Next.js-specific options (`prefetch`, `replace`, `scroll`, `locale`, etc.) |
11
+
12
+ ## Behavior
13
+
14
+ ```mermaid
15
+ graph TD
16
+ A["Link shim renders"] --> B{"impl registered?"}
17
+ B -- Yes --> C["Delegate to real next/link\n(all props intact)"]
18
+ B -- No --> D["Render plain anchor tag\n(Next-only props dropped)"]
19
+ D --> E["UrlObject href → pathname string"]
20
+ ```
21
+
22
+ ## Usage Example
23
+
24
+ **Non-Next.js host (default fallback — no setup needed):**
25
+
26
+ ```typescript
27
+ import Link from './next-link'
28
+
29
+ // Renders a plain <a href="/about">
30
+ <Link href="/about">About</Link>
31
+ ```
32
+
33
+ **Next.js host — register once at app init:**
34
+
35
+ ```typescript
36
+ // lib/embed-shim-registration.ts
37
+ import NextLink from 'next/link'
38
+ import { registerLink } from '@flamingo-stack/openframe-frontend-core/embed-shims'
39
+
40
+ registerLink(NextLink)
41
+ ```
42
+
43
+ **After registration — full Next.js routing features work:**
44
+
45
+ ```typescript
46
+ import Link from './next-link'
47
+
48
+ // Delegates to real next/link with prefetch, replace, scroll, locale
49
+ <Link href="/dashboard" prefetch replace scroll={false} locale="en">
50
+ Dashboard
51
+ </Link>
52
+
53
+ // UrlObject href also supported
54
+ <Link href={{ pathname: '/user', query: { id: '42' } }}>
55
+ Profile
56
+ </Link>
57
+ ```
58
+
59
+ > **Note:** `registerLink` must be called exactly once before any shim renders. In the fallback path, Next.js-specific props (`prefetch`, `replace`, `scroll`, `shallow`, `locale`, etc.) are silently dropped to keep the plain `<a>` clean.
@@ -0,0 +1,59 @@
1
+ <!-- source-hash: 6464e6b8e81567378d067bf37a01cd1c -->
2
+ Environment-aware shim for `next/navigation` app-router hooks. Provides lightweight `window.location`-backed stubs by default, with an opt-in registration mechanism for full Next.js router integration in host applications.
3
+
4
+ ## Key Components
5
+
6
+ ### `registerNavigation(nav)`
7
+ Merges real `next/navigation` exports into the internal registry. Call once at app init in a Next.js host to enable full client-router integration.
8
+
9
+ ### `NavigationImpl` (interface)
10
+ Describes the full set of registerable hooks: `useRouter`, `usePathname`, `useSearchParams`, `useParams`, `redirect`, `permanentRedirect`, `notFound`.
11
+
12
+ ### Exported Hooks & Utilities
13
+
14
+ | Export | Stub Behavior |
15
+ |---|---|
16
+ | `useRouter()` | `push`/`replace` → `window.location`; `back`/`forward` → `history`; `refresh` → `reload` |
17
+ | `usePathname()` | Returns `window.location.pathname`, popstate-subscribed |
18
+ | `useSearchParams()` | Returns `URLSearchParams` from `window.location.search`, popstate-subscribed |
19
+ | `useParams<T>()` | Returns `{}` — parse params from `usePathname()` manually |
20
+ | `redirect(url)` | `window.location.assign(url)` + throws |
21
+ | `permanentRedirect(url)` | `window.location.replace(url)` + throws |
22
+ | `notFound()` | Throws with shim message |
23
+ | `RedirectType` | Mirrors Next's enum (`push` / `replace`) |
24
+ | `ServerInsertedHTMLContext` | `null` stub — importable, non-functional |
25
+
26
+ ## Usage Example
27
+
28
+ ```typescript
29
+ // In a Next.js host — lib/embed-shim-registration.ts
30
+ import {
31
+ useRouter, usePathname, useSearchParams,
32
+ useParams, redirect, permanentRedirect, notFound,
33
+ } from 'next/navigation'
34
+ import { registerNavigation } from '@flamingo-stack/openframe-frontend-core/embed-shims'
35
+
36
+ // Call ONCE at app init — partial registration is safe
37
+ registerNavigation({
38
+ useRouter,
39
+ usePathname,
40
+ useSearchParams,
41
+ useParams,
42
+ redirect,
43
+ permanentRedirect,
44
+ notFound,
45
+ })
46
+ ```
47
+
48
+ ```typescript
49
+ // In a lib component — works in both Next.js and standalone embed
50
+ import { usePathname, useSearchParams } from './next-navigation'
51
+
52
+ export function ActiveRoute() {
53
+ const pathname = usePathname()
54
+ const params = useSearchParams()
55
+ return <span>{pathname}?{params.toString()}</span>
56
+ }
57
+ ```
58
+
59
+ > **Note:** The fallback stubs only react to `popstate` events. Programmatic `pushState`/`replaceState` calls will **not** trigger re-renders without a registered real router.
@@ -1,43 +1,48 @@
1
- <!-- source-hash: 5571a4440f18dbeb10c86804976c24b1 -->
2
- This file serves as the main export barrel for all React hooks used throughout the application, providing a centralized access point for UI interactions, state management, API calls, and real-time messaging functionality.
1
+ <!-- source-hash: 23bacbbf103fe8e3ffb15ca1d779391b -->
2
+ Central barrel export file for the hooks package, re-exporting all custom React hooks organized by domain.
3
3
 
4
4
  ## Key Components
5
5
 
6
- ### Core Hook Categories
7
- - **UI Hooks** - Interface and user interaction utilities
8
- - **Platform Hooks** - Platform-specific functionality and integrations
9
- - **Toast System** - Notification and alert management
10
- - **Contact Submission** - Form handling for user contact flows
11
- - **Quick Action Hints** - User guidance and tooltip system
12
- - **API Stubs** - Mock or development API interfaces
13
-
14
- ### Specialized Features
15
- - **Image Authentication** - Secure image loading and batch processing hooks
16
- - **URL State Management** - Browser state synchronization utilities
17
- - **Product Releases API** - Hooks for fetching and managing product version data
18
- - **NATS Client** - Real-time messaging and event streaming integration
6
+ | Export Module | Description |
7
+ |---------------|-------------|
8
+ | `./ui` | UI interaction hooks |
9
+ | `./platform` | Platform-specific hooks |
10
+ | `./use-toast` | Toast notification hook |
11
+ | `./use-contact-submission` | Contact form submission hook |
12
+ | `./use-quick-action-hint` | Quick action hint display hook |
13
+ | `./use-copy-to-clipboard` | Clipboard write hook |
14
+ | `./use-batch-images` | Authenticated batch image loading |
15
+ | `./use-authenticated-image` | Single authenticated image hook |
16
+ | `./state` | URL state management hooks |
17
+ | `./nats/use-nats-client` | NATS messaging client hook |
18
+ | `./use-near-viewport` | Shared IntersectionObserver lazy-mount primitive |
19
+ | `./use-access-code-integration` | Access code context integration (client-only) |
20
+ | `./use-og-placeholder` | OG placeholder URL builder hook |
19
21
 
20
22
  ## Usage Example
21
23
 
22
24
  ```typescript
25
+ // Import any hook directly from the hooks package root
23
26
  import {
24
27
  useToast,
25
- useContactSubmission,
26
- useAuthenticatedImage,
27
- useProductReleases,
28
- useNatsClient
29
- } from './hooks'
28
+ useCopyToClipboard,
29
+ useNatsClient,
30
+ useNearViewport,
31
+ useAccessCodeIntegration,
32
+ } from '@flamingo/hooks'
30
33
 
31
34
  function MyComponent() {
32
- const { showToast } = useToast()
33
- const { submitContact, isLoading } = useContactSubmission()
34
- const { imageUrl, isAuthenticated } = useAuthenticatedImage('/api/secure-image')
35
- const { releases, refetch } = useProductReleases()
36
- const { client, isConnected } = useNatsClient()
37
-
38
- // Use hooks for various application features
39
- return <div>...</div>
35
+ const { toast } = useToast()
36
+ const { copy } = useCopyToClipboard()
37
+ const nats = useNatsClient()
38
+ const ref = useNearViewport()
39
+
40
+ return <div ref={ref}>...</div>
40
41
  }
41
42
  ```
42
43
 
43
- This barrel export pattern enables clean imports and maintains a single source of truth for all hook dependencies across the application.
44
+ ## Notes
45
+
46
+ - `use-access-code-integration` is intentionally placed in `hooks/` rather than `utils/` to keep React context dependencies out of the server-safe utilities bundle.
47
+ - `use-near-viewport` uses a shared `IntersectionObserver` singleton to minimize DOM overhead across lazy-mounted components.
48
+ - Image hooks (`use-batch-images`, `use-authenticated-image`) handle auth token injection for protected media endpoints.
@@ -0,0 +1,49 @@
1
+ <!-- source-hash: 0cad99bc77f5a6b497a57ffae290c55d -->
2
+ React hook that binds access-code endpoint URLs from `EndpointsRuntimeContext` to the pure `access-code-client` utilities, exposing loading-state-aware wrappers for validating and consuming access codes without requiring callers to manage endpoint plumbing.
3
+
4
+ ## Key Components
5
+
6
+ ### `useAccessCodeIntegration()`
7
+
8
+ The sole export. Reads endpoints from `useRequiredEndpointsRuntime()` (throws if no provider is mounted) and returns:
9
+
10
+ | Field | Type | Description |
11
+ |---|---|---|
12
+ | `validate` | `(email, code) => Promise` | Validates the code without consuming it |
13
+ | `consume` | `(email, code) => Promise` | Consumes the code without re-validating |
14
+ | `validateAndConsume` | `(email, code) => Promise` | One-step validate-then-consume |
15
+ | `isValidating` | `boolean` | A validate call is in flight |
16
+ | `isConsuming` | `boolean` | A consume call is in flight |
17
+ | `isProcessing` | `boolean` | Convenience alias: `isValidating \|\| isConsuming` |
18
+
19
+ > **Note:** The returned functions and object are **not memoized** — they are re-created each render. Wrap with `useCallback` / `useMemo` at the call site if stable identities are needed in effect dependency arrays.
20
+
21
+ ## Usage Example
22
+
23
+ ```typescript
24
+ const { validate, consume, validateAndConsume, isProcessing } =
25
+ useAccessCodeIntegration();
26
+
27
+ const handleRegistration = async (formData: RegistrationForm) => {
28
+ const result = await validate(formData.email, formData.accessCode);
29
+
30
+ if (!result.valid) {
31
+ setError(result.message);
32
+ return;
33
+ }
34
+
35
+ const registration = await registerUser(formData);
36
+
37
+ if (registration.success) {
38
+ await consume(formData.email, formData.accessCode);
39
+ }
40
+ };
41
+
42
+ // Or as a single atomic operation:
43
+ const handleInviteFlow = async (email: string, code: string) => {
44
+ const result = await validateAndConsume(email, code);
45
+ if (!result.valid) setError(result.message);
46
+ };
47
+ ```
48
+
49
+ Use `isProcessing` to disable submit buttons or show spinners during any in-flight operation, and `isValidating` / `isConsuming` independently when the UI distinguishes between the two phases.
@@ -1,13 +1,29 @@
1
- <!-- source-hash: 7a5064abe11480f3e1148317ad4cc605 -->
2
- A React hook that manages contact form submissions with loading states, toast notifications, and automatic redirect handling.
1
+ <!-- source-hash: 76fefb8d1dd3113ac55a32017a2a8fe1 -->
2
+ React hook that manages contact form submission state, API communication, toast notifications, and post-submission routing for the `/api/contact` endpoint.
3
3
 
4
4
  ## Key Components
5
5
 
6
- - **`useContactSubmission`** - Main hook that provides contact form submission functionality
7
- - **`ContactSubmissionOptions`** - Configuration interface for customizing behavior (userId, redirect URL, success message, callback)
8
- - **`ContactFormData`** - Type definition for contact form fields (name, email, company size, referral source, help category, message)
9
- - **`submit`** - Async function that handles form submission to `/api/contact` endpoint
10
- - **State management** - Tracks `isSubmitting`, `isSuccess` states and handles automatic redirects
6
+ ### `ContactSubmissionOptions`
7
+ Configuration interface for hook behavior:
8
+ - `userId` optional authenticated user identifier appended to the payload
9
+ - `successRedirectUrl` destination after successful submission (supports absolute URLs and internal paths)
10
+ - `successToastMessage` appends custom text to the default success toast
11
+ - `onSuccess` — optional callback fired after successful submission
12
+
13
+ ### `ContactFormData`
14
+ Mirrors the `ContactBaseSchema` Zod contract on the server. Required fields are `name`, `email`, `helpCategory`, and `message`. Includes an index signature (`[key: string]: unknown`) so tracking metadata (`utm_*`, `rdt_cid`, `referrer_url`) and A/B variant fields pass through unchanged.
15
+
16
+ ### `useContactSubmission(options)`
17
+ The exported hook. Pulls `contactUrl` from `useRequiredEndpointsRuntime` (throws if no provider is mounted), then returns:
18
+
19
+ | Return Value | Type | Description |
20
+ |---|---|---|
21
+ | `submit` | `(formData: ContactFormData) => Promise<void>` | Sends POST request; shows toast on success or error |
22
+ | `isSubmitting` | `boolean` | True while the fetch is in-flight |
23
+ | `isSuccess` | `boolean` | True after a successful response |
24
+ | `setIsSuccess` | `Dispatch<SetStateAction<boolean>>` | Allows caller to manually reset success state |
25
+
26
+ Redirect logic waits 1500ms after `isSuccess` before navigating — using `window.location.href` for absolute URLs and `router.push` for relative paths.
11
27
 
12
28
  ## Usage Example
13
29
 
@@ -16,33 +32,28 @@ import { useContactSubmission } from './use-contact-submission';
16
32
 
17
33
  function ContactForm() {
18
34
  const { submit, isSubmitting, isSuccess } = useContactSubmission({
19
- userId: 'user-123',
35
+ userId: currentUser?.id,
20
36
  successRedirectUrl: '/thank-you',
21
- successToastMessage: 'We will get back to you within 24 hours.',
22
- onSuccess: () => console.log('Form submitted successfully!')
37
+ successToastMessage: 'Our team will respond within 24 hours.',
38
+ onSuccess: () => analytics.track('contact_submitted'),
23
39
  });
24
40
 
25
41
  const handleSubmit = async (e: React.FormEvent) => {
26
42
  e.preventDefault();
27
-
28
- const formData = {
29
- name: 'John Doe',
30
- email: 'john@example.com',
31
- companySize: '1-10',
32
- referralSource: 'Google',
33
- helpCategory: 'Support',
34
- message: 'Need help with implementation'
35
- };
36
-
37
- try {
38
- await submit(formData);
39
- } catch (error) {
40
- // Handle error if needed
41
- }
43
+ await submit({
44
+ name: 'Jane Smith',
45
+ email: 'jane@acme.com',
46
+ helpCategory: 'billing',
47
+ message: 'I have a question about my invoice.',
48
+ // Tracking fields forwarded transparently
49
+ utm_source: 'homepage',
50
+ rdt_cid: 'abc123',
51
+ });
42
52
  };
43
53
 
44
54
  return (
45
55
  <form onSubmit={handleSubmit}>
56
+ {/* form fields */}
46
57
  <button type="submit" disabled={isSubmitting}>
47
58
  {isSubmitting ? 'Sending...' : 'Send Message'}
48
59
  </button>
@@ -51,4 +62,4 @@ function ContactForm() {
51
62
  }
52
63
  ```
53
64
 
54
- The hook automatically handles success toast notifications, optional redirects after a 1.5-second delay, and follows the same pattern as `useWaitlistRegistration` for consistency across the application.
65
+ > **Note:** This hook requires `EndpointsRuntimeProvider` to be mounted in the component tree. The hub supplies the default contact endpoint; embedded apps provide a proxied path via the same context.