@signalflare-ai/ui 0.5.0 → 1.1.0

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 (316) hide show
  1. package/CHANGELOG.md +129 -1
  2. package/ai/USAGE.md +64 -0
  3. package/ai/component-registry.json +563 -619
  4. package/ai/component-registry.md +224 -85
  5. package/ai/schemas.ts +545 -102
  6. package/bin/sf.js +2 -3
  7. package/dist/.build-complete +1 -1
  8. package/dist/ai/schemas.d.ts +1659 -5532
  9. package/dist/ai/schemas.d.ts.map +1 -1
  10. package/dist/{ai-actions-DG1dhDMP.js → ai-actions-DSVeQn4e.js} +1 -1
  11. package/dist/{ai-actions-DG1dhDMP.js.map → ai-actions-DSVeQn4e.js.map} +1 -1
  12. package/dist/{ai-agent-card-BbtL4NII.js → ai-agent-card-BXHwhWAU.js} +1 -1
  13. package/dist/{ai-agent-card-BbtL4NII.js.map → ai-agent-card-BXHwhWAU.js.map} +1 -1
  14. package/dist/{ai-approval-Mb7-BY6i.js → ai-approval-aa0qvjFN.js} +1 -1
  15. package/dist/{ai-approval-Mb7-BY6i.js.map → ai-approval-aa0qvjFN.js.map} +1 -1
  16. package/dist/{ai-code-block-BI_z0UVR.js → ai-code-block-BgtIxtZZ.js} +1 -1
  17. package/dist/{ai-code-block-BI_z0UVR.js.map → ai-code-block-BgtIxtZZ.js.map} +1 -1
  18. package/dist/{ai-conversation-DYtExcrw.js → ai-conversation-CArP7C8K.js} +1 -1
  19. package/dist/{ai-conversation-DYtExcrw.js.map → ai-conversation-CArP7C8K.js.map} +1 -1
  20. package/dist/{ai-info-banner-BpzauUAY.js → ai-info-banner-uFxHHwBA.js} +1 -1
  21. package/dist/{ai-info-banner-BpzauUAY.js.map → ai-info-banner-uFxHHwBA.js.map} +1 -1
  22. package/dist/{ai-message-CV8SBoHM.js → ai-message-BjnFznXy.js} +1 -1
  23. package/dist/{ai-message-CV8SBoHM.js.map → ai-message-BjnFznXy.js.map} +1 -1
  24. package/dist/{ai-mission-header-ByYkJ6YP.js → ai-mission-header-08__gULL.js} +1 -1
  25. package/dist/{ai-mission-header-ByYkJ6YP.js.map → ai-mission-header-08__gULL.js.map} +1 -1
  26. package/dist/ai-part-group-DBtgTgAn.js +277 -0
  27. package/dist/ai-part-group-DBtgTgAn.js.map +1 -0
  28. package/dist/ai-prompt-input-CuluUzpf.js +1996 -0
  29. package/dist/ai-prompt-input-CuluUzpf.js.map +1 -0
  30. package/dist/{ai-question-Dp1g9k2o.js → ai-question-CHHoDJMg.js} +1 -1
  31. package/dist/{ai-question-Dp1g9k2o.js.map → ai-question-CHHoDJMg.js.map} +1 -1
  32. package/dist/{ai-reasoning-UAmNx_LD.js → ai-reasoning-CnL6ZSr5.js} +84 -5
  33. package/dist/ai-reasoning-CnL6ZSr5.js.map +1 -0
  34. package/dist/{ai-response-BWoVsNQG.js → ai-response-BEUg3xvd.js} +13 -16
  35. package/dist/ai-response-BEUg3xvd.js.map +1 -0
  36. package/dist/{ai-shimmer-BpOmfonu.js → ai-shimmer-By5_L05p.js} +1 -1
  37. package/dist/{ai-shimmer-BpOmfonu.js.map → ai-shimmer-By5_L05p.js.map} +1 -1
  38. package/dist/{ai-status-badge-WhbKVeqn.js → ai-status-badge-BGYGWYF6.js} +1 -1
  39. package/dist/{ai-status-badge-WhbKVeqn.js.map → ai-status-badge-BGYGWYF6.js.map} +1 -1
  40. package/dist/{ai-streaming-text-ClL7FwvD.js → ai-streaming-text-CMfoThV0.js} +1 -1
  41. package/dist/{ai-streaming-text-ClL7FwvD.js.map → ai-streaming-text-CMfoThV0.js.map} +1 -1
  42. package/dist/{ai-subagent-BruGN1UE.js → ai-subagent-DcPRqkAA.js} +1 -1
  43. package/dist/{ai-subagent-BruGN1UE.js.map → ai-subagent-DcPRqkAA.js.map} +1 -1
  44. package/dist/{ai-suggestion-CNsCZj5P.js → ai-suggestion-MgeCg5Ar.js} +1 -1
  45. package/dist/{ai-suggestion-CNsCZj5P.js.map → ai-suggestion-MgeCg5Ar.js.map} +1 -1
  46. package/dist/{ai-task-list-B9CpMDYN.js → ai-task-list-Da9zIm00.js} +9 -12
  47. package/dist/ai-task-list-Da9zIm00.js.map +1 -0
  48. package/dist/{ai-timeline-Bb5ntsr3.js → ai-timeline-Cwu045IR.js} +1 -1
  49. package/dist/ai-timeline-Cwu045IR.js.map +1 -0
  50. package/dist/{ai-tool-BGH8nQ_D.js → ai-tool-Cn1O4xjP.js} +168 -11
  51. package/dist/ai-tool-Cn1O4xjP.js.map +1 -0
  52. package/dist/{ai-usage-bar-BI-p-JBk.js → ai-usage-bar-DjS12DMp.js} +1 -1
  53. package/dist/{ai-usage-bar-BI-p-JBk.js.map → ai-usage-bar-DjS12DMp.js.map} +1 -1
  54. package/dist/catalog.js +3 -3
  55. package/dist/catalog.js.map +1 -1
  56. package/dist/{chart-Bes4MN3C.js → chart-BK3sVPnD.js} +442 -248
  57. package/dist/chart-BK3sVPnD.js.map +1 -0
  58. package/dist/{checkbox-CPX7lBaU.js → checkbox-DYhUmZNw.js} +4 -4
  59. package/dist/checkbox-DYhUmZNw.js.map +1 -0
  60. package/dist/{clipboard-text-92YeCybc.js → clipboard-text-ssybngLw.js} +2 -2
  61. package/dist/{clipboard-text-92YeCybc.js.map → clipboard-text-ssybngLw.js.map} +1 -1
  62. package/dist/{code-DE1Yy1Cu.js → code-Cx-QSoOT.js} +2 -2
  63. package/dist/{code-DE1Yy1Cu.js.map → code-Cx-QSoOT.js.map} +1 -1
  64. package/dist/{combobox-B0bLdsX8.js → combobox-C0iW6a0r.js} +2 -2
  65. package/dist/{combobox-B0bLdsX8.js.map → combobox-C0iW6a0r.js.map} +1 -1
  66. package/dist/command-line/cli.js +22 -27
  67. package/dist/{command-palette-CBTY8EiF.js → command-palette-DGzioeki.js} +2 -2
  68. package/dist/command-palette-DGzioeki.js.map +1 -0
  69. package/dist/components/ai-actions.js +1 -1
  70. package/dist/components/ai-agent-card.js +1 -1
  71. package/dist/components/ai-approval.js +1 -1
  72. package/dist/components/ai-code-block.js +1 -1
  73. package/dist/components/ai-conversation.js +1 -1
  74. package/dist/components/ai-info-banner.js +1 -1
  75. package/dist/components/ai-message.js +1 -1
  76. package/dist/components/ai-mission-header.js +1 -1
  77. package/dist/components/ai-part-group.js +3 -0
  78. package/dist/components/ai-prompt-input.js +2 -2
  79. package/dist/components/ai-question.js +1 -1
  80. package/dist/components/ai-reasoning.js +1 -1
  81. package/dist/components/ai-response.js +1 -1
  82. package/dist/components/ai-shimmer.js +1 -1
  83. package/dist/components/ai-status-badge.js +1 -1
  84. package/dist/components/ai-streaming-text.js +1 -1
  85. package/dist/components/ai-subagent.js +1 -1
  86. package/dist/components/ai-suggestion.js +1 -1
  87. package/dist/components/ai-task-list.js +1 -1
  88. package/dist/components/ai-timeline.js +1 -1
  89. package/dist/components/ai-tool.js +1 -1
  90. package/dist/components/ai-usage-bar.js +1 -1
  91. package/dist/components/chart.js +3 -2
  92. package/dist/components/checkbox.js +1 -1
  93. package/dist/components/clipboard-text.js +1 -1
  94. package/dist/components/code.js +1 -1
  95. package/dist/components/combobox.js +1 -1
  96. package/dist/components/command-palette.js +1 -1
  97. package/dist/components/data-grid.js +1 -1
  98. package/dist/components/date-picker.js +1 -1
  99. package/dist/components/dropdown.js +1 -1
  100. package/dist/components/filters.js +1 -1
  101. package/dist/components/input.js +2 -2
  102. package/dist/components/link.js +2 -2
  103. package/dist/components/link.js.map +1 -1
  104. package/dist/components/pagination.js +1 -1
  105. package/dist/components/radio.js +1 -1
  106. package/dist/components/select.js +1 -1
  107. package/dist/components/sensitive-input.js +1 -1
  108. package/dist/components/sidebar.js +1 -1
  109. package/dist/components/sparkline.js +3 -0
  110. package/dist/components/stat-card.js +3 -0
  111. package/dist/components/table.js +1 -1
  112. package/dist/components/text-roll.js +3 -0
  113. package/dist/components/theme-toggle.js +1 -1
  114. package/dist/components/use-agent-harness.js +1 -1
  115. package/dist/{data-grid-UJ9ja5cu.js → data-grid-CG76N_hK.js} +6 -6
  116. package/dist/data-grid-CG76N_hK.js.map +1 -0
  117. package/dist/{date-picker-ebekkC3R.js → date-picker-Dqg9L4xu.js} +2 -2
  118. package/dist/{date-picker-ebekkC3R.js.map → date-picker-Dqg9L4xu.js.map} +1 -1
  119. package/dist/{dist-BNlyONdD.js → dist-1-gcEL2L.js} +224 -135
  120. package/dist/dist-1-gcEL2L.js.map +1 -0
  121. package/dist/{dropdown-J5T4pHaR.js → dropdown-qnEYRFXZ.js} +2 -2
  122. package/dist/{dropdown-J5T4pHaR.js.map → dropdown-qnEYRFXZ.js.map} +1 -1
  123. package/dist/echart-DURZEyai.js +314 -0
  124. package/dist/echart-DURZEyai.js.map +1 -0
  125. package/dist/{filters-BdBogf7D.js → filters-Bw_U6ZTx.js} +5 -5
  126. package/dist/filters-Bw_U6ZTx.js.map +1 -0
  127. package/dist/flow-BRsYUCJa.js.map +1 -1
  128. package/dist/genui.js +2 -2
  129. package/dist/genui.js.map +1 -1
  130. package/dist/index.js +45 -42
  131. package/dist/index.js.map +1 -1
  132. package/dist/{input-BxQAnXki.js → input-DXYUjGgD.js} +2 -2
  133. package/dist/{input-BxQAnXki.js.map → input-DXYUjGgD.js.map} +1 -1
  134. package/dist/{input-Cn25I4o5.js → input-DddtBN-g.js} +2 -2
  135. package/dist/{input-Cn25I4o5.js.map → input-DddtBN-g.js.map} +1 -1
  136. package/dist/layer-card-BME0eljh.js.map +1 -1
  137. package/dist/{pagination-C_YqCy8l.js → pagination-BVqdlONY.js} +2 -2
  138. package/dist/{pagination-C_YqCy8l.js.map → pagination-BVqdlONY.js.map} +1 -1
  139. package/dist/primitives/otp-field.js +2 -0
  140. package/dist/primitives.js +1 -0
  141. package/dist/{radio-B7zg1wUI.js → radio-BNSwOt3B.js} +3 -3
  142. package/dist/radio-BNSwOt3B.js.map +1 -0
  143. package/dist/{select-9p721G00.js → select-1w2aebGQ.js} +2 -2
  144. package/dist/select-1w2aebGQ.js.map +1 -0
  145. package/dist/{sensitive-input-D5je2NLl.js → sensitive-input-82Cez3vj.js} +2 -2
  146. package/dist/{sensitive-input-D5je2NLl.js.map → sensitive-input-82Cez3vj.js.map} +1 -1
  147. package/dist/{sidebar-DOwBrq57.js → sidebar-CAsCmSpM.js} +3 -3
  148. package/dist/sidebar-CAsCmSpM.js.map +1 -0
  149. package/dist/sparkline-DdbeM4Ai.js +108 -0
  150. package/dist/sparkline-DdbeM4Ai.js.map +1 -0
  151. package/dist/src/blocks/agent-harness/agent-harness.d.ts +30 -9
  152. package/dist/src/blocks/agent-harness/agent-harness.d.ts.map +1 -1
  153. package/dist/src/blocks/agent-harness/agent-harness.stories.tsx +114 -0
  154. package/dist/src/blocks/agent-harness/agent-harness.tsx +144 -63
  155. package/dist/src/blocks/commander/commander.stories.tsx +31 -0
  156. package/dist/src/blocks/dashboard-grid/dashboard-grid.d.ts +48 -0
  157. package/dist/src/blocks/dashboard-grid/dashboard-grid.d.ts.map +1 -0
  158. package/dist/src/blocks/dashboard-grid/dashboard-grid.stories.tsx +19 -0
  159. package/dist/src/blocks/dashboard-grid/dashboard-grid.tsx +110 -0
  160. package/dist/src/blocks/dashboard-grid/index.d.ts +2 -0
  161. package/dist/src/blocks/dashboard-grid/index.d.ts.map +1 -0
  162. package/dist/src/blocks/delete-resource/delete-resource.stories.tsx +31 -0
  163. package/dist/src/blocks/map-block/map-block.stories.tsx +41 -0
  164. package/dist/src/blocks/metrics-overview/index.d.ts +2 -0
  165. package/dist/src/blocks/metrics-overview/index.d.ts.map +1 -0
  166. package/dist/src/blocks/metrics-overview/metrics-overview.d.ts +67 -0
  167. package/dist/src/blocks/metrics-overview/metrics-overview.d.ts.map +1 -0
  168. package/dist/src/blocks/metrics-overview/metrics-overview.stories.tsx +26 -0
  169. package/dist/src/blocks/metrics-overview/metrics-overview.tsx +139 -0
  170. package/dist/src/blocks/page-header/page-header.stories.tsx +56 -0
  171. package/dist/src/blocks/resource-list/resource-list.stories.tsx +31 -0
  172. package/dist/src/catalog/catalog.d.ts +1 -1
  173. package/dist/src/catalog/index.d.ts +1 -1
  174. package/dist/src/catalog/types.d.ts +1 -1
  175. package/dist/src/command-line/build-cli.d.ts +1 -1
  176. package/dist/src/command-line/cli.d.ts +1 -1
  177. package/dist/src/command-line/commands/add.d.ts +1 -1
  178. package/dist/src/command-line/commands/add.d.ts.map +1 -1
  179. package/dist/src/command-line/commands/ai.d.ts.map +1 -1
  180. package/dist/src/command-line/commands/blocks.d.ts +1 -1
  181. package/dist/src/command-line/commands/blocks.d.ts.map +1 -1
  182. package/dist/src/command-line/commands/doc.d.ts +1 -1
  183. package/dist/src/command-line/commands/doc.d.ts.map +1 -1
  184. package/dist/src/command-line/commands/ls.d.ts +1 -1
  185. package/dist/src/command-line/commands/ls.d.ts.map +1 -1
  186. package/dist/src/command-line/commands/migrate.d.ts +3 -3
  187. package/dist/src/command-line/commands/migrate.d.ts.map +1 -1
  188. package/dist/src/command-line/utils/config.d.ts +1 -1
  189. package/dist/src/command-line/utils/transformer.d.ts +1 -1
  190. package/dist/src/components/ai-part-group/ai-part-group.d.ts +134 -0
  191. package/dist/src/components/ai-part-group/ai-part-group.d.ts.map +1 -0
  192. package/dist/src/components/ai-part-group/index.d.ts +2 -0
  193. package/dist/src/components/ai-part-group/index.d.ts.map +1 -0
  194. package/dist/src/components/ai-prompt-input/ai-prompt-input.d.ts +241 -8
  195. package/dist/src/components/ai-prompt-input/ai-prompt-input.d.ts.map +1 -1
  196. package/dist/src/components/ai-prompt-input/controller.d.ts +49 -0
  197. package/dist/src/components/ai-prompt-input/controller.d.ts.map +1 -0
  198. package/dist/src/components/ai-prompt-input/index.d.ts +3 -1
  199. package/dist/src/components/ai-prompt-input/index.d.ts.map +1 -1
  200. package/dist/src/components/ai-prompt-input/types.d.ts +102 -0
  201. package/dist/src/components/ai-prompt-input/types.d.ts.map +1 -0
  202. package/dist/src/components/ai-reasoning/ai-reasoning.d.ts +17 -1
  203. package/dist/src/components/ai-reasoning/ai-reasoning.d.ts.map +1 -1
  204. package/dist/src/components/ai-response/ai-response.d.ts +1 -2
  205. package/dist/src/components/ai-response/ai-response.d.ts.map +1 -1
  206. package/dist/src/components/ai-task-list/ai-task-list.d.ts.map +1 -1
  207. package/dist/src/components/ai-tool/ai-tool.d.ts +17 -1
  208. package/dist/src/components/ai-tool/ai-tool.d.ts.map +1 -1
  209. package/dist/src/components/chart/area-chart.d.ts +69 -0
  210. package/dist/src/components/chart/area-chart.d.ts.map +1 -0
  211. package/dist/src/components/chart/bar-chart.d.ts +60 -0
  212. package/dist/src/components/chart/bar-chart.d.ts.map +1 -0
  213. package/dist/src/components/chart/color.d.ts +56 -0
  214. package/dist/src/components/chart/color.d.ts.map +1 -1
  215. package/dist/src/components/chart/echart.d.ts.map +1 -1
  216. package/dist/src/components/chart/index.d.ts +5 -0
  217. package/dist/src/components/chart/index.d.ts.map +1 -1
  218. package/dist/src/components/chart/pie-chart.d.ts +64 -0
  219. package/dist/src/components/chart/pie-chart.d.ts.map +1 -0
  220. package/dist/src/components/chart/scatter-chart.d.ts +57 -0
  221. package/dist/src/components/chart/scatter-chart.d.ts.map +1 -0
  222. package/dist/src/components/chart/stacked-bar-chart.d.ts +59 -0
  223. package/dist/src/components/chart/stacked-bar-chart.d.ts.map +1 -0
  224. package/dist/src/components/chart/timeseries-chart.d.ts.map +1 -1
  225. package/dist/src/components/code/code.d.ts +1 -1
  226. package/dist/src/components/command-palette/command-palette.d.ts +1 -1
  227. package/dist/src/components/data-grid/data-grid.d.ts.map +1 -1
  228. package/dist/src/components/data-grid/index.d.ts +1 -1
  229. package/dist/src/components/data-grid/index.d.ts.map +1 -1
  230. package/dist/src/components/data-grid/types.d.ts.map +1 -1
  231. package/dist/src/components/date-picker/date-picker.d.ts +2 -2
  232. package/dist/src/components/filters/filters.d.ts.map +1 -1
  233. package/dist/src/components/filters/helpers.d.ts.map +1 -1
  234. package/dist/src/components/filters/types.d.ts.map +1 -1
  235. package/dist/src/components/layer-card/layer-card.d.ts +1 -1
  236. package/dist/src/components/link/link.d.ts +2 -2
  237. package/dist/src/components/radio/radio.d.ts +1 -1
  238. package/dist/src/components/select/select.d.ts +1 -1
  239. package/dist/src/components/sidebar/sidebar.d.ts +2 -2
  240. package/dist/src/components/sparkline/index.d.ts +2 -0
  241. package/dist/src/components/sparkline/index.d.ts.map +1 -0
  242. package/dist/src/components/sparkline/sparkline.d.ts +52 -0
  243. package/dist/src/components/sparkline/sparkline.d.ts.map +1 -0
  244. package/dist/src/components/stat-card/index.d.ts +2 -0
  245. package/dist/src/components/{ai-loader → stat-card}/index.d.ts.map +1 -1
  246. package/dist/src/components/stat-card/stat-card.d.ts +80 -0
  247. package/dist/src/components/stat-card/stat-card.d.ts.map +1 -0
  248. package/dist/src/components/text-roll/index.d.ts +2 -0
  249. package/dist/src/components/text-roll/index.d.ts.map +1 -0
  250. package/dist/src/components/text-roll/text-roll.d.ts +49 -0
  251. package/dist/src/components/text-roll/text-roll.d.ts.map +1 -0
  252. package/dist/src/components/toast/toast.d.ts.map +1 -1
  253. package/dist/src/components/use-agent-harness/use-agent-harness.d.ts +2 -2
  254. package/dist/src/genui/genui.d.ts.map +1 -1
  255. package/dist/src/index.d.ts +5 -2
  256. package/dist/src/index.d.ts.map +1 -1
  257. package/dist/src/primitives/index.d.ts +1 -0
  258. package/dist/src/primitives/index.d.ts.map +1 -1
  259. package/dist/src/primitives/otp-field.d.ts +13 -0
  260. package/dist/src/primitives/otp-field.d.ts.map +1 -0
  261. package/dist/src/registry/index.d.ts +1 -1
  262. package/dist/src/registry/types.d.ts +1 -1
  263. package/dist/stat-card-CEZscNh8.js +103 -0
  264. package/dist/stat-card-CEZscNh8.js.map +1 -0
  265. package/dist/styles/sf-binding.css +28 -62
  266. package/dist/styles/sf-standalone.css +2 -2
  267. package/dist/styles/shadcn.css +120 -0
  268. package/dist/styles/theme-blue-tint.css +98 -0
  269. package/dist/styles/theme-fedramp.css +3 -12
  270. package/dist/styles/theme-minimal.css +26 -104
  271. package/dist/styles/theme-sf.css +96 -114
  272. package/dist/{table-CIMx0Oq0.js → table-Rv4JMy0B.js} +2 -2
  273. package/dist/{table-CIMx0Oq0.js.map → table-Rv4JMy0B.js.map} +1 -1
  274. package/dist/text-roll-BZ3I1umc.js +79 -0
  275. package/dist/text-roll-BZ3I1umc.js.map +1 -0
  276. package/dist/{theme-toggle-Dpgnoj_Q.js → theme-toggle-Bhu681D7.js} +1 -1
  277. package/dist/{theme-toggle-Dpgnoj_Q.js.map → theme-toggle-Bhu681D7.js.map} +1 -1
  278. package/dist/{use-agent-harness-DZzcn96L.js → use-agent-harness-BMyF8pTq.js} +5 -5
  279. package/dist/use-agent-harness-BMyF8pTq.js.map +1 -0
  280. package/package.json +48 -19
  281. package/scripts/component-registry/discovery.ts +2 -2
  282. package/scripts/component-registry/index.ts +3 -3
  283. package/scripts/component-registry/props-filter.ts +1 -1
  284. package/scripts/component-registry/utils.ts +5 -5
  285. package/scripts/component-registry/variant-parser.ts +124 -19
  286. package/scripts/convert-demos-to-stories.ts +253 -0
  287. package/scripts/css-build.ts +4 -3
  288. package/scripts/generate-primitives.ts +11 -3
  289. package/scripts/theme-generator/config.ts +339 -71
  290. package/scripts/theme-generator/generate-css.ts +17 -3
  291. package/scripts/theme-generator/index.ts +3 -3
  292. package/scripts/theme-generator/migrate.ts +1 -1
  293. package/dist/ai-loader-Cr3eQkNS.js +0 -134
  294. package/dist/ai-loader-Cr3eQkNS.js.map +0 -1
  295. package/dist/ai-prompt-input-Bo1YuJly.js +0 -769
  296. package/dist/ai-prompt-input-Bo1YuJly.js.map +0 -1
  297. package/dist/ai-reasoning-UAmNx_LD.js.map +0 -1
  298. package/dist/ai-response-BWoVsNQG.js.map +0 -1
  299. package/dist/ai-task-list-B9CpMDYN.js.map +0 -1
  300. package/dist/ai-timeline-Bb5ntsr3.js.map +0 -1
  301. package/dist/ai-tool-BGH8nQ_D.js.map +0 -1
  302. package/dist/chart-Bes4MN3C.js.map +0 -1
  303. package/dist/checkbox-CPX7lBaU.js.map +0 -1
  304. package/dist/command-palette-CBTY8EiF.js.map +0 -1
  305. package/dist/components/ai-loader.js +0 -3
  306. package/dist/data-grid-UJ9ja5cu.js.map +0 -1
  307. package/dist/dist-BNlyONdD.js.map +0 -1
  308. package/dist/filters-BdBogf7D.js.map +0 -1
  309. package/dist/radio-B7zg1wUI.js.map +0 -1
  310. package/dist/select-9p721G00.js.map +0 -1
  311. package/dist/sidebar-DOwBrq57.js.map +0 -1
  312. package/dist/src/components/ai-loader/ai-loader.d.ts +0 -44
  313. package/dist/src/components/ai-loader/ai-loader.d.ts.map +0 -1
  314. package/dist/src/components/ai-loader/index.d.ts +0 -2
  315. package/dist/styles/theme-navigator.css +0 -137
  316. package/dist/use-agent-harness-DZzcn96L.js.map +0 -1
@@ -30,7 +30,7 @@ Container for a row of AI message action buttons.
30
30
 
31
31
  ### AiAgentCard
32
32
 
33
- `AiAgentCard` — compact card showing one agent's status in a commander dashboard. Displays: agent icon, name, status indicator, current task, model, duration, and tool call count. Clickable for selection.
33
+ `AiAgentCard` — compact card showing one agent's status in a commander dashboard. Displays: agent icon, name, status indicator, current task, model, duration, and tool call count. Clickable for selection.
34
34
 
35
35
  **Type:** component
36
36
 
@@ -79,7 +79,7 @@ Container for a row of AI message action buttons.
79
79
 
80
80
  ### AiApproval
81
81
 
82
- Approval card for tool calls and plan submissions. Maps to harness events: `tool_approval_required`, `plan_approval_required`, `plan_approved`.
82
+ Approval card for tool calls and plan submissions. Maps to harness events: `tool_approval_required`, `plan_approval_required`, `plan_approved`.
83
83
 
84
84
  **Type:** component
85
85
 
@@ -173,7 +173,7 @@ Outer scroll container for a conversation. Sticks to the bottom as new messages
173
173
 
174
174
  ### AiInfoBanner
175
175
 
176
- Inline conversation banner for system notices. Renders as a compact, horizontally centered divider-like notice rather than a chat bubble. Maps to harness events: `error`, `info`, `mode_changed`, `model_changed`.
176
+ Inline conversation banner for system notices. Renders as a compact, horizontally centered divider-like notice rather than a chat bubble. Maps to harness events: `error`, `info`, `mode_changed`, `model_changed`.
177
177
 
178
178
  **Type:** component
179
179
 
@@ -201,34 +201,6 @@ Inline conversation banner for system notices. Renders as a compact, horizontall
201
201
 
202
202
  ---
203
203
 
204
- ### AiLoader
205
-
206
- Spinning radial loader for AI streaming states.
207
-
208
- **Type:** component
209
-
210
- **Import:** `import { AiLoader } from "@signalflare-ai/ui";`
211
-
212
- **Category:** Other
213
-
214
- **Props:**
215
-
216
- - `children`: ReactNode
217
- - `className`: string
218
- - `id`: string
219
- - `lang`: string
220
- - `title`: string
221
- - `size`: enum [default: base]
222
- - `"sm"`: Small — 12px
223
- - `"base"`: Default — 16px
224
- - `"lg"`: Large — 20px
225
-
226
- **Colors (sf tokens used):**
227
-
228
- `text-sf-subtle`
229
-
230
- ---
231
-
232
204
  ### AiMessage
233
205
 
234
206
  Root message container. Sets layout, group class, and role context.
@@ -259,7 +231,7 @@ Root message container. Sets layout, group class, and role context.
259
231
 
260
232
  ### AiMissionHeader
261
233
 
262
- `AiMissionHeader` — top bar for the Commander dashboard. Shows: mission title, progress bar (from task list), agent count, live elapsed time, token usage, and an abort button while running.
234
+ `AiMissionHeader` — top bar for the Commander dashboard. Shows: mission title, progress bar (from task list), agent count, live elapsed time, token usage, and an abort button while running.
263
235
 
264
236
  **Type:** component
265
237
 
@@ -299,9 +271,38 @@ Root message container. Sets layout, group class, and role context.
299
271
 
300
272
  ---
301
273
 
274
+ ### AiPartGroup
275
+
276
+ Groups streaming ephemeral activity (tool calls + reasoning) into a single rolling window during streaming, then collapses to a frozen summary line once the parent message completes. Behavior: - **Streaming:** shows the most recent `max` (default 3) ephemeral children. Pinned rows (errors / user-expanded) sit above the live window. - **Completed:** writes a snapshot keyed by `groupKey`, unmounts ephemeral children entirely, and renders a static `▸ {title} · N steps` line. - **Re-mount after completion:** always renders the cached snapshot — no animations, no `useEffect` re-runs, no tool re-execution risk.
277
+
278
+ **Type:** component
279
+
280
+ **Import:** `import { AiPartGroup } from "@signalflare-ai/ui";`
281
+
282
+ **Category:** Other
283
+
284
+ **Props:**
285
+
286
+ - `groupKey`: string (required)
287
+ Stable identifier — usually the parent message id. Required so the group can persist its frozen snapshot across re-mounts (scroll-back into a virtualized list re-renders without restarting animations).
288
+ - `complete`: boolean
289
+ Set to `true` once the parent stream has finished. Triggers the group to snapshot its current children and from then on render only the static collapsed summary — ephemeral children never re-mount.
290
+ - `title`: string
291
+ Title shown in the collapsed summary line. Falls back to the first reasoning text snippet, then to a step count.
292
+ - `children`: ReactNode
293
+ - `className`: string
294
+ - `id`: string
295
+ - `lang`: string
296
+
297
+ **Colors (sf tokens used):**
298
+
299
+ `bg-sf-tint`, `border-sf-line`, `text-sf-danger`, `text-sf-default`, `text-sf-subtle`, `text-sf-success`
300
+
301
+ ---
302
+
302
303
  ### AiQuestion
303
304
 
304
- Agent question card. Renders when the agent uses the `ask_user` built-in tool and needs a response before continuing. Maps to harness event: `ask_question`.
305
+ Agent question card. Renders when the agent uses the `ask_user` built-in tool and needs a response before continuing. Maps to harness event: `ask_question`.
305
306
 
306
307
  **Type:** component
307
308
 
@@ -355,6 +356,7 @@ Collapsible reasoning block. Supports three display variants: - `"default"` —
355
356
  - `"default"`: Expandable card with collapsible reasoning text and duration
356
357
  - `"inline"`: Compact single-line display with left accent border
357
358
  - `"minimal"`: Pill-shaped status badge
359
+ - `"ephemeral"`: Single-status row that auto-dismisses after streaming ends. Persists when the user expands it.
358
360
  - `isStreaming`: boolean
359
361
  Whether reasoning is currently streaming.
360
362
  - `duration`: number
@@ -371,6 +373,10 @@ Collapsible reasoning block. Supports three display variants: - `"default"` —
371
373
  Custom label override. Defaults to `"Thinking..."` (streaming) or `"Reasoning"` (done). Use to label observational memory blocks: `"Observing..."`, `"Reflecting..."`, etc.
372
374
  - `streamingLabel`: string
373
375
  Custom streaming label. When provided, used instead of `label` while `isStreaming` is true. Falls back to `label`, then to the default `"Thinking..."`.
376
+ - `dismissDelay`: number
377
+ For `variant="ephemeral"`: ms to keep the completed row visible before fading out. Set to `0` to disable auto-dismiss.
378
+ - `persist`: boolean
379
+ For `variant="ephemeral"`: when `true`, the row never auto-dismisses. User-expanded rows are pinned automatically.
374
380
  - `className`: string
375
381
  - `id`: string
376
382
  - `lang`: string
@@ -379,13 +385,13 @@ Collapsible reasoning block. Supports three display variants: - `"default"` —
379
385
 
380
386
  **Colors (sf tokens used):**
381
387
 
382
- `bg-sf-tint`, `border-sf-line`, `text-sf-subtle`
388
+ `bg-sf-tint`, `border-sf-line`, `text-sf-subtle`, `text-sf-success`
383
389
 
384
390
  ---
385
391
 
386
392
  ### AiResponse
387
393
 
388
- Renders AI-generated markdown using Streamdown. Supports streaming animation, syntax-highlighted code, tables, and more. Pass `isAnimating={true}` while streaming and `false` once complete to get character-by-character reveal animation.
394
+ Renders AI-generated markdown using Streamdown. Supports streaming animation, syntax-highlighted code, tables, and more. Pass `isAnimating={true}` while streaming and `false` once complete to get character-by-character reveal animation.
389
395
 
390
396
  **Type:** component
391
397
 
@@ -487,7 +493,7 @@ AiStreamingText component
487
493
 
488
494
  ### AiSubagent
489
495
 
490
- Collapsible wrapper for nested subagent activity. Shows the subagent name, status, model, and duration in a header, with all subagent output (text, tool calls, etc.) in a collapsible body. Maps to harness events: `subagent_start`, `subagent_text_delta`, `subagent_tool_start`, `subagent_tool_end`, `subagent_end`, `subagent_model_changed`.
496
+ Collapsible wrapper for nested subagent activity. Shows the subagent name, status, model, and duration in a header, with all subagent output (text, tool calls, etc.) in a collapsible body. Maps to harness events: `subagent_start`, `subagent_text_delta`, `subagent_tool_start`, `subagent_tool_end`, `subagent_end`, `subagent_model_changed`.
491
497
 
492
498
  **Type:** component
493
499
 
@@ -549,7 +555,7 @@ Horizontally scrollable container for suggestion pills. Position it relative to
549
555
 
550
556
  ### AiTaskList
551
557
 
552
- Task progress list. Renders structured tasks from the harness `task_write` tool. Typically rendered inside the `PromptInputBackLayer` or inline in conversation. Maps to harness event: `task_updated`.
558
+ Task progress list. Renders structured tasks from the harness `task_write` tool. Typically rendered inside the `PromptInputBackLayer` or inline in conversation. Maps to harness event: `task_updated`.
553
559
 
554
560
  **Type:** component
555
561
 
@@ -574,13 +580,13 @@ Task progress list. Renders structured tasks from the harness `task_write` tool.
574
580
 
575
581
  **Colors (sf tokens used):**
576
582
 
577
- `bg-sf-brand`, `bg-sf-danger`, `bg-sf-subtle`, `bg-sf-tint`, `bg-sf-warning`, `text-sf-brand`, `text-sf-default`, `text-sf-subtle`, `text-sf-success`
583
+ `bg-sf-brand`, `bg-sf-danger`, `bg-sf-subtle`, `bg-sf-success`, `bg-sf-tint`, `bg-sf-warning`, `text-sf-default`, `text-sf-subtle`
578
584
 
579
585
  ---
580
586
 
581
587
  ### AiTimeline
582
588
 
583
- `AiTimeline` — horizontal swim-lane timeline for commander-level orchestration. Displays multiple `AiTimelineLane` children on a shared time axis. Supports live updating (a "now" marker follows the live edge), panning, and zoom via `pixelsPerSecond`.
589
+ `AiTimeline` — horizontal swim-lane timeline for commander-level orchestration. Displays multiple `AiTimelineLane` children on a shared time axis. Supports live updating (a "now" marker follows the live edge), panning, and zoom via `pixelsPerSecond`.
584
590
 
585
591
  **Type:** component
586
592
 
@@ -630,6 +636,7 @@ Renders a single tool call. Supports three display variants: - `"default"` — e
630
636
  - `"default"`: Expandable card with collapsible input/output sections
631
637
  - `"inline"`: Compact single-line display with left accent border
632
638
  - `"minimal"`: Pill-shaped status badge
639
+ - `"ephemeral"`: Single-status row that auto-dismisses after the call completes. Persists on error or when the user expands it.
633
640
  - `duration`: number
634
641
  Duration in milliseconds.
635
642
  - `summary`: string
@@ -640,6 +647,10 @@ Renders a single tool call. Supports three display variants: - `"default"` — e
640
647
  Approval state for tools requiring confirmation.
641
648
  - `defaultExpanded`: boolean
642
649
  Default expanded state for the collapsible.
650
+ - `dismissDelay`: number
651
+ For `variant="ephemeral"`: ms to keep the completed row visible before fading out. Set to `0` to disable auto-dismiss.
652
+ - `persist`: boolean
653
+ For `variant="ephemeral"`: when `true`, the row never auto-dismisses. Errors and user-expanded rows are pinned automatically.
643
654
  - `className`: string
644
655
  - `id`: string
645
656
  - `lang`: string
@@ -648,13 +659,13 @@ Renders a single tool call. Supports three display variants: - `"default"` — e
648
659
 
649
660
  **Colors (sf tokens used):**
650
661
 
651
- `bg-sf-brand`, `bg-sf-danger`, `bg-sf-line`, `bg-sf-recessed`, `bg-sf-success`, `bg-sf-tint`, `bg-sf-warning`, `border-sf-elevated`, `border-sf-line`, `text-sf-brand`, `text-sf-danger`, `text-sf-subtle`, `text-sf-success`, `text-sf-warning`
662
+ `bg-sf-brand`, `bg-sf-danger`, `bg-sf-line`, `bg-sf-recessed`, `bg-sf-subtle`, `bg-sf-success`, `bg-sf-tint`, `bg-sf-warning`, `border-sf-elevated`, `border-sf-line`, `text-sf-brand`, `text-sf-danger`, `text-sf-subtle`, `text-sf-success`, `text-sf-warning`
652
663
 
653
664
  ---
654
665
 
655
666
  ### AiUsageBar
656
667
 
657
- Compact token usage display bar. Shows input/output token counts, total, optional cost, and model identifier. Maps to harness event: `usage_update`.
668
+ Compact token usage display bar. Shows input/output token counts, total, optional cost, and model identifier. Maps to harness event: `usage_update`.
658
669
 
659
670
  **Type:** component
660
671
 
@@ -794,6 +805,7 @@ This is a compound component. Use these sub-components:
794
805
  Link sub-component
795
806
 
796
807
  Props:
808
+
797
809
  - `href`: string (required)
798
810
  - `icon`: React.ReactNode
799
811
 
@@ -802,6 +814,7 @@ Props:
802
814
  Current sub-component
803
815
 
804
816
  Props:
817
+
805
818
  - `loading`: boolean
806
819
  - `icon`: React.ReactNode
807
820
 
@@ -814,8 +827,8 @@ Separator sub-component
814
827
  Clipboard sub-component
815
828
 
816
829
  Props:
817
- - `text`: string (required)
818
830
 
831
+ - `text`: string (required)
819
832
 
820
833
  ---
821
834
 
@@ -865,6 +878,7 @@ Primary action trigger. Supports multiple variants, sizes, shapes, icons, and lo
865
878
  - `not-disabled`: `not-disabled:hover:border-secondary! not-disabled:hover:bg-sf-control`
866
879
  - `disabled`: `disabled:bg-sf-control/50 disabled:!text-sf-danger/70`
867
880
  - `data-state`: `data-[state=open]:bg-sf-control`
881
+
868
882
  - `children`: ReactNode
869
883
  - `className`: string
870
884
  - `icon`: ReactNode
@@ -905,6 +919,7 @@ Checkbox component
905
919
  - `"default"`:
906
920
  - `focus`: `[&:focus-within>span]:ring-sf-ring`
907
921
  - `hover`: `[&:hover>span]:ring-sf-ring`
922
+
908
923
  - `label`: ReactNode
909
924
  Label content for the checkbox (enables built-in Field wrapper) - can be a string or any React node
910
925
  - `labelTooltip`: ReactNode
@@ -928,7 +943,7 @@ Checkbox component
928
943
 
929
944
  **Colors (sf tokens used):**
930
945
 
931
- `bg-sf-base`, `bg-sf-contrast`, `border-sf-line`, `ring-sf-contrast`, `ring-sf-danger`, `ring-sf-line`, `ring-sf-ring`, `text-sf-danger`, `text-sf-default`, `text-sf-inverse`, `text-sf-subtle`
946
+ `bg-sf-base`, `bg-sf-contrast`, `border-sf-line`, `ring-sf-contrast`, `ring-sf-danger`, `ring-sf-interact`, `ring-sf-ring`, `text-sf-danger`, `text-sf-default`, `text-sf-inverse`, `text-sf-subtle`
932
947
 
933
948
  **Styling:**
934
949
 
@@ -959,6 +974,7 @@ Item sub-component
959
974
  Group sub-component
960
975
 
961
976
  Props:
977
+
962
978
  - `legend`: string (required)
963
979
  - `children`: ReactNode (required)
964
980
  - `error`: string
@@ -969,7 +985,6 @@ Props:
969
985
  - `controlFirst`: boolean
970
986
  - `className`: string
971
987
 
972
-
973
988
  ---
974
989
 
975
990
  ### ClipboardText
@@ -1080,9 +1095,6 @@ Code component
1080
1095
 
1081
1096
  **Styling:**
1082
1097
 
1083
- - **Dimensions:** `[object Object]`
1084
- - **Base Tokens:** `text-sf-default`
1085
-
1086
1098
  **Sub-Components:**
1087
1099
 
1088
1100
  This is a compound component. Use these sub-components:
@@ -1092,15 +1104,15 @@ This is a compound component. Use these sub-components:
1092
1104
  Block sub-component
1093
1105
 
1094
1106
  Props:
1107
+
1095
1108
  - `code`: string (required)
1096
1109
  - `lang`: CodeLang
1097
1110
 
1098
-
1099
1111
  ---
1100
1112
 
1101
1113
  ### Collapsible
1102
1114
 
1103
- Collapsible component for showing/hiding content. Features: - Animated chevron indicator (rotates 180° when open) - Accessible with aria-expanded and aria-controls - Content panel with left border accent
1115
+ Collapsible component for showing/hiding content. Features: - Animated chevron indicator (rotates 180° when open) - Accessible with aria-expanded and aria-controls - Content panel with left border accent
1104
1116
 
1105
1117
  **Type:** component
1106
1118
 
@@ -1128,7 +1140,7 @@ Collapsible component for showing/hiding content. Features: - Animated chevron
1128
1140
 
1129
1141
  ### Combobox
1130
1142
 
1131
- Combobox — autocomplete input with filterable dropdown list. Compound component: `Combobox` (Root), `.TriggerInput`, `.TriggerValue`, `.TriggerMultipleWithInput`, `.Content`, `.Item`, `.Chip`, `.Input`, `.Empty`, `.GroupLabel`, `.Group`, `.List`, `.Collection`.
1143
+ Combobox — autocomplete input with filterable dropdown list. Compound component: `Combobox` (Root), `.TriggerInput`, `.TriggerValue`, `.TriggerMultipleWithInput`, `.Content`, `.Item`, `.Chip`, `.Input`, `.Empty`, `.GroupLabel`, `.Group`, `.List`, `.Collection`.
1132
1144
 
1133
1145
  **Type:** component
1134
1146
 
@@ -1179,6 +1191,7 @@ This is a compound component. Use these sub-components:
1179
1191
  Content sub-component
1180
1192
 
1181
1193
  Props:
1194
+
1182
1195
  - `className`: string
1183
1196
  - `align`: ComboboxBase.Positioner.Props["align"]
1184
1197
  - `alignOffset`: ComboboxBase.Positioner.Props["alignOffset"]
@@ -1230,9 +1243,11 @@ List sub-component
1230
1243
  Renders filtered list items. Use when you need more control over item rendering.
1231
1244
 
1232
1245
  Props:
1246
+
1233
1247
  - `children`: (item: T, index: number) => ReactNode (required) - Function that receives each filtered item and returns a node
1234
1248
 
1235
1249
  Usage:
1250
+
1236
1251
  ```tsx
1237
1252
  <Combobox.Collection>
1238
1253
  {(item, index) => (
@@ -1243,12 +1258,11 @@ Usage:
1243
1258
  </Combobox.Collection>
1244
1259
  ```
1245
1260
 
1246
-
1247
1261
  ---
1248
1262
 
1249
1263
  ### CommandPalette
1250
1264
 
1251
- CommandPalette — accessible command palette / spotlight search overlay. Compound component: `CommandPalette.Root` (or `.Dialog` + `.Panel`), `.Input`, `.List`, `.Results`, `.Items`, `.Group`, `.GroupLabel`, `.Item`, `.ResultItem`, `.HighlightedText`, `.Empty`, `.Loading`, `.Footer`. Built on `@base-ui/react/autocomplete` + `@base-ui/react/dialog`.
1265
+ CommandPalette — accessible command palette / spotlight search overlay. Compound component: `CommandPalette.Root` (or `.Dialog` + `.Panel`), `.Input`, `.List`, `.Results`, `.Items`, `.Group`, `.GroupLabel`, `.Item`, `.ResultItem`, `.HighlightedText`, `.Empty`, `.Loading`, `.Footer`. Built on `@base-ui/react/autocomplete` + `@base-ui/react/dialog`.
1252
1266
 
1253
1267
  **Type:** component
1254
1268
 
@@ -1317,12 +1331,11 @@ ColumnToggle sub-component
1317
1331
 
1318
1332
  Empty sub-component
1319
1333
 
1320
-
1321
1334
  ---
1322
1335
 
1323
1336
  ### DatePicker
1324
1337
 
1325
- DatePicker — a date selection calendar. Built on [react-day-picker](https://daypicker.dev) with SF styling. Supports three selection modes: single, multiple, and range.
1338
+ DatePicker — a date selection calendar. Built on [react-day-picker](https://daypicker.dev) with SignalFlare styling. Supports three selection modes: single, multiple, and range.
1326
1339
 
1327
1340
  **Type:** component
1328
1341
 
@@ -1345,7 +1358,7 @@ DatePicker — a date selection calendar. Built on [react-day-picker](https://d
1345
1358
 
1346
1359
  ### DateRangePicker
1347
1360
 
1348
- DateRangePicker — dual-calendar date range selector. Renders two side-by-side month calendars with click-to-select start/end dates, hover preview of the range, a timezone footer, and a reset button.
1361
+ DateRangePicker — dual-calendar date range selector. Renders two side-by-side month calendars with click-to-select start/end dates, hover preview of the range, a timezone footer, and a reset button.
1349
1362
 
1350
1363
  **Type:** component
1351
1364
 
@@ -1465,12 +1478,11 @@ Description sub-component
1465
1478
 
1466
1479
  Close sub-component
1467
1480
 
1468
-
1469
1481
  ---
1470
1482
 
1471
1483
  ### DropdownMenu
1472
1484
 
1473
- DropdownMenu — accessible dropdown menu anchored to a trigger. Compound component: `DropdownMenu` (Root), `.Trigger`, `.Content`, `.Item`, `.CheckboxItem`, `.RadioGroup`, `.RadioItem`, `.RadioItemIndicator`, `.Sub`, `.SubTrigger`, `.SubContent`, `.Label`, `.Separator`, `.Shortcut`, `.Group`. Built on `@base-ui/react/menu`.
1485
+ DropdownMenu — accessible dropdown menu anchored to a trigger. Compound component: `DropdownMenu` (Root), `.Trigger`, `.Content`, `.Item`, `.CheckboxItem`, `.RadioGroup`, `.RadioItem`, `.RadioItemIndicator`, `.Sub`, `.SubTrigger`, `.SubContent`, `.Label`, `.Separator`, `.Shortcut`, `.Group`. Built on `@base-ui/react/menu`.
1474
1486
 
1475
1487
  **Type:** component
1476
1488
 
@@ -1552,7 +1564,6 @@ Shortcut sub-component
1552
1564
 
1553
1565
  Group sub-component (wraps DropdownMenuPrimitive)
1554
1566
 
1555
-
1556
1567
  ---
1557
1568
 
1558
1569
  ### Empty
@@ -1625,7 +1636,7 @@ Form field wrapper that provides a label, optional description, and error displa
1625
1636
 
1626
1637
  ### Filters
1627
1638
 
1628
- Filters component for building and managing active filter conditions. Supports multiple filter types (text, select, multiselect, custom), operators, and an "Add Filter" popover interface. Designed to work standalone or with DataGrid for advanced data filtering.
1639
+ Filters component for building and managing active filter conditions. Supports multiple filter types (text, select, multiselect, custom), operators, and an "Add Filter" popover interface. Designed to work standalone or with DataGrid for advanced data filtering.
1629
1640
 
1630
1641
  **Type:** component
1631
1642
 
@@ -1758,7 +1769,7 @@ Input component
1758
1769
 
1759
1770
  ### Label
1760
1771
 
1761
- Label component for form fields. Provides a standardized way to display labels with optional indicators: - Optional indicator: gray "(optional)" text when `showOptional={true}` - Tooltip: info icon with hover tooltip for additional context
1772
+ Label component for form fields. Provides a standardized way to display labels with optional indicators: - Optional indicator: gray "(optional)" text when `showOptional={true}` - Tooltip: info icon with hover tooltip for additional context
1762
1773
 
1763
1774
  **Type:** component
1764
1775
 
@@ -1809,7 +1820,6 @@ LayerCard component
1809
1820
 
1810
1821
  **Styling:**
1811
1822
 
1812
-
1813
1823
  **Sub-Components:**
1814
1824
 
1815
1825
  This is a compound component. Use these sub-components:
@@ -1822,7 +1832,6 @@ Primary sub-component
1822
1832
 
1823
1833
  Secondary sub-component
1824
1834
 
1825
-
1826
1835
  ---
1827
1836
 
1828
1837
  ### Link
@@ -1845,6 +1854,7 @@ Link component
1845
1854
  **State Classes:**
1846
1855
  - `"plain"`:
1847
1856
  - `hover`: `hover:text-primary/70`
1857
+
1848
1858
  - `to`: string
1849
1859
  - `children`: ReactNode
1850
1860
  - `className`: string
@@ -1860,7 +1870,7 @@ Link component
1860
1870
  - `type`: string
1861
1871
  - `referrerPolicy`: enum
1862
1872
  - `render`: ReactNode
1863
- Allows you to replace the components HTML element with a different tag, or compose it with another component.
1873
+ Allows you to replace the component's HTML element with a different tag, or compose it with another component.
1864
1874
 
1865
1875
  Accepts a `ReactElement` or a function that returns the element to render.
1866
1876
 
@@ -1872,7 +1882,6 @@ This is a compound component. Use these sub-components:
1872
1882
 
1873
1883
  ExternalIcon sub-component
1874
1884
 
1875
-
1876
1885
  ---
1877
1886
 
1878
1887
  ### Loader
@@ -1898,7 +1907,7 @@ Animated circular spinner for indicating loading states. Uses CSS keyframe anima
1898
1907
 
1899
1908
  ### MenuBar
1900
1909
 
1901
- MenuBar — horizontal icon-button toolbar with keyboard arrow-key navigation. Each option renders as a `<button>` with a Tooltip. The active option is visually highlighted with an elevated background.
1910
+ MenuBar — horizontal icon-button toolbar with keyboard arrow-key navigation. Each option renders as a `<button>` with a Tooltip. The active option is visually highlighted with an elevated background.
1902
1911
 
1903
1912
  **Type:** component
1904
1913
 
@@ -1923,7 +1932,6 @@ MenuBar — horizontal icon-button toolbar with keyboard arrow-key navigation.
1923
1932
 
1924
1933
  **Styling:**
1925
1934
 
1926
-
1927
1935
  ---
1928
1936
 
1929
1937
  ### Meter
@@ -1993,7 +2001,6 @@ Page navigation controls with page count display.
1993
2001
 
1994
2002
  **Styling:**
1995
2003
 
1996
-
1997
2004
  ---
1998
2005
 
1999
2006
  ### Popover
@@ -2042,7 +2049,6 @@ Description sub-component
2042
2049
 
2043
2050
  Close sub-component
2044
2051
 
2045
-
2046
2052
  ---
2047
2053
 
2048
2054
  ### PromptInput
@@ -2079,13 +2085,70 @@ Prompt input form. Can be self-managed or controlled via `PromptInputProvider`.
2079
2085
 
2080
2086
  **Colors (sf tokens used):**
2081
2087
 
2082
- `bg-sf-base`, `bg-sf-elevated`, `bg-sf-overlay`, `bg-sf-tint`, `ring-sf-line`, `ring-sf-ring`, `text-sf-brand`, `text-sf-default`, `text-sf-inactive`, `text-sf-subtle`
2088
+ `bg-sf-base`, `bg-sf-control`, `bg-sf-elevated`, `bg-sf-info-tint`, `bg-sf-overlay`, `bg-sf-tint`, `border-sf-info`, `ring-sf-line`, `ring-sf-ring`, `text-sf-brand`, `text-sf-default`, `text-sf-inactive`, `text-sf-strong`, `text-sf-subtle`
2089
+
2090
+ **Sub-Components:**
2091
+
2092
+ This is a compound component. Use these sub-components:
2093
+
2094
+ #### PromptInput.BackLayer
2095
+
2096
+ BackLayer sub-component
2097
+
2098
+ #### PromptInput.Textarea
2099
+
2100
+ Textarea sub-component
2101
+
2102
+ #### PromptInput.Editor
2103
+
2104
+ Editor sub-component
2105
+
2106
+ #### PromptInput.Toolbar
2107
+
2108
+ Toolbar sub-component
2109
+
2110
+ #### PromptInput.Tools
2111
+
2112
+ Tools sub-component
2113
+
2114
+ #### PromptInput.Submit
2115
+
2116
+ Submit sub-component
2117
+
2118
+ #### PromptInput.ModeSelector
2119
+
2120
+ ModeSelector sub-component
2121
+
2122
+ #### PromptInput.AddTagButton
2123
+
2124
+ AddTagButton sub-component
2125
+
2126
+ #### PromptInput.Tags
2127
+
2128
+ Tags sub-component
2129
+
2130
+ #### PromptInput.Tag
2131
+
2132
+ Tag sub-component
2133
+
2134
+ #### PromptInput.AttachButton
2135
+
2136
+ AttachButton sub-component
2137
+
2138
+ #### PromptInput.Attachments
2139
+
2140
+ Attachments sub-component
2141
+
2142
+ #### PromptInput.Attachment
2143
+
2144
+ Attachment sub-component
2145
+
2083
2146
 
2084
2147
  ---
2085
2148
 
2086
2149
  ### Radio
2087
2150
 
2088
- Radio — radio button group for single-select choices. Compound component: `Radio.Group` (with built-in Fieldset) and `Radio.Item`. Built on `@base-ui/react/radio-group` + `@base-ui/react/radio`.
2151
+ Radio — radio button group for single-select choices. Compound component: `Radio.Group` (with built-in Fieldset) and `Radio.Item`. Built on `@base-ui/react/radio-group` + `@base-ui/react/radio`.
2089
2152
 
2090
2153
  **Type:** component
2091
2154
 
@@ -2118,7 +2181,7 @@ Radio — radio button group for single-select choices. Compound component: `Ra
2118
2181
 
2119
2182
  **Colors (sf tokens used):**
2120
2183
 
2121
- `bg-sf-base`, `bg-sf-contrast`, `border-sf-line`, `ring-sf-danger`, `ring-sf-line`, `ring-sf-ring`, `text-sf-danger`, `text-sf-default`, `text-sf-subtle`
2184
+ `bg-sf-base`, `bg-sf-contrast`, `border-sf-line`, `ring-sf-danger`, `ring-sf-interact`, `ring-sf-ring`, `text-sf-danger`, `text-sf-default`, `text-sf-subtle`
2122
2185
 
2123
2186
  ---
2124
2187
 
@@ -2169,7 +2232,6 @@ Select component
2169
2232
 
2170
2233
  **Styling:**
2171
2234
 
2172
-
2173
2235
  **Sub-Components:**
2174
2236
 
2175
2237
  This is a compound component. Use these sub-components:
@@ -2178,7 +2240,6 @@ This is a compound component. Use these sub-components:
2178
2240
 
2179
2241
  Option sub-component
2180
2242
 
2181
-
2182
2243
  ---
2183
2244
 
2184
2245
  ### SensitiveInput
@@ -2238,7 +2299,7 @@ Password/secret input that masks its value by default and reveals on click. Incl
2238
2299
 
2239
2300
  ### Sidebar
2240
2301
 
2241
- Sidebar — responsive navigation panel with expand/collapse support. Compound component: `Sidebar` (root `<aside>`), `.Provider`, `.Header`, `.Content`, `.Footer`, `.Group`, `.GroupLabel`, `.GroupContent`, `.Menu`, `.MenuItem`, `.MenuButton`, `.MenuAction`, `.MenuBadge`, `.MenuSub`, `.MenuSubItem`, `.MenuSubButton`, `.Separator`, `.Input`, `.Trigger`, `.Rail`, `.MenuChevron`, `.Collapsible`, `.CollapsibleTrigger`, `.CollapsibleContent`. Built on `@base-ui/react/collapsible` + `@base-ui/react/dialog`.
2302
+ Sidebar — responsive navigation panel with expand/collapse support. Compound component: `Sidebar` (root `<aside>`), `.Provider`, `.Header`, `.Content`, `.Footer`, `.Group`, `.GroupLabel`, `.GroupContent`, `.Menu`, `.MenuItem`, `.MenuButton`, `.MenuAction`, `.MenuBadge`, `.MenuSub`, `.MenuSubItem`, `.MenuSubButton`, `.Separator`, `.Input`, `.Trigger`, `.Rail`, `.MenuChevron`, `.Collapsible`, `.CollapsibleTrigger`, `.CollapsibleContent`. Built on `@base-ui/react/collapsible` + `@base-ui/react/dialog`.
2242
2303
 
2243
2304
  **Type:** component
2244
2305
 
@@ -2282,7 +2343,6 @@ Sidebar — responsive navigation panel with expand/collapse support. Compound
2282
2343
 
2283
2344
  **Styling:**
2284
2345
 
2285
-
2286
2346
  **Sub-Components:**
2287
2347
 
2288
2348
  This is a compound component. Use these sub-components:
@@ -2292,6 +2352,7 @@ This is a compound component. Use these sub-components:
2292
2352
  Provider sub-component
2293
2353
 
2294
2354
  Props:
2355
+
2295
2356
  - `defaultOpen`: boolean
2296
2357
  - `open`: boolean
2297
2358
  - `variant`: SidebarVariant
@@ -2396,7 +2457,6 @@ CollapsibleTrigger sub-component
2396
2457
 
2397
2458
  CollapsibleContent sub-component
2398
2459
 
2399
-
2400
2460
  ---
2401
2461
 
2402
2462
  ### SignalFlareAILogo
@@ -2674,6 +2734,60 @@ SignalFlare AI logo component.
2674
2734
 
2675
2735
  ---
2676
2736
 
2737
+ ### Sparkline
2738
+
2739
+ Sparkline — a tiny inline chart intended for embedding in cards, tables, or row-level cells. Renders without axes, grid, or legend by default.
2740
+
2741
+ **Type:** component
2742
+
2743
+ **Import:** `import { Sparkline } from "@signalflare-ai/ui";`
2744
+
2745
+ **Category:** Other
2746
+
2747
+ **Props:**
2748
+
2749
+ - `className`: string
2750
+ Additional CSS classes
2751
+ - `children`: ReactNode
2752
+ Child elements
2753
+
2754
+ ---
2755
+
2756
+ ### StatCard
2757
+
2758
+ StatCard — compact KPI tile displaying a label, a primary value, and an optional delta + trend sparkline.
2759
+
2760
+ **Type:** component
2761
+
2762
+ **Import:** `import { StatCard } from "@signalflare-ai/ui";`
2763
+
2764
+ **Category:** Other
2765
+
2766
+ **Props:**
2767
+
2768
+ - `size`: enum [default: base]
2769
+ Size of the card. Defaults to `"base"`.
2770
+ - `label`: ReactNode
2771
+ Short descriptive label (e.g. `"Active users"`).
2772
+ - `value`: ReactNode
2773
+ Primary value to emphasise (pre-formatted).
2774
+ - `hint`: ReactNode
2775
+ Optional secondary text displayed under the value.
2776
+ - `delta`: StatCardDelta
2777
+ Optional change indicator (arrow + number + label).
2778
+ - `trend`: ReactNode
2779
+ Optional content slot rendered on the right-hand side — typically a `Sparkline` showing the metric's trend.
2780
+ - `loading`: boolean
2781
+ When `true`, renders a skeleton placeholder in place of value + delta.
2782
+ - `className`: string
2783
+ Additional CSS classes merged via `cn()`.
2784
+
2785
+ **Colors (sf tokens used):**
2786
+
2787
+ `bg-sf-elevated`, `bg-sf-fill`, `text-sf-danger`, `text-sf-default`, `text-sf-strong`, `text-sf-subtle`, `text-sf-success`
2788
+
2789
+ ---
2790
+
2677
2791
  ### Surface
2678
2792
 
2679
2793
  Surface component
@@ -2756,6 +2870,7 @@ Item sub-component
2756
2870
  Group sub-component
2757
2871
 
2758
2872
  Props:
2873
+
2759
2874
  - `legend`: string (required)
2760
2875
  - `children`: ReactNode (required)
2761
2876
  - `error`: string
@@ -2764,12 +2879,11 @@ Props:
2764
2879
  - `controlFirst`: boolean
2765
2880
  - `className`: string
2766
2881
 
2767
-
2768
2882
  ---
2769
2883
 
2770
2884
  ### Table
2771
2885
 
2772
- Table — semantic HTML table with styled rows, cells, and selection support. Compound component: `Table` (Root), `.Header`, `.Head`, `.Body`, `.Row`, `.Cell`, `.Footer`, `.CheckCell`, `.CheckHead`, `.ResizeHandle`.
2886
+ Table — semantic HTML table with styled rows, cells, and selection support. Compound component: `Table` (Root), `.Header`, `.Head`, `.Body`, `.Row`, `.Cell`, `.Footer`, `.CheckCell`, `.CheckHead`, `.ResizeHandle`.
2773
2887
 
2774
2888
  **Type:** component
2775
2889
 
@@ -2834,7 +2948,6 @@ Footer sub-component
2834
2948
 
2835
2949
  ResizeHandle sub-component
2836
2950
 
2837
-
2838
2951
  ---
2839
2952
 
2840
2953
  ### Tabs
@@ -2877,7 +2990,6 @@ Tab navigation component with segmented, underline, or pill style. Built on Base
2877
2990
 
2878
2991
  **Styling:**
2879
2992
 
2880
-
2881
2993
  ---
2882
2994
 
2883
2995
  ### Text
@@ -2920,12 +3032,40 @@ Text component
2920
3032
 
2921
3033
  **Styling:**
2922
3034
 
3035
+ ---
3036
+
3037
+ ### TextRoll
3038
+
3039
+ Letter-by-letter roll animation. Each character flips on the X axis: the current letter rolls up and out, the new letter rolls in from below. Good for title changes (e.g. a streaming activity group swapping its current-step label) where the text content is short and the change should register visually. Wraps the string in an `aria-hidden` visual stack with a screen-reader-only copy of the full text so a11y tools always read the real content.
3040
+
3041
+ **Type:** component
3042
+
3043
+ **Import:** `import { TextRoll } from "@signalflare-ai/ui";`
3044
+
3045
+ **Category:** Other
3046
+
3047
+ **Props:**
3048
+
3049
+ - `children`: string (required)
3050
+ Text to animate. Each character rolls in / out independently.
3051
+ - `duration`: number
3052
+ Duration (seconds) of each letter's enter and exit tween.
3053
+ - `getEnterDelay`: object
3054
+ Per-letter delay for the enter animation.
3055
+ - `getExitDelay`: object
3056
+ Per-letter delay for the exit animation.
3057
+ - `className`: string
3058
+ Additional CSS classes merged via `cn()`. Use sf semantic tokens only.
3059
+ - `transition`: Transition
3060
+ Shared transition for both enter and exit tweens.
3061
+ - `variants`: TextRollVariants
3062
+ Override the default rotate-X roll with custom enter/exit variants.
2923
3063
 
2924
3064
  ---
2925
3065
 
2926
3066
  ### ThemeToggle
2927
3067
 
2928
- Theme toggle button. Cycles through light → dark → system (follows OS) modes. Reads from and writes to `localStorage` under the key `"theme"`. When set to `"system"` the key is removed so the OS preference takes over automatically. Applies the resolved mode to `document.documentElement.dataset.mode`.
3068
+ Theme toggle button. Cycles through light → dark → system (follows OS) modes. Reads from and writes to `localStorage` under the key `"theme"`. When set to `"system"` the key is removed so the OS preference takes over automatically. Applies the resolved mode to `document.documentElement.dataset.mode`.
2929
3069
 
2930
3070
  **Type:** component
2931
3071
 
@@ -2954,7 +3094,7 @@ Theme toggle button. Cycles through light → dark → system (follows OS) modes
2954
3094
 
2955
3095
  ### Toasty
2956
3096
 
2957
- Toasty — toast notification provider and viewport. Renders a `Toast.Provider` with a fixed-position viewport in the bottom-right corner. Toasts stack with smooth enter/exit animations, swipe-to-dismiss, and expand-on-hover. Built on `@base-ui/react/toast`.
3097
+ Toasty — toast notification provider and viewport. Renders a `Toast.Provider` with a fixed-position viewport in the bottom-right corner. Toasts stack with smooth enter/exit animations, swipe-to-dismiss, and expand-on-hover. Built on `@base-ui/react/toast`.
2958
3098
 
2959
3099
  **Type:** component
2960
3100
 
@@ -2979,7 +3119,6 @@ Toasty — toast notification provider and viewport. Renders a `Toast.Provider`
2979
3119
 
2980
3120
  **Styling:**
2981
3121
 
2982
-
2983
3122
  ---
2984
3123
 
2985
3124
  ### Tooltip
@@ -3024,7 +3163,6 @@ Multi-line textarea input with Input variants and InputArea-specific dimensions
3024
3163
 
3025
3164
  **Props:**
3026
3165
 
3027
-
3028
3166
  **Styling:**
3029
3167
 
3030
3168
  - **Size Variants:**
@@ -3036,7 +3174,8 @@ Multi-line textarea input with Input variants and InputArea-specific dimensions
3036
3174
  ## Quick Reference
3037
3175
 
3038
3176
  **Components by Category:**
3039
- - **Other:** AiActions, AiAgentCard, AiApproval, AiCodeBlock, AiConversation, AiInfoBanner, AiLoader, AiMessage, AiMissionHeader, AiQuestion, AiReasoning, AiResponse, AiShimmer, AiStatusBadge, AiStreamingText, AiSubagent, AiSuggestions, AiTaskList, AiTimeline, AiToolCall, AiUsageBar, DataGrid, DatePicker, Filters, Label, Link, PromptInput, SensitiveInput, Sidebar, SignalFlareAILogo, Table, ThemeToggle, AgentHarness, Commander, DeleteResource, Map
3177
+
3178
+ - **Other:** AiActions, AiAgentCard, AiApproval, AiCodeBlock, AiConversation, AiInfoBanner, AiMessage, AiMissionHeader, AiPartGroup, AiQuestion, AiReasoning, AiResponse, AiShimmer, AiStatusBadge, AiStreamingText, AiSubagent, AiSuggestions, AiTaskList, AiTimeline, AiToolCall, AiUsageBar, DataGrid, DatePicker, Filters, Label, Link, PromptInput, SensitiveInput, Sidebar, SignalFlareAILogo, Sparkline, StatCard, Table, TextRoll, ThemeToggle, AgentHarness, Commander, DashboardGrid, DeleteResource, Map, MetricsOverview
3040
3179
  - **Display:** Badge, Breadcrumbs, Code, Collapsible, Empty, LayerCard, Meter, Text
3041
3180
  - **Feedback:** Banner, Loader, Toasty
3042
3181
  - **Action:** Button, ClipboardText