@signalflare-ai/ui 0.5.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 (765) hide show
  1. package/CHANGELOG.md +96 -0
  2. package/README.md +527 -0
  3. package/ai/USAGE.md +200 -0
  4. package/ai/component-registry.json +7103 -0
  5. package/ai/component-registry.md +3046 -0
  6. package/ai/schemas.ts +1230 -0
  7. package/bin/intent.js +23 -0
  8. package/bin/sf.js +34 -0
  9. package/dist/.build-complete +1 -0
  10. package/dist/ai/schemas.d.ts +7056 -0
  11. package/dist/ai/schemas.d.ts.map +1 -0
  12. package/dist/ai-actions-DG1dhDMP.js +57 -0
  13. package/dist/ai-actions-DG1dhDMP.js.map +1 -0
  14. package/dist/ai-agent-card-BbtL4NII.js +171 -0
  15. package/dist/ai-agent-card-BbtL4NII.js.map +1 -0
  16. package/dist/ai-approval-Mb7-BY6i.js +184 -0
  17. package/dist/ai-approval-Mb7-BY6i.js.map +1 -0
  18. package/dist/ai-code-block-BI_z0UVR.js +110 -0
  19. package/dist/ai-code-block-BI_z0UVR.js.map +1 -0
  20. package/dist/ai-conversation-DYtExcrw.js +184 -0
  21. package/dist/ai-conversation-DYtExcrw.js.map +1 -0
  22. package/dist/ai-info-banner-BpzauUAY.js +76 -0
  23. package/dist/ai-info-banner-BpzauUAY.js.map +1 -0
  24. package/dist/ai-loader-Cr3eQkNS.js +134 -0
  25. package/dist/ai-loader-Cr3eQkNS.js.map +1 -0
  26. package/dist/ai-message-CV8SBoHM.js +286 -0
  27. package/dist/ai-message-CV8SBoHM.js.map +1 -0
  28. package/dist/ai-mission-header-ByYkJ6YP.js +171 -0
  29. package/dist/ai-mission-header-ByYkJ6YP.js.map +1 -0
  30. package/dist/ai-prompt-input-Bo1YuJly.js +769 -0
  31. package/dist/ai-prompt-input-Bo1YuJly.js.map +1 -0
  32. package/dist/ai-question-Dp1g9k2o.js +149 -0
  33. package/dist/ai-question-Dp1g9k2o.js.map +1 -0
  34. package/dist/ai-reasoning-UAmNx_LD.js +270 -0
  35. package/dist/ai-reasoning-UAmNx_LD.js.map +1 -0
  36. package/dist/ai-response-BWoVsNQG.js +42 -0
  37. package/dist/ai-response-BWoVsNQG.js.map +1 -0
  38. package/dist/ai-shimmer-BpOmfonu.js +43 -0
  39. package/dist/ai-shimmer-BpOmfonu.js.map +1 -0
  40. package/dist/ai-status-badge-WhbKVeqn.js +63 -0
  41. package/dist/ai-status-badge-WhbKVeqn.js.map +1 -0
  42. package/dist/ai-streaming-text-ClL7FwvD.js +81 -0
  43. package/dist/ai-streaming-text-ClL7FwvD.js.map +1 -0
  44. package/dist/ai-subagent-BruGN1UE.js +133 -0
  45. package/dist/ai-subagent-BruGN1UE.js.map +1 -0
  46. package/dist/ai-suggestion-CNsCZj5P.js +55 -0
  47. package/dist/ai-suggestion-CNsCZj5P.js.map +1 -0
  48. package/dist/ai-task-list-B9CpMDYN.js +120 -0
  49. package/dist/ai-task-list-B9CpMDYN.js.map +1 -0
  50. package/dist/ai-timeline-Bb5ntsr3.js +373 -0
  51. package/dist/ai-timeline-Bb5ntsr3.js.map +1 -0
  52. package/dist/ai-tool-BGH8nQ_D.js +437 -0
  53. package/dist/ai-tool-BGH8nQ_D.js.map +1 -0
  54. package/dist/ai-usage-bar-BI-p-JBk.js +70 -0
  55. package/dist/ai-usage-bar-BI-p-JBk.js.map +1 -0
  56. package/dist/badge-D_eaA6wv.js +128 -0
  57. package/dist/badge-D_eaA6wv.js.map +1 -0
  58. package/dist/banner-B_6oBrsu.js +54 -0
  59. package/dist/banner-B_6oBrsu.js.map +1 -0
  60. package/dist/breadcrumbs-BlmeYfgq.js +128 -0
  61. package/dist/breadcrumbs-BlmeYfgq.js.map +1 -0
  62. package/dist/button-De0267YU.js +170 -0
  63. package/dist/button-De0267YU.js.map +1 -0
  64. package/dist/catalog.js +506 -0
  65. package/dist/catalog.js.map +1 -0
  66. package/dist/chart-Bes4MN3C.js +618 -0
  67. package/dist/chart-Bes4MN3C.js.map +1 -0
  68. package/dist/checkbox-CPX7lBaU.js +153 -0
  69. package/dist/checkbox-CPX7lBaU.js.map +1 -0
  70. package/dist/clipboard-text-92YeCybc.js +176 -0
  71. package/dist/clipboard-text-92YeCybc.js.map +1 -0
  72. package/dist/cn-YROP2_ox.js +25 -0
  73. package/dist/cn-YROP2_ox.js.map +1 -0
  74. package/dist/code-DE1Yy1Cu.js +97 -0
  75. package/dist/code-DE1Yy1Cu.js.map +1 -0
  76. package/dist/collapsible-DWsXeXmS.js +72 -0
  77. package/dist/collapsible-DWsXeXmS.js.map +1 -0
  78. package/dist/combobox-B0bLdsX8.js +197 -0
  79. package/dist/combobox-B0bLdsX8.js.map +1 -0
  80. package/dist/command-line/cli.js +823 -0
  81. package/dist/command-palette-CBTY8EiF.js +484 -0
  82. package/dist/command-palette-CBTY8EiF.js.map +1 -0
  83. package/dist/components/ai-actions.js +3 -0
  84. package/dist/components/ai-agent-card.js +3 -0
  85. package/dist/components/ai-approval.js +3 -0
  86. package/dist/components/ai-code-block.js +3 -0
  87. package/dist/components/ai-conversation.js +3 -0
  88. package/dist/components/ai-info-banner.js +3 -0
  89. package/dist/components/ai-loader.js +3 -0
  90. package/dist/components/ai-message.js +3 -0
  91. package/dist/components/ai-mission-header.js +3 -0
  92. package/dist/components/ai-prompt-input.js +3 -0
  93. package/dist/components/ai-question.js +3 -0
  94. package/dist/components/ai-reasoning.js +3 -0
  95. package/dist/components/ai-response.js +3 -0
  96. package/dist/components/ai-shimmer.js +3 -0
  97. package/dist/components/ai-status-badge.js +3 -0
  98. package/dist/components/ai-streaming-text.js +3 -0
  99. package/dist/components/ai-subagent.js +3 -0
  100. package/dist/components/ai-suggestion.js +3 -0
  101. package/dist/components/ai-task-list.js +3 -0
  102. package/dist/components/ai-timeline.js +3 -0
  103. package/dist/components/ai-tool.js +3 -0
  104. package/dist/components/ai-usage-bar.js +3 -0
  105. package/dist/components/badge.js +3 -0
  106. package/dist/components/banner.js +3 -0
  107. package/dist/components/breadcrumbs.js +3 -0
  108. package/dist/components/button.js +3 -0
  109. package/dist/components/chart.js +3 -0
  110. package/dist/components/checkbox.js +3 -0
  111. package/dist/components/clipboard-text.js +3 -0
  112. package/dist/components/code.js +3 -0
  113. package/dist/components/collapsible.js +3 -0
  114. package/dist/components/combobox.js +3 -0
  115. package/dist/components/command-palette.js +3 -0
  116. package/dist/components/data-grid.js +3 -0
  117. package/dist/components/date-picker.js +3 -0
  118. package/dist/components/date-range-picker.js +3 -0
  119. package/dist/components/dialog.js +3 -0
  120. package/dist/components/dropdown.js +3 -0
  121. package/dist/components/empty.js +3 -0
  122. package/dist/components/field.js +3 -0
  123. package/dist/components/filters.js +3 -0
  124. package/dist/components/flow.js +3 -0
  125. package/dist/components/grid.js +3 -0
  126. package/dist/components/input.js +4 -0
  127. package/dist/components/label.js +3 -0
  128. package/dist/components/layer-card.js +3 -0
  129. package/dist/components/link.js +92 -0
  130. package/dist/components/link.js.map +1 -0
  131. package/dist/components/loader.js +4 -0
  132. package/dist/components/menubar.js +3 -0
  133. package/dist/components/meter.js +3 -0
  134. package/dist/components/pagination.js +3 -0
  135. package/dist/components/popover.js +3 -0
  136. package/dist/components/radio.js +3 -0
  137. package/dist/components/select.js +3 -0
  138. package/dist/components/sensitive-input.js +3 -0
  139. package/dist/components/sidebar.js +3 -0
  140. package/dist/components/signalflare-ai-logo.js +3 -0
  141. package/dist/components/surface.js +3 -0
  142. package/dist/components/switch.js +3 -0
  143. package/dist/components/table.js +3 -0
  144. package/dist/components/tabs.js +3 -0
  145. package/dist/components/text.js +3 -0
  146. package/dist/components/theme-toggle.js +3 -0
  147. package/dist/components/toast.js +3 -0
  148. package/dist/components/tooltip.js +3 -0
  149. package/dist/components/use-agent-harness.js +3 -0
  150. package/dist/data-grid-UJ9ja5cu.js +305 -0
  151. package/dist/data-grid-UJ9ja5cu.js.map +1 -0
  152. package/dist/date-picker-ebekkC3R.js +57 -0
  153. package/dist/date-picker-ebekkC3R.js.map +1 -0
  154. package/dist/date-range-picker-D75LLINc.js +347 -0
  155. package/dist/date-range-picker-D75LLINc.js.map +1 -0
  156. package/dist/dialog-CyHEQXEY.js +104 -0
  157. package/dist/dialog-CyHEQXEY.js.map +1 -0
  158. package/dist/dist-BNlyONdD.js +3546 -0
  159. package/dist/dist-BNlyONdD.js.map +1 -0
  160. package/dist/dropdown-J5T4pHaR.js +202 -0
  161. package/dist/dropdown-J5T4pHaR.js.map +1 -0
  162. package/dist/empty-D2TypIId.js +90 -0
  163. package/dist/empty-D2TypIId.js.map +1 -0
  164. package/dist/favicon.svg +4 -0
  165. package/dist/field-Y_UK1_Cg.js +57 -0
  166. package/dist/field-Y_UK1_Cg.js.map +1 -0
  167. package/dist/filters-BdBogf7D.js +682 -0
  168. package/dist/filters-BdBogf7D.js.map +1 -0
  169. package/dist/flow-BRsYUCJa.js +741 -0
  170. package/dist/flow-BRsYUCJa.js.map +1 -0
  171. package/dist/genui.js +40 -0
  172. package/dist/genui.js.map +1 -0
  173. package/dist/grid-qUAN9hFx.js +119 -0
  174. package/dist/grid-qUAN9hFx.js.map +1 -0
  175. package/dist/highlight-to-react-ClEfL81q.js +57 -0
  176. package/dist/highlight-to-react-ClEfL81q.js.map +1 -0
  177. package/dist/index.js +215 -0
  178. package/dist/index.js.map +1 -0
  179. package/dist/input-BxQAnXki.js +81 -0
  180. package/dist/input-BxQAnXki.js.map +1 -0
  181. package/dist/input-Cn25I4o5.js +121 -0
  182. package/dist/input-Cn25I4o5.js.map +1 -0
  183. package/dist/label-QtJxtJ4u.js +70 -0
  184. package/dist/label-QtJxtJ4u.js.map +1 -0
  185. package/dist/layer-card-BME0eljh.js +44 -0
  186. package/dist/layer-card-BME0eljh.js.map +1 -0
  187. package/dist/link-provider-BUZKXaNE.js +25 -0
  188. package/dist/link-provider-BUZKXaNE.js.map +1 -0
  189. package/dist/loader-DAcc-Uag.js +84 -0
  190. package/dist/loader-DAcc-Uag.js.map +1 -0
  191. package/dist/logo.svg +1 -0
  192. package/dist/menubar-C8NzAjfd.js +102 -0
  193. package/dist/menubar-C8NzAjfd.js.map +1 -0
  194. package/dist/meter-CpmTenEr.js +37 -0
  195. package/dist/meter-CpmTenEr.js.map +1 -0
  196. package/dist/pagination-C_YqCy8l.js +117 -0
  197. package/dist/pagination-C_YqCy8l.js.map +1 -0
  198. package/dist/popover-BRQZ2b6z.js +147 -0
  199. package/dist/popover-BRQZ2b6z.js.map +1 -0
  200. package/dist/primitives/accordion.js +2 -0
  201. package/dist/primitives/alert-dialog.js +2 -0
  202. package/dist/primitives/autocomplete.js +2 -0
  203. package/dist/primitives/avatar.js +2 -0
  204. package/dist/primitives/button.js +2 -0
  205. package/dist/primitives/checkbox-group.js +2 -0
  206. package/dist/primitives/checkbox.js +2 -0
  207. package/dist/primitives/collapsible.js +2 -0
  208. package/dist/primitives/combobox.js +2 -0
  209. package/dist/primitives/context-menu.js +2 -0
  210. package/dist/primitives/csp-provider.js +2 -0
  211. package/dist/primitives/dialog.js +2 -0
  212. package/dist/primitives/direction-provider.js +2 -0
  213. package/dist/primitives/drawer.js +2 -0
  214. package/dist/primitives/field.js +2 -0
  215. package/dist/primitives/fieldset.js +2 -0
  216. package/dist/primitives/form.js +2 -0
  217. package/dist/primitives/input.js +2 -0
  218. package/dist/primitives/menu.js +2 -0
  219. package/dist/primitives/menubar.js +2 -0
  220. package/dist/primitives/meter.js +2 -0
  221. package/dist/primitives/navigation-menu.js +2 -0
  222. package/dist/primitives/number-field.js +2 -0
  223. package/dist/primitives/popover.js +2 -0
  224. package/dist/primitives/preview-card.js +2 -0
  225. package/dist/primitives/progress.js +2 -0
  226. package/dist/primitives/radio-group.js +2 -0
  227. package/dist/primitives/radio.js +2 -0
  228. package/dist/primitives/scroll-area.js +2 -0
  229. package/dist/primitives/select.js +2 -0
  230. package/dist/primitives/separator.js +2 -0
  231. package/dist/primitives/slider.js +2 -0
  232. package/dist/primitives/switch.js +2 -0
  233. package/dist/primitives/tabs.js +2 -0
  234. package/dist/primitives/toast.js +2 -0
  235. package/dist/primitives/toggle-group.js +2 -0
  236. package/dist/primitives/toggle.js +2 -0
  237. package/dist/primitives/toolbar.js +2 -0
  238. package/dist/primitives/tooltip.js +2 -0
  239. package/dist/primitives.js +40 -0
  240. package/dist/radio-B7zg1wUI.js +101 -0
  241. package/dist/radio-B7zg1wUI.js.map +1 -0
  242. package/dist/registry.js +1 -0
  243. package/dist/select-9p721G00.js +95 -0
  244. package/dist/select-9p721G00.js.map +1 -0
  245. package/dist/sensitive-input-D5je2NLl.js +248 -0
  246. package/dist/sensitive-input-D5je2NLl.js.map +1 -0
  247. package/dist/sidebar-DOwBrq57.js +964 -0
  248. package/dist/sidebar-DOwBrq57.js.map +1 -0
  249. package/dist/signalflare-ai-logo-DDhxMJD6.js +260 -0
  250. package/dist/signalflare-ai-logo-DDhxMJD6.js.map +1 -0
  251. package/dist/skeleton-line-Do3UmGk9.js +36 -0
  252. package/dist/skeleton-line-Do3UmGk9.js.map +1 -0
  253. package/dist/src/blocks/agent-harness/agent-harness.d.ts +177 -0
  254. package/dist/src/blocks/agent-harness/agent-harness.d.ts.map +1 -0
  255. package/dist/src/blocks/agent-harness/agent-harness.tsx +1122 -0
  256. package/dist/src/blocks/agent-harness/index.d.ts +2 -0
  257. package/dist/src/blocks/agent-harness/index.d.ts.map +1 -0
  258. package/dist/src/blocks/commander/commander.d.ts +101 -0
  259. package/dist/src/blocks/commander/commander.d.ts.map +1 -0
  260. package/dist/src/blocks/commander/commander.tsx +477 -0
  261. package/dist/src/blocks/commander/index.d.ts +2 -0
  262. package/dist/src/blocks/commander/index.d.ts.map +1 -0
  263. package/dist/src/blocks/delete-resource/delete-resource.d.ts +46 -0
  264. package/dist/src/blocks/delete-resource/delete-resource.d.ts.map +1 -0
  265. package/dist/src/blocks/delete-resource/delete-resource.tsx +214 -0
  266. package/dist/src/blocks/delete-resource/index.d.ts +2 -0
  267. package/dist/src/blocks/delete-resource/index.d.ts.map +1 -0
  268. package/dist/src/blocks/map-block/index.d.ts +2 -0
  269. package/dist/src/blocks/map-block/index.d.ts.map +1 -0
  270. package/dist/src/blocks/map-block/map-block.d.ts +79 -0
  271. package/dist/src/blocks/map-block/map-block.d.ts.map +1 -0
  272. package/dist/src/blocks/map-block/map-block.tsx +522 -0
  273. package/dist/src/blocks/page-header/index.d.ts +2 -0
  274. package/dist/src/blocks/page-header/index.d.ts.map +1 -0
  275. package/dist/src/blocks/page-header/page-header.d.ts +38 -0
  276. package/dist/src/blocks/page-header/page-header.d.ts.map +1 -0
  277. package/dist/src/blocks/page-header/page-header.tsx +96 -0
  278. package/dist/src/blocks/resource-list/index.d.ts +2 -0
  279. package/dist/src/blocks/resource-list/index.d.ts.map +1 -0
  280. package/dist/src/blocks/resource-list/resource-list.d.ts +18 -0
  281. package/dist/src/blocks/resource-list/resource-list.d.ts.map +1 -0
  282. package/dist/src/blocks/resource-list/resource-list.test.tsx +27 -0
  283. package/dist/src/blocks/resource-list/resource-list.tsx +65 -0
  284. package/dist/src/catalog/catalog.d.ts +75 -0
  285. package/dist/src/catalog/catalog.d.ts.map +1 -0
  286. package/dist/src/catalog/data.d.ts +44 -0
  287. package/dist/src/catalog/data.d.ts.map +1 -0
  288. package/dist/src/catalog/index.d.ts +35 -0
  289. package/dist/src/catalog/index.d.ts.map +1 -0
  290. package/dist/src/catalog/sf-components.d.ts +8 -0
  291. package/dist/src/catalog/sf-components.d.ts.map +1 -0
  292. package/dist/src/catalog/sf-registry.d.ts +4 -0
  293. package/dist/src/catalog/sf-registry.d.ts.map +1 -0
  294. package/dist/src/catalog/types.d.ts +226 -0
  295. package/dist/src/catalog/types.d.ts.map +1 -0
  296. package/dist/src/catalog/visibility.d.ts +37 -0
  297. package/dist/src/catalog/visibility.d.ts.map +1 -0
  298. package/dist/src/command-line/build-cli.d.ts +7 -0
  299. package/dist/src/command-line/build-cli.d.ts.map +1 -0
  300. package/dist/src/command-line/cli.d.ts +13 -0
  301. package/dist/src/command-line/cli.d.ts.map +1 -0
  302. package/dist/src/command-line/commands/add.d.ts +10 -0
  303. package/dist/src/command-line/commands/add.d.ts.map +1 -0
  304. package/dist/src/command-line/commands/ai.d.ts +10 -0
  305. package/dist/src/command-line/commands/ai.d.ts.map +1 -0
  306. package/dist/src/command-line/commands/blocks.d.ts +10 -0
  307. package/dist/src/command-line/commands/blocks.d.ts.map +1 -0
  308. package/dist/src/command-line/commands/doc.d.ts +14 -0
  309. package/dist/src/command-line/commands/doc.d.ts.map +1 -0
  310. package/dist/src/command-line/commands/init.d.ts +18 -0
  311. package/dist/src/command-line/commands/init.d.ts.map +1 -0
  312. package/dist/src/command-line/commands/ls.d.ts +10 -0
  313. package/dist/src/command-line/commands/ls.d.ts.map +1 -0
  314. package/dist/src/command-line/commands/migrate.d.ts +10 -0
  315. package/dist/src/command-line/commands/migrate.d.ts.map +1 -0
  316. package/dist/src/command-line/utils/config.d.ts +42 -0
  317. package/dist/src/command-line/utils/config.d.ts.map +1 -0
  318. package/dist/src/command-line/utils/transformer.d.ts +21 -0
  319. package/dist/src/command-line/utils/transformer.d.ts.map +1 -0
  320. package/dist/src/components/ai-actions/ai-actions.d.ts +35 -0
  321. package/dist/src/components/ai-actions/ai-actions.d.ts.map +1 -0
  322. package/dist/src/components/ai-actions/index.d.ts +2 -0
  323. package/dist/src/components/ai-actions/index.d.ts.map +1 -0
  324. package/dist/src/components/ai-agent-card/ai-agent-card.d.ts +82 -0
  325. package/dist/src/components/ai-agent-card/ai-agent-card.d.ts.map +1 -0
  326. package/dist/src/components/ai-agent-card/index.d.ts +2 -0
  327. package/dist/src/components/ai-agent-card/index.d.ts.map +1 -0
  328. package/dist/src/components/ai-approval/ai-approval.d.ts +102 -0
  329. package/dist/src/components/ai-approval/ai-approval.d.ts.map +1 -0
  330. package/dist/src/components/ai-approval/index.d.ts +2 -0
  331. package/dist/src/components/ai-approval/index.d.ts.map +1 -0
  332. package/dist/src/components/ai-code-block/ai-code-block.d.ts +48 -0
  333. package/dist/src/components/ai-code-block/ai-code-block.d.ts.map +1 -0
  334. package/dist/src/components/ai-code-block/index.d.ts +2 -0
  335. package/dist/src/components/ai-code-block/index.d.ts.map +1 -0
  336. package/dist/src/components/ai-conversation/ai-conversation.d.ts +125 -0
  337. package/dist/src/components/ai-conversation/ai-conversation.d.ts.map +1 -0
  338. package/dist/src/components/ai-conversation/index.d.ts +2 -0
  339. package/dist/src/components/ai-conversation/index.d.ts.map +1 -0
  340. package/dist/src/components/ai-info-banner/ai-info-banner.d.ts +55 -0
  341. package/dist/src/components/ai-info-banner/ai-info-banner.d.ts.map +1 -0
  342. package/dist/src/components/ai-info-banner/index.d.ts +2 -0
  343. package/dist/src/components/ai-info-banner/index.d.ts.map +1 -0
  344. package/dist/src/components/ai-loader/ai-loader.d.ts +44 -0
  345. package/dist/src/components/ai-loader/ai-loader.d.ts.map +1 -0
  346. package/dist/src/components/ai-loader/index.d.ts +2 -0
  347. package/dist/src/components/ai-loader/index.d.ts.map +1 -0
  348. package/dist/src/components/ai-message/ai-message.d.ts +97 -0
  349. package/dist/src/components/ai-message/ai-message.d.ts.map +1 -0
  350. package/dist/src/components/ai-message/index.d.ts +2 -0
  351. package/dist/src/components/ai-message/index.d.ts.map +1 -0
  352. package/dist/src/components/ai-mission-header/ai-mission-header.d.ts +62 -0
  353. package/dist/src/components/ai-mission-header/ai-mission-header.d.ts.map +1 -0
  354. package/dist/src/components/ai-mission-header/index.d.ts +2 -0
  355. package/dist/src/components/ai-mission-header/index.d.ts.map +1 -0
  356. package/dist/src/components/ai-prompt-input/ai-prompt-input.d.ts +260 -0
  357. package/dist/src/components/ai-prompt-input/ai-prompt-input.d.ts.map +1 -0
  358. package/dist/src/components/ai-prompt-input/index.d.ts +2 -0
  359. package/dist/src/components/ai-prompt-input/index.d.ts.map +1 -0
  360. package/dist/src/components/ai-question/ai-question.d.ts +73 -0
  361. package/dist/src/components/ai-question/ai-question.d.ts.map +1 -0
  362. package/dist/src/components/ai-question/index.d.ts +2 -0
  363. package/dist/src/components/ai-question/index.d.ts.map +1 -0
  364. package/dist/src/components/ai-reasoning/ai-reasoning.d.ts +107 -0
  365. package/dist/src/components/ai-reasoning/ai-reasoning.d.ts.map +1 -0
  366. package/dist/src/components/ai-reasoning/index.d.ts +2 -0
  367. package/dist/src/components/ai-reasoning/index.d.ts.map +1 -0
  368. package/dist/src/components/ai-response/ai-response.d.ts +26 -0
  369. package/dist/src/components/ai-response/ai-response.d.ts.map +1 -0
  370. package/dist/src/components/ai-response/index.d.ts +2 -0
  371. package/dist/src/components/ai-response/index.d.ts.map +1 -0
  372. package/dist/src/components/ai-shimmer/ai-shimmer.d.ts +29 -0
  373. package/dist/src/components/ai-shimmer/ai-shimmer.d.ts.map +1 -0
  374. package/dist/src/components/ai-shimmer/index.d.ts +2 -0
  375. package/dist/src/components/ai-shimmer/index.d.ts.map +1 -0
  376. package/dist/src/components/ai-status-badge/ai-status-badge.d.ts +46 -0
  377. package/dist/src/components/ai-status-badge/ai-status-badge.d.ts.map +1 -0
  378. package/dist/src/components/ai-status-badge/index.d.ts +2 -0
  379. package/dist/src/components/ai-status-badge/index.d.ts.map +1 -0
  380. package/dist/src/components/ai-streaming-text/ai-streaming-text.d.ts +27 -0
  381. package/dist/src/components/ai-streaming-text/ai-streaming-text.d.ts.map +1 -0
  382. package/dist/src/components/ai-streaming-text/index.d.ts +2 -0
  383. package/dist/src/components/ai-streaming-text/index.d.ts.map +1 -0
  384. package/dist/src/components/ai-subagent/ai-subagent.d.ts +74 -0
  385. package/dist/src/components/ai-subagent/ai-subagent.d.ts.map +1 -0
  386. package/dist/src/components/ai-subagent/index.d.ts +2 -0
  387. package/dist/src/components/ai-subagent/index.d.ts.map +1 -0
  388. package/dist/src/components/ai-suggestion/ai-suggestion.d.ts +40 -0
  389. package/dist/src/components/ai-suggestion/ai-suggestion.d.ts.map +1 -0
  390. package/dist/src/components/ai-suggestion/index.d.ts +2 -0
  391. package/dist/src/components/ai-suggestion/index.d.ts.map +1 -0
  392. package/dist/src/components/ai-task-list/ai-task-list.d.ts +61 -0
  393. package/dist/src/components/ai-task-list/ai-task-list.d.ts.map +1 -0
  394. package/dist/src/components/ai-task-list/index.d.ts +2 -0
  395. package/dist/src/components/ai-task-list/index.d.ts.map +1 -0
  396. package/dist/src/components/ai-timeline/ai-timeline.d.ts +130 -0
  397. package/dist/src/components/ai-timeline/ai-timeline.d.ts.map +1 -0
  398. package/dist/src/components/ai-timeline/index.d.ts +2 -0
  399. package/dist/src/components/ai-timeline/index.d.ts.map +1 -0
  400. package/dist/src/components/ai-tool/ai-tool.d.ts +138 -0
  401. package/dist/src/components/ai-tool/ai-tool.d.ts.map +1 -0
  402. package/dist/src/components/ai-tool/index.d.ts +2 -0
  403. package/dist/src/components/ai-tool/index.d.ts.map +1 -0
  404. package/dist/src/components/ai-usage-bar/ai-usage-bar.d.ts +38 -0
  405. package/dist/src/components/ai-usage-bar/ai-usage-bar.d.ts.map +1 -0
  406. package/dist/src/components/ai-usage-bar/index.d.ts +2 -0
  407. package/dist/src/components/ai-usage-bar/index.d.ts.map +1 -0
  408. package/dist/src/components/badge/badge.d.ts +129 -0
  409. package/dist/src/components/badge/badge.d.ts.map +1 -0
  410. package/dist/src/components/badge/index.d.ts +2 -0
  411. package/dist/src/components/badge/index.d.ts.map +1 -0
  412. package/dist/src/components/banner/banner.d.ts +80 -0
  413. package/dist/src/components/banner/banner.d.ts.map +1 -0
  414. package/dist/src/components/banner/index.d.ts +2 -0
  415. package/dist/src/components/banner/index.d.ts.map +1 -0
  416. package/dist/src/components/breadcrumbs/breadcrumbs.d.ts +78 -0
  417. package/dist/src/components/breadcrumbs/breadcrumbs.d.ts.map +1 -0
  418. package/dist/src/components/breadcrumbs/index.d.ts +2 -0
  419. package/dist/src/components/breadcrumbs/index.d.ts.map +1 -0
  420. package/dist/src/components/button/button.d.ts +212 -0
  421. package/dist/src/components/button/button.d.ts.map +1 -0
  422. package/dist/src/components/button/index.d.ts +2 -0
  423. package/dist/src/components/button/index.d.ts.map +1 -0
  424. package/dist/src/components/chart/color.d.ts +98 -0
  425. package/dist/src/components/chart/color.d.ts.map +1 -0
  426. package/dist/src/components/chart/echart.d.ts +135 -0
  427. package/dist/src/components/chart/echart.d.ts.map +1 -0
  428. package/dist/src/components/chart/index.d.ts +5 -0
  429. package/dist/src/components/chart/index.d.ts.map +1 -0
  430. package/dist/src/components/chart/legend.d.ts +42 -0
  431. package/dist/src/components/chart/legend.d.ts.map +1 -0
  432. package/dist/src/components/chart/timeseries-chart.d.ts +119 -0
  433. package/dist/src/components/chart/timeseries-chart.d.ts.map +1 -0
  434. package/dist/src/components/checkbox/checkbox.d.ts +174 -0
  435. package/dist/src/components/checkbox/checkbox.d.ts.map +1 -0
  436. package/dist/src/components/checkbox/index.d.ts +2 -0
  437. package/dist/src/components/checkbox/index.d.ts.map +1 -0
  438. package/dist/src/components/clipboard-text/clipboard-text.d.ts +86 -0
  439. package/dist/src/components/clipboard-text/clipboard-text.d.ts.map +1 -0
  440. package/dist/src/components/clipboard-text/index.d.ts +2 -0
  441. package/dist/src/components/clipboard-text/index.d.ts.map +1 -0
  442. package/dist/src/components/code/code.d.ts +165 -0
  443. package/dist/src/components/code/code.d.ts.map +1 -0
  444. package/dist/src/components/code/index.d.ts +4 -0
  445. package/dist/src/components/code/index.d.ts.map +1 -0
  446. package/dist/src/components/collapsible/collapsible.d.ts +72 -0
  447. package/dist/src/components/collapsible/collapsible.d.ts.map +1 -0
  448. package/dist/src/components/collapsible/index.d.ts +2 -0
  449. package/dist/src/components/collapsible/index.d.ts.map +1 -0
  450. package/dist/src/components/combobox/combobox.d.ts +188 -0
  451. package/dist/src/components/combobox/combobox.d.ts.map +1 -0
  452. package/dist/src/components/combobox/index.d.ts +2 -0
  453. package/dist/src/components/combobox/index.d.ts.map +1 -0
  454. package/dist/src/components/command-palette/command-palette.d.ts +260 -0
  455. package/dist/src/components/command-palette/command-palette.d.ts.map +1 -0
  456. package/dist/src/components/command-palette/index.d.ts +3 -0
  457. package/dist/src/components/command-palette/index.d.ts.map +1 -0
  458. package/dist/src/components/command-palette/types.d.ts +149 -0
  459. package/dist/src/components/command-palette/types.d.ts.map +1 -0
  460. package/dist/src/components/data-grid/data-grid.d.ts +78 -0
  461. package/dist/src/components/data-grid/data-grid.d.ts.map +1 -0
  462. package/dist/src/components/data-grid/index.d.ts +3 -0
  463. package/dist/src/components/data-grid/index.d.ts.map +1 -0
  464. package/dist/src/components/data-grid/types.d.ts +236 -0
  465. package/dist/src/components/data-grid/types.d.ts.map +1 -0
  466. package/dist/src/components/date-picker/date-picker.d.ts +65 -0
  467. package/dist/src/components/date-picker/date-picker.d.ts.map +1 -0
  468. package/dist/src/components/date-picker/index.d.ts +4 -0
  469. package/dist/src/components/date-picker/index.d.ts.map +1 -0
  470. package/dist/src/components/date-range-picker/date-range-picker.d.ts +125 -0
  471. package/dist/src/components/date-range-picker/date-range-picker.d.ts.map +1 -0
  472. package/dist/src/components/date-range-picker/index.d.ts +5 -0
  473. package/dist/src/components/date-range-picker/index.d.ts.map +1 -0
  474. package/dist/src/components/dialog/dialog.d.ts +189 -0
  475. package/dist/src/components/dialog/dialog.d.ts.map +1 -0
  476. package/dist/src/components/dialog/index.d.ts +2 -0
  477. package/dist/src/components/dialog/index.d.ts.map +1 -0
  478. package/dist/src/components/dropdown/dropdown.d.ts +91 -0
  479. package/dist/src/components/dropdown/dropdown.d.ts.map +1 -0
  480. package/dist/src/components/dropdown/index.d.ts +2 -0
  481. package/dist/src/components/dropdown/index.d.ts.map +1 -0
  482. package/dist/src/components/empty/empty.d.ts +69 -0
  483. package/dist/src/components/empty/empty.d.ts.map +1 -0
  484. package/dist/src/components/empty/index.d.ts +2 -0
  485. package/dist/src/components/empty/index.d.ts.map +1 -0
  486. package/dist/src/components/field/field.d.ts +68 -0
  487. package/dist/src/components/field/field.d.ts.map +1 -0
  488. package/dist/src/components/field/index.d.ts +2 -0
  489. package/dist/src/components/field/index.d.ts.map +1 -0
  490. package/dist/src/components/filters/filters.d.ts +54 -0
  491. package/dist/src/components/filters/filters.d.ts.map +1 -0
  492. package/dist/src/components/filters/helpers.d.ts +56 -0
  493. package/dist/src/components/filters/helpers.d.ts.map +1 -0
  494. package/dist/src/components/filters/index.d.ts +3 -0
  495. package/dist/src/components/filters/index.d.ts.map +1 -0
  496. package/dist/src/components/filters/types.d.ts +148 -0
  497. package/dist/src/components/filters/types.d.ts.map +1 -0
  498. package/dist/src/components/flow/connectors.d.ts +35 -0
  499. package/dist/src/components/flow/connectors.d.ts.map +1 -0
  500. package/dist/src/components/flow/diagram.d.ts +62 -0
  501. package/dist/src/components/flow/diagram.d.ts.map +1 -0
  502. package/dist/src/components/flow/index.d.ts +26 -0
  503. package/dist/src/components/flow/index.d.ts.map +1 -0
  504. package/dist/src/components/flow/node.d.ts +52 -0
  505. package/dist/src/components/flow/node.d.ts.map +1 -0
  506. package/dist/src/components/flow/parallel.d.ts +5 -0
  507. package/dist/src/components/flow/parallel.d.ts.map +1 -0
  508. package/dist/src/components/flow/use-children.d.ts +69 -0
  509. package/dist/src/components/flow/use-children.d.ts.map +1 -0
  510. package/dist/src/components/grid/grid.d.ts +135 -0
  511. package/dist/src/components/grid/grid.d.ts.map +1 -0
  512. package/dist/src/components/grid/index.d.ts +2 -0
  513. package/dist/src/components/grid/index.d.ts.map +1 -0
  514. package/dist/src/components/input/index.d.ts +4 -0
  515. package/dist/src/components/input/index.d.ts.map +1 -0
  516. package/dist/src/components/input/input-area.d.ts +65 -0
  517. package/dist/src/components/input/input-area.d.ts.map +1 -0
  518. package/dist/src/components/input/input-group.d.ts +39 -0
  519. package/dist/src/components/input/input-group.d.ts.map +1 -0
  520. package/dist/src/components/input/input.d.ts +172 -0
  521. package/dist/src/components/input/input.d.ts.map +1 -0
  522. package/dist/src/components/label/index.d.ts +2 -0
  523. package/dist/src/components/label/index.d.ts.map +1 -0
  524. package/dist/src/components/label/label.d.ts +67 -0
  525. package/dist/src/components/label/label.d.ts.map +1 -0
  526. package/dist/src/components/layer-card/index.d.ts +2 -0
  527. package/dist/src/components/layer-card/index.d.ts.map +1 -0
  528. package/dist/src/components/layer-card/layer-card.d.ts +29 -0
  529. package/dist/src/components/layer-card/layer-card.d.ts.map +1 -0
  530. package/dist/src/components/link/index.d.ts +2 -0
  531. package/dist/src/components/link/index.d.ts.map +1 -0
  532. package/dist/src/components/link/link.d.ts +55 -0
  533. package/dist/src/components/link/link.d.ts.map +1 -0
  534. package/dist/src/components/loader/index.d.ts +3 -0
  535. package/dist/src/components/loader/index.d.ts.map +1 -0
  536. package/dist/src/components/loader/loader.d.ts +65 -0
  537. package/dist/src/components/loader/loader.d.ts.map +1 -0
  538. package/dist/src/components/loader/skeleton-line.d.ts +10 -0
  539. package/dist/src/components/loader/skeleton-line.d.ts.map +1 -0
  540. package/dist/src/components/menubar/index.d.ts +3 -0
  541. package/dist/src/components/menubar/index.d.ts.map +1 -0
  542. package/dist/src/components/menubar/menubar.d.ts +66 -0
  543. package/dist/src/components/menubar/menubar.d.ts.map +1 -0
  544. package/dist/src/components/menubar/use-menu-navigation.d.ts +8 -0
  545. package/dist/src/components/menubar/use-menu-navigation.d.ts.map +1 -0
  546. package/dist/src/components/meter/index.d.ts +2 -0
  547. package/dist/src/components/meter/index.d.ts.map +1 -0
  548. package/dist/src/components/meter/meter.d.ts +44 -0
  549. package/dist/src/components/meter/meter.d.ts.map +1 -0
  550. package/dist/src/components/pagination/index.d.ts +2 -0
  551. package/dist/src/components/pagination/index.d.ts.map +1 -0
  552. package/dist/src/components/pagination/pagination.d.ts +60 -0
  553. package/dist/src/components/pagination/pagination.d.ts.map +1 -0
  554. package/dist/src/components/popover/index.d.ts +3 -0
  555. package/dist/src/components/popover/index.d.ts.map +1 -0
  556. package/dist/src/components/popover/popover.d.ts +138 -0
  557. package/dist/src/components/popover/popover.d.ts.map +1 -0
  558. package/dist/src/components/radio/index.d.ts +2 -0
  559. package/dist/src/components/radio/index.d.ts.map +1 -0
  560. package/dist/src/components/radio/radio.d.ts +163 -0
  561. package/dist/src/components/radio/radio.d.ts.map +1 -0
  562. package/dist/src/components/select/index.d.ts +2 -0
  563. package/dist/src/components/select/index.d.ts.map +1 -0
  564. package/dist/src/components/select/select.d.ts +150 -0
  565. package/dist/src/components/select/select.d.ts.map +1 -0
  566. package/dist/src/components/sensitive-input/index.d.ts +2 -0
  567. package/dist/src/components/sensitive-input/index.d.ts.map +1 -0
  568. package/dist/src/components/sensitive-input/sensitive-input.d.ts +94 -0
  569. package/dist/src/components/sensitive-input/sensitive-input.d.ts.map +1 -0
  570. package/dist/src/components/sidebar/index.d.ts +2 -0
  571. package/dist/src/components/sidebar/index.d.ts.map +1 -0
  572. package/dist/src/components/sidebar/sidebar.d.ts +556 -0
  573. package/dist/src/components/sidebar/sidebar.d.ts.map +1 -0
  574. package/dist/src/components/signalflare-ai-logo/index.d.ts +2 -0
  575. package/dist/src/components/signalflare-ai-logo/index.d.ts.map +1 -0
  576. package/dist/src/components/signalflare-ai-logo/signalflare-ai-logo.d.ts +171 -0
  577. package/dist/src/components/signalflare-ai-logo/signalflare-ai-logo.d.ts.map +1 -0
  578. package/dist/src/components/surface/index.d.ts +2 -0
  579. package/dist/src/components/surface/index.d.ts.map +1 -0
  580. package/dist/src/components/surface/surface.d.ts +60 -0
  581. package/dist/src/components/surface/surface.d.ts.map +1 -0
  582. package/dist/src/components/switch/index.d.ts +2 -0
  583. package/dist/src/components/switch/index.d.ts.map +1 -0
  584. package/dist/src/components/switch/switch.d.ts +169 -0
  585. package/dist/src/components/switch/switch.d.ts.map +1 -0
  586. package/dist/src/components/table/index.d.ts +2 -0
  587. package/dist/src/components/table/index.d.ts.map +1 -0
  588. package/dist/src/components/table/table.d.ts +89 -0
  589. package/dist/src/components/table/table.d.ts.map +1 -0
  590. package/dist/src/components/tabs/index.d.ts +3 -0
  591. package/dist/src/components/tabs/index.d.ts.map +1 -0
  592. package/dist/src/components/tabs/tabs.d.ts +105 -0
  593. package/dist/src/components/tabs/tabs.d.ts.map +1 -0
  594. package/dist/src/components/text/index.d.ts +2 -0
  595. package/dist/src/components/text/index.d.ts.map +1 -0
  596. package/dist/src/components/text/text.d.ts +181 -0
  597. package/dist/src/components/text/text.d.ts.map +1 -0
  598. package/dist/src/components/theme-toggle/index.d.ts +2 -0
  599. package/dist/src/components/theme-toggle/index.d.ts.map +1 -0
  600. package/dist/src/components/theme-toggle/theme-toggle.d.ts +68 -0
  601. package/dist/src/components/theme-toggle/theme-toggle.d.ts.map +1 -0
  602. package/dist/src/components/toast/index.d.ts +5 -0
  603. package/dist/src/components/toast/index.d.ts.map +1 -0
  604. package/dist/src/components/toast/toast.d.ts +152 -0
  605. package/dist/src/components/toast/toast.d.ts.map +1 -0
  606. package/dist/src/components/tooltip/index.d.ts +2 -0
  607. package/dist/src/components/tooltip/index.d.ts.map +1 -0
  608. package/dist/src/components/tooltip/tooltip.d.ts +82 -0
  609. package/dist/src/components/tooltip/tooltip.d.ts.map +1 -0
  610. package/dist/src/components/use-agent-harness/index.d.ts +2 -0
  611. package/dist/src/components/use-agent-harness/index.d.ts.map +1 -0
  612. package/dist/src/components/use-agent-harness/use-agent-harness.d.ts +642 -0
  613. package/dist/src/components/use-agent-harness/use-agent-harness.d.ts.map +1 -0
  614. package/dist/src/genui/genui.d.ts +17 -0
  615. package/dist/src/genui/genui.d.ts.map +1 -0
  616. package/dist/src/genui/index.d.ts +19 -0
  617. package/dist/src/genui/index.d.ts.map +1 -0
  618. package/dist/src/index.d.ts +102 -0
  619. package/dist/src/index.d.ts.map +1 -0
  620. package/dist/src/lib/utils.d.ts +2 -0
  621. package/dist/src/lib/utils.d.ts.map +1 -0
  622. package/dist/src/primitives/accordion.d.ts +13 -0
  623. package/dist/src/primitives/accordion.d.ts.map +1 -0
  624. package/dist/src/primitives/alert-dialog.d.ts +13 -0
  625. package/dist/src/primitives/alert-dialog.d.ts.map +1 -0
  626. package/dist/src/primitives/autocomplete.d.ts +13 -0
  627. package/dist/src/primitives/autocomplete.d.ts.map +1 -0
  628. package/dist/src/primitives/avatar.d.ts +13 -0
  629. package/dist/src/primitives/avatar.d.ts.map +1 -0
  630. package/dist/src/primitives/button.d.ts +13 -0
  631. package/dist/src/primitives/button.d.ts.map +1 -0
  632. package/dist/src/primitives/checkbox-group.d.ts +13 -0
  633. package/dist/src/primitives/checkbox-group.d.ts.map +1 -0
  634. package/dist/src/primitives/checkbox.d.ts +13 -0
  635. package/dist/src/primitives/checkbox.d.ts.map +1 -0
  636. package/dist/src/primitives/collapsible.d.ts +13 -0
  637. package/dist/src/primitives/collapsible.d.ts.map +1 -0
  638. package/dist/src/primitives/combobox.d.ts +13 -0
  639. package/dist/src/primitives/combobox.d.ts.map +1 -0
  640. package/dist/src/primitives/context-menu.d.ts +13 -0
  641. package/dist/src/primitives/context-menu.d.ts.map +1 -0
  642. package/dist/src/primitives/csp-provider.d.ts +13 -0
  643. package/dist/src/primitives/csp-provider.d.ts.map +1 -0
  644. package/dist/src/primitives/dialog.d.ts +13 -0
  645. package/dist/src/primitives/dialog.d.ts.map +1 -0
  646. package/dist/src/primitives/direction-provider.d.ts +13 -0
  647. package/dist/src/primitives/direction-provider.d.ts.map +1 -0
  648. package/dist/src/primitives/drawer.d.ts +13 -0
  649. package/dist/src/primitives/drawer.d.ts.map +1 -0
  650. package/dist/src/primitives/field.d.ts +13 -0
  651. package/dist/src/primitives/field.d.ts.map +1 -0
  652. package/dist/src/primitives/fieldset.d.ts +13 -0
  653. package/dist/src/primitives/fieldset.d.ts.map +1 -0
  654. package/dist/src/primitives/form.d.ts +13 -0
  655. package/dist/src/primitives/form.d.ts.map +1 -0
  656. package/dist/src/primitives/index.d.ts +54 -0
  657. package/dist/src/primitives/index.d.ts.map +1 -0
  658. package/dist/src/primitives/input.d.ts +13 -0
  659. package/dist/src/primitives/input.d.ts.map +1 -0
  660. package/dist/src/primitives/menu.d.ts +13 -0
  661. package/dist/src/primitives/menu.d.ts.map +1 -0
  662. package/dist/src/primitives/menubar.d.ts +13 -0
  663. package/dist/src/primitives/menubar.d.ts.map +1 -0
  664. package/dist/src/primitives/meter.d.ts +13 -0
  665. package/dist/src/primitives/meter.d.ts.map +1 -0
  666. package/dist/src/primitives/navigation-menu.d.ts +13 -0
  667. package/dist/src/primitives/navigation-menu.d.ts.map +1 -0
  668. package/dist/src/primitives/number-field.d.ts +13 -0
  669. package/dist/src/primitives/number-field.d.ts.map +1 -0
  670. package/dist/src/primitives/popover.d.ts +13 -0
  671. package/dist/src/primitives/popover.d.ts.map +1 -0
  672. package/dist/src/primitives/preview-card.d.ts +13 -0
  673. package/dist/src/primitives/preview-card.d.ts.map +1 -0
  674. package/dist/src/primitives/progress.d.ts +13 -0
  675. package/dist/src/primitives/progress.d.ts.map +1 -0
  676. package/dist/src/primitives/radio-group.d.ts +13 -0
  677. package/dist/src/primitives/radio-group.d.ts.map +1 -0
  678. package/dist/src/primitives/radio.d.ts +13 -0
  679. package/dist/src/primitives/radio.d.ts.map +1 -0
  680. package/dist/src/primitives/scroll-area.d.ts +13 -0
  681. package/dist/src/primitives/scroll-area.d.ts.map +1 -0
  682. package/dist/src/primitives/select.d.ts +13 -0
  683. package/dist/src/primitives/select.d.ts.map +1 -0
  684. package/dist/src/primitives/separator.d.ts +13 -0
  685. package/dist/src/primitives/separator.d.ts.map +1 -0
  686. package/dist/src/primitives/slider.d.ts +13 -0
  687. package/dist/src/primitives/slider.d.ts.map +1 -0
  688. package/dist/src/primitives/switch.d.ts +13 -0
  689. package/dist/src/primitives/switch.d.ts.map +1 -0
  690. package/dist/src/primitives/tabs.d.ts +13 -0
  691. package/dist/src/primitives/tabs.d.ts.map +1 -0
  692. package/dist/src/primitives/toast.d.ts +13 -0
  693. package/dist/src/primitives/toast.d.ts.map +1 -0
  694. package/dist/src/primitives/toggle-group.d.ts +13 -0
  695. package/dist/src/primitives/toggle-group.d.ts.map +1 -0
  696. package/dist/src/primitives/toggle.d.ts +13 -0
  697. package/dist/src/primitives/toggle.d.ts.map +1 -0
  698. package/dist/src/primitives/toolbar.d.ts +13 -0
  699. package/dist/src/primitives/toolbar.d.ts.map +1 -0
  700. package/dist/src/primitives/tooltip.d.ts +13 -0
  701. package/dist/src/primitives/tooltip.d.ts.map +1 -0
  702. package/dist/src/registry/index.d.ts +8 -0
  703. package/dist/src/registry/index.d.ts.map +1 -0
  704. package/dist/src/registry/types.d.ts +191 -0
  705. package/dist/src/registry/types.d.ts.map +1 -0
  706. package/dist/src/utils/cn.d.ts +4 -0
  707. package/dist/src/utils/cn.d.ts.map +1 -0
  708. package/dist/src/utils/highlight-to-react.d.ts +12 -0
  709. package/dist/src/utils/highlight-to-react.d.ts.map +1 -0
  710. package/dist/src/utils/index.d.ts +3 -0
  711. package/dist/src/utils/index.d.ts.map +1 -0
  712. package/dist/src/utils/link-provider.d.ts +12 -0
  713. package/dist/src/utils/link-provider.d.ts.map +1 -0
  714. package/dist/src/utils/prop-examples.d.ts +36 -0
  715. package/dist/src/utils/prop-examples.d.ts.map +1 -0
  716. package/dist/styles/sf-binding.css +255 -0
  717. package/dist/styles/sf-standalone.css +2 -0
  718. package/dist/styles/sf.css +596 -0
  719. package/dist/styles/theme-fedramp.css +22 -0
  720. package/dist/styles/theme-minimal.css +127 -0
  721. package/dist/styles/theme-navigator.css +137 -0
  722. package/dist/styles/theme-sf.css +191 -0
  723. package/dist/surface-BduI7Ehl.js +18 -0
  724. package/dist/surface-BduI7Ehl.js.map +1 -0
  725. package/dist/switch-CzZBRBL7.js +169 -0
  726. package/dist/switch-CzZBRBL7.js.map +1 -0
  727. package/dist/table-CIMx0Oq0.js +200 -0
  728. package/dist/table-CIMx0Oq0.js.map +1 -0
  729. package/dist/tabs-1cHrYoel.js +54 -0
  730. package/dist/tabs-1cHrYoel.js.map +1 -0
  731. package/dist/text-KJmGkwnf.js +103 -0
  732. package/dist/text-KJmGkwnf.js.map +1 -0
  733. package/dist/theme-toggle-Dpgnoj_Q.js +129 -0
  734. package/dist/theme-toggle-Dpgnoj_Q.js.map +1 -0
  735. package/dist/toast-Nw28a5Cx.js +161 -0
  736. package/dist/toast-Nw28a5Cx.js.map +1 -0
  737. package/dist/tooltip-Cb7QW-7H.js +79 -0
  738. package/dist/tooltip-Cb7QW-7H.js.map +1 -0
  739. package/dist/use-agent-harness-DZzcn96L.js +929 -0
  740. package/dist/use-agent-harness-DZzcn96L.js.map +1 -0
  741. package/dist/utils.js +4 -0
  742. package/package.json +620 -0
  743. package/scripts/component-registry/cache.ts +124 -0
  744. package/scripts/component-registry/discovery.ts +464 -0
  745. package/scripts/component-registry/example-cleanup.ts +168 -0
  746. package/scripts/component-registry/index.test.ts +678 -0
  747. package/scripts/component-registry/index.ts +931 -0
  748. package/scripts/component-registry/markdown-generator.ts +222 -0
  749. package/scripts/component-registry/metadata.ts +653 -0
  750. package/scripts/component-registry/props-filter.ts +313 -0
  751. package/scripts/component-registry/schema-generator.ts +332 -0
  752. package/scripts/component-registry/sub-components.ts +350 -0
  753. package/scripts/component-registry/types.ts +156 -0
  754. package/scripts/component-registry/utils.ts +280 -0
  755. package/scripts/component-registry/variant-parser.ts +262 -0
  756. package/scripts/css-build.ts +117 -0
  757. package/scripts/generate-primitives.ts +178 -0
  758. package/scripts/theme-generator/config.ts +538 -0
  759. package/scripts/theme-generator/generate-css.ts +256 -0
  760. package/scripts/theme-generator/index.ts +161 -0
  761. package/scripts/theme-generator/migrate.ts +584 -0
  762. package/scripts/theme-generator/types.ts +86 -0
  763. package/skills/component-selection/SKILL.md +64 -0
  764. package/skills/installing-blocks/SKILL.md +47 -0
  765. package/skills/theming-and-tokens/SKILL.md +62 -0
@@ -0,0 +1,964 @@
1
+ "use client";
2
+ import { t as cn } from "./cn-YROP2_ox.js";
3
+ import { n as useLinkComponent } from "./link-provider-BUZKXaNE.js";
4
+ import { n as TooltipProvider, t as Tooltip } from "./tooltip-Cb7QW-7H.js";
5
+ import React, { createContext, forwardRef, useCallback, useContext, useEffect, useMemo, useRef, useState } from "react";
6
+ import { Fragment as Fragment$1, jsx, jsxs } from "react/jsx-runtime";
7
+ import { CaretRightIcon, MagnifyingGlassIcon, SidebarSimpleIcon } from "@phosphor-icons/react";
8
+ import { Dialog } from "@base-ui/react/dialog";
9
+ import { Collapsible } from "@base-ui/react/collapsible";
10
+ //#region src/components/sidebar/sidebar.tsx
11
+ /** Sidebar variant definitions mapping layout, collapse, and side options. */
12
+ var SF_SIDEBAR_VARIANTS = {
13
+ variant: {
14
+ sidebar: {
15
+ classes: "",
16
+ description: "Standard sidebar with border separator"
17
+ },
18
+ floating: {
19
+ classes: "",
20
+ description: "Floating sidebar with shadow and rounded corners"
21
+ },
22
+ inset: {
23
+ classes: "",
24
+ description: "Inset sidebar within the content area"
25
+ }
26
+ },
27
+ collapsible: {
28
+ icon: {
29
+ classes: "",
30
+ description: "Collapses to show icons only"
31
+ },
32
+ offcanvas: {
33
+ classes: "",
34
+ description: "Slides off screen when collapsed"
35
+ },
36
+ none: {
37
+ classes: "",
38
+ description: "Cannot be collapsed"
39
+ }
40
+ },
41
+ side: {
42
+ left: {
43
+ classes: "",
44
+ description: "Left-aligned sidebar"
45
+ },
46
+ right: {
47
+ classes: "",
48
+ description: "Right-aligned sidebar"
49
+ }
50
+ }
51
+ };
52
+ var SF_SIDEBAR_DEFAULT_VARIANTS = {
53
+ variant: "sidebar",
54
+ collapsible: "icon",
55
+ side: "left"
56
+ };
57
+ var SF_SIDEBAR_STYLING = {
58
+ width: {
59
+ expanded: "16rem",
60
+ icon: "3rem"
61
+ },
62
+ mobile: { breakpoint: 768 }
63
+ };
64
+ var SIDEBAR_WIDTH = "16rem";
65
+ var SIDEBAR_WIDTH_ICON = "3rem";
66
+ var MOBILE_BREAKPOINT = 768;
67
+ function useIsMobile() {
68
+ const [isMobile, setIsMobile] = useState(false);
69
+ useEffect(() => {
70
+ const mql = window.matchMedia(`(max-width: ${MOBILE_BREAKPOINT - 1}px)`);
71
+ const onChange = () => setIsMobile(mql.matches);
72
+ mql.addEventListener("change", onChange);
73
+ setIsMobile(mql.matches);
74
+ return () => mql.removeEventListener("change", onChange);
75
+ }, []);
76
+ return isMobile;
77
+ }
78
+ var SidebarContext = createContext(null);
79
+ /**
80
+ * Hook to access sidebar state and actions from any descendant component.
81
+ *
82
+ * @example
83
+ * ```tsx
84
+ * const { state, open, toggleSidebar, isMobile } = useSidebar();
85
+ * ```
86
+ *
87
+ * @throws Error if used outside a `Sidebar.Provider`.
88
+ */
89
+ function useSidebar() {
90
+ const context = useContext(SidebarContext);
91
+ if (!context) throw new Error("useSidebar must be used within a Sidebar.Provider");
92
+ return context;
93
+ }
94
+ /**
95
+ * Sidebar context provider. Manages expand/collapse state and mobile detection.
96
+ * Renders a flex wrapper div with CSS custom properties for sidebar width.
97
+ *
98
+ * @example
99
+ * ```tsx
100
+ * <Sidebar.Provider defaultOpen>
101
+ * <Sidebar>{...}</Sidebar>
102
+ * <main className="flex-1">{...}</main>
103
+ * </Sidebar.Provider>
104
+ * ```
105
+ */
106
+ var DEFAULT_WIDTH_PX = 256;
107
+ var MIN_WIDTH_PX = 200;
108
+ var MAX_WIDTH_PX = 480;
109
+ function SidebarProvider({ defaultOpen = true, open: openProp, onOpenChange: setOpenProp, variant = SF_SIDEBAR_DEFAULT_VARIANTS.variant, side = SF_SIDEBAR_DEFAULT_VARIANTS.side, collapsible = SF_SIDEBAR_DEFAULT_VARIANTS.collapsible, resizable = false, defaultWidth = DEFAULT_WIDTH_PX, minWidth = MIN_WIDTH_PX, maxWidth = MAX_WIDTH_PX, onWidthChange, children, className, style }) {
110
+ const isMobile = useIsMobile();
111
+ const [openMobile, setOpenMobile] = useState(false);
112
+ const [width, setWidthState] = useState(defaultWidth);
113
+ const [isResizing, setIsResizing] = useState(false);
114
+ const setWidth = useCallback((newWidth) => {
115
+ const clamped = Math.min(maxWidth, Math.max(minWidth, newWidth));
116
+ setWidthState(clamped);
117
+ onWidthChange?.(clamped);
118
+ }, [
119
+ minWidth,
120
+ maxWidth,
121
+ onWidthChange
122
+ ]);
123
+ const [_open, _setOpen] = useState(defaultOpen);
124
+ const open = openProp ?? _open;
125
+ const setOpen = useCallback((value) => {
126
+ const next = typeof value === "function" ? value(open) : value;
127
+ setOpenProp?.(next);
128
+ _setOpen(next);
129
+ }, [setOpenProp, open]);
130
+ const toggleSidebar = useCallback(() => {
131
+ if (isMobile) setOpenMobile((prev) => !prev);
132
+ else setOpen((prev) => !prev);
133
+ }, [isMobile, setOpen]);
134
+ const state = open ? "expanded" : "collapsed";
135
+ const sidebarWidthValue = resizable ? `${width}px` : SIDEBAR_WIDTH;
136
+ const contextValue = useMemo(() => ({
137
+ state,
138
+ open,
139
+ setOpen,
140
+ openMobile,
141
+ setOpenMobile,
142
+ isMobile,
143
+ toggleSidebar,
144
+ variant,
145
+ side,
146
+ collapsible,
147
+ width,
148
+ resizable,
149
+ minWidth,
150
+ maxWidth,
151
+ isResizing,
152
+ setIsResizing,
153
+ setWidth
154
+ }), [
155
+ state,
156
+ open,
157
+ setOpen,
158
+ openMobile,
159
+ setOpenMobile,
160
+ isMobile,
161
+ toggleSidebar,
162
+ variant,
163
+ side,
164
+ collapsible,
165
+ width,
166
+ resizable,
167
+ minWidth,
168
+ maxWidth,
169
+ isResizing,
170
+ setIsResizing,
171
+ setWidth
172
+ ]);
173
+ return /* @__PURE__ */ jsx(SidebarContext.Provider, {
174
+ value: contextValue,
175
+ children: /* @__PURE__ */ jsx("div", {
176
+ "data-sidebar-wrapper": "",
177
+ "data-state": state,
178
+ "data-side": side,
179
+ style: {
180
+ "--sidebar-width": sidebarWidthValue,
181
+ "--sidebar-width-icon": SIDEBAR_WIDTH_ICON,
182
+ ...style
183
+ },
184
+ className: cn("group/sidebar-wrapper flex min-h-svh w-full", "has-data-[variant=inset]:bg-sf-recessed", isResizing && "select-none", className),
185
+ children
186
+ })
187
+ });
188
+ }
189
+ SidebarProvider.displayName = "Sidebar.Provider";
190
+ /**
191
+ * Main sidebar container. Renders as `<aside>` on desktop, Dialog sheet on mobile.
192
+ * Must be used inside `Sidebar.Provider`.
193
+ *
194
+ * @example
195
+ * ```tsx
196
+ * <Sidebar.Provider>
197
+ * <Sidebar>
198
+ * <Sidebar.Header>...</Sidebar.Header>
199
+ * <Sidebar.Content>...</Sidebar.Content>
200
+ * <Sidebar.Footer>...</Sidebar.Footer>
201
+ * </Sidebar>
202
+ * </Sidebar.Provider>
203
+ * ```
204
+ */
205
+ var SidebarRoot = forwardRef(({ className, children, ...props }, ref) => {
206
+ const { state, isMobile, openMobile, setOpenMobile, side, variant, collapsible, isResizing, resizable, width } = useSidebar();
207
+ if (collapsible === "none") return /* @__PURE__ */ jsx("aside", {
208
+ ref,
209
+ "data-state": "expanded",
210
+ "data-side": side,
211
+ "data-variant": variant,
212
+ "data-sidebar": "sidebar",
213
+ style: {
214
+ width: "var(--sidebar-width)",
215
+ minWidth: "var(--sidebar-width)",
216
+ maxWidth: "var(--sidebar-width)"
217
+ },
218
+ className: cn("relative flex h-full shrink-0 grow-0 flex-col overflow-hidden bg-sf-base text-sf-default", variant === "sidebar" && (side === "left" ? "border-r border-sf-line" : "border-l border-sf-line"), variant === "floating" && "m-2 rounded-lg border border-sf-line shadow-lg", className),
219
+ ...props,
220
+ children
221
+ });
222
+ if (isMobile) return /* @__PURE__ */ jsx(Dialog.Root, {
223
+ open: openMobile,
224
+ onOpenChange: setOpenMobile,
225
+ children: /* @__PURE__ */ jsxs(Dialog.Portal, { children: [/* @__PURE__ */ jsx(Dialog.Backdrop, { className: "fixed inset-0 z-50 bg-black/50 transition-opacity duration-200 data-[ending-style]:opacity-0 data-[starting-style]:opacity-0" }), /* @__PURE__ */ jsx(Dialog.Popup, {
226
+ className: cn("fixed inset-y-0 z-50 flex w-[--sidebar-width] flex-col bg-sf-base p-0", "duration-200 data-[ending-style]:opacity-0 data-[starting-style]:opacity-0", side === "left" && "left-0 data-[ending-style]:-translate-x-full data-[starting-style]:-translate-x-full", side === "right" && "right-0 data-[ending-style]:translate-x-full data-[starting-style]:translate-x-full"),
227
+ style: {
228
+ "--sidebar-width": SIDEBAR_WIDTH,
229
+ transitionProperty: "transform, opacity",
230
+ transitionTimingFunction: "var(--default-transition-timing-function)"
231
+ },
232
+ children: /* @__PURE__ */ jsx("div", {
233
+ "data-sidebar": "sidebar",
234
+ "data-mobile": "true",
235
+ className: cn("flex h-full w-full flex-col bg-sf-base text-sf-default", className),
236
+ children
237
+ })
238
+ })] })
239
+ });
240
+ const collapsedWidth = collapsible === "icon" ? "var(--sidebar-width-icon)" : "0px";
241
+ const expandedWidth = resizable ? `${width}px` : "var(--sidebar-width)";
242
+ const targetWidth = state === "expanded" ? expandedWidth : collapsedWidth;
243
+ return /* @__PURE__ */ jsx("aside", {
244
+ ref,
245
+ "data-state": state,
246
+ "data-side": side,
247
+ "data-variant": variant,
248
+ "data-collapsible": collapsible,
249
+ "data-sidebar": "sidebar",
250
+ style: { width: targetWidth },
251
+ className: cn("group/sidebar relative flex h-full shrink-0 grow-0 flex-col", "min-w-0 overflow-hidden whitespace-nowrap", "bg-sf-base text-sf-default", "transition-[width] duration-250 ease-[cubic-bezier(0.77,0,0.175,1)] will-change-[width]", "motion-reduce:transition-none", isResizing && "transition-none!", variant === "sidebar" && (side === "left" ? "border-r border-sf-line" : "border-l border-sf-line"), variant === "floating" && "m-2 rounded-lg border border-sf-line shadow-lg", className),
252
+ ...props,
253
+ children: /* @__PURE__ */ jsx(TooltipProvider, { children })
254
+ });
255
+ });
256
+ SidebarRoot.displayName = "Sidebar";
257
+ /**
258
+ * Top section of the sidebar. Typically contains a logo, title, and action button.
259
+ *
260
+ * @example
261
+ * ```tsx
262
+ * <Sidebar.Header>
263
+ * <CloudflareLogo />
264
+ * <span>Design Engineering</span>
265
+ * <Button shape="square" icon={CaretUpDownIcon} aria-label="Switch" />
266
+ * </Sidebar.Header>
267
+ * ```
268
+ */
269
+ var SidebarHeader = forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx("div", {
270
+ ref,
271
+ "data-sidebar": "header",
272
+ className: cn("flex items-center gap-2 border-b border-sf-line px-2 py-3", "overflow-hidden", "group-data-[state=collapsed]/sidebar:border-b-0", className),
273
+ ...props
274
+ }));
275
+ SidebarHeader.displayName = "Sidebar.Header";
276
+ /**
277
+ * Scrollable middle section of the sidebar. Contains nav groups and menus.
278
+ *
279
+ * @example
280
+ * ```tsx
281
+ * <Sidebar.Content>
282
+ * <Sidebar.Group>...</Sidebar.Group>
283
+ * </Sidebar.Content>
284
+ * ```
285
+ */
286
+ var SidebarContent = forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx("div", {
287
+ ref,
288
+ "data-sidebar": "content",
289
+ className: cn("flex min-w-0 flex-1 flex-col gap-2 overflow-y-auto overflow-x-hidden px-2 py-2", "group-data-[state=collapsed]/sidebar:gap-0 group-data-[state=collapsed]/sidebar:py-0", "group-data-[state=collapsed]/sidebar:overflow-x-hidden", className),
290
+ ...props
291
+ }));
292
+ SidebarContent.displayName = "Sidebar.Content";
293
+ /**
294
+ * Bottom-pinned section of the sidebar. Typically contains toggle button and help actions.
295
+ *
296
+ * @example
297
+ * ```tsx
298
+ * <Sidebar.Footer>
299
+ * <Sidebar.Trigger />
300
+ * <Button shape="square" icon={InfoIcon} aria-label="Help" />
301
+ * </Sidebar.Footer>
302
+ * ```
303
+ */
304
+ var SidebarFooter = forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx("div", {
305
+ ref,
306
+ "data-sidebar": "footer",
307
+ className: cn("flex min-w-0 flex-col gap-2 border-t border-sf-line px-2 py-2", "group-data-[state=collapsed]/sidebar:border-t-0 group-data-[state=collapsed]/sidebar:py-1", className),
308
+ ...props
309
+ }));
310
+ SidebarFooter.displayName = "Sidebar.Footer";
311
+ var SidebarGroupCollapsibleContext = createContext({
312
+ isCollapsible: false,
313
+ isOpen: true
314
+ });
315
+ /**
316
+ * Groups related menu items with an optional label.
317
+ * When `collapsible` is set, wraps content with Base UI Collapsible for
318
+ * animated expand/collapse via the group label.
319
+ *
320
+ * @example Non-collapsible group
321
+ * ```tsx
322
+ * <Sidebar.Group>
323
+ * <Sidebar.GroupLabel>Build</Sidebar.GroupLabel>
324
+ * <Sidebar.Menu>...</Sidebar.Menu>
325
+ * </Sidebar.Group>
326
+ * ```
327
+ *
328
+ * @example Collapsible group (requires GroupContent for animation)
329
+ * ```tsx
330
+ * <Sidebar.Group collapsible defaultOpen>
331
+ * <Sidebar.GroupLabel>Build</Sidebar.GroupLabel>
332
+ * <Sidebar.GroupContent>
333
+ * <Sidebar.Menu>...</Sidebar.Menu>
334
+ * </Sidebar.GroupContent>
335
+ * </Sidebar.Group>
336
+ * ```
337
+ */
338
+ var SidebarGroup = forwardRef(({ className, collapsible = false, defaultOpen = true, open: openProp, onOpenChange, children, ...props }, ref) => {
339
+ const [internalOpen, setInternalOpen] = useState(defaultOpen);
340
+ const isOpen = openProp ?? internalOpen;
341
+ const handleOpenChange = useCallback((newOpen) => {
342
+ setInternalOpen(newOpen);
343
+ onOpenChange?.(newOpen);
344
+ }, [onOpenChange]);
345
+ const contextValue = useMemo(() => ({
346
+ isCollapsible: collapsible,
347
+ isOpen
348
+ }), [collapsible, isOpen]);
349
+ const content = /* @__PURE__ */ jsx("div", {
350
+ ref,
351
+ "data-sidebar": "group",
352
+ className: cn("flex min-w-0 flex-col gap-0.5", "group-data-[state=collapsed]/sidebar:gap-0", className),
353
+ ...props,
354
+ children
355
+ });
356
+ if (!collapsible) return /* @__PURE__ */ jsx(SidebarGroupCollapsibleContext.Provider, {
357
+ value: contextValue,
358
+ children: content
359
+ });
360
+ return /* @__PURE__ */ jsx(SidebarGroupCollapsibleContext.Provider, {
361
+ value: contextValue,
362
+ children: /* @__PURE__ */ jsx(Collapsible.Root, {
363
+ defaultOpen,
364
+ open: openProp,
365
+ onOpenChange: handleOpenChange,
366
+ className: "min-w-0",
367
+ children: content
368
+ })
369
+ });
370
+ });
371
+ SidebarGroup.displayName = "Sidebar.Group";
372
+ /**
373
+ * Section label for a sidebar group (e.g., "Build", "Protect & Connect").
374
+ * Hidden when the sidebar is collapsed to icon-only mode.
375
+ *
376
+ * When used inside a collapsible `Sidebar.Group`, renders as a
377
+ * `Collapsible.Trigger` with an auto-rotating chevron.
378
+ *
379
+ * @example
380
+ * ```tsx
381
+ * <Sidebar.GroupLabel>Build</Sidebar.GroupLabel>
382
+ * ```
383
+ */
384
+ var SidebarGroupLabel = forwardRef(({ className, children, ...props }, ref) => {
385
+ const { isCollapsible } = useContext(SidebarGroupCollapsibleContext);
386
+ if (isCollapsible) return /* @__PURE__ */ jsxs(Collapsible.Trigger, {
387
+ ref,
388
+ "data-sidebar": "group-label",
389
+ className: cn("group/group-label flex w-full cursor-pointer items-center px-3 py-1 text-xs font-medium text-sf-subtle", "group-data-[state=collapsed]/sidebar:hidden", className),
390
+ ...props,
391
+ children: [/* @__PURE__ */ jsx("span", {
392
+ className: "flex-1 truncate text-left",
393
+ children
394
+ }), /* @__PURE__ */ jsx(CaretRightIcon, { className: cn("ml-auto size-3 shrink-0 text-sf-subtle transition-transform duration-200", "group-data-[panel-open]/group-label:rotate-90") })]
395
+ });
396
+ return /* @__PURE__ */ jsx("div", {
397
+ ref,
398
+ "data-sidebar": "group-label",
399
+ className: cn("truncate px-3 py-1 text-xs font-medium text-sf-subtle", "group-data-[state=collapsed]/sidebar:hidden", className),
400
+ ...props,
401
+ children
402
+ });
403
+ });
404
+ SidebarGroupLabel.displayName = "Sidebar.GroupLabel";
405
+ /**
406
+ * Animation wrapper for collapsible group content. Uses CSS grid-rows
407
+ * for smooth height transitions when the group is expanded/collapsed.
408
+ *
409
+ * **Only needed for collapsible groups.** For non-collapsible groups,
410
+ * place `Menu` directly inside `Group` — no wrapper required.
411
+ *
412
+ * @example Collapsible group (GroupContent required)
413
+ * ```tsx
414
+ * <Sidebar.Group collapsible defaultOpen>
415
+ * <Sidebar.GroupLabel>Build</Sidebar.GroupLabel>
416
+ * <Sidebar.GroupContent>
417
+ * <Sidebar.Menu>...</Sidebar.Menu>
418
+ * </Sidebar.GroupContent>
419
+ * </Sidebar.Group>
420
+ * ```
421
+ *
422
+ * @example Non-collapsible group (no GroupContent needed)
423
+ * ```tsx
424
+ * <Sidebar.Group>
425
+ * <Sidebar.GroupLabel>Overview</Sidebar.GroupLabel>
426
+ * <Sidebar.Menu>...</Sidebar.Menu>
427
+ * </Sidebar.Group>
428
+ * ```
429
+ */
430
+ var SidebarGroupContent = forwardRef(({ className, children, ...props }, ref) => {
431
+ const { isCollapsible, isOpen } = useContext(SidebarGroupCollapsibleContext);
432
+ if (isCollapsible) return /* @__PURE__ */ jsx("div", {
433
+ ref,
434
+ "data-sidebar": "group-content",
435
+ className: cn("grid", "transition-[grid-template-rows] duration-250 ease-[cubic-bezier(0.77,0,0.175,1)]", "motion-reduce:transition-none", "grid-rows-[0fr]", isOpen ? "group-data-[state=expanded]/sidebar:grid-rows-[1fr]" : "group-data-[state=expanded]/sidebar:grid-rows-[0fr]", className),
436
+ ...props,
437
+ children: /* @__PURE__ */ jsx("div", {
438
+ className: "overflow-hidden",
439
+ children
440
+ })
441
+ });
442
+ return /* @__PURE__ */ jsx("div", {
443
+ ref,
444
+ "data-sidebar": "group-content",
445
+ className: cn("flex flex-col", className),
446
+ ...props,
447
+ children
448
+ });
449
+ });
450
+ SidebarGroupContent.displayName = "Sidebar.GroupContent";
451
+ /**
452
+ * When `true`, indicates the component is already wrapped in a `MenuItem` `<li>`.
453
+ * `MenuButton` checks this: if `false`, it auto-wraps itself in an `<li>`.
454
+ */
455
+ var MenuItemContext = createContext(false);
456
+ /**
457
+ * When `true`, indicates the component is already wrapped in a `MenuSubItem` `<li>`.
458
+ * `MenuSubButton` checks this: if `false`, it auto-wraps itself in an `<li>`.
459
+ */
460
+ var MenuSubItemContext = createContext(false);
461
+ /**
462
+ * Navigation menu list. Renders as `<ul>`.
463
+ *
464
+ * `MenuButton` auto-wraps in `<li>` so `MenuItem` is optional for simple items.
465
+ *
466
+ * @example Simple usage
467
+ * ```tsx
468
+ * <Sidebar.Menu>
469
+ * <Sidebar.MenuButton icon={HouseIcon} active>Account home</Sidebar.MenuButton>
470
+ * <Sidebar.MenuButton icon={GlobeIcon}>Domains</Sidebar.MenuButton>
471
+ * </Sidebar.Menu>
472
+ * ```
473
+ *
474
+ * @example With explicit MenuItem (needed for MenuAction sibling)
475
+ * ```tsx
476
+ * <Sidebar.Menu>
477
+ * <Sidebar.MenuItem>
478
+ * <Sidebar.MenuButton icon={GearIcon}>Settings</Sidebar.MenuButton>
479
+ * <Sidebar.MenuAction><PencilIcon /></Sidebar.MenuAction>
480
+ * </Sidebar.MenuItem>
481
+ * </Sidebar.Menu>
482
+ * ```
483
+ */
484
+ var SidebarMenu = forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx("ul", {
485
+ ref,
486
+ "data-sidebar": "menu",
487
+ className: cn("m-0 flex min-w-0 list-none flex-col gap-0.5 p-0", "group-data-[state=collapsed]/sidebar:gap-0", className),
488
+ ...props
489
+ }));
490
+ SidebarMenu.displayName = "Sidebar.Menu";
491
+ /**
492
+ * Individual menu list item. Renders as `<li>`.
493
+ *
494
+ * **Optional when using `MenuButton` directly** — `MenuButton` auto-wraps
495
+ * itself in a `<li>` when not already inside a `MenuItem`. Use `MenuItem`
496
+ * explicitly when you need to place siblings (e.g., `MenuAction`) alongside
497
+ * a `MenuButton`.
498
+ *
499
+ * @example Explicit usage (needed for MenuAction sibling)
500
+ * ```tsx
501
+ * <Sidebar.MenuItem>
502
+ * <Sidebar.MenuButton icon={GearIcon}>Settings</Sidebar.MenuButton>
503
+ * <Sidebar.MenuAction><PencilIcon /></Sidebar.MenuAction>
504
+ * </Sidebar.MenuItem>
505
+ * ```
506
+ */
507
+ var SidebarMenuItem = forwardRef(({ className, children, ...props }, ref) => /* @__PURE__ */ jsx(MenuItemContext.Provider, {
508
+ value: true,
509
+ children: /* @__PURE__ */ jsx("li", {
510
+ ref,
511
+ "data-sidebar": "menu-item",
512
+ className: cn("relative", className),
513
+ ...props,
514
+ children
515
+ })
516
+ }));
517
+ SidebarMenuItem.displayName = "Sidebar.MenuItem";
518
+ /**
519
+ * Primary interactive element inside a menu item. Renders as a `<button>` or link.
520
+ * Supports icons, active state, and auto-tooltip when the sidebar is collapsed.
521
+ *
522
+ * **Auto-wraps in `<li>`** when not already inside a `Sidebar.MenuItem`.
523
+ * Use `MenuItem` explicitly only when you need siblings (e.g., `MenuAction`).
524
+ *
525
+ * When used as a `Collapsible.Trigger` via `render` prop, the expand/collapse chevron
526
+ * auto-rotates thanks to Base UI's `data-panel-open` attribute combined with
527
+ * `group/menu-button` CSS grouping.
528
+ *
529
+ * @example Simple usage (auto-wrapped in `<li>`)
530
+ * ```tsx
531
+ * <Sidebar.Menu>
532
+ * <Sidebar.MenuButton icon={GlobeIcon} active>Domains</Sidebar.MenuButton>
533
+ * <Sidebar.MenuButton icon={ClockIcon} href="/recents">Recents</Sidebar.MenuButton>
534
+ * </Sidebar.Menu>
535
+ * ```
536
+ *
537
+ * @example With MenuAction sibling (explicit MenuItem needed)
538
+ * ```tsx
539
+ * <Sidebar.MenuItem>
540
+ * <Sidebar.MenuButton icon={GearIcon}>Settings</Sidebar.MenuButton>
541
+ * <Sidebar.MenuAction><PencilIcon /></Sidebar.MenuAction>
542
+ * </Sidebar.MenuItem>
543
+ * ```
544
+ */
545
+ var SidebarMenuButton = forwardRef(({ className, icon: IconProp, active = false, size = "base", href, tooltip, children, ...props }, ref) => {
546
+ const { state } = useSidebar();
547
+ const LinkComponent = useLinkComponent();
548
+ const isInsideMenuItem = useContext(MenuItemContext);
549
+ const content = /* @__PURE__ */ jsxs(Fragment$1, { children: [(() => {
550
+ if (!IconProp) return null;
551
+ if (React.isValidElement(IconProp)) return IconProp;
552
+ return /* @__PURE__ */ jsx(IconProp, { className: cn("shrink-0", size === "base" ? "size-3.5" : "size-3") });
553
+ })(), /* @__PURE__ */ jsx("span", {
554
+ className: cn("flex flex-1 items-center min-w-0 text-left overflow-hidden", "group-data-[state=collapsed]/sidebar:hidden"),
555
+ children
556
+ })] });
557
+ const buttonClasses = cn("group/menu-button flex w-full min-w-0 items-center gap-2 rounded-lg outline-none cursor-pointer", size === "base" && "min-h-[34px] px-3 py-1.5 text-sm font-medium", size === "sm" && "min-h-[28px] px-2 py-1 text-sm", "text-sf-default", "transition-[color,background-color,padding] duration-0 ease-[cubic-bezier(0.77,0,0.175,1)]", "[&>svg]:text-sf-subtle", !active && "hover:bg-sf-tint", active && "bg-sf-tint", "has-[[data-active]]:bg-transparent has-[[data-active]]:hover:bg-sf-tint", "focus-visible:ring-1 focus-visible:ring-sf-ring", "group-data-[state=collapsed]/sidebar:px-2", className);
558
+ let button = href ? /* @__PURE__ */ jsx(LinkComponent, {
559
+ ref,
560
+ className: cn(buttonClasses, "no-underline!"),
561
+ href,
562
+ to: href,
563
+ "data-active": active || void 0,
564
+ "data-sidebar": "menu-button",
565
+ "data-size": size,
566
+ onClick: props.onClick,
567
+ children: content
568
+ }) : /* @__PURE__ */ jsx("button", {
569
+ ref,
570
+ type: "button",
571
+ className: buttonClasses,
572
+ "data-active": active || void 0,
573
+ "data-sidebar": "menu-button",
574
+ "data-size": size,
575
+ ...props,
576
+ children: content
577
+ });
578
+ if (state === "collapsed" && tooltip) button = /* @__PURE__ */ jsx(Tooltip, {
579
+ content: tooltip,
580
+ side: "right",
581
+ children: button
582
+ });
583
+ if (!isInsideMenuItem) return /* @__PURE__ */ jsx("li", {
584
+ "data-sidebar": "menu-item",
585
+ className: "relative",
586
+ children: button
587
+ });
588
+ return button;
589
+ });
590
+ SidebarMenuButton.displayName = "Sidebar.MenuButton";
591
+ /**
592
+ * Right-aligned action button inside a menu item (e.g., settings gear, plus icon).
593
+ * Positioned absolutely so it overlays the menu button.
594
+ * Hidden when the sidebar is collapsed.
595
+ */
596
+ var SidebarMenuAction = forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx("button", {
597
+ ref,
598
+ type: "button",
599
+ "data-sidebar": "menu-action",
600
+ className: cn("absolute right-1.5 top-1/2 flex -translate-y-1/2 items-center justify-center rounded-md p-1", "text-sf-strong hover:bg-sf-overlay", "transition-colors duration-150", "group-data-[state=collapsed]/sidebar:hidden", className),
601
+ ...props
602
+ }));
603
+ SidebarMenuAction.displayName = "Sidebar.MenuAction";
604
+ /**
605
+ * Badge pill displayed inside a menu button (e.g., "Beta", "New").
606
+ * Uses dashed border styling matching the Cloudflare design system.
607
+ *
608
+ * @example
609
+ * ```tsx
610
+ * <Sidebar.MenuSubButton>
611
+ * Containers
612
+ * <Sidebar.MenuBadge>Beta</Sidebar.MenuBadge>
613
+ * </Sidebar.MenuSubButton>
614
+ * ```
615
+ */
616
+ var SidebarMenuBadge = forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx("span", {
617
+ ref,
618
+ "data-sidebar": "menu-badge",
619
+ className: cn("inline-flex shrink-0 items-center rounded-full border border-dashed border-sf-line", "select-none px-1.5 py-0.5 text-[11px]/none font-medium text-sf-strong", "group-data-[state=collapsed]/sidebar:hidden", className),
620
+ ...props
621
+ }));
622
+ SidebarMenuBadge.displayName = "Sidebar.MenuBadge";
623
+ /**
624
+ * Indented sub-menu container for child navigation items. Renders as `<ul>` with
625
+ * a left border accent for visual hierarchy.
626
+ *
627
+ * `MenuSubButton` auto-wraps in `<li>` so `MenuSubItem` is optional.
628
+ *
629
+ * @example
630
+ * ```tsx
631
+ * <Sidebar.MenuSub>
632
+ * <Sidebar.MenuSubButton active>Workers & Pages</Sidebar.MenuSubButton>
633
+ * <Sidebar.MenuSubButton>Durable Objects</Sidebar.MenuSubButton>
634
+ * </Sidebar.MenuSub>
635
+ * ```
636
+ */
637
+ var SidebarMenuSub = forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx("ul", {
638
+ ref,
639
+ "data-sidebar": "menu-sub",
640
+ className: cn("m-0 ml-3.5 flex min-w-0 list-none flex-col gap-0.5 border-l border-sf-line p-0 pl-2.5", "group-data-[state=collapsed]/sidebar:hidden", className),
641
+ ...props
642
+ }));
643
+ SidebarMenuSub.displayName = "Sidebar.MenuSub";
644
+ /**
645
+ * Individual item inside a sub-menu. Renders as `<li>`.
646
+ *
647
+ * **Optional when using `MenuSubButton` directly** — `MenuSubButton` auto-wraps
648
+ * itself in a `<li>` when not already inside a `MenuSubItem`.
649
+ */
650
+ var SidebarMenuSubItem = forwardRef(({ className, children, ...props }, ref) => /* @__PURE__ */ jsx(MenuSubItemContext.Provider, {
651
+ value: true,
652
+ children: /* @__PURE__ */ jsx("li", {
653
+ ref,
654
+ "data-sidebar": "menu-sub-item",
655
+ className: cn("relative", className),
656
+ ...props,
657
+ children
658
+ })
659
+ }));
660
+ SidebarMenuSubItem.displayName = "Sidebar.MenuSubItem";
661
+ /**
662
+ * Button inside a sub-menu item. Does not render an icon (sub-items are
663
+ * indented instead). Supports active state and link rendering.
664
+ *
665
+ * **Auto-wraps in `<li>`** when not already inside a `Sidebar.MenuSubItem`.
666
+ *
667
+ * @example Simple usage (auto-wrapped in `<li>`)
668
+ * ```tsx
669
+ * <Sidebar.MenuSub>
670
+ * <Sidebar.MenuSubButton active>Workers & Pages</Sidebar.MenuSubButton>
671
+ * <Sidebar.MenuSubButton href="/observability">Observability</Sidebar.MenuSubButton>
672
+ * </Sidebar.MenuSub>
673
+ * ```
674
+ */
675
+ var SidebarMenuSubButton = forwardRef(({ className, active = false, href, children, ...props }, ref) => {
676
+ const LinkComponent = useLinkComponent();
677
+ const isInsideMenuSubItem = useContext(MenuSubItemContext);
678
+ const buttonClasses = cn("flex w-full min-w-0 items-center gap-2 rounded-lg min-h-[34px] px-3 py-1 text-sm font-medium outline-none", "text-sf-default transition-colors duration-150", !active && "hover:bg-sf-tint", active && "bg-sf-tint", "focus-visible:ring-1 focus-visible:ring-sf-ring", className);
679
+ const content = /* @__PURE__ */ jsx("span", {
680
+ className: "flex-1 truncate text-left",
681
+ children
682
+ });
683
+ const button = href ? /* @__PURE__ */ jsx(LinkComponent, {
684
+ ref,
685
+ className: cn(buttonClasses, "no-underline!"),
686
+ href,
687
+ to: href,
688
+ "data-active": active || void 0,
689
+ "data-sidebar": "menu-sub-button",
690
+ onClick: props.onClick,
691
+ children: content
692
+ }) : /* @__PURE__ */ jsx("button", {
693
+ ref,
694
+ type: "button",
695
+ className: buttonClasses,
696
+ "data-active": active || void 0,
697
+ "data-sidebar": "menu-sub-button",
698
+ ...props,
699
+ children: content
700
+ });
701
+ if (!isInsideMenuSubItem) return /* @__PURE__ */ jsx("li", {
702
+ "data-sidebar": "menu-sub-item",
703
+ className: "relative",
704
+ children: button
705
+ });
706
+ return button;
707
+ });
708
+ SidebarMenuSubButton.displayName = "Sidebar.MenuSubButton";
709
+ /**
710
+ * Horizontal divider line between sidebar sections.
711
+ */
712
+ var SidebarSeparator = forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx("hr", {
713
+ ref,
714
+ "data-sidebar": "separator",
715
+ className: cn("mx-2 min-h-px h-px border-0 bg-sf-line", className),
716
+ ...props
717
+ }));
718
+ SidebarSeparator.displayName = "Sidebar.Separator";
719
+ /**
720
+ * Search trigger button styled as an input. Typically opens a command palette.
721
+ *
722
+ * @example
723
+ * ```tsx
724
+ * <Sidebar.Input placeholder="Quick search..." shortcut="⌘K" onClick={openSearch} />
725
+ * ```
726
+ */
727
+ var SidebarInput = forwardRef(({ className, placeholder = "Search...", shortcut, children, ...props }, ref) => /* @__PURE__ */ jsxs("button", {
728
+ ref,
729
+ type: "button",
730
+ "data-sidebar": "input",
731
+ className: cn("flex w-full items-center gap-2 rounded-lg px-3 py-2 text-sm", "bg-sf-base text-sf-subtle ring ring-sf-line", "transition-[color,background-color,padding,box-shadow] duration-250 ease-[cubic-bezier(0.77,0,0.175,1)]", "hover:bg-sf-overlay", "group-data-[state=collapsed]/sidebar:px-2 group-data-[state=collapsed]/sidebar:ring-0", className),
732
+ ...props,
733
+ children: [
734
+ /* @__PURE__ */ jsx(MagnifyingGlassIcon, { className: "size-4 shrink-0 text-sf-subtle" }),
735
+ /* @__PURE__ */ jsx("span", {
736
+ className: "flex-1 truncate text-left group-data-[state=collapsed]/sidebar:hidden",
737
+ children: children ?? placeholder
738
+ }),
739
+ shortcut && /* @__PURE__ */ jsx("kbd", {
740
+ className: "ml-auto font-sans text-xs text-sf-subtle group-data-[state=collapsed]/sidebar:hidden",
741
+ children: shortcut
742
+ })
743
+ ]
744
+ }));
745
+ SidebarInput.displayName = "Sidebar.Input";
746
+ /**
747
+ * Button that toggles the sidebar open/collapsed. Uses `toggleSidebar()` from context.
748
+ * Defaults to a `SidebarSimpleIcon`, left-aligned.
749
+ *
750
+ * @example
751
+ * ```tsx
752
+ * <Sidebar.Trigger />
753
+ * <Sidebar.Trigger><PanelLeftIcon className="size-5" /></Sidebar.Trigger>
754
+ * ```
755
+ */
756
+ var SidebarTrigger = forwardRef(({ className, children, onClick, ...props }, ref) => {
757
+ const { toggleSidebar } = useSidebar();
758
+ return /* @__PURE__ */ jsx("button", {
759
+ ref,
760
+ type: "button",
761
+ "data-sidebar": "trigger",
762
+ "aria-label": "Toggle sidebar",
763
+ className: cn("flex items-center rounded-md p-1.5", "text-sf-subtle hover:text-sf-strong hover:bg-sf-overlay", "transition-colors duration-150", className),
764
+ onClick: (e) => {
765
+ onClick?.(e);
766
+ toggleSidebar();
767
+ },
768
+ ...props,
769
+ children: children ?? /* @__PURE__ */ jsx(SidebarSimpleIcon, { className: "size-5" })
770
+ });
771
+ });
772
+ SidebarTrigger.displayName = "Sidebar.Trigger";
773
+ /**
774
+ * Invisible interaction strip at the sidebar edge for click-to-toggle.
775
+ * Renders a thin hover-sensitive area between the sidebar and main content.
776
+ */
777
+ var SidebarRail = forwardRef(({ className, ...props }, ref) => {
778
+ const { toggleSidebar } = useSidebar();
779
+ return /* @__PURE__ */ jsx("button", {
780
+ ref,
781
+ type: "button",
782
+ "data-sidebar": "rail",
783
+ "aria-label": "Toggle sidebar",
784
+ tabIndex: -1,
785
+ className: cn("absolute inset-y-0 z-20 hidden w-4 -translate-x-1/2 cursor-pointer transition-all", "after:absolute after:inset-y-0 after:left-1/2 after:w-0.5", "hover:after:bg-sf-brand/20", "group-data-[side=left]/sidebar-wrapper:right-0", "group-data-[side=right]/sidebar-wrapper:left-0", "sm:flex", className),
786
+ onClick: toggleSidebar,
787
+ ...props
788
+ });
789
+ });
790
+ SidebarRail.displayName = "Sidebar.Rail";
791
+ /**
792
+ * Drag handle for resizing the sidebar. Renders when `resizable` is true in
793
+ * both expanded and collapsed states.
794
+ *
795
+ * - **Expanded → drag inward past `minWidth`**: auto-collapses to icon-only.
796
+ * - **Collapsed → drag outward past `minWidth`**: auto-expands and begins
797
+ * tracking width from `minWidth`.
798
+ */
799
+ var SidebarResizeHandle = forwardRef(({ className, ...props }, ref) => {
800
+ const { side, resizable, setIsResizing, setWidth, setOpen, open, minWidth } = useSidebar();
801
+ const startX = useRef(0);
802
+ const startWidth = useRef(0);
803
+ const wasCollapsed = useRef(false);
804
+ if (!resizable) return null;
805
+ const handlePointerDown = (e) => {
806
+ e.preventDefault();
807
+ setIsResizing(true);
808
+ startX.current = e.clientX;
809
+ wasCollapsed.current = !open;
810
+ startWidth.current = (e.currentTarget.closest("[data-sidebar-wrapper]")?.querySelector("[data-sidebar='sidebar']"))?.getBoundingClientRect().width ?? 0;
811
+ const cleanup = () => {
812
+ setIsResizing(false);
813
+ document.removeEventListener("pointermove", handlePointerMove);
814
+ document.removeEventListener("pointerup", handlePointerUp);
815
+ };
816
+ const handlePointerMove = (moveEvent) => {
817
+ const delta = side === "left" ? moveEvent.clientX - startX.current : startX.current - moveEvent.clientX;
818
+ const rawWidth = startWidth.current + delta;
819
+ if (wasCollapsed.current) {
820
+ if (rawWidth >= minWidth) {
821
+ wasCollapsed.current = false;
822
+ setOpen(true);
823
+ setWidth(rawWidth);
824
+ }
825
+ return;
826
+ }
827
+ if (rawWidth < minWidth) {
828
+ setOpen(false);
829
+ wasCollapsed.current = true;
830
+ return;
831
+ }
832
+ setWidth(rawWidth);
833
+ };
834
+ const handlePointerUp = () => {
835
+ cleanup();
836
+ };
837
+ document.addEventListener("pointermove", handlePointerMove);
838
+ document.addEventListener("pointerup", handlePointerUp);
839
+ };
840
+ return /* @__PURE__ */ jsx("div", {
841
+ ref,
842
+ "data-sidebar": "resize-handle",
843
+ className: cn("absolute inset-y-0 z-20 hidden w-1 cursor-col-resize transition-colors sm:block", "hover:bg-sf-brand/30 active:bg-sf-brand/50", side === "left" && "right-0", side === "right" && "left-0", className),
844
+ onPointerDown: handlePointerDown,
845
+ ...props
846
+ });
847
+ });
848
+ SidebarResizeHandle.displayName = "Sidebar.ResizeHandle";
849
+ /**
850
+ * Auto-rotating chevron for collapsible menu items. When the parent
851
+ * `MenuButton` is used as a `Collapsible.Trigger`, Base UI sets
852
+ * `data-panel-open` on the trigger — the chevron rotates automatically via CSS.
853
+ *
854
+ * @example
855
+ * ```tsx
856
+ * <Sidebar.CollapsibleTrigger render={<Sidebar.MenuButton icon={ComputeIcon} />}>
857
+ * Compute
858
+ * <Sidebar.MenuChevron />
859
+ * </Sidebar.CollapsibleTrigger>
860
+ * ```
861
+ */
862
+ function SidebarMenuChevron({ className }) {
863
+ return /* @__PURE__ */ jsx(CaretRightIcon, { className: cn("ml-auto size-4 shrink-0 text-sf-subtle transition-transform duration-200", "group-data-[panel-open]/menu-button:rotate-90", "group-data-[state=collapsed]/sidebar:hidden", className) });
864
+ }
865
+ SidebarMenuChevron.displayName = "Sidebar.MenuChevron";
866
+ /**
867
+ * Base UI Collapsible.Root for sidebar sub-menu expand/collapse.
868
+ * @see https://base-ui.com/react/components/collapsible
869
+ */
870
+ var SidebarCollapsible = Collapsible.Root;
871
+ /**
872
+ * Base UI Collapsible.Trigger for sidebar sub-menu toggle.
873
+ * Use `render` prop to compose with `Sidebar.MenuButton`.
874
+ *
875
+ * @example
876
+ * ```tsx
877
+ * <Sidebar.CollapsibleTrigger render={<Sidebar.MenuButton icon={DiamondIcon} />}>
878
+ * Compute
879
+ * <Sidebar.MenuChevron />
880
+ * </Sidebar.CollapsibleTrigger>
881
+ * ```
882
+ */
883
+ var SidebarCollapsibleTrigger = Collapsible.Trigger;
884
+ /**
885
+ * Animated collapsible panel for sidebar sub-menu content.
886
+ * Wraps Base UI `Collapsible.Panel` with a height transition driven by the
887
+ * `--collapsible-panel-height` CSS variable that Base UI measures automatically.
888
+ *
889
+ * Uses `keepMounted` by default so the exit animation plays before removal.
890
+ *
891
+ * Animation flow:
892
+ * - **Opening**: `data-starting-style` (h=0) → `data-open` (h=measured) — transition up
893
+ * - **Closing**: `data-open` removed + `data-ending-style` (h=0) — transition down
894
+ * - **Closed**: `data-closed` (h=0) — stays collapsed while mounted
895
+ */
896
+ var SidebarCollapsibleContent = forwardRef(({ className, keepMounted = true, ...props }, ref) => /* @__PURE__ */ jsx(Collapsible.Panel, {
897
+ ref,
898
+ keepMounted,
899
+ className: cn("overflow-hidden", "h-[var(--collapsible-panel-height)]", "transition-[height] duration-250 ease-[cubic-bezier(0.77,0,0.175,1)]", "motion-reduce:transition-none", "data-[closed]:h-0 data-[starting-style]:h-0 data-[ending-style]:h-0", className),
900
+ ...props
901
+ }));
902
+ SidebarCollapsibleContent.displayName = "Sidebar.CollapsibleContent";
903
+ /**
904
+ * Sidebar — responsive navigation panel with expand/collapse support.
905
+ *
906
+ * Compound component: `Sidebar` (root `<aside>`), `.Provider`, `.Header`,
907
+ * `.Content`, `.Footer`, `.Group`, `.GroupLabel`, `.GroupContent`,
908
+ * `.Menu`, `.MenuItem`, `.MenuButton`, `.MenuAction`, `.MenuBadge`,
909
+ * `.MenuSub`, `.MenuSubItem`, `.MenuSubButton`, `.Separator`,
910
+ * `.Input`, `.Trigger`, `.Rail`, `.MenuChevron`,
911
+ * `.Collapsible`, `.CollapsibleTrigger`, `.CollapsibleContent`.
912
+ *
913
+ * Built on `@base-ui/react/collapsible` + `@base-ui/react/dialog`.
914
+ *
915
+ * @example
916
+ * ```tsx
917
+ * <Sidebar.Provider defaultOpen>
918
+ * <Sidebar>
919
+ * <Sidebar.Content>
920
+ * <Sidebar.Group>
921
+ * <Sidebar.GroupLabel>Overview</Sidebar.GroupLabel>
922
+ * <Sidebar.Menu>
923
+ * <Sidebar.MenuButton icon={HouseIcon} active>Home</Sidebar.MenuButton>
924
+ * <Sidebar.MenuButton icon={GlobeIcon}>Domains</Sidebar.MenuButton>
925
+ * </Sidebar.Menu>
926
+ * </Sidebar.Group>
927
+ * </Sidebar.Content>
928
+ * <Sidebar.Footer>
929
+ * <Sidebar.Trigger />
930
+ * </Sidebar.Footer>
931
+ * </Sidebar>
932
+ * </Sidebar.Provider>
933
+ * ```
934
+ */
935
+ var Sidebar = Object.assign(SidebarRoot, {
936
+ Provider: SidebarProvider,
937
+ Header: SidebarHeader,
938
+ Content: SidebarContent,
939
+ Footer: SidebarFooter,
940
+ Group: SidebarGroup,
941
+ GroupLabel: SidebarGroupLabel,
942
+ GroupContent: SidebarGroupContent,
943
+ Menu: SidebarMenu,
944
+ MenuItem: SidebarMenuItem,
945
+ MenuButton: SidebarMenuButton,
946
+ MenuAction: SidebarMenuAction,
947
+ MenuBadge: SidebarMenuBadge,
948
+ MenuSub: SidebarMenuSub,
949
+ MenuSubItem: SidebarMenuSubItem,
950
+ MenuSubButton: SidebarMenuSubButton,
951
+ Separator: SidebarSeparator,
952
+ Input: SidebarInput,
953
+ Trigger: SidebarTrigger,
954
+ Rail: SidebarRail,
955
+ ResizeHandle: SidebarResizeHandle,
956
+ MenuChevron: SidebarMenuChevron,
957
+ Collapsible: SidebarCollapsible,
958
+ CollapsibleTrigger: SidebarCollapsibleTrigger,
959
+ CollapsibleContent: SidebarCollapsibleContent
960
+ });
961
+ //#endregion
962
+ export { useSidebar as A, SidebarMenuSubItem as C, SidebarRoot as D, SidebarResizeHandle as E, SidebarSeparator as O, SidebarMenuSubButton as S, SidebarRail as T, SidebarMenuBadge as _, SidebarCollapsible as a, SidebarMenuItem as b, SidebarContent as c, SidebarGroupContent as d, SidebarGroupLabel as f, SidebarMenuAction as g, SidebarMenu as h, Sidebar as i, SidebarTrigger as k, SidebarFooter as l, SidebarInput as m, SF_SIDEBAR_STYLING as n, SidebarCollapsibleContent as o, SidebarHeader as p, SF_SIDEBAR_VARIANTS as r, SidebarCollapsibleTrigger as s, SF_SIDEBAR_DEFAULT_VARIANTS as t, SidebarGroup as u, SidebarMenuButton as v, SidebarProvider as w, SidebarMenuSub as x, SidebarMenuChevron as y };
963
+
964
+ //# sourceMappingURL=sidebar-DOwBrq57.js.map