@elizaos/ui 2.0.0-alpha.13 → 2.0.0-alpha.140

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 (439) hide show
  1. package/package.json +76 -49
  2. package/packages/ui/src/components/composites/chat/chat-attachment-strip.d.ts +9 -0
  3. package/packages/ui/src/components/composites/chat/chat-attachment-strip.d.ts.map +1 -0
  4. package/packages/ui/src/components/composites/chat/chat-attachment-strip.js +8 -0
  5. package/packages/ui/src/components/composites/chat/chat-bubble.d.ts +14 -0
  6. package/packages/ui/src/components/composites/chat/chat-bubble.d.ts.map +1 -0
  7. package/packages/ui/src/components/composites/chat/chat-bubble.js +14 -0
  8. package/packages/ui/src/components/composites/chat/chat-composer-shell.d.ts +10 -0
  9. package/packages/ui/src/components/composites/chat/chat-composer-shell.d.ts.map +1 -0
  10. package/packages/ui/src/components/composites/chat/chat-composer-shell.js +16 -0
  11. package/packages/ui/src/components/composites/chat/chat-composer.d.ts +39 -0
  12. package/packages/ui/src/components/composites/chat/chat-composer.d.ts.map +1 -0
  13. package/packages/ui/src/components/composites/chat/chat-composer.js +148 -0
  14. package/packages/ui/src/components/composites/chat/chat-conversation-item.d.ts +21 -0
  15. package/packages/ui/src/components/composites/chat/chat-conversation-item.d.ts.map +1 -0
  16. package/packages/ui/src/components/composites/chat/chat-conversation-item.js +120 -0
  17. package/packages/ui/src/components/composites/chat/chat-conversation-rename-dialog.d.ts +22 -0
  18. package/packages/ui/src/components/composites/chat/chat-conversation-rename-dialog.d.ts.map +1 -0
  19. package/packages/ui/src/components/composites/chat/chat-conversation-rename-dialog.js +14 -0
  20. package/packages/ui/src/components/composites/chat/chat-empty-state.d.ts +19 -0
  21. package/packages/ui/src/components/composites/chat/chat-empty-state.d.ts.map +1 -0
  22. package/packages/ui/src/components/composites/chat/chat-empty-state.js +8 -0
  23. package/packages/ui/src/components/composites/chat/chat-message-actions.d.ts +14 -0
  24. package/packages/ui/src/components/composites/chat/chat-message-actions.d.ts.map +1 -0
  25. package/packages/ui/src/components/composites/chat/chat-message-actions.js +10 -0
  26. package/packages/ui/src/components/composites/chat/chat-message.d.ts +18 -0
  27. package/packages/ui/src/components/composites/chat/chat-message.d.ts.map +1 -0
  28. package/packages/ui/src/components/composites/chat/chat-message.js +275 -0
  29. package/packages/ui/src/components/composites/chat/chat-sidebar.d.ts +54 -0
  30. package/packages/ui/src/components/composites/chat/chat-sidebar.d.ts.map +1 -0
  31. package/packages/ui/src/components/composites/chat/chat-sidebar.js +64 -0
  32. package/packages/ui/src/components/composites/chat/chat-source.d.ts +19 -0
  33. package/packages/ui/src/components/composites/chat/chat-source.d.ts.map +1 -0
  34. package/packages/ui/src/components/composites/chat/chat-source.js +127 -0
  35. package/packages/ui/src/components/composites/chat/chat-thread-layout.d.ts +18 -0
  36. package/packages/ui/src/components/composites/chat/chat-thread-layout.d.ts.map +1 -0
  37. package/packages/ui/src/components/composites/chat/chat-thread-layout.js +28 -0
  38. package/packages/ui/src/components/composites/chat/chat-transcript.d.ts +19 -0
  39. package/packages/ui/src/components/composites/chat/chat-transcript.d.ts.map +1 -0
  40. package/packages/ui/src/components/composites/chat/chat-transcript.js +82 -0
  41. package/packages/ui/src/components/composites/chat/chat-types.d.ts +90 -0
  42. package/packages/ui/src/components/composites/chat/chat-types.d.ts.map +1 -0
  43. package/packages/ui/src/components/composites/chat/chat-types.js +1 -0
  44. package/packages/ui/src/components/composites/chat/chat-typing-indicator.d.ts +10 -0
  45. package/packages/ui/src/components/composites/chat/chat-typing-indicator.d.ts.map +1 -0
  46. package/packages/ui/src/components/composites/chat/chat-typing-indicator.js +11 -0
  47. package/packages/ui/src/components/composites/chat/create-task-popover.d.ts +8 -0
  48. package/packages/ui/src/components/composites/chat/create-task-popover.d.ts.map +1 -0
  49. package/packages/ui/src/components/composites/chat/create-task-popover.js +44 -0
  50. package/packages/ui/src/components/composites/chat/index.d.ts +17 -0
  51. package/packages/ui/src/components/composites/chat/index.d.ts.map +1 -0
  52. package/packages/ui/src/components/composites/chat/index.js +16 -0
  53. package/packages/ui/src/components/composites/form-field/form-field.d.ts +14 -0
  54. package/packages/ui/src/components/composites/form-field/form-field.d.ts.map +1 -0
  55. package/packages/ui/src/components/composites/form-field/form-field.js +8 -0
  56. package/packages/ui/src/components/composites/form-field/index.d.ts +2 -0
  57. package/packages/ui/src/components/composites/form-field/index.d.ts.map +1 -0
  58. package/packages/ui/src/components/composites/form-field/index.js +1 -0
  59. package/packages/ui/src/components/composites/index.d.ts +27 -0
  60. package/packages/ui/src/components/composites/index.d.ts.map +1 -0
  61. package/packages/ui/src/components/composites/index.js +26 -0
  62. package/packages/ui/src/components/composites/page-panel/index.d.ts +29 -0
  63. package/packages/ui/src/components/composites/page-panel/index.d.ts.map +1 -0
  64. package/packages/ui/src/components/composites/page-panel/index.js +28 -0
  65. package/packages/ui/src/components/composites/page-panel/page-panel-collapsible-section.d.ts +4 -0
  66. package/packages/ui/src/components/composites/page-panel/page-panel-collapsible-section.d.ts.map +1 -0
  67. package/packages/ui/src/components/composites/page-panel/page-panel-collapsible-section.js +60 -0
  68. package/packages/ui/src/components/composites/page-panel/page-panel-empty.d.ts +3 -0
  69. package/packages/ui/src/components/composites/page-panel/page-panel-empty.d.ts.map +1 -0
  70. package/packages/ui/src/components/composites/page-panel/page-panel-empty.js +15 -0
  71. package/packages/ui/src/components/composites/page-panel/page-panel-frame.d.ts +5 -0
  72. package/packages/ui/src/components/composites/page-panel/page-panel-frame.d.ts.map +1 -0
  73. package/packages/ui/src/components/composites/page-panel/page-panel-frame.js +9 -0
  74. package/packages/ui/src/components/composites/page-panel/page-panel-header.d.ts +7 -0
  75. package/packages/ui/src/components/composites/page-panel/page-panel-header.d.ts.map +1 -0
  76. package/packages/ui/src/components/composites/page-panel/page-panel-header.js +30 -0
  77. package/packages/ui/src/components/composites/page-panel/page-panel-loading.d.ts +3 -0
  78. package/packages/ui/src/components/composites/page-panel/page-panel-loading.d.ts.map +1 -0
  79. package/packages/ui/src/components/composites/page-panel/page-panel-loading.js +13 -0
  80. package/packages/ui/src/components/composites/page-panel/page-panel-root.d.ts +7 -0
  81. package/packages/ui/src/components/composites/page-panel/page-panel-root.d.ts.map +1 -0
  82. package/packages/ui/src/components/composites/page-panel/page-panel-root.js +17 -0
  83. package/packages/ui/src/components/composites/page-panel/page-panel-toolbar.d.ts +4 -0
  84. package/packages/ui/src/components/composites/page-panel/page-panel-toolbar.d.ts.map +1 -0
  85. package/packages/ui/src/components/composites/page-panel/page-panel-toolbar.js +6 -0
  86. package/packages/ui/src/components/composites/page-panel/page-panel-types.d.ts +66 -0
  87. package/packages/ui/src/components/composites/page-panel/page-panel-types.d.ts.map +1 -0
  88. package/packages/ui/src/components/composites/page-panel/page-panel-types.js +1 -0
  89. package/packages/ui/src/components/composites/search/index.d.ts +3 -0
  90. package/packages/ui/src/components/composites/search/index.d.ts.map +1 -0
  91. package/packages/ui/src/components/composites/search/index.js +2 -0
  92. package/packages/ui/src/components/composites/search/search-input.d.ts.map +1 -0
  93. package/{dist/components/ui → packages/ui/src/components/composites/search}/search-input.js +3 -2
  94. package/{dist/components/ui/search-bar.d.ts → packages/ui/src/components/composites/search/searchbar.d.ts} +8 -7
  95. package/packages/ui/src/components/composites/search/searchbar.d.ts.map +1 -0
  96. package/packages/ui/src/components/composites/search/searchbar.js +25 -0
  97. package/packages/ui/src/components/composites/sidebar/index.d.ts +11 -0
  98. package/packages/ui/src/components/composites/sidebar/index.d.ts.map +1 -0
  99. package/packages/ui/src/components/composites/sidebar/index.js +10 -0
  100. package/packages/ui/src/components/composites/sidebar/sidebar-auto-rail.d.ts +15 -0
  101. package/packages/ui/src/components/composites/sidebar/sidebar-auto-rail.d.ts.map +1 -0
  102. package/packages/ui/src/components/composites/sidebar/sidebar-auto-rail.js +292 -0
  103. package/packages/ui/src/components/composites/sidebar/sidebar-body.d.ts +4 -0
  104. package/packages/ui/src/components/composites/sidebar/sidebar-body.d.ts.map +1 -0
  105. package/packages/ui/src/components/composites/sidebar/sidebar-body.js +7 -0
  106. package/packages/ui/src/components/composites/sidebar/sidebar-collapsed-rail.d.ts +11 -0
  107. package/packages/ui/src/components/composites/sidebar/sidebar-collapsed-rail.d.ts.map +1 -0
  108. package/packages/ui/src/components/composites/sidebar/sidebar-collapsed-rail.js +13 -0
  109. package/packages/ui/src/components/composites/sidebar/sidebar-content.d.ts +78 -0
  110. package/packages/ui/src/components/composites/sidebar/sidebar-content.d.ts.map +1 -0
  111. package/packages/ui/src/components/composites/sidebar/sidebar-content.js +89 -0
  112. package/packages/ui/src/components/composites/sidebar/sidebar-filter-bar.d.ts +3 -0
  113. package/packages/ui/src/components/composites/sidebar/sidebar-filter-bar.d.ts.map +1 -0
  114. package/packages/ui/src/components/composites/sidebar/sidebar-filter-bar.js +14 -0
  115. package/packages/ui/src/components/composites/sidebar/sidebar-header-stack.d.ts +3 -0
  116. package/packages/ui/src/components/composites/sidebar/sidebar-header-stack.d.ts.map +1 -0
  117. package/packages/ui/src/components/composites/sidebar/sidebar-header-stack.js +6 -0
  118. package/packages/ui/src/components/composites/sidebar/sidebar-header.d.ts +9 -0
  119. package/packages/ui/src/components/composites/sidebar/sidebar-header.d.ts.map +1 -0
  120. package/packages/ui/src/components/composites/sidebar/sidebar-header.js +6 -0
  121. package/packages/ui/src/components/composites/sidebar/sidebar-panel.d.ts +3 -0
  122. package/packages/ui/src/components/composites/sidebar/sidebar-panel.d.ts.map +1 -0
  123. package/packages/ui/src/components/composites/sidebar/sidebar-panel.js +18 -0
  124. package/packages/ui/src/components/composites/sidebar/sidebar-root.d.ts +4 -0
  125. package/packages/ui/src/components/composites/sidebar/sidebar-root.d.ts.map +1 -0
  126. package/packages/ui/src/components/composites/sidebar/sidebar-root.js +448 -0
  127. package/packages/ui/src/components/composites/sidebar/sidebar-scroll-region.d.ts +3 -0
  128. package/packages/ui/src/components/composites/sidebar/sidebar-scroll-region.d.ts.map +1 -0
  129. package/packages/ui/src/components/composites/sidebar/sidebar-scroll-region.js +18 -0
  130. package/packages/ui/src/components/composites/sidebar/sidebar-types.d.ts +59 -0
  131. package/packages/ui/src/components/composites/sidebar/sidebar-types.d.ts.map +1 -0
  132. package/packages/ui/src/components/composites/sidebar/sidebar-types.js +1 -0
  133. package/packages/ui/src/components/composites/skills/index.d.ts +2 -0
  134. package/packages/ui/src/components/composites/skills/index.d.ts.map +1 -0
  135. package/packages/ui/src/components/composites/skills/index.js +1 -0
  136. package/packages/ui/src/components/composites/skills/skill-sidebar-item.d.ts +16 -0
  137. package/packages/ui/src/components/composites/skills/skill-sidebar-item.d.ts.map +1 -0
  138. package/packages/ui/src/components/composites/skills/skill-sidebar-item.js +7 -0
  139. package/packages/ui/src/components/composites/trajectories/index.d.ts +5 -0
  140. package/packages/ui/src/components/composites/trajectories/index.d.ts.map +1 -0
  141. package/packages/ui/src/components/composites/trajectories/index.js +4 -0
  142. package/packages/ui/src/components/composites/trajectories/trajectory-code-block.d.ts +13 -0
  143. package/packages/ui/src/components/composites/trajectories/trajectory-code-block.d.ts.map +1 -0
  144. package/packages/ui/src/components/composites/trajectories/trajectory-code-block.js +13 -0
  145. package/packages/ui/src/components/composites/trajectories/trajectory-llm-call-card.d.ts +34 -0
  146. package/packages/ui/src/components/composites/trajectories/trajectory-llm-call-card.d.ts.map +1 -0
  147. package/packages/ui/src/components/composites/trajectories/trajectory-llm-call-card.js +14 -0
  148. package/packages/ui/src/components/composites/trajectories/trajectory-pipeline-graph.d.ts +26 -0
  149. package/packages/ui/src/components/composites/trajectories/trajectory-pipeline-graph.d.ts.map +1 -0
  150. package/packages/ui/src/components/composites/trajectories/trajectory-pipeline-graph.js +46 -0
  151. package/packages/ui/src/components/composites/trajectories/trajectory-sidebar-item.d.ts +15 -0
  152. package/packages/ui/src/components/composites/trajectories/trajectory-sidebar-item.d.ts.map +1 -0
  153. package/packages/ui/src/components/composites/trajectories/trajectory-sidebar-item.js +8 -0
  154. package/packages/ui/src/components/primitives/index.d.ts +26 -0
  155. package/packages/ui/src/components/primitives/index.d.ts.map +1 -0
  156. package/packages/ui/src/components/primitives/index.js +25 -0
  157. package/packages/ui/src/components/ui/admin-dialog.d.ts +50 -0
  158. package/packages/ui/src/components/ui/admin-dialog.d.ts.map +1 -0
  159. package/packages/ui/src/components/ui/admin-dialog.js +48 -0
  160. package/{dist → packages/ui/src}/components/ui/badge.d.ts +1 -1
  161. package/packages/ui/src/components/ui/badge.d.ts.map +1 -0
  162. package/packages/ui/src/components/ui/banner.d.ts.map +1 -0
  163. package/{dist → packages/ui/src}/components/ui/banner.js +2 -1
  164. package/{dist → packages/ui/src}/components/ui/button.d.ts +1 -1
  165. package/packages/ui/src/components/ui/button.d.ts.map +1 -0
  166. package/packages/ui/src/components/ui/button.js +39 -0
  167. package/{dist → packages/ui/src}/components/ui/card.d.ts +8 -2
  168. package/packages/ui/src/components/ui/card.d.ts.map +1 -0
  169. package/{dist → packages/ui/src}/components/ui/card.js +17 -2
  170. package/packages/ui/src/components/ui/checkbox.d.ts.map +1 -0
  171. package/packages/ui/src/components/ui/confirm-delete.d.ts +20 -0
  172. package/packages/ui/src/components/ui/confirm-delete.d.ts.map +1 -0
  173. package/packages/ui/src/components/ui/confirm-delete.js +16 -0
  174. package/packages/ui/src/components/ui/confirm-dialog.d.ts +49 -0
  175. package/packages/ui/src/components/ui/confirm-dialog.d.ts.map +1 -0
  176. package/packages/ui/src/components/ui/confirm-dialog.js +90 -0
  177. package/{dist → packages/ui/src}/components/ui/connection-status.d.ts +6 -0
  178. package/packages/ui/src/components/ui/connection-status.d.ts.map +1 -0
  179. package/packages/ui/src/components/ui/connection-status.js +25 -0
  180. package/packages/ui/src/components/ui/copy-button.d.ts.map +1 -0
  181. package/{dist → packages/ui/src}/components/ui/dialog.d.ts +6 -1
  182. package/packages/ui/src/components/ui/dialog.d.ts.map +1 -0
  183. package/packages/ui/src/components/ui/dialog.js +23 -0
  184. package/packages/ui/src/components/ui/drawer-sheet.d.ts +19 -0
  185. package/packages/ui/src/components/ui/drawer-sheet.d.ts.map +1 -0
  186. package/packages/ui/src/components/ui/drawer-sheet.js +21 -0
  187. package/packages/ui/src/components/ui/dropdown-menu.d.ts.map +1 -0
  188. package/{dist → packages/ui/src}/components/ui/dropdown-menu.js +1 -1
  189. package/packages/ui/src/components/ui/empty-state.d.ts.map +1 -0
  190. package/{dist → packages/ui/src}/components/ui/error-boundary.d.ts +5 -1
  191. package/packages/ui/src/components/ui/error-boundary.d.ts.map +1 -0
  192. package/{dist → packages/ui/src}/components/ui/error-boundary.js +1 -1
  193. package/packages/ui/src/components/ui/field-switch.d.ts +8 -0
  194. package/packages/ui/src/components/ui/field-switch.d.ts.map +1 -0
  195. package/packages/ui/src/components/ui/field-switch.js +10 -0
  196. package/packages/ui/src/components/ui/field.d.ts +11 -0
  197. package/packages/ui/src/components/ui/field.d.ts.map +1 -0
  198. package/packages/ui/src/components/ui/field.js +21 -0
  199. package/packages/ui/src/components/ui/form-select.d.ts +13 -0
  200. package/packages/ui/src/components/ui/form-select.d.ts.map +1 -0
  201. package/packages/ui/src/components/ui/form-select.js +9 -0
  202. package/{dist → packages/ui/src}/components/ui/grid.d.ts +1 -1
  203. package/packages/ui/src/components/ui/grid.d.ts.map +1 -0
  204. package/packages/ui/src/components/ui/input.d.ts +12 -0
  205. package/packages/ui/src/components/ui/input.d.ts.map +1 -0
  206. package/packages/ui/src/components/ui/input.js +28 -0
  207. package/packages/ui/src/components/ui/label.d.ts.map +1 -0
  208. package/packages/ui/src/components/ui/new-action-button.d.ts +7 -0
  209. package/packages/ui/src/components/ui/new-action-button.d.ts.map +1 -0
  210. package/packages/ui/src/components/ui/new-action-button.js +13 -0
  211. package/packages/ui/src/components/ui/popover.d.ts.map +1 -0
  212. package/packages/ui/src/components/ui/save-footer.d.ts.map +1 -0
  213. package/packages/ui/src/components/ui/save-footer.js +10 -0
  214. package/packages/ui/src/components/ui/section-card.d.ts.map +1 -0
  215. package/{dist → packages/ui/src}/components/ui/section-card.js +3 -2
  216. package/packages/ui/src/components/ui/segmented-control.d.ts +18 -0
  217. package/packages/ui/src/components/ui/segmented-control.d.ts.map +1 -0
  218. package/packages/ui/src/components/ui/segmented-control.js +10 -0
  219. package/packages/ui/src/components/ui/select.d.ts.map +1 -0
  220. package/{dist → packages/ui/src}/components/ui/select.js +7 -6
  221. package/packages/ui/src/components/ui/separator.d.ts.map +1 -0
  222. package/packages/ui/src/components/ui/settings-controls.d.ts +41 -0
  223. package/packages/ui/src/components/ui/settings-controls.d.ts.map +1 -0
  224. package/packages/ui/src/components/ui/settings-controls.js +60 -0
  225. package/packages/ui/src/components/ui/skeleton.d.ts.map +1 -0
  226. package/{dist → packages/ui/src}/components/ui/skeleton.js +1 -2
  227. package/packages/ui/src/components/ui/slider.d.ts.map +1 -0
  228. package/{dist → packages/ui/src}/components/ui/slider.js +1 -1
  229. package/packages/ui/src/components/ui/sonner.d.ts +2 -0
  230. package/packages/ui/src/components/ui/sonner.d.ts.map +1 -0
  231. package/packages/ui/src/components/ui/sonner.js +1 -0
  232. package/packages/ui/src/components/ui/spinner.d.ts.map +1 -0
  233. package/{dist → packages/ui/src}/components/ui/stack.d.ts +1 -1
  234. package/packages/ui/src/components/ui/stack.d.ts.map +1 -0
  235. package/{dist → packages/ui/src}/components/ui/status-badge.d.ts +11 -4
  236. package/packages/ui/src/components/ui/status-badge.d.ts.map +1 -0
  237. package/packages/ui/src/components/ui/status-badge.js +70 -0
  238. package/packages/ui/src/components/ui/switch.d.ts.map +1 -0
  239. package/packages/ui/src/components/ui/switch.js +7 -0
  240. package/packages/ui/src/components/ui/tabs.d.ts.map +1 -0
  241. package/{dist → packages/ui/src}/components/ui/tabs.js +1 -1
  242. package/packages/ui/src/components/ui/tag-editor.d.ts +12 -0
  243. package/packages/ui/src/components/ui/tag-editor.d.ts.map +1 -0
  244. package/packages/ui/src/components/ui/tag-editor.js +34 -0
  245. package/packages/ui/src/components/ui/tag-input.d.ts +3 -0
  246. package/packages/ui/src/components/ui/tag-input.d.ts.map +1 -0
  247. package/packages/ui/src/components/ui/tag-input.js +1 -0
  248. package/packages/ui/src/components/ui/textarea.d.ts +12 -0
  249. package/packages/ui/src/components/ui/textarea.d.ts.map +1 -0
  250. package/packages/ui/src/components/ui/textarea.js +28 -0
  251. package/{dist → packages/ui/src}/components/ui/themed-select.d.ts +3 -8
  252. package/packages/ui/src/components/ui/themed-select.d.ts.map +1 -0
  253. package/packages/ui/src/components/ui/themed-select.js +137 -0
  254. package/{dist → packages/ui/src}/components/ui/tooltip-extended.d.ts +3 -25
  255. package/packages/ui/src/components/ui/tooltip-extended.d.ts.map +1 -0
  256. package/packages/ui/src/components/ui/tooltip-extended.js +116 -0
  257. package/{dist → packages/ui/src}/components/ui/tooltip.d.ts +10 -0
  258. package/packages/ui/src/components/ui/tooltip.d.ts.map +1 -0
  259. package/packages/ui/src/components/ui/tooltip.js +13 -0
  260. package/{dist → packages/ui/src}/components/ui/typography.d.ts +2 -2
  261. package/packages/ui/src/components/ui/typography.d.ts.map +1 -0
  262. package/{dist → packages/ui/src}/components/ui/typography.js +1 -1
  263. package/packages/ui/src/hooks/index.d.ts +6 -0
  264. package/packages/ui/src/hooks/index.d.ts.map +1 -0
  265. package/packages/ui/src/hooks/index.js +5 -0
  266. package/packages/ui/src/hooks/useClickOutside.d.ts +3 -0
  267. package/packages/ui/src/hooks/useClickOutside.d.ts.map +1 -0
  268. package/packages/ui/src/hooks/useClickOutside.js +22 -0
  269. package/packages/ui/src/hooks/useDocumentVisibility.d.ts +3 -0
  270. package/packages/ui/src/hooks/useDocumentVisibility.d.ts.map +1 -0
  271. package/packages/ui/src/hooks/useDocumentVisibility.js +28 -0
  272. package/packages/ui/src/hooks/useKeyboardShortcuts.d.ts +13 -0
  273. package/packages/ui/src/hooks/useKeyboardShortcuts.d.ts.map +1 -0
  274. package/packages/ui/src/hooks/useKeyboardShortcuts.js +34 -0
  275. package/packages/ui/src/hooks/useLinkedSidebarSelection.d.ts +16 -0
  276. package/packages/ui/src/hooks/useLinkedSidebarSelection.d.ts.map +1 -0
  277. package/packages/ui/src/hooks/useLinkedSidebarSelection.js +117 -0
  278. package/packages/ui/src/hooks/useTimeout.d.ts +5 -0
  279. package/packages/ui/src/hooks/useTimeout.d.ts.map +1 -0
  280. package/packages/ui/src/hooks/useTimeout.js +26 -0
  281. package/packages/ui/src/index.d.ts +8 -0
  282. package/packages/ui/src/index.d.ts.map +1 -0
  283. package/packages/ui/src/index.js +7 -0
  284. package/packages/ui/src/layouts/chat-panel-layout/chat-panel-layout.d.ts +11 -0
  285. package/packages/ui/src/layouts/chat-panel-layout/chat-panel-layout.d.ts.map +1 -0
  286. package/packages/ui/src/layouts/chat-panel-layout/chat-panel-layout.js +37 -0
  287. package/packages/ui/src/layouts/chat-panel-layout/index.d.ts +2 -0
  288. package/packages/ui/src/layouts/chat-panel-layout/index.d.ts.map +1 -0
  289. package/packages/ui/src/layouts/chat-panel-layout/index.js +1 -0
  290. package/packages/ui/src/layouts/content-layout/content-layout.d.ts +21 -0
  291. package/packages/ui/src/layouts/content-layout/content-layout.d.ts.map +1 -0
  292. package/packages/ui/src/layouts/content-layout/content-layout.js +5 -0
  293. package/packages/ui/src/layouts/content-layout/index.d.ts +2 -0
  294. package/packages/ui/src/layouts/content-layout/index.d.ts.map +1 -0
  295. package/packages/ui/src/layouts/content-layout/index.js +1 -0
  296. package/packages/ui/src/layouts/index.d.ts +5 -0
  297. package/packages/ui/src/layouts/index.d.ts.map +1 -0
  298. package/packages/ui/src/layouts/index.js +4 -0
  299. package/packages/ui/src/layouts/layout-test-utils.d.ts +6 -0
  300. package/packages/ui/src/layouts/layout-test-utils.d.ts.map +1 -0
  301. package/packages/ui/src/layouts/layout-test-utils.js +36 -0
  302. package/packages/ui/src/layouts/page-layout/index.d.ts +5 -0
  303. package/packages/ui/src/layouts/page-layout/index.d.ts.map +1 -0
  304. package/packages/ui/src/layouts/page-layout/index.js +4 -0
  305. package/packages/ui/src/layouts/page-layout/page-layout-header.d.ts +5 -0
  306. package/packages/ui/src/layouts/page-layout/page-layout-header.d.ts.map +1 -0
  307. package/packages/ui/src/layouts/page-layout/page-layout-header.js +5 -0
  308. package/packages/ui/src/layouts/page-layout/page-layout-mobile-drawer.d.ts +3 -0
  309. package/packages/ui/src/layouts/page-layout/page-layout-mobile-drawer.d.ts.map +1 -0
  310. package/packages/ui/src/layouts/page-layout/page-layout-mobile-drawer.js +18 -0
  311. package/packages/ui/src/layouts/page-layout/page-layout-types.d.ts +15 -0
  312. package/packages/ui/src/layouts/page-layout/page-layout-types.d.ts.map +1 -0
  313. package/packages/ui/src/layouts/page-layout/page-layout-types.js +1 -0
  314. package/packages/ui/src/layouts/page-layout/page-layout.d.ts +3 -0
  315. package/packages/ui/src/layouts/page-layout/page-layout.d.ts.map +1 -0
  316. package/packages/ui/src/layouts/page-layout/page-layout.js +5 -0
  317. package/packages/ui/src/layouts/workspace-layout/index.d.ts +3 -0
  318. package/packages/ui/src/layouts/workspace-layout/index.d.ts.map +1 -0
  319. package/packages/ui/src/layouts/workspace-layout/index.js +2 -0
  320. package/packages/ui/src/layouts/workspace-layout/workspace-layout-types.d.ts +19 -0
  321. package/packages/ui/src/layouts/workspace-layout/workspace-layout-types.d.ts.map +1 -0
  322. package/packages/ui/src/layouts/workspace-layout/workspace-layout-types.js +1 -0
  323. package/packages/ui/src/layouts/workspace-layout/workspace-layout.d.ts +3 -0
  324. package/packages/ui/src/layouts/workspace-layout/workspace-layout.d.ts.map +1 -0
  325. package/packages/ui/src/layouts/workspace-layout/workspace-layout.js +50 -0
  326. package/packages/ui/src/lib/floating-layers.d.ts +17 -0
  327. package/packages/ui/src/lib/floating-layers.d.ts.map +1 -0
  328. package/packages/ui/src/lib/floating-layers.js +20 -0
  329. package/packages/ui/src/lib/utils.d.ts +3 -0
  330. package/packages/ui/src/lib/utils.d.ts.map +1 -0
  331. package/{dist → packages/ui/src}/lib/utils.js +0 -3
  332. package/packages/ui/src/stories/layout-story-fixtures.d.ts +14 -0
  333. package/packages/ui/src/stories/layout-story-fixtures.d.ts.map +1 -0
  334. package/packages/ui/src/stories/layout-story-fixtures.js +33 -0
  335. package/styles/theme.css +7 -0
  336. package/README.md +0 -6
  337. package/dist/components/ui/badge.d.ts.map +0 -1
  338. package/dist/components/ui/banner.d.ts.map +0 -1
  339. package/dist/components/ui/button.d.ts.map +0 -1
  340. package/dist/components/ui/button.js +0 -33
  341. package/dist/components/ui/card.d.ts.map +0 -1
  342. package/dist/components/ui/chat-atoms.d.ts +0 -26
  343. package/dist/components/ui/chat-atoms.d.ts.map +0 -1
  344. package/dist/components/ui/chat-atoms.js +0 -17
  345. package/dist/components/ui/checkbox.d.ts.map +0 -1
  346. package/dist/components/ui/confirm-delete.d.ts +0 -12
  347. package/dist/components/ui/confirm-delete.d.ts.map +0 -1
  348. package/dist/components/ui/confirm-delete.js +0 -13
  349. package/dist/components/ui/confirm-dialog.d.ts +0 -24
  350. package/dist/components/ui/confirm-dialog.d.ts.map +0 -1
  351. package/dist/components/ui/confirm-dialog.js +0 -55
  352. package/dist/components/ui/connection-status.d.ts.map +0 -1
  353. package/dist/components/ui/connection-status.js +0 -25
  354. package/dist/components/ui/copy-button.d.ts.map +0 -1
  355. package/dist/components/ui/dialog.d.ts.map +0 -1
  356. package/dist/components/ui/dialog.js +0 -22
  357. package/dist/components/ui/dropdown-menu.d.ts.map +0 -1
  358. package/dist/components/ui/empty-state.d.ts.map +0 -1
  359. package/dist/components/ui/error-boundary.d.ts.map +0 -1
  360. package/dist/components/ui/grid.d.ts.map +0 -1
  361. package/dist/components/ui/input.d.ts +0 -6
  362. package/dist/components/ui/input.d.ts.map +0 -1
  363. package/dist/components/ui/input.js +0 -8
  364. package/dist/components/ui/label.d.ts.map +0 -1
  365. package/dist/components/ui/popover.d.ts.map +0 -1
  366. package/dist/components/ui/save-footer.d.ts.map +0 -1
  367. package/dist/components/ui/save-footer.js +0 -9
  368. package/dist/components/ui/search-bar.d.ts.map +0 -1
  369. package/dist/components/ui/search-bar.js +0 -19
  370. package/dist/components/ui/search-input.d.ts.map +0 -1
  371. package/dist/components/ui/section-card.d.ts.map +0 -1
  372. package/dist/components/ui/select.d.ts.map +0 -1
  373. package/dist/components/ui/separator.d.ts.map +0 -1
  374. package/dist/components/ui/skeleton.d.ts.map +0 -1
  375. package/dist/components/ui/slider.d.ts.map +0 -1
  376. package/dist/components/ui/sonner.d.ts +0 -5
  377. package/dist/components/ui/sonner.d.ts.map +0 -1
  378. package/dist/components/ui/sonner.js +0 -15
  379. package/dist/components/ui/spinner.d.ts.map +0 -1
  380. package/dist/components/ui/stack.d.ts.map +0 -1
  381. package/dist/components/ui/status-badge.d.ts.map +0 -1
  382. package/dist/components/ui/status-badge.js +0 -41
  383. package/dist/components/ui/switch.d.ts.map +0 -1
  384. package/dist/components/ui/switch.js +0 -7
  385. package/dist/components/ui/tabs.d.ts.map +0 -1
  386. package/dist/components/ui/tag-editor.d.ts +0 -24
  387. package/dist/components/ui/tag-editor.d.ts.map +0 -1
  388. package/dist/components/ui/tag-editor.js +0 -32
  389. package/dist/components/ui/tag-input.d.ts +0 -19
  390. package/dist/components/ui/tag-input.d.ts.map +0 -1
  391. package/dist/components/ui/tag-input.js +0 -28
  392. package/dist/components/ui/textarea.d.ts +0 -6
  393. package/dist/components/ui/textarea.d.ts.map +0 -1
  394. package/dist/components/ui/textarea.js +0 -8
  395. package/dist/components/ui/themed-select.d.ts.map +0 -1
  396. package/dist/components/ui/themed-select.js +0 -57
  397. package/dist/components/ui/tooltip-extended.d.ts.map +0 -1
  398. package/dist/components/ui/tooltip-extended.js +0 -128
  399. package/dist/components/ui/tooltip.d.ts.map +0 -1
  400. package/dist/components/ui/tooltip.js +0 -10
  401. package/dist/components/ui/typography.d.ts.map +0 -1
  402. package/dist/index.d.ts +0 -42
  403. package/dist/index.d.ts.map +0 -1
  404. package/dist/index.js +0 -43
  405. package/dist/lib/button-styles.d.ts +0 -12
  406. package/dist/lib/button-styles.d.ts.map +0 -1
  407. package/dist/lib/button-styles.js +0 -11
  408. package/dist/lib/utils.d.ts +0 -6
  409. package/dist/lib/utils.d.ts.map +0 -1
  410. package/dist/package.json +0 -64
  411. package/dist/styles/theme.css +0 -193
  412. package/src/styles/theme.css +0 -193
  413. /package/{dist/components/ui → packages/ui/src/components/composites/search}/search-input.d.ts +0 -0
  414. /package/{dist → packages/ui/src}/components/ui/badge.js +0 -0
  415. /package/{dist → packages/ui/src}/components/ui/banner.d.ts +0 -0
  416. /package/{dist → packages/ui/src}/components/ui/checkbox.d.ts +0 -0
  417. /package/{dist → packages/ui/src}/components/ui/checkbox.js +0 -0
  418. /package/{dist → packages/ui/src}/components/ui/copy-button.d.ts +0 -0
  419. /package/{dist → packages/ui/src}/components/ui/copy-button.js +0 -0
  420. /package/{dist → packages/ui/src}/components/ui/dropdown-menu.d.ts +0 -0
  421. /package/{dist → packages/ui/src}/components/ui/empty-state.d.ts +0 -0
  422. /package/{dist → packages/ui/src}/components/ui/empty-state.js +0 -0
  423. /package/{dist → packages/ui/src}/components/ui/grid.js +0 -0
  424. /package/{dist → packages/ui/src}/components/ui/label.d.ts +0 -0
  425. /package/{dist → packages/ui/src}/components/ui/label.js +0 -0
  426. /package/{dist → packages/ui/src}/components/ui/popover.d.ts +0 -0
  427. /package/{dist → packages/ui/src}/components/ui/popover.js +0 -0
  428. /package/{dist → packages/ui/src}/components/ui/save-footer.d.ts +0 -0
  429. /package/{dist → packages/ui/src}/components/ui/section-card.d.ts +0 -0
  430. /package/{dist → packages/ui/src}/components/ui/select.d.ts +0 -0
  431. /package/{dist → packages/ui/src}/components/ui/separator.d.ts +0 -0
  432. /package/{dist → packages/ui/src}/components/ui/separator.js +0 -0
  433. /package/{dist → packages/ui/src}/components/ui/skeleton.d.ts +0 -0
  434. /package/{dist → packages/ui/src}/components/ui/slider.d.ts +0 -0
  435. /package/{dist → packages/ui/src}/components/ui/spinner.d.ts +0 -0
  436. /package/{dist → packages/ui/src}/components/ui/spinner.js +0 -0
  437. /package/{dist → packages/ui/src}/components/ui/stack.js +0 -0
  438. /package/{dist → packages/ui/src}/components/ui/switch.d.ts +0 -0
  439. /package/{dist → packages/ui/src}/components/ui/tabs.d.ts +0 -0
@@ -1,8 +1,5 @@
1
1
  import { clsx } from "clsx";
2
2
  import { twMerge } from "tailwind-merge";
3
- /**
4
- * Utility function to merge tailwind classes with conditional class names.
5
- */
6
3
  export function cn(...inputs) {
7
4
  return twMerge(clsx(inputs));
8
5
  }
@@ -0,0 +1,14 @@
1
+ import type { ReactNode } from "react";
2
+ export declare function LayoutStoryFrame({ children }: {
3
+ children: ReactNode;
4
+ }): import("react/jsx-runtime").JSX.Element;
5
+ export declare function LayoutStorySidebar(): import("react/jsx-runtime").JSX.Element;
6
+ export declare function LayoutStoryHeader(): import("react/jsx-runtime").JSX.Element;
7
+ export declare function LayoutStoryFooter(): import("react/jsx-runtime").JSX.Element;
8
+ export declare function LayoutStoryContent(): import("react/jsx-runtime").JSX.Element;
9
+ export declare const fullLayoutArgs: {
10
+ contentHeader: import("react/jsx-runtime").JSX.Element;
11
+ footer: import("react/jsx-runtime").JSX.Element;
12
+ sidebar: import("react/jsx-runtime").JSX.Element;
13
+ };
14
+ //# sourceMappingURL=layout-story-fixtures.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"layout-story-fixtures.d.ts","sourceRoot":"","sources":["../../../../../src/stories/layout-story-fixtures.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,OAAO,CAAC;AAYvC,wBAAgB,gBAAgB,CAAC,EAAE,QAAQ,EAAE,EAAE;IAAE,QAAQ,EAAE,SAAS,CAAA;CAAE,2CAErE;AAED,wBAAgB,kBAAkB,4CAqCjC;AAED,wBAAgB,iBAAiB,4CAmBhC;AAED,wBAAgB,iBAAiB,4CAQhC;AAED,wBAAgB,kBAAkB,4CA2EjC;AAED,eAAO,MAAM,cAAc;;;;CAI1B,CAAC"}
@@ -0,0 +1,33 @@
1
+ import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
2
+ import { Button, PagePanel, Sidebar, SidebarContent, SidebarHeader, SidebarPanel, SidebarScrollRegion, } from "../index";
3
+ export function LayoutStoryFrame({ children }) {
4
+ return _jsx("div", { className: "flex min-h-screen bg-bg", children: children });
5
+ }
6
+ export function LayoutStorySidebar() {
7
+ return (_jsx(Sidebar, { collapsible: true, contentIdentity: "storybook-layout", mobileTitle: "Sections", header: _jsx(SidebarHeader, { search: {
8
+ value: "",
9
+ onChange: () => { },
10
+ placeholder: "Search sections",
11
+ "aria-label": "Search sections",
12
+ } }), children: _jsx(SidebarScrollRegion, { children: _jsx(SidebarPanel, { children: _jsxs("nav", { className: "space-y-1", "aria-label": "Demo sections", children: [_jsx(SidebarContent.Item, { active: true, children: _jsx(SidebarContent.ItemTitle, { children: "Overview" }) }), _jsx(SidebarContent.Item, { children: _jsx(SidebarContent.ItemTitle, { children: "Details" }) }), _jsx(SidebarContent.Item, { children: _jsx(SidebarContent.ItemTitle, { children: "History" }) }), _jsx(SidebarContent.Item, { children: _jsx(SidebarContent.ItemTitle, { children: "Widgets" }) })] }) }) }) }));
13
+ }
14
+ export function LayoutStoryHeader() {
15
+ return (_jsxs("div", { className: "mx-auto flex w-full max-w-[72rem] flex-wrap items-center justify-between gap-3", children: [_jsxs("div", { className: "min-w-0", children: [_jsx("div", { className: "text-[11px] uppercase tracking-[0.18em] text-muted", children: "Shell header" }), _jsx("div", { className: "truncate text-sm font-medium text-txt", children: "Shared content header slot" })] }), _jsxs("div", { className: "flex flex-wrap items-center gap-2", children: [_jsx(Button, { size: "sm", variant: "outline", children: "Filter" }), _jsx(Button, { size: "sm", children: "Create" })] })] }));
16
+ }
17
+ export function LayoutStoryFooter() {
18
+ return (_jsx("div", { className: "mx-auto w-full max-w-[72rem]", children: _jsx("div", { className: "rounded-[1.5rem] border border-border/40 bg-card/75 px-4 py-3 text-sm text-muted shadow-sm", children: "Supplementary widget/footer slot" }) }));
19
+ }
20
+ export function LayoutStoryContent() {
21
+ const primarySections = [
22
+ "Section 1",
23
+ "Section 2",
24
+ "Section 3",
25
+ "Section 4",
26
+ ];
27
+ return (_jsxs("div", { className: "mx-auto flex w-full max-w-[72rem] flex-1 flex-col gap-4", children: [_jsxs(PagePanel, { variant: "workspace", className: "space-y-4", children: [_jsxs("div", { className: "flex flex-wrap items-center justify-between gap-3", children: [_jsxs("div", { children: [_jsx("div", { className: "text-[11px] uppercase tracking-[0.18em] text-muted", children: "Layout contract" }), _jsx("h2", { className: "mt-1 text-lg font-semibold text-txt", children: "Shared page shell" })] }), _jsxs("div", { className: "flex items-center gap-2", children: [_jsx(Button, { size: "sm", variant: "outline", children: "Secondary" }), _jsx(Button, { size: "sm", children: "Primary" })] })] }), _jsx("p", { className: "max-w-3xl text-sm text-muted", children: "This story exercises the standardized app page structure: optional left sidebar, scrollable main column, shared header slot, and a supplementary widget/footer region." })] }), _jsxs("div", { className: "grid gap-4 lg:grid-cols-[1.35fr_0.65fr]", children: [_jsxs(PagePanel, { variant: "workspace", className: "space-y-3", children: [_jsx("div", { className: "text-[11px] font-semibold uppercase tracking-[0.16em] text-muted", children: "Primary content" }), _jsx("div", { className: "space-y-3", children: primarySections.map((sectionLabel) => (_jsxs("div", { className: "rounded-2xl border border-border/40 bg-bg/40 p-4", children: [_jsx("div", { className: "text-sm font-medium text-txt", children: sectionLabel }), _jsx("p", { className: "mt-1 text-sm text-muted", children: "Responsive spacing, sidebar behavior, and the footer widget slot should remain consistent across every page shape." })] }, sectionLabel))) })] }), _jsxs(PagePanel, { variant: "workspace", className: "space-y-3", children: [_jsx("div", { className: "text-[11px] font-semibold uppercase tracking-[0.16em] text-muted", children: "Supporting column" }), _jsxs("div", { className: "space-y-2", children: [_jsx("div", { className: "rounded-2xl border border-border/40 bg-bg/40 p-4 text-sm text-muted", children: "Use this area to verify long-form content, summary cards, or right-column panels at tablet and desktop breakpoints." }), _jsx("div", { className: "rounded-2xl border border-border/40 bg-bg/40 p-4 text-sm text-muted", children: "On narrow widths the column naturally stacks under the primary content." })] })] })] })] }));
28
+ }
29
+ export const fullLayoutArgs = {
30
+ contentHeader: _jsx(LayoutStoryHeader, {}),
31
+ footer: _jsx(LayoutStoryFooter, {}),
32
+ sidebar: _jsx(LayoutStorySidebar, {}),
33
+ };
@@ -0,0 +1,7 @@
1
+ /*
2
+ * Theme tokens for Storybook previews.
3
+ * Imports the canonical theme system from app-core so stories
4
+ * render with the same design tokens as the real app.
5
+ */
6
+ @import "../../../../packages/app-core/src/styles/base.css";
7
+ @import "../../../../packages/app-core/src/styles/styles.css";
package/README.md DELETED
@@ -1,6 +0,0 @@
1
- # @elizaos/ui
2
-
3
- Reusable React UI primitives for ElizaOS applications.
4
-
5
- This package contains shared buttons, inputs, dialogs, badges, layout helpers,
6
- and related component utilities used by app shells built on top of ElizaOS.
@@ -1 +0,0 @@
1
- {"version":3,"file":"badge.d.ts","sourceRoot":"","sources":["../../../src/components/ui/badge.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAO,KAAK,YAAY,EAAE,MAAM,0BAA0B,CAAC;AAClE,OAAO,KAAK,KAAK,KAAK,MAAM,OAAO,CAAC;AAIpC,QAAA,MAAM,aAAa;;8EAiBlB,CAAC;AAEF,MAAM,WAAW,UACf,SAAQ,KAAK,CAAC,cAAc,CAAC,cAAc,CAAC,EAC1C,YAAY,CAAC,OAAO,aAAa,CAAC;CAAG;AAEzC,iBAAS,KAAK,CAAC,EAAE,SAAS,EAAE,OAAO,EAAE,GAAG,KAAK,EAAE,EAAE,UAAU,2CAI1D;AAED,OAAO,EAAE,KAAK,EAAE,aAAa,EAAE,CAAC"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"banner.d.ts","sourceRoot":"","sources":["../../../src/components/ui/banner.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAO,KAAK,YAAY,EAAE,MAAM,0BAA0B,CAAC;AAElE,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAG/B,QAAA,MAAM,cAAc;;8EAcnB,CAAC;AAQF,MAAM,WAAW,WACf,SAAQ,KAAK,CAAC,cAAc,CAAC,cAAc,CAAC,EAC1C,YAAY,CAAC,OAAO,cAAc,CAAC;IACrC,6CAA6C;IAC7C,MAAM,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC;IACzB,0BAA0B;IAC1B,WAAW,CAAC,EAAE,OAAO,CAAC;IACtB,qCAAqC;IACrC,SAAS,CAAC,EAAE,MAAM,IAAI,CAAC;IACvB,oCAAoC;IACpC,YAAY,CAAC,EAAE,MAAM,CAAC;CACvB;AAED,eAAO,MAAM,MAAM,oFAuClB,CAAC"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"button.d.ts","sourceRoot":"","sources":["../../../src/components/ui/button.tsx"],"names":[],"mappings":"AACA,OAAO,EAAO,KAAK,YAAY,EAAE,MAAM,0BAA0B,CAAC;AAClE,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAI/B,QAAA,MAAM,cAAc;;;8EA2BnB,CAAC;AAEF,MAAM,WAAW,WACf,SAAQ,KAAK,CAAC,oBAAoB,CAAC,iBAAiB,CAAC,EACnD,YAAY,CAAC,OAAO,cAAc,CAAC;IACrC,OAAO,CAAC,EAAE,OAAO,CAAC;CACnB;AAED,QAAA,MAAM,MAAM,uFAWX,CAAC;AAGF,OAAO,EAAE,MAAM,EAAE,cAAc,EAAE,CAAC"}
@@ -1,33 +0,0 @@
1
- import { jsx as _jsx } from "react/jsx-runtime";
2
- import { Slot } from "@radix-ui/react-slot";
3
- import { cva } from "class-variance-authority";
4
- import * as React from "react";
5
- import { cn } from "../../lib/utils";
6
- const buttonVariants = cva("inline-flex items-center justify-center gap-2 whitespace-nowrap rounded-md text-sm font-medium ring-offset-bg transition-colors focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2 disabled:pointer-events-none disabled:opacity-50 cursor-pointer [&_svg]:pointer-events-none [&_svg]:size-4 [&_svg]:shrink-0", {
7
- variants: {
8
- variant: {
9
- default: "bg-primary text-[var(--primary-foreground,#1a1f26)] hover:bg-primary/90 hover:text-[var(--primary-foreground,#1a1f26)]",
10
- destructive: "bg-destructive text-destructive-fg hover:bg-destructive/90",
11
- outline: "border border-input bg-bg hover:bg-bg-accent hover:text-accent-fg",
12
- secondary: "bg-secondary text-secondary-fg hover:bg-secondary/80",
13
- ghost: "hover:bg-bg-accent hover:text-accent-fg",
14
- link: "text-primary underline-offset-4 hover:underline",
15
- },
16
- size: {
17
- default: "h-10 px-4 py-2",
18
- sm: "h-9 rounded-md px-3",
19
- lg: "h-11 rounded-md px-8",
20
- icon: "h-10 w-10",
21
- },
22
- },
23
- defaultVariants: {
24
- variant: "default",
25
- size: "default",
26
- },
27
- });
28
- const Button = React.forwardRef(({ className, variant, size, asChild = false, ...props }, ref) => {
29
- const Comp = asChild ? Slot : "button";
30
- return (_jsx(Comp, { className: cn(buttonVariants({ variant, size, className })), ref: ref, ...props }));
31
- });
32
- Button.displayName = "Button";
33
- export { Button, buttonVariants };
@@ -1 +0,0 @@
1
- {"version":3,"file":"card.d.ts","sourceRoot":"","sources":["../../../src/components/ui/card.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAI/B,QAAA,MAAM,IAAI,6GAYR,CAAC;AAGH,QAAA,MAAM,UAAU,6GASd,CAAC;AAGH,QAAA,MAAM,SAAS,uHASb,CAAC;AAGH,QAAA,MAAM,eAAe,yHAKnB,CAAC;AAGH,QAAA,MAAM,WAAW,6GAKf,CAAC;AAGH,QAAA,MAAM,UAAU,6GASd,CAAC;AAGH,OAAO,EACL,IAAI,EACJ,WAAW,EACX,eAAe,EACf,UAAU,EACV,UAAU,EACV,SAAS,GACV,CAAC"}
@@ -1,26 +0,0 @@
1
- /**
2
- * Chat sub-components that have no app-level context dependency.
3
- *
4
- * These complement the full `ChatMessage` component (which stays in
5
- * `apps/app` because it uses `useApp()` for i18n and the `MessageContent`
6
- * renderer). Extracted here so they can be reused by any app.
7
- */
8
- export declare function TypingIndicator({ agentName, agentAvatarSrc, }: {
9
- agentName: string;
10
- agentAvatarSrc?: string | null;
11
- }): import("react/jsx-runtime").JSX.Element;
12
- export interface ChatEmptyStateProps {
13
- agentName: string;
14
- /** Starter suggestions shown as quick-reply chips. */
15
- suggestions?: string[];
16
- onSuggestionClick?: (suggestion: string) => void;
17
- /** i18n labels — all have sensible English defaults. */
18
- labels?: {
19
- startConversation?: string;
20
- sendMessageTo?: string;
21
- toBeginChatting?: string;
22
- chatIconLabel?: string;
23
- };
24
- }
25
- export declare function ChatEmptyState({ agentName, suggestions, onSuggestionClick, labels, }: ChatEmptyStateProps): import("react/jsx-runtime").JSX.Element;
26
- //# sourceMappingURL=chat-atoms.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"chat-atoms.d.ts","sourceRoot":"","sources":["../../../src/components/ui/chat-atoms.tsx"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAMH,wBAAgB,eAAe,CAAC,EAC9B,SAAS,EACT,cAAc,GACf,EAAE;IACD,SAAS,EAAE,MAAM,CAAC;IAClB,cAAc,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;CAChC,2CA0CA;AAID,MAAM,WAAW,mBAAmB;IAClC,SAAS,EAAE,MAAM,CAAC;IAClB,sDAAsD;IACtD,WAAW,CAAC,EAAE,MAAM,EAAE,CAAC;IACvB,iBAAiB,CAAC,EAAE,CAAC,UAAU,EAAE,MAAM,KAAK,IAAI,CAAC;IACjD,wDAAwD;IACxD,MAAM,CAAC,EAAE;QACP,iBAAiB,CAAC,EAAE,MAAM,CAAC;QAC3B,aAAa,CAAC,EAAE,MAAM,CAAC;QACvB,eAAe,CAAC,EAAE,MAAM,CAAC;QACzB,aAAa,CAAC,EAAE,MAAM,CAAC;KACxB,CAAC;CACH;AAED,wBAAgB,cAAc,CAAC,EAC7B,SAAS,EACT,WAA6E,EAC7E,iBAAiB,EACjB,MAAW,GACZ,EAAE,mBAAmB,2CA6CrB"}
@@ -1,17 +0,0 @@
1
- import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
2
- /**
3
- * Chat sub-components that have no app-level context dependency.
4
- *
5
- * These complement the full `ChatMessage` component (which stays in
6
- * `apps/app` because it uses `useApp()` for i18n and the `MessageContent`
7
- * renderer). Extracted here so they can be reused by any app.
8
- */
9
- import { Button } from "./button";
10
- /* ── TypingIndicator ─────────────────────────────────────────────────── */
11
- export function TypingIndicator({ agentName, agentAvatarSrc, }) {
12
- const agentInitial = agentName.trim().charAt(0).toUpperCase() || "A";
13
- return (_jsxs("div", { className: "flex items-start gap-2 sm:gap-3 mt-4", children: [_jsx("div", { className: "w-8 h-8 shrink-0 rounded-full overflow-hidden border border-border bg-bg-hover shadow-sm", children: agentAvatarSrc ? (_jsx("img", { src: agentAvatarSrc, alt: `${agentName} avatar`, className: "w-full h-full object-cover" })) : (_jsx("div", { className: "w-full h-full flex items-center justify-center text-[11px] font-bold text-accent bg-accent-subtle", children: agentInitial })) }), _jsxs("div", { className: "max-w-[88%] sm:max-w-[80%] min-w-0", children: [_jsx("div", { className: "text-[12px] font-semibold text-accent mb-1", children: agentName }), _jsx("div", { className: "px-4 py-3 bg-bg-accent border border-border rounded-2xl rounded-bl-md", children: _jsxs("div", { className: "flex gap-1", children: [_jsx("span", { className: "w-2 h-2 rounded-full bg-muted-strong animate-[typing-bounce_1.2s_ease-in-out_infinite]", style: { animationDelay: "0ms" } }), _jsx("span", { className: "w-2 h-2 rounded-full bg-muted-strong animate-[typing-bounce_1.2s_ease-in-out_infinite]", style: { animationDelay: "200ms" } }), _jsx("span", { className: "w-2 h-2 rounded-full bg-muted-strong animate-[typing-bounce_1.2s_ease-in-out_infinite]", style: { animationDelay: "400ms" } })] }) })] })] }));
14
- }
15
- export function ChatEmptyState({ agentName, suggestions = ["Hello!", "How are you?", "Tell me a joke", "Help me with..."], onSuggestionClick, labels = {}, }) {
16
- return (_jsxs("div", { className: "flex-1 flex flex-col items-center justify-center text-center p-6", children: [_jsx("div", { className: "w-16 h-16 rounded-2xl bg-accent-subtle flex items-center justify-center mb-4", children: _jsxs("svg", { width: "32", height: "32", viewBox: "0 0 24 24", fill: "none", stroke: "currentColor", strokeWidth: "2", strokeLinecap: "round", strokeLinejoin: "round", className: "text-accent", "aria-label": labels.chatIconLabel ?? "Chat icon", children: [_jsx("title", { children: labels.chatIconLabel ?? "Chat" }), _jsx("path", { d: "M21 15a2 2 0 0 1-2 2H7l-4 4V5a2 2 0 0 1 2-2h14a2 2 0 0 1 2 2z" })] }) }), _jsx("h3", { className: "text-lg font-semibold text-txt-strong mb-2", children: labels.startConversation ?? "Start a Conversation" }), _jsxs("p", { className: "text-sm text-muted max-w-sm mb-6", style: { fontFamily: "var(--font-chat)" }, children: [labels.sendMessageTo ?? "Send a message to", " ", agentName, " ", labels.toBeginChatting ?? "to begin chatting."] }), _jsx("div", { className: "flex flex-wrap justify-center gap-2", children: suggestions.map((suggestion) => (_jsx(Button, { variant: "outline", size: "sm", className: "px-3 py-1.5 h-7 text-xs rounded-full text-muted border-border bg-bg hover:border-accent hover:text-accent transition-colors", onClick: () => onSuggestionClick?.(suggestion), children: suggestion }, suggestion))) })] }));
17
- }
@@ -1 +0,0 @@
1
- {"version":3,"file":"checkbox.d.ts","sourceRoot":"","sources":["../../../src/components/ui/checkbox.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,iBAAiB,MAAM,0BAA0B,CAAC;AAE9D,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAI/B,QAAA,MAAM,QAAQ,iKAkBZ,CAAC;AAGH,OAAO,EAAE,QAAQ,EAAE,CAAC"}
@@ -1,12 +0,0 @@
1
- export interface ConfirmDeleteProps {
2
- onConfirm: () => void;
3
- disabled?: boolean;
4
- triggerLabel?: string;
5
- confirmLabel?: string;
6
- cancelLabel?: string;
7
- busyLabel?: string;
8
- promptText?: string;
9
- className?: string;
10
- }
11
- export declare function ConfirmDelete({ onConfirm, disabled, triggerLabel, confirmLabel, cancelLabel, busyLabel, promptText, className, }: ConfirmDeleteProps): import("react/jsx-runtime").JSX.Element;
12
- //# sourceMappingURL=confirm-delete.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"confirm-delete.d.ts","sourceRoot":"","sources":["../../../src/components/ui/confirm-delete.tsx"],"names":[],"mappings":"AAGA,MAAM,WAAW,kBAAkB;IACjC,SAAS,EAAE,MAAM,IAAI,CAAC;IACtB,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB;AAED,wBAAgB,aAAa,CAAC,EAC5B,SAAS,EACT,QAAgB,EAChB,YAAuB,EACvB,YAAwB,EACxB,WAAsB,EACtB,SAAS,EACT,UAAsB,EACtB,SAAS,GACV,EAAE,kBAAkB,2CA2CpB"}
@@ -1,13 +0,0 @@
1
- import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
2
- import * as React from "react";
3
- import { cn } from "../../lib/utils";
4
- export function ConfirmDelete({ onConfirm, disabled = false, triggerLabel = "Delete", confirmLabel = "Confirm", cancelLabel = "Cancel", busyLabel, promptText = "Delete?", className, }) {
5
- const [confirming, setConfirming] = React.useState(false);
6
- if (!confirming) {
7
- return (_jsx("button", { type: "button", className: cn("rounded-md border border-border px-2 py-1 text-xs text-muted transition-colors hover:border-destructive hover:text-destructive", className), onClick: () => setConfirming(true), disabled: disabled, children: triggerLabel }));
8
- }
9
- return (_jsxs("span", { className: cn("inline-flex items-center gap-1.5", className), children: [_jsx("span", { className: "text-[11px] text-destructive", children: promptText }), _jsx("button", { type: "button", className: "rounded-md border border-destructive bg-destructive px-2 py-0.5 text-[10px] font-medium text-destructive-fg transition-opacity hover:opacity-90 disabled:opacity-50", onClick: () => {
10
- onConfirm();
11
- setConfirming(false);
12
- }, disabled: disabled, children: disabled && busyLabel ? busyLabel : confirmLabel }), _jsx("button", { type: "button", className: "rounded-md border border-border px-2 py-0.5 text-[10px] text-muted transition-colors hover:border-accent hover:text-accent disabled:opacity-50", onClick: () => setConfirming(false), disabled: disabled, children: cancelLabel })] }));
13
- }
@@ -1,24 +0,0 @@
1
- export type ConfirmTone = "danger" | "warn" | "default";
2
- export interface ConfirmDialogProps {
3
- open: boolean;
4
- title?: string;
5
- message: string;
6
- confirmLabel?: string;
7
- cancelLabel?: string;
8
- tone?: ConfirmTone;
9
- onConfirm: () => void;
10
- onCancel: () => void;
11
- }
12
- export declare function ConfirmDialog({ open, title, message, confirmLabel, cancelLabel, tone, onConfirm, onCancel, }: ConfirmDialogProps): import("react/jsx-runtime").JSX.Element | null;
13
- export interface ConfirmOptions {
14
- title?: string;
15
- message: string;
16
- confirmLabel?: string;
17
- cancelLabel?: string;
18
- tone?: ConfirmTone;
19
- }
20
- export declare function useConfirm(): {
21
- confirm: (opts: ConfirmOptions) => Promise<boolean>;
22
- modalProps: ConfirmDialogProps;
23
- };
24
- //# sourceMappingURL=confirm-dialog.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"confirm-dialog.d.ts","sourceRoot":"","sources":["../../../src/components/ui/confirm-dialog.tsx"],"names":[],"mappings":"AAKA,MAAM,MAAM,WAAW,GAAG,QAAQ,GAAG,MAAM,GAAG,SAAS,CAAC;AAExD,MAAM,WAAW,kBAAkB;IACjC,IAAI,EAAE,OAAO,CAAC;IACd,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,OAAO,EAAE,MAAM,CAAC;IAChB,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,IAAI,CAAC,EAAE,WAAW,CAAC;IACnB,SAAS,EAAE,MAAM,IAAI,CAAC;IACtB,QAAQ,EAAE,MAAM,IAAI,CAAC;CACtB;AAQD,wBAAgB,aAAa,CAAC,EAC5B,IAAI,EACJ,KAAiB,EACjB,OAAO,EACP,YAAwB,EACxB,WAAsB,EACtB,IAAgB,EAChB,SAAS,EACT,QAAQ,GACT,EAAE,kBAAkB,kDA6DpB;AAID,MAAM,WAAW,cAAc;IAC7B,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,OAAO,EAAE,MAAM,CAAC;IAChB,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,IAAI,CAAC,EAAE,WAAW,CAAC;CACpB;AAED,wBAAgB,UAAU;oBAOf,cAAc,KAAG,OAAO,CAAC,OAAO,CAAC;;EA4B3C"}
@@ -1,55 +0,0 @@
1
- import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
2
- import * as React from "react";
3
- import { cn } from "../../lib/utils";
4
- const TONE_STYLES = {
5
- danger: "bg-destructive text-destructive-fg hover:opacity-90",
6
- warn: "bg-warn text-white hover:opacity-90",
7
- default: "bg-primary text-primary-fg hover:opacity-90",
8
- };
9
- export function ConfirmDialog({ open, title = "Confirm", message, confirmLabel = "Confirm", cancelLabel = "Cancel", tone = "default", onConfirm, onCancel, }) {
10
- const confirmRef = React.useRef(null);
11
- React.useEffect(() => {
12
- if (open) {
13
- const t = setTimeout(() => confirmRef.current?.focus(), 50);
14
- return () => clearTimeout(t);
15
- }
16
- }, [open]);
17
- const handleKeyDown = React.useCallback((e) => {
18
- if (e.key === "Escape") {
19
- e.preventDefault();
20
- onCancel();
21
- }
22
- }, [onCancel]);
23
- if (!open)
24
- return null;
25
- return (_jsx("div", { className: "fixed inset-0 flex items-center justify-center bg-black/40", style: { zIndex: 10001 }, onClick: (e) => {
26
- if (e.target === e.currentTarget)
27
- onCancel();
28
- }, onKeyDown: handleKeyDown, role: "dialog", "aria-modal": "true", "aria-label": title, tabIndex: -1, children: _jsxs("div", { className: "mx-4 w-full max-w-md rounded-lg border border-border bg-bg p-6 shadow-2xl", children: [_jsx("h2", { className: "mb-3 text-base font-bold", children: title }), _jsx("p", { className: "mb-6 whitespace-pre-line text-sm text-muted", children: message }), _jsxs("div", { className: "flex items-center justify-end gap-3", children: [_jsx("button", { type: "button", onClick: onCancel, className: "rounded-md border border-border px-4 py-2 text-sm transition-colors hover:bg-bg-hover", children: cancelLabel }), _jsx("button", { ref: confirmRef, type: "button", onClick: onConfirm, className: cn("rounded-md px-4 py-2 text-sm font-medium transition-opacity", TONE_STYLES[tone]), children: confirmLabel })] })] }) }));
29
- }
30
- export function useConfirm() {
31
- const [state, setState] = React.useState(null);
32
- const confirm = React.useCallback((opts) => new Promise((resolve) => {
33
- setState({ opts, resolve });
34
- }), []);
35
- const modalProps = state
36
- ? {
37
- open: true,
38
- ...state.opts,
39
- onConfirm: () => {
40
- state.resolve(true);
41
- setState(null);
42
- },
43
- onCancel: () => {
44
- state.resolve(false);
45
- setState(null);
46
- },
47
- }
48
- : {
49
- open: false,
50
- message: "",
51
- onConfirm: () => { },
52
- onCancel: () => { },
53
- };
54
- return { confirm, modalProps };
55
- }
@@ -1 +0,0 @@
1
- {"version":3,"file":"connection-status.d.ts","sourceRoot":"","sources":["../../../src/components/ui/connection-status.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAG/B,MAAM,MAAM,eAAe,GAAG,WAAW,GAAG,cAAc,GAAG,OAAO,CAAC;AAuBrE,MAAM,WAAW,qBACf,SAAQ,KAAK,CAAC,cAAc,CAAC,cAAc,CAAC;IAC5C,KAAK,EAAE,eAAe,CAAC;IACvB,uDAAuD;IACvD,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB;AAED,eAAO,MAAM,gBAAgB,8FAmB3B,CAAC"}
@@ -1,25 +0,0 @@
1
- import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
2
- import * as React from "react";
3
- import { cn } from "../../lib/utils";
4
- const STATE_STYLES = {
5
- connected: {
6
- dot: "bg-ok",
7
- text: "text-txt",
8
- label: "Connected",
9
- },
10
- disconnected: {
11
- dot: "bg-muted",
12
- text: "text-muted",
13
- label: "Disconnected",
14
- },
15
- error: {
16
- dot: "bg-destructive",
17
- text: "text-destructive",
18
- label: "Error",
19
- },
20
- };
21
- export const ConnectionStatus = React.forwardRef(({ state, label, className, ...props }, ref) => {
22
- const styles = STATE_STYLES[state];
23
- return (_jsxs("div", { ref: ref, className: cn("inline-flex items-center gap-2 rounded-md border border-border bg-bg-accent px-3 py-1.5 text-xs", styles.text, className), ...props, children: [_jsx("span", { className: cn("h-2 w-2 rounded-full", styles.dot) }), label ?? styles.label] }));
24
- });
25
- ConnectionStatus.displayName = "ConnectionStatus";
@@ -1 +0,0 @@
1
- {"version":3,"file":"copy-button.d.ts","sourceRoot":"","sources":["../../../src/components/ui/copy-button.tsx"],"names":[],"mappings":"AACA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAG/B,MAAM,WAAW,eACf,SAAQ,IAAI,CAAC,KAAK,CAAC,oBAAoB,CAAC,iBAAiB,CAAC,EAAE,SAAS,CAAC;IACtE,gCAAgC;IAChC,KAAK,EAAE,MAAM,CAAC;IACd,8CAA8C;IAC9C,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAC1B,mCAAmC;IACnC,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,kCAAkC;IAClC,WAAW,CAAC,EAAE,MAAM,CAAC;CACtB;AAED,eAAO,MAAM,UAAU,2FA0CtB,CAAC"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"dialog.d.ts","sourceRoot":"","sources":["../../../src/components/ui/dialog.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,eAAe,MAAM,wBAAwB,CAAC;AAE1D,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAI/B,QAAA,MAAM,MAAM,uCAAuB,CAAC;AAEpC,QAAA,MAAM,aAAa,8GAA0B,CAAC;AAE9C,QAAA,MAAM,YAAY,6CAAyB,CAAC;AAE5C,QAAA,MAAM,WAAW,4GAAwB,CAAC;AAE1C,QAAA,MAAM,aAAa,8JAYjB,CAAC;AAGH,QAAA,MAAM,aAAa,8JAqBjB,CAAC;AAGH,QAAA,MAAM,YAAY;8BAGf,KAAK,CAAC,cAAc,CAAC,cAAc,CAAC;;CAQtC,CAAC;AAGF,QAAA,MAAM,YAAY;8BAGf,KAAK,CAAC,cAAc,CAAC,cAAc,CAAC;;CAQtC,CAAC;AAGF,QAAA,MAAM,WAAW,oKAYf,CAAC;AAGH,QAAA,MAAM,iBAAiB,8KASrB,CAAC;AAGH,OAAO,EACL,MAAM,EACN,WAAW,EACX,aAAa,EACb,iBAAiB,EACjB,YAAY,EACZ,YAAY,EACZ,aAAa,EACb,YAAY,EACZ,WAAW,EACX,aAAa,GACd,CAAC"}
@@ -1,22 +0,0 @@
1
- import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
2
- import * as DialogPrimitive from "@radix-ui/react-dialog";
3
- import { X } from "lucide-react";
4
- import * as React from "react";
5
- import { cn } from "../../lib/utils";
6
- const Dialog = DialogPrimitive.Root;
7
- const DialogTrigger = DialogPrimitive.Trigger;
8
- const DialogPortal = DialogPrimitive.Portal;
9
- const DialogClose = DialogPrimitive.Close;
10
- const DialogOverlay = React.forwardRef(({ className, ...props }, ref) => (_jsx(DialogPrimitive.Overlay, { ref: ref, className: cn("fixed inset-0 z-50 bg-black/80 data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0", className), ...props })));
11
- DialogOverlay.displayName = DialogPrimitive.Overlay.displayName;
12
- const DialogContent = React.forwardRef(({ className, children, ...props }, ref) => (_jsxs(DialogPortal, { children: [_jsx(DialogOverlay, {}), _jsxs(DialogPrimitive.Content, { ref: ref, className: cn("fixed left-[50%] top-[50%] z-50 grid w-full max-w-lg translate-x-[-50%] translate-y-[-50%] gap-4 border bg-bg p-6 shadow-lg duration-200 data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0 data-[state=closed]:zoom-out-95 data-[state=open]:zoom-in-95 data-[state=closed]:slide-out-to-left-1/2 data-[state=closed]:slide-out-to-top-[48%] data-[state=open]:slide-in-from-left-1/2 data-[state=open]:slide-in-from-top-[48%] sm:rounded-lg", className), ...props, children: [children, _jsxs(DialogPrimitive.Close, { className: "absolute right-4 top-4 rounded-sm opacity-70 ring-offset-bg transition-opacity hover:opacity-100 focus:outline-none focus:ring-2 focus:ring-ring focus:ring-offset-2 disabled:pointer-events-none data-[state=open]:bg-accent data-[state=open]:text-muted", children: [_jsx(X, { className: "h-4 w-4" }), _jsx("span", { className: "sr-only", children: "Close" })] })] })] })));
13
- DialogContent.displayName = DialogPrimitive.Content.displayName;
14
- const DialogHeader = ({ className, ...props }) => (_jsx("div", { className: cn("flex flex-col space-y-1.5 text-center sm:text-left", className), ...props }));
15
- DialogHeader.displayName = "DialogHeader";
16
- const DialogFooter = ({ className, ...props }) => (_jsx("div", { className: cn("flex flex-col-reverse sm:flex-row sm:justify-end sm:space-x-2", className), ...props }));
17
- DialogFooter.displayName = "DialogFooter";
18
- const DialogTitle = React.forwardRef(({ className, ...props }, ref) => (_jsx(DialogPrimitive.Title, { ref: ref, className: cn("text-lg font-semibold leading-none tracking-tight", className), ...props })));
19
- DialogTitle.displayName = DialogPrimitive.Title.displayName;
20
- const DialogDescription = React.forwardRef(({ className, ...props }, ref) => (_jsx(DialogPrimitive.Description, { ref: ref, className: cn("text-sm text-muted", className), ...props })));
21
- DialogDescription.displayName = DialogPrimitive.Description.displayName;
22
- export { Dialog, DialogClose, DialogContent, DialogDescription, DialogFooter, DialogHeader, DialogOverlay, DialogPortal, DialogTitle, DialogTrigger, };
@@ -1 +0,0 @@
1
- {"version":3,"file":"dropdown-menu.d.ts","sourceRoot":"","sources":["../../../src/components/ui/dropdown-menu.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,qBAAqB,MAAM,+BAA+B,CAAC;AAEvE,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAI/B,QAAA,MAAM,YAAY,mDAA6B,CAAC;AAEhD,QAAA,MAAM,mBAAmB,0HAAgC,CAAC;AAE1D,QAAA,MAAM,iBAAiB,qHAA8B,CAAC;AAEtD,QAAA,MAAM,kBAAkB,yDAA+B,CAAC;AAExD,QAAA,MAAM,eAAe,sDAA4B,CAAC;AAElD,QAAA,MAAM,sBAAsB,0HAAmC,CAAC;AAEhE,QAAA,MAAM,sBAAsB;YAGhB,OAAO;wCAejB,CAAC;AAIH,QAAA,MAAM,sBAAsB,6KAY1B,CAAC;AAIH,QAAA,MAAM,mBAAmB,0KAevB,CAAC;AAGH,QAAA,MAAM,gBAAgB;YAGV,OAAO;wCAYjB,CAAC;AAGH,QAAA,MAAM,wBAAwB,+KAoB5B,CAAC;AAIH,QAAA,MAAM,qBAAqB,4KAmBzB,CAAC;AAGH,QAAA,MAAM,iBAAiB;YAGX,OAAO;wCAYjB,CAAC;AAGH,QAAA,MAAM,qBAAqB,4KASzB,CAAC;AAGH,QAAA,MAAM,oBAAoB;8BAGvB,KAAK,CAAC,cAAc,CAAC,eAAe,CAAC;;CAOvC,CAAC;AAGF,OAAO,EACL,YAAY,EACZ,wBAAwB,EACxB,mBAAmB,EACnB,iBAAiB,EACjB,gBAAgB,EAChB,iBAAiB,EACjB,kBAAkB,EAClB,sBAAsB,EACtB,qBAAqB,EACrB,qBAAqB,EACrB,oBAAoB,EACpB,eAAe,EACf,sBAAsB,EACtB,sBAAsB,EACtB,mBAAmB,GACpB,CAAC"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"empty-state.d.ts","sourceRoot":"","sources":["../../../src/components/ui/empty-state.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAG/B,MAAM,WAAW,eAAgB,SAAQ,KAAK,CAAC,cAAc,CAAC,cAAc,CAAC;IAC3E,4CAA4C;IAC5C,IAAI,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC;IACvB,mBAAmB;IACnB,KAAK,EAAE,MAAM,CAAC;IACd,kCAAkC;IAClC,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,uCAAuC;IACvC,MAAM,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC;CAC1B;AAED,eAAO,MAAM,UAAU,wFA0BtB,CAAC"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"error-boundary.d.ts","sourceRoot":"","sources":["../../../src/components/ui/error-boundary.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAG/B,MAAM,WAAW,kBAAkB;IACjC,QAAQ,EAAE,KAAK,CAAC,SAAS,CAAC;IAC1B,mEAAmE;IACnE,QAAQ,CAAC,EAAE,CAAC,KAAK,EAAE,KAAK,EAAE,kBAAkB,EAAE,MAAM,IAAI,KAAK,KAAK,CAAC,SAAS,CAAC;CAC9E;AAED,UAAU,kBAAkB;IAC1B,KAAK,EAAE,KAAK,GAAG,IAAI,CAAC;CACrB;AAED,qBAAa,aAAc,SAAQ,KAAK,CAAC,SAAS,CAChD,kBAAkB,EAClB,kBAAkB,CACnB;gBACa,KAAK,EAAE,kBAAkB;IAKrC,MAAM,CAAC,wBAAwB,CAAC,KAAK,EAAE,KAAK,GAAG,kBAAkB;IAIjE,iBAAiB,CAAC,KAAK,EAAE,KAAK,EAAE,SAAS,EAAE,KAAK,CAAC,SAAS;IAI1D,kBAAkB,aAEhB;IAEF,MAAM;CA4BP"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"grid.d.ts","sourceRoot":"","sources":["../../../src/components/ui/grid.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAO,KAAK,YAAY,EAAE,MAAM,0BAA0B,CAAC;AAClE,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAG/B,QAAA,MAAM,YAAY;;;8EAqBhB,CAAC;AAEH,MAAM,WAAW,SACf,SAAQ,KAAK,CAAC,cAAc,CAAC,cAAc,CAAC,EAC1C,YAAY,CAAC,OAAO,YAAY,CAAC;CAAG;AAExC,eAAO,MAAM,IAAI,kFAUhB,CAAC"}
@@ -1,6 +0,0 @@
1
- import * as React from "react";
2
- export interface InputProps extends React.InputHTMLAttributes<HTMLInputElement> {
3
- }
4
- declare const Input: React.ForwardRefExoticComponent<InputProps & React.RefAttributes<HTMLInputElement>>;
5
- export { Input };
6
- //# sourceMappingURL=input.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"input.d.ts","sourceRoot":"","sources":["../../../src/components/ui/input.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAI/B,MAAM,WAAW,UACf,SAAQ,KAAK,CAAC,mBAAmB,CAAC,gBAAgB,CAAC;CAAG;AAExD,QAAA,MAAM,KAAK,qFAcV,CAAC;AAGF,OAAO,EAAE,KAAK,EAAE,CAAC"}
@@ -1,8 +0,0 @@
1
- import { jsx as _jsx } from "react/jsx-runtime";
2
- import * as React from "react";
3
- import { cn } from "../../lib/utils";
4
- const Input = React.forwardRef(({ className, type, ...props }, ref) => {
5
- return (_jsx("input", { type: type, className: cn("flex h-10 w-full rounded-md border border-input bg-bg px-3 py-2 text-sm ring-offset-bg file:border-0 file:bg-transparent file:text-sm file:font-medium placeholder:text-muted focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2 disabled:cursor-not-allowed disabled:opacity-50", className), ref: ref, ...props }));
6
- });
7
- Input.displayName = "Input";
8
- export { Input };
@@ -1 +0,0 @@
1
- {"version":3,"file":"label.d.ts","sourceRoot":"","sources":["../../../src/components/ui/label.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,cAAc,MAAM,uBAAuB,CAAC;AACxD,OAAO,EAAO,KAAK,YAAY,EAAE,MAAM,0BAA0B,CAAC;AAClE,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAQ/B,QAAA,MAAM,KAAK,4PAUT,CAAC;AAGH,OAAO,EAAE,KAAK,EAAE,CAAC"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"popover.d.ts","sourceRoot":"","sources":["../../../src/components/ui/popover.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,gBAAgB,MAAM,yBAAyB,CAAC;AAC5D,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAI/B,QAAA,MAAM,OAAO,yCAAwB,CAAC;AAEtC,QAAA,MAAM,cAAc,gHAA2B,CAAC;AAEhD,QAAA,MAAM,cAAc,gKAgBlB,CAAC;AAGH,OAAO,EAAE,OAAO,EAAE,cAAc,EAAE,cAAc,EAAE,CAAC"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"save-footer.d.ts","sourceRoot":"","sources":["../../../src/components/ui/save-footer.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAG/B,MAAM,WAAW,eAAgB,SAAQ,KAAK,CAAC,cAAc,CAAC,cAAc,CAAC;IAC3E,KAAK,EAAE,OAAO,CAAC;IACf,MAAM,EAAE,OAAO,CAAC;IAChB,SAAS,EAAE,MAAM,GAAG,IAAI,CAAC;IACzB,WAAW,EAAE,OAAO,CAAC;IACrB,MAAM,EAAE,MAAM,IAAI,CAAC;IACnB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,UAAU,CAAC,EAAE,MAAM,CAAC;CACrB;AAED,eAAO,MAAM,UAAU,wFA0CtB,CAAC"}
@@ -1,9 +0,0 @@
1
- import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
2
- import * as React from "react";
3
- import { cn } from "../../lib/utils";
4
- export const SaveFooter = React.forwardRef(({ dirty, saving, saveError, saveSuccess, onSave, saveLabel = "Save Changes", savingLabel = "Saving…", savedLabel = "Saved", className, ...props }, ref) => {
5
- if (!dirty)
6
- return null;
7
- return (_jsxs("div", { ref: ref, className: cn("flex items-center justify-end gap-3 border-t border-border pt-2", className), ...props, children: [saveError && (_jsx("span", { className: "text-xs text-destructive", children: saveError })), saveSuccess && _jsx("span", { className: "text-xs text-ok", children: savedLabel }), _jsx("button", { type: "button", className: "rounded-md bg-primary px-4 py-1.5 text-xs font-semibold text-primary-fg transition-opacity hover:opacity-90 disabled:opacity-50", disabled: saving, onClick: onSave, children: saving ? savingLabel : saveLabel })] }));
8
- });
9
- SaveFooter.displayName = "SaveFooter";
@@ -1 +0,0 @@
1
- {"version":3,"file":"search-bar.d.ts","sourceRoot":"","sources":["../../../src/components/ui/search-bar.tsx"],"names":[],"mappings":"AAAA;;;;;GAKG;AAMH,MAAM,WAAW,cAAc;IAC7B,QAAQ,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,IAAI,CAAC;IAClC,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,mEAAmE;IACnE,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,yEAAyE;IACzE,cAAc,CAAC,EAAE,MAAM,CAAC;CACzB;AAED,wBAAgB,SAAS,CAAC,EACxB,QAAQ,EACR,SAAS,EACT,WAAyB,EACzB,WAAsB,EACtB,cAA+B,GAChC,EAAE,cAAc,2CAiChB"}
@@ -1,19 +0,0 @@
1
- import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
2
- /**
3
- * SearchBar — a self-contained search input with submit button.
4
- *
5
- * Fully generic; no app-context dependency. Callers pass the placeholder
6
- * and loading state directly.
7
- */
8
- import { useCallback, useState } from "react";
9
- import { Button } from "./button";
10
- import { Input } from "./input";
11
- export function SearchBar({ onSearch, searching, placeholder = "Search...", searchLabel = "Search", searchingLabel = "Searching...", }) {
12
- const [query, setQuery] = useState("");
13
- const handleSubmit = useCallback(() => {
14
- if (query.trim()) {
15
- onSearch(query.trim());
16
- }
17
- }, [query, onSearch]);
18
- return (_jsx("div", { className: "mb-6", children: _jsxs("div", { className: "flex gap-2", children: [_jsx(Input, { type: "text", placeholder: placeholder, value: query, onChange: (e) => setQuery(e.target.value), onKeyDown: (e) => e.key === "Enter" && handleSubmit(), className: "h-9 bg-bg border-border text-sm shadow-sm focus-visible:ring-1 focus-visible:ring-accent", disabled: searching }), _jsx(Button, { variant: "default", size: "sm", className: "h-9 px-4 shadow-sm", onClick: handleSubmit, disabled: !query.trim() || searching, children: searching ? searchingLabel : searchLabel })] }) }));
19
- }
@@ -1 +0,0 @@
1
- {"version":3,"file":"search-input.d.ts","sourceRoot":"","sources":["../../../src/components/ui/search-input.tsx"],"names":[],"mappings":"AACA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAG/B,MAAM,WAAW,gBACf,SAAQ,IAAI,CAAC,KAAK,CAAC,mBAAmB,CAAC,gBAAgB,CAAC,EAAE,MAAM,CAAC;IACjE,8CAA8C;IAC9C,OAAO,CAAC,EAAE,MAAM,IAAI,CAAC;IACrB,+BAA+B;IAC/B,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,sCAAsC;IACtC,UAAU,CAAC,EAAE,MAAM,CAAC;CACrB;AAED,eAAO,MAAM,WAAW,2FAwCvB,CAAC"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"section-card.d.ts","sourceRoot":"","sources":["../../../src/components/ui/section-card.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAK/B,MAAM,WAAW,gBAAiB,SAAQ,KAAK,CAAC,cAAc,CAAC,cAAc,CAAC;IAC5E,wCAAwC;IACxC,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,2CAA2C;IAC3C,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,4EAA4E;IAC5E,OAAO,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC;IAC1B,yCAAyC;IACzC,WAAW,CAAC,EAAE,OAAO,CAAC;IACtB,sDAAsD;IACtD,gBAAgB,CAAC,EAAE,OAAO,CAAC;CAC5B;AAED,eAAO,MAAM,WAAW,yFAiEvB,CAAC"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"select.d.ts","sourceRoot":"","sources":["../../../src/components/ui/select.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,eAAe,MAAM,wBAAwB,CAAC;AAE1D,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAI/B,QAAA,MAAM,MAAM,uCAAuB,CAAC;AAEpC,QAAA,MAAM,WAAW,yGAAwB,CAAC;AAE1C,QAAA,MAAM,WAAW,0GAAwB,CAAC;AAE1C,QAAA,MAAM,aAAa,oKAiBjB,CAAC;AAGH,QAAA,MAAM,oBAAoB,qKAcxB,CAAC;AAGH,QAAA,MAAM,sBAAsB,uKAc1B,CAAC;AAIH,QAAA,MAAM,aAAa,8JA6BjB,CAAC;AAGH,QAAA,MAAM,WAAW,4JASf,CAAC;AAGH,QAAA,MAAM,UAAU,2JAoBd,CAAC;AAGH,QAAA,MAAM,eAAe,gKASnB,CAAC;AAGH,OAAO,EACL,MAAM,EACN,aAAa,EACb,WAAW,EACX,UAAU,EACV,WAAW,EACX,sBAAsB,EACtB,oBAAoB,EACpB,eAAe,EACf,aAAa,EACb,WAAW,GACZ,CAAC"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"separator.d.ts","sourceRoot":"","sources":["../../../src/components/ui/separator.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,kBAAkB,MAAM,2BAA2B,CAAC;AAChE,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAI/B,QAAA,MAAM,SAAS,6JAoBd,CAAC;AAGF,OAAO,EAAE,SAAS,EAAE,CAAC"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"skeleton.d.ts","sourceRoot":"","sources":["../../../src/components/ui/skeleton.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAI/B,QAAA,MAAM,QAAQ,6GASZ,CAAC;AAKH,iBAAS,YAAY,CAAC,EACpB,KAAc,EACd,SAAc,GACf,EAAE;IACD,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB,2CAOA;AAED,iBAAS,YAAY,CAAC,EAAE,KAAS,EAAE,EAAE;IAAE,KAAK,CAAC,EAAE,MAAM,CAAA;CAAE,2CAWtD;AAED,iBAAS,eAAe,CAAC,EAAE,MAAc,EAAE,EAAE;IAAE,MAAM,CAAC,EAAE,OAAO,CAAA;CAAE,2CAmBhE;AAED,iBAAS,YAAY,4CAapB;AAED,iBAAS,eAAe,4CAYvB;AAED,iBAAS,YAAY,4CAQpB;AAED,OAAO,EACL,QAAQ,EACR,YAAY,EACZ,YAAY,EACZ,YAAY,EACZ,eAAe,EACf,eAAe,EACf,YAAY,GACb,CAAC"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"slider.d.ts","sourceRoot":"","sources":["../../../src/components/ui/slider.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,eAAe,MAAM,wBAAwB,CAAC;AAC1D,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAI/B,QAAA,MAAM,MAAM,yJAiBV,CAAC;AAGH,OAAO,EAAE,MAAM,EAAE,CAAC"}
@@ -1,5 +0,0 @@
1
- import { Toaster as Sonner } from "sonner";
2
- type ToasterProps = React.ComponentProps<typeof Sonner>;
3
- declare const Toaster: ({ ...props }: ToasterProps) => import("react/jsx-runtime").JSX.Element;
4
- export { Toaster };
5
- //# sourceMappingURL=sonner.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"sonner.d.ts","sourceRoot":"","sources":["../../../src/components/ui/sonner.tsx"],"names":[],"mappings":"AACA,OAAO,EAAE,OAAO,IAAI,MAAM,EAAE,MAAM,QAAQ,CAAC;AAE3C,KAAK,YAAY,GAAG,KAAK,CAAC,cAAc,CAAC,OAAO,MAAM,CAAC,CAAC;AAExD,QAAA,MAAM,OAAO,GAAI,cAAc,YAAY,4CAoB1C,CAAC;AAEF,OAAO,EAAE,OAAO,EAAE,CAAC"}
@@ -1,15 +0,0 @@
1
- import { jsx as _jsx } from "react/jsx-runtime";
2
- import { useTheme } from "next-themes";
3
- import { Toaster as Sonner } from "sonner";
4
- const Toaster = ({ ...props }) => {
5
- const { theme = "system" } = useTheme();
6
- return (_jsx(Sonner, { theme: theme, className: "toaster group", toastOptions: {
7
- classNames: {
8
- toast: "group toast group-[.toaster]:bg-bg group-[.toaster]:text-txt group-[.toaster]:border-border group-[.toaster]:shadow-lg",
9
- description: "group-[.toast]:text-muted",
10
- actionButton: "group-[.toast]:bg-primary group-[.toast]:text-primary-fg",
11
- cancelButton: "group-[.toast]:bg-muted group-[.toast]:text-muted-fg",
12
- },
13
- }, ...props }));
14
- };
15
- export { Toaster };
@@ -1 +0,0 @@
1
- {"version":3,"file":"spinner.d.ts","sourceRoot":"","sources":["../../../src/components/ui/spinner.tsx"],"names":[],"mappings":"AACA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAG/B,MAAM,WAAW,YAAa,SAAQ,KAAK,CAAC,aAAa,CAAC,aAAa,CAAC;IACtE,IAAI,CAAC,EAAE,MAAM,GAAG,MAAM,CAAC;CACxB;AAED,eAAO,MAAM,OAAO,oFAWnB,CAAC"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"stack.d.ts","sourceRoot":"","sources":["../../../src/components/ui/stack.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAO,KAAK,YAAY,EAAE,MAAM,0BAA0B,CAAC;AAClE,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAG/B,QAAA,MAAM,aAAa;;;;;8EA8BjB,CAAC;AAEH,MAAM,WAAW,UACf,SAAQ,KAAK,CAAC,cAAc,CAAC,cAAc,CAAC,EAC1C,YAAY,CAAC,OAAO,aAAa,CAAC;CAAG;AAEzC,eAAO,MAAM,KAAK,mFAajB,CAAC"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"status-badge.d.ts","sourceRoot":"","sources":["../../../src/components/ui/status-badge.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAG/B,MAAM,MAAM,UAAU,GAAG,SAAS,GAAG,SAAS,GAAG,QAAQ,GAAG,OAAO,CAAC;AAqBpE,wBAAgB,oBAAoB,CAClC,SAAS,EAAE,OAAO,EAClB,MAAM,GAAE,UAAsB,EAC9B,OAAO,GAAE,UAAoB,GAC5B,UAAU,CAEZ;AAID,MAAM,WAAW,gBACf,SAAQ,KAAK,CAAC,cAAc,CAAC,eAAe,CAAC;IAC7C,KAAK,EAAE,MAAM,CAAC;IACd,IAAI,EAAE,UAAU,CAAC;IACjB,OAAO,CAAC,EAAE,OAAO,CAAC;CACnB;AAED,eAAO,MAAM,WAAW,0FAoBvB,CAAC;AAKF,MAAM,WAAW,cAAe,SAAQ,KAAK,CAAC,cAAc,CAAC,eAAe,CAAC;IAC3E,MAAM,EAAE,MAAM,CAAC;CAChB;AAED,eAAO,MAAM,SAAS,wFAsBrB,CAAC;AAKF,MAAM,WAAW,aAAc,SAAQ,KAAK,CAAC,cAAc,CAAC,cAAc,CAAC;IACzE,KAAK,EAAE,MAAM,CAAC;IACd,KAAK,EAAE,KAAK,CAAC,SAAS,CAAC;IACvB,MAAM,CAAC,EAAE,OAAO,CAAC;CAClB;AAED,eAAO,MAAM,QAAQ,sFAuBpB,CAAC"}
@@ -1,41 +0,0 @@
1
- import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
2
- import * as React from "react";
3
- import { cn } from "../../lib/utils";
4
- const STATUS_TONE_STYLES = {
5
- success: {
6
- badge: "text-ok border-ok/30 bg-ok/10",
7
- dot: "bg-ok",
8
- },
9
- warning: {
10
- badge: "text-warn border-warn/30 bg-warn/10",
11
- dot: "bg-warn",
12
- },
13
- danger: {
14
- badge: "text-destructive border-destructive/30 bg-destructive/10",
15
- dot: "bg-destructive",
16
- },
17
- muted: {
18
- badge: "text-muted border-border bg-bg",
19
- dot: "bg-muted",
20
- },
21
- };
22
- export function statusToneForBoolean(condition, onTone = "success", offTone = "muted") {
23
- return condition ? onTone : offTone;
24
- }
25
- export const StatusBadge = React.forwardRef(({ label, tone, withDot = false, className, ...props }, ref) => {
26
- const styles = STATUS_TONE_STYLES[tone];
27
- return (_jsxs("span", { ref: ref, className: cn("inline-flex items-center gap-1 rounded-sm border px-2 py-0.5 text-[10px] font-bold uppercase", styles.badge, className), ...props, children: [withDot && (_jsx("span", { className: cn("h-1.5 w-1.5 rounded-full", styles.dot) })), label] }));
28
- });
29
- StatusBadge.displayName = "StatusBadge";
30
- export const StatusDot = React.forwardRef(({ status, className, ...props }, ref) => {
31
- const tone = status === "success" || status === "completed" || status === "connected"
32
- ? "success"
33
- : status === "error" || status === "failed" || status === "denied"
34
- ? "danger"
35
- : "muted";
36
- const styles = STATUS_TONE_STYLES[tone];
37
- return (_jsx("span", { ref: ref, className: cn("inline-block h-2 w-2 rounded-full", styles.dot, className), ...props }));
38
- });
39
- StatusDot.displayName = "StatusDot";
40
- export const StatCard = React.forwardRef(({ label, value, accent = false, className, ...props }, ref) => (_jsxs("div", { ref: ref, className: cn("flex flex-col items-center justify-center border border-border bg-bg p-3 min-w-[80px]", className), ...props, children: [_jsx("div", { className: cn("text-lg font-bold tabular-nums", accent && "text-accent"), children: value }), _jsx("div", { className: "mt-0.5 text-[10px] uppercase tracking-wide text-muted", children: label })] })));
41
- StatCard.displayName = "StatCard";
@@ -1 +0,0 @@
1
- {"version":3,"file":"switch.d.ts","sourceRoot":"","sources":["../../../src/components/ui/switch.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,gBAAgB,MAAM,wBAAwB,CAAC;AAC3D,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAI/B,QAAA,MAAM,MAAM,8JAkBV,CAAC;AAGH,OAAO,EAAE,MAAM,EAAE,CAAC"}
@@ -1,7 +0,0 @@
1
- import { jsx as _jsx } from "react/jsx-runtime";
2
- import * as SwitchPrimitives from "@radix-ui/react-switch";
3
- import * as React from "react";
4
- import { cn } from "../../lib/utils";
5
- const Switch = React.forwardRef(({ className, ...props }, ref) => (_jsx(SwitchPrimitives.Root, { className: cn("peer inline-flex h-[24px] w-[44px] shrink-0 cursor-pointer items-center rounded-full border-2 border-transparent transition-colors focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2 focus-visible:ring-offset-bg disabled:cursor-not-allowed disabled:opacity-50 data-[state=checked]:bg-primary data-[state=unchecked]:bg-input", className), ...props, ref: ref, children: _jsx(SwitchPrimitives.Thumb, { className: cn("pointer-events-none block h-5 w-5 rounded-full bg-bg shadow-lg ring-0 transition-transform data-[state=checked]:translate-x-5 data-[state=unchecked]:translate-x-0") }) })));
6
- Switch.displayName = SwitchPrimitives.Root.displayName;
7
- export { Switch };
@@ -1 +0,0 @@
1
- {"version":3,"file":"tabs.d.ts","sourceRoot":"","sources":["../../../src/components/ui/tabs.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,aAAa,MAAM,sBAAsB,CAAC;AACtD,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAI/B,QAAA,MAAM,IAAI,gGAAqB,CAAC;AAEhC,QAAA,MAAM,QAAQ,uJAYZ,CAAC;AAGH,QAAA,MAAM,WAAW,gKAYf,CAAC;AAGH,QAAA,MAAM,WAAW,0JAYf,CAAC;AAGH,OAAO,EAAE,IAAI,EAAE,WAAW,EAAE,QAAQ,EAAE,WAAW,EAAE,CAAC"}